From b8ce61d17a2184377e5451c7d831ae679e941996 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Wed, 17 Dec 2025 12:23:43 +0530 Subject: [PATCH 01/16] skip composition type and compositions if studio project failed to import --- .talismanrc | 2 +- .../contentstack-import/src/config/index.ts | 2 +- .../src/import/modules/composable-studio.ts | 10 ++++ .../src/import/modules/content-types.ts | 46 ++++++++++++++++- .../src/import/modules/entries.ts | 50 +++++++++++++++++-- 5 files changed, 103 insertions(+), 7 deletions(-) diff --git a/.talismanrc b/.talismanrc index 414acd491e..6918bbe888 100644 --- a/.talismanrc +++ b/.talismanrc @@ -66,7 +66,7 @@ fileignoreconfig: - filename: packages/contentstack-bulk-publish/src/producer/publish-unpublished-env.js checksum: 96fd15e027f38b156c69f10943ea1d5a70e580fa8a5efeb3286cd7132145c72d - filename: packages/contentstack-import/src/import/modules/entries.ts - checksum: 2fd4e8ecf75e077632a6408d09997f0921d2a3508f9f2cb8f47fe79a28592300 + checksum: 290730774c61220645ec211b85b9e218cdbd8addc2d8fd8f061dfa5ede5b5c75 - filename: packages/contentstack-utilities/src/logger/logger.ts checksum: 76429bc87e279624b386f00e7eb3f4ec25621ace7056289f812b9a076d6e184e - filename: packages/contentstack-bootstrap/src/bootstrap/utils.ts diff --git a/packages/contentstack-import/src/config/index.ts b/packages/contentstack-import/src/config/index.ts index 75f8d6bc8b..76b70e1121 100644 --- a/packages/contentstack-import/src/config/index.ts +++ b/packages/contentstack-import/src/config/index.ts @@ -33,6 +33,7 @@ const config: DefaultConfig = { 'stack', 'assets', 'taxonomies', + 'composable-studio', 'extensions', 'marketplace-apps', 'global-fields', @@ -44,7 +45,6 @@ const config: DefaultConfig = { 'variant-entries', 'labels', 'webhooks', - 'composable-studio', ], locales: { dirName: 'locales', diff --git a/packages/contentstack-import/src/import/modules/composable-studio.ts b/packages/contentstack-import/src/import/modules/composable-studio.ts index 521384692d..04cd04ef8d 100644 --- a/packages/contentstack-import/src/import/modules/composable-studio.ts +++ b/packages/contentstack-import/src/import/modules/composable-studio.ts @@ -20,6 +20,7 @@ export default class ImportComposableStudio { private apiClient: HttpClient; private envUidMapperPath: string; private envUidMapper: Record; + private projectMapperPath: string; constructor({ importConfig }: ModuleClassParams) { this.importConfig = importConfig; @@ -28,6 +29,7 @@ export default class ImportComposableStudio { // Setup paths this.composableStudioPath = join(this.importConfig.backupDir, this.composableStudioConfig.dirName); + this.projectMapperPath = join(this.importConfig.backupDir, 'mapper', this.composableStudioConfig.dirName); this.composableStudioFilePath = join(this.composableStudioPath, this.composableStudioConfig.fileName); this.envUidMapperPath = join(this.importConfig.backupDir, 'mapper', 'environments', 'uid-mapping.json'); this.envUidMapper = {}; @@ -244,6 +246,14 @@ export default class ImportComposableStudio { if (response.status >= 200 && response.status < 300) { projectCreated = true; log.debug(`Project created successfully with UID: ${response.data?.uid}`, this.importConfig.context); + + // Create mapper directory if it doesn't exist + await fsUtil.makeDirectory(this.projectMapperPath); + + // write the project to file + const projectFileSuccessPath = join(this.projectMapperPath, this.composableStudioConfig.fileName); + fsUtil.writeFile(projectFileSuccessPath, response.data as unknown as Record); + log.debug(`Project written to: ${projectFileSuccessPath}`, this.importConfig.context); } else { throw new Error(`API call failed with status ${response.status}: ${JSON.stringify(response.data)}`); } diff --git a/packages/contentstack-import/src/import/modules/content-types.ts b/packages/contentstack-import/src/import/modules/content-types.ts index 19b7ca51ea..462c10a8f0 100644 --- a/packages/contentstack-import/src/import/modules/content-types.ts +++ b/packages/contentstack-import/src/import/modules/content-types.ts @@ -8,7 +8,7 @@ import * as path from 'path'; import { isEmpty, find, cloneDeep, map } from 'lodash'; import { sanitizePath, log, handleAndLogError } from '@contentstack/cli-utilities'; -import { fsUtil, schemaTemplate, lookupExtension, lookUpTaxonomy } from '../../utils'; +import { fsUtil, schemaTemplate, lookupExtension, lookUpTaxonomy, fileHelper } from '../../utils'; import { ImportConfig, ModuleClassParams } from '../../types'; import BaseClass, { ApiOptions } from './base-class'; import { updateFieldRules } from '../../utils/content-type-helper'; @@ -54,6 +54,8 @@ export default class ContentTypesImport extends BaseClass { public taxonomies: Record; private extPendingPath: string; private isExtensionsUpdate = false; + private composableStudioSuccessPath: string; + private composableStudioExportPath: string; constructor({ importConfig, stackAPIClient }: ModuleClassParams) { super({ importConfig, stackAPIClient }); @@ -84,6 +86,19 @@ export default class ContentTypesImport extends BaseClass { ['schema.json', 'true'], ['.DS_Store', 'true'], ]); + + this.composableStudioSuccessPath = path.join( + sanitizePath(this.importConfig.data), + 'mapper', + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); + + this.composableStudioExportPath = path.join( + sanitizePath(this.importConfig.data), + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); this.cTs = []; this.createdCTs = []; this.titleToUIdMap = new Map(); @@ -110,6 +125,35 @@ export default class ContentTypesImport extends BaseClass { } log.debug(`Found ${this.cTs.length} content types to import`, this.importConfig.context); + // If success file doesn't exist but export file does, skip the composition content type + if ( + !fileHelper.fileExistsSync(this.composableStudioSuccessPath) && + fileHelper.fileExistsSync(this.composableStudioExportPath) + ) { + const exportedProject = fileHelper.readFileSync(this.composableStudioExportPath) as { + contentTypeUid: string; + }; + + if (exportedProject?.contentTypeUid) { + const originalCount = this.cTs.length; + this.cTs = this.cTs.filter((ct: Record) => { + const shouldSkip = ct.uid === exportedProject.contentTypeUid; + if (shouldSkip) { + log.info( + `Skipping content type '${ct.uid}' as Composable Studio project was not created successfully`, + this.importConfig.context, + ); + } + return !shouldSkip; + }); + + const skippedCount = originalCount - this.cTs.length; + if (skippedCount > 0) { + log.debug(`Filtered out ${skippedCount} composition content type(s) from import`, this.importConfig.context); + } + } + } + await fsUtil.makeDirectory(this.cTsMapperPath); log.debug('Created content types mapper directory.', this.importConfig.context); diff --git a/packages/contentstack-import/src/import/modules/entries.ts b/packages/contentstack-import/src/import/modules/entries.ts index 4cc7174c69..09e996c2f0 100644 --- a/packages/contentstack-import/src/import/modules/entries.ts +++ b/packages/contentstack-import/src/import/modules/entries.ts @@ -57,6 +57,8 @@ export default class EntriesImport extends BaseClass { public rteCTs: any; public rteCTsWithRef: any; public entriesForVariant: Array<{ content_type: string; locale: string; entry_uid: string }> = []; + private composableStudioSuccessPath: string; + private composableStudioExportPath: string; constructor({ importConfig, stackAPIClient }: ModuleClassParams) { super({ importConfig, stackAPIClient }); @@ -92,6 +94,18 @@ export default class EntriesImport extends BaseClass { sanitizePath(importConfig.modules.locales.dirName), sanitizePath(importConfig.modules.locales.fileName), ); + this.composableStudioSuccessPath = path.join( + sanitizePath(this.importConfig.data), + 'mapper', + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); + + this.composableStudioExportPath = path.join( + sanitizePath(this.importConfig.data), + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); this.importConcurrency = this.entriesConfig.importConcurrency || importConfig.importConcurrency; this.entriesUidMapper = {}; this.modifiedCTs = []; @@ -116,6 +130,37 @@ export default class EntriesImport extends BaseClass { return; } log.debug(`Found ${this.cTs.length} content types for entry import`, this.importConfig.context); + // If success file doesn't exist but export file does, skip the composition entries + if ( + !fileHelper.fileExistsSync(this.composableStudioSuccessPath) && + fileHelper.fileExistsSync(this.composableStudioExportPath) + ) { + const exportedProject = fileHelper.readFileSync(this.composableStudioExportPath) as { + contentTypeUid: string; + }; + + if (exportedProject?.contentTypeUid) { + const originalCount = this.cTs.length; + this.cTs = this.cTs.filter((ct: Record) => { + const shouldSkip = ct.uid === exportedProject.contentTypeUid; + if (shouldSkip) { + log.info( + `Skipping entries for content type '${ct.uid}' as Composable Studio project was not created successfully`, + this.importConfig.context, + ); + } + return !shouldSkip; + }); + + const skippedCount = originalCount - this.cTs.length; + if (skippedCount > 0) { + log.debug( + `Filtered out ${skippedCount} composition content type(s) from entry import`, + this.importConfig.context, + ); + } + } + } this.installedExtensions = ( (fsUtil.readFile(this.marketplaceAppMapperPath) as any) || { extension_uid: {} } @@ -124,10 +169,7 @@ export default class EntriesImport extends BaseClass { this.assetUidMapper = (fsUtil.readFile(this.assetUidMapperPath) as Record) || {}; this.assetUrlMapper = (fsUtil.readFile(this.assetUrlMapperPath) as Record) || {}; - log.debug( - `Loaded asset mappings – UIDs: ${Object.keys(this.assetUidMapper).length}`, - this.importConfig.context, - ); + log.debug(`Loaded asset mappings – UIDs: ${Object.keys(this.assetUidMapper).length}`, this.importConfig.context); this.taxonomies = (fsUtil.readFile(this.taxonomiesPath) || {}) as Record; log.debug('Loaded taxonomy data for entry processing.', this.importConfig.context); From f51a47b83ea079778c0d7bd011194355b761299f Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Wed, 17 Dec 2025 12:54:52 +0530 Subject: [PATCH 02/16] bumped version --- package-lock.json | 24 ++++++++++---------- packages/contentstack-bootstrap/package.json | 4 ++-- packages/contentstack-clone/package.json | 4 ++-- packages/contentstack-import/package.json | 2 +- packages/contentstack-seed/package.json | 4 ++-- packages/contentstack/package.json | 10 ++++---- pnpm-lock.yaml | 14 ++++++------ 7 files changed, 31 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d31b5551a..978aec1717 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26616,21 +26616,21 @@ }, "packages/contentstack": { "name": "@contentstack/cli", - "version": "1.53.1", + "version": "1.54.0", "license": "MIT", "dependencies": { "@contentstack/cli-audit": "~1.16.2", "@contentstack/cli-auth": "~1.6.3", - "@contentstack/cli-cm-bootstrap": "~1.17.2", + "@contentstack/cli-cm-bootstrap": "~1.18.0", "@contentstack/cli-cm-branches": "~1.6.2", "@contentstack/cli-cm-bulk-publish": "~1.10.4", - "@contentstack/cli-cm-clone": "~1.18.1", + "@contentstack/cli-cm-clone": "~1.19.0", "@contentstack/cli-cm-export": "~1.22.2", "@contentstack/cli-cm-export-to-csv": "~1.10.2", - "@contentstack/cli-cm-import": "~1.30.2", + "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-cm-import-setup": "~1.7.2", "@contentstack/cli-cm-migrate-rte": "~1.6.3", - "@contentstack/cli-cm-seed": "~1.13.2", + "@contentstack/cli-cm-seed": "~1.14.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-config": "~1.16.2", "@contentstack/cli-launch": "^1.9.2", @@ -26913,10 +26913,10 @@ }, "packages/contentstack-bootstrap": { "name": "@contentstack/cli-cm-bootstrap", - "version": "1.17.2", + "version": "1.18.0", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-seed": "~1.13.2", + "@contentstack/cli-cm-seed": "~1.14.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@oclif/core": "^4.3.0", @@ -27046,12 +27046,12 @@ }, "packages/contentstack-clone": { "name": "@contentstack/cli-cm-clone", - "version": "1.18.1", + "version": "1.19.0", "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", "@contentstack/cli-cm-export": "~1.22.2", - "@contentstack/cli-cm-import": "~1.30.2", + "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@oclif/core": "^4.3.0", @@ -28001,7 +28001,7 @@ }, "packages/contentstack-import": { "name": "@contentstack/cli-cm-import", - "version": "1.30.2", + "version": "1.31.0", "license": "MIT", "dependencies": { "@contentstack/cli-audit": "~1.16.2", @@ -28156,10 +28156,10 @@ }, "packages/contentstack-seed": { "name": "@contentstack/cli-cm-seed", - "version": "1.13.2", + "version": "1.14.0", "license": "MIT", "dependencies": { - "@contentstack/cli-cm-import": "1.30.2", + "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@contentstack/management": "~1.22.0", diff --git a/packages/contentstack-bootstrap/package.json b/packages/contentstack-bootstrap/package.json index f1e7d0ddff..0d0ee4f8a2 100644 --- a/packages/contentstack-bootstrap/package.json +++ b/packages/contentstack-bootstrap/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-cm-bootstrap", "description": "Bootstrap contentstack apps", - "version": "1.17.2", + "version": "1.18.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "scripts": { @@ -16,7 +16,7 @@ "test:report": "nyc --reporter=lcov mocha \"test/**/*.test.js\"" }, "dependencies": { - "@contentstack/cli-cm-seed": "~1.13.2", + "@contentstack/cli-cm-seed": "~1.14.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@oclif/core": "^4.3.0", diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json index a89f54e59b..bc3443d320 100644 --- a/packages/contentstack-clone/package.json +++ b/packages/contentstack-clone/package.json @@ -1,13 +1,13 @@ { "name": "@contentstack/cli-cm-clone", "description": "Contentstack stack clone plugin", - "version": "1.18.1", + "version": "1.19.0", "author": "Contentstack", "bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues", "dependencies": { "@colors/colors": "^1.6.0", "@contentstack/cli-cm-export": "~1.22.2", - "@contentstack/cli-cm-import": "~1.30.2", + "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@oclif/core": "^4.3.0", diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index 1294bd1d70..96e6cdc73f 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.30.2", + "version": "1.31.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack-seed/package.json b/packages/contentstack-seed/package.json index 49f221aef4..c5e5b472f3 100644 --- a/packages/contentstack-seed/package.json +++ b/packages/contentstack-seed/package.json @@ -1,11 +1,11 @@ { "name": "@contentstack/cli-cm-seed", "description": "create a Stack from existing content types, entries, assets, etc.", - "version": "1.13.2", + "version": "1.14.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-cm-import": "1.30.2", + "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@contentstack/management": "~1.22.0", diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 96d490059d..e2718ed94c 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli", "description": "Command-line tool (CLI) to interact with Contentstack", - "version": "1.53.1", + "version": "1.54.0", "author": "Contentstack", "bin": { "csdx": "./bin/run.js" @@ -24,16 +24,16 @@ "dependencies": { "@contentstack/cli-audit": "~1.16.2", "@contentstack/cli-cm-export": "~1.22.2", - "@contentstack/cli-cm-import": "~1.30.2", + "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-auth": "~1.6.3", - "@contentstack/cli-cm-bootstrap": "~1.17.2", + "@contentstack/cli-cm-bootstrap": "~1.18.0", "@contentstack/cli-cm-branches": "~1.6.2", "@contentstack/cli-cm-bulk-publish": "~1.10.4", - "@contentstack/cli-cm-clone": "~1.18.1", + "@contentstack/cli-cm-clone": "~1.19.0", "@contentstack/cli-cm-export-to-csv": "~1.10.2", "@contentstack/cli-cm-import-setup": "~1.7.2", "@contentstack/cli-cm-migrate-rte": "~1.6.3", - "@contentstack/cli-cm-seed": "~1.13.2", + "@contentstack/cli-cm-seed": "~1.14.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-config": "~1.16.2", "@contentstack/cli-launch": "^1.9.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c83b19d375..99a8f71f5c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,16 +14,16 @@ importers: specifiers: '@contentstack/cli-audit': ~1.16.2 '@contentstack/cli-auth': ~1.6.3 - '@contentstack/cli-cm-bootstrap': ~1.17.2 + '@contentstack/cli-cm-bootstrap': ~1.18.0 '@contentstack/cli-cm-branches': ~1.6.2 '@contentstack/cli-cm-bulk-publish': ~1.10.4 - '@contentstack/cli-cm-clone': ~1.18.1 + '@contentstack/cli-cm-clone': ~1.19.0 '@contentstack/cli-cm-export': ~1.22.2 '@contentstack/cli-cm-export-to-csv': ~1.10.2 - '@contentstack/cli-cm-import': ~1.30.2 + '@contentstack/cli-cm-import': ~1.31.0 '@contentstack/cli-cm-import-setup': ~1.7.2 '@contentstack/cli-cm-migrate-rte': ~1.6.3 - '@contentstack/cli-cm-seed': ~1.13.2 + '@contentstack/cli-cm-seed': ~1.14.0 '@contentstack/cli-command': ~1.7.1 '@contentstack/cli-config': ~1.16.2 '@contentstack/cli-launch': ^1.9.2 @@ -243,7 +243,7 @@ importers: packages/contentstack-bootstrap: specifiers: - '@contentstack/cli-cm-seed': ~1.13.2 + '@contentstack/cli-cm-seed': ~1.14.0 '@contentstack/cli-command': ~1.7.1 '@contentstack/cli-utilities': ~1.16.0 '@oclif/core': ^4.3.0 @@ -380,7 +380,7 @@ importers: specifiers: '@colors/colors': ^1.6.0 '@contentstack/cli-cm-export': ~1.22.2 - '@contentstack/cli-cm-import': ~1.30.2 + '@contentstack/cli-cm-import': ~1.31.0 '@contentstack/cli-command': ~1.7.1 '@contentstack/cli-utilities': ~1.16.0 '@oclif/core': ^4.3.0 @@ -886,7 +886,7 @@ importers: packages/contentstack-seed: specifiers: - '@contentstack/cli-cm-import': 1.30.2 + '@contentstack/cli-cm-import': ~1.31.0 '@contentstack/cli-command': ~1.7.1 '@contentstack/cli-utilities': ~1.16.0 '@contentstack/management': ~1.22.0 From ac20d7ba8606bf7df3805d324fc4259b9bf93e68 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Wed, 17 Dec 2025 17:44:33 +0530 Subject: [PATCH 03/16] added composable studio validation in audit --- .talismanrc | 6 +- package-lock.json | 6 +- packages/contentstack-audit/package.json | 2 +- .../src/audit-base-command.ts | 99 +++- .../contentstack-audit/src/config/index.ts | 27 +- .../contentstack-audit/src/messages/index.ts | 3 +- .../src/modules/composable-studio.ts | 434 ++++++++++++++++++ .../contentstack-audit/src/modules/index.ts | 3 +- .../src/modules/modulesData.ts | 89 ++-- .../src/types/content-types.ts | 1 + .../unit/modules/composable-studio.test.ts | 330 +++++++++++++ packages/contentstack-import/package.json | 2 +- packages/contentstack/package.json | 2 +- pnpm-lock.yaml | 12 +- 14 files changed, 932 insertions(+), 84 deletions(-) create mode 100644 packages/contentstack-audit/src/modules/composable-studio.ts create mode 100644 packages/contentstack-audit/test/unit/modules/composable-studio.test.ts diff --git a/.talismanrc b/.talismanrc index 73a915ab0f..536d7a39d5 100644 --- a/.talismanrc +++ b/.talismanrc @@ -95,8 +95,6 @@ fileignoreconfig: checksum: bbe1130f5f5ebf2fa452daef743fe4d40ae9f8fc05c7f8c59c82a3d3d1ed69e8 - filename: packages/contentstack-audit/src/modules/extensions.ts checksum: 32af019f0df8288448d11559fe9f7ef61d3e43c3791d45eeec25fd0937c6baad - - filename: packages/contentstack-audit/src/modules/modulesData.ts - checksum: bac8f1971ac2e39bc04d9297b81951fe34ed265dfc985137135f9bbe775cd63c - filename: packages/contentstack-audit/src/modules/assets.ts checksum: 5a007804c75976dd192ed2284b7b7edbc5b5fc269fc0e883908b52e4d4f206a8 - filename: packages/contentstack-audit/src/modules/workflows.ts @@ -273,4 +271,8 @@ fileignoreconfig: checksum: 9d7df9d79cec75f238a0072bf79c4934b4724bf1466451ea6f923adfd5c0b75b - filename: packages/contentstack-utilities/test/unit/logger.test.ts checksum: a1939dea16166b1893a248179524a76f2ed20b04b99c83bd1a5a13fcf6f0dadc + - filename: packages/contentstack-audit/src/modules/modulesData.ts + checksum: 1e6c1fba1172512401038d5454c8d218201ec62262449c5c878609592e0124c4 + - filename: packages/contentstack-audit/src/modules/composable-studio.ts + checksum: e2f67d6b383415fe503ca22514fea38f53cc99647a9a73551772ab1082572cfa version: '1.0' diff --git a/package-lock.json b/package-lock.json index 978aec1717..9ae1be3971 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26619,7 +26619,7 @@ "version": "1.54.0", "license": "MIT", "dependencies": { - "@contentstack/cli-audit": "~1.16.2", + "@contentstack/cli-audit": "~1.17.0", "@contentstack/cli-auth": "~1.6.3", "@contentstack/cli-cm-bootstrap": "~1.18.0", "@contentstack/cli-cm-branches": "~1.6.2", @@ -26688,7 +26688,7 @@ }, "packages/contentstack-audit": { "name": "@contentstack/cli-audit", - "version": "1.16.2", + "version": "1.17.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.7.1", @@ -28004,7 +28004,7 @@ "version": "1.31.0", "license": "MIT", "dependencies": { - "@contentstack/cli-audit": "~1.16.2", + "@contentstack/cli-audit": "~1.17.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@contentstack/cli-variants": "~1.3.6", diff --git a/packages/contentstack-audit/package.json b/packages/contentstack-audit/package.json index 20ae88b776..3527536bc6 100644 --- a/packages/contentstack-audit/package.json +++ b/packages/contentstack-audit/package.json @@ -1,6 +1,6 @@ { "name": "@contentstack/cli-audit", - "version": "1.16.2", + "version": "1.17.0", "description": "Contentstack audit plugin", "author": "Contentstack CLI", "homepage": "https://github.com/contentstack/cli", diff --git a/packages/contentstack-audit/src/audit-base-command.ts b/packages/contentstack-audit/src/audit-base-command.ts index d16236c213..402d3906ed 100644 --- a/packages/contentstack-audit/src/audit-base-command.ts +++ b/packages/contentstack-audit/src/audit-base-command.ts @@ -5,7 +5,15 @@ import { v4 as uuid } from 'uuid'; import isEmpty from 'lodash/isEmpty'; import { join, resolve } from 'path'; import cloneDeep from 'lodash/cloneDeep'; -import { cliux, sanitizePath, TableFlags, TableHeader, log, configHandler, createLogContext } from '@contentstack/cli-utilities'; +import { + cliux, + sanitizePath, + TableFlags, + TableHeader, + log, + configHandler, + createLogContext, +} from '@contentstack/cli-utilities'; import { createWriteStream, existsSync, mkdirSync, readFileSync, writeFileSync, rmSync } from 'fs'; import config from './config'; import { print } from './util/log'; @@ -21,6 +29,7 @@ import { FieldRule, ModuleDataReader, CustomRoles, + ComposableStudio, } from './modules'; import { @@ -50,7 +59,6 @@ export abstract class AuditBaseCommand extends BaseCommand; + public environmentUidSet: Set; + public localeCodeSet: Set; + public projectsWithIssues: any[]; + public composableStudioPath: string; + private projectsWithIssuesMap: Map; + + constructor({ fix, config, moduleName, ctSchema }: ModuleConstructorParam & Pick) { + this.config = config; + this.fix = fix ?? false; + this.ctSchema = ctSchema; + this.composableStudioProjects = []; + + log.debug(`Initializing ComposableStudio module`, this.config.auditContext); + log.debug(`Fix mode: ${this.fix}`, this.config.auditContext); + log.debug(`Content types count: ${ctSchema.length}`, this.config.auditContext); + log.debug(`Module name: ${moduleName}`, this.config.auditContext); + + this.moduleName = this.validateModules(moduleName!, this.config.moduleConfig); + this.fileName = config.moduleConfig[this.moduleName].fileName; + log.debug(`File name: ${this.fileName}`, this.config.auditContext); + + this.folderPath = resolve( + sanitizePath(config.basePath), + sanitizePath(config.moduleConfig[this.moduleName].dirName), + ); + log.debug(`Folder path: ${this.folderPath}`, this.config.auditContext); + + this.ctUidSet = new Set(); + this.environmentUidSet = new Set(); + this.localeCodeSet = new Set(); + this.projectsWithIssues = []; + this.projectsWithIssuesMap = new Map(); + this.composableStudioPath = ''; + + log.debug(`ComposableStudio module initialization completed`, this.config.auditContext); + } + + validateModules( + moduleName: keyof typeof auditConfig.moduleConfig, + moduleConfig: Record, + ): keyof typeof auditConfig.moduleConfig { + log.debug(`Validating module: ${moduleName}`, this.config.auditContext); + log.debug(`Available modules: ${Object.keys(moduleConfig).join(', ')}`, this.config.auditContext); + + if (Object.keys(moduleConfig).includes(moduleName)) { + log.debug(`Module ${moduleName} is valid`, this.config.auditContext); + return moduleName; + } + + log.debug(`Module ${moduleName} not found, defaulting to 'composable-studio'`, this.config.auditContext); + return 'composable-studio'; + } + + /** + * Load environments from the environments.json file + */ + async loadEnvironments() { + log.debug(`Loading environments`, this.config.auditContext); + const environmentsPath = resolve(this.config.basePath, 'environments', 'environments.json'); + + if (existsSync(environmentsPath)) { + log.debug(`Environments file path: ${environmentsPath}`, this.config.auditContext); + try { + const environments = JSON.parse(readFileSync(environmentsPath, 'utf-8')); + const envArray = Array.isArray(environments) ? environments : Object.values(environments); + envArray.forEach((env: any) => { + if (env.uid) { + this.environmentUidSet.add(env.uid); + } + }); + log.debug( + `Loaded ${this.environmentUidSet.size} environments: ${Array.from(this.environmentUidSet).join(', ')}`, + this.config.auditContext, + ); + } catch (error) { + log.debug(`Failed to load environments: ${error}`, this.config.auditContext); + } + } else { + log.debug(`Environments file not found at: ${environmentsPath}`, this.config.auditContext); + } + } + + /** + * Load locales from the locales.json and master-locale.json files + */ + async loadLocales() { + log.debug(`Loading locales`, this.config.auditContext); + const localesPath = resolve(this.config.basePath, 'locales', 'locales.json'); + const masterLocalePath = resolve(this.config.basePath, 'locales', 'master-locale.json'); + + // Load master locale + if (existsSync(masterLocalePath)) { + log.debug(`Master locale file path: ${masterLocalePath}`, this.config.auditContext); + try { + const masterLocales = JSON.parse(readFileSync(masterLocalePath, 'utf-8')); + const localeArray = Array.isArray(masterLocales) ? masterLocales : Object.values(masterLocales); + localeArray.forEach((locale: any) => { + if (locale.code) { + this.localeCodeSet.add(locale.code); + } + }); + log.debug(`Loaded ${this.localeCodeSet.size} master locales`, this.config.auditContext); + } catch (error) { + log.debug(`Failed to load master locales: ${error}`, this.config.auditContext); + } + } else { + log.debug(`Master locale file not found at: ${masterLocalePath}`, this.config.auditContext); + } + + // Load additional locales + if (existsSync(localesPath)) { + log.debug(`Locales file path: ${localesPath}`, this.config.auditContext); + try { + const locales = JSON.parse(readFileSync(localesPath, 'utf-8')); + const localeArray = Array.isArray(locales) ? locales : Object.values(locales); + localeArray.forEach((locale: any) => { + if (locale.code) { + this.localeCodeSet.add(locale.code); + } + }); + log.debug( + `Total locales after loading additional locales: ${this.localeCodeSet.size}`, + this.config.auditContext, + ); + } catch (error) { + log.debug(`Failed to load additional locales: ${error}`, this.config.auditContext); + } + } else { + log.debug(`Locales file not found at: ${localesPath}`, this.config.auditContext); + } + + log.debug(`Locale codes loaded: ${Array.from(this.localeCodeSet).join(', ')}`, this.config.auditContext); + } + + /** + * Main run method to audit composable studio projects + */ + async run() { + log.debug(`Starting ${this.moduleName} audit process`, this.config.auditContext); + log.debug(`Composable Studio folder path: ${this.folderPath}`, this.config.auditContext); + log.debug(`Fix mode: ${this.fix}`, this.config.auditContext); + + if (!existsSync(this.folderPath)) { + log.debug(`Skipping ${this.moduleName} audit - path does not exist`, this.config.auditContext); + log.warn(`Skipping ${this.moduleName} audit`, this.config.auditContext); + cliux.print($t(auditMsg.NOT_VALID_PATH, { path: this.folderPath }), { color: 'yellow' }); + return {}; + } + + this.composableStudioPath = join(this.folderPath, this.fileName); + log.debug(`Composable Studio file path: ${this.composableStudioPath}`, this.config.auditContext); + + // Load composable studio projects + log.debug(`Loading composable studio projects from file`, this.config.auditContext); + if (existsSync(this.composableStudioPath)) { + try { + const projectsData = JSON.parse(readFileSync(this.composableStudioPath, 'utf-8')); + this.composableStudioProjects = Array.isArray(projectsData) ? projectsData : [projectsData]; + log.debug( + `Loaded ${this.composableStudioProjects.length} composable studio projects`, + this.config.auditContext, + ); + } catch (error) { + log.debug(`Failed to load composable studio projects: ${error}`, this.config.auditContext); + cliux.print(`Failed to parse composable studio file: ${error}`, { color: 'red' }); + return {}; + } + } else { + log.debug(`Composable studio file not found`, this.config.auditContext); + return {}; + } + + // Build content type UID set + log.debug(`Building content type UID set from ${this.ctSchema.length} content types`, this.config.auditContext); + this.ctSchema.forEach((ct) => this.ctUidSet.add(ct.uid)); + log.debug(`Content type UID set contains: ${Array.from(this.ctUidSet).join(', ')}`, this.config.auditContext); + + // Load environments and locales + await this.loadEnvironments(); + await this.loadLocales(); + + // Process each project + log.debug( + `Processing ${this.composableStudioProjects.length} composable studio projects`, + this.config.auditContext, + ); + for (const project of this.composableStudioProjects) { + const { name, uid, contentTypeUid, settings } = project; + log.debug(`Processing composable studio project: ${name} (${uid})`, this.config.auditContext); + log.debug(`Content type UID: ${contentTypeUid}`, this.config.auditContext); + log.debug(`Environment: ${settings?.configuration?.environment}`, this.config.auditContext); + log.debug(`Locale: ${settings?.configuration?.locale}`, this.config.auditContext); + + let hasIssues = false; + const issuesList: string[] = []; + const invalidContentTypes: string[] = []; + const invalidEnvironments: string[] = []; + const invalidLocales: string[] = []; + + // Check content type + if (contentTypeUid && !this.ctUidSet.has(contentTypeUid)) { + log.debug(`Content type ${contentTypeUid} not found in project ${name}`, this.config.auditContext); + invalidContentTypes.push(contentTypeUid); + issuesList.push(`Invalid contentTypeUid: ${contentTypeUid}`); + hasIssues = true; + } + + // Check environment + if (settings?.configuration?.environment && !this.environmentUidSet.has(settings.configuration.environment)) { + log.debug( + `Environment ${settings.configuration.environment} not found in project ${name}`, + this.config.auditContext, + ); + invalidEnvironments.push(settings.configuration.environment); + issuesList.push(`Invalid environment: ${settings.configuration.environment}`); + hasIssues = true; + } + + // Check locale + if (settings?.configuration?.locale && !this.localeCodeSet.has(settings.configuration.locale)) { + log.debug(`Locale ${settings.configuration.locale} not found in project ${name}`, this.config.auditContext); + invalidLocales.push(settings.configuration.locale); + issuesList.push(`Invalid locale: ${settings.configuration.locale}`); + hasIssues = true; + } + + if (hasIssues) { + log.debug(`Project ${name} has validation issues`, this.config.auditContext); + // Store the original project for fixing + this.projectsWithIssuesMap.set(uid, project); + + // Create a report-friendly object + const reportEntry: any = { + title: name, + name: name, + uid: uid, + content_types: invalidContentTypes.length > 0 ? invalidContentTypes : undefined, + environment: invalidEnvironments.length > 0 ? invalidEnvironments : undefined, + locale: invalidLocales.length > 0 ? invalidLocales : undefined, + issues: issuesList.join(', '), + }; + this.projectsWithIssues.push(reportEntry); + } else { + log.debug(`Project ${name} has no validation issues`, this.config.auditContext); + } + + log.info( + $t(auditMsg.SCAN_CS_SUCCESS_MSG, { + name, + uid, + }), + this.config.auditContext, + ); + } + + log.debug( + `Composable Studio audit completed. Found ${this.projectsWithIssues.length} projects with issues`, + this.config.auditContext, + ); + + if (this.fix && this.projectsWithIssues.length) { + log.debug(`Fix mode enabled, fixing ${this.projectsWithIssues.length} projects`, this.config.auditContext); + await this.fixComposableStudioProjects(); + this.projectsWithIssues.forEach((project) => { + log.debug(`Marking project ${project.name} as fixed`, this.config.auditContext); + project.fixStatus = 'Fixed'; + }); + log.debug(`Composable Studio fix completed`, this.config.auditContext); + return this.projectsWithIssues; + } + + log.debug(`Composable Studio audit completed without fixes`, this.config.auditContext); + return this.projectsWithIssues; + } + + /** + * Fix composable studio projects by removing invalid references + */ + async fixComposableStudioProjects() { + log.debug(`Starting composable studio projects fix`, this.config.auditContext); + + log.debug( + `Loading current composable studio projects from: ${this.composableStudioPath}`, + this.config.auditContext, + ); + let projectsData: any; + try { + projectsData = JSON.parse(readFileSync(this.composableStudioPath, 'utf-8')); + } catch (error) { + log.debug(`Failed to load composable studio projects for fixing: ${error}`, this.config.auditContext); + return; + } + + const isArray = Array.isArray(projectsData); + const projects: ComposableStudioProject[] = isArray ? projectsData : [projectsData]; + + log.debug(`Loaded ${projects.length} projects for fixing`, this.config.auditContext); + + for (let i = 0; i < projects.length; i++) { + const project = projects[i]; + const { uid, name } = project; + log.debug(`Fixing project: ${name} (${uid})`, this.config.auditContext); + + let needsFix = false; + + // Check and fix content type + if (project.contentTypeUid && !this.ctUidSet.has(project.contentTypeUid)) { + log.debug( + `Removing invalid content type ${project.contentTypeUid} from project ${name}`, + this.config.auditContext, + ); + cliux.print( + `Warning: Project "${name}" has invalid content type "${project.contentTypeUid}". It will be removed.`, + { color: 'yellow' }, + ); + (project as any).contentTypeUid = undefined; + needsFix = true; + } + + // Check and fix environment + if ( + project.settings?.configuration?.environment && + !this.environmentUidSet.has(project.settings.configuration.environment) + ) { + log.debug( + `Removing invalid environment ${project.settings.configuration.environment} from project ${name}`, + this.config.auditContext, + ); + cliux.print( + `Warning: Project "${name}" has invalid environment "${project.settings.configuration.environment}". It will be removed.`, + { color: 'yellow' }, + ); + (project.settings.configuration as any).environment = undefined; + needsFix = true; + } + + // Check and fix locale + if (project.settings?.configuration?.locale && !this.localeCodeSet.has(project.settings.configuration.locale)) { + log.debug( + `Removing invalid locale ${project.settings.configuration.locale} from project ${name}`, + this.config.auditContext, + ); + cliux.print( + `Warning: Project "${name}" has invalid locale "${project.settings.configuration.locale}". It will be removed.`, + { color: 'yellow' }, + ); + (project.settings.configuration as any).locale = undefined; + needsFix = true; + } + + if (needsFix) { + log.debug(`Project ${name} was fixed`, this.config.auditContext); + } else { + log.debug(`Project ${name} did not need fixing`, this.config.auditContext); + } + } + + log.debug(`Composable studio projects fix completed, writing updated file`, this.config.auditContext); + await this.writeFixContent(isArray ? projects : projects[0]); + } + + /** + * Write fixed composable studio projects back to file + */ + async writeFixContent(fixedProjects: any) { + log.debug(`Writing fix content`, this.config.auditContext); + log.debug(`Fix mode: ${this.fix}`, this.config.auditContext); + log.debug(`Copy directory flag: ${this.config.flags['copy-dir']}`, this.config.auditContext); + log.debug( + `External config skip confirm: ${this.config.flags['external-config']?.skipConfirm}`, + this.config.auditContext, + ); + log.debug(`Yes flag: ${this.config.flags.yes}`, this.config.auditContext); + + if ( + this.fix && + (this.config.flags['copy-dir'] || + this.config.flags['external-config']?.skipConfirm || + this.config.flags.yes || + (await cliux.confirm(commonMsg.FIX_CONFIRMATION))) + ) { + const outputPath = join(this.folderPath, this.config.moduleConfig[this.moduleName].fileName); + log.debug(`Writing fixed composable studio projects to: ${outputPath}`, this.config.auditContext); + + writeFileSync(outputPath, JSON.stringify(fixedProjects, null, 2)); + log.debug(`Successfully wrote fixed composable studio projects to file`, this.config.auditContext); + } else { + log.debug(`Skipping file write - fix mode disabled or user declined confirmation`, this.config.auditContext); + } + } +} diff --git a/packages/contentstack-audit/src/modules/index.ts b/packages/contentstack-audit/src/modules/index.ts index c76eca4a72..2a09f77621 100644 --- a/packages/contentstack-audit/src/modules/index.ts +++ b/packages/contentstack-audit/src/modules/index.ts @@ -7,5 +7,6 @@ import CustomRoles from './custom-roles'; import Assets from './assets'; import FieldRule from './field_rules'; import ModuleDataReader from './modulesData'; +import ComposableStudio from './composable-studio'; -export { Entries, GlobalField, ContentType, Workflows, Extensions, Assets, CustomRoles, FieldRule, ModuleDataReader }; +export { Entries, GlobalField, ContentType, Workflows, Extensions, Assets, CustomRoles, FieldRule, ModuleDataReader, ComposableStudio }; diff --git a/packages/contentstack-audit/src/modules/modulesData.ts b/packages/contentstack-audit/src/modules/modulesData.ts index 84f0d0e5cf..dc638c66c1 100644 --- a/packages/contentstack-audit/src/modules/modulesData.ts +++ b/packages/contentstack-audit/src/modules/modulesData.ts @@ -1,15 +1,9 @@ import { join, resolve } from 'path'; import { existsSync, readFileSync } from 'fs'; import { FsUtility, sanitizePath, log } from '@contentstack/cli-utilities'; -import { - ConfigType, - ContentTypeStruct, - CtConstructorParam, - ModuleConstructorParam, -} from '../types'; +import { ConfigType, ContentTypeStruct, CtConstructorParam, ModuleConstructorParam } from '../types'; import { keys, values } from 'lodash'; - export default class ModuleDataReader { public config: ConfigType; public folderPath: string; @@ -25,14 +19,14 @@ export default class ModuleDataReader { this.config = config; this.ctSchema = ctSchema; this.gfSchema = gfSchema; - + log.debug(`Initializing ModuleDataReader`, this.config.auditContext); log.debug(`Content types count: ${ctSchema.length}`, this.config.auditContext); log.debug(`Global fields count: ${gfSchema.length}`, this.config.auditContext); - + this.folderPath = resolve(sanitizePath(config.basePath)); log.debug(`Folder path: ${this.folderPath}`, this.config.auditContext); - + log.debug(`ModuleDataReader initialization completed`, this.config.auditContext); } @@ -40,7 +34,7 @@ export default class ModuleDataReader { log.debug(`Getting item count for module: ${moduleName}`, this.config.auditContext); let count = 0; switch (moduleName) { - case "content-types": + case 'content-types': log.debug(`Counting content types`, this.config.auditContext); count = this.ctSchema.length; log.debug(`Content types count: ${count}`, this.config.auditContext); @@ -54,7 +48,7 @@ export default class ModuleDataReader { log.debug(`Counting assets`, this.config.auditContext); const assetsPath = join(this.folderPath, 'assets'); log.debug(`Assets path: ${assetsPath}`, this.config.auditContext); - count = await this.readEntryAssetsModule(assetsPath,'assets') || 0; + count = (await this.readEntryAssetsModule(assetsPath, 'assets')) || 0; log.debug(`Assets count: ${count}`, this.config.auditContext); break; } @@ -64,31 +58,42 @@ export default class ModuleDataReader { const localesFolderPath = resolve(this.config.basePath, this.config.moduleConfig.locales.dirName); const localesPath = join(localesFolderPath, this.config.moduleConfig.locales.fileName); const masterLocalesPath = join(localesFolderPath, 'master-locale.json'); - + log.debug(`Locales folder path: ${localesFolderPath}`, this.config.auditContext); log.debug(`Locales path: ${localesPath}`, this.config.auditContext); log.debug(`Master locales path: ${masterLocalesPath}`, this.config.auditContext); - + log.debug(`Loading master locales`, this.config.auditContext); this.locales = values(await this.readUsingFsModule(masterLocalesPath)); - log.debug(`Loaded ${this.locales.length} master locales: ${this.locales.map(locale => locale.code).join(', ')}`, this.config.auditContext); + log.debug( + `Loaded ${this.locales.length} master locales: ${this.locales.map((locale) => locale.code).join(', ')}`, + this.config.auditContext, + ); if (existsSync(localesPath)) { log.debug(`Loading additional locales from file`, this.config.auditContext); this.locales.push(...values(JSON.parse(readFileSync(localesPath, 'utf8')))); - log.debug(`Total locales after loading: ${this.locales.length} - ${this.locales.map(locale => locale.code).join(', ')}`, this.config.auditContext); + log.debug( + `Total locales after loading: ${this.locales.length} - ${this.locales + .map((locale) => locale.code) + .join(', ')}`, + this.config.auditContext, + ); } else { log.debug(`Additional locales file not found`, this.config.auditContext); } - - log.debug(`Processing ${this.locales.length} locales and ${this.ctSchema.length} content types`, this.config.auditContext); - for (const {code} of this.locales) { + + log.debug( + `Processing ${this.locales.length} locales and ${this.ctSchema.length} content types`, + this.config.auditContext, + ); + for (const { code } of this.locales) { log.debug(`Processing locale: ${code}`, this.config.auditContext); for (const ctSchema of this.ctSchema) { log.debug(`Processing content type: ${ctSchema.uid}`, this.config.auditContext); - const basePath = join(this.folderPath,'entries', ctSchema.uid, code); + const basePath = join(this.folderPath, 'entries', ctSchema.uid, code); log.debug(`Base path: ${basePath}`, this.config.auditContext); - const entryCount = await this.readEntryAssetsModule(basePath, 'index') || 0; + const entryCount = (await this.readEntryAssetsModule(basePath, 'index')) || 0; log.debug(`Found ${entryCount} entries for ${ctSchema.uid} in ${code}`, this.config.auditContext); count = count + entryCount; } @@ -98,7 +103,8 @@ export default class ModuleDataReader { break; case 'custom-roles': case 'extensions': - case 'workflows': { + case 'workflows': + case 'composable-studio': { log.debug(`Counting ${moduleName}`, this.config.auditContext); const modulePath = resolve( this.folderPath, @@ -106,43 +112,50 @@ export default class ModuleDataReader { sanitizePath(this.config.moduleConfig[moduleName].fileName), ); log.debug(`Reading module: ${moduleName} from file: ${modulePath}`, this.config.auditContext); - + const moduleData = await this.readUsingFsModule(modulePath); - count = keys(moduleData).length; + // For composable-studio, it could be a single object or an array + if (moduleName === 'composable-studio') { + count = Array.isArray(moduleData) ? moduleData.length : Object.keys(moduleData).length > 0 ? 1 : 0; + } else { + count = keys(moduleData).length; + } log.debug(`module:${moduleName} count: ${count}`, this.config.auditContext); break; } } - + log.debug(`Module ${moduleName} item count: ${count}`, this.config.auditContext); return count; - } - async readUsingFsModule(path: string): Promise>{ + async readUsingFsModule(path: string): Promise> { log.debug(`Reading file: ${path}`, this.config.auditContext); - - const data = existsSync(path) ? (JSON.parse(readFileSync(path, 'utf-8'))) : []; - log.debug(`File ${existsSync(path) ? 'exists' : 'not found'}, data type: ${Array.isArray(data) ? 'array' : 'object'}`, this.config.auditContext); - + + const data = existsSync(path) ? JSON.parse(readFileSync(path, 'utf-8')) : []; + log.debug( + `File ${existsSync(path) ? 'exists' : 'not found'}, data type: ${Array.isArray(data) ? 'array' : 'object'}`, + this.config.auditContext, + ); + if (existsSync(path)) { const dataSize = Array.isArray(data) ? data.length : Object.keys(data).length; log.debug(`Loaded ${dataSize} items from file`, this.config.auditContext); } else { log.debug(`Returning empty array for non-existent file`, this.config.auditContext); } - + return data; } async readEntryAssetsModule(basePath: string, module: string): Promise { log.debug(`Reading entry/assets module: ${module}`, this.config.auditContext); log.debug(`Base path: ${basePath}`, this.config.auditContext); - + let fsUtility = new FsUtility({ basePath, indexFileName: `${module}.json` }); let indexer = fsUtility.indexFileContent; log.debug(`Found ${Object.keys(indexer).length} index files`, this.config.auditContext); - + let count = 0; for (const _ in indexer) { log.debug(`Reading chunk file`, this.config.auditContext); @@ -151,7 +164,7 @@ export default class ModuleDataReader { log.debug(`Loaded ${chunkCount} items from chunk`, this.config.auditContext); count = count + chunkCount; } - + log.debug(`Total ${module} count: ${count}`, this.config.auditContext); return count; } @@ -159,16 +172,16 @@ export default class ModuleDataReader { async run(): Promise { log.debug(`Starting ModuleDataReader run process`, this.config.auditContext); log.debug(`Available modules: ${Object.keys(this.config.moduleConfig).join(', ')}`, this.config.auditContext); - + await Promise.allSettled( Object.keys(this.config.moduleConfig).map(async (module) => { log.debug(`Processing module: ${module}`, this.config.auditContext); const count = await this.getModuleItemCount(module); this.auditData[module] = { Total: count }; log.debug(`Module ${module} processed with count: ${count}`, this.config.auditContext); - }) + }), ); - + log.debug(`ModuleDataReader run completed`, this.config.auditContext); log.debug(`Audit data: ${JSON.stringify(this.auditData)}`, this.config.auditContext); return this.auditData; diff --git a/packages/contentstack-audit/src/types/content-types.ts b/packages/contentstack-audit/src/types/content-types.ts index fcc9b1d866..2a27e92af7 100644 --- a/packages/contentstack-audit/src/types/content-types.ts +++ b/packages/contentstack-audit/src/types/content-types.ts @@ -175,6 +175,7 @@ enum OutputColumn { "Non-Fixable"="Non-Fixable", "Fixed" = "Fixed", "Not-Fixed" = "Not-Fixed", + "Issues" = "issues", } export { diff --git a/packages/contentstack-audit/test/unit/modules/composable-studio.test.ts b/packages/contentstack-audit/test/unit/modules/composable-studio.test.ts new file mode 100644 index 0000000000..a5830a3dd4 --- /dev/null +++ b/packages/contentstack-audit/test/unit/modules/composable-studio.test.ts @@ -0,0 +1,330 @@ +import { resolve } from 'path'; +import { fancy } from 'fancy-test'; +import { expect } from 'chai'; +import cloneDeep from 'lodash/cloneDeep'; +import { ux } from '@contentstack/cli-utilities'; +import sinon from 'sinon'; + +import config from '../../../src/config'; +import { ComposableStudio } from '../../../src/modules'; +import { mockLogger } from '../mock-logger'; + +describe('ComposableStudio', () => { + beforeEach(() => { + // Mock the logger for all tests + sinon.stub(require('@contentstack/cli-utilities'), 'log').value(mockLogger); + }); + + afterEach(() => { + sinon.restore(); + }); + + describe('run method with invalid path for composable-studio', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .stub(ux, 'confirm', async () => true) + .it('Should validate the base path for composable-studio', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { basePath: resolve(__dirname, '..', 'mock', 'invalid_path'), flags: {} }), + }); + const result = await cs.run(); + expect(result).to.eql({}); + }); + }); + + describe('run method with valid path and valid composable-studio project', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .stub(ux, 'confirm', async () => true) + .it('should load projects and report issues if references are invalid', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/`), + flags: {}, + }), + }); + + const missingRefs: any = await cs.run(); + expect(cs.composableStudioProjects).to.have.lengthOf(1); + expect(cs.composableStudioProjects[0].uid).to.equal('test_project_uid_1'); + expect(Array.isArray(missingRefs)).to.be.true; + }); + }); + + describe('run method with invalid composable-studio projects', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .stub(ux, 'confirm', async () => true) + .it('should detect invalid references', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/`), + flags: {}, + }), + }); + + // Mock readFileSync to return invalid data + const originalReadFileSync = require('fs').readFileSync; + const invalidProjects = require('./../mock/contents/composable_studio/invalid_composable_studio.json'); + + sinon.stub(require('fs'), 'readFileSync').callsFake((...args: any[]) => { + const path = args[0]; + if (path.includes('composable_studio.json')) { + return JSON.stringify(invalidProjects); + } + return originalReadFileSync(...args); + }); + + const missingRefs: any = await cs.run(); + + expect(cs.composableStudioProjects).to.have.lengthOf(4); + expect(cs.projectsWithIssues).to.have.lengthOf(4); + expect(Array.isArray(missingRefs)).to.be.true; + expect(missingRefs).to.have.lengthOf(4); + + // Check first project - invalid content type + const project1 = missingRefs.find((p: any) => p.uid === 'test_project_uid_2'); + expect(project1).to.exist; + expect(project1.content_types).to.deep.equal(['invalid_ct_999']); + expect(project1.issues).to.include('Invalid contentTypeUid: invalid_ct_999'); + + // Check second project - invalid environment + const project2 = missingRefs.find((p: any) => p.uid === 'test_project_uid_3'); + expect(project2).to.exist; + expect(project2.environment).to.deep.equal(['invalid_env_999']); + expect(project2.issues).to.include('Invalid environment: invalid_env_999'); + + // Check third project - invalid locale + const project3 = missingRefs.find((p: any) => p.uid === 'test_project_uid_4'); + expect(project3).to.exist; + expect(project3.locale).to.deep.equal(['invalid_locale_999']); + expect(project3.issues).to.include('Invalid locale: invalid_locale_999'); + + // Check fourth project - multiple issues + const project4 = missingRefs.find((p: any) => p.uid === 'test_project_uid_5'); + expect(project4).to.exist; + expect(project4.content_types).to.deep.equal(['invalid_ct_888']); + expect(project4.environment).to.deep.equal(['invalid_env_888']); + expect(project4.locale).to.deep.equal(['invalid_locale_888']); + expect(project4.issues).to.include('Invalid contentTypeUid: invalid_ct_888'); + expect(project4.issues).to.include('Invalid environment: invalid_env_888'); + expect(project4.issues).to.include('Invalid locale: invalid_locale_888'); + }); + }); + + describe('loadEnvironments method', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .it('should load environments correctly', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/composable_studio`), + flags: {}, + }), + }); + await cs.loadEnvironments(); + expect(cs.environmentUidSet.size).to.equal(2); + expect(cs.environmentUidSet.has('blt_env_dev')).to.be.true; + expect(cs.environmentUidSet.has('blt_env_prod')).to.be.true; + }); + }); + + describe('loadLocales method', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .it('should load locales correctly', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/composable_studio`), + flags: {}, + }), + }); + await cs.loadLocales(); + expect(cs.localeCodeSet.size).to.equal(3); // en-us (master) + fr-fr + de-de + expect(cs.localeCodeSet.has('en-us')).to.be.true; + expect(cs.localeCodeSet.has('fr-fr')).to.be.true; + expect(cs.localeCodeSet.has('de-de')).to.be.true; + }); + }); + + describe('run method with audit fix for composable-studio', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .stub(ux, 'confirm', async () => true) + .it('should fix invalid projects and return fixed references', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/`), + flags: { 'copy-dir': true }, + }), + fix: true, + }); + + // Mock readFileSync to return invalid data + const originalReadFileSync = require('fs').readFileSync; + const invalidProjects = require('./../mock/contents/composable_studio/invalid_composable_studio.json'); + + sinon.stub(require('fs'), 'readFileSync').callsFake((...args: any[]) => { + const path = args[0]; + if (path.includes('composable_studio.json')) { + return JSON.stringify(invalidProjects); + } + return originalReadFileSync(...args); + }); + + sinon.stub(cs, 'writeFixContent').resolves(); + + const fixedReferences: any = await cs.run(); + + expect(Array.isArray(fixedReferences)).to.be.true; + expect(fixedReferences.length).to.be.greaterThan(0); + + // All projects should have fixStatus set + fixedReferences.forEach((ref: any) => { + expect(ref.fixStatus).to.equal('Fixed'); + }); + + // Check that projects with issues were identified + expect(cs.projectsWithIssues.length).to.be.greaterThan(0); + }); + }); + + describe('validateModules method', () => { + it('should validate correct module name', () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/composable_studio`), + flags: {}, + }), + }); + const result = cs.validateModules('composable-studio', config.moduleConfig); + expect(result).to.equal('composable-studio'); + }); + + it('should return default module name for invalid module', () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/composable_studio`), + flags: {}, + }), + }); + const result = cs.validateModules('invalid-module' as any, config.moduleConfig); + expect(result).to.equal('composable-studio'); + }); + }); + + describe('Content type validation', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .it('should build content type UID set correctly', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/`), + flags: {}, + }), + }); + await cs.run(); + expect(cs.ctUidSet.size).to.equal(3); + expect(cs.ctUidSet.has('page_1')).to.be.true; + expect(cs.ctUidSet.has('page_2')).to.be.true; + expect(cs.ctUidSet.has('page_3')).to.be.true; + }); + }); + + describe('Report data structure', () => { + fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .stub(ux, 'confirm', async () => true) + .it('should return properly formatted report data', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/`), + flags: {}, + }), + }); + + // Mock readFileSync to return invalid data + const originalReadFileSync = require('fs').readFileSync; + const invalidProjects = require('./../mock/contents/composable_studio/invalid_composable_studio.json'); + + sinon.stub(require('fs'), 'readFileSync').callsFake((...args: any[]) => { + const path = args[0]; + if (path.includes('composable_studio.json')) { + return JSON.stringify(invalidProjects); + } + return originalReadFileSync(...args); + }); + + const missingRefs: any = await cs.run(); + + expect(Array.isArray(missingRefs)).to.be.true; + expect(missingRefs.length).to.be.greaterThan(0); + + // Check that all report entries have required fields + missingRefs.forEach((ref: any) => { + expect(ref).to.have.property('title'); + expect(ref).to.have.property('name'); + expect(ref).to.have.property('uid'); + expect(ref).to.have.property('issues'); + }); + + // Check that issues field contains descriptive text + const projectWithCTIssue = missingRefs.find((ref: any) => ref.content_types); + if (projectWithCTIssue) { + expect(projectWithCTIssue.issues).to.be.a('string'); + expect(projectWithCTIssue.issues).to.include('contentTypeUid'); + } + }); + }); + + describe('Empty and edge cases', () => { + it('should handle empty content type schema gracefully', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: [], + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents/composable_studio`), + flags: {}, + }), + }); + + await cs.run(); + expect(cs.ctUidSet.size).to.equal(0); + }); + + it('should handle missing composable_studio.json file', async () => { + const cs = new ComposableStudio({ + moduleName: 'composable-studio', + ctSchema: cloneDeep(require('./../mock/contents/composable_studio/ctSchema.json')), + config: Object.assign(config, { + basePath: resolve(`./test/unit/mock/contents`), + flags: {}, + }), + }); + + const result = await cs.run(); + // When the file exists and has projects with validation issues, it returns an array + expect(result).to.exist; + }); + }); +}); diff --git a/packages/contentstack-import/package.json b/packages/contentstack-import/package.json index 96e6cdc73f..89dafc7a5f 100644 --- a/packages/contentstack-import/package.json +++ b/packages/contentstack-import/package.json @@ -5,7 +5,7 @@ "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { - "@contentstack/cli-audit": "~1.16.2", + "@contentstack/cli-audit": "~1.17.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", "@contentstack/management": "~1.22.0", diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index e2718ed94c..272cadd25c 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -22,7 +22,7 @@ "prepack": "pnpm compile && oclif manifest && oclif readme" }, "dependencies": { - "@contentstack/cli-audit": "~1.16.2", + "@contentstack/cli-audit": "~1.17.0", "@contentstack/cli-cm-export": "~1.22.2", "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-auth": "~1.6.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 99a8f71f5c..cd800a357b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ importers: packages/contentstack: specifiers: - '@contentstack/cli-audit': ~1.16.2 + '@contentstack/cli-audit': ~1.17.0 '@contentstack/cli-auth': ~1.6.3 '@contentstack/cli-cm-bootstrap': ~1.18.0 '@contentstack/cli-cm-branches': ~1.6.2 @@ -652,7 +652,7 @@ importers: packages/contentstack-import: specifiers: - '@contentstack/cli-audit': ~1.16.2 + '@contentstack/cli-audit': ~1.17.0 '@contentstack/cli-command': ~1.7.1 '@contentstack/cli-utilities': ~1.16.0 '@contentstack/cli-variants': ~1.3.6 @@ -8735,7 +8735,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 8.50.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 8.50.0_k2rwabtyo525wwqr6566umnmhy debug: 3.2.7 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 @@ -8765,7 +8765,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.21.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 6.21.0_k2rwabtyo525wwqr6566umnmhy debug: 3.2.7 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 @@ -8861,7 +8861,7 @@ packages: optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 6.21.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 6.21.0_k2rwabtyo525wwqr6566umnmhy array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 @@ -8898,7 +8898,7 @@ packages: optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.50.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 8.50.0_k2rwabtyo525wwqr6566umnmhy array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 From 77eedb4b210ca5e453cc973795dfb9cf38b719eb Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Thu, 18 Dec 2025 12:44:23 +0530 Subject: [PATCH 04/16] updated test cases --- .talismanrc | 2 +- .../unit/import/modules/content-types.test.ts | 4 + .../test/unit/import/modules/entries.test.ts | 1368 +++++++++-------- 3 files changed, 741 insertions(+), 633 deletions(-) diff --git a/.talismanrc b/.talismanrc index 536d7a39d5..678ce7be82 100644 --- a/.talismanrc +++ b/.talismanrc @@ -116,7 +116,7 @@ fileignoreconfig: - filename: packages/contentstack-import/test/unit/import/modules/mock-data/entries/environments.json checksum: 17f94f500dcb265575b60f8d2cb7464372a234e452527b3bdec6052c606cee28 - filename: packages/contentstack-import/test/unit/import/modules/entries.test.ts - checksum: 7b984d292a534f9d075d801de2aeff802b2832bc5e2efadf8613a7059f4317fc + checksum: d8e4f6ad185b36b6f84b38dce169144e7d5a195668aac11f914eed5e1e4b5478 - filename: packages/contentstack-import/test/unit/import/modules/labels.test.ts checksum: 46fe0d1602ab386f7eaee9839bc376b98ab8d4262f823784eda9cfa2bf893758 - filename: packages/contentstack-export/test/unit/export/modules/assets.test.ts diff --git a/packages/contentstack-import/test/unit/import/modules/content-types.test.ts b/packages/contentstack-import/test/unit/import/modules/content-types.test.ts index 09036ba4e3..5f9989289f 100644 --- a/packages/contentstack-import/test/unit/import/modules/content-types.test.ts +++ b/packages/contentstack-import/test/unit/import/modules/content-types.test.ts @@ -82,6 +82,10 @@ describe('ImportContentTypes', () => { writeConcurrency: 1, fileName: 'globalfields.json', limit: 100 + }, + 'composable-studio': { + dirName: 'composable_studio', + fileName: 'composable_studio.json' } }, backupDir: '/test/backup', diff --git a/packages/contentstack-import/test/unit/import/modules/entries.test.ts b/packages/contentstack-import/test/unit/import/modules/entries.test.ts index 3815ff8e53..eaaa2ba6f1 100644 --- a/packages/contentstack-import/test/unit/import/modules/entries.test.ts +++ b/packages/contentstack-import/test/unit/import/modules/entries.test.ts @@ -6,7 +6,6 @@ import { FsUtility } from '@contentstack/cli-utilities'; import { fsUtil, fileHelper } from '../../../../src/utils'; import * as path from 'path'; - const mockData = require('./mock-data/entries/content-types.json'); const mockEntries = require('./mock-data/entries/entries.json'); const mockLocales = require('./mock-data/entries/locales.json'); @@ -49,12 +48,12 @@ describe('EntriesImport', () => { delete: sinon.stub().resolves({ uid: 'deleted-entry-uid' }), publish: sinon.stub().resolves({ uid: 'published-entry-uid' }), query: sinon.stub().returns({ - findOne: sinon.stub().resolves({ items: [{ uid: 'existing-entry-uid', title: 'Existing Entry' }] }) - }) + findOne: sinon.stub().resolves({ items: [{ uid: 'existing-entry-uid', title: 'Existing Entry' }] }), + }), }), fetch: sinon.stub().resolves({ uid: 'ct-uid', schema: [] }), - update: sinon.stub().resolves({ uid: 'updated-ct-uid' }) - }) + update: sinon.stub().resolves({ uid: 'updated-ct-uid' }), + }), }; mockImportConfig = { @@ -73,23 +72,27 @@ describe('EntriesImport', () => { sessionId: 'session-123', apiKey: 'test', orgId: 'org-123', - authenticationMethod: 'Basic Auth' + authenticationMethod: 'Basic Auth', }, modules: { types: ['entries'], - entries: { + entries: { dirName: 'entries', chunkFileSize: 100, invalidKeys: ['_version', 'created_at', 'updated_at'], - importConcurrency: 5 + importConcurrency: 5, }, 'content-types': { - dirName: 'content_types' + dirName: 'content_types', }, locales: { dirName: 'locales', - fileName: 'locales.json' - } + fileName: 'locales.json', + }, + 'composable-studio': { + dirName: 'composable_studio', + fileName: 'composable_studio.json', + }, }, backupDir: '/test/backup', cliLogsPath: '/test/logs', @@ -103,13 +106,13 @@ describe('EntriesImport', () => { skipEntriesPublish: false, 'exclude-global-modules': false, replaceExisting: false, - importConcurrency: 5 + importConcurrency: 5, } as any; entriesImport = new EntriesImport({ importConfig: mockImportConfig as any, stackAPIClient: mockStackClient, - moduleName: 'entries' + moduleName: 'entries', }); makeConcurrentCallStub = sinon.stub(entriesImport as any, 'makeConcurrentCall').resolves(); @@ -171,16 +174,16 @@ describe('EntriesImport', () => { entries: { dirName: 'entries', chunkFileSize: 100, - invalidKeys: ['_version', 'created_at', 'updated_at'] + invalidKeys: ['_version', 'created_at', 'updated_at'], // No importConcurrency - } - } + }, + }, }; const entriesImportFallback = new EntriesImport({ importConfig: configWithoutEntriesConcurrency as any, stackAPIClient: mockStackClient, - moduleName: 'entries' + moduleName: 'entries', }); expect(entriesImportFallback['importConcurrency']).to.equal(5); @@ -193,7 +196,7 @@ describe('EntriesImport', () => { mockData.simpleContentType, mockData.contentTypeWithReferences, mockData.contentTypeWithJsonRte, - mockData.contentTypeWithAssets + mockData.contentTypeWithAssets, ]; entriesImport['installedExtensions'] = mockMappers.installedExtensions; }); @@ -204,7 +207,7 @@ describe('EntriesImport', () => { const onSuccess = options.apiParams.resolve; onSuccess({ response: { uid: 'ct-uid' }, - apiData: { uid: 'ct-uid' } + apiData: { uid: 'ct-uid' }, }); }); @@ -219,7 +222,7 @@ describe('EntriesImport', () => { const onReject = options.apiParams.reject; onReject({ error: new Error('Content type processing failed'), - apiData: { uid: 'ct-uid' } + apiData: { uid: 'ct-uid' }, }); }); @@ -239,16 +242,16 @@ describe('EntriesImport', () => { uid: 'mandatory_field', data_type: 'text', display_name: 'Mandatory Field', - mandatory: true - } - ] + mandatory: true, + }, + ], }; const apiOptions = { apiData: contentTypeWithReferences, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTs'](apiOptions); @@ -267,16 +270,16 @@ describe('EntriesImport', () => { uid: 'mandatory_field', data_type: 'text', display_name: 'Mandatory Field', - mandatory: true - } - ] + mandatory: true, + }, + ], }; const apiOptions = { apiData: contentTypeWithJsonRte, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTs'](apiOptions); @@ -297,7 +300,7 @@ describe('EntriesImport', () => { data_type: 'text', display_name: 'Title', mandatory: true, - unique: true + unique: true, }, { uid: 'rte_field', @@ -305,24 +308,24 @@ describe('EntriesImport', () => { display_name: 'RTE Field', field_metadata: { rich_text_type: true, - embed_entry: true + embed_entry: true, }, - reference_to: ['simple_ct'] + reference_to: ['simple_ct'], }, { uid: 'mandatory_field', data_type: 'text', display_name: 'Mandatory Field', - mandatory: true - } - ] + mandatory: true, + }, + ], }; const apiOptions = { apiData: contentTypeWithRte, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTs'](apiOptions); @@ -338,7 +341,7 @@ describe('EntriesImport', () => { apiData: mockData.simpleContentType, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTs'](apiOptions); @@ -356,22 +359,22 @@ describe('EntriesImport', () => { uid: 'mandatory_field', data_type: 'text', display_name: 'Mandatory Field', - mandatory: true - } + mandatory: true, + }, ], field_rules: [ { conditions: [{ operand_field: 'title', operator: 'equals', value: 'test' }], - actions: [{ operand_field: 'description', action: 'show' }] - } - ] + actions: [{ operand_field: 'description', action: 'show' }], + }, + ], }; const apiOptions = { apiData: contentTypeWithFieldRules, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTs'](apiOptions); @@ -389,22 +392,22 @@ describe('EntriesImport', () => { data_type: 'text', display_name: 'Title', mandatory: true, - unique: true + unique: true, }, { uid: 'mandatory_field', data_type: 'text', display_name: 'Mandatory Field', - mandatory: true - } - ] + mandatory: true, + }, + ], }; const apiOptions = { apiData: contentTypeWithMandatory, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; entriesImport['serializeUpdateCTs'](apiOptions); @@ -424,7 +427,7 @@ describe('EntriesImport', () => { const onSuccess = options.apiParams.resolve; onSuccess({ response: { uid: 'ct-uid' }, - apiData: { uid: 'ct-uid' } + apiData: { uid: 'ct-uid' }, }); }); @@ -438,7 +441,7 @@ describe('EntriesImport', () => { const onReject = options.apiParams.reject; onReject({ error: new Error('Content type update failed'), - apiData: { uid: 'ct-uid' } + apiData: { uid: 'ct-uid' }, }); }); @@ -458,7 +461,7 @@ describe('EntriesImport', () => { apiData: mockData.contentTypeWithReferences, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTsWithRef'](apiOptions); @@ -473,16 +476,16 @@ describe('EntriesImport', () => { field_rules: [ { conditions: [{ operand_field: 'title', operator: 'equals', value: 'test' }], - actions: [{ operand_field: 'description', action: 'show' }] - } - ] + actions: [{ operand_field: 'description', action: 'show' }], + }, + ], }; const apiOptions = { apiData: contentTypeWithFieldRules, entity: 'update-cts' as const, resolve: sinon.stub(), - reject: sinon.stub() + reject: sinon.stub(), }; const result = entriesImport['serializeUpdateCTsWithRef'](apiOptions); @@ -495,8 +498,8 @@ describe('EntriesImport', () => { beforeEach(() => { entriesImport['cTs'] = [mockData.contentTypeWithFieldRules]; entriesImport['entriesUidMapper'] = { - 'entry_uid_1': 'new_entry_uid_1', - 'entry_uid_2': 'new_entry_uid_2' + entry_uid_1: 'new_entry_uid_1', + entry_uid_2: 'new_entry_uid_2', }; fsUtilityReadFileStub.callsFake((path) => { if (path.includes('field_rules_uid.json')) { @@ -513,11 +516,11 @@ describe('EntriesImport', () => { const mockContentTypeResponse = { uid: 'field_rules_ct', field_rules: mockData.contentTypeWithFieldRules.field_rules, - update: sinon.stub().resolves({ uid: 'updated-ct' }) + update: sinon.stub().resolves({ uid: 'updated-ct' }), }; mockStackClient.contentType.returns({ - fetch: sinon.stub().resolves(mockContentTypeResponse) + fetch: sinon.stub().resolves(mockContentTypeResponse), }); await entriesImport['updateFieldRules'](); @@ -542,7 +545,7 @@ describe('EntriesImport', () => { it('should handle content type not found', async () => { mockStackClient.contentType.returns({ - fetch: sinon.stub().resolves(null) + fetch: sinon.stub().resolves(null), }); await entriesImport['updateFieldRules'](); @@ -553,7 +556,7 @@ describe('EntriesImport', () => { it('should handle content type without field rules', async () => { const contentTypeWithoutFieldRules = { ...mockData.contentTypeWithFieldRules, - field_rules: undefined + field_rules: undefined, }; fsUtilityReadFileStub.callsFake((path) => { @@ -583,11 +586,11 @@ describe('EntriesImport', () => { mockData.contentTypeWithRte, mockData.contentTypeWithAssets, mockData.contentTypeWithTaxonomy, - mockData.contentTypeWithGroups + mockData.contentTypeWithGroups, ]; entriesImport['locales'] = [ { code: 'en-us', name: 'English (United States)' }, - { code: 'fr-fr', name: 'French (France)' } + { code: 'fr-fr', name: 'French (France)' }, ]; entriesImport['installedExtensions'] = mockMappers.installedExtensions; entriesImport['assetUidMapper'] = mockMappers.assetUidMapper; @@ -603,7 +606,7 @@ describe('EntriesImport', () => { expect(result).to.have.lengthOf(14); // 7 content types × 2 locales // Check that all content types are included - const contentTypes = result.map(option => option.cTUid); + const contentTypes = result.map((option) => option.cTUid); expect(contentTypes).to.include('simple_ct'); expect(contentTypes).to.include('ref_ct'); expect(contentTypes).to.include('json_rte_ct'); @@ -613,12 +616,12 @@ describe('EntriesImport', () => { expect(contentTypes).to.include('group_ct'); // Check that all locales are included - const locales = result.map(option => option.locale); + const locales = result.map((option) => option.locale); expect(locales).to.include('en-us'); expect(locales).to.include('fr-fr'); // Check structure of each option - result.forEach(option => { + result.forEach((option) => { expect(option).to.have.property('cTUid'); expect(option).to.have.property('locale'); expect(option.cTUid).to.be.a('string'); @@ -647,7 +650,7 @@ describe('EntriesImport', () => { it('should handle empty chunks', async () => { // Mock FsUtility to return empty indexer const mockFsUtility = { - indexFileContent: {} + indexFileContent: {}, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); @@ -660,17 +663,17 @@ describe('EntriesImport', () => { // Mock FsUtility for entry creation const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1', 'entry2'] - } + 'chunk1.json': ['entry1', 'entry2'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + // Mock readChunkFiles.next() to return entry data const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.simpleEntry, - 'entry2': mockEntries.entryWithReferences - }) + entry1: mockEntries.simpleEntry, + entry2: mockEntries.entryWithReferences, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -691,8 +694,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -705,30 +708,30 @@ describe('EntriesImport', () => { expect(mockReadChunkFiles.next.called).to.be.true; expect(mockWriteIntoFile.called).to.be.true; expect(mockCompleteFile.called).to.be.true; - + // Check that UID mapping was created expect(entriesImport['entriesUidMapper']['simple_entry_1']).to.equal('new_simple_entry_1'); - + // Check that entry was added to variant list expect(entriesImport['entriesForVariant']).to.deep.include({ content_type: 'simple_ct', entry_uid: 'simple_entry_1', - locale: 'en-us' + locale: 'en-us', }); }); it('should process entries successfully in non-master locale', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.simpleEntry - }) + entry1: mockEntries.simpleEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -747,8 +750,8 @@ describe('EntriesImport', () => { locale: 'fr-fr', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: false - } + isMasterLocale: false, + }, }); }); @@ -758,27 +761,27 @@ describe('EntriesImport', () => { await entriesImport['createEntries']({ cTUid: 'simple_ct', locale: 'fr-fr' }); expect(makeConcurrentCallStub.called).to.be.true; - + // Check that entry was added to auto-created entries for cleanup expect(entriesImport['autoCreatedEntries']).to.deep.include({ cTUid: 'simple_ct', locale: 'fr-fr', - entryUid: 'new_simple_entry_1' + entryUid: 'new_simple_entry_1', }); }); it('should handle localized entries correctly', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.localizedEntry - }) + entry1: mockEntries.localizedEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -800,34 +803,34 @@ describe('EntriesImport', () => { isMasterLocale: false, [mockEntries.localizedEntry.uid]: { isLocalized: true, - entryOldUid: 'old_localized_entry_1' - } - } + entryOldUid: 'old_localized_entry_1', + }, + }, }); }); await entriesImport['createEntries']({ cTUid: 'simple_ct', locale: 'fr-fr' }); expect(makeConcurrentCallStub.called).to.be.true; - + // Check that localized entry was added to variant list with old UID expect(entriesImport['entriesForVariant']).to.deep.include({ content_type: 'simple_ct', entry_uid: 'old_localized_entry_1', - locale: 'fr-fr' + locale: 'fr-fr', }); }); it('should handle chunk read errors', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { - next: sinon.stub().rejects(new Error('Chunk read failed')) + next: sinon.stub().rejects(new Error('Chunk read failed')), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -840,15 +843,15 @@ describe('EntriesImport', () => { it('should handle error code 119 with replaceExisting true', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.existingEntry - }) + entry1: mockEntries.existingEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -860,9 +863,9 @@ describe('EntriesImport', () => { makeConcurrentCallStub.callsFake(async (options) => { const onReject = options.apiParams.reject; onReject({ - error: { - errorCode: 119, - errors: { title: 'already exists' } + error: { + errorCode: 119, + errors: { title: 'already exists' }, }, apiData: mockEntries.existingEntry, additionalInfo: { @@ -870,8 +873,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -888,15 +891,15 @@ describe('EntriesImport', () => { it('should handle error code 119 with skipExisting true', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.existingEntry - }) + entry1: mockEntries.existingEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -908,9 +911,9 @@ describe('EntriesImport', () => { makeConcurrentCallStub.callsFake(async (options) => { const onReject = options.apiParams.reject; onReject({ - error: { - errorCode: 119, - errors: { title: 'already exists' } + error: { + errorCode: 119, + errors: { title: 'already exists' }, }, apiData: mockEntries.existingEntry, additionalInfo: { @@ -918,8 +921,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -934,15 +937,15 @@ describe('EntriesImport', () => { it('should handle error code 119 without title/uid errors', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.existingEntry - }) + entry1: mockEntries.existingEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -954,9 +957,9 @@ describe('EntriesImport', () => { makeConcurrentCallStub.callsFake(async (options) => { const onReject = options.apiParams.reject; onReject({ - error: { - errorCode: 119, - errors: { other: 'some error' } + error: { + errorCode: 119, + errors: { other: 'some error' }, }, apiData: mockEntries.existingEntry, additionalInfo: { @@ -964,8 +967,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -976,22 +979,22 @@ describe('EntriesImport', () => { expect(entriesImport['failedEntries']).to.deep.include({ content_type: 'simple_ct', locale: 'en-us', - entry: { uid: 'existing_entry_1', title: 'Existing Entry' } + entry: { uid: 'existing_entry_1', title: 'Existing Entry' }, }); }); it('should handle other error codes', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.simpleEntry - }) + entry1: mockEntries.simpleEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1003,9 +1006,9 @@ describe('EntriesImport', () => { makeConcurrentCallStub.callsFake(async (options) => { const onReject = options.apiParams.reject; onReject({ - error: { - errorCode: 500, - message: 'Server error' + error: { + errorCode: 500, + message: 'Server error', }, apiData: mockEntries.simpleEntry, additionalInfo: { @@ -1013,8 +1016,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -1025,22 +1028,22 @@ describe('EntriesImport', () => { expect(entriesImport['failedEntries']).to.deep.include({ content_type: 'simple_ct', locale: 'en-us', - entry: { uid: 'simple_entry_1', title: 'Simple Entry 1' } + entry: { uid: 'simple_entry_1', title: 'Simple Entry 1' }, }); }); it('should remove failed entries from variant list', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.simpleEntry - }) + entry1: mockEntries.simpleEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1051,15 +1054,15 @@ describe('EntriesImport', () => { // Pre-populate variant list entriesImport['entriesForVariant'] = [ - { content_type: 'simple_ct', entry_uid: 'simple_entry_1', locale: 'en-us' } + { content_type: 'simple_ct', entry_uid: 'simple_entry_1', locale: 'en-us' }, ]; makeConcurrentCallStub.callsFake(async (options) => { const onReject = options.apiParams.reject; onReject({ - error: { - errorCode: 500, - message: 'Server error' + error: { + errorCode: 500, + message: 'Server error', }, apiData: mockEntries.simpleEntry, additionalInfo: { @@ -1067,8 +1070,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -1078,7 +1081,7 @@ describe('EntriesImport', () => { expect(entriesImport['entriesForVariant']).to.not.deep.include({ content_type: 'simple_ct', entry_uid: 'simple_entry_1', - locale: 'en-us' + locale: 'en-us', }); }); @@ -1086,21 +1089,21 @@ describe('EntriesImport', () => { const mockFsUtility = { indexFileContent: { 'chunk1.json': ['entry1'], - 'chunk2.json': ['entry2'] - } + 'chunk2.json': ['entry2'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + let chunkCallCount = 0; const mockReadChunkFiles = { next: sinon.stub().callsFake(() => { chunkCallCount++; if (chunkCallCount === 1) { - return Promise.resolve({ 'entry1': mockEntries.simpleEntry }); + return Promise.resolve({ entry1: mockEntries.simpleEntry }); } else { - return Promise.resolve({ 'entry2': mockEntries.entryWithReferences }); + return Promise.resolve({ entry2: mockEntries.entryWithReferences }); } - }) + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1119,8 +1122,8 @@ describe('EntriesImport', () => { locale: 'en-us', cTUid: 'simple_ct', entryFileName: 'chunk1.json', - isMasterLocale: true - } + isMasterLocale: true, + }, }); }); @@ -1142,8 +1145,8 @@ describe('EntriesImport', () => { cTUid: 'simple_ct', locale: 'en-us', contentType: mockData.simpleContentType, - isMasterLocale: true - } + isMasterLocale: true, + }, }; const result = entriesImport['serializeEntries'](apiOptions); @@ -1163,8 +1166,8 @@ describe('EntriesImport', () => { cTUid: 'json_rte_ct', locale: 'en-us', contentType: mockData.contentTypeWithJsonRte, - isMasterLocale: true - } + isMasterLocale: true, + }, }; entriesImport['jsonRteCTs'] = ['json_rte_ct']; @@ -1186,8 +1189,8 @@ describe('EntriesImport', () => { cTUid: 'rte_ct', locale: 'en-us', contentType: mockData.contentTypeWithRte, - isMasterLocale: true - } + isMasterLocale: true, + }, }; entriesImport['rteCTsWithRef'] = ['rte_ct']; @@ -1208,8 +1211,8 @@ describe('EntriesImport', () => { cTUid: 'taxonomy_ct', locale: 'en-us', contentType: mockData.contentTypeWithTaxonomy, - isMasterLocale: true - } + isMasterLocale: true, + }, }; const result = entriesImport['serializeEntries'](apiOptions); @@ -1228,11 +1231,11 @@ describe('EntriesImport', () => { cTUid: 'simple_ct', locale: 'fr-fr', contentType: mockData.simpleContentType, - isMasterLocale: false - } + isMasterLocale: false, + }, }; - entriesImport['entriesUidMapper'] = { 'old_localized_entry_1': 'new_localized_entry_1' }; + entriesImport['entriesUidMapper'] = { old_localized_entry_1: 'new_localized_entry_1' }; // Mock lookupAssets to modify the entry in place and return it const originalLookupAssets = require('../../../../src/utils').lookupAssets; @@ -1244,18 +1247,18 @@ describe('EntriesImport', () => { // Return the modified entry return entryData.entry; }, - configurable: true + configurable: true, }); // Mock the stack client for localized entry processing const mockEntryResponse = { uid: 'new_localized_entry_1' }; const mockEntry = { - uid: sinon.stub().returns(mockEntryResponse) + uid: sinon.stub().returns(mockEntryResponse), }; mockStackClient.contentType = sinon.stub().returns({ - entry: sinon.stub().returns(mockEntry) + entry: sinon.stub().returns(mockEntry), }); - + // Mock the stack client on the entriesImport instance sinon.stub(entriesImport, 'stack').value(mockStackClient); @@ -1265,13 +1268,13 @@ describe('EntriesImport', () => { expect(result.apiData.uid).to.equal('new_localized_entry_1'); // UID is mapped for localized entries expect(result.additionalInfo['new_localized_entry_1']).to.deep.include({ isLocalized: true, - entryOldUid: 'old_localized_entry_1' + entryOldUid: 'old_localized_entry_1', }); // Restore original function Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { value: originalLookupAssets, - configurable: true + configurable: true, }); }); @@ -1285,8 +1288,8 @@ describe('EntriesImport', () => { cTUid: 'simple_ct', locale: 'en-us', contentType: mockData.simpleContentType, - isMasterLocale: true - } + isMasterLocale: true, + }, }; // Create an entry that will cause an error during serialization @@ -1294,23 +1297,23 @@ describe('EntriesImport', () => { uid: 'invalid_entry', title: 'Invalid Entry', // This will cause an error in lookupAssets due to missing required properties - invalid_field: 'test' + invalid_field: 'test', }; const invalidApiOptions = { ...apiOptions, - apiData: invalidEntry + apiData: invalidEntry, }; // Mock the lookupAssets function to throw an error const lookupAssetsStub = sinon.stub().throws(new Error('Asset lookup failed')); const utils = require('../../../../src/utils'); - + // Use Object.defineProperty to override the getter Object.defineProperty(utils, 'lookupAssets', { value: lookupAssetsStub, writable: true, - configurable: true + configurable: true, }); const result = entriesImport['serializeEntries'](invalidApiOptions); @@ -1321,7 +1324,7 @@ describe('EntriesImport', () => { expect(entriesImport['failedEntries'][0]).to.deep.include({ content_type: 'simple_ct', locale: 'en-us', - entry: { uid: 'invalid_entry', title: 'Invalid Entry' } + entry: { uid: 'invalid_entry', title: 'Invalid Entry' }, }); }); }); @@ -1330,7 +1333,7 @@ describe('EntriesImport', () => { it('should create variant entry data file', () => { entriesImport['entriesForVariant'] = [ { content_type: 'simple_ct', entry_uid: 'entry_1', locale: 'fr-fr' }, - { content_type: 'ref_ct', entry_uid: 'entry_2', locale: 'en-us' } + { content_type: 'ref_ct', entry_uid: 'entry_2', locale: 'en-us' }, ]; // Mock the writeFileSync function to avoid file system errors @@ -1375,11 +1378,11 @@ describe('EntriesImport', () => { mockData.simpleContentType, mockData.contentTypeWithReferences, mockData.contentTypeWithJsonRte, - mockData.contentTypeWithRte + mockData.contentTypeWithRte, ]; entriesImport['locales'] = [ { code: 'en-us', name: 'English (United States)' }, - { code: 'fr-fr', name: 'French (France)' } + { code: 'fr-fr', name: 'French (France)' }, ]; entriesImport['refCTs'] = ['ref_ct', 'json_rte_ct', 'rte_ct']; entriesImport['jsonRteCTs'] = ['json_rte_ct']; @@ -1389,10 +1392,10 @@ describe('EntriesImport', () => { entriesImport['assetUrlMapper'] = mockMappers.assetUrlMapper; entriesImport['taxonomies'] = mockMappers.taxonomies; entriesImport['entriesUidMapper'] = { - 'simple_entry_1': 'new_simple_entry_1', - 'ref_entry_1': 'new_ref_entry_1', - 'json_rte_entry_1': 'new_json_rte_entry_1', - 'rte_entry_1': 'new_rte_entry_1' + simple_entry_1: 'new_simple_entry_1', + ref_entry_1: 'new_ref_entry_1', + json_rte_entry_1: 'new_json_rte_entry_1', + rte_entry_1: 'new_rte_entry_1', }; }); @@ -1404,13 +1407,13 @@ describe('EntriesImport', () => { expect(result).to.have.lengthOf(6); // 3 ref content types × 2 locales // Check that all reference content types are included - const contentTypes = result.map(option => option.cTUid); + const contentTypes = result.map((option) => option.cTUid); expect(contentTypes).to.include('ref_ct'); expect(contentTypes).to.include('json_rte_ct'); expect(contentTypes).to.include('rte_ct'); // Check that all locales are included - const locales = result.map(option => option.locale); + const locales = result.map((option) => option.locale); expect(locales).to.include('en-us'); expect(locales).to.include('fr-fr'); }); @@ -1436,7 +1439,7 @@ describe('EntriesImport', () => { it('should handle empty chunks', async () => { // Mock FsUtility to return empty indexer const mockFsUtility = { - indexFileContent: {} + indexFileContent: {}, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); @@ -1449,17 +1452,17 @@ describe('EntriesImport', () => { // Mock FsUtility for entry updates const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1', 'entry2'] - } + 'chunk1.json': ['entry1', 'entry2'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + // Mock readChunkFiles.next() to return entry data const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.entryWithReferences, - 'entry2': mockEntries.simpleEntry - }) + entry1: mockEntries.entryWithReferences, + entry2: mockEntries.simpleEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1467,7 +1470,7 @@ describe('EntriesImport', () => { const onSuccess = options.apiParams.resolve; onSuccess({ response: { uid: 'updated-entry-uid' }, - apiData: { uid: 'ref_entry_1', url: '/ref-entry-1', title: 'Entry with References' } + apiData: { uid: 'ref_entry_1', url: '/ref-entry-1', title: 'Entry with References' }, }); }); @@ -1480,13 +1483,13 @@ describe('EntriesImport', () => { it('should handle chunk read errors', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { - next: sinon.stub().rejects(new Error('Chunk read failed')) + next: sinon.stub().rejects(new Error('Chunk read failed')), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1499,15 +1502,15 @@ describe('EntriesImport', () => { it('should handle API errors in onReject', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.entryWithReferences - }) + entry1: mockEntries.entryWithReferences, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1515,7 +1518,7 @@ describe('EntriesImport', () => { const onReject = options.apiParams.reject; onReject({ error: { status: 500, message: 'Update failed' }, - apiData: { uid: 'ref_entry_1', title: 'Entry with References' } + apiData: { uid: 'ref_entry_1', title: 'Entry with References' }, }); }); @@ -1526,7 +1529,7 @@ describe('EntriesImport', () => { content_type: 'ref_ct', locale: 'en-us', entry: { uid: 'new_ref_entry_1', title: 'Entry with References' }, - entryId: 'ref_entry_1' + entryId: 'ref_entry_1', }); }); }); @@ -1538,7 +1541,7 @@ describe('EntriesImport', () => { uid: 'ref_entry_1', title: 'Entry with References', sourceEntryFilePath: '/path/to/source.json', - entryOldUid: 'ref_entry_1' + entryOldUid: 'ref_entry_1', }, entity: 'update-entries' as const, resolve: sinon.stub(), @@ -1546,22 +1549,22 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'ref_ct', locale: 'en-us', - contentType: mockData.contentTypeWithReferences - } + contentType: mockData.contentTypeWithReferences, + }, }; // Mock fsUtil.readFile to return source entry fsUtilityReadFileStub.callsFake((path) => { if (path.includes('source.json')) { return { - 'ref_entry_1': { + ref_entry_1: { uid: 'ref_entry_1', title: 'Source Entry', single_reference: { uid: 'simple_entry_1', - _content_type_uid: 'simple_ct' - } - } + _content_type_uid: 'simple_ct', + }, + }, }; } return {}; @@ -1571,7 +1574,7 @@ describe('EntriesImport', () => { const originalLookupAssets = require('../../../../src/utils').lookupAssets; Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => (entryData: any) => entryData.entry, - configurable: true + configurable: true, }); const result = entriesImport['serializeUpdateEntries'](apiOptions); @@ -1583,7 +1586,7 @@ describe('EntriesImport', () => { // Restore original function Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => originalLookupAssets, - configurable: true + configurable: true, }); }); @@ -1593,7 +1596,7 @@ describe('EntriesImport', () => { uid: 'json_rte_entry_1', title: 'Entry with JSON RTE', sourceEntryFilePath: '/path/to/source.json', - entryOldUid: 'json_rte_entry_1' + entryOldUid: 'json_rte_entry_1', }, entity: 'update-entries' as const, resolve: sinon.stub(), @@ -1601,15 +1604,15 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'json_rte_ct', locale: 'en-us', - contentType: mockData.contentTypeWithJsonRte - } + contentType: mockData.contentTypeWithJsonRte, + }, }; // Mock fsUtil.readFile to return source entry with JSON RTE fsUtilityReadFileStub.callsFake((path) => { if (path.includes('source.json')) { return { - 'json_rte_entry_1': { + json_rte_entry_1: { uid: 'json_rte_entry_1', title: 'Source Entry', json_rte_field: { @@ -1622,14 +1625,14 @@ describe('EntriesImport', () => { type: 'reference', attrs: { type: 'entry', - 'entry-uid': 'simple_entry_1' - } - } - ] - } - ] - } - } + 'entry-uid': 'simple_entry_1', + }, + }, + ], + }, + ], + }, + }, }; } return {}; @@ -1639,7 +1642,7 @@ describe('EntriesImport', () => { const originalLookupAssets = require('../../../../src/utils').lookupAssets; Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => (entryData: any) => entryData.entry, - configurable: true + configurable: true, }); const result = entriesImport['serializeUpdateEntries'](apiOptions); @@ -1650,7 +1653,7 @@ describe('EntriesImport', () => { // Restore original function Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => originalLookupAssets, - configurable: true + configurable: true, }); }); @@ -1660,7 +1663,7 @@ describe('EntriesImport', () => { uid: 'rte_entry_1', title: 'Entry with RTE', sourceEntryFilePath: '/path/to/source.json', - entryOldUid: 'rte_entry_1' + entryOldUid: 'rte_entry_1', }, entity: 'update-entries' as const, resolve: sinon.stub(), @@ -1668,19 +1671,19 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'rte_ct', locale: 'en-us', - contentType: mockData.contentTypeWithRte - } + contentType: mockData.contentTypeWithRte, + }, }; // Mock fsUtil.readFile to return source entry with RTE fsUtilityReadFileStub.callsFake((path) => { if (path.includes('source.json')) { return { - 'rte_entry_1': { + rte_entry_1: { uid: 'rte_entry_1', title: 'Source Entry', - rte_field: '

RTE content with entry link

' - } + rte_field: '

RTE content with entry link

', + }, }; } return {}; @@ -1690,7 +1693,7 @@ describe('EntriesImport', () => { const originalLookupAssets = require('../../../../src/utils').lookupAssets; Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => (entryData: any) => entryData.entry, - configurable: true + configurable: true, }); const result = entriesImport['serializeUpdateEntries'](apiOptions); @@ -1701,7 +1704,7 @@ describe('EntriesImport', () => { // Restore original function Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => originalLookupAssets, - configurable: true + configurable: true, }); }); @@ -1711,7 +1714,7 @@ describe('EntriesImport', () => { uid: 'invalid_entry', title: 'Invalid Entry', sourceEntryFilePath: '/path/to/source.json', - entryOldUid: 'invalid_entry' + entryOldUid: 'invalid_entry', }, entity: 'update-entries' as const, resolve: sinon.stub(), @@ -1719,8 +1722,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'ref_ct', locale: 'en-us', - contentType: mockData.contentTypeWithReferences - } + contentType: mockData.contentTypeWithReferences, + }, }; // Mock fsUtil.readFile to throw an error @@ -1738,7 +1741,7 @@ describe('EntriesImport', () => { it('should handle empty chunks', async () => { // Mock FsUtility to return empty indexer const mockFsUtility = { - indexFileContent: {} + indexFileContent: {}, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); @@ -1751,16 +1754,16 @@ describe('EntriesImport', () => { // Mock FsUtility for entry replacement const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + // Mock readChunkFiles.next() to return entry data const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.existingEntry - }) + entry1: mockEntries.existingEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1768,7 +1771,7 @@ describe('EntriesImport', () => { sinon.stub(FsUtility.prototype, 'writeIntoFile').callsFake(() => { return Promise.resolve(); }); - + // Mock writeFileSync to prevent file system writes const originalWriteFileSync = require('fs').writeFileSync; const writeFileSyncStub = sinon.stub(require('fs'), 'writeFileSync').callsFake(() => {}); @@ -1778,7 +1781,7 @@ describe('EntriesImport', () => { onSuccess({ response: { uid: 'replaced-entry-uid' }, apiData: mockEntries.existingEntry, - additionalInfo: {} + additionalInfo: {}, }); }); @@ -1791,13 +1794,13 @@ describe('EntriesImport', () => { it('should handle chunk read errors', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { - next: sinon.stub().rejects(new Error('Chunk read failed')) + next: sinon.stub().rejects(new Error('Chunk read failed')), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1810,15 +1813,15 @@ describe('EntriesImport', () => { it('should handle API errors in onReject', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.existingEntry - }) + entry1: mockEntries.existingEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -1829,7 +1832,7 @@ describe('EntriesImport', () => { const onReject = options.apiParams.reject; onReject({ error: { status: 500, message: 'Replacement failed' }, - apiData: { uid: 'existing_entry_1', title: 'Existing Entry' } + apiData: { uid: 'existing_entry_1', title: 'Existing Entry' }, }); }); @@ -1840,7 +1843,7 @@ describe('EntriesImport', () => { content_type: 'ref_ct', locale: 'en-us', entry: { uid: undefined, title: 'Existing Entry' }, - entryId: 'existing_entry_1' + entryId: 'existing_entry_1', }); }); }); @@ -1849,7 +1852,7 @@ describe('EntriesImport', () => { it('should find and update existing entry', async () => { const mockEntry = { title: 'Existing Entry', - uid: 'existing_entry_1' + uid: 'existing_entry_1', }; const apiParams = { @@ -1858,60 +1861,64 @@ describe('EntriesImport', () => { reject: sinon.stub(), additionalInfo: { cTUid: 'ref_ct', - locale: 'en-us' - } + locale: 'en-us', + }, }; // Mock stack API calls const mockQuery = { findOne: sinon.stub().resolves({ - items: [{ - uid: 'stack_entry_uid', - title: 'Existing Entry', - urlPath: '/existing-entry', - stackHeaders: {}, - _version: 1 - }] - }) + items: [ + { + uid: 'stack_entry_uid', + title: 'Existing Entry', + urlPath: '/existing-entry', + stackHeaders: {}, + _version: 1, + }, + ], + }), }; const mockEntryPayload = { - update: sinon.stub().resolves({ uid: 'updated_entry_uid' }) + update: sinon.stub().resolves({ uid: 'updated_entry_uid' }), }; // Mock the stack API chain: contentType().entry().query().findOne() const mockQueryChain = { query: sinon.stub().returns({ findOne: sinon.stub().resolves({ - items: [{ - uid: 'stack_entry_uid', - title: 'Existing Entry', - urlPath: '/existing-entry', - stackHeaders: {}, - _version: 1 - }] - }) - }) + items: [ + { + uid: 'stack_entry_uid', + title: 'Existing Entry', + urlPath: '/existing-entry', + stackHeaders: {}, + _version: 1, + }, + ], + }), + }), }; const mockEntryChain = { - update: sinon.stub().resolves({ uid: 'updated_entry_uid' }) + update: sinon.stub().resolves({ uid: 'updated_entry_uid' }), }; const contentTypeStub = sinon.stub(); contentTypeStub.onFirstCall().returns({ - entry: sinon.stub().returns(mockQueryChain) + entry: sinon.stub().returns(mockQueryChain), }); contentTypeStub.onSecondCall().returns({ - entry: sinon.stub().returns(mockEntryChain) + entry: sinon.stub().returns(mockEntryChain), }); - + mockStackClient.contentType = contentTypeStub; const result = await entriesImport['replaceEntriesHandler']({ apiParams, element: mockEntry, - isLastRequest: false + isLastRequest: false, }); expect(result).to.be.true; @@ -1923,7 +1930,7 @@ describe('EntriesImport', () => { it('should handle entry not found in stack', async () => { const mockEntry = { title: 'Non-existent Entry', - uid: 'non_existent_entry_1' + uid: 'non_existent_entry_1', }; const apiParams = { @@ -1932,31 +1939,31 @@ describe('EntriesImport', () => { reject: sinon.stub(), additionalInfo: { cTUid: 'ref_ct', - locale: 'en-us' - } + locale: 'en-us', + }, }; // Mock stack API to return empty result const mockQueryChain = { query: sinon.stub().returns({ findOne: sinon.stub().resolves({ - items: [] - }) - }) + items: [], + }), + }), }; const contentTypeStub = sinon.stub(); contentTypeStub.returns({ - entry: sinon.stub().returns(mockQueryChain) + entry: sinon.stub().returns(mockQueryChain), }); - + mockStackClient.contentType = contentTypeStub; try { const result = await entriesImport['replaceEntriesHandler']({ apiParams, element: mockEntry, - isLastRequest: false + isLastRequest: false, }); expect.fail('Expected method to reject'); } catch (error) { @@ -1969,7 +1976,7 @@ describe('EntriesImport', () => { it('should handle query errors', async () => { const mockEntry = { title: 'Error Entry', - uid: 'error_entry_1' + uid: 'error_entry_1', }; const apiParams = { @@ -1978,29 +1985,29 @@ describe('EntriesImport', () => { reject: sinon.stub(), additionalInfo: { cTUid: 'ref_ct', - locale: 'en-us' - } + locale: 'en-us', + }, }; // Mock stack API to throw error const mockQueryChain = { query: sinon.stub().returns({ - findOne: sinon.stub().rejects(new Error('Query failed')) - }) + findOne: sinon.stub().rejects(new Error('Query failed')), + }), }; const contentTypeStub = sinon.stub(); contentTypeStub.returns({ - entry: sinon.stub().returns(mockQueryChain) + entry: sinon.stub().returns(mockQueryChain), }); - + mockStackClient.contentType = contentTypeStub; try { const result = await entriesImport['replaceEntriesHandler']({ apiParams, element: mockEntry, - isLastRequest: false + isLastRequest: false, }); expect.fail('Expected method to reject'); } catch (error) { @@ -2012,7 +2019,7 @@ describe('EntriesImport', () => { it('should handle update errors', async () => { const mockEntry = { title: 'Update Error Entry', - uid: 'update_error_entry_1' + uid: 'update_error_entry_1', }; const apiParams = { @@ -2021,44 +2028,46 @@ describe('EntriesImport', () => { reject: sinon.stub(), additionalInfo: { cTUid: 'ref_ct', - locale: 'en-us' - } + locale: 'en-us', + }, }; // Mock stack API calls const mockQueryChain = { query: sinon.stub().returns({ findOne: sinon.stub().resolves({ - items: [{ - uid: 'stack_entry_uid', - title: 'Update Error Entry', - urlPath: '/update-error-entry', - stackHeaders: {}, - _version: 1 - }] - }) - }) + items: [ + { + uid: 'stack_entry_uid', + title: 'Update Error Entry', + urlPath: '/update-error-entry', + stackHeaders: {}, + _version: 1, + }, + ], + }), + }), }; const mockEntryChain = { - update: sinon.stub().rejects(new Error('Update failed')) + update: sinon.stub().rejects(new Error('Update failed')), }; const contentTypeStub = sinon.stub(); contentTypeStub.onFirstCall().returns({ - entry: sinon.stub().returns(mockQueryChain) + entry: sinon.stub().returns(mockQueryChain), }); contentTypeStub.onSecondCall().returns({ - entry: sinon.stub().returns(mockEntryChain) + entry: sinon.stub().returns(mockEntryChain), }); - + mockStackClient.contentType = contentTypeStub; try { const result = await entriesImport['replaceEntriesHandler']({ apiParams, element: mockEntry, - isLastRequest: false + isLastRequest: false, }); expect.fail('Expected method to reject'); } catch (error) { @@ -2075,16 +2084,16 @@ describe('EntriesImport', () => { entriesImport['cTs'] = [ mockData.simpleContentType, mockData.contentTypeWithReferences, - mockData.contentTypeWithJsonRte + mockData.contentTypeWithJsonRte, ]; entriesImport['envs'] = { - 'env_1': { name: 'production', uid: 'env_1' }, - 'env_2': { name: 'staging', uid: 'env_2' } + env_1: { name: 'production', uid: 'env_1' }, + env_2: { name: 'staging', uid: 'env_2' }, }; entriesImport['entriesUidMapper'] = { - 'simple_entry_1': 'new_simple_entry_1', - 'publish_entry_1': 'new_publish_entry_1', - 'json_rte_entry_1': 'new_json_rte_entry_1' + simple_entry_1: 'new_simple_entry_1', + publish_entry_1: 'new_publish_entry_1', + json_rte_entry_1: 'new_json_rte_entry_1', }; }); @@ -2092,7 +2101,7 @@ describe('EntriesImport', () => { it('should handle empty chunks', async () => { // Mock FsUtility to return empty indexer const mockFsUtility = { - indexFileContent: {} + indexFileContent: {}, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); @@ -2105,17 +2114,17 @@ describe('EntriesImport', () => { // Mock FsUtility for entry publishing const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1', 'entry2'] - } + 'chunk1.json': ['entry1', 'entry2'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + // Mock readChunkFiles.next() to return entry data with publish details const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.simpleEntry, - 'entry2': mockEntries.entryWithPublishDetails - }) + entry1: mockEntries.simpleEntry, + entry2: mockEntries.entryWithPublishDetails, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -2123,11 +2132,11 @@ describe('EntriesImport', () => { const onSuccess = options.apiParams.resolve; onSuccess({ response: { uid: 'published-entry-uid' }, - apiData: { - environments: ['production', 'staging'], - entryUid: 'new_simple_entry_1', - locales: ['en-us'] - } + apiData: { + environments: ['production', 'staging'], + entryUid: 'new_simple_entry_1', + locales: ['en-us'], + }, }); }); @@ -2140,15 +2149,15 @@ describe('EntriesImport', () => { it('should handle entries with multiple publish details', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.entryWithPublishDetails - }) + entry1: mockEntries.entryWithPublishDetails, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -2156,11 +2165,11 @@ describe('EntriesImport', () => { const onSuccess = options.apiParams.resolve; onSuccess({ response: { uid: 'published-entry-uid' }, - apiData: { - environments: ['production', 'staging'], - entryUid: 'new_publish_entry_1', - locales: ['en-us', 'fr-fr'] - } + apiData: { + environments: ['production', 'staging'], + entryUid: 'new_publish_entry_1', + locales: ['en-us', 'fr-fr'], + }, }); }); @@ -2174,22 +2183,22 @@ describe('EntriesImport', () => { it('should handle entries without publish details', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const entryWithoutPublishDetails = { uid: 'no_publish_entry_1', title: 'Entry without Publish Details', - description: 'This entry has no publish details' + description: 'This entry has no publish details', // No publish_details property }; - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': entryWithoutPublishDetails - }) + entry1: entryWithoutPublishDetails, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -2202,22 +2211,22 @@ describe('EntriesImport', () => { it('should handle entries with empty publish details', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const entryWithEmptyPublishDetails = { uid: 'empty_publish_entry_1', title: 'Entry with Empty Publish Details', description: 'This entry has empty publish details', - publish_details: [] as any[] + publish_details: [] as any[], }; - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': entryWithEmptyPublishDetails - }) + entry1: entryWithEmptyPublishDetails, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -2230,13 +2239,13 @@ describe('EntriesImport', () => { it('should handle chunk read errors', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { - next: sinon.stub().rejects(new Error('Chunk read failed')) + next: sinon.stub().rejects(new Error('Chunk read failed')), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -2249,15 +2258,15 @@ describe('EntriesImport', () => { it('should handle API errors in onReject', async () => { const mockFsUtility = { indexFileContent: { - 'chunk1.json': ['entry1'] - } + 'chunk1.json': ['entry1'], + }, }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockFsUtility.indexFileContent); - + const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': mockEntries.simpleEntry - }) + entry1: mockEntries.simpleEntry, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -2265,11 +2274,11 @@ describe('EntriesImport', () => { const onReject = options.apiParams.reject; onReject({ error: { status: 500, message: 'Publish failed' }, - apiData: { - environments: ['production'], - entryUid: 'new_simple_entry_1', - locales: ['en-us'] - } + apiData: { + environments: ['production'], + entryUid: 'new_simple_entry_1', + locales: ['en-us'], + }, }); }); @@ -2288,13 +2297,13 @@ describe('EntriesImport', () => { publish_details: [ { environment: 'env_1', - locale: 'en-us' + locale: 'en-us', }, { environment: 'env_2', - locale: 'fr-fr' - } - ] + locale: 'fr-fr', + }, + ], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2302,8 +2311,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2312,7 +2321,7 @@ describe('EntriesImport', () => { expect(result.apiData).to.deep.include({ environments: ['production', 'staging'], locales: ['en-us', 'fr-fr'], - entryUid: 'new_simple_entry_1' + entryUid: 'new_simple_entry_1', }); }); @@ -2320,7 +2329,7 @@ describe('EntriesImport', () => { const apiOptions = { apiData: { uid: 'simple_entry_1', - title: 'Simple Entry' + title: 'Simple Entry', // No publish_details }, entity: 'publish-entries' as const, @@ -2329,8 +2338,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2343,7 +2352,7 @@ describe('EntriesImport', () => { apiData: { uid: 'simple_entry_1', title: 'Simple Entry', - publish_details: [] as any[] + publish_details: [] as any[], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2351,8 +2360,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2368,9 +2377,9 @@ describe('EntriesImport', () => { publish_details: [ { environment: 'invalid_env', - locale: 'en-us' - } - ] + locale: 'en-us', + }, + ], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2378,8 +2387,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2394,10 +2403,10 @@ describe('EntriesImport', () => { title: 'Simple Entry', publish_details: [ { - environment: 'env_1' + environment: 'env_1', // No locale - } - ] + }, + ], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2405,8 +2414,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2422,17 +2431,17 @@ describe('EntriesImport', () => { publish_details: [ { environment: 'env_1', - locale: 'en-us' + locale: 'en-us', }, { environment: 'env_1', // Duplicate environment - locale: 'en-us' // Duplicate locale + locale: 'en-us', // Duplicate locale }, { environment: 'env_2', - locale: 'fr-fr' - } - ] + locale: 'fr-fr', + }, + ], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2440,8 +2449,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2461,9 +2470,9 @@ describe('EntriesImport', () => { publish_details: [ { environment: 'env_1', - locale: 'en-us' - } - ] + locale: 'en-us', + }, + ], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2471,8 +2480,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2489,17 +2498,17 @@ describe('EntriesImport', () => { publish_details: [ { environment: 'env_1', - locale: 'en-us' + locale: 'en-us', }, { environment: 'invalid_env', - locale: 'fr-fr' + locale: 'fr-fr', }, { environment: 'env_2', - locale: 'de-de' - } - ] + locale: 'de-de', + }, + ], }, entity: 'publish-entries' as const, resolve: sinon.stub(), @@ -2507,8 +2516,8 @@ describe('EntriesImport', () => { additionalInfo: { cTUid: 'simple_ct', locale: 'en-us', - contentType: mockData.simpleContentType - } + contentType: mockData.simpleContentType, + }, }; const result = entriesImport['serializePublishEntries'](apiOptions); @@ -2524,16 +2533,16 @@ describe('EntriesImport', () => { beforeEach(() => { // Reset all stubs before each test sinon.restore(); - + // Setup basic mock data entriesImport['cTs'] = [mockData.simpleContentType, mockData.contentTypeWithReferences]; entriesImport['locales'] = [ { code: 'en-us', name: 'English' }, - { code: 'fr-fr', name: 'French' } + { code: 'fr-fr', name: 'French' }, ]; entriesImport['envs'] = { - 'env_1': { name: 'production', uid: 'env_1' }, - 'env_2': { name: 'staging', uid: 'env_2' } + env_1: { name: 'production', uid: 'env_1' }, + env_2: { name: 'staging', uid: 'env_2' }, }; entriesImport['entriesUidMapper'] = {}; entriesImport['failedEntries'] = []; @@ -2544,15 +2553,22 @@ describe('EntriesImport', () => { it('should complete full start process successfully', async () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType, mockData.contentTypeWithReferences]) // content types - .onCall(1).resolves({ extension_uid: { ext_1: 'new_ext_1' } }) // marketplace apps - .onCall(2).resolves({ asset_1: 'new_asset_1' }) // asset UID mapper - .onCall(3).resolves({ 'https://old.com': 'https://new.com' }) // asset URL mapper - .onCall(4).resolves({ taxonomy_1: { terms: [] } }) // taxonomies - .onCall(5).resolves([{ code: 'en-us' }, { code: 'fr-fr' }]), // locales + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType, mockData.contentTypeWithReferences]) // content types + .onCall(1) + .resolves({ extension_uid: { ext_1: 'new_ext_1' } }) // marketplace apps + .onCall(2) + .resolves({ asset_1: 'new_asset_1' }) // asset UID mapper + .onCall(3) + .resolves({ 'https://old.com': 'https://new.com' }) // asset URL mapper + .onCall(4) + .resolves({ taxonomy_1: { terms: [] } }) // taxonomies + .onCall(5) + .resolves([{ code: 'en-us' }, { code: 'fr-fr' }]), // locales makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2563,7 +2579,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns(entriesImport['envs']), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2571,12 +2588,12 @@ describe('EntriesImport', () => { const disableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'disableMandatoryCTReferences').resolves(); const populateEntryCreatePayloadStub = sinon.stub(entriesImport, 'populateEntryCreatePayload').returns([ { cTUid: 'simple_ct', locale: 'en-us' }, - { cTUid: 'simple_ct', locale: 'fr-fr' } + { cTUid: 'simple_ct', locale: 'fr-fr' }, ]); const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); - const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([ - { cTUid: 'simple_ct', locale: 'en-us' } - ]); + const populateEntryUpdatePayloadStub = sinon + .stub(entriesImport, 'populateEntryUpdatePayload') + .returns([{ cTUid: 'simple_ct', locale: 'en-us' }]); const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').resolves(); const enableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'enableMandatoryCTReferences').resolves(); const updateFieldRulesStub = sinon.stub(entriesImport, 'updateFieldRules').resolves(); @@ -2600,14 +2617,15 @@ describe('EntriesImport', () => { const mockFsUtil = { readFile: sinon.stub().resolves([]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2629,14 +2647,15 @@ describe('EntriesImport', () => { const mockFsUtil = { readFile: sinon.stub().resolves(null), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2659,15 +2678,22 @@ describe('EntriesImport', () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2678,15 +2704,16 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); // Mock all the method calls const disableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'disableMandatoryCTReferences').resolves(); - const populateEntryCreatePayloadStub = sinon.stub(entriesImport, 'populateEntryCreatePayload').returns([ - { cTUid: 'simple_ct', locale: 'en-us' } - ]); + const populateEntryCreatePayloadStub = sinon + .stub(entriesImport, 'populateEntryCreatePayload') + .returns([{ cTUid: 'simple_ct', locale: 'en-us' }]); const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); const replaceEntriesStub = sinon.stub(entriesImport, 'replaceEntries').resolves(); const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([]); @@ -2703,21 +2730,26 @@ describe('EntriesImport', () => { it('should handle autoCreatedEntries cleanup', async () => { // Set up autoCreatedEntries - entriesImport['autoCreatedEntries'] = [ - { cTUid: 'simple_ct', locale: 'en-us', entryUid: 'entry_1' } - ]; + entriesImport['autoCreatedEntries'] = [{ cTUid: 'simple_ct', locale: 'en-us', entryUid: 'entry_1' }]; // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2728,7 +2760,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2755,15 +2788,22 @@ describe('EntriesImport', () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2774,7 +2814,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2798,15 +2839,22 @@ describe('EntriesImport', () => { it('should handle no environments found for publishing', async () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2817,15 +2865,16 @@ describe('EntriesImport', () => { // Mock fileHelper to return empty environments const mockFileHelper = { readFileSync: sinon.stub().returns({}), // Empty environments - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); // Mock all the method calls const disableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'disableMandatoryCTReferences').resolves(); - const populateEntryCreatePayloadStub = sinon.stub(entriesImport, 'populateEntryCreatePayload').returns([ - { cTUid: 'simple_ct', locale: 'en-us' } - ]); + const populateEntryCreatePayloadStub = sinon + .stub(entriesImport, 'populateEntryCreatePayload') + .returns([{ cTUid: 'simple_ct', locale: 'en-us' }]); const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([]); const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').resolves(); @@ -2846,15 +2895,22 @@ describe('EntriesImport', () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2865,15 +2921,16 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); // Mock all the method calls const disableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'disableMandatoryCTReferences').resolves(); - const populateEntryCreatePayloadStub = sinon.stub(entriesImport, 'populateEntryCreatePayload').returns([ - { cTUid: 'simple_ct', locale: 'en-us' } - ]); + const populateEntryCreatePayloadStub = sinon + .stub(entriesImport, 'populateEntryCreatePayload') + .returns([{ cTUid: 'simple_ct', locale: 'en-us' }]); const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); const replaceEntriesStub = sinon.stub(entriesImport, 'replaceEntries').rejects(new Error('Replace failed')); const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([]); @@ -2890,21 +2947,26 @@ describe('EntriesImport', () => { it('should handle errors in removeAutoCreatedEntries', async () => { // Set up autoCreatedEntries - entriesImport['autoCreatedEntries'] = [ - { cTUid: 'simple_ct', locale: 'en-us', entryUid: 'entry_1' } - ]; + entriesImport['autoCreatedEntries'] = [{ cTUid: 'simple_ct', locale: 'en-us', entryUid: 'entry_1' }]; // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2915,7 +2977,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2927,7 +2990,9 @@ describe('EntriesImport', () => { const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').resolves(); const enableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'enableMandatoryCTReferences').resolves(); const updateFieldRulesStub = sinon.stub(entriesImport, 'updateFieldRules').resolves(); - const removeAutoCreatedEntriesStub = sinon.stub(entriesImport, 'removeAutoCreatedEntries').rejects(new Error('Remove failed')); + const removeAutoCreatedEntriesStub = sinon + .stub(entriesImport, 'removeAutoCreatedEntries') + .rejects(new Error('Remove failed')); const createEntryDataForVariantEntryStub = sinon.stub(entriesImport, 'createEntryDataForVariantEntry').returns(); await entriesImport.start(); @@ -2939,15 +3004,22 @@ describe('EntriesImport', () => { it('should handle errors in updateEntriesWithReferences', async () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -2958,7 +3030,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -2966,10 +3039,12 @@ describe('EntriesImport', () => { const disableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'disableMandatoryCTReferences').resolves(); const populateEntryCreatePayloadStub = sinon.stub(entriesImport, 'populateEntryCreatePayload').returns([]); const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); - const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([ - { cTUid: 'simple_ct', locale: 'en-us' } - ]); - const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').rejects(new Error('Update failed')); + const populateEntryUpdatePayloadStub = sinon + .stub(entriesImport, 'populateEntryUpdatePayload') + .returns([{ cTUid: 'simple_ct', locale: 'en-us' }]); + const updateEntriesWithReferencesStub = sinon + .stub(entriesImport, 'updateEntriesWithReferences') + .rejects(new Error('Update failed')); const enableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'enableMandatoryCTReferences').resolves(); const updateFieldRulesStub = sinon.stub(entriesImport, 'updateFieldRules').resolves(); const createEntryDataForVariantEntryStub = sinon.stub(entriesImport, 'createEntryDataForVariantEntry').returns(); @@ -2983,15 +3058,22 @@ describe('EntriesImport', () => { it('should handle errors in enableMandatoryCTReferences', async () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -3002,7 +3084,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -3012,7 +3095,9 @@ describe('EntriesImport', () => { const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([]); const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').resolves(); - const enableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'enableMandatoryCTReferences').rejects(new Error('Enable failed')); + const enableMandatoryCTReferencesStub = sinon + .stub(entriesImport, 'enableMandatoryCTReferences') + .rejects(new Error('Enable failed')); const updateFieldRulesStub = sinon.stub(entriesImport, 'updateFieldRules').resolves(); const createEntryDataForVariantEntryStub = sinon.stub(entriesImport, 'createEntryDataForVariantEntry').returns(); @@ -3025,15 +3110,22 @@ describe('EntriesImport', () => { it('should handle errors in updateFieldRules', async () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -3044,7 +3136,8 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -3055,7 +3148,9 @@ describe('EntriesImport', () => { const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([]); const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').resolves(); const enableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'enableMandatoryCTReferences').resolves(); - const updateFieldRulesStub = sinon.stub(entriesImport, 'updateFieldRules').rejects(new Error('Field rules failed')); + const updateFieldRulesStub = sinon + .stub(entriesImport, 'updateFieldRules') + .rejects(new Error('Field rules failed')); const createEntryDataForVariantEntryStub = sinon.stub(entriesImport, 'createEntryDataForVariantEntry').returns(); await entriesImport.start(); @@ -3067,15 +3162,22 @@ describe('EntriesImport', () => { it('should handle errors in publishEntries', async () => { // Mock file system operations const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) - .onCall(1).resolves({ extension_uid: {} }) - .onCall(2).resolves({}) - .onCall(3).resolves({}) - .onCall(4).resolves({}) - .onCall(5).resolves([{ code: 'en-us' }]), + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) + .onCall(1) + .resolves({ extension_uid: {} }) + .onCall(2) + .resolves({}) + .onCall(3) + .resolves({}) + .onCall(4) + .resolves({}) + .onCall(5) + .resolves([{ code: 'en-us' }]), makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); @@ -3086,15 +3188,16 @@ describe('EntriesImport', () => { // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns(entriesImport['envs']), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); // Mock all the method calls const disableMandatoryCTReferencesStub = sinon.stub(entriesImport, 'disableMandatoryCTReferences').resolves(); - const populateEntryCreatePayloadStub = sinon.stub(entriesImport, 'populateEntryCreatePayload').returns([ - { cTUid: 'simple_ct', locale: 'en-us' } - ]); + const populateEntryCreatePayloadStub = sinon + .stub(entriesImport, 'populateEntryCreatePayload') + .returns([{ cTUid: 'simple_ct', locale: 'en-us' }]); const createEntriesStub = sinon.stub(entriesImport, 'createEntries').resolves(); const populateEntryUpdatePayloadStub = sinon.stub(entriesImport, 'populateEntryUpdatePayload').returns([]); const updateEntriesWithReferencesStub = sinon.stub(entriesImport, 'updateEntriesWithReferences').resolves(); @@ -3112,22 +3215,30 @@ describe('EntriesImport', () => { it('should handle general errors in try-catch', async () => { // Mock file system operations to return valid data but cause error later const mockFsUtil = { - readFile: sinon.stub() - .onCall(0).resolves([mockData.simpleContentType]) // content types - .onCall(1).resolves({ extension_uid: {} }) // marketplace apps - .onCall(2).resolves({}) // asset UID mapper - .onCall(3).resolves({}) // asset URL mapper - .onCall(4).resolves({}) // taxonomies - .onCall(5).rejects(new Error('File read failed')), // locales - this will cause error + readFile: sinon + .stub() + .onCall(0) + .resolves([mockData.simpleContentType]) // content types + .onCall(1) + .resolves({ extension_uid: {} }) // marketplace apps + .onCall(2) + .resolves({}) // asset UID mapper + .onCall(3) + .resolves({}) // asset URL mapper + .onCall(4) + .resolves({}) // taxonomies + .onCall(5) + .rejects(new Error('File read failed')), // locales - this will cause error makeDirectory: sinon.stub().resolves(), - writeFile: sinon.stub().resolves() + writeFile: sinon.stub().resolves(), }; sinon.stub(require('../../../../src/utils'), 'fsUtil').value(mockFsUtil); // Mock fileHelper const mockFileHelper = { readFileSync: sinon.stub().returns({}), - writeLargeFile: sinon.stub().resolves() + writeLargeFile: sinon.stub().resolves(), + fileExistsSync: sinon.stub().returns(false), }; sinon.stub(require('../../../../src/utils'), 'fileHelper').value(mockFileHelper); @@ -3167,12 +3278,12 @@ describe('EntriesImport', () => { // Setup auto-created entries entriesImport['autoCreatedEntries'] = [ { entryUid: 'auto_entry_1', title: 'Auto Entry 1' }, - { entryUid: 'auto_entry_2', title: 'Auto Entry 2' } + { entryUid: 'auto_entry_2', title: 'Auto Entry 2' }, ]; entriesImport['entriesForVariant'] = [ { entry_uid: 'auto_entry_1', locale: 'en-us', content_type: 'simple_ct' }, { entry_uid: 'auto_entry_2', locale: 'en-us', content_type: 'ref_ct' }, - { entry_uid: 'other_entry', locale: 'fr-fr', content_type: 'simple_ct' } + { entry_uid: 'other_entry', locale: 'fr-fr', content_type: 'simple_ct' }, ]; // Use the existing makeConcurrentCall stub to simulate successful removal @@ -3180,12 +3291,12 @@ describe('EntriesImport', () => { // Simulate onSuccess callback for first entry await options.apiParams.resolve({ response: { uid: 'auto_entry_1' }, - apiData: { entryUid: 'auto_entry_1' } + apiData: { entryUid: 'auto_entry_1' }, }); // Simulate onSuccess callback for second entry await options.apiParams.resolve({ response: { uid: 'auto_entry_2' }, - apiData: { entryUid: 'auto_entry_2' } + apiData: { entryUid: 'auto_entry_2' }, }); }); @@ -3206,12 +3317,10 @@ describe('EntriesImport', () => { it('should handle errors when removing auto-created entries', async () => { // Setup auto-created entries - entriesImport['autoCreatedEntries'] = [ - { entryUid: 'auto_entry_1', title: 'Auto Entry 1' } - ]; + entriesImport['autoCreatedEntries'] = [{ entryUid: 'auto_entry_1', title: 'Auto Entry 1' }]; entriesImport['entriesForVariant'] = [ { entry_uid: 'auto_entry_1', locale: 'en-us', content_type: 'simple_ct' }, - { entry_uid: 'other_entry', locale: 'fr-fr', content_type: 'simple_ct' } + { entry_uid: 'other_entry', locale: 'fr-fr', content_type: 'simple_ct' }, ]; // Use the existing makeConcurrentCall stub to simulate error @@ -3219,7 +3328,7 @@ describe('EntriesImport', () => { // Simulate onReject callback await options.apiParams.reject({ error: new Error('Delete failed'), - apiData: { entryUid: 'auto_entry_1' } + apiData: { entryUid: 'auto_entry_1' }, }); }); @@ -3235,9 +3344,7 @@ describe('EntriesImport', () => { it('should handle empty auto-created entries array', async () => { entriesImport['autoCreatedEntries'] = []; - entriesImport['entriesForVariant'] = [ - { entry_uid: 'other_entry', locale: 'fr-fr', content_type: 'simple_ct' } - ]; + entriesImport['entriesForVariant'] = [{ entry_uid: 'other_entry', locale: 'fr-fr', content_type: 'simple_ct' }]; // Use the existing makeConcurrentCall stub makeConcurrentCallStub.resolves(); @@ -3255,7 +3362,7 @@ describe('EntriesImport', () => { // Setup entriesForVariant with data entriesImport['entriesForVariant'] = [ { entry_uid: 'entry_1', locale: 'en-us', content_type: 'simple_ct' }, - { entry_uid: 'entry_2', locale: 'fr-fr', content_type: 'ref_ct' } + { entry_uid: 'entry_2', locale: 'fr-fr', content_type: 'ref_ct' }, ]; // Mock writeFileSync @@ -3289,7 +3396,7 @@ describe('EntriesImport', () => { it('should handle content type fetch error', async () => { // Setup content types with field rules const mockContentTypes = [mockData.simpleContentType, mockData.contentTypeWithReferences]; - + // Mock fsUtil.readFile to return field rules data fsUtilityReadFileStub.callsFake((filePath) => { console.log('fsUtil.readFile called with path:', filePath); @@ -3307,19 +3414,18 @@ describe('EntriesImport', () => { // Mock stack client methods directly const mockContentType = { - fetch: sinon.stub().rejects(new Error('Fetch failed')) + fetch: sinon.stub().rejects(new Error('Fetch failed')), }; const mockStackClient = { - contentType: sinon.stub().returns(mockContentType) + contentType: sinon.stub().returns(mockContentType), }; sinon.stub(entriesImport, 'stack').value(mockStackClient); - await entriesImport.updateFieldRules(); // Verify fsUtil.readFile was called expect(fsUtilityReadFileStub.callCount).to.be.greaterThan(0); - + // Verify stack client was called expect(mockStackClient.contentType.called).to.be.true; expect(mockContentType.fetch.called).to.be.true; @@ -3328,7 +3434,7 @@ describe('EntriesImport', () => { it('should handle content type update error', async () => { // Setup content types with field rules const mockContentTypes = [mockData.simpleContentType, mockData.contentTypeWithReferences]; - + // Mock fsUtil.readFile to return field rules data fsUtilityReadFileStub.callsFake((path) => { if (path.includes('field_rules_uid.json')) { @@ -3343,23 +3449,22 @@ describe('EntriesImport', () => { // Mock stack client to simulate successful fetch but failed update const mockUpdate = sinon.stub().rejects(new Error('Update failed')); const mockContentType = { - fetch: sinon.stub().resolves({ - uid: 'simple_ct', + fetch: sinon.stub().resolves({ + uid: 'simple_ct', field_rules: [], - update: mockUpdate - }) + update: mockUpdate, + }), }; const mockStackClient = { - contentType: sinon.stub().returns(mockContentType) + contentType: sinon.stub().returns(mockContentType), }; sinon.stub(entriesImport, 'stack').value(mockStackClient); - await entriesImport.updateFieldRules(); // Verify fsUtil.readFile was called expect(fsUtilityReadFileStub.callCount).to.be.greaterThan(0); - + // Verify stack client was called expect(mockStackClient.contentType.called).to.be.true; expect(mockContentType.fetch.called).to.be.true; @@ -3369,7 +3474,7 @@ describe('EntriesImport', () => { it('should skip when content type not found', async () => { // Setup content types with field rules const mockContentTypes = [mockData.simpleContentType, mockData.contentTypeWithReferences]; - + // Mock fsUtil.readFile to return field rules data fsUtilityReadFileStub.callsFake((path) => { if (path.includes('field_rules_uid.json')) { @@ -3383,10 +3488,10 @@ describe('EntriesImport', () => { // Mock stack client to return null (content type not found) const mockContentType = { - fetch: sinon.stub().resolves(null) + fetch: sinon.stub().resolves(null), }; const mockStackClient = { - contentType: sinon.stub().returns(mockContentType) + contentType: sinon.stub().returns(mockContentType), }; sinon.stub(entriesImport, 'stack').value(mockStackClient); @@ -3396,7 +3501,7 @@ describe('EntriesImport', () => { info: sinon.stub(), success: sinon.stub(), warn: sinon.stub(), - error: sinon.stub() + error: sinon.stub(), }; sinon.stub(require('@contentstack/cli-utilities'), 'log').value(mockLog); @@ -3404,9 +3509,9 @@ describe('EntriesImport', () => { // Verify debug log was called for skipping expect(mockLog.debug.called).to.be.true; - const skipCall = mockLog.debug.getCalls().find((call: any) => - call.args[0] && call.args[0].includes('Skipping field rules update') - ); + const skipCall = mockLog.debug + .getCalls() + .find((call: any) => call.args[0] && call.args[0].includes('Skipping field rules update')); expect(skipCall).to.exist; }); @@ -3415,7 +3520,7 @@ describe('EntriesImport', () => { const contentTypeWithoutRules = { ...mockData.simpleContentType }; delete contentTypeWithoutRules.field_rules; const mockContentTypes = [contentTypeWithoutRules]; - + // Mock fsUtil.readFile to return field rules data fsUtilityReadFileStub.callsFake((path) => { if (path.includes('field_rules_uid.json')) { @@ -3433,7 +3538,7 @@ describe('EntriesImport', () => { info: sinon.stub(), success: sinon.stub(), warn: sinon.stub(), - error: sinon.stub() + error: sinon.stub(), }; sinon.stub(require('@contentstack/cli-utilities'), 'log').value(mockLog); @@ -3441,9 +3546,9 @@ describe('EntriesImport', () => { // Verify info log was called for no field rules expect(mockLog.info.called).to.be.true; - const noRulesCall = mockLog.info.getCalls().find((call: any) => - call.args[0] && call.args[0].includes('No field rules found') - ); + const noRulesCall = mockLog.info + .getCalls() + .find((call: any) => call.args[0] && call.args[0].includes('No field rules found')); expect(noRulesCall).to.exist; }); }); @@ -3454,16 +3559,16 @@ describe('EntriesImport', () => { const entry = { uid: 'localized_entry_1', title: 'Localized Entry', - description: 'A localized entry' + description: 'A localized entry', }; const contentType = mockData.simpleContentType; const isMasterLocale = false; // Setup UID mapping entriesImport['entriesUidMapper'] = { - 'localized_entry_1': 'new_localized_entry_1' + localized_entry_1: 'new_localized_entry_1', }; - + // Setup asset mappers entriesImport['assetUidMapper'] = {}; entriesImport['assetUrlMapper'] = {}; @@ -3473,20 +3578,20 @@ describe('EntriesImport', () => { const originalLookupAssets = require('../../../../src/utils').lookupAssets; Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => (entryData: any) => entryData.entry, - configurable: true + configurable: true, }); // Mock stack client const mockEntryResponse = { uid: 'new_localized_entry_1', title: 'Localized Entry', - description: 'A localized entry' + description: 'A localized entry', }; const mockContentType = { - entry: sinon.stub().returns(mockEntryResponse) + entry: sinon.stub().returns(mockEntryResponse), }; const mockStackClient = { - contentType: sinon.stub().returns(mockContentType) + contentType: sinon.stub().returns(mockContentType), }; sinon.stub(entriesImport, 'stack').value(mockStackClient); @@ -3495,7 +3600,7 @@ describe('EntriesImport', () => { apiData: entry, resolve: sinon.stub(), reject: sinon.stub(), - additionalInfo: { cTUid: 'simple_ct', locale: 'fr-fr', contentType, isMasterLocale } + additionalInfo: { cTUid: 'simple_ct', locale: 'fr-fr', contentType, isMasterLocale }, }; const result = entriesImport.serializeEntries(apiOptions); @@ -3506,13 +3611,13 @@ describe('EntriesImport', () => { expect(result.apiData.title).to.equal('Localized Entry'); expect(result.additionalInfo['new_localized_entry_1']).to.deep.equal({ isLocalized: true, - entryOldUid: 'localized_entry_1' + entryOldUid: 'localized_entry_1', }); // Restore original function Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { value: originalLookupAssets, - configurable: true + configurable: true, }); }); @@ -3521,14 +3626,14 @@ describe('EntriesImport', () => { const entry = { uid: 'localized_entry_1', title: 'Localized Entry', - description: 'A localized entry' + description: 'A localized entry', }; const contentType = mockData.simpleContentType; const isMasterLocale = false; // Setup empty UID mapping entriesImport['entriesUidMapper'] = {}; - + // Setup asset mappers entriesImport['assetUidMapper'] = {}; entriesImport['assetUrlMapper'] = {}; @@ -3538,7 +3643,7 @@ describe('EntriesImport', () => { const originalLookupAssets = require('../../../../src/utils').lookupAssets; Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { get: () => (entryData: any) => entryData.entry, - configurable: true + configurable: true, }); const apiOptions = { @@ -3546,7 +3651,7 @@ describe('EntriesImport', () => { apiData: entry, resolve: sinon.stub(), reject: sinon.stub(), - additionalInfo: { cTUid: 'simple_ct', locale: 'fr-fr', contentType, isMasterLocale } + additionalInfo: { cTUid: 'simple_ct', locale: 'fr-fr', contentType, isMasterLocale }, }; const result = entriesImport.serializeEntries(apiOptions); @@ -3560,7 +3665,7 @@ describe('EntriesImport', () => { // Restore original function Object.defineProperty(require('../../../../src/utils'), 'lookupAssets', { value: originalLookupAssets, - configurable: true + configurable: true, }); }); }); @@ -3571,7 +3676,7 @@ describe('EntriesImport', () => { entriesImport['entriesForVariant'] = [ { entry_uid: 'entry_1', locale: 'en-us', content_type: 'simple_ct' }, { entry_uid: 'entry_2', locale: 'fr-fr', content_type: 'ref_ct' }, - { entry_uid: 'entry_3', locale: 'en-us', content_type: 'simple_ct' } + { entry_uid: 'entry_3', locale: 'en-us', content_type: 'simple_ct' }, ]; // Use the existing makeConcurrentCall stub to trigger onReject @@ -3579,7 +3684,7 @@ describe('EntriesImport', () => { // Simulate onReject callback - uid should match entry_uid in entriesForVariant await options.apiParams.reject({ error: new Error('Update failed'), - apiData: { uid: 'entry_1', title: 'Entry 1' } + apiData: { uid: 'entry_1', title: 'Entry 1' }, }); }); @@ -3587,14 +3692,14 @@ describe('EntriesImport', () => { const handleAndLogErrorStub = sinon.stub(require('@contentstack/cli-utilities'), 'handleAndLogError'); // Mock FsUtility.indexFileContent to return some data - const mockIndexFileContent = { 'chunk1': true }; + const mockIndexFileContent = { chunk1: true }; sinon.stub(FsUtility.prototype, 'indexFileContent').get(() => mockIndexFileContent); // Mock FsUtility.readChunkFiles to return some data const mockReadChunkFiles = { next: sinon.stub().resolves({ - 'entry1': { uid: 'entry_1', title: 'Entry 1' } - }) + entry1: { uid: 'entry_1', title: 'Entry 1' }, + }), }; sinon.stub(FsUtility.prototype, 'readChunkFiles').get(() => mockReadChunkFiles); @@ -3604,11 +3709,10 @@ describe('EntriesImport', () => { // Verify entriesForVariant was filtered correctly expect(entriesImport['entriesForVariant']).to.have.length(2); - expect(entriesImport['entriesForVariant'].find(e => e.entry_uid === 'entry_1')).to.be.undefined; - expect(entriesImport['entriesForVariant'].find(e => e.entry_uid === 'entry_2')).to.exist; - expect(entriesImport['entriesForVariant'].find(e => e.entry_uid === 'entry_3')).to.exist; + expect(entriesImport['entriesForVariant'].find((e) => e.entry_uid === 'entry_1')).to.be.undefined; + expect(entriesImport['entriesForVariant'].find((e) => e.entry_uid === 'entry_2')).to.exist; + expect(entriesImport['entriesForVariant'].find((e) => e.entry_uid === 'entry_3')).to.exist; }); - }); }); }); From 1b29c3488ca0a1a2543a9caf3819f902e01bb64c Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Mon, 5 Jan 2026 15:54:11 +0530 Subject: [PATCH 05/16] fixed test cases --- .../src/import/modules/content-types.ts | 32 +++++++++++------- .../src/import/modules/entries.ts | 33 ++++++++++++------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/packages/contentstack-import/src/import/modules/content-types.ts b/packages/contentstack-import/src/import/modules/content-types.ts index 462c10a8f0..cd1361759a 100644 --- a/packages/contentstack-import/src/import/modules/content-types.ts +++ b/packages/contentstack-import/src/import/modules/content-types.ts @@ -87,18 +87,25 @@ export default class ContentTypesImport extends BaseClass { ['.DS_Store', 'true'], ]); - this.composableStudioSuccessPath = path.join( - sanitizePath(this.importConfig.data), - 'mapper', - this.importConfig.modules['composable-studio'].dirName, - this.importConfig.modules['composable-studio'].fileName, - ); + // Initialize composable studio paths if config exists + if (this.importConfig.modules['composable-studio']) { + this.composableStudioSuccessPath = path.join( + sanitizePath(this.importConfig.data), + 'mapper', + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); + + this.composableStudioExportPath = path.join( + sanitizePath(this.importConfig.data), + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); + } else { + this.composableStudioSuccessPath = ''; + this.composableStudioExportPath = ''; + } - this.composableStudioExportPath = path.join( - sanitizePath(this.importConfig.data), - this.importConfig.modules['composable-studio'].dirName, - this.importConfig.modules['composable-studio'].fileName, - ); this.cTs = []; this.createdCTs = []; this.titleToUIdMap = new Map(); @@ -126,7 +133,10 @@ export default class ContentTypesImport extends BaseClass { log.debug(`Found ${this.cTs.length} content types to import`, this.importConfig.context); // If success file doesn't exist but export file does, skip the composition content type + // Only check if composable studio paths are configured if ( + this.composableStudioSuccessPath && + this.composableStudioExportPath && !fileHelper.fileExistsSync(this.composableStudioSuccessPath) && fileHelper.fileExistsSync(this.composableStudioExportPath) ) { diff --git a/packages/contentstack-import/src/import/modules/entries.ts b/packages/contentstack-import/src/import/modules/entries.ts index 09e996c2f0..b0de51ad04 100644 --- a/packages/contentstack-import/src/import/modules/entries.ts +++ b/packages/contentstack-import/src/import/modules/entries.ts @@ -94,18 +94,26 @@ export default class EntriesImport extends BaseClass { sanitizePath(importConfig.modules.locales.dirName), sanitizePath(importConfig.modules.locales.fileName), ); - this.composableStudioSuccessPath = path.join( - sanitizePath(this.importConfig.data), - 'mapper', - this.importConfig.modules['composable-studio'].dirName, - this.importConfig.modules['composable-studio'].fileName, - ); - this.composableStudioExportPath = path.join( - sanitizePath(this.importConfig.data), - this.importConfig.modules['composable-studio'].dirName, - this.importConfig.modules['composable-studio'].fileName, - ); + // Initialize composable studio paths if config exists + if (this.importConfig.modules['composable-studio']) { + this.composableStudioSuccessPath = path.join( + sanitizePath(this.importConfig.data), + 'mapper', + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); + + this.composableStudioExportPath = path.join( + sanitizePath(this.importConfig.data), + this.importConfig.modules['composable-studio'].dirName, + this.importConfig.modules['composable-studio'].fileName, + ); + } else { + this.composableStudioSuccessPath = ''; + this.composableStudioExportPath = ''; + } + this.importConcurrency = this.entriesConfig.importConcurrency || importConfig.importConcurrency; this.entriesUidMapper = {}; this.modifiedCTs = []; @@ -131,7 +139,10 @@ export default class EntriesImport extends BaseClass { } log.debug(`Found ${this.cTs.length} content types for entry import`, this.importConfig.context); // If success file doesn't exist but export file does, skip the composition entries + // Only check if composable studio paths are configured if ( + this.composableStudioSuccessPath && + this.composableStudioExportPath && !fileHelper.fileExistsSync(this.composableStudioSuccessPath) && fileHelper.fileExistsSync(this.composableStudioExportPath) ) { From e827fba92de4b99964c23e979fc2e042e0490fb7 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Mon, 5 Jan 2026 16:11:11 +0530 Subject: [PATCH 06/16] updated license update --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 25403cd591..aff1142eed 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Contentstack +Copyright (c) 2026 Contentstack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 8d83d84ba7b8b0bfa7308964be324a353c77f589 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Mon, 5 Jan 2026 16:18:12 +0530 Subject: [PATCH 07/16] added types --- .../src/modules/composable-studio.ts | 27 +------------------ .../src/types/composable-studio.ts | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 packages/contentstack-audit/src/types/composable-studio.ts diff --git a/packages/contentstack-audit/src/modules/composable-studio.ts b/packages/contentstack-audit/src/modules/composable-studio.ts index 984e945899..3e10b915c5 100644 --- a/packages/contentstack-audit/src/modules/composable-studio.ts +++ b/packages/contentstack-audit/src/modules/composable-studio.ts @@ -5,32 +5,7 @@ import { sanitizePath, cliux, log } from '@contentstack/cli-utilities'; import auditConfig from '../config'; import { $t, auditMsg, commonMsg } from '../messages'; - -interface ComposableStudioProject { - name: string; - description?: string; - canvasUrl?: string; - connectedStackApiKey?: string; - contentTypeUid: string; - organizationUid?: string; - settings: { - configuration: { - environment: string; - locale: string; - }; - }; - createdBy?: string; - updatedBy?: string; - deletedAt?: boolean; - createdAt?: string; - updatedAt?: string; - uid: string; - // For audit reporting - missingContentType?: boolean; - missingEnvironment?: boolean; - missingLocale?: boolean; - fixStatus?: string; -} +import { ComposableStudioProject } from '../types/composable-studio'; export default class ComposableStudio { protected fix: boolean; diff --git a/packages/contentstack-audit/src/types/composable-studio.ts b/packages/contentstack-audit/src/types/composable-studio.ts new file mode 100644 index 0000000000..5bc4433a78 --- /dev/null +++ b/packages/contentstack-audit/src/types/composable-studio.ts @@ -0,0 +1,27 @@ +interface ComposableStudioProject { + name: string; + description?: string; + canvasUrl?: string; + connectedStackApiKey?: string; + contentTypeUid: string; + organizationUid?: string; + settings: { + configuration: { + environment: string; + locale: string; + }; + }; + createdBy?: string; + updatedBy?: string; + deletedAt?: boolean; + createdAt?: string; + updatedAt?: string; + uid: string; + // For audit reporting + missingContentType?: boolean; + missingEnvironment?: boolean; + missingLocale?: boolean; + fixStatus?: string; +} + +export { ComposableStudioProject }; From 0318122ede2d6e06f4f836027675b2400ea700a5 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Mon, 5 Jan 2026 16:29:34 +0530 Subject: [PATCH 08/16] updated license --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 25403cd591..aff1142eed 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Contentstack +Copyright (c) 2026 Contentstack Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From bfeb6ad8afc1deb2cf07e5cabb10a3984019f02f Mon Sep 17 00:00:00 2001 From: naman-contentstack Date: Tue, 13 Jan 2026 12:27:18 +0530 Subject: [PATCH 09/16] feat: add new logger in config --- .../contentstack-auth/src/base-command.ts | 14 +++++-- packages/contentstack-auth/test/run.test.ts | 41 +++++++++--------- .../contentstack-config/src/base-command.ts | 23 +++++++--- .../src/commands/config/get/log.ts | 3 +- .../src/commands/config/get/region.ts | 6 +-- .../src/commands/config/set/log.ts | 5 ++- .../src/commands/config/set/region.ts | 3 +- packages/contentstack-config/test/run.test.ts | 42 +++++++++---------- .../contentstack-config/test/tsconfig.json | 9 ++-- packages/contentstack-config/tsconfig.json | 4 +- 10 files changed, 85 insertions(+), 65 deletions(-) diff --git a/packages/contentstack-auth/src/base-command.ts b/packages/contentstack-auth/src/base-command.ts index 445bce3bb2..8a586b94ef 100644 --- a/packages/contentstack-auth/src/base-command.ts +++ b/packages/contentstack-auth/src/base-command.ts @@ -1,5 +1,12 @@ import { Command } from '@contentstack/cli-command'; -import { configHandler, createLogContext, Flags, getAuthenticationMethod, Interfaces, log } from '@contentstack/cli-utilities'; +import { + configHandler, + createLogContext, + Flags, + getAuthenticationMethod, + Interfaces, + log, +} from '@contentstack/cli-utilities'; import { Context } from './interfaces'; export type Args = Interfaces.InferredArgs; @@ -17,8 +24,9 @@ export abstract class BaseCommand extends Command { public async init(): Promise { await super.init(); // this.contextDetails = { ...this.createExportContext() }; - this.contextDetails = { ...createLogContext(this.context?.info?.command || 'auth', '',) }; - + this.contextDetails = { + ...createLogContext(this.context?.info?.command || 'auth', '', configHandler.get('authenticationMethod')), + }; } /** diff --git a/packages/contentstack-auth/test/run.test.ts b/packages/contentstack-auth/test/run.test.ts index 1e61078fc0..106af41866 100644 --- a/packages/contentstack-auth/test/run.test.ts +++ b/packages/contentstack-auth/test/run.test.ts @@ -1,11 +1,11 @@ -import { join, resolve } from "path"; -import { existsSync, readdirSync } from "fs"; -import config from "./config.json" with { type: "json" }; -import filter from "lodash/filter.js"; -import forEach from "lodash/forEach.js"; -import isEmpty from "lodash/isEmpty.js"; -import isArray from "lodash/isArray.js"; -import includes from "lodash/includes.js"; +import { join, resolve } from 'path'; +import { existsSync, readdirSync } from 'fs'; +import config from './config.json'; +import filter from 'lodash/filter.js'; +import forEach from 'lodash/forEach.js'; +import isEmpty from 'lodash/isEmpty.js'; +import isArray from 'lodash/isArray.js'; +import includes from 'lodash/includes.js'; import dotenv from 'dotenv'; // NOTE init env variables @@ -13,8 +13,8 @@ dotenv.config(); const { IS_TS, UNIT_EXECUTION_ORDER, INTEGRATION_EXECUTION_ORDER } = config; -const testFileExtension = IS_TS ? ".ts" : ".js"; -process.env.TS_NODE_PROJECT = resolve("test/tsconfig.json"); +const testFileExtension = IS_TS ? '.ts' : '.js'; +process.env.TS_NODE_PROJECT = resolve('test/tsconfig.json'); /** * @method getFileName @@ -22,9 +22,9 @@ process.env.TS_NODE_PROJECT = resolve("test/tsconfig.json"); * @returns {string} */ const getFileName = (file: string): string => { - if (includes(file, ".test") && includes(file, testFileExtension)) return file; - else if (includes(file, ".test")) return `${file}${testFileExtension}`; - else if (!includes(file, ".test")) return `${file}.test${testFileExtension}`; + if (includes(file, '.test') && includes(file, testFileExtension)) return file; + else if (includes(file, '.test')) return `${file}${testFileExtension}`; + else if (!includes(file, '.test')) return `${file}.test${testFileExtension}`; else return `${file}.test${testFileExtension}`; }; @@ -33,7 +33,7 @@ const getFileName = (file: string): string => { * @param {Array} files * @param {string} basePath */ -const includeTestFiles = (files: Array, basePath = "integration") => { +const includeTestFiles = (files: Array, basePath = 'integration') => { forEach(files, (file) => { const filename = getFileName(file); const filePath = join(__dirname, basePath, filename); @@ -52,18 +52,15 @@ const includeTestFiles = (files: Array, basePath = "integration") => { * @param {Array | undefined | null} executionOrder * @param {boolean} isIntegrationTest */ -const run = ( - executionOrder: Array | undefined | null, - isIntegrationTest = true -) => { - const testFolder = isIntegrationTest ? "integration" : "unit"; +const run = (executionOrder: Array | undefined | null, isIntegrationTest = true) => { + const testFolder = isIntegrationTest ? 'integration' : 'unit'; if (executionOrder && isArray(executionOrder) && !isEmpty(executionOrder)) { includeTestFiles(executionOrder, testFolder); } else { const basePath = join(__dirname, testFolder); const allIntegrationTestFiles = filter(readdirSync(basePath), (file) => - includes(file, `.test${testFileExtension}`) + includes(file, `.test${testFileExtension}`), ); includeTestFiles(allIntegrationTestFiles); } @@ -71,8 +68,8 @@ const run = ( const args = process.argv.slice(2); -if (includes(args, "--integration-test")) { +if (includes(args, '--integration-test')) { run(INTEGRATION_EXECUTION_ORDER); -} else if (includes(args, "--unit-test")) { +} else if (includes(args, '--unit-test')) { // run(UNIT_EXECUTION_ORDER, false); } diff --git a/packages/contentstack-config/src/base-command.ts b/packages/contentstack-config/src/base-command.ts index a1100c2669..329cd26b01 100644 --- a/packages/contentstack-config/src/base-command.ts +++ b/packages/contentstack-config/src/base-command.ts @@ -1,15 +1,24 @@ import { Command } from '@contentstack/cli-command'; -import { ArgInput, FlagInput, Flags, Interfaces, LoggerService } from '@contentstack/cli-utilities'; +import { ArgInput, FlagInput, Flags, Interfaces, configHandler, createLogContext } from '@contentstack/cli-utilities'; export type Args = Interfaces.InferredArgs; export type Flags = Interfaces.InferredFlags<(typeof BaseCommand)['baseFlags'] & T['flags']>; export abstract class BaseCommand extends Command { - public logger!: LoggerService; + public contextDetails!: { + command: string; + module: string; + userId: string; + email: string; + sessionId: string; + apiKey: string; + orgId: string; + authenticationMethod: string; + }; protected args!: Args; protected flags!: Flags; - static args: ArgInput<{ [arg: string]: any; }>; + static args: ArgInput<{ [arg: string]: any }>; /** * The `init` function initializes the command by parsing arguments and flags, registering search * plugins, registering the configuration, and initializing the logger. @@ -17,8 +26,10 @@ export abstract class BaseCommand extends Command { public async init(): Promise { await super.init(); - // Init logger - this.logger = new LoggerService(process.cwd(), 'cli-log'); + // Init logger context + this.contextDetails = { + ...createLogContext(this.context?.info?.command || 'config', '', configHandler.get('authenticationMethod')), + }; } /** @@ -46,4 +57,4 @@ export abstract class BaseCommand extends Command { // called after run and catch regardless of whether or not the command errored return super.finally(_); } -} \ No newline at end of file +} diff --git a/packages/contentstack-config/src/commands/config/get/log.ts b/packages/contentstack-config/src/commands/config/get/log.ts index 6195bc3850..2c37f106d3 100644 --- a/packages/contentstack-config/src/commands/config/get/log.ts +++ b/packages/contentstack-config/src/commands/config/get/log.ts @@ -1,5 +1,5 @@ import { Command } from '@contentstack/cli-command'; -import { cliux, configHandler, TableHeader } from '@contentstack/cli-utilities'; +import { cliux, configHandler, TableHeader, handleAndLogError } from '@contentstack/cli-utilities'; import { getEffectiveLogConfig } from '../../../utils/log-config-defaults'; export default class LogGetCommand extends Command { @@ -34,6 +34,7 @@ export default class LogGetCommand extends Command { color: 'dim', }); } catch (error) { + handleAndLogError(error, { module: 'config-get-log' }); cliux.error('Error', error); } } diff --git a/packages/contentstack-config/src/commands/config/get/region.ts b/packages/contentstack-config/src/commands/config/get/region.ts index d49295d5bc..d9f89f839c 100644 --- a/packages/contentstack-config/src/commands/config/get/region.ts +++ b/packages/contentstack-config/src/commands/config/get/region.ts @@ -1,5 +1,5 @@ import { Command } from '@contentstack/cli-command'; -import { cliux } from '@contentstack/cli-utilities'; +import { cliux, log } from '@contentstack/cli-utilities'; import { Region } from '../../../interfaces'; import { BaseCommand } from '../../../base-command'; @@ -10,7 +10,7 @@ export default class RegionGetCommand extends BaseCommand 0) { resolvedPath = path.dirname(resolvedPath); } - + currentLoggingConfig.path = resolvedPath; } @@ -71,6 +71,7 @@ export default class LogSetCommand extends Command { ); } } catch (error) { + handleAndLogError(error, { module: 'config-set-log' }); cliux.error('error', error); } } diff --git a/packages/contentstack-config/src/commands/config/set/region.ts b/packages/contentstack-config/src/commands/config/set/region.ts index 45b9c9fd50..22cb2c77ff 100644 --- a/packages/contentstack-config/src/commands/config/set/region.ts +++ b/packages/contentstack-config/src/commands/config/set/region.ts @@ -7,6 +7,7 @@ import { FlagInput, ArgInput, args, + handleAndLogError, } from '@contentstack/cli-utilities'; import { Region } from '../../../interfaces'; import { regionHandler, interactive } from '../../../utils'; @@ -134,7 +135,7 @@ export default class RegionSetCommand extends BaseCommand { - if (includes(file, ".test") && includes(file, testFileExtension)) return file; - else if (includes(file, ".test")) return `${file}${testFileExtension}`; - else if (!includes(file, ".test")) return `${file}.test${testFileExtension}`; + if (includes(file, '.test') && includes(file, testFileExtension)) return file; + else if (includes(file, '.test')) return `${file}${testFileExtension}`; + else if (!includes(file, '.test')) return `${file}.test${testFileExtension}`; else return `${file}.test${testFileExtension}`; }; @@ -30,7 +29,7 @@ const getFileName = (file: string): string => { * @param {Array} files * @param {string} basePath */ -const includeTestFiles = (files: Array, basePath = "integration") => { +const includeTestFiles = (files: Array, basePath = 'integration') => { forEach(files, (file) => { const filename = getFileName(file); const filePath = join(__dirname, basePath, filename); @@ -49,18 +48,15 @@ const includeTestFiles = (files: Array, basePath = "integration") => { * @param {Array | undefined | null} executionOrder * @param {boolean} isIntegrationTest */ -const run = ( - executionOrder: Array | undefined | null, - isIntegrationTest = true -) => { - const testFolder = isIntegrationTest ? "integration" : "unit"; +const run = (executionOrder: Array | undefined | null, isIntegrationTest = true) => { + const testFolder = isIntegrationTest ? 'integration' : 'unit'; if (executionOrder && isArray(executionOrder) && !isEmpty(executionOrder)) { includeTestFiles(executionOrder, testFolder); } else { const basePath = join(__dirname, testFolder); const allIntegrationTestFiles = filter(readdirSync(basePath), (file) => - includes(file, `.test${testFileExtension}`) + includes(file, `.test${testFileExtension}`), ); includeTestFiles(allIntegrationTestFiles); } @@ -68,8 +64,8 @@ const run = ( const args = process.argv.slice(2); -if (includes(args, "--integration-test")) { +if (includes(args, '--integration-test')) { run(INTEGRATION_EXECUTION_ORDER); -} else if (includes(args, "--unit-test")) { +} else if (includes(args, '--unit-test')) { run(UNIT_EXECUTION_ORDER, false); } diff --git a/packages/contentstack-config/test/tsconfig.json b/packages/contentstack-config/test/tsconfig.json index e8fed32cdd..5c252b6d01 100644 --- a/packages/contentstack-config/test/tsconfig.json +++ b/packages/contentstack-config/test/tsconfig.json @@ -1,12 +1,15 @@ { "declaration": false, - "extends": "../tsconfig", + "extends": "../tsconfig.json", "compilerOptions": { "sourceMap": true, "resolveJsonModule": true, - "esModuleInterop": true + "esModuleInterop": true, + "rootDir": "..", + "outDir": "../lib" }, "include": [ - "../src/**/*" + "../src/**/*", + "./**/*" ] } \ No newline at end of file diff --git a/packages/contentstack-config/tsconfig.json b/packages/contentstack-config/tsconfig.json index 6db20442f7..3d5d341a08 100644 --- a/packages/contentstack-config/tsconfig.json +++ b/packages/contentstack-config/tsconfig.json @@ -9,7 +9,9 @@ "target": "es2017", "sourceMap": false, "allowJs": true, - "skipLibCheck": true + "skipLibCheck": true, + "resolveJsonModule": true, + "esModuleInterop": true }, "include": [ "src/**/*" From ef5ac34a6521c4dba41117ee984e758935dbb573 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Tue, 13 Jan 2026 13:23:46 +0530 Subject: [PATCH 10/16] updated gitignore rule and added mock contents --- .gitignore | 2 +- .talismanrc | 6 ++ .../contents/Entries_Mandatory_field.json | 1 + .../mock/contents/Entries_Select_field.json | 1 + .../mock/contents/Entries_Title_field.json | 1 + .../composable_studio/composable_studio.json | 21 +++++++ .../contents/composable_studio/ctSchema.json | 18 ++++++ .../environments/environments.json | 12 ++++ .../invalid_composable_studio.json | 63 +++++++++++++++++++ .../composable_studio/locales/locales.json | 13 ++++ .../locales/master-locale.json | 8 +++ 11 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 packages/contentstack-audit/test/unit/mock/contents/Entries_Mandatory_field.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/Entries_Select_field.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/Entries_Title_field.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/composable_studio/composable_studio.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/composable_studio/ctSchema.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/composable_studio/environments/environments.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/composable_studio/invalid_composable_studio.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/locales.json create mode 100644 packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/master-locale.json diff --git a/.gitignore b/.gitignore index 5e42c8d63c..db312beaf2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,7 @@ node_modules .env .dccache logs -contents +/contents lerna-debug.log .DS_Store contentTest diff --git a/.talismanrc b/.talismanrc index 213afcdcb9..c012016169 100644 --- a/.talismanrc +++ b/.talismanrc @@ -267,4 +267,10 @@ fileignoreconfig: checksum: e8714ef41940f3a9be782dfaa43a15df57bd1eb4c3f0e4d5f305e68681c1bd93 - filename: packages/contentstack-import/src/import/modules-js/environments.js checksum: d484342c25462a7052c8aae6cad0baed9a01e1eaa67d6a09f175981c53092301 + - filename: packages/contentstack-audit/test/unit/mock/contents/composable_studio/environments/environments.json + checksum: 0402604e5919a7e38ecb5ff0916d6ae5ab7d98fe78ff6ac9eba8a9b8130af34d + - filename: packages/contentstack-audit/test/unit/mock/contents/composable_studio/composable_studio.json + checksum: 6912e5ea32b4456ad04d1645750c72bbb29ab1895368c3a242ab39e9350ec531 + - filename: packages/contentstack-audit/test/unit/mock/contents/composable_studio/invalid_composable_studio.json + checksum: e6465aa0011d1565a2de848d9cca74395d11419e6ac840e7dfb52e1d255b1c4f version: '1.0' diff --git a/packages/contentstack-audit/test/unit/mock/contents/Entries_Mandatory_field.json b/packages/contentstack-audit/test/unit/mock/contents/Entries_Mandatory_field.json new file mode 100644 index 0000000000..78fdc7d1a6 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/Entries_Mandatory_field.json @@ -0,0 +1 @@ +{"entry1":{"name":"Test Entry","display_name":"Mandatory Field","missingRefs":["ref1"]}} \ No newline at end of file diff --git a/packages/contentstack-audit/test/unit/mock/contents/Entries_Select_field.json b/packages/contentstack-audit/test/unit/mock/contents/Entries_Select_field.json new file mode 100644 index 0000000000..c3f59c9394 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/Entries_Select_field.json @@ -0,0 +1 @@ +{"entry1":{"name":"Test Entry","display_name":"Select Field","missingRefs":["ref1"]}} \ No newline at end of file diff --git a/packages/contentstack-audit/test/unit/mock/contents/Entries_Title_field.json b/packages/contentstack-audit/test/unit/mock/contents/Entries_Title_field.json new file mode 100644 index 0000000000..cb6bc0765b --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/Entries_Title_field.json @@ -0,0 +1 @@ +{"entry1":{"name":"Test Entry","display_name":"Title Field","missingRefs":["ref1"]}} \ No newline at end of file diff --git a/packages/contentstack-audit/test/unit/mock/contents/composable_studio/composable_studio.json b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/composable_studio.json new file mode 100644 index 0000000000..518568ee34 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/composable_studio.json @@ -0,0 +1,21 @@ +{ + "name": "Test Project 1", + "description": "Test project with valid references", + "canvasUrl": "/", + "connectedStackApiKey": "blt_test_key_1", + "contentTypeUid": "page_1", + "organizationUid": "blt_org_1", + "settings": { + "configuration": { + "environment": "blt_env_dev", + "locale": "en-us" + } + }, + "createdBy": "blt_user_1", + "updatedBy": "blt_user_1", + "deletedAt": false, + "createdAt": "2025-01-01T10:00:00.000Z", + "updatedAt": "2025-01-01T10:00:00.000Z", + "uid": "test_project_uid_1" +} + diff --git a/packages/contentstack-audit/test/unit/mock/contents/composable_studio/ctSchema.json b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/ctSchema.json new file mode 100644 index 0000000000..40f6d0c6a7 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/ctSchema.json @@ -0,0 +1,18 @@ +[ + { + "uid": "page_1", + "title": "Page Type 1", + "schema": [] + }, + { + "uid": "page_2", + "title": "Page Type 2", + "schema": [] + }, + { + "uid": "page_3", + "title": "Page Type 3", + "schema": [] + } +] + diff --git a/packages/contentstack-audit/test/unit/mock/contents/composable_studio/environments/environments.json b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/environments/environments.json new file mode 100644 index 0000000000..5bf08d2740 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/environments/environments.json @@ -0,0 +1,12 @@ +[ + { + "name": "Development", + "uid": "blt_env_dev", + "deploy_content": true + }, + { + "name": "Poduction", + "uid": "blt_env_prod", + "deploy_content": true + } +] diff --git a/packages/contentstack-audit/test/unit/mock/contents/composable_studio/invalid_composable_studio.json b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/invalid_composable_studio.json new file mode 100644 index 0000000000..897aff5492 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/invalid_composable_studio.json @@ -0,0 +1,63 @@ +[ + { + "name": "Invalid CT Project", + "description": "Project with invalid content type", + "canvasUrl": "/", + "connectedStackApiKey": "blt_test_key_2", + "contentTypeUid": "invalid_ct_999", + "organizationUid": "blt_org_1", + "settings": { + "configuration": { + "environment": "blt_env_dev", + "locale": "en-us" + } + }, + "uid": "test_project_uid_2" + }, + { + "name": "Invalid Env Project", + "description": "Project with invalid environment", + "canvasUrl": "/", + "connectedStackApiKey": "blt_test_key_3", + "contentTypeUid": "page_1", + "organizationUid": "blt_org_1", + "settings": { + "configuration": { + "environment": "invalid_env_999", + "locale": "en-us" + } + }, + "uid": "test_project_uid_3" + }, + { + "name": "Invalid Locale Project", + "description": "Project with invalid locale", + "canvasUrl": "/", + "connectedStackApiKey": "blt_test_key_4", + "contentTypeUid": "page_1", + "organizationUid": "blt_org_1", + "settings": { + "configuration": { + "environment": "blt_env_dev", + "locale": "invalid_locale_999" + } + }, + "uid": "test_project_uid_4" + }, + { + "name": "Multiple Issues Project", + "description": "Project with multiple invalid references", + "canvasUrl": "/", + "connectedStackApiKey": "blt_test_key_5", + "contentTypeUid": "invalid_ct_888", + "organizationUid": "blt_org_1", + "settings": { + "configuration": { + "environment": "invalid_env_888", + "locale": "invalid_locale_888" + } + }, + "uid": "test_project_uid_5" + } +] + diff --git a/packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/locales.json b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/locales.json new file mode 100644 index 0000000000..69563247de --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/locales.json @@ -0,0 +1,13 @@ +[ + { + "code": "fr-fr", + "name": "French - France", + "fallback_locale": "en-us" + }, + { + "code": "de-de", + "name": "German - Germany", + "fallback_locale": "en-us" + } +] + diff --git a/packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/master-locale.json b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/master-locale.json new file mode 100644 index 0000000000..2e5ef9fe64 --- /dev/null +++ b/packages/contentstack-audit/test/unit/mock/contents/composable_studio/locales/master-locale.json @@ -0,0 +1,8 @@ +[ + { + "code": "en-us", + "name": "English - United States", + "uid": "blt_locale_en_us" + } +] + From bb402d30d2d9b29090c55208d1857b26e51247f3 Mon Sep 17 00:00:00 2001 From: naman-contentstack Date: Tue, 13 Jan 2026 14:36:41 +0530 Subject: [PATCH 11/16] fix test case, update logger in remaining files --- .../src/commands/config/get/base-branch.ts | 4 ++-- .../src/commands/config/get/early-access-header.ts | 4 ++-- .../contentstack-config/src/commands/config/get/log.ts | 1 - .../src/commands/config/get/rate-limit.ts | 4 ++-- .../src/commands/config/remove/base-branch.ts | 4 ++-- .../src/commands/config/remove/early-access-header.ts | 9 ++++++--- .../src/commands/config/remove/rate-limit.ts | 4 ++-- .../src/commands/config/set/base-branch.ts | 4 ++-- .../src/commands/config/set/early-access-header.ts | 8 +++----- .../contentstack-config/src/commands/config/set/log.ts | 1 - .../src/commands/config/set/rate-limit.ts | 10 +++++++++- .../src/commands/config/set/region.ts | 1 - packages/contentstack-config/test/run.test.ts | 3 ++- packages/contentstack-config/test/tsconfig.json | 9 +++------ packages/contentstack-config/tsconfig.json | 4 +--- 15 files changed, 36 insertions(+), 34 deletions(-) diff --git a/packages/contentstack-config/src/commands/config/get/base-branch.ts b/packages/contentstack-config/src/commands/config/get/base-branch.ts index 71c4b05f4b..dd0b654b1b 100644 --- a/packages/contentstack-config/src/commands/config/get/base-branch.ts +++ b/packages/contentstack-config/src/commands/config/get/base-branch.ts @@ -1,5 +1,5 @@ import { Command } from '@contentstack/cli-command'; -import { cliux, configHandler, messageHandler, TableHeader } from '@contentstack/cli-utilities'; +import { cliux, configHandler, messageHandler, TableHeader, handleAndLogError } from '@contentstack/cli-utilities'; export default class BranchGetCommand extends Command { static description = 'Get current branch set for CLI'; @@ -25,7 +25,7 @@ export default class BranchGetCommand extends Command { cliux.print(`error: ${messageHandler.parse('CLI_CONFIG_BRANCH_LIST_NO_BRANCHES')}`, { color: 'red' }); } } catch (error) { - cliux.error('Error', error); + handleAndLogError(error, { module: 'config-get-base-branch' }); } } } diff --git a/packages/contentstack-config/src/commands/config/get/early-access-header.ts b/packages/contentstack-config/src/commands/config/get/early-access-header.ts index 93c2bff299..52a0e7eeed 100644 --- a/packages/contentstack-config/src/commands/config/get/early-access-header.ts +++ b/packages/contentstack-config/src/commands/config/get/early-access-header.ts @@ -1,4 +1,4 @@ -import { cliux, configHandler } from '@contentstack/cli-utilities'; +import { cliux, configHandler, handleAndLogError } from '@contentstack/cli-utilities'; import { Command } from '@contentstack/cli-command'; export default class GetEarlyAccessHeaderCommand extends Command { @@ -27,7 +27,7 @@ export default class GetEarlyAccessHeaderCommand extends Command { cliux.print(`Early Access header not found.`, { color: 'red' }); } } catch (error) { - this.log('Unable to retrieve the Early Access header config', error instanceof Error ? error.message : error); + handleAndLogError(error, { module: 'config-get-early-access-header' }); } } } diff --git a/packages/contentstack-config/src/commands/config/get/log.ts b/packages/contentstack-config/src/commands/config/get/log.ts index 2c37f106d3..3c5e2599a2 100644 --- a/packages/contentstack-config/src/commands/config/get/log.ts +++ b/packages/contentstack-config/src/commands/config/get/log.ts @@ -35,7 +35,6 @@ export default class LogGetCommand extends Command { }); } catch (error) { handleAndLogError(error, { module: 'config-get-log' }); - cliux.error('Error', error); } } } diff --git a/packages/contentstack-config/src/commands/config/get/rate-limit.ts b/packages/contentstack-config/src/commands/config/get/rate-limit.ts index d1f6784c7a..0c565ad3d9 100644 --- a/packages/contentstack-config/src/commands/config/get/rate-limit.ts +++ b/packages/contentstack-config/src/commands/config/get/rate-limit.ts @@ -1,4 +1,4 @@ -import { cliux, configHandler, TableHeader } from '@contentstack/cli-utilities'; +import { cliux, configHandler, TableHeader, handleAndLogError } from '@contentstack/cli-utilities'; import { Command } from '@contentstack/cli-command'; import { RateLimitConfig } from '../../../interfaces'; @@ -34,7 +34,7 @@ export default class RateLimitGetCommand extends Command { cliux.table(headers, tableData); } catch (error) { - this.log('Unable to retrieve the rate limits configuration', error instanceof Error ? error.message : error); + handleAndLogError(error, { module: 'config-get-rate-limit' }); } } } diff --git a/packages/contentstack-config/src/commands/config/remove/base-branch.ts b/packages/contentstack-config/src/commands/config/remove/base-branch.ts index a9c6edafe8..8005954531 100644 --- a/packages/contentstack-config/src/commands/config/remove/base-branch.ts +++ b/packages/contentstack-config/src/commands/config/remove/base-branch.ts @@ -1,5 +1,5 @@ import { Command } from '@contentstack/cli-command'; -import { cliux, flags, configHandler, FlagInput } from '@contentstack/cli-utilities'; +import { cliux, flags, configHandler, FlagInput, handleAndLogError } from '@contentstack/cli-utilities'; import { interactive } from '../../../utils'; export default class RemoveBranchConfigCommand extends Command { @@ -40,7 +40,7 @@ export default class RemoveBranchConfigCommand extends Command { } } } catch (error) { - cliux.error('error', error); + handleAndLogError(error, { module: 'config-remove-base-branch' }); } } } diff --git a/packages/contentstack-config/src/commands/config/remove/early-access-header.ts b/packages/contentstack-config/src/commands/config/remove/early-access-header.ts index 60110e1272..676d4f2926 100644 --- a/packages/contentstack-config/src/commands/config/remove/early-access-header.ts +++ b/packages/contentstack-config/src/commands/config/remove/early-access-header.ts @@ -1,4 +1,4 @@ -import { cliux, flags, configHandler, FlagInput } from '@contentstack/cli-utilities'; +import { cliux, flags, configHandler, FlagInput, handleAndLogError } from '@contentstack/cli-utilities'; import { interactive } from '../../../utils'; import { Command } from '@contentstack/cli-command'; @@ -7,7 +7,10 @@ export default class RemoveEarlyAccessHeader extends Command { static aliases: string[] = ['config:remove:ea-header']; static flags: FlagInput = { 'header-alias': flags.string({ description: '(optional) Provide the Early Access header alias name.' }), - yes: flags.boolean({ char: 'y', description: '(optional) Force the removal of Early Access header configuration by skipping the confirmation.' }), + yes: flags.boolean({ + char: 'y', + description: '(optional) Force the removal of Early Access header configuration by skipping the confirmation.', + }), }; static examples: string[] = [ '$ <%= config.bin %> <%= command.id %>', @@ -35,7 +38,7 @@ export default class RemoveEarlyAccessHeader extends Command { configHandler.delete(`earlyAccessHeaders.${earlyAccessHeaderAlias}`); cliux.success(`Early Access header has been successfully removed`); } catch (error) { - this.log('Unable to remove the Early Access header config', error instanceof Error ? error.message : error); + handleAndLogError(error, { module: 'config-remove-early-access-header' }); } } } diff --git a/packages/contentstack-config/src/commands/config/remove/rate-limit.ts b/packages/contentstack-config/src/commands/config/remove/rate-limit.ts index 7d47304446..14c83e273c 100644 --- a/packages/contentstack-config/src/commands/config/remove/rate-limit.ts +++ b/packages/contentstack-config/src/commands/config/remove/rate-limit.ts @@ -1,4 +1,4 @@ -import { cliux, configHandler, FlagInput, flags } from '@contentstack/cli-utilities'; +import { cliux, configHandler, FlagInput, flags, handleAndLogError } from '@contentstack/cli-utilities'; import { Command } from '@contentstack/cli-command'; import { askOrgID } from '../../../utils/interactive'; @@ -27,7 +27,7 @@ export default class RateLimitRemoveCommand extends Command { configHandler.delete(`rateLimit.${org}`); cliux.print(`Rate limit entry for organization UID ${org} has been removed.`, { color: 'green' }); } catch (error) { - this.log('Unable to remove the rate limit entry', error instanceof Error ? error.message : error); + handleAndLogError(error, { module: 'config-remove-rate-limit' }); } } } diff --git a/packages/contentstack-config/src/commands/config/set/base-branch.ts b/packages/contentstack-config/src/commands/config/set/base-branch.ts index ed770aa546..1b16684c6c 100644 --- a/packages/contentstack-config/src/commands/config/set/base-branch.ts +++ b/packages/contentstack-config/src/commands/config/set/base-branch.ts @@ -1,5 +1,5 @@ import { Command } from '@contentstack/cli-command'; -import { cliux, flags, configHandler, FlagInput } from '@contentstack/cli-utilities'; +import { cliux, flags, configHandler, FlagInput, handleAndLogError, log } from '@contentstack/cli-utilities'; import { interactive } from '../../../utils'; export default class BranchSetCommand extends Command { @@ -35,7 +35,7 @@ export default class BranchSetCommand extends Command { `Base branch configuration for stack-api-key: ${apiKey} and branch: ${baseBranch} set successfully`, ); } catch (error) { - cliux.error('error', error); + handleAndLogError(error, { module: 'config-set-base-branch' }); } } } diff --git a/packages/contentstack-config/src/commands/config/set/early-access-header.ts b/packages/contentstack-config/src/commands/config/set/early-access-header.ts index f6e4ac1c27..6205e0c99f 100644 --- a/packages/contentstack-config/src/commands/config/set/early-access-header.ts +++ b/packages/contentstack-config/src/commands/config/set/early-access-header.ts @@ -1,4 +1,4 @@ -import { cliux, flags, configHandler, FlagInput } from '@contentstack/cli-utilities'; +import { cliux, flags, configHandler, FlagInput, handleAndLogError } from '@contentstack/cli-utilities'; import { interactive } from '../../../utils'; import { Command } from '@contentstack/cli-command'; @@ -26,11 +26,9 @@ export default class SetEarlyAccessHeaderCommand extends Command { earlyAccessHeader = (await interactive.askEarlyAccessHeaderValue())?.trim(); } configHandler.set(`earlyAccessHeaders.${earlyAccessHeaderAlias}`, earlyAccessHeader); - cliux.success( - `Early Access header has been successfully set`, - ); + cliux.success(`Early Access header has been successfully set`); } catch (error) { - this.log('Unable to set the Early Access header config', error instanceof Error ? error.message : error); + handleAndLogError(error, { module: 'config-set-early-access-header' }); } } } diff --git a/packages/contentstack-config/src/commands/config/set/log.ts b/packages/contentstack-config/src/commands/config/set/log.ts index 03cb07ec99..0900d7cad6 100644 --- a/packages/contentstack-config/src/commands/config/set/log.ts +++ b/packages/contentstack-config/src/commands/config/set/log.ts @@ -72,7 +72,6 @@ export default class LogSetCommand extends Command { } } catch (error) { handleAndLogError(error, { module: 'config-set-log' }); - cliux.error('error', error); } } } diff --git a/packages/contentstack-config/src/commands/config/set/rate-limit.ts b/packages/contentstack-config/src/commands/config/set/rate-limit.ts index c7a5490c48..6bbb420955 100644 --- a/packages/contentstack-config/src/commands/config/set/rate-limit.ts +++ b/packages/contentstack-config/src/commands/config/set/rate-limit.ts @@ -1,4 +1,11 @@ -import { flags, isAuthenticated, FlagInput, managementSDKClient, cliux } from '@contentstack/cli-utilities'; +import { + flags, + isAuthenticated, + FlagInput, + managementSDKClient, + cliux, + handleAndLogError, +} from '@contentstack/cli-utilities'; import { RateLimitHandler } from '../../../utils/rate-limit-handler'; import { BaseCommand } from '../../../base-command'; import { askOrgID } from '../../../utils/interactive'; @@ -82,6 +89,7 @@ export default class SetRateLimitCommand extends BaseCommand Date: Tue, 13 Jan 2026 14:53:45 +0530 Subject: [PATCH 12/16] fix failing log test cases --- .../test/unit/commands/log.test.ts | 257 +++++++++--------- 1 file changed, 122 insertions(+), 135 deletions(-) diff --git a/packages/contentstack-config/test/unit/commands/log.test.ts b/packages/contentstack-config/test/unit/commands/log.test.ts index fa3d825721..48503ae988 100644 --- a/packages/contentstack-config/test/unit/commands/log.test.ts +++ b/packages/contentstack-config/test/unit/commands/log.test.ts @@ -10,17 +10,15 @@ import { LOG_CONFIG_DEFAULTS } from '../../../src/utils/log-config-defaults'; describe('Log Commands', () => { describe('Log Set Command', () => { let successMessage: string[] = []; - let errorMessage: any; + let handleAndLogErrorStub: sinon.SinonStub; beforeEach(() => { successMessage = []; - errorMessage = null; sinon.stub(cliux, 'success').callsFake((msg: string) => successMessage.push(msg)); sinon.stub(cliux, 'print').callsFake((msg: string) => successMessage.push(msg)); // Add this to capture print messages - sinon.stub(cliux, 'error').callsFake((_, err) => { - errorMessage = err; - }); + handleAndLogErrorStub = sinon.stub(); + sinon.replaceGetter(require('@contentstack/cli-utilities'), 'handleAndLogError', () => handleAndLogErrorStub); }); afterEach(() => { @@ -31,7 +29,7 @@ describe('Log Commands', () => { const cmd = new LogSetCommand([], {} as any); const relativePath = './logs/app.log'; const expectedAbsolutePath = path.resolve(process.cwd(), './logs'); // Directory, not file - + sinon.stub(cmd as any, 'parse').resolves({ flags: { level: 'debug', @@ -99,16 +97,16 @@ describe('Log Commands', () => { it('should preserve existing config values when only setting level', async () => { const cmd = new LogSetCommand([], {} as any); const existingPath = './existing/logs/app.log'; - + sinon.stub(cmd as any, 'parse').resolves({ flags: { level: 'warn', }, }); - sinon.stub(configHandler, 'get').returns({ + sinon.stub(configHandler, 'get').returns({ path: existingPath, - 'show-console-logs': true + 'show-console-logs': true, }); const setStub = sinon.stub(configHandler, 'set'); @@ -117,30 +115,30 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { level: 'warn', - path: existingPath, // Should preserve existing path unchanged - 'show-console-logs': true, // Should preserve existing console logs setting + path: existingPath, // Should preserve existing path unchanged + 'show-console-logs': true, // Should preserve existing console logs setting }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.false; }); it('should preserve existing config values when only setting path', async () => { const cmd = new LogSetCommand([], {} as any); const newPath = './new/logs/app.log'; const expectedAbsolutePath = path.resolve(process.cwd(), './new/logs'); - + sinon.stub(cmd as any, 'parse').resolves({ flags: { path: newPath, }, }); - sinon.stub(configHandler, 'get').returns({ + sinon.stub(configHandler, 'get').returns({ level: 'error', - 'show-console-logs': false + 'show-console-logs': false, }); const setStub = sinon.stub(configHandler, 'set'); @@ -154,9 +152,9 @@ describe('Log Commands', () => { }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.false; }); it('should set show-console-logs flag only when explicitly provided', async () => { @@ -172,15 +170,15 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { - level: 'debug', + level: 'debug', path: './existing.log', 'show-console-logs': true, }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; }); it('should set show-console-logs flag to false (--no-show-console-logs)', async () => { @@ -201,16 +199,16 @@ describe('Log Commands', () => { }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; }); it('should set all flags together (level, path, show-console-logs) with absolute path', async () => { const cmd = new LogSetCommand([], {} as any); const relativePath = './logs/warnings.log'; - const expectedAbsolutePath = path.resolve(process.cwd(), './logs'); - + const expectedAbsolutePath = path.resolve(process.cwd(), './logs'); + sinon.stub(cmd as any, 'parse').resolves({ flags: { level: 'warn', @@ -227,7 +225,7 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { level: 'warn', - path: expectedAbsolutePath, + path: expectedAbsolutePath, 'show-console-logs': true, }), ).to.be.true; @@ -241,8 +239,8 @@ describe('Log Commands', () => { it('should handle absolute paths correctly', async () => { const cmd = new LogSetCommand([], {} as any); const absolutePath = '/tmp/cli.log'; - const expectedDirectoryPath = '/tmp'; - + const expectedDirectoryPath = '/tmp'; + sinon.stub(cmd as any, 'parse').resolves({ flags: { path: absolutePath, @@ -271,24 +269,23 @@ describe('Log Commands', () => { await cmd.run(); - expect(errorMessage).to.equal(testError); + expect(handleAndLogErrorStub.called).to.be.true; + expect(handleAndLogErrorStub.calledWith(testError, { module: 'config-set-log' })).to.be.true; }); }); describe('Log Get Command', () => { let tableMessage: any[] = []; - let errorMessage: any; + let handleAndLogErrorStub: sinon.SinonStub; beforeEach(() => { tableMessage = []; - errorMessage = null; sinon.stub(cliux, 'table').callsFake((headers: any, data: any) => { tableMessage.push({ headers, data }); }); - sinon.stub(cliux, 'error').callsFake((_, err) => { - errorMessage = err; - }); + handleAndLogErrorStub = sinon.stub(); + sinon.replaceGetter(require('@contentstack/cli-utilities'), 'handleAndLogError', () => handleAndLogErrorStub); }); afterEach(() => { @@ -299,28 +296,25 @@ describe('Log Commands', () => { const cmd = new LogGetCommand([], {} as any); const relativePath = './logs/app.log'; const expectedAbsolutePath = path.resolve(process.cwd(), relativePath); - + sinon.stub(configHandler, 'get').returns({ level: 'debug', path: relativePath }); await cmd.run(); expect(tableMessage).to.have.length(1); - expect(tableMessage[0].headers).to.deep.equal([ - { value: 'Setting' }, - { value: 'Value' } - ]); + expect(tableMessage[0].headers).to.deep.equal([{ value: 'Setting' }, { value: 'Value' }]); expect(tableMessage[0].data).to.deep.equal([ { - 'Setting': 'Log Level', - 'Value': 'debug' + Setting: 'Log Level', + Value: 'debug', }, { - 'Setting': 'Log Path', - 'Value': expectedAbsolutePath + Setting: 'Log Path', + Value: expectedAbsolutePath, }, { - 'Setting': 'Show Console Logs', - 'Value': 'false' + Setting: 'Show Console Logs', + Value: 'false', }, ]); }); @@ -332,22 +326,19 @@ describe('Log Commands', () => { await cmd.run(); expect(tableMessage).to.have.length(1); - expect(tableMessage[0].headers).to.deep.equal([ - { value: 'Setting' }, - { value: 'Value' } - ]); + expect(tableMessage[0].headers).to.deep.equal([{ value: 'Setting' }, { value: 'Value' }]); expect(tableMessage[0].data).to.deep.equal([ { - 'Setting': 'Log Level', - 'Value': 'info' + Setting: 'Log Level', + Value: 'info', }, { - 'Setting': 'Log Path', - 'Value': LOG_CONFIG_DEFAULTS.PATH + Setting: 'Log Path', + Value: LOG_CONFIG_DEFAULTS.PATH, }, { - 'Setting': 'Show Console Logs', - 'Value': 'false' + Setting: 'Show Console Logs', + Value: 'false', }, ]); }); @@ -356,28 +347,25 @@ describe('Log Commands', () => { const cmd = new LogGetCommand([], {} as any); const customPath = './custom/logs/app.log'; const expectedAbsolutePath = path.resolve(process.cwd(), customPath); - + sinon.stub(configHandler, 'get').returns({ path: customPath }); await cmd.run(); expect(tableMessage).to.have.length(1); - expect(tableMessage[0].headers).to.deep.equal([ - { value: 'Setting' }, - { value: 'Value' } - ]); + expect(tableMessage[0].headers).to.deep.equal([{ value: 'Setting' }, { value: 'Value' }]); expect(tableMessage[0].data).to.deep.equal([ { - 'Setting': 'Log Level', - 'Value': LOG_CONFIG_DEFAULTS.LEVEL + Setting: 'Log Level', + Value: LOG_CONFIG_DEFAULTS.LEVEL, }, { - 'Setting': 'Log Path', - 'Value': expectedAbsolutePath + Setting: 'Log Path', + Value: expectedAbsolutePath, }, { - 'Setting': 'Show Console Logs', - 'Value': 'false' + Setting: 'Show Console Logs', + Value: 'false', }, ]); }); @@ -391,26 +379,26 @@ describe('Log Commands', () => { expect(tableMessage).to.have.length(1); expect(tableMessage[0].data).to.deep.equal([ { - 'Setting': 'Log Level', - 'Value': LOG_CONFIG_DEFAULTS.LEVEL + Setting: 'Log Level', + Value: LOG_CONFIG_DEFAULTS.LEVEL, }, { - 'Setting': 'Log Path', - 'Value': LOG_CONFIG_DEFAULTS.PATH + Setting: 'Log Path', + Value: LOG_CONFIG_DEFAULTS.PATH, }, { - 'Setting': 'Show Console Logs', - 'Value': 'false' + Setting: 'Show Console Logs', + Value: 'false', }, ]); }); it('should display configured console logs setting', async () => { const cmd = new LogGetCommand([], {} as any); - sinon.stub(configHandler, 'get').returns({ - level: 'debug', + sinon.stub(configHandler, 'get').returns({ + level: 'debug', path: '/tmp/cli.log', - 'show-console-logs': true + 'show-console-logs': true, }); await cmd.run(); @@ -418,16 +406,16 @@ describe('Log Commands', () => { expect(tableMessage).to.have.length(1); expect(tableMessage[0].data).to.deep.equal([ { - 'Setting': 'Log Level', - 'Value': 'debug' + Setting: 'Log Level', + Value: 'debug', }, { - 'Setting': 'Log Path', - 'Value': '/tmp/cli.log' + Setting: 'Log Path', + Value: '/tmp/cli.log', }, { - 'Setting': 'Show Console Logs', - 'Value': 'true' + Setting: 'Show Console Logs', + Value: 'true', }, ]); }); @@ -439,23 +427,22 @@ describe('Log Commands', () => { await cmd.run(); - expect(errorMessage).to.equal(testError); + expect(handleAndLogErrorStub.called).to.be.true; + expect(handleAndLogErrorStub.calledWith(testError, { module: 'config-get-log' })).to.be.true; }); }); describe('Log Set Command - New Functionality', () => { let successMessage: string[] = []; - let errorMessage: any; + let handleAndLogErrorStub: sinon.SinonStub; beforeEach(() => { successMessage = []; - errorMessage = null; sinon.stub(cliux, 'success').callsFake((msg: string) => successMessage.push(msg)); sinon.stub(cliux, 'print').callsFake((msg: string) => successMessage.push(msg)); - sinon.stub(cliux, 'error').callsFake((_, err) => { - errorMessage = err; - }); + handleAndLogErrorStub = sinon.stub(); + sinon.replaceGetter(require('@contentstack/cli-utilities'), 'handleAndLogError', () => handleAndLogErrorStub); }); afterEach(() => { @@ -465,14 +452,14 @@ describe('Log Commands', () => { it('should use existing config values when available and no flags provided', async () => { const cmd = new LogSetCommand([], {} as any); const existingPath = '/existing/path/cli.log'; - + sinon.stub(cmd as any, 'parse').resolves({ flags: { 'show-console-logs': false }, }); - sinon.stub(configHandler, 'get').returns({ - level: 'warn', - path: existingPath + sinon.stub(configHandler, 'get').returns({ + level: 'warn', + path: existingPath, }); const setStub = sinon.stub(configHandler, 'set'); @@ -480,8 +467,8 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { - level: 'warn', - path: existingPath, + level: 'warn', + path: existingPath, 'show-console-logs': false, }), ).to.be.true; @@ -490,17 +477,17 @@ describe('Log Commands', () => { it('should mix existing config with new flag values', async () => { const cmd = new LogSetCommand([], {} as any); const newPath = './new-logs/cli.log'; - const expectedAbsolutePath = path.resolve(process.cwd(), './new-logs'); - + const expectedAbsolutePath = path.resolve(process.cwd(), './new-logs'); + sinon.stub(cmd as any, 'parse').resolves({ - flags: { + flags: { path: newPath, - 'show-console-logs': true + 'show-console-logs': true, }, }); - sinon.stub(configHandler, 'get').returns({ - level: 'error' + sinon.stub(configHandler, 'get').returns({ + level: 'error', }); const setStub = sinon.stub(configHandler, 'set'); @@ -508,9 +495,9 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { - level: 'error', - path: expectedAbsolutePath, - 'show-console-logs': true, + level: 'error', + path: expectedAbsolutePath, + 'show-console-logs': true, }), ).to.be.true; }); @@ -519,12 +506,12 @@ describe('Log Commands', () => { const cmd = new LogSetCommand([], {} as any); const windowsPath = 'C:\\logs\\cli.log'; const resolvedPath = path.resolve(process.cwd(), windowsPath); - const expectedPath = path.dirname(resolvedPath); - + const expectedPath = path.dirname(resolvedPath); + sinon.stub(cmd as any, 'parse').resolves({ - flags: { + flags: { path: windowsPath, - 'show-console-logs': false + 'show-console-logs': false, }, }); @@ -535,33 +522,33 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { - level: 'debug', - path: expectedPath, + level: 'debug', + path: expectedPath, 'show-console-logs': false, }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.false; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; }); it('should override existing values when flags are provided with file-to-directory conversion', async () => { const cmd = new LogSetCommand([], {} as any); const newPath = './override/logs/cli.log'; const expectedAbsolutePath = path.resolve(process.cwd(), './override/logs'); // Directory, not file - + sinon.stub(cmd as any, 'parse').resolves({ - flags: { + flags: { level: 'error', path: newPath, - 'show-console-logs': true + 'show-console-logs': true, }, }); - sinon.stub(configHandler, 'get').returns({ - level: 'debug', + sinon.stub(configHandler, 'get').returns({ + level: 'debug', path: './old/path.log', - 'show-console-logs': false + 'show-console-logs': false, }); const setStub = sinon.stub(configHandler, 'set'); @@ -569,25 +556,25 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { - level: 'error', + level: 'error', path: expectedAbsolutePath, - 'show-console-logs': true, + 'show-console-logs': true, }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_LEVEL_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_CONSOLE_SET'))).to.be.true; }); it('should convert file paths to directory paths automatically', async () => { const cmd = new LogSetCommand([], {} as any); const filePath = './custom/logs/debug.log'; const expectedDirectoryPath = path.resolve(process.cwd(), './custom/logs'); - + sinon.stub(cmd as any, 'parse').resolves({ - flags: { - path: filePath + flags: { + path: filePath, }, }); @@ -602,17 +589,17 @@ describe('Log Commands', () => { }), ).to.be.true; - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; }); it('should keep directory paths unchanged', async () => { const cmd = new LogSetCommand([], {} as any); const directoryPath = './custom/logs'; const expectedDirectoryPath = path.resolve(process.cwd(), directoryPath); - + sinon.stub(cmd as any, 'parse').resolves({ - flags: { - path: directoryPath + flags: { + path: directoryPath, }, }); @@ -623,12 +610,12 @@ describe('Log Commands', () => { expect( setStub.calledWith('log', { - path: expectedDirectoryPath, + path: expectedDirectoryPath, }), ).to.be.true; // Should show success message for path only - expect(successMessage.some(msg => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; + expect(successMessage.some((msg) => msg.includes('CLI_CONFIG_LOG_PATH_SET'))).to.be.true; }); }); }); From 584e628953535d948f8838f6e973aea7d0c5d9f0 Mon Sep 17 00:00:00 2001 From: shafeeqd959 Date: Tue, 13 Jan 2026 15:48:08 +0530 Subject: [PATCH 13/16] handled errors --- .../src/modules/composable-studio.ts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/contentstack-audit/src/modules/composable-studio.ts b/packages/contentstack-audit/src/modules/composable-studio.ts index 3e10b915c5..2b97812c77 100644 --- a/packages/contentstack-audit/src/modules/composable-studio.ts +++ b/packages/contentstack-audit/src/modules/composable-studio.ts @@ -1,7 +1,7 @@ import { join, resolve } from 'path'; import { existsSync, readFileSync, writeFileSync } from 'fs'; import { ConfigType, ContentTypeStruct, CtConstructorParam, ModuleConstructorParam } from '../types'; -import { sanitizePath, cliux, log } from '@contentstack/cli-utilities'; +import { sanitizePath, cliux, log, handleAndLogError } from '@contentstack/cli-utilities'; import auditConfig from '../config'; import { $t, auditMsg, commonMsg } from '../messages'; @@ -91,7 +91,7 @@ export default class ComposableStudio { this.config.auditContext, ); } catch (error) { - log.debug(`Failed to load environments: ${error}`, this.config.auditContext); + handleAndLogError(error, this.config.auditContext, 'Failed to load environments'); } } else { log.debug(`Environments file not found at: ${environmentsPath}`, this.config.auditContext); @@ -119,7 +119,7 @@ export default class ComposableStudio { }); log.debug(`Loaded ${this.localeCodeSet.size} master locales`, this.config.auditContext); } catch (error) { - log.debug(`Failed to load master locales: ${error}`, this.config.auditContext); + handleAndLogError(error, this.config.auditContext, 'Failed to load master locales'); } } else { log.debug(`Master locale file not found at: ${masterLocalePath}`, this.config.auditContext); @@ -141,7 +141,7 @@ export default class ComposableStudio { this.config.auditContext, ); } catch (error) { - log.debug(`Failed to load additional locales: ${error}`, this.config.auditContext); + handleAndLogError(error, this.config.auditContext, 'Failed to load additional locales'); } } else { log.debug(`Locales file not found at: ${localesPath}`, this.config.auditContext); @@ -179,8 +179,7 @@ export default class ComposableStudio { this.config.auditContext, ); } catch (error) { - log.debug(`Failed to load composable studio projects: ${error}`, this.config.auditContext); - cliux.print(`Failed to parse composable studio file: ${error}`, { color: 'red' }); + handleAndLogError(error, this.config.auditContext, 'Failed to load composable studio projects'); return {}; } } else { From 60238830ed996ea2db9cc7bd677ec45f3eb52732 Mon Sep 17 00:00:00 2001 From: naman-contentstack Date: Tue, 13 Jan 2026 18:29:27 +0530 Subject: [PATCH 14/16] version bumps --- .talismanrc | 4 +- package-lock.json | 909 +++++----- packages/contentstack-bulk-publish/README.md | 2 +- .../contentstack-bulk-publish/package.json | 4 +- packages/contentstack-config/README.md | 2 +- packages/contentstack-config/package.json | 2 +- packages/contentstack-export/package.json | 2 +- packages/contentstack/README.md | 4 +- packages/contentstack/package.json | 4 +- pnpm-lock.yaml | 1496 ++++++++--------- 10 files changed, 1184 insertions(+), 1245 deletions(-) diff --git a/.talismanrc b/.talismanrc index f781a1c476..ceb7125c32 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,8 +1,8 @@ fileignoreconfig: - filename: package-lock.json - checksum: 25bcbb12c701b53f222c599fa8ce53f347853a1d96257cee79b5cf5878e50015 + checksum: 666b363f8d07955c3b9dd679dbc7edad6ba399490d66f0c89d4936f97068be0c - filename: pnpm-lock.yaml - checksum: 448638c016e13e936e2dfa8297076162b0662de198908d994665579bab8f4b36 + checksum: a9597b1dcbd72dd3ae9e12c1209084d8388d8f8282074802d18f5eae21fbc666 - filename: packages/contentstack-import-setup/test/unit/backup-handler.test.ts checksum: 0582d62b88834554cf12951c8690a73ef3ddbb78b82d2804d994cf4148e1ef93 - filename: packages/contentstack-import-setup/test/config.json diff --git a/package-lock.json b/package-lock.json index 9ecbe65463..cd517c8f09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -280,46 +280,46 @@ } }, "node_modules/@aws-sdk/client-cloudfront": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.965.0.tgz", - "integrity": "sha512-DKkh7TaOhETwoJrZ6Z2Es57oPD2IAIr1JkAwUtYFt+HMN0s4FL/EuZrN78N3DUJCFFeDCR3PaBHEvJ4mGEmJIw==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.967.0.tgz", + "integrity": "sha512-+cfsjAbjP4lFoPJzOawSnLUg9P3RzQ3j6+s4GXocBJSYE9pTeh6AFYx7yAQwzMdW1IwoC+LUlPmetmkIFQuIcQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.965.0", - "@aws-sdk/credential-provider-node": "3.965.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/credential-provider-node": "3.967.0", "@aws-sdk/middleware-host-header": "3.965.0", "@aws-sdk/middleware-logger": "3.965.0", "@aws-sdk/middleware-recursion-detection": "3.965.0", - "@aws-sdk/middleware-user-agent": "3.965.0", + "@aws-sdk/middleware-user-agent": "3.967.0", "@aws-sdk/region-config-resolver": "3.965.0", "@aws-sdk/types": "3.965.0", "@aws-sdk/util-endpoints": "3.965.0", "@aws-sdk/util-user-agent-browser": "3.965.0", - "@aws-sdk/util-user-agent-node": "3.965.0", + "@aws-sdk/util-user-agent-node": "3.967.0", "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.0", + "@smithy/core": "^3.20.2", "@smithy/fetch-http-handler": "^5.3.8", "@smithy/hash-node": "^4.2.7", "@smithy/invalid-dependency": "^4.2.7", "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.1", - "@smithy/middleware-retry": "^4.4.17", + "@smithy/middleware-endpoint": "^4.4.3", + "@smithy/middleware-retry": "^4.4.19", "@smithy/middleware-serde": "^4.2.8", "@smithy/middleware-stack": "^4.2.7", "@smithy/node-config-provider": "^4.3.7", "@smithy/node-http-handler": "^4.4.7", "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/url-parser": "^4.2.7", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.16", - "@smithy/util-defaults-mode-node": "^4.2.19", + "@smithy/util-defaults-mode-browser": "^4.3.18", + "@smithy/util-defaults-mode-node": "^4.2.21", "@smithy/util-endpoints": "^3.2.7", "@smithy/util-middleware": "^4.2.7", "@smithy/util-retry": "^4.2.7", @@ -333,35 +333,35 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.965.0.tgz", - "integrity": "sha512-BTeaaU1iK0BfatTCrtYjNkIHCoZH256qOI18l9bK4z6mVOgpHkYN4RvOu+NnKgyX58n+HWfOuhtKUD4OE33Vdw==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.967.0.tgz", + "integrity": "sha512-7vDlsBqd9y0dJDjCy84WMN+1r60El97IKMGlegU+l9K2+t8+Wf8bYj/J2xfm+6Ayemje6P4nkKS9tubxBLqg+A==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.965.0", - "@aws-sdk/credential-provider-node": "3.965.0", - "@aws-sdk/middleware-bucket-endpoint": "3.965.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/credential-provider-node": "3.967.0", + "@aws-sdk/middleware-bucket-endpoint": "3.966.0", "@aws-sdk/middleware-expect-continue": "3.965.0", - "@aws-sdk/middleware-flexible-checksums": "3.965.0", + "@aws-sdk/middleware-flexible-checksums": "3.967.0", "@aws-sdk/middleware-host-header": "3.965.0", "@aws-sdk/middleware-location-constraint": "3.965.0", "@aws-sdk/middleware-logger": "3.965.0", "@aws-sdk/middleware-recursion-detection": "3.965.0", - "@aws-sdk/middleware-sdk-s3": "3.965.0", + "@aws-sdk/middleware-sdk-s3": "3.967.0", "@aws-sdk/middleware-ssec": "3.965.0", - "@aws-sdk/middleware-user-agent": "3.965.0", + "@aws-sdk/middleware-user-agent": "3.967.0", "@aws-sdk/region-config-resolver": "3.965.0", - "@aws-sdk/signature-v4-multi-region": "3.965.0", + "@aws-sdk/signature-v4-multi-region": "3.967.0", "@aws-sdk/types": "3.965.0", "@aws-sdk/util-endpoints": "3.965.0", "@aws-sdk/util-user-agent-browser": "3.965.0", - "@aws-sdk/util-user-agent-node": "3.965.0", + "@aws-sdk/util-user-agent-node": "3.967.0", "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.0", + "@smithy/core": "^3.20.2", "@smithy/eventstream-serde-browser": "^4.2.7", "@smithy/eventstream-serde-config-resolver": "^4.3.7", "@smithy/eventstream-serde-node": "^4.2.7", @@ -372,21 +372,21 @@ "@smithy/invalid-dependency": "^4.2.7", "@smithy/md5-js": "^4.2.7", "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.1", - "@smithy/middleware-retry": "^4.4.17", + "@smithy/middleware-endpoint": "^4.4.3", + "@smithy/middleware-retry": "^4.4.19", "@smithy/middleware-serde": "^4.2.8", "@smithy/middleware-stack": "^4.2.7", "@smithy/node-config-provider": "^4.3.7", "@smithy/node-http-handler": "^4.4.7", "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/url-parser": "^4.2.7", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.16", - "@smithy/util-defaults-mode-node": "^4.2.19", + "@smithy/util-defaults-mode-browser": "^4.3.18", + "@smithy/util-defaults-mode-node": "^4.2.21", "@smithy/util-endpoints": "^3.2.7", "@smithy/util-middleware": "^4.2.7", "@smithy/util-retry": "^4.2.7", @@ -400,45 +400,45 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.965.0.tgz", - "integrity": "sha512-iv2tr+n4aZ+nPUFFvG00hISPuEd4DU+1/Q8rPAYKXsM+vEPJ2nAnP5duUOa2fbOLIUCRxX3dcQaQaghVHDHzQw==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.967.0.tgz", + "integrity": "sha512-7RgUwHcRMJtWme6kCHGUVT+Rn9GmNH+FHm34N9UgMXzUqQlzFMweE7T5E9O8nv3wIp7xFNB20ADaCw9Xdnox1Q==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/middleware-host-header": "3.965.0", "@aws-sdk/middleware-logger": "3.965.0", "@aws-sdk/middleware-recursion-detection": "3.965.0", - "@aws-sdk/middleware-user-agent": "3.965.0", + "@aws-sdk/middleware-user-agent": "3.967.0", "@aws-sdk/region-config-resolver": "3.965.0", "@aws-sdk/types": "3.965.0", "@aws-sdk/util-endpoints": "3.965.0", "@aws-sdk/util-user-agent-browser": "3.965.0", - "@aws-sdk/util-user-agent-node": "3.965.0", + "@aws-sdk/util-user-agent-node": "3.967.0", "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.0", + "@smithy/core": "^3.20.2", "@smithy/fetch-http-handler": "^5.3.8", "@smithy/hash-node": "^4.2.7", "@smithy/invalid-dependency": "^4.2.7", "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.1", - "@smithy/middleware-retry": "^4.4.17", + "@smithy/middleware-endpoint": "^4.4.3", + "@smithy/middleware-retry": "^4.4.19", "@smithy/middleware-serde": "^4.2.8", "@smithy/middleware-stack": "^4.2.7", "@smithy/node-config-provider": "^4.3.7", "@smithy/node-http-handler": "^4.4.7", "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/url-parser": "^4.2.7", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.16", - "@smithy/util-defaults-mode-node": "^4.2.19", + "@smithy/util-defaults-mode-browser": "^4.3.18", + "@smithy/util-defaults-mode-node": "^4.2.21", "@smithy/util-endpoints": "^3.2.7", "@smithy/util-middleware": "^4.2.7", "@smithy/util-retry": "^4.2.7", @@ -450,20 +450,20 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.965.0.tgz", - "integrity": "sha512-aq9BhQxdHit8UUJ9C0im9TtuKeK0pT6NXmNJxMTCFeStI7GG7ImIsSislg3BZTIifVg1P6VLdzMyz9de85iutQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.967.0.tgz", + "integrity": "sha512-sJmuP7GrVmlbO6DpXkuf9Mbn6jGNNvy6PLawvaxVF150c8bpNk3w39rerRls6q1dot1dBFV2D29hBXMY1agNMg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.965.0", "@aws-sdk/xml-builder": "3.965.0", - "@smithy/core": "^3.20.0", + "@smithy/core": "^3.20.2", "@smithy/node-config-provider": "^4.3.7", "@smithy/property-provider": "^4.2.7", "@smithy/protocol-http": "^5.3.7", "@smithy/signature-v4": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/util-base64": "^4.3.0", "@smithy/util-middleware": "^4.2.7", @@ -489,13 +489,13 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.965.0.tgz", - "integrity": "sha512-mdGnaIjMxTIjsb70dEj3VsWPWpoq1V5MWzBSfJq2H8zgMBXjn6d5/qHP8HMf53l9PrsgqzMpXGv3Av549A2x1g==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.967.0.tgz", + "integrity": "sha512-+XWw0+f/txeMbEVRtTFZhgSw1ymH1ffaVKkdMBSnw48rfSohJElKmitCqdihagRTZpzh7m8qI6tIQ5t3OUqugw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/property-provider": "^4.2.7", "@smithy/types": "^4.11.0", @@ -506,19 +506,19 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.965.0.tgz", - "integrity": "sha512-YuGQel9EgA/z25oeLM+GYYQS750+8AESvr7ZEmVnRPL0sg+K3DmGqdv+9gFjFd0UkLjTlC/jtbP2cuY6UcPiHQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.967.0.tgz", + "integrity": "sha512-0/GIAEv5pY5htg6IBMuYccBgzz3oS2DqHjHi396ziTrwlhbrCNX96AbNhQhzAx3LBZUk13sPfeapjyQ7G57Ekg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/fetch-http-handler": "^5.3.8", "@smithy/node-http-handler": "^4.4.7", "@smithy/property-provider": "^4.2.7", "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/util-stream": "^4.5.8", "tslib": "^2.6.2" @@ -528,20 +528,20 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.965.0.tgz", - "integrity": "sha512-xRo72Prer5s0xYVSCxCymVIRSqrVlevK5cmU0GWq9yJtaBNpnx02jwdJg80t/Ni7pgbkQyFWRMcq38c1tc6M/w==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.967.0.tgz", + "integrity": "sha512-U8dMpaM6Qf6+2Qvp1uG6OcWv1RlrZW7tQkpmzEVWH8HZTGrVHIXXju64NMtIOr7yOnNwd0CKcytuD1QG+phCwQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", - "@aws-sdk/credential-provider-env": "3.965.0", - "@aws-sdk/credential-provider-http": "3.965.0", - "@aws-sdk/credential-provider-login": "3.965.0", - "@aws-sdk/credential-provider-process": "3.965.0", - "@aws-sdk/credential-provider-sso": "3.965.0", - "@aws-sdk/credential-provider-web-identity": "3.965.0", - "@aws-sdk/nested-clients": "3.965.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/credential-provider-env": "3.967.0", + "@aws-sdk/credential-provider-http": "3.967.0", + "@aws-sdk/credential-provider-login": "3.967.0", + "@aws-sdk/credential-provider-process": "3.967.0", + "@aws-sdk/credential-provider-sso": "3.967.0", + "@aws-sdk/credential-provider-web-identity": "3.967.0", + "@aws-sdk/nested-clients": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/credential-provider-imds": "^4.2.7", "@smithy/property-provider": "^4.2.7", @@ -554,14 +554,14 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.965.0.tgz", - "integrity": "sha512-43/H8Qku8LHyugbhLo8kjD+eauhybCeVkmrnvWl8bXNHJP7xi1jCdtBQJKKJqiIHZws4MOEwkji8kFdAVRCe6g==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.967.0.tgz", + "integrity": "sha512-kbvZsZL6CBlfnb71zuJdJmBUFZN5utNrcziZr/DZ2olEOkA9vlmizE8i9BUIbmS7ptjgvRnmcY1A966yfhiblw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", - "@aws-sdk/nested-clients": "3.965.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/nested-clients": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/property-provider": "^4.2.7", "@smithy/protocol-http": "^5.3.7", @@ -574,18 +574,18 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.965.0.tgz", - "integrity": "sha512-cRxmMHF+Zh2lkkkEVduKl+8OQdtg/DhYA69+/7SPSQURlgyjFQGlRQ58B7q8abuNlrGT3sV+UzeOylZpJbV61Q==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.967.0.tgz", + "integrity": "sha512-WuNbHs9rfKKSVok4+OBrZf0AHfzDgFYYMxN2G/q6ZfUmY4QmiPyxV5HkNFh1rqDxS9VV6kAZPo0EBmry10idSg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.965.0", - "@aws-sdk/credential-provider-http": "3.965.0", - "@aws-sdk/credential-provider-ini": "3.965.0", - "@aws-sdk/credential-provider-process": "3.965.0", - "@aws-sdk/credential-provider-sso": "3.965.0", - "@aws-sdk/credential-provider-web-identity": "3.965.0", + "@aws-sdk/credential-provider-env": "3.967.0", + "@aws-sdk/credential-provider-http": "3.967.0", + "@aws-sdk/credential-provider-ini": "3.967.0", + "@aws-sdk/credential-provider-process": "3.967.0", + "@aws-sdk/credential-provider-sso": "3.967.0", + "@aws-sdk/credential-provider-web-identity": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/credential-provider-imds": "^4.2.7", "@smithy/property-provider": "^4.2.7", @@ -598,13 +598,13 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.965.0.tgz", - "integrity": "sha512-gmkPmdiR0yxnTzLPDb7rwrDhGuCUjtgnj8qWP+m0gSz/W43rR4jRPVEf6DUX2iC+ImQhxo3NFhuB3V42Kzo3TQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.967.0.tgz", + "integrity": "sha512-sNCY5JDV0whsfsZ6c2+6eUwH33H7UhKbqvCPbEYlIIa8wkGjCtCyFI3zZIJHVcMKJJ3117vSUFHEkNA7g+8rtw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/property-provider": "^4.2.7", "@smithy/shared-ini-file-loader": "^4.4.2", @@ -616,15 +616,15 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.965.0.tgz", - "integrity": "sha512-N01AYvtCqG3Wo/s/LvYt19ity18/FqggiXT+elAs3X9Om/Wfx+hw9G+i7jaDmy+/xewmv8AdQ2SK5Q30dXw/Fw==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.967.0.tgz", + "integrity": "sha512-0K6kITKNytFjk1UYabYUsTThgU6TQkyW6Wmt8S5zd1A/up7NSQGpp58Rpg9GIf4amQDQwb+p9FGG7emmV8FEeA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.965.0", - "@aws-sdk/core": "3.965.0", - "@aws-sdk/token-providers": "3.965.0", + "@aws-sdk/client-sso": "3.967.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/token-providers": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/property-provider": "^4.2.7", "@smithy/shared-ini-file-loader": "^4.4.2", @@ -636,14 +636,14 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.965.0.tgz", - "integrity": "sha512-T4gMZ2JzXnfxe1oTD+EDGLSxFfk1+WkLZdiHXEMZp8bFI1swP/3YyDFXI+Ib9Uq1JhnAmrCXtOnkicKEhDkdhQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.967.0.tgz", + "integrity": "sha512-Vkr7S2ec7q/v8i/MzkHcBEdqqfWz3lyb8FDjb+NjslEwdxC3f6XwADRZzWwV1pChfx6SbsvJXKfkcF/pKAelhA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", - "@aws-sdk/nested-clients": "3.965.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/nested-clients": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/property-provider": "^4.2.7", "@smithy/shared-ini-file-loader": "^4.4.2", @@ -655,14 +655,14 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.965.0.tgz", - "integrity": "sha512-gbdv3Dl8l8xmg4oH60fXvfDyTxfx28w5/Hxdymx3vurM07tAyd4qld8zEXejnSpraTo45QcHRtk5auELIMfeag==", + "version": "3.966.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.966.0.tgz", + "integrity": "sha512-KMPZ7gtFXErd9pMpXJMBwFlxxlGIaIQrUBfj3ea7rlrNtoVHnSI4qsoldLq5l9/Ho64KoCiICH4+qXjze8JTDQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-sdk/types": "3.965.0", - "@aws-sdk/util-arn-parser": "3.965.0", + "@aws-sdk/util-arn-parser": "3.966.0", "@smithy/node-config-provider": "^4.3.7", "@smithy/protocol-http": "^5.3.7", "@smithy/types": "^4.11.0", @@ -690,16 +690,16 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.965.0.tgz", - "integrity": "sha512-5rzEW08trcpHMe6jkQyYc4PL1KG/H7BbnySFSzhih+r/gktQEiE36sb1BNf7av9I0Vk2Ccmt7wocB5PIT7GDkQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.967.0.tgz", + "integrity": "sha512-RuOan0fknnAep2pTSjmJ+Heomowxg3M3s+pcs0JEW/SYnvdwYhFOTcFg2VBvGv3V1kwXxXHMlC57zoGn6pNcqg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/crc64-nvme": "3.965.0", "@aws-sdk/types": "3.965.0", "@smithy/is-array-buffer": "^4.2.0", @@ -779,20 +779,20 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.965.0.tgz", - "integrity": "sha512-dXEgnojaaVRl+OlOx35mg3rYEbfffIN4X6tLmIfDnaKz0hMaDMvsE9jJXb/vBvokbdO1sVB27/2FEM4ttLSLnw==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.967.0.tgz", + "integrity": "sha512-Kkd6xGwTqbg7Spq1SI3ZX6PPYKdGLxdRGlXGNE3lnEPzNueQZQJKLZFpOY2aVdcAT+ytAY96N5szeeeAsFdUaA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/types": "3.965.0", - "@aws-sdk/util-arn-parser": "3.965.0", - "@smithy/core": "^3.20.0", + "@aws-sdk/util-arn-parser": "3.966.0", + "@smithy/core": "^3.20.2", "@smithy/node-config-provider": "^4.3.7", "@smithy/protocol-http": "^5.3.7", "@smithy/signature-v4": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/util-config-provider": "^4.2.0", "@smithy/util-middleware": "^4.2.7", @@ -820,16 +820,16 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.965.0.tgz", - "integrity": "sha512-RBEYVGgu/WeAt+H/qLrGc+t8LqAUkbyvh3wBfTiuAD+uBcWsKnvnB1iSBX75FearC0fmoxzXRUc0PMxMdqpjJQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.967.0.tgz", + "integrity": "sha512-2qzJzZj5u+cZiG7kz3XJPaTH4ssUY/aet1kwJsUTFKrWeHUf7mZZkDFfkXP5cOffgiOyR5ZkrmJoLKAde9hshg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/types": "3.965.0", "@aws-sdk/util-endpoints": "3.965.0", - "@smithy/core": "^3.20.0", + "@smithy/core": "^3.20.2", "@smithy/protocol-http": "^5.3.7", "@smithy/types": "^4.11.0", "tslib": "^2.6.2" @@ -839,45 +839,45 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.965.0.tgz", - "integrity": "sha512-muNVUjUEU+/KLFrLzQ8PMXyw4+a/MP6t4GIvwLtyx/kH0rpSy5s0YmqacMXheuIe6F/5QT8uksXGNAQenitkGQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.967.0.tgz", + "integrity": "sha512-PYa7V8w0gaNux6Sz/Z7zrHmPloEE+EKpRxQIOG/D0askTr5Yd4oO2KGgcInf65uHK3f0Z9U4CTUGHZvQvABypA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.965.0", + "@aws-sdk/core": "3.967.0", "@aws-sdk/middleware-host-header": "3.965.0", "@aws-sdk/middleware-logger": "3.965.0", "@aws-sdk/middleware-recursion-detection": "3.965.0", - "@aws-sdk/middleware-user-agent": "3.965.0", + "@aws-sdk/middleware-user-agent": "3.967.0", "@aws-sdk/region-config-resolver": "3.965.0", "@aws-sdk/types": "3.965.0", "@aws-sdk/util-endpoints": "3.965.0", "@aws-sdk/util-user-agent-browser": "3.965.0", - "@aws-sdk/util-user-agent-node": "3.965.0", + "@aws-sdk/util-user-agent-node": "3.967.0", "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.0", + "@smithy/core": "^3.20.2", "@smithy/fetch-http-handler": "^5.3.8", "@smithy/hash-node": "^4.2.7", "@smithy/invalid-dependency": "^4.2.7", "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.1", - "@smithy/middleware-retry": "^4.4.17", + "@smithy/middleware-endpoint": "^4.4.3", + "@smithy/middleware-retry": "^4.4.19", "@smithy/middleware-serde": "^4.2.8", "@smithy/middleware-stack": "^4.2.7", "@smithy/node-config-provider": "^4.3.7", "@smithy/node-http-handler": "^4.4.7", "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.2", + "@smithy/smithy-client": "^4.10.4", "@smithy/types": "^4.11.0", "@smithy/url-parser": "^4.2.7", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.16", - "@smithy/util-defaults-mode-node": "^4.2.19", + "@smithy/util-defaults-mode-browser": "^4.3.18", + "@smithy/util-defaults-mode-node": "^4.2.21", "@smithy/util-endpoints": "^3.2.7", "@smithy/util-middleware": "^4.2.7", "@smithy/util-retry": "^4.2.7", @@ -906,13 +906,13 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.965.0.tgz", - "integrity": "sha512-hgbAThbsUrWtNpFBQxzXevIfd5Qgr4TLbXY1AIbmpSX9fPVC114pdieRMpopJ0fYaJ7v5/blTiS6wzVdXleZ/w==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.967.0.tgz", + "integrity": "sha512-LfpCEqe/BliiwBtNImz/Txx6MQZkDqjP2bbk+Q4Km6mYhFU9pyPlKo3AYEHfGWn92Smt1nS3S8SzIK0nL6J2Fg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.965.0", + "@aws-sdk/middleware-sdk-s3": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/protocol-http": "^5.3.7", "@smithy/signature-v4": "^5.3.7", @@ -924,14 +924,14 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.965.0.tgz", - "integrity": "sha512-aR0qxg0b8flkXJVE+CM1gzo7uJ57md50z2eyCwofC0QIz5Y0P7/7vvb9/dmUQt6eT9XRN5iRcUqq2IVxVDvJOw==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.967.0.tgz", + "integrity": "sha512-Qnd/nJ0CgeUa7zQczgmdQm0vYUF7pD1G0C+dR1T7huHQHRIsgCWIsCV9wNKzOFluqtcr6YAeuTwvY0+l8XWxnA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.965.0", - "@aws-sdk/nested-clients": "3.965.0", + "@aws-sdk/core": "3.967.0", + "@aws-sdk/nested-clients": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/property-provider": "^4.2.7", "@smithy/shared-ini-file-loader": "^4.4.2", @@ -957,9 +957,9 @@ } }, "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.965.0.tgz", - "integrity": "sha512-bNGKr5Tct28jGLkL8xIkGu7swpDgBpkTVbGaofhzr/X80iclbOv656RGxhMpDvmc4S9UuQnqLRXyceNFNF2V7Q==", + "version": "3.966.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.966.0.tgz", + "integrity": "sha512-WcCLdKBK2nHhtOPE8du5XjOXaOToxGF3Ge8rgK2jaRpjkzjS0/mO+Jp2H4+25hOne3sP2twBu5BrvD9KoXQ5LQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1013,13 +1013,13 @@ } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.965.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.965.0.tgz", - "integrity": "sha512-kokIHUfNT3/P55E4fUJJrFHuuA9BbjFKUIxoLrd3UaRfdafT0ScRfg2eaZie6arf60EuhlUIZH0yALxttMEjxQ==", + "version": "3.967.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.967.0.tgz", + "integrity": "sha512-yUz6pCGxyG4+QaDg0dkdIBphjQp8A9rrbZa/+U3RJgRrW47hy64clFQUROzj5Poy1Ur8ICVXEUpBsSqRuYEU2g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.965.0", + "@aws-sdk/middleware-user-agent": "3.967.0", "@aws-sdk/types": "3.965.0", "@smithy/node-config-provider": "^4.3.7", "@smithy/types": "^4.11.0", @@ -1063,13 +1063,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -1078,9 +1078,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", + "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", "dev": true, "license": "MIT", "engines": { @@ -1088,21 +1088,21 @@ } }, "node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", @@ -1129,14 +1129,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", + "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -1146,13 +1146,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", + "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", @@ -1183,29 +1183,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1215,9 +1215,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, "license": "MIT", "engines": { @@ -1255,14 +1255,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1363,13 +1363,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.5" + "@babel/types": "^7.28.6" }, "bin": { "parser": "bin/babel-parser.js" @@ -1434,13 +1434,13 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1476,13 +1476,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1602,13 +1602,13 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1618,33 +1618,33 @@ } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", "debug": "^4.3.1" }, "engines": { @@ -1652,9 +1652,9 @@ } }, "node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", "dev": true, "license": "MIT", "dependencies": { @@ -1945,9 +1945,9 @@ } }, "node_modules/@es-joy/jsdoccomment/node_modules/@typescript-eslint/types": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -2952,9 +2952,9 @@ } }, "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.19.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", - "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", + "version": "22.19.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.5.tgz", + "integrity": "sha512-HfF8+mYcHPcPypui3w3mvzuIErlNOh2OAG+BCeBZCEwyiD5ls2SiCwEyT47OELtf7M3nHxBdu0FsmzdKxkN52Q==", "dev": true, "license": "MIT", "dependencies": { @@ -4152,9 +4152,9 @@ } }, "node_modules/@oclif/plugin-not-found/node_modules/@types/node": { - "version": "25.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", - "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.7.tgz", + "integrity": "sha512-C/er7DlIZgRJO7WtTdYovjIFzGsz0I95UlMyR9anTb4aCpBSRWe5Jc1/RvLKUfzmOxHPGjSE5+63HgLtndxU4w==", "license": "MIT", "optional": true, "peer": true, @@ -4296,6 +4296,7 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/@otplib/plugin-crypto/-/plugin-crypto-12.0.1.tgz", "integrity": "sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g==", + "deprecated": "Please upgrade to v13 of otplib. Refer to otplib docs for migration paths", "license": "MIT", "dependencies": { "@otplib/core": "^12.0.1" @@ -4305,6 +4306,7 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/@otplib/plugin-thirty-two/-/plugin-thirty-two-12.0.1.tgz", "integrity": "sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA==", + "deprecated": "Please upgrade to v13 of otplib. Refer to otplib docs for migration paths", "license": "MIT", "dependencies": { "@otplib/core": "^12.0.1", @@ -4315,6 +4317,7 @@ "version": "12.0.1", "resolved": "https://registry.npmjs.org/@otplib/preset-default/-/preset-default-12.0.1.tgz", "integrity": "sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==", + "deprecated": "Please upgrade to v13 of otplib. Refer to otplib docs for migration paths", "license": "MIT", "dependencies": { "@otplib/core": "^12.0.1", @@ -4983,9 +4986,9 @@ } }, "node_modules/@smithy/core": { - "version": "3.20.1", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.20.1.tgz", - "integrity": "sha512-wOboSEdQ85dbKAJ0zL+wQ6b0HTSBRhtGa0PYKysQXkRg+vK0tdCRRVruiFM2QMprkOQwSYOnwF4og96PAaEGag==", + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.20.3.tgz", + "integrity": "sha512-iwF1e0+H9vX+4reUA0WjKnc5ueg0Leinl5kI7wsie5bVXoYdzkpINz6NPYhpr/5InOv332a7wNV5AxJyFoVUsQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5218,13 +5221,13 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.2.tgz", - "integrity": "sha512-mqpAdux0BNmZu/SqkFhQEnod4fX23xxTvU2LUpmKp0JpSI+kPYCiHJMmzREr8yxbNxKL2/DU1UZm9i++ayU+2g==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.4.tgz", + "integrity": "sha512-TFxS6C5bGSc4djD1SLVmstCpfYDjmMnBR4KRDge5HEEtgSINGPKuxLvaAGfSPx5FFoMaTJkj4jJLNFggeWpRoQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.20.1", + "@smithy/core": "^3.20.3", "@smithy/middleware-serde": "^4.2.8", "@smithy/node-config-provider": "^4.3.7", "@smithy/shared-ini-file-loader": "^4.4.2", @@ -5238,16 +5241,16 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.4.18", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.18.tgz", - "integrity": "sha512-E5hulijA59nBk/zvcwVMaS7FG7Y4l6hWA9vrW018r+8kiZef4/ETQaPI4oY+3zsy9f6KqDv3c4VKtO4DwwgpCg==", + "version": "4.4.20", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.20.tgz", + "integrity": "sha512-+UvEn/8HGzh/6zpe9xFGZe7go4/fzflggfeRG/TvdGLoUY7Gw+4RgzKJEPU2NvPo0k/j/o7vvx25ZWyOXeGoxw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.7", "@smithy/protocol-http": "^5.3.7", "@smithy/service-error-classification": "^4.2.7", - "@smithy/smithy-client": "^4.10.3", + "@smithy/smithy-client": "^4.10.5", "@smithy/types": "^4.11.0", "@smithy/util-middleware": "^4.2.7", "@smithy/util-retry": "^4.2.7", @@ -5425,14 +5428,14 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.10.3", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.3.tgz", - "integrity": "sha512-EfECiO/0fAfb590LBnUe7rI5ux7XfquQ8LBzTe7gxw0j9QW/q8UT/EHWHlxV/+jhQ3+Ssga9uUYXCQgImGMbNg==", + "version": "4.10.5", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.5.tgz", + "integrity": "sha512-uotYm3WDne01R0DxBqF9J8WZc8gSgdj+uC7Lv/R+GinH4rxcgRLxLDayYkyGAboZlYszly6maQA+NGQ5N4gLhQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.20.1", - "@smithy/middleware-endpoint": "^4.4.2", + "@smithy/core": "^3.20.3", + "@smithy/middleware-endpoint": "^4.4.4", "@smithy/middleware-stack": "^4.2.7", "@smithy/protocol-http": "^5.3.7", "@smithy/types": "^4.11.0", @@ -5540,14 +5543,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.17", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.17.tgz", - "integrity": "sha512-dwN4GmivYF1QphnP3xJESXKtHvkkvKHSZI8GrSKMVoENVSKW2cFPRYC4ZgstYjUHdR3zwaDkIaTDIp26JuY7Cw==", + "version": "4.3.19", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.19.tgz", + "integrity": "sha512-5fkC/yE5aepnzcF9dywKefGlJUMM7JEYUOv97TRDLTtGiiAqf7YG80HJWIBR0qWQPQW3dlQ5eFlUsySvt0rGEA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.2.7", - "@smithy/smithy-client": "^4.10.3", + "@smithy/smithy-client": "^4.10.5", "@smithy/types": "^4.11.0", "tslib": "^2.6.2" }, @@ -5556,9 +5559,9 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.20", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.20.tgz", - "integrity": "sha512-VD/I4AEhF1lpB3B//pmOIMBNLMrtdMXwy9yCOfa2QkJGDr63vH3RqPbSAKzoGMov3iryCxTXCxSsyGmEB8PDpg==", + "version": "4.2.22", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.22.tgz", + "integrity": "sha512-f0KNaSK192+kv6GFkUDA0Tvr5B8eU2bFh1EO+cUdlzZ2jap5Zv7KZXa0B/7r/M1+xiYPSIuroxlxQVP1ua9kxg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5566,7 +5569,7 @@ "@smithy/credential-provider-imds": "^4.2.7", "@smithy/node-config-provider": "^4.3.7", "@smithy/property-provider": "^4.2.7", - "@smithy/smithy-client": "^4.10.3", + "@smithy/smithy-client": "^4.10.5", "@smithy/types": "^4.11.0", "tslib": "^2.6.2" }, @@ -5737,14 +5740,14 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", - "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0" + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5755,9 +5758,9 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -5769,16 +5772,16 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", - "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.52.0", - "@typescript-eslint/tsconfig-utils": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -5797,16 +5800,16 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", - "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0" + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5821,13 +5824,13 @@ } }, "node_modules/@stylistic/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", - "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/types": "8.53.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -6036,9 +6039,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.19.7", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.7.tgz", - "integrity": "sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==", + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", "license": "MIT", "dependencies": { "@types/node": "*", @@ -6190,9 +6193,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", "license": "MIT" }, "node_modules/@types/markdown-it": { @@ -6497,14 +6500,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz", - "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.53.0.tgz", + "integrity": "sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.52.0", - "@typescript-eslint/types": "^8.52.0", + "@typescript-eslint/tsconfig-utils": "^8.53.0", + "@typescript-eslint/types": "^8.53.0", "debug": "^4.4.3" }, "engines": { @@ -6519,9 +6522,9 @@ } }, "node_modules/@typescript-eslint/project-service/node_modules/@typescript-eslint/types": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -6551,9 +6554,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz", - "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.53.0.tgz", + "integrity": "sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==", "dev": true, "license": "MIT", "engines": { @@ -7756,9 +7759,9 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.13", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.13.tgz", - "integrity": "sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==", + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", "dev": true, "license": "Apache-2.0", "bin": { @@ -8228,9 +8231,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001763", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001763.tgz", - "integrity": "sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==", + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", "dev": true, "funding": [ { @@ -10172,9 +10175,9 @@ } }, "node_modules/eslint-config-oclif": { - "version": "6.0.129", - "resolved": "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-6.0.129.tgz", - "integrity": "sha512-gUL41BzraulUoPPy8pohJo2brIPG2YsLEF14ZJ/zuGw9m2t1/hs9173ThfcSDL85++B8d0xYwy3gYB3LCo1f6g==", + "version": "6.0.130", + "resolved": "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-6.0.130.tgz", + "integrity": "sha512-8+0iqrin1Z1CWj166lmBMqJtdss3mjT1hqWT7A1HFE2Pn3+2b7pT3QWwsyF8pUJX2BznGsLfH2z2uvhjSuBt9Q==", "dev": true, "license": "MIT", "dependencies": { @@ -10194,7 +10197,7 @@ "eslint-plugin-n": "^17.22.0", "eslint-plugin-perfectionist": "^4", "eslint-plugin-unicorn": "^56.0.1", - "typescript-eslint": "^8.51.0" + "typescript-eslint": "^8.52.0" }, "engines": { "node": ">=18.18.0" @@ -10625,17 +10628,17 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz", - "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", + "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/type-utils": "8.52.0", - "@typescript-eslint/utils": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/type-utils": "8.53.0", + "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -10648,7 +10651,7 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.52.0", + "@typescript-eslint/parser": "^8.53.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } @@ -10664,16 +10667,16 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/parser": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz", - "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", + "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3" }, "engines": { @@ -10689,14 +10692,14 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/scope-manager": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", - "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0" + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10707,15 +10710,15 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/type-utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz", - "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", + "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0", - "@typescript-eslint/utils": "8.52.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/utils": "8.53.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -10732,9 +10735,9 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/types": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -10746,16 +10749,16 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", - "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.52.0", - "@typescript-eslint/tsconfig-utils": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -10790,16 +10793,16 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", - "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0" + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -10814,13 +10817,13 @@ } }, "node_modules/eslint-config-oclif/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", - "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/types": "8.53.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -11625,14 +11628,14 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/scope-manager": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", - "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0" + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11643,9 +11646,9 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/types": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -11657,16 +11660,16 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", - "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.52.0", - "@typescript-eslint/tsconfig-utils": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -11685,16 +11688,16 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", - "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0" + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -11709,13 +11712,13 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", - "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/types": "8.53.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -14291,9 +14294,9 @@ } }, "node_modules/inquirer/node_modules/@types/node": { - "version": "25.0.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", - "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", + "version": "25.0.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.7.tgz", + "integrity": "sha512-C/er7DlIZgRJO7WtTdYovjIFzGsz0I95UlMyR9anTb4aCpBSRWe5Jc1/RvLKUfzmOxHPGjSE5+63HgLtndxU4w==", "license": "MIT", "optional": true, "peer": true, @@ -21011,14 +21014,14 @@ } }, "node_modules/oclif": { - "version": "4.22.63", - "resolved": "https://registry.npmjs.org/oclif/-/oclif-4.22.63.tgz", - "integrity": "sha512-xhlXnMLlvnV376ofTKVW9KZk0lsvMSnLqUk6rJ3V18lzMj8grt3s4opWuEib9xgyig0rELCK46iYeZUgw04ibg==", + "version": "4.22.65", + "resolved": "https://registry.npmjs.org/oclif/-/oclif-4.22.65.tgz", + "integrity": "sha512-pJW0P+gUzIAS6gSQH11jmbu9xQgjfxgBV+FjWvvwu68NUtljtpZm1w3uftXUVk51Ra40r9XB1Jh/Mcbb+I6yJw==", "dev": true, "license": "MIT", "dependencies": { - "@aws-sdk/client-cloudfront": "^3.962.0", - "@aws-sdk/client-s3": "^3.962.0", + "@aws-sdk/client-cloudfront": "^3.966.0", + "@aws-sdk/client-s3": "^3.966.0", "@inquirer/confirm": "^3.1.22", "@inquirer/input": "^2.2.4", "@inquirer/select": "^2.5.0", @@ -25577,16 +25580,16 @@ } }, "node_modules/typescript-eslint": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.52.0.tgz", - "integrity": "sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.53.0.tgz", + "integrity": "sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.52.0", - "@typescript-eslint/parser": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0", - "@typescript-eslint/utils": "8.52.0" + "@typescript-eslint/eslint-plugin": "8.53.0", + "@typescript-eslint/parser": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/utils": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25601,17 +25604,17 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz", - "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.53.0.tgz", + "integrity": "sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/type-utils": "8.52.0", - "@typescript-eslint/utils": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/type-utils": "8.53.0", + "@typescript-eslint/utils": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" @@ -25624,22 +25627,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.52.0", + "@typescript-eslint/parser": "^8.53.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz", - "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.53.0.tgz", + "integrity": "sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3" }, "engines": { @@ -25655,14 +25658,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", - "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.53.0.tgz", + "integrity": "sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0" + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25673,15 +25676,15 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz", - "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.53.0.tgz", + "integrity": "sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0", - "@typescript-eslint/utils": "8.52.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0", + "@typescript-eslint/utils": "8.53.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, @@ -25698,9 +25701,9 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.53.0.tgz", + "integrity": "sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==", "dev": true, "license": "MIT", "engines": { @@ -25712,16 +25715,16 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", - "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.53.0.tgz", + "integrity": "sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.52.0", - "@typescript-eslint/tsconfig-utils": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/visitor-keys": "8.52.0", + "@typescript-eslint/project-service": "8.53.0", + "@typescript-eslint/tsconfig-utils": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/visitor-keys": "8.53.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", @@ -25740,16 +25743,16 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", - "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.53.0.tgz", + "integrity": "sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0" + "@typescript-eslint/scope-manager": "8.53.0", + "@typescript-eslint/types": "8.53.0", + "@typescript-eslint/typescript-estree": "8.53.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -25764,13 +25767,13 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", - "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.53.0.tgz", + "integrity": "sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/types": "8.53.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -26712,7 +26715,7 @@ "@contentstack/cli-auth": "~1.6.3", "@contentstack/cli-cm-bootstrap": "~1.18.0", "@contentstack/cli-cm-branches": "~1.6.2", - "@contentstack/cli-cm-bulk-publish": "~1.10.4", + "@contentstack/cli-cm-bulk-publish": "~1.10.5", "@contentstack/cli-cm-clone": "~1.19.0", "@contentstack/cli-cm-export": "~1.22.2", "@contentstack/cli-cm-export-to-csv": "~1.10.2", @@ -26721,7 +26724,7 @@ "@contentstack/cli-cm-migrate-rte": "~1.6.3", "@contentstack/cli-cm-seed": "~1.14.0", "@contentstack/cli-command": "~1.7.1", - "@contentstack/cli-config": "~1.16.2", + "@contentstack/cli-config": "~1.17.0", "@contentstack/cli-launch": "^1.9.2", "@contentstack/cli-migration": "~1.10.2", "@contentstack/cli-utilities": "~1.16.0", @@ -26826,9 +26829,9 @@ "license": "MIT" }, "packages/contentstack-audit/node_modules/@types/node": { - "version": "20.19.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", - "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", + "version": "20.19.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.28.tgz", + "integrity": "sha512-VyKBr25BuFDzBFCK5sUM6ZXiWfqgCTwTAOK8qzGV/m9FCirXYDlmczJ+d5dXBAQALGCdRRdbteKYfJ84NGEusw==", "dev": true, "license": "MIT", "dependencies": { @@ -27106,11 +27109,11 @@ }, "packages/contentstack-bulk-publish": { "name": "@contentstack/cli-cm-bulk-publish", - "version": "1.10.4", + "version": "1.10.5", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.7.1", - "@contentstack/cli-config": "~1.16.2", + "@contentstack/cli-config": "~1.17.0", "@contentstack/cli-utilities": "~1.16.0", "@oclif/core": "^4.3.0", "@oclif/plugin-help": "^6.2.28", @@ -27292,7 +27295,7 @@ }, "packages/contentstack-config": { "name": "@contentstack/cli-config", - "version": "1.16.2", + "version": "1.17.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.7.1", @@ -27646,7 +27649,7 @@ }, "devDependencies": { "@contentstack/cli-auth": "~1.6.3", - "@contentstack/cli-config": "~1.16.2", + "@contentstack/cli-config": "~1.17.0", "@contentstack/cli-dev-dependencies": "~1.3.1", "@oclif/plugin-help": "^6.2.28", "@oclif/test": "^4.1.13", @@ -28420,9 +28423,9 @@ } }, "packages/contentstack-variants/node_modules/@types/node": { - "version": "20.19.27", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.27.tgz", - "integrity": "sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==", + "version": "20.19.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.28.tgz", + "integrity": "sha512-VyKBr25BuFDzBFCK5sUM6ZXiWfqgCTwTAOK8qzGV/m9FCirXYDlmczJ+d5dXBAQALGCdRRdbteKYfJ84NGEusw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/packages/contentstack-bulk-publish/README.md b/packages/contentstack-bulk-publish/README.md index 491ac0cd23..0453948366 100644 --- a/packages/contentstack-bulk-publish/README.md +++ b/packages/contentstack-bulk-publish/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-cm-bulk-publish $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-cm-bulk-publish/1.10.4 darwin-arm64 node-v22.14.0 +@contentstack/cli-cm-bulk-publish/1.10.5 darwin-arm64 node-v22.14.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-bulk-publish/package.json b/packages/contentstack-bulk-publish/package.json index 19788b0b04..38b88a44d9 100644 --- a/packages/contentstack-bulk-publish/package.json +++ b/packages/contentstack-bulk-publish/package.json @@ -1,12 +1,12 @@ { "name": "@contentstack/cli-cm-bulk-publish", "description": "Contentstack CLI plugin for bulk publish actions", - "version": "1.10.4", + "version": "1.10.5", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { "@contentstack/cli-command": "~1.7.1", - "@contentstack/cli-config": "~1.16.2", + "@contentstack/cli-config": "~1.17.0", "@contentstack/cli-utilities": "~1.16.0", "@oclif/core": "^4.3.0", "@oclif/plugin-help": "^6.2.28", diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md index e149682c6b..11458cb5ce 100644 --- a/packages/contentstack-config/README.md +++ b/packages/contentstack-config/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-config $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-config/1.16.2 darwin-arm64 node-v22.14.0 +@contentstack/cli-config/1.17.0 darwin-arm64 node-v22.14.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json index 9b1fb20917..b81d253b01 100644 --- a/packages/contentstack-config/package.json +++ b/packages/contentstack-config/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli-config", "description": "Contentstack CLI plugin for configuration", - "version": "1.16.2", + "version": "1.17.0", "author": "Contentstack", "scripts": { "build": "npm run clean && npm run compile", diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index 4cc2956b2e..0b146b49b3 100644 --- a/packages/contentstack-export/package.json +++ b/packages/contentstack-export/package.json @@ -22,7 +22,7 @@ }, "devDependencies": { "@contentstack/cli-auth": "~1.6.3", - "@contentstack/cli-config": "~1.16.2", + "@contentstack/cli-config": "~1.17.0", "@contentstack/cli-dev-dependencies": "~1.3.1", "@oclif/plugin-help": "^6.2.28", "@oclif/test": "^4.1.13", diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index 83b6ac4eff..fa3653c0bd 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.53.1 darwin-arm64 node-v22.14.0 +@contentstack/cli/1.54.0 darwin-arm64 node-v22.14.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND @@ -3942,7 +3942,7 @@ USAGE $ csdx launch:functions [-p ] [-d ] FLAGS - -d, --data-dir= [default: /cli/packages/contentstack] Current working directory + -d, --data-dir= [default: /Users/naman.dembla/Documents/cli/packages/contentstack] Current working directory -p, --port= [default: 3000] Port number DESCRIPTION diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 4456a46a90..27f35dbec2 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -28,14 +28,14 @@ "@contentstack/cli-auth": "~1.6.3", "@contentstack/cli-cm-bootstrap": "~1.18.0", "@contentstack/cli-cm-branches": "~1.6.2", - "@contentstack/cli-cm-bulk-publish": "~1.10.4", + "@contentstack/cli-cm-bulk-publish": "~1.10.5", "@contentstack/cli-cm-clone": "~1.19.0", "@contentstack/cli-cm-export-to-csv": "~1.10.2", "@contentstack/cli-cm-import-setup": "~1.7.2", "@contentstack/cli-cm-migrate-rte": "~1.6.3", "@contentstack/cli-cm-seed": "~1.14.0", "@contentstack/cli-command": "~1.7.1", - "@contentstack/cli-config": "~1.16.2", + "@contentstack/cli-config": "~1.17.0", "@contentstack/cli-launch": "^1.9.2", "@contentstack/cli-migration": "~1.10.2", "@contentstack/cli-utilities": "~1.16.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 16421f50f4..a5f0f5a0ef 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: '@contentstack/cli-auth': ~1.6.3 '@contentstack/cli-cm-bootstrap': ~1.18.0 '@contentstack/cli-cm-branches': ~1.6.2 - '@contentstack/cli-cm-bulk-publish': ~1.10.4 + '@contentstack/cli-cm-bulk-publish': ~1.10.5 '@contentstack/cli-cm-clone': ~1.19.0 '@contentstack/cli-cm-export': ~1.22.2 '@contentstack/cli-cm-export-to-csv': ~1.10.2 @@ -25,7 +25,7 @@ importers: '@contentstack/cli-cm-migrate-rte': ~1.6.3 '@contentstack/cli-cm-seed': ~1.14.0 '@contentstack/cli-command': ~1.7.1 - '@contentstack/cli-config': ~1.16.2 + '@contentstack/cli-config': ~1.17.0 '@contentstack/cli-launch': ^1.9.2 '@contentstack/cli-migration': ~1.10.2 '@contentstack/cli-utilities': ~1.16.0 @@ -84,7 +84,7 @@ importers: '@contentstack/cli-cm-seed': link:../contentstack-seed '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-config': link:../contentstack-config - '@contentstack/cli-launch': 1.9.4_tanrtkdzllst73ozorstzho2ki + '@contentstack/cli-launch': 1.9.4_ye7kx5d2fkdihvpgkysaadv2ca '@contentstack/cli-migration': link:../contentstack-migration '@contentstack/cli-utilities': link:../contentstack-utilities '@contentstack/cli-variants': link:../contentstack-variants @@ -114,13 +114,13 @@ importers: '@types/sinon': 10.0.20 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji globby: 10.0.2 mocha: 10.8.2 nock: 13.5.6 nyc: 15.1.0 - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 rimraf: 5.0.10 shelljs: 0.10.0 sinon: 19.0.5 @@ -176,18 +176,18 @@ importers: '@types/chai': 4.3.20 '@types/fs-extra': 11.0.4 '@types/mocha': 10.0.10 - '@types/node': 20.19.27 + '@types/node': 20.19.28 '@types/uuid': 9.0.8 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_k2rwabtyo525wwqr6566umnmhy + eslint-config-oclif: 6.0.130_k2rwabtyo525wwqr6566umnmhy eslint-config-oclif-typescript: 3.1.14_k2rwabtyo525wwqr6566umnmhy mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63_@types+node@20.19.27 + oclif: 4.22.65_@types+node@20.19.28 shx: 0.4.0 sinon: 19.0.5 - ts-node: 10.9.2_xwpkxzit2oggtkvhnry5algaly + ts-node: 10.9.2_qttpccyjg7ewgbxel7wubu76mm typescript: 5.9.3 packages/contentstack-auth: @@ -236,7 +236,7 @@ importers: eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 sinon: 19.0.5 ts-node: 10.9.2_ogreqof3k35xezedraj6pnd45y typescript: 4.9.5 @@ -283,11 +283,11 @@ importers: '@types/tar': 6.1.13 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 tmp: 0.2.5 ts-node: 8.10.2_typescript@4.9.5 typescript: 4.9.5 @@ -329,10 +329,10 @@ importers: dotenv: 16.6.1 dotenv-expand: 9.0.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 sinon: 19.0.5 ts-node: 10.9.2_typescript@4.9.5 typescript: 4.9.5 @@ -340,7 +340,7 @@ importers: packages/contentstack-bulk-publish: specifiers: '@contentstack/cli-command': ~1.7.1 - '@contentstack/cli-config': ~1.16.2 + '@contentstack/cli-config': ~1.17.0 '@contentstack/cli-utilities': ~1.16.0 '@oclif/core': ^4.3.0 '@oclif/plugin-help': ^6.2.28 @@ -371,10 +371,10 @@ importers: '@oclif/test': 4.1.15_@oclif+core@4.8.0 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_eslint@8.57.1 + eslint-config-oclif: 6.0.130_eslint@8.57.1 mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 packages/contentstack-clone: specifiers: @@ -419,10 +419,10 @@ importers: '@oclif/test': 4.1.15_@oclif+core@4.8.0 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_eslint@8.57.1 + eslint-config-oclif: 6.0.130_eslint@8.57.1 mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 sinon: 19.0.5 packages/contentstack-command: @@ -453,7 +453,7 @@ importers: '@types/mocha': 8.2.3 '@types/node': 14.18.63 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 @@ -496,11 +496,11 @@ importers: '@types/sinon': 10.0.20 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 sinon: 19.0.5 ts-node: 10.9.2_ogreqof3k35xezedraj6pnd45y typescript: 4.9.5 @@ -534,7 +534,7 @@ importers: specifiers: '@contentstack/cli-auth': ~1.6.3 '@contentstack/cli-command': ~1.7.1 - '@contentstack/cli-config': ~1.16.2 + '@contentstack/cli-config': ~1.17.0 '@contentstack/cli-dev-dependencies': ~1.3.1 '@contentstack/cli-utilities': ~1.16.0 '@contentstack/cli-variants': ~1.3.6 @@ -600,10 +600,10 @@ importers: dotenv: 16.6.1 dotenv-expand: 9.0.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 sinon: 17.0.2 source-map-support: 0.5.21 ts-node: 10.9.2_typescript@4.9.5 @@ -645,10 +645,10 @@ importers: chai: 4.5.0 debug: 4.4.3 eslint: 7.32.0 - eslint-config-oclif: 6.0.129_eslint@7.32.0 + eslint-config-oclif: 6.0.130_eslint@7.32.0 mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 packages/contentstack-import: specifiers: @@ -721,10 +721,10 @@ importers: '@types/uuid': 9.0.8 '@typescript-eslint/eslint-plugin': 5.62.0_avq3eyf5kaj6ssrwo7fvkrwnji eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 rewire: 9.0.1 ts-node: 10.9.2_ogreqof3k35xezedraj6pnd45y typescript: 4.9.5 @@ -787,10 +787,10 @@ importers: '@typescript-eslint/eslint-plugin': 5.62.0_avq3eyf5kaj6ssrwo7fvkrwnji chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 rewire: 9.0.1 ts-node: 10.9.2_ogreqof3k35xezedraj6pnd45y tsx: 4.21.0 @@ -836,10 +836,10 @@ importers: '@oclif/test': 4.1.15_@oclif+core@4.8.0 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_eslint@8.57.1 + eslint-config-oclif: 6.0.130_eslint@8.57.1 mocha: 10.8.2 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 packages/contentstack-migration: specifiers: @@ -878,11 +878,11 @@ importers: '@oclif/test': 4.1.15_@oclif+core@4.8.0 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_eslint@8.57.1 + eslint-config-oclif: 6.0.130_eslint@8.57.1 jsdoc-to-markdown: 8.0.3 nock: 13.5.6 nyc: 15.1.0 - oclif: 4.22.63 + oclif: 4.22.65 packages/contentstack-seed: specifiers: @@ -927,10 +927,10 @@ importers: '@types/tmp': 0.2.6 axios: 1.13.2 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji jest: 29.7.0_gmerzvnqkqd6hvbwzqmybfpwqi - oclif: 4.22.63_@types+node@14.18.63 + oclif: 4.22.65_@types+node@14.18.63 ts-jest: 29.4.6_67xnt3v64q2pgz6kguni4h37hu ts-node: 8.10.2_typescript@4.9.5 typescript: 4.9.5 @@ -1023,7 +1023,7 @@ importers: '@types/traverse': 0.6.37 chai: 4.5.0 eslint: 8.57.1 - eslint-config-oclif: 6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji + eslint-config-oclif: 6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif-typescript: 3.1.14_avq3eyf5kaj6ssrwo7fvkrwnji fancy-test: 2.0.42 mocha: 10.8.2 @@ -1057,10 +1057,10 @@ importers: devDependencies: '@contentstack/cli-dev-dependencies': link:../contentstack-dev-dependencies '@oclif/test': 4.1.15_@oclif+core@4.8.0 - '@types/node': 20.19.27 + '@types/node': 20.19.28 mocha: 10.8.2 nyc: 15.1.0 - ts-node: 10.9.2_xwpkxzit2oggtkvhnry5algaly + ts-node: 10.9.2_qttpccyjg7ewgbxel7wubu76mm typescript: 5.9.3 packages: @@ -1164,44 +1164,44 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/client-cloudfront/3.965.0: - resolution: {integrity: sha512-DKkh7TaOhETwoJrZ6Z2Es57oPD2IAIr1JkAwUtYFt+HMN0s4FL/EuZrN78N3DUJCFFeDCR3PaBHEvJ4mGEmJIw==} + /@aws-sdk/client-cloudfront/3.967.0: + resolution: {integrity: sha512-+cfsjAbjP4lFoPJzOawSnLUg9P3RzQ3j6+s4GXocBJSYE9pTeh6AFYx7yAQwzMdW1IwoC+LUlPmetmkIFQuIcQ==} engines: {node: '>=18.0.0'} dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.965.0 - '@aws-sdk/credential-provider-node': 3.965.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/credential-provider-node': 3.967.0 '@aws-sdk/middleware-host-header': 3.965.0 '@aws-sdk/middleware-logger': 3.965.0 '@aws-sdk/middleware-recursion-detection': 3.965.0 - '@aws-sdk/middleware-user-agent': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.967.0 '@aws-sdk/region-config-resolver': 3.965.0 '@aws-sdk/types': 3.965.0 '@aws-sdk/util-endpoints': 3.965.0 '@aws-sdk/util-user-agent-browser': 3.965.0 - '@aws-sdk/util-user-agent-node': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.967.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/fetch-http-handler': 5.3.8 '@smithy/hash-node': 4.2.7 '@smithy/invalid-dependency': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.2 - '@smithy/middleware-retry': 4.4.18 + '@smithy/middleware-endpoint': 4.4.4 + '@smithy/middleware-retry': 4.4.20 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.17 - '@smithy/util-defaults-mode-node': 4.2.20 + '@smithy/util-defaults-mode-browser': 4.3.19 + '@smithy/util-defaults-mode-node': 4.2.22 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -1213,33 +1213,33 @@ packages: - aws-crt dev: true - /@aws-sdk/client-s3/3.965.0: - resolution: {integrity: sha512-BTeaaU1iK0BfatTCrtYjNkIHCoZH256qOI18l9bK4z6mVOgpHkYN4RvOu+NnKgyX58n+HWfOuhtKUD4OE33Vdw==} + /@aws-sdk/client-s3/3.967.0: + resolution: {integrity: sha512-7vDlsBqd9y0dJDjCy84WMN+1r60El97IKMGlegU+l9K2+t8+Wf8bYj/J2xfm+6Ayemje6P4nkKS9tubxBLqg+A==} engines: {node: '>=18.0.0'} dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.965.0 - '@aws-sdk/credential-provider-node': 3.965.0 - '@aws-sdk/middleware-bucket-endpoint': 3.965.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/credential-provider-node': 3.967.0 + '@aws-sdk/middleware-bucket-endpoint': 3.966.0 '@aws-sdk/middleware-expect-continue': 3.965.0 - '@aws-sdk/middleware-flexible-checksums': 3.965.0 + '@aws-sdk/middleware-flexible-checksums': 3.967.0 '@aws-sdk/middleware-host-header': 3.965.0 '@aws-sdk/middleware-location-constraint': 3.965.0 '@aws-sdk/middleware-logger': 3.965.0 '@aws-sdk/middleware-recursion-detection': 3.965.0 - '@aws-sdk/middleware-sdk-s3': 3.965.0 + '@aws-sdk/middleware-sdk-s3': 3.967.0 '@aws-sdk/middleware-ssec': 3.965.0 - '@aws-sdk/middleware-user-agent': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.967.0 '@aws-sdk/region-config-resolver': 3.965.0 - '@aws-sdk/signature-v4-multi-region': 3.965.0 + '@aws-sdk/signature-v4-multi-region': 3.967.0 '@aws-sdk/types': 3.965.0 '@aws-sdk/util-endpoints': 3.965.0 '@aws-sdk/util-user-agent-browser': 3.965.0 - '@aws-sdk/util-user-agent-node': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.967.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/eventstream-serde-browser': 4.2.7 '@smithy/eventstream-serde-config-resolver': 4.3.7 '@smithy/eventstream-serde-node': 4.2.7 @@ -1250,21 +1250,21 @@ packages: '@smithy/invalid-dependency': 4.2.7 '@smithy/md5-js': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.2 - '@smithy/middleware-retry': 4.4.18 + '@smithy/middleware-endpoint': 4.4.4 + '@smithy/middleware-retry': 4.4.20 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.17 - '@smithy/util-defaults-mode-node': 4.2.20 + '@smithy/util-defaults-mode-browser': 4.3.19 + '@smithy/util-defaults-mode-node': 4.2.22 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -1276,43 +1276,43 @@ packages: - aws-crt dev: true - /@aws-sdk/client-sso/3.965.0: - resolution: {integrity: sha512-iv2tr+n4aZ+nPUFFvG00hISPuEd4DU+1/Q8rPAYKXsM+vEPJ2nAnP5duUOa2fbOLIUCRxX3dcQaQaghVHDHzQw==} + /@aws-sdk/client-sso/3.967.0: + resolution: {integrity: sha512-7RgUwHcRMJtWme6kCHGUVT+Rn9GmNH+FHm34N9UgMXzUqQlzFMweE7T5E9O8nv3wIp7xFNB20ADaCw9Xdnox1Q==} engines: {node: '>=18.0.0'} dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/middleware-host-header': 3.965.0 '@aws-sdk/middleware-logger': 3.965.0 '@aws-sdk/middleware-recursion-detection': 3.965.0 - '@aws-sdk/middleware-user-agent': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.967.0 '@aws-sdk/region-config-resolver': 3.965.0 '@aws-sdk/types': 3.965.0 '@aws-sdk/util-endpoints': 3.965.0 '@aws-sdk/util-user-agent-browser': 3.965.0 - '@aws-sdk/util-user-agent-node': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.967.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/fetch-http-handler': 5.3.8 '@smithy/hash-node': 4.2.7 '@smithy/invalid-dependency': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.2 - '@smithy/middleware-retry': 4.4.18 + '@smithy/middleware-endpoint': 4.4.4 + '@smithy/middleware-retry': 4.4.20 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.17 - '@smithy/util-defaults-mode-node': 4.2.20 + '@smithy/util-defaults-mode-browser': 4.3.19 + '@smithy/util-defaults-mode-node': 4.2.22 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -1322,18 +1322,18 @@ packages: - aws-crt dev: true - /@aws-sdk/core/3.965.0: - resolution: {integrity: sha512-aq9BhQxdHit8UUJ9C0im9TtuKeK0pT6NXmNJxMTCFeStI7GG7ImIsSislg3BZTIifVg1P6VLdzMyz9de85iutQ==} + /@aws-sdk/core/3.967.0: + resolution: {integrity: sha512-sJmuP7GrVmlbO6DpXkuf9Mbn6jGNNvy6PLawvaxVF150c8bpNk3w39rerRls6q1dot1dBFV2D29hBXMY1agNMg==} engines: {node: '>=18.0.0'} dependencies: '@aws-sdk/types': 3.965.0 '@aws-sdk/xml-builder': 3.965.0 - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/node-config-provider': 4.3.7 '@smithy/property-provider': 4.2.7 '@smithy/protocol-http': 5.3.7 '@smithy/signature-v4': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/util-base64': 4.3.0 '@smithy/util-middleware': 4.2.7 @@ -1349,45 +1349,45 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/credential-provider-env/3.965.0: - resolution: {integrity: sha512-mdGnaIjMxTIjsb70dEj3VsWPWpoq1V5MWzBSfJq2H8zgMBXjn6d5/qHP8HMf53l9PrsgqzMpXGv3Av549A2x1g==} + /@aws-sdk/credential-provider-env/3.967.0: + resolution: {integrity: sha512-+XWw0+f/txeMbEVRtTFZhgSw1ymH1ffaVKkdMBSnw48rfSohJElKmitCqdihagRTZpzh7m8qI6tIQ5t3OUqugw==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/types': 4.11.0 tslib: 2.8.1 dev: true - /@aws-sdk/credential-provider-http/3.965.0: - resolution: {integrity: sha512-YuGQel9EgA/z25oeLM+GYYQS750+8AESvr7ZEmVnRPL0sg+K3DmGqdv+9gFjFd0UkLjTlC/jtbP2cuY6UcPiHQ==} + /@aws-sdk/credential-provider-http/3.967.0: + resolution: {integrity: sha512-0/GIAEv5pY5htg6IBMuYccBgzz3oS2DqHjHi396ziTrwlhbrCNX96AbNhQhzAx3LBZUk13sPfeapjyQ7G57Ekg==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/fetch-http-handler': 5.3.8 '@smithy/node-http-handler': 4.4.7 '@smithy/property-provider': 4.2.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/util-stream': 4.5.8 tslib: 2.8.1 dev: true - /@aws-sdk/credential-provider-ini/3.965.0: - resolution: {integrity: sha512-xRo72Prer5s0xYVSCxCymVIRSqrVlevK5cmU0GWq9yJtaBNpnx02jwdJg80t/Ni7pgbkQyFWRMcq38c1tc6M/w==} + /@aws-sdk/credential-provider-ini/3.967.0: + resolution: {integrity: sha512-U8dMpaM6Qf6+2Qvp1uG6OcWv1RlrZW7tQkpmzEVWH8HZTGrVHIXXju64NMtIOr7yOnNwd0CKcytuD1QG+phCwQ==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 - '@aws-sdk/credential-provider-env': 3.965.0 - '@aws-sdk/credential-provider-http': 3.965.0 - '@aws-sdk/credential-provider-login': 3.965.0 - '@aws-sdk/credential-provider-process': 3.965.0 - '@aws-sdk/credential-provider-sso': 3.965.0 - '@aws-sdk/credential-provider-web-identity': 3.965.0 - '@aws-sdk/nested-clients': 3.965.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/credential-provider-env': 3.967.0 + '@aws-sdk/credential-provider-http': 3.967.0 + '@aws-sdk/credential-provider-login': 3.967.0 + '@aws-sdk/credential-provider-process': 3.967.0 + '@aws-sdk/credential-provider-sso': 3.967.0 + '@aws-sdk/credential-provider-web-identity': 3.967.0 + '@aws-sdk/nested-clients': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/credential-provider-imds': 4.2.7 '@smithy/property-provider': 4.2.7 @@ -1398,12 +1398,12 @@ packages: - aws-crt dev: true - /@aws-sdk/credential-provider-login/3.965.0: - resolution: {integrity: sha512-43/H8Qku8LHyugbhLo8kjD+eauhybCeVkmrnvWl8bXNHJP7xi1jCdtBQJKKJqiIHZws4MOEwkji8kFdAVRCe6g==} + /@aws-sdk/credential-provider-login/3.967.0: + resolution: {integrity: sha512-kbvZsZL6CBlfnb71zuJdJmBUFZN5utNrcziZr/DZ2olEOkA9vlmizE8i9BUIbmS7ptjgvRnmcY1A966yfhiblw==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 - '@aws-sdk/nested-clients': 3.965.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/nested-clients': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/protocol-http': 5.3.7 @@ -1414,16 +1414,16 @@ packages: - aws-crt dev: true - /@aws-sdk/credential-provider-node/3.965.0: - resolution: {integrity: sha512-cRxmMHF+Zh2lkkkEVduKl+8OQdtg/DhYA69+/7SPSQURlgyjFQGlRQ58B7q8abuNlrGT3sV+UzeOylZpJbV61Q==} + /@aws-sdk/credential-provider-node/3.967.0: + resolution: {integrity: sha512-WuNbHs9rfKKSVok4+OBrZf0AHfzDgFYYMxN2G/q6ZfUmY4QmiPyxV5HkNFh1rqDxS9VV6kAZPo0EBmry10idSg==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/credential-provider-env': 3.965.0 - '@aws-sdk/credential-provider-http': 3.965.0 - '@aws-sdk/credential-provider-ini': 3.965.0 - '@aws-sdk/credential-provider-process': 3.965.0 - '@aws-sdk/credential-provider-sso': 3.965.0 - '@aws-sdk/credential-provider-web-identity': 3.965.0 + '@aws-sdk/credential-provider-env': 3.967.0 + '@aws-sdk/credential-provider-http': 3.967.0 + '@aws-sdk/credential-provider-ini': 3.967.0 + '@aws-sdk/credential-provider-process': 3.967.0 + '@aws-sdk/credential-provider-sso': 3.967.0 + '@aws-sdk/credential-provider-web-identity': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/credential-provider-imds': 4.2.7 '@smithy/property-provider': 4.2.7 @@ -1434,11 +1434,11 @@ packages: - aws-crt dev: true - /@aws-sdk/credential-provider-process/3.965.0: - resolution: {integrity: sha512-gmkPmdiR0yxnTzLPDb7rwrDhGuCUjtgnj8qWP+m0gSz/W43rR4jRPVEf6DUX2iC+ImQhxo3NFhuB3V42Kzo3TQ==} + /@aws-sdk/credential-provider-process/3.967.0: + resolution: {integrity: sha512-sNCY5JDV0whsfsZ6c2+6eUwH33H7UhKbqvCPbEYlIIa8wkGjCtCyFI3zZIJHVcMKJJ3117vSUFHEkNA7g+8rtw==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -1446,13 +1446,13 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/credential-provider-sso/3.965.0: - resolution: {integrity: sha512-N01AYvtCqG3Wo/s/LvYt19ity18/FqggiXT+elAs3X9Om/Wfx+hw9G+i7jaDmy+/xewmv8AdQ2SK5Q30dXw/Fw==} + /@aws-sdk/credential-provider-sso/3.967.0: + resolution: {integrity: sha512-0K6kITKNytFjk1UYabYUsTThgU6TQkyW6Wmt8S5zd1A/up7NSQGpp58Rpg9GIf4amQDQwb+p9FGG7emmV8FEeA==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/client-sso': 3.965.0 - '@aws-sdk/core': 3.965.0 - '@aws-sdk/token-providers': 3.965.0 + '@aws-sdk/client-sso': 3.967.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/token-providers': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -1462,12 +1462,12 @@ packages: - aws-crt dev: true - /@aws-sdk/credential-provider-web-identity/3.965.0: - resolution: {integrity: sha512-T4gMZ2JzXnfxe1oTD+EDGLSxFfk1+WkLZdiHXEMZp8bFI1swP/3YyDFXI+Ib9Uq1JhnAmrCXtOnkicKEhDkdhQ==} + /@aws-sdk/credential-provider-web-identity/3.967.0: + resolution: {integrity: sha512-Vkr7S2ec7q/v8i/MzkHcBEdqqfWz3lyb8FDjb+NjslEwdxC3f6XwADRZzWwV1pChfx6SbsvJXKfkcF/pKAelhA==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 - '@aws-sdk/nested-clients': 3.965.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/nested-clients': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -1477,12 +1477,12 @@ packages: - aws-crt dev: true - /@aws-sdk/middleware-bucket-endpoint/3.965.0: - resolution: {integrity: sha512-gbdv3Dl8l8xmg4oH60fXvfDyTxfx28w5/Hxdymx3vurM07tAyd4qld8zEXejnSpraTo45QcHRtk5auELIMfeag==} + /@aws-sdk/middleware-bucket-endpoint/3.966.0: + resolution: {integrity: sha512-KMPZ7gtFXErd9pMpXJMBwFlxxlGIaIQrUBfj3ea7rlrNtoVHnSI4qsoldLq5l9/Ho64KoCiICH4+qXjze8JTDQ==} engines: {node: '>=18.0.0'} dependencies: '@aws-sdk/types': 3.965.0 - '@aws-sdk/util-arn-parser': 3.965.0 + '@aws-sdk/util-arn-parser': 3.966.0 '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 @@ -1500,14 +1500,14 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/middleware-flexible-checksums/3.965.0: - resolution: {integrity: sha512-5rzEW08trcpHMe6jkQyYc4PL1KG/H7BbnySFSzhih+r/gktQEiE36sb1BNf7av9I0Vk2Ccmt7wocB5PIT7GDkQ==} + /@aws-sdk/middleware-flexible-checksums/3.967.0: + resolution: {integrity: sha512-RuOan0fknnAep2pTSjmJ+Heomowxg3M3s+pcs0JEW/SYnvdwYhFOTcFg2VBvGv3V1kwXxXHMlC57zoGn6pNcqg==} engines: {node: '>=18.0.0'} dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/crc64-nvme': 3.965.0 '@aws-sdk/types': 3.965.0 '@smithy/is-array-buffer': 4.2.0 @@ -1559,18 +1559,18 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/middleware-sdk-s3/3.965.0: - resolution: {integrity: sha512-dXEgnojaaVRl+OlOx35mg3rYEbfffIN4X6tLmIfDnaKz0hMaDMvsE9jJXb/vBvokbdO1sVB27/2FEM4ttLSLnw==} + /@aws-sdk/middleware-sdk-s3/3.967.0: + resolution: {integrity: sha512-Kkd6xGwTqbg7Spq1SI3ZX6PPYKdGLxdRGlXGNE3lnEPzNueQZQJKLZFpOY2aVdcAT+ytAY96N5szeeeAsFdUaA==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/types': 3.965.0 - '@aws-sdk/util-arn-parser': 3.965.0 - '@smithy/core': 3.20.1 + '@aws-sdk/util-arn-parser': 3.966.0 + '@smithy/core': 3.20.3 '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 '@smithy/signature-v4': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/util-config-provider': 4.2.0 '@smithy/util-middleware': 4.2.7 @@ -1588,56 +1588,56 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/middleware-user-agent/3.965.0: - resolution: {integrity: sha512-RBEYVGgu/WeAt+H/qLrGc+t8LqAUkbyvh3wBfTiuAD+uBcWsKnvnB1iSBX75FearC0fmoxzXRUc0PMxMdqpjJQ==} + /@aws-sdk/middleware-user-agent/3.967.0: + resolution: {integrity: sha512-2qzJzZj5u+cZiG7kz3XJPaTH4ssUY/aet1kwJsUTFKrWeHUf7mZZkDFfkXP5cOffgiOyR5ZkrmJoLKAde9hshg==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/types': 3.965.0 '@aws-sdk/util-endpoints': 3.965.0 - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 tslib: 2.8.1 dev: true - /@aws-sdk/nested-clients/3.965.0: - resolution: {integrity: sha512-muNVUjUEU+/KLFrLzQ8PMXyw4+a/MP6t4GIvwLtyx/kH0rpSy5s0YmqacMXheuIe6F/5QT8uksXGNAQenitkGQ==} + /@aws-sdk/nested-clients/3.967.0: + resolution: {integrity: sha512-PYa7V8w0gaNux6Sz/Z7zrHmPloEE+EKpRxQIOG/D0askTr5Yd4oO2KGgcInf65uHK3f0Z9U4CTUGHZvQvABypA==} engines: {node: '>=18.0.0'} dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.965.0 + '@aws-sdk/core': 3.967.0 '@aws-sdk/middleware-host-header': 3.965.0 '@aws-sdk/middleware-logger': 3.965.0 '@aws-sdk/middleware-recursion-detection': 3.965.0 - '@aws-sdk/middleware-user-agent': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.967.0 '@aws-sdk/region-config-resolver': 3.965.0 '@aws-sdk/types': 3.965.0 '@aws-sdk/util-endpoints': 3.965.0 '@aws-sdk/util-user-agent-browser': 3.965.0 - '@aws-sdk/util-user-agent-node': 3.965.0 + '@aws-sdk/util-user-agent-node': 3.967.0 '@smithy/config-resolver': 4.4.5 - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/fetch-http-handler': 5.3.8 '@smithy/hash-node': 4.2.7 '@smithy/invalid-dependency': 4.2.7 '@smithy/middleware-content-length': 4.2.7 - '@smithy/middleware-endpoint': 4.4.2 - '@smithy/middleware-retry': 4.4.18 + '@smithy/middleware-endpoint': 4.4.4 + '@smithy/middleware-retry': 4.4.20 '@smithy/middleware-serde': 4.2.8 '@smithy/middleware-stack': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/node-http-handler': 4.4.7 '@smithy/protocol-http': 5.3.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/url-parser': 4.2.7 '@smithy/util-base64': 4.3.0 '@smithy/util-body-length-browser': 4.2.0 '@smithy/util-body-length-node': 4.2.1 - '@smithy/util-defaults-mode-browser': 4.3.17 - '@smithy/util-defaults-mode-node': 4.2.20 + '@smithy/util-defaults-mode-browser': 4.3.19 + '@smithy/util-defaults-mode-node': 4.2.22 '@smithy/util-endpoints': 3.2.7 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -1658,11 +1658,11 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/signature-v4-multi-region/3.965.0: - resolution: {integrity: sha512-hgbAThbsUrWtNpFBQxzXevIfd5Qgr4TLbXY1AIbmpSX9fPVC114pdieRMpopJ0fYaJ7v5/blTiS6wzVdXleZ/w==} + /@aws-sdk/signature-v4-multi-region/3.967.0: + resolution: {integrity: sha512-LfpCEqe/BliiwBtNImz/Txx6MQZkDqjP2bbk+Q4Km6mYhFU9pyPlKo3AYEHfGWn92Smt1nS3S8SzIK0nL6J2Fg==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/middleware-sdk-s3': 3.965.0 + '@aws-sdk/middleware-sdk-s3': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/protocol-http': 5.3.7 '@smithy/signature-v4': 5.3.7 @@ -1670,12 +1670,12 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/token-providers/3.965.0: - resolution: {integrity: sha512-aR0qxg0b8flkXJVE+CM1gzo7uJ57md50z2eyCwofC0QIz5Y0P7/7vvb9/dmUQt6eT9XRN5iRcUqq2IVxVDvJOw==} + /@aws-sdk/token-providers/3.967.0: + resolution: {integrity: sha512-Qnd/nJ0CgeUa7zQczgmdQm0vYUF7pD1G0C+dR1T7huHQHRIsgCWIsCV9wNKzOFluqtcr6YAeuTwvY0+l8XWxnA==} engines: {node: '>=18.0.0'} dependencies: - '@aws-sdk/core': 3.965.0 - '@aws-sdk/nested-clients': 3.965.0 + '@aws-sdk/core': 3.967.0 + '@aws-sdk/nested-clients': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/property-provider': 4.2.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -1693,8 +1693,8 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/util-arn-parser/3.965.0: - resolution: {integrity: sha512-bNGKr5Tct28jGLkL8xIkGu7swpDgBpkTVbGaofhzr/X80iclbOv656RGxhMpDvmc4S9UuQnqLRXyceNFNF2V7Q==} + /@aws-sdk/util-arn-parser/3.966.0: + resolution: {integrity: sha512-WcCLdKBK2nHhtOPE8du5XjOXaOToxGF3Ge8rgK2jaRpjkzjS0/mO+Jp2H4+25hOne3sP2twBu5BrvD9KoXQ5LQ==} engines: {node: '>=18.0.0'} dependencies: tslib: 2.8.1 @@ -1727,8 +1727,8 @@ packages: tslib: 2.8.1 dev: true - /@aws-sdk/util-user-agent-node/3.965.0: - resolution: {integrity: sha512-kokIHUfNT3/P55E4fUJJrFHuuA9BbjFKUIxoLrd3UaRfdafT0ScRfg2eaZie6arf60EuhlUIZH0yALxttMEjxQ==} + /@aws-sdk/util-user-agent-node/3.967.0: + resolution: {integrity: sha512-yUz6pCGxyG4+QaDg0dkdIBphjQp8A9rrbZa/+U3RJgRrW47hy64clFQUROzj5Poy1Ur8ICVXEUpBsSqRuYEU2g==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -1736,7 +1736,7 @@ packages: aws-crt: optional: true dependencies: - '@aws-sdk/middleware-user-agent': 3.965.0 + '@aws-sdk/middleware-user-agent': 3.967.0 '@aws-sdk/types': 3.965.0 '@smithy/node-config-provider': 4.3.7 '@smithy/types': 4.11.0 @@ -1763,8 +1763,8 @@ packages: '@babel/highlight': 7.25.9 dev: true - /@babel/code-frame/7.27.1: - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + /@babel/code-frame/7.28.6: + resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -1772,24 +1772,24 @@ packages: picocolors: 1.1.1 dev: true - /@babel/compat-data/7.28.5: - resolution: {integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==} + /@babel/compat-data/7.28.6: + resolution: {integrity: sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.28.5: - resolution: {integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==} + /@babel/core/7.28.6: + resolution: {integrity: sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 - '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3_@babel+core@7.28.5 - '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.28.6 + '@babel/generator': 7.28.6 + '@babel/helper-compilation-targets': 7.28.6 + '@babel/helper-module-transforms': 7.28.6_@babel+core@7.28.6 + '@babel/helpers': 7.28.6 + '@babel/parser': 7.28.6 + '@babel/template': 7.28.6 + '@babel/traverse': 7.28.6 + '@babel/types': 7.28.6 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 debug: 4.4.3 @@ -1800,22 +1800,22 @@ packages: - supports-color dev: true - /@babel/generator/7.28.5: - resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} + /@babel/generator/7.28.6: + resolution: {integrity: sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 dev: true - /@babel/helper-compilation-targets/7.27.2: - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + /@babel/helper-compilation-targets/7.28.6: + resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/compat-data': 7.28.5 + '@babel/compat-data': 7.28.6 '@babel/helper-validator-option': 7.27.1 browserslist: 4.28.1 lru-cache: 5.1.1 @@ -1827,32 +1827,32 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-module-imports/7.27.1: - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + /@babel/helper-module-imports/7.28.6: + resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 + '@babel/traverse': 7.28.6 + '@babel/types': 7.28.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-module-transforms/7.28.3_@babel+core@7.28.5: - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + /@babel/helper-module-transforms/7.28.6_@babel+core@7.28.6: + resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-module-imports': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-module-imports': 7.28.6 '@babel/helper-validator-identifier': 7.28.5 - '@babel/traverse': 7.28.5 + '@babel/traverse': 7.28.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-plugin-utils/7.27.1: - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + /@babel/helper-plugin-utils/7.28.6: + resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} dev: true @@ -1871,12 +1871,12 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.28.4: - resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} + /@babel/helpers/7.28.6: + resolution: {integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 + '@babel/template': 7.28.6 + '@babel/types': 7.28.6 dev: true /@babel/highlight/7.25.9: @@ -1889,199 +1889,199 @@ packages: picocolors: 1.1.1 dev: true - /@babel/parser/7.28.5: - resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + /@babel/parser/7.28.6: + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 dev: true - /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.28.5: + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.28.6: resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.28.5: + /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.28.6: resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.28.5: + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.28.6: resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.28.5: + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.28.6: resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-import-attributes/7.27.1_@babel+core@7.28.5: - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + /@babel/plugin-syntax-import-attributes/7.28.6_@babel+core@7.28.6: + resolution: {integrity: sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.28.5: + /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.28.6: resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.28.5: + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.28.6: resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-jsx/7.27.1_@babel+core@7.28.5: - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + /@babel/plugin-syntax-jsx/7.28.6_@babel+core@7.28.6: + resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.28.5: + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.28.6: resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.28.5: + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.28.6: resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.28.5: + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.28.6: resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.28.5: + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.28.6: resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.28.5: + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.28.6: resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.28.5: + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.28.6: resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.28.5: + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.28.6: resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.28.5: + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.28.6: resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/plugin-syntax-typescript/7.27.1_@babel+core@7.28.5: - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + /@babel/plugin-syntax-typescript/7.28.6_@babel+core@7.28.6: + resolution: {integrity: sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/helper-plugin-utils': 7.27.1 + '@babel/core': 7.28.6 + '@babel/helper-plugin-utils': 7.28.6 dev: true - /@babel/template/7.27.2: - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + /@babel/template/7.28.6: + resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/code-frame': 7.28.6 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 dev: true - /@babel/traverse/7.28.5: - resolution: {integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==} + /@babel/traverse/7.28.6: + resolution: {integrity: sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.5 + '@babel/code-frame': 7.28.6 + '@babel/generator': 7.28.6 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.5 - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 + '@babel/parser': 7.28.6 + '@babel/template': 7.28.6 + '@babel/types': 7.28.6 debug: 4.4.3 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.28.5: - resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + /@babel/types/7.28.6: + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-string-parser': 7.27.1 @@ -2102,26 +2102,27 @@ packages: engines: {node: '>=0.1.90'} dev: false - /@contentstack/cli-command/1.7.0_debug@4.4.3: - resolution: {integrity: sha512-hhsGGa6wFcvHwkapu0vXB1yvOaOmJ1LaV2imyjUREVxvHYC5O4JS2H5VeXLq137Q/dOk5q6o9MjVS+9W4Ri4sw==} + /@contentstack/cli-command/1.7.1_lxq42tdpoxpye5tb7w3htdbbdq: + resolution: {integrity: sha512-VS+f+hwStXNShyVs9m/xV5l+KVZZ81k9lhJu+XjO5zXV/ZS3BNzW96xS6oAOUvSURVUPmZvELzjXFIvwbdBnGQ==} engines: {node: '>=14.0.0'} dependencies: - '@contentstack/cli-utilities': 1.15.0_debug@4.4.3 + '@contentstack/cli-utilities': 1.16.0_lxq42tdpoxpye5tb7w3htdbbdq '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 contentstack: 3.26.3 transitivePeerDependencies: + - '@types/node' - debug dev: false - /@contentstack/cli-launch/1.9.4_tanrtkdzllst73ozorstzho2ki: + /@contentstack/cli-launch/1.9.4_ye7kx5d2fkdihvpgkysaadv2ca: resolution: {integrity: sha512-Wev1zDBZ61eJSOGEaj08LZXkK6+sX7TM9TBxNd5ZHc0tkl4y8gDtuoo+wfaCV0/WcXmglUHazFX4ZgDYyB9UDQ==} engines: {node: '>=14.0.0'} hasBin: true dependencies: '@apollo/client': 3.14.0_graphql@16.12.0 - '@contentstack/cli-command': 1.7.0_debug@4.4.3 - '@contentstack/cli-utilities': 1.14.4_debug@4.4.3 + '@contentstack/cli-command': 1.7.1_lxq42tdpoxpye5tb7w3htdbbdq + '@contentstack/cli-utilities': 1.16.0_lxq42tdpoxpye5tb7w3htdbbdq '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 '@oclif/plugin-plugins': 5.4.54 @@ -2130,7 +2131,7 @@ packages: '@rollup/plugin-node-resolve': 16.0.3_rollup@4.55.1 '@rollup/plugin-typescript': 12.3.0_5ruxaqqe36fu6wuhs7btsktcwq '@types/express': 4.17.25 - '@types/express-serve-static-core': 4.19.7 + '@types/express-serve-static-core': 4.19.8 adm-zip: 0.5.16 chalk: 4.1.2 cross-fetch: 4.1.0 @@ -2144,6 +2145,7 @@ packages: rollup: 4.55.1 winston: 3.19.0 transitivePeerDependencies: + - '@types/node' - '@types/react' - debug - encoding @@ -2156,8 +2158,8 @@ packages: - typescript dev: false - /@contentstack/cli-utilities/1.14.4_debug@4.4.3: - resolution: {integrity: sha512-Pg124tYh/p688aerqVgk8lEsCF8F5Ky35yes3KO23Wzt44Hvzps7X27psOTHs/aD4jhZkw3aB+jTItQlL84b8g==} + /@contentstack/cli-utilities/1.16.0_lxq42tdpoxpye5tb7w3htdbbdq: + resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} dependencies: '@contentstack/management': 1.25.1_debug@4.4.3 '@contentstack/marketplace-sdk': 1.4.1_debug@4.4.3 @@ -2170,43 +2172,7 @@ packages: conf: 10.2.0 dotenv: 16.6.1 figures: 3.2.0 - inquirer: 8.2.6 - inquirer-search-checkbox: 1.0.0 - inquirer-search-list: 1.2.6 - js-yaml: 4.1.1 - klona: 2.0.6 - lodash: 4.17.21 - mkdirp: 1.0.4 - open: 8.4.2 - ora: 5.4.1 - papaparse: 5.5.3 - recheck: 4.4.5 - rxjs: 6.6.7 - traverse: 0.6.11 - tty-table: 4.2.3 - unique-string: 2.0.0 - uuid: 9.0.1 - winston: 3.19.0 - xdg-basedir: 4.0.0 - transitivePeerDependencies: - - debug - dev: false - - /@contentstack/cli-utilities/1.15.0_debug@4.4.3: - resolution: {integrity: sha512-Q3csEjZk7rdEvbhRyq41jMT9nFduxR7zVpyGAkYdialh4KjMHxJvzVUdmYuA3PA92xoTlFdcY97yXPQJpmptTw==} - dependencies: - '@contentstack/management': 1.22.0_debug@4.4.3 - '@contentstack/marketplace-sdk': 1.4.1_debug@4.4.3 - '@oclif/core': 4.8.0 - axios: 1.13.2_debug@4.4.3 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-progress: 3.12.0 - cli-table: 0.3.11 - conf: 10.2.0 - dotenv: 16.6.1 - figures: 3.2.0 - inquirer: 8.2.6 + inquirer: 8.2.7_@types+node@14.18.63 inquirer-search-checkbox: 1.0.0 inquirer-search-list: 1.2.6 js-yaml: 4.1.1 @@ -2225,6 +2191,7 @@ packages: winston: 3.19.0 xdg-basedir: 4.0.0 transitivePeerDependencies: + - '@types/node' - debug dev: false @@ -2376,7 +2343,7 @@ packages: engines: {node: '>=18'} dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/types': 8.53.0 comment-parser: 1.4.1 esquery: 1.7.0 jsdoc-type-pratt-parser: 4.1.0 @@ -2959,7 +2926,7 @@ packages: '@types/node': 14.18.63 yoctocolors-cjs: 2.1.3 - /@inquirer/checkbox/4.3.2_@types+node@20.19.27: + /@inquirer/checkbox/4.3.2_@types+node@20.19.28: resolution: {integrity: sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==} engines: {node: '>=18'} peerDependencies: @@ -2969,10 +2936,10 @@ packages: optional: true dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2_@types+node@20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 yoctocolors-cjs: 2.1.3 dev: true @@ -3010,7 +2977,7 @@ packages: '@inquirer/type': 3.0.10_@types+node@14.18.63 '@types/node': 14.18.63 - /@inquirer/confirm/5.1.21_@types+node@20.19.27: + /@inquirer/confirm/5.1.21_@types+node@20.19.28: resolution: {integrity: sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==} engines: {node: '>=18'} peerDependencies: @@ -3019,9 +2986,9 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 dev: true /@inquirer/core/10.3.2: @@ -3062,7 +3029,7 @@ packages: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 - /@inquirer/core/10.3.2_@types+node@20.19.27: + /@inquirer/core/10.3.2_@types+node@20.19.28: resolution: {integrity: sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==} engines: {node: '>=18'} peerDependencies: @@ -3073,8 +3040,8 @@ packages: dependencies: '@inquirer/ansi': 1.0.2 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 @@ -3089,7 +3056,7 @@ packages: '@inquirer/figures': 1.0.15 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.19.3 + '@types/node': 22.19.5 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -3128,7 +3095,7 @@ packages: '@inquirer/type': 3.0.10_@types+node@14.18.63 '@types/node': 14.18.63 - /@inquirer/editor/4.2.23_@types+node@20.19.27: + /@inquirer/editor/4.2.23_@types+node@20.19.28: resolution: {integrity: sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==} engines: {node: '>=18'} peerDependencies: @@ -3137,10 +3104,10 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/external-editor': 1.0.3_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/external-editor': 1.0.3_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 dev: true /@inquirer/expand/4.0.23: @@ -3171,7 +3138,7 @@ packages: '@types/node': 14.18.63 yoctocolors-cjs: 2.1.3 - /@inquirer/expand/4.0.23_@types+node@20.19.27: + /@inquirer/expand/4.0.23_@types+node@20.19.28: resolution: {integrity: sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==} engines: {node: '>=18'} peerDependencies: @@ -3180,9 +3147,9 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 yoctocolors-cjs: 2.1.3 dev: true @@ -3211,7 +3178,7 @@ packages: chardet: 2.1.1 iconv-lite: 0.7.2 - /@inquirer/external-editor/1.0.3_@types+node@20.19.27: + /@inquirer/external-editor/1.0.3_@types+node@20.19.28: resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==} engines: {node: '>=18'} peerDependencies: @@ -3220,7 +3187,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 chardet: 2.1.1 iconv-lite: 0.7.2 dev: true @@ -3263,7 +3230,7 @@ packages: '@inquirer/type': 3.0.10_@types+node@14.18.63 '@types/node': 14.18.63 - /@inquirer/input/4.3.1_@types+node@20.19.27: + /@inquirer/input/4.3.1_@types+node@20.19.28: resolution: {integrity: sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==} engines: {node: '>=18'} peerDependencies: @@ -3272,9 +3239,9 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 dev: true /@inquirer/number/3.0.23: @@ -3303,7 +3270,7 @@ packages: '@inquirer/type': 3.0.10_@types+node@14.18.63 '@types/node': 14.18.63 - /@inquirer/number/3.0.23_@types+node@20.19.27: + /@inquirer/number/3.0.23_@types+node@20.19.28: resolution: {integrity: sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==} engines: {node: '>=18'} peerDependencies: @@ -3312,9 +3279,9 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 dev: true /@inquirer/password/4.0.23: @@ -3345,7 +3312,7 @@ packages: '@inquirer/type': 3.0.10_@types+node@14.18.63 '@types/node': 14.18.63 - /@inquirer/password/4.0.23_@types+node@20.19.27: + /@inquirer/password/4.0.23_@types+node@20.19.28: resolution: {integrity: sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==} engines: {node: '>=18'} peerDependencies: @@ -3355,9 +3322,9 @@ packages: optional: true dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 dev: true /@inquirer/prompts/7.10.1: @@ -3402,7 +3369,7 @@ packages: '@inquirer/select': 4.4.2_@types+node@14.18.63 '@types/node': 14.18.63 - /@inquirer/prompts/7.10.1_@types+node@20.19.27: + /@inquirer/prompts/7.10.1_@types+node@20.19.28: resolution: {integrity: sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==} engines: {node: '>=18'} peerDependencies: @@ -3411,17 +3378,17 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/checkbox': 4.3.2_@types+node@20.19.27 - '@inquirer/confirm': 5.1.21_@types+node@20.19.27 - '@inquirer/editor': 4.2.23_@types+node@20.19.27 - '@inquirer/expand': 4.0.23_@types+node@20.19.27 - '@inquirer/input': 4.3.1_@types+node@20.19.27 - '@inquirer/number': 3.0.23_@types+node@20.19.27 - '@inquirer/password': 4.0.23_@types+node@20.19.27 - '@inquirer/rawlist': 4.1.11_@types+node@20.19.27 - '@inquirer/search': 3.2.2_@types+node@20.19.27 - '@inquirer/select': 4.4.2_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/checkbox': 4.3.2_@types+node@20.19.28 + '@inquirer/confirm': 5.1.21_@types+node@20.19.28 + '@inquirer/editor': 4.2.23_@types+node@20.19.28 + '@inquirer/expand': 4.0.23_@types+node@20.19.28 + '@inquirer/input': 4.3.1_@types+node@20.19.28 + '@inquirer/number': 3.0.23_@types+node@20.19.28 + '@inquirer/password': 4.0.23_@types+node@20.19.28 + '@inquirer/rawlist': 4.1.11_@types+node@20.19.28 + '@inquirer/search': 3.2.2_@types+node@20.19.28 + '@inquirer/select': 4.4.2_@types+node@20.19.28 + '@types/node': 20.19.28 dev: true /@inquirer/rawlist/4.1.11: @@ -3452,7 +3419,7 @@ packages: '@types/node': 14.18.63 yoctocolors-cjs: 2.1.3 - /@inquirer/rawlist/4.1.11_@types+node@20.19.27: + /@inquirer/rawlist/4.1.11_@types+node@20.19.28: resolution: {integrity: sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==} engines: {node: '>=18'} peerDependencies: @@ -3461,9 +3428,9 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 yoctocolors-cjs: 2.1.3 dev: true @@ -3497,7 +3464,7 @@ packages: '@types/node': 14.18.63 yoctocolors-cjs: 2.1.3 - /@inquirer/search/3.2.2_@types+node@20.19.27: + /@inquirer/search/3.2.2_@types+node@20.19.28: resolution: {integrity: sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==} engines: {node: '>=18'} peerDependencies: @@ -3506,10 +3473,10 @@ packages: '@types/node': optional: true dependencies: - '@inquirer/core': 10.3.2_@types+node@20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 yoctocolors-cjs: 2.1.3 dev: true @@ -3556,7 +3523,7 @@ packages: '@types/node': 14.18.63 yoctocolors-cjs: 2.1.3 - /@inquirer/select/4.4.2_@types+node@20.19.27: + /@inquirer/select/4.4.2_@types+node@20.19.28: resolution: {integrity: sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==} engines: {node: '>=18'} peerDependencies: @@ -3566,10 +3533,10 @@ packages: optional: true dependencies: '@inquirer/ansi': 1.0.2 - '@inquirer/core': 10.3.2_@types+node@20.19.27 + '@inquirer/core': 10.3.2_@types+node@20.19.28 '@inquirer/figures': 1.0.15 - '@inquirer/type': 3.0.10_@types+node@20.19.27 - '@types/node': 20.19.27 + '@inquirer/type': 3.0.10_@types+node@20.19.28 + '@types/node': 20.19.28 yoctocolors-cjs: 2.1.3 dev: true @@ -3608,7 +3575,7 @@ packages: dependencies: '@types/node': 14.18.63 - /@inquirer/type/3.0.10_@types+node@20.19.27: + /@inquirer/type/3.0.10_@types+node@20.19.28: resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==} engines: {node: '>=18'} peerDependencies: @@ -3617,7 +3584,7 @@ packages: '@types/node': optional: true dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@isaacs/balanced-match/4.0.1: @@ -3663,7 +3630,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -3684,14 +3651,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0_rqz7jh55thjpzxmfwxo7snmxci + jest-config: 29.7.0_qwidctfg76djhmalyycgybzuti jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -3719,7 +3686,7 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 jest-mock: 29.7.0 dev: true @@ -3746,7 +3713,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.19.27 + '@types/node': 20.19.28 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -3779,7 +3746,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 20.19.27 + '@types/node': 20.19.28 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit: 0.1.2 @@ -3841,7 +3808,7 @@ packages: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.28.6 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 @@ -3866,7 +3833,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.19.27 + '@types/node': 20.19.28 '@types/yargs': 15.0.20 chalk: 4.1.2 dev: true @@ -3878,7 +3845,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.19.27 + '@types/node': 20.19.28 '@types/yargs': 17.0.35 chalk: 4.1.2 dev: true @@ -4014,11 +3981,11 @@ packages: transitivePeerDependencies: - '@types/node' - /@oclif/plugin-not-found/3.2.73_@types+node@20.19.27: + /@oclif/plugin-not-found/3.2.73_@types+node@20.19.28: resolution: {integrity: sha512-2bQieTGI9XNFe9hKmXQjJmHV5rZw+yn7Rud1+C5uLEo8GaT89KZbiLTJgL35tGILahy/cB6+WAs812wjw7TK6w==} engines: {node: '>=18.0.0'} dependencies: - '@inquirer/prompts': 7.10.1_@types+node@20.19.27 + '@inquirer/prompts': 7.10.1_@types+node@20.19.28 '@oclif/core': 4.8.0 ansis: 3.17.0 fast-levenshtein: 3.0.0 @@ -4077,12 +4044,14 @@ packages: /@otplib/plugin-crypto/12.0.1: resolution: {integrity: sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g==} + deprecated: Please upgrade to v13 of otplib. Refer to otplib docs for migration paths dependencies: '@otplib/core': 12.0.1 dev: false /@otplib/plugin-thirty-two/12.0.1: resolution: {integrity: sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA==} + deprecated: Please upgrade to v13 of otplib. Refer to otplib docs for migration paths dependencies: '@otplib/core': 12.0.1 thirty-two: 1.0.2 @@ -4090,6 +4059,7 @@ packages: /@otplib/preset-default/12.0.1: resolution: {integrity: sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ==} + deprecated: Please upgrade to v13 of otplib. Refer to otplib docs for migration paths dependencies: '@otplib/core': 12.0.1 '@otplib/plugin-crypto': 12.0.1 @@ -4513,8 +4483,8 @@ packages: tslib: 2.8.1 dev: true - /@smithy/core/3.20.1: - resolution: {integrity: sha512-wOboSEdQ85dbKAJ0zL+wQ6b0HTSBRhtGa0PYKysQXkRg+vK0tdCRRVruiFM2QMprkOQwSYOnwF4og96PAaEGag==} + /@smithy/core/3.20.3: + resolution: {integrity: sha512-iwF1e0+H9vX+4reUA0WjKnc5ueg0Leinl5kI7wsie5bVXoYdzkpINz6NPYhpr/5InOv332a7wNV5AxJyFoVUsQ==} engines: {node: '>=18.0.0'} dependencies: '@smithy/middleware-serde': 4.2.8 @@ -4665,11 +4635,11 @@ packages: tslib: 2.8.1 dev: true - /@smithy/middleware-endpoint/4.4.2: - resolution: {integrity: sha512-mqpAdux0BNmZu/SqkFhQEnod4fX23xxTvU2LUpmKp0JpSI+kPYCiHJMmzREr8yxbNxKL2/DU1UZm9i++ayU+2g==} + /@smithy/middleware-endpoint/4.4.4: + resolution: {integrity: sha512-TFxS6C5bGSc4djD1SLVmstCpfYDjmMnBR4KRDge5HEEtgSINGPKuxLvaAGfSPx5FFoMaTJkj4jJLNFggeWpRoQ==} engines: {node: '>=18.0.0'} dependencies: - '@smithy/core': 3.20.1 + '@smithy/core': 3.20.3 '@smithy/middleware-serde': 4.2.8 '@smithy/node-config-provider': 4.3.7 '@smithy/shared-ini-file-loader': 4.4.2 @@ -4679,14 +4649,14 @@ packages: tslib: 2.8.1 dev: true - /@smithy/middleware-retry/4.4.18: - resolution: {integrity: sha512-E5hulijA59nBk/zvcwVMaS7FG7Y4l6hWA9vrW018r+8kiZef4/ETQaPI4oY+3zsy9f6KqDv3c4VKtO4DwwgpCg==} + /@smithy/middleware-retry/4.4.20: + resolution: {integrity: sha512-+UvEn/8HGzh/6zpe9xFGZe7go4/fzflggfeRG/TvdGLoUY7Gw+4RgzKJEPU2NvPo0k/j/o7vvx25ZWyOXeGoxw==} engines: {node: '>=18.0.0'} dependencies: '@smithy/node-config-provider': 4.3.7 '@smithy/protocol-http': 5.3.7 '@smithy/service-error-classification': 4.2.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 '@smithy/util-middleware': 4.2.7 '@smithy/util-retry': 4.2.7 @@ -4794,12 +4764,12 @@ packages: tslib: 2.8.1 dev: true - /@smithy/smithy-client/4.10.3: - resolution: {integrity: sha512-EfECiO/0fAfb590LBnUe7rI5ux7XfquQ8LBzTe7gxw0j9QW/q8UT/EHWHlxV/+jhQ3+Ssga9uUYXCQgImGMbNg==} + /@smithy/smithy-client/4.10.5: + resolution: {integrity: sha512-uotYm3WDne01R0DxBqF9J8WZc8gSgdj+uC7Lv/R+GinH4rxcgRLxLDayYkyGAboZlYszly6maQA+NGQ5N4gLhQ==} engines: {node: '>=18.0.0'} dependencies: - '@smithy/core': 3.20.1 - '@smithy/middleware-endpoint': 4.4.2 + '@smithy/core': 3.20.3 + '@smithy/middleware-endpoint': 4.4.4 '@smithy/middleware-stack': 4.2.7 '@smithy/protocol-http': 5.3.7 '@smithy/types': 4.11.0 @@ -4869,25 +4839,25 @@ packages: tslib: 2.8.1 dev: true - /@smithy/util-defaults-mode-browser/4.3.17: - resolution: {integrity: sha512-dwN4GmivYF1QphnP3xJESXKtHvkkvKHSZI8GrSKMVoENVSKW2cFPRYC4ZgstYjUHdR3zwaDkIaTDIp26JuY7Cw==} + /@smithy/util-defaults-mode-browser/4.3.19: + resolution: {integrity: sha512-5fkC/yE5aepnzcF9dywKefGlJUMM7JEYUOv97TRDLTtGiiAqf7YG80HJWIBR0qWQPQW3dlQ5eFlUsySvt0rGEA==} engines: {node: '>=18.0.0'} dependencies: '@smithy/property-provider': 4.2.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 tslib: 2.8.1 dev: true - /@smithy/util-defaults-mode-node/4.2.20: - resolution: {integrity: sha512-VD/I4AEhF1lpB3B//pmOIMBNLMrtdMXwy9yCOfa2QkJGDr63vH3RqPbSAKzoGMov3iryCxTXCxSsyGmEB8PDpg==} + /@smithy/util-defaults-mode-node/4.2.22: + resolution: {integrity: sha512-f0KNaSK192+kv6GFkUDA0Tvr5B8eU2bFh1EO+cUdlzZ2jap5Zv7KZXa0B/7r/M1+xiYPSIuroxlxQVP1ua9kxg==} engines: {node: '>=18.0.0'} dependencies: '@smithy/config-resolver': 4.4.5 '@smithy/credential-provider-imds': 4.2.7 '@smithy/node-config-provider': 4.3.7 '@smithy/property-provider': 4.2.7 - '@smithy/smithy-client': 4.10.3 + '@smithy/smithy-client': 4.10.5 '@smithy/types': 4.11.0 tslib: 2.8.1 dev: true @@ -4991,7 +4961,7 @@ packages: peerDependencies: eslint: '>=8.40.0' dependencies: - '@typescript-eslint/utils': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/utils': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -5008,7 +4978,7 @@ packages: peerDependencies: eslint: '>=8.40.0' dependencies: - '@typescript-eslint/utils': 8.52.0_eslint@7.32.0 + '@typescript-eslint/utils': 8.53.0_eslint@7.32.0 eslint: 7.32.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -5025,7 +4995,7 @@ packages: peerDependencies: eslint: '>=8.40.0' dependencies: - '@typescript-eslint/utils': 8.52.0_eslint@8.57.1 + '@typescript-eslint/utils': 8.53.0_eslint@8.57.1 eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -5042,7 +5012,7 @@ packages: peerDependencies: eslint: '>=8.40.0' dependencies: - '@typescript-eslint/utils': 8.52.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/utils': 8.53.0_k2rwabtyo525wwqr6566umnmhy eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -5060,7 +5030,7 @@ packages: eslint: '>=9.0.0' dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@7.32.0 - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/types': 8.53.0 eslint: 7.32.0 eslint-visitor-keys: 5.0.0 espree: 11.0.0 @@ -5075,7 +5045,7 @@ packages: eslint: '>=9.0.0' dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@8.57.1 - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/types': 8.53.0 eslint: 8.57.1 eslint-visitor-keys: 5.0.0 espree: 11.0.0 @@ -5122,8 +5092,8 @@ packages: /@types/babel__core/7.20.5: resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 @@ -5132,26 +5102,26 @@ packages: /@types/babel__generator/7.27.0: resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 dev: true /@types/babel__template/7.4.4: resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} dependencies: - '@babel/parser': 7.28.5 - '@babel/types': 7.28.5 + '@babel/parser': 7.28.6 + '@babel/types': 7.28.6 dev: true /@types/babel__traverse/7.28.0: resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} dependencies: - '@babel/types': 7.28.5 + '@babel/types': 7.28.6 dev: true /@types/big-json/3.2.5: resolution: {integrity: sha512-svpMgOodNauW9xaWn6EabpvQUwM1sizbLbzzkVsx1cCrHLJ18tK0OcMe0AL0HAukJkHld06ozIPO1+h+HiLSNQ==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/bluebird/3.5.42: @@ -5162,7 +5132,7 @@ packages: resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: false /@types/chai/4.3.20: @@ -5171,16 +5141,16 @@ packages: /@types/connect/3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: false /@types/estree/1.0.8: resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - /@types/express-serve-static-core/4.19.7: - resolution: {integrity: sha512-FvPtiIf1LfhzsaIXhv/PHan/2FeQBbtBDtfX2QfvPxdUelMDEckK08SM6nqo1MIZY3RUlfA+HV8+hFUSio78qg==} + /@types/express-serve-static-core/4.19.8: + resolution: {integrity: sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -5190,7 +5160,7 @@ packages: resolution: {integrity: sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==} dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 4.19.7 + '@types/express-serve-static-core': 4.19.8 '@types/qs': 6.14.0 '@types/serve-static': 1.15.10 dev: false @@ -5203,20 +5173,20 @@ packages: resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/glob/7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 6.0.0 - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/graceful-fs/4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/http-cache-semantics/4.0.4: @@ -5268,15 +5238,15 @@ packages: /@types/jsonfile/6.1.4: resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/linkify-it/5.0.0: resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} dev: true - /@types/lodash/4.17.21: - resolution: {integrity: sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==} + /@types/lodash/4.17.23: + resolution: {integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==} /@types/markdown-it/14.1.2: resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} @@ -5317,19 +5287,19 @@ packages: /@types/mute-stream/0.0.4: resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/node/14.18.63: resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} - /@types/node/20.19.27: - resolution: {integrity: sha512-N2clP5pJhB2YnZJ3PIHFk5RkygRX5WO/5f0WC08tp0wd+sv0rsJk3MqWn3CbNmT2J505a5336jaQj4ph1AdMug==} + /@types/node/20.19.28: + resolution: {integrity: sha512-VyKBr25BuFDzBFCK5sUM6ZXiWfqgCTwTAOK8qzGV/m9FCirXYDlmczJ+d5dXBAQALGCdRRdbteKYfJ84NGEusw==} dependencies: undici-types: 6.21.0 - /@types/node/22.19.3: - resolution: {integrity: sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==} + /@types/node/22.19.5: + resolution: {integrity: sha512-HfF8+mYcHPcPypui3w3mvzuIErlNOh2OAG+BCeBZCEwyiD5ls2SiCwEyT47OELtf7M3nHxBdu0FsmzdKxkN52Q==} dependencies: undici-types: 6.21.0 dev: true @@ -5341,7 +5311,7 @@ packages: /@types/progress-stream/2.0.5: resolution: {integrity: sha512-5YNriuEZkHlFHHepLIaxzq3atGeav1qCTGzB74HKWpo66qjfostF+rHc785YYYHeBytve8ZG3ejg42jEIfXNiQ==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/qs/6.14.0: @@ -5368,20 +5338,20 @@ packages: resolution: {integrity: sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: false /@types/send/1.2.1: resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: false /@types/serve-static/1.15.10: resolution: {integrity: sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==} dependencies: '@types/http-errors': 2.0.5 - '@types/node': 20.19.27 + '@types/node': 20.19.28 '@types/send': 0.17.6 dev: false @@ -5406,14 +5376,14 @@ packages: /@types/tar/6.1.13: resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 minipass: 4.2.8 dev: true /@types/through/0.0.33: resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 dev: true /@types/tmp/0.2.6: @@ -5537,66 +5507,65 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/8.52.0_noewlx7djlxm7y77biceqpjc3a: - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + /@typescript-eslint/eslint-plugin/8.53.0_dca5iuiroy2vtdg3rzjjbhb4hm: + resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 + '@typescript-eslint/parser': ^8.53.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0_k2rwabtyo525wwqr6566umnmhy - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0_k2rwabtyo525wwqr6566umnmhy - '@typescript-eslint/utils': 8.52.0_k2rwabtyo525wwqr6566umnmhy - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/parser': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/type-utils': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/utils': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/visitor-keys': 8.53.0 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0_typescript@5.9.3 - typescript: 5.9.3 + ts-api-utils: 2.4.0_typescript@4.9.5 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/eslint-plugin/8.52.0_r5wsjxtrq6ynip7ju6sdhjjocq: - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + /@typescript-eslint/eslint-plugin/8.53.0_t2s57xm67hp4nmvbkcu6rjdgci: + resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 + '@typescript-eslint/parser': ^8.53.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji - '@typescript-eslint/utils': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji - '@typescript-eslint/visitor-keys': 8.52.0 - eslint: 8.57.1 + '@typescript-eslint/parser': 8.53.0_eslint@7.32.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/type-utils': 8.53.0_eslint@7.32.0 + '@typescript-eslint/utils': 8.53.0_eslint@7.32.0 + '@typescript-eslint/visitor-keys': 8.53.0 + eslint: 7.32.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0_typescript@4.9.5 - typescript: 4.9.5 + ts-api-utils: 2.4.0 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/eslint-plugin/8.52.0_vti64vi7ossu2dvcrn2pgowrc4: - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + /@typescript-eslint/eslint-plugin/8.53.0_xxyirjqvxmya52bar37s3rf4zi: + resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 + '@typescript-eslint/parser': ^8.53.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0_eslint@8.57.1 - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0_eslint@8.57.1 - '@typescript-eslint/utils': 8.52.0_eslint@8.57.1 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/parser': 8.53.0_eslint@8.57.1 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/type-utils': 8.53.0_eslint@8.57.1 + '@typescript-eslint/utils': 8.53.0_eslint@8.57.1 + '@typescript-eslint/visitor-keys': 8.53.0 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 @@ -5605,24 +5574,25 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/8.52.0_x7mddu5po27xrrqfxufxqnjcoa: - resolution: {integrity: sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==} + /@typescript-eslint/eslint-plugin/8.53.0_zpj3n5bnn5jlhekjw5lfewwpsi: + resolution: {integrity: sha512-eEXsVvLPu8Z4PkFibtuFJLJOTAV/nPdgtSjkGoPpddpFk3/ym2oy97jynY6ic2m6+nc5M8SE1e9v/mHKsulcJg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.52.0 + '@typescript-eslint/parser': ^8.53.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.52.0_eslint@7.32.0 - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/type-utils': 8.52.0_eslint@7.32.0 - '@typescript-eslint/utils': 8.52.0_eslint@7.32.0 - '@typescript-eslint/visitor-keys': 8.52.0 - eslint: 7.32.0 + '@typescript-eslint/parser': 8.53.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/type-utils': 8.53.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/utils': 8.53.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/visitor-keys': 8.53.0 + eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.4.0 + ts-api-utils: 2.4.0_typescript@5.9.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color dev: true @@ -5669,17 +5639,17 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji: - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + /@typescript-eslint/parser/8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji: + resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0_typescript@4.9.5 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0_typescript@4.9.5 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 eslint: 8.57.1 typescript: 4.9.5 @@ -5687,51 +5657,51 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/8.52.0_eslint@7.32.0: - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + /@typescript-eslint/parser/8.53.0_eslint@7.32.0: + resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 eslint: 7.32.0 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/8.52.0_eslint@8.57.1: - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + /@typescript-eslint/parser/8.53.0_eslint@8.57.1: + resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 eslint: 8.57.1 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/8.52.0_k2rwabtyo525wwqr6566umnmhy: - resolution: {integrity: sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==} + /@typescript-eslint/parser/8.53.0_k2rwabtyo525wwqr6566umnmhy: + resolution: {integrity: sha512-npiaib8XzbjtzS2N4HlqPvlpxpmZ14FjSJrteZpPxGUaYPlvhzlzUZ4mZyABo0EFrOWnvyd0Xxroq//hKhtAWg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0_typescript@5.9.3 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0_typescript@5.9.3 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 eslint: 8.57.1 typescript: 5.9.3 @@ -5739,41 +5709,41 @@ packages: - supports-color dev: true - /@typescript-eslint/project-service/8.52.0: - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + /@typescript-eslint/project-service/8.53.0: + resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0 - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.53.0 + '@typescript-eslint/types': 8.53.0 debug: 4.4.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/project-service/8.52.0_typescript@4.9.5: - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + /@typescript-eslint/project-service/8.53.0_typescript@4.9.5: + resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0_typescript@4.9.5 - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.53.0_typescript@4.9.5 + '@typescript-eslint/types': 8.53.0 debug: 4.4.3 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/project-service/8.52.0_typescript@5.9.3: - resolution: {integrity: sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==} + /@typescript-eslint/project-service/8.53.0_typescript@5.9.3: + resolution: {integrity: sha512-Bl6Gdr7NqkqIP5yP9z1JU///Nmes4Eose6L1HwpuVHwScgDPPuEWbUVhvlZmb8hy0vX9syLk5EGNL700WcBlbg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/tsconfig-utils': 8.52.0_typescript@5.9.3 - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/tsconfig-utils': 8.53.0_typescript@5.9.3 + '@typescript-eslint/types': 8.53.0 debug: 4.4.3 typescript: 5.9.3 transitivePeerDependencies: @@ -5804,23 +5774,23 @@ packages: '@typescript-eslint/visitor-keys': 7.18.0 dev: true - /@typescript-eslint/scope-manager/8.52.0: - resolution: {integrity: sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==} + /@typescript-eslint/scope-manager/8.53.0: + resolution: {integrity: sha512-kWNj3l01eOGSdVBnfAF2K1BTh06WS0Yet6JUgb9Cmkqaz3Jlu0fdVUjj9UI8gPidBWSMqDIglmEXifSgDT/D0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 dev: true - /@typescript-eslint/tsconfig-utils/8.52.0: - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + /@typescript-eslint/tsconfig-utils/8.53.0: + resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dev: true - /@typescript-eslint/tsconfig-utils/8.52.0_typescript@4.9.5: - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + /@typescript-eslint/tsconfig-utils/8.53.0_typescript@4.9.5: + resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -5828,8 +5798,8 @@ packages: typescript: 4.9.5 dev: true - /@typescript-eslint/tsconfig-utils/8.52.0_typescript@5.9.3: - resolution: {integrity: sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==} + /@typescript-eslint/tsconfig-utils/8.53.0_typescript@5.9.3: + resolution: {integrity: sha512-K6Sc0R5GIG6dNoPdOooQ+KtvT5KCKAvTcY8h2rIuul19vxH5OTQk7ArKkd4yTzkw66WnNY0kPPzzcmWA+XRmiA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -5897,16 +5867,16 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji: - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + /@typescript-eslint/type-utils/8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji: + resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0_typescript@4.9.5 - '@typescript-eslint/utils': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0_typescript@4.9.5 + '@typescript-eslint/utils': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji debug: 4.4.3 eslint: 8.57.1 ts-api-utils: 2.4.0_typescript@4.9.5 @@ -5915,16 +5885,16 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/8.52.0_eslint@7.32.0: - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + /@typescript-eslint/type-utils/8.53.0_eslint@7.32.0: + resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0 - '@typescript-eslint/utils': 8.52.0_eslint@7.32.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0 + '@typescript-eslint/utils': 8.53.0_eslint@7.32.0 debug: 4.4.3 eslint: 7.32.0 ts-api-utils: 2.4.0 @@ -5932,16 +5902,16 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/8.52.0_eslint@8.57.1: - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + /@typescript-eslint/type-utils/8.53.0_eslint@8.57.1: + resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0 - '@typescript-eslint/utils': 8.52.0_eslint@8.57.1 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0 + '@typescript-eslint/utils': 8.53.0_eslint@8.57.1 debug: 4.4.3 eslint: 8.57.1 ts-api-utils: 2.4.0 @@ -5949,16 +5919,16 @@ packages: - supports-color dev: true - /@typescript-eslint/type-utils/8.52.0_k2rwabtyo525wwqr6566umnmhy: - resolution: {integrity: sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==} + /@typescript-eslint/type-utils/8.53.0_k2rwabtyo525wwqr6566umnmhy: + resolution: {integrity: sha512-BBAUhlx7g4SmcLhn8cnbxoxtmS7hcq39xKCgiutL3oNx1TaIp+cny51s8ewnKMpVUKQUGb41RAUWZ9kxYdovuw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0_typescript@5.9.3 - '@typescript-eslint/utils': 8.52.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0_typescript@5.9.3 + '@typescript-eslint/utils': 8.53.0_k2rwabtyo525wwqr6566umnmhy debug: 4.4.3 eslint: 8.57.1 ts-api-utils: 2.4.0_typescript@5.9.3 @@ -5982,8 +5952,8 @@ packages: engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/types/8.52.0: - resolution: {integrity: sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==} + /@typescript-eslint/types/8.53.0: + resolution: {integrity: sha512-Bmh9KX31Vlxa13+PqPvt4RzKRN1XORYSLlAE+sO1i28NkisGbTtSLFVB3l7PWdHtR3E0mVMuC7JilWJ99m2HxQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true @@ -6096,16 +6066,16 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/8.52.0: - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + /@typescript-eslint/typescript-estree/8.53.0: + resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/project-service': 8.52.0 - '@typescript-eslint/tsconfig-utils': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/project-service': 8.53.0 + '@typescript-eslint/tsconfig-utils': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 @@ -6115,16 +6085,16 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/8.52.0_typescript@4.9.5: - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + /@typescript-eslint/typescript-estree/8.53.0_typescript@4.9.5: + resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/project-service': 8.52.0_typescript@4.9.5 - '@typescript-eslint/tsconfig-utils': 8.52.0_typescript@4.9.5 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/project-service': 8.53.0_typescript@4.9.5 + '@typescript-eslint/tsconfig-utils': 8.53.0_typescript@4.9.5 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 @@ -6135,16 +6105,16 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/8.52.0_typescript@5.9.3: - resolution: {integrity: sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==} + /@typescript-eslint/typescript-estree/8.53.0_typescript@5.9.3: + resolution: {integrity: sha512-pw0c0Gdo7Z4xOG987u3nJ8akL9093yEEKv8QTJ+Bhkghj1xyj8cgPaavlr9rq8h7+s6plUJ4QJYw2gCZodqmGw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/project-service': 8.52.0_typescript@5.9.3 - '@typescript-eslint/tsconfig-utils': 8.52.0_typescript@5.9.3 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/visitor-keys': 8.52.0 + '@typescript-eslint/project-service': 8.53.0_typescript@5.9.3 + '@typescript-eslint/tsconfig-utils': 8.53.0_typescript@5.9.3 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/visitor-keys': 8.53.0 debug: 4.4.3 minimatch: 9.0.5 semver: 7.7.3 @@ -6245,66 +6215,66 @@ packages: - typescript dev: true - /@typescript-eslint/utils/8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji: - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + /@typescript-eslint/utils/8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji: + resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@8.57.1 - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0_typescript@4.9.5 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0_typescript@4.9.5 eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/8.52.0_eslint@7.32.0: - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + /@typescript-eslint/utils/8.53.0_eslint@7.32.0: + resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@7.32.0 - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0 eslint: 7.32.0 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/8.52.0_eslint@8.57.1: - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + /@typescript-eslint/utils/8.53.0_eslint@8.57.1: + resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@8.57.1 - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0 eslint: 8.57.1 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/8.52.0_k2rwabtyo525wwqr6566umnmhy: - resolution: {integrity: sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==} + /@typescript-eslint/utils/8.53.0_k2rwabtyo525wwqr6566umnmhy: + resolution: {integrity: sha512-XDY4mXTez3Z1iRDI5mbRhH4DFSt46oaIFsLg+Zn97+sYrXACziXSQcSelMybnVZ5pa1P6xYkPr5cMJyunM1ZDA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: '@eslint-community/eslint-utils': 4.9.1_eslint@8.57.1 - '@typescript-eslint/scope-manager': 8.52.0 - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/typescript-estree': 8.52.0_typescript@5.9.3 + '@typescript-eslint/scope-manager': 8.53.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/typescript-estree': 8.53.0_typescript@5.9.3 eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: @@ -6335,11 +6305,11 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys/8.52.0: - resolution: {integrity: sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==} + /@typescript-eslint/visitor-keys/8.53.0: + resolution: {integrity: sha512-LZ2NqIHFhvFwxG0qZeLL9DvdNAHPGCY5dIRwBhyYeU+LfLhcStE1ImjsuTG/WaVh3XysGaeLW8Rqq7cGkPCFvw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: - '@typescript-eslint/types': 8.52.0 + '@typescript-eslint/types': 8.53.0 eslint-visitor-keys: 4.2.1 dev: true @@ -6964,17 +6934,17 @@ packages: - debug dev: false - /babel-jest/29.7.0_@babel+core@7.28.5: + /babel-jest/29.7.0_@babel+core@7.28.6: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.28.6 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3_@babel+core@7.28.5 + babel-preset-jest: 29.6.3_@babel+core@7.28.6 chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -6986,7 +6956,7 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} dependencies: - '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-plugin-utils': 7.28.6 '@istanbuljs/load-nyc-config': 1.1.0 '@istanbuljs/schema': 0.1.3 istanbul-lib-instrument: 5.2.1 @@ -6999,44 +6969,44 @@ packages: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/template': 7.27.2 - '@babel/types': 7.28.5 + '@babel/template': 7.28.6 + '@babel/types': 7.28.6 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 dev: true - /babel-preset-current-node-syntax/1.2.0_@babel+core@7.28.5: + /babel-preset-current-node-syntax/1.2.0_@babel+core@7.28.6: resolution: {integrity: sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==} peerDependencies: '@babel/core': ^7.0.0 || ^8.0.0-0 dependencies: - '@babel/core': 7.28.5 - '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.28.5 - '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.28.5 - '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.28.5 - '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.28.5 - '@babel/plugin-syntax-import-attributes': 7.27.1_@babel+core@7.28.5 - '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.28.5 - '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.28.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.28.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.28.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.28.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.28.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.28.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.28.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.28.5 - '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.28.5 - dev: true - - /babel-preset-jest/29.6.3_@babel+core@7.28.5: + '@babel/core': 7.28.6 + '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.28.6 + '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.28.6 + '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.28.6 + '@babel/plugin-syntax-class-static-block': 7.14.5_@babel+core@7.28.6 + '@babel/plugin-syntax-import-attributes': 7.28.6_@babel+core@7.28.6 + '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.28.6 + '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.28.6 + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.28.6 + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.28.6 + '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.28.6 + '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.28.6 + '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.28.6 + '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.28.6 + '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.28.6 + '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.28.6 + dev: true + + /babel-preset-jest/29.6.3_@babel+core@7.28.6: resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.28.6 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0_@babel+core@7.28.5 + babel-preset-current-node-syntax: 1.2.0_@babel+core@7.28.6 dev: true /balanced-match/1.0.2: @@ -7046,8 +7016,8 @@ packages: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} dev: false - /baseline-browser-mapping/2.9.13: - resolution: {integrity: sha512-WhtvB2NG2wjr04+h77sg3klAIwrgOqnjS49GGudnUPGFFgg7G17y7Qecqp+2Dr5kUDxNRBca0SK7cG8JwzkWDQ==} + /baseline-browser-mapping/2.9.14: + resolution: {integrity: sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==} hasBin: true dev: true @@ -7140,8 +7110,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - baseline-browser-mapping: 2.9.13 - caniuse-lite: 1.0.30001763 + baseline-browser-mapping: 2.9.14 + caniuse-lite: 1.0.30001764 electron-to-chromium: 1.5.267 node-releases: 2.0.27 update-browserslist-db: 1.2.3_browserslist@4.28.1 @@ -7273,8 +7243,8 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001763: - resolution: {integrity: sha512-mh/dGtq56uN98LlNX9qdbKnzINhX0QzhiWBFEkFfsFO4QyCvL8YegrJAazCwXIeqkIob8BlZPGM3xdnY+sgmvQ==} + /caniuse-lite/1.0.30001764: + resolution: {integrity: sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==} dev: true /capital-case/1.0.4: @@ -7365,10 +7335,6 @@ packages: resolution: {integrity: sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==} dev: false - /chardet/0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: false - /chardet/2.1.1: resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} @@ -8501,27 +8467,27 @@ packages: - eslint dev: true - /eslint-config-oclif/6.0.129_avq3eyf5kaj6ssrwo7fvkrwnji: - resolution: {integrity: sha512-gUL41BzraulUoPPy8pohJo2brIPG2YsLEF14ZJ/zuGw9m2t1/hs9173ThfcSDL85++B8d0xYwy3gYB3LCo1f6g==} + /eslint-config-oclif/6.0.130_avq3eyf5kaj6ssrwo7fvkrwnji: + resolution: {integrity: sha512-8+0iqrin1Z1CWj166lmBMqJtdss3mjT1hqWT7A1HFE2Pn3+2b7pT3QWwsyF8pUJX2BznGsLfH2z2uvhjSuBt9Q==} engines: {node: '>=18.18.0'} dependencies: '@eslint/compat': 1.4.1_eslint@8.57.1 '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@stylistic/eslint-plugin': 3.1.0_avq3eyf5kaj6ssrwo7fvkrwnji - '@typescript-eslint/eslint-plugin': 8.52.0_r5wsjxtrq6ynip7ju6sdhjjocq - '@typescript-eslint/parser': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/eslint-plugin': 8.53.0_dca5iuiroy2vtdg3rzjjbhb4hm + '@typescript-eslint/parser': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji eslint-config-oclif: 5.2.2_eslint@8.57.1 eslint-config-xo: 0.49.0_eslint@8.57.1 eslint-config-xo-space: 0.35.0_eslint@8.57.1 eslint-import-resolver-typescript: 3.10.1_2exwcduccderqiu2u7qw4rc7d4 - eslint-plugin-import: 2.32.0_jwkm3vga7fvlf2hobmqzek5aoa + eslint-plugin-import: 2.32.0_aksosxtone4o5zz7qyqktlzmn4 eslint-plugin-jsdoc: 50.8.0_eslint@8.57.1 eslint-plugin-mocha: 10.5.0_eslint@8.57.1 eslint-plugin-n: 17.23.1_avq3eyf5kaj6ssrwo7fvkrwnji eslint-plugin-perfectionist: 4.15.1_avq3eyf5kaj6ssrwo7fvkrwnji eslint-plugin-unicorn: 56.0.1_eslint@8.57.1 - typescript-eslint: 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + typescript-eslint: 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -8530,27 +8496,27 @@ packages: - typescript dev: true - /eslint-config-oclif/6.0.129_eslint@7.32.0: - resolution: {integrity: sha512-gUL41BzraulUoPPy8pohJo2brIPG2YsLEF14ZJ/zuGw9m2t1/hs9173ThfcSDL85++B8d0xYwy3gYB3LCo1f6g==} + /eslint-config-oclif/6.0.130_eslint@7.32.0: + resolution: {integrity: sha512-8+0iqrin1Z1CWj166lmBMqJtdss3mjT1hqWT7A1HFE2Pn3+2b7pT3QWwsyF8pUJX2BznGsLfH2z2uvhjSuBt9Q==} engines: {node: '>=18.18.0'} dependencies: '@eslint/compat': 1.4.1_eslint@7.32.0 '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@stylistic/eslint-plugin': 3.1.0_eslint@7.32.0 - '@typescript-eslint/eslint-plugin': 8.52.0_x7mddu5po27xrrqfxufxqnjcoa - '@typescript-eslint/parser': 8.52.0_eslint@7.32.0 + '@typescript-eslint/eslint-plugin': 8.53.0_t2s57xm67hp4nmvbkcu6rjdgci + '@typescript-eslint/parser': 8.53.0_eslint@7.32.0 eslint-config-oclif: 5.2.2_eslint@7.32.0 eslint-config-xo: 0.49.0_eslint@7.32.0 eslint-config-xo-space: 0.35.0_eslint@7.32.0 eslint-import-resolver-typescript: 3.10.1_euuv2s2m4azrqak6tzap5kwzai - eslint-plugin-import: 2.32.0_kclgfpzsty4kyqq72a7fxbgtau + eslint-plugin-import: 2.32.0_v6kaevju6un6uz2ubdc56kf7by eslint-plugin-jsdoc: 50.8.0_eslint@7.32.0 eslint-plugin-mocha: 10.5.0_eslint@7.32.0 eslint-plugin-n: 17.23.1_eslint@7.32.0 eslint-plugin-perfectionist: 4.15.1_eslint@7.32.0 eslint-plugin-unicorn: 56.0.1_eslint@7.32.0 - typescript-eslint: 8.52.0_eslint@7.32.0 + typescript-eslint: 8.53.0_eslint@7.32.0 transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -8559,27 +8525,27 @@ packages: - typescript dev: true - /eslint-config-oclif/6.0.129_eslint@8.57.1: - resolution: {integrity: sha512-gUL41BzraulUoPPy8pohJo2brIPG2YsLEF14ZJ/zuGw9m2t1/hs9173ThfcSDL85++B8d0xYwy3gYB3LCo1f6g==} + /eslint-config-oclif/6.0.130_eslint@8.57.1: + resolution: {integrity: sha512-8+0iqrin1Z1CWj166lmBMqJtdss3mjT1hqWT7A1HFE2Pn3+2b7pT3QWwsyF8pUJX2BznGsLfH2z2uvhjSuBt9Q==} engines: {node: '>=18.18.0'} dependencies: '@eslint/compat': 1.4.1_eslint@8.57.1 '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@stylistic/eslint-plugin': 3.1.0_eslint@8.57.1 - '@typescript-eslint/eslint-plugin': 8.52.0_vti64vi7ossu2dvcrn2pgowrc4 - '@typescript-eslint/parser': 8.52.0_eslint@8.57.1 + '@typescript-eslint/eslint-plugin': 8.53.0_xxyirjqvxmya52bar37s3rf4zi + '@typescript-eslint/parser': 8.53.0_eslint@8.57.1 eslint-config-oclif: 5.2.2_eslint@8.57.1 eslint-config-xo: 0.49.0_eslint@8.57.1 eslint-config-xo-space: 0.35.0_eslint@8.57.1 eslint-import-resolver-typescript: 3.10.1_2exwcduccderqiu2u7qw4rc7d4 - eslint-plugin-import: 2.32.0_jwkm3vga7fvlf2hobmqzek5aoa + eslint-plugin-import: 2.32.0_aksosxtone4o5zz7qyqktlzmn4 eslint-plugin-jsdoc: 50.8.0_eslint@8.57.1 eslint-plugin-mocha: 10.5.0_eslint@8.57.1 eslint-plugin-n: 17.23.1_eslint@8.57.1 eslint-plugin-perfectionist: 4.15.1_eslint@8.57.1 eslint-plugin-unicorn: 56.0.1_eslint@8.57.1 - typescript-eslint: 8.52.0_eslint@8.57.1 + typescript-eslint: 8.53.0_eslint@8.57.1 transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -8588,27 +8554,27 @@ packages: - typescript dev: true - /eslint-config-oclif/6.0.129_k2rwabtyo525wwqr6566umnmhy: - resolution: {integrity: sha512-gUL41BzraulUoPPy8pohJo2brIPG2YsLEF14ZJ/zuGw9m2t1/hs9173ThfcSDL85++B8d0xYwy3gYB3LCo1f6g==} + /eslint-config-oclif/6.0.130_k2rwabtyo525wwqr6566umnmhy: + resolution: {integrity: sha512-8+0iqrin1Z1CWj166lmBMqJtdss3mjT1hqWT7A1HFE2Pn3+2b7pT3QWwsyF8pUJX2BznGsLfH2z2uvhjSuBt9Q==} engines: {node: '>=18.18.0'} dependencies: '@eslint/compat': 1.4.1_eslint@8.57.1 '@eslint/eslintrc': 3.3.3 '@eslint/js': 9.39.2 '@stylistic/eslint-plugin': 3.1.0_k2rwabtyo525wwqr6566umnmhy - '@typescript-eslint/eslint-plugin': 8.52.0_noewlx7djlxm7y77biceqpjc3a - '@typescript-eslint/parser': 8.52.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/eslint-plugin': 8.53.0_zpj3n5bnn5jlhekjw5lfewwpsi + '@typescript-eslint/parser': 8.53.0_k2rwabtyo525wwqr6566umnmhy eslint-config-oclif: 5.2.2_eslint@8.57.1 eslint-config-xo: 0.49.0_eslint@8.57.1 eslint-config-xo-space: 0.35.0_eslint@8.57.1 eslint-import-resolver-typescript: 3.10.1_2exwcduccderqiu2u7qw4rc7d4 - eslint-plugin-import: 2.32.0_jwkm3vga7fvlf2hobmqzek5aoa + eslint-plugin-import: 2.32.0_aksosxtone4o5zz7qyqktlzmn4 eslint-plugin-jsdoc: 50.8.0_eslint@8.57.1 eslint-plugin-mocha: 10.5.0_eslint@8.57.1 eslint-plugin-n: 17.23.1_k2rwabtyo525wwqr6566umnmhy eslint-plugin-perfectionist: 4.15.1_k2rwabtyo525wwqr6566umnmhy eslint-plugin-unicorn: 56.0.1_eslint@8.57.1 - typescript-eslint: 8.52.0_k2rwabtyo525wwqr6566umnmhy + typescript-eslint: 8.53.0_k2rwabtyo525wwqr6566umnmhy transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -8711,7 +8677,7 @@ packages: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 eslint: 8.57.1 - eslint-plugin-import: 2.32.0_jwkm3vga7fvlf2hobmqzek5aoa + eslint-plugin-import: 2.32.0_aksosxtone4o5zz7qyqktlzmn4 get-tsconfig: 4.13.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 @@ -8737,7 +8703,7 @@ packages: '@nolyfill/is-core-module': 1.0.39 debug: 4.4.3 eslint: 7.32.0 - eslint-plugin-import: 2.32.0_kclgfpzsty4kyqq72a7fxbgtau + eslint-plugin-import: 2.32.0_v6kaevju6un6uz2ubdc56kf7by get-tsconfig: 4.13.0 is-bun-module: 2.0.0 stable-hash: 0.0.5 @@ -8747,7 +8713,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.12.1_kuw6gypsyjvpnehvjxp5tu4zea: + /eslint-module-utils/2.12.1_jynnuuyasbbimpxpcgtebyfyda: resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: @@ -8768,7 +8734,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji debug: 3.2.7 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 @@ -8777,7 +8743,7 @@ packages: - supports-color dev: true - /eslint-module-utils/2.12.1_lqubcavg5vxokyhzok7bhy4ysm: + /eslint-module-utils/2.12.1_swrhntwfibhg62qifem35een4m: resolution: {integrity: sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==} engines: {node: '>=4'} peerDependencies: @@ -8798,7 +8764,7 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 8.52.0_eslint@7.32.0 + '@typescript-eslint/parser': 8.53.0_eslint@7.32.0 debug: 3.2.7 eslint: 7.32.0 eslint-import-resolver-node: 0.3.9 @@ -8883,7 +8849,7 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.32.0_ar3c7zjwtto324sxhascv2p7uq: + /eslint-plugin-import/2.32.0_aksosxtone4o5zz7qyqktlzmn4: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: @@ -8894,7 +8860,7 @@ packages: optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 6.21.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 @@ -8903,7 +8869,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1_yb2aych2lrsetdffcibe7ggstq + eslint-module-utils: 2.12.1_jynnuuyasbbimpxpcgtebyfyda hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8920,7 +8886,7 @@ packages: - supports-color dev: true - /eslint-plugin-import/2.32.0_jwkm3vga7fvlf2hobmqzek5aoa: + /eslint-plugin-import/2.32.0_ar3c7zjwtto324sxhascv2p7uq: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: @@ -8931,7 +8897,7 @@ packages: optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/parser': 6.21.0_avq3eyf5kaj6ssrwo7fvkrwnji array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 @@ -8940,7 +8906,7 @@ packages: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1_kuw6gypsyjvpnehvjxp5tu4zea + eslint-module-utils: 2.12.1_yb2aych2lrsetdffcibe7ggstq hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -8957,7 +8923,7 @@ packages: - supports-color dev: true - /eslint-plugin-import/2.32.0_kclgfpzsty4kyqq72a7fxbgtau: + /eslint-plugin-import/2.32.0_v6kaevju6un6uz2ubdc56kf7by: resolution: {integrity: sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==} engines: {node: '>=4'} peerDependencies: @@ -8968,7 +8934,7 @@ packages: optional: true dependencies: '@rtsao/scc': 1.1.0 - '@typescript-eslint/parser': 8.52.0_eslint@7.32.0 + '@typescript-eslint/parser': 8.53.0_eslint@7.32.0 array-includes: 3.1.9 array.prototype.findlastindex: 1.2.6 array.prototype.flat: 1.3.3 @@ -8977,7 +8943,7 @@ packages: doctrine: 2.1.0 eslint: 7.32.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1_lqubcavg5vxokyhzok7bhy4ysm + eslint-module-utils: 2.12.1_swrhntwfibhg62qifem35een4m hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -9234,8 +9200,8 @@ packages: peerDependencies: eslint: '>=8.45.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/utils': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/utils': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji eslint: 8.57.1 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -9249,8 +9215,8 @@ packages: peerDependencies: eslint: '>=8.45.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/utils': 8.52.0_eslint@7.32.0 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/utils': 8.53.0_eslint@7.32.0 eslint: 7.32.0 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -9264,8 +9230,8 @@ packages: peerDependencies: eslint: '>=8.45.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/utils': 8.52.0_eslint@8.57.1 + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/utils': 8.53.0_eslint@8.57.1 eslint: 8.57.1 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -9279,8 +9245,8 @@ packages: peerDependencies: eslint: '>=8.45.0' dependencies: - '@typescript-eslint/types': 8.52.0 - '@typescript-eslint/utils': 8.52.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/types': 8.53.0 + '@typescript-eslint/utils': 8.53.0_k2rwabtyo525wwqr6566umnmhy eslint: 8.57.1 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -9777,15 +9743,6 @@ packages: tmp: 0.0.33 dev: false - /external-editor/3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: false - /eyes/0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -9797,8 +9754,8 @@ packages: deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: '@types/chai': 4.3.20 - '@types/lodash': 4.17.21 - '@types/node': 20.19.27 + '@types/lodash': 4.17.23 + '@types/node': 20.19.28 '@types/sinon': 17.0.4 lodash: 4.17.21 mock-stdin: 1.0.0 @@ -10770,27 +10727,6 @@ packages: through: 2.3.8 dev: false - /inquirer/8.2.6: - resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} - engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - dev: false - /inquirer/8.2.7: resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} engines: {node: '>=12.0.0'} @@ -11213,7 +11149,7 @@ packages: resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -11225,8 +11161,8 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 + '@babel/core': 7.28.6 + '@babel/parser': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -11238,8 +11174,8 @@ packages: resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 + '@babel/core': 7.28.6 + '@babel/parser': 7.28.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.3 @@ -11321,7 +11257,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.1 @@ -11382,11 +11318,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 '@types/node': 14.18.63 - babel-jest: 29.7.0_@babel+core@7.28.5 + babel-jest: 29.7.0_@babel+core@7.28.6 chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -11411,7 +11347,7 @@ packages: - supports-color dev: true - /jest-config/29.7.0_rqz7jh55thjpzxmfwxo7snmxci: + /jest-config/29.7.0_qwidctfg76djhmalyycgybzuti: resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -11423,11 +11359,11 @@ packages: ts-node: optional: true dependencies: - '@babel/core': 7.28.5 + '@babel/core': 7.28.6 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 - babel-jest: 29.7.0_@babel+core@7.28.5 + '@types/node': 20.19.28 + babel-jest: 29.7.0_@babel+core@7.28.6 chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -11497,7 +11433,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -11518,7 +11454,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.19.27 + '@types/node': 20.19.28 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -11553,7 +11489,7 @@ packages: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.28.6 '@jest/types': 29.6.3 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -11569,7 +11505,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 jest-util: 29.7.0 dev: true @@ -11624,7 +11560,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -11655,7 +11591,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 chalk: 4.1.2 cjs-module-lexer: 1.4.3 collect-v8-coverage: 1.0.3 @@ -11678,15 +11614,15 @@ packages: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@babel/core': 7.28.5 - '@babel/generator': 7.28.5 - '@babel/plugin-syntax-jsx': 7.27.1_@babel+core@7.28.5 - '@babel/plugin-syntax-typescript': 7.27.1_@babel+core@7.28.5 - '@babel/types': 7.28.5 + '@babel/core': 7.28.6 + '@babel/generator': 7.28.6 + '@babel/plugin-syntax-jsx': 7.28.6_@babel+core@7.28.6 + '@babel/plugin-syntax-typescript': 7.28.6_@babel+core@7.28.6 + '@babel/types': 7.28.6 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.2.0_@babel+core@7.28.5 + babel-preset-current-node-syntax: 1.2.0_@babel+core@7.28.6 chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -11707,7 +11643,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -11732,7 +11668,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.19.27 + '@types/node': 20.19.28 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -11744,7 +11680,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.19.27 + '@types/node': 20.19.28 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -11846,7 +11782,7 @@ packages: engines: {node: '>=12.0.0'} hasBin: true dependencies: - '@babel/parser': 7.28.5 + '@babel/parser': 7.28.6 '@jsdoc/salty': 0.2.9 '@types/markdown-it': 14.1.2 bluebird: 3.7.2 @@ -12923,13 +12859,13 @@ packages: es-object-atoms: 1.1.1 dev: true - /oclif/4.22.63: - resolution: {integrity: sha512-xhlXnMLlvnV376ofTKVW9KZk0lsvMSnLqUk6rJ3V18lzMj8grt3s4opWuEib9xgyig0rELCK46iYeZUgw04ibg==} + /oclif/4.22.65: + resolution: {integrity: sha512-pJW0P+gUzIAS6gSQH11jmbu9xQgjfxgBV+FjWvvwu68NUtljtpZm1w3uftXUVk51Ra40r9XB1Jh/Mcbb+I6yJw==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@aws-sdk/client-cloudfront': 3.965.0 - '@aws-sdk/client-s3': 3.965.0 + '@aws-sdk/client-cloudfront': 3.967.0 + '@aws-sdk/client-s3': 3.967.0 '@inquirer/confirm': 3.2.0 '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 @@ -12958,13 +12894,13 @@ packages: - supports-color dev: true - /oclif/4.22.63_@types+node@14.18.63: - resolution: {integrity: sha512-xhlXnMLlvnV376ofTKVW9KZk0lsvMSnLqUk6rJ3V18lzMj8grt3s4opWuEib9xgyig0rELCK46iYeZUgw04ibg==} + /oclif/4.22.65_@types+node@14.18.63: + resolution: {integrity: sha512-pJW0P+gUzIAS6gSQH11jmbu9xQgjfxgBV+FjWvvwu68NUtljtpZm1w3uftXUVk51Ra40r9XB1Jh/Mcbb+I6yJw==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@aws-sdk/client-cloudfront': 3.965.0 - '@aws-sdk/client-s3': 3.965.0 + '@aws-sdk/client-cloudfront': 3.967.0 + '@aws-sdk/client-s3': 3.967.0 '@inquirer/confirm': 3.2.0 '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 @@ -12993,19 +12929,19 @@ packages: - supports-color dev: true - /oclif/4.22.63_@types+node@20.19.27: - resolution: {integrity: sha512-xhlXnMLlvnV376ofTKVW9KZk0lsvMSnLqUk6rJ3V18lzMj8grt3s4opWuEib9xgyig0rELCK46iYeZUgw04ibg==} + /oclif/4.22.65_@types+node@20.19.28: + resolution: {integrity: sha512-pJW0P+gUzIAS6gSQH11jmbu9xQgjfxgBV+FjWvvwu68NUtljtpZm1w3uftXUVk51Ra40r9XB1Jh/Mcbb+I6yJw==} engines: {node: '>=18.0.0'} hasBin: true dependencies: - '@aws-sdk/client-cloudfront': 3.965.0 - '@aws-sdk/client-s3': 3.965.0 + '@aws-sdk/client-cloudfront': 3.967.0 + '@aws-sdk/client-s3': 3.967.0 '@inquirer/confirm': 3.2.0 '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 - '@oclif/plugin-not-found': 3.2.73_@types+node@20.19.27 + '@oclif/plugin-not-found': 3.2.73_@types+node@20.19.28 '@oclif/plugin-warn-if-update-available': 3.1.53 ansis: 3.17.0 async-retry: 1.3.3 @@ -13245,7 +13181,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.28.6 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -14970,7 +14906,7 @@ packages: yn: 3.1.1 dev: true - /ts-node/10.9.2_typescript@4.9.5: + /ts-node/10.9.2_qttpccyjg7ewgbxel7wubu76mm: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -14989,18 +14925,19 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 + '@types/node': 20.19.28 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.5 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /ts-node/10.9.2_xwpkxzit2oggtkvhnry5algaly: + /ts-node/10.9.2_typescript@4.9.5: resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -15019,14 +14956,13 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.19.27 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.9.3 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -15214,66 +15150,66 @@ packages: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} dev: false - /typescript-eslint/8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + /typescript-eslint/8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji: + resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0_r5wsjxtrq6ynip7ju6sdhjjocq - '@typescript-eslint/parser': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji - '@typescript-eslint/typescript-estree': 8.52.0_typescript@4.9.5 - '@typescript-eslint/utils': 8.52.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/eslint-plugin': 8.53.0_dca5iuiroy2vtdg3rzjjbhb4hm + '@typescript-eslint/parser': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji + '@typescript-eslint/typescript-estree': 8.53.0_typescript@4.9.5 + '@typescript-eslint/utils': 8.53.0_avq3eyf5kaj6ssrwo7fvkrwnji eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: true - /typescript-eslint/8.52.0_eslint@7.32.0: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + /typescript-eslint/8.53.0_eslint@7.32.0: + resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0_x7mddu5po27xrrqfxufxqnjcoa - '@typescript-eslint/parser': 8.52.0_eslint@7.32.0 - '@typescript-eslint/typescript-estree': 8.52.0 - '@typescript-eslint/utils': 8.52.0_eslint@7.32.0 + '@typescript-eslint/eslint-plugin': 8.53.0_t2s57xm67hp4nmvbkcu6rjdgci + '@typescript-eslint/parser': 8.53.0_eslint@7.32.0 + '@typescript-eslint/typescript-estree': 8.53.0 + '@typescript-eslint/utils': 8.53.0_eslint@7.32.0 eslint: 7.32.0 transitivePeerDependencies: - supports-color dev: true - /typescript-eslint/8.52.0_eslint@8.57.1: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + /typescript-eslint/8.53.0_eslint@8.57.1: + resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0_vti64vi7ossu2dvcrn2pgowrc4 - '@typescript-eslint/parser': 8.52.0_eslint@8.57.1 - '@typescript-eslint/typescript-estree': 8.52.0 - '@typescript-eslint/utils': 8.52.0_eslint@8.57.1 + '@typescript-eslint/eslint-plugin': 8.53.0_xxyirjqvxmya52bar37s3rf4zi + '@typescript-eslint/parser': 8.53.0_eslint@8.57.1 + '@typescript-eslint/typescript-estree': 8.53.0 + '@typescript-eslint/utils': 8.53.0_eslint@8.57.1 eslint: 8.57.1 transitivePeerDependencies: - supports-color dev: true - /typescript-eslint/8.52.0_k2rwabtyo525wwqr6566umnmhy: - resolution: {integrity: sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==} + /typescript-eslint/8.53.0_k2rwabtyo525wwqr6566umnmhy: + resolution: {integrity: sha512-xHURCQNxZ1dsWn0sdOaOfCSQG0HKeqSj9OexIxrz6ypU6wHYOdX2I3D2b8s8wFSsSOYJb+6q283cLiLlkEsBYw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' dependencies: - '@typescript-eslint/eslint-plugin': 8.52.0_noewlx7djlxm7y77biceqpjc3a - '@typescript-eslint/parser': 8.52.0_k2rwabtyo525wwqr6566umnmhy - '@typescript-eslint/typescript-estree': 8.52.0_typescript@5.9.3 - '@typescript-eslint/utils': 8.52.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/eslint-plugin': 8.53.0_zpj3n5bnn5jlhekjw5lfewwpsi + '@typescript-eslint/parser': 8.53.0_k2rwabtyo525wwqr6566umnmhy + '@typescript-eslint/typescript-estree': 8.53.0_typescript@5.9.3 + '@typescript-eslint/utils': 8.53.0_k2rwabtyo525wwqr6566umnmhy eslint: 8.57.1 typescript: 5.9.3 transitivePeerDependencies: From 68f2d15a2b8fe235b8fb0ad913c7e75d80c0c9d3 Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Fri, 16 Jan 2026 15:30:28 +0530 Subject: [PATCH 15/16] version bump --- .talismanrc | 4 +- package-lock.json | 870 +++++++++++----------- packages/contentstack-clone/package.json | 2 +- packages/contentstack-export/package.json | 2 +- packages/contentstack/package.json | 4 +- pnpm-lock.yaml | 210 +++++- 6 files changed, 631 insertions(+), 461 deletions(-) diff --git a/.talismanrc b/.talismanrc index f445c7ec87..be354d0885 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,8 +1,8 @@ fileignoreconfig: - filename: package-lock.json - checksum: 26be769c9d3bcc7095237527dd0004c3981be0dc7bf5c01f650b05a0ea09ecb6 + checksum: 0e6e1f81c42fef1a4f71431be93a63b92a64fa64537efcf281a496ae08fbc1a3 - filename: pnpm-lock.yaml - checksum: 44d84111971dd7c108417a3e6e35bb3c61347d3eff4ea113a636429085d8502b + checksum: 65f459db6538d79f0e6cf74d4becc9934c183fa383988dc8c0d8862b9a0147eb - filename: packages/contentstack-import-setup/test/unit/backup-handler.test.ts checksum: 0582d62b88834554cf12951c8690a73ef3ddbb78b82d2804d994cf4148e1ef93 - filename: packages/contentstack-import-setup/test/config.json diff --git a/package-lock.json b/package-lock.json index f85a60715d..7b1eec9c52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -280,52 +280,52 @@ } }, "node_modules/@aws-sdk/client-cloudfront": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.968.0.tgz", - "integrity": "sha512-fENwnRXcbpQn/w1iLg3B1goX2cDunyHE+Ptcbh6HkS+KynsEGqHPti9f0eHWzbBygU8ntS8IJyPlQuqnU2gvmA==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.970.0.tgz", + "integrity": "sha512-8+EX29bGGjBvIx8z7qFh8B+y8RUAqAohbfnUTNC/zZxmk+hYIMyCWoT4YPJyfrWgMcN186PwjVRLuyNuDZ2B9g==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.968.0", - "@aws-sdk/credential-provider-node": "3.968.0", - "@aws-sdk/middleware-host-header": "3.968.0", - "@aws-sdk/middleware-logger": "3.968.0", - "@aws-sdk/middleware-recursion-detection": "3.968.0", - "@aws-sdk/middleware-user-agent": "3.968.0", - "@aws-sdk/region-config-resolver": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@aws-sdk/util-endpoints": "3.968.0", - "@aws-sdk/util-user-agent-browser": "3.968.0", - "@aws-sdk/util-user-agent-node": "3.968.0", - "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.3", - "@smithy/fetch-http-handler": "^5.3.8", - "@smithy/hash-node": "^4.2.7", - "@smithy/invalid-dependency": "^4.2.7", - "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.4", - "@smithy/middleware-retry": "^4.4.20", - "@smithy/middleware-serde": "^4.2.8", - "@smithy/middleware-stack": "^4.2.7", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/node-http-handler": "^4.4.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", - "@smithy/url-parser": "^4.2.7", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/credential-provider-node": "3.970.0", + "@aws-sdk/middleware-host-header": "3.969.0", + "@aws-sdk/middleware-logger": "3.969.0", + "@aws-sdk/middleware-recursion-detection": "3.969.0", + "@aws-sdk/middleware-user-agent": "3.970.0", + "@aws-sdk/region-config-resolver": "3.969.0", + "@aws-sdk/types": "3.969.0", + "@aws-sdk/util-endpoints": "3.970.0", + "@aws-sdk/util-user-agent-browser": "3.969.0", + "@aws-sdk/util-user-agent-node": "3.970.0", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.20.6", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.7", + "@smithy/middleware-retry": "^4.4.23", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.19", - "@smithy/util-defaults-mode-node": "^4.2.22", - "@smithy/util-endpoints": "^3.2.7", - "@smithy/util-middleware": "^4.2.7", - "@smithy/util-retry": "^4.2.7", - "@smithy/util-stream": "^4.5.8", + "@smithy/util-defaults-mode-browser": "^4.3.22", + "@smithy/util-defaults-mode-node": "^4.2.25", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-stream": "^4.5.10", "@smithy/util-utf8": "^4.2.0", - "@smithy/util-waiter": "^4.2.7", + "@smithy/util-waiter": "^4.2.8", "tslib": "^2.6.2" }, "engines": { @@ -333,66 +333,66 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.968.0.tgz", - "integrity": "sha512-YQARjiiucSkaSLS0HNyexOQzYM5pPRWSo+FNtq5JSuXwJQb8vs53JeZfk7yKb59G94Oh0BLAv1598XaEdtAFyA==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.970.0.tgz", + "integrity": "sha512-mDC792KkFzLZG9PS1Fv9b18lEzmSNBjAdweLJ83D2CZu6ved9+Pr/Dr+FRs0kSxqY+sUUUuIBmvDYHXY8E8EzA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.968.0", - "@aws-sdk/credential-provider-node": "3.968.0", - "@aws-sdk/middleware-bucket-endpoint": "3.968.0", - "@aws-sdk/middleware-expect-continue": "3.968.0", - "@aws-sdk/middleware-flexible-checksums": "3.968.0", - "@aws-sdk/middleware-host-header": "3.968.0", - "@aws-sdk/middleware-location-constraint": "3.968.0", - "@aws-sdk/middleware-logger": "3.968.0", - "@aws-sdk/middleware-recursion-detection": "3.968.0", - "@aws-sdk/middleware-sdk-s3": "3.968.0", - "@aws-sdk/middleware-ssec": "3.968.0", - "@aws-sdk/middleware-user-agent": "3.968.0", - "@aws-sdk/region-config-resolver": "3.968.0", - "@aws-sdk/signature-v4-multi-region": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@aws-sdk/util-endpoints": "3.968.0", - "@aws-sdk/util-user-agent-browser": "3.968.0", - "@aws-sdk/util-user-agent-node": "3.968.0", - "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.3", - "@smithy/eventstream-serde-browser": "^4.2.7", - "@smithy/eventstream-serde-config-resolver": "^4.3.7", - "@smithy/eventstream-serde-node": "^4.2.7", - "@smithy/fetch-http-handler": "^5.3.8", - "@smithy/hash-blob-browser": "^4.2.8", - "@smithy/hash-node": "^4.2.7", - "@smithy/hash-stream-node": "^4.2.7", - "@smithy/invalid-dependency": "^4.2.7", - "@smithy/md5-js": "^4.2.7", - "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.4", - "@smithy/middleware-retry": "^4.4.20", - "@smithy/middleware-serde": "^4.2.8", - "@smithy/middleware-stack": "^4.2.7", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/node-http-handler": "^4.4.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", - "@smithy/url-parser": "^4.2.7", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/credential-provider-node": "3.970.0", + "@aws-sdk/middleware-bucket-endpoint": "3.969.0", + "@aws-sdk/middleware-expect-continue": "3.969.0", + "@aws-sdk/middleware-flexible-checksums": "3.970.0", + "@aws-sdk/middleware-host-header": "3.969.0", + "@aws-sdk/middleware-location-constraint": "3.969.0", + "@aws-sdk/middleware-logger": "3.969.0", + "@aws-sdk/middleware-recursion-detection": "3.969.0", + "@aws-sdk/middleware-sdk-s3": "3.970.0", + "@aws-sdk/middleware-ssec": "3.969.0", + "@aws-sdk/middleware-user-agent": "3.970.0", + "@aws-sdk/region-config-resolver": "3.969.0", + "@aws-sdk/signature-v4-multi-region": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@aws-sdk/util-endpoints": "3.970.0", + "@aws-sdk/util-user-agent-browser": "3.969.0", + "@aws-sdk/util-user-agent-node": "3.970.0", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.20.6", + "@smithy/eventstream-serde-browser": "^4.2.8", + "@smithy/eventstream-serde-config-resolver": "^4.3.8", + "@smithy/eventstream-serde-node": "^4.2.8", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-blob-browser": "^4.2.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/hash-stream-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/md5-js": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.7", + "@smithy/middleware-retry": "^4.4.23", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.19", - "@smithy/util-defaults-mode-node": "^4.2.22", - "@smithy/util-endpoints": "^3.2.7", - "@smithy/util-middleware": "^4.2.7", - "@smithy/util-retry": "^4.2.7", - "@smithy/util-stream": "^4.5.8", + "@smithy/util-defaults-mode-browser": "^4.3.22", + "@smithy/util-defaults-mode-node": "^4.2.25", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", + "@smithy/util-stream": "^4.5.10", "@smithy/util-utf8": "^4.2.0", - "@smithy/util-waiter": "^4.2.7", + "@smithy/util-waiter": "^4.2.8", "tslib": "^2.6.2" }, "engines": { @@ -400,48 +400,48 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.968.0.tgz", - "integrity": "sha512-y+k23MvMzpn1WpeQ9sdEXg1Bbw7dfi0ZH2uwyBv78F/kz0mZOI+RJ1KJg8DgSD8XvdxB8gX5GQ8rzo0LnDothA==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.970.0.tgz", + "integrity": "sha512-ArmgnOsSCXN5VyIvZb4kSP5hpqlRRHolrMtKQ/0N8Hw4MTb7/IeYHSZzVPNzzkuX6gn5Aj8txoUnDPM8O7pc9g==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.968.0", - "@aws-sdk/middleware-host-header": "3.968.0", - "@aws-sdk/middleware-logger": "3.968.0", - "@aws-sdk/middleware-recursion-detection": "3.968.0", - "@aws-sdk/middleware-user-agent": "3.968.0", - "@aws-sdk/region-config-resolver": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@aws-sdk/util-endpoints": "3.968.0", - "@aws-sdk/util-user-agent-browser": "3.968.0", - "@aws-sdk/util-user-agent-node": "3.968.0", - "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.3", - "@smithy/fetch-http-handler": "^5.3.8", - "@smithy/hash-node": "^4.2.7", - "@smithy/invalid-dependency": "^4.2.7", - "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.4", - "@smithy/middleware-retry": "^4.4.20", - "@smithy/middleware-serde": "^4.2.8", - "@smithy/middleware-stack": "^4.2.7", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/node-http-handler": "^4.4.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", - "@smithy/url-parser": "^4.2.7", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/middleware-host-header": "3.969.0", + "@aws-sdk/middleware-logger": "3.969.0", + "@aws-sdk/middleware-recursion-detection": "3.969.0", + "@aws-sdk/middleware-user-agent": "3.970.0", + "@aws-sdk/region-config-resolver": "3.969.0", + "@aws-sdk/types": "3.969.0", + "@aws-sdk/util-endpoints": "3.970.0", + "@aws-sdk/util-user-agent-browser": "3.969.0", + "@aws-sdk/util-user-agent-node": "3.970.0", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.20.6", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.7", + "@smithy/middleware-retry": "^4.4.23", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.19", - "@smithy/util-defaults-mode-node": "^4.2.22", - "@smithy/util-endpoints": "^3.2.7", - "@smithy/util-middleware": "^4.2.7", - "@smithy/util-retry": "^4.2.7", + "@smithy/util-defaults-mode-browser": "^4.3.22", + "@smithy/util-defaults-mode-node": "^4.2.25", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -450,23 +450,23 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.968.0.tgz", - "integrity": "sha512-u4lIpvGqMMHZN523/RxW70xNoVXHBXucIWZsxFKc373E6TWYEb16ddFhXTELioS5TU93qkd/6yDQZzI6AAhbkw==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.970.0.tgz", + "integrity": "sha512-klpzObldOq8HXzDjDlY6K8rMhYZU6mXRz6P9F9N+tWnjoYFfeBMra8wYApydElTUYQKP1O7RLHwH1OKFfKcqIA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@aws-sdk/xml-builder": "3.968.0", - "@smithy/core": "^3.20.3", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/property-provider": "^4.2.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/signature-v4": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@aws-sdk/xml-builder": "3.969.0", + "@smithy/core": "^3.20.6", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/signature-v4": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", "@smithy/util-base64": "^4.3.0", - "@smithy/util-middleware": "^4.2.7", + "@smithy/util-middleware": "^4.2.8", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -475,13 +475,13 @@ } }, "node_modules/@aws-sdk/crc64-nvme": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.968.0.tgz", - "integrity": "sha512-buylEu7i7I42uzfnQlu0oY35GAWcslU+Vyu9mlNszDKEDwsSyFDy1wg0wQ4vPyKDHlwsIm1srGa/MIaxZk1msg==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/crc64-nvme/-/crc64-nvme-3.969.0.tgz", + "integrity": "sha512-IGNkP54HD3uuLnrPCYsv3ZD478UYq+9WwKrIVJ9Pdi3hxPg8562CH3ZHf8hEgfePN31P9Kj+Zu9kq2Qcjjt61A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.11.0", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -489,16 +489,16 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.968.0.tgz", - "integrity": "sha512-G+zgXEniQxBHFtHo+0yImkYutvJZLvWqvkPUP8/cG+IaYg54OY7L/GPIAZJh0U3m0Uepao98NbL15zjM+uplqQ==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.970.0.tgz", + "integrity": "sha512-rtVzXzEtAfZBfh+lq3DAvRar4c3jyptweOAJR2DweyXx71QSMY+O879hjpMwES7jl07a3O1zlnFIDo4KP/96kQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/property-provider": "^4.2.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/property-provider": "^4.2.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -506,21 +506,21 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.968.0.tgz", - "integrity": "sha512-79teHBx/EtsNRR3Bq8fQdmMHtUcYwvohm9EwXXFt2Jd3BEOBH872IjIlfKdAvdkM+jW1QeeWOZBAxXGPir7GcQ==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.970.0.tgz", + "integrity": "sha512-CjDbWL7JxjLc9ZxQilMusWSw05yRvUJKRpz59IxDpWUnSMHC9JMMUUkOy5Izk8UAtzi6gupRWArp4NG4labt9Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/fetch-http-handler": "^5.3.8", - "@smithy/node-http-handler": "^4.4.7", - "@smithy/property-provider": "^4.2.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", - "@smithy/util-stream": "^4.5.8", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", + "@smithy/util-stream": "^4.5.10", "tslib": "^2.6.2" }, "engines": { @@ -528,25 +528,25 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.968.0.tgz", - "integrity": "sha512-9J9pcweoEN8yG7Qliux1zl9J3DT8X6OLcDN2RVXdTd5xzWBaYlupnUiJzoP6lvXdMnEmlDZaV7IMtoBdG7MY6g==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.970.0.tgz", + "integrity": "sha512-L5R1hN1FY/xCmH65DOYMXl8zqCFiAq0bAq8tJZU32mGjIl1GzGeOkeDa9c461d81o7gsQeYzXyqFD3vXEbJ+kQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/credential-provider-env": "3.968.0", - "@aws-sdk/credential-provider-http": "3.968.0", - "@aws-sdk/credential-provider-login": "3.968.0", - "@aws-sdk/credential-provider-process": "3.968.0", - "@aws-sdk/credential-provider-sso": "3.968.0", - "@aws-sdk/credential-provider-web-identity": "3.968.0", - "@aws-sdk/nested-clients": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/credential-provider-imds": "^4.2.7", - "@smithy/property-provider": "^4.2.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/credential-provider-env": "3.970.0", + "@aws-sdk/credential-provider-http": "3.970.0", + "@aws-sdk/credential-provider-login": "3.970.0", + "@aws-sdk/credential-provider-process": "3.970.0", + "@aws-sdk/credential-provider-sso": "3.970.0", + "@aws-sdk/credential-provider-web-identity": "3.970.0", + "@aws-sdk/nested-clients": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/credential-provider-imds": "^4.2.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -554,19 +554,19 @@ } }, "node_modules/@aws-sdk/credential-provider-login": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.968.0.tgz", - "integrity": "sha512-YxBaR0IMuHPOVTG+73Ve0QfllweN+EdwBRnHFhUGnahMGAcTmcaRdotqwqWfiws+9ud44IFKjxXR3t8jaGpFnQ==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-login/-/credential-provider-login-3.970.0.tgz", + "integrity": "sha512-C+1dcLr+p2E+9hbHyvrQTZ46Kj4vC2RoP6N935GEukHQa637ZjXs8VlyHJ2xTvbvwwLZQNiu56Cx7o/OFOqw1A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/nested-clients": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/property-provider": "^4.2.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/nested-clients": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/property-provider": "^4.2.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -574,23 +574,23 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.968.0.tgz", - "integrity": "sha512-wei6v0c9vDEam8pM5eWe9bt+5ixg8nL0q+DFPzI6iwdLUqmJsPoAzWPEyMkgp03iE02SS2fMqPWpmRjz/NVyUw==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.970.0.tgz", + "integrity": "sha512-nMM0eeVuiLtw1taLRQ+H/H5Qp11rva8ILrzAQXSvlbDeVmbc7d8EeW5Q2xnCJu+3U+2JNZ1uxqIL22pB2sLEMA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.968.0", - "@aws-sdk/credential-provider-http": "3.968.0", - "@aws-sdk/credential-provider-ini": "3.968.0", - "@aws-sdk/credential-provider-process": "3.968.0", - "@aws-sdk/credential-provider-sso": "3.968.0", - "@aws-sdk/credential-provider-web-identity": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/credential-provider-imds": "^4.2.7", - "@smithy/property-provider": "^4.2.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/credential-provider-env": "3.970.0", + "@aws-sdk/credential-provider-http": "3.970.0", + "@aws-sdk/credential-provider-ini": "3.970.0", + "@aws-sdk/credential-provider-process": "3.970.0", + "@aws-sdk/credential-provider-sso": "3.970.0", + "@aws-sdk/credential-provider-web-identity": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/credential-provider-imds": "^4.2.8", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -598,17 +598,17 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.968.0.tgz", - "integrity": "sha512-my9M/ijRyEACoyeEWiC2sTVM3+eck5IWPGTPQrlYMKivy4LLlZchohtIopuqTom+JZzLZD508j1s9aDvl7BA0w==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.970.0.tgz", + "integrity": "sha512-0XeT8OaT9iMA62DFV9+m6mZfJhrD0WNKf4IvsIpj2Z7XbaYfz3CoDDvNoALf3rPY9NzyMHgDxOspmqdvXP00mw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/property-provider": "^4.2.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -616,19 +616,19 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.968.0.tgz", - "integrity": "sha512-XPYPcxfWIt5jBbofoP2xhAHlFYos0dzwbHsoE18Cera/XnaCEbsUpdROo30t0Kjdbv0EWMYLMPDi9G+vPRDnhQ==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.970.0.tgz", + "integrity": "sha512-ROb+Aijw8nzkB14Nh2XRH861++SeTZykUzk427y8YtgTLxjAOjgDTchDUFW2Fx6GFWkSjqJ3sY7SZyb33IqyFw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.968.0", - "@aws-sdk/core": "3.968.0", - "@aws-sdk/token-providers": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/property-provider": "^4.2.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/client-sso": "3.970.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/token-providers": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -636,18 +636,18 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.968.0.tgz", - "integrity": "sha512-9HNAP6mx2jsBW4moWnRg5ycyZ0C1EbtMIegIHa93ga13B/8VZF9Y0iDnwW73yQYzCEt9UrDiFeRck/ChZup3rA==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.970.0.tgz", + "integrity": "sha512-r7tnYJJg+B6QvnsRHSW5vDol+ks6n+5jBZdCFdGyK63hjcMRMqHx59zEH8O47UR1PFv5hS2Q3uGz6HXvVtP40Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/nested-clients": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/property-provider": "^4.2.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/nested-clients": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -655,17 +655,17 @@ } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.968.0.tgz", - "integrity": "sha512-KlA6D9wgyGF3KkKIRmmXxvKfzzGkibnnR6Kjp0NQAOi4jvKWuT/HKJX87sBJIrk8RWq+9Aq0SOY9LYqkdx9zJQ==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.969.0.tgz", + "integrity": "sha512-MlbrlixtkTVhYhoasblKOkr7n2yydvUZjjxTnBhIuHmkyBS1619oGnTfq/uLeGYb4NYXdeQ5OYcqsRGvmWSuTw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", + "@aws-sdk/types": "3.969.0", "@aws-sdk/util-arn-parser": "3.968.0", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/types": "^4.11.0", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", "@smithy/util-config-provider": "^4.2.0", "tslib": "^2.6.2" }, @@ -674,15 +674,15 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.968.0.tgz", - "integrity": "sha512-VCcDw21JCJywZH8+vpZCsVB9HV2BQ6BdF+cXww5nKnPNi+d05sHFczRHUQjfsEJiZ8Wb/a4M3mJuVrQ5gjiNUA==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.969.0.tgz", + "integrity": "sha512-qXygzSi8osok7tH9oeuS3HoKw6jRfbvg5Me/X5RlHOvSSqQz8c5O9f3MjUApaCUSwbAU92KrbZWasw2PKiaVHg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/protocol-http": "^5.3.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -690,24 +690,24 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.968.0.tgz", - "integrity": "sha512-5G4hpKS0XbU8s3WuuFP6qpB6kkFB45LQ2VomrS0FoyTXH9XUDYL1OmwraBe3t2N5LnpqOh1+RAJOyO8gRwO7xA==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.970.0.tgz", + "integrity": "sha512-mlKLwX0jWa5EwIvMjJAvVFL/zLAxB/fNLOg4hQCNCUf1qi+XxD+brDopXNPWeA8bSCnpvWfZrQd5yNksG6Fzqg==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.968.0", - "@aws-sdk/crc64-nvme": "3.968.0", - "@aws-sdk/types": "3.968.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/crc64-nvme": "3.969.0", + "@aws-sdk/types": "3.969.0", "@smithy/is-array-buffer": "^4.2.0", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/types": "^4.11.0", - "@smithy/util-middleware": "^4.2.7", - "@smithy/util-stream": "^4.5.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-stream": "^4.5.10", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -716,15 +716,15 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.968.0.tgz", - "integrity": "sha512-ujlNT215VtE/2D2jEhFVcTuPPB36HJyLBM0ytnni/WPIjzq89iJrKR1tEhxpk8uct6A5NSQ6w9Y7g2Rw1rkSoQ==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.969.0.tgz", + "integrity": "sha512-AWa4rVsAfBR4xqm7pybQ8sUNJYnjyP/bJjfAw34qPuh3M9XrfGbAHG0aiAfQGrBnmS28jlO6Kz69o+c6PRw1dw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/protocol-http": "^5.3.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -732,14 +732,14 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.968.0.tgz", - "integrity": "sha512-+usAEX4rPmOofmLhZHgnRvW3idDnXdYnhaiOjfj2ynU05elTUkF2b4fyq+KhdjZQVbUpCewq4eKqgjGaGhIyyw==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.969.0.tgz", + "integrity": "sha512-zH7pDfMLG/C4GWMOpvJEoYcSpj7XsNP9+irlgqwi667sUQ6doHQJ3yyDut3yiTk0maq1VgmriPFELyI9lrvH/g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -747,14 +747,14 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.968.0.tgz", - "integrity": "sha512-zvhhEPZgvaRDxzf27m2WmgaXoN7upFt/gvG7ofBN5zCBlkh3JtFamMh5KWYVQwMhc4eQBK3NjH0oIUKZSVztag==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.969.0.tgz", + "integrity": "sha512-xwrxfip7Y2iTtCMJ+iifN1E1XMOuhxIHY9DreMCvgdl4r7+48x2S1bCYPWH3eNY85/7CapBWdJ8cerpEl12sQQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -762,16 +762,16 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.968.0.tgz", - "integrity": "sha512-KygPiwpSAPGobgodK/oLb7OLiwK29pNJeNtP+GZ9pxpceDRqhN0Ub8Eo84dBbWq+jbzAqBYHzy+B1VsbQ/hLWA==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.969.0.tgz", + "integrity": "sha512-2r3PuNquU3CcS1Am4vn/KHFwLi8QFjMdA/R+CRDXT4AFO/0qxevF/YStW3gAKntQIgWgQV8ZdEtKAoJvLI4UWg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", + "@aws-sdk/types": "3.969.0", "@aws/lambda-invoke-store": "^0.2.2", - "@smithy/protocol-http": "^5.3.7", - "@smithy/types": "^4.11.0", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -779,24 +779,24 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.968.0.tgz", - "integrity": "sha512-fh2mQ/uwJ1Sth1q2dWAbeyky/SBPaqe1fjxvsNeEY6dtfi8PjW85zHpz1JoAhCKTRkrEdXYAqkqUwsUydLucyQ==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.970.0.tgz", + "integrity": "sha512-v/Y5F1lbFFY7vMeG5yYxuhnn0CAshz6KMxkz1pDyPxejNE9HtA0w8R6OTBh/bVdIm44QpjhbI7qeLdOE/PLzXQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/types": "3.968.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/types": "3.969.0", "@aws-sdk/util-arn-parser": "3.968.0", - "@smithy/core": "^3.20.3", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/signature-v4": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", + "@smithy/core": "^3.20.6", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/signature-v4": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", "@smithy/util-config-provider": "^4.2.0", - "@smithy/util-middleware": "^4.2.7", - "@smithy/util-stream": "^4.5.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-stream": "^4.5.10", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -805,14 +805,14 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.968.0.tgz", - "integrity": "sha512-gbrhJ/JrKJ48SDPtlt5jPOadiPl2Rae0VLuNRyNg0ng7ygRO/0NjgKME4D1XINDjMOiZsOLNAcXmmwGFsVZsyw==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.969.0.tgz", + "integrity": "sha512-9wUYtd5ye4exygKHyl02lPVHUoAFlxxXoqvlw7u2sycfkK6uHLlwdsPru3MkMwj47ZSZs+lkyP/sVKXVMhuaAg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -820,18 +820,18 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.968.0.tgz", - "integrity": "sha512-4h5/B8FyxMjLxtXd5jbM2R69aO57qQiHoAJQTtkpuxmM7vhvjSxEQtMM9L1kuMXoMVNE7xM4886h0+gbmmxplg==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.970.0.tgz", + "integrity": "sha512-dnSJGGUGSFGEX2NzvjwSefH+hmZQ347AwbLhAsi0cdnISSge+pcGfOFrJt2XfBIypwFe27chQhlfuf/gWdzpZg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@aws-sdk/util-endpoints": "3.968.0", - "@smithy/core": "^3.20.3", - "@smithy/protocol-http": "^5.3.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@aws-sdk/util-endpoints": "3.970.0", + "@smithy/core": "^3.20.6", + "@smithy/protocol-http": "^5.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -839,48 +839,48 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.968.0.tgz", - "integrity": "sha512-LLppm+8MzD3afD2IA/tYDp5AoVPOybK7MHQz5DVB4HsZ+fHvwYlvau2ZUK8nKwJSk5c1kWcxCZkyuJQjFu37ng==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.970.0.tgz", + "integrity": "sha512-RIl8s4DCa31MXtRFw23iU90OqEoWuwQxiZOZshzsPtjyrunhHFjyZJEqb+vuQcYd1o22SMaYa3lPJRp64OH35Q==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.968.0", - "@aws-sdk/middleware-host-header": "3.968.0", - "@aws-sdk/middleware-logger": "3.968.0", - "@aws-sdk/middleware-recursion-detection": "3.968.0", - "@aws-sdk/middleware-user-agent": "3.968.0", - "@aws-sdk/region-config-resolver": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@aws-sdk/util-endpoints": "3.968.0", - "@aws-sdk/util-user-agent-browser": "3.968.0", - "@aws-sdk/util-user-agent-node": "3.968.0", - "@smithy/config-resolver": "^4.4.5", - "@smithy/core": "^3.20.3", - "@smithy/fetch-http-handler": "^5.3.8", - "@smithy/hash-node": "^4.2.7", - "@smithy/invalid-dependency": "^4.2.7", - "@smithy/middleware-content-length": "^4.2.7", - "@smithy/middleware-endpoint": "^4.4.4", - "@smithy/middleware-retry": "^4.4.20", - "@smithy/middleware-serde": "^4.2.8", - "@smithy/middleware-stack": "^4.2.7", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/node-http-handler": "^4.4.7", - "@smithy/protocol-http": "^5.3.7", - "@smithy/smithy-client": "^4.10.5", - "@smithy/types": "^4.11.0", - "@smithy/url-parser": "^4.2.7", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/middleware-host-header": "3.969.0", + "@aws-sdk/middleware-logger": "3.969.0", + "@aws-sdk/middleware-recursion-detection": "3.969.0", + "@aws-sdk/middleware-user-agent": "3.970.0", + "@aws-sdk/region-config-resolver": "3.969.0", + "@aws-sdk/types": "3.969.0", + "@aws-sdk/util-endpoints": "3.970.0", + "@aws-sdk/util-user-agent-browser": "3.969.0", + "@aws-sdk/util-user-agent-node": "3.970.0", + "@smithy/config-resolver": "^4.4.6", + "@smithy/core": "^3.20.6", + "@smithy/fetch-http-handler": "^5.3.9", + "@smithy/hash-node": "^4.2.8", + "@smithy/invalid-dependency": "^4.2.8", + "@smithy/middleware-content-length": "^4.2.8", + "@smithy/middleware-endpoint": "^4.4.7", + "@smithy/middleware-retry": "^4.4.23", + "@smithy/middleware-serde": "^4.2.9", + "@smithy/middleware-stack": "^4.2.8", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/node-http-handler": "^4.4.8", + "@smithy/protocol-http": "^5.3.8", + "@smithy/smithy-client": "^4.10.8", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", "@smithy/util-base64": "^4.3.0", "@smithy/util-body-length-browser": "^4.2.0", "@smithy/util-body-length-node": "^4.2.1", - "@smithy/util-defaults-mode-browser": "^4.3.19", - "@smithy/util-defaults-mode-node": "^4.2.22", - "@smithy/util-endpoints": "^3.2.7", - "@smithy/util-middleware": "^4.2.7", - "@smithy/util-retry": "^4.2.7", + "@smithy/util-defaults-mode-browser": "^4.3.22", + "@smithy/util-defaults-mode-node": "^4.2.25", + "@smithy/util-endpoints": "^3.2.8", + "@smithy/util-middleware": "^4.2.8", + "@smithy/util-retry": "^4.2.8", "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, @@ -889,16 +889,16 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.968.0.tgz", - "integrity": "sha512-BzrCpxEsAHbi+yDGtgXJ+/5AvLPjfhcT6DlL+Fc4g13J5Z0VwiO95Wem+Q4KK7WDZH7/sZ/1WFvfitjLTKZbEw==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.969.0.tgz", + "integrity": "sha512-scj9OXqKpcjJ4jsFLtqYWz3IaNvNOQTFFvEY8XMJXTv+3qF5I7/x9SJtKzTRJEBF3spjzBUYPtGFbs9sj4fisQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/config-resolver": "^4.4.5", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/config-resolver": "^4.4.6", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -906,17 +906,17 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.968.0.tgz", - "integrity": "sha512-kRBA1KK3LTHnfYJLPsESNF2WhQN6DyGc9MiM6qG8AdJwMPQkanF5hwtckV1ToO2KB5v1q+1PuvBvy6Npd2IV+w==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.970.0.tgz", + "integrity": "sha512-z3syXfuK/x/IsKf/AeYmgc2NT7fcJ+3fHaGO+fkghkV9WEba3fPyOwtTBX4KpFMNb2t50zDGZwbzW1/5ighcUQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/protocol-http": "^5.3.7", - "@smithy/signature-v4": "^5.3.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/middleware-sdk-s3": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/protocol-http": "^5.3.8", + "@smithy/signature-v4": "^5.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -924,18 +924,18 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.968.0.tgz", - "integrity": "sha512-lXUZqB2qTFmZYNXPnVT0suSHGiuQAPrL2DhmhbjqOdR7+GKDHL5KbeKFvPisy7Y4neliJqT4Q1VPWa0nqYaiZg==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.970.0.tgz", + "integrity": "sha512-YO8KgJecxHIFMhfoP880q51VXFL9V1ELywK5yzVEqzyrwqoG93IUmnTygBUylQrfkbH+QqS0FxEdgwpP3fcwoQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.968.0", - "@aws-sdk/nested-clients": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/property-provider": "^4.2.7", - "@smithy/shared-ini-file-loader": "^4.4.2", - "@smithy/types": "^4.11.0", + "@aws-sdk/core": "3.970.0", + "@aws-sdk/nested-clients": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/property-provider": "^4.2.8", + "@smithy/shared-ini-file-loader": "^4.4.3", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -943,13 +943,13 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.968.0.tgz", - "integrity": "sha512-Wuumj/1cuiuXTMdHmvH88zbEl+5Pw++fOFQuMCF4yP0R+9k1lwX8rVst+oy99xaxtdluJZXrsccoZoA67ST1Ow==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.969.0.tgz", + "integrity": "sha512-7IIzM5TdiXn+VtgPdVLjmE6uUBUtnga0f4RiSEI1WW10RPuNvZ9U+pL3SwDiRDAdoGrOF9tSLJOFZmfuwYuVYQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.11.0", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -970,16 +970,16 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.968.0.tgz", - "integrity": "sha512-9IdilgylS0crFSeI59vtr8qhDYMYYOvnvkl1dLp59+EmLH1IdXz7+4cR5oh5PkoqD7DRzc5Uzm2GnZhK6I0oVQ==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.970.0.tgz", + "integrity": "sha512-TZNZqFcMUtjvhZoZRtpEGQAdULYiy6rcGiXAbLU7e9LSpIYlRqpLa207oMNfgbzlL2PnHko+eVg8rajDiSOYCg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/types": "^4.11.0", - "@smithy/url-parser": "^4.2.7", - "@smithy/util-endpoints": "^3.2.7", + "@aws-sdk/types": "3.969.0", + "@smithy/types": "^4.12.0", + "@smithy/url-parser": "^4.2.8", + "@smithy/util-endpoints": "^3.2.8", "tslib": "^2.6.2" }, "engines": { @@ -1000,29 +1000,29 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.968.0.tgz", - "integrity": "sha512-nRxjs8Jpq8ZHFsa/0uiww2f4+40D6Dt6bQmepAJHIE/D+atwPINDKsfamCjFnxrjKU3WBWpGYEf/QDO0XZsFMw==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.969.0.tgz", + "integrity": "sha512-bpJGjuKmFr0rA6UKUCmN8D19HQFMLXMx5hKBXqBlPFdalMhxJSjcxzX9DbQh0Fn6bJtxCguFmRGOBdQqNOt49g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.968.0", - "@smithy/types": "^4.11.0", + "@aws-sdk/types": "3.969.0", + "@smithy/types": "^4.12.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.968.0.tgz", - "integrity": "sha512-oaIkPGraGhZgkDmxVhTIlakaUNWKO9aMN+uB6I+eS26MWi/lpMK66HTZeXEnaTrmt5/kl99YC0N37zScz58Tdg==", + "version": "3.970.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.970.0.tgz", + "integrity": "sha512-TNQpwIVD6SxMwkD+QKnaujKVyXy5ljN3O3jrI7nCHJ3GlJu5xJrd8yuBnanYCcrn3e2zwdfOh4d4zJAZvvIvVw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.968.0", - "@aws-sdk/types": "3.968.0", - "@smithy/node-config-provider": "^4.3.7", - "@smithy/types": "^4.11.0", + "@aws-sdk/middleware-user-agent": "3.970.0", + "@aws-sdk/types": "3.969.0", + "@smithy/node-config-provider": "^4.3.8", + "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, "engines": { @@ -1038,13 +1038,13 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.968.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.968.0.tgz", - "integrity": "sha512-bZQKn41ebPh/uW9uWUE5oLuaBr44Gt78dkw2amu5zcwo1J/d8s6FdzZcRDmz0rHE2NHJWYkdQYeVQo7jhMziqA==", + "version": "3.969.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.969.0.tgz", + "integrity": "sha512-BSe4Lx/qdRQQdX8cSSI7Et20vqBspzAjBy8ZmXVoyLkol3y4sXBXzn+BiLtR+oh60ExQn6o2DU4QjdOZbXaKIQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.11.0", + "@smithy/types": "^4.12.0", "fast-xml-parser": "5.2.5", "tslib": "^2.6.2" }, @@ -2952,9 +2952,9 @@ } }, "node_modules/@inquirer/core/node_modules/@types/node": { - "version": "22.19.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.6.tgz", - "integrity": "sha512-qm+G8HuG6hOHQigsi7VGuLjUVu6TtBo/F05zvX04Mw2uCg9Dv0Qxy3Qw7j41SidlTcl5D/5yg0SEZqOB+EqZnQ==", + "version": "22.19.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.7.tgz", + "integrity": "sha512-MciR4AKGHWl7xwxkBa6xUGxQJ4VBOmPTF7sL+iGzuahOFaO0jHCsuEfS80pan1ef4gWId1oWOweIhrDEYLuaOw==", "dev": true, "license": "MIT", "dependencies": { @@ -4152,9 +4152,9 @@ } }, "node_modules/@oclif/plugin-not-found/node_modules/@types/node": { - "version": "25.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz", - "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==", + "version": "25.0.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", + "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", "license": "MIT", "optional": true, "peer": true, @@ -4378,9 +4378,9 @@ "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.3.1.tgz", - "integrity": "sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", + "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", "dev": true, "license": "MIT", "dependencies": { @@ -4986,9 +4986,9 @@ } }, "node_modules/@smithy/core": { - "version": "3.20.5", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.20.5.tgz", - "integrity": "sha512-0Tz77Td8ynHaowXfOdrD0F1IH4tgWGUhwmLwmpFyTbr+U9WHXNNp9u/k2VjBXGnSe7BwjBERRpXsokGTXzNjhA==", + "version": "3.20.6", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.20.6.tgz", + "integrity": "sha512-BpAffW1mIyRZongoKBbh3RgHG+JDHJek/8hjA/9LnPunM+ejorO6axkxCgwxCe4K//g/JdPeR9vROHDYr/hfnQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5221,13 +5221,13 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.6.tgz", - "integrity": "sha512-dpq3bHqbEOBqGBjRVHVFP3eUSPpX0BYtg1D5d5Irgk6orGGAuZfY22rC4sErhg+ZfY/Y0kPqm1XpAmDZg7DeuA==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.4.7.tgz", + "integrity": "sha512-SCmhUG1UwtnEhF5Sxd8qk7bJwkj1BpFzFlHkXqKCEmDPLrRjJyTGM0EhqT7XBtDaDJjCfjRJQodgZcKDR843qg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.20.5", + "@smithy/core": "^3.20.6", "@smithy/middleware-serde": "^4.2.9", "@smithy/node-config-provider": "^4.3.8", "@smithy/shared-ini-file-loader": "^4.4.3", @@ -5241,16 +5241,16 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.4.22", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.22.tgz", - "integrity": "sha512-vwWDMaObSMjw6WCC/3Ae9G7uul5Sk95jr07CDk1gkIMpaDic0phPS1MpVAZ6+YkF7PAzRlpsDjxPwRlh/S11FQ==", + "version": "4.4.23", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.23.tgz", + "integrity": "sha512-lLEmkQj7I7oKfvZ1wsnToGJouLOtfkMXDKRA1Hi6F+mMp5O1N8GcVWmVeNgTtgZtd0OTXDTI2vpVQmeutydGew==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/node-config-provider": "^4.3.8", "@smithy/protocol-http": "^5.3.8", "@smithy/service-error-classification": "^4.2.8", - "@smithy/smithy-client": "^4.10.7", + "@smithy/smithy-client": "^4.10.8", "@smithy/types": "^4.12.0", "@smithy/util-middleware": "^4.2.8", "@smithy/util-retry": "^4.2.8", @@ -5428,14 +5428,14 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.10.7", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.7.tgz", - "integrity": "sha512-Uznt0I9z3os3Z+8pbXrOSCTXCA6vrjyN7Ub+8l2pRDum44vLv8qw0qGVkJN0/tZBZotaEFHrDPKUoPNueTr5Vg==", + "version": "4.10.8", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.10.8.tgz", + "integrity": "sha512-wcr3UEL26k7lLoyf9eVDZoD1nNY3Fa1gbNuOXvfxvVWLGkOVW+RYZgUUp/bXHryJfycIOQnBq9o1JAE00ax8HQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.20.5", - "@smithy/middleware-endpoint": "^4.4.6", + "@smithy/core": "^3.20.6", + "@smithy/middleware-endpoint": "^4.4.7", "@smithy/middleware-stack": "^4.2.8", "@smithy/protocol-http": "^5.3.8", "@smithy/types": "^4.12.0", @@ -5543,14 +5543,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.3.21", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.21.tgz", - "integrity": "sha512-DtmVJarzqtjghtGjCw/PFJolcJkP7GkZgy+hWTAN3YLXNH+IC82uMoMhFoC3ZtIz5mOgCm5+hOGi1wfhVYgrxw==", + "version": "4.3.22", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.22.tgz", + "integrity": "sha512-O2WXr6ZRqPnbyoepb7pKcLt1QL6uRfFzGYJ9sGb5hMJQi7v/4RjRmCQa9mNjA0YiXqsc5lBmLXqJPhjM1Vjv5A==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.10.7", + "@smithy/smithy-client": "^4.10.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -5559,9 +5559,9 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.2.24", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.24.tgz", - "integrity": "sha512-JelBDKPAVswVY666rezBvY6b0nF/v9TXjUbNwDNAyme7qqKYEX687wJv0uze8lBIZVbg30wlWnlYfVSjjpKYFA==", + "version": "4.2.25", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.25.tgz", + "integrity": "sha512-7uMhppVNRbgNIpyUBVRfjGHxygP85wpXalRvn9DvUlCx4qgy1AB/uxOPSiDx/jFyrwD3/BypQhx1JK7f3yxrAw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5569,7 +5569,7 @@ "@smithy/credential-provider-imds": "^4.2.8", "@smithy/node-config-provider": "^4.3.8", "@smithy/property-provider": "^4.2.8", - "@smithy/smithy-client": "^4.10.7", + "@smithy/smithy-client": "^4.10.8", "@smithy/types": "^4.12.0", "tslib": "^2.6.2" }, @@ -14294,9 +14294,9 @@ } }, "node_modules/inquirer/node_modules/@types/node": { - "version": "25.0.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.8.tgz", - "integrity": "sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==", + "version": "25.0.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.9.tgz", + "integrity": "sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==", "license": "MIT", "optional": true, "peer": true, @@ -22644,13 +22644,13 @@ } }, "node_modules/registry-auth-token": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.0.tgz", - "integrity": "sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", "dev": true, "license": "MIT", "dependencies": { - "@pnpm/npm-conf": "^2.1.0" + "@pnpm/npm-conf": "^3.0.2" }, "engines": { "node": ">=14" @@ -26305,9 +26305,9 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "version": "1.1.20", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", + "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -26708,7 +26708,7 @@ }, "packages/contentstack": { "name": "@contentstack/cli", - "version": "1.54.0", + "version": "1.55.0", "license": "MIT", "dependencies": { "@contentstack/cli-audit": "~1.17.0", @@ -26717,7 +26717,7 @@ "@contentstack/cli-cm-branches": "~1.6.2", "@contentstack/cli-cm-bulk-publish": "~1.10.5", "@contentstack/cli-cm-clone": "~1.19.0", - "@contentstack/cli-cm-export": "~1.22.2", + "@contentstack/cli-cm-export": "~1.23.0", "@contentstack/cli-cm-export-to-csv": "~1.10.2", "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-cm-import-setup": "~1.7.2", @@ -26829,9 +26829,9 @@ "license": "MIT" }, "packages/contentstack-audit/node_modules/@types/node": { - "version": "20.19.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.29.tgz", - "integrity": "sha512-YrT9ArrGaHForBaCNwFjoqJWmn8G1Pr7+BH/vwyLHciA9qT/wSiuOhxGCT50JA5xLvFBd6PIiGkE3afxcPE1nw==", + "version": "20.19.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.30.tgz", + "integrity": "sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==", "dev": true, "license": "MIT", "dependencies": { @@ -27142,7 +27142,7 @@ "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", - "@contentstack/cli-cm-export": "~1.22.2", + "@contentstack/cli-cm-export": "~1.23.0", "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", @@ -27629,7 +27629,7 @@ }, "packages/contentstack-export": { "name": "@contentstack/cli-cm-export", - "version": "1.22.2", + "version": "1.23.0", "license": "MIT", "dependencies": { "@contentstack/cli-command": "~1.7.1", @@ -28423,9 +28423,9 @@ } }, "packages/contentstack-variants/node_modules/@types/node": { - "version": "20.19.29", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.29.tgz", - "integrity": "sha512-YrT9ArrGaHForBaCNwFjoqJWmn8G1Pr7+BH/vwyLHciA9qT/wSiuOhxGCT50JA5xLvFBd6PIiGkE3afxcPE1nw==", + "version": "20.19.30", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.30.tgz", + "integrity": "sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==", "dev": true, "license": "MIT", "dependencies": { diff --git a/packages/contentstack-clone/package.json b/packages/contentstack-clone/package.json index bc3443d320..69d6183923 100644 --- a/packages/contentstack-clone/package.json +++ b/packages/contentstack-clone/package.json @@ -6,7 +6,7 @@ "bugs": "https://github.com/rohitmishra209/cli-cm-clone/issues", "dependencies": { "@colors/colors": "^1.6.0", - "@contentstack/cli-cm-export": "~1.22.2", + "@contentstack/cli-cm-export": "~1.23.0", "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-command": "~1.7.1", "@contentstack/cli-utilities": "~1.16.0", diff --git a/packages/contentstack-export/package.json b/packages/contentstack-export/package.json index 0b146b49b3..2865b03069 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.22.2", + "version": "1.23.0", "author": "Contentstack", "bugs": "https://github.com/contentstack/cli/issues", "dependencies": { diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 0c121de04a..58cdcaacb6 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli", "description": "Command-line tool (CLI) to interact with Contentstack", - "version": "1.54.0", + "version": "1.55.0", "author": "Contentstack", "bin": { "csdx": "./bin/run.js" @@ -23,7 +23,7 @@ }, "dependencies": { "@contentstack/cli-audit": "~1.17.0", - "@contentstack/cli-cm-export": "~1.22.2", + "@contentstack/cli-cm-export": "~1.23.0", "@contentstack/cli-cm-import": "~1.31.0", "@contentstack/cli-auth": "~1.6.3", "@contentstack/cli-cm-bootstrap": "~1.18.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2861b0bbe5..b8c38b0759 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,7 @@ importers: '@contentstack/cli-cm-branches': ~1.6.2 '@contentstack/cli-cm-bulk-publish': ~1.10.5 '@contentstack/cli-cm-clone': ~1.19.0 - '@contentstack/cli-cm-export': ~1.22.2 + '@contentstack/cli-cm-export': ~1.23.0 '@contentstack/cli-cm-export-to-csv': ~1.10.2 '@contentstack/cli-cm-import': ~1.31.0 '@contentstack/cli-cm-import-setup': ~1.7.2 @@ -86,7 +86,7 @@ importers: '@contentstack/cli-config': link:../contentstack-config '@contentstack/cli-launch': 1.9.4_ye7kx5d2fkdihvpgkysaadv2ca '@contentstack/cli-migration': link:../contentstack-migration - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_lxq42tdpoxpye5tb7w3htdbbdq '@contentstack/cli-variants': link:../contentstack-variants '@contentstack/management': 1.22.0_debug@4.4.3 '@oclif/core': 4.8.0 @@ -161,7 +161,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@20.19.29 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 '@oclif/plugin-plugins': 5.4.54 @@ -217,7 +217,7 @@ importers: typescript: ^4.9.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 otplib: 12.0.1 @@ -269,7 +269,7 @@ importers: dependencies: '@contentstack/cli-cm-seed': link:../contentstack-seed '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 inquirer: 8.2.7_@types+node@14.18.63 @@ -316,7 +316,7 @@ importers: typescript: ^4.9.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 chalk: 4.1.2 @@ -359,7 +359,7 @@ importers: dependencies: '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-config': link:../contentstack-config - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 chalk: 4.1.2 @@ -379,7 +379,7 @@ importers: packages/contentstack-clone: specifiers: '@colors/colors': ^1.6.0 - '@contentstack/cli-cm-export': ~1.22.2 + '@contentstack/cli-cm-export': ~1.23.0 '@contentstack/cli-cm-import': ~1.31.0 '@contentstack/cli-command': ~1.7.1 '@contentstack/cli-utilities': ~1.16.0 @@ -405,7 +405,7 @@ importers: '@contentstack/cli-cm-export': link:../contentstack-export '@contentstack/cli-cm-import': link:../contentstack-import '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 chalk: 4.1.2 @@ -443,7 +443,7 @@ importers: ts-node: ^8.10.2 typescript: ^4.9.5 dependencies: - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 contentstack: 3.26.3 @@ -484,7 +484,7 @@ importers: typescript: ^4.9.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 lodash: 4.17.21 @@ -571,7 +571,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0 '@contentstack/cli-variants': link:../contentstack-variants '@oclif/core': 4.8.0 async: 3.2.6 @@ -631,7 +631,7 @@ importers: oclif: ^4.17.46 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_debug@4.4.3 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 fast-csv: 4.3.6 @@ -692,7 +692,7 @@ importers: dependencies: '@contentstack/cli-audit': link:../contentstack-audit '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_lxq42tdpoxpye5tb7w3htdbbdq '@contentstack/cli-variants': link:../contentstack-variants '@contentstack/management': 1.22.0_debug@4.4.3 '@oclif/core': 4.8.0 @@ -764,7 +764,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 '@oclif/core': 4.8.0 big-json: 3.2.0 chalk: 4.1.2 @@ -820,7 +820,7 @@ importers: sinon: ^19.0.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0 '@contentstack/json-rte-serializer': 2.1.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 @@ -864,7 +864,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 async: 3.2.6 @@ -912,7 +912,7 @@ importers: dependencies: '@contentstack/cli-cm-import': link:../contentstack-import '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 '@contentstack/management': 1.22.0 inquirer: 8.2.7_@types+node@14.18.63 mkdirp: 1.0.4 @@ -1048,7 +1048,7 @@ importers: typescript: ^5.8.3 winston: ^3.17.0 dependencies: - '@contentstack/cli-utilities': link:../contentstack-utilities + '@contentstack/cli-utilities': 1.16.0_@types+node@20.19.29 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 lodash: 4.17.21 @@ -2158,6 +2158,154 @@ packages: - typescript dev: false + /@contentstack/cli-utilities/1.16.0: + resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} + dependencies: + '@contentstack/management': 1.25.1 + '@contentstack/marketplace-sdk': 1.4.1 + '@oclif/core': 4.8.0 + axios: 1.13.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-progress: 3.12.0 + cli-table: 0.3.11 + conf: 10.2.0 + dotenv: 16.6.1 + figures: 3.2.0 + inquirer: 8.2.7 + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + js-yaml: 4.1.1 + klona: 2.0.6 + lodash: 4.17.21 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + papaparse: 5.5.3 + recheck: 4.4.5 + rxjs: 6.6.7 + traverse: 0.6.11 + tty-table: 4.2.3 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.19.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@types/node' + - debug + dev: false + + /@contentstack/cli-utilities/1.16.0_@types+node@14.18.63: + resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} + dependencies: + '@contentstack/management': 1.25.1 + '@contentstack/marketplace-sdk': 1.4.1 + '@oclif/core': 4.8.0 + axios: 1.13.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-progress: 3.12.0 + cli-table: 0.3.11 + conf: 10.2.0 + dotenv: 16.6.1 + figures: 3.2.0 + inquirer: 8.2.7_@types+node@14.18.63 + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + js-yaml: 4.1.1 + klona: 2.0.6 + lodash: 4.17.21 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + papaparse: 5.5.3 + recheck: 4.4.5 + rxjs: 6.6.7 + traverse: 0.6.11 + tty-table: 4.2.3 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.19.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@types/node' + - debug + dev: false + + /@contentstack/cli-utilities/1.16.0_@types+node@20.19.29: + resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} + dependencies: + '@contentstack/management': 1.25.1 + '@contentstack/marketplace-sdk': 1.4.1 + '@oclif/core': 4.8.0 + axios: 1.13.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-progress: 3.12.0 + cli-table: 0.3.11 + conf: 10.2.0 + dotenv: 16.6.1 + figures: 3.2.0 + inquirer: 8.2.7_@types+node@20.19.29 + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + js-yaml: 4.1.1 + klona: 2.0.6 + lodash: 4.17.21 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + papaparse: 5.5.3 + recheck: 4.4.5 + rxjs: 6.6.7 + traverse: 0.6.11 + tty-table: 4.2.3 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.19.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@types/node' + - debug + dev: false + + /@contentstack/cli-utilities/1.16.0_debug@4.4.3: + resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} + dependencies: + '@contentstack/management': 1.25.1_debug@4.4.3 + '@contentstack/marketplace-sdk': 1.4.1_debug@4.4.3 + '@oclif/core': 4.8.0 + axios: 1.13.2_debug@4.4.3 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-progress: 3.12.0 + cli-table: 0.3.11 + conf: 10.2.0 + dotenv: 16.6.1 + figures: 3.2.0 + inquirer: 8.2.7 + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + js-yaml: 4.1.1 + klona: 2.0.6 + lodash: 4.17.21 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + papaparse: 5.5.3 + recheck: 4.4.5 + rxjs: 6.6.7 + traverse: 0.6.11 + tty-table: 4.2.3 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.19.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@types/node' + - debug + dev: false + /@contentstack/cli-utilities/1.16.0_lxq42tdpoxpye5tb7w3htdbbdq: resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} dependencies: @@ -3190,7 +3338,6 @@ packages: '@types/node': 20.19.29 chardet: 2.1.1 iconv-lite: 0.7.2 - dev: true /@inquirer/figures/1.0.15: resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} @@ -10773,6 +10920,29 @@ packages: - '@types/node' dev: false + /inquirer/8.2.7_@types+node@20.19.29: + resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} + engines: {node: '>=12.0.0'} + dependencies: + '@inquirer/external-editor': 1.0.3_@types+node@20.19.29 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.2 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 6.2.0 + transitivePeerDependencies: + - '@types/node' + dev: false + /internal-slot/1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} From 43822055d01b807991678312b44c2b129c2b353a Mon Sep 17 00:00:00 2001 From: "harshitha.d" Date: Fri, 16 Jan 2026 15:32:37 +0530 Subject: [PATCH 16/16] update pnpm lock --- pnpm-lock.yaml | 206 +++++-------------------------------------------- 1 file changed, 18 insertions(+), 188 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8c38b0759..810c76126e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -86,7 +86,7 @@ importers: '@contentstack/cli-config': link:../contentstack-config '@contentstack/cli-launch': 1.9.4_ye7kx5d2fkdihvpgkysaadv2ca '@contentstack/cli-migration': link:../contentstack-migration - '@contentstack/cli-utilities': 1.16.0_lxq42tdpoxpye5tb7w3htdbbdq + '@contentstack/cli-utilities': link:../contentstack-utilities '@contentstack/cli-variants': link:../contentstack-variants '@contentstack/management': 1.22.0_debug@4.4.3 '@oclif/core': 4.8.0 @@ -161,7 +161,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_@types+node@20.19.29 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 '@oclif/plugin-plugins': 5.4.54 @@ -217,7 +217,7 @@ importers: typescript: ^4.9.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 otplib: 12.0.1 @@ -269,7 +269,7 @@ importers: dependencies: '@contentstack/cli-cm-seed': link:../contentstack-seed '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 inquirer: 8.2.7_@types+node@14.18.63 @@ -316,7 +316,7 @@ importers: typescript: ^4.9.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 chalk: 4.1.2 @@ -359,7 +359,7 @@ importers: dependencies: '@contentstack/cli-command': link:../contentstack-command '@contentstack/cli-config': link:../contentstack-config - '@contentstack/cli-utilities': 1.16.0 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 chalk: 4.1.2 @@ -405,7 +405,7 @@ importers: '@contentstack/cli-cm-export': link:../contentstack-export '@contentstack/cli-cm-import': link:../contentstack-import '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 chalk: 4.1.2 @@ -443,7 +443,7 @@ importers: ts-node: ^8.10.2 typescript: ^4.9.5 dependencies: - '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 contentstack: 3.26.3 @@ -484,7 +484,7 @@ importers: typescript: ^4.9.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 lodash: 4.17.21 @@ -571,7 +571,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0 + '@contentstack/cli-utilities': link:../contentstack-utilities '@contentstack/cli-variants': link:../contentstack-variants '@oclif/core': 4.8.0 async: 3.2.6 @@ -631,7 +631,7 @@ importers: oclif: ^4.17.46 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_debug@4.4.3 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 fast-csv: 4.3.6 @@ -692,7 +692,7 @@ importers: dependencies: '@contentstack/cli-audit': link:../contentstack-audit '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_lxq42tdpoxpye5tb7w3htdbbdq + '@contentstack/cli-utilities': link:../contentstack-utilities '@contentstack/cli-variants': link:../contentstack-variants '@contentstack/management': 1.22.0_debug@4.4.3 '@oclif/core': 4.8.0 @@ -764,7 +764,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 big-json: 3.2.0 chalk: 4.1.2 @@ -820,7 +820,7 @@ importers: sinon: ^19.0.5 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0 + '@contentstack/cli-utilities': link:../contentstack-utilities '@contentstack/json-rte-serializer': 2.1.0 '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 @@ -864,7 +864,7 @@ importers: winston: ^3.17.0 dependencies: '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 async: 3.2.6 @@ -912,7 +912,7 @@ importers: dependencies: '@contentstack/cli-cm-import': link:../contentstack-import '@contentstack/cli-command': link:../contentstack-command - '@contentstack/cli-utilities': 1.16.0_@types+node@14.18.63 + '@contentstack/cli-utilities': link:../contentstack-utilities '@contentstack/management': 1.22.0 inquirer: 8.2.7_@types+node@14.18.63 mkdirp: 1.0.4 @@ -1048,7 +1048,7 @@ importers: typescript: ^5.8.3 winston: ^3.17.0 dependencies: - '@contentstack/cli-utilities': 1.16.0_@types+node@20.19.29 + '@contentstack/cli-utilities': link:../contentstack-utilities '@oclif/core': 4.8.0 '@oclif/plugin-help': 6.2.36 lodash: 4.17.21 @@ -2158,154 +2158,6 @@ packages: - typescript dev: false - /@contentstack/cli-utilities/1.16.0: - resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} - dependencies: - '@contentstack/management': 1.25.1 - '@contentstack/marketplace-sdk': 1.4.1 - '@oclif/core': 4.8.0 - axios: 1.13.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-progress: 3.12.0 - cli-table: 0.3.11 - conf: 10.2.0 - dotenv: 16.6.1 - figures: 3.2.0 - inquirer: 8.2.7 - inquirer-search-checkbox: 1.0.0 - inquirer-search-list: 1.2.6 - js-yaml: 4.1.1 - klona: 2.0.6 - lodash: 4.17.21 - mkdirp: 1.0.4 - open: 8.4.2 - ora: 5.4.1 - papaparse: 5.5.3 - recheck: 4.4.5 - rxjs: 6.6.7 - traverse: 0.6.11 - tty-table: 4.2.3 - unique-string: 2.0.0 - uuid: 9.0.1 - winston: 3.19.0 - xdg-basedir: 4.0.0 - transitivePeerDependencies: - - '@types/node' - - debug - dev: false - - /@contentstack/cli-utilities/1.16.0_@types+node@14.18.63: - resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} - dependencies: - '@contentstack/management': 1.25.1 - '@contentstack/marketplace-sdk': 1.4.1 - '@oclif/core': 4.8.0 - axios: 1.13.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-progress: 3.12.0 - cli-table: 0.3.11 - conf: 10.2.0 - dotenv: 16.6.1 - figures: 3.2.0 - inquirer: 8.2.7_@types+node@14.18.63 - inquirer-search-checkbox: 1.0.0 - inquirer-search-list: 1.2.6 - js-yaml: 4.1.1 - klona: 2.0.6 - lodash: 4.17.21 - mkdirp: 1.0.4 - open: 8.4.2 - ora: 5.4.1 - papaparse: 5.5.3 - recheck: 4.4.5 - rxjs: 6.6.7 - traverse: 0.6.11 - tty-table: 4.2.3 - unique-string: 2.0.0 - uuid: 9.0.1 - winston: 3.19.0 - xdg-basedir: 4.0.0 - transitivePeerDependencies: - - '@types/node' - - debug - dev: false - - /@contentstack/cli-utilities/1.16.0_@types+node@20.19.29: - resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} - dependencies: - '@contentstack/management': 1.25.1 - '@contentstack/marketplace-sdk': 1.4.1 - '@oclif/core': 4.8.0 - axios: 1.13.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-progress: 3.12.0 - cli-table: 0.3.11 - conf: 10.2.0 - dotenv: 16.6.1 - figures: 3.2.0 - inquirer: 8.2.7_@types+node@20.19.29 - inquirer-search-checkbox: 1.0.0 - inquirer-search-list: 1.2.6 - js-yaml: 4.1.1 - klona: 2.0.6 - lodash: 4.17.21 - mkdirp: 1.0.4 - open: 8.4.2 - ora: 5.4.1 - papaparse: 5.5.3 - recheck: 4.4.5 - rxjs: 6.6.7 - traverse: 0.6.11 - tty-table: 4.2.3 - unique-string: 2.0.0 - uuid: 9.0.1 - winston: 3.19.0 - xdg-basedir: 4.0.0 - transitivePeerDependencies: - - '@types/node' - - debug - dev: false - - /@contentstack/cli-utilities/1.16.0_debug@4.4.3: - resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} - dependencies: - '@contentstack/management': 1.25.1_debug@4.4.3 - '@contentstack/marketplace-sdk': 1.4.1_debug@4.4.3 - '@oclif/core': 4.8.0 - axios: 1.13.2_debug@4.4.3 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-progress: 3.12.0 - cli-table: 0.3.11 - conf: 10.2.0 - dotenv: 16.6.1 - figures: 3.2.0 - inquirer: 8.2.7 - inquirer-search-checkbox: 1.0.0 - inquirer-search-list: 1.2.6 - js-yaml: 4.1.1 - klona: 2.0.6 - lodash: 4.17.21 - mkdirp: 1.0.4 - open: 8.4.2 - ora: 5.4.1 - papaparse: 5.5.3 - recheck: 4.4.5 - rxjs: 6.6.7 - traverse: 0.6.11 - tty-table: 4.2.3 - unique-string: 2.0.0 - uuid: 9.0.1 - winston: 3.19.0 - xdg-basedir: 4.0.0 - transitivePeerDependencies: - - '@types/node' - - debug - dev: false - /@contentstack/cli-utilities/1.16.0_lxq42tdpoxpye5tb7w3htdbbdq: resolution: {integrity: sha512-2SlKE9bJH3bd+ESNq1c9FWRCYzIjuWxRtXp+83eX7qDzHA7Lgu2EsRjfq+TcYVtBdCd0BzVATRIU2t/vNUl5Zw==} dependencies: @@ -3338,6 +3190,7 @@ packages: '@types/node': 20.19.29 chardet: 2.1.1 iconv-lite: 0.7.2 + dev: true /@inquirer/figures/1.0.15: resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==} @@ -10920,29 +10773,6 @@ packages: - '@types/node' dev: false - /inquirer/8.2.7_@types+node@20.19.29: - resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} - engines: {node: '>=12.0.0'} - dependencies: - '@inquirer/external-editor': 1.0.3_@types+node@20.19.29 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.2 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 6.2.0 - transitivePeerDependencies: - - '@types/node' - dev: false - /internal-slot/1.1.0: resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'}