diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 282932ed00..29223a098c 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -18,7 +18,7 @@ jobs: - name: Install dependencies for all plugins run: | - npm run setup-repo-old + NODE_ENV=PREPACK_MODE npm run setup-repo-old - name: Run tests for Contentstack Command working-directory: ./packages/contentstack-command diff --git a/.talismanrc b/.talismanrc index d6412fc8f0..c42eda5c58 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,8 +1,8 @@ fileignoreconfig: - filename: package-lock.json - checksum: 484e310f7e8884916149057a6581e655503d6977021f54da4cfdb31558820ffc + checksum: d3b93fad9630655f037e36b78fea3354f1a038988562254afdad0f6e54ece12d - filename: pnpm-lock.yaml - checksum: 3cdef03a4cdc334dd5ab432ab9dfa9c35f529ed5f744d5a44a4bff68f1e43ead + checksum: aa6177859aaa87caf2892e8034657fd485c3abe7c13a833fd28449a1d33fa950 - filename: packages/contentstack-import-setup/test/unit/backup-handler.test.ts checksum: 0582d62b88834554cf12951c8690a73ef3ddbb78b82d2804d994cf4148e1ef93 - filename: packages/contentstack-import-setup/test/config.json @@ -32,7 +32,7 @@ fileignoreconfig: - filename: packages/contentstack-import-setup/test/unit/login-handler.test.ts checksum: e549f9ca3a9aae0d93b7284f7e771d55c0610725ddcb4333612df2f215e92769 - filename: packages/contentstack/README.md - checksum: f46084b199b3b0d7986b363c86a657570def71e5da29b948cc343eaf94ec7e97 + checksum: 10f580c697d0b70b813428954b946e60609f41c42e78ca95ca3232443e725615 - filename: packages/contentstack-import-setup/test/unit/modules/assets.test.ts checksum: 449a5e3383631a6f78d1291aa3c28c91681879289398f0a933158fba5c5d5acf - filename: packages/contentstack-auth/env.example @@ -142,7 +142,7 @@ fileignoreconfig: - filename: packages/contentstack-export/test/unit/export/modules/stack.test.ts checksum: bb0f20845d85fd56197f1a8c67b8f71c57dcd1836ed9cfd86d1f49f41e84d3a0 - filename: packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts - checksum: 621c1de129488b6a0372a91056ebb84353bcc642ce06de59e3852cfee8d0ce49 + checksum: 5b1d2ba5ec9100fd6174e9c6771b7e49c93a09fa2d6aedadd338e56bc3e3610f - filename: packages/contentstack-export/test/unit/export/modules/custom-roles.test.ts checksum: 39f0166a8030ee8f504301f3a42cc71b46ddc027189b90029ef19800b79a46e5 - filename: packages/contentstack-export/test/unit/export/modules/workflows.test.ts diff --git a/package-lock.json b/package-lock.json index 2a900c6526..17399534e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -280,27 +280,27 @@ } }, "node_modules/@aws-sdk/client-cloudfront": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.921.0.tgz", - "integrity": "sha512-7KbHfXv03oYsN/ZMKQf9i/DYE3eygxKq2azm7sZUivzBLGK42DiMXok/xF1QcOi2cnnft/QZ5roVH7ox9ns2aA==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.925.0.tgz", + "integrity": "sha512-qcnBTHgVFzoSRjinSmcGj2qiqfbKEBCjpir7y0MnCjOcVseWfrcsk/5j0JXCFJ+jXs/zmYUEPkf5PyxqWTq0ng==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.921.0", - "@aws-sdk/credential-provider-node": "3.921.0", - "@aws-sdk/middleware-host-header": "3.921.0", - "@aws-sdk/middleware-logger": "3.921.0", - "@aws-sdk/middleware-recursion-detection": "3.921.0", - "@aws-sdk/middleware-user-agent": "3.921.0", - "@aws-sdk/region-config-resolver": "3.921.0", - "@aws-sdk/types": "3.921.0", - "@aws-sdk/util-endpoints": "3.921.0", - "@aws-sdk/util-user-agent-browser": "3.921.0", - "@aws-sdk/util-user-agent-node": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/credential-provider-node": "3.925.0", + "@aws-sdk/middleware-host-header": "3.922.0", + "@aws-sdk/middleware-logger": "3.922.0", + "@aws-sdk/middleware-recursion-detection": "3.922.0", + "@aws-sdk/middleware-user-agent": "3.922.0", + "@aws-sdk/region-config-resolver": "3.925.0", + "@aws-sdk/types": "3.922.0", + "@aws-sdk/util-endpoints": "3.922.0", + "@aws-sdk/util-user-agent-browser": "3.922.0", + "@aws-sdk/util-user-agent-node": "3.922.0", "@aws-sdk/xml-builder": "3.921.0", - "@smithy/config-resolver": "^4.4.1", + "@smithy/config-resolver": "^4.4.2", "@smithy/core": "^3.17.2", "@smithy/fetch-http-handler": "^5.3.5", "@smithy/hash-node": "^4.2.4", @@ -320,7 +320,7 @@ "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.5", - "@smithy/util-defaults-mode-node": "^4.2.7", + "@smithy/util-defaults-mode-node": "^4.2.8", "@smithy/util-endpoints": "^3.2.4", "@smithy/util-middleware": "^4.2.4", "@smithy/util-retry": "^4.2.4", @@ -334,35 +334,35 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.921.0.tgz", - "integrity": "sha512-vwe+OmgsducnvzouQDKRXyzZqMY4CCdlh+XdPJZz7LH+v7kYvsqIB0PiRMhcDc4d+QUOw6oZgY3V3Spi0twU/Q==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.925.0.tgz", + "integrity": "sha512-imAul+6pyJYH4cbxPz1OiFXxrKKTRqVzlT2e0M6zbPHmUcJsF5E+b+4qvHQChU8wFGtIWJHH/JChF2ibfTnXdA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.921.0", - "@aws-sdk/credential-provider-node": "3.921.0", - "@aws-sdk/middleware-bucket-endpoint": "3.921.0", - "@aws-sdk/middleware-expect-continue": "3.921.0", - "@aws-sdk/middleware-flexible-checksums": "3.921.0", - "@aws-sdk/middleware-host-header": "3.921.0", - "@aws-sdk/middleware-location-constraint": "3.921.0", - "@aws-sdk/middleware-logger": "3.921.0", - "@aws-sdk/middleware-recursion-detection": "3.921.0", - "@aws-sdk/middleware-sdk-s3": "3.921.0", - "@aws-sdk/middleware-ssec": "3.921.0", - "@aws-sdk/middleware-user-agent": "3.921.0", - "@aws-sdk/region-config-resolver": "3.921.0", - "@aws-sdk/signature-v4-multi-region": "3.921.0", - "@aws-sdk/types": "3.921.0", - "@aws-sdk/util-endpoints": "3.921.0", - "@aws-sdk/util-user-agent-browser": "3.921.0", - "@aws-sdk/util-user-agent-node": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/credential-provider-node": "3.925.0", + "@aws-sdk/middleware-bucket-endpoint": "3.922.0", + "@aws-sdk/middleware-expect-continue": "3.922.0", + "@aws-sdk/middleware-flexible-checksums": "3.922.0", + "@aws-sdk/middleware-host-header": "3.922.0", + "@aws-sdk/middleware-location-constraint": "3.922.0", + "@aws-sdk/middleware-logger": "3.922.0", + "@aws-sdk/middleware-recursion-detection": "3.922.0", + "@aws-sdk/middleware-sdk-s3": "3.922.0", + "@aws-sdk/middleware-ssec": "3.922.0", + "@aws-sdk/middleware-user-agent": "3.922.0", + "@aws-sdk/region-config-resolver": "3.925.0", + "@aws-sdk/signature-v4-multi-region": "3.922.0", + "@aws-sdk/types": "3.922.0", + "@aws-sdk/util-endpoints": "3.922.0", + "@aws-sdk/util-user-agent-browser": "3.922.0", + "@aws-sdk/util-user-agent-node": "3.922.0", "@aws-sdk/xml-builder": "3.921.0", - "@smithy/config-resolver": "^4.4.1", + "@smithy/config-resolver": "^4.4.2", "@smithy/core": "^3.17.2", "@smithy/eventstream-serde-browser": "^4.2.4", "@smithy/eventstream-serde-config-resolver": "^4.3.4", @@ -388,7 +388,7 @@ "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.5", - "@smithy/util-defaults-mode-node": "^4.2.7", + "@smithy/util-defaults-mode-node": "^4.2.8", "@smithy/util-endpoints": "^3.2.4", "@smithy/util-middleware": "^4.2.4", "@smithy/util-retry": "^4.2.4", @@ -403,25 +403,25 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.921.0.tgz", - "integrity": "sha512-qWyT7WikdkPRAMuWidZ2l8jcQAPwNjvLcFZ/8K+oCAaMLt0LKLd7qeTwZ5tZFNqRNPXKfE8MkvAjyqSpE3i2yg==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.925.0.tgz", + "integrity": "sha512-ixC9CyXe/mBo1X+bzOxIIzsdBYzM+klWoHUYzwnPMrXhpDrMjj8D24R/FPqrDnhoYYXiyS4BApRLpeymsFJq2Q==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.921.0", - "@aws-sdk/middleware-host-header": "3.921.0", - "@aws-sdk/middleware-logger": "3.921.0", - "@aws-sdk/middleware-recursion-detection": "3.921.0", - "@aws-sdk/middleware-user-agent": "3.921.0", - "@aws-sdk/region-config-resolver": "3.921.0", - "@aws-sdk/types": "3.921.0", - "@aws-sdk/util-endpoints": "3.921.0", - "@aws-sdk/util-user-agent-browser": "3.921.0", - "@aws-sdk/util-user-agent-node": "3.921.0", - "@smithy/config-resolver": "^4.4.1", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/middleware-host-header": "3.922.0", + "@aws-sdk/middleware-logger": "3.922.0", + "@aws-sdk/middleware-recursion-detection": "3.922.0", + "@aws-sdk/middleware-user-agent": "3.922.0", + "@aws-sdk/region-config-resolver": "3.925.0", + "@aws-sdk/types": "3.922.0", + "@aws-sdk/util-endpoints": "3.922.0", + "@aws-sdk/util-user-agent-browser": "3.922.0", + "@aws-sdk/util-user-agent-node": "3.922.0", + "@smithy/config-resolver": "^4.4.2", "@smithy/core": "^3.17.2", "@smithy/fetch-http-handler": "^5.3.5", "@smithy/hash-node": "^4.2.4", @@ -441,7 +441,7 @@ "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.5", - "@smithy/util-defaults-mode-node": "^4.2.7", + "@smithy/util-defaults-mode-node": "^4.2.8", "@smithy/util-endpoints": "^3.2.4", "@smithy/util-middleware": "^4.2.4", "@smithy/util-retry": "^4.2.4", @@ -453,13 +453,13 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.921.0.tgz", - "integrity": "sha512-1eiD9ZO9cvEHdQUn/pwJVGN9LXg6D0O7knGVA0TA/v7nFSYy0n8RYG8vdnlcoYYnV1BcHgaf4KmRVMOszafNZQ==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.922.0.tgz", + "integrity": "sha512-EvfP4cqJfpO3L2v5vkIlTkMesPtRwWlMfsaW6Tpfm7iYfBOuTi6jx60pMDMTyJNVfh6cGmXwh/kj1jQdR+w99Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@aws-sdk/xml-builder": "3.921.0", "@smithy/core": "^3.17.2", "@smithy/node-config-provider": "^4.3.4", @@ -478,14 +478,14 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.921.0.tgz", - "integrity": "sha512-RGG+zZdOYGJBQ8+L7BI6v41opoF8knErMtBZAUGcD3gvWEhjatc7lSbIpBeYWbTaWPPLHQU+ZVbmQ/jRLBgefw==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.922.0.tgz", + "integrity": "sha512-WikGQpKkROJSK3D3E7odPjZ8tU7WJp5/TgGdRuZw3izsHUeH48xMv6IznafpRTmvHcjAbDQj4U3CJZNAzOK/OQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/types": "3.922.0", "@smithy/property-provider": "^4.2.4", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" @@ -495,14 +495,14 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.921.0.tgz", - "integrity": "sha512-TAv08Ow0oF/olV4DTLoPDj46KMk35bL1IUCfToESDrWk1TOSur7d4sCL0p/7dUsAxS244cEgeyIIijKNtxj2AA==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.922.0.tgz", + "integrity": "sha512-i72DgHMK7ydAEqdzU0Duqh60Q8W59EZmRJ73y0Y5oFmNOqnYsAI+UXyOoCsubp+Dkr6+yOwAn1gPt1XGE9Aowg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/types": "3.922.0", "@smithy/fetch-http-handler": "^5.3.5", "@smithy/node-http-handler": "^4.4.4", "@smithy/property-provider": "^4.2.4", @@ -517,20 +517,20 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.921.0.tgz", - "integrity": "sha512-MUSRYGiMRq5NRGPRgJ7Nuh7GqXzE9iteAwdbzMJ4pnImgr7CjeWDihCIGk+gKLSG+NoRVVJM0V9PA4rxFir0Pg==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.925.0.tgz", + "integrity": "sha512-TOs/UkKWwXrSPolRTChpDUQjczw6KqbbanF0EzjUm3sp/AS1ThOQCKuTTdaOBZXkCIJdvRmZjF3adccE3rAoXg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/credential-provider-env": "3.921.0", - "@aws-sdk/credential-provider-http": "3.921.0", - "@aws-sdk/credential-provider-process": "3.921.0", - "@aws-sdk/credential-provider-sso": "3.921.0", - "@aws-sdk/credential-provider-web-identity": "3.921.0", - "@aws-sdk/nested-clients": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/credential-provider-env": "3.922.0", + "@aws-sdk/credential-provider-http": "3.922.0", + "@aws-sdk/credential-provider-process": "3.922.0", + "@aws-sdk/credential-provider-sso": "3.925.0", + "@aws-sdk/credential-provider-web-identity": "3.925.0", + "@aws-sdk/nested-clients": "3.925.0", + "@aws-sdk/types": "3.922.0", "@smithy/credential-provider-imds": "^4.2.4", "@smithy/property-provider": "^4.2.4", "@smithy/shared-ini-file-loader": "^4.3.4", @@ -542,19 +542,19 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.921.0.tgz", - "integrity": "sha512-bxUAqRyo49WzKWn/XS0d8QXT9GydY/ew5m58PYfSMwYfmwBZXx1GLSWe3tZnefm6santFiqmIWfMmeRWdygKmQ==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.925.0.tgz", + "integrity": "sha512-+T9mnnTY73MLkVxsk5RtzE4fv7GnMhR7iXhL/yTusf1zLfA09uxlA9VCz6tWxm5rHcO4ZN0x4hnqqDhM+DB5KQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.921.0", - "@aws-sdk/credential-provider-http": "3.921.0", - "@aws-sdk/credential-provider-ini": "3.921.0", - "@aws-sdk/credential-provider-process": "3.921.0", - "@aws-sdk/credential-provider-sso": "3.921.0", - "@aws-sdk/credential-provider-web-identity": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/credential-provider-env": "3.922.0", + "@aws-sdk/credential-provider-http": "3.922.0", + "@aws-sdk/credential-provider-ini": "3.925.0", + "@aws-sdk/credential-provider-process": "3.922.0", + "@aws-sdk/credential-provider-sso": "3.925.0", + "@aws-sdk/credential-provider-web-identity": "3.925.0", + "@aws-sdk/types": "3.922.0", "@smithy/credential-provider-imds": "^4.2.4", "@smithy/property-provider": "^4.2.4", "@smithy/shared-ini-file-loader": "^4.3.4", @@ -566,14 +566,14 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.921.0.tgz", - "integrity": "sha512-DM62ooWI/aZ+ENBcLszuKmOkiICf6p4vYO2HgA3Cy2OEsTsjb67NEcntksxpZkD3mSIrCy/Qi4Z7tc77gle2Nw==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.922.0.tgz", + "integrity": "sha512-1DZOYezT6okslpvMW7oA2q+y17CJd4fxjNFH0jtThfswdh9CtG62+wxenqO+NExttq0UMaKisrkZiVrYQBTShw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/types": "3.922.0", "@smithy/property-provider": "^4.2.4", "@smithy/shared-ini-file-loader": "^4.3.4", "@smithy/types": "^4.8.1", @@ -584,16 +584,16 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.921.0.tgz", - "integrity": "sha512-Nh5jPJ6Y6nu3cHzZnq394lGXE5YO8Szke5zlATbNI7Tl0QJR65GE0IZsBcjzRMGpYX6ENCqPDK8FmklkmCYyVQ==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.925.0.tgz", + "integrity": "sha512-aZlUC6LRsOMDvIu0ifF62mTjL3KGzclWu5XBBN8eLDAYTdhqMxv3HyrqWoiHnGZnZGaVU+II+qsVoeBnGOwHow==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.921.0", - "@aws-sdk/core": "3.921.0", - "@aws-sdk/token-providers": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/client-sso": "3.925.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/token-providers": "3.925.0", + "@aws-sdk/types": "3.922.0", "@smithy/property-provider": "^4.2.4", "@smithy/shared-ini-file-loader": "^4.3.4", "@smithy/types": "^4.8.1", @@ -604,15 +604,15 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.921.0.tgz", - "integrity": "sha512-VWcbgB2/shPPK674roHV4s8biCtvn0P/05EbTqy9WeyM5Oblx291gRGccyDhQbJbOL/6diRPBM08tlKPlBKNfw==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.925.0.tgz", + "integrity": "sha512-dR34s8Sfd1wJBzIuvRFO2FCnLmYD8iwPWrdXWI2ZypFt1EQR8jeQ20mnS+UOCoR5Z0tY6wJqEgTXKl4KuZ+DUg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/nested-clients": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/nested-clients": "3.925.0", + "@aws-sdk/types": "3.922.0", "@smithy/property-provider": "^4.2.4", "@smithy/shared-ini-file-loader": "^4.3.4", "@smithy/types": "^4.8.1", @@ -623,13 +623,13 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.921.0.tgz", - "integrity": "sha512-D4AVjNAmy7KYycM/mOzbQRZbOOU0mY4T3nmW//CE8amqsAmmeIW6ff2AH/5yGRp8aNjQInZ9npXHTThKc4a+LA==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.922.0.tgz", + "integrity": "sha512-Dpr2YeOaLFqt3q1hocwBesynE3x8/dXZqXZRuzSX/9/VQcwYBFChHAm4mTAl4zuvArtDbLrwzWSxmOWYZGtq5w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/node-config-provider": "^4.3.4", "@smithy/protocol-http": "^5.3.4", @@ -642,13 +642,13 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.921.0.tgz", - "integrity": "sha512-XnHLbyu6uZlS8DbxpB1TFWYCi+IOdf8PAfijkiOCdl1vf9pBZBE45xvghSd+Ck0EqlKQl4mEy9sB0Vv1ERnMfQ==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.922.0.tgz", + "integrity": "sha512-xmnLWMtmHJHJBupSWMUEW1gyxuRIeQ1Ov2xa8Tqq77fPr4Ft2AluEwiDMaZIMHoAvpxWKEEt9Si59Li7GIA+bQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/protocol-http": "^5.3.4", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" @@ -658,17 +658,17 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.921.0.tgz", - "integrity": "sha512-8bgPdSpcAPeXDnxMGnL2Nj2EfWhU95U7Q+C+XvAPlkSPSi0tFU2F1/D6hdVBQ5MCjL9areamAt2qO/Tt3+IEUw==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.922.0.tgz", + "integrity": "sha512-G363np7YcJhf+gBucskdv8cOTbs2TRwocEzRupuqDIooGDlLBlfJrvwehdgtWR8l53yjJR3zcHvGrVPTe2h8Nw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/types": "3.922.0", "@smithy/is-array-buffer": "^4.2.0", "@smithy/node-config-provider": "^4.3.4", "@smithy/protocol-http": "^5.3.4", @@ -683,13 +683,13 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.921.0.tgz", - "integrity": "sha512-eX1Ka29XzuEcXG4YABTwyLtPLchjmcjSjaq4irKJTFkxSYzX7gjoKt18rh/ZzOWOSqi23+cpjvBacL4VBKvE2Q==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.922.0.tgz", + "integrity": "sha512-HPquFgBnq/KqKRVkiuCt97PmWbKtxQ5iUNLEc6FIviqOoZTmaYG3EDsIbuFBz9C4RHJU4FKLmHL2bL3FEId6AA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/protocol-http": "^5.3.4", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" @@ -699,13 +699,13 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.921.0.tgz", - "integrity": "sha512-KjYtPvAks/WgCc9sRbqTM0MP3+utMT+OJ1NN61kyiCiUJuMyKFb3olhCUIJHajP5trTsXCiwFsuysj9x2iupJw==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.922.0.tgz", + "integrity": "sha512-T4iqd7WQ2DDjCH/0s50mnhdoX+IJns83ZE+3zj9IDlpU0N2aq8R91IG890qTfYkUEdP9yRm0xir/CNed+v6Dew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" }, @@ -714,13 +714,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.921.0.tgz", - "integrity": "sha512-14Qqp8wisKGj/2Y22OfO5jTBG5Xez+p3Zr2piAtz7AcbY8vBEoZbd6f+9lwwVFC73Aobkau223wzKbGT8HYQMw==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.922.0.tgz", + "integrity": "sha512-AkvYO6b80FBm5/kk2E636zNNcNgjztNNUxpqVx+huyGn9ZqGTzS4kLqW2hO6CBe5APzVtPCtiQsXL24nzuOlAg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" }, @@ -729,13 +729,13 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.921.0.tgz", - "integrity": "sha512-MYU5oI2b97M7u1dC1nt7SiGEvvLrQDlzV6hq9CB5TYX2glgbyvkaS//1Tjm87VF6qVSf5jYfwFDPeFGd8O1NrQ==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.922.0.tgz", + "integrity": "sha512-TtSCEDonV/9R0VhVlCpxZbp/9sxQvTTRKzIf8LxW3uXpby6Wl8IxEciBJlxmSkoqxh542WRcko7NYODlvL/gDA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@aws/lambda-invoke-store": "^0.1.1", "@smithy/protocol-http": "^5.3.4", "@smithy/types": "^4.8.1", @@ -746,14 +746,14 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.921.0.tgz", - "integrity": "sha512-u4fkE6sn5KWojhPUeDIqRx0BJlQug60PzAnLPlxeIvy2+ZeTSY64WYwF6V7wIZCf1RIstiBA/hQUsX07LfbvNg==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.922.0.tgz", + "integrity": "sha512-ygg8lME1oFAbsH42ed2wtGqfHLoT5irgx6VC4X98j79fV1qXEwwwbqMsAiMQ/HJehpjqAFRVsHox3MHLN48Z5A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/types": "3.922.0", "@aws-sdk/util-arn-parser": "3.893.0", "@smithy/core": "^3.17.2", "@smithy/node-config-provider": "^4.3.4", @@ -772,13 +772,13 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.921.0.tgz", - "integrity": "sha512-hxu8bzu99afvBwyrq2YLUc6fOIR4kipGFsdTAfkXAoniYCaMA4eehSlvfWhbgUnNHbXb/KoP+lk8UTnx+gU8vQ==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.922.0.tgz", + "integrity": "sha512-eHvSJZTSRJO+/tjjGD6ocnPc8q9o3m26+qbwQTu/4V6yOJQ1q+xkDZNqwJQphL+CodYaQ7uljp8g1Ji/AN3D9w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" }, @@ -787,15 +787,15 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.921.0.tgz", - "integrity": "sha512-gXgokMBTPZAbQMm1+JOxItqA81aSFK6n7V2mAwxdmHjzCUZacX5RzkVPNbSaPPgDkroYnIzK09EusIpM6dLaqw==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.922.0.tgz", + "integrity": "sha512-N4Qx/9KP3oVQBJOrSghhz8iZFtUC2NNeSZt88hpPhbqAEAtuX8aD8OzVcpnAtrwWqy82Yd2YTxlkqMGkgqnBsQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/types": "3.921.0", - "@aws-sdk/util-endpoints": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/types": "3.922.0", + "@aws-sdk/util-endpoints": "3.922.0", "@smithy/core": "^3.17.2", "@smithy/protocol-http": "^5.3.4", "@smithy/types": "^4.8.1", @@ -806,25 +806,25 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.921.0.tgz", - "integrity": "sha512-GV9aV8WqH/EWo4x3T5BrYb2ph1yfYuzUXZc0hhvxbFbDKD8m2fX9menao3Mgm7E5C68Su392u+MD9SGmGCmfKQ==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.925.0.tgz", + "integrity": "sha512-Fc8QhH+1YzGQb5aWQUX6gRnKSzUZ9p3p/muqXIgYBL8RSd5O6hSPhDTyrOWE247zFlOjVlAlEnoTMJKarH0cIA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.921.0", - "@aws-sdk/middleware-host-header": "3.921.0", - "@aws-sdk/middleware-logger": "3.921.0", - "@aws-sdk/middleware-recursion-detection": "3.921.0", - "@aws-sdk/middleware-user-agent": "3.921.0", - "@aws-sdk/region-config-resolver": "3.921.0", - "@aws-sdk/types": "3.921.0", - "@aws-sdk/util-endpoints": "3.921.0", - "@aws-sdk/util-user-agent-browser": "3.921.0", - "@aws-sdk/util-user-agent-node": "3.921.0", - "@smithy/config-resolver": "^4.4.1", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/middleware-host-header": "3.922.0", + "@aws-sdk/middleware-logger": "3.922.0", + "@aws-sdk/middleware-recursion-detection": "3.922.0", + "@aws-sdk/middleware-user-agent": "3.922.0", + "@aws-sdk/region-config-resolver": "3.925.0", + "@aws-sdk/types": "3.922.0", + "@aws-sdk/util-endpoints": "3.922.0", + "@aws-sdk/util-user-agent-browser": "3.922.0", + "@aws-sdk/util-user-agent-node": "3.922.0", + "@smithy/config-resolver": "^4.4.2", "@smithy/core": "^3.17.2", "@smithy/fetch-http-handler": "^5.3.5", "@smithy/hash-node": "^4.2.4", @@ -844,7 +844,7 @@ "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", "@smithy/util-defaults-mode-browser": "^4.3.5", - "@smithy/util-defaults-mode-node": "^4.2.7", + "@smithy/util-defaults-mode-node": "^4.2.8", "@smithy/util-endpoints": "^3.2.4", "@smithy/util-middleware": "^4.2.4", "@smithy/util-retry": "^4.2.4", @@ -856,14 +856,14 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.921.0.tgz", - "integrity": "sha512-cSycw4wXcvsrssUdcEaeYQhQcZYVsBwHtgATh9HcIm01PrMV0lV71vcoyZ+9vUhwHwchRT6dItAyTHSQxwjvjg==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.925.0.tgz", + "integrity": "sha512-FOthcdF9oDb1pfQBRCfWPZhJZT5wqpvdAS5aJzB1WDZ+6EuaAhLzLH/fW1slDunIqq1PSQGG3uSnVglVVOvPHQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", - "@smithy/config-resolver": "^4.4.1", + "@aws-sdk/types": "3.922.0", + "@smithy/config-resolver": "^4.4.2", "@smithy/node-config-provider": "^4.3.4", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" @@ -873,14 +873,14 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.921.0.tgz", - "integrity": "sha512-pFtJXtrf8cOsCgEb2OoPwQP4BKrnwIq69FuLowvWrXllFntAoAdEYaj9wNxPyl4pGqvo/9zO9CtkMb53PNxmWQ==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.922.0.tgz", + "integrity": "sha512-mmsgEEL5pE+A7gFYiJMDBCLVciaXq4EFI5iAP7bPpnHvOplnNOYxVy2IreKMllGvrfjVyLnwxzZYlo5zZ65FWg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/middleware-sdk-s3": "3.922.0", + "@aws-sdk/types": "3.922.0", "@smithy/protocol-http": "^5.3.4", "@smithy/signature-v4": "^5.3.4", "@smithy/types": "^4.8.1", @@ -891,15 +891,15 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.921.0.tgz", - "integrity": "sha512-d+w6X7ykqXirFBF+dYyK5Ntw0KmO2sgMj+JLR/vAe1vaR8/Fuqs3yOAFU7yNEzpcnbLJmMznxKpht03CSEMh4Q==", + "version": "3.925.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.925.0.tgz", + "integrity": "sha512-F4Oibka1W5YYDeL+rGt/Hg3NLjOzrJdmuZOE0OFQt/U6dnJwYmYi2gFqduvZnZcD1agNm37mh7/GUq1zvKS6ig==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.921.0", - "@aws-sdk/nested-clients": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/core": "3.922.0", + "@aws-sdk/nested-clients": "3.925.0", + "@aws-sdk/types": "3.922.0", "@smithy/property-provider": "^4.2.4", "@smithy/shared-ini-file-loader": "^4.3.4", "@smithy/types": "^4.8.1", @@ -910,9 +910,9 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.921.0.tgz", - "integrity": "sha512-mqEG8+vFh5w0ZZC+R8VCOdSk998Hy93pIDuwYpfMAWgYwVhFaIMOLn1fZw0w2DhTs5+ONHHwMJ6uVXtuuqOLQQ==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.922.0.tgz", + "integrity": "sha512-eLA6XjVobAUAMivvM7DBL79mnHyrm+32TkXNWZua5mnxF+6kQCfblKKJvxMZLGosO53/Ex46ogim8IY5Nbqv2w==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -937,13 +937,13 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.921.0.tgz", - "integrity": "sha512-kuJYRqug6V8gOg401BuK4w4IAVO3575VDR8iYiFw0gPwNIfOXvdlChfsJQoREqwJfif45J4eSmUsFtMfx87BQg==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.922.0.tgz", + "integrity": "sha512-4ZdQCSuNMY8HMlR1YN4MRDdXuKd+uQTeKIr5/pIM+g3TjInZoj8imvXudjcrFGA63UF3t92YVTkBq88mg58RXQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/types": "^4.8.1", "@smithy/url-parser": "^4.2.4", "@smithy/util-endpoints": "^3.2.4", @@ -967,27 +967,27 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.921.0.tgz", - "integrity": "sha512-buhv/ICWr4Nt8bquHOejCiVikBsfEYw4/HSc9U050QebRXIakt50zKYaWDQw4iCMeeqCiwE9mElEaXJAysythg==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.922.0.tgz", + "integrity": "sha512-qOJAERZ3Plj1st7M4Q5henl5FRpE30uLm6L9edZqZXGR6c7ry9jzexWamWVpQ4H4xVAVmiO9dIEBAfbq4mduOA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.921.0", + "@aws-sdk/types": "3.922.0", "@smithy/types": "^4.8.1", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.921.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.921.0.tgz", - "integrity": "sha512-Ilftai6AMAU1cEaUqIiTxkyj1NupLhP9Eq8HRfVuIH8489J2wLCcOyiLklAgSzBNmrxW+fagxkY+Dg0lFwmcVA==", + "version": "3.922.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.922.0.tgz", + "integrity": "sha512-NrPe/Rsr5kcGunkog0eBV+bY0inkRELsD2SacC4lQZvZiXf8VJ2Y7j+Yq1tB+h+FPLsdt3v9wItIvDf/laAm0Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.921.0", - "@aws-sdk/types": "3.921.0", + "@aws-sdk/middleware-user-agent": "3.922.0", + "@aws-sdk/types": "3.922.0", "@smithy/node-config-provider": "^4.3.4", "@smithy/types": "^4.8.1", "tslib": "^2.6.2" @@ -1820,9 +1820,10 @@ } }, "node_modules/@contentstack/utils": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.5.0.tgz", - "integrity": "sha512-tL1pcC4hJ+zcrvHq9c/ShTLjCVg8ACWahLDZvqT5VAalTsnR5Ik7QltjEcRsfpz/ucLQ1GVyRQRpezELCIon4A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@contentstack/utils/-/utils-1.6.0.tgz", + "integrity": "sha512-QqOJLCEGhP5L/WoWqzatOOe2Rr+Deofi7C1ujZyq0rtq6sQA8dGfG8uPVmNTew4L9f8M3HN+3kmXs1WvLouhwA==", + "hasInstallScript": true, "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { @@ -1861,9 +1862,9 @@ } }, "node_modules/@emnapi/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.6.0.tgz", - "integrity": "sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.0.tgz", + "integrity": "sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw==", "dev": true, "license": "MIT", "optional": true, @@ -1873,9 +1874,9 @@ } }, "node_modules/@emnapi/runtime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.6.0.tgz", - "integrity": "sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.0.tgz", + "integrity": "sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==", "dev": true, "license": "MIT", "optional": true, @@ -1912,9 +1913,9 @@ } }, "node_modules/@es-joy/jsdoccomment/node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -1926,9 +1927,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.11.tgz", - "integrity": "sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", "cpu": [ "ppc64" ], @@ -1943,9 +1944,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.11.tgz", - "integrity": "sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", "cpu": [ "arm" ], @@ -1960,9 +1961,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.11.tgz", - "integrity": "sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", "cpu": [ "arm64" ], @@ -1977,9 +1978,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.11.tgz", - "integrity": "sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", "cpu": [ "x64" ], @@ -1994,9 +1995,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.11.tgz", - "integrity": "sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", "cpu": [ "arm64" ], @@ -2011,9 +2012,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.11.tgz", - "integrity": "sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", "cpu": [ "x64" ], @@ -2028,9 +2029,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.11.tgz", - "integrity": "sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", "cpu": [ "arm64" ], @@ -2045,9 +2046,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.11.tgz", - "integrity": "sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", "cpu": [ "x64" ], @@ -2062,9 +2063,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.11.tgz", - "integrity": "sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", "cpu": [ "arm" ], @@ -2079,9 +2080,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.11.tgz", - "integrity": "sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", "cpu": [ "arm64" ], @@ -2096,9 +2097,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.11.tgz", - "integrity": "sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", "cpu": [ "ia32" ], @@ -2113,9 +2114,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.11.tgz", - "integrity": "sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", "cpu": [ "loong64" ], @@ -2130,9 +2131,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.11.tgz", - "integrity": "sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", "cpu": [ "mips64el" ], @@ -2147,9 +2148,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.11.tgz", - "integrity": "sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", "cpu": [ "ppc64" ], @@ -2164,9 +2165,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.11.tgz", - "integrity": "sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", "cpu": [ "riscv64" ], @@ -2181,9 +2182,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.11.tgz", - "integrity": "sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", "cpu": [ "s390x" ], @@ -2198,9 +2199,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.11.tgz", - "integrity": "sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", "cpu": [ "x64" ], @@ -2215,9 +2216,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.11.tgz", - "integrity": "sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", "cpu": [ "arm64" ], @@ -2232,9 +2233,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.11.tgz", - "integrity": "sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", "cpu": [ "x64" ], @@ -2249,9 +2250,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.11.tgz", - "integrity": "sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", "cpu": [ "arm64" ], @@ -2266,9 +2267,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.11.tgz", - "integrity": "sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", "cpu": [ "x64" ], @@ -2283,9 +2284,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.11.tgz", - "integrity": "sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", "cpu": [ "arm64" ], @@ -2300,9 +2301,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.11.tgz", - "integrity": "sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", "cpu": [ "x64" ], @@ -2317,9 +2318,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.11.tgz", - "integrity": "sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", "cpu": [ "arm64" ], @@ -2334,9 +2335,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.11.tgz", - "integrity": "sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", "cpu": [ "ia32" ], @@ -2351,9 +2352,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.11.tgz", - "integrity": "sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", "cpu": [ "x64" ], @@ -2919,9 +2920,9 @@ } }, "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.18.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.13.tgz", - "integrity": "sha512-Bo45YKIjnmFtv6I1TuC8AaHBbqXtIo+Om5fE4QiU1Tj8QR/qt+8O3BAtOimG5IFmwaWiPmB3Mv3jtYzBA4Us2A==", + "version": "22.19.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.0.tgz", + "integrity": "sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==", "dev": true, "license": "MIT", "dependencies": { @@ -3748,9 +3749,9 @@ } }, "node_modules/@oclif/plugin-help": { - "version": "6.2.34", - "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.34.tgz", - "integrity": "sha512-RvcDSp1PcXFuPJx8IvkI1sQKAPp7TuR+4QVg+uS+Dv3xG6QSqGW5IMNBdvfmB2NLrvSeIiDHadLv/bz9n4iQWQ==", + "version": "6.2.35", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.2.35.tgz", + "integrity": "sha512-ZMcQTsHaiCEOZIRZoynUQ+98fyM1Adoqx4LbOgYWRVKXKbavHPCZKm6F+/y0GpWscXVoeGnvJO6GIBsigrqaSA==", "license": "MIT", "dependencies": { "@oclif/core": "^4" @@ -3760,13 +3761,13 @@ } }, "node_modules/@oclif/plugin-not-found": { - "version": "3.2.71", - "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.71.tgz", - "integrity": "sha512-Vp93vWBzAyZFYtovQtAH3lBAtJE8Z0XUYu1/3uN2Y1kE7ywCNnivaEYRw8n4D3G4uF1g4GaXKAQP+HiYL/d2Ug==", + "version": "3.2.72", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.2.72.tgz", + "integrity": "sha512-CRcqHGdcEL4l5cls5F9FvwKt04LkdG7WyFozOu2vP1/3w34S29zbw8Tx1gAzfBZDDme5ChSaqFXU5qbTLx5yYQ==", "license": "MIT", "dependencies": { "@inquirer/prompts": "^7.9.0", - "@oclif/core": "^4.7.2", + "@oclif/core": "^4.8.0", "ansis": "^3.17.0", "fast-levenshtein": "^3.0.0" }, @@ -4091,9 +4092,9 @@ } }, "node_modules/@oclif/plugin-not-found/node_modules/@types/node": { - "version": "24.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.2.tgz", - "integrity": "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==", + "version": "24.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", + "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==", "license": "MIT", "optional": true, "peer": true, @@ -4101,12 +4102,6 @@ "undici-types": "~7.16.0" } }, - "node_modules/@oclif/plugin-not-found/node_modules/chardet": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", - "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", - "license": "MIT" - }, "node_modules/@oclif/plugin-not-found/node_modules/cli-width": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", @@ -4176,12 +4171,12 @@ } }, "node_modules/@oclif/plugin-plugins": { - "version": "5.4.52", - "resolved": "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-5.4.52.tgz", - "integrity": "sha512-OWdTWM7bQ81x8fis+HaFN7nmNvGzF6g6XZ89jWmtWCL4kgHc/v7YZnujr31C5vAyV1OWDaqWdLOB1RoTdvX3rQ==", + "version": "5.4.53", + "resolved": "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-5.4.53.tgz", + "integrity": "sha512-jezB3NEz8fQdb/jrZq8YPvEiF+aH0wHiexVCvnj7Rmy+mmTHicEuGJMPiYeJNcRvG687raIhc6TjyMMPKi0W4A==", "license": "MIT", "dependencies": { - "@oclif/core": "^4.7.2", + "@oclif/core": "^4.8.0", "ansis": "^3.17.0", "debug": "^4.4.0", "npm": "^10.9.4", @@ -4198,9 +4193,9 @@ } }, "node_modules/@oclif/plugin-warn-if-update-available": { - "version": "3.1.51", - "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.51.tgz", - "integrity": "sha512-++PpRVemEasTc8X54EL4Td0BQz+DzRilWofUxmzVHnZGJsXcM8e9VdoKkrk5yUs/7sO+MqJm17Yvsk7JHqcN3A==", + "version": "3.1.52", + "resolved": "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.1.52.tgz", + "integrity": "sha512-CAtBcMBjtuYwv2lf1U3tavAAhFtG3lYvrpestPjfIUyGSoc5kJZME1heS8Ao7IxNgp5sHFm1wNoU2vJbHJKLQg==", "dev": true, "license": "MIT", "dependencies": { @@ -4870,9 +4865,9 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.1.tgz", - "integrity": "sha512-BciDJ5hkyYEGBBKMbjGB1A/Zq8bYZ41Zo9BMnGdKF6QD1fY4zIkYx6zui/0CHaVGnv6h0iy8y4rnPX9CPCAPyQ==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.4.2.tgz", + "integrity": "sha512-4Jys0ni2tB2VZzgslbEgszZyMdTkPOFGA8g+So/NjR8oy6Qwaq4eSwsrRI+NMtb0Dq4kqCzGUu/nGUx7OM/xfw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5461,13 +5456,13 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.7", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.7.tgz", - "integrity": "sha512-6hinjVqec0WYGsqN7h9hL/ywfULmJJNXGXnNZW7jrIn/cFuC/aVlVaiDfBIJEvKcOrmN8/EgsW69eY0gXABeHw==", + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.8.tgz", + "integrity": "sha512-gIoTf9V/nFSIZ0TtgDNLd+Ws59AJvijmMDYrOozoMHPJaG9cMRdqNO50jZTlbM6ydzQYY8L/mQ4tKSw/TB+s6g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.4.1", + "@smithy/config-resolver": "^4.4.2", "@smithy/credential-provider-imds": "^4.2.4", "@smithy/node-config-provider": "^4.3.4", "@smithy/property-provider": "^4.2.4", @@ -5642,14 +5637,14 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", - "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", + "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2" + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5660,9 +5655,9 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -5674,16 +5669,16 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", - "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", + "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.2", - "@typescript-eslint/tsconfig-utils": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/project-service": "8.46.3", + "@typescript-eslint/tsconfig-utils": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -5703,16 +5698,16 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", - "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.3.tgz", + "integrity": "sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2" + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5727,13 +5722,13 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", - "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", + "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/types": "8.46.3", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -6403,14 +6398,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.2.tgz", - "integrity": "sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.3.tgz", + "integrity": "sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.2", - "@typescript-eslint/types": "^8.46.2", + "@typescript-eslint/tsconfig-utils": "^8.46.3", + "@typescript-eslint/types": "^8.46.3", "debug": "^4.3.4" }, "engines": { @@ -6425,9 +6420,9 @@ } }, "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -6457,9 +6452,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.2.tgz", - "integrity": "sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.3.tgz", + "integrity": "sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==", "dev": true, "license": "MIT", "engines": { @@ -7499,9 +7494,9 @@ } }, "node_modules/axios": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.1.tgz", - "integrity": "sha512-hU4EGxxt+j7TQijx1oYdAjw4xuIp1wRQSsbMFwSthCWeBQur1eF+qJ5iQ5sN3Tw8YRzQNKb8jszgBdMDVqwJcw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", "license": "MIT", "dependencies": { "follow-redirects": "^1.15.6", @@ -7662,9 +7657,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.8.21", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.21.tgz", - "integrity": "sha512-JU0h5APyQNsHOlAM7HnQnPToSDQoEBZqzu/YBlqDnEeymPnZDREeXJA3KBMQee+dKteAxZ2AtvQEvVYdZf241Q==", + "version": "2.8.25", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.25.tgz", + "integrity": "sha512-2NovHVesVF5TXefsGX1yzx1xgr7+m9JQenvz6FQY3qd+YXkKkYiv+vTCc7OriP9mcDZpTC5mAOYN4ocd29+erA==", "dev": true, "license": "Apache-2.0", "bin": { @@ -8149,9 +8144,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001752", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001752.tgz", - "integrity": "sha512-vKUk7beoukxE47P5gcVNKkDRzXdVofotshHwfR9vmpeFKxmI5PBpgOMC18LUJUA/DvJ70Y7RveasIBraqsyO/g==", + "version": "1.0.30001754", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001754.tgz", + "integrity": "sha512-x6OeBXueoAceOmotzx3PO4Zpt4rzpeIFsSr6AAePTZxSkXiYDUmpypEl7e2+8NCd9bD7bXjqyef8CJYPC1jfxg==", "dev": true, "funding": [ { @@ -8286,9 +8281,9 @@ } }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "license": "MIT" }, "node_modules/check-error": { @@ -9651,9 +9646,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.244", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.244.tgz", - "integrity": "sha512-OszpBN7xZX4vWMPJwB9illkN/znA8M36GQqQxi6MNy9axWxhOfJyZZJtSLQCpEFLHP2xK33BiWx9aIuIEXVCcw==", + "version": "1.5.245", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.245.tgz", + "integrity": "sha512-rdmGfW47ZhL/oWEJAY4qxRtdly2B98ooTJ0pdEI4jhVLZ6tNf8fPtov2wS1IRKwFJT92le3x4Knxiwzl7cPPpQ==", "dev": true, "license": "ISC" }, @@ -9926,9 +9921,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.25.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.11.tgz", - "integrity": "sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==", + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -9939,32 +9934,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.11", - "@esbuild/android-arm": "0.25.11", - "@esbuild/android-arm64": "0.25.11", - "@esbuild/android-x64": "0.25.11", - "@esbuild/darwin-arm64": "0.25.11", - "@esbuild/darwin-x64": "0.25.11", - "@esbuild/freebsd-arm64": "0.25.11", - "@esbuild/freebsd-x64": "0.25.11", - "@esbuild/linux-arm": "0.25.11", - "@esbuild/linux-arm64": "0.25.11", - "@esbuild/linux-ia32": "0.25.11", - "@esbuild/linux-loong64": "0.25.11", - "@esbuild/linux-mips64el": "0.25.11", - "@esbuild/linux-ppc64": "0.25.11", - "@esbuild/linux-riscv64": "0.25.11", - "@esbuild/linux-s390x": "0.25.11", - "@esbuild/linux-x64": "0.25.11", - "@esbuild/netbsd-arm64": "0.25.11", - "@esbuild/netbsd-x64": "0.25.11", - "@esbuild/openbsd-arm64": "0.25.11", - "@esbuild/openbsd-x64": "0.25.11", - "@esbuild/openharmony-arm64": "0.25.11", - "@esbuild/sunos-x64": "0.25.11", - "@esbuild/win32-arm64": "0.25.11", - "@esbuild/win32-ia32": "0.25.11", - "@esbuild/win32-x64": "0.25.11" + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" } }, "node_modules/escalade": { @@ -10089,13 +10084,13 @@ } }, "node_modules/eslint-config-oclif": { - "version": "6.0.114", - "resolved": "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-6.0.114.tgz", - "integrity": "sha512-KBl29BbP9dELCBqiF0fVNXp1tDB97ZWEjW2mXzDWkvvVWdDxdrmCM5nV4PJdnzlaGQ559FwfbUS2rWag4VsvAQ==", + "version": "6.0.115", + "resolved": "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-6.0.115.tgz", + "integrity": "sha512-WxwiKCzES27wFg2uJQ5uHyCbb6E+50fNf3gz0e4Ie+gplc9qXG42I6Sv7ugUMJOZ6FdJTrYZ0IZFUldMA8MvmQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint/compat": "^1.4.0", + "@eslint/compat": "^1.4.1", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "^9.38.0", "@stylistic/eslint-plugin": "^3.1.0", @@ -10504,20 +10499,6 @@ "typescript": ">=4.2.0" } }, - "node_modules/eslint-config-oclif/node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/eslint-config-oclif/node_modules/@eslint/eslintrc": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", @@ -10543,9 +10524,9 @@ } }, "node_modules/eslint-config-oclif/node_modules/@eslint/js": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", - "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -10556,17 +10537,17 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", - "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.3.tgz", + "integrity": "sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/type-utils": "8.46.2", - "@typescript-eslint/utils": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/type-utils": "8.46.3", + "@typescript-eslint/utils": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -10580,7 +10561,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.46.2", + "@typescript-eslint/parser": "^8.46.3", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -10596,16 +10577,16 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/parser": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", - "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.3.tgz", + "integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4" }, "engines": { @@ -10621,14 +10602,14 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", - "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", + "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2" + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10639,15 +10620,15 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/type-utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", - "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.3.tgz", + "integrity": "sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/utils": "8.46.2", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3", + "@typescript-eslint/utils": "8.46.3", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -10664,9 +10645,9 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -10678,16 +10659,16 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", - "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", + "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.2", - "@typescript-eslint/tsconfig-utils": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/project-service": "8.46.3", + "@typescript-eslint/tsconfig-utils": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -10723,16 +10704,16 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", - "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.3.tgz", + "integrity": "sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2" + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10747,13 +10728,13 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", - "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", + "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/types": "8.46.3", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -10798,9 +10779,9 @@ } }, "node_modules/eslint-config-oclif/node_modules/eslint": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", - "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "peer": true, @@ -10808,11 +10789,11 @@ "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.1", - "@eslint/core": "^0.16.0", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.38.0", - "@eslint/plugin-kit": "^0.4.0", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -10978,9 +10959,9 @@ } }, "node_modules/eslint-config-oclif/node_modules/eslint-config-xo/node_modules/globals": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", - "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", "dev": true, "license": "MIT", "engines": { @@ -11527,14 +11508,14 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", - "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", + "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2" + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11545,9 +11526,9 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -11559,16 +11540,16 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", - "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", + "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.2", - "@typescript-eslint/tsconfig-utils": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/project-service": "8.46.3", + "@typescript-eslint/tsconfig-utils": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -11588,16 +11569,16 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", - "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.3.tgz", + "integrity": "sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2" + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11612,13 +11593,13 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", - "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", + "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/types": "8.46.3", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -12050,19 +12031,25 @@ } }, "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "license": "MIT", "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", "tmp": "^0.0.33" }, "engines": { - "node": ">=4" + "node": ">=0.12" } }, + "node_modules/external-editor/node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", + "license": "MIT" + }, "node_modules/external-editor/node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -13178,9 +13165,9 @@ "license": "MIT" }, "node_modules/graphql": { - "version": "16.11.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.11.0.tgz", - "integrity": "sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==", + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.12.0.tgz", + "integrity": "sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==", "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -13682,16 +13669,16 @@ } }, "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz", + "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", "license": "MIT", "dependencies": { + "@inquirer/external-editor": "^1.0.0", "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", - "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", @@ -13779,12 +13766,6 @@ "node": ">=4" } }, - "node_modules/inquirer-search-checkbox/node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", - "license": "MIT" - }, "node_modules/inquirer-search-checkbox/node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -13827,20 +13808,6 @@ "node": ">=0.8.0" } }, - "node_modules/inquirer-search-checkbox/node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "license": "MIT", - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/inquirer-search-checkbox/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -13970,18 +13937,6 @@ "node": ">=4" } }, - "node_modules/inquirer-search-checkbox/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/inquirer-search-list": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/inquirer-search-list/-/inquirer-search-list-1.2.6.tgz", @@ -14038,12 +13993,6 @@ "node": ">=4" } }, - "node_modules/inquirer-search-list/node_modules/chardet": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", - "integrity": "sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==", - "license": "MIT" - }, "node_modules/inquirer-search-list/node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", @@ -14086,20 +14035,6 @@ "node": ">=0.8.0" } }, - "node_modules/inquirer-search-list/node_modules/external-editor": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", - "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", - "license": "MIT", - "dependencies": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/inquirer-search-list/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -14229,16 +14164,52 @@ "node": ">=4" } }, - "node_modules/inquirer-search-list/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "node_modules/inquirer/node_modules/@inquirer/external-editor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", + "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==", "license": "MIT", "dependencies": { - "os-tmpdir": "~1.0.2" + "chardet": "^2.1.0", + "iconv-lite": "^0.7.0" }, "engines": { - "node": ">=0.6.0" + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/inquirer/node_modules/@types/node": { + "version": "24.10.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.0.tgz", + "integrity": "sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/inquirer/node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/inquirer/node_modules/rxjs": { @@ -14250,6 +14221,14 @@ "tslib": "^2.1.0" } }, + "node_modules/inquirer/node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "license": "MIT", + "optional": true, + "peer": true + }, "node_modules/inquirer/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", @@ -20926,21 +20905,21 @@ } }, "node_modules/oclif": { - "version": "4.22.38", - "resolved": "https://registry.npmjs.org/oclif/-/oclif-4.22.38.tgz", - "integrity": "sha512-h9DiPdiu61/NjBqBQroSZ+cRhcaQZuXUmUejmbYoNZ+yASthZ88fAY2GkR4vfEDUt7pLVXpJYmoLulM2Nl3TWA==", + "version": "4.22.41", + "resolved": "https://registry.npmjs.org/oclif/-/oclif-4.22.41.tgz", + "integrity": "sha512-YGX9c5ADPHQTWgSIfOZ5c4AIkuHf5vPbhQ7sP4NTAkikD0trTeLQGOhodzX29ORQkYA7gNpdRhHNMysggiI1zw==", "dev": true, "license": "MIT", "dependencies": { - "@aws-sdk/client-cloudfront": "^3.917.0", + "@aws-sdk/client-cloudfront": "^3.922.0", "@aws-sdk/client-s3": "^3.913.0", "@inquirer/confirm": "^3.1.22", "@inquirer/input": "^2.2.4", "@inquirer/select": "^2.5.0", - "@oclif/core": "^4.5.5", + "@oclif/core": "^4.8.0", "@oclif/plugin-help": "^6.2.34", "@oclif/plugin-not-found": "^3.2.71", - "@oclif/plugin-warn-if-update-available": "^3.1.50", + "@oclif/plugin-warn-if-update-available": "^3.1.51", "ansis": "^3.16.0", "async-retry": "^1.3.3", "change-case": "^4", @@ -22807,19 +22786,6 @@ "pirates": "^4.0.7" } }, - "node_modules/rewire/node_modules/@eslint/core": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", - "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, "node_modules/rewire/node_modules/@eslint/eslintrc": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", @@ -22845,9 +22811,9 @@ } }, "node_modules/rewire/node_modules/@eslint/js": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.38.0.tgz", - "integrity": "sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -22886,20 +22852,20 @@ } }, "node_modules/rewire/node_modules/eslint": { - "version": "9.38.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.38.0.tgz", - "integrity": "sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.1", - "@eslint/core": "^0.16.0", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.38.0", - "@eslint/plugin-kit": "^0.4.0", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -25474,16 +25440,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.2.tgz", - "integrity": "sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.3.tgz", + "integrity": "sha512-bAfgMavTuGo+8n6/QQDVQz4tZ4f7Soqg53RbrlZQEoAltYop/XR4RAts/I0BrO3TTClTSTFJ0wYbla+P8cEWJA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.46.2", - "@typescript-eslint/parser": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/utils": "8.46.2" + "@typescript-eslint/eslint-plugin": "8.46.3", + "@typescript-eslint/parser": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3", + "@typescript-eslint/utils": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25498,17 +25464,17 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.2.tgz", - "integrity": "sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.3.tgz", + "integrity": "sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/type-utils": "8.46.2", - "@typescript-eslint/utils": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/type-utils": "8.46.3", + "@typescript-eslint/utils": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -25522,22 +25488,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.46.2", + "@typescript-eslint/parser": "^8.46.3", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.2.tgz", - "integrity": "sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.3.tgz", + "integrity": "sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4" }, "engines": { @@ -25553,14 +25519,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.2.tgz", - "integrity": "sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.3.tgz", + "integrity": "sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2" + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25571,15 +25537,15 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.2.tgz", - "integrity": "sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.3.tgz", + "integrity": "sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2", - "@typescript-eslint/utils": "8.46.2", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3", + "@typescript-eslint/utils": "8.46.3", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -25596,9 +25562,9 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.2.tgz", - "integrity": "sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.3.tgz", + "integrity": "sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==", "dev": true, "license": "MIT", "engines": { @@ -25610,16 +25576,16 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.2.tgz", - "integrity": "sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.3.tgz", + "integrity": "sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.2", - "@typescript-eslint/tsconfig-utils": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/visitor-keys": "8.46.2", + "@typescript-eslint/project-service": "8.46.3", + "@typescript-eslint/tsconfig-utils": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/visitor-keys": "8.46.3", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -25639,16 +25605,16 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.2.tgz", - "integrity": "sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.3.tgz", + "integrity": "sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.2", - "@typescript-eslint/types": "8.46.2", - "@typescript-eslint/typescript-estree": "8.46.2" + "@typescript-eslint/scope-manager": "8.46.3", + "@typescript-eslint/types": "8.46.3", + "@typescript-eslint/typescript-estree": "8.46.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25663,13 +25629,13 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.2.tgz", - "integrity": "sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==", + "version": "8.46.3", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.3.tgz", + "integrity": "sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.2", + "@typescript-eslint/types": "8.46.3", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -26602,25 +26568,25 @@ }, "packages/contentstack": { "name": "@contentstack/cli", - "version": "1.51.1", + "version": "1.52.0", "license": "MIT", "dependencies": { "@contentstack/cli-audit": "~1.16.0", "@contentstack/cli-auth": "~1.6.1", - "@contentstack/cli-cm-bootstrap": "~1.16.1", + "@contentstack/cli-cm-bootstrap": "~1.17.0", "@contentstack/cli-cm-branches": "~1.6.0", "@contentstack/cli-cm-bulk-publish": "~1.10.2", - "@contentstack/cli-cm-clone": "~1.16.1", - "@contentstack/cli-cm-export": "~1.20.1", - "@contentstack/cli-cm-export-to-csv": "~1.9.1", - "@contentstack/cli-cm-import": "~1.28.4", + "@contentstack/cli-cm-clone": "~1.17.0", + "@contentstack/cli-cm-export": "~1.21.0", + "@contentstack/cli-cm-export-to-csv": "~1.10.0", + "@contentstack/cli-cm-import": "~1.29.0", "@contentstack/cli-cm-import-setup": "1.6.0", "@contentstack/cli-cm-migrate-rte": "~1.6.1", - "@contentstack/cli-cm-seed": "~1.12.2", + "@contentstack/cli-cm-seed": "~1.13.0", "@contentstack/cli-command": "~1.6.1", "@contentstack/cli-config": "~1.15.2", "@contentstack/cli-launch": "^1.9.2", - "@contentstack/cli-migration": "~1.9.0", + "@contentstack/cli-migration": "~1.10.0", "@contentstack/cli-utilities": "~1.14.4", "@contentstack/cli-variants": "~1.3.4", "@contentstack/management": "~1.22.0", @@ -26631,7 +26597,7 @@ "chalk": "^4.1.2", "debug": "^4.4.1", "figlet": "1.8.1", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "node-machine-id": "^1.1.12", "open": "^8.4.2", "semver": "^7.7.2", @@ -26899,15 +26865,15 @@ }, "packages/contentstack-bootstrap": { "name": "@contentstack/cli-cm-bootstrap", - "version": "1.16.1", + "version": "1.17.0", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-seed": "~1.12.2", + "@contentstack/cli-cm-seed": "~1.13.0", "@contentstack/cli-command": "~1.6.1", "@contentstack/cli-utilities": "~1.14.4", "@oclif/core": "^4.3.0", "@oclif/plugin-help": "^6.2.28", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "mkdirp": "^1.0.4", "tar": "^6.2.1 " }, @@ -27013,7 +26979,7 @@ "@oclif/plugin-help": "^6.2.28", "chalk": "^4.1.2", "dotenv": "^16.5.0", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "lodash": "^4.17.21", "winston": "^3.17.0" }, @@ -27032,18 +26998,18 @@ }, "packages/contentstack-clone": { "name": "@contentstack/cli-cm-clone", - "version": "1.16.1", + "version": "1.17.0", "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", - "@contentstack/cli-cm-export": "~1.20.1", - "@contentstack/cli-cm-import": "~1.28.4", + "@contentstack/cli-cm-export": "~1.21.0", + "@contentstack/cli-cm-import": "~1.29.0", "@contentstack/cli-command": "~1.6.1", "@contentstack/cli-utilities": "~1.14.4", "@oclif/core": "^4.3.0", "@oclif/plugin-help": "^6.2.28", "chalk": "^4.1.2", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "lodash": "^4.17.21", "merge": "^2.1.1", "ora": "^5.4.1", @@ -27464,7 +27430,7 @@ }, "packages/contentstack-export": { "name": "@contentstack/cli-cm-export", - "version": "1.20.2", + "version": "1.21.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.6.1", @@ -27513,7 +27479,7 @@ }, "packages/contentstack-export-to-csv": { "name": "@contentstack/cli-cm-export-to-csv", - "version": "1.9.1", + "version": "1.10.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.6.1", @@ -27596,27 +27562,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "packages/contentstack-export-to-csv/node_modules/@inquirer/external-editor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", - "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==", - "license": "MIT", - "dependencies": { - "chardet": "^2.1.0", - "iconv-lite": "^0.7.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, "packages/contentstack-export-to-csv/node_modules/@types/mocha": { "version": "10.0.10", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.10.tgz", @@ -27624,17 +27569,6 @@ "dev": true, "license": "MIT" }, - "packages/contentstack-export-to-csv/node_modules/@types/node": { - "version": "24.9.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.9.2.tgz", - "integrity": "sha512-uWN8YqxXxqFMX2RqGOrumsKeti4LlmIMIyV0lgut4jx7KQBcBiW6vkDtIBvHnHIquwNfJhk8v2OtmO8zXWHfPA==", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "undici-types": "~7.16.0" - } - }, "packages/contentstack-export-to-csv/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", @@ -27686,12 +27620,6 @@ "concat-map": "0.0.1" } }, - "packages/contentstack-export-to-csv/node_modules/chardet": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", - "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", - "license": "MIT" - }, "packages/contentstack-export-to-csv/node_modules/eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", @@ -27825,22 +27753,6 @@ "node": ">= 6" } }, - "packages/contentstack-export-to-csv/node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "packages/contentstack-export-to-csv/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", @@ -27851,32 +27763,6 @@ "node": ">= 4" } }, - "packages/contentstack-export-to-csv/node_modules/inquirer": { - "version": "8.2.7", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz", - "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", - "license": "MIT", - "dependencies": { - "@inquirer/external-editor": "^1.0.0", - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, "packages/contentstack-export-to-csv/node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", @@ -27926,37 +27812,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "packages/contentstack-export-to-csv/node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "packages/contentstack-export-to-csv/node_modules/undici-types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", - "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "license": "MIT", - "optional": true, - "peer": true - }, - "packages/contentstack-export-to-csv/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, "packages/contentstack-export/node_modules/@sinonjs/fake-timers": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.3.1.tgz", @@ -28039,7 +27894,7 @@ }, "packages/contentstack-import": { "name": "@contentstack/cli-cm-import", - "version": "1.28.4", + "version": "1.29.0", "license": "MIT", "dependencies": { "@contentstack/cli-audit": "~1.16.0", @@ -28163,7 +28018,7 @@ }, "packages/contentstack-migration": { "name": "@contentstack/cli-migration", - "version": "1.9.0", + "version": "1.10.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.6.1", @@ -28194,14 +28049,14 @@ }, "packages/contentstack-seed": { "name": "@contentstack/cli-cm-seed", - "version": "1.12.2", + "version": "1.13.0", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-import": "~1.28.4", + "@contentstack/cli-cm-import": "~1.29.0", "@contentstack/cli-command": "~1.6.1", "@contentstack/cli-utilities": "~1.14.4", "@contentstack/management": "~1.22.0", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "mkdirp": "^1.0.4", "tar": "^6.2.1", "tmp": "^0.2.3" @@ -28279,7 +28134,7 @@ "conf": "^10.2.0", "dotenv": "^16.5.0", "figures": "^3.2.0", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "inquirer-search-checkbox": "^1.0.0", "inquirer-search-list": "^1.2.6", "js-yaml": "^4.1.0", diff --git a/packages/contentstack-bootstrap/package.json b/packages/contentstack-bootstrap/package.json index 7a56aaf8e0..80f57a84bc 100644 --- a/packages/contentstack-bootstrap/package.json +++ b/packages/contentstack-bootstrap/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-bootstrap", "description": "Bootstrap contentstack apps", - "version": "1.16.1", + "version": "1.17.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "scripts": { @@ -16,12 +16,12 @@ "test:report": "nyc --reporter=lcov mocha \"test/**/*.test.js\"" }, "dependencies": { - "@contentstack/cli-cm-seed": "~1.12.2", + "@contentstack/cli-cm-seed": "~1.13.0", "@contentstack/cli-command": "~1.6.1", "@contentstack/cli-utilities": "~1.14.4", "@oclif/core": "^4.3.0", "@oclif/plugin-help": "^6.2.28", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "mkdirp": "^1.0.4", "tar": "^6.2.1 " }, diff --git a/packages/contentstack-bulk-publish/package.json b/packages/contentstack-bulk-publish/package.json index e16e5ecec2..22321e0548 100644 --- a/packages/contentstack-bulk-publish/package.json +++ b/packages/contentstack-bulk-publish/package.json @@ -12,7 +12,7 @@ "@oclif/plugin-help": "^6.2.28", "chalk": "^4.1.2", "dotenv": "^16.5.0", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "lodash": "^4.17.21", "winston": "^3.17.0" }, diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json index a0b8a26642..7b3c066013 100644 --- a/packages/contentstack-clone/package.json +++ b/packages/contentstack-clone/package.json @@ -1,19 +1,19 @@ { "name": "@contentstack/cli-cm-clone", "description": "Contentstack stack clone plugin", - "version": "1.16.1", + "version": "1.17.0", "author": "Contentstack", "bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues", "dependencies": { "@colors/colors": "^1.6.0", - "@contentstack/cli-cm-export": "~1.20.1", - "@contentstack/cli-cm-import": "~1.28.4", + "@contentstack/cli-cm-export": "~1.21.0", + "@contentstack/cli-cm-import": "~1.29.0", "@contentstack/cli-command": "~1.6.1", "@contentstack/cli-utilities": "~1.14.4", "@oclif/core": "^4.3.0", "@oclif/plugin-help": "^6.2.28", "chalk": "^4.1.2", - "inquirer": "8.2.6", + "inquirer": "8.2.7", "lodash": "^4.17.21", "merge": "^2.1.1", "ora": "^5.4.1", diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md index 19b10888a3..1aea06b534 100644 --- a/packages/contentstack-config/README.md +++ b/packages/contentstack-config/README.md @@ -395,7 +395,7 @@ USAGE [--personalize ] [--launch ] ARGUMENTS - REGION Name for the region + [REGION] Name for the region FLAGS -d, --cda= Custom host to set for content delivery API, if this flag is added then cma, ui-host and diff --git a/packages/contentstack-export-to-csv/package.json b/packages/contentstack-export-to-csv/package.json index 4506c5c242..d309797860 100644 --- a/packages/contentstack-export-to-csv/package.json +++ b/packages/contentstack-export-to-csv/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-export-to-csv", "description": "Export entities to csv", - "version": "1.9.1", + "version": "1.10.0", "author": "Abhinav Gupta @abhinav-from-contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-export-to-csv/src/commands/cm/export-to-csv.js b/packages/contentstack-export-to-csv/src/commands/cm/export-to-csv.js index 80e245111f..2c98a30506 100644 --- a/packages/contentstack-export-to-csv/src/commands/cm/export-to-csv.js +++ b/packages/contentstack-export-to-csv/src/commands/cm/export-to-csv.js @@ -7,7 +7,6 @@ const { cliux, doesBranchExist, isManagementTokenValid, - log } = require('@contentstack/cli-utilities'); const util = require('../../util'); const config = require('../../util/config'); @@ -18,7 +17,8 @@ class ExportToCsvCommand extends Command { required: false, multiple: false, options: ['entries', 'users', 'teams', 'taxonomies'], - description: 'Option to export data (entries, users, teams, taxonomies). ', + description: + 'Option to export data (entries, users, teams, taxonomies). ', }), alias: flags.string({ char: 'a', @@ -67,12 +67,22 @@ class ExportToCsvCommand extends Command { 'taxonomy-uid': flags.string({ description: 'Provide the taxonomy UID of the related terms you want to export.', }), + 'include-fallback': flags.boolean({ + description: + "[Optional] Include fallback locale data when exporting taxonomies. When enabled, if a taxonomy term doesn't exist in the specified locale, it will fallback to the hierarchy defined in the branch settings.", + default: false, + }), + 'fallback-locale': flags.string({ + description: + "[Optional] Specify a specific fallback locale for taxonomy export. This locale will be used when a taxonomy term doesn't exist in the primary locale. Takes priority over branch fallback hierarchy when both are specified.", + required: false, + }), delimiter: flags.string({ - description: '[optional] Provide a delimiter to separate individual data fields within the CSV file. For example: cm:export-to-csv --delimiter \'|\'', + description: + "[optional] Provide a delimiter to separate individual data fields within the CSV file. For example: cm:export-to-csv --delimiter '|'", default: ',', }), - }; - + }; async run() { try { let action, managementAPIClient; @@ -87,9 +97,11 @@ class ExportToCsvCommand extends Command { 'content-type': contentTypesFlag, alias: managementTokenAlias, branch: branchUid, - "team-uid": teamUid, + 'team-uid': teamUid, 'taxonomy-uid': taxonomyUID, - delimiter + 'include-fallback': includeFallback, + 'fallback-locale': fallbackLocale, + delimiter, }, } = await this.parse(ExportToCsvCommand); @@ -127,7 +139,12 @@ class ExportToCsvCommand extends Command { } stackAPIClient = this.getStackClient(managementAPIClient, stack); - stackAPIClient = await this.checkAndUpdateBranchDetail(branchUid, stack, stackAPIClient, managementAPIClient); + stackAPIClient = await this.checkAndUpdateBranchDetail( + branchUid, + stack, + stackAPIClient, + managementAPIClient, + ); const contentTypeCount = await util.getContentTypeCount(stackAPIClient); @@ -223,15 +240,15 @@ class ExportToCsvCommand extends Command { } case config.exportTeams: case 'teams': { - try{ + try { let organization; if (org) { organization = { uid: org, name: orgName || org }; } else { organization = await util.chooseOrganization(managementAPIClient, action); // prompt for organization } - - await util.exportTeams(managementAPIClient,organization,teamUid, delimiter); + + await util.exportTeams(managementAPIClient, organization, teamUid, delimiter); } catch (error) { if (error.message || error.errorMessage) { cliux.error(util.formatError(error)); @@ -242,7 +259,11 @@ class ExportToCsvCommand extends Command { case config.exportTaxonomies: case 'taxonomies': { let stack; + let language; let stackAPIClient; + let finalIncludeFallback = includeFallback; + let finalFallbackLocale = fallbackLocale; + if (managementTokenAlias) { const { stackDetails, apiClient } = await this.getAliasDetails(managementTokenAlias, stackName); managementAPIClient = apiClient; @@ -252,7 +273,27 @@ class ExportToCsvCommand extends Command { } stackAPIClient = this.getStackClient(managementAPIClient, stack); - await this.createTaxonomyAndTermCsvFile(stackAPIClient, stackName, stack, taxonomyUID, delimiter); + if (locale) { + language = { code: locale }; + } else { + language = await util.chooseLanguage(stackAPIClient); + } + + // if (includeFallback === undefined || fallbackLocale === undefined) { + // const fallbackOptions = await util.chooseFallbackOptions(stackAPIClient); + // } + + + if (fallbackLocale !== undefined) { + finalFallbackLocale = fallbackLocale; + } + + await this.createTaxonomyAndTermCsvFile(stackAPIClient, stackName, stack, taxonomyUID, delimiter, { + locale: language.code, + branch: branchUid, + include_fallback: finalIncludeFallback, + fallback_locale: finalFallbackLocale, + }); break; } } @@ -287,7 +328,7 @@ class ExportToCsvCommand extends Command { .query() .find() .then(({ items }) => (items !== undefined ? items : [])) - .catch((_err) => {}); + .catch(() => {}); } /** @@ -335,9 +376,14 @@ class ExportToCsvCommand extends Command { let apiClient, stackDetails; const listOfTokens = configHandler.get('tokens'); if (managementTokenAlias && listOfTokens[managementTokenAlias]) { - const checkManagementTokenValidity = await isManagementTokenValid((listOfTokens[managementTokenAlias].apiKey) ,listOfTokens[managementTokenAlias].token); - if(checkManagementTokenValidity.hasOwnProperty('message')) { - throw checkManagementTokenValidity.valid==='failedToCheck'?checkManagementTokenValidity.message:(`error: Management token or stack API key is invalid. ${checkManagementTokenValidity.message}`); + const checkManagementTokenValidity = await isManagementTokenValid( + listOfTokens[managementTokenAlias].apiKey, + listOfTokens[managementTokenAlias].token, + ); + if (Object.prototype.hasOwnProperty.call(checkManagementTokenValidity, 'message')) { + throw checkManagementTokenValidity.valid === 'failedToCheck' + ? checkManagementTokenValidity.message + : `error: Management token or stack API key is invalid. ${checkManagementTokenValidity.message}`; } apiClient = await managementSDKClient({ host: this.cmaHost, @@ -393,13 +439,12 @@ class ExportToCsvCommand extends Command { * @param {object} stack * @param {string} taxUID */ - async createTaxonomyAndTermCsvFile(stackAPIClient, stackName, stack, taxUID, delimiter) { - //TODO: Temp variable to export taxonomies in importable format will replaced with flag once decided - const importableCSV = true; + async createTaxonomyAndTermCsvFile(stackAPIClient, stackName, stack, taxUID, delimiter, localeOptions = {}) { const payload = { stackAPIClient, type: '', limit: config.limit || 100, + ...localeOptions, // Spread locale, branch, include_fallback, fallback_locale }; //check whether the taxonomy is valid or not let taxonomies = []; @@ -411,36 +456,13 @@ class ExportToCsvCommand extends Command { taxonomies = await util.getAllTaxonomies(payload); } - if (!importableCSV) { - const formattedTaxonomiesData = util.formatTaxonomiesData(taxonomies); - if (formattedTaxonomiesData?.length) { - const fileName = `${stackName ? stackName : stack.name}_taxonomies.csv`; - util.write(this, formattedTaxonomiesData, fileName, 'taxonomies', delimiter); - } else { - cliux.print('info: No taxonomies found! Please provide a valid stack.', { color: 'blue' }); - } - - for (let index = 0; index < taxonomies?.length; index++) { - const taxonomy = taxonomies[index]; - const taxonomyUID = taxonomy?.uid; - if (taxonomyUID) { - payload['taxonomyUID'] = taxonomyUID; - const terms = await util.getAllTermsOfTaxonomy(payload); - const formattedTermsData = util.formatTermsOfTaxonomyData(terms, taxonomyUID); - const taxonomyName = taxonomy?.name ?? ''; - const termFileName = `${stackName ?? stack.name}_${taxonomyName}_${taxonomyUID}_terms.csv`; - if (formattedTermsData?.length) { - util.write(this, formattedTermsData, termFileName, 'terms', delimiter); - } else { - cliux.print(`info: No terms found for the taxonomy UID - '${taxonomyUID}'!`, { color: 'blue' }); - } - } - } + if (!taxonomies?.length) { + cliux.print('info: No taxonomies found!', { color: 'blue' }); } else { const fileName = `${stackName ?? stack.name}_taxonomies.csv`; const { taxonomiesData, headers } = await util.createImportableCSV(payload, taxonomies); if (taxonomiesData?.length) { - util.write(this, taxonomiesData, fileName, 'taxonomies',delimiter, headers); + util.write(this, taxonomiesData, fileName, 'taxonomies', delimiter, headers); } } } @@ -486,6 +508,16 @@ ExportToCsvCommand.examples = [ '', 'Exporting taxonomies and respective terms to a .CSV file with a delimiter', 'csdx cm:export-to-csv --action --alias --delimiter ', + '', + 'Exporting taxonomies with specific locale', + 'csdx cm:export-to-csv --action --alias --locale ', + '', + 'Exporting taxonomies with fallback locale support', + 'csdx cm:export-to-csv --action --alias --locale --include-fallback', + '', + 'Exporting taxonomies with custom fallback locale', + 'csdx cm:export-to-csv --action --alias --locale --include-fallback --fallback-locale ', + '', ]; module.exports = ExportToCsvCommand; diff --git a/packages/contentstack-export-to-csv/src/util/index.js b/packages/contentstack-export-to-csv/src/util/index.js index 150c74c02b..e1b2cfc7c9 100644 --- a/packages/contentstack-export-to-csv/src/util/index.js +++ b/packages/contentstack-export-to-csv/src/util/index.js @@ -485,6 +485,50 @@ function startupQuestions() { }); } +function chooseFallbackOptions(stackAPIClient) { + return new Promise(async (resolve, reject) => { + try { + const questions = [ + { + type: 'confirm', + name: 'includeFallback', + message: 'Include fallback locale data when exporting taxonomies?', + default: false, + }, + ]; + + const { includeFallback } = await inquirer.prompt(questions); + + let fallbackLocale = null; + + if (includeFallback) { + // Get available languages for fallback locale selection + const languages = await getLanguages(stackAPIClient); + const languagesList = Object.keys(languages); + + const fallbackQuestion = [ + { + type: 'list', + name: 'selectedFallbackLocale', + message: 'Choose fallback locale', + choices: languagesList, + }, + ]; + + const { selectedFallbackLocale } = await inquirer.prompt(fallbackQuestion); + fallbackLocale = languages[selectedFallbackLocale]; + } + + resolve({ + includeFallback, + fallbackLocale, + }); + } catch (error) { + reject(error); + } + }); +} + function getOrgUsers(managementAPIClient, orgUid) { return new Promise((resolve, reject) => { managementAPIClient @@ -1080,11 +1124,17 @@ async function getTaxonomy(payload) { * @returns {*} Promise */ async function taxonomySDKHandler(payload, skip) { - const { stackAPIClient, taxonomyUID, type, format } = payload; + const { stackAPIClient, taxonomyUID, type, format, locale, branch, include_fallback, fallback_locale } = payload; const queryParams = { include_count: true, limit: payload.limit }; if (skip >= 0) queryParams['skip'] = skip || 0; + // Add locale and branch parameters if provided + if (locale) queryParams['locale'] = locale; + if (branch) queryParams['branch'] = branch; + if (include_fallback !== undefined) queryParams['include_fallback'] = include_fallback; + if (fallback_locale) queryParams['fallback_locale'] = fallback_locale; + switch (type) { case 'taxonomies': return await stackAPIClient @@ -1109,9 +1159,15 @@ async function taxonomySDKHandler(payload, skip) { .then((data) => data) .catch((err) => handleTaxonomyErrorMsg(err)); case 'export-taxonomies': + const exportParams = { format }; + if (locale) exportParams.locale = locale; + if (branch) exportParams.branch = branch; + if (include_fallback !== undefined) exportParams.include_fallback = include_fallback; + if (fallback_locale) exportParams.fallback_locale = fallback_locale; + return await stackAPIClient .taxonomy(taxonomyUID) - .export({ format }) + .export(exportParams) .then((data) => data) .catch((err) => handleTaxonomyErrorMsg(err)); default: @@ -1176,20 +1232,20 @@ function handleTaxonomyErrorMsg(err) { * @returns */ async function createImportableCSV(payload, taxonomies) { - let taxonomiesData = []; - let headers = []; - payload['type'] = 'export-taxonomies'; - payload['format'] = 'csv'; - for (const taxonomy of taxonomies) { - if (taxonomy?.uid) { - payload['taxonomyUID'] = taxonomy?.uid; - const data = await taxonomySDKHandler(payload); - const taxonomies = await csvParse(data, headers); - taxonomiesData.push(...taxonomies); - } + let taxonomiesData = []; + let headers = []; + payload['type'] = 'export-taxonomies'; + payload['format'] = 'csv'; + for (const taxonomy of taxonomies) { + if (taxonomy?.uid) { + payload['taxonomyUID'] = taxonomy?.uid; + const data = await taxonomySDKHandler(payload); + const taxonomies = await csvParse(data, headers); + taxonomiesData.push(...taxonomies); } + } - return { taxonomiesData, headers }; + return { taxonomiesData, headers }; } /** @@ -1224,6 +1280,7 @@ module.exports = { chooseBranch: chooseBranch, chooseContentType: chooseContentType, chooseLanguage: chooseLanguage, + chooseFallbackOptions: chooseFallbackOptions, getEntries: getEntries, getEnvironments: getEnvironments, cleanEntries: cleanEntries, diff --git a/packages/contentstack-export-to-csv/test/mock-data/common.mock.json b/packages/contentstack-export-to-csv/test/mock-data/common.mock.json index e715cd5c60..46f65c1e25 100644 --- a/packages/contentstack-export-to-csv/test/mock-data/common.mock.json +++ b/packages/contentstack-export-to-csv/test/mock-data/common.mock.json @@ -261,6 +261,26 @@ "updated_at": "2023-09-11T10:44:40.213Z", "ACL": [], "_version": 1 + }, + { + "code": "en-us", + "name": "English - United States", + "locale": null, + "uid": "en-us-uid", + "created_at": "2023-09-11T10:44:40.213Z", + "updated_at": "2023-09-11T10:44:40.213Z", + "ACL": [], + "_version": 1 + }, + { + "code": "fr-fr", + "name": "French - France", + "fallback_locale": "en-us", + "uid": "fr-fr-uid", + "created_at": "2023-09-11T10:44:40.213Z", + "updated_at": "2023-09-11T10:44:40.213Z", + "ACL": [], + "_version": 1 } ], "Teams": { diff --git a/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js b/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js index 286e11f56b..08104a86a9 100644 --- a/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js +++ b/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js @@ -5,7 +5,7 @@ const inquirer = require('inquirer'); const { PassThrough } = require('stream'); const mockData = require('../../mock-data/common.mock.json'); const { configHandler } = require('@contentstack/cli-utilities'); -const { runCommand } = require('@oclif/test') +const { runCommand } = require('@oclif/test'); const sinon = require('sinon'); const regionConfig = configHandler.get('region') || {}; @@ -14,19 +14,19 @@ let sandbox; describe('Export to CSV functionality', () => { beforeEach(() => { - if (!configHandler.get('authorisationType')) { + if (!configHandler.get('authorisationType')) { configHandler.set('authorisationType', 'BASIC'); configHandler.set('delete', true); } - sandbox = sinon.createSandbox() - sandbox.stub(fs, 'createWriteStream').returns(new PassThrough()) + sandbox = sinon.createSandbox(); + sandbox.stub(fs, 'createWriteStream').returns(new PassThrough()); nock(cma) .get(`/v3/stacks?&query={"org_uid":"${mockData.organizations[0].uid}"}`) .reply(200, { stacks: mockData.stacks }); }); afterEach(() => { - if (configHandler.get('delete')) { + if (configHandler.get('delete')) { configHandler.delete('delete'); configHandler.delete('authorisationType'); } @@ -35,11 +35,13 @@ describe('Export to CSV functionality', () => { }); describe('Export taxonomies', () => { - it('CSV file should be created with taxonomy uid', async () => { + it('CSV file should be created with taxonomy uid and locale parameters', async () => { nock(cma) .get(`/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}`) .reply(200, { taxonomy: mockData.taxonomiesResp.taxonomies[0] }) - .get(`/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv`) + .get( + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv&locale=en-us&include_fallback=true&fallback_locale=en-us`, + ) .reply(200, mockData.taxonomyCSVData); const { stdout } = await runCommand([ @@ -52,18 +54,29 @@ describe('Export to CSV functionality', () => { mockData.stacks[0].api_key, '--org', mockData.organizations[0].uid, + '--locale', + 'en-us', + '--include-fallback', + '--fallback-locale', + 'en-us', ]); expect(stdout).to.include('Writing taxonomies to file:'); }); - it('CSV file should be created without taxonomy uid', async () => { + it('CSV file should be created without taxonomy uid and with locale parameters', async () => { nock(cma) - .get('/v3/taxonomies?include_count=true&limit=100&skip=0') + .get( + '/v3/taxonomies?include_count=true&limit=100&skip=0&locale=en-us&include_fallback=true&fallback_locale=en-us', + ) .reply(200, mockData.taxonomiesResp) - .get(`/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv`) - .reply(200, mockData.taxonomyCSVData) - .get(`/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[1].uid}/export?format=csv`) + .get( + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv&locale=en-us&include_fallback=true&fallback_locale=en-us`, + ) .reply(200, mockData.taxonomyCSVData) + .get( + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[1].uid}/export?format=csv&locale=en-us&include_fallback=true&fallback_locale=en-us`, + ) + .reply(200, mockData.taxonomyCSVData); const { stdout } = await runCommand([ 'cm:export-to-csv', @@ -73,33 +86,14 @@ describe('Export to CSV functionality', () => { mockData.stacks[0].api_key, '--org', mockData.organizations[0].uid, + '--locale', + 'en-us', + '--include-fallback', + '--fallback-locale', + 'en-us', ]); expect(stdout).to.include('Writing taxonomies to file:'); }); - - it('CSV file should be created using prompt', async () => { - nock(cma) - .get(`/v3/organizations?limit=100`) - .reply(200, { organizations: mockData.organizations }) - .get(`/v3/stacks?&query={"org_uid":"${mockData.organizations[0].uid}"}`) - .reply(200, { stacks: mockData.stacks }) - .get(`/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}`) - .reply(200, { taxonomy: mockData.taxonomiesResp.taxonomies[0] }) - .get(`/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv`) - .reply(200, mockData.taxonomyCSVData); - - sandbox.stub(process, 'chdir').returns(undefined); - sandbox.stub(inquirer, 'registerPrompt').returns(undefined); - sandbox.stub(inquirer, 'prompt').returns(Promise.resolve({ - action: 'taxonomies', - chosenOrg: mockData.organizations[0].name, - chosenStack: mockData.stacks[0].name, - })); - - const { stdout } = await runCommand(['cm:export-to-csv', '--taxonomy-uid', 'taxonomy_uid_1']); - expect(stdout).to.include('Writing taxonomies to file'); - sandbox.restore(); - }); }); describe('Export entries', () => { @@ -111,9 +105,13 @@ describe('Export to CSV functionality', () => { .reply(200, { content_types: 2 }) .get('/v3/content_types') .reply(200, { content_types: mockData.contentTypes }) - .get(`/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=en1&count=true`) + .get( + `/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=en1&count=true`, + ) .reply(200, { entries: 1 }) - .get(`/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=en1&skip=0&limit=100&include_workflow=true`) + .get( + `/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=en1&skip=0&limit=100&include_workflow=true`, + ) .reply(200, { entries: mockData.entry }); const result = await runCommand([ @@ -136,14 +134,16 @@ describe('Export to CSV functionality', () => { it('Entries CSV file should be created with prompt', async () => { sandbox.stub(inquirer, 'registerPrompt').returns(undefined); - sandbox.stub(inquirer, 'prompt').returns(Promise.resolve({ - action: 'entries', - chosenOrg: mockData.organizations[0].name, - chosenLanguage: mockData.locales[0].name, - chosenStack: mockData.stacks[0].name, - chosenContentTypes: [mockData.contentTypes[0].uid], - branch: mockData.branch.uid, - })); + sandbox.stub(inquirer, 'prompt').returns( + Promise.resolve({ + action: 'entries', + chosenOrg: mockData.organizations[0].name, + chosenLanguage: mockData.locales[0].name, + chosenStack: mockData.stacks[0].name, + chosenContentTypes: [mockData.contentTypes[0].uid], + branch: mockData.branch.uid, + }), + ); nock(cma) .get(`/v3/organizations?limit=100`) .reply(200, { organizations: mockData.organizations }) @@ -159,9 +159,13 @@ describe('Export to CSV functionality', () => { .reply(200, { content_types: 2 }) .get('/v3/content_types?skip=0&include_branch=true') .reply(200, { content_types: mockData.contentTypes }) - .get(`/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=${mockData.locales[0].code}&count=true`) + .get( + `/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=${mockData.locales[0].code}&count=true`, + ) .reply(200, { entries: 1 }) - .get(`/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=${mockData.locales[0].code}&skip=0&limit=100&include_workflow=true`) + .get( + `/v3/content_types/${mockData.contentTypes[0].uid}/entries?include_publish_details=true&locale=${mockData.locales[0].code}&skip=0&limit=100&include_workflow=true`, + ) .reply(200, { entries: mockData.entry }); const { stdout } = await runCommand(['cm:export-to-csv']); expect(stdout).to.include('Writing entries to file'); @@ -169,36 +173,46 @@ describe('Export to CSV functionality', () => { }); }); - describe("export-to-csv with action users", () => { - describe("Export users CSV file with flags", () => { + describe('export-to-csv with action users', () => { + describe('Export users CSV file with flags', () => { beforeEach(() => { nock(cma) .get('/v3/user?include_orgs_roles=true') - .reply(200, { user: mockData.users[0] }).persist() + .reply(200, { user: mockData.users[0] }) + .persist() .get(`/v3/organizations/${mockData.organizations[0].uid}/roles`) .reply(200, { roles: mockData.roles }) .get(`/v3/organizations/${mockData.organizations[0].uid}/share?skip=0&page=1&limit=100`) - .reply(200, { users: mockData.users }) + .reply(200, { users: mockData.users }); }); - it("Users CSV file should be successfully created", async () => { - const { stdout } = await runCommand(['cm:export-to-csv', '--action', 'users', '--org', mockData.organizations[0].uid]); - expect(stdout).to.include("Writing organization details to file"); + it('Users CSV file should be successfully created', async () => { + const { stdout } = await runCommand([ + 'cm:export-to-csv', + '--action', + 'users', + '--org', + mockData.organizations[0].uid, + ]); + expect(stdout).to.include('Writing organization details to file'); }); }); - describe("Export users CSV file with prompt", () => { + describe('Export users CSV file with prompt', () => { it('Users CSV file should be successfully created', async () => { sandbox.stub(process, 'chdir').returns(undefined); sandbox.stub(inquirer, 'registerPrompt').returns(undefined); - sandbox.stub(inquirer, 'prompt').returns(Promise.resolve({ - action: 'users', - chosenOrg: mockData.organizations[0].name, - })); + sandbox.stub(inquirer, 'prompt').returns( + Promise.resolve({ + action: 'users', + chosenOrg: mockData.organizations[0].name, + }), + ); nock(cma) .get(`/v3/organizations?limit=100`) .reply(200, { organizations: mockData.organizations }) .get('/v3/user?include_orgs_roles=true') - .reply(200, { user: mockData.users[0] }).persist() + .reply(200, { user: mockData.users[0] }) + .persist() .get(`/v3/organizations/${mockData.organizations[0].uid}/roles`) .reply(200, { roles: mockData.roles }) .get(`/v3/organizations/${mockData.organizations[0].uid}/share?skip=0&page=1&limit=100`) @@ -208,12 +222,12 @@ describe('Export to CSV functionality', () => { sandbox.restore(); }); }); - }) + }); }); -describe("Testing teams support in CLI export-to-csv", () => { +describe('Testing teams support in CLI export-to-csv', () => { beforeEach(() => { - if (!configHandler.get('authorisationType')) { + if (!configHandler.get('authorisationType')) { configHandler.set('authorisationType', 'BASIC'); configHandler.set('delete', true); } @@ -228,53 +242,53 @@ describe("Testing teams support in CLI export-to-csv", () => { nock.cleanAll(); }); - describe("Testing Teams Command with org and team flags", () => { - it("CSV file should be created", async () => { + describe('Testing Teams Command with org and team flags', () => { + it('CSV file should be created', async () => { nock(cma) .get(`/v3/organizations/org_uid_1_teams/teams?skip=0&limit=100&includeUserDetails=true`) .reply(200, mockData.Teams.allTeams) .get(`/v3/organizations/org_uid_1_teams/roles`) .reply(200, mockData.org_roles) .get(`/v3/roles`) - .reply(200, { roles: mockData.roless.roles }) + .reply(200, { roles: mockData.roless.roles }); const { stdout } = await runCommand([ - "cm:export-to-csv", - "--action", - "teams", - "--org", - "org_uid_1_teams", - "--team-uid", - "team_1_uid", + 'cm:export-to-csv', + '--action', + 'teams', + '--org', + 'org_uid_1_teams', + '--team-uid', + 'team_1_uid', ]); - expect(stdout).to.include("Exporting the team with uid team_1_uid in Organisation org_uid_1_teams"); + expect(stdout).to.include('Exporting the team with uid team_1_uid in Organisation org_uid_1_teams'); }); }); - describe("Testing Teams Command with no teams", () => { - it("CSV file should be created", async () => { + describe('Testing Teams Command with no teams', () => { + it('CSV file should be created', async () => { nock(cma) .get(`/v3/organizations/org_uid_1_teams/teams?skip=0&limit=100&includeUserDetails=true`) .reply(200, mockData.Teams.allTeams) .get(`/v3/organizations/org_uid_1_teams/roles`) .reply(200, mockData.org_roles) .get(`/v3/roles`) - .reply(200, { roles: mockData.roless.roles }) + .reply(200, { roles: mockData.roless.roles }); const { stdout } = await runCommand([ - "cm:export-to-csv", - "--action", - "teams", - "--org", - "org_uid_1_teams", - "--team-uid", - "team_1_uid", + 'cm:export-to-csv', + '--action', + 'teams', + '--org', + 'org_uid_1_teams', + '--team-uid', + 'team_1_uid', ]); - expect(stdout).to.include("Exporting the team with uid team_1_uid in Organisation org_uid_1_teams"); + expect(stdout).to.include('Exporting the team with uid team_1_uid in Organisation org_uid_1_teams'); }); }); - describe("Testing Teams Command with org flag", () => { + describe('Testing Teams Command with org flag', () => { beforeEach(() => { nock(cma) .get(`/v3/organizations/org_uid_1_teams/teams?skip=0&limit=100&includeUserDetails=true`) @@ -282,17 +296,11 @@ describe("Testing teams support in CLI export-to-csv", () => { .get(`/v3/organizations/org_uid_1_teams/roles`) .reply(200, mockData.org_roles) .get(`/v3/roles`) - .reply(200, { roles: mockData.roless.roles }) - }) - it("CSV file should be created", async () => { - const { stdout } = await runCommand([ - "cm:export-to-csv", - "--action", - "teams", - "--org", - "org_uid_1_teams", - ]); - expect(stdout).to.include("Exporting the teams of Organisation org_uid_1_teams"); + .reply(200, { roles: mockData.roless.roles }); + }); + it('CSV file should be created', async () => { + const { stdout } = await runCommand(['cm:export-to-csv', '--action', 'teams', '--org', 'org_uid_1_teams']); + expect(stdout).to.include('Exporting the teams of Organisation org_uid_1_teams'); }); }); @@ -300,10 +308,12 @@ describe("Testing teams support in CLI export-to-csv", () => { it('CSV file should be created', async () => { sandbox.stub(process, 'chdir').returns(undefined); sandbox.stub(inquirer, 'registerPrompt').returns(undefined); - sandbox.stub(inquirer, 'prompt').returns(Promise.resolve({ - action: 'teams', - chosenOrg: mockData.organizations[2].name, - })); + sandbox.stub(inquirer, 'prompt').returns( + Promise.resolve({ + action: 'teams', + chosenOrg: mockData.organizations[2].name, + }), + ); nock(cma) .get('/v3/user?include_orgs_roles=true') .reply(200, { user: mockData.users[2] }) @@ -324,11 +334,13 @@ describe("Testing teams support in CLI export-to-csv", () => { it('CSV file should be created', async () => { sandbox.stub(process, 'chdir').returns(undefined); sandbox.stub(inquirer, 'registerPrompt').returns(undefined); - sandbox.stub(inquirer, 'prompt').returns(Promise.resolve({ - action: 'teams', - chosenOrg: mockData.organizations[2].name, - chooseExport: 'yes', - })); + sandbox.stub(inquirer, 'prompt').returns( + Promise.resolve({ + action: 'teams', + chosenOrg: mockData.organizations[2].name, + chooseExport: 'yes', + }), + ); nock(cma) .get('/v3/user?include_orgs_roles=true') .reply(200, { user: mockData.users[2] }) diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index 997abecc6e..6e75e6e9bb 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-export", "description": "Contentstack CLI plugin to export content from stack", - "version": "1.20.2", + "version": "1.21.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-export/src/export/modules/base-class.ts b/packages/contentstack-export/src/export/modules/base-class.ts index a683e2fc40..6379669e1d 100644 --- a/packages/contentstack-export/src/export/modules/base-class.ts +++ b/packages/contentstack-export/src/export/modules/base-class.ts @@ -183,7 +183,7 @@ export default abstract class BaseClass { case 'export-taxonomy': return this.stack .taxonomy(uid) - .export() + .export(queryParam) .then((response: any) => resolve({ response, uid })) .catch((error: any) => reject({ error, uid })); default: diff --git a/packages/contentstack-export/src/export/modules/taxonomies.ts b/packages/contentstack-export/src/export/modules/taxonomies.ts index 74e6d539ff..59e61615ce 100644 --- a/packages/contentstack-export/src/export/modules/taxonomies.ts +++ b/packages/contentstack-export/src/export/modules/taxonomies.ts @@ -2,7 +2,7 @@ import omit from 'lodash/omit'; import keys from 'lodash/keys'; import isEmpty from 'lodash/isEmpty'; import { resolve as pResolve } from 'node:path'; -import { handleAndLogError, messageHandler, log } from '@contentstack/cli-utilities'; +import { handleAndLogError, messageHandler, log, sanitizePath } from '@contentstack/cli-utilities'; import BaseClass from './base-class'; import { fsUtil } from '../../utils'; @@ -10,27 +10,42 @@ import { ModuleClassParams, ExportConfig } from '../../types'; export default class ExportTaxonomies extends BaseClass { private taxonomies: Record>; + private taxonomiesByLocale: Record>; private taxonomiesConfig: ExportConfig['modules']['taxonomies']; + private isLocaleBasedExportSupported: boolean = true; // Flag to track if locale-based export is supported private qs: { include_count: boolean; skip: number; asc?: string; limit: number; + locale?: string; + branch?: string; + include_fallback?: boolean; + fallback_locale?: string; }; public taxonomiesFolderPath: string; + private localesFilePath: string; constructor({ exportConfig, stackAPIClient }: ModuleClassParams) { super({ exportConfig, stackAPIClient }); this.taxonomies = {}; + this.taxonomiesByLocale = {}; this.taxonomiesConfig = exportConfig.modules.taxonomies; this.qs = { include_count: true, limit: this.taxonomiesConfig.limit || 100, skip: 0 }; + this.applyQueryFilters(this.qs, 'taxonomies'); this.exportConfig.context.module = 'taxonomies'; + this.localesFilePath = pResolve( + sanitizePath(exportConfig.data), + sanitizePath(exportConfig.branchName || ''), + sanitizePath(exportConfig.modules.locales.dirName), + sanitizePath(exportConfig.modules.locales.fileName), + ); } async start(): Promise { log.debug('Starting taxonomies export process...', this.exportConfig.context); - + //create taxonomies folder this.taxonomiesFolderPath = pResolve( this.exportConfig.data, @@ -38,130 +53,263 @@ export default class ExportTaxonomies extends BaseClass { this.taxonomiesConfig.dirName, ); log.debug(`Taxonomies folder path: ${this.taxonomiesFolderPath}`, this.exportConfig.context); - + await fsUtil.makeDirectory(this.taxonomiesFolderPath); log.debug('Created taxonomies directory', this.exportConfig.context); - //fetch all taxonomies and write into taxonomies folder - log.debug('Fetching all taxonomies...', this.exportConfig.context); - await this.getAllTaxonomies(); - log.debug(`Retrieved ${Object.keys(this.taxonomies).length} taxonomies`, this.exportConfig.context); - - if (this.taxonomies === undefined || isEmpty(this.taxonomies)) { - log.info(messageHandler.parse('TAXONOMY_NOT_FOUND'), this.exportConfig.context); + const localesToExport = this.getLocalesToExport(); + log.debug( + `Will attempt to export taxonomies for ${localesToExport.length} locale(s): ${localesToExport.join(', ')}`, + this.exportConfig.context, + ); + + if (localesToExport.length === 0) { + log.warn('No locales found to export', this.exportConfig.context); return; - } else { - const taxonomiesFilePath = pResolve(this.taxonomiesFolderPath, 'taxonomies.json'); - log.debug(`Writing taxonomies metadata to: ${taxonomiesFilePath}`, this.exportConfig.context); - fsUtil.writeFile(taxonomiesFilePath, this.taxonomies); - - log.debug('Starting detailed taxonomy export...', this.exportConfig.context); + } + + // Test locale-based export support with master locale + const masterLocale = this.exportConfig.master_locale?.code; + await this.fetchTaxonomies(masterLocale, true); + + if (!this.isLocaleBasedExportSupported) { + log.debug('Localization disabled, falling back to legacy export method', this.exportConfig.context); await this.exportTaxonomies(); + await this.writeTaxonomiesMetadata(); + } else { + // Process all locales with locale-based export + log.debug('Localization enabled, proceeding with locale-based export', this.exportConfig.context); + + for (const localeCode of localesToExport) { + await this.fetchTaxonomies(localeCode); + await this.processLocaleExport(localeCode); + } + + await this.writeTaxonomiesMetadata(); } + log.success( - messageHandler.parse('TAXONOMY_EXPORT_COMPLETE', keys(this.taxonomies).length ), + messageHandler.parse('TAXONOMY_EXPORT_COMPLETE', keys(this.taxonomies || {}).length), this.exportConfig.context, ); } /** - * fetch all taxonomies in the provided stack - * @param {number} skip - * @returns {Promise} + * Process and export taxonomies for a specific locale */ - async getAllTaxonomies(skip: number = 0): Promise { - if (skip) { - this.qs.skip = skip; - log.debug(`Fetching taxonomies with skip: ${skip}`, this.exportConfig.context); + async processLocaleExport(localeCode: string): Promise { + const localeTaxonomies = this.taxonomiesByLocale[localeCode]; + + if (localeTaxonomies?.size > 0) { + log.info(`Found ${localeTaxonomies.size} taxonomies for locale: ${localeCode}`, this.exportConfig.context); + await this.exportTaxonomies(localeCode); } else { - log.debug('Fetching taxonomies with initial query', this.exportConfig.context); + log.debug(`No taxonomies found for locale: ${localeCode}`, this.exportConfig.context); } - - log.debug(`Query parameters: ${JSON.stringify(this.qs)}`, this.exportConfig.context); - - await this.stack - .taxonomy() - .query(this.qs) - .find() - .then(async (data: any) => { + } + + /** + * Write taxonomies metadata file + */ + async writeTaxonomiesMetadata(): Promise { + if (!this.taxonomies || isEmpty(this.taxonomies)) { + log.info(messageHandler.parse('TAXONOMY_NOT_FOUND'), this.exportConfig.context); + return; + } + + const taxonomiesFilePath = pResolve(this.taxonomiesFolderPath, 'taxonomies.json'); + log.debug(`Writing taxonomies metadata to: ${taxonomiesFilePath}`, this.exportConfig.context); + fsUtil.writeFile(taxonomiesFilePath, this.taxonomies); + } + + /** + * Fetch taxonomies + * + * @async + * @param {?string} [localeCode] + * @param {boolean} [checkLocaleSupport=false] + * @returns {Promise} + */ + async fetchTaxonomies(localeCode?: string, checkLocaleSupport: boolean = false): Promise { + let skip = 0; + const localeInfo = localeCode ? `for locale: ${localeCode}` : ''; + + if (localeCode && !this.taxonomiesByLocale[localeCode]) { + this.taxonomiesByLocale[localeCode] = new Set(); + } + + do { + const queryParams = { ...this.qs, skip }; + if (localeCode) { + queryParams.locale = localeCode; + } + + log.debug(`Fetching taxonomies ${localeInfo} with skip: ${skip}`, this.exportConfig.context); + + try { + const data = await this.stack.taxonomy().query(queryParams).find(); const { items, count } = data; - const taxonomiesCount = count !== undefined ? count : items?.length; - log.debug(`Fetched ${items?.length || 0} taxonomies out of total ${taxonomiesCount}`, this.exportConfig.context); - - if (items?.length) { - log.debug(`Processing ${items.length} taxonomies`, this.exportConfig.context); - this.sanitizeTaxonomiesAttribs(items); - skip += this.qs.limit || 100; - if (skip >= taxonomiesCount) { - log.debug('Completed fetching all taxonomies', this.exportConfig.context); - return; - } - log.debug(`Continuing to fetch taxonomies with skip: ${skip}`, this.exportConfig.context); - return await this.getAllTaxonomies(skip); - } else { - log.debug('No taxonomies found to process', this.exportConfig.context); + const taxonomiesCount = count ?? items?.length ?? 0; + + log.debug( + `Fetched ${items?.length || 0} taxonomies out of total ${taxonomiesCount} ${localeInfo}`, + this.exportConfig.context, + ); + + if (!items?.length) { + log.debug(`No taxonomies found ${localeInfo}`, this.exportConfig.context); + break; } - }) - .catch((error: any) => { - log.debug('Error occurred while fetching taxonomies', this.exportConfig.context); - handleAndLogError(error, { ...this.exportConfig.context }); - }); + + // Check localization support + if (checkLocaleSupport && localeCode && skip === 0 && !items[0].locale) { + log.debug('API does not support locale-based taxonomy export', this.exportConfig.context); + this.isLocaleBasedExportSupported = false; + } + + this.sanitizeTaxonomiesAttribs(items, localeCode); + skip += this.qs.limit || 100; + + if (skip >= taxonomiesCount) { + log.debug(`Completed fetching all taxonomies ${localeInfo}`, this.exportConfig.context); + break; + } + } catch (error) { + log.debug(`Error fetching taxonomies ${localeInfo}`, this.exportConfig.context); + handleAndLogError(error, { + ...this.exportConfig.context, + ...(localeCode && { locale: localeCode }), + }); + if (checkLocaleSupport) { + this.isLocaleBasedExportSupported = false; + } + // Break to avoid infinite retry loop on errors + break; + } + } while (true); } /** * remove invalid keys and write data into taxonomies * @function sanitizeTaxonomiesAttribs - * @param taxonomies + * @param {Record[]} taxonomies + * @param {?string} [localeCode] */ - sanitizeTaxonomiesAttribs(taxonomies: Record[]) { - log.debug(`Sanitizing ${taxonomies.length} taxonomies`, this.exportConfig.context); - - for (let index = 0; index < taxonomies?.length; index++) { - const taxonomyUID = taxonomies[index].uid; - const taxonomyName = taxonomies[index]?.name; - log.debug(`Processing taxonomy: ${taxonomyName} (${taxonomyUID})`, this.exportConfig.context); - - this.taxonomies[taxonomyUID] = omit(taxonomies[index], this.taxonomiesConfig.invalidKeys); + sanitizeTaxonomiesAttribs(taxonomies: Record[], localeCode?: string): void { + const localeInfo = localeCode ? ` for locale: ${localeCode}` : ''; + log.debug(`Processing ${taxonomies.length} taxonomies${localeInfo}`, this.exportConfig.context); + + for (const taxonomy of taxonomies) { + const taxonomyUID = taxonomy.uid; + const taxonomyName = taxonomy.name; + + log.debug(`Processing taxonomy: ${taxonomyName} (${taxonomyUID})${localeInfo}`, this.exportConfig.context); + + // Store taxonomy metadata (only once per taxonomy) + if (!this.taxonomies[taxonomyUID]) { + this.taxonomies[taxonomyUID] = omit(taxonomy, this.taxonomiesConfig.invalidKeys); + } + + // Track taxonomy for this locale + if (localeCode) { + this.taxonomiesByLocale[localeCode].add(taxonomyUID); + } } - - log.debug(`Sanitization complete. Total taxonomies processed: ${Object.keys(this.taxonomies).length}`, this.exportConfig.context); + + log.debug( + `Processing complete${localeInfo}. Total taxonomies processed: ${keys(this.taxonomies).length}`, + this.exportConfig.context, + ); } /** - * Export all taxonomies details using metadata(this.taxonomies) and write it into respective .json file - * @returns {Promise} + * Export taxonomies - supports both locale-based and legacy export */ - async exportTaxonomies(): Promise { - const taxonomiesUID = keys(this.taxonomies) || []; - log.debug(`Exporting detailed data for ${taxonomiesUID.length} taxonomies`, this.exportConfig.context); + async exportTaxonomies(localeCode?: string): Promise { + const taxonomiesUID = localeCode ? Array.from(this.taxonomiesByLocale[localeCode] || []) : keys(this.taxonomies); + + const localeInfo = localeCode ? ` for locale: ${localeCode}` : ''; + if (taxonomiesUID.length === 0) { + log.debug(`No taxonomies to export${localeInfo}`, this.exportConfig.context); + return; + } + log.debug(`Exporting detailed data for ${taxonomiesUID.length} taxonomies${localeInfo}`, this.exportConfig.context); + + const exportFolderPath = localeCode ? pResolve(this.taxonomiesFolderPath, localeCode) : this.taxonomiesFolderPath; + if (localeCode) { + await fsUtil.makeDirectory(exportFolderPath); + log.debug(`Created locale folder: ${exportFolderPath}`, this.exportConfig.context); + } const onSuccess = ({ response, uid }: any) => { - const filePath = pResolve(this.taxonomiesFolderPath, `${uid}.json`); + const filePath = pResolve(exportFolderPath, `${uid}.json`); log.debug(`Writing detailed taxonomy data to: ${filePath}`, this.exportConfig.context); fsUtil.writeFile(filePath, response); - log.success( - messageHandler.parse('TAXONOMY_EXPORT_SUCCESS', uid), - this.exportConfig.context, - ); + log.success(messageHandler.parse('TAXONOMY_EXPORT_SUCCESS', uid), this.exportConfig.context); }; const onReject = ({ error, uid }: any) => { - log.debug(`Failed to export detailed data for taxonomy: ${uid}`, this.exportConfig.context); - handleAndLogError(error, { ...this.exportConfig.context, uid }); + log.debug(`Failed to export detailed data for taxonomy: ${uid}${localeInfo}`, this.exportConfig.context); + handleAndLogError(error, { ...this.exportConfig.context, uid, ...(localeCode && { locale: localeCode }) }); }; - for (let index = 0; index < taxonomiesUID?.length; index++) { - const taxonomyUID = taxonomiesUID[index]; - log.debug(`Processing detailed export for taxonomy: ${taxonomyUID}`, this.exportConfig.context); - + for (const taxonomyUID of taxonomiesUID) { + log.debug(`Processing detailed export for taxonomy: ${taxonomyUID}${localeInfo}`, this.exportConfig.context); + + const exportParams: any = { format: 'json' }; + if (localeCode) { + exportParams.locale = localeCode; + if (this.qs.include_fallback !== undefined) exportParams.include_fallback = this.qs.include_fallback; + if (this.qs.fallback_locale) exportParams.fallback_locale = this.qs.fallback_locale; + } + if (this.qs.branch) exportParams.branch = this.qs.branch; + await this.makeAPICall({ reject: onReject, resolve: onSuccess, uid: taxonomyUID, module: 'export-taxonomy', + queryParam: exportParams, }); } - - log.debug('Completed detailed taxonomy export process', this.exportConfig.context); + log.debug(`Completed detailed taxonomy export process${localeInfo}`, this.exportConfig.context); + } + + /** + * Get all locales to export + */ + getLocalesToExport(): string[] { + log.debug('Determining locales to export...', this.exportConfig.context); + + const masterLocaleCode = this.exportConfig.master_locale?.code || 'en-us'; + const localeSet = new Set([masterLocaleCode]); + + try { + const locales = fsUtil.readFile(this.localesFilePath) as Record>; + + if (locales && keys(locales || {}).length > 0) { + log.debug( + `Loaded ${keys(locales || {}).length} locales from ${this.localesFilePath}`, + this.exportConfig.context, + ); + + for (const localeUid of keys(locales)) { + const localeCode = locales[localeUid].code; + if (localeCode && !localeSet.has(localeCode)) { + localeSet.add(localeCode); + log.debug(`Added locale: ${localeCode} (uid: ${localeUid})`, this.exportConfig.context); + } + } + } else { + log.debug(`No locales found in ${this.localesFilePath}`, this.exportConfig.context); + } + } catch (error) { + log.warn(`Failed to read locales file: ${this.localesFilePath}`, this.exportConfig.context); + } + + const localesToExport = Array.from(localeSet); + log.debug(`Total unique locales to export: ${localesToExport.length}`, this.exportConfig.context); + + return localesToExport; } } diff --git a/packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts b/packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts index bca3711835..91eddcf39c 100644 --- a/packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts +++ b/packages/contentstack-export/test/unit/export/modules/taxonomies.test.ts @@ -70,6 +70,11 @@ describe('ExportTaxonomies', () => { fileName: 'taxonomies.json', invalidKeys: [], limit: 100 + }, + locales: { + dirName: 'locales', + fileName: 'locales.json', + requiredKeys: ['code', 'uid', 'name', 'fallback_locale'] } } } as any; @@ -82,6 +87,7 @@ describe('ExportTaxonomies', () => { sinon.stub(FsUtility.prototype, 'writeFile').resolves(); sinon.stub(FsUtility.prototype, 'makeDirectory').resolves(); + sinon.stub(FsUtility.prototype, 'readFile').resolves({}); }); afterEach(() => { @@ -102,7 +108,7 @@ describe('ExportTaxonomies', () => { }); }); - describe('getAllTaxonomies() method', () => { + describe('fetchTaxonomies() method', () => { it('should fetch and process taxonomies correctly', async () => { const taxonomies = [ { uid: 'taxonomy-1', name: 'Category', invalidField: 'remove' }, @@ -118,7 +124,7 @@ describe('ExportTaxonomies', () => { }) }); - await exportTaxonomies.getAllTaxonomies(); + await exportTaxonomies.fetchTaxonomies(); // Verify taxonomies were processed expect(Object.keys(exportTaxonomies.taxonomies).length).to.equal(2); @@ -126,7 +132,7 @@ describe('ExportTaxonomies', () => { expect(exportTaxonomies.taxonomies['taxonomy-1'].name).to.equal('Category'); }); - it('should call getAllTaxonomies recursively when more taxonomies exist', async () => { + it('should call fetchTaxonomies recursively when more taxonomies exist', async () => { let callCount = 0; mockStackClient.taxonomy.returns({ query: sinon.stub().returns({ @@ -147,7 +153,7 @@ describe('ExportTaxonomies', () => { }) }); - await exportTaxonomies.getAllTaxonomies(); + await exportTaxonomies.fetchTaxonomies(); // Verify multiple calls were made expect(callCount).to.be.greaterThan(1); @@ -159,7 +165,7 @@ describe('ExportTaxonomies', () => { const mockMakeAPICall = sinon.stub(exportTaxonomies, 'makeAPICall').resolves(); const writeFileStub = FsUtility.prototype.writeFile as sinon.SinonStub; - // Mock getAllTaxonomies to return one taxonomy + // Mock fetchTaxonomies to return one taxonomy const mockTaxonomy = { uid: 'taxonomy-1', name: 'Category' @@ -208,7 +214,7 @@ describe('ExportTaxonomies', () => { }); }); - describe('getAllTaxonomies() method - edge cases', () => { + describe('fetchTaxonomies() method - edge cases', () => { it('should handle no items response and not process taxonomies', async () => { mockStackClient.taxonomy.returns({ query: sinon.stub().returns({ @@ -220,7 +226,7 @@ describe('ExportTaxonomies', () => { }); const initialCount = Object.keys(exportTaxonomies.taxonomies).length; - await exportTaxonomies.getAllTaxonomies(); + await exportTaxonomies.fetchTaxonomies(); // Verify no new taxonomies were added expect(Object.keys(exportTaxonomies.taxonomies).length).to.equal(initialCount); @@ -237,7 +243,7 @@ describe('ExportTaxonomies', () => { }); const initialCount = Object.keys(exportTaxonomies.taxonomies).length; - await exportTaxonomies.getAllTaxonomies(); + await exportTaxonomies.fetchTaxonomies(); // Verify no processing occurred with null items expect(Object.keys(exportTaxonomies.taxonomies).length).to.equal(initialCount); @@ -250,7 +256,7 @@ describe('ExportTaxonomies', () => { }) }); - await exportTaxonomies.getAllTaxonomies(); + await exportTaxonomies.fetchTaxonomies(); // Verify method completes without throwing expect(exportTaxonomies.taxonomies).to.exist; @@ -268,7 +274,7 @@ describe('ExportTaxonomies', () => { }) }); - await exportTaxonomies.getAllTaxonomies(); + await exportTaxonomies.fetchTaxonomies(); // Verify taxonomies were still processed despite undefined count expect(exportTaxonomies.taxonomies['taxonomy-1']).to.exist; diff --git a/packages/contentstack-import-setup/README.md b/packages/contentstack-import-setup/README.md index e90e4f9f84..9163f7beb9 100644 --- a/packages/contentstack-import-setup/README.md +++ b/packages/contentstack-import-setup/README.md @@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import-setup $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-import-setup/1.6.0 darwin-arm64 node-v22.13.1 +@contentstack/cli-cm-import-setup/1.6.0 darwin-arm64 node-v22.14.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND @@ -78,8 +78,8 @@ FLAGS branches involved, then the path should point till the particular branch. For example, “-d "C:\Users\Name\Desktop\cli\content\branch_name" -k, --stack-api-key= API key of the target stack - --branch-alias= The alias of the branch where you want to import your content. If you don't mention the - branch alias, then by default the content will be imported to the main branch. + --branch-alias= Specify the branch alias where you want to import your content. If not specified, the + content is imported into the main branch by default. --module=