From c7a1f8bef0c3954428ade48823889184362fa000 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Tue, 6 Feb 2024 14:59:33 +0530 Subject: [PATCH 01/15] feat: replaced taxonomy all terms with export api --- packages/contentstack-export/README.md | 2 +- packages/contentstack-export/package.json | 2 +- .../contentstack-export/src/config/index.ts | 9 +- .../src/export/modules/base-class.ts | 9 +- .../src/export/modules/taxonomies.ts | 104 +++++------------- .../src/types/default-config.ts | 6 - .../contentstack-export/src/types/index.ts | 18 +-- 7 files changed, 47 insertions(+), 103 deletions(-) diff --git a/packages/contentstack-export/README.md b/packages/contentstack-export/README.md index ae1378c585..43f58bcb94 100755 --- a/packages/contentstack-export/README.md +++ b/packages/contentstack-export/README.md @@ -48,7 +48,7 @@ $ npm install -g @contentstack/cli-cm-export $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-export/1.10.5 darwin-arm64 node-v20.8.0 +@contentstack/cli-cm-export/1.11.0 darwin-arm64 node-v18.19.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index a2bde1bc8a..2f40959187 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-export", "description": "Contentstack CLI plugin to export content from stack", - "version": "1.10.5", + "version": "1.11.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-export/src/config/index.ts b/packages/contentstack-export/src/config/index.ts index ec027efe10..cee96c6d46 100644 --- a/packages/contentstack-export/src/config/index.ts +++ b/packages/contentstack-export/src/config/index.ts @@ -165,13 +165,8 @@ const config: DefaultConfig = { taxonomies: { dirName: 'taxonomies', fileName: 'taxonomies.json', - invalidKeys: ['updated_at', 'created_by', 'updated_by', 'stackHeaders', 'urlPath'], - }, - terms: { - dirName: 'terms', - fileName: 'terms.json', - invalidKeys: ['updated_at', 'created_by', 'updated_by', 'stackHeaders', 'urlPath'], - }, + invalidKeys: ['updated_at', 'created_by', 'updated_by', 'stackHeaders', 'urlPath', 'created_at'], + } }, languagesCode: [ 'af-za', diff --git a/packages/contentstack-export/src/export/modules/base-class.ts b/packages/contentstack-export/src/export/modules/base-class.ts index 90cb015942..8cd2473c78 100644 --- a/packages/contentstack-export/src/export/modules/base-class.ts +++ b/packages/contentstack-export/src/export/modules/base-class.ts @@ -47,7 +47,8 @@ export type ApiModuleType = | 'content-types' | 'stacks' | 'versioned-entries' - | 'download-asset'; + | 'download-asset' + | 'export-taxonomy'; export default abstract class BaseClass { readonly client: any; @@ -176,6 +177,12 @@ export default abstract class BaseClass { .download({ url, responseType: 'stream' }) .then((response: any) => resolve({ response, isLastRequest, additionalInfo })) .catch((error: any) => reject({ error, isLastRequest, additionalInfo })); + case 'export-taxonomy': + return this.stack + .taxonomy(uid) + .export() + .then((response: any) => resolve({ response, uid })) + .catch((error: any) => reject({ error, uid })); default: return Promise.resolve(); } diff --git a/packages/contentstack-export/src/export/modules/taxonomies.ts b/packages/contentstack-export/src/export/modules/taxonomies.ts index 7fbe221247..19edb40c3f 100644 --- a/packages/contentstack-export/src/export/modules/taxonomies.ts +++ b/packages/contentstack-export/src/export/modules/taxonomies.ts @@ -5,43 +5,34 @@ import { resolve as pResolve } from 'node:path'; import BaseClass from './base-class'; import { log, fsUtil } from '../../utils'; -import { TaxonomiesConfig, TermsConfig, ModuleClassParams } from '../../types'; +import { TaxonomiesConfig, ModuleClassParams } from '../../types'; export default class ExportTaxonomies extends BaseClass { private taxonomies: Record>; - private terms: Record[]; private taxonomiesConfig: TaxonomiesConfig; - private termsConfig: TermsConfig; private qs: { include_count: boolean; skip: number; asc: string; - depth?: number; }; public taxonomiesFolderPath: string; - public termsFolderPath: string; constructor({ exportConfig, stackAPIClient }: ModuleClassParams) { super({ exportConfig, stackAPIClient }); this.taxonomies = {}; - this.terms = []; this.taxonomiesConfig = exportConfig.modules.taxonomies; - this.termsConfig = exportConfig.modules.terms; - this.qs = { include_count: true, skip: 0, asc: 'created_at' }; } async start(): Promise { log(this.exportConfig, 'Starting taxonomies export', 'info'); - //create taxonomies and terms folder in data directory path + //create taxonomies folder this.taxonomiesFolderPath = pResolve( this.exportConfig.data, this.exportConfig.branchName || '', this.taxonomiesConfig.dirName, ); await fsUtil.makeDirectory(this.taxonomiesFolderPath); - this.termsFolderPath = pResolve(this.taxonomiesFolderPath, this.termsConfig.dirName); - await fsUtil.makeDirectory(this.termsFolderPath); //fetch all taxonomies and write into taxonomies folder await this.getAllTaxonomies(); @@ -49,12 +40,11 @@ export default class ExportTaxonomies extends BaseClass { log(this.exportConfig, 'No taxonomies found!', 'info'); return; } else { - fsUtil.writeFile(pResolve(this.taxonomiesFolderPath, this.taxonomiesConfig.fileName), this.taxonomies); - log(this.exportConfig, 'All taxonomies exported successfully!', 'success'); + fsUtil.writeFile(pResolve(this.taxonomiesFolderPath, 'taxonomies.json'), this.taxonomies); + await this.exportTaxonomies(); } - //fetch all terms of respective and write into taxonomies/terms folder - await this.getAllTerms(); + log(this.exportConfig, `Taxonomies exported!`, 'success'); } /** @@ -62,7 +52,7 @@ export default class ExportTaxonomies extends BaseClass { * @param {number} skip * @returns {Promise} */ - async getAllTaxonomies(skip = 0): Promise { + async getAllTaxonomies(skip: number = 0): Promise { if (skip) { this.qs.skip = skip; } @@ -97,75 +87,41 @@ export default class ExportTaxonomies extends BaseClass { for (let index = 0; index < taxonomies?.length; index++) { const taxonomyUID = taxonomies[index].uid; this.taxonomies[taxonomyUID] = omit(taxonomies[index], this.taxonomiesConfig.invalidKeys); - log(this.exportConfig, `'${taxonomyUID}' taxonomy exported successfully!`, 'success'); } } /** - * fetch all terms of respective taxonomy and write it into -terms file + * Export all taxonomies details using metadata(this.taxonomies) and write it into respective .json file * @returns {Promise} */ - async getAllTerms() { + async exportTaxonomies(): Promise { const taxonomiesUID = keys(this.taxonomies) || []; - this.qs.depth = 0; - for (let index = 0; index < taxonomiesUID?.length; index++) { - const taxonomyUID = taxonomiesUID[index]; - this.terms = []; - await this.fetchTermsOfTaxonomy(taxonomyUID); - if (!this.terms?.length) { - log(this.exportConfig, `No terms found for taxonomy - '${taxonomyUID}'!`, 'info'); + const onSuccess = ({ response, uid }: any) => { + const filePath = pResolve(this.taxonomiesFolderPath, `${uid}.json`); + fsUtil.writeFile(filePath, response); + log(this.exportConfig, `'${uid}' taxonomy exported successfully!`, 'success'); + }; + + const onReject = ({ error, uid }: any) => { + if (error?.errorMessage) { + log(this.exportConfig, `Failed to export taxonomy - '${uid}'! ${error.errorMessage}`, 'error'); + } else if (error?.message) { + const errorMsg = error?.errors?.taxonomy || error?.errors?.term || error?.message; + log(this.exportConfig, `Failed to export taxonomy - '${uid}'! ${errorMsg}`, 'error'); } else { - fsUtil.writeFile(pResolve(this.termsFolderPath, `${taxonomyUID}-${this.termsConfig.fileName}`), this.terms); - log(this.exportConfig, `Terms from taxonomy '${taxonomyUID}' exported successfully!`, 'success'); + log(this.exportConfig, `Failed to export taxonomy - '${uid}'! ${error}`, 'error'); } - } - log(this.exportConfig, `All the terms exported successfully!`, 'success'); - } - - /** - * fetch all terms of the provided taxonomy uid - * @async - * @param {string} taxonomyUID - * @param {number} skip - * @returns {Promise} - */ - async fetchTermsOfTaxonomy(taxonomyUID: string, skip = 0): Promise { - if (skip) { - this.qs.skip = skip; - } - await this.stack - .taxonomy(taxonomyUID) - .terms() - .query(this.qs) - .find() - .then(async (data: any) => { - const { items, count } = data; - const termsCount = count !== undefined ? count : items?.length; + }; - if (items?.length) { - this.sanitizeTermsAttribs(items); - skip += this.taxonomiesConfig.limit || 100; - if (skip >= termsCount) { - return; - } - return await this.fetchTermsOfTaxonomy(taxonomyUID, skip); - } - }) - .catch((error: any) => { - this.handleErrorMsg(error); + for (let index = 0; index < taxonomiesUID?.length; index++) { + const taxonomyUID = taxonomiesUID[index]; + await this.makeAPICall({ + reject: onReject, + resolve: onSuccess, + uid: taxonomyUID, + module: 'export-taxonomy', }); - } - - /** - * remove invalid keys and write data into taxonomies - * @function sanitizeTaxonomiesAttribs - * @param terms - */ - sanitizeTermsAttribs(terms: Record[]) { - for (let index = 0; index < terms?.length; index++) { - const term = omit(terms[index], this.termsConfig.invalidKeys); - this.terms.push(term) } } @@ -175,7 +131,7 @@ export default class ExportTaxonomies extends BaseClass { } else if (err?.message) { const errorMsg = err?.errors?.taxonomy || err?.errors?.term || err?.message; log(this.exportConfig, `Failed to export! ${errorMsg}`, 'error'); - }else{ + } else { log(this.exportConfig, `Failed to export! ${err}`, 'error'); } } diff --git a/packages/contentstack-export/src/types/default-config.ts b/packages/contentstack-export/src/types/default-config.ts index ca2d5ef886..ecfdf28c78 100644 --- a/packages/contentstack-export/src/types/default-config.ts +++ b/packages/contentstack-export/src/types/default-config.ts @@ -152,12 +152,6 @@ export default interface DefaultConfig { invalidKeys: string[]; dependencies?: Modules[]; }; - terms: { - dirName: string; - fileName: string; - invalidKeys: string[]; - dependencies?: Modules[]; - }; }; languagesCode: string[]; apis: { diff --git a/packages/contentstack-export/src/types/index.ts b/packages/contentstack-export/src/types/index.ts index 77d2327cd0..875695c4ff 100644 --- a/packages/contentstack-export/src/types/index.ts +++ b/packages/contentstack-export/src/types/index.ts @@ -100,7 +100,7 @@ export interface WebhookConfig { limit?: number; } -export interface WorkflowConfig{ +export interface WorkflowConfig { dirName: string; fileName: string; invalidKeys: string[]; @@ -108,29 +108,21 @@ export interface WorkflowConfig{ limit?: number; } -export interface CustomRoleConfig{ +export interface CustomRoleConfig { dirName: string; fileName: string; customRolesLocalesFileName: string; dependencies?: Modules[]; } -export interface StackConfig{ - dirName: string; - fileName: string; - dependencies?: Modules[]; - limit?: number; -} - -export interface TaxonomiesConfig{ +export interface StackConfig { dirName: string; fileName: string; - invalidKeys: string[]; dependencies?: Modules[]; limit?: number; } -export interface TermsConfig{ +export interface TaxonomiesConfig { dirName: string; fileName: string; invalidKeys: string[]; @@ -140,4 +132,4 @@ export interface TermsConfig{ export { default as DefaultConfig } from './default-config'; export { default as ExportConfig } from './export-config'; -export * from './marketplace-app' +export * from './marketplace-app'; From b771a263884d50d0134058463d82eeb8a46f5ee1 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Tue, 6 Feb 2024 15:03:15 +0530 Subject: [PATCH 02/15] version bump --- package-lock.json | 31 ++++++++++- packages/contentstack/package.json | 2 +- pnpm-lock.yaml | 86 ++++++++++++++++++++++++++++-- 3 files changed, 112 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89bb42efd7..b574d6cf46 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23549,7 +23549,7 @@ "@contentstack/cli-cm-branches": "~1.0.22", "@contentstack/cli-cm-bulk-publish": "~1.4.0", "@contentstack/cli-cm-clone": "~1.10.0", - "@contentstack/cli-cm-export": "~1.10.5", + "@contentstack/cli-cm-export": "~1.11.0", "@contentstack/cli-cm-export-to-csv": "~1.6.2", "@contentstack/cli-cm-import": "~1.13.3", "@contentstack/cli-cm-migrate-rte": "~1.4.15", @@ -24124,6 +24124,33 @@ "node": ">=14.0.0" } }, + "packages/contentstack-clone/node_modules/@contentstack/cli-cm-export": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-export/-/cli-cm-export-1.10.4.tgz", + "integrity": "sha512-t9bDER2DIUzQPCwtzQDmcKkHBW0Cc8xAXj7eWcqMsEhZSyDQSbDdhbel5/8jpDXkEhpfaJJByQrNvgz43/+EmQ==", + "dependencies": { + "@contentstack/cli-command": "~1.2.16", + "@contentstack/cli-utilities": "~1.5.11", + "@oclif/core": "^2.9.3", + "async": "^3.2.4", + "big-json": "^3.2.0", + "bluebird": "^3.7.2", + "chalk": "^4.1.2", + "is-valid-path": "^0.1.1", + "lodash": "^4.17.20", + "merge": "^2.1.1", + "mkdirp": "^1.0.4", + "path": "^0.12.7", + "progress-stream": "^2.0.0", + "promise-limit": "^2.7.0", + "proxyquire": "^2.1.3", + "tslib": "^2.4.1", + "winston": "^3.7.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, "packages/contentstack-clone/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -24525,7 +24552,7 @@ }, "packages/contentstack-export": { "name": "@contentstack/cli-cm-export", - "version": "1.10.5", + "version": "1.11.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.2.16", diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 1f59f16b91..a5f96d813b 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -27,7 +27,7 @@ "@contentstack/cli-cm-bootstrap": "~1.7.1", "@contentstack/cli-cm-branches": "~1.0.22", "@contentstack/cli-cm-bulk-publish": "~1.4.0", - "@contentstack/cli-cm-export": "~1.10.5", + "@contentstack/cli-cm-export": "~1.11.0", "@contentstack/cli-cm-clone": "~1.10.0", "@contentstack/cli-cm-export-to-csv": "~1.6.2", "@contentstack/cli-cm-import": "~1.13.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c30d43f1f7..8dcb774c33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: '@contentstack/cli-cm-branches': ~1.0.22 '@contentstack/cli-cm-bulk-publish': ~1.4.0 '@contentstack/cli-cm-clone': ~1.10.0 - '@contentstack/cli-cm-export': ~1.10.5 + '@contentstack/cli-cm-export': ~1.11.0 '@contentstack/cli-cm-export-to-csv': ~1.6.2 '@contentstack/cli-cm-import': ~1.13.3 '@contentstack/cli-cm-migrate-rte': ~1.4.15 @@ -450,7 +450,7 @@ importers: winston: ^3.7.2 dependencies: '@colors/colors': 1.6.0 - '@contentstack/cli-cm-export': link:../contentstack-export + '@contentstack/cli-cm-export': 1.10.4 '@contentstack/cli-cm-import': link:../contentstack-import '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-utilities': link:../contentstack-utilities @@ -1572,6 +1572,86 @@ packages: engines: {node: '>=0.1.90'} dev: false + /@contentstack/cli-cm-export/1.10.4: + resolution: {integrity: sha512-t9bDER2DIUzQPCwtzQDmcKkHBW0Cc8xAXj7eWcqMsEhZSyDQSbDdhbel5/8jpDXkEhpfaJJByQrNvgz43/+EmQ==} + engines: {node: '>=14.0.0'} + dependencies: + '@contentstack/cli-command': 1.2.17 + '@contentstack/cli-utilities': 1.5.11 + '@oclif/core': 2.15.0 + async: 3.2.5 + big-json: 3.2.0 + bluebird: 3.7.2 + chalk: 4.1.2 + is-valid-path: 0.1.1 + lodash: 4.17.21 + merge: 2.1.1 + mkdirp: 1.0.4 + path: 0.12.7 + progress-stream: 2.0.0 + promise-limit: 2.7.0 + proxyquire: 2.1.3 + tslib: 2.6.2 + winston: 3.11.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + + /@contentstack/cli-command/1.2.17: + resolution: {integrity: sha512-z5DWK+S+fRAXIZc0eZH1aw/Vb84wqICzYlGi4nKtov56H7QMWHwb+dORmzQvBHCUjbT/5/cZc6wpBZkebAUc7Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@contentstack/cli-utilities': 1.5.11 + contentstack: 3.17.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + + /@contentstack/cli-utilities/1.5.11: + resolution: {integrity: sha512-+gdau9VVnYS5ho+EexZEB6d6KcWXnYn5/RQJM4qka6i/sTtYrNEzrxD3/JHDtbdU/wx9TurgXq41TjeE5FJknw==} + dependencies: + '@contentstack/management': 1.13.0_debug@4.3.4 + '@contentstack/marketplace-sdk': 1.0.1_debug@4.3.4 + '@oclif/core': 2.15.0 + axios: 1.6.5_debug@4.3.4 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-table: 0.3.11 + conf: 10.2.0 + debug: 4.3.4 + figures: 3.2.0 + inquirer: 8.2.4 + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + klona: 2.0.6 + lodash: 4.17.21 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + rxjs: 6.6.7 + traverse: 0.6.7 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.11.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - supports-color + - typescript + dev: false + /@contentstack/json-rte-serializer/2.0.4: resolution: {integrity: sha512-x79OHHHsBSD4eKxkhfnoJLAFLF4sRQzJ8kvVDJtgHzlDNOEp9+A3chCpGxvzARpQlrD29w6sYn6wx4CG4vo9Ig==} dependencies: @@ -2486,7 +2566,6 @@ packages: - '@swc/wasm' - '@types/node' - typescript - dev: true /@oclif/core/2.15.0_bk3wvsuof3vjc47yunkur62wp4: resolution: {integrity: sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA==} @@ -13172,7 +13251,6 @@ packages: make-error: 1.3.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 - dev: true /ts-node/10.9.2_bk3wvsuof3vjc47yunkur62wp4: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} From 89687526df733727c0b38d5a4bbcd31842d99e88 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Tue, 6 Feb 2024 15:04:59 +0530 Subject: [PATCH 03/15] management sdk version bump --- packages/contentstack-import/package.json | 2 +- packages/contentstack-utilities/package.json | 2 +- packages/contentstack/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index dc5c4aa3cb..bb87834681 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -8,7 +8,7 @@ "@contentstack/cli-audit": "^1.3.5", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.11", - "@contentstack/management": "~1.13.0", + "@contentstack/management": "^1.15.1", "@oclif/core": "^2.9.3", "big-json": "^3.2.0", "bluebird": "^3.7.2", diff --git a/packages/contentstack-utilities/package.json b/packages/contentstack-utilities/package.json index 379f17ee27..245dc49c31 100644 --- a/packages/contentstack-utilities/package.json +++ b/packages/contentstack-utilities/package.json @@ -32,7 +32,7 @@ "author": "contentstack", "license": "MIT", "dependencies": { - "@contentstack/management": "~1.13.0", + "@contentstack/management": "^1.15.1", "@contentstack/marketplace-sdk": "^1.0.1", "@oclif/core": "^2.9.3", "axios": "^1.6.4", diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index a5f96d813b..718ff42f11 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -38,7 +38,7 @@ "@contentstack/cli-launch": "~1.0.16", "@contentstack/cli-migration": "~1.4.2", "@contentstack/cli-utilities": "~1.5.11", - "@contentstack/management": "~1.13.0", + "@contentstack/management": "~1.15.1", "@oclif/core": "^2.9.3", "@oclif/plugin-help": "^5", "@oclif/plugin-not-found": "^2.4.0", From f07aa3706730bcd05d64bc6c85f92e3df109564f Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Tue, 6 Feb 2024 15:06:40 +0530 Subject: [PATCH 04/15] updated lock file --- package-lock.json | 563 +++++++++++++++++++++++++++++++++++++++++----- pnpm-lock.yaml | 420 +++++++++++++++++++++++++++++----- 2 files changed, 861 insertions(+), 122 deletions(-) diff --git a/package-lock.json b/package-lock.json index b574d6cf46..db52c02d2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -883,11 +883,12 @@ } }, "node_modules/@contentstack/management": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.13.0.tgz", - "integrity": "sha512-zVApJ9dpZTq6yBvSTdwrTjPxe20PiXy9x5CGU49by2n1V7hWhsKtSpcIK+Fx9jylYfYU4SEM/HQIKq/i0roMew==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.15.1.tgz", + "integrity": "sha512-FAw2NAuDW/3JVbRu4t/BA9POYpKeZNsItTpld/CGJr/OenKbZLJfh527LH3v1Bj+jkhIDP8rIXoyJy4WI/ORVQ==", "dependencies": { - "axios": "^1.6.0", + "@slack/bolt": "^3.17.0", + "axios": "^1.6.5", "form-data": "^3.0.1", "lodash": "^4.17.21", "qs": "^6.11.2" @@ -2801,6 +2802,221 @@ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==" }, + "node_modules/@slack/bolt": { + "version": "3.17.1", + "resolved": "https://registry.npmjs.org/@slack/bolt/-/bolt-3.17.1.tgz", + "integrity": "sha512-N+4WxpkM59RXi7BL3IXUtENnn9cF7TOBn7ttaHpgvlnjUaro+yQyY60arXTlP4ytVDFJ1w0mSdfftcM17h+i2w==", + "dependencies": { + "@slack/logger": "^4.0.0", + "@slack/oauth": "^2.6.2", + "@slack/socket-mode": "^1.3.3", + "@slack/types": "^2.11.0", + "@slack/web-api": "^6.11.2", + "@types/express": "^4.16.1", + "@types/promise.allsettled": "^1.0.3", + "@types/tsscmp": "^1.0.0", + "axios": "^1.6.0", + "express": "^4.16.4", + "path-to-regexp": "^6.2.1", + "please-upgrade-node": "^3.2.0", + "promise.allsettled": "^1.0.2", + "raw-body": "^2.3.3", + "tsscmp": "^1.0.6" + }, + "engines": { + "node": ">=12.13.0", + "npm": ">=6.12.0" + } + }, + "node_modules/@slack/bolt/node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==" + }, + "node_modules/@slack/logger": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@slack/logger/-/logger-4.0.0.tgz", + "integrity": "sha512-Wz7QYfPAlG/DR+DfABddUZeNgoeY7d1J39OCR2jR+v7VBsB8ezulDK5szTnDDPDwLH5IWhLvXIHlCFZV7MSKgA==", + "dependencies": { + "@types/node": ">=18.0.0" + }, + "engines": { + "node": ">= 18", + "npm": ">= 8.6.0" + } + }, + "node_modules/@slack/oauth": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/@slack/oauth/-/oauth-2.6.2.tgz", + "integrity": "sha512-2R3MyB/R63hTRXzk5J6wcui59TBxXzhk+Uh2/Xu3Wp3O4pXg/BNucQhP/DQbL/ScVhLvFtMXirLrKi0Yo5gIVw==", + "dependencies": { + "@slack/logger": "^3.0.0", + "@slack/web-api": "^6.11.2", + "@types/jsonwebtoken": "^8.3.7", + "@types/node": ">=12", + "jsonwebtoken": "^9.0.0", + "lodash.isstring": "^4.0.1" + }, + "engines": { + "node": ">=12.13.0", + "npm": ">=6.12.0" + } + }, + "node_modules/@slack/oauth/node_modules/@slack/logger": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@slack/logger/-/logger-3.0.0.tgz", + "integrity": "sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==", + "dependencies": { + "@types/node": ">=12.0.0" + }, + "engines": { + "node": ">= 12.13.0", + "npm": ">= 6.12.0" + } + }, + "node_modules/@slack/socket-mode": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@slack/socket-mode/-/socket-mode-1.3.3.tgz", + "integrity": "sha512-vN3zG4woRtf2Ut6rZgRW6G/Oe56uLMlnz39I08Q7DOvVfB+1MmDbNv0PNOiFgujdKXJR+bXF41/F/VvryXcqlw==", + "dependencies": { + "@slack/logger": "^3.0.0", + "@slack/web-api": "^6.11.2", + "@types/node": ">=12.0.0", + "@types/p-queue": "^2.3.2", + "@types/ws": "^7.4.7", + "eventemitter3": "^3.1.0", + "finity": "^0.5.4", + "p-cancelable": "^1.1.0", + "p-queue": "^2.4.2", + "ws": "^7.5.3" + }, + "engines": { + "node": ">=12.13.0", + "npm": ">=6.12.0" + } + }, + "node_modules/@slack/socket-mode/node_modules/@slack/logger": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@slack/logger/-/logger-3.0.0.tgz", + "integrity": "sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==", + "dependencies": { + "@types/node": ">=12.0.0" + }, + "engines": { + "node": ">= 12.13.0", + "npm": ">= 6.12.0" + } + }, + "node_modules/@slack/socket-mode/node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "node_modules/@slack/socket-mode/node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@slack/socket-mode/node_modules/p-queue": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-2.4.2.tgz", + "integrity": "sha512-n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@slack/socket-mode/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@slack/types": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@slack/types/-/types-2.11.0.tgz", + "integrity": "sha512-UlIrDWvuLaDly3QZhCPnwUSI/KYmV1N9LyhuH6EDKCRS1HWZhyTG3Ja46T3D0rYfqdltKYFXbJSSRPwZpwO0cQ==", + "engines": { + "node": ">= 12.13.0", + "npm": ">= 6.12.0" + } + }, + "node_modules/@slack/web-api": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/@slack/web-api/-/web-api-6.12.0.tgz", + "integrity": "sha512-RPw6F8rWfGveGkZEJ4+4jUin5iazxRK2q3FpQDz/FvdgzC3nZmPyLx8WRzc6nh0w3MBjEbphNnp2VZksfhpBIQ==", + "dependencies": { + "@slack/logger": "^3.0.0", + "@slack/types": "^2.11.0", + "@types/is-stream": "^1.1.0", + "@types/node": ">=12.0.0", + "axios": "^1.6.5", + "eventemitter3": "^3.1.0", + "form-data": "^2.5.0", + "is-electron": "2.2.2", + "is-stream": "^1.1.0", + "p-queue": "^6.6.1", + "p-retry": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0", + "npm": ">= 6.12.0" + } + }, + "node_modules/@slack/web-api/node_modules/@slack/logger": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@slack/logger/-/logger-3.0.0.tgz", + "integrity": "sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==", + "dependencies": { + "@types/node": ">=12.0.0" + }, + "engines": { + "node": ">= 12.13.0", + "npm": ">= 6.12.0" + } + }, + "node_modules/@slack/web-api/node_modules/eventemitter3": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", + "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==" + }, + "node_modules/@slack/web-api/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@slack/web-api/node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", @@ -3102,6 +3318,14 @@ "tslib": "^2.1.0" } }, + "node_modules/@types/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@types/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", @@ -3157,6 +3381,14 @@ "@types/node": "*" } }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/keyv": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", @@ -3243,6 +3475,11 @@ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true }, + "node_modules/@types/p-queue": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@types/p-queue/-/p-queue-2.3.2.tgz", + "integrity": "sha512-eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==" + }, "node_modules/@types/progress-stream": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/progress-stream/-/progress-stream-2.0.5.tgz", @@ -3252,6 +3489,11 @@ "@types/node": "*" } }, + "node_modules/@types/promise.allsettled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/promise.allsettled/-/promise.allsettled-1.0.6.tgz", + "integrity": "sha512-wA0UT0HeT2fGHzIFV9kWpYz5mdoyLxKrTgMdZQM++5h6pYAFH73HXcQhefg24nD1yivUFEn5KU+EF4b+CXJ4Wg==" + }, "node_modules/@types/qs": { "version": "6.9.11", "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", @@ -3271,6 +3513,11 @@ "@types/node": "*" } }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, "node_modules/@types/semver": { "version": "7.5.6", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", @@ -3351,6 +3598,11 @@ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==" }, + "node_modules/@types/tsscmp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/tsscmp/-/tsscmp-1.0.2.tgz", + "integrity": "sha512-cy7BRSU8GYYgxjcx0Py+8lo5MthuDhlyu076KUcYzVNXL23luYgRHkMG2fIFEc6neckeh/ntP82mw+U4QjZq+g==" + }, "node_modules/@types/uuid": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz", @@ -3367,6 +3619,14 @@ "@types/node": "*" } }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/yargs": { "version": "17.0.32", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", @@ -3972,7 +4232,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -4085,11 +4344,28 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.map": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.6.tgz", + "integrity": "sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -4190,7 +4466,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -4655,6 +4930,11 @@ "isarray": "^1.0.0" } }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -6059,7 +6339,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -6256,6 +6535,14 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -6417,7 +6704,6 @@ "version": "1.22.3", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -6466,11 +6752,39 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-get-iterator/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, "node_modules/es-set-tostringtag": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.2", "has-tostringtag": "^1.0.0", @@ -6493,7 +6807,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -7694,8 +8007,7 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" }, "node_modules/events": { "version": "1.1.1", @@ -8209,6 +8521,11 @@ "pkg-dir": "^4.2.0" } }, + "node_modules/finity": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/finity/-/finity-0.5.4.tgz", + "integrity": "sha512-3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==" + }, "node_modules/first-chunk-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", @@ -8293,7 +8610,6 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, "dependencies": { "is-callable": "^1.1.3" } @@ -8449,7 +8765,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -8473,7 +8788,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8571,7 +8885,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -8678,7 +8991,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -8830,7 +9142,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8880,7 +9191,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -10006,7 +10316,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.2", "hasown": "^2.0.0", @@ -10054,7 +10363,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -10070,7 +10378,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -10090,7 +10397,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, @@ -10114,7 +10420,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -10145,7 +10450,6 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -10168,7 +10472,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -10193,6 +10496,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-electron": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -10288,6 +10596,14 @@ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", @@ -10308,7 +10624,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -10328,7 +10643,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -10415,7 +10729,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -10448,11 +10761,18 @@ "node": ">=8" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -10475,7 +10795,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -10490,7 +10809,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -10505,7 +10823,6 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, "dependencies": { "which-typed-array": "^1.1.11" }, @@ -10554,7 +10871,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -10761,6 +11077,26 @@ "node": ">=8" } }, + "node_modules/iterate-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.2.tgz", + "integrity": "sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/iterate-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", + "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", + "dependencies": { + "es-get-iterator": "^1.0.2", + "iterate-iterator": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", @@ -11943,6 +12279,27 @@ "node": "*" } }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, "node_modules/just-diff": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", @@ -11959,6 +12316,25 @@ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz", "integrity": "sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw==" }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -12405,6 +12781,11 @@ "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, "node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", @@ -12425,11 +12806,21 @@ "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, "node_modules/lodash.isnil": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, "node_modules/lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", @@ -12440,6 +12831,11 @@ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, "node_modules/lodash.isundefined": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", @@ -12468,6 +12864,11 @@ "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", "dev": true }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, "node_modules/lodash.padend": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", @@ -17250,7 +17651,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, "engines": { "node": ">= 0.4" } @@ -17276,7 +17676,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.5", "define-properties": "^1.2.1", @@ -17580,7 +17979,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", - "dev": true, "engines": { "node": ">=4" } @@ -17635,7 +18033,6 @@ "version": "6.6.2", "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", - "dev": true, "dependencies": { "eventemitter3": "^4.0.4", "p-timeout": "^3.2.0" @@ -17647,11 +18044,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/p-timeout": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", - "dev": true, "dependencies": { "p-finally": "^1.0.0" }, @@ -18124,6 +18532,14 @@ "node": ">=4" } }, + "node_modules/please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dependencies": { + "semver-compare": "^1.0.0" + } + }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -18340,6 +18756,25 @@ "node": ">= 4" } }, + "node_modules/promise.allsettled": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.7.tgz", + "integrity": "sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==", + "dependencies": { + "array.prototype.map": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "iterate-value": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/prompt": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.3.0.tgz", @@ -19085,7 +19520,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -19280,7 +19714,6 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true, "engines": { "node": ">= 4" } @@ -19377,7 +19810,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", - "dev": true, "dependencies": { "call-bind": "^1.0.5", "get-intrinsic": "^1.2.2", @@ -19394,8 +19826,7 @@ "node_modules/safe-array-concat/node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -19429,7 +19860,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.2.tgz", "integrity": "sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.5", "get-intrinsic": "^1.2.2", @@ -19495,6 +19925,11 @@ "node": ">=10" } }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==" + }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -19600,7 +20035,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -20381,6 +20815,17 @@ "node": ">=8.0.0" } }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-connect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz", @@ -20472,7 +20917,6 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -20489,7 +20933,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -20503,7 +20946,6 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -21118,6 +21560,14 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsscmp": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz", + "integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==", + "engines": { + "node": ">=0.6.x" + } + }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", @@ -21495,7 +21945,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -21509,7 +21958,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -21527,7 +21975,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -21546,7 +21993,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -21606,7 +22052,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -22009,7 +22454,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -22044,7 +22488,6 @@ "version": "1.1.13", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.4", @@ -23559,7 +24002,7 @@ "@contentstack/cli-launch": "~1.0.16", "@contentstack/cli-migration": "~1.4.2", "@contentstack/cli-utilities": "~1.5.11", - "@contentstack/management": "~1.13.0", + "@contentstack/management": "~1.15.1", "@oclif/core": "^2.9.3", "@oclif/plugin-help": "^5", "@oclif/plugin-not-found": "^2.4.0", @@ -25026,7 +25469,7 @@ "@contentstack/cli-audit": "^1.3.5", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.11", - "@contentstack/management": "~1.13.0", + "@contentstack/management": "^1.15.1", "@oclif/core": "^2.9.3", "big-json": "^3.2.0", "bluebird": "^3.7.2", @@ -25586,7 +26029,7 @@ "version": "1.5.11", "license": "MIT", "dependencies": { - "@contentstack/management": "~1.13.0", + "@contentstack/management": "^1.15.1", "@contentstack/marketplace-sdk": "^1.0.1", "@oclif/core": "^2.9.3", "axios": "^1.6.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8dcb774c33..8f6cdef3e8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -26,7 +26,7 @@ importers: '@contentstack/cli-launch': ~1.0.16 '@contentstack/cli-migration': ~1.4.2 '@contentstack/cli-utilities': ~1.5.11 - '@contentstack/management': ~1.13.0 + '@contentstack/management': ~1.15.1 '@oclif/core': ^2.9.3 '@oclif/plugin-help': ^5 '@oclif/plugin-not-found': ^2.4.0 @@ -80,7 +80,7 @@ importers: '@contentstack/cli-launch': link:../contentstack-launch '@contentstack/cli-migration': link:../contentstack-migration '@contentstack/cli-utilities': link:../contentstack-utilities - '@contentstack/management': 1.13.0_debug@4.3.4 + '@contentstack/management': 1.15.1_debug@4.3.4 '@oclif/core': 2.15.0_ogreqof3k35xezedraj6pnd45y '@oclif/plugin-help': 5.2.14_ogreqof3k35xezedraj6pnd45y '@oclif/plugin-not-found': 2.4.3_ogreqof3k35xezedraj6pnd45y @@ -733,7 +733,7 @@ importers: '@contentstack/cli-audit': ^1.3.5 '@contentstack/cli-command': ~1.2.16 '@contentstack/cli-utilities': ~1.5.11 - '@contentstack/management': ~1.13.0 + '@contentstack/management': ^1.15.1 '@oclif/core': ^2.9.3 '@oclif/test': ^2.5.6 '@types/big-json': ^3.2.0 @@ -776,7 +776,7 @@ importers: '@contentstack/cli-audit': link:../contentstack-audit '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-utilities': link:../contentstack-utilities - '@contentstack/management': 1.13.0_debug@4.3.4 + '@contentstack/management': 1.15.1_debug@4.3.4 '@oclif/core': 2.15.0_ogreqof3k35xezedraj6pnd45y big-json: 3.2.0 bluebird: 3.7.2 @@ -1046,7 +1046,7 @@ importers: packages/contentstack-utilities: specifiers: '@contentstack/cli-dev-dependencies': ^1.2.4 - '@contentstack/management': ~1.13.0 + '@contentstack/management': ^1.15.1 '@contentstack/marketplace-sdk': ^1.0.1 '@oclif/core': ^2.9.3 '@oclif/test': ^2.5.6 @@ -1094,7 +1094,7 @@ importers: winston: ^3.7.2 xdg-basedir: ^4.0.0 dependencies: - '@contentstack/management': 1.13.0_debug@4.3.4 + '@contentstack/management': 1.15.1_debug@4.3.4 '@contentstack/marketplace-sdk': 1.0.1_debug@4.3.4 '@oclif/core': 2.15.0_ogreqof3k35xezedraj6pnd45y axios: 1.6.5_debug@4.3.4 @@ -1675,6 +1675,22 @@ packages: - debug dev: false + /@contentstack/management/1.15.1_debug@4.3.4: + resolution: {integrity: sha512-FAw2NAuDW/3JVbRu4t/BA9POYpKeZNsItTpld/CGJr/OenKbZLJfh527LH3v1Bj+jkhIDP8rIXoyJy4WI/ORVQ==} + engines: {node: '>=8.0.0'} + dependencies: + '@slack/bolt': 3.17.1_debug@4.3.4 + axios: 1.6.5_debug@4.3.4 + form-data: 3.0.1 + lodash: 4.17.21 + qs: 6.11.2 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: false + /@contentstack/marketplace-sdk/1.0.1_debug@4.3.4: resolution: {integrity: sha512-E9amU6qwp4i1AzXiMX4UKYJSZ8wyhncGPx5MGpwGoM2WUfJqGMwH9o1bXLAzOSBu1a8yhOMOkz/ehLwYeq6Ufg==} dependencies: @@ -3346,6 +3362,104 @@ packages: /@sinonjs/text-encoding/0.7.2: resolution: {integrity: sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==} + /@slack/bolt/3.17.1_debug@4.3.4: + resolution: {integrity: sha512-N+4WxpkM59RXi7BL3IXUtENnn9cF7TOBn7ttaHpgvlnjUaro+yQyY60arXTlP4ytVDFJ1w0mSdfftcM17h+i2w==} + engines: {node: '>=12.13.0', npm: '>=6.12.0'} + dependencies: + '@slack/logger': 4.0.0 + '@slack/oauth': 2.6.2_debug@4.3.4 + '@slack/socket-mode': 1.3.3_debug@4.3.4 + '@slack/types': 2.11.0 + '@slack/web-api': 6.12.0_debug@4.3.4 + '@types/express': 4.17.21 + '@types/promise.allsettled': 1.0.6 + '@types/tsscmp': 1.0.2 + axios: 1.6.5_debug@4.3.4 + express: 4.18.2 + path-to-regexp: 6.2.1 + please-upgrade-node: 3.2.0 + promise.allsettled: 1.0.7 + raw-body: 2.5.1 + tsscmp: 1.0.6 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + dev: false + + /@slack/logger/3.0.0: + resolution: {integrity: sha512-DTuBFbqu4gGfajREEMrkq5jBhcnskinhr4+AnfJEk48zhVeEv3XnUKGIX98B74kxhYsIMfApGGySTn7V3b5yBA==} + engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} + dependencies: + '@types/node': 20.10.4 + dev: false + + /@slack/logger/4.0.0: + resolution: {integrity: sha512-Wz7QYfPAlG/DR+DfABddUZeNgoeY7d1J39OCR2jR+v7VBsB8ezulDK5szTnDDPDwLH5IWhLvXIHlCFZV7MSKgA==} + engines: {node: '>= 18', npm: '>= 8.6.0'} + dependencies: + '@types/node': 20.10.4 + dev: false + + /@slack/oauth/2.6.2_debug@4.3.4: + resolution: {integrity: sha512-2R3MyB/R63hTRXzk5J6wcui59TBxXzhk+Uh2/Xu3Wp3O4pXg/BNucQhP/DQbL/ScVhLvFtMXirLrKi0Yo5gIVw==} + engines: {node: '>=12.13.0', npm: '>=6.12.0'} + dependencies: + '@slack/logger': 3.0.0 + '@slack/web-api': 6.12.0_debug@4.3.4 + '@types/jsonwebtoken': 8.5.9 + '@types/node': 20.10.4 + jsonwebtoken: 9.0.2 + lodash.isstring: 4.0.1 + transitivePeerDependencies: + - debug + dev: false + + /@slack/socket-mode/1.3.3_debug@4.3.4: + resolution: {integrity: sha512-vN3zG4woRtf2Ut6rZgRW6G/Oe56uLMlnz39I08Q7DOvVfB+1MmDbNv0PNOiFgujdKXJR+bXF41/F/VvryXcqlw==} + engines: {node: '>=12.13.0', npm: '>=6.12.0'} + dependencies: + '@slack/logger': 3.0.0 + '@slack/web-api': 6.12.0_debug@4.3.4 + '@types/node': 20.10.4 + '@types/p-queue': 2.3.2 + '@types/ws': 7.4.7 + eventemitter3: 3.1.2 + finity: 0.5.4 + p-cancelable: 1.1.0 + p-queue: 2.4.2 + ws: 7.5.9 + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + dev: false + + /@slack/types/2.11.0: + resolution: {integrity: sha512-UlIrDWvuLaDly3QZhCPnwUSI/KYmV1N9LyhuH6EDKCRS1HWZhyTG3Ja46T3D0rYfqdltKYFXbJSSRPwZpwO0cQ==} + engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} + dev: false + + /@slack/web-api/6.12.0_debug@4.3.4: + resolution: {integrity: sha512-RPw6F8rWfGveGkZEJ4+4jUin5iazxRK2q3FpQDz/FvdgzC3nZmPyLx8WRzc6nh0w3MBjEbphNnp2VZksfhpBIQ==} + engines: {node: '>= 12.13.0', npm: '>= 6.12.0'} + dependencies: + '@slack/logger': 3.0.0 + '@slack/types': 2.11.0 + '@types/is-stream': 1.1.0 + '@types/node': 20.10.4 + axios: 1.6.5_debug@4.3.4 + eventemitter3: 3.1.2 + form-data: 2.5.1 + is-electron: 2.2.2 + is-stream: 1.1.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + transitivePeerDependencies: + - debug + dev: false + /@szmarczak/http-timer/4.0.6: resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} engines: {node: '>=10'} @@ -3533,6 +3647,12 @@ packages: rxjs: 7.8.1 dev: true + /@types/is-stream/1.1.0: + resolution: {integrity: sha512-jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==} + dependencies: + '@types/node': 20.10.4 + dev: false + /@types/istanbul-lib-coverage/2.0.6: resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} dev: true @@ -3570,6 +3690,12 @@ packages: '@types/node': 20.10.4 dev: true + /@types/jsonwebtoken/8.5.9: + resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==} + dependencies: + '@types/node': 20.10.4 + dev: false + /@types/keyv/3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: @@ -3650,12 +3776,20 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true + /@types/p-queue/2.3.2: + resolution: {integrity: sha512-eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==} + dev: false + /@types/progress-stream/2.0.5: resolution: {integrity: sha512-5YNriuEZkHlFHHepLIaxzq3atGeav1qCTGzB74HKWpo66qjfostF+rHc785YYYHeBytve8ZG3ejg42jEIfXNiQ==} dependencies: '@types/node': 20.10.4 dev: true + /@types/promise.allsettled/1.0.6: + resolution: {integrity: sha512-wA0UT0HeT2fGHzIFV9kWpYz5mdoyLxKrTgMdZQM++5h6pYAFH73HXcQhefg24nD1yivUFEn5KU+EF4b+CXJ4Wg==} + dev: false + /@types/qs/6.9.10: resolution: {integrity: sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==} dev: false @@ -3670,6 +3804,10 @@ packages: '@types/node': 20.10.4 dev: true + /@types/retry/0.12.0: + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + dev: false + /@types/semver/7.5.6: resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} dev: true @@ -3733,6 +3871,10 @@ packages: resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==} dev: false + /@types/tsscmp/1.0.2: + resolution: {integrity: sha512-cy7BRSU8GYYgxjcx0Py+8lo5MthuDhlyu076KUcYzVNXL23luYgRHkMG2fIFEc6neckeh/ntP82mw+U4QjZq+g==} + dev: false + /@types/uuid/9.0.7: resolution: {integrity: sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==} dev: true @@ -3744,6 +3886,12 @@ packages: '@types/node': 20.10.4 dev: true + /@types/ws/7.4.7: + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + dependencies: + '@types/node': 20.10.4 + dev: false + /@types/yargs-parser/21.0.3: resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} dev: true @@ -4548,7 +4696,6 @@ packages: dependencies: call-bind: 1.0.5 is-array-buffer: 3.0.2 - dev: true /array-differ/3.0.0: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} @@ -4610,6 +4757,17 @@ packages: es-shim-unscopables: 1.0.2 dev: true + /array.prototype.map/1.0.6: + resolution: {integrity: sha512-nK1psgF2cXqP3wSyCSq0Hc7zwNq3sfljQqaG27r/7a7ooNUnn5nGq6yYWyks9jMO5EoFQ0ax80hSg6oXSRNXaw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + es-array-method-boxes-properly: 1.0.0 + is-string: 1.0.7 + dev: false + /arraybuffer.prototype.slice/1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} @@ -4621,7 +4779,6 @@ packages: get-intrinsic: 1.2.2 is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 - dev: true /arrify/2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} @@ -4690,7 +4847,6 @@ packages: /available-typed-arrays/1.0.5: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - dev: true /aws-sdk/2.1515.0: resolution: {integrity: sha512-v/GQOebvSLmtdaF5SUk9B84xtJWEv2jX9ZJf2xfz9uE+Gt7Ldb3LyKIvyw7RzTqh6x51bNPnRhpafpjM1TIwvA==} @@ -4932,6 +5088,10 @@ packages: node-int64: 0.4.0 dev: true + /buffer-equal-constant-time/1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + dev: false + /buffer-from/1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -5892,7 +6052,6 @@ packages: define-data-property: 1.1.1 has-property-descriptors: 1.0.1 object-keys: 1.1.1 - dev: true /delayed-stream/1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} @@ -6025,6 +6184,12 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true + /ecdsa-sig-formatter/1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + dependencies: + safe-buffer: 5.2.1 + dev: false + /ee-first/1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} dev: false @@ -6166,7 +6331,24 @@ packages: typed-array-length: 1.0.4 unbox-primitive: 1.0.2 which-typed-array: 1.1.13 - dev: true + + /es-array-method-boxes-properly/1.0.0: + resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + dev: false + + /es-get-iterator/1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.5 + get-intrinsic: 1.2.2 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: false /es-set-tostringtag/2.0.2: resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} @@ -6175,7 +6357,6 @@ packages: get-intrinsic: 1.2.2 has-tostringtag: 1.0.0 hasown: 2.0.0 - dev: true /es-shim-unscopables/1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} @@ -6190,7 +6371,6 @@ packages: is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 - dev: true /es6-error/4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -7128,9 +7308,12 @@ packages: engines: {node: '>=6'} dev: true + /eventemitter3/3.1.2: + resolution: {integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==} + dev: false + /eventemitter3/4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - dev: true /events/1.1.1: resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} @@ -7450,6 +7633,10 @@ packages: pkg-dir: 4.2.0 dev: true + /finity/0.5.4: + resolution: {integrity: sha512-3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==} + dev: false + /first-chunk-stream/2.0.0: resolution: {integrity: sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg==} engines: {node: '>=0.10.0'} @@ -7505,7 +7692,6 @@ packages: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} dependencies: is-callable: 1.2.7 - dev: true /foreground-child/2.0.0: resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} @@ -7523,6 +7709,15 @@ packages: signal-exit: 4.1.0 dev: true + /form-data/2.5.1: + resolution: {integrity: sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==} + engines: {node: '>= 0.12'} + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + dev: false + /form-data/3.0.1: resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} @@ -7629,7 +7824,6 @@ packages: define-properties: 1.2.1 es-abstract: 1.22.3 functions-have-names: 1.2.3 - dev: true /functional-red-black-tree/1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} @@ -7637,7 +7831,6 @@ packages: /functions-have-names/1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true /fuzzy/0.1.3: resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} @@ -7717,7 +7910,6 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - dev: true /get-tsconfig/4.7.2: resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} @@ -7812,7 +8004,6 @@ packages: engines: {node: '>= 0.4'} dependencies: define-properties: 1.2.1 - dev: true /globby/10.0.2: resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} @@ -7910,7 +8101,6 @@ packages: /has-bigints/1.0.2: resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true /has-flag/3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} @@ -7938,7 +8128,6 @@ packages: engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true /has-unicode/2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} @@ -8277,7 +8466,6 @@ packages: get-intrinsic: 1.2.2 hasown: 2.0.0 side-channel: 1.0.4 - dev: true /interpret/1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} @@ -8306,7 +8494,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-array-buffer/3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} @@ -8314,7 +8501,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true /is-arrayish/0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -8328,7 +8514,6 @@ packages: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} dependencies: has-bigints: 1.0.2 - dev: true /is-binary-path/2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} @@ -8343,7 +8528,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-builtin-module/3.2.1: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} @@ -8355,7 +8539,6 @@ packages: /is-callable/1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: true /is-core-module/2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} @@ -8367,13 +8550,16 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-docker/2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true + /is-electron/2.2.2: + resolution: {integrity: sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==} + dev: false + /is-extglob/1.0.0: resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} engines: {node: '>=0.10.0'} @@ -8439,6 +8625,10 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: true + /is-map/2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: false + /is-nan/1.3.2: resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} engines: {node: '>= 0.4'} @@ -8450,14 +8640,12 @@ packages: /is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} - dev: true /is-number-object/1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} @@ -8512,7 +8700,6 @@ packages: dependencies: call-bind: 1.0.5 has-tostringtag: 1.0.0 - dev: true /is-retry-allowed/1.2.0: resolution: {integrity: sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==} @@ -8526,11 +8713,14 @@ packages: scoped-regex: 2.1.0 dev: true + /is-set/2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: false + /is-shared-array-buffer/1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.5 - dev: true /is-stream/1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} @@ -8546,21 +8736,18 @@ packages: engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 - dev: true /is-symbol/1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 - dev: true /is-typed-array/1.1.12: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} dependencies: which-typed-array: 1.1.13 - dev: true /is-typedarray/1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} @@ -8585,7 +8772,6 @@ packages: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.5 - dev: true /is-windows/1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} @@ -8606,7 +8792,6 @@ packages: /isarray/2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true /isbinaryfile/4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} @@ -8724,6 +8909,17 @@ packages: istanbul-lib-report: 3.0.1 dev: true + /iterate-iterator/1.0.2: + resolution: {integrity: sha512-t91HubM4ZDQ70M9wqp+pcNpu8OyJ9UAtXntT/Bcsvp5tZMnz9vRa+IunKXeI8AnfZMTv0jNuVEmGeLSMjVvfPw==} + dev: false + + /iterate-value/1.0.2: + resolution: {integrity: sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==} + dependencies: + es-get-iterator: 1.1.3 + iterate-iterator: 1.0.2 + dev: false + /jackspeak/2.3.6: resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} engines: {node: '>=14'} @@ -9554,6 +9750,22 @@ packages: resolution: {integrity: sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==} dev: false + /jsonwebtoken/9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.5.4 + dev: false + /just-diff-apply/5.5.0: resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} dev: true @@ -9569,6 +9781,21 @@ packages: /just-extend/4.2.1: resolution: {integrity: sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==} + /jwa/1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + dev: false + + /jws/3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + dev: false + /keyv/4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: @@ -9728,6 +9955,10 @@ packages: resolution: {integrity: sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==} dev: false + /lodash.includes/4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + dev: false + /lodash.isboolean/3.0.3: resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} dev: false @@ -9740,10 +9971,26 @@ packages: resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} dev: false + /lodash.isinteger/4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + dev: false + /lodash.isnil/4.0.0: resolution: {integrity: sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==} dev: false + /lodash.isnumber/3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + dev: false + + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: false + + /lodash.isstring/4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + dev: false + /lodash.isundefined/3.0.1: resolution: {integrity: sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==} dev: false @@ -9760,6 +10007,10 @@ packages: resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} dev: true + /lodash.once/4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + dev: false + /lodash.padend/4.6.1: resolution: {integrity: sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==} dev: true @@ -10932,12 +11183,8 @@ packages: resolution: {integrity: sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==} dev: true - /object-inspect/1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - /object-inspect/1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true /object-is/1.1.5: resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} @@ -10950,7 +11197,6 @@ packages: /object-keys/1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true /object-to-spawn-args/2.0.1: resolution: {integrity: sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==} @@ -10969,7 +11215,6 @@ packages: define-properties: 1.2.1 has-symbols: 1.0.3 object-keys: 1.1.1 - dev: true /object.fromentries/2.0.7: resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} @@ -11329,6 +11574,11 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} + /p-cancelable/1.1.0: + resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} + engines: {node: '>=6'} + dev: false + /p-cancelable/2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -11337,7 +11587,6 @@ packages: /p-finally/1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} - dev: true /p-is-promise/3.0.0: resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} @@ -11397,20 +11646,31 @@ packages: aggregate-error: 3.1.0 dev: true + /p-queue/2.4.2: + resolution: {integrity: sha512-n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==} + engines: {node: '>=4'} + dev: false + /p-queue/6.6.2: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} dependencies: eventemitter3: 4.0.7 p-timeout: 3.2.0 - dev: true + + /p-retry/4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + dev: false /p-timeout/3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} dependencies: p-finally: 1.0.0 - dev: true /p-transform/1.3.0: resolution: {integrity: sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg==} @@ -11639,6 +11899,10 @@ packages: dependencies: isarray: 0.0.1 + /path-to-regexp/6.2.1: + resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + dev: false + /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} @@ -11691,6 +11955,12 @@ packages: find-up: 3.0.0 dev: false + /please-upgrade-node/3.2.0: + resolution: {integrity: sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==} + dependencies: + semver-compare: 1.0.0 + dev: false + /pluralize/8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -11816,6 +12086,18 @@ packages: retry: 0.12.0 dev: true + /promise.allsettled/1.0.7: + resolution: {integrity: sha512-hezvKvQQmsFkOdrZfYxUxkyxl8mgFQeT259Ajj9PXdbg9VzBCWrItOev72JyWxkCD5VSSqAeHmlN3tWx4DlmsA==} + engines: {node: '>= 0.4'} + dependencies: + array.prototype.map: 1.0.6 + call-bind: 1.0.5 + define-properties: 1.2.1 + es-abstract: 1.22.3 + get-intrinsic: 1.2.2 + iterate-value: 1.0.2 + dev: false + /prompt/1.3.0: resolution: {integrity: sha512-ZkaRWtaLBZl7KKAKndKYUL8WqNT+cQHKRZnT4RYYms48jQkFw3rrBL+/N5K/KtdEveHkxs982MX2BkDKub2ZMg==} engines: {node: '>= 6.0.0'} @@ -12122,7 +12404,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 set-function-name: 2.0.1 - dev: true /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} @@ -12240,7 +12521,6 @@ packages: /retry/0.13.1: resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} engines: {node: '>= 4'} - dev: true /reusify/1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} @@ -12310,7 +12590,6 @@ packages: get-intrinsic: 1.2.2 has-symbols: 1.0.3 isarray: 2.0.5 - dev: true /safe-buffer/5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -12324,7 +12603,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-regex: 1.1.4 - dev: true /safe-regex/2.1.1: resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} @@ -12356,6 +12634,10 @@ packages: engines: {node: '>=8'} dev: true + /semver-compare/1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + dev: false + /semver/5.7.2: resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true @@ -12432,7 +12714,6 @@ packages: define-data-property: 1.1.1 functions-have-names: 1.2.3 has-property-descriptors: 1.0.1 - dev: true /setprototypeof/1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -12483,7 +12764,7 @@ packages: dependencies: call-bind: 1.0.5 get-intrinsic: 1.2.2 - object-inspect: 1.12.3 + object-inspect: 1.13.1 /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -12744,6 +13025,13 @@ packages: transitivePeerDependencies: - supports-color + /stop-iteration-iterator/1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.6 + dev: false + /stream-connect/1.0.2: resolution: {integrity: sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==} engines: {node: '>=0.10.0'} @@ -12805,7 +13093,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trimend/1.0.7: resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} @@ -12813,7 +13100,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string.prototype.trimstart/1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} @@ -12821,7 +13107,6 @@ packages: call-bind: 1.0.5 define-properties: 1.2.1 es-abstract: 1.22.3 - dev: true /string_decoder/1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -13401,6 +13686,11 @@ packages: /tslib/2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tsscmp/1.0.6: + resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} + engines: {node: '>=0.6.x'} + dev: false + /tsutils/3.21.0_typescript@4.9.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -13473,7 +13763,6 @@ packages: call-bind: 1.0.5 get-intrinsic: 1.2.2 is-typed-array: 1.1.12 - dev: true /typed-array-byte-length/1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} @@ -13483,7 +13772,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-byte-offset/1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} @@ -13494,7 +13782,6 @@ packages: for-each: 0.3.3 has-proto: 1.0.1 is-typed-array: 1.1.12 - dev: true /typed-array-length/1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} @@ -13502,7 +13789,6 @@ packages: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 - dev: true /typedarray-to-buffer/3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -13553,7 +13839,6 @@ packages: has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 - dev: true /underscore/1.13.6: resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} @@ -13852,7 +14137,6 @@ packages: is-number-object: 1.0.7 is-string: 1.0.7 is-symbol: 1.0.4 - dev: true /which-module/2.0.1: resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} @@ -13875,7 +14159,6 @@ packages: for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.0 - dev: true /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} @@ -14011,6 +14294,19 @@ packages: signal-exit: 3.0.7 dev: true + /ws/7.5.9: + resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + dev: false + /ws/8.15.0: resolution: {integrity: sha512-H/Z3H55mrcrgjFwI+5jKavgXvwQLtfPCUEp6pi35VhoB0pfcHnSoyuTzkBEZpzq49g1193CUEwIvmsjcotenYw==} engines: {node: '>=10.0.0'} From f3063c5200c2f55838972e4f37d6ed5ccace6f4a Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Thu, 8 Feb 2024 11:19:35 +0530 Subject: [PATCH 05/15] feat: replaced taxonomy & terms create api with taxonomy import --- package-lock.json | 114 ++++++++++- .../src/export/modules/taxonomies.ts | 2 +- packages/contentstack-import/README.md | 2 +- packages/contentstack-import/package.json | 2 +- .../contentstack-import/src/config/index.ts | 6 +- .../src/import/modules/base-class.ts | 21 +- .../src/import/modules/taxonomies.ts | 182 ++++-------------- .../src/types/default-config.ts | 5 - .../contentstack-import/src/types/index.ts | 6 - .../src/utils/taxonomies-helper.ts | 20 +- packages/contentstack/package.json | 2 +- pnpm-lock.yaml | 168 +++++++++++++++- 12 files changed, 341 insertions(+), 189 deletions(-) diff --git a/package-lock.json b/package-lock.json index 98223696b4..a5bdc22f24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23994,7 +23994,7 @@ "@contentstack/cli-cm-clone": "~1.10.0", "@contentstack/cli-cm-export": "~1.11.0", "@contentstack/cli-cm-export-to-csv": "~1.6.2", - "@contentstack/cli-cm-import": "~1.13.3", + "@contentstack/cli-cm-import": "~1.14.0", "@contentstack/cli-cm-migrate-rte": "~1.4.15", "@contentstack/cli-cm-seed": "~1.7.1", "@contentstack/cli-command": "~1.2.17", @@ -24594,6 +24594,61 @@ "node": ">=14.0.0" } }, + "packages/contentstack-clone/node_modules/@contentstack/cli-cm-import": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-import/-/cli-cm-import-1.13.3.tgz", + "integrity": "sha512-W2A6frSuK8p9fS1S6VXRo9xOj4fv09h+VnHGmtYhRGa3GdAbAZZdCKq+g/uUAn9HbwEvuxgZIpAJignOYYYxeg==", + "dependencies": { + "@contentstack/cli-audit": "^1.3.3", + "@contentstack/cli-command": "~1.2.16", + "@contentstack/cli-utilities": "~1.5.11", + "@contentstack/management": "~1.13.0", + "@oclif/core": "^2.9.3", + "big-json": "^3.2.0", + "bluebird": "^3.7.2", + "chalk": "^4.1.2", + "debug": "^4.1.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.20", + "marked": "^4.0.17", + "merge": "^2.1.1", + "mkdirp": "^1.0.4", + "promise-limit": "^2.7.0", + "tslib": "^2.4.1", + "uuid": "^9.0.0", + "winston": "^3.7.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "packages/contentstack-clone/node_modules/@contentstack/management": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.13.0.tgz", + "integrity": "sha512-zVApJ9dpZTq6yBvSTdwrTjPxe20PiXy9x5CGU49by2n1V7hWhsKtSpcIK+Fx9jylYfYU4SEM/HQIKq/i0roMew==", + "dependencies": { + "axios": "^1.6.0", + "form-data": "^3.0.1", + "lodash": "^4.17.21", + "qs": "^6.11.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "packages/contentstack-clone/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "packages/contentstack-clone/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -25463,7 +25518,7 @@ }, "packages/contentstack-import": { "name": "@contentstack/cli-cm-import", - "version": "1.13.3", + "version": "1.14.0", "license": "MIT", "dependencies": { "@contentstack/cli-audit": "^1.3.5", @@ -25974,6 +26029,48 @@ "node": ">=14.0.0" } }, + "packages/contentstack-seed/node_modules/@contentstack/cli-cm-import": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-import/-/cli-cm-import-1.13.3.tgz", + "integrity": "sha512-W2A6frSuK8p9fS1S6VXRo9xOj4fv09h+VnHGmtYhRGa3GdAbAZZdCKq+g/uUAn9HbwEvuxgZIpAJignOYYYxeg==", + "dependencies": { + "@contentstack/cli-audit": "^1.3.3", + "@contentstack/cli-command": "~1.2.16", + "@contentstack/cli-utilities": "~1.5.11", + "@contentstack/management": "~1.13.0", + "@oclif/core": "^2.9.3", + "big-json": "^3.2.0", + "bluebird": "^3.7.2", + "chalk": "^4.1.2", + "debug": "^4.1.0", + "fs-extra": "^11.1.1", + "lodash": "^4.17.20", + "marked": "^4.0.17", + "merge": "^2.1.1", + "mkdirp": "^1.0.4", + "promise-limit": "^2.7.0", + "tslib": "^2.4.1", + "uuid": "^9.0.0", + "winston": "^3.7.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "packages/contentstack-seed/node_modules/@contentstack/management": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.13.0.tgz", + "integrity": "sha512-zVApJ9dpZTq6yBvSTdwrTjPxe20PiXy9x5CGU49by2n1V7hWhsKtSpcIK+Fx9jylYfYU4SEM/HQIKq/i0roMew==", + "dependencies": { + "axios": "^1.6.0", + "form-data": "^3.0.1", + "lodash": "^4.17.21", + "qs": "^6.11.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, "packages/contentstack-seed/node_modules/@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", @@ -25989,6 +26086,19 @@ "node": ">=0.3.1" } }, + "packages/contentstack-seed/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "packages/contentstack-seed/node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", diff --git a/packages/contentstack-export/src/export/modules/taxonomies.ts b/packages/contentstack-export/src/export/modules/taxonomies.ts index 19edb40c3f..12c88f6b55 100644 --- a/packages/contentstack-export/src/export/modules/taxonomies.ts +++ b/packages/contentstack-export/src/export/modules/taxonomies.ts @@ -44,7 +44,7 @@ export default class ExportTaxonomies extends BaseClass { await this.exportTaxonomies(); } - log(this.exportConfig, `Taxonomies exported!`, 'success'); + log(this.exportConfig, `All taxonomies exported successfully!`, 'success'); } /** diff --git a/packages/contentstack-import/README.md b/packages/contentstack-import/README.md index ca6fe2c3ff..79bb066471 100644 --- a/packages/contentstack-import/README.md +++ b/packages/contentstack-import/README.md @@ -47,7 +47,7 @@ $ npm install -g @contentstack/cli-cm-import $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-import/1.13.3 darwin-arm64 node-v20.8.0 +@contentstack/cli-cm-import/1.14.0 darwin-arm64 node-v20.8.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index bb87834681..2999401113 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-import", "description": "Contentstack CLI plugin to import content into stack", - "version": "1.13.3", + "version": "1.14.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-import/src/config/index.ts b/packages/contentstack-import/src/config/index.ts index 80ceffdcd8..3ce1294bae 100644 --- a/packages/contentstack-import/src/config/index.ts +++ b/packages/contentstack-import/src/config/index.ts @@ -148,11 +148,7 @@ const config: DefaultConfig = { taxonomies: { dirName: 'taxonomies', fileName: 'taxonomies.json', - }, - terms: { - dirName: 'terms', - fileName: 'terms.json', - }, + } }, languagesCode: [ 'af-za', diff --git a/packages/contentstack-import/src/import/modules/base-class.ts b/packages/contentstack-import/src/import/modules/base-class.ts index d4a69296c9..4fd3d6a70b 100644 --- a/packages/contentstack-import/src/import/modules/base-class.ts +++ b/packages/contentstack-import/src/import/modules/base-class.ts @@ -11,8 +11,6 @@ import { LocaleData } from '@contentstack/management/types/stack/locale'; import { PublishConfig } from '@contentstack/management/types/utility/publish'; import { FolderData } from '@contentstack/management/types/stack/asset/folder'; import { ExtensionData } from '@contentstack/management/types/stack/extension'; -import { GlobalFieldData } from '@contentstack/management/types/stack/globalField'; -import { ContentTypeData } from '@contentstack/management/types/stack/contentType'; import { EnvironmentData } from '@contentstack/management/types/stack/environment'; import { LabelData } from '@contentstack/management/types/stack/label'; import { WebhookData } from '@contentstack/management/types/stack/webhook'; @@ -50,7 +48,8 @@ export type ApiModuleType = | 'publish-entries' | 'delete-entries' | 'create-taxonomies' - | 'create-terms'; + | 'create-terms' + | 'import-taxonomy'; export type ApiOptions = { uid?: string; @@ -387,14 +386,14 @@ export default abstract class BaseClass { case 'create-taxonomies': return this.stack.taxonomy().create({ taxonomy: apiData }).then(onSuccess).catch(onReject); case 'create-terms': - if (apiData?.taxonomy_uid) { - return this.stack - .taxonomy(apiData.taxonomy_uid) - .terms() - .create({ term: apiData }) - .then(onSuccess) - .catch(onReject); - } + return this.stack + .taxonomy(apiData.taxonomy_uid) + .terms() + .create({ term: apiData }) + .then(onSuccess) + .catch(onReject); + case 'import-taxonomy': + return this.stack.taxonomy(uid).import({ taxonomy: apiData.filePath }).then(onSuccess).catch(onReject); default: return Promise.resolve(); } diff --git a/packages/contentstack-import/src/import/modules/taxonomies.ts b/packages/contentstack-import/src/import/modules/taxonomies.ts index 5c1e320d12..29ee6fb793 100644 --- a/packages/contentstack-import/src/import/modules/taxonomies.ts +++ b/packages/contentstack-import/src/import/modules/taxonomies.ts @@ -1,12 +1,10 @@ -import keys from 'lodash/keys'; -import pick from 'lodash/pick'; import { join } from 'node:path'; import values from 'lodash/values'; import isEmpty from 'lodash/isEmpty'; import BaseClass, { ApiOptions } from './base-class'; import { log, formatError, fsUtil, fileHelper } from '../../utils'; -import { ModuleClassParams, TaxonomiesConfig, TermsConfig } from '../../types'; +import { ModuleClassParams, TaxonomiesConfig } from '../../types'; export default class ImportTaxonomies extends BaseClass { private taxonomiesMapperDirPath: string; @@ -15,26 +13,20 @@ export default class ImportTaxonomies extends BaseClass { private taxFailsPath: string; private taxonomiesConfig: TaxonomiesConfig; private taxonomies: Record; - private termsFolderPath: string; private termsMapperDirPath: string; - private termsConfig: TermsConfig; private termsSuccessPath: string; private termsFailsPath: string; - public taxonomiesSuccess: Record = {}; - public taxonomiesFailed: Record = {}; - public termsSuccess: Record> = {}; - public termsFailed: Record> = {}; - public terms: Record = []; - public taxonomyUIDs: string[] = []; + public createdTaxonomies: Record = {}; + public failedTaxonomies: Record = {}; + public createdTerms: Record> = {}; + public failedTerms: Record> = {}; constructor({ importConfig, stackAPIClient }: ModuleClassParams) { super({ importConfig, stackAPIClient }); this.taxonomiesConfig = importConfig.modules.taxonomies; - this.termsConfig = importConfig.modules.terms; this.taxonomiesMapperDirPath = join(importConfig.backupDir, 'mapper', 'taxonomies'); this.termsMapperDirPath = join(this.taxonomiesMapperDirPath, 'terms'); this.taxonomiesFolderPath = join(importConfig.backupDir, this.taxonomiesConfig.dirName); - this.termsFolderPath = join(this.taxonomiesFolderPath, this.termsConfig.dirName); this.taxSuccessPath = join(this.taxonomiesMapperDirPath, 'success.json'); this.taxFailsPath = join(this.taxonomiesMapperDirPath, 'fails.json'); this.termsSuccessPath = join(this.termsMapperDirPath, 'success.json'); @@ -62,18 +54,10 @@ export default class ImportTaxonomies extends BaseClass { //Step 2 create taxonomies & terms mapper directory await fsUtil.makeDirectory(this.taxonomiesMapperDirPath); await fsUtil.makeDirectory(this.termsMapperDirPath); - - //Step 3 import taxonomy and create success & failure file + // Step 3 import taxonomies await this.importTaxonomies(); - this.createTaxonomySuccessAndFailedFile(); - - if (!fileHelper.fileExistsSync(this.termsFolderPath)) { - log(this.importConfig, `No such file or directory - '${this.termsFolderPath}'`, 'error'); - return; - } - //Step 4 import terms and create success & failure file - await this.importTerms(); - this.createTermSuccessAndFailedFile(); + //Step 4 create taxonomy & related terms success & failure file + this.createSuccessAndFailedFile(); log(this.importConfig, 'Taxonomies imported successfully!', 'success'); } @@ -90,25 +74,25 @@ export default class ImportTaxonomies extends BaseClass { return; } - const apiContent = values(this.taxonomies) as Record[]; - this.taxonomyUIDs = keys(this.taxonomies); + const apiContent = values(this.taxonomies); - const onSuccess = ({ response }: any) => { - const { uid } = response; - this.taxonomiesSuccess[uid] = pick(response, ['name', 'description']); - log(this.importConfig, `Taxonomy '${uid}' imported successfully!`, 'success'); + const onSuccess = ({ apiData }: any) => { + const taxonomyUID = apiData?.taxonomy?.uid; + this.createdTaxonomies[taxonomyUID] = apiData?.taxonomy; + this.createdTerms[taxonomyUID] = apiData?.terms; + log(this.importConfig, `Taxonomy '${taxonomyUID}' imported successfully!`, 'success'); }; const onReject = ({ error, apiData }: any) => { const err = error?.message ? JSON.parse(error.message) : error; - const { uid } = apiData; + const taxonomyUID = apiData?.taxonomy?.uid; if (err?.errors?.taxonomy) { - this.taxonomiesFailed[uid] = apiData; - log(this.importConfig, `Taxonomy '${uid}' failed to be import! ${err.errors.taxonomy}`, 'error'); + log(this.importConfig, `Taxonomy '${taxonomyUID}' failed to be import! ${err.errors.taxonomy}`, 'error'); } else { - this.taxonomiesFailed[apiData.uid] = apiData; - log(this.importConfig, `Taxonomy '${uid}' failed to be import! ${formatError(error)}`, 'error'); + log(this.importConfig, `Taxonomy '${taxonomyUID}' failed to be import! ${formatError(error)}`, 'error'); } + this.failedTaxonomies[taxonomyUID] = apiData?.taxonomy; + this.failedTerms[taxonomyUID] = apiData?.terms; }; await this.makeConcurrentCall( @@ -119,7 +103,7 @@ export default class ImportTaxonomies extends BaseClass { serializeData: this.serializeTaxonomy.bind(this), reject: onReject, resolve: onSuccess, - entity: 'create-taxonomies', + entity: 'import-taxonomy', includeParamOnCompletion: true, }, concurrencyLimit: this.importConfig.concurrency || this.importConfig.fetchConcurrency || 1, @@ -135,124 +119,38 @@ export default class ImportTaxonomies extends BaseClass { * @returns {ApiOptions} ApiOptions */ serializeTaxonomy(apiOptions: ApiOptions): ApiOptions { - const { apiData: taxonomy } = apiOptions; - apiOptions.apiData = taxonomy; + const { apiData } = apiOptions; + const filePath = join(this.taxonomiesFolderPath, `${apiData?.uid}.json`); + if (fileHelper.fileExistsSync(filePath)) { + const taxonomyDetails = fsUtil.readFile(filePath, true) as Record; + apiOptions.apiData = { filePath, taxonomy: taxonomyDetails?.taxonomy, terms: taxonomyDetails?.terms }; + } else { + log(this.importConfig, `No such file - ${filePath}`, 'error'); + apiOptions.apiData = undefined; + } return apiOptions; } /** * create taxonomies success and fail in (mapper/taxonomies) - * @method createTaxonomySuccessAndFailedFile + * create terms success and fail in (mapper/taxonomies/terms) + * @method createSuccessAndFailedFile */ - createTaxonomySuccessAndFailedFile() { - if (this.taxonomiesSuccess !== undefined && !isEmpty(this.taxonomiesSuccess)) { - fsUtil.writeFile(this.taxSuccessPath, this.taxonomiesSuccess); + createSuccessAndFailedFile() { + if (this.createdTaxonomies !== undefined && !isEmpty(this.createdTaxonomies)) { + fsUtil.writeFile(this.taxSuccessPath, this.createdTaxonomies); } - if (this.taxonomiesFailed !== undefined && !isEmpty(this.taxonomiesFailed)) { - fsUtil.writeFile(this.taxFailsPath, this.taxonomiesFailed); - } - } - - /** - * create terms and enter success & failure related data into terms mapper file - * @method importTerms - * @async - * @returns {Promise} Promise - */ - async importTerms(): Promise { - if (!this.taxonomyUIDs?.length) { - return; + if (this.failedTaxonomies !== undefined && !isEmpty(this.failedTaxonomies)) { + fsUtil.writeFile(this.taxFailsPath, this.failedTaxonomies); } - const onSuccess = ({ response, apiData: { taxonomy_uid } = { taxonomy_uid: null } }: any) => { - const { uid } = response; - if (!this.termsSuccess?.[taxonomy_uid]) this.termsSuccess[taxonomy_uid] = {}; - this.termsSuccess[taxonomy_uid][uid] = pick(response, ['name']); - log(this.importConfig, `Term '${uid}' imported successfully!`, 'success'); - }; - - const onReject = ({ error, apiData }: any) => { - const { taxonomy_uid, uid } = apiData; - if (!this.termsFailed?.[taxonomy_uid]) this.termsFailed[taxonomy_uid] = {}; - const err = error?.message ? JSON.parse(error.message) : error; - - if (err?.errors?.term) { - this.termsFailed[taxonomy_uid][uid] = apiData; - log(this.importConfig, `Term '${uid}' failed to be import! ${err.errors.term}`, 'error'); - } else { - this.termsFailed[taxonomy_uid][uid] = apiData; - log(this.importConfig, `Term '${uid}' failed to be import! ${formatError(error)}`, 'error'); - } - }; - - for (const taxUID of this.taxonomyUIDs) { - //read terms from respective taxonomy - this.terms = fsUtil.readFile( - join(this.termsFolderPath, `${taxUID}-${this.termsConfig.fileName}`), - true, - ) as Record; - - if (this.terms?.length) { - const apiContent = this.terms as Record[]; - await this.makeConcurrentCall( - { - apiContent, - processName: 'import terms', - apiParams: { - serializeData: this.serializeTerms.bind(this), - reject: onReject, - resolve: onSuccess, - entity: 'create-terms', - includeParamOnCompletion: true, - }, - concurrencyLimit: this.importConfig.concurrency || this.importConfig.fetchConcurrency || 1, - }, - undefined, - false, - ); - } - } - } - - /** - * @method serializeTerms - * @param {ApiOptions} apiOptions ApiOptions - * @returns {ApiOptions} ApiOptions - */ - serializeTerms(apiOptions: ApiOptions): ApiOptions { - const { apiData: term } = apiOptions; - const {parent_uid, taxonomy_uid} = term; - - //check whether parent term exists or not in taxonomy - if (parent_uid !== null) { - if (!this.termsSuccess?.[taxonomy_uid]?.[parent_uid]) { - log( - this.importConfig, - `Parent term '${term?.parent_uid}' does not exist! Skipping '${term.uid}' creation to avoid further issues.`, - 'info', - ); - apiOptions.apiData = undefined; - } else { - apiOptions.apiData = term; - } - } else { - apiOptions.apiData = term; - } - return apiOptions; - } - - /** - * create terms success and fail in (mapper/taxonomies/terms) - * @method createTermSuccessAndFailedFile - */ - createTermSuccessAndFailedFile() { - if (this.termsSuccess !== undefined && !isEmpty(this.termsSuccess)) { - fsUtil.writeFile(this.termsSuccessPath, this.termsSuccess); + if (this.createdTerms !== undefined && !isEmpty(this.createdTerms)) { + fsUtil.writeFile(this.termsSuccessPath, this.createdTerms); } - if (this.termsFailed !== undefined && !isEmpty(this.termsFailed)) { - fsUtil.writeFile(this.termsFailsPath, this.termsFailed); + if (this.failedTerms !== undefined && !isEmpty(this.failedTerms)) { + fsUtil.writeFile(this.termsFailsPath, this.failedTerms); } } } diff --git a/packages/contentstack-import/src/types/default-config.ts b/packages/contentstack-import/src/types/default-config.ts index 9242d5b2bf..0b5358e647 100644 --- a/packages/contentstack-import/src/types/default-config.ts +++ b/packages/contentstack-import/src/types/default-config.ts @@ -118,11 +118,6 @@ export default interface DefaultConfig { fileName: string; dependencies?: Modules[]; }; - terms: { - dirName: string; - fileName: string; - dependencies?: Modules[]; - }; }; languagesCode: string[]; apis: { diff --git a/packages/contentstack-import/src/types/index.ts b/packages/contentstack-import/src/types/index.ts index 5a570afac3..c0346bcdc7 100644 --- a/packages/contentstack-import/src/types/index.ts +++ b/packages/contentstack-import/src/types/index.ts @@ -96,12 +96,6 @@ export interface TaxonomiesConfig{ dependencies?: Modules[]; } -export interface TermsConfig{ - dirName: string; - fileName: string; - dependencies?: Modules[]; -} - export { default as DefaultConfig } from './default-config'; export { default as ImportConfig } from './import-config'; diff --git a/packages/contentstack-import/src/utils/taxonomies-helper.ts b/packages/contentstack-import/src/utils/taxonomies-helper.ts index 09755fc2e2..9095cd373a 100644 --- a/packages/contentstack-import/src/utils/taxonomies-helper.ts +++ b/packages/contentstack-import/src/utils/taxonomies-helper.ts @@ -1,6 +1,7 @@ /** * taxonomy lookup */ +import find from 'lodash/find'; import { log } from './'; import { ImportConfig } from '../types'; @@ -63,11 +64,7 @@ const verifyAndRemoveTaxonomy = function ( } if (!taxonomyFieldData?.length) { - log( - importConfig, - 'Taxonomy does not exist. Removing the field from content type', - 'warn', - ); + log(importConfig, 'Taxonomy does not exist. Removing the field from content type', 'warn'); isTaxonomyFieldRemoved = true; } @@ -94,7 +91,12 @@ export const lookUpTerms = function ( if (ctSchema[index].data_type === 'taxonomy') { const taxonomyFieldData = entry[ctSchema[index].uid]; const updatedTaxonomyData = verifyAndRemoveTerms(taxonomyFieldData, taxonomiesAndTermData, importConfig); - entry[ctSchema[index].uid] = updatedTaxonomyData; + if (updatedTaxonomyData?.length) { + entry[ctSchema[index].uid] = updatedTaxonomyData; + } else { + //Delete taxonomy from entry if taxonomy field removed from CT + delete entry[ctSchema[index].uid]; + } } } }; @@ -115,11 +117,11 @@ const verifyAndRemoveTerms = function ( const taxonomyData = taxonomyFieldData[index]; const taxUID = taxonomyData?.taxonomy_uid; const termUID = taxonomyData?.term_uid; - if ( taxonomiesAndTermData === undefined || !taxonomiesAndTermData.hasOwnProperty(taxUID) || - (taxonomiesAndTermData.hasOwnProperty(taxUID) && !taxonomiesAndTermData[taxUID].hasOwnProperty(termUID)) + (taxonomiesAndTermData.hasOwnProperty(taxUID) && + !find(taxonomiesAndTermData[taxUID], (term: Record) => term?.uid === termUID)) ) { // remove term from taxonomies field data with warning if respective term doesn't exists log(importConfig, `Term '${termUID}' does not exist. Removing it from taxonomy - '${taxUID}'`, 'warn'); @@ -129,4 +131,4 @@ const verifyAndRemoveTerms = function ( } return taxonomyFieldData; -}; \ No newline at end of file +}; diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 5b95ee278b..14e7e6539e 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -30,7 +30,7 @@ "@contentstack/cli-cm-export": "~1.11.0", "@contentstack/cli-cm-clone": "~1.10.0", "@contentstack/cli-cm-export-to-csv": "~1.6.2", - "@contentstack/cli-cm-import": "~1.13.3", + "@contentstack/cli-cm-import": "~1.14.0", "@contentstack/cli-cm-migrate-rte": "~1.4.15", "@contentstack/cli-cm-seed": "~1.7.1", "@contentstack/cli-command": "~1.2.17", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 02ae006208..9afa416050 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: '@contentstack/cli-cm-clone': ~1.10.0 '@contentstack/cli-cm-export': ~1.11.0 '@contentstack/cli-cm-export-to-csv': ~1.6.2 - '@contentstack/cli-cm-import': ~1.13.3 + '@contentstack/cli-cm-import': ~1.14.0 '@contentstack/cli-cm-migrate-rte': ~1.4.15 '@contentstack/cli-cm-seed': ~1.7.1 '@contentstack/cli-command': ~1.2.17 @@ -451,7 +451,7 @@ importers: dependencies: '@colors/colors': 1.6.0 '@contentstack/cli-cm-export': 1.10.4 - '@contentstack/cli-cm-import': link:../contentstack-import + '@contentstack/cli-cm-import': 1.13.3 '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-utilities': link:../contentstack-utilities async: 3.2.5 @@ -1016,7 +1016,7 @@ importers: tslib: ^2.4.1 typescript: ^4.9.3 dependencies: - '@contentstack/cli-cm-import': link:../contentstack-import + '@contentstack/cli-cm-import': 1.13.3_ogreqof3k35xezedraj6pnd45y '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-utilities': link:../contentstack-utilities inquirer: 8.2.4 @@ -1572,6 +1572,54 @@ packages: engines: {node: '>=0.1.90'} dev: false + /@contentstack/cli-audit/1.3.4: + resolution: {integrity: sha512-IFcCiAVXiceCb7A/jvcO0n+BFUYO2riA8ZcIzUyEIY4N82JGiHAAYJhtAbnTUTHrS/Dg3q6Kh3euAETSTmS5IA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + '@contentstack/cli-command': 1.2.17 + '@contentstack/cli-utilities': 1.5.11 + '@oclif/plugin-help': 5.2.20 + '@oclif/plugin-plugins': 4.1.10 + chalk: 4.1.2 + fast-csv: 4.3.6 + fs-extra: 11.2.0 + lodash: 4.17.21 + uuid: 9.0.1 + winston: 3.11.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + + /@contentstack/cli-audit/1.3.4_ogreqof3k35xezedraj6pnd45y: + resolution: {integrity: sha512-IFcCiAVXiceCb7A/jvcO0n+BFUYO2riA8ZcIzUyEIY4N82JGiHAAYJhtAbnTUTHrS/Dg3q6Kh3euAETSTmS5IA==} + engines: {node: '>=16'} + hasBin: true + dependencies: + '@contentstack/cli-command': 1.2.17_ogreqof3k35xezedraj6pnd45y + '@contentstack/cli-utilities': 1.5.11_ogreqof3k35xezedraj6pnd45y + '@oclif/plugin-help': 5.2.20_ogreqof3k35xezedraj6pnd45y + '@oclif/plugin-plugins': 4.1.10 + chalk: 4.1.2 + fast-csv: 4.3.6 + fs-extra: 11.2.0 + lodash: 4.17.21 + uuid: 9.0.1 + winston: 3.11.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + /@contentstack/cli-cm-export/1.10.4: resolution: {integrity: sha512-t9bDER2DIUzQPCwtzQDmcKkHBW0Cc8xAXj7eWcqMsEhZSyDQSbDdhbel5/8jpDXkEhpfaJJByQrNvgz43/+EmQ==} engines: {node: '>=14.0.0'} @@ -1602,6 +1650,68 @@ packages: - typescript dev: false + /@contentstack/cli-cm-import/1.13.3: + resolution: {integrity: sha512-W2A6frSuK8p9fS1S6VXRo9xOj4fv09h+VnHGmtYhRGa3GdAbAZZdCKq+g/uUAn9HbwEvuxgZIpAJignOYYYxeg==} + engines: {node: '>=14.0.0'} + dependencies: + '@contentstack/cli-audit': 1.3.4 + '@contentstack/cli-command': 1.2.17 + '@contentstack/cli-utilities': 1.5.11 + '@contentstack/management': 1.13.0_debug@4.3.4 + '@oclif/core': 2.15.0 + big-json: 3.2.0 + bluebird: 3.7.2 + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 11.2.0 + lodash: 4.17.21 + marked: 4.3.0 + merge: 2.1.1 + mkdirp: 1.0.4 + promise-limit: 2.7.0 + tslib: 2.6.2 + uuid: 9.0.1 + winston: 3.11.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + + /@contentstack/cli-cm-import/1.13.3_ogreqof3k35xezedraj6pnd45y: + resolution: {integrity: sha512-W2A6frSuK8p9fS1S6VXRo9xOj4fv09h+VnHGmtYhRGa3GdAbAZZdCKq+g/uUAn9HbwEvuxgZIpAJignOYYYxeg==} + engines: {node: '>=14.0.0'} + dependencies: + '@contentstack/cli-audit': 1.3.4_ogreqof3k35xezedraj6pnd45y + '@contentstack/cli-command': 1.2.17_ogreqof3k35xezedraj6pnd45y + '@contentstack/cli-utilities': 1.5.11_ogreqof3k35xezedraj6pnd45y + '@contentstack/management': 1.13.0_debug@4.3.4 + '@oclif/core': 2.15.0_ogreqof3k35xezedraj6pnd45y + big-json: 3.2.0 + bluebird: 3.7.2 + chalk: 4.1.2 + debug: 4.3.4 + fs-extra: 11.2.0 + lodash: 4.17.21 + marked: 4.3.0 + merge: 2.1.1 + mkdirp: 1.0.4 + promise-limit: 2.7.0 + tslib: 2.6.2 + uuid: 9.0.1 + winston: 3.11.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + /@contentstack/cli-command/1.2.17: resolution: {integrity: sha512-z5DWK+S+fRAXIZc0eZH1aw/Vb84wqICzYlGi4nKtov56H7QMWHwb+dORmzQvBHCUjbT/5/cZc6wpBZkebAUc7Q==} engines: {node: '>=14.0.0'} @@ -1617,6 +1727,21 @@ packages: - typescript dev: false + /@contentstack/cli-command/1.2.17_ogreqof3k35xezedraj6pnd45y: + resolution: {integrity: sha512-z5DWK+S+fRAXIZc0eZH1aw/Vb84wqICzYlGi4nKtov56H7QMWHwb+dORmzQvBHCUjbT/5/cZc6wpBZkebAUc7Q==} + engines: {node: '>=14.0.0'} + dependencies: + '@contentstack/cli-utilities': 1.5.11_ogreqof3k35xezedraj6pnd45y + contentstack: 3.17.2 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - encoding + - supports-color + - typescript + dev: false + /@contentstack/cli-utilities/1.5.11: resolution: {integrity: sha512-+gdau9VVnYS5ho+EexZEB6d6KcWXnYn5/RQJM4qka6i/sTtYrNEzrxD3/JHDtbdU/wx9TurgXq41TjeE5FJknw==} dependencies: @@ -1652,6 +1777,41 @@ packages: - typescript dev: false + /@contentstack/cli-utilities/1.5.11_ogreqof3k35xezedraj6pnd45y: + resolution: {integrity: sha512-+gdau9VVnYS5ho+EexZEB6d6KcWXnYn5/RQJM4qka6i/sTtYrNEzrxD3/JHDtbdU/wx9TurgXq41TjeE5FJknw==} + dependencies: + '@contentstack/management': 1.13.0_debug@4.3.4 + '@contentstack/marketplace-sdk': 1.0.1_debug@4.3.4 + '@oclif/core': 2.15.0_ogreqof3k35xezedraj6pnd45y + axios: 1.6.5_debug@4.3.4 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-table: 0.3.11 + conf: 10.2.0 + debug: 4.3.4 + figures: 3.2.0 + inquirer: 8.2.4 + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + klona: 2.0.6 + lodash: 4.17.21 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + rxjs: 6.6.7 + traverse: 0.6.7 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.11.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - '@types/node' + - supports-color + - typescript + dev: false + /@contentstack/json-rte-serializer/2.0.4: resolution: {integrity: sha512-x79OHHHsBSD4eKxkhfnoJLAFLF4sRQzJ8kvVDJtgHzlDNOEp9+A3chCpGxvzARpQlrD29w6sYn6wx4CG4vo9Ig==} dependencies: @@ -2843,7 +3003,6 @@ packages: - '@swc/wasm' - '@types/node' - typescript - dev: true /@oclif/plugin-help/5.2.20_bk3wvsuof3vjc47yunkur62wp4: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} @@ -2867,7 +3026,6 @@ packages: - '@swc/wasm' - '@types/node' - typescript - dev: true /@oclif/plugin-help/5.2.20_typescript@4.9.5: resolution: {integrity: sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ==} From b5bf3dba39e8792230722faee3c068d6a53205d4 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Thu, 8 Feb 2024 15:46:40 +0530 Subject: [PATCH 06/15] fixed indentation --- .../src/import/modules/base-class.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/contentstack-import/src/import/modules/base-class.ts b/packages/contentstack-import/src/import/modules/base-class.ts index 4fd3d6a70b..9e06d0ce14 100644 --- a/packages/contentstack-import/src/import/modules/base-class.ts +++ b/packages/contentstack-import/src/import/modules/base-class.ts @@ -387,11 +387,11 @@ export default abstract class BaseClass { return this.stack.taxonomy().create({ taxonomy: apiData }).then(onSuccess).catch(onReject); case 'create-terms': return this.stack - .taxonomy(apiData.taxonomy_uid) - .terms() - .create({ term: apiData }) - .then(onSuccess) - .catch(onReject); + .taxonomy(apiData.taxonomy_uid) + .terms() + .create({ term: apiData }) + .then(onSuccess) + .catch(onReject); case 'import-taxonomy': return this.stack.taxonomy(uid).import({ taxonomy: apiData.filePath }).then(onSuccess).catch(onReject); default: From 7c9e00829e514982b5f3d88be7b36217ce98ad66 Mon Sep 17 00:00:00 2001 From: Aman Kumar Date: Tue, 13 Feb 2024 12:07:00 +0530 Subject: [PATCH 07/15] feat: replace taxonomy all terms api with export api(CSV format) --- package-lock.json | 157 +--------- packages/contentstack-clone/README.md | 2 +- packages/contentstack-clone/package.json | 6 +- .../src/util/index.js | 167 +++++----- .../test/mock-data/common.mock.json | 3 +- .../test/unit/commands/export-to-csv.test.js | 26 +- packages/contentstack-import/package.json | 2 +- packages/contentstack/README.md | 12 +- packages/contentstack/package.json | 2 +- pnpm-lock.yaml | 294 ++---------------- 10 files changed, 143 insertions(+), 528 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0e68b052c..ac57733933 100644 --- a/package-lock.json +++ b/package-lock.json @@ -883,9 +883,9 @@ } }, "node_modules/@contentstack/management": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.15.1.tgz", - "integrity": "sha512-FAw2NAuDW/3JVbRu4t/BA9POYpKeZNsItTpld/CGJr/OenKbZLJfh527LH3v1Bj+jkhIDP8rIXoyJy4WI/ORVQ==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.15.2.tgz", + "integrity": "sha512-DAgOuG5k6g6OkkQv44O8f6EhzbTxdfwJJa0NHNkEYGkl/FIEHZYakuNG41aVWDbf35Nv3p59UV6Ph4q5kNYg8Q==", "dependencies": { "@slack/bolt": "^3.17.0", "axios": "^1.6.5", @@ -24002,7 +24002,7 @@ "@contentstack/cli-launch": "~1.0.16", "@contentstack/cli-migration": "~1.4.2", "@contentstack/cli-utilities": "~1.5.12", - "@contentstack/management": "~1.15.1", + "@contentstack/management": "~1.15.2", "@oclif/core": "^2.9.3", "@oclif/plugin-help": "^5", "@oclif/plugin-not-found": "^2.4.0", @@ -24531,12 +24531,12 @@ }, "packages/contentstack-clone": { "name": "@contentstack/cli-cm-clone", - "version": "1.10.0", + "version": "1.10.1", "license": "MIT", "dependencies": { "@colors/colors": "^1.5.0", - "@contentstack/cli-cm-export": "~1.10.5", - "@contentstack/cli-cm-import": "~1.13.4", + "@contentstack/cli-cm-export": "~1.11.0", + "@contentstack/cli-cm-import": "~1.14.0", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.12", "async": "^3.2.4", @@ -24567,88 +24567,6 @@ "node": ">=14.0.0" } }, - "packages/contentstack-clone/node_modules/@contentstack/cli-cm-export": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-export/-/cli-cm-export-1.10.4.tgz", - "integrity": "sha512-t9bDER2DIUzQPCwtzQDmcKkHBW0Cc8xAXj7eWcqMsEhZSyDQSbDdhbel5/8jpDXkEhpfaJJByQrNvgz43/+EmQ==", - "dependencies": { - "@contentstack/cli-command": "~1.2.16", - "@contentstack/cli-utilities": "~1.5.11", - "@oclif/core": "^2.9.3", - "async": "^3.2.4", - "big-json": "^3.2.0", - "bluebird": "^3.7.2", - "chalk": "^4.1.2", - "is-valid-path": "^0.1.1", - "lodash": "^4.17.20", - "merge": "^2.1.1", - "mkdirp": "^1.0.4", - "path": "^0.12.7", - "progress-stream": "^2.0.0", - "promise-limit": "^2.7.0", - "proxyquire": "^2.1.3", - "tslib": "^2.4.1", - "winston": "^3.7.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/contentstack-clone/node_modules/@contentstack/cli-cm-import": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-import/-/cli-cm-import-1.13.3.tgz", - "integrity": "sha512-W2A6frSuK8p9fS1S6VXRo9xOj4fv09h+VnHGmtYhRGa3GdAbAZZdCKq+g/uUAn9HbwEvuxgZIpAJignOYYYxeg==", - "dependencies": { - "@contentstack/cli-audit": "^1.3.3", - "@contentstack/cli-command": "~1.2.16", - "@contentstack/cli-utilities": "~1.5.11", - "@contentstack/management": "~1.13.0", - "@oclif/core": "^2.9.3", - "big-json": "^3.2.0", - "bluebird": "^3.7.2", - "chalk": "^4.1.2", - "debug": "^4.1.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.20", - "marked": "^4.0.17", - "merge": "^2.1.1", - "mkdirp": "^1.0.4", - "promise-limit": "^2.7.0", - "tslib": "^2.4.1", - "uuid": "^9.0.0", - "winston": "^3.7.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/contentstack-clone/node_modules/@contentstack/management": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.13.0.tgz", - "integrity": "sha512-zVApJ9dpZTq6yBvSTdwrTjPxe20PiXy9x5CGU49by2n1V7hWhsKtSpcIK+Fx9jylYfYU4SEM/HQIKq/i0roMew==", - "dependencies": { - "axios": "^1.6.0", - "form-data": "^3.0.1", - "lodash": "^4.17.21", - "qs": "^6.11.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "packages/contentstack-clone/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "packages/contentstack-clone/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -25524,7 +25442,7 @@ "@contentstack/cli-audit": "~1.4.0", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.12", - "@contentstack/management": "^1.15.1", + "@contentstack/management": "^1.15.2", "@oclif/core": "^2.9.3", "big-json": "^3.2.0", "bluebird": "^3.7.2", @@ -25997,7 +25915,7 @@ "version": "1.7.1", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-import": "~1.13.4", + "@contentstack/cli-cm-import": "~1.14.0", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.12", "inquirer": "8.2.4", @@ -26029,48 +25947,6 @@ "node": ">=14.0.0" } }, - "packages/contentstack-seed/node_modules/@contentstack/cli-cm-import": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@contentstack/cli-cm-import/-/cli-cm-import-1.13.3.tgz", - "integrity": "sha512-W2A6frSuK8p9fS1S6VXRo9xOj4fv09h+VnHGmtYhRGa3GdAbAZZdCKq+g/uUAn9HbwEvuxgZIpAJignOYYYxeg==", - "dependencies": { - "@contentstack/cli-audit": "^1.3.3", - "@contentstack/cli-command": "~1.2.16", - "@contentstack/cli-utilities": "~1.5.11", - "@contentstack/management": "~1.13.0", - "@oclif/core": "^2.9.3", - "big-json": "^3.2.0", - "bluebird": "^3.7.2", - "chalk": "^4.1.2", - "debug": "^4.1.0", - "fs-extra": "^11.1.1", - "lodash": "^4.17.20", - "marked": "^4.0.17", - "merge": "^2.1.1", - "mkdirp": "^1.0.4", - "promise-limit": "^2.7.0", - "tslib": "^2.4.1", - "uuid": "^9.0.0", - "winston": "^3.7.2" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "packages/contentstack-seed/node_modules/@contentstack/management": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@contentstack/management/-/management-1.13.0.tgz", - "integrity": "sha512-zVApJ9dpZTq6yBvSTdwrTjPxe20PiXy9x5CGU49by2n1V7hWhsKtSpcIK+Fx9jylYfYU4SEM/HQIKq/i0roMew==", - "dependencies": { - "axios": "^1.6.0", - "form-data": "^3.0.1", - "lodash": "^4.17.21", - "qs": "^6.11.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, "packages/contentstack-seed/node_modules/@types/node": { "version": "14.18.63", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz", @@ -26086,19 +25962,6 @@ "node": ">=0.3.1" } }, - "packages/contentstack-seed/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "packages/contentstack-seed/node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", @@ -26139,7 +26002,7 @@ "version": "1.5.12", "license": "MIT", "dependencies": { - "@contentstack/management": "^1.15.1", + "@contentstack/management": "^1.15.2", "@contentstack/marketplace-sdk": "^1.0.1", "@oclif/core": "^2.9.3", "axios": "^1.6.4", diff --git a/packages/contentstack-clone/README.md b/packages/contentstack-clone/README.md index 85de4211c1..2d16d69ea4 100644 --- a/packages/contentstack-clone/README.md +++ b/packages/contentstack-clone/README.md @@ -16,7 +16,7 @@ $ npm install -g @contentstack/cli-cm-clone $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-clone/1.10.0 darwin-arm64 node-v20.8.0 +@contentstack/cli-cm-clone/1.10.1 darwin-arm64 node-v20.8.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json index 43aa7a03b6..2f3277f101 100644 --- a/packages/contentstack-clone/package.json +++ b/packages/contentstack-clone/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-clone", "description": "Contentstack stack clone plugin", - "version": "1.10.0", + "version": "1.10.1", "author": "Contentstack", "bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues", "dependencies": { - "@contentstack/cli-cm-export": "~1.10.5", - "@contentstack/cli-cm-import": "~1.13.4", + "@contentstack/cli-cm-export": "~1.11.0", + "@contentstack/cli-cm-import": "~1.14.0", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.12", "@colors/colors": "^1.5.0", diff --git a/packages/contentstack-export-to-csv/src/util/index.js b/packages/contentstack-export-to-csv/src/util/index.js index 4c646b3779..f5636bbe2a 100644 --- a/packages/contentstack-export-to-csv/src/util/index.js +++ b/packages/contentstack-export-to-csv/src/util/index.js @@ -460,7 +460,7 @@ function write(command, entries, fileName, message, delimiter, headers) { process.chdir(directory); } // eslint-disable-next-line no-undef - cliux.print(`Writing ${message} to file: ${process.cwd()}${delimeter}${fileName}`); + cliux.print(`Writing ${message} to file: "${process.cwd()}${delimeter}${fileName}"`); if (headers?.length) fastcsv.writeToPath(fileName, entries, { headers, delimiter }); else fastcsv.writeToPath(fileName, entries, { headers: true, delimiter }); } @@ -700,10 +700,10 @@ function handleErrorMsg(err) { /** * This function does the sdk calls to get all the teams in org - * @param {object} managementAPIClient - * @param {object} org - * @param {object} queryParam - * @returns + * @param {object} managementAPIClient + * @param {object} org + * @param {object} queryParam + * @returns */ async function getAllTeams(managementAPIClient, org, queryParam = {}) { try { @@ -715,8 +715,8 @@ async function getAllTeams(managementAPIClient, org, queryParam = {}) { /** * This function is used to handle the pagination and call the sdk - * @param {object} managementAPIClient - * @param {object} org + * @param {object} managementAPIClient + * @param {object} org */ async function exportOrgTeams(managementAPIClient, org) { let allTeamsInOrg = []; @@ -737,9 +737,9 @@ async function exportOrgTeams(managementAPIClient, org) { } /** - * This function will get all the org level roles - * @param {object} managementAPIClient - * @param {object} org + * This function will get all the org level roles + * @param {object} managementAPIClient + * @param {object} org */ async function getOrgRolesForTeams(managementAPIClient, org) { let roleMap = {}; // for org level there are two roles only admin and member @@ -763,9 +763,9 @@ async function getOrgRolesForTeams(managementAPIClient, org) { /** * Removes the unnecessary fields from the objects in the data and assign org level roles to the team based on role uid - * @param {array} data - * @param {object} managementAPIClient - * @param {object} org + * @param {array} data + * @param {object} managementAPIClient + * @param {object} org */ async function cleanTeamsData(data, managementAPIClient, org) { const roleMap = await getOrgRolesForTeams(managementAPIClient, org); @@ -784,7 +784,7 @@ async function cleanTeamsData(data, managementAPIClient, org) { 'delete', 'fetch', 'stackRoleMappings', - 'teamUsers' + 'teamUsers', ]; if (data?.length) { return data.map((team) => { @@ -806,10 +806,10 @@ async function cleanTeamsData(data, managementAPIClient, org) { /** * This function is used to call all the other teams function to export the required files - * @param {object} managementAPIClient - * @param {object} organization - * @param {string} teamUid - * @param {character} delimiter + * @param {object} managementAPIClient + * @param {object} organization + * @param {string} teamUid + * @param {character} delimiter */ async function exportTeams(managementAPIClient, organization, teamUid, delimiter) { cliux.print( @@ -852,10 +852,10 @@ async function exportTeams(managementAPIClient, organization, teamUid, delimiter /** * This function is used to get individual team user details and write to file - * @param {array} allTeamsData - * @param {object} organization + * @param {array} allTeamsData + * @param {object} organization * @param {string} teamUid optional - * @param {character} delimiter + * @param {character} delimiter */ async function getTeamsDetail(allTeamsData, organization, teamUid, delimiter) { if (!teamUid) { @@ -883,10 +883,10 @@ async function getTeamsDetail(allTeamsData, organization, teamUid, delimiter) { /** * This will export the role mappings of the team, for which stack the team has which role - * @param {object} managementAPIClient - * @param {array} allTeamsData Data for all the teams in the stack + * @param {object} managementAPIClient + * @param {array} allTeamsData Data for all the teams in the stack * @param {string} teamUid for a particular team who's data we want - * @param {character} delimiter + * @param {character} delimiter */ async function exportRoleMappings(managementAPIClient, allTeamsData, teamUid, delimiter) { let stackRoleWithTeamData = []; @@ -935,7 +935,7 @@ async function exportRoleMappings(managementAPIClient, allTeamsData, teamUid, de ]; try { const exportStackRole = await inquirer.prompt(export_stack_role); - if(exportStackRole.chooseExport==='no') { + if (exportStackRole.chooseExport === 'no') { process.exit(1); } } catch (error) { @@ -953,10 +953,10 @@ async function exportRoleMappings(managementAPIClient, allTeamsData, teamUid, de /** * Mapping the team stacks with the stack role and returning and array of object - * @param {object} managementAPIClient - * @param {array} stackRoleMapping - * @param {string} teamName - * @param {string} teamUid + * @param {object} managementAPIClient + * @param {array} stackRoleMapping + * @param {string} teamName + * @param {string} teamUid */ async function mapRoleWithTeams(managementAPIClient, stackRoleMapping, teamName, teamUid) { const roles = await getRoleData(managementAPIClient, stackRoleMapping.stackApiKey); @@ -982,8 +982,8 @@ async function mapRoleWithTeams(managementAPIClient, stackRoleMapping, teamName, /** * Making sdk call to get all the roles in the given stack - * @param {object} managementAPIClient - * @param {string} stackApiKey + * @param {object} managementAPIClient + * @param {string} stackApiKey */ async function getRoleData(managementAPIClient, stackApiKey) { try { @@ -995,7 +995,7 @@ async function getRoleData(managementAPIClient, stackApiKey) { /** * Here in the users array we are adding the team-name and team-uid to individual users and returning an array of object of user details only - * @param {array} teams + * @param {array} teams */ async function getTeamsUserDetails(teams) { const allTeamUsers = []; @@ -1080,7 +1080,7 @@ async function getTaxonomy(payload) { * @returns {*} Promise */ async function taxonomySDKHandler(payload, skip) { - const { stackAPIClient, taxonomyUID, type } = payload; + const { stackAPIClient, taxonomyUID, type, format } = payload; const queryParams = { include_count: true, limit: payload.limit }; if (skip >= 0) queryParams['skip'] = skip || 0; @@ -1092,13 +1092,13 @@ async function taxonomySDKHandler(payload, skip) { .query(queryParams) .find() .then((data) => data) - .catch((err) => handleErrorMsg(err)); + .catch((err) => handleTaxonomyErrorMsg(err)); case 'taxonomy': return await stackAPIClient .taxonomy(taxonomyUID) .fetch() .then((data) => data) - .catch((err) => handleErrorMsg(err)); + .catch((err) => handleTaxonomyErrorMsg(err)); case 'terms': queryParams['depth'] = 0; return await stackAPIClient @@ -1107,9 +1107,15 @@ async function taxonomySDKHandler(payload, skip) { .query(queryParams) .find() .then((data) => data) - .catch((err) => handleErrorMsg(err)); + .catch((err) => handleTaxonomyErrorMsg(err)); + case 'export-taxonomies': + return await stackAPIClient + .taxonomy(taxonomyUID) + .export({format}) + .then((data) => data) + .catch((err) => handleTaxonomyErrorMsg(err)); default: - handleErrorMsg({ errorMessage: 'Invalid module!' }); + handleTaxonomyErrorMsg({ errorMessage: 'Invalid module!' }); } } @@ -1152,7 +1158,7 @@ function formatTermsOfTaxonomyData(terms, taxonomyUID) { } } -function handleErrorMsg(err) { +function handleTaxonomyErrorMsg(err) { if (err?.errorMessage) { cliux.print(`Error: ${err.errorMessage}`, { color: 'red' }); } else if (err?.message) { @@ -1166,60 +1172,59 @@ function handleErrorMsg(err) { } /** - * create an importable CSV file, to utilize with the migration script. + * Generate a CSV file that can be imported for use with the migration script. * @param {*} payload api request payload * @param {*} taxonomies taxonomies data * @returns */ async function createImportableCSV(payload, taxonomies) { - let taxonomiesData = []; - let headers = ['Taxonomy Name', 'Taxonomy UID', 'Taxonomy Description']; - for (let index = 0; index < taxonomies?.length; index++) { - const taxonomy = taxonomies[index]; - const taxonomyUID = taxonomy?.uid; - if (taxonomyUID) { - const sanitizedTaxonomy = sanitizeData({ - 'Taxonomy Name': taxonomy?.name, - 'Taxonomy UID': taxonomyUID, - 'Taxonomy Description': taxonomy?.description, - }); - taxonomiesData.push(sanitizedTaxonomy); - payload['taxonomyUID'] = taxonomyUID; - const terms = await getAllTermsOfTaxonomy(payload); - //fetch all parent terms - const parentTerms = terms.filter((term) => term?.parent_uid === null); - const termsData = getParentAndChildTerms(parentTerms, terms, headers); - taxonomiesData.push(...termsData); + try { + let taxonomiesData = []; + let headers = []; + for (let index = 0; index < taxonomies?.length; index++) { + const taxonomy = taxonomies[index]; + const taxonomyUID = taxonomy?.uid; + if (taxonomyUID) { + payload['type'] = 'export-taxonomies'; + payload['format'] = 'csv'; + payload['taxonomyUID'] = taxonomyUID; + const data = await taxonomySDKHandler(payload); + const taxonomies = await csvParse(data, headers); + taxonomiesData.push(...taxonomies); + } } - } - return { taxonomiesData, headers }; + return { taxonomiesData, headers }; + } catch (err) { + throw err; + } } /** - * Get the parent and child terms, then arrange them hierarchically in a CSV file. - * @param {*} parentTerms list of parent terms - * @param {*} terms respective terms of taxonomies - * @param {*} headers list of csv headers include taxonomy and terms column - * @param {*} termsData parent and child terms + * Parse the CSV data and segregate the headers from the actual data. + * @param {*} data taxonomy csv data with headers + * @param {*} headers list of csv headers + * @returns taxonomy data without headers */ -function getParentAndChildTerms(parentTerms, terms, headers, termsData = []) { - for (let i = 0; i < parentTerms?.length; i++) { - const parentTerm = parentTerms[i]; - const levelUID = `Term Level${parentTerm.depth} UID`; - const levelName = `Term Level${parentTerm.depth} Name`; - if (headers.indexOf(levelName) === -1) headers.push(levelName); - if (headers.indexOf(levelUID) === -1) headers.push(levelUID); - const sanitizedTermData = sanitizeData({ [levelName]: parentTerm.name, [levelUID]: parentTerm.uid }); - termsData.push(sanitizedTermData); - //fetch all sibling terms - const newParents = terms.filter((term) => term.parent_uid === parentTerm.uid); - if (newParents?.length) { - getParentAndChildTerms(newParents, terms, headers, termsData); - } - } - return termsData; -} +const csvParse = (data, headers) => { + return new Promise((resolve, reject) => { + const taxonomies = []; + const stream = fastcsv.parseStream(fastcsv.parse()); + stream.write(data); + stream.end(); + stream + .on('data', (data) => { + taxonomies.push(data); + }) + .on('error', (err) => reject(err)) + .on('end', () => { + taxonomies[0]?.forEach((header) => { + if (!headers.includes(header)) headers.push(header); + }); + resolve(taxonomies.splice(1)); + }); + }); +}; module.exports = { chooseOrganization: chooseOrganization, diff --git a/packages/contentstack-export-to-csv/test/mock-data/common.mock.json b/packages/contentstack-export-to-csv/test/mock-data/common.mock.json index 24ad077062..e715cd5c60 100644 --- a/packages/contentstack-export-to-csv/test/mock-data/common.mock.json +++ b/packages/contentstack-export-to-csv/test/mock-data/common.mock.json @@ -395,5 +395,6 @@ "users": ["user_1_uid_member", "user_2_uid_member", "user_3_uid_member", "user_4_uid_member"] } ] - } + }, + "taxonomyCSVData": "`taxonomy1,taxonomy1,,,,,,,\n,,,term1,term1,,,,\n,,,,,term1_2,term1_2,,\n,,,term2,term2,,,,\n,,,,,term2_2,term2_2,,\n,,,,,,,term2_2_1,term2_2_1\n,,,,,term2_1,term2_1,,`" } diff --git a/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js b/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js index 7afb959731..0891675929 100644 --- a/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js +++ b/packages/contentstack-export-to-csv/test/unit/commands/export-to-csv.test.js @@ -1,7 +1,6 @@ const fs = require('fs'); const mkdirp = require('mkdirp'); -const { test, expect } = require('@oclif/test'); -const { join } = require('path'); +const { test: fancy } = require('@oclif/test'); const { PassThrough } = require('stream'); const inquirer = require('inquirer'); const mockData = require('../../mock-data/common.mock.json'); @@ -10,6 +9,7 @@ const { configHandler } = require('@contentstack/cli-utilities'); const { cma } = configHandler.get('region'); describe('export-to-csv with action taxonomies', () => { + const test = fancy.loadConfig({ root: process.cwd() }); describe('Create taxonomies & terms csv file with all flags including taxonomy uid', () => { test .stdout({ print: process.env.PRINT === 'true' || false }) @@ -29,9 +29,9 @@ describe('export-to-csv with action taxonomies', () => { .nock(cma, (api) => { api .get( - `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/terms?include_count=true&limit=100&skip=0&depth=0`, + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv`, ) - .reply(200, mockData.termsResp); + .reply(200, mockData.taxonomyCSVData); }) .command([ 'cm:export-to-csv', @@ -64,16 +64,16 @@ describe('export-to-csv with action taxonomies', () => { .nock(cma, (api) => { api .get( - `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/terms?include_count=true&limit=100&skip=0&depth=0`, + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv`, ) - .reply(200, mockData.termsResp); + .reply(200, mockData.taxonomyCSVData); }) .nock(cma, (api) => { api .get( - `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[1].uid}/terms?include_count=true&limit=100&skip=0&depth=0`, + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[1].uid}/export?format=csv`, ) - .reply(200, { terms: [], count: 0 }); + .reply(200, mockData.taxonomyCSVData); }) .command([ 'cm:export-to-csv', @@ -117,9 +117,9 @@ describe('export-to-csv with action taxonomies', () => { .nock(cma, (api) => { api .get( - `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/terms?include_count=true&limit=100&skip=0&depth=0`, + `/v3/taxonomies/${mockData.taxonomiesResp.taxonomies[0].uid}/export?format=csv`, ) - .reply(200, mockData.termsResp); + .reply(200, mockData.taxonomyCSVData); }) .command(['cm:export-to-csv', '--taxonomy-uid', 'taxonomy_uid_1']) .it('CSV file should be created'); @@ -127,6 +127,7 @@ describe('export-to-csv with action taxonomies', () => { }); describe('export-to-csv with action entries', () => { + const test = fancy.loadConfig({ root: process.cwd() }); describe('Create entries csv file with flags', () => { test .stdout({ print: process.env.PRINT === 'true' || false }) @@ -239,6 +240,7 @@ describe('export-to-csv with action entries', () => { }); describe('export-to-csv with action users', () => { + const test = fancy.loadConfig({ root: process.cwd() }); describe('Export users csv file with flags', () => { test .stdout({ print: process.env.PRINT === 'true' || false }) @@ -290,7 +292,7 @@ describe('export-to-csv with action users', () => { }); describe('Testing the teams support in cli export-to-csv', () => { - + const test = fancy.loadConfig({ root: process.cwd() }); describe('Testing Teams Command with using org flag and team flag', () => { test .stdout({ print: process.env.PRINT === 'true' || false }) @@ -409,4 +411,4 @@ describe('Testing the teams support in cli export-to-csv', () => { .command(['cm:export-to-csv']) .it('CSV file should be created'); }); -}); \ No newline at end of file +}); diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index 1f031f07ce..f9bce332e0 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -8,7 +8,7 @@ "@contentstack/cli-audit": "~1.4.0", "@contentstack/cli-command": "~1.2.16", "@contentstack/cli-utilities": "~1.5.12", - "@contentstack/management": "^1.15.1", + "@contentstack/management": "^1.15.2", "@oclif/core": "^2.9.3", "big-json": "^3.2.0", "bluebird": "^3.7.2", diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index 092ad93fcf..2a6ee9444b 100644 --- a/packages/contentstack/README.md +++ b/packages/contentstack/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli $ csdx COMMAND running command... $ csdx (--version|-v) -@contentstack/cli/1.13.3 darwin-arm64 node-v20.8.0 +@contentstack/cli/1.14.0 darwin-arm64 node-v20.8.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND @@ -169,14 +169,14 @@ Perform audits and fix possible errors in the exported Contentstack data. USAGE $ csdx audit:fix [-c ] [-d ] [--report-path ] [--modules content-types|global-fields|entries] [--copy-path --copy-dir] [--fix-only - reference|global_field|json:rte|json:custom-field|blocks|group] [--columns | ] [--sort ] [--filter + reference|global_field|json:rte|json:extension|blocks|group] [--columns | ] [--sort ] [--filter ] [--csv | --no-truncate] FLAGS --copy-dir Create backup from the original data. --copy-path= Provide the path to backup the copied data --fix-only=