diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 0ef31e8c7c..7f0aeec5d9 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -22,9 +22,6 @@ jobs: node-version: '22.x' cache: 'pnpm' # optional but recommended - # - name: Temporarily disable contentstack package - # run: mv packages/contentstack/package.json packages/contentstack/package.json.disabled || true - - name: Install Dependencies (Excluding Contentstack) run: pnpm install --no-frozen-lockfile @@ -32,17 +29,8 @@ jobs: run: | NODE_ENV=PREPACK_MODE pnpm -r --sort run build - # - name: Restore contentstack package - # run: mv packages/contentstack/package.json.disabled packages/contentstack/package.json || true - - - name: Run tests for Contentstack Command - working-directory: ./packages/contentstack-command - run: npm run test:unit - - - name: Run tests for Contentstack Config - working-directory: ./packages/contentstack-config - run: npm run test:unit + - name: Run lint + run: NODE_ENV=PREPACK_MODE npm run lint - - name: Run tests for Contentstack Auth - working-directory: ./packages/contentstack-auth - run: NODE_ENV=PREPACK_MODE npm run test:unit + - name: Run tests + run: NODE_ENV=PREPACK_MODE npm run test diff --git a/.talismanrc b/.talismanrc index 63c632b1e9..a7a1780527 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,10 +1,12 @@ fileignoreconfig: - - filename: packages/contentstack-bootstrap/src/bootstrap/utils.ts - checksum: 6e6fb00bb11b03141e5ad27eeaa4af9718dc30520c3e73970bc208cc0ba2a7d2 - - filename: .github/workflows/release.yml - checksum: 73807361b1a862dc882846ac75fefca49e3c734db032e9aa80158f2a686bea13 - filename: pnpm-lock.yaml - checksum: 45b77e385a0b13c82ba125dcdc82d27a360132ff6edda801cd8b75943996c310 - - filename: packages/contentstack-auth/src/commands/auth/logout.ts - checksum: 20ff708d5a0ee56eb8786b19df07b49dacaddfa1deafe99c0397716c7865726d + checksum: 06256d662e300370264d1c7ffe1139c1327dce8401d1822e42bebce224f12020 + - filename: packages/contentstack-auth/src/interfaces/index.ts + checksum: ed1e7cd748f199bc5a9236ca727344dd34d9fea96534ee120bfd59476341ba69 + - filename: packages/contentstack-utilities/test/unit/logger.test.ts + checksum: b9308855db67bd3d537f4a2d51ead71762df827a91b09614ae06e4ae2bb482f8 + - filename: packages/contentstack-utilities/src/fs-utility/core.ts + checksum: ca6582e07fc1b5bd0cd508458f85c1a0b6beaa64a9cb72aa762421f61a42fdc4 + - filename: packages/contentstack-utilities/src/fs-utility/helper.ts + checksum: 09d426730e87e084d302d0f842cfc51e9174928d8632e03bc993e3281f63e6d7 version: '1.0' diff --git a/package.json b/package.json index 4ae6360da0..c6bbf43360 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "devDependencies": { "husky": "^9.1.7", - "pnpm": "^10.28.0" + "pnpm": "^10.32.1" }, "engines": { "node": ">=18.0.0" @@ -12,6 +12,7 @@ "scripts": { "clean:packages": "pnpm -r --filter './packages/*' run clean", "build": "pnpm -r --filter './packages/*' run build", + "lint": "pnpm -r --filter './packages/*' run lint", "test": "pnpm -r --filter './packages/*' run test", "prepack": "pnpm -r --filter './packages/*' run prepack", "bootstrap": "pnpm install", diff --git a/packages/contentstack-auth/.nycrc.json b/packages/contentstack-auth/.nycrc.json index ec0b32b29f..aadf645e5b 100644 --- a/packages/contentstack-auth/.nycrc.json +++ b/packages/contentstack-auth/.nycrc.json @@ -1,5 +1,6 @@ { "inlcude": [ "lib/**/*.js" - ] + ], + "concurrency": 1 } \ No newline at end of file diff --git a/packages/contentstack-auth/README.md b/packages/contentstack-auth/README.md index 4cb89f968a..bffc5f7466 100644 --- a/packages/contentstack-auth/README.md +++ b/packages/contentstack-auth/README.md @@ -18,7 +18,7 @@ $ npm install -g @contentstack/cli-auth $ csdx COMMAND running command... $ csdx (--version) -@contentstack/cli-auth/1.8.0-beta.0 darwin-arm64 node-v22.13.1 +@contentstack/cli-auth/1.8.0-beta.0 darwin-arm64 node-v24.13.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-auth/package.json b/packages/contentstack-auth/package.json index 314d009329..28108d5093 100644 --- a/packages/contentstack-auth/package.json +++ b/packages/contentstack-auth/package.json @@ -11,41 +11,38 @@ "postpack": "rm -f oclif.manifest.json", "prepack": "pnpm compile && oclif manifest && oclif readme", "version": "oclif readme && git add README.md", - "test:report": "tsc -p test && nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "pretest": "tsc -p test", - "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "posttest": "npm run lint", "lint": "eslint src/**/*.ts", "format": "eslint src/**/*.ts --fix", - "test:integration": "mocha --forbid-only \"test/integration/*.test.ts\"", - "test:unit": "mocha --forbid-only \"test/unit/**/*.test.ts\"", - "test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\"" + "pretest": "tsc -p test", + "test": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"", + "test:report": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"", + "posttest": "npm run lint" }, "dependencies": { "@contentstack/cli-command": "~1.8.0-beta.0", "@contentstack/cli-utilities": "~1.18.0-beta.0", - "@oclif/core": "^4.3.0", - "@oclif/plugin-help": "^6.2.28", + "@oclif/core": "^4.8.4", + "@oclif/plugin-help": "^6.2.37", "otplib": "^12.0.1" }, "devDependencies": { "@fancy-test/nock": "^0.1.1", "@oclif/plugin-help": "^6.2.28", - "@oclif/test": "^4.1.13", + "@oclif/test": "^4.1.16", "@types/chai": "^4.3.20", "@types/mkdirp": "^1.0.2", "@types/mocha": "^8.2.3", "@types/node": "^14.18.63", "@types/sinon": "^21.0.0", "chai": "^4.5.0", - "dotenv": "^16.4.7", + "dotenv": "^16.6.1", "eslint": "^8.57.1", "eslint-config-oclif": "^5.2.2", "eslint-config-oclif-typescript": "^3.1.14", "mocha": "10.8.2", "nyc": "^15.1.0", - "oclif": "^4.17.46", - "sinon": "^21.0.1", + "oclif": "^4.22.87", + "sinon": "^21.0.2", "ts-node": "^10.9.2", "typescript": "^4.9.5" }, diff --git a/packages/contentstack-auth/src/interfaces/index.ts b/packages/contentstack-auth/src/interfaces/index.ts index cc9336b30a..6269e3bc22 100644 --- a/packages/contentstack-auth/src/interfaces/index.ts +++ b/packages/contentstack-auth/src/interfaces/index.ts @@ -25,6 +25,7 @@ export interface User { } export interface Context { + [key: string]: unknown; command: string; module: string; userId: string | undefined; diff --git a/packages/contentstack-auth/src/utils/auth-handler.ts b/packages/contentstack-auth/src/utils/auth-handler.ts index 5030648354..57dd88709b 100644 --- a/packages/contentstack-auth/src/utils/auth-handler.ts +++ b/packages/contentstack-auth/src/utils/auth-handler.ts @@ -1,4 +1,4 @@ -import { cliux, log, handleAndLogError, messageHandler } from '@contentstack/cli-utilities'; +import { cliux, log, messageHandler } from '@contentstack/cli-utilities'; import { User } from '../interfaces'; import { askOTPChannel, askOTP } from './interactive'; diff --git a/packages/contentstack-auth/src/utils/mfa-handler.ts b/packages/contentstack-auth/src/utils/mfa-handler.ts index fff7fd20f0..21fedb24b0 100644 --- a/packages/contentstack-auth/src/utils/mfa-handler.ts +++ b/packages/contentstack-auth/src/utils/mfa-handler.ts @@ -1,6 +1,5 @@ -import { cliux, configHandler, NodeCrypto, log, handleAndLogError, messageHandler } from '@contentstack/cli-utilities'; +import { cliux, configHandler, NodeCrypto, log } from '@contentstack/cli-utilities'; import { authenticator } from 'otplib'; -import { askOTP } from './interactive'; /** * @class @@ -66,7 +65,7 @@ class MFAHandler { * @returns Promise The MFA code * @throws Error if MFA code generation fails */ - async getMFACode(): Promise { + async getMFACode(): Promise { log.debug('Getting MFA code', { module: 'mfa-handler' }); let secret: string | undefined; let source: string; @@ -87,6 +86,21 @@ class MFAHandler { } } + if (!secret) { + const stored = configHandler.get('mfa') as { secret?: string } | undefined; + if (stored?.secret) { + try { + const decrypted = this.encrypter.decrypt(stored.secret); + if (decrypted && this.isValidBase32(decrypted.toUpperCase())) { + secret = decrypted; + source = 'stored configuration'; + } + } catch { + log.debug('Failed to decrypt stored MFA secret', { module: 'mfa-handler' }); + } + } + } + if (secret) { try { const code = this.generateMFACode(secret); @@ -102,6 +116,16 @@ class MFAHandler { ); } } + return undefined; + } + + /** + * Validates if a string is a valid 6-digit MFA code format + * @param code The code to validate + * @returns true if valid format, false otherwise + */ + isValidMFACode(code: string): boolean { + return /^\d{6}$/.test(code); } } diff --git a/packages/contentstack-auth/test/integration/auth.test.ts b/packages/contentstack-auth/test/integration/auth.test.ts deleted file mode 100644 index 7ad76cc7d0..0000000000 --- a/packages/contentstack-auth/test/integration/auth.test.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { expect } from 'chai'; -import * as sinon from 'sinon'; -import { authHandler, interactive } from '../../src/utils'; -import { - configHandler, - cliux, - messageHandler, - authHandler as oauthHandler, -} from '@contentstack/cli-utilities'; -import * as managementSDK from '@contentstack/cli-utilities'; -import { Helper } from './helper'; - -const config = configHandler; -const credentials = { email: 'test@example.com', password: 'testpassword' }; -const invalidCredentials = { email: 'test@example.com', password: 'invalidpassword' }; -const TFATestToken = '24563992'; - -describe('contentstack-auth plugin test', () => { - let sandbox: sinon.SinonSandbox; - let mockClient: { - login: sinon.SinonStub; - logout: sinon.SinonStub; - getUser: sinon.SinonStub; - }; - - beforeEach(() => { - sinon.restore(); - - sandbox = sinon.createSandbox(); - - // Interactive prompts - sandbox.stub(interactive, 'askUsername').resolves(credentials.email); - sandbox.stub(interactive, 'askPassword').resolves(credentials.password); - sandbox.stub(interactive, 'askOTPChannel').resolves('authenticator_app'); - sandbox.stub(interactive, 'askOTP').resolves(TFATestToken); - - // CLI UI - sandbox.stub(cliux, 'success'); - sandbox.stub(cliux, 'error'); - sandbox.stub(cliux, 'inquire').resolves(credentials.email); - - // Config - sandbox.stub(config, 'set'); - sandbox.stub(config, 'get').returns(credentials.email); - - // Management SDK Client - mockClient = { - login: sandbox.stub().resolves({ user: { email: credentials.email, authtoken: 'test-token' } }), - logout: sandbox.stub().resolves({}), - getUser: sandbox.stub().resolves({ email: credentials.email }) - }; - sandbox.stub(managementSDK, 'managementSDKClient').resolves(mockClient); - authHandler.client = mockClient; - - // OAuth Handler - sandbox.stub(oauthHandler, 'setConfigData').resolves(); - sandbox.stub(oauthHandler, 'host').value('https://api.contentstack.io'); - - // Message Handler - sandbox.stub(messageHandler, 'parse').returns('Successfully logged in!!'); - }); - - afterEach(() => { - sandbox.restore(); - }); - - describe('Check auth:login command with --username, --password flags and wrong credentials', function() { - - it('Login should fail due to wrong credentials (flags)', async () => { - sandbox.stub(authHandler, 'login').rejects(new Error('Invalid credentials')); - - try { - await Helper.run(['auth:login', `--username=${credentials.email}`, `--password=${invalidCredentials.password}`]); - } catch (error) { - expect((error as Error).message).to.include('Invalid credentials'); - } - }); - }); - - describe('Check auth:login command with --username, --password flags', function() { - - it('Login should succeed (flags)', async () => { - sandbox.stub(authHandler, 'login').resolves({ - email: credentials.email, - authtoken: 'test-token' - }); - - await Helper.run(['auth:login', `--username=${credentials.email}`, `--password=${credentials.password}`]); - expect(config.get('email')).to.equal(credentials.email); - }); - }); - - describe('Check auth:login command with 2FA', function() { - - it('Login should succeed with 2FA', async () => { - mockClient.login.resetBehavior(); - mockClient.login.resetHistory(); - - mockClient.login - .onFirstCall().resolves({ error_code: 294 }) - .onSecondCall().resolves({ user: { email: credentials.email, authtoken: 'test-token' } }); - - await authHandler.login(credentials.email, credentials.password); - expect(mockClient.login.callCount).to.equal(2); - }); - - it.skip('Login should fail with invalid 2FA code', async function() { - - // Reset and restore all stubs - sandbox.restore(); - sandbox = sinon.createSandbox(); - - // Setup client stubs - const mockClient = { - login: sandbox.stub(), - axiosInstance: { - post: sandbox.stub().resolves() - } - }; - mockClient.login - .onFirstCall().resolves({ error_code: 294 }) - .onSecondCall().rejects(new Error('Invalid 2FA code')); - - // Setup interactive stubs - sandbox.stub(interactive, 'askOTPChannel').resolves('authenticator_app'); - sandbox.stub(interactive, 'askOTP').resolves('123456'); - sandbox.stub(cliux, 'print').returns(); - sandbox.stub(cliux, 'error').returns(); - - // Set client - authHandler.client = mockClient; - - try { - await authHandler.login(credentials.email, credentials.password); - throw new Error('Should have failed'); - } catch (error) { - expect((error as Error).message).to.include('Invalid 2FA code'); - } finally { - authHandler.client = null; - } - }); - }); - - describe('Check auth:login command with OAuth', function() { - - it('Login should succeed with OAuth', async () => { - Object.defineProperty(authHandler, 'oauth', { - value: sandbox.stub().resolves(), - configurable: true - }); - - await Helper.run(['auth:login', '--oauth']); - }); - }); -}); \ No newline at end of file diff --git a/packages/contentstack-auth/test/integration/config.json b/packages/contentstack-auth/test/integration/config.json deleted file mode 100644 index a83644de5e..0000000000 --- a/packages/contentstack-auth/test/integration/config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "PRINT_LOGS": false, - "encryptionKey": "***REMOVED***" -} \ No newline at end of file diff --git a/packages/contentstack-auth/test/integration/helper.ts b/packages/contentstack-auth/test/integration/helper.ts deleted file mode 100644 index 12e5d23614..0000000000 --- a/packages/contentstack-auth/test/integration/helper.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Command } from '@contentstack/cli-command'; - -export interface MockSTDIN { - /** Queue up data to be read by the stream. Results in data (and possibly end) events being dispatched. */ - send: (data: String | Buffer | string[] | null, encoding?: string) => MockSTDIN - /** Alias for MockSTDIN.send(null). Results in dispatching an end event. */ - end: () => MockSTDIN - /** Restore the target of the mocked stream. If only a single mock stream is created, will restore the original stdin TTY stream. If multiple mock streams are created, it will restore the stream which was active at the time the mock was created. */ - restore: () => MockSTDIN - /** - * Ordinarily, a Readable stream will throw when attempting to push after an EOF. This routine will reset the ended state of a Readable stream, preventing it from throwing post-EOF. This prevents being required to re-create a mock STDIN instance during certain tests where a fresh stdin is required. - * @param removeListeners - When set to true, will remove all event listeners attached to the stream. - */ - reset: (removeListeners?: boolean) => MockSTDIN -} - -// helper function for timing -export const delay = ms => new Promise(resolve => setTimeout(resolve, ms)) - -// # Here are the various escape sequences we can capture -// '\x0d': 'return' -// '\x7f': 'backspace' -// '\x1b': 'escape' -// '\x01': 'ctrl+a' -// '\x02': 'ctrl+b' -// '\x03': 'ctrl+c' -// '\x04': 'ctrl+d' -// '\x05': 'ctrl+e' -// '\x06': 'ctrl+f' -// '\x1a': 'ctrl+z' -// '\x1b\x4f\x50': 'f1' -// '\x1b\x4f\x51': 'f2' -// '\x1b\x4f\x52': 'f3' -// '\x1b\x4f\x53': 'f4' -// '\x1b\x4f\x31\x35\x7e': 'f5' -// '\x1b\x4f\x31\x37\x7e': 'f6' -// '\x1b\x4f\x31\x38\x7e': 'f7' -// '\x1b\x4f\x31\x39\x7e': 'f8' -// '\x1b\x4f\x31\x30\x7e': 'f9' -// '\x1b\x4f\x31\x31\x7e': 'f10' -// '\x1b\x4f\x31\x33\x7e': 'f11' -// '\x1b\x4f\x31\x34\x7e': 'f12' -// '\x1b\x5b\x41': 'up' -// '\x1b\x5b\x42': 'down' -// '\x1b\x5b\x43': 'right' -// '\x1b\x5b\x44': 'left' -// '\x1b\x4f\x46': 'end' -// '\x1b\x4f\x48': 'home' -// '\x1b\x5b\x32\x7e': 'insert' -// '\x1b\x5b\x33\x7e': 'delete' -// '\x1b\x5b\x35\x7e': 'pageup' -// '\x1b\x5b\x36\x7e': 'pagedown' - -// NOTE Key codes -const keys = { - up: '\x1B\x5B\x41', - down: '\x1B\x5B\x42', - enter: '\x0D', - space: '\x20', -}; - -class Helper extends Command { - async run() { - return this.email - } -} - -export { keys, Helper } \ No newline at end of file diff --git a/packages/contentstack-auth/test/run.test.ts b/packages/contentstack-auth/test/run.test.ts deleted file mode 100644 index 106af41866..0000000000 --- a/packages/contentstack-auth/test/run.test.ts +++ /dev/null @@ -1,75 +0,0 @@ -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 -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'); - -/** - * @method getFileName - * @param {string} file - * @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}`; - else return `${file}.test${testFileExtension}`; -}; - -/** - * @method includeTestFiles - * @param {Array} files - * @param {string} basePath - */ -const includeTestFiles = (files: Array, basePath = 'integration') => { - forEach(files, (file) => { - const filename = getFileName(file); - const filePath = join(__dirname, basePath, filename); - try { - if (existsSync(filePath)) { - require(filePath); - } else { - console.error(`File not found - ${filename}`); - } - } catch (err) {} - }); -}; - -/** - * @method run - * @param {Array | undefined | null} executionOrder - * @param {boolean} isIntegrationTest - */ -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}`), - ); - includeTestFiles(allIntegrationTestFiles); - } -}; - -const args = process.argv.slice(2); - -if (includes(args, '--integration-test')) { - run(INTEGRATION_EXECUTION_ORDER); -} else if (includes(args, '--unit-test')) { - // run(UNIT_EXECUTION_ORDER, false); -} diff --git a/packages/contentstack-auth/test/unit/commands/tokens-add.test.ts b/packages/contentstack-auth/test/unit/commands/tokens-add.test.ts index f6c9861005..cb7e9a03b1 100644 --- a/packages/contentstack-auth/test/unit/commands/tokens-add.test.ts +++ b/packages/contentstack-auth/test/unit/commands/tokens-add.test.ts @@ -63,6 +63,8 @@ describe('Tokens Add Command', () => { }); it('Add a valid management token, should be added successfully', async () => { + const cmaHostStub = stub(TokensAddCommand.prototype, 'cmaHost').value('api.contentstack.io'); + nock('https://api.contentstack.io').get('/v3/environments').query({ limit: 1 }).reply(200, { environments: [] }); try { await TokensAddCommand.run([ '--alias', @@ -76,23 +78,44 @@ describe('Tokens Add Command', () => { expect(Boolean(config.get(`${configKeyTokens}.test-management-token`))).to.be.true; } catch (error: any) { expect(Boolean(config.get(`${configKeyTokens}.test-management-token`))).to.be.false; + } finally { + cmaHostStub.restore(); + nock.cleanAll(); } }); it('Replace an existing token, should prompt for confirmation', async function () { - config.set(`${configKeyTokens}.test-management-token`, { token: validmanagementToken }); + // Ensure command sees an existing token regardless of shared config (e.g. when run from root after other packages) + const tokenKey = `${configKeyTokens}.test-management-token`; + config.set(tokenKey, { token: validmanagementToken, apiKey: validAPIKey, type: 'management' }); + const originalGet = config.get.bind(config); + const getStub = sinon.stub(config, 'get').callsFake((key: string) => { + if (key === tokenKey) return { token: validmanagementToken, apiKey: validAPIKey, type: 'management' }; + return originalGet(key); + }); + if ((cliux.inquire as any).restore) (cliux.inquire as any).restore(); const inquireStub = sinon.stub(cliux, 'inquire').resolves(true); - await TokensAddCommand.run([ - '--alias', - 'test-management-token', - '--stack-api-key', - validAPIKey, - '--management', - '--token', - 'invalid', - ]); + const cmaHostStub = stub(TokensAddCommand.prototype, 'cmaHost').value('api.contentstack.io'); + nock('https://api.contentstack.io').get('/v3/environments').query({ limit: 1 }).reply(200, { error_message: 'invalid token' }); + try { + await TokensAddCommand.run([ + '--alias', + 'test-management-token', + '--stack-api-key', + validAPIKey, + '--management', + '--token', + 'invalid', + ]); + } catch { + // Command throws after confirmation when validation fails; we only assert that confirmation was prompted + } finally { + getStub.restore(); + } expect(inquireStub.calledOnce).to.be.true; inquireStub.restore(); + cmaHostStub.restore(); + nock.cleanAll(); }); it('Add a invalid management token, should fail to add', async function () { diff --git a/packages/contentstack-auth/test/unit/commands/tokens-remove.test.ts b/packages/contentstack-auth/test/unit/commands/tokens-remove.test.ts index ab908b9bc6..488e2efb5f 100644 --- a/packages/contentstack-auth/test/unit/commands/tokens-remove.test.ts +++ b/packages/contentstack-auth/test/unit/commands/tokens-remove.test.ts @@ -25,8 +25,14 @@ describe('Tokens Remove Command', () => { }); it('Remove the token with alias, should remove the token', async function () { - await TokensRemoveCommand.run(['-a', token1Alias]); - expect(Boolean(config.get(`${configKeyTokens}.${token1Alias}`))).to.be.false; + // Stub inquire so the command never blocks on an unexpected prompt (e.g. from config state) + const inquireStub = sinon.stub(cliux, 'inquire').resolves([]); + try { + await TokensRemoveCommand.run(['-a', token1Alias]); + expect(Boolean(config.get(`${configKeyTokens}.${token1Alias}`))).to.be.false; + } finally { + inquireStub.restore(); + } }); it('Remove the token with invalid alias, should list the table', async function () { diff --git a/packages/contentstack-auth/test/utils/mfa-handler.test.ts b/packages/contentstack-auth/test/unit/mfa-handler.test.ts similarity index 99% rename from packages/contentstack-auth/test/utils/mfa-handler.test.ts rename to packages/contentstack-auth/test/unit/mfa-handler.test.ts index 38273dcf4f..c0d73559f8 100644 --- a/packages/contentstack-auth/test/utils/mfa-handler.test.ts +++ b/packages/contentstack-auth/test/unit/mfa-handler.test.ts @@ -58,7 +58,7 @@ describe('MFAHandler', () => { it('should prioritize environment variable over stored configuration', async () => { const envSecret = 'JBSWY3DPEHPK3PXQ'; // Different from stored secret process.env.CONTENTSTACK_MFA_SECRET = envSecret; - + const code = await mfaHandler.getMFACode(); expect(code).to.match(/^\d{6}$/); expect(authenticator.verify({ token: code, secret: envSecret })).to.be.true; @@ -76,4 +76,4 @@ describe('MFAHandler', () => { expect(mfaHandler.isValidMFACode('abcdef')).to.be.false; // Non-numeric }); }); -}); \ No newline at end of file +}); diff --git a/packages/contentstack-auth/test/utils/auth-handler.test.ts b/packages/contentstack-auth/test/utils/auth-handler.test.ts deleted file mode 100644 index ec76de9e87..0000000000 --- a/packages/contentstack-auth/test/utils/auth-handler.test.ts +++ /dev/null @@ -1,165 +0,0 @@ -import { expect } from 'chai'; -import * as sinon from 'sinon'; -import { authHandler, interactive } from '../../src/utils'; -import { CLIError, cliux } from '@contentstack/cli-utilities'; -import { User } from '../../src/interfaces'; -// @ts-ignore -import * as config from '../config.json'; - -const user: User = { email: '***REMOVED***', authtoken: 'testtoken' }; -const credentials = { email: '***REMOVED***', password: config.password }; -const invalidCredentials = { email: '***REMOVED***', password: config.invalidPassowrd }; -let TFAEnabled = false; -let TFAChannel = 'authy'; -const TFATestToken = '24563992'; -const InvalidTFATestToken = '24563965'; - -describe('Auth Handler', function () { - this.timeout(10000); // Increase timeout to 10s - let askOTPChannelStub: any; - let askOTPStub: any; - beforeEach(function () { - // Restore any existing stubs - sinon.restore(); - - const loginStub = sinon.stub().callsFake(function (param) { - if (param.password === credentials.password) { - if (TFAEnabled) { - if (TFAEnabled && param.tfa_token) { - if (param.tfa_token !== TFATestToken) { - return Promise.reject(new Error('Invalid 2FA code')); - } - } else { - return Promise.resolve({ error_code: 294 }); - } - } - return Promise.resolve({ user }); - } else { - return Promise.reject(new Error('Invalid credentials')); - } - }); - - const logoutStub = sinon.stub().callsFake(function (authtoken) { - if (authtoken === TFATestToken) { - return Promise.resolve({ user }); - } else { - return Promise.reject(new Error('Invalid auth token')); - } - }); - - let contentStackClient: { login: Function; logout: Function; axiosInstance: any } = { - login: loginStub, - logout: logoutStub, - axiosInstance: { - post: sinon.stub().returns(Promise.resolve()), - }, - }; - authHandler.client = contentStackClient; - - //Interactive stubs - askOTPChannelStub = sinon.stub(interactive, 'askOTPChannel').callsFake(function () { - return Promise.resolve(TFAChannel); - }); - - askOTPStub = sinon.stub(interactive, 'askOTP').callsFake(function () { - return Promise.resolve(TFATestToken); - }); - }); - afterEach(function () { - // Cleanup after each test - authHandler.client = null; - sinon.restore(); - }); - describe('#login', function () { - it('Login with credentials, should be logged in successfully', async function () { - const result = await authHandler.login(credentials.email, credentials.password); - expect(result).to.be.equal(user); - }); - - it.skip('Login with invalid credentials, failed to login', async function () { - sinon.restore(); - sinon.stub(cliux, 'error').returns(); - sinon.stub(cliux, 'print').returns(); - sinon.stub(interactive, 'askOTPChannel').resolves('authenticator_app'); - sinon.stub(interactive, 'askOTP').resolves('123456'); - - const loginStub = sinon.stub().rejects(new Error('Invalid credentials')); - const clientStub = { - login: loginStub, - axiosInstance: { - post: sinon.stub().resolves(), - }, - }; - authHandler.client = clientStub; - - try { - await authHandler.login(invalidCredentials.email, invalidCredentials.password); - expect.fail('Should have thrown an error'); - } catch (error) { - expect(error).to.be.instanceOf(CLIError); - expect(error.message).to.include('Invalid credentials'); - } finally { - authHandler.client = null; - } - }); - - it('Login with 2FA enabled with authfy channel, should be logged in successfully', async function () { - TFAEnabled = true; - const result = await authHandler.login(credentials.email, credentials.password); - expect(result).to.be.equal(user); - TFAEnabled = false; - }); - - it('Login with 2FA enabled invalid otp, failed to login', async function () { - this.timeout(10000); - TFAEnabled = true; - let result; - try { - result = await authHandler.login(credentials.email, credentials.password); - } catch (error) { - result = error; - } - TFAEnabled = false; - }); - - it('Login with 2FA enabled with sms channel, should be logged in successfully', async function () { - TFAEnabled = true; - TFAChannel = 'sms'; - const result = await authHandler.login(credentials.email, credentials.password); - expect(result).to.be.equal(user); - TFAEnabled = false; - }); - }); - - describe('#logout', function () { - it('Logout, logout succesfully', async function () { - const result: { user: object } = (await authHandler.logout(TFATestToken)) as { user: object }; - expect(result.user).to.be.equal(user); - }); - it.skip('Logout with invalid authtoken, failed to logout', async function () { - sinon.restore(); - sinon.stub(cliux, 'error').returns(); - sinon.stub(cliux, 'print').returns(); - - const logoutStub = sinon.stub().rejects(new Error('Invalid auth token')); - const clientStub = { - login: sinon.stub(), - logout: logoutStub, - axiosInstance: { - post: sinon.stub().resolves(), - }, - }; - authHandler.client = clientStub; - - try { - await authHandler.logout(InvalidTFATestToken); - expect.fail('Should have thrown an error'); - } catch (error) { - expect(error).to.be.instanceOf(Error); - expect(error.message).to.equal('Invalid auth token'); - } finally { - authHandler.client = null; - } - }); - }); -}); diff --git a/packages/contentstack-command/.nycrc.json b/packages/contentstack-command/.nycrc.json index ec0b32b29f..aadf645e5b 100644 --- a/packages/contentstack-command/.nycrc.json +++ b/packages/contentstack-command/.nycrc.json @@ -1,5 +1,6 @@ { "inlcude": [ "lib/**/*.js" - ] + ], + "concurrency": 1 } \ No newline at end of file diff --git a/packages/contentstack-command/package.json b/packages/contentstack-command/package.json index c491e46b40..8884e16ffa 100644 --- a/packages/contentstack-command/package.json +++ b/packages/contentstack-command/package.json @@ -10,29 +10,27 @@ "prepack": "pnpm compile", "clean": "rm -rf ./lib ./node_modules tsconfig.tsbuildinfo", "compile": "tsc -b tsconfig.json", - "test:report": "tsc -p test && nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "pretest": "tsc -p test", - "posttest": "npm run lint", "lint": "eslint src/**/*.ts", "format": "eslint src/**/*.ts --fix", - "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\"", - "test:unit": "mocha --timeout 10000 --forbid-only \"test/unit/**/*.test.ts\"" + "pretest": "tsc -p test", + "posttest": "npm run lint", + "test": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"", + "test:report": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"" }, "dependencies": { "@contentstack/cli-utilities": "~1.18.0-beta.0", - "contentstack": "^3.25.3", - "@oclif/core": "^4.3.0", - "@oclif/plugin-help": "^6.2.28" + "@oclif/core": "^4.8.4", + "@oclif/plugin-help": "^6.2.37", + "contentstack": "^3.26.4" }, "devDependencies": { - "@oclif/test": "^4.1.13", + "@oclif/test": "^4.1.16", "@types/mkdirp": "^1.0.2", "@types/mocha": "^8.2.3", "@types/node": "^14.18.63", "eslint": "^8.57.1", - "eslint-config-oclif": "^6.0.15", - "eslint-config-oclif-typescript": "^3.1.13", + "eslint-config-oclif": "^6.0.148", + "eslint-config-oclif-typescript": "^3.1.14", "mocha": "10.8.2", "nyc": "^15.1.0", "ts-node": "^8.10.2", diff --git a/packages/contentstack-config/.nycrc.json b/packages/contentstack-config/.nycrc.json index ec0b32b29f..aadf645e5b 100644 --- a/packages/contentstack-config/.nycrc.json +++ b/packages/contentstack-config/.nycrc.json @@ -1,5 +1,6 @@ { "inlcude": [ "lib/**/*.js" - ] + ], + "concurrency": 1 } \ No newline at end of file diff --git a/packages/contentstack-config/README.md b/packages/contentstack-config/README.md index 2b87d59201..4f4a60d87a 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.20.0-beta.0 darwin-arm64 node-v22.13.1 +@contentstack/cli-config/1.20.0-beta.0 darwin-arm64 node-v24.13.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND diff --git a/packages/contentstack-config/package.json b/packages/contentstack-config/package.json index a85fac3f02..60ce928534 100644 --- a/packages/contentstack-config/package.json +++ b/packages/contentstack-config/package.json @@ -10,38 +10,35 @@ "postpack": "rm -f oclif.manifest.json", "prepack": "pnpm compile && oclif manifest && oclif readme", "version": "oclif readme && git add README.md", - "test:report": "tsc -p test && nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "pretest": "tsc -p test", - "test": "mocha --require ts-node/register 'test/**/*.test.ts'", - "posttest": "npm run lint", "lint": "eslint src/**/*.ts", "format": "eslint src/**/*.ts --fix", - "test:integration": "mocha --forbid-only \"test/run.test.ts\" --integration-test", - "test:unit": "mocha --forbid-only \"test/unit/**/*.test.ts\" --unit-test", - "test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\"" + "pretest": "tsc -p test", + "posttest": "npm run lint", + "test": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"", + "test:report": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"" }, "dependencies": { "@contentstack/cli-command": "~1.8.0-beta.0", "@contentstack/cli-utilities": "~1.18.0-beta.0", - "@contentstack/utils": "~1.7.0", - "@oclif/core": "^4.3.0", - "@oclif/plugin-help": "^6.2.28", + "@contentstack/utils": "~1.7.1", + "@oclif/core": "^4.8.4", + "@oclif/plugin-help": "^6.2.37", "lodash": "^4.17.23" }, "devDependencies": { - "@oclif/test": "^4.1.13", + "@oclif/test": "^4.1.16", "@types/chai": "^4.3.20", "@types/mocha": "^8.2.3", "@types/node": "^14.18.63", "@types/sinon": "^21.0.0", "chai": "^4.5.0", "eslint": "^8.57.1", - "eslint-config-oclif": "^6.0.62", + "eslint-config-oclif": "^6.0.148", "eslint-config-oclif-typescript": "^3.1.14", "mocha": "10.8.2", "nyc": "^15.1.0", - "oclif": "^4.17.46", - "sinon": "^21.0.1", + "oclif": "^4.22.87", + "sinon": "^21.0.2", "ts-node": "^10.9.2", "typescript": "^4.9.5" }, diff --git a/packages/contentstack-config/src/utils/rate-limit-handler.ts b/packages/contentstack-config/src/utils/rate-limit-handler.ts index 866ba1e2a0..59b19b1393 100644 --- a/packages/contentstack-config/src/utils/rate-limit-handler.ts +++ b/packages/contentstack-config/src/utils/rate-limit-handler.ts @@ -23,7 +23,11 @@ export class RateLimitHandler { if (!rateLimit[config.org]) { rateLimit[config.org] = { ...rateLimit.default }; } - const limitNames = Array.isArray(config['limit-name']) ? config['limit-name'] : []; + const limitNames = Array.isArray(config['limit-name']) + ? config['limit-name'] + : Array.isArray(config.limitName) + ? config.limitName + : []; const utilizeValues = Array.isArray(config.utilize) ? config.utilize.map((v) => Number(v)) : []; const unavailableLimits = []; @@ -32,7 +36,7 @@ export class RateLimitHandler { const features = organizations.plan?.features || []; const limitsToUpdate: { [key: string]: Limit } = { ...rateLimit[config.org] }; - const utilizationMap = {}; + const utilizationMap: Record = {}; limitNames.forEach((name, index) => { if (utilizeValues[index] !== undefined) { utilizationMap[name] = utilizeValues[index]; @@ -42,9 +46,13 @@ export class RateLimitHandler { limitNamesConfig.forEach((limitName) => { const feature = features.find((f: { uid: string }) => f.uid === limitName); if (feature) { + const utilize = + utilizationMap[limitName] !== undefined + ? utilizationMap[limitName] + : defaultRalteLimitConfig[limitName]?.utilize; limitsToUpdate[limitName] = { value: feature.limit || rateLimit[config.org][limitName]?.value || rateLimit.default[limitName]?.value, - utilize: utilizationMap[limitName] || defaultRalteLimitConfig[limitName]?.utilize, + utilize: utilize ?? defaultRalteLimitConfig[limitName]?.utilize ?? 50, }; } else { unavailableLimits.push(limitName); diff --git a/packages/contentstack-config/test/config.json b/packages/contentstack-config/test/config.json deleted file mode 100644 index c7dbf55074..0000000000 --- a/packages/contentstack-config/test/config.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "IS_TS": true, - "UNIT_EXECUTION_ORDER": [], - "INTEGRATION_EXECUTION_ORDER": [] -} \ No newline at end of file diff --git a/packages/contentstack-config/test/integration/config.test.ts b/packages/contentstack-config/test/integration/config.test.ts deleted file mode 100644 index 4b1748c082..0000000000 --- a/packages/contentstack-config/test/integration/config.test.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { expect } from 'chai'; -import { spawnSync } from 'child_process'; - -describe('ContentStack-Config Plugin Tests', () => { - it("Should execute 'config:set:region --AZURE-NA'", () => { - const result = spawnSync('csdx', ['config:set:region', 'AZURE-NA'], { encoding: 'utf-8' }); - const output = result.stdout + result.stderr; - expect(output).to.include('Region has been set to AZURE-NA'); - expect(output).to.include('CDA host: https://azure-na-cdn.contentstack.com'); - expect(output).to.include('CMA host: https://azure-na-api.contentstack.com'); - }); - - it("Should execute 'config:get:region' and return the current region", () => { - const result = spawnSync('csdx', ['config:get:region'], { encoding: 'utf-8' }); - const output = result.stdout + result.stderr; - - expect(output).to.include('Currently using'); - expect(output).to.include('CDA host:'); - expect(output).to.include('CMA host:'); - }); - - it("Should execute 'config:set:region AWS-NA' and set AWS-NA region", () => { - const result = spawnSync('csdx', ['config:set:region', 'AWS-NA'], { encoding: 'utf-8' }); - const output = result.stdout + result.stderr; - expect(output).to.include('Region has been set to AWS-NA'); - expect(output).to.include('CDA host: https://cdn.contentstack.io'); - expect(output).to.include('CMA host: https://api.contentstack.io'); - }); -}); diff --git a/packages/contentstack-config/test/integration/utils.ts b/packages/contentstack-config/test/integration/utils.ts deleted file mode 100644 index 093e0f4b33..0000000000 --- a/packages/contentstack-config/test/integration/utils.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Command } from '@contentstack/cli-command'; - -// helper function for timing -export const delay = ms => new Promise(resolve => setTimeout(resolve, ms)) - -export class Helper extends Command { - async run() { - return this.region - } -} \ No newline at end of file diff --git a/packages/contentstack-config/test/run.test.ts b/packages/contentstack-config/test/run.test.ts deleted file mode 100644 index 3d1bb43fd1..0000000000 --- a/packages/contentstack-config/test/run.test.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { join, resolve } from 'path'; -import { existsSync, readdirSync } from 'fs'; -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'; -const config = require("./config.json"); - -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'); - -/** - * @method getFileName - * @param {string} file - * @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}`; - else return `${file}.test${testFileExtension}`; -}; - -/** - * @method includeTestFiles - * @param {Array} files - * @param {string} basePath - */ -const includeTestFiles = (files: Array, basePath = 'integration') => { - forEach(files, (file) => { - const filename = getFileName(file); - const filePath = join(__dirname, basePath, filename); - try { - if (existsSync(filePath)) { - require(filePath); - } else { - console.error(`File not found - ${filename}`); - } - } catch (err) {} - }); -}; - -/** - * @method run - * @param {Array | undefined | null} executionOrder - * @param {boolean} isIntegrationTest - */ -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}`), - ); - includeTestFiles(allIntegrationTestFiles); - } -}; - -const args = process.argv.slice(2); - -if (includes(args, '--integration-test')) { - run(INTEGRATION_EXECUTION_ORDER); -} else if (includes(args, '--unit-test')) { - run(UNIT_EXECUTION_ORDER, false); -} diff --git a/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts b/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts index 13653d3dd9..322a914fca 100644 --- a/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts +++ b/packages/contentstack-config/test/unit/commands/remove-base-branch.test.ts @@ -30,21 +30,23 @@ describe('Delete config', () => { }); it('Should ask for confirmation to remove config if the config exists', async () => { const config = configHandler; - const getConfig = config.get(`baseBranch.${removeConfigMockData.flags.apiKey}`); - - const askConfirmation = stub(interactive, 'askConfirmation'); + config.set(`baseBranch.${removeConfigMockData.flags.apiKey}`, 'test'); + const askConfirmation = stub(interactive, 'askConfirmation').resolves(false); await RemoveBranchConfigCommand.run(['--stack-api-key', removeConfigMockData.flags.apiKey]); - if (getConfig) expect(askConfirmation.calledOnce).to.be.true; + expect(askConfirmation.calledOnce).to.be.true; askConfirmation.restore(); + config.delete(`baseBranch.${removeConfigMockData.flags.apiKey}`); }); it('Should show success message on deletion of config', async () => { const config = configHandler; - const getConfig = config.get(`baseBranch.${removeConfigMockData.flags.apiKey}`); - - const askConfirmation = stub(interactive, 'askConfirmation'); + config.set(`baseBranch.${removeConfigMockData.flags.apiKey}`, 'test'); + const askConfirmation = stub(interactive, 'askConfirmation').resolves(true); const showSuccess = stub(cliux, 'success'); await RemoveBranchConfigCommand.run(['--stack-api-key', removeConfigMockData.flags.apiKey]); - if (getConfig && askConfirmation.calledOnce) expect(showSuccess.calledOnce).to.be.true; + expect(askConfirmation.calledOnce).to.be.true; + expect(showSuccess.called).to.be.true; askConfirmation.restore(); + showSuccess.restore(); + config.delete(`baseBranch.${removeConfigMockData.flags.apiKey}`); }); }); diff --git a/packages/contentstack-dev-dependencies/.nycrc.json b/packages/contentstack-dev-dependencies/.nycrc.json index ec0b32b29f..aadf645e5b 100644 --- a/packages/contentstack-dev-dependencies/.nycrc.json +++ b/packages/contentstack-dev-dependencies/.nycrc.json @@ -1,5 +1,6 @@ { "inlcude": [ "lib/**/*.js" - ] + ], + "concurrency": 1 } \ No newline at end of file diff --git a/packages/contentstack-dev-dependencies/package.json b/packages/contentstack-dev-dependencies/package.json index de50b9b7cb..1eb0fe7b41 100644 --- a/packages/contentstack-dev-dependencies/package.json +++ b/packages/contentstack-dev-dependencies/package.json @@ -10,7 +10,8 @@ "clean": "rm -rf ./lib tsconfig.tsbuildinfo", "compile": "tsc -b tsconfig.json", "lint": "eslint src/**/*.ts", - "format": "eslint src/**/*.ts --fix" + "format": "eslint src/**/*.ts --fix", + "test": "echo 'No tests in this package'" }, "repository": "contentstack/cli", "keywords": [ @@ -22,10 +23,10 @@ "author": "contentstack", "license": "MIT", "dependencies": { - "@oclif/core": "^4.3.0", - "lodash": "^4.17.23", + "@oclif/core": "^4.8.4", + "@oclif/test": "^4.1.16", "fancy-test": "^2.0.42", - "@oclif/test": "^4.1.13" + "lodash": "^4.17.23" }, "devDependencies": { "@types/node": "^14.18.63", diff --git a/packages/contentstack-dev-dependencies/src/csdx-test-suite/command.ts b/packages/contentstack-dev-dependencies/src/csdx-test-suite/command.ts index 980d664d65..979f1dd7a6 100644 --- a/packages/contentstack-dev-dependencies/src/csdx-test-suite/command.ts +++ b/packages/contentstack-dev-dependencies/src/csdx-test-suite/command.ts @@ -3,7 +3,7 @@ import split from 'lodash/split'; import replace from 'lodash/replace'; import { Command,Interfaces, toStandardizedId } from '@oclif/core'; -import { loadConfig } from './load-config'; +import { loadConfig, LoadConfigOptions } from './load-config'; const castArray = (input?: T | T[]): T[] => { if (input === undefined) return []; @@ -13,16 +13,16 @@ const castArray = (input?: T | T[]): T[] => { export function command( commandInstance: Command.Class, args: string[] | string, - opts: loadConfig.Options = {}, + opts: LoadConfigOptions = {}, ): { run(ctx: { config: Interfaces.Config; expectation: string }): Promise; } { return { async run(ctx: { config: Interfaces.Config; expectation: string }) { - if (!ctx.config || opts.reset) ctx.config = await loadConfig(opts).run({} as any); + if (!ctx.config || opts.reset) ctx.config = await loadConfig(opts).run({}); args = castArray(args); - const firstExample: string = '' + first(commandInstance.examples); - const [id] = split(replace(firstExample, '$ csdx ', ''), ' '); + const exampleText = String(first(commandInstance.examples)); + const [id] = split(replace(exampleText, '$ csdx ', ''), ' '); const cmdId = toStandardizedId(id, ctx.config); ctx.expectation = ctx.expectation || `runs ${args.join(' ')}`; await ctx.config.runHook('init', { id: cmdId, argv: args }); diff --git a/packages/contentstack-dev-dependencies/src/csdx-test-suite/exit.ts b/packages/contentstack-dev-dependencies/src/csdx-test-suite/exit.ts index 1f30ce5d27..0127ff96f4 100644 --- a/packages/contentstack-dev-dependencies/src/csdx-test-suite/exit.ts +++ b/packages/contentstack-dev-dependencies/src/csdx-test-suite/exit.ts @@ -7,13 +7,22 @@ import { expect } from 'chai'; * @param {number} code expected code * @default 0 */ -export default (code = 0) => ({ +function expectExit(code = 0) { + return { run() { expect(process.exitCode).to.equal(code); throw new Error(`Expected to exit with code ${code} but it ran without exiting`); }, - catch(ctx: { error: any }) { - if (!ctx.error.oclif || ctx.error.oclif.exit === undefined) throw ctx.error; - expect(ctx.error.oclif.exit).to.equal(code); + catch(ctx: { error: unknown }) { + const err = ctx.error as { + oclif?: { + exit?: number; + }; + }; + if (err.oclif?.exit === undefined) throw ctx.error; + expect(err.oclif.exit).to.equal(code); }, -}); + }; +} + +export default expectExit; diff --git a/packages/contentstack-dev-dependencies/src/csdx-test-suite/hook.ts b/packages/contentstack-dev-dependencies/src/csdx-test-suite/hook.ts index 96308ed32e..2b34444afe 100644 --- a/packages/contentstack-dev-dependencies/src/csdx-test-suite/hook.ts +++ b/packages/contentstack-dev-dependencies/src/csdx-test-suite/hook.ts @@ -1,6 +1,6 @@ import { Interfaces } from '@oclif/core'; -import { loadConfig } from './load-config'; +import { loadConfig, LoadConfigOptions } from './load-config'; // eslint-disable-next-line valid-jsdoc /** @@ -14,13 +14,17 @@ import { loadConfig } from './load-config'; * @param {string} event hook to run * @param {object} hookOpts options to pass to hook. Config object will be passed automatically. */ -export default (event: string, hookOpts: Record = {}, options: loadConfig.Options = {}) => ({ - async run(ctx: { config: Interfaces.Config; expectation: string }) { - if (!event) throw new Error('no hook provided'); - // eslint-disable-next-line require-atomic-updates - if (!ctx.config) ctx.config = await loadConfig(options).run({} as any); - // eslint-disable-next-line require-atomic-updates - ctx.expectation = ctx.expectation || `runs ${event} hook`; - await ctx.config.runHook(event, hookOpts || {}); - }, -}); +function hook(event: string, hookOpts: Record = {}, options: LoadConfigOptions = {}) { + return { + async run(ctx: { config: Interfaces.Config; expectation: string }) { + if (!event) throw new Error('no hook provided'); + // eslint-disable-next-line require-atomic-updates + if (!ctx.config) ctx.config = await loadConfig(options).run({}); + // eslint-disable-next-line require-atomic-updates + ctx.expectation = ctx.expectation || `runs ${event} hook`; + await ctx.config.runHook(event, hookOpts || {}); + }, + }; +} + +export default hook; diff --git a/packages/contentstack-dev-dependencies/src/csdx-test-suite/load-config.ts b/packages/contentstack-dev-dependencies/src/csdx-test-suite/load-config.ts index 50688bdecf..82a37ac1cd 100644 --- a/packages/contentstack-dev-dependencies/src/csdx-test-suite/load-config.ts +++ b/packages/contentstack-dev-dependencies/src/csdx-test-suite/load-config.ts @@ -1,25 +1,28 @@ import { Interfaces, Config } from '@oclif/core'; +export interface LoadConfigOptions { + root?: string; + reset?: boolean; +} + +type LoadConfigFn = ((opts?: LoadConfigOptions) => { + run(ctx: { config?: Interfaces.Config }): Promise; +}) & { + root: string; +}; + /** * loads CLI plugin/multi config - * @param {loadConfig.Options} opts options + * @param {LoadConfigOptions} opts options * @return {Promise} config */ -export function loadConfig(opts: loadConfig.Options = {}): { - run(ctx: { config: Interfaces.Config }): Promise; -} { +export const loadConfig = ((opts: LoadConfigOptions = {}) => { return { - async run(ctx: { config: Interfaces.Config }) { + async run(ctx: { config?: Interfaces.Config }) { ctx.config = await Config.load(opts.root || loadConfig.root); return ctx.config; }, }; -} +}) as LoadConfigFn; -export namespace loadConfig { - export let root: string; - export interface Options { - root?: string; - reset?: boolean; - } -} +loadConfig.root = ''; diff --git a/packages/contentstack-utilities/.nycrc.json b/packages/contentstack-utilities/.nycrc.json index ec0b32b29f..aadf645e5b 100644 --- a/packages/contentstack-utilities/.nycrc.json +++ b/packages/contentstack-utilities/.nycrc.json @@ -1,5 +1,6 @@ { "inlcude": [ "lib/**/*.js" - ] + ], + "concurrency": 1 } \ No newline at end of file diff --git a/packages/contentstack-utilities/package.json b/packages/contentstack-utilities/package.json index c9ff037fc4..88d8c97401 100644 --- a/packages/contentstack-utilities/package.json +++ b/packages/contentstack-utilities/package.json @@ -9,14 +9,12 @@ "build": "pnpm compile", "clean": "rm -rf ./lib ./node_modules tsconfig.tsbuildinfo", "compile": "tsc -b tsconfig.json", - "test:report": "tsc -p test && nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "pretest": "tsc -p test", - "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", - "posttest": "npm run lint", "lint": "eslint src/**/*.ts", "format": "eslint src/**/*.ts --fix", - "test:unit": "mocha --forbid-only \"test/unit/**/*.test.ts\"", - "test:unit:report": "nyc --extension .ts mocha --forbid-only \"test/unit/**/*.test.ts\"" + "pretest": "tsc -p test", + "posttest": "npm run lint", + "test": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"", + "test:report": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"" }, "repository": { "type": "git", @@ -33,10 +31,10 @@ "author": "contentstack", "license": "MIT", "dependencies": { - "@contentstack/management": "~1.27.5", + "@contentstack/management": "~1.27.6", "@contentstack/marketplace-sdk": "^1.5.0", - "@oclif/core": "^4.3.0", - "axios": "^1.13.5", + "@oclif/core": "^4.8.4", + "axios": "^1.13.6", "chalk": "^4.1.2", "cli-cursor": "^3.1.0", "cli-progress": "^3.12.0", @@ -60,12 +58,12 @@ "tty-table": "^4.2.3", "unique-string": "^2.0.0", "uuid": "^9.0.1", - "winston": "^3.17.0", + "winston": "^3.19.0", "xdg-basedir": "^4.0.0" }, "devDependencies": { "@types/chai": "^4.3.20", - "@types/inquirer": "^9.0.8", + "@types/inquirer": "^9.0.9", "@types/mkdirp": "^1.0.2", "@types/mocha": "^10.0.10", "@types/node": "^14.18.63", @@ -73,12 +71,12 @@ "@types/traverse": "^0.6.37", "chai": "^4.5.0", "eslint": "^8.57.1", - "eslint-config-oclif": "^6.0.62", + "eslint-config-oclif": "^6.0.148", "eslint-config-oclif-typescript": "^3.1.14", "fancy-test": "^2.0.42", "mocha": "10.8.2", "nyc": "^15.1.0", - "sinon": "^21.0.1", + "sinon": "^21.0.2", "ts-node": "^10.9.2", "typescript": "^4.9.5" } diff --git a/packages/contentstack-utilities/src/fs-utility/core.ts b/packages/contentstack-utilities/src/fs-utility/core.ts index fbd37ea924..86d71d637a 100644 --- a/packages/contentstack-utilities/src/fs-utility/core.ts +++ b/packages/contentstack-utilities/src/fs-utility/core.ts @@ -33,10 +33,10 @@ export default class FsUtility { private metaPickKeys: Array; private currentFileRelativePath: string; private writableStream: WriteStream | null; - private metaData: Record = {}; + private metaData: Record = {}; private readIndexer: Record = {}; private writeIndexer: Record = {}; - private metaHandler: ((array: any) => any) | undefined; + private metaHandler: ((array: unknown[]) => unknown) | undefined; public pageInfo: PageInfo = { after: 0, @@ -96,12 +96,12 @@ export default class FsUtility { return this.pageInfo; } - get indexFileContent(): Record { - let indexData = {}; + get indexFileContent(): Record { + let indexData: Record = {}; const indexPath = `${this.basePath}/${this.indexFileName}`; if (existsSync(indexPath)) { - indexData = JSON.parse(readFileSync(indexPath, 'utf8')); + indexData = JSON.parse(readFileSync(indexPath, 'utf8')) as Record; } return indexData; @@ -151,9 +151,9 @@ export default class FsUtility { * @param data Object | undefined * @return void */ - writeFile(filePath: string, data: Chunk, mapKeyVal: boolean = false): void { + writeFile(filePath: string, data: Chunk, mapKeyVal = false): void { if (mapKeyVal) { - data = mapKeyAndVal(data as Record[], 'uid', this.omitKeys); // NOTE Map values as Key/value pair object + data = mapKeyAndVal(data as Record[], 'uid', this.omitKeys); // NOTE Map values as Key/value pair object } data = typeof data === 'object' ? JSON.stringify(data) : data || '{}'; @@ -266,11 +266,11 @@ export default class FsUtility { * @returns Chunk */ handleKeyValMapAndMetaData(chunk: Chunk, keyName?: string | string[] | undefined): Chunk { - const fileContent = mapKeyAndVal(chunk as Record[], keyName || 'uid', this.omitKeys); // NOTE Map values as Key/value pair object + const fileContent = mapKeyAndVal(chunk as Record[], keyName || 'uid', this.omitKeys); // NOTE Map values as Key/value pair object // NOTE update metadata if (this.keepMetadata) { - const metadata = getMetaData(chunk as Record[], this.metaPickKeys, this.metaHandler); + const metadata = getMetaData(chunk as Record[], this.metaPickKeys, this.metaHandler); if (metadata && !isEmpty(metadata)) { if (isEmpty(this.metaData[this.currentFileName])) this.metaData[this.currentFileName] = []; @@ -429,12 +429,10 @@ export default class FsUtility { this.pageInfo.before = 1; } - /* eslint-disable unicorn/consistent-destructuring */ if (!isEmpty(this.readIndexer[this.pageInfo.after + 1])) { this.pageInfo.hasNextPage = true; } - /* eslint-disable unicorn/consistent-destructuring */ if (!isEmpty(this.readIndexer[this.pageInfo.after - 1])) { this.pageInfo.hasPreviousPage = true; } @@ -455,7 +453,7 @@ export function getDirectories(source: string): string[] | [] { export async function getFileList(dirName: string, onlyName = true): Promise { if (!existsSync(dirName)) return []; - let files: any = []; + let files: string[] = []; const items = readdirSync(dirName, { withFileTypes: true }); for (const item of items) { diff --git a/packages/contentstack-utilities/src/fs-utility/helper.ts b/packages/contentstack-utilities/src/fs-utility/helper.ts index 30fb1667fc..11567942f6 100644 --- a/packages/contentstack-utilities/src/fs-utility/helper.ts +++ b/packages/contentstack-utilities/src/fs-utility/helper.ts @@ -1,12 +1,12 @@ -import map from "lodash/map"; -import omit from "lodash/omit"; -import pick from "lodash/pick"; -import assign from "lodash/assign"; -import isEmpty from "lodash/isEmpty"; -import forEach from "lodash/forEach"; +import map from 'lodash/map'; +import omit from 'lodash/omit'; +import pick from 'lodash/pick'; +import assign from 'lodash/assign'; +import isEmpty from 'lodash/isEmpty'; +import forEach from 'lodash/forEach'; -function getKeysFromArray(keys: string[], obj: any): string { - let keyName = ""; +function getKeysFromArray(keys: string[], obj: Record): string { + let keyName = ''; forEach(keys, (key: string) => { keyName += keyName ? `_${obj[key]}` : obj[key]; }); @@ -15,7 +15,7 @@ function getKeysFromArray(keys: string[], obj: any): string { } function mapKeyAndVal( - array: Array>, + array: Array>, keyName: string | string[], omitKeys: Array = [] ): Record { @@ -24,20 +24,20 @@ function mapKeyAndVal( ...map(array, (row) => { if (Array.isArray(keyName)) return { [getKeysFromArray(keyName, row)]: omit(row, omitKeys) }; - return { [row[keyName]]: omit(row, omitKeys) }; + return { [String(row[keyName])]: omit(row, omitKeys) }; }) ); } function getMetaData( - array: Array>, + array: Array>, pickKeys: Array, - handler?: (array: Array>) => void + handler?: (array: Array>) => void ): Array> | undefined { if (handler instanceof Function) handler(array); if (isEmpty(array) || isEmpty(pickKeys)) return; - return map(array, (row: any) => pick(row, pickKeys)); + return map(array, (row: Record) => pick(row, pickKeys)); } export { mapKeyAndVal, getMetaData }; diff --git a/packages/contentstack-utilities/src/fs-utility/types.ts b/packages/contentstack-utilities/src/fs-utility/types.ts index 0bc5bc8d42..9f02f9c0a0 100644 --- a/packages/contentstack-utilities/src/fs-utility/types.ts +++ b/packages/contentstack-utilities/src/fs-utility/types.ts @@ -71,7 +71,7 @@ type FsConstructorOptions = { useIndexer?: boolean; - metaHandler?: (array: any) => any; + metaHandler?: (array: unknown[]) => unknown; isArray?: boolean; }; diff --git a/packages/contentstack-utilities/src/http-client/base-client-decorator.ts b/packages/contentstack-utilities/src/http-client/base-client-decorator.ts index b2fdcbf5b4..eaae6e9dfd 100644 --- a/packages/contentstack-utilities/src/http-client/base-client-decorator.ts +++ b/packages/contentstack-utilities/src/http-client/base-client-decorator.ts @@ -7,7 +7,7 @@ export class BaseClientDecorator implements IHttpClient { constructor(client: IHttpClient) { this.client = client; } - public headers(headers: any): HttpClient { + public headers(headers: Record): HttpClient { return this.client.headers(headers); } public contentType(contentType: string): HttpClient { @@ -16,10 +16,10 @@ export class BaseClientDecorator implements IHttpClient { public get(url: string, queryParams: object = {}): Promise> { return this.client.get(url, queryParams); } - public post(url: string, payload?: any): Promise> { + public post(url: string, payload?: unknown): Promise> { return this.client.post(url, payload); } - public put(url: string, payload?: any): Promise> { + public put(url: string, payload?: unknown): Promise> { return this.client.put(url, payload); } public delete(url: string, queryParams: object = {}): Promise> { diff --git a/packages/contentstack-utilities/src/http-client/client-interface.ts b/packages/contentstack-utilities/src/http-client/client-interface.ts index fca2f891ac..e928ebf30a 100644 --- a/packages/contentstack-utilities/src/http-client/client-interface.ts +++ b/packages/contentstack-utilities/src/http-client/client-interface.ts @@ -2,10 +2,10 @@ import { HttpClient } from './client'; import { HttpResponse } from './http-response'; export interface IHttpClient { - headers(headers: any): HttpClient; + headers(headers: Record): HttpClient; contentType(contentType: string): HttpClient; get(url: string, queryParams: object): Promise>; - post(url: string, payload?: any): Promise>; - put(url: string, payload?: any): Promise>; + post(url: string, payload?: unknown): Promise>; + put(url: string, payload?: unknown): Promise>; delete(url: string, queryParams: object): Promise>; } \ No newline at end of file diff --git a/packages/contentstack-utilities/src/http-client/client.ts b/packages/contentstack-utilities/src/http-client/client.ts index a7b1013545..5f669063c8 100644 --- a/packages/contentstack-utilities/src/http-client/client.ts +++ b/packages/contentstack-utilities/src/http-client/client.ts @@ -87,7 +87,7 @@ export class HttpClient implements IHttpClient { * Add request headers. * @returns {HttpClient} */ - headers(headers: any): HttpClient { + headers(headers: Record): HttpClient { this.request.headers = { ...this.request.headers, ...headers }; return this; @@ -128,7 +128,7 @@ export class HttpClient implements IHttpClient { * * @returns {HttpClient} */ - token(token: string, type: string = 'Bearer'): HttpClient { + token(token: string, type = 'Bearer'): HttpClient { return this.headers({ Authorization: `${type} ${token}`.trim(), }); @@ -154,7 +154,7 @@ export class HttpClient implements IHttpClient { * * @returns {HttpClient} */ - payload(data: any): HttpClient { + payload(data: unknown): HttpClient { this.request.data = data; return this; @@ -266,7 +266,7 @@ export class HttpClient implements IHttpClient { * * @throws */ - async post(url: string, payload?: any): Promise> { + async post(url: string, payload?: unknown): Promise> { if (payload) { this.payload(payload); } @@ -284,7 +284,7 @@ export class HttpClient implements IHttpClient { * * @throws */ - async put(url: string, payload?: any): Promise> { + async put(url: string, payload?: unknown): Promise> { if (payload) { this.payload(payload); } @@ -302,7 +302,7 @@ export class HttpClient implements IHttpClient { * * @throws */ - async patch(url: string, payload?: any): Promise> { + async patch(url: string, payload?: unknown): Promise> { if (payload) { this.payload(payload); } @@ -339,9 +339,9 @@ export class HttpClient implements IHttpClient { async send(method: HttpMethod, url: string): Promise> { try { return new HttpResponse(await this.createAndSendRequest(method, url)); - } catch (error: any) { - if (error.response) { - return new HttpResponse(error.response); + } catch (error: unknown) { + if (error && typeof error === 'object' && 'response' in error) { + return new HttpResponse((error as { response: AxiosResponse }).response); } throw error; @@ -375,7 +375,7 @@ export class HttpClient implements IHttpClient { if (response?.data?.error_message?.includes('access token is invalid or expired')) { const token = await this.refreshToken(); - this.headers({ ...this.request.headers, authorization: token.authorization }); + this.headers({ authorization: token.authorization }); return await this.axiosInstance({ url, method, @@ -438,7 +438,7 @@ export class HttpClient implements IHttpClient { /** * Returns the request payload depending on the selected request payload format. */ - prepareRequestPayload(): any { + prepareRequestPayload(): unknown { return this.bodyFormat === 'formParams' ? new URLSearchParams(this.request.data).toString() : this.request.data; } @@ -457,7 +457,7 @@ export class HttpClient implements IHttpClient { } } -export interface HttpRequestConfig extends AxiosRequestConfig {} +export type HttpRequestConfig = AxiosRequestConfig type BodyFormat = 'json' | 'formParams'; diff --git a/packages/contentstack-utilities/src/http-client/http-client-decorator.ts b/packages/contentstack-utilities/src/http-client/http-client-decorator.ts index 229aff53b5..77396c2240 100644 --- a/packages/contentstack-utilities/src/http-client/http-client-decorator.ts +++ b/packages/contentstack-utilities/src/http-client/http-client-decorator.ts @@ -9,10 +9,10 @@ export class HttpClientDecorator extends BaseClientDecorator { super(client); this.client = client; } - public headers(headers: any): HttpClient { + public headers(headers: { auth_token?: string; org_uid?: string }): HttpClient { return this.client.headers({ - authtoken: headers.auth_token, - organization_uid: headers.org_uid, + authtoken: headers.auth_token ?? '', + organization_uid: headers.org_uid ?? '', }); } public contentType(contentType: string): HttpClient { @@ -21,10 +21,10 @@ export class HttpClientDecorator extends BaseClientDecorator { public get(url: string, queryParams: object = {}): Promise> { return this.client.get(url, queryParams); } - public post(url: string, payload?: any): Promise> { + public post(url: string, payload?: unknown): Promise> { return this.client.post(url, payload); } - public put(url: string, payload?: any): Promise> { + public put(url: string, payload?: unknown): Promise> { return this.client.put(url, payload); } public delete(url: string, queryParams: object = {}): Promise> { diff --git a/packages/contentstack-utilities/src/http-client/http-response.ts b/packages/contentstack-utilities/src/http-client/http-response.ts index 3afb6ef3db..69e5fbe60b 100644 --- a/packages/contentstack-utilities/src/http-client/http-response.ts +++ b/packages/contentstack-utilities/src/http-client/http-response.ts @@ -2,7 +2,8 @@ import { AxiosResponse, AxiosResponseHeaders, RawAxiosResponseHeaders } from 'axios'; -export class HttpResponse { +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export class HttpResponse { /** * The Axios response object. */ diff --git a/packages/contentstack-utilities/src/http-client/oauth-decorator.ts b/packages/contentstack-utilities/src/http-client/oauth-decorator.ts index 948529cc0b..aafd3426d7 100644 --- a/packages/contentstack-utilities/src/http-client/oauth-decorator.ts +++ b/packages/contentstack-utilities/src/http-client/oauth-decorator.ts @@ -12,9 +12,9 @@ export class OauthDecorator extends BaseClientDecorator { this.client = client; } - public async preHeadersCheck(config: any) { - const headers: any = {}; - headers.organization_uid = config.org_uid; + public async preHeadersCheck(config: { org_uid?: string }): Promise> { + const headers: Record = {}; + headers.organization_uid = config.org_uid ?? ''; const authorisationType = configStore.get('authorisationType'); if (authorisationType === 'BASIC') { headers.authtoken = configStore.get('authtoken'); @@ -28,7 +28,7 @@ export class OauthDecorator extends BaseClientDecorator { return headers; } - public headers(headers: any): HttpClient { + public headers(headers: Record): HttpClient { return this.client.headers(headers); } public contentType(contentType: string): HttpClient { diff --git a/packages/contentstack-utilities/src/interfaces/index.ts b/packages/contentstack-utilities/src/interfaces/index.ts index 3162dc2d7f..18e8eaa87d 100644 --- a/packages/contentstack-utilities/src/interfaces/index.ts +++ b/packages/contentstack-utilities/src/interfaces/index.ts @@ -1,4 +1,4 @@ -import { logLevels } from "../constants/logging"; +import { logLevels } from '../constants/logging'; export interface IPromptOptions { prompt?: string; @@ -15,15 +15,15 @@ export interface PrintOptions { export interface InquirePayload { type: string; name: string; - default?: any; + default?: unknown; message: string; - choices?: Array; - transformer?: Function; - validate?(input: any, answers?: any): boolean | string | Promise; + choices?: unknown[]; + transformer?: (input: unknown) => unknown; + validate?(input: unknown, answers?: Record): boolean | string | Promise; selectAll?: boolean; pageSize?: number; - columns?: Record[]; - rows?: Array; + columns?: Record[]; + rows?: unknown[]; } export interface Region { @@ -73,7 +73,7 @@ export interface Locale { code: string; } -export interface CliUXPromptOptions extends IPromptOptions {} +export type CliUXPromptOptions = IPromptOptions export interface LoggerConfig { basePath: string; // Base path for log storage @@ -90,19 +90,19 @@ export interface PrintOptions { export type LogType = 'info' | 'warn' | 'error' | 'debug' | 'hidden' | 'success'; export type LogsType = LogType | PrintOptions | undefined; -export type MessageType = string | Error | Record | Record[]; +export type MessageType = string | Error | Record | Record[]; export type LogLevel = keyof typeof logLevels; export type ClassifiedError = { type: string; message: string; - error: Record; - debug?: Record; + error: Record; + debug?: Record; meta?: Record; context?: string; hidden?: boolean; - stackTrace?: Record; + stackTrace?: Record; }; export interface ErrorContextBase { diff --git a/packages/contentstack-utilities/src/logger/cli-error-handler.ts b/packages/contentstack-utilities/src/logger/cli-error-handler.ts index 2f7fe5e62f..fb1a01daf8 100644 --- a/packages/contentstack-utilities/src/logger/cli-error-handler.ts +++ b/packages/contentstack-utilities/src/logger/cli-error-handler.ts @@ -40,6 +40,7 @@ import { redactObject } from '../helpers'; * @public */ export default class CLIErrorHandler { + // eslint-disable-next-line @typescript-eslint/no-empty-function constructor() {} /** @@ -84,7 +85,7 @@ export default class CLIErrorHandler { /** * Extracts a clear, concise error message from various error types. */ - private extractClearMessage(error: Error & Record): string { + private extractClearMessage(error: Error): string { // Use existing formatError function for other cases try { const formattedMessage = formatError(error); @@ -92,12 +93,15 @@ export default class CLIErrorHandler { return formattedMessage || 'An error occurred. Please try again.'; } catch { // Fallback to basic error message extraction if formatError fails - if (typeof error?.response?.data?.errorMessage === 'string') { - return error.response.data.errorMessage; + const err = error as unknown as Record; + const response = err?.response as Record | undefined; + const data = response?.data as Record | undefined; + if (typeof data?.errorMessage === 'string') { + return data.errorMessage; } - if (typeof error?.errorMessage === 'string') { - return error.errorMessage; + if (typeof err?.errorMessage === 'string') { + return err.errorMessage as string; } } } @@ -115,8 +119,8 @@ export default class CLIErrorHandler { if (typeof error === 'object') { try { - const errorObj = error as Record; - const message = errorObj.message || errorObj.error || errorObj.statusText || 'Unknown error'; + const errorObj = error as Record; + const message = (errorObj.message as string) || (errorObj.error as string) || (errorObj.statusText as string) || 'Unknown error'; const normalizedError = new Error(message); // Only copy essential properties @@ -134,7 +138,7 @@ export default class CLIErrorHandler { ]; essentialProps.forEach((prop) => { if (errorObj[prop] !== undefined) { - (normalizedError as any)[prop] = errorObj[prop]; + (normalizedError as unknown as Record)[prop] = errorObj[prop]; } }); @@ -150,12 +154,16 @@ export default class CLIErrorHandler { /** * Determines the type of error based on its characteristics. */ - private determineErrorType(error: Error & Record): string { - const { status, code, name, response } = error; - const actualStatus = status || response?.status; + private determineErrorType(error: Error): string { + const err = error as unknown as Record; + const status = err.status as number | undefined; + const code = err.code as string | undefined; + const name = err.name as string | undefined; + const response = err.response as Record | undefined; + const actualStatus = status ?? (response?.status as number | undefined); // Network and timeout errors - if (['ECONNREFUSED', 'ENOTFOUND', 'ETIMEDOUT', 'ENETUNREACH'].includes(code)) { + if (code && ['ECONNREFUSED', 'ENOTFOUND', 'ETIMEDOUT', 'ENETUNREACH'].includes(code)) { return ERROR_TYPES.NETWORK; } @@ -169,7 +177,7 @@ export default class CLIErrorHandler { // Specific error types if (name === 'DatabaseError') return ERROR_TYPES.DATABASE; - if ((error as AxiosError).isAxiosError) return ERROR_TYPES.NETWORK; + if ((error as unknown as AxiosError).isAxiosError) return ERROR_TYPES.NETWORK; return ERROR_TYPES.APPLICATION; } @@ -177,39 +185,47 @@ export default class CLIErrorHandler { /** * Extracts only essential error payload information for clear debugging. */ - private extractErrorPayload(error: Error & Record): Record { - const { name, message, code, status, response, request, config, statusText } = error; - - const payload: Record = { + private extractErrorPayload(error: Error): Record { + const err = error as unknown as Record; + const name = err.name; + const code = err.code; + const status = err.status; + const response = err.response as Record | undefined; + const request = err.request as Record | undefined; + const config = err.config as Record | undefined; + const statusText = err.statusText; + + const payload: Record = { name, message: this.extractClearMessage(error), }; // Add error identifiers if (code) payload.code = code; - if (status || response?.status) payload.status = status || response?.status; + if (status ?? response?.status) payload.status = status ?? response?.status; // Add detailed field-level errors if available - if (response?.data?.errors && typeof response.data.errors === 'object') { - payload.errors = response.data.errors; - } else if (error?.errors && typeof error.errors === 'object') { - payload.errors = error.errors; + const resData = response?.data as Record | undefined; + if (resData?.errors && typeof resData.errors === 'object') { + payload.errors = resData.errors; + } else if (err?.errors && typeof err.errors === 'object') { + payload.errors = err.errors; } // Add error code if available - if (response?.data?.error_code) { - payload.errorCode = response.data.error_code; - } else if (error?.error_code) { - payload.errorCode = error.error_code; + if (resData?.error_code) { + payload.errorCode = resData.error_code; + } else if (err?.error_code) { + payload.errorCode = err.error_code; } // Add request context with sensitive data redaction if (request || config) { const requestData = { - method: request?.method || config?.method, - url: request?.url || config?.url, - headers: request?.headers || config?.headers, - data: request?.data || config?.data, + method: request?.method ?? config?.method, + url: request?.url ?? config?.url, + headers: request?.headers ?? config?.headers, + data: request?.data ?? config?.data, timeout: config?.timeout, baseURL: config?.baseURL, params: config?.params, @@ -233,8 +249,8 @@ export default class CLIErrorHandler { } // Extract user-friendly error message for API errors - if (response?.data?.errorMessage) { - payload.userFriendlyMessage = response.data.errorMessage; + if (resData?.errorMessage) { + payload.userFriendlyMessage = resData.errorMessage; } // Add stack trace only for non-API errors to avoid clutter diff --git a/packages/contentstack-utilities/src/logger/log.ts b/packages/contentstack-utilities/src/logger/log.ts index b0bd486545..37e231df66 100644 --- a/packages/contentstack-utilities/src/logger/log.ts +++ b/packages/contentstack-utilities/src/logger/log.ts @@ -5,7 +5,6 @@ import { default as Logger } from './logger'; import { CLIErrorHandler } from './cli-error-handler'; import { ErrorContext } from '../interfaces'; import { configHandler } from '..'; -import { getSessionLogPath } from './session-path'; let loggerInstance: Logger | null = null; diff --git a/packages/contentstack-utilities/src/logger/logger.ts b/packages/contentstack-utilities/src/logger/logger.ts index ebdb8fe21a..837ffeef74 100644 --- a/packages/contentstack-utilities/src/logger/logger.ts +++ b/packages/contentstack-utilities/src/logger/logger.ts @@ -74,7 +74,7 @@ export default class Logger { winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.printf((info) => { // Apply full redaction for console (user-facing) - const redactedInfo = this.redact(info, true); + const redactedInfo = this.redact(info, true) as { level: string; timestamp: string; message: string }; const colorizer = winston.format.colorize(); const levelText = redactedInfo.level.toUpperCase(); const { timestamp, message } = redactedInfo; @@ -86,7 +86,7 @@ export default class Logger { }); } - private isSensitiveKey(keyStr: string, consoleMode: boolean = false): boolean { + private isSensitiveKey(keyStr: string, consoleMode = false): boolean { if (keyStr && typeof keyStr === 'string') { const keysToCheck = consoleMode ? this.consoleSensitiveKeys : this.logSensitiveKeys; return keysToCheck.some((regex) => regex.test(keyStr)); @@ -94,7 +94,8 @@ export default class Logger { return false; } - private redactObject(obj: any, consoleMode: boolean = false) { + private redactObject(obj: unknown, consoleMode = false) { + // eslint-disable-next-line @typescript-eslint/no-this-alias -- traverse forEach callback uses 'this' as node context const self = this; traverse(obj).forEach(function redactor() { if (this.key && self.isSensitiveKey(this.key, consoleMode)) { @@ -102,18 +103,18 @@ export default class Logger { } }); - return obj; + return obj as Record; } - private redact(info: any, consoleMode: boolean = false): any { + private redact(info: unknown, consoleMode = false): Record { try { const copy = klona(info); this.redactObject(copy, consoleMode); const splat = copy[Symbol.for('splat')]; if (splat) this.redactObject(splat, consoleMode); - return copy; + return copy as Record; } catch { - return info; + return (info ?? {}) as Record; } } @@ -130,31 +131,31 @@ export default class Logger { /* === Public Log Methods === */ - public error(message: string, meta?: any): void { + public error(message: string, meta?: Record): void { if (this.shouldLog('error', 'console') || this.shouldLog('error', 'file')) { this.loggers.error.error(message, { ...meta, level: 'error' }); } } - public warn(message: string, meta?: any): void { + public warn(message: string, meta?: Record): void { if (this.shouldLog('warn', 'console') || this.shouldLog('warn', 'file')) { this.loggers.warn.warn(message, { ...meta, level: 'warn' }); } } - public info(message: string, meta?: any): void { + public info(message: string, meta?: Record): void { if (this.shouldLog('info', 'console') || this.shouldLog('info', 'file')) { this.loggers.info.info(message, { ...meta, level: 'info' }); } } - public success(message: string, meta?: any): void { + public success(message: string, meta?: Record): void { if (this.shouldLog('success', 'console') || this.shouldLog('success', 'file')) { this.loggers.success.log('success', message, { ...meta }); } } - public debug(message: string, meta?: any): void { + public debug(message: string, meta?: Record): void { if (this.shouldLog('debug', 'console') || this.shouldLog('debug', 'file')) { this.loggers.debug.debug(message, { ...meta, level: 'debug' }); } @@ -165,10 +166,10 @@ export default class Logger { public logError(params: { type: string; message: string; - error: any; - context?: Record; + error: unknown; + context?: Record; hidden?: boolean; - meta?: Record; + meta?: Record; }): void { const logPayload = { level: logLevels.error, @@ -196,9 +197,9 @@ export default class Logger { public logWarn(params: { type: string; message: string; - warn?: any; - context?: Record; - meta?: Record; + warn?: unknown; + context?: Record; + meta?: Record; }): void { const logPayload = { level: logLevels.warn, @@ -219,9 +220,9 @@ export default class Logger { public logInfo(params: { type: string; message: string; - info?: any; - context?: Record; - meta?: Record; + info?: unknown; + context?: Record; + meta?: Record; }): void { const logPayload = { level: logLevels.info, @@ -242,9 +243,9 @@ export default class Logger { public logSuccess(params: { type: string; message: string; - data?: any; - context?: Record; - meta?: Record; + data?: unknown; + context?: Record; + meta?: Record; }): void { const logPayload = { level: 'success', @@ -265,9 +266,9 @@ export default class Logger { public logDebug(params: { type: string; message: string; - debug?: any; - context?: Record; - meta?: Record; + debug?: unknown; + context?: Record; + meta?: Record; }): void { const logPayload = { level: logLevels.debug, diff --git a/packages/contentstack-utilities/src/logger/session-path.ts b/packages/contentstack-utilities/src/logger/session-path.ts index 89aaa7f68b..c57e9e3db9 100644 --- a/packages/contentstack-utilities/src/logger/session-path.ts +++ b/packages/contentstack-utilities/src/logger/session-path.ts @@ -25,7 +25,7 @@ function generateSessionMetadata( commandId: string, sessionId: string, startTimestamp: Date, -): Record { +): Record { const originalCommandId = configHandler.get('currentCommandId') || commandId; const module = extractModule(originalCommandId); const apiKey = configHandler.get('apiKey') || ''; @@ -49,7 +49,7 @@ function generateSessionMetadata( /** * Create session.json metadata file in the session directory */ -function createSessionMetadataFile(sessionPath: string, metadata: Record): void { +function createSessionMetadataFile(sessionPath: string, metadata: Record): void { const metadataPath = path.join(sessionPath, 'session.json'); try { fs.writeFileSync(metadataPath, JSON.stringify(metadata, null, 2), 'utf8'); diff --git a/packages/contentstack-utilities/test/unit/cliErrorHandler.test.ts b/packages/contentstack-utilities/test/unit/cliErrorHandler.test.ts index cc7236e60a..ebb2a3299c 100644 --- a/packages/contentstack-utilities/test/unit/cliErrorHandler.test.ts +++ b/packages/contentstack-utilities/test/unit/cliErrorHandler.test.ts @@ -52,8 +52,8 @@ describe('CLIErrorHandler', () => { (error as any).status = 500; // Also set status on error directly const errorPayload = errorHandler['extractErrorPayload'](error); - expect(errorPayload.request.method).to.equal('GET'); - expect(errorPayload.response.status).to.equal(500); + expect((errorPayload.request as { method: string }).method).to.equal('GET'); + expect((errorPayload.response as { status: number }).status).to.equal(500); expect(errorPayload.status).to.equal(500); expect(errorPayload.name).to.equal('Error'); expect(errorPayload.message).to.equal('API error'); diff --git a/packages/contentstack-utilities/test/unit/logger.test.ts b/packages/contentstack-utilities/test/unit/logger.test.ts index 997c4fcf46..cbaebcaf9d 100644 --- a/packages/contentstack-utilities/test/unit/logger.test.ts +++ b/packages/contentstack-utilities/test/unit/logger.test.ts @@ -143,15 +143,15 @@ describe('Logger', () => { [Symbol.for('splat')]: [{ password: '1234' }], }; // Test file mode (consoleMode = false) - token is redacted, password is not - const result = logger['redact'](obj, false); + const result = logger['redact'](obj, false) as Record; expect(result.token).to.equal('[REDACTED]'); // In file mode, password is not redacted - expect(result[Symbol.for('splat')][0].password).to.equal('1234'); + expect((result[Symbol.for('splat')] as Array<{ password: string }>)[0].password).to.equal('1234'); // Test console mode (consoleMode = true) - both token and password are redacted - const consoleResult = logger['redact'](obj, true); + const consoleResult = logger['redact'](obj, true) as Record; expect(consoleResult.token).to.equal('[REDACTED]'); - expect(consoleResult[Symbol.for('splat')][0].password).to.equal('[REDACTED]'); + expect((consoleResult[Symbol.for('splat')] as Array<{ password: string }>)[0].password).to.equal('[REDACTED]'); }); fancy.it('redact should return original if klona fails', () => { diff --git a/packages/contentstack/.nycrc.json b/packages/contentstack/.nycrc.json index ec0b32b29f..aadf645e5b 100644 --- a/packages/contentstack/.nycrc.json +++ b/packages/contentstack/.nycrc.json @@ -1,5 +1,6 @@ { "inlcude": [ "lib/**/*.js" - ] + ], + "concurrency": 1 } \ No newline at end of file diff --git a/packages/contentstack/README.md b/packages/contentstack/README.md index 68d4f81931..fba27efa9e 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.60.0-beta.5 darwin-arm64 node-v22.13.1 +@contentstack/cli/1.60.0-beta.6 darwin-arm64 node-v24.13.0 $ csdx --help [COMMAND] USAGE $ csdx COMMAND @@ -582,14 +582,14 @@ Bootstrap contentstack apps ``` USAGE - $ csdx cm:bootstrap [--app-name ] [--project-dir ] [-k | --org | -n ] [-y - ] [--run-dev-server] [-a ] + $ csdx cm:bootstrap [--app-name ] [--project-dir ] [-k | --org | -n ] [-y] + [--run-dev-server] [-a ] FLAGS -a, --alias= Alias of the management token -k, --stack-api-key= Provide stack API key to seed content -n, --stack-name= Name of the new stack that will be created. - -y, --yes= [Optional] Skip stack confirmation + -y, --yes [Optional] Skip stack confirmation --app-name= App name, kickstart-next, kickstart-next-ssr, kickstart-next-ssg, kickstart-next-graphql, kickstart-next-middleware, kickstart-nuxt, kickstart-nuxt-ssr --org= Provide organization UID to create a new stack @@ -2561,7 +2561,7 @@ EXAMPLES $ csdx cm:migration --config-file --file-path - $ csdx cm:migration --multiple --file-path + $ csdx cm:migration --multiple --file-path $ csdx cm:migration --alias --file-path -k ``` @@ -3055,7 +3055,7 @@ EXAMPLES $ csdx cm:migration --config-file --file-path - $ csdx cm:migration --multiple --file-path + $ csdx cm:migration --multiple --file-path $ csdx cm:migration --alias --file-path -k ``` @@ -4148,7 +4148,7 @@ EXAMPLES $ csdx plugins ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/index.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/index.ts)_ ## `csdx plugins:add PLUGIN` @@ -4222,7 +4222,7 @@ EXAMPLES $ csdx plugins:inspect myplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/inspect.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/inspect.ts)_ ## `csdx plugins:install PLUGIN` @@ -4271,7 +4271,7 @@ EXAMPLES $ csdx plugins:install someuser/someplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/install.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/install.ts)_ ## `csdx plugins:link PATH` @@ -4302,7 +4302,7 @@ EXAMPLES $ csdx plugins:link myplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/link.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/link.ts)_ ## `csdx plugins:remove [PLUGIN]` @@ -4343,7 +4343,7 @@ FLAGS --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/reset.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/reset.ts)_ ## `csdx plugins:uninstall [PLUGIN]` @@ -4371,7 +4371,7 @@ EXAMPLES $ csdx plugins:uninstall myplugin ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/uninstall.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/uninstall.ts)_ ## `csdx plugins:unlink [PLUGIN]` @@ -4415,7 +4415,7 @@ DESCRIPTION Update installed plugins. ``` -_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/5.4.58/src/commands/plugins/update.ts)_ +_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v5.4.56/src/commands/plugins/update.ts)_ ## `csdx tokens` diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index eab2cc1671..92aa895a31 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -14,47 +14,47 @@ "compile": "tsc -b tsconfig.json", "postpack": "rm -f oclif.manifest.json", "version": "oclif readme && git add README.md", - "test:report": "tsc -p test && nyc --reporter=lcov --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", + "lint": "eslint src/**/*.ts", + "prepack": "pnpm compile && oclif manifest && oclif readme", "pretest": "tsc -p test", - "test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"", "posttest": "npm run lint", - "lint": "eslint src/**/*.ts", - "prepack": "pnpm compile && oclif manifest && oclif readme" + "test": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"", + "test:report": "NODE_OPTIONS=--no-warnings nyc --concurrency=1 --extension .ts mocha --exit --forbid-only \"test/unit/**/*.test.ts\"" }, "dependencies": { "@contentstack/cli-audit": "~1.19.0-beta.0", "@contentstack/cli-cm-export": "~1.24.0-beta.0", - "@contentstack/cli-cm-import": "~1.32.0-beta.1", + "@contentstack/cli-cm-import": "~1.32.0-beta.0", "@contentstack/cli-auth": "~1.8.0-beta.0", - "@contentstack/cli-cm-bootstrap": "~1.19.0-beta.1", + "@contentstack/cli-cm-bootstrap": "~1.19.0-beta.0", "@contentstack/cli-cm-branches": "~1.7.0-beta.0", "@contentstack/cli-cm-bulk-publish": "~1.11.0-beta.0", - "@contentstack/cli-cm-clone": "~1.21.0-beta.1", + "@contentstack/cli-cm-clone": "~1.21.0-beta.0", "@contentstack/cli-cm-export-to-csv": "~1.12.0-beta.0", "@contentstack/cli-cm-import-setup": "~1.8.0-beta.0", "@contentstack/cli-cm-migrate-rte": "~1.6.4", - "@contentstack/cli-cm-seed": "~1.15.0-beta.2", + "@contentstack/cli-cm-seed": "~1.15.0-beta.0", "@contentstack/cli-command": "~1.8.0-beta.0", "@contentstack/cli-config": "~1.20.0-beta.0", "@contentstack/cli-launch": "^1.9.6", "@contentstack/cli-migration": "~1.12.0-beta.0", "@contentstack/cli-utilities": "~1.18.0-beta.0", "@contentstack/cli-variants": "~1.4.0-beta.0", - "@contentstack/management": "~1.27.5", - "@oclif/core": "^4.3.0", - "@oclif/plugin-help": "^6.2.28", - "@oclif/plugin-not-found": "^3.2.53", - "@oclif/plugin-plugins": "^5.4.54", + "@contentstack/management": "~1.27.6", + "@oclif/core": "^4.8.4", + "@oclif/plugin-help": "^6.2.37", + "@oclif/plugin-not-found": "^3.2.74", + "@oclif/plugin-plugins": "^5.4.58", "chalk": "^4.1.2", - "debug": "^4.4.1", + "debug": "^4.4.3", "figlet": "1.8.1", "inquirer": "8.2.7", "node-machine-id": "^1.1.12", "open": "^8.4.2", - "semver": "^7.7.2", + "semver": "^7.7.4", "short-uuid": "^4.2.2", "uuid": "^9.0.1", - "winston": "^3.17.0" + "winston": "^3.19.0" }, "devDependencies": { "@oclif/test": "^4.1.16", @@ -63,20 +63,20 @@ "@types/mkdirp": "^1.0.2", "@types/mocha": "^8.2.3", "@types/node": "^14.18.63", - "@types/semver": "^7.7.0", + "@types/semver": "^7.7.1", "@types/sinon": "^21.0.0", "chai": "^4.5.0", "eslint": "^8.57.1", - "eslint-config-oclif": "^6.0.137", + "eslint-config-oclif": "^6.0.148", "eslint-config-oclif-typescript": "^3.1.14", "globby": "^10.0.2", "mocha": "10.8.2", "nock": "^13.5.6", "nyc": "^15.1.0", - "oclif": "^4.17.46", + "oclif": "^4.22.87", "rimraf": "^5.0.10", "shelljs": "^0.10.0", - "sinon": "^21.0.1", + "sinon": "^21.0.2", "tmp": "^0.2.5", "ts-node": "^10.9.2", "tslib": "^2.8.1", @@ -168,4 +168,4 @@ } }, "repository": "https://github.com/contentstack/cli" -} \ No newline at end of file +} diff --git a/packages/contentstack/src/interfaces/index.ts b/packages/contentstack/src/interfaces/index.ts index 975af29c15..ba180cd139 100644 --- a/packages/contentstack/src/interfaces/index.ts +++ b/packages/contentstack/src/interfaces/index.ts @@ -8,8 +8,8 @@ export interface InquirePayload { type: string; name: string; message: string; - choices?: Array; - transformer?: Function; + choices?: Array; + transformer?: (value: unknown) => unknown; } export interface Region { @@ -24,11 +24,11 @@ export interface Context { authtoken: string; email: string; }; - region: any; + region: Region; plugin: Plugin; - config: any; - info: any; - messageFilePath: any; + config: Record; + info: Record; + messageFilePath: string; } export interface CLIConfig extends Config { context: Context; diff --git a/packages/contentstack/src/utils/context-handler.ts b/packages/contentstack/src/utils/context-handler.ts index 32a142679c..a1f3c9eaab 100644 --- a/packages/contentstack/src/utils/context-handler.ts +++ b/packages/contentstack/src/utils/context-handler.ts @@ -1,32 +1,64 @@ import * as shortUUID from 'short-uuid'; -import * as path from 'path'; +import * as path from 'node:path'; import { configHandler, pathValidator, sanitizePath } from '@contentstack/cli-utilities'; import { machineIdSync } from 'node-machine-id'; +interface CliOpts { + id?: string; +} + +interface CliCommand { + pluginName?: string; +} + +interface PluginRuntimeConfig { + messageFilePath?: string; + shortCommandName?: Record; +} + +interface CliPlugin { + root?: string; + pjson?: { + csdxConfig?: PluginRuntimeConfig; + }; + name?: string; + config: PluginRuntimeConfig; +} + +interface CliConfig { + findCommand?: (id?: string) => CliCommand | undefined; + platform?: string; + arch?: string; + version?: string; + plugins?: Map; +} + export default class CsdxContext { readonly sessionId: string; readonly clientId: string; readonly user?: object; readonly region?: object; - readonly config: object; - readonly info: any; - readonly plugin: any; - readonly pluginConfig: any; + readonly config: Record; + readonly info: { + command?: string; + shortCommandName?: string; + }; + readonly plugin: CliPlugin; + readonly pluginConfig: PluginRuntimeConfig; readonly messageFilePath: string; readonly analyticsInfo: string; - public flagWarningPrintState: any; - public flags: any; + public flagWarningPrintState: Record; + public flags: Record; public cliVersion: string; - constructor(cliOpts: any, cliConfig: any) { + constructor(cliOpts: CliOpts, cliConfig: CliConfig) { const analyticsInfo = []; - const command = cliConfig.findCommand(cliOpts.id) || {}; + const commandId = cliOpts.id; + const command = (commandId && cliConfig.findCommand?.(commandId)) || {}; const config = configHandler; const platform = cliConfig.platform && cliConfig.arch ? `${cliConfig.platform}-${cliConfig.arch}` : 'none'; - analyticsInfo.push(platform); const nodeVersion = process.versions.node ? `v${process.versions.node}` : process.version; - analyticsInfo.push(nodeVersion || 'none'); - analyticsInfo.push(cliConfig.version || 'none'); + analyticsInfo.push(platform, nodeVersion || 'none', cliConfig.version || 'none'); this.clientId = configHandler.get('clientId'); if (!this.clientId) { this.clientId = machineIdSync(true); @@ -42,20 +74,27 @@ export default class CsdxContext { email: configHandler.get('email'), }; this.config = { ...config }; - this.cliVersion = cliConfig.version + this.cliVersion = cliConfig.version || 'none'; this.region = configHandler.get('region'); - this.info = { command: cliOpts.id }; + this.info = { command: commandId }; + this.plugin = { config: {} }; + this.pluginConfig = {}; + this.messageFilePath = ''; if (command.pluginName) { - this.plugin = (cliConfig.plugins || new Map()).get(command.pluginName) || {}; + const resolvedPlugin = (cliConfig.plugins || new Map()).get(command.pluginName); + if (resolvedPlugin) this.plugin = { ...resolvedPlugin, config: resolvedPlugin.config || {} }; this.plugin.name = command.pluginName; - this.plugin.config = { ...((this.plugin.pjson && this.plugin.pjson.csdxConfig) || {}) }; + const pluginCsdxConfig = this.plugin.pjson?.csdxConfig; + this.plugin.config = pluginCsdxConfig ? { ...pluginCsdxConfig } : {}; + this.pluginConfig = { ...this.plugin.config }; this.messageFilePath = pathValidator( - path.resolve(sanitizePath(this.plugin.root), sanitizePath(this.plugin.config.messageFilePath) || './messages/index.json'), + path.resolve(sanitizePath(this.plugin.root), sanitizePath(this.pluginConfig.messageFilePath) || './messages/index.json'), ); - this.info.shortCommandName = this.plugin?.config?.shortCommandName?.[cliOpts.id]; - analyticsInfo.push(this.info.shortCommandName || cliOpts.id); + this.info.shortCommandName = commandId ? this.pluginConfig.shortCommandName?.[commandId] : undefined; + analyticsInfo.push(this.info.shortCommandName || commandId || 'none'); } this.flagWarningPrintState = {}; + this.flags = {}; this.analyticsInfo = analyticsInfo.join(';'); } diff --git a/packages/contentstack/test/unit/utils.test.ts b/packages/contentstack/test/unit/utils.test.ts new file mode 100644 index 0000000000..982dae54b2 --- /dev/null +++ b/packages/contentstack/test/unit/utils.test.ts @@ -0,0 +1,24 @@ +import { expect } from 'chai'; +// CommonJS module: use default import and destructure for ESM compatibility +import cliUtilities from '@contentstack/cli-utilities'; +const { CLIError } = cliUtilities; + +/** + * Utils tests. Analytics and UserConfig were removed from this package (Analytics removed; + * UserConfig/region logic lives in @contentstack/cli-config and is tested there). + * This file tests CLIError from cli-utilities which is used across the CLI. + */ +describe('Utils', function () { + describe('CLIError (from @contentstack/cli-utilities)', function () { + it('should be a constructor', function () { + const err = new CLIError('test'); + expect(err).to.be.instanceOf(CLIError); + expect(err.message).to.equal('test'); + }); + + it('should extend Error', function () { + const err = new CLIError('test'); + expect(err).to.be.instanceOf(Error); + }); + }); +}); diff --git a/packages/contentstack/test/utils.test.ts b/packages/contentstack/test/utils.test.ts deleted file mode 100644 index 02167dd7cb..0000000000 --- a/packages/contentstack/test/utils.test.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { expect } from 'chai'; -import * as nock from 'nock'; -import * as sinon from 'sinon'; -import { Analytics, UserConfig, CLIError } from '../src/utils'; -import { Region } from '../src/interfaces'; - -describe('Utils', function () { - const userConfig = new UserConfig(); - before(function () { - nock('http://www.google-analytics.com').post('/collect').reply(200); - }); - describe('Analytics', function () { - it('track events', async function () { - const analytics = new Analytics({ trackingID: 'testid', cid: 'testcid' }); - const result = await analytics.track('test', { category: 'test', label: 'test', os: 'test' }); - expect(result.status).equal(200); - }); - }); - - describe('User config', function () { - it('set region, should be successful', function () { - const result: Region = userConfig.setRegion('AWS-NA'); - expect(result.name).equal('AWS-NA'); - }); - it('get region, should be successful', function () { - expect(userConfig.getRegion().name).equal('AWS-NA'); - }); - it('set custom region, should be successful', function () { - const customRegion = { - name: 'test', - cda: 'https://api.contentstack.io', - cma: 'https://cdn.contentstack.io', - }; - expect(userConfig.setCustomRegion(customRegion).name).equal('test'); - }); - it('set custom region with invalid payload, throw exception', function () { - const customRegion = { - cda: 'testcda', - cma: 'testcma', - }; - let result; - try { - result = userConfig.setCustomRegion(customRegion); - } catch (error) { - result = error; - } - expect(result).instanceOf(CLIError); - }); - }); -}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f892adb53a..c7f739a8a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^9.1.7 version: 9.1.7 pnpm: - specifier: ^10.28.0 - version: 10.30.3 + specifier: ^10.32.1 + version: 10.32.1 packages/contentstack: dependencies: @@ -72,25 +72,25 @@ importers: specifier: ~1.4.0-beta.0 version: 1.4.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/management': - specifier: ~1.27.5 + specifier: ~1.27.6 version: 1.27.6(debug@4.4.3) '@oclif/core': - specifier: ^4.3.0 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 '@oclif/plugin-help': - specifier: ^6.2.28 + specifier: ^6.2.37 version: 6.2.37 '@oclif/plugin-not-found': - specifier: ^3.2.53 + specifier: ^3.2.74 version: 3.2.74(@types/node@14.18.63) '@oclif/plugin-plugins': - specifier: ^5.4.54 - version: 5.4.56 + specifier: ^5.4.58 + version: 5.4.58 chalk: specifier: ^4.1.2 version: 4.1.2 debug: - specifier: ^4.4.1 + specifier: ^4.4.3 version: 4.4.3(supports-color@8.1.1) figlet: specifier: 1.8.1 @@ -105,7 +105,7 @@ importers: specifier: ^8.4.2 version: 8.4.2 semver: - specifier: ^7.7.2 + specifier: ^7.7.4 version: 7.7.4 short-uuid: specifier: ^4.2.2 @@ -114,12 +114,12 @@ importers: specifier: ^9.0.1 version: 9.0.1 winston: - specifier: ^3.17.0 + specifier: ^3.19.0 version: 3.19.0 devDependencies: '@oclif/test': specifier: ^4.1.16 - version: 4.1.16(@oclif/core@4.8.3) + version: 4.1.16(@oclif/core@4.8.4) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -136,7 +136,7 @@ importers: specifier: ^14.18.63 version: 14.18.63 '@types/semver': - specifier: ^7.7.0 + specifier: ^7.7.1 version: 7.7.1 '@types/sinon': specifier: ^21.0.0 @@ -148,8 +148,8 @@ importers: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: - specifier: ^6.0.137 - version: 6.0.146(eslint@8.57.1)(typescript@4.9.5) + specifier: ^6.0.148 + version: 6.0.148(eslint@8.57.1)(typescript@4.9.5) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@4.9.5) @@ -166,8 +166,8 @@ importers: specifier: ^15.1.0 version: 15.1.0 oclif: - specifier: ^4.17.46 - version: 4.22.81(@types/node@14.18.63) + specifier: ^4.22.87 + version: 4.22.87(@types/node@14.18.63) rimraf: specifier: ^5.0.10 version: 5.0.10 @@ -175,8 +175,8 @@ importers: specifier: ^0.10.0 version: 0.10.0 sinon: - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^21.0.2 + version: 21.0.2 tmp: specifier: ^0.2.5 version: 0.2.5 @@ -199,10 +199,10 @@ importers: specifier: ~1.18.0-beta.0 version: link:../contentstack-utilities '@oclif/core': - specifier: ^4.3.0 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 '@oclif/plugin-help': - specifier: ^6.2.28 + specifier: ^6.2.37 version: 6.2.37 otplib: specifier: ^12.0.1 @@ -212,8 +212,8 @@ importers: specifier: ^0.1.1 version: 0.1.1 '@oclif/test': - specifier: ^4.1.13 - version: 4.1.16(@oclif/core@4.8.3) + specifier: ^4.1.16 + version: 4.1.16(@oclif/core@4.8.4) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -233,7 +233,7 @@ importers: specifier: ^4.5.0 version: 4.5.0 dotenv: - specifier: ^16.4.7 + specifier: ^16.6.1 version: 16.6.1 eslint: specifier: ^8.57.1 @@ -251,11 +251,11 @@ importers: specifier: ^15.1.0 version: 15.1.0 oclif: - specifier: ^4.17.46 - version: 4.22.81(@types/node@14.18.63) + specifier: ^4.22.87 + version: 4.22.87(@types/node@14.18.63) sinon: - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^21.0.2 + version: 21.0.2 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@14.18.63)(typescript@4.9.5) @@ -269,18 +269,18 @@ importers: specifier: ~1.18.0-beta.0 version: link:../contentstack-utilities '@oclif/core': - specifier: ^4.3.0 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 '@oclif/plugin-help': - specifier: ^6.2.28 + specifier: ^6.2.37 version: 6.2.37 contentstack: - specifier: ^3.25.3 + specifier: ^3.26.4 version: 3.26.4 devDependencies: '@oclif/test': - specifier: ^4.1.13 - version: 4.1.16(@oclif/core@4.8.3) + specifier: ^4.1.16 + version: 4.1.16(@oclif/core@4.8.4) '@types/mkdirp': specifier: ^1.0.2 version: 1.0.2 @@ -294,10 +294,10 @@ importers: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: - specifier: ^6.0.15 - version: 6.0.146(eslint@8.57.1)(typescript@4.9.5) + specifier: ^6.0.148 + version: 6.0.148(eslint@8.57.1)(typescript@4.9.5) eslint-config-oclif-typescript: - specifier: ^3.1.13 + specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@4.9.5) mocha: specifier: 10.8.2 @@ -321,21 +321,21 @@ importers: specifier: ~1.18.0-beta.0 version: link:../contentstack-utilities '@contentstack/utils': - specifier: ~1.7.0 + specifier: ~1.7.1 version: 1.7.1 '@oclif/core': - specifier: ^4.3.0 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 '@oclif/plugin-help': - specifier: ^6.2.28 + specifier: ^6.2.37 version: 6.2.37 lodash: specifier: ^4.17.23 version: 4.17.23 devDependencies: '@oclif/test': - specifier: ^4.1.13 - version: 4.1.16(@oclif/core@4.8.3) + specifier: ^4.1.16 + version: 4.1.16(@oclif/core@4.8.4) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -355,8 +355,8 @@ importers: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: - specifier: ^6.0.62 - version: 6.0.146(eslint@8.57.1)(typescript@4.9.5) + specifier: ^6.0.148 + version: 6.0.148(eslint@8.57.1)(typescript@4.9.5) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@4.9.5) @@ -367,11 +367,11 @@ importers: specifier: ^15.1.0 version: 15.1.0 oclif: - specifier: ^4.17.46 - version: 4.22.81(@types/node@14.18.63) + specifier: ^4.22.87 + version: 4.22.87(@types/node@14.18.63) sinon: - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^21.0.2 + version: 21.0.2 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@14.18.63)(typescript@4.9.5) @@ -382,11 +382,11 @@ importers: packages/contentstack-dev-dependencies: dependencies: '@oclif/core': - specifier: ^4.3.0 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 '@oclif/test': - specifier: ^4.1.13 - version: 4.1.16(@oclif/core@4.8.3) + specifier: ^4.1.16 + version: 4.1.16(@oclif/core@4.8.4) fancy-test: specifier: ^2.0.42 version: 2.0.42 @@ -416,16 +416,16 @@ importers: packages/contentstack-utilities: dependencies: '@contentstack/management': - specifier: ~1.27.5 + specifier: ~1.27.6 version: 1.27.6(debug@4.4.3) '@contentstack/marketplace-sdk': specifier: ^1.5.0 version: 1.5.0(debug@4.4.3) '@oclif/core': - specifier: ^4.3.0 - version: 4.8.3 + specifier: ^4.8.4 + version: 4.8.4 axios: - specifier: ^1.13.5 + specifier: ^1.13.6 version: 1.13.6(debug@4.4.3) chalk: specifier: ^4.1.2 @@ -497,7 +497,7 @@ importers: specifier: ^9.0.1 version: 9.0.1 winston: - specifier: ^3.17.0 + specifier: ^3.19.0 version: 3.19.0 xdg-basedir: specifier: ^4.0.0 @@ -507,7 +507,7 @@ importers: specifier: ^4.3.20 version: 4.3.20 '@types/inquirer': - specifier: ^9.0.8 + specifier: ^9.0.9 version: 9.0.9 '@types/mkdirp': specifier: ^1.0.2 @@ -531,8 +531,8 @@ importers: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: - specifier: ^6.0.62 - version: 6.0.146(eslint@8.57.1)(typescript@4.9.5) + specifier: ^6.0.148 + version: 6.0.148(eslint@8.57.1)(typescript@4.9.5) eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@4.9.5) @@ -546,8 +546,8 @@ importers: specifier: ^15.1.0 version: 15.1.0 sinon: - specifier: ^21.0.1 - version: 21.0.1 + specifier: ^21.0.2 + version: 21.0.2 ts-node: specifier: ^10.9.2 version: 10.9.2(@types/node@14.18.63)(typescript@4.9.5) @@ -598,131 +598,131 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-cloudfront@3.1001.0': - resolution: {integrity: sha512-zp6+jzAvrfgct46xhUWNFWJApcVLoBNzjwfRUbPKKqkDj2NQd+wh6zy0JMLqdo948FD26fBtVojjeYqyh0EZmw==} + '@aws-sdk/client-cloudfront@3.1004.0': + resolution: {integrity: sha512-CIGnyfPRa4gkY7I32MBiMJTsQxJFEaMXTedf7uU7TiUemLz4IHrGXx+3BLDbdxwL6dVfBfvC2POSFzrbgA2t4g==} engines: {node: '>=20.0.0'} - '@aws-sdk/client-s3@3.1001.0': - resolution: {integrity: sha512-uKgFjQuBjMcd0iigLQwnqIp9gOy/5TGBxa42rcb6l5byDt1mrwOe6fyWTEUEJaNHG2LKYSPUibteGvM1zfm0Rw==} + '@aws-sdk/client-s3@3.1004.0': + resolution: {integrity: sha512-m0zNfpsona9jQdX1cHtHArOiuvSGZPsgp/KRZS2YjJhKah96G2UN3UNGZQ6aVjXIQjCY6UanCJo0uW9Xf2U41w==} engines: {node: '>=20.0.0'} - '@aws-sdk/core@3.973.16': - resolution: {integrity: sha512-Nasoyb5K4jfvncTKQyA13q55xHoz9as01NVYP05B0Kzux/X5UhMn3qXsZDyWOSXkfSCAIrMBKmVVWbI0vUapdQ==} + '@aws-sdk/core@3.973.19': + resolution: {integrity: sha512-56KePyOcZnKTWCd89oJS1G6j3HZ9Kc+bh/8+EbvtaCCXdP6T7O7NzCiPuHRhFLWnzXIaXX3CxAz0nI5My9spHQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/crc64-nvme@3.972.3': - resolution: {integrity: sha512-UExeK+EFiq5LAcbHm96CQLSia+5pvpUVSAsVApscBzayb7/6dJBJKwV4/onsk4VbWSmqxDMcfuTD+pC4RxgZHg==} + '@aws-sdk/crc64-nvme@3.972.4': + resolution: {integrity: sha512-HKZIZLbRyvzo/bXZU7Zmk6XqU+1C9DjI56xd02vwuDIxedxBEqP17t9ExhbP9QFeNq/a3l9GOcyirFXxmbDhmw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-env@3.972.14': - resolution: {integrity: sha512-PvnBY9rwBuLh9MEsAng28DG+WKl+txerKgf4BU9IPAqYI7FBIo1x6q/utLf4KLyQYgSy1TLQnbQuXx5xfBGASg==} + '@aws-sdk/credential-provider-env@3.972.17': + resolution: {integrity: sha512-MBAMW6YELzE1SdkOniqr51mrjapQUv8JXSGxtwRjQV0mwVDutVsn22OPAUt4RcLRvdiHQmNBDEFP9iTeSVCOlA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-http@3.972.16': - resolution: {integrity: sha512-m/QAcvw5OahqGPjeAnKtgfWgjLxeWOYj7JSmxKK6PLyKp2S/t2TAHI6EELEzXnIz28RMgbQLukJkVAqPASVAGQ==} + '@aws-sdk/credential-provider-http@3.972.19': + resolution: {integrity: sha512-9EJROO8LXll5a7eUFqu48k6BChrtokbmgeMWmsH7lBb6lVbtjslUYz/ShLi+SHkYzTomiGBhmzTW7y+H4BxsnA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-ini@3.972.14': - resolution: {integrity: sha512-EGA7ufqNpZKZcD0RwM6gRDEQgwAf19wQ99R1ptdWYDJAnpcMcWiFyT0RIrgiZFLD28CwJmYjnra75hChnEveWA==} + '@aws-sdk/credential-provider-ini@3.972.18': + resolution: {integrity: sha512-vthIAXJISZnj2576HeyLBj4WTeX+I7PwWeRkbOa0mVX39K13SCGxCgOFuKj2ytm9qTlLOmXe4cdEnroteFtJfw==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-login@3.972.14': - resolution: {integrity: sha512-P2kujQHAoV7irCTv6EGyReKFofkHCjIK+F0ZYf5UxeLeecrCwtrDkHoO2Vjsv/eRUumaKblD8czuk3CLlzwGDw==} + '@aws-sdk/credential-provider-login@3.972.18': + resolution: {integrity: sha512-kINzc5BBxdYBkPZ0/i1AMPMOk5b5QaFNbYMElVw5QTX13AKj6jcxnv/YNl9oW9mg+Y08ti19hh01HhyEAxsSJQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-node@3.972.15': - resolution: {integrity: sha512-59NBJgTcQ2FC94T+SWkN5UQgViFtrLnkswSKhG5xbjPAotOXnkEF2Bf0bfUV1F3VaXzqAPZJoZ3bpg4rr8XD5Q==} + '@aws-sdk/credential-provider-node@3.972.19': + resolution: {integrity: sha512-yDWQ9dFTr+IMxwanFe7+tbN5++q8psZBjlUwOiCXn1EzANoBgtqBwcpYcHaMGtn0Wlfj4NuXdf2JaEx1lz5RaQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-process@3.972.14': - resolution: {integrity: sha512-KAF5LBkJInUPaR9dJDw8LqmbPDRTLyXyRoWVGcJQ+DcN9rxVKBRzAK+O4dTIvQtQ7xaIDZ2kY7zUmDlz6CCXdw==} + '@aws-sdk/credential-provider-process@3.972.17': + resolution: {integrity: sha512-c8G8wT1axpJDgaP3xzcy+q8Y1fTi9A2eIQJvyhQ9xuXrUZhlCfXbC0vM9bM1CUXiZppFQ1p7g0tuUMvil/gCPg==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-sso@3.972.14': - resolution: {integrity: sha512-LQzIYrNABnZzkyuIguFa3VVOox9UxPpRW6PL+QYtRHaGl1Ux/+Zi54tAVK31VdeBKPKU3cxqeu8dbOgNqy+naw==} + '@aws-sdk/credential-provider-sso@3.972.18': + resolution: {integrity: sha512-YHYEfj5S2aqInRt5ub8nDOX8vAxgMvd84wm2Y3WVNfFa/53vOv9T7WOAqXI25qjj3uEcV46xxfqdDQk04h5XQA==} engines: {node: '>=20.0.0'} - '@aws-sdk/credential-provider-web-identity@3.972.14': - resolution: {integrity: sha512-rOwB3vXHHHnGvAOjTgQETxVAsWjgF61XlbGd/ulvYo7EpdXs8cbIHE3PGih9tTj/65ZOegSqZGFqLaKntaI9Kw==} + '@aws-sdk/credential-provider-web-identity@3.972.18': + resolution: {integrity: sha512-OqlEQpJ+J3T5B96qtC1zLLwkBloechP+fezKbCH0sbd2cCc0Ra55XpxWpk/hRj69xAOYtHvoC4orx6eTa4zU7g==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-bucket-endpoint@3.972.6': - resolution: {integrity: sha512-3H2bhvb7Cb/S6WFsBy/Dy9q2aegC9JmGH1inO8Lb2sWirSqpLJlZmvQHPE29h2tIxzv6el/14X/tLCQ8BQU6ZQ==} + '@aws-sdk/middleware-bucket-endpoint@3.972.7': + resolution: {integrity: sha512-goX+axlJ6PQlRnzE2bQisZ8wVrlm6dXJfBzMJhd8LhAIBan/w1Kl73fJnalM/S+18VnpzIHumyV6DtgmvqG5IA==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-expect-continue@3.972.6': - resolution: {integrity: sha512-QMdffpU+GkSGC+bz6WdqlclqIeCsOfgX8JFZ5xvwDtX+UTj4mIXm3uXu7Ko6dBseRcJz1FA6T9OmlAAY6JgJUg==} + '@aws-sdk/middleware-expect-continue@3.972.7': + resolution: {integrity: sha512-mvWqvm61bmZUKmmrtl2uWbokqpenY3Mc3Jf4nXB/Hse6gWxLPaCQThmhPBDzsPSV8/Odn8V6ovWt3pZ7vy4BFQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.973.2': - resolution: {integrity: sha512-KM6QujWdasNjRLG+f7YEqEY5D36vR6Govm7nPIwxjILpb5rJ0pPJZpYY1nrzgtlxwJIYAznfBK5YXoLOHKHyfQ==} + '@aws-sdk/middleware-flexible-checksums@3.973.5': + resolution: {integrity: sha512-Dp3hqE5W6hG8HQ3Uh+AINx9wjjqYmFHbxede54sGj3akx/haIQrkp85lNdTdC+ouNUcSYNiuGkzmyDREfHX1Gg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-host-header@3.972.6': - resolution: {integrity: sha512-5XHwjPH1lHB+1q4bfC7T8Z5zZrZXfaLcjSMwTd1HPSPrCmPFMbg3UQ5vgNWcVj0xoX4HWqTGkSf2byrjlnRg5w==} + '@aws-sdk/middleware-host-header@3.972.7': + resolution: {integrity: sha512-aHQZgztBFEpDU1BB00VWCIIm85JjGjQW1OG9+98BdmaOpguJvzmXBGbnAiYcciCd+IS4e9BEq664lhzGnWJHgQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-location-constraint@3.972.6': - resolution: {integrity: sha512-XdZ2TLwyj3Am6kvUc67vquQvs6+D8npXvXgyEUJAdkUDx5oMFJKOqpK+UpJhVDsEL068WAJl2NEGzbSik7dGJQ==} + '@aws-sdk/middleware-location-constraint@3.972.7': + resolution: {integrity: sha512-vdK1LJfffBp87Lj0Bw3WdK1rJk9OLDYdQpqoKgmpIZPe+4+HawZ6THTbvjhJt4C4MNnRrHTKHQjkwBiIpDBoig==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-logger@3.972.6': - resolution: {integrity: sha512-iFnaMFMQdljAPrvsCVKYltPt2j40LQqukAbXvW7v0aL5I+1GO7bZ/W8m12WxW3gwyK5p5u1WlHg8TSAizC5cZw==} + '@aws-sdk/middleware-logger@3.972.7': + resolution: {integrity: sha512-LXhiWlWb26txCU1vcI9PneESSeRp/RYY/McuM4SpdrimQR5NgwaPb4VJCadVeuGWgh6QmqZ6rAKSoL1ob16W6w==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-recursion-detection@3.972.6': - resolution: {integrity: sha512-dY4v3of5EEMvik6+UDwQ96KfUFDk8m1oZDdkSc5lwi4o7rFrjnv0A+yTV+gu230iybQZnKgDLg/rt2P3H+Vscw==} + '@aws-sdk/middleware-recursion-detection@3.972.7': + resolution: {integrity: sha512-l2VQdcBcYLzIzykCHtXlbpiVCZ94/xniLIkAj0jpnpjY4xlgZx7f56Ypn+uV1y3gG0tNVytJqo3K9bfMFee7SQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-sdk-s3@3.972.16': - resolution: {integrity: sha512-U4K1rqyJYvT/zgTI3+rN+MToa51dFnnq1VSsVJuJWPNEKcEnuZVqf7yTpkJJMkYixVW5TTi1dgupd+nmJ0JyWw==} + '@aws-sdk/middleware-sdk-s3@3.972.19': + resolution: {integrity: sha512-/CtOHHVFg4ZuN6CnLnYkrqWgVEnbOBC4kNiKa+4fldJ9cioDt3dD/f5vpq0cWLOXwmGL2zgVrVxNhjxWpxNMkg==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-ssec@3.972.6': - resolution: {integrity: sha512-acvMUX9jF4I2Ew+Z/EA6gfaFaz9ehci5wxBmXCZeulLuv8m+iGf6pY9uKz8TPjg39bdAz3hxoE0eLP8Qz+IYlA==} + '@aws-sdk/middleware-ssec@3.972.7': + resolution: {integrity: sha512-G9clGVuAml7d8DYzY6DnRi7TIIDRvZ3YpqJPz/8wnWS5fYx/FNWNmkO6iJVlVkQg9BfeMzd+bVPtPJOvC4B+nQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/middleware-user-agent@3.972.16': - resolution: {integrity: sha512-AmVxtxn8ZkNJbuPu3KKfW9IkJgTgcEtgSwbo0NVcAb31iGvLgHXj2nbbyrUDfh2fx8otXmqL+qw1lRaTi+V3vA==} + '@aws-sdk/middleware-user-agent@3.972.20': + resolution: {integrity: sha512-3kNTLtpUdeahxtnJRnj/oIdLAUdzTfr9N40KtxNhtdrq+Q1RPMdCJINRXq37m4t5+r3H70wgC3opW46OzFcZYA==} engines: {node: '>=20.0.0'} - '@aws-sdk/nested-clients@3.996.4': - resolution: {integrity: sha512-NowB1HfOnWC4kwZOnTg8E8rSL0U+RSjSa++UtEV4ipoH6JOjMLnHyGilqwl+Pe1f0Al6v9yMkSJ/8Ot0f578CQ==} + '@aws-sdk/nested-clients@3.996.8': + resolution: {integrity: sha512-6HlLm8ciMW8VzfB80kfIx16PBA9lOa9Dl+dmCBi78JDhvGlx3I7Rorwi5PpVRkL31RprXnYna3yBf6UKkD/PqA==} engines: {node: '>=20.0.0'} - '@aws-sdk/region-config-resolver@3.972.6': - resolution: {integrity: sha512-Aa5PusHLXAqLTX1UKDvI3pHQJtIsF7Q+3turCHqfz/1F61/zDMWfbTC8evjhrrYVAtz9Vsv3SJ/waSUeu7B6gw==} + '@aws-sdk/region-config-resolver@3.972.7': + resolution: {integrity: sha512-/Ev/6AI8bvt4HAAptzSjThGUMjcWaX3GX8oERkB0F0F9x2dLSBdgFDiyrRz3i0u0ZFZFQ1b28is4QhyqXTUsVA==} engines: {node: '>=20.0.0'} - '@aws-sdk/signature-v4-multi-region@3.996.4': - resolution: {integrity: sha512-MGa8ro0onekYIiesHX60LwKdkxK3Kd61p7TTbLwZemBqlnD9OLrk9sXZdFOIxXanJ+3AaJnV/jiX866eD/4PDg==} + '@aws-sdk/signature-v4-multi-region@3.996.7': + resolution: {integrity: sha512-mYhh7FY+7OOqjkYkd6+6GgJOsXK1xBWmuR+c5mxJPj2kr5TBNeZq+nUvE9kANWAux5UxDVrNOSiEM/wlHzC3Lg==} engines: {node: '>=20.0.0'} - '@aws-sdk/token-providers@3.1001.0': - resolution: {integrity: sha512-09XAq/uIYgeZhohuGRrR/R+ek3+ljFNdzWCXdqb9rlIERDjSfNiLjTtpHgSK1xTPmC5G4yWoEAyMfTXiggS6wA==} + '@aws-sdk/token-providers@3.1005.0': + resolution: {integrity: sha512-vMxd+ivKqSxU9bHx5vmAlFKDAkjGotFU56IOkDa5DaTu1WWwbcse0yFHEm9I537oVvodaiwMl3VBwgHfzQ2rvw==} engines: {node: '>=20.0.0'} - '@aws-sdk/types@3.973.4': - resolution: {integrity: sha512-RW60aH26Bsc016Y9B98hC0Plx6fK5P2v/iQYwMzrSjiDh1qRMUCP6KrXHYEHe3uFvKiOC93Z9zk4BJsUi6Tj1Q==} + '@aws-sdk/types@3.973.5': + resolution: {integrity: sha512-hl7BGwDCWsjH8NkZfx+HgS7H2LyM2lTMAI7ba9c8O0KqdBLTdNJivsHpqjg9rNlAlPyREb6DeDRXUl0s8uFdmQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-arn-parser@3.972.2': - resolution: {integrity: sha512-VkykWbqMjlSgBFDyrY3nOSqupMc6ivXuGmvci6Q3NnLq5kC+mKQe2QBZ4nrWRE/jqOxeFP2uYzLtwncYYcvQDg==} + '@aws-sdk/util-arn-parser@3.972.3': + resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-endpoints@3.996.3': - resolution: {integrity: sha512-yWIQSNiCjykLL+ezN5A+DfBb1gfXTytBxm57e64lYmwxDHNmInYHRJYYRAGWG1o77vKEiWaw4ui28e3yb1k5aQ==} + '@aws-sdk/util-endpoints@3.996.4': + resolution: {integrity: sha512-Hek90FBmd4joCFj+Vc98KLJh73Zqj3s2W56gjAcTkrNLMDI5nIFkG9YpfcJiVI1YlE2Ne1uOQNe+IgQ/Vz2XRA==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-locate-window@3.965.4': - resolution: {integrity: sha512-H1onv5SkgPBK2P6JR2MjGgbOnttoNzSPIRoeZTNPZYyaplwGg50zS3amXvXqF0/qfXpWEC9rLWU564QTB9bSog==} + '@aws-sdk/util-locate-window@3.965.5': + resolution: {integrity: sha512-WhlJNNINQB+9qtLtZJcpQdgZw3SCDCpXdUJP7cToGwHbCWCnRckGlc6Bx/OhWwIYFNAn+FIydY8SZ0QmVu3xTQ==} engines: {node: '>=20.0.0'} - '@aws-sdk/util-user-agent-browser@3.972.6': - resolution: {integrity: sha512-Fwr/llD6GOrFgQnKaI2glhohdGuBDfHfora6iG9qsBBBR8xv1SdCSwbtf5CWlUdCw5X7g76G/9Hf0Inh0EmoxA==} + '@aws-sdk/util-user-agent-browser@3.972.7': + resolution: {integrity: sha512-7SJVuvhKhMF/BkNS1n0QAJYgvEwYbK2QLKBrzDiwQGiTRU6Yf1f3nehTzm/l21xdAOtWSfp2uWSddPnP2ZtsVw==} - '@aws-sdk/util-user-agent-node@3.973.1': - resolution: {integrity: sha512-kmgbDqT7aCBEVrqESM2JUjbf0zhDUQ7wnt3q1RuVS+3mglrcfVb2bwkbmf38npOyyPGtQPV5dWN3m+sSFAVAgQ==} + '@aws-sdk/util-user-agent-node@3.973.5': + resolution: {integrity: sha512-Dyy38O4GeMk7UQ48RupfHif//gqnOPbq/zlvRssc11E2mClT+aUfc3VS2yD8oLtzqO3RsqQ9I3gOBB4/+HjPOw==} engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -730,8 +730,8 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.972.9': - resolution: {integrity: sha512-ItnlMgSqkPrUfJs7EsvU/01zw5UeIb2tNPhD09LBLHbg+g+HDiKibSLwpkuz/ZIlz4F2IMn+5XgE4AK/pfPuog==} + '@aws-sdk/xml-builder@3.972.10': + resolution: {integrity: sha512-OnejAIVD+CxzyAUrVic7lG+3QRltyja9LoNqCE/1YVs8ichoTbJlVSaZ9iSMcnHLyzrSNtvaOGjSDRP+d/ouFA==} engines: {node: '>=20.0.0'} '@aws/lambda-invoke-store@0.2.3': @@ -908,6 +908,9 @@ packages: '@contentstack/utils@1.7.1': resolution: {integrity: sha512-b/0t1malpJeFCNd9+1uN3BuO8mRn2b5+aNtrYEZ6YlSNjYNRu9IjqSxZ5Clhs5267950UV1ayhgFE8z3qre2eQ==} + '@contentstack/utils@1.8.0': + resolution: {integrity: sha512-pqCFbn2dynSCW6LUD2AH74LIy32dxxe52OL+HpUxNVXV5doFyClkFjP9toqdAZ81VbCEaOc4WK+VS/RdtMpxDA==} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -915,14 +918,14 @@ packages: '@dabh/diagnostics@2.0.8': resolution: {integrity: sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==} - '@emnapi/core@1.8.1': - resolution: {integrity: sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==} + '@emnapi/core@1.9.0': + resolution: {integrity: sha512-0DQ98G9ZQZOxfUcQn1waV2yS8aWdZ6kJMbYCJB3oUBecjWYO1fqJ+a1DRfPF3O5JEkwqwP1A9QEN/9mYm2Yd0w==} - '@emnapi/runtime@1.8.1': - resolution: {integrity: sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==} + '@emnapi/runtime@1.9.0': + resolution: {integrity: sha512-QN75eB0IH2ywSpRpNddCRfQIhmJYBCJ1x5Lb3IscKAL8bMnVAKnRg8dCoXbHzVLLH7P38N2Z3mtulB7W0J0FKw==} - '@emnapi/wasi-threads@1.1.0': - resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} + '@emnapi/wasi-threads@1.2.0': + resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==} '@es-joy/jsdoccomment@0.50.2': resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} @@ -975,16 +978,16 @@ packages: resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/eslintrc@3.3.4': - resolution: {integrity: sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ==} + '@eslint/eslintrc@3.3.5': + resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/js@8.57.1': resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@9.39.3': - resolution: {integrity: sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw==} + '@eslint/js@9.39.4': + resolution: {integrity: sha512-nE7DEIchvtiFTwBw4Lfbu59PG+kCofhjsKaCWzxTpt4lfRjRMqG6uMBzKXuEcyXhOHoUp9riAm7/aWYGhXZ9cw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/json@0.13.2': @@ -1252,6 +1255,10 @@ packages: resolution: {integrity: sha512-f7Rc1JBZO0wNMyDmNzP5IFOv5eM97S9pO4JUFdu2OLyk73YeBI9wog1Yyf666NOQvyptkbG1xh8inzMDQLNTyQ==} engines: {node: '>=18.0.0'} + '@oclif/core@4.8.4': + resolution: {integrity: sha512-UTAqwXJJyRvLBvosL+1uPZYSpr8lEHgUb/EVGbPXo5WZqUIBHfJ0sR2bkBEsrj00/ar4IegKxx4YK0wn2c8SQg==} + engines: {node: '>=18.0.0'} + '@oclif/plugin-help@6.2.37': resolution: {integrity: sha512-5N/X/FzlJaYfpaHwDC0YHzOzKDWa41s9t+4FpCDu4f9OMReds4JeNBaaWk9rlIzdKjh2M6AC5Q18ORfECRkHGA==} engines: {node: '>=18.0.0'} @@ -1260,8 +1267,8 @@ packages: resolution: {integrity: sha512-6RD/EuIUGxAYR45nMQg+nw+PqwCXUxkR6Eyn+1fvbVjtb9d+60OPwB77LCRUI4zKNI+n0LOFaMniEdSpb+A7kQ==} engines: {node: '>=18.0.0'} - '@oclif/plugin-plugins@5.4.56': - resolution: {integrity: sha512-mZjRudlmVSr6Stz0CVFuaIZOjwZ5DqjWepQCR/yK9nbs8YunGautpuxBx/CcqaEH29xiQfsuNOIUWa1w/+3VSA==} + '@oclif/plugin-plugins@5.4.58': + resolution: {integrity: sha512-PVvf3U98Z2a8D0T//v2tWZWw6IofZIeR0+iv+ycq2wHeukqb7/can8FLYpSI9koSonOZSnK8OFc7ZpN97KOMRQ==} engines: {node: '>=18.0.0'} '@oclif/plugin-warn-if-update-available@3.1.55': @@ -1507,223 +1514,223 @@ packages: '@sinonjs/fake-timers@15.1.1': resolution: {integrity: sha512-cO5W33JgAPbOh07tvZjUOJ7oWhtaqGHiZw+11DPbyqh2kHTBc3eF/CjJDeQ4205RLQsX6rxCuYOroFQwl7JDRw==} - '@sinonjs/samsam@8.0.3': - resolution: {integrity: sha512-hw6HbX+GyVZzmaYNh82Ecj1vdGZrqVIn/keDTg63IgAwiQPO+xCz99uG6Woqgb4tM0mUiFENKZ4cqd7IX94AXQ==} + '@sinonjs/samsam@9.0.2': + resolution: {integrity: sha512-H/JSxa4GNKZuuU41E3b8Y3tbSEx8y4uq4UH1C56ONQac16HblReJomIvv3Ud7ANQHQmkeSowY49Ij972e/pGxQ==} - '@smithy/abort-controller@4.2.10': - resolution: {integrity: sha512-qocxM/X4XGATqQtUkbE9SPUB6wekBi+FyJOMbPj0AhvyvFGYEmOlz6VB22iMePCQsFmMIvFSeViDvA7mZJG47g==} + '@smithy/abort-controller@4.2.11': + resolution: {integrity: sha512-Hj4WoYWMJnSpM6/kchsm4bUNTL9XiSyhvoMb2KIq4VJzyDt7JpGHUZHkVNPZVC7YE1tf8tPeVauxpFBKGW4/KQ==} engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader-native@4.2.2': - resolution: {integrity: sha512-QzzYIlf4yg0w5TQaC9VId3B3ugSk1MI/wb7tgcHtd7CBV9gNRKZrhc2EPSxSZuDy10zUZ0lomNMgkc6/VVe8xg==} + '@smithy/chunked-blob-reader-native@4.2.3': + resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} engines: {node: '>=18.0.0'} - '@smithy/chunked-blob-reader@5.2.1': - resolution: {integrity: sha512-y5d4xRiD6TzeP5BWlb+Ig/VFqF+t9oANNhGeMqyzU7obw7FYgTgVi50i5JqBTeKp+TABeDIeeXFZdz65RipNtA==} + '@smithy/chunked-blob-reader@5.2.2': + resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} engines: {node: '>=18.0.0'} - '@smithy/config-resolver@4.4.9': - resolution: {integrity: sha512-ejQvXqlcU30h7liR9fXtj7PIAau1t/sFbJpgWPfiYDs7zd16jpH0IsSXKcba2jF6ChTXvIjACs27kNMc5xxE2Q==} + '@smithy/config-resolver@4.4.10': + resolution: {integrity: sha512-IRTkd6ps0ru+lTWnfnsbXzW80A8Od8p3pYiZnW98K2Hb20rqfsX7VTlfUwhrcOeSSy68Gn9WBofwPuw3e5CCsg==} engines: {node: '>=18.0.0'} - '@smithy/core@3.23.7': - resolution: {integrity: sha512-/+ldRdtiO5Cb26afAZOG1FZM0x7D4AYdjpyOv2OScJw+4C7X+OLdRnNKF5UyUE0VpPgSKr3rnF/kvprRA4h2kg==} + '@smithy/core@3.23.9': + resolution: {integrity: sha512-1Vcut4LEL9HZsdpI0vFiRYIsaoPwZLjAxnVQDUMQK8beMS+EYPLDQCXtbzfxmM5GzSgjfe2Q9M7WaXwIMQllyQ==} engines: {node: '>=18.0.0'} - '@smithy/credential-provider-imds@4.2.10': - resolution: {integrity: sha512-3bsMLJJLTZGZqVGGeBVFfLzuRulVsGTj12BzRKODTHqUABpIr0jMN1vN3+u6r2OfyhAQ2pXaMZWX/swBK5I6PQ==} + '@smithy/credential-provider-imds@4.2.11': + resolution: {integrity: sha512-lBXrS6ku0kTj3xLmsJW0WwqWbGQ6ueooYyp/1L9lkyT0M02C+DWwYwc5aTyXFbRaK38ojALxNixg+LxKSHZc0g==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-codec@4.2.10': - resolution: {integrity: sha512-A4ynrsFFfSXUHicfTcRehytppFBcY3HQxEGYiyGktPIOye3Ot7fxpiy4VR42WmtGI4Wfo6OXt/c1Ky1nUFxYYQ==} + '@smithy/eventstream-codec@4.2.11': + resolution: {integrity: sha512-Sf39Ml0iVX+ba/bgMPxaXWAAFmHqYLTmbjAPfLPLY8CrYkRDEqZdUsKC1OwVMCdJXfAt0v4j49GIJ8DoSYAe6w==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-browser@4.2.10': - resolution: {integrity: sha512-0xupsu9yj9oDVuQ50YCTS9nuSYhGlrwqdaKQel9y2Fz7LU9fNErVlw9N0o4pm4qqvWEGbSTI4HKc6XJfB30MVw==} + '@smithy/eventstream-serde-browser@4.2.11': + resolution: {integrity: sha512-3rEpo3G6f/nRS7fQDsZmxw/ius6rnlIpz4UX6FlALEzz8JoSxFmdBt0SZnthis+km7sQo6q5/3e+UJcuQivoXA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-config-resolver@4.3.10': - resolution: {integrity: sha512-8kn6sinrduk0yaYHMJDsNuiFpXwQwibR7n/4CDUqn4UgaG+SeBHu5jHGFdU9BLFAM7Q4/gvr9RYxBHz9/jKrhA==} + '@smithy/eventstream-serde-config-resolver@4.3.11': + resolution: {integrity: sha512-XeNIA8tcP/GDWnnKkO7qEm/bg0B/bP9lvIXZBXcGZwZ+VYM8h8k9wuDvUODtdQ2Wcp2RcBkPTCSMmaniVHrMlA==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-node@4.2.10': - resolution: {integrity: sha512-uUrxPGgIffnYfvIOUmBM5i+USdEBRTdh7mLPttjphgtooxQ8CtdO1p6K5+Q4BBAZvKlvtJ9jWyrWpBJYzBKsyQ==} + '@smithy/eventstream-serde-node@4.2.11': + resolution: {integrity: sha512-fzbCh18rscBDTQSCrsp1fGcclLNF//nJyhjldsEl/5wCYmgpHblv5JSppQAyQI24lClsFT0wV06N1Porn0IsEw==} engines: {node: '>=18.0.0'} - '@smithy/eventstream-serde-universal@4.2.10': - resolution: {integrity: sha512-aArqzOEvcs2dK+xQVCgLbpJQGfZihw8SD4ymhkwNTtwKbnrzdhJsFDKuMQnam2kF69WzgJYOU5eJlCx+CA32bw==} + '@smithy/eventstream-serde-universal@4.2.11': + resolution: {integrity: sha512-MJ7HcI+jEkqoWT5vp+uoVaAjBrmxBtKhZTeynDRG/seEjJfqyg3SiqMMqyPnAMzmIfLaeJ/uiuSDP/l9AnMy/Q==} engines: {node: '>=18.0.0'} - '@smithy/fetch-http-handler@5.3.12': - resolution: {integrity: sha512-muS5tFw+A/uo+U+yig06vk1776UFM+aAp9hFM8efI4ZcHhTcgv6NTeK4x7ltHeMPBwnhEjcf0MULTyxNkSNxDw==} + '@smithy/fetch-http-handler@5.3.13': + resolution: {integrity: sha512-U2Hcfl2s3XaYjikN9cT4mPu8ybDbImV3baXR0PkVlC0TTx808bRP3FaPGAzPtB8OByI+JqJ1kyS+7GEgae7+qQ==} engines: {node: '>=18.0.0'} - '@smithy/hash-blob-browser@4.2.11': - resolution: {integrity: sha512-DrcAx3PM6AEbWZxsKl6CWAGnVwiz28Wp1ZhNu+Hi4uI/6C1PIZBIaPM2VoqBDAsOWbM6ZVzOEQMxFLLdmb4eBQ==} + '@smithy/hash-blob-browser@4.2.12': + resolution: {integrity: sha512-1wQE33DsxkM/waftAhCH9VtJbUGyt1PJ9YRDpOu+q9FUi73LLFUZ2fD8A61g2mT1UY9k7b99+V1xZ41Rz4SHRQ==} engines: {node: '>=18.0.0'} - '@smithy/hash-node@4.2.10': - resolution: {integrity: sha512-1VzIOI5CcsvMDvP3iv1vG/RfLJVVVc67dCRyLSB2Hn9SWCZrDO3zvcIzj3BfEtqRW5kcMg5KAeVf1K3dR6nD3w==} + '@smithy/hash-node@4.2.11': + resolution: {integrity: sha512-T+p1pNynRkydpdL015ruIoyPSRw9e/SQOWmSAMmmprfswMrd5Ow5igOWNVlvyVFZlxXqGmyH3NQwfwy8r5Jx0A==} engines: {node: '>=18.0.0'} - '@smithy/hash-stream-node@4.2.10': - resolution: {integrity: sha512-w78xsYrOlwXKwN5tv1GnKIRbHb1HygSpeZMP6xDxCPGf1U/xDHjCpJu64c5T35UKyEPwa0bPeIcvU69VY3khUA==} + '@smithy/hash-stream-node@4.2.11': + resolution: {integrity: sha512-hQsTjwPCRY8w9GK07w1RqJi3e+myh0UaOWBBhZ1UMSDgofH/Q1fEYzU1teaX6HkpX/eWDdm7tAGR0jBPlz9QEQ==} engines: {node: '>=18.0.0'} - '@smithy/invalid-dependency@4.2.10': - resolution: {integrity: sha512-vy9KPNSFUU0ajFYk0sDZIYiUlAWGEAhRfehIr5ZkdFrRFTAuXEPUd41USuqHU6vvLX4r6Q9X7MKBco5+Il0Org==} + '@smithy/invalid-dependency@4.2.11': + resolution: {integrity: sha512-cGNMrgykRmddrNhYy1yBdrp5GwIgEkniS7k9O1VLB38yxQtlvrxpZtUVvo6T4cKpeZsriukBuuxfJcdZQc/f/g==} engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} engines: {node: '>=14.0.0'} - '@smithy/is-array-buffer@4.2.1': - resolution: {integrity: sha512-Yfu664Qbf1B4IYIsYgKoABt010daZjkaCRvdU/sPnZG6TtHOB0md0RjNdLGzxe5UIdn9js4ftPICzmkRa9RJ4Q==} + '@smithy/is-array-buffer@4.2.2': + resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} engines: {node: '>=18.0.0'} - '@smithy/md5-js@4.2.10': - resolution: {integrity: sha512-Op+Dh6dPLWTjWITChFayDllIaCXRofOed8ecpggTC5fkh8yXes0vAEX7gRUfjGK+TlyxoCAA05gHbZW/zB9JwQ==} + '@smithy/md5-js@4.2.11': + resolution: {integrity: sha512-350X4kGIrty0Snx2OWv7rPM6p6vM7RzryvFs6B/56Cux3w3sChOb3bymo5oidXJlPcP9fIRxGUCk7GqpiSOtng==} engines: {node: '>=18.0.0'} - '@smithy/middleware-content-length@4.2.10': - resolution: {integrity: sha512-TQZ9kX5c6XbjhaEBpvhSvMEZ0klBs1CFtOdPFwATZSbC9UeQfKHPLPN9Y+I6wZGMOavlYTOlHEPDrt42PMSH9w==} + '@smithy/middleware-content-length@4.2.11': + resolution: {integrity: sha512-UvIfKYAKhCzr4p6jFevPlKhQwyQwlJ6IeKLDhmV1PlYfcW3RL4ROjNEDtSik4NYMi9kDkH7eSwyTP3vNJ/u/Dw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-endpoint@4.4.21': - resolution: {integrity: sha512-CoVGZaqIC0tEjz0ga3ciwCMA5fd/4lIOwO2wx0fH+cTi1zxSFZnMJbIiIF9G1d4vRSDyTupDrpS3FKBBJGkRZg==} + '@smithy/middleware-endpoint@4.4.23': + resolution: {integrity: sha512-UEFIejZy54T1EJn2aWJ45voB7RP2T+IRzUqocIdM6GFFa5ClZncakYJfcYnoXt3UsQrZZ9ZRauGm77l9UCbBLw==} engines: {node: '>=18.0.0'} - '@smithy/middleware-retry@4.4.38': - resolution: {integrity: sha512-WdHvdhjE6Fj78vxFwDKFDwlqGOGRUWrwGeuENUbTVE46Su9mnQM+dXHtbnCaQvwuSYrRsjpe8zUsFpwUp/azlA==} + '@smithy/middleware-retry@4.4.40': + resolution: {integrity: sha512-YhEMakG1Ae57FajERdHNZ4ShOPIY7DsgV+ZoAxo/5BT0KIe+f6DDU2rtIymNNFIj22NJfeeI6LWIifrwM0f+rA==} engines: {node: '>=18.0.0'} - '@smithy/middleware-serde@4.2.11': - resolution: {integrity: sha512-STQdONGPwbbC7cusL60s7vOa6He6A9w2jWhoapL0mgVjmR19pr26slV+yoSP76SIssMTX/95e5nOZ6UQv6jolg==} + '@smithy/middleware-serde@4.2.12': + resolution: {integrity: sha512-W9g1bOLui7Xn5FABRVS0o3rXL0gfN37d/8I/W7i0N7oxjx9QecUmXEMSUMADTODwdtka9cN43t5BI2CodLJpng==} engines: {node: '>=18.0.0'} - '@smithy/middleware-stack@4.2.10': - resolution: {integrity: sha512-pmts/WovNcE/tlyHa8z/groPeOtqtEpp61q3W0nW1nDJuMq/x+hWa/OVQBtgU0tBqupeXq0VBOLA4UZwE8I0YA==} + '@smithy/middleware-stack@4.2.11': + resolution: {integrity: sha512-s+eenEPW6RgliDk2IhjD2hWOxIx1NKrOHxEwNUaUXxYBxIyCcDfNULZ2Mu15E3kwcJWBedTET/kEASPV1A1Akg==} engines: {node: '>=18.0.0'} - '@smithy/node-config-provider@4.3.10': - resolution: {integrity: sha512-UALRbJtVX34AdP2VECKVlnNgidLHA2A7YgcJzwSBg1hzmnO/bZBHl/LDQQyYifzUwp1UOODnl9JJ3KNawpUJ9w==} + '@smithy/node-config-provider@4.3.11': + resolution: {integrity: sha512-xD17eE7kaLgBBGf5CZQ58hh2YmwK1Z0O8YhffwB/De2jsL0U3JklmhVYJ9Uf37OtUDLF2gsW40Xwwag9U869Gg==} engines: {node: '>=18.0.0'} - '@smithy/node-http-handler@4.4.13': - resolution: {integrity: sha512-o8CP8w6tlUA0lk+Qfwm6Ed0jCWk3bEY6iBOJjdBaowbXKCSClk8zIHQvUL6RUZMvuNafF27cbRCMYqw6O1v4aA==} + '@smithy/node-http-handler@4.4.14': + resolution: {integrity: sha512-DamSqaU8nuk0xTJDrYnRzZndHwwRnyj/n/+RqGGCcBKB4qrQem0mSDiWdupaNWdwxzyMU91qxDmHOCazfhtO3A==} engines: {node: '>=18.0.0'} - '@smithy/property-provider@4.2.10': - resolution: {integrity: sha512-5jm60P0CU7tom0eNrZ7YrkgBaoLFXzmqB0wVS+4uK8PPGmosSrLNf6rRd50UBvukztawZ7zyA8TxlrKpF5z9jw==} + '@smithy/property-provider@4.2.11': + resolution: {integrity: sha512-14T1V64o6/ndyrnl1ze1ZhyLzIeYNN47oF/QU6P5m82AEtyOkMJTb0gO1dPubYjyyKuPD6OSVMPDKe+zioOnCg==} engines: {node: '>=18.0.0'} - '@smithy/protocol-http@5.3.10': - resolution: {integrity: sha512-2NzVWpYY0tRdfeCJLsgrR89KE3NTWT2wGulhNUxYlRmtRmPwLQwKzhrfVaiNlA9ZpJvbW7cjTVChYKgnkqXj1A==} + '@smithy/protocol-http@5.3.11': + resolution: {integrity: sha512-hI+barOVDJBkNt4y0L2mu3Ugc0w7+BpJ2CZuLwXtSltGAAwCb3IvnalGlbDV/UCS6a9ZuT3+exd1WxNdLb5IlQ==} engines: {node: '>=18.0.0'} - '@smithy/querystring-builder@4.2.10': - resolution: {integrity: sha512-HeN7kEvuzO2DmAzLukE9UryiUvejD3tMp9a1D1NJETerIfKobBUCLfviP6QEk500166eD2IATaXM59qgUI+YDA==} + '@smithy/querystring-builder@4.2.11': + resolution: {integrity: sha512-7spdikrYiljpket6u0up2Ck2mxhy7dZ0+TDd+S53Dg2DHd6wg+YNJrTCHiLdgZmEXZKI7LJZcwL3721ZRDFiqA==} engines: {node: '>=18.0.0'} - '@smithy/querystring-parser@4.2.10': - resolution: {integrity: sha512-4Mh18J26+ao1oX5wXJfWlTT+Q1OpDR8ssiC9PDOuEgVBGloqg18Fw7h5Ct8DyT9NBYwJgtJ2nLjKKFU6RP1G1Q==} + '@smithy/querystring-parser@4.2.11': + resolution: {integrity: sha512-nE3IRNjDltvGcoThD2abTozI1dkSy8aX+a2N1Rs55en5UsdyyIXgGEmevUL3okZFoJC77JgRGe99xYohhsjivQ==} engines: {node: '>=18.0.0'} - '@smithy/service-error-classification@4.2.10': - resolution: {integrity: sha512-0R/+/Il5y8nB/By90o8hy/bWVYptbIfvoTYad0igYQO5RefhNCDmNzqxaMx7K1t/QWo0d6UynqpqN5cCQt1MCg==} + '@smithy/service-error-classification@4.2.11': + resolution: {integrity: sha512-HkMFJZJUhzU3HvND1+Yw/kYWXp4RPDLBWLcK1n+Vqw8xn4y2YiBhdww8IxhkQjP/QlZun5bwm3vcHc8AqIU3zw==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.4.5': - resolution: {integrity: sha512-pHgASxl50rrtOztgQCPmOXFjRW+mCd7ALr/3uXNzRrRoGV5G2+78GOsQ3HlQuBVHCh9o6xqMNvlIKZjWn4Euug==} + '@smithy/shared-ini-file-loader@4.4.6': + resolution: {integrity: sha512-IB/M5I8G0EeXZTHsAxpx51tMQ5R719F3aq+fjEB6VtNcCHDc0ajFDIGDZw+FW9GxtEkgTduiPpjveJdA/CX7sw==} engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.3.10': - resolution: {integrity: sha512-Wab3wW8468WqTKIxI+aZe3JYO52/RYT/8sDOdzkUhjnLakLe9qoQqIcfih/qxcF4qWEFoWBszY0mj5uxffaVXA==} + '@smithy/signature-v4@5.3.11': + resolution: {integrity: sha512-V1L6N9aKOBAN4wEHLyqjLBnAz13mtILU0SeDrjOaIZEeN6IFa6DxwRt1NNpOdmSpQUfkBj0qeD3m6P77uzMhgQ==} engines: {node: '>=18.0.0'} - '@smithy/smithy-client@4.12.1': - resolution: {integrity: sha512-Xf9UFHlAihewfkmLNZ6I/Ek6kcYBKoU3cbRS9Z4q++9GWoW0YFbAHs7wMbuXm+nGuKHZ5OKheZMuDdaWPv8DJw==} + '@smithy/smithy-client@4.12.3': + resolution: {integrity: sha512-7k4UxjSpHmPN2AxVhvIazRSzFQjWnud3sOsXcFStzagww17j1cFQYqTSiQ8xuYK3vKLR1Ni8FzuT3VlKr3xCNw==} engines: {node: '>=18.0.0'} '@smithy/types@4.13.0': resolution: {integrity: sha512-COuLsZILbbQsdrwKQpkkpyep7lCsByxwj7m0Mg5v66/ZTyenlfBc40/QFQ5chO0YN/PNEH1Bi3fGtfXPnYNeDw==} engines: {node: '>=18.0.0'} - '@smithy/url-parser@4.2.10': - resolution: {integrity: sha512-uypjF7fCDsRk26u3qHmFI/ePL7bxxB9vKkE+2WKEciHhz+4QtbzWiHRVNRJwU3cKhrYDYQE3b0MRFtqfLYdA4A==} + '@smithy/url-parser@4.2.11': + resolution: {integrity: sha512-oTAGGHo8ZYc5VZsBREzuf5lf2pAurJQsccMusVZ85wDkX66ojEc/XauiGjzCj50A61ObFTPe6d7Pyt6UBYaing==} engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.3.1': - resolution: {integrity: sha512-BKGuawX4Doq/bI/uEmg+Zyc36rJKWuin3py89PquXBIBqmbnJwBBsmKhdHfNEp0+A4TDgLmT/3MSKZ1SxHcR6w==} + '@smithy/util-base64@4.3.2': + resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-browser@4.2.1': - resolution: {integrity: sha512-SiJeLiozrAoCrgDBUgsVbmqHmMgg/2bA15AzcbcW+zan7SuyAVHN4xTSbq0GlebAIwlcaX32xacnrG488/J/6g==} + '@smithy/util-body-length-browser@4.2.2': + resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} engines: {node: '>=18.0.0'} - '@smithy/util-body-length-node@4.2.2': - resolution: {integrity: sha512-4rHqBvxtJEBvsZcFQSPQqXP2b/yy/YlB66KlcEgcH2WNoOKCKB03DSLzXmOsXjbl8dJ4OEYTn31knhdznwk7zw==} + '@smithy/util-body-length-node@4.2.3': + resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} engines: {node: '>=18.0.0'} '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} - '@smithy/util-buffer-from@4.2.1': - resolution: {integrity: sha512-/swhmt1qTiVkaejlmMPPDgZhEaWb/HWMGRBheaxwuVkusp/z+ErJyQxO6kaXumOciZSWlmq6Z5mNylCd33X7Ig==} + '@smithy/util-buffer-from@4.2.2': + resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} engines: {node: '>=18.0.0'} - '@smithy/util-config-provider@4.2.1': - resolution: {integrity: sha512-462id/00U8JWFw6qBuTSWfN5TxOHvDu4WliI97qOIOnuC/g+NDAknTU8eoGXEPlLkRVgWEr03jJBLV4o2FL8+A==} + '@smithy/util-config-provider@4.2.2': + resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-browser@4.3.37': - resolution: {integrity: sha512-JlPZhV1kQCGNJgofRTU6E8kHrjCKsb6cps8gco8QDVaFl7biFYzHg0p1x89ytIWyVyCkY3nOpO8tJPM47Vqlww==} + '@smithy/util-defaults-mode-browser@4.3.39': + resolution: {integrity: sha512-ui7/Ho/+VHqS7Km2wBw4/Ab4RktoiSshgcgpJzC4keFPs6tLJS4IQwbeahxQS3E/w98uq6E1mirCH/id9xIXeQ==} engines: {node: '>=18.0.0'} - '@smithy/util-defaults-mode-node@4.2.40': - resolution: {integrity: sha512-BM5cPEsyxHdYYO4Da77E94lenhaVPNUzBTyCGDkcw/n/mE8Q1cfHwr+n/w2bNPuUsPC30WaW5/hGKWOTKqw8kw==} + '@smithy/util-defaults-mode-node@4.2.42': + resolution: {integrity: sha512-QDA84CWNe8Akpj15ofLO+1N3Rfg8qa2K5uX0y6HnOp4AnRYRgWrKx/xzbYNbVF9ZsyJUYOfcoaN3y93wA/QJ2A==} engines: {node: '>=18.0.0'} - '@smithy/util-endpoints@3.3.1': - resolution: {integrity: sha512-xyctc4klmjmieQiF9I1wssBWleRV0RhJ2DpO8+8yzi2LO1Z+4IWOZNGZGNj4+hq9kdo+nyfrRLmQTzc16Op2Vg==} + '@smithy/util-endpoints@3.3.2': + resolution: {integrity: sha512-+4HFLpE5u29AbFlTdlKIT7jfOzZ8PDYZKTb3e+AgLz986OYwqTourQ5H+jg79/66DB69Un1+qKecLnkZdAsYcA==} engines: {node: '>=18.0.0'} - '@smithy/util-hex-encoding@4.2.1': - resolution: {integrity: sha512-c1hHtkgAWmE35/50gmdKajgGAKV3ePJ7t6UtEmpfCWJmQE9BQAQPz0URUVI89eSkcDqCtzqllxzG28IQoZPvwA==} + '@smithy/util-hex-encoding@4.2.2': + resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} engines: {node: '>=18.0.0'} - '@smithy/util-middleware@4.2.10': - resolution: {integrity: sha512-LxaQIWLp4y0r72eA8mwPNQ9va4h5KeLM0I3M/HV9klmFaY2kN766wf5vsTzmaOpNNb7GgXAd9a25P3h8T49PSA==} + '@smithy/util-middleware@4.2.11': + resolution: {integrity: sha512-r3dtF9F+TpSZUxpOVVtPfk09Rlo4lT6ORBqEvX3IBT6SkQAdDSVKR5GcfmZbtl7WKhKnmb3wbDTQ6ibR2XHClw==} engines: {node: '>=18.0.0'} - '@smithy/util-retry@4.2.10': - resolution: {integrity: sha512-HrBzistfpyE5uqTwiyLsFHscgnwB0kgv8vySp7q5kZ0Eltn/tjosaSGGDj/jJ9ys7pWzIP/icE2d+7vMKXLv7A==} + '@smithy/util-retry@4.2.11': + resolution: {integrity: sha512-XSZULmL5x6aCTTii59wJqKsY1l3eMIAomRAccW7Tzh9r8s7T/7rdo03oektuH5jeYRlJMPcNP92EuRDvk9aXbw==} engines: {node: '>=18.0.0'} - '@smithy/util-stream@4.5.16': - resolution: {integrity: sha512-c7awZV6cxY0czgDDSr+Bz0XfRtg8AwW2BWhrHhLJISrpmwv8QzA2qzTllWyMVNdy1+UJr9vCm29hzuh3l8TTFw==} + '@smithy/util-stream@4.5.17': + resolution: {integrity: sha512-793BYZ4h2JAQkNHcEnyFxDTcZbm9bVybD0UV/LEWmZ5bkTms7JqjfrLMi2Qy0E5WFcCzLwCAPgcvcvxoeALbAQ==} engines: {node: '>=18.0.0'} - '@smithy/util-uri-escape@4.2.1': - resolution: {integrity: sha512-YmiUDn2eo2IOiWYYvGQkgX5ZkBSiTQu4FlDo5jNPpAxng2t6Sjb6WutnZV9l6VR4eJul1ABmCrnWBC9hKHQa6Q==} + '@smithy/util-uri-escape@4.2.2': + resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} engines: {node: '>=18.0.0'} '@smithy/util-utf8@2.3.0': resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} engines: {node: '>=14.0.0'} - '@smithy/util-utf8@4.2.1': - resolution: {integrity: sha512-DSIwNaWtmzrNQHv8g7DBGR9mulSit65KSj5ymGEIAknmIN8IpbZefEep10LaMG/P/xquwbmJ1h9ectz8z6mV6g==} + '@smithy/util-utf8@4.2.2': + resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} engines: {node: '>=18.0.0'} - '@smithy/util-waiter@4.2.10': - resolution: {integrity: sha512-4eTWph/Lkg1wZEDAyObwme0kmhEb7J/JjibY2znJdrYRgKbKqB7YoEhhJVJ4R1g/SYih4zuwX7LpJaM8RsnTVg==} + '@smithy/util-waiter@4.2.12': + resolution: {integrity: sha512-ek5hyDrzS6mBFsNCEX8LpM+EWSLq6b9FdmPRlkpXXhiJE6aIZehKT9clC6+nFpZAA+i/Yg0xlaPeWGNbf5rzQA==} engines: {node: '>=18.0.0'} - '@smithy/uuid@1.1.1': - resolution: {integrity: sha512-dSfDCeihDmZlV2oyr0yWPTUfh07suS+R5OB+FZGiv/hHyK3hrFBW5rR1UYjfa57vBsrP9lciFkRPzebaV1Qujw==} + '@smithy/uuid@1.1.2': + resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} engines: {node: '>=18.0.0'} '@so-ric/colorspace@1.1.6': @@ -1735,8 +1742,8 @@ packages: peerDependencies: eslint: '>=8.40.0' - '@stylistic/eslint-plugin@5.9.0': - resolution: {integrity: sha512-FqqSkvDMYJReydrMhlugc71M76yLLQWNfmGq+SIlLa7N3kHp8Qq8i2PyWrVNAfjOyOIY+xv9XaaYwvVW7vroMA==} + '@stylistic/eslint-plugin@5.10.0': + resolution: {integrity: sha512-nPK52ZHvot8Ju/0A4ucSX1dcPV2/1clx0kLcH5wDmrE4naKso7TUC/voUyU1O9OTKTrR6MYip6LP0ogEMQ9jPQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^9.0.0 || ^10.0.0 @@ -1770,9 +1777,15 @@ packages: '@types/chai@4.3.20': resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + '@types/chai@5.2.3': + resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} + '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + '@types/deep-eql@4.0.2': + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1825,14 +1838,14 @@ packages: '@types/node@14.18.63': resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} - '@types/node@22.19.13': - resolution: {integrity: sha512-akNQMv0wW5uyRpD2v2IEyRSZiR+BeGuoB6L310EgGObO44HSMNT8z1xzio28V8qOrgYaopIDNA18YgdXd+qTiw==} + '@types/node@22.19.15': + resolution: {integrity: sha512-F0R/h2+dsy5wJAUe3tAU6oqa2qbWY5TpNfL/RGmo1y38hiyO1w3x2jPtt76wmuaJI4DQnOBu21cNXQ2STIUUWg==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + '@types/qs@6.15.0': + resolution: {integrity: sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==} '@types/range-parser@1.2.7': resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} @@ -1881,11 +1894,11 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.56.1': - resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} + '@typescript-eslint/eslint-plugin@8.57.0': + resolution: {integrity: sha512-qeu4rTHR3/IaFORbD16gmjq9+rEs9fGKdX0kF6BKSfi+gCuG3RCKLlSBYzn/bGsY9Tj7KE/DAQStbp8AHJGHEQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.56.1 + '@typescript-eslint/parser': ^8.57.0 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' @@ -1899,15 +1912,15 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.56.1': - resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} + '@typescript-eslint/parser@8.57.0': + resolution: {integrity: sha512-XZzOmihLIr8AD1b9hL9ccNMzEMWt/dE2u7NyTY9jJG6YNiNthaD5XtUHVF2uCXZ15ng+z2hT3MVuxnUYhq6k1g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.56.1': - resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} + '@typescript-eslint/project-service@8.57.0': + resolution: {integrity: sha512-pR+dK0BlxCLxtWfaKQWtYr7MhKmzqZxuii+ZjuFlZlIGRZm22HnXFqa2eY+90MUz8/i80YJmzFGDUsi8dMOV5w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -1920,12 +1933,12 @@ packages: resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.56.1': - resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} + '@typescript-eslint/scope-manager@8.57.0': + resolution: {integrity: sha512-nvExQqAHF01lUM66MskSaZulpPL5pgy5hI5RfrxviLgzZVffB5yYzw27uK/ft8QnKXI2X0LBrHJFr1TaZtAibw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.56.1': - resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} + '@typescript-eslint/tsconfig-utils@8.57.0': + resolution: {integrity: sha512-LtXRihc5ytjJIQEH+xqjB0+YgsV4/tW35XKX3GTZHpWtcC8SPkT/d4tqdf1cKtesryHm2bgp6l555NYcT2NLvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -1940,8 +1953,8 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.56.1': - resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} + '@typescript-eslint/type-utils@8.57.0': + resolution: {integrity: sha512-yjgh7gmDcJ1+TcEg8x3uWQmn8ifvSupnPfjP21twPKrDP/pTHlEQgmKcitzF/rzPSmv7QjJ90vRpN4U+zoUjwQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -1955,8 +1968,8 @@ packages: resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.56.1': - resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} + '@typescript-eslint/types@8.57.0': + resolution: {integrity: sha512-dTLI8PEXhjUC7B9Kre+u0XznO696BhXcTlOn0/6kf1fHaQW8+VjJAVHJ3eTI14ZapTxdkOmc80HblPQLaEeJdg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@6.21.0': @@ -1977,8 +1990,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.56.1': - resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} + '@typescript-eslint/typescript-estree@8.57.0': + resolution: {integrity: sha512-m7faHcyVg0BT3VdYTlX8GdJEM7COexXxS6KqGopxdtkQRvBanK377QDHr4W/vIPAR+ah9+B/RclSW5ldVniO1Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -1995,8 +2008,8 @@ packages: peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.56.1': - resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} + '@typescript-eslint/utils@8.57.0': + resolution: {integrity: sha512-5iIHvpD3CZe06riAsbNxxreP+MuYgVUsV0n4bwLH//VJmgtt54sQeY2GszntJ4BjYCpMzrfVh2SBnUQTtys2lQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -2010,8 +2023,8 @@ packages: resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.56.1': - resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} + '@typescript-eslint/visitor-keys@8.57.0': + resolution: {integrity: sha512-zm6xx8UT/Xy2oSr2ZXD0pZo7Jx2XsCoID2IUh9YSTFRu7z+WdwYTRk6LhUftm1crwqbuoF6I8zAFeCMw0YjwDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -2323,6 +2336,10 @@ packages: assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -2479,8 +2496,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001776: - resolution: {integrity: sha512-sg01JDPzZ9jGshqKSckOQthXnYwOEP50jeVFhaSFbZcOy05TiuuaffDOfcwtCisJ9kNQuLBFibYywv2Bgm9osw==} + caniuse-lite@1.0.30001778: + resolution: {integrity: sha512-PN7uxFL+ExFJO61aVmP1aIEG4i9whQd4eoSCebav62UwDyp5OHh06zN4jqKSMePVgxHifCw1QJxdRkA1Pisekg==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -2909,8 +2926,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.307: - resolution: {integrity: sha512-5z3uFKBWjiNR44nFcYdkcXjKMbg5KXNdciu7mhTPo9tB7NbqSNP2sSnGR+fqknZSCwKkBN+oxiiajWs4dT6ORg==} + electron-to-chromium@1.5.313: + resolution: {integrity: sha512-QBMrTWEf00GXZmJyx2lbYD45jpI3TUFnNIzJ5BBc8piGUDwMPa1GV6HJWTZVvY/eiN3fSopl7NRbgGp9sZ9LTA==} elegant-spinner@1.0.1: resolution: {integrity: sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ==} @@ -3017,8 +3034,8 @@ packages: resolution: {integrity: sha512-NNTyyolSmKJicgxtoWZ/hoy2Rw56WIoWCFxgnBkXqDgi9qPKMwZs2Nx2b6SHLJvCiWWhZhWr5V46CFPo3PSPag==} engines: {node: '>=18.0.0'} - eslint-config-oclif@6.0.146: - resolution: {integrity: sha512-x59Gopo4wQiuuGOUQ2D3HaIpU1LaeksPql3vTGBNnAM0dNmHWqchMvaYczoRVBx0tfGVljWGYqDA0I/355cF4Q==} + eslint-config-oclif@6.0.148: + resolution: {integrity: sha512-WhunT0kumapHtxh+I/LgSIavl5pu3s1ZfmtOmq+LahsffsX8ufyDFuuwIunxD6QcALuFxusANRn3r6MNeAivjQ==} engines: {node: '>=18.18.0'} eslint-config-xo-space@0.35.0: @@ -3296,8 +3313,8 @@ packages: fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} - fast-xml-builder@1.0.0: - resolution: {integrity: sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ==} + fast-xml-builder@1.1.2: + resolution: {integrity: sha512-NJAmiuVaJEjVa7TjLZKlYd7RqmzOC91EtPFXHvlTcqBVo50Qh7XV5IwvXi1c7NRz2Q/majGX9YLcwJtWgHjtkA==} fast-xml-parser@5.4.1: resolution: {integrity: sha512-BQ30U1mKkvXQXXkAGcuyUA/GA26oEB7NzOtsxCDtyu62sjGw5QraKFhx2Em3WQNjPw9PG6MQ9yuIIgkSDfGu5A==} @@ -3381,8 +3398,8 @@ packages: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - flatted@3.3.4: - resolution: {integrity: sha512-3+mMldrTAPdta5kjX2G2J7iX4zxtnwpdA8Tr2ZSjkyPSanvbZAcy6flmtnXbEybHrDcU9641lxrMfFuUxVz9vA==} + flatted@3.4.1: + resolution: {integrity: sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==} fn.name@1.1.0: resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==} @@ -3598,8 +3615,8 @@ packages: peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql@16.13.0: - resolution: {integrity: sha512-uSisMYERbaB9bkA9M4/4dnqyktaEkf1kMHNKq/7DHyxVeWqHQ2mBmVqm5u6/FVHwF3iCNalKcg82Zfl+tffWoA==} + graphql@16.13.1: + resolution: {integrity: sha512-gGgrVCoDKlIZ8fIqXBBb0pPKqDgki0Z/FSKNiQzSGj2uEYHr1tq5wmBegGwJx6QB5S5cM0khSBpi/JFHMCvsmQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} has-ansi@2.0.0: @@ -4516,8 +4533,8 @@ packages: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - npm@10.9.4: - resolution: {integrity: sha512-OnUG836FwboQIbqtefDNlyR0gTHzIfwRfE3DuiNewBvnMnWEpB0VEXwBlFVgqpNzIgYo/MHh3d2Hel/pszapAA==} + npm@10.9.6: + resolution: {integrity: sha512-EHxr81fXY1K9yyLklI2gc9WuhMSh2e4PXuVG/VXJoHSrH4Lbrv01V/Nhkqu+mvm+58UMh59YBtvHU2wb4ikCUw==} engines: {node: ^18.17.0 || >=20.5.0} hasBin: true bundledDependencies: @@ -4638,8 +4655,8 @@ packages: resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} - oclif@4.22.81: - resolution: {integrity: sha512-MO2bupt/3wWYqt05F8ZLwMYKN58YqDfRVdJxAvCdg/wZJg6/sDXVKoMSTSzwqsnIaJGjru2LBNvk8lH+p+1uMQ==} + oclif@4.22.87: + resolution: {integrity: sha512-Qm+z93+fn4HSuQnbMZj6Vimje2U+LGJ4YDKLyaWL7JYq4DX17s2DAEPhbgQyC+baLvf9cC4KYXKWbVe4hnNyQA==} engines: {node: '>=18.0.0'} hasBin: true @@ -4783,6 +4800,10 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} + path-expression-matcher@1.1.3: + resolution: {integrity: sha512-qdVgY8KXmVdJZRSS1JdEPOKPdTiEK/pi0RkcT2sw1RhXxohdujUlJFPuS1TSkevZ9vzd3ZlL7ULl1MHGTApKzQ==} + engines: {node: '>=14.0.0'} + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} @@ -4839,8 +4860,8 @@ packages: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} - pnpm@10.30.3: - resolution: {integrity: sha512-yWHR4KLY41TsqlFmuCJRZmi39Ey1vZUSLVkN2Bki9gb1RzttI+xKW+Bef80Y6EiNR9l4u+mBhy8RRdBumnQAFw==} + pnpm@10.32.1: + resolution: {integrity: sha512-pwaTjw6JrBRWtlY+q07fHR+vM2jRGR/FxZeQ6W3JGORFarLmfWE94QQ9LoyB+HMD5rQNT/7KnfFe8a1Wc0jyvg==} engines: {node: '>=18.12'} hasBin: true @@ -5232,8 +5253,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - sinon@21.0.1: - resolution: {integrity: sha512-Z0NVCW45W8Mg5oC/27/+fCqIHFnW8kpkFOq0j9XJIev4Ld0mKmERaZv5DMLAb9fGCevjKwaEeIQz5+MBXfZcDw==} + sinon@21.0.2: + resolution: {integrity: sha512-VHV4UaoxIe5jrMd89Y9duI76T5g3Lp+ET+ctLhLDaZtSznDPah1KKpRElbdBV4RwqWSw2vadFiVs9Del7MbVeQ==} slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} @@ -5437,8 +5458,8 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - tar@7.5.10: - resolution: {integrity: sha512-8mOPs1//5q/rlkNSPcCegA6hiHJYDmSLEI8aMH/CdSQJNWztHC9WHNam5zdQlfpTwB9Xp7IBEsHfV5LKMJGVAw==} + tar@7.5.11: + resolution: {integrity: sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==} engines: {node: '>=18'} test-exclude@6.0.0: @@ -5626,8 +5647,8 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.56.1: - resolution: {integrity: sha512-U4lM6pjmBX7J5wk4szltF7I1cGBHXZopnAXCMXb3+fZ3B/0Z3hq3wS/CCUB2NZBNAExK92mCU2tEohWuwVMsDQ==} + typescript-eslint@8.57.0: + resolution: {integrity: sha512-W8GcigEMEeB07xEZol8oJ26rigm3+bfPHxHvwbYUlu1fUDsGuQ7Hiskx5xGW/xM4USc9Ephe3jtv7ZYPQntHeA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 @@ -5926,14 +5947,14 @@ packages: snapshots: - '@apollo/client@3.14.0(graphql@16.13.0)': + '@apollo/client@3.14.0(graphql@16.13.1)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.13.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.13.1) '@wry/caches': 1.0.1 '@wry/equality': 0.5.7 '@wry/trie': 0.5.0 - graphql: 16.13.0 - graphql-tag: 2.12.6(graphql@16.13.0) + graphql: 16.13.1 + graphql-tag: 2.12.6(graphql@16.13.1) hoist-non-react-statics: 3.3.2 optimism: 0.18.1 prop-types: 15.8.1 @@ -5948,21 +5969,21 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-locate-window': 3.965.4 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -5971,15 +5992,15 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-locate-window': 3.965.4 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -5988,444 +6009,445 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-cloudfront@3.1001.0': + '@aws-sdk/client-cloudfront@3.1004.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.16 - '@aws-sdk/credential-provider-node': 3.972.15 - '@aws-sdk/middleware-host-header': 3.972.6 - '@aws-sdk/middleware-logger': 3.972.6 - '@aws-sdk/middleware-recursion-detection': 3.972.6 - '@aws-sdk/middleware-user-agent': 3.972.16 - '@aws-sdk/region-config-resolver': 3.972.6 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-endpoints': 3.996.3 - '@aws-sdk/util-user-agent-browser': 3.972.6 - '@aws-sdk/util-user-agent-node': 3.973.1 - '@smithy/config-resolver': 4.4.9 - '@smithy/core': 3.23.7 - '@smithy/fetch-http-handler': 5.3.12 - '@smithy/hash-node': 4.2.10 - '@smithy/invalid-dependency': 4.2.10 - '@smithy/middleware-content-length': 4.2.10 - '@smithy/middleware-endpoint': 4.4.21 - '@smithy/middleware-retry': 4.4.38 - '@smithy/middleware-serde': 4.2.11 - '@smithy/middleware-stack': 4.2.10 - '@smithy/node-config-provider': 4.3.10 - '@smithy/node-http-handler': 4.4.13 - '@smithy/protocol-http': 5.3.10 - '@smithy/smithy-client': 4.12.1 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-node': 3.972.19 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.10 - '@smithy/util-base64': 4.3.1 - '@smithy/util-body-length-browser': 4.2.1 - '@smithy/util-body-length-node': 4.2.2 - '@smithy/util-defaults-mode-browser': 4.3.37 - '@smithy/util-defaults-mode-node': 4.2.40 - '@smithy/util-endpoints': 3.3.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-retry': 4.2.10 - '@smithy/util-stream': 4.5.16 - '@smithy/util-utf8': 4.2.1 - '@smithy/util-waiter': 4.2.10 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.12 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-s3@3.1001.0': + '@aws-sdk/client-s3@3.1004.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.973.16 - '@aws-sdk/credential-provider-node': 3.972.15 - '@aws-sdk/middleware-bucket-endpoint': 3.972.6 - '@aws-sdk/middleware-expect-continue': 3.972.6 - '@aws-sdk/middleware-flexible-checksums': 3.973.2 - '@aws-sdk/middleware-host-header': 3.972.6 - '@aws-sdk/middleware-location-constraint': 3.972.6 - '@aws-sdk/middleware-logger': 3.972.6 - '@aws-sdk/middleware-recursion-detection': 3.972.6 - '@aws-sdk/middleware-sdk-s3': 3.972.16 - '@aws-sdk/middleware-ssec': 3.972.6 - '@aws-sdk/middleware-user-agent': 3.972.16 - '@aws-sdk/region-config-resolver': 3.972.6 - '@aws-sdk/signature-v4-multi-region': 3.996.4 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-endpoints': 3.996.3 - '@aws-sdk/util-user-agent-browser': 3.972.6 - '@aws-sdk/util-user-agent-node': 3.973.1 - '@smithy/config-resolver': 4.4.9 - '@smithy/core': 3.23.7 - '@smithy/eventstream-serde-browser': 4.2.10 - '@smithy/eventstream-serde-config-resolver': 4.3.10 - '@smithy/eventstream-serde-node': 4.2.10 - '@smithy/fetch-http-handler': 5.3.12 - '@smithy/hash-blob-browser': 4.2.11 - '@smithy/hash-node': 4.2.10 - '@smithy/hash-stream-node': 4.2.10 - '@smithy/invalid-dependency': 4.2.10 - '@smithy/md5-js': 4.2.10 - '@smithy/middleware-content-length': 4.2.10 - '@smithy/middleware-endpoint': 4.4.21 - '@smithy/middleware-retry': 4.4.38 - '@smithy/middleware-serde': 4.2.11 - '@smithy/middleware-stack': 4.2.10 - '@smithy/node-config-provider': 4.3.10 - '@smithy/node-http-handler': 4.4.13 - '@smithy/protocol-http': 5.3.10 - '@smithy/smithy-client': 4.12.1 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-node': 3.972.19 + '@aws-sdk/middleware-bucket-endpoint': 3.972.7 + '@aws-sdk/middleware-expect-continue': 3.972.7 + '@aws-sdk/middleware-flexible-checksums': 3.973.5 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-location-constraint': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-sdk-s3': 3.972.19 + '@aws-sdk/middleware-ssec': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/signature-v4-multi-region': 3.996.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/eventstream-serde-browser': 4.2.11 + '@smithy/eventstream-serde-config-resolver': 4.3.11 + '@smithy/eventstream-serde-node': 4.2.11 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-blob-browser': 4.2.12 + '@smithy/hash-node': 4.2.11 + '@smithy/hash-stream-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/md5-js': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.10 - '@smithy/util-base64': 4.3.1 - '@smithy/util-body-length-browser': 4.2.1 - '@smithy/util-body-length-node': 4.2.2 - '@smithy/util-defaults-mode-browser': 4.3.37 - '@smithy/util-defaults-mode-node': 4.2.40 - '@smithy/util-endpoints': 3.3.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-retry': 4.2.10 - '@smithy/util-stream': 4.5.16 - '@smithy/util-utf8': 4.2.1 - '@smithy/util-waiter': 4.2.10 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.2.12 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.973.16': + '@aws-sdk/core@3.973.19': dependencies: - '@aws-sdk/types': 3.973.4 - '@aws-sdk/xml-builder': 3.972.9 - '@smithy/core': 3.23.7 - '@smithy/node-config-provider': 4.3.10 - '@smithy/property-provider': 4.2.10 - '@smithy/protocol-http': 5.3.10 - '@smithy/signature-v4': 5.3.10 - '@smithy/smithy-client': 4.12.1 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/xml-builder': 3.972.10 + '@smithy/core': 3.23.9 + '@smithy/node-config-provider': 4.3.11 + '@smithy/property-provider': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/signature-v4': 5.3.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/crc64-nvme@3.972.3': + '@aws-sdk/crc64-nvme@3.972.4': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.972.14': + '@aws-sdk/credential-provider-env@3.972.17': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.10 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.972.16': + '@aws-sdk/credential-provider-http@3.972.19': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/types': 3.973.4 - '@smithy/fetch-http-handler': 5.3.12 - '@smithy/node-http-handler': 4.4.13 - '@smithy/property-provider': 4.2.10 - '@smithy/protocol-http': 5.3.10 - '@smithy/smithy-client': 4.12.1 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/node-http-handler': 4.4.14 + '@smithy/property-provider': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.16 + '@smithy/util-stream': 4.5.17 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.972.14': - dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/credential-provider-env': 3.972.14 - '@aws-sdk/credential-provider-http': 3.972.16 - '@aws-sdk/credential-provider-login': 3.972.14 - '@aws-sdk/credential-provider-process': 3.972.14 - '@aws-sdk/credential-provider-sso': 3.972.14 - '@aws-sdk/credential-provider-web-identity': 3.972.14 - '@aws-sdk/nested-clients': 3.996.4 - '@aws-sdk/types': 3.973.4 - '@smithy/credential-provider-imds': 4.2.10 - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/credential-provider-ini@3.972.18': + dependencies: + '@aws-sdk/core': 3.973.19 + '@aws-sdk/credential-provider-env': 3.972.17 + '@aws-sdk/credential-provider-http': 3.972.19 + '@aws-sdk/credential-provider-login': 3.972.18 + '@aws-sdk/credential-provider-process': 3.972.17 + '@aws-sdk/credential-provider-sso': 3.972.18 + '@aws-sdk/credential-provider-web-identity': 3.972.18 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/credential-provider-imds': 4.2.11 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-login@3.972.14': + '@aws-sdk/credential-provider-login@3.972.18': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/nested-clients': 3.996.4 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.10 - '@smithy/protocol-http': 5.3.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.972.15': - dependencies: - '@aws-sdk/credential-provider-env': 3.972.14 - '@aws-sdk/credential-provider-http': 3.972.16 - '@aws-sdk/credential-provider-ini': 3.972.14 - '@aws-sdk/credential-provider-process': 3.972.14 - '@aws-sdk/credential-provider-sso': 3.972.14 - '@aws-sdk/credential-provider-web-identity': 3.972.14 - '@aws-sdk/types': 3.973.4 - '@smithy/credential-provider-imds': 4.2.10 - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/credential-provider-node@3.972.19': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.17 + '@aws-sdk/credential-provider-http': 3.972.19 + '@aws-sdk/credential-provider-ini': 3.972.18 + '@aws-sdk/credential-provider-process': 3.972.17 + '@aws-sdk/credential-provider-sso': 3.972.18 + '@aws-sdk/credential-provider-web-identity': 3.972.18 + '@aws-sdk/types': 3.973.5 + '@smithy/credential-provider-imds': 4.2.11 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.972.14': + '@aws-sdk/credential-provider-process@3.972.17': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.972.14': + '@aws-sdk/credential-provider-sso@3.972.18': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/nested-clients': 3.996.4 - '@aws-sdk/token-providers': 3.1001.0 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/token-providers': 3.1005.0 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.972.14': + '@aws-sdk/credential-provider-web-identity@3.972.18': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/nested-clients': 3.996.4 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/middleware-bucket-endpoint@3.972.6': + '@aws-sdk/middleware-bucket-endpoint@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-arn-parser': 3.972.2 - '@smithy/node-config-provider': 4.3.10 - '@smithy/protocol-http': 5.3.10 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.1 + '@smithy/util-config-provider': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-expect-continue@3.972.6': + '@aws-sdk/middleware-expect-continue@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/protocol-http': 5.3.10 + '@aws-sdk/types': 3.973.5 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.973.2': + '@aws-sdk/middleware-flexible-checksums@3.973.5': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.973.16 - '@aws-sdk/crc64-nvme': 3.972.3 - '@aws-sdk/types': 3.973.4 - '@smithy/is-array-buffer': 4.2.1 - '@smithy/node-config-provider': 4.3.10 - '@smithy/protocol-http': 5.3.10 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/crc64-nvme': 3.972.4 + '@aws-sdk/types': 3.973.5 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-stream': 4.5.16 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-host-header@3.972.6': + '@aws-sdk/middleware-host-header@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/protocol-http': 5.3.10 + '@aws-sdk/types': 3.973.5 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/middleware-location-constraint@3.972.6': + '@aws-sdk/middleware-location-constraint@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.972.6': + '@aws-sdk/middleware-logger@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.972.6': + '@aws-sdk/middleware-recursion-detection@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@aws/lambda-invoke-store': 0.2.3 - '@smithy/protocol-http': 5.3.10 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.972.16': + '@aws-sdk/middleware-sdk-s3@3.972.19': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-arn-parser': 3.972.2 - '@smithy/core': 3.23.7 - '@smithy/node-config-provider': 4.3.10 - '@smithy/protocol-http': 5.3.10 - '@smithy/signature-v4': 5.3.10 - '@smithy/smithy-client': 4.12.1 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/core': 3.23.9 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/signature-v4': 5.3.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-stream': 4.5.16 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@aws-sdk/middleware-ssec@3.972.6': + '@aws-sdk/middleware-ssec@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.972.16': + '@aws-sdk/middleware-user-agent@3.972.20': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-endpoints': 3.996.3 - '@smithy/core': 3.23.7 - '@smithy/protocol-http': 5.3.10 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@smithy/core': 3.23.9 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 + '@smithy/util-retry': 4.2.11 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.996.4': + '@aws-sdk/nested-clients@3.996.8': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.973.16 - '@aws-sdk/middleware-host-header': 3.972.6 - '@aws-sdk/middleware-logger': 3.972.6 - '@aws-sdk/middleware-recursion-detection': 3.972.6 - '@aws-sdk/middleware-user-agent': 3.972.16 - '@aws-sdk/region-config-resolver': 3.972.6 - '@aws-sdk/types': 3.973.4 - '@aws-sdk/util-endpoints': 3.996.3 - '@aws-sdk/util-user-agent-browser': 3.972.6 - '@aws-sdk/util-user-agent-node': 3.973.1 - '@smithy/config-resolver': 4.4.9 - '@smithy/core': 3.23.7 - '@smithy/fetch-http-handler': 5.3.12 - '@smithy/hash-node': 4.2.10 - '@smithy/invalid-dependency': 4.2.10 - '@smithy/middleware-content-length': 4.2.10 - '@smithy/middleware-endpoint': 4.4.21 - '@smithy/middleware-retry': 4.4.38 - '@smithy/middleware-serde': 4.2.11 - '@smithy/middleware-stack': 4.2.10 - '@smithy/node-config-provider': 4.3.10 - '@smithy/node-http-handler': 4.4.13 - '@smithy/protocol-http': 5.3.10 - '@smithy/smithy-client': 4.12.1 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/middleware-host-header': 3.972.7 + '@aws-sdk/middleware-logger': 3.972.7 + '@aws-sdk/middleware-recursion-detection': 3.972.7 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/region-config-resolver': 3.972.7 + '@aws-sdk/types': 3.973.5 + '@aws-sdk/util-endpoints': 3.996.4 + '@aws-sdk/util-user-agent-browser': 3.972.7 + '@aws-sdk/util-user-agent-node': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/core': 3.23.9 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/hash-node': 4.2.11 + '@smithy/invalid-dependency': 4.2.11 + '@smithy/middleware-content-length': 4.2.11 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-retry': 4.4.40 + '@smithy/middleware-serde': 4.2.12 + '@smithy/middleware-stack': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/node-http-handler': 4.4.14 + '@smithy/protocol-http': 5.3.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.10 - '@smithy/util-base64': 4.3.1 - '@smithy/util-body-length-browser': 4.2.1 - '@smithy/util-body-length-node': 4.2.2 - '@smithy/util-defaults-mode-browser': 4.3.37 - '@smithy/util-defaults-mode-node': 4.2.40 - '@smithy/util-endpoints': 3.3.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-retry': 4.2.10 - '@smithy/util-utf8': 4.2.1 + '@smithy/url-parser': 4.2.11 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.39 + '@smithy/util-defaults-mode-node': 4.2.42 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.972.6': + '@aws-sdk/region-config-resolver@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 - '@smithy/config-resolver': 4.4.9 - '@smithy/node-config-provider': 4.3.10 + '@aws-sdk/types': 3.973.5 + '@smithy/config-resolver': 4.4.10 + '@smithy/node-config-provider': 4.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.996.4': + '@aws-sdk/signature-v4-multi-region@3.996.7': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.972.16 - '@aws-sdk/types': 3.973.4 - '@smithy/protocol-http': 5.3.10 - '@smithy/signature-v4': 5.3.10 + '@aws-sdk/middleware-sdk-s3': 3.972.19 + '@aws-sdk/types': 3.973.5 + '@smithy/protocol-http': 5.3.11 + '@smithy/signature-v4': 5.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.1001.0': + '@aws-sdk/token-providers@3.1005.0': dependencies: - '@aws-sdk/core': 3.973.16 - '@aws-sdk/nested-clients': 3.996.4 - '@aws-sdk/types': 3.973.4 - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@aws-sdk/core': 3.973.19 + '@aws-sdk/nested-clients': 3.996.8 + '@aws-sdk/types': 3.973.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.973.4': + '@aws-sdk/types@3.973.5': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/util-arn-parser@3.972.2': + '@aws-sdk/util-arn-parser@3.972.3': dependencies: tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.996.3': + '@aws-sdk/util-endpoints@3.996.4': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.10 - '@smithy/util-endpoints': 3.3.1 + '@smithy/url-parser': 4.2.11 + '@smithy/util-endpoints': 3.3.2 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.965.4': + '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.972.6': + '@aws-sdk/util-user-agent-browser@3.972.7': dependencies: - '@aws-sdk/types': 3.973.4 + '@aws-sdk/types': 3.973.5 '@smithy/types': 4.13.0 bowser: 2.14.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.973.1': + '@aws-sdk/util-user-agent-node@3.973.5': dependencies: - '@aws-sdk/middleware-user-agent': 3.972.16 - '@aws-sdk/types': 3.973.4 - '@smithy/node-config-provider': 4.3.10 + '@aws-sdk/middleware-user-agent': 3.972.20 + '@aws-sdk/types': 3.973.5 + '@smithy/node-config-provider': 4.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.972.9': + '@aws-sdk/xml-builder@3.972.10': dependencies: '@smithy/types': 4.13.0 fast-xml-parser: 5.4.1 @@ -6552,9 +6574,9 @@ snapshots: dependencies: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 - '@oclif/plugin-plugins': 5.4.56 + '@oclif/plugin-plugins': 5.4.58 chalk: 4.1.2 fast-csv: 4.3.6 fs-extra: 11.3.4 @@ -6572,11 +6594,11 @@ snapshots: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-config': 1.20.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 inquirer: 8.2.7(@types/node@14.18.63) mkdirp: 1.0.4 - tar: 7.5.10 + tar: 7.5.11 transitivePeerDependencies: - '@types/node' - debug @@ -6586,7 +6608,7 @@ snapshots: dependencies: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 just-diff: 6.0.2 @@ -6600,7 +6622,7 @@ snapshots: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-config': 1.20.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 dotenv: 16.6.1 @@ -6618,7 +6640,7 @@ snapshots: '@contentstack/cli-cm-import': 1.32.0-beta.0(@types/node@14.18.63) '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 inquirer: 8.2.7(@types/node@14.18.63) @@ -6636,7 +6658,7 @@ snapshots: dependencies: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 fast-csv: 4.3.6 inquirer: 8.2.7(@types/node@14.18.63) @@ -6651,7 +6673,7 @@ snapshots: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-variants': 1.4.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 async: 3.2.6 big-json: 3.2.0 bluebird: 3.7.2 @@ -6670,7 +6692,7 @@ snapshots: dependencies: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 big-json: 3.2.0 chalk: 4.1.2 fs-extra: 11.3.4 @@ -6688,7 +6710,7 @@ snapshots: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-variants': 1.4.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 big-json: 3.2.0 bluebird: 3.7.2 chalk: 4.1.2 @@ -6710,7 +6732,7 @@ snapshots: '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) '@contentstack/json-rte-serializer': 2.1.0 - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 collapse-whitespace: 1.1.7 @@ -6719,7 +6741,7 @@ snapshots: lodash: 4.17.23 nock: 13.5.6 omit-deep-lodash: 1.1.7 - sinon: 21.0.1 + sinon: 21.0.2 transitivePeerDependencies: - '@types/node' - bufferutil @@ -6735,7 +6757,7 @@ snapshots: '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) inquirer: 8.2.7(@types/node@14.18.63) mkdirp: 1.0.4 - tar: 7.5.10 + tar: 7.5.11 tmp: 0.2.5 transitivePeerDependencies: - '@types/node' @@ -6745,7 +6767,7 @@ snapshots: '@contentstack/cli-command@1.7.2(@types/node@14.18.63)(debug@4.4.3)': dependencies: '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 contentstack: 3.26.4 transitivePeerDependencies: @@ -6755,7 +6777,7 @@ snapshots: '@contentstack/cli-command@1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 contentstack: 3.26.4 transitivePeerDependencies: @@ -6767,7 +6789,7 @@ snapshots: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/utils': 1.7.1 - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 lodash: 4.17.23 transitivePeerDependencies: @@ -6776,10 +6798,10 @@ snapshots: '@contentstack/cli-launch@1.9.6(@types/node@14.18.63)(debug@4.4.3)(tslib@2.8.1)(typescript@4.9.5)': dependencies: - '@apollo/client': 3.14.0(graphql@16.13.0) + '@apollo/client': 3.14.0(graphql@16.13.1) '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 '@rollup/plugin-commonjs': 28.0.9(rollup@4.59.0) '@rollup/plugin-json': 6.1.0(rollup@4.59.0) @@ -6793,7 +6815,7 @@ snapshots: dotenv: 16.6.1 express: 4.22.1 form-data: 4.0.4 - graphql: 16.13.0 + graphql: 16.13.1 ini: 3.0.1 lodash: 4.17.23 open: 8.4.2 @@ -6816,7 +6838,7 @@ snapshots: dependencies: '@contentstack/cli-command': 1.8.0-beta.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 async: 3.2.6 callsites: 3.1.0 @@ -6835,7 +6857,7 @@ snapshots: dependencies: '@contentstack/management': 1.27.6(debug@4.4.3) '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 axios: 1.13.6(debug@4.4.3) chalk: 4.1.2 cli-cursor: 3.1.0 @@ -6870,7 +6892,7 @@ snapshots: dependencies: '@contentstack/management': 1.27.6(debug@4.4.3) '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 axios: 1.13.6(debug@4.4.3) chalk: 4.1.2 cli-cursor: 3.1.0 @@ -6904,7 +6926,7 @@ snapshots: '@contentstack/cli-variants@1.4.0-beta.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: '@contentstack/cli-utilities': 1.18.0-beta.0(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-help': 6.2.37 lodash: 4.17.23 mkdirp: 1.0.4 @@ -6930,7 +6952,7 @@ snapshots: '@contentstack/management@1.27.6(debug@4.4.3)': dependencies: - '@contentstack/utils': 1.7.1 + '@contentstack/utils': 1.8.0 assert: 2.1.0 axios: 1.13.6(debug@4.4.3) buffer: 6.0.3 @@ -6945,13 +6967,15 @@ snapshots: '@contentstack/marketplace-sdk@1.5.0(debug@4.4.3)': dependencies: - '@contentstack/utils': 1.7.1 + '@contentstack/utils': 1.8.0 axios: 1.13.6(debug@4.4.3) transitivePeerDependencies: - debug '@contentstack/utils@1.7.1': {} + '@contentstack/utils@1.8.0': {} + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 @@ -6962,18 +6986,18 @@ snapshots: enabled: 2.0.0 kuler: 2.0.0 - '@emnapi/core@1.8.1': + '@emnapi/core@1.9.0': dependencies: - '@emnapi/wasi-threads': 1.1.0 + '@emnapi/wasi-threads': 1.2.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.8.1': + '@emnapi/runtime@1.9.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.1.0': + '@emnapi/wasi-threads@1.2.0': dependencies: tslib: 2.8.1 optional: true @@ -6981,7 +7005,7 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.57.0 comment-parser: 1.4.1 esquery: 1.7.0 jsdoc-type-pratt-parser: 4.1.0 @@ -7050,7 +7074,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/eslintrc@3.3.4': + '@eslint/eslintrc@3.3.5': dependencies: ajv: 6.14.0 debug: 4.4.3(supports-color@8.1.1) @@ -7066,7 +7090,7 @@ snapshots: '@eslint/js@8.57.1': {} - '@eslint/js@9.39.3': {} + '@eslint/js@9.39.4': {} '@eslint/json@0.13.2': dependencies: @@ -7101,9 +7125,9 @@ snapshots: lodash.isundefined: 3.0.1 lodash.uniq: 4.5.0 - '@graphql-typed-document-node/core@3.2.0(graphql@16.13.0)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.13.1)': dependencies: - graphql: 16.13.0 + graphql: 16.13.1 '@humanwhocodes/config-array@0.13.0': dependencies: @@ -7171,7 +7195,7 @@ snapshots: '@inquirer/figures': 1.0.15 '@inquirer/type': 2.0.0 '@types/mute-stream': 0.0.4 - '@types/node': 22.19.13 + '@types/node': 22.19.15 '@types/wrap-ansi': 3.0.0 ansi-escapes: 4.3.2 cli-width: 4.1.0 @@ -7344,8 +7368,8 @@ snapshots: '@napi-rs/wasm-runtime@0.2.12': dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 + '@emnapi/core': 1.9.0 + '@emnapi/runtime': 1.9.0 '@tybys/wasm-util': 0.10.1 optional: true @@ -7384,25 +7408,46 @@ snapshots: wordwrap: 1.0.0 wrap-ansi: 7.0.0 + '@oclif/core@4.8.4': + dependencies: + ansi-escapes: 4.3.2 + ansis: 3.17.0 + clean-stack: 3.0.1 + cli-spinners: 2.9.2 + debug: 4.4.3(supports-color@8.1.1) + ejs: 3.1.10 + get-package-type: 0.1.0 + indent-string: 4.0.0 + is-wsl: 2.2.0 + lilconfig: 3.1.3 + minimatch: 10.2.4 + semver: 7.7.4 + string-width: 4.2.3 + supports-color: 8.1.1 + tinyglobby: 0.2.15 + widest-line: 3.1.0 + wordwrap: 1.0.0 + wrap-ansi: 7.0.0 + '@oclif/plugin-help@6.2.37': dependencies: - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 '@oclif/plugin-not-found@3.2.74(@types/node@14.18.63)': dependencies: '@inquirer/prompts': 7.10.1(@types/node@14.18.63) - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: - '@types/node' - '@oclif/plugin-plugins@5.4.56': + '@oclif/plugin-plugins@5.4.58': dependencies: - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) - npm: 10.9.4 + npm: 10.9.6 npm-package-arg: 11.0.3 npm-run-path: 5.3.0 object-treeify: 4.0.1 @@ -7415,7 +7460,7 @@ snapshots: '@oclif/plugin-warn-if-update-available@3.1.55': dependencies: - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) http-call: 5.3.0 @@ -7424,9 +7469,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@oclif/test@4.1.16(@oclif/core@4.8.3)': + '@oclif/test@4.1.16(@oclif/core@4.8.4)': dependencies: - '@oclif/core': 4.8.3 + '@oclif/core': 4.8.4 ansis: 3.17.0 debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: @@ -7610,114 +7655,114 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@sinonjs/samsam@8.0.3': + '@sinonjs/samsam@9.0.2': dependencies: '@sinonjs/commons': 3.0.1 type-detect: 4.1.0 - '@smithy/abort-controller@4.2.10': + '@smithy/abort-controller@4.2.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/chunked-blob-reader-native@4.2.2': + '@smithy/chunked-blob-reader-native@4.2.3': dependencies: - '@smithy/util-base64': 4.3.1 + '@smithy/util-base64': 4.3.2 tslib: 2.8.1 - '@smithy/chunked-blob-reader@5.2.1': + '@smithy/chunked-blob-reader@5.2.2': dependencies: tslib: 2.8.1 - '@smithy/config-resolver@4.4.9': + '@smithy/config-resolver@4.4.10': dependencies: - '@smithy/node-config-provider': 4.3.10 + '@smithy/node-config-provider': 4.3.11 '@smithy/types': 4.13.0 - '@smithy/util-config-provider': 4.2.1 - '@smithy/util-endpoints': 3.3.1 - '@smithy/util-middleware': 4.2.10 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-endpoints': 3.3.2 + '@smithy/util-middleware': 4.2.11 tslib: 2.8.1 - '@smithy/core@3.23.7': + '@smithy/core@3.23.9': dependencies: - '@smithy/middleware-serde': 4.2.11 - '@smithy/protocol-http': 5.3.10 + '@smithy/middleware-serde': 4.2.12 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.1 - '@smithy/util-body-length-browser': 4.2.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-stream': 4.5.16 - '@smithy/util-utf8': 4.2.1 - '@smithy/uuid': 1.1.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-stream': 4.5.17 + '@smithy/util-utf8': 4.2.2 + '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/credential-provider-imds@4.2.10': + '@smithy/credential-provider-imds@4.2.11': dependencies: - '@smithy/node-config-provider': 4.3.10 - '@smithy/property-provider': 4.2.10 + '@smithy/node-config-provider': 4.3.11 + '@smithy/property-provider': 4.2.11 '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.10 + '@smithy/url-parser': 4.2.11 tslib: 2.8.1 - '@smithy/eventstream-codec@4.2.10': + '@smithy/eventstream-codec@4.2.11': dependencies: '@aws-crypto/crc32': 5.2.0 '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.1 + '@smithy/util-hex-encoding': 4.2.2 tslib: 2.8.1 - '@smithy/eventstream-serde-browser@4.2.10': + '@smithy/eventstream-serde-browser@4.2.11': dependencies: - '@smithy/eventstream-serde-universal': 4.2.10 + '@smithy/eventstream-serde-universal': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/eventstream-serde-config-resolver@4.3.10': + '@smithy/eventstream-serde-config-resolver@4.3.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/eventstream-serde-node@4.2.10': + '@smithy/eventstream-serde-node@4.2.11': dependencies: - '@smithy/eventstream-serde-universal': 4.2.10 + '@smithy/eventstream-serde-universal': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/eventstream-serde-universal@4.2.10': + '@smithy/eventstream-serde-universal@4.2.11': dependencies: - '@smithy/eventstream-codec': 4.2.10 + '@smithy/eventstream-codec': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.3.12': + '@smithy/fetch-http-handler@5.3.13': dependencies: - '@smithy/protocol-http': 5.3.10 - '@smithy/querystring-builder': 4.2.10 + '@smithy/protocol-http': 5.3.11 + '@smithy/querystring-builder': 4.2.11 '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.1 + '@smithy/util-base64': 4.3.2 tslib: 2.8.1 - '@smithy/hash-blob-browser@4.2.11': + '@smithy/hash-blob-browser@4.2.12': dependencies: - '@smithy/chunked-blob-reader': 5.2.1 - '@smithy/chunked-blob-reader-native': 4.2.2 + '@smithy/chunked-blob-reader': 5.2.2 + '@smithy/chunked-blob-reader-native': 4.2.3 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/hash-node@4.2.10': + '@smithy/hash-node@4.2.11': dependencies: '@smithy/types': 4.13.0 - '@smithy/util-buffer-from': 4.2.1 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/hash-stream-node@4.2.10': + '@smithy/hash-stream-node@4.2.11': dependencies: '@smithy/types': 4.13.0 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/invalid-dependency@4.2.10': + '@smithy/invalid-dependency@4.2.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 @@ -7726,143 +7771,143 @@ snapshots: dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@4.2.1': + '@smithy/is-array-buffer@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/md5-js@4.2.10': + '@smithy/md5-js@4.2.11': dependencies: '@smithy/types': 4.13.0 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/middleware-content-length@4.2.10': + '@smithy/middleware-content-length@4.2.11': dependencies: - '@smithy/protocol-http': 5.3.10 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.4.21': + '@smithy/middleware-endpoint@4.4.23': dependencies: - '@smithy/core': 3.23.7 - '@smithy/middleware-serde': 4.2.11 - '@smithy/node-config-provider': 4.3.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@smithy/core': 3.23.9 + '@smithy/middleware-serde': 4.2.12 + '@smithy/node-config-provider': 4.3.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 - '@smithy/url-parser': 4.2.10 - '@smithy/util-middleware': 4.2.10 + '@smithy/url-parser': 4.2.11 + '@smithy/util-middleware': 4.2.11 tslib: 2.8.1 - '@smithy/middleware-retry@4.4.38': + '@smithy/middleware-retry@4.4.40': dependencies: - '@smithy/node-config-provider': 4.3.10 - '@smithy/protocol-http': 5.3.10 - '@smithy/service-error-classification': 4.2.10 - '@smithy/smithy-client': 4.12.1 + '@smithy/node-config-provider': 4.3.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/service-error-classification': 4.2.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-retry': 4.2.10 - '@smithy/uuid': 1.1.1 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-retry': 4.2.11 + '@smithy/uuid': 1.1.2 tslib: 2.8.1 - '@smithy/middleware-serde@4.2.11': + '@smithy/middleware-serde@4.2.12': dependencies: - '@smithy/protocol-http': 5.3.10 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.2.10': + '@smithy/middleware-stack@4.2.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.3.10': + '@smithy/node-config-provider@4.3.11': dependencies: - '@smithy/property-provider': 4.2.10 - '@smithy/shared-ini-file-loader': 4.4.5 + '@smithy/property-provider': 4.2.11 + '@smithy/shared-ini-file-loader': 4.4.6 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.4.13': + '@smithy/node-http-handler@4.4.14': dependencies: - '@smithy/abort-controller': 4.2.10 - '@smithy/protocol-http': 5.3.10 - '@smithy/querystring-builder': 4.2.10 + '@smithy/abort-controller': 4.2.11 + '@smithy/protocol-http': 5.3.11 + '@smithy/querystring-builder': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/property-provider@4.2.10': + '@smithy/property-provider@4.2.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/protocol-http@5.3.10': + '@smithy/protocol-http@5.3.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.2.10': + '@smithy/querystring-builder@4.2.11': dependencies: '@smithy/types': 4.13.0 - '@smithy/util-uri-escape': 4.2.1 + '@smithy/util-uri-escape': 4.2.2 tslib: 2.8.1 - '@smithy/querystring-parser@4.2.10': + '@smithy/querystring-parser@4.2.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.2.10': + '@smithy/service-error-classification@4.2.11': dependencies: '@smithy/types': 4.13.0 - '@smithy/shared-ini-file-loader@4.4.5': + '@smithy/shared-ini-file-loader@4.4.6': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/signature-v4@5.3.10': + '@smithy/signature-v4@5.3.11': dependencies: - '@smithy/is-array-buffer': 4.2.1 - '@smithy/protocol-http': 5.3.10 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 - '@smithy/util-hex-encoding': 4.2.1 - '@smithy/util-middleware': 4.2.10 - '@smithy/util-uri-escape': 4.2.1 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-middleware': 4.2.11 + '@smithy/util-uri-escape': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/smithy-client@4.12.1': + '@smithy/smithy-client@4.12.3': dependencies: - '@smithy/core': 3.23.7 - '@smithy/middleware-endpoint': 4.4.21 - '@smithy/middleware-stack': 4.2.10 - '@smithy/protocol-http': 5.3.10 + '@smithy/core': 3.23.9 + '@smithy/middleware-endpoint': 4.4.23 + '@smithy/middleware-stack': 4.2.11 + '@smithy/protocol-http': 5.3.11 '@smithy/types': 4.13.0 - '@smithy/util-stream': 4.5.16 + '@smithy/util-stream': 4.5.17 tslib: 2.8.1 '@smithy/types@4.13.0': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.2.10': + '@smithy/url-parser@4.2.11': dependencies: - '@smithy/querystring-parser': 4.2.10 + '@smithy/querystring-parser': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/util-base64@4.3.1': + '@smithy/util-base64@4.3.2': dependencies: - '@smithy/util-buffer-from': 4.2.1 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/util-body-length-browser@4.2.1': + '@smithy/util-body-length-browser@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@4.2.2': + '@smithy/util-body-length-node@4.2.3': dependencies: tslib: 2.8.1 @@ -7871,65 +7916,65 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@4.2.1': + '@smithy/util-buffer-from@4.2.2': dependencies: - '@smithy/is-array-buffer': 4.2.1 + '@smithy/is-array-buffer': 4.2.2 tslib: 2.8.1 - '@smithy/util-config-provider@4.2.1': + '@smithy/util-config-provider@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.3.37': + '@smithy/util-defaults-mode-browser@4.3.39': dependencies: - '@smithy/property-provider': 4.2.10 - '@smithy/smithy-client': 4.12.1 + '@smithy/property-provider': 4.2.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.2.40': + '@smithy/util-defaults-mode-node@4.2.42': dependencies: - '@smithy/config-resolver': 4.4.9 - '@smithy/credential-provider-imds': 4.2.10 - '@smithy/node-config-provider': 4.3.10 - '@smithy/property-provider': 4.2.10 - '@smithy/smithy-client': 4.12.1 + '@smithy/config-resolver': 4.4.10 + '@smithy/credential-provider-imds': 4.2.11 + '@smithy/node-config-provider': 4.3.11 + '@smithy/property-provider': 4.2.11 + '@smithy/smithy-client': 4.12.3 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/util-endpoints@3.3.1': + '@smithy/util-endpoints@3.3.2': dependencies: - '@smithy/node-config-provider': 4.3.10 + '@smithy/node-config-provider': 4.3.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/util-hex-encoding@4.2.1': + '@smithy/util-hex-encoding@4.2.2': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.2.10': + '@smithy/util-middleware@4.2.11': dependencies: '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/util-retry@4.2.10': + '@smithy/util-retry@4.2.11': dependencies: - '@smithy/service-error-classification': 4.2.10 + '@smithy/service-error-classification': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/util-stream@4.5.16': + '@smithy/util-stream@4.5.17': dependencies: - '@smithy/fetch-http-handler': 5.3.12 - '@smithy/node-http-handler': 4.4.13 + '@smithy/fetch-http-handler': 5.3.13 + '@smithy/node-http-handler': 4.4.14 '@smithy/types': 4.13.0 - '@smithy/util-base64': 4.3.1 - '@smithy/util-buffer-from': 4.2.1 - '@smithy/util-hex-encoding': 4.2.1 - '@smithy/util-utf8': 4.2.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 - '@smithy/util-uri-escape@4.2.1': + '@smithy/util-uri-escape@4.2.2': dependencies: tslib: 2.8.1 @@ -7938,18 +7983,18 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@4.2.1': + '@smithy/util-utf8@4.2.2': dependencies: - '@smithy/util-buffer-from': 4.2.1 + '@smithy/util-buffer-from': 4.2.2 tslib: 2.8.1 - '@smithy/util-waiter@4.2.10': + '@smithy/util-waiter@4.2.12': dependencies: - '@smithy/abort-controller': 4.2.10 + '@smithy/abort-controller': 4.2.11 '@smithy/types': 4.13.0 tslib: 2.8.1 - '@smithy/uuid@1.1.1': + '@smithy/uuid@1.1.2': dependencies: tslib: 2.8.1 @@ -7960,7 +8005,7 @@ snapshots: '@stylistic/eslint-plugin@3.1.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.57.0(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -7970,10 +8015,10 @@ snapshots: - supports-color - typescript - '@stylistic/eslint-plugin@5.9.0(eslint@8.57.1)': + '@stylistic/eslint-plugin@5.10.0(eslint@8.57.1)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.57.0 eslint: 8.57.1 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -8006,16 +8051,23 @@ snapshots: '@types/chai@4.3.20': {} + '@types/chai@5.2.3': + dependencies: + '@types/deep-eql': 4.0.2 + assertion-error: 2.0.1 + '@types/connect@3.4.38': dependencies: '@types/node': 14.18.63 + '@types/deep-eql@4.0.2': {} + '@types/estree@1.0.8': {} '@types/express-serve-static-core@4.19.8': dependencies: '@types/node': 14.18.63 - '@types/qs': 6.14.0 + '@types/qs': 6.15.0 '@types/range-parser': 1.2.7 '@types/send': 1.2.1 @@ -8023,7 +8075,7 @@ snapshots: dependencies: '@types/body-parser': 1.19.6 '@types/express-serve-static-core': 4.19.8 - '@types/qs': 6.14.0 + '@types/qs': 6.15.0 '@types/serve-static': 1.15.10 '@types/glob@7.2.0': @@ -8066,13 +8118,13 @@ snapshots: '@types/node@14.18.63': {} - '@types/node@22.19.13': + '@types/node@22.19.15': dependencies: undici-types: 6.21.0 '@types/normalize-package-data@2.4.4': {} - '@types/qs@6.14.0': {} + '@types/qs@6.15.0': {} '@types/range-parser@1.2.7': {} @@ -8131,14 +8183,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@8.57.0(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/type-utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/parser': 8.57.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/type-utils': 8.57.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.57.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.57.0 eslint: 8.57.1 ignore: 7.0.5 natural-compare: 1.4.0 @@ -8160,22 +8212,22 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.57.0 debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.1(typescript@4.9.5)': + '@typescript-eslint/project-service@8.57.0(typescript@4.9.5)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@4.9.5) - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@4.9.5) + '@typescript-eslint/types': 8.57.0 debug: 4.4.3(supports-color@8.1.1) typescript: 4.9.5 transitivePeerDependencies: @@ -8191,12 +8243,12 @@ snapshots: '@typescript-eslint/types': 7.18.0 '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.56.1': + '@typescript-eslint/scope-manager@8.57.0': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/visitor-keys': 8.57.0 - '@typescript-eslint/tsconfig-utils@8.56.1(typescript@4.9.5)': + '@typescript-eslint/tsconfig-utils@8.57.0(typescript@4.9.5)': dependencies: typescript: 4.9.5 @@ -8212,11 +8264,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.56.1(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/type-utils@8.57.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) - '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@4.9.5) + '@typescript-eslint/utils': 8.57.0(eslint@8.57.1)(typescript@4.9.5) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 2.4.0(typescript@4.9.5) @@ -8228,7 +8280,7 @@ snapshots: '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.56.1': {} + '@typescript-eslint/types@8.57.0': {} '@typescript-eslint/typescript-estree@6.21.0(typescript@4.9.5)': dependencies: @@ -8260,12 +8312,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.56.1(typescript@4.9.5)': + '@typescript-eslint/typescript-estree@8.57.0(typescript@4.9.5)': dependencies: - '@typescript-eslint/project-service': 8.56.1(typescript@4.9.5) - '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@4.9.5) - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/visitor-keys': 8.56.1 + '@typescript-eslint/project-service': 8.57.0(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.57.0(typescript@4.9.5) + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/visitor-keys': 8.57.0 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.4 semver: 7.7.4 @@ -8300,12 +8352,12 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.56.1(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/utils@8.57.0(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.56.1 - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.57.0 + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/typescript-estree': 8.57.0(typescript@4.9.5) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: @@ -8321,9 +8373,9 @@ snapshots: '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.56.1': + '@typescript-eslint/visitor-keys@8.57.0': dependencies: - '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/types': 8.57.0 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.0': {} @@ -8594,6 +8646,8 @@ snapshots: assertion-error@1.1.0: {} + assertion-error@2.0.1: {} + astral-regex@2.0.0: {} async-function@1.0.0: {} @@ -8700,8 +8754,8 @@ snapshots: browserslist@4.28.1: dependencies: baseline-browser-mapping: 2.10.0 - caniuse-lite: 1.0.30001776 - electron-to-chromium: 1.5.307 + caniuse-lite: 1.0.30001778 + electron-to-chromium: 1.5.313 node-releases: 2.0.36 update-browserslist-db: 1.2.3(browserslist@4.28.1) @@ -8772,7 +8826,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001776: {} + caniuse-lite@1.0.30001778: {} capital-case@1.0.4: dependencies: @@ -9001,7 +9055,7 @@ snapshots: contentstack@3.26.4: dependencies: - '@contentstack/utils': 1.7.1 + '@contentstack/utils': 1.8.0 es6-promise: 4.2.8 husky: 9.1.7 localStorage: 1.0.4 @@ -9202,7 +9256,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.307: {} + electron-to-chromium@1.5.313: {} elegant-spinner@1.0.1: {} @@ -9369,25 +9423,25 @@ snapshots: transitivePeerDependencies: - eslint - eslint-config-oclif@6.0.146(eslint@8.57.1)(typescript@4.9.5): + eslint-config-oclif@6.0.148(eslint@8.57.1)(typescript@4.9.5): dependencies: '@eslint/compat': 1.4.1(eslint@8.57.1) - '@eslint/eslintrc': 3.3.4 - '@eslint/js': 9.39.3 + '@eslint/eslintrc': 3.3.5 + '@eslint/js': 9.39.4 '@stylistic/eslint-plugin': 3.1.0(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.57.0(eslint@8.57.1)(typescript@4.9.5) 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(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-jsdoc: 50.8.0(eslint@8.57.1) eslint-plugin-mocha: 10.5.0(eslint@8.57.1) eslint-plugin-n: 17.24.0(eslint@8.57.1)(typescript@4.9.5) eslint-plugin-perfectionist: 4.15.1(eslint@8.57.1)(typescript@4.9.5) eslint-plugin-unicorn: 56.0.1(eslint@8.57.1) - typescript-eslint: 8.56.1(eslint@8.57.1)(typescript@4.9.5) + typescript-eslint: 8.57.0(eslint@8.57.1)(typescript@4.9.5) transitivePeerDependencies: - eslint - eslint-import-resolver-webpack @@ -9409,7 +9463,7 @@ snapshots: dependencies: '@eslint/css': 0.10.0 '@eslint/json': 0.13.2 - '@stylistic/eslint-plugin': 5.9.0(eslint@8.57.1) + '@stylistic/eslint-plugin': 5.10.0(eslint@8.57.1) confusing-browser-globals: 1.0.11 eslint: 8.57.1 globals: 16.5.0 @@ -9448,11 +9502,11 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.57.0(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1) @@ -9501,7 +9555,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -9512,7 +9566,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1))(eslint@8.57.1))(eslint@8.57.1) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -9524,7 +9578,7 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.57.0(eslint@8.57.1)(typescript@4.9.5) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack @@ -9592,8 +9646,8 @@ snapshots: eslint-plugin-perfectionist@4.15.1(eslint@8.57.1)(typescript@4.9.5): dependencies: - '@typescript-eslint/types': 8.56.1 - '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/utils': 8.57.0(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 natural-orderby: 5.0.0 transitivePeerDependencies: @@ -9852,7 +9906,7 @@ snapshots: fancy-test@2.0.42: dependencies: - '@types/chai': 4.3.20 + '@types/chai': 5.2.3 '@types/lodash': 4.17.24 '@types/node': 14.18.63 '@types/sinon': 21.0.0 @@ -9888,11 +9942,13 @@ snapshots: fast-uri@3.1.0: {} - fast-xml-builder@1.0.0: {} + fast-xml-builder@1.1.2: + dependencies: + path-expression-matcher: 1.1.3 fast-xml-parser@5.4.1: dependencies: - fast-xml-builder: 1.0.0 + fast-xml-builder: 1.1.2 strnum: 2.2.0 fastest-levenshtein@1.0.16: {} @@ -9972,13 +10028,13 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.4 + flatted: 3.4.1 keyv: 4.5.4 rimraf: 3.0.2 flat@5.0.2: {} - flatted@3.3.4: {} + flatted@3.4.1: {} fn.name@1.1.0: {} @@ -10210,12 +10266,12 @@ snapshots: graphemer@1.4.0: {} - graphql-tag@2.12.6(graphql@16.13.0): + graphql-tag@2.12.6(graphql@16.13.1): dependencies: - graphql: 16.13.0 + graphql: 16.13.1 tslib: 2.8.1 - graphql@16.13.0: {} + graphql@16.13.1: {} has-ansi@2.0.0: dependencies: @@ -11121,7 +11177,7 @@ snapshots: dependencies: path-key: 4.0.0 - npm@10.9.4: {} + npm@10.9.6: {} number-is-nan@1.0.1: {} @@ -11201,10 +11257,10 @@ snapshots: define-properties: 1.2.1 es-object-atoms: 1.1.1 - oclif@4.22.81(@types/node@14.18.63): + oclif@4.22.87(@types/node@14.18.63): dependencies: - '@aws-sdk/client-cloudfront': 3.1001.0 - '@aws-sdk/client-s3': 3.1001.0 + '@aws-sdk/client-cloudfront': 3.1004.0 + '@aws-sdk/client-s3': 3.1004.0 '@inquirer/confirm': 3.2.0 '@inquirer/input': 2.3.0 '@inquirer/select': 2.5.0 @@ -11394,6 +11450,8 @@ snapshots: path-exists@4.0.0: {} + path-expression-matcher@1.1.3: {} + path-is-absolute@1.0.1: {} path-key@3.1.1: {} @@ -11434,7 +11492,7 @@ snapshots: pluralize@8.0.0: {} - pnpm@10.30.3: {} + pnpm@10.32.1: {} possible-typed-array-names@1.1.0: {} @@ -11871,11 +11929,11 @@ snapshots: signal-exit@4.1.0: {} - sinon@21.0.1: + sinon@21.0.2: dependencies: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 15.1.1 - '@sinonjs/samsam': 8.0.3 + '@sinonjs/samsam': 9.0.2 diff: 8.0.3 supports-color: 7.2.0 @@ -12106,7 +12164,7 @@ snapshots: tapable@2.3.0: {} - tar@7.5.10: + tar@7.5.11: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 @@ -12320,12 +12378,12 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.56.1(eslint@8.57.1)(typescript@4.9.5): + typescript-eslint@8.57.0(eslint@8.57.1)(typescript@4.9.5): dependencies: - '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) - '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.57.0(@typescript-eslint/parser@8.57.0(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.57.0(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.57.0(typescript@4.9.5) + '@typescript-eslint/utils': 8.57.0(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: