diff --git a/package-lock.json b/package-lock.json index 3dc22d351c..43552ff112 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7924,17 +7924,17 @@ "dev": true, "license": "MIT" }, - "node_modules/eslint-config-oclif-typescript/node_modules/eslint-config-xo-space": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.35.0.tgz", - "integrity": "sha512-+79iVcoLi3PvGcjqYDpSPzbLfqYpNcMlhsCBRsnmDoHAn4npJG6YxmHpelQKpXM7v/EeZTUKb4e1xotWlei8KA==", + "node_modules/eslint-config-oclif-typescript/node_modules/eslint-config-xo": { + "version": "0.44.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.44.0.tgz", + "integrity": "sha512-YG4gdaor0mJJi8UBeRJqDPO42MedTWYMaUyucF5bhm2pi/HS98JIxfFQmTLuyj6hGpQlAazNfyVnn7JuDn+Sew==", "dev": true, "license": "MIT", "dependencies": { - "eslint-config-xo": "^0.44.0" + "confusing-browser-globals": "1.0.11" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -7943,17 +7943,17 @@ "eslint": ">=8.56.0" } }, - "node_modules/eslint-config-oclif-typescript/node_modules/eslint-config-xo-space/node_modules/eslint-config-xo": { - "version": "0.44.0", - "resolved": "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.44.0.tgz", - "integrity": "sha512-YG4gdaor0mJJi8UBeRJqDPO42MedTWYMaUyucF5bhm2pi/HS98JIxfFQmTLuyj6hGpQlAazNfyVnn7JuDn+Sew==", + "node_modules/eslint-config-oclif-typescript/node_modules/eslint-config-xo-space": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.35.0.tgz", + "integrity": "sha512-+79iVcoLi3PvGcjqYDpSPzbLfqYpNcMlhsCBRsnmDoHAn4npJG6YxmHpelQKpXM7v/EeZTUKb4e1xotWlei8KA==", "dev": true, "license": "MIT", "dependencies": { - "confusing-browser-globals": "1.0.11" + "eslint-config-xo": "^0.44.0" }, "engines": { - "node": ">=18" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8480,17 +8480,17 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.2.0.tgz", + "integrity": "sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -8498,13 +8498,13 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.2.0.tgz", + "integrity": "sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==", "dev": true, "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -8512,23 +8512,23 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.2.0.tgz", + "integrity": "sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/visitor-keys": "7.2.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -8541,19 +8541,22 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.2.0.tgz", + "integrity": "sha512-YfHpnMAGb1Eekpm3XRK8hcMwGLGsnT6L+7b2XyRv6ouDuJU1tZir1GS2i0+VXRatMwSI1/UfcyPe53ADkU+IuA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "7.2.0", + "@typescript-eslint/types": "7.2.0", + "@typescript-eslint/typescript-estree": "7.2.0", + "semver": "^7.5.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -8564,17 +8567,17 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.2.0.tgz", + "integrity": "sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" + "@typescript-eslint/types": "7.2.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -8602,6 +8605,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint-plugin-perfectionist/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/eslint-plugin-unicorn": { "version": "36.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-36.0.0.tgz", @@ -24823,9 +24842,9 @@ "license": "MIT" }, "node_modules/undici": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.19.8.tgz", - "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.20.0.tgz", + "integrity": "sha512-AITZfPuxubm31Sx0vr8bteSalEbs9wQb/BOBi9FPlD9Qpd6HxZ4Q0+hI742jBhkPb4RT2v5MQzaW5VhRVyj+9A==", "license": "MIT", "engines": { "node": ">=18.17" @@ -26971,7 +26990,7 @@ "@contentstack/cli-auth": "~1.3.22", "@contentstack/cli-cm-bootstrap": "~1.13.0", "@contentstack/cli-cm-branches": "~1.2.0", - "@contentstack/cli-cm-bulk-publish": "~1.4.9", + "@contentstack/cli-cm-bulk-publish": "~1.5.0", "@contentstack/cli-cm-clone": "~1.13.0", "@contentstack/cli-cm-export": "~1.14.1", "@contentstack/cli-cm-export-to-csv": "~1.7.3", @@ -26979,7 +26998,7 @@ "@contentstack/cli-cm-migrate-rte": "~1.4.20", "@contentstack/cli-cm-seed": "~1.10.0", "@contentstack/cli-command": "~1.3.2", - "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-config": "~1.8.0", "@contentstack/cli-launch": "~1.2.3", "@contentstack/cli-migration": "~1.6.2", "@contentstack/cli-utilities": "~1.8.0", @@ -27441,7 +27460,7 @@ }, "devDependencies": { "@contentstack/cli-auth": "~1.3.22", - "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-config": "~1.8.0", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", @@ -27466,7 +27485,7 @@ }, "packages/contentstack-bulk-publish": { "name": "@contentstack/cli-cm-bulk-publish", - "version": "1.4.9", + "version": "1.5.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.3.2", @@ -27691,7 +27710,7 @@ }, "packages/contentstack-config": { "name": "@contentstack/cli-config", - "version": "1.7.3", + "version": "1.8.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.3.2", @@ -28122,7 +28141,7 @@ }, "devDependencies": { "@contentstack/cli-auth": "~1.3.22", - "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-config": "~1.8.0", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", diff --git a/packages/contentstack-branches/package.json b/packages/contentstack-branches/package.json index f4d02330c7..da524dd6a1 100644 --- a/packages/contentstack-branches/package.json +++ b/packages/contentstack-branches/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@contentstack/cli-auth": "~1.3.22", - "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-config": "~1.8.0", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", diff --git a/packages/contentstack-bulk-publish/README.md b/packages/contentstack-bulk-publish/README.md index fb227ea3e5..b740c4937a 100644 --- a/packages/contentstack-bulk-publish/README.md +++ b/packages/contentstack-bulk-publish/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-cm-bulk-publish $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-bulk-publish/1.4.9 darwin-arm64 node-v22.2.0 +@contentstack/cli-cm-bulk-publish/1.5.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-bulk-publish/package.json b/packages/contentstack-bulk-publish/package.json index 36bf40595a..b172c1c96e 100644 --- a/packages/contentstack-bulk-publish/package.json +++ b/packages/contentstack-bulk-publish/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-bulk-publish", "description": "Contentstack CLI plugin for bulk publish actions", - "version": "1.4.9", + "version": "1.5.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-bulk-publish/src/producer/publish-assets.js b/packages/contentstack-bulk-publish/src/producer/publish-assets.js index 1846b13aff..054dd61424 100644 --- a/packages/contentstack-bulk-publish/src/producer/publish-assets.js +++ b/packages/contentstack-bulk-publish/src/producer/publish-assets.js @@ -6,6 +6,7 @@ const { performBulkPublish, publishAsset, initializeLogger } = require('../consu const retryFailedLogs = require('../util/retryfailed'); const { validateFile } = require('../util/fs'); const { isEmpty } = require('../util'); +const { fetchBulkPublishLimit } = require('../util/common-utility'); const queue = getQueue(); let logFileName; @@ -14,7 +15,7 @@ let filePath; /* eslint-disable no-param-reassign */ -async function getAssets(stack, folder, bulkPublish, environments, locale, apiVersion, skip = 0) { +async function getAssets(stack, folder, bulkPublish, environments, locale, apiVersion, bulkPublishLimit, skip = 0) { return new Promise((resolve, reject) => { let queryParams = { folder: folder, @@ -33,18 +34,27 @@ async function getAssets(stack, folder, bulkPublish, environments, locale, apiVe let assets = assetResponse.items; for (let index = 0; index < assetResponse.items.length; index++) { if (assets[index].is_dir === true) { - await getAssets(stack, assets[index].uid, bulkPublish, environments, locale, apiVersion, 0); + await getAssets( + stack, + assets[index].uid, + bulkPublish, + environments, + locale, + apiVersion, + bulkPublishLimit, + 0, + ); continue; } if (bulkPublish) { - if (bulkPublishSet.length < 10) { + if (bulkPublishSet.length < bulkPublishLimit) { bulkPublishSet.push({ uid: assets[index].uid, locale, publish_details: assets[index].publish_details || [], }); } - if (bulkPublishSet.length === 10) { + if (bulkPublishSet.length === bulkPublishLimit) { await queue.Enqueue({ assets: bulkPublishSet, Type: 'asset', @@ -56,7 +66,11 @@ async function getAssets(stack, folder, bulkPublish, environments, locale, apiVe bulkPublishSet = []; } - if (assetResponse.items.length - 1 === index && bulkPublishSet.length > 0 && bulkPublishSet.length < 10) { + if ( + assetResponse.items.length - 1 === index && + bulkPublishSet.length > 0 && + bulkPublishSet.length < bulkPublishLimit + ) { await queue.Enqueue({ assets: bulkPublishSet, Type: 'asset', @@ -81,7 +95,7 @@ async function getAssets(stack, folder, bulkPublish, environments, locale, apiVe if (skip === assetResponse.count) { return resolve(true); } - await getAssets(stack, folder, bulkPublish, environments, locale, apiVersion, skip); + await getAssets(stack, folder, bulkPublish, environments, locale, apiVersion, bulkPublishLimit, skip); return resolve(); } else { resolve(); @@ -133,8 +147,9 @@ async function start({ retryFailed, bulkPublish, environments, folderUid, locale } } else if (folderUid) { setConfig(config, bulkPublish); + const bulkPublishLimit = fetchBulkPublishLimit(stack?.org_uid); for (const element of locales) { - await getAssets(stack, folderUid, bulkPublish, environments, element, apiVersion); + await getAssets(stack, folderUid, bulkPublish, environments, element, apiVersion, bulkPublishLimit); } } } diff --git a/packages/contentstack-bulk-publish/src/producer/publish-entries.js b/packages/contentstack-bulk-publish/src/producer/publish-entries.js index 126260ce73..0f6cce121f 100644 --- a/packages/contentstack-bulk-publish/src/producer/publish-entries.js +++ b/packages/contentstack-bulk-publish/src/producer/publish-entries.js @@ -8,6 +8,7 @@ const { performBulkPublish, publishEntry, initializeLogger } = require('../consu const retryFailedLogs = require('../util/retryfailed'); const { validateFile } = require('../util/fs'); const { isEmpty } = require('../util'); +const { fetchBulkPublishLimit } = require('../util/common-utility'); const queue = getQueue(); @@ -18,7 +19,16 @@ let allContentTypes = []; let bulkPublishSet = []; let filePath; -async function getEntries(stack, contentType, locale, bulkPublish, environments, apiVersion, skip = 0) { +async function getEntries( + stack, + contentType, + locale, + bulkPublish, + environments, + apiVersion, + bulkPublishLimit, + skip = 0, +) { return new Promise((resolve, reject) => { skipCount = skip; @@ -39,7 +49,7 @@ async function getEntries(stack, contentType, locale, bulkPublish, environments, let entries = entriesResponse.items; for (let index = 0; index < entriesResponse.items.length; index++) { if (bulkPublish) { - if (bulkPublishSet.length < 10) { + if (bulkPublishSet.length < bulkPublishLimit) { bulkPublishSet.push({ uid: entries[index].uid, content_type: contentType, @@ -48,21 +58,21 @@ async function getEntries(stack, contentType, locale, bulkPublish, environments, }); } - if (bulkPublishSet.length === 10) { + if (bulkPublishSet.length === bulkPublishLimit) { await queue.Enqueue({ entries: bulkPublishSet, locale, Type: 'entry', environments: environments, stack: stack, - apiVersion + apiVersion, }); bulkPublishSet = []; } if ( index === entriesResponse.items.length - 1 && - bulkPublishSet.length <= 10 && + bulkPublishSet.length <= bulkPublishLimit && bulkPublishSet.length > 0 ) { await queue.Enqueue({ @@ -71,7 +81,7 @@ async function getEntries(stack, contentType, locale, bulkPublish, environments, Type: 'entry', environments: environments, stack: stack, - apiVersion + apiVersion, }); bulkPublishSet = []; } // bulkPublish @@ -92,7 +102,16 @@ async function getEntries(stack, contentType, locale, bulkPublish, environments, bulkPublishSet = []; return resolve(); } - await getEntries(stack, contentType, locale, bulkPublish, environments, apiVersion, skipCount); + await getEntries( + stack, + contentType, + locale, + bulkPublish, + environments, + apiVersion, + bulkPublishLimit, + skipCount, + ); return resolve(); }) .catch((error) => reject(error)); @@ -170,10 +189,19 @@ async function start( } else { allContentTypes = contentTypes; } + const bulkPublishLimit = fetchBulkPublishLimit(stack?.org_uid); for (let loc = 0; loc < locales.length; loc += 1) { for (let i = 0; i < allContentTypes.length; i += 1) { /* eslint-disable no-await-in-loop */ - await getEntries(stack, allContentTypes[i].uid || allContentTypes[i], locales[loc], bulkPublish, environments, apiVersion); + await getEntries( + stack, + allContentTypes[i].uid || allContentTypes[i], + locales[loc], + bulkPublish, + environments, + apiVersion, + bulkPublishLimit, + ); /* eslint-enable no-await-in-loop */ } } diff --git a/packages/contentstack-bulk-publish/src/util/client.js b/packages/contentstack-bulk-publish/src/util/client.js index 12ad2c4164..22a73bcca7 100644 --- a/packages/contentstack-bulk-publish/src/util/client.js +++ b/packages/contentstack-bulk-publish/src/util/client.js @@ -15,12 +15,18 @@ async function getStack(data) { stackOptions.api_key = tokenDetails.apiKey; } else if (data.stackApiKey) { if (!isAuthenticated()) { - throw new Error('Please login to proceed further. Or use `--alias` instead of `--stack-api-key` to proceed without logging in.') + throw new Error( + 'Please login to proceed further. Or use `--alias` instead of `--stack-api-key` to proceed without logging in.', + ); } stackOptions.api_key = data.stackApiKey; } const managementClient = await managementSDKClient(options); const stack = managementClient.stack(stackOptions); + if (data.stackApiKey && isAuthenticated()) { + const stackDetails = await stack.fetch(); + stack.org_uid = stackDetails.org_uid; + } stack.alias = data.alias; stack.host = data.host; return stack; diff --git a/packages/contentstack-bulk-publish/src/util/common-utility.js b/packages/contentstack-bulk-publish/src/util/common-utility.js new file mode 100644 index 0000000000..c51c0a40de --- /dev/null +++ b/packages/contentstack-bulk-publish/src/util/common-utility.js @@ -0,0 +1,30 @@ +const { configHandler, cliux } = require('@contentstack/cli-utilities'); + +function fetchBulkPublishLimit(orgUid) { + const plan = configHandler.get('rateLimit'); + let bulkPublishLimit = 1; // Default limit according to the default plan + + if (plan) { + const orgPlan = plan[orgUid]?.bulkLimit; + const defaultPlan = plan['default']?.bulkLimit; + + if (orgPlan?.value && orgPlan?.utilize) { + bulkPublishLimit = Math.ceil((orgPlan.value * orgPlan.utilize) / 100); + } else if (defaultPlan?.value && defaultPlan?.utilize) { + bulkPublishLimit = Math.ceil((defaultPlan.value * defaultPlan.utilize) / 100); + } + } else { + cliux.print( + 'Bulk publish limit not found in config. Using default limit. Please set the limit using $csdx config:set:rate-limit', + { color: 'yellow' }, + ); + // TODO: Update the link once the rate-limit documentation is ready + cliux.print( + 'Suggestions: To set the rate limit, visit https://www.contentstack.com/docs/developers/cli#get-started-with-contentstack-command-line-interface-cli', + { color: 'blue' }, + ); + } + return bulkPublishLimit; +} + +module.exports = { fetchBulkPublishLimit }; diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md index 6029836d4d..e4d0841a5a 100644 --- a/packages/contentstack-config/README.md +++ b/packages/contentstack-config/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-config $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-config/1.7.3 darwin-arm64 node-v22.2.0 +@contentstack/cli-config/1.8.0 darwin-arm64 node-v22.2.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND @@ -32,13 +32,16 @@ USAGE * [`csdx config:get:base-branch`](#csdx-configgetbase-branch) * [`csdx config:get:ea-header`](#csdx-configgetea-header) * [`csdx config:get:early-access-header`](#csdx-configgetearly-access-header) +* [`csdx config:get:rate-limit`](#csdx-configgetrate-limit) * [`csdx config:get:region`](#csdx-configgetregion) * [`csdx config:remove:base-branch`](#csdx-configremovebase-branch) * [`csdx config:remove:ea-header`](#csdx-configremoveea-header) * [`csdx config:remove:early-access-header`](#csdx-configremoveearly-access-header) +* [`csdx config:remove:rate-limit`](#csdx-configremoverate-limit) * [`csdx config:set:base-branch`](#csdx-configsetbase-branch) * [`csdx config:set:ea-header`](#csdx-configsetea-header) * [`csdx config:set:early-access-header`](#csdx-configsetearly-access-header) +* [`csdx config:set:rate-limit`](#csdx-configsetrate-limit) * [`csdx config:set:region [REGION]`](#csdx-configsetregion-region) ## `csdx config:get:base-branch` @@ -96,6 +99,23 @@ EXAMPLES _See code: [src/commands/config/get/early-access-header.ts](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/get/early-access-header.ts)_ +## `csdx config:get:rate-limit` + +Get rate-limit of organizations + +``` +USAGE + $ csdx config:get:rate-limit + +DESCRIPTION + Get rate-limit of organizations + +EXAMPLES + $ csdx config:get:rate-limit +``` + +_See code: [src/commands/config/get/rate-limit.ts](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/get/rate-limit.ts)_ + ## `csdx config:get:region` Get current region set for CLI @@ -186,6 +206,26 @@ EXAMPLES _See code: [src/commands/config/remove/early-access-header.ts](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/remove/early-access-header.ts)_ +## `csdx config:remove:rate-limit` + +Remove rate-limit of the organization + +``` +USAGE + $ csdx config:remove:rate-limit [--org ] + +FLAGS + --org= Provide the organization UID + +DESCRIPTION + Remove rate-limit of the organization + +EXAMPLES + $ csdx config:remove:rate-limit --org <> +``` + +_See code: [src/commands/config/remove/rate-limit.ts](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/remove/rate-limit.ts)_ + ## `csdx config:set:base-branch` Set branch for CLI @@ -259,6 +299,33 @@ EXAMPLES _See code: [src/commands/config/set/early-access-header.ts](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/set/early-access-header.ts)_ +## `csdx config:set:rate-limit` + +Set rate-limit for CLI + +``` +USAGE + $ csdx config:set:rate-limit [--org ] [--utilize ] [--limit-name ] [--default] + +FLAGS + --default Reset to default rate limit + --limit-name=... [Optional] Provide the limit names separated by commas ['limit', 'getLimit', 'bulkLimit'] + --org= Provide the organization UID + --utilize= [default: 50] Provide the utilization percentages for rate limit, separated by commas + +DESCRIPTION + Set rate-limit for CLI + +EXAMPLES + $ csdx config:set:rate-limit --org <> + + $ csdx config:set:rate-limit --org <> --utilize 70,80 --limit-name getLimit,limit + + $ csdx config:set:rate-limit --org <> --default +``` + +_See code: [src/commands/config/set/rate-limit.ts](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/set/rate-limit.ts)_ + ## `csdx config:set:region [REGION]` Set region for CLI diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json index c8ef75a741..a61b82daa0 100644 --- a/packages/contentstack-config/package.json +++ b/packages/contentstack-config/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-config", "description": "Contentstack CLI plugin for configuration", - "version": "1.7.3", + "version": "1.8.0", "author": "Contentstack", "scripts": { "build": "npm run clean && npm run compile", @@ -81,7 +81,10 @@ "config:get:region": "RGT", "config:set:region": "RST", "config:get:base-branch": "BRGT", - "config:set:base-branch": "BRST" + "config:set:base-branch": "BRST", + "config:set:rate-limit": "RLST", + "config:get:rate-limit": "RLGT", + "config:remove:rate-limit": "RLRM" } }, "repository": "contentstack/cli" diff --git a/packages/contentstack-config/src/commands/config/get/rate-limit.ts b/packages/contentstack-config/src/commands/config/get/rate-limit.ts new file mode 100644 index 0000000000..a3cb1e18d3 --- /dev/null +++ b/packages/contentstack-config/src/commands/config/get/rate-limit.ts @@ -0,0 +1,40 @@ +import { cliux, configHandler } from '@contentstack/cli-utilities'; +import { Command } from '@contentstack/cli-command'; +import { RateLimitConfig } from '../../../interfaces'; + +export default class RateLimitGetCommand extends Command { + static description: string = 'Get rate-limit of organizations'; + static examples = ['$ csdx config:get:rate-limit']; + + async run() { + try { + const rateLimit = configHandler.get('rateLimit') || {}; + const formatLimit = (limit) => (limit ? `${limit.value}(${limit.utilize}%)` : '0'); + const tableData = Object.entries(rateLimit).map(([org, limits]: [string, RateLimitConfig]) => ({ + Org: org === 'default' ? 'default' : org, + 'Get Limit': formatLimit(limits.getLimit), + Limit: formatLimit(limits.limit), + 'Bulk Limit': formatLimit(limits.bulkLimit), + })); + + const columns = { + Org: { + minWidth: 10, + }, + 'Get Limit': { + minWidth: 20, + }, + Limit: { + minWidth: 20, + }, + 'Bulk Limit': { + minWidth: 20, + }, + }; + + cliux.table(tableData, columns, { printLine: cliux.print }); + } catch (error) { + this.log('Unable to retrieve the rate limits configuration', error instanceof Error ? error.message : error); + } + } +} diff --git a/packages/contentstack-config/src/commands/config/remove/rate-limit.ts b/packages/contentstack-config/src/commands/config/remove/rate-limit.ts new file mode 100644 index 0000000000..2157ef512f --- /dev/null +++ b/packages/contentstack-config/src/commands/config/remove/rate-limit.ts @@ -0,0 +1,33 @@ +import { cliux, configHandler, FlagInput, flags } from '@contentstack/cli-utilities'; +import { Command } from '@contentstack/cli-command'; +import { askOrgID } from '../../../utils/interactive'; + +export default class RateLimitRemoveCommand extends Command { + static description: string = 'Remove rate-limit of the organization'; + + static flags: FlagInput = { + org: flags.string({ + description: 'Provide the organization UID', + }), + }; + static examples = ['$ csdx config:remove:rate-limit --org <>']; + async run() { + try { + const { flags } = await this.parse(RateLimitRemoveCommand); + let { org } = flags; + if (!org) { + org = await askOrgID(); + } + const rateLimit = configHandler.get('rateLimit') || {}; + + if (!rateLimit[org]) { + cliux.print(`No rate limit found for the organization UID: ${org}`, { color: 'red' }); + return; + } + configHandler.delete(`rateLimit.${org}`); + cliux.print(`Rate limit entry for organization UID ${org} has been removed.`, { color: 'green' }); + } catch (error) { + this.log('Unable to remove the rate limit entry', error instanceof Error ? error.message : error); + } + } +} diff --git a/packages/contentstack-config/src/commands/config/set/rate-limit.ts b/packages/contentstack-config/src/commands/config/set/rate-limit.ts new file mode 100644 index 0000000000..4016a9b071 --- /dev/null +++ b/packages/contentstack-config/src/commands/config/set/rate-limit.ts @@ -0,0 +1,89 @@ +import { flags, isAuthenticated, FlagInput, managementSDKClient, cliux } from '@contentstack/cli-utilities'; +import { RateLimitHandler } from '../../../utils/rate-limit-handler'; +import { BaseCommand } from '../../../base-command'; +import { askOrgID } from '../../../utils/interactive'; +import { SetRateLimitConfig } from '../../../interfaces'; +import { limitNamesConfig } from '../../../utils/common-utilities'; + +export default class SetRateLimitCommand extends BaseCommand { + static description = 'Set rate-limit for CLI'; + + static flags: FlagInput = { + org: flags.string({ + description: 'Provide the organization UID', + }), + + utilize: flags.string({ + description: 'Provide the utilization percentages for rate limit, separated by commas', + default: '50', + }), + + 'limit-name': flags.string({ + description: "[Optional] Provide the limit names separated by commas ['limit', 'getLimit', 'bulkLimit']", + multiple: true, + }), + + default: flags.boolean({ + default: false, + description: 'Reset to default rate limit', + }), + }; + + static examples = [ + '$ csdx config:set:rate-limit --org <>', + '$ csdx config:set:rate-limit --org <> --utilize 70,80 --limit-name getLimit,limit', + '$ csdx config:set:rate-limit --org <> --default', + ]; + + public async run(): Promise { + if (!isAuthenticated()) { + const err = { errorMessage: 'You are not logged in. Please login with command $ csdx auth:login' }; + cliux.print(err.errorMessage, { color: 'red' }); + this.exit(1); + } + + const { flags } = await this.parse(SetRateLimitCommand); + let { org, utilize, 'limit-name': limitName } = flags; + const config: SetRateLimitConfig = { org: '', limitName: limitNamesConfig, host: this.cmaHost }; + + if (!org) { + org = await askOrgID(); + } + config.org = org; + config.default = flags.default; + if (utilize) { + const utilizeValues = utilize?.split(',')?.map((u: string) => Number(u.trim())); + if (utilizeValues.some((u: number) => isNaN(u) || u < 0 || u > 100)) { + cliux.error('Utilize percentages must be numbers between 0 and 100.'); + return; + } + if (limitName?.length > 0 && limitName[0]?.split(',')?.length !== utilizeValues.length) { + cliux.error('The number of utilization percentages must match the number of limit names provided.'); + return; + } else { + config.utilize = utilize.split(',').map((v: string) => v.trim()); + } + } + + if (limitName) { + const invalidLimitNames = limitName[0].split(',').map((name: string) => name.trim()); + + if (invalidLimitNames.some((name: string) => !limitNamesConfig.includes(name))) { + cliux.error(`Invalid limit names provided: ${invalidLimitNames.join(', ')}`); + return; + } else { + config['limit-name'] = limitName[0].split(',').map((n) => n.trim()); + } + } + + const limitHandler = new RateLimitHandler(); + const managementAPIClient = await managementSDKClient(config); + limitHandler.setClient(managementAPIClient); + try { + await limitHandler.setRateLimit(config); + } catch (error) { + cliux.error(`Error: Something went wrong while setting rate limit for org: ${org}`); + cliux.error(error); + } + } +} diff --git a/packages/contentstack-config/src/interfaces/index.ts b/packages/contentstack-config/src/interfaces/index.ts index e1e684c6af..9cff3cc608 100644 --- a/packages/contentstack-config/src/interfaces/index.ts +++ b/packages/contentstack-config/src/interfaces/index.ts @@ -19,3 +19,22 @@ export interface Region { personalizeUrl: string; launchHubUrl: string; } + +export interface Limit { + value: number; + utilize: number; +} + +export interface RateLimitConfig { + getLimit?: Limit; + limit?: Limit + bulkLimit?: Limit +} + +export interface SetRateLimitConfig { + org: string; + utilize?: number; + limitName?: string[]; + default?: boolean; + host?: string; +} diff --git a/packages/contentstack-config/src/utils/common-utilities.ts b/packages/contentstack-config/src/utils/common-utilities.ts new file mode 100644 index 0000000000..1dcead8f66 --- /dev/null +++ b/packages/contentstack-config/src/utils/common-utilities.ts @@ -0,0 +1,7 @@ +export const limitNamesConfig = ['getLimit', 'limit', 'bulkLimit']; + +export const defaultRalteLimitConfig = { + getLimit: { value: 10, utilize: 50 }, + limit: { value: 10, utilize: 50 }, + bulkLimit: { value: 1, utilize: 50 }, +}; diff --git a/packages/contentstack-config/src/utils/interactive.ts b/packages/contentstack-config/src/utils/interactive.ts index 04b32e9047..0beb8c7eba 100644 --- a/packages/contentstack-config/src/utils/interactive.ts +++ b/packages/contentstack-config/src/utils/interactive.ts @@ -96,3 +96,11 @@ export async function askEarlyAccessHeaderAlias(): Promise { validate: inquireRequireFieldValidation, }); } + +export const askOrgID = async (): Promise => { + return cliux.inquire({ + type: 'input', + message: 'Provide the organization UID', + name: 'org', + }); +}; diff --git a/packages/contentstack-config/src/utils/rate-limit-handler.ts b/packages/contentstack-config/src/utils/rate-limit-handler.ts new file mode 100644 index 0000000000..37ee116525 --- /dev/null +++ b/packages/contentstack-config/src/utils/rate-limit-handler.ts @@ -0,0 +1,72 @@ +import { cliux, configHandler } from '@contentstack/cli-utilities'; +import { limitNamesConfig, defaultRalteLimitConfig } from '../utils/common-utilities'; +import { Limit } from '../interfaces'; + +let client: any; + +export class RateLimitHandler { + setClient(managementSDKClient) { + client = managementSDKClient; + } + + async setRateLimit(config) { + const rateLimit = configHandler.get('rateLimit'); + rateLimit.default = { ...defaultRalteLimitConfig }; + + if (config.default) { + rateLimit[config.org] = { ...rateLimit.default }; + configHandler.set('rateLimit', rateLimit); + cliux.success(`Rate limit reset to default for org: ${config.org}`); + return; + } + + if (!rateLimit[config.org]) { + rateLimit[config.org] = { ...rateLimit.default }; + } + const limitNames = Array.isArray(config['limit-name']) ? config['limit-name'] : []; + const utilizeValues = Array.isArray(config.utilize) ? config.utilize.map((v) => Number(v)) : []; + const unavailableLimits = []; + + try { + const organizations = await client.organization(config.org).fetch({ include_plan: true }); + const features = organizations.plan?.features || []; + + const limitsToUpdate: { [key: string]: Limit } = { ...rateLimit[config.org] }; + let utilizationMap = {}; + limitNames.forEach((name, index) => { + if (utilizeValues[index] !== undefined) { + utilizationMap[name] = utilizeValues[index]; + } + }); + + limitNamesConfig.forEach((limitName) => { + const feature = features.find((f: { uid: string }) => f.uid === limitName); + if (feature) { + limitsToUpdate[limitName] = { + value: feature.limit || rateLimit[config.org][limitName]?.value || rateLimit.default[limitName]?.value, + utilize: utilizationMap[limitName] || defaultRalteLimitConfig[limitName]?.utilize, + }; + } else { + unavailableLimits.push(limitName); + } + }); + + if (unavailableLimits.length > 0) { + cliux.print(`You have not subscribed to these limits: ${unavailableLimits.join(', ')}`, { + color: 'yellow', + }); + } + rateLimit[config.org] = limitsToUpdate; + configHandler.set('rateLimit', rateLimit); + cliux.success(`Rate limit has been set successfully for org: ${config.org}`); + + Object.entries(limitsToUpdate).forEach(([limit, { value, utilize }]) => { + if (!unavailableLimits.includes(limit)) { + cliux.success(`${limit}: ${value}(${utilize}%)`); + } + }); + } catch (error) { + throw new Error(error); + } + } +} diff --git a/packages/contentstack-config/test/unit/commands/rate-limit.test.ts b/packages/contentstack-config/test/unit/commands/rate-limit.test.ts new file mode 100644 index 0000000000..8f0a1e8685 --- /dev/null +++ b/packages/contentstack-config/test/unit/commands/rate-limit.test.ts @@ -0,0 +1,178 @@ +import { expect } from 'chai'; +import { stub, restore } from 'sinon'; // Import restore for cleaning up +import { cliux, configHandler, isAuthenticated } from '@contentstack/cli-utilities'; +import SetRateLimitCommand from '../../../src/commands/config/set/rate-limit'; +import GetRateLimitCommand from '../../../src/commands/config/get/rate-limit'; +import RemoveRateLimitCommand from '../../../src/commands/config/remove/rate-limit'; +import { askOrgID } from '../../../src/utils/interactive'; +import { RateLimitHandler } from '../../../src/utils/rate-limit-handler'; +import { defaultRalteLimitConfig } from '../../../src/utils/common-utilities'; + +describe('Rate Limit Commands', () => { + let originalCliuxError: typeof cliux.error; + let originalCliuxPrint: typeof cliux.print; + let originalIsAuthenticated: () => boolean; + let errorMessage: any; + let printMessage: any; + let authenticated = isAuthenticated; + let rateLimitHandler: RateLimitHandler; + let mockClient: any; + + beforeEach(() => { + originalCliuxError = cliux.error; + originalCliuxPrint = cliux.print; + originalIsAuthenticated = isAuthenticated; + + cliux.error = (message: string) => { + errorMessage = message; + }; + cliux.print = (message: string) => { + printMessage = message; + }; + rateLimitHandler = new RateLimitHandler(); + mockClient = { + organization: stub().returns({ + fetch: stub().resolves({ plan: { features: [{ uid: 'getLimit' }, { uid: 'bulkLimit' }] } }), + }), + }; + rateLimitHandler.setClient(mockClient); + restore(); + + restore(); + }); + + afterEach(() => { + cliux.error = originalCliuxError; + cliux.print = originalCliuxPrint; + authenticated = originalIsAuthenticated; + }); + + describe('Set Rate Limit Command', () => { + it('Set Rate Limit: with all flags, should be successful', async () => { + const stub1 = stub(SetRateLimitCommand.prototype, 'run').resolves(); + const args = ['--org', 'test-org-id', '--utilize', '70,80', '--limit-name', 'getLimit,bulkLimit']; + await SetRateLimitCommand.run(args); + expect(stub1.calledOnce).to.be.true; + }); + + it('Set Rate Limit: should handle invalid utilization percentages', async () => { + const args = ['--org', 'test-org-id', '--utilize', '150', '--limit-name', 'getLimit']; + await SetRateLimitCommand.run(args); + expect(errorMessage).to.equal('Utilize percentages must be numbers between 0 and 100.'); + }); + + it('Set Rate Limit: should handle mismatch between utilize percentages and limit names', async () => { + const args = ['--org', 'test-org-id', '--utilize', '70', '--limit-name', 'getLimit,postLimit']; + await SetRateLimitCommand.run(args); + expect(errorMessage).to.equal( + 'The number of utilization percentages must match the number of limit names provided.', + ); + }); + + it('Set Rate Limit: should handle invalid number of limit names', async () => { + const args = ['--org', 'test-org-id', '--utilize', '70,80', '--limit-name', 'getLimit']; + await SetRateLimitCommand.run(args); + expect(errorMessage).to.equal( + 'The number of utilization percentages must match the number of limit names provided.', + ); + }); + + it('Set Rate Limit: should prompt for the organization UID', async () => { + const inquireStub = stub(cliux, 'inquire').resolves('test-org-id'); + const orgID = await askOrgID(); + expect(orgID).to.equal('test-org-id'); + inquireStub.restore(); + }); + + it('Set Rate Limit: should handle API client failure gracefully', async () => { + const handler = new RateLimitHandler(); + handler.setClient({ + organization: () => { + throw new Error('Client Error'); + }, + }); + const config = { org: 'test-org-id', utilize: ['70'], 'limit-name': ['getLimit'] }; + await handler.setRateLimit(config); + expect(errorMessage).to.include('Error: Unable to set the rate limit'); + }); + + it('Set Rate Limit: should handle unauthenticated user', async () => { + const isAuthenticatedStub = stub().returns(false); + authenticated = isAuthenticatedStub; + const args = ['--org', 'test-org-id', '--utilize', '70,80', '--limit-name', 'getLimit,bulkLimit']; + try { + await SetRateLimitCommand.run(args); + } catch (error) { + expect(errorMessage).to.equal('You are not logged in. Please login with command $ csdx auth:login'); + expect(error?.code).to.equal(1); + } + }); + it('should set default rate limit for organization', async () => { + const config = { org: 'test-org-id', default: true }; + await rateLimitHandler.setRateLimit(config); + const rateLimit = configHandler.get('rateLimit'); + expect(rateLimit['test-org-id']).to.deep.equal(defaultRalteLimitConfig); + }); + + it('should set rate limit when only utilization percentages are provided', async () => { + const config = { + org: 'test-org-id', + utilize: ['70'], + 'limit-name': ['getLimit'], + }; + await rateLimitHandler.setRateLimit(config); + const rateLimit = configHandler.get('rateLimit'); + expect(rateLimit['test-org-id']['getLimit'].utilize).to.equal(70); + }); + }); + + describe('Get Rate Limit Command', () => { + const rateLimit = { + 'test-org-id': { + getLimit: { value: 10, utilize: 70 }, + bulkLimit: { value: 1, utilize: 80 }, + }, + }; + + it('Get Rate Limit: should print the rate limit for the given organization', async () => { + configHandler.set('rateLimit', rateLimit); + await GetRateLimitCommand.run(['--org', 'test-org-id']); + expect(printMessage).to.include(' test-org-id 10(70%) 0 1(80%) '); + }); + + it('Get Rate Limit: should throw an error if the organization is not found', async () => { + configHandler.set('rateLimit', {}); + try { + await GetRateLimitCommand.run(['--org', 'non-existent-org']); + } catch (error) { + expect(errorMessage).to.equal('Error: Organization not found'); + } + }); + }); + + describe('Remove Rate Limit Command', () => { + const rateLimit = { + 'test-org-id': { + getLimit: { value: 10, utilize: 70 }, + bulkLimit: { value: 1, utilize: 80 }, + }, + }; + + it('Remove Rate Limit: should remove the rate limit for the given organization', async () => { + configHandler.set('rateLimit', rateLimit); + await RemoveRateLimitCommand.run(['--org', 'test-org-id']); + const updatedRateLimit = configHandler.get('rateLimit'); + expect(updatedRateLimit['test-org-id']).to.be.undefined; + expect(printMessage).to.equal('Rate limit entry for organization UID test-org-id has been removed.'); + }); + + it('Remove Rate Limit: should throw an error if the organization is not found', async () => { + configHandler.set('rateLimit', {}); + try { + await RemoveRateLimitCommand.run(['--org', 'non-existent-org']); + } catch (error) { + expect(errorMessage).to.equal('Error: Organization not found'); + } + }); + }); +}); diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index d968150a0b..aca3b69cd6 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -26,7 +26,7 @@ }, "devDependencies": { "@contentstack/cli-auth": "~1.3.22", - "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-config": "~1.8.0", "@contentstack/cli-dev-dependencies": "~1.2.4", "@oclif/plugin-help": "^5.1.19", "@oclif/test": "^2.5.6", diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index dc0a7dc21c..8e89f7b8e2 100644 --- a/packages/contentstack/README.md +++ b/packages/contentstack/README.md @@ -86,13 +86,16 @@ USAGE * [`csdx config:get:base-branch`](#csdx-configgetbase-branch) * [`csdx config:get:ea-header`](#csdx-configgetea-header) * [`csdx config:get:early-access-header`](#csdx-configgetearly-access-header) +* [`csdx config:get:rate-limit`](#csdx-configgetrate-limit) * [`csdx config:get:region`](#csdx-configgetregion) * [`csdx config:remove:base-branch`](#csdx-configremovebase-branch) * [`csdx config:remove:ea-header`](#csdx-configremoveea-header) * [`csdx config:remove:early-access-header`](#csdx-configremoveearly-access-header) +* [`csdx config:remove:rate-limit`](#csdx-configremoverate-limit) * [`csdx config:set:base-branch`](#csdx-configsetbase-branch) * [`csdx config:set:ea-header`](#csdx-configsetea-header) * [`csdx config:set:early-access-header`](#csdx-configsetearly-access-header) +* [`csdx config:set:rate-limit`](#csdx-configsetrate-limit) * [`csdx config:set:region [REGION]`](#csdx-configsetregion-region) * [`csdx help [COMMANDS]`](#csdx-help-commands) * [`csdx launch`](#csdx-launch) @@ -2994,6 +2997,23 @@ EXAMPLES _See code: [@contentstack/cli-config](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/get/early-access-header.ts)_ +## `csdx config:get:rate-limit` + +Get rate-limit of organizations + +``` +USAGE + $ csdx config:get:rate-limit + +DESCRIPTION + Get rate-limit of organizations + +EXAMPLES + $ csdx config:get:rate-limit +``` + +_See code: [@contentstack/cli-config](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/get/rate-limit.ts)_ + ## `csdx config:get:region` Get current region set for CLI @@ -3084,6 +3104,26 @@ EXAMPLES _See code: [@contentstack/cli-config](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/remove/early-access-header.ts)_ +## `csdx config:remove:rate-limit` + +Remove rate-limit of the organization + +``` +USAGE + $ csdx config:remove:rate-limit [--org ] + +FLAGS + --org= Provide the organization UID + +DESCRIPTION + Remove rate-limit of the organization + +EXAMPLES + $ csdx config:remove:rate-limit --org <> +``` + +_See code: [@contentstack/cli-config](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/remove/rate-limit.ts)_ + ## `csdx config:set:base-branch` Set branch for CLI @@ -3157,6 +3197,33 @@ EXAMPLES _See code: [@contentstack/cli-config](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/set/early-access-header.ts)_ +## `csdx config:set:rate-limit` + +Set rate-limit for CLI + +``` +USAGE + $ csdx config:set:rate-limit [--org ] [--utilize ] [--limit-name ...] [--default] + +FLAGS + --default Reset to default rate limit + --limit-name=... [Optional] Provide the limit names separated by commas ['limit', 'getLimit', 'bulkLimit'] + --org= Provide the organization UID + --utilize= [default: 50] Provide the utilization percentages for rate limit, separated by commas + +DESCRIPTION + Set rate-limit for CLI + +EXAMPLES + $ csdx config:set:rate-limit --org <> + + $ csdx config:set:rate-limit --org <> --utilize 70,80 --limit-name getLimit,limit + + $ csdx config:set:rate-limit --org <> --default +``` + +_See code: [@contentstack/cli-config](https://github.com/contentstack/cli/blob/main/packages/contentstack-config/src/commands/config/set/rate-limit.ts)_ + ## `csdx config:set:region [REGION]` Set region for CLI diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index f73366af5d..6352cde823 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -26,7 +26,7 @@ "@contentstack/cli-auth": "~1.3.22", "@contentstack/cli-cm-bootstrap": "~1.13.0", "@contentstack/cli-cm-branches": "~1.2.0", - "@contentstack/cli-cm-bulk-publish": "~1.4.9", + "@contentstack/cli-cm-bulk-publish": "~1.5.0", "@contentstack/cli-cm-export": "~1.14.1", "@contentstack/cli-cm-clone": "~1.13.0", "@contentstack/cli-cm-export-to-csv": "~1.7.3", @@ -34,7 +34,7 @@ "@contentstack/cli-cm-migrate-rte": "~1.4.20", "@contentstack/cli-cm-seed": "~1.10.0", "@contentstack/cli-command": "~1.3.2", - "@contentstack/cli-config": "~1.7.3", + "@contentstack/cli-config": "~1.8.0", "@contentstack/cli-launch": "~1.2.3", "@contentstack/cli-migration": "~1.6.2", "@contentstack/cli-utilities": "~1.8.0", @@ -152,7 +152,8 @@ ], "hooks": { "prerun": [ - "./lib/hooks/prerun/command-deprecation-check" + "./lib/hooks/prerun/command-deprecation-check", + "./lib/hooks/prerun/default-rate-limit-check" ], "init": [ "./lib/hooks/init/context-init", diff --git a/packages/contentstack/src/hooks/prerun/default-rate-limit-check.ts b/packages/contentstack/src/hooks/prerun/default-rate-limit-check.ts new file mode 100644 index 0000000000..4a1e368beb --- /dev/null +++ b/packages/contentstack/src/hooks/prerun/default-rate-limit-check.ts @@ -0,0 +1,19 @@ +import { cliux, configHandler } from '@contentstack/cli-utilities'; + +export default function (): void { + const rateLimit = configHandler.get('rateLimit'); + if (!rateLimit?.default) { + const defaultPlan = { + getLimit: { value: 10, utilize: 50 }, + limit: { value: 10, utilize: 50 }, + bulkLimit: { value: 1, utilize: 50 }, + }; + configHandler.set('rateLimit', { default: defaultPlan }); + cliux.print( + `Default rate limit configuration is set to ${JSON.stringify( + defaultPlan, + )}. Please use this command csdx config:set:rate-limit to set the custom rate limit config.`, + { color: 'blue' }, + ); + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2d6846ace0..74550922a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,7 +14,7 @@ importers: '@contentstack/cli-auth': ~1.3.22 '@contentstack/cli-cm-bootstrap': ~1.13.0 '@contentstack/cli-cm-branches': ~1.2.0 - '@contentstack/cli-cm-bulk-publish': ~1.4.9 + '@contentstack/cli-cm-bulk-publish': ~1.5.0 '@contentstack/cli-cm-clone': ~1.13.0 '@contentstack/cli-cm-export': ~1.14.1 '@contentstack/cli-cm-export-to-csv': ~1.7.3 @@ -22,7 +22,7 @@ importers: '@contentstack/cli-cm-migrate-rte': ~1.4.20 '@contentstack/cli-cm-seed': ~1.10.0 '@contentstack/cli-command': ~1.3.2 - '@contentstack/cli-config': ~1.7.3 + '@contentstack/cli-config': ~1.8.0 '@contentstack/cli-launch': ~1.2.3 '@contentstack/cli-migration': ~1.6.2 '@contentstack/cli-utilities': ~1.8.0 @@ -86,16 +86,16 @@ importers: '@oclif/core': 3.27.0 '@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y '@oclif/plugin-not-found': 2.4.3_ogreqof3k35xezedraj6pnd45y - '@oclif/plugin-plugins': 5.4.9 + '@oclif/plugin-plugins': 5.4.14 chalk: 4.1.2 debug: 4.3.7 - figlet: 1.7.0 + figlet: 1.8.0 inquirer: 8.2.4 node-machine-id: 1.1.12 open: 8.4.2 short-uuid: 4.2.2 uuid: 9.0.1 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@oclif/test': 2.5.6_ogreqof3k35xezedraj6pnd45y '@types/chai': 4.3.20 @@ -107,7 +107,7 @@ importers: chai: 4.5.0 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji globby: 10.0.2 mocha: 10.1.0 nock: 13.5.5 @@ -156,35 +156,35 @@ importers: dependencies: '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-utilities': link:../contentstack-utilities - '@oclif/plugin-help': 5.2.20_jeqbknj46pgdeszrzbax4bk7my - '@oclif/plugin-plugins': 5.4.9 + '@oclif/plugin-help': 5.2.20_scdp47z3rdmsjsnkk7dmy5sazq + '@oclif/plugin-plugins': 5.4.14 chalk: 4.1.2 fast-csv: 4.3.6 fs-extra: 11.2.0 lodash: 4.17.21 uuid: 9.0.1 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@contentstack/cli-dev-dependencies': link:../contentstack-dev-dependencies - '@oclif/test': 2.5.6_jeqbknj46pgdeszrzbax4bk7my + '@oclif/test': 2.5.6_scdp47z3rdmsjsnkk7dmy5sazq '@types/chai': 4.3.20 '@types/fs-extra': 11.0.4 - '@types/mocha': 10.0.8 - '@types/node': 20.16.9 + '@types/mocha': 10.0.9 + '@types/node': 20.16.11 '@types/uuid': 9.0.8 chai: 4.5.0 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_hjvaeeg43g7el7m5pcdc7xyzxm + eslint-config-oclif-typescript: 3.1.12_inylsuzpwuenpw7p6e7ggu4qmy mocha: 10.7.3 nyc: 15.1.0 - oclif: 3.17.2_jeqbknj46pgdeszrzbax4bk7my + oclif: 3.17.2_scdp47z3rdmsjsnkk7dmy5sazq shx: 0.3.4 sinon: 19.0.2 - ts-jest: 29.2.5_typescript@5.6.2 - ts-node: 10.9.2_jeqbknj46pgdeszrzbax4bk7my + ts-jest: 29.2.5_typescript@5.6.3 + ts-node: 10.9.2_scdp47z3rdmsjsnkk7dmy5sazq tslib: 2.7.0 - typescript: 5.6.2 + typescript: 5.6.3 packages/contentstack-auth: specifiers: @@ -223,7 +223,7 @@ importers: chalk: 4.1.2 debug: 4.3.7 inquirer: 8.2.4 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@fancy-test/nock': 0.1.1 '@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y @@ -238,7 +238,7 @@ importers: dotenv: 16.4.5 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji globby: 10.0.2 mocha: 10.1.0 nyc: 15.1.0 @@ -290,7 +290,7 @@ importers: chai: 4.5.0 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji globby: 10.0.2 mocha: 10.1.0 nyc: 15.1.0 @@ -304,7 +304,7 @@ importers: specifiers: '@contentstack/cli-auth': ~1.3.22 '@contentstack/cli-command': ~1.3.2 - '@contentstack/cli-config': ~1.7.3 + '@contentstack/cli-config': ~1.8.0 '@contentstack/cli-dev-dependencies': ~1.2.4 '@contentstack/cli-utilities': ~1.8.0 '@oclif/core': ^3.26.5 @@ -357,7 +357,7 @@ importers: promise-limit: 2.7.0 proxyquire: 2.1.3 tslib: 2.7.0 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@contentstack/cli-auth': link:../contentstack-auth '@contentstack/cli-config': link:../contentstack-config @@ -410,7 +410,7 @@ importers: lodash: 4.17.21 mkdirp: 1.0.4 nock: 13.5.5 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@oclif/test': 2.5.6 chai: 4.5.0 @@ -466,7 +466,7 @@ importers: ora: 5.4.1 prompt: 1.3.0 rimraf: 5.0.10 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@oclif/test': 2.5.6 chai: 4.5.0 @@ -512,7 +512,7 @@ importers: chai: 4.5.0 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.1.0 nyc: 15.1.0 rimraf: 2.7.1 @@ -558,7 +558,7 @@ importers: inquirer: 8.2.4 lodash: 4.17.21 mkdirp: 1.0.4 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@oclif/test': 2.5.6_ogreqof3k35xezedraj6pnd45y '@types/chai': 4.3.20 @@ -570,7 +570,7 @@ importers: chai: 4.5.0 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji globby: 10.0.2 mocha: 10.1.0 nyc: 15.1.0 @@ -610,7 +610,7 @@ importers: specifiers: '@contentstack/cli-auth': ~1.3.22 '@contentstack/cli-command': ~1.3.2 - '@contentstack/cli-config': ~1.7.3 + '@contentstack/cli-config': ~1.8.0 '@contentstack/cli-dev-dependencies': ~1.2.4 '@contentstack/cli-utilities': ~1.8.0 '@contentstack/cli-variants': ~1.1.1 @@ -665,14 +665,14 @@ importers: promise-limit: 2.7.0 proxyquire: 2.1.3 tslib: 2.7.0 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@contentstack/cli-auth': link:../contentstack-auth '@contentstack/cli-config': link:../contentstack-config '@contentstack/cli-dev-dependencies': link:../contentstack-dev-dependencies '@oclif/plugin-help': 5.2.20_typescript@4.9.5 '@oclif/test': 2.5.6_typescript@4.9.5 - '@types/big-json': 3.2.4 + '@types/big-json': 3.2.5 '@types/mkdirp': 1.0.2 '@types/progress-stream': 2.0.5 assert: 2.1.0 @@ -721,7 +721,7 @@ importers: devDependencies: '@oclif/test': 2.5.6 '@types/chai': 4.3.20 - '@types/mocha': 10.0.8 + '@types/mocha': 10.0.9 chai: 4.5.0 debug: 4.3.7 dotenv: 16.4.5 @@ -796,10 +796,10 @@ importers: promise-limit: 2.7.0 tslib: 2.7.0 uuid: 9.0.1 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@oclif/test': 2.5.6_ogreqof3k35xezedraj6pnd45y - '@types/big-json': 3.2.4 + '@types/big-json': 3.2.5 '@types/bluebird': 3.5.42 '@types/chai': 4.3.20 '@types/fs-extra': 11.0.4 @@ -980,7 +980,7 @@ importers: dot-object: 2.1.5 dotenv: 16.4.5 listr: 0.14.3 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@oclif/test': 2.5.6 chai: 4.5.0 @@ -1041,7 +1041,7 @@ importers: axios: 1.7.7 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji globby: 10.0.2 jest: 29.7.0_gmerzvnqkqd6hvbwzqmybfpwqi oclif: 3.17.2_ogreqof3k35xezedraj6pnd45y @@ -1126,7 +1126,7 @@ importers: traverse: 0.6.10 unique-string: 2.0.0 uuid: 9.0.1 - winston: 3.14.2 + winston: 3.15.0 xdg-basedir: 4.0.0 devDependencies: '@contentstack/cli-dev-dependencies': link:../contentstack-dev-dependencies @@ -1141,7 +1141,7 @@ importers: chai: 4.5.0 eslint: 8.57.1 eslint-config-oclif: 4.0.0_eslint@8.57.1 - eslint-config-oclif-typescript: 3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif-typescript: 3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji fancy-test: 2.0.42 globby: 10.0.2 mocha: 10.1.0 @@ -1175,19 +1175,19 @@ importers: '@contentstack/cli-utilities': link:../contentstack-utilities lodash: 4.17.21 mkdirp: 1.0.4 - winston: 3.14.2 + winston: 3.15.0 devDependencies: '@contentstack/cli-dev-dependencies': link:../contentstack-dev-dependencies - '@oclif/test': 2.5.6_jeqbknj46pgdeszrzbax4bk7my + '@oclif/test': 2.5.6_scdp47z3rdmsjsnkk7dmy5sazq '@types/chai': 4.3.20 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chai: 4.5.0 mocha: 10.7.3 nyc: 15.1.0 sinon: 17.0.2 - ts-node: 10.9.2_jeqbknj46pgdeszrzbax4bk7my + ts-node: 10.9.2_scdp47z3rdmsjsnkk7dmy5sazq tslib: 2.7.0 - typescript: 5.6.2 + typescript: 5.6.3 packages: @@ -1239,36 +1239,36 @@ packages: /@babel/code-frame/7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 dev: true - /@babel/code-frame/7.24.7: - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + /@babel/code-frame/7.25.7: + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 picocolors: 1.1.0 dev: true - /@babel/compat-data/7.25.4: - resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} + /@babel/compat-data/7.25.7: + resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.25.2: - resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + /@babel/core/7.25.7: + resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/helper-compilation-targets': 7.25.2 - '@babel/helper-module-transforms': 7.25.2_@babel+core@7.25.2 - '@babel/helpers': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7_@babel+core@7.25.7 + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 convert-source-map: 2.0.0 debug: 4.3.7 gensync: 1.0.0-beta.2 @@ -1278,332 +1278,332 @@ packages: - supports-color dev: true - /@babel/eslint-parser/7.25.1_uhszjnyxpp3ff7nctzrrdj6llq: - resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} + /@babel/eslint-parser/7.25.7_etyso2f6lp2rwaqtyvmq6r5hme: + resolution: {integrity: sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 + eslint: 7.32.0 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/eslint-parser/7.25.1_vcko6n4u7xeo5rwd2py5qyyy7i: - resolution: {integrity: sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==} + /@babel/eslint-parser/7.25.7_xzd5y2yh7dv6xdly2tmj2hmjnm: + resolution: {integrity: sha512-B+BO9x86VYsQHimucBAL1fxTJKF4wyKY6ZVzee9QgzdZOUfs3BaR6AQrgoGrRI+7IFS1wUz/VyQ+SoBcSpdPbw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': ^7.11.0 eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 7.32.0 + eslint: 8.57.1 eslint-visitor-keys: 2.1.0 semver: 6.3.1 dev: true - /@babel/generator/7.25.6: - resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} + /@babel/generator/7.25.7: + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 + jsesc: 3.0.2 dev: true - /@babel/helper-compilation-targets/7.25.2: - resolution: {integrity: sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==} + /@babel/helper-compilation-targets/7.25.7: + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.25.4 - '@babel/helper-validator-option': 7.24.8 + '@babel/compat-data': 7.25.7 + '@babel/helper-validator-option': 7.25.7 browserslist: 4.24.0 lru-cache: 5.1.1 semver: 6.3.1 dev: true - /@babel/helper-module-imports/7.24.7: - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} + /@babel/helper-module-imports/7.25.7: + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms/7.25.2_@babel+core@7.25.2: - resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} + /@babel/helper-module-transforms/7.25.7_@babel+core@7.25.7: + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - '@babel/traverse': 7.25.6 + '@babel/core': 7.25.7 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-plugin-utils/7.24.8: - resolution: {integrity: sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==} + /@babel/helper-plugin-utils/7.25.7: + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-simple-access/7.24.7: - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} + /@babel/helper-simple-access/7.25.7: + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.25.6 - '@babel/types': 7.25.6 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.7 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-string-parser/7.24.8: - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + /@babel/helper-string-parser/7.25.7: + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier/7.24.7: - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + /@babel/helper-validator-identifier/7.25.7: + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option/7.24.8: - resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} + /@babel/helper-validator-option/7.25.7: + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.25.6: - resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} + /@babel/helpers/7.25.7: + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 dev: true - /@babel/highlight/7.24.7: - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + /@babel/highlight/7.25.7: + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 dev: true - /@babel/parser/7.25.6: - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + /@babel/parser/7.25.7: + resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.25.2: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.25.7: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.25.2: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.25.7: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.25.2: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.25.7: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.25.2: + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.25.7: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-import-attributes/7.25.6_@babel+core@7.25.2: - resolution: {integrity: sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==} + /@babel/plugin-syntax-import-attributes/7.25.7_@babel+core@7.25.7: + resolution: {integrity: sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.25.2: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.25.7: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.25.2: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.25.7: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-jsx/7.24.7_@babel+core@7.25.2: - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + /@babel/plugin-syntax-jsx/7.25.7_@babel+core@7.25.7: + resolution: {integrity: sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.25.2: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.25.7: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.25.2: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.25.7: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.25.2: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.25.7: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.25.2: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.25.7: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.25.2: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.25.7: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.25.2: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.25.7: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.25.2: + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.25.7: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.25.2: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.25.7: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/plugin-syntax-typescript/7.25.4_@babel+core@7.25.2: - resolution: {integrity: sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg==} + /@babel/plugin-syntax-typescript/7.25.7_@babel+core@7.25.7: + resolution: {integrity: sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.25.2 - '@babel/helper-plugin-utils': 7.24.8 + '@babel/core': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 dev: true - /@babel/runtime/7.25.6: - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + /@babel/runtime/7.25.7: + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@babel/template/7.25.0: - resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} + /@babel/template/7.25.7: + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 dev: true - /@babel/traverse/7.25.6: - resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} + /@babel/traverse/7.25.7: + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.25.6 - '@babel/parser': 7.25.6 - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.7 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 debug: 4.3.7 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.25.6: - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + /@babel/types/7.25.7: + resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 dev: true @@ -1658,8 +1658,8 @@ packages: - debug dev: false - /@contentstack/utils/1.3.11: - resolution: {integrity: sha512-K07q0j7HPix0sQzBgdzCYpDyUanJDkRWGUPYQHQki7XIXbA2ynqQ1cF80N/KZpNuPa8aj5mbOzq67KXu62HYTQ==} + /@contentstack/utils/1.3.12: + resolution: {integrity: sha512-5aTE13faSPPToGHkRwQF3bGanOaNH3nxWnSsPXWCnItIwsIqPVIwdR4cd0NyZpMTajv+IYrrIVAeibGEgAyQrg==} dev: false /@cspotcode/source-map-support/0.8.1: @@ -1855,7 +1855,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -1876,14 +1876,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0_@types+node@20.16.9 + jest-config: 29.7.0_@types+node@20.16.11 jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -1919,14 +1919,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0_2g6loqgebgnagbbrmjjc7cbjsy + jest-config: 29.7.0_xkxz5eby2ogoedielufu5q7wmm jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -1954,7 +1954,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 jest-mock: 29.7.0 dev: true @@ -1981,7 +1981,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.16.9 + '@types/node': 20.16.11 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -2014,7 +2014,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -2076,7 +2076,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 @@ -2101,7 +2101,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.16.9 + '@types/node': 20.16.11 '@types/yargs': 15.0.19 chalk: 4.1.2 dev: true @@ -2113,7 +2113,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.16.9 + '@types/node': 20.16.11 '@types/yargs': 17.0.33 chalk: 4.1.2 dev: true @@ -2589,7 +2589,7 @@ packages: - '@types/node' - typescript - /@oclif/core/2.16.0_jeqbknj46pgdeszrzbax4bk7my: + /@oclif/core/2.16.0_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -2616,7 +2616,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_jeqbknj46pgdeszrzbax4bk7my + ts-node: 10.9.2_ogreqof3k35xezedraj6pnd45y tslib: 2.7.0 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -2627,7 +2627,7 @@ packages: - '@types/node' - typescript - /@oclif/core/2.16.0_ogreqof3k35xezedraj6pnd45y: + /@oclif/core/2.16.0_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-dL6atBH0zCZl1A1IXCKJgLPrM/wR7K+Wi401E/IvqsK8m2iCHW+0TEOGrans/cuN3oTW+uxIyJFHJ8Im0k4qBw==} engines: {node: '>=14.0.0'} dependencies: @@ -2654,7 +2654,7 @@ packages: strip-ansi: 6.0.1 supports-color: 8.1.1 supports-hyperlinks: 2.3.0 - ts-node: 10.9.2_ogreqof3k35xezedraj6pnd45y + ts-node: 10.9.2_scdp47z3rdmsjsnkk7dmy5sazq tslib: 2.7.0 widest-line: 3.1.0 wordwrap: 1.0.0 @@ -2738,8 +2738,8 @@ packages: wrap-ansi: 7.0.0 dev: false - /@oclif/core/4.0.23: - resolution: {integrity: sha512-wDl/eis7XDIM1pQWUGKLB+EQKJO9UrjaQ5NcwIbz7GW0gWuJfo9QAK75csgNUN/9Pbok9Ryt+sJgogS4RCIp5g==} + /@oclif/core/4.0.27: + resolution: {integrity: sha512-9j92jHr6k2tjQ6/mIwNi46Gqw+qbPFQ02mxT5T8/nxO2fgsPL3qL0kb9SR1il5AVfqpgLIG3uLUcw87rgaioUg==} engines: {node: '>=18.0.0'} dependencies: ansi-escapes: 4.3.2 @@ -2751,7 +2751,7 @@ packages: get-package-type: 0.1.0 globby: 11.1.0 indent-string: 4.0.0 - is-wsl: 2.2.0 + is-wsl: 3.1.0 lilconfig: 3.1.2 minimatch: 9.0.5 semver: 7.6.3 @@ -2785,22 +2785,22 @@ packages: - '@types/node' - typescript - /@oclif/plugin-help/5.2.20_jeqbknj46pgdeszrzbax4bk7my: + /@oclif/plugin-help/5.2.20_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_jeqbknj46pgdeszrzbax4bk7my + '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y transitivePeerDependencies: - '@swc/core' - '@swc/wasm' - '@types/node' - typescript - /@oclif/plugin-help/5.2.20_ogreqof3k35xezedraj6pnd45y: + /@oclif/plugin-help/5.2.20_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y + '@oclif/core': 2.16.0_scdp47z3rdmsjsnkk7dmy5sazq transitivePeerDependencies: - '@swc/core' - '@swc/wasm' @@ -2847,11 +2847,11 @@ packages: - typescript dev: true - /@oclif/plugin-not-found/2.4.3_jeqbknj46pgdeszrzbax4bk7my: + /@oclif/plugin-not-found/2.4.3_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_jeqbknj46pgdeszrzbax4bk7my + '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y chalk: 4.1.2 fast-levenshtein: 3.0.0 transitivePeerDependencies: @@ -2859,13 +2859,12 @@ packages: - '@swc/wasm' - '@types/node' - typescript - dev: true - /@oclif/plugin-not-found/2.4.3_ogreqof3k35xezedraj6pnd45y: + /@oclif/plugin-not-found/2.4.3_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y + '@oclif/core': 2.16.0_scdp47z3rdmsjsnkk7dmy5sazq chalk: 4.1.2 fast-levenshtein: 3.0.0 transitivePeerDependencies: @@ -2873,6 +2872,7 @@ packages: - '@swc/wasm' - '@types/node' - typescript + dev: true /@oclif/plugin-not-found/2.4.3_typescript@4.9.5: resolution: {integrity: sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg==} @@ -2892,7 +2892,7 @@ packages: resolution: {integrity: sha512-ZoF9Jw4Y4uTFf56tGHGsBzCFhBKKRAuIiGCMoSpy8VEL3cFb5Jv6Xm0rdzv54lkmw1XWBBFM6cqK/hmxM2QEIw==} engines: {node: '>=18.0.0'} dependencies: - '@oclif/core': 4.0.23 + '@oclif/core': 4.0.27 ansis: 3.3.2 debug: 4.3.7 npm: 10.9.0 @@ -2907,25 +2907,6 @@ packages: - supports-color dev: false - /@oclif/plugin-plugins/5.4.9: - resolution: {integrity: sha512-V64IZ5ldyZWJRwYsRHzGvuayWM1KYTsNNI3O58U6+VwEs2Ir16Q0Nwu0Ejnn6mM7na9Qz4RCU9tWhbngRoZt+g==} - engines: {node: '>=18.0.0'} - dependencies: - '@oclif/core': 4.0.23 - ansis: 3.3.2 - debug: 4.3.7 - npm: 10.8.3 - npm-package-arg: 11.0.3 - npm-run-path: 5.3.0 - object-treeify: 4.0.1 - semver: 7.6.3 - validate-npm-package-name: 5.0.1 - which: 4.0.0 - yarn: 1.22.22 - transitivePeerDependencies: - - supports-color - dev: false - /@oclif/plugin-warn-if-update-available/2.1.1: resolution: {integrity: sha512-y7eSzT6R5bmTIJbiMMXgOlbBpcWXGlVhNeQJBLBCCy1+90Wbjyqf6uvY0i2WcO4sh/THTJ20qCW80j3XUlgDTA==} engines: {node: '>=12.0.0'} @@ -2962,11 +2943,11 @@ packages: - typescript dev: true - /@oclif/plugin-warn-if-update-available/2.1.1_jeqbknj46pgdeszrzbax4bk7my: + /@oclif/plugin-warn-if-update-available/2.1.1_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-y7eSzT6R5bmTIJbiMMXgOlbBpcWXGlVhNeQJBLBCCy1+90Wbjyqf6uvY0i2WcO4sh/THTJ20qCW80j3XUlgDTA==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_jeqbknj46pgdeszrzbax4bk7my + '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y chalk: 4.1.2 debug: 4.3.7 http-call: 5.3.0 @@ -2980,11 +2961,11 @@ packages: - typescript dev: true - /@oclif/plugin-warn-if-update-available/2.1.1_ogreqof3k35xezedraj6pnd45y: + /@oclif/plugin-warn-if-update-available/2.1.1_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-y7eSzT6R5bmTIJbiMMXgOlbBpcWXGlVhNeQJBLBCCy1+90Wbjyqf6uvY0i2WcO4sh/THTJ20qCW80j3XUlgDTA==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y + '@oclif/core': 2.16.0_scdp47z3rdmsjsnkk7dmy5sazq chalk: 4.1.2 debug: 4.3.7 http-call: 5.3.0 @@ -3044,11 +3025,11 @@ packages: - typescript dev: true - /@oclif/test/2.5.6_jeqbknj46pgdeszrzbax4bk7my: + /@oclif/test/2.5.6_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-AcusFApdU6/akXaofhBDrY4IM9uYzlOD9bYCCM0NwUXOv1m6320hSp2DT/wkj9H1gsvKbJXZHqgtXsNGZTWLFg==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_jeqbknj46pgdeszrzbax4bk7my + '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y fancy-test: 2.0.42 transitivePeerDependencies: - '@swc/core' @@ -3056,13 +3037,12 @@ packages: - '@types/node' - supports-color - typescript - dev: true - /@oclif/test/2.5.6_ogreqof3k35xezedraj6pnd45y: + /@oclif/test/2.5.6_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-AcusFApdU6/akXaofhBDrY4IM9uYzlOD9bYCCM0NwUXOv1m6320hSp2DT/wkj9H1gsvKbJXZHqgtXsNGZTWLFg==} engines: {node: '>=12.0.0'} dependencies: - '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y + '@oclif/core': 2.16.0_scdp47z3rdmsjsnkk7dmy5sazq fancy-test: 2.0.42 transitivePeerDependencies: - '@swc/core' @@ -3070,6 +3050,7 @@ packages: - '@types/node' - supports-color - typescript + dev: true /@oclif/test/2.5.6_typescript@4.9.5: resolution: {integrity: sha512-AcusFApdU6/akXaofhBDrY4IM9uYzlOD9bYCCM0NwUXOv1m6320hSp2DT/wkj9H1gsvKbJXZHqgtXsNGZTWLFg==} @@ -3338,14 +3319,14 @@ packages: /@types/adm-zip/0.5.5: resolution: {integrity: sha512-YCGstVMjc4LTY5uK9/obvxBya93axZOVOyf2GSUulADzmLhYE45u2nAssCs/fWBs1Ifq5Vat75JTPwd5XZoPJw==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/babel__core/7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__generator': 7.6.8 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.20.6 @@ -3354,26 +3335,26 @@ packages: /@types/babel__generator/7.6.8: resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 dev: true /@types/babel__template/7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.7 + '@babel/types': 7.25.7 dev: true /@types/babel__traverse/7.20.6: resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.7 dev: true - /@types/big-json/3.2.4: - resolution: {integrity: sha512-9j4OYGHfHazBz7WxRs1tqXy2qccjYAa4ej3vfT0uIPFvlX6nYw9Mvgxijvww6OKZE0aK6kFHTXDxR0uVJiRhLw==} + /@types/big-json/3.2.5: + resolution: {integrity: sha512-svpMgOodNauW9xaWn6EabpvQUwM1sizbLbzzkVsx1cCrHLJ18tK0OcMe0AL0HAukJkHld06ozIPO1+h+HiLSNQ==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/bluebird/3.5.42: @@ -3384,7 +3365,7 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: false /@types/cacheable-request/6.0.3: @@ -3392,7 +3373,7 @@ packages: dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 20.16.9 + '@types/node': 20.16.11 '@types/responselike': 1.0.3 dev: true @@ -3402,18 +3383,18 @@ packages: /@types/cli-progress/3.11.6: resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: false /@types/esm/3.2.2: resolution: {integrity: sha512-l3IQQD2sChjNiQVNf28qq+sY9Sjvz7HrcOO3g4ZeSaiQRXQccBaR6cpqXPpzJ3QYCt6UF7+4ugabMRsQTPV+Eg==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/expect/1.20.4: @@ -3423,7 +3404,7 @@ packages: /@types/express-serve-static-core/4.19.6: resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -3446,20 +3427,20 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/glob/7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/graceful-fs/4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/http-cache-semantics/4.0.4: @@ -3515,13 +3496,13 @@ packages: /@types/jsonfile/6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/linkify-it/5.0.0: @@ -3530,10 +3511,6 @@ packages: /@types/lodash/4.17.10: resolution: {integrity: sha512-YpS0zzoduEhuOWjAotS6A5AVCva7X4lVlYLF0FYHAY9sdraBfnatttHItlWeZdGhuEkf+OzMNg2ZYAx8t+52uQ==} - dev: true - - /@types/lodash/4.17.9: - resolution: {integrity: sha512-w9iWudx1XWOHW5lQRS9iKpK/XuRhnN+0T7HvdCCd802FYkT1AMTnxndJHGrNJwRoRHkslGr4S29tjm1cT7x/7w==} /@types/markdown-it/14.1.2: resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} @@ -3561,11 +3538,11 @@ packages: /@types/mkdirp/1.0.2: resolution: {integrity: sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true - /@types/mocha/10.0.8: - resolution: {integrity: sha512-HfMcUmy9hTMJh66VNcmeC9iVErIZJli2bszuXc6julh5YGuRb/W5OnkHjwLNYdFlMis0sY3If5SEAp+PktdJjw==} + /@types/mocha/10.0.9: + resolution: {integrity: sha512-sicdRoWtYevwxjOHNMPTl3vSfJM6oyW8o1wXeI7uww6b6xHg8eBznQDNSGBCDJmsE8UMxP05JgZRtsKbTqt//Q==} dev: true /@types/mocha/8.2.3: @@ -3582,8 +3559,8 @@ packages: /@types/node/16.18.113: resolution: {integrity: sha512-4jHxcEzSXpF1cBNxogs5FVbVSFSKo50sFCn7Xg7vmjJTbWFWgeuHW3QnoINlfmfG++MFR/q97RZE5RQXKeT+jg==} - /@types/node/20.16.9: - resolution: {integrity: sha512-rkvIVJxsOfBejxK7I0FO5sa2WxFmJCzoDwcd88+fq/CUfynNywTo/1/T6hyFz22CyztsnLS9nVlHOnTI36RH5w==} + /@types/node/20.16.11: + resolution: {integrity: sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==} dependencies: undici-types: 6.19.8 @@ -3594,7 +3571,7 @@ packages: /@types/progress-stream/2.0.5: resolution: {integrity: sha512-5YNriuEZkHlFHHepLIaxzq3atGeav1qCTGzB74HKWpo66qjfostF+rHc785YYYHeBytve8ZG3ejg42jEIfXNiQ==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/qs/6.9.16: @@ -3608,7 +3585,7 @@ packages: /@types/responselike/1.0.3: resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/semver/7.5.8: @@ -3619,14 +3596,14 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: false /@types/serve-static/1.15.7: resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} dependencies: '@types/http-errors': 2.0.4 - '@types/node': 20.16.9 + '@types/node': 20.16.11 '@types/send': 0.17.4 dev: false @@ -3645,14 +3622,14 @@ packages: /@types/tar/6.1.13: resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 minipass: 4.2.8 dev: true /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/tmp/0.2.6: @@ -3675,7 +3652,7 @@ packages: resolution: {integrity: sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==} dependencies: '@types/expect': 1.20.4 - '@types/node': 20.16.9 + '@types/node': 20.16.11 dev: true /@types/yargs-parser/21.0.3: @@ -3721,7 +3698,7 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/6.21.0_orvgifedatqukxtqc62v55dbnm: + /@typescript-eslint/eslint-plugin/6.21.0_4bslokzpmdx5sv7j4jahtirwsi: resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3733,10 +3710,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm + '@typescript-eslint/parser': 6.21.0_inylsuzpwuenpw7p6e7ggu4qmy '@typescript-eslint/scope-manager': 6.21.0 - '@typescript-eslint/type-utils': 6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm - '@typescript-eslint/utils': 6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm + '@typescript-eslint/type-utils': 6.21.0_inylsuzpwuenpw7p6e7ggu4qmy + '@typescript-eslint/utils': 6.21.0_inylsuzpwuenpw7p6e7ggu4qmy '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 eslint: 8.57.1 @@ -3744,8 +3721,8 @@ packages: ignore: 5.3.2 natural-compare: 1.4.0 semver: 7.6.3 - ts-api-utils: 1.3.0_typescript@5.6.2 - typescript: 5.6.2 + ts-api-utils: 1.3.0_typescript@5.6.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true @@ -3829,7 +3806,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm: + /@typescript-eslint/parser/6.21.0_inylsuzpwuenpw7p6e7ggu4qmy: resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3841,11 +3818,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.6.2 + '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.6.3 '@typescript-eslint/visitor-keys': 6.21.0 debug: 4.3.7 eslint: 8.57.1 - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true @@ -3935,7 +3912,7 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm: + /@typescript-eslint/type-utils/6.21.0_inylsuzpwuenpw7p6e7ggu4qmy: resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -3945,12 +3922,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.6.2 - '@typescript-eslint/utils': 6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm + '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.6.3 + '@typescript-eslint/utils': 6.21.0_inylsuzpwuenpw7p6e7ggu4qmy debug: 4.3.7 eslint: 8.57.1 - ts-api-utils: 1.3.0_typescript@5.6.2 - typescript: 5.6.2 + ts-api-utils: 1.3.0_typescript@5.6.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true @@ -4033,7 +4010,7 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/6.21.0_typescript@5.6.2: + /@typescript-eslint/typescript-estree/6.21.0_typescript@5.6.3: resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4049,8 +4026,8 @@ packages: is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.3 - ts-api-utils: 1.3.0_typescript@5.6.2 - typescript: 5.6.2 + ts-api-utils: 1.3.0_typescript@5.6.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true @@ -4077,7 +4054,7 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/7.18.0_typescript@5.6.2: + /@typescript-eslint/typescript-estree/7.18.0_typescript@5.6.3: resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -4093,8 +4070,8 @@ packages: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0_typescript@5.6.2 - typescript: 5.6.2 + ts-api-utils: 1.3.0_typescript@5.6.3 + typescript: 5.6.3 transitivePeerDependencies: - supports-color dev: true @@ -4138,7 +4115,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils/6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm: + /@typescript-eslint/utils/6.21.0_inylsuzpwuenpw7p6e7ggu4qmy: resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -4149,7 +4126,7 @@ packages: '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.6.2 + '@typescript-eslint/typescript-estree': 6.21.0_typescript@5.6.3 eslint: 8.57.1 semver: 7.6.3 transitivePeerDependencies: @@ -4192,7 +4169,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils/7.18.0_hjvaeeg43g7el7m5pcdc7xyzxm: + /@typescript-eslint/utils/7.18.0_inylsuzpwuenpw7p6e7ggu4qmy: resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: @@ -4201,7 +4178,7 @@ packages: '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.1 '@typescript-eslint/scope-manager': 7.18.0 '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0_typescript@5.6.2 + '@typescript-eslint/typescript-estree': 7.18.0_typescript@5.6.3 eslint: 8.57.1 transitivePeerDependencies: - supports-color @@ -4309,7 +4286,6 @@ packages: engines: {node: '>=6.5'} dependencies: event-target-shim: 5.0.1 - dev: true /accepts/1.3.8: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} @@ -4409,7 +4385,7 @@ packages: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 + fast-uri: 3.0.2 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -4783,17 +4759,17 @@ packages: - debug dev: false - /babel-jest/29.7.0_@babel+core@7.25.2: + /babel-jest/29.7.0_@babel+core@7.25.7: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3_@babel+core@7.25.2 + babel-preset-jest: 29.6.3_@babel+core@7.25.7 chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -4805,7 +4781,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.24.8 + '@babel/helper-plugin-utils': 7.25.7 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -4818,44 +4794,44 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.25.0 - '@babel/types': 7.25.6 + '@babel/template': 7.25.7 + '@babel/types': 7.25.7 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 dev: true - /babel-preset-current-node-syntax/1.1.0_@babel+core@7.25.2: + /babel-preset-current-node-syntax/1.1.0_@babel+core@7.25.7: resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.25.2 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.25.2 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.25.2 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.25.2 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.25.2 - '@babel/plugin-syntax-import-attributes': 7.25.6_@babel+core@7.25.2 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.25.2 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.25.2 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.25.2 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.25.2 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.25.2 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.25.2 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.25.2 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.25.2 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.25.2 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.25.2 - dev: true - - /babel-preset-jest/29.6.3_@babel+core@7.25.2: + '@babel/core': 7.25.7 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.25.7 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.25.7 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.25.7 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.25.7 + '@babel/plugin-syntax-import-attributes': 7.25.7_@babel+core@7.25.7 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.25.7 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.25.7 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.25.7 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.25.7 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.25.7 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.25.7 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.25.7 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.25.7 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.25.7 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.25.7 + dev: true + + /babel-preset-jest/29.6.3_@babel+core@7.25.7: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.1.0_@babel+core@7.25.2 + babel-preset-current-node-syntax: 1.1.0_@babel+core@7.25.7 dev: true /balanced-match/1.0.2: @@ -4965,10 +4941,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001664 - electron-to-chromium: 1.5.29 + caniuse-lite: 1.0.30001667 + electron-to-chromium: 1.5.33 node-releases: 2.0.18 - update-browserslist-db: 1.1.0_browserslist@4.24.0 + update-browserslist-db: 1.1.1_browserslist@4.24.0 dev: true /bs-logger/0.2.6: @@ -5007,7 +4983,6 @@ packages: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 - dev: true /builtin-modules/3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} @@ -5212,8 +5187,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001664: - resolution: {integrity: sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==} + /caniuse-lite/1.0.30001667: + resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} dev: true /cardinal/2.1.1: @@ -5311,7 +5286,7 @@ packages: parse5: 7.1.2 parse5-htmlparser2-tree-adapter: 7.0.0 parse5-parser-stream: 7.1.2 - undici: 6.19.8 + undici: 6.20.0 whatwg-mimetype: 4.0.0 dev: false @@ -5701,7 +5676,7 @@ packages: resolution: {integrity: sha512-3xLDpqBH/JF60XSY44WHQYAYt+cPW6SJWXBuGOAAkxtp8Q422i/nmoWfNHsaRDSi+T+FXUS4tVB/hTHRyIXb1Q==} engines: {node: '>= 10.14.2'} dependencies: - '@contentstack/utils': 1.3.11 + '@contentstack/utils': 1.3.12 cheerio: 1.0.0 es6-promise: 4.2.8 isomorphic-fetch: 3.0.0 @@ -5874,7 +5849,7 @@ packages: resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} engines: {node: '>=0.11'} dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 dev: true /dateformat/4.6.3: @@ -6213,8 +6188,8 @@ packages: dependencies: jake: 10.9.2 - /electron-to-chromium/1.5.29: - resolution: {integrity: sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==} + /electron-to-chromium/1.5.33: + resolution: {integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==} dev: true /elegant-spinner/1.0.1: @@ -6344,7 +6319,7 @@ packages: object-inspect: 1.13.2 object-keys: 1.1.1 object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 + regexp.prototype.flags: 1.5.3 safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 string.prototype.trim: 1.2.9 @@ -6437,15 +6412,15 @@ packages: source-map: 0.6.1 dev: false - /eslint-config-oclif-typescript/3.1.11_avq3eyf5kaj6ssrwo7fvkrwnji: - resolution: {integrity: sha512-4ES2PhL8nsKaVRqQoSwYwteoLnnns72vh6Sc5INsOSKpa/kDsG9nlLC/+kxcpLWy8A1p5JFDAwrDyg6qXbwZtg==} + /eslint-config-oclif-typescript/3.1.12_avq3eyf5kaj6ssrwo7fvkrwnji: + resolution: {integrity: sha512-hEXU/PEJyjeLiTrCmgcmx0+FHwVpqipkKSykesdMsk2v43Mqh5bq2j3cyxHXZBCOxpTACVlM6KG7d4LFaWoVHQ==} engines: {node: '>=18.0.0'} dependencies: '@typescript-eslint/eslint-plugin': 6.21.0_s4hemk7ff6xb5gs532l53o6gkm '@typescript-eslint/parser': 6.21.0_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-xo-space: 0.35.0_eslint@8.57.1 - eslint-import-resolver-typescript: 3.6.3_y7taq6fgt3pjqmyrtvbtxffs6a - eslint-plugin-import: 2.30.0_dgutxutduxvbuxup656vswurxm + eslint-import-resolver-typescript: 3.6.3_fu3mwgxqh2qclshvsiszewetqy + eslint-plugin-import: 2.31.0_dgutxutduxvbuxup656vswurxm eslint-plugin-mocha: 10.5.0_eslint@8.57.1 eslint-plugin-n: 15.7.0_eslint@8.57.1 eslint-plugin-perfectionist: 2.11.0_avq3eyf5kaj6ssrwo7fvkrwnji @@ -6462,18 +6437,18 @@ packages: - vue-eslint-parser dev: true - /eslint-config-oclif-typescript/3.1.11_hjvaeeg43g7el7m5pcdc7xyzxm: - resolution: {integrity: sha512-4ES2PhL8nsKaVRqQoSwYwteoLnnns72vh6Sc5INsOSKpa/kDsG9nlLC/+kxcpLWy8A1p5JFDAwrDyg6qXbwZtg==} + /eslint-config-oclif-typescript/3.1.12_inylsuzpwuenpw7p6e7ggu4qmy: + resolution: {integrity: sha512-hEXU/PEJyjeLiTrCmgcmx0+FHwVpqipkKSykesdMsk2v43Mqh5bq2j3cyxHXZBCOxpTACVlM6KG7d4LFaWoVHQ==} engines: {node: '>=18.0.0'} dependencies: - '@typescript-eslint/eslint-plugin': 6.21.0_orvgifedatqukxtqc62v55dbnm - '@typescript-eslint/parser': 6.21.0_hjvaeeg43g7el7m5pcdc7xyzxm + '@typescript-eslint/eslint-plugin': 6.21.0_4bslokzpmdx5sv7j4jahtirwsi + '@typescript-eslint/parser': 6.21.0_inylsuzpwuenpw7p6e7ggu4qmy eslint-config-xo-space: 0.35.0_eslint@8.57.1 - eslint-import-resolver-typescript: 3.6.3_y7taq6fgt3pjqmyrtvbtxffs6a - eslint-plugin-import: 2.30.0_dgutxutduxvbuxup656vswurxm + eslint-import-resolver-typescript: 3.6.3_fu3mwgxqh2qclshvsiszewetqy + eslint-plugin-import: 2.31.0_dgutxutduxvbuxup656vswurxm eslint-plugin-mocha: 10.5.0_eslint@8.57.1 eslint-plugin-n: 15.7.0_eslint@8.57.1 - eslint-plugin-perfectionist: 2.11.0_hjvaeeg43g7el7m5pcdc7xyzxm + eslint-plugin-perfectionist: 2.11.0_inylsuzpwuenpw7p6e7ggu4qmy transitivePeerDependencies: - astro-eslint-parser - eslint @@ -6628,7 +6603,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/3.6.3_qqedvn7y53ys7jm3xejtyy4rva: + /eslint-import-resolver-typescript/3.6.3_fu3mwgxqh2qclshvsiszewetqy: resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6644,9 +6619,9 @@ packages: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 7.32.0 - eslint-module-utils: 2.11.1_xpoooszrvfjigwlbnr42f5rlki - eslint-plugin-import: 2.31.0_xpoooszrvfjigwlbnr42f5rlki + eslint: 8.57.1 + eslint-module-utils: 2.12.0_dgutxutduxvbuxup656vswurxm + eslint-plugin-import: 2.31.0_dgutxutduxvbuxup656vswurxm fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -6658,7 +6633,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript/3.6.3_y7taq6fgt3pjqmyrtvbtxffs6a: + /eslint-import-resolver-typescript/3.6.3_qqedvn7y53ys7jm3xejtyy4rva: resolution: {integrity: sha512-ud9aw4szY9cCT1EWWdGv1L1XR6hh2PaRWif0j2QjQ0pgTY/69iw+W0Z4qZv5wHahOl8isEr+k/JnyAqNQkLkIA==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6674,9 +6649,9 @@ packages: '@nolyfill/is-core-module': 1.0.39 debug: 4.3.7 enhanced-resolve: 5.17.1 - eslint: 8.57.1 - eslint-module-utils: 2.11.1_dgutxutduxvbuxup656vswurxm - eslint-plugin-import: 2.30.0_dgutxutduxvbuxup656vswurxm + eslint: 7.32.0 + eslint-module-utils: 2.12.0_xpoooszrvfjigwlbnr42f5rlki + eslint-plugin-import: 2.31.0_xpoooszrvfjigwlbnr42f5rlki fast-glob: 3.3.2 get-tsconfig: 4.8.1 is-bun-module: 1.2.1 @@ -6688,8 +6663,8 @@ packages: - supports-color dev: true - /eslint-module-utils/2.11.1_2ejcujbol4xkkapwdwpicudaxu: - resolution: {integrity: sha512-EwcbfLOhwVMAfatfqLecR2yv3dE5+kQ8kx+Rrt0DvDXEVwW86KQ/xbMDQhtp5l42VXukD5SOF8mQQHbaNtO0CQ==} + /eslint-module-utils/2.12.0_2ejcujbol4xkkapwdwpicudaxu: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -6713,13 +6688,13 @@ packages: debug: 3.2.7 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.3_y7taq6fgt3pjqmyrtvbtxffs6a + eslint-import-resolver-typescript: 3.6.3_fu3mwgxqh2qclshvsiszewetqy transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.11.1_dgutxutduxvbuxup656vswurxm: - resolution: {integrity: sha512-EwcbfLOhwVMAfatfqLecR2yv3dE5+kQ8kx+Rrt0DvDXEVwW86KQ/xbMDQhtp5l42VXukD5SOF8mQQHbaNtO0CQ==} + /eslint-module-utils/2.12.0_dgutxutduxvbuxup656vswurxm: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -6742,13 +6717,13 @@ packages: '@typescript-eslint/parser': 6.21.0_avq3eyf5kaj6ssrwo7fvkrwnji debug: 3.2.7 eslint: 8.57.1 - eslint-import-resolver-typescript: 3.6.3_y7taq6fgt3pjqmyrtvbtxffs6a + eslint-import-resolver-typescript: 3.6.3_fu3mwgxqh2qclshvsiszewetqy transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.11.1_xpoooszrvfjigwlbnr42f5rlki: - resolution: {integrity: sha512-EwcbfLOhwVMAfatfqLecR2yv3dE5+kQ8kx+Rrt0DvDXEVwW86KQ/xbMDQhtp5l42VXukD5SOF8mQQHbaNtO0CQ==} + /eslint-module-utils/2.12.0_n755bj25kg2c7z5rccm44ttecm: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -6771,12 +6746,13 @@ packages: '@typescript-eslint/parser': 6.21.0_jofidmxrjzhj7l6vknpw5ecvfe debug: 3.2.7 eslint: 7.32.0 + eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3_qqedvn7y53ys7jm3xejtyy4rva transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.12.0_n755bj25kg2c7z5rccm44ttecm: + /eslint-module-utils/2.12.0_xpoooszrvfjigwlbnr42f5rlki: resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: @@ -6800,7 +6776,6 @@ packages: '@typescript-eslint/parser': 6.21.0_jofidmxrjzhj7l6vknpw5ecvfe debug: 3.2.7 eslint: 7.32.0 - eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.6.3_qqedvn7y53ys7jm3xejtyy4rva transitivePeerDependencies: - supports-color @@ -6850,12 +6825,12 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.30.0_dgutxutduxvbuxup656vswurxm: - resolution: {integrity: sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==} + /eslint-plugin-import/2.31.0_dgutxutduxvbuxup656vswurxm: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true @@ -6870,7 +6845,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.11.1_2ejcujbol4xkkapwdwpicudaxu + eslint-module-utils: 2.12.0_2ejcujbol4xkkapwdwpicudaxu hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -6879,6 +6854,7 @@ packages: object.groupby: 1.0.3 object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 transitivePeerDependencies: - eslint-import-resolver-typescript @@ -7060,7 +7036,7 @@ packages: - typescript dev: true - /eslint-plugin-perfectionist/2.11.0_hjvaeeg43g7el7m5pcdc7xyzxm: + /eslint-plugin-perfectionist/2.11.0_inylsuzpwuenpw7p6e7ggu4qmy: resolution: {integrity: sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==} peerDependencies: astro-eslint-parser: ^1.0.2 @@ -7078,7 +7054,7 @@ packages: vue-eslint-parser: optional: true dependencies: - '@typescript-eslint/utils': 7.18.0_hjvaeeg43g7el7m5pcdc7xyzxm + '@typescript-eslint/utils': 7.18.0_inylsuzpwuenpw7p6e7ggu4qmy eslint: 8.57.1 minimatch: 9.0.5 natural-compare-lite: 1.4.0 @@ -7120,7 +7096,7 @@ packages: peerDependencies: eslint: '>=7.32.0' dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 ci-info: 3.9.0 clean-regexp: 1.0.0 eslint: 7.32.0 @@ -7143,7 +7119,7 @@ packages: peerDependencies: eslint: '>=7.32.0' dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 ci-info: 3.9.0 clean-regexp: 1.0.0 eslint: 8.57.1 @@ -7181,8 +7157,8 @@ packages: peerDependencies: eslint: '>=7.0.0' dependencies: - '@babel/core': 7.25.2 - '@babel/eslint-parser': 7.25.1_vcko6n4u7xeo5rwd2py5qyyy7i + '@babel/core': 7.25.7 + '@babel/eslint-parser': 7.25.7_etyso2f6lp2rwaqtyvmq6r5hme eslint: 7.32.0 eslint-visitor-keys: 2.1.0 esquery: 1.6.0 @@ -7196,8 +7172,8 @@ packages: peerDependencies: eslint: '>=7.0.0' dependencies: - '@babel/core': 7.25.2 - '@babel/eslint-parser': 7.25.1_uhszjnyxpp3ff7nctzrrdj6llq + '@babel/core': 7.25.7 + '@babel/eslint-parser': 7.25.7_xzd5y2yh7dv6xdly2tmj2hmjnm eslint: 8.57.1 eslint-visitor-keys: 2.1.0 esquery: 1.6.0 @@ -7251,6 +7227,7 @@ packages: /eslint/7.32.0: resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} engines: {node: ^10.12.0 || >=12.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@babel/code-frame': 7.12.11 @@ -7300,6 +7277,7 @@ packages: /eslint/8.57.1: resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0_eslint@8.57.1 @@ -7407,7 +7385,6 @@ packages: /event-target-shim/5.0.1: resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} engines: {node: '>=6'} - dev: true /eventemitter3/4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} @@ -7421,7 +7398,6 @@ packages: /events/3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - dev: true /execa/5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -7525,8 +7501,8 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.3.20 - '@types/lodash': 4.17.9 - '@types/node': 20.16.9 + '@types/lodash': 4.17.10 + '@types/node': 20.16.11 '@types/sinon': 10.0.20 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7542,8 +7518,8 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.3.20 - '@types/lodash': 4.17.9 - '@types/node': 20.16.9 + '@types/lodash': 4.17.10 + '@types/node': 20.16.11 '@types/sinon': 10.0.20 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -7586,8 +7562,8 @@ packages: dependencies: fastest-levenshtein: 1.0.16 - /fast-uri/3.0.1: - resolution: {integrity: sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==} + /fast-uri/3.0.2: + resolution: {integrity: sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==} /fastest-levenshtein/1.0.16: resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} @@ -7608,8 +7584,8 @@ packages: resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==} dev: false - /figlet/1.7.0: - resolution: {integrity: sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==} + /figlet/1.8.0: + resolution: {integrity: sha512-chzvGjd+Sp7KUvPHZv6EXV5Ir3Q7kYNpCr4aHrRW79qFtTefmQZNny+W1pW9kf5zeE6dikku2W50W/wAH2xWgw==} engines: {node: '>= 0.4.0'} hasBin: true dev: false @@ -8045,7 +8021,7 @@ packages: jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 /glob/7.2.0: @@ -8689,6 +8665,12 @@ packages: engines: {node: '>=8'} hasBin: true + /is-docker/3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + dev: false + /is-extglob/1.0.0: resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} engines: {node: '>=0.10.0'} @@ -8739,6 +8721,14 @@ packages: dependencies: is-extglob: 2.1.1 + /is-inside-container/1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + dependencies: + is-docker: 3.0.0 + dev: false + /is-interactive/1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} @@ -8901,6 +8891,13 @@ packages: dependencies: is-docker: 2.2.1 + /is-wsl/3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + dependencies: + is-inside-container: 1.0.0 + dev: false + /isarray/1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} @@ -8954,7 +8951,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -8966,8 +8963,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -8979,8 +8976,8 @@ packages: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.25.2 - '@babel/parser': 7.25.6 + '@babel/core': 7.25.7 + '@babel/parser': 7.25.7 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.3 @@ -9062,7 +9059,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.3 @@ -9151,10 +9148,10 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0_@babel+core@7.25.2 + babel-jest: 29.7.0_@babel+core@7.25.7 chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9178,7 +9175,7 @@ packages: - supports-color dev: true - /jest-config/29.7.0_2g6loqgebgnagbbrmjjc7cbjsy: + /jest-config/29.7.0_@types+node@20.16.11: resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -9190,11 +9187,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 - babel-jest: 29.7.0_@babel+core@7.25.2 + '@types/node': 20.16.11 + babel-jest: 29.7.0_@babel+core@7.25.7 chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9213,13 +9210,12 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 8.10.2_typescript@4.9.5 transitivePeerDependencies: - babel-plugin-macros - supports-color dev: true - /jest-config/29.7.0_@types+node@20.16.9: + /jest-config/29.7.0_gmerzvnqkqd6hvbwzqmybfpwqi: resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -9231,11 +9227,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 - babel-jest: 29.7.0_@babel+core@7.25.2 + '@types/node': 14.18.63 + babel-jest: 29.7.0_@babel+core@7.25.7 chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9254,12 +9250,13 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 + ts-node: 8.10.2_typescript@4.9.5 transitivePeerDependencies: - babel-plugin-macros - supports-color dev: true - /jest-config/29.7.0_gmerzvnqkqd6hvbwzqmybfpwqi: + /jest-config/29.7.0_xkxz5eby2ogoedielufu5q7wmm: resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -9271,11 +9268,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.25.2 + '@babel/core': 7.25.7 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 14.18.63 - babel-jest: 29.7.0_@babel+core@7.25.2 + '@types/node': 20.16.11 + babel-jest: 29.7.0_@babel+core@7.25.7 chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -9345,7 +9342,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -9366,7 +9363,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.16.9 + '@types/node': 20.16.11 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -9401,7 +9398,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -9417,7 +9414,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 jest-util: 29.7.0 dev: true @@ -9472,7 +9469,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -9503,7 +9500,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 @@ -9526,15 +9523,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.25.2 - '@babel/generator': 7.25.6 - '@babel/plugin-syntax-jsx': 7.24.7_@babel+core@7.25.2 - '@babel/plugin-syntax-typescript': 7.25.4_@babel+core@7.25.2 - '@babel/types': 7.25.6 + '@babel/core': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/plugin-syntax-jsx': 7.25.7_@babel+core@7.25.7 + '@babel/plugin-syntax-typescript': 7.25.7_@babel+core@7.25.7 + '@babel/types': 7.25.7 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.1.0_@babel+core@7.25.2 + babel-preset-current-node-syntax: 1.1.0_@babel+core@7.25.7 chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -9555,7 +9552,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -9580,7 +9577,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.16.9 + '@types/node': 20.16.11 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -9592,7 +9589,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.16.9 + '@types/node': 20.16.11 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9720,7 +9717,7 @@ packages: engines: {node: '>=12.0.0'} hasBin: true dependencies: - '@babel/parser': 7.25.6 + '@babel/parser': 7.25.7 '@jsdoc/salty': 0.2.8 '@types/markdown-it': 14.1.2 bluebird: 3.7.2 @@ -9760,7 +9757,7 @@ packages: http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.12 + nwsapi: 2.2.13 parse5: 7.1.2 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -9778,9 +9775,9 @@ packages: - utf-8-validate dev: false - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} + /jsesc/3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true dev: true @@ -11144,81 +11141,6 @@ packages: path-key: 4.0.0 dev: false - /npm/10.8.3: - resolution: {integrity: sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==} - engines: {node: ^18.17.0 || >=20.5.0} - hasBin: true - dev: false - bundledDependencies: - - '@isaacs/string-locale-compare' - - '@npmcli/arborist' - - '@npmcli/config' - - '@npmcli/fs' - - '@npmcli/map-workspaces' - - '@npmcli/package-json' - - '@npmcli/promise-spawn' - - '@npmcli/redact' - - '@npmcli/run-script' - - '@sigstore/tuf' - - abbrev - - archy - - cacache - - chalk - - ci-info - - cli-columns - - fastest-levenshtein - - fs-minipass - - glob - - graceful-fs - - hosted-git-info - - ini - - init-package-json - - is-cidr - - json-parse-even-better-errors - - libnpmaccess - - libnpmdiff - - libnpmexec - - libnpmfund - - libnpmhook - - libnpmorg - - libnpmpack - - libnpmpublish - - libnpmsearch - - libnpmteam - - libnpmversion - - make-fetch-happen - - minimatch - - minipass - - minipass-pipeline - - ms - - node-gyp - - nopt - - normalize-package-data - - npm-audit-report - - npm-install-checks - - npm-package-arg - - npm-pick-manifest - - npm-profile - - npm-registry-fetch - - npm-user-validate - - p-map - - pacote - - parse-conflict-json - - proc-log - - qrcode-terminal - - read - - semver - - spdx-expression-parse - - ssri - - supports-color - - tar - - text-table - - tiny-relative-date - - treeverse - - validate-npm-package-name - - which - - write-file-atomic - /npm/10.9.0: resolution: {integrity: sha512-ZanDioFylI9helNhl2LNd+ErmVD+H5I53ry41ixlLyCBgkuYb+58CvbAp99hW+zr5L9W4X7CchSoeqKdngOLSw==} engines: {node: ^18.17.0 || >=20.5.0} @@ -11326,8 +11248,8 @@ packages: engines: {node: '>=0.10.0'} dev: false - /nwsapi/2.2.12: - resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + /nwsapi/2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} dev: false /nyc/15.1.0: @@ -11581,15 +11503,15 @@ packages: - typescript dev: true - /oclif/3.17.2_jeqbknj46pgdeszrzbax4bk7my: + /oclif/3.17.2_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-+vFXxgmR7dGGz+g6YiqSZu2LXVkBMaS9/rhtsLGkYw45e53CW/3kBgPRnOvxcTDM3Td9JPeBD2JWxXnPKGQW3A==} engines: {node: '>=12.0.0'} hasBin: true dependencies: - '@oclif/core': 2.16.0_jeqbknj46pgdeszrzbax4bk7my - '@oclif/plugin-help': 5.2.20_jeqbknj46pgdeszrzbax4bk7my - '@oclif/plugin-not-found': 2.4.3_jeqbknj46pgdeszrzbax4bk7my - '@oclif/plugin-warn-if-update-available': 2.1.1_jeqbknj46pgdeszrzbax4bk7my + '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y + '@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y + '@oclif/plugin-not-found': 2.4.3_ogreqof3k35xezedraj6pnd45y + '@oclif/plugin-warn-if-update-available': 2.1.1_ogreqof3k35xezedraj6pnd45y async-retry: 1.3.3 aws-sdk: 2.1691.0 concurrently: 7.6.0 @@ -11616,15 +11538,15 @@ packages: - typescript dev: true - /oclif/3.17.2_ogreqof3k35xezedraj6pnd45y: + /oclif/3.17.2_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-+vFXxgmR7dGGz+g6YiqSZu2LXVkBMaS9/rhtsLGkYw45e53CW/3kBgPRnOvxcTDM3Td9JPeBD2JWxXnPKGQW3A==} engines: {node: '>=12.0.0'} hasBin: true dependencies: - '@oclif/core': 2.16.0_ogreqof3k35xezedraj6pnd45y - '@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y - '@oclif/plugin-not-found': 2.4.3_ogreqof3k35xezedraj6pnd45y - '@oclif/plugin-warn-if-update-available': 2.1.1_ogreqof3k35xezedraj6pnd45y + '@oclif/core': 2.16.0_scdp47z3rdmsjsnkk7dmy5sazq + '@oclif/plugin-help': 5.2.20_scdp47z3rdmsjsnkk7dmy5sazq + '@oclif/plugin-not-found': 2.4.3_scdp47z3rdmsjsnkk7dmy5sazq + '@oclif/plugin-warn-if-update-available': 2.1.1_scdp47z3rdmsjsnkk7dmy5sazq async-retry: 1.3.3 aws-sdk: 2.1691.0 concurrently: 7.6.0 @@ -11879,8 +11801,8 @@ packages: release-zalgo: 1.0.0 dev: true - /package-json-from-dist/1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + /package-json-from-dist/1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} /pacote/12.0.3: resolution: {integrity: sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==} @@ -12024,7 +11946,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -12521,7 +12443,6 @@ packages: events: 3.3.0 process: 0.11.10 string_decoder: 1.3.0 - dev: true /readdir-scoped-modules/1.1.0: resolution: {integrity: sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==} @@ -12623,8 +12544,8 @@ packages: hasBin: true dev: true - /regexp.prototype.flags/1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + /regexp.prototype.flags/1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -13661,13 +13582,13 @@ packages: typescript: 4.9.5 dev: true - /ts-api-utils/1.3.0_typescript@5.6.2: + /ts-api-utils/1.3.0_typescript@5.6.3: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.6.2 + typescript: 5.6.3 dev: true /ts-invariant/0.10.3: @@ -13714,7 +13635,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-jest/29.2.5_typescript@5.6.2: + /ts-jest/29.2.5_typescript@5.6.3: resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -13746,7 +13667,7 @@ packages: lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.6.2 + typescript: 5.6.3 yargs-parser: 21.1.1 dev: true @@ -13809,7 +13730,7 @@ packages: v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - /ts-node/10.9.2_jeqbknj46pgdeszrzbax4bk7my: + /ts-node/10.9.2_ogreqof3k35xezedraj6pnd45y: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -13828,18 +13749,18 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.16.9 + '@types/node': 14.18.63 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.6.2 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - /ts-node/10.9.2_ogreqof3k35xezedraj6pnd45y: + /ts-node/10.9.2_scdp47z3rdmsjsnkk7dmy5sazq: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -13858,14 +13779,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 14.18.63 + '@types/node': 20.16.11 acorn: 8.12.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.6.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -14061,8 +13982,8 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - /typescript/5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + /typescript/5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -14107,8 +14028,8 @@ packages: /undici-types/6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} - /undici/6.19.8: - resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} + /undici/6.20.0: + resolution: {integrity: sha512-AITZfPuxubm31Sx0vr8bteSalEbs9wQb/BOBi9FPlD9Qpd6HxZ4Q0+hI742jBhkPb4RT2v5MQzaW5VhRVyj+9A==} engines: {node: '>=18.17'} dev: false @@ -14188,8 +14109,8 @@ packages: engines: {node: '>=8'} dev: true - /update-browserslist-db/1.1.0_browserslist@4.24.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + /update-browserslist-db/1.1.1_browserslist@4.24.0: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -14471,12 +14392,12 @@ packages: dependencies: string-width: 4.2.3 - /winston-transport/4.7.1: - resolution: {integrity: sha512-wQCXXVgfv/wUPOfb2x0ruxzwkcZfxcktz6JIMUaPLmcNhO4bZTwA/WtDWK74xV3F2dKu8YadrFv0qhwYjVEwhA==} + /winston-transport/4.8.0: + resolution: {integrity: sha512-qxSTKswC6llEMZKgCQdaWgDuMJQnhuvF5f2Nk3SNXc4byfQ+voo2mX1Px9dkNOuR8p0KAjfPG29PuYUSIb+vSA==} engines: {node: '>= 12.0.0'} dependencies: logform: 2.6.1 - readable-stream: 3.6.2 + readable-stream: 4.5.2 triple-beam: 1.4.1 dev: false @@ -14492,23 +14413,6 @@ packages: stack-trace: 0.0.10 dev: false - /winston/3.14.2: - resolution: {integrity: sha512-CO8cdpBB2yqzEf8v895L+GNKYJiEq8eKlHU38af3snQBQ+sdAIUepjMSguOIJC7ICbzm0ZI+Af2If4vIJrtmOg==} - engines: {node: '>= 12.0.0'} - dependencies: - '@colors/colors': 1.6.0 - '@dabh/diagnostics': 2.0.3 - async: 3.2.6 - is-stream: 2.0.1 - logform: 2.6.1 - one-time: 1.0.0 - readable-stream: 3.6.2 - safe-stable-stringify: 2.5.0 - stack-trace: 0.0.10 - triple-beam: 1.4.1 - winston-transport: 4.7.1 - dev: false - /winston/3.15.0: resolution: {integrity: sha512-RhruH2Cj0bV0WgNL+lOfoUBI4DVfdUNjVnJGVovWZmrcKtrFTTRzgXYK2O9cymSGjrERCtaAeHwMNnUWXlwZow==} engines: {node: '>= 12.0.0'} @@ -14523,7 +14427,7 @@ packages: safe-stable-stringify: 2.5.0 stack-trace: 0.0.10 triple-beam: 1.4.1 - winston-transport: 4.7.1 + winston-transport: 4.8.0 dev: false /word-wrap/1.2.5: