From 619a9b963e35abe73652569222560a0a44e6f1f0 Mon Sep 17 00:00:00 2001 From: Momo Kornher Date: Thu, 14 May 2026 15:31:51 +0100 Subject: [PATCH] refactor(tools): extract zip utilities into shared `@aws-cdk/tools` package\n\nConsolidate the duplicated `zipDirectory` and `zipString` implementations\nfrom `cdk-assets-lib` and `toolkit-lib` into a new private `@aws-cdk/tools`\npackage. Each tool is bundled individually via esbuild and cherry-picked\nby consumers at pre-compile time, removing `archiver` as a direct\nruntime dependency from both packages. --- .github/dependabot.yml | 1 + .github/workflows/pull-request-lint.yml | 1 + .projenrc.ts | 37 +- aws-cdk-cli.code-workspace | 3 + package.json | 2 + .../@aws-cdk/cdk-assets-lib/.projen/deps.json | 12 +- .../cdk-assets-lib/.projen/tasks.json | 7 +- .../@aws-cdk/cdk-assets-lib/jest.config.json | 3 +- .../cdk-assets-lib/lib/private/archive.ts | 105 +- .../lib/private/handlers/files.ts | 2 +- packages/@aws-cdk/cdk-assets-lib/package.json | 3 +- .../cdk-assets-lib/test/tsconfig.json | 3 + .../@aws-cdk/cdk-assets-lib/tsconfig.dev.json | 4 +- .../@aws-cdk/cdk-assets-lib/tsconfig.json | 4 +- .../@aws-cdk/toolkit-lib/.projen/deps.json | 8 +- .../@aws-cdk/toolkit-lib/.projen/tasks.json | 7 +- .../@aws-cdk/toolkit-lib/jest.config.json | 3 +- .../lib/api/hotswap/lambda-functions.ts | 42 +- .../@aws-cdk/toolkit-lib/lib/util/archive.ts | 98 +- packages/@aws-cdk/toolkit-lib/package.json | 2 +- .../@aws-cdk/toolkit-lib/test/tsconfig.json | 3 + .../@aws-cdk/toolkit-lib/tsconfig.dev.json | 3 + packages/@aws-cdk/toolkit-lib/tsconfig.json | 3 + packages/@aws-cdk/tools/.eslintrc.json | 320 +++ packages/@aws-cdk/tools/.gitattributes | 25 + packages/@aws-cdk/tools/.gitignore | 55 + packages/@aws-cdk/tools/.npmignore | 24 + packages/@aws-cdk/tools/.prettierignore | 2 + packages/@aws-cdk/tools/.prettierrc.json | 6 + packages/@aws-cdk/tools/.projen/deps.json | 118 + packages/@aws-cdk/tools/.projen/files.json | 19 + packages/@aws-cdk/tools/.projen/tasks.json | 181 ++ packages/@aws-cdk/tools/.yarnrc.yml | 3 + packages/@aws-cdk/tools/LICENSE | 202 ++ packages/@aws-cdk/tools/README.md | 27 + packages/@aws-cdk/tools/jest.config.json | 67 + packages/@aws-cdk/tools/lib/zip/index.ts | 147 ++ packages/@aws-cdk/tools/package.json | 84 + packages/@aws-cdk/tools/test/zip/zip.test.ts | 155 ++ packages/@aws-cdk/tools/tsconfig.dev.json | 46 + packages/@aws-cdk/tools/tsconfig.json | 44 + projenrc/tools.ts | 158 ++ tsconfig.dev.json | 3 + tsconfig.json | 3 + yarn.lock | 1969 +++++++++++++---- 45 files changed, 3325 insertions(+), 689 deletions(-) create mode 100644 packages/@aws-cdk/tools/.eslintrc.json create mode 100644 packages/@aws-cdk/tools/.gitattributes create mode 100644 packages/@aws-cdk/tools/.gitignore create mode 100644 packages/@aws-cdk/tools/.npmignore create mode 100644 packages/@aws-cdk/tools/.prettierignore create mode 100644 packages/@aws-cdk/tools/.prettierrc.json create mode 100644 packages/@aws-cdk/tools/.projen/deps.json create mode 100644 packages/@aws-cdk/tools/.projen/files.json create mode 100644 packages/@aws-cdk/tools/.projen/tasks.json create mode 100644 packages/@aws-cdk/tools/.yarnrc.yml create mode 100644 packages/@aws-cdk/tools/LICENSE create mode 100644 packages/@aws-cdk/tools/README.md create mode 100644 packages/@aws-cdk/tools/jest.config.json create mode 100644 packages/@aws-cdk/tools/lib/zip/index.ts create mode 100644 packages/@aws-cdk/tools/package.json create mode 100644 packages/@aws-cdk/tools/test/zip/zip.test.ts create mode 100644 packages/@aws-cdk/tools/tsconfig.dev.json create mode 100644 packages/@aws-cdk/tools/tsconfig.json create mode 100644 projenrc/tools.ts diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 868813a88..013022564 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -21,6 +21,7 @@ updates: - /packages/@aws-cdk/cloudformation-diff - /packages/@aws-cdk/integ-runner - /packages/@aws-cdk/toolkit-lib + - /packages/@aws-cdk/tools - /packages/@aws-cdk/user-input-gen - /packages/@aws-cdk/yarn-cling - /packages/aws-cdk diff --git a/.github/workflows/pull-request-lint.yml b/.github/workflows/pull-request-lint.yml index c108e9776..441c20ee7 100644 --- a/.github/workflows/pull-request-lint.yml +++ b/.github/workflows/pull-request-lint.yml @@ -50,6 +50,7 @@ jobs: integ-testing toolkit-lib toolkit-lib + tools yarn-cling requireScope: false contributorStatement: diff --git a/.projenrc.ts b/.projenrc.ts index cd3b6e7c7..fcd092df4 100644 --- a/.projenrc.ts +++ b/.projenrc.ts @@ -16,6 +16,7 @@ import { PrLabeler } from './projenrc/pr-labeler'; import { RecordPublishingTimestamp } from './projenrc/record-publishing-timestamp'; import { DocType, S3DocsPublishing } from './projenrc/s3-docs-publishing'; import { SelfMutationOnForks } from './projenrc/SelfMutationOnForks'; +import { CdkTypeScriptWorkspace, ToolsWorkspace } from './projenrc/tools'; import { TypecheckTests } from './projenrc/TypecheckTests'; // #region shared config @@ -690,22 +691,49 @@ const cliPluginContract = configureProject( }), ); +// #endregion +////////////////////////////////////////////////////////////////////// +// #region @aws-cdk/tools + +/** + * Private (unpublished) package hosting small, self-contained utilities. + * Consumers cherry-pick tools via `useTools: ['']` on a + * `CdkTypeScriptWorkspace`. + * + * Adding a new tool: create `packages/@aws-cdk/tools/lib//index.ts`. + * It is auto-discovered and bundled individually. + */ +configureProject( + new ToolsWorkspace({ + ...genericCdkProps({ private: true }), + parent: repo, + // Runtime deps that `esbuild` bundles into any tool that imports them. + deps: ['archiver', 'fast-glob'], + devDeps: ['@types/archiver', 'jszip'], + tsconfig: { + compilerOptions: { + ...defaultTsOptions, + }, + }, + }), +); + // #endregion ////////////////////////////////////////////////////////////////////// // #region @aws-cdk/cdk-assets-lib const cdkAssetsLib = configureProject( - new yarn.TypeScriptWorkspace({ + new CdkTypeScriptWorkspace({ ...genericCdkProps(), parent: repo, name: '@aws-cdk/cdk-assets-lib', majorVersion: 1, description: 'CDK Asset Publishing Library', srcdir: 'lib', + useTools: ['zip'], deps: [ cloudAssemblySchema.customizeReference({ versionType: 'any-future' }), cloudAssemblyApi.customizeReference({ versionType: 'exact' }), - 'archiver', 'fast-glob', 'mime@^2', sdkDep('@aws-sdk/client-ecr'), @@ -719,7 +747,6 @@ const cdkAssetsLib = configureProject( 'picomatch', ], devDeps: [ - '@types/archiver', '@types/mime@^2', '@types/picomatch', 'fs-extra@^11', @@ -873,7 +900,7 @@ const toolkitLibTsCompilerOptions = { }; const toolkitLib = configureProject( - new yarn.TypeScriptWorkspace({ + new CdkTypeScriptWorkspace({ ...genericCdkProps(), homepage: 'https://docs.aws.amazon.com/cdk/api/toolkit-lib', parent: repo, @@ -881,6 +908,7 @@ const toolkitLib = configureProject( description: 'AWS CDK Programmatic Toolkit Library', majorVersion: 1, srcdir: 'lib', + useTools: ['zip'], peerDeps: [ cliPluginContract.customizeReference({ versionType: 'any-minor' }), // allow consumers to easily de-depulicate this ], @@ -917,7 +945,6 @@ const toolkitLib = configureProject( smithyDep('@smithy/shared-ini-file-loader'), smithyDep('@smithy/util-retry'), smithyDep('@smithy/util-waiter'), - 'archiver', 'cdk-from-cfn', 'chalk@^4', 'chokidar@^4', diff --git a/aws-cdk-cli.code-workspace b/aws-cdk-cli.code-workspace index bc246cdc2..dfc7c527b 100644 --- a/aws-cdk-cli.code-workspace +++ b/aws-cdk-cli.code-workspace @@ -29,6 +29,9 @@ { "path": "packages/@aws-cdk/toolkit-lib" }, + { + "path": "packages/@aws-cdk/tools" + }, { "path": "packages/@aws-cdk/user-input-gen" }, diff --git a/package.json b/package.json index e1235d877..83563fd15 100644 --- a/package.json +++ b/package.json @@ -79,6 +79,7 @@ "packages/@aws-cdk/yarn-cling", "packages/@aws-cdk/user-input-gen", "packages/@aws-cdk/cli-plugin-contract", + "packages/@aws-cdk/tools", "packages/@aws-cdk/cdk-assets-lib", "packages/cdk-assets", "packages/@aws-cdk/toolkit-lib", @@ -96,6 +97,7 @@ "/packages/@aws-cdk/yarn-cling", "/packages/@aws-cdk/user-input-gen", "/packages/@aws-cdk/cli-plugin-contract", + "/packages/@aws-cdk/tools", "/packages/@aws-cdk/cdk-assets-lib", "/packages/cdk-assets", "/packages/@aws-cdk/toolkit-lib", diff --git a/packages/@aws-cdk/cdk-assets-lib/.projen/deps.json b/packages/@aws-cdk/cdk-assets-lib/.projen/deps.json index 03aedef5c..25c4774fe 100644 --- a/packages/@aws-cdk/cdk-assets-lib/.projen/deps.json +++ b/packages/@aws-cdk/cdk-assets-lib/.projen/deps.json @@ -1,16 +1,16 @@ { "dependencies": [ { - "name": "@cdklabs/eslint-plugin", + "name": "@aws-cdk/tools", "type": "build" }, { - "name": "@stylistic/eslint-plugin", - "version": "^3", + "name": "@cdklabs/eslint-plugin", "type": "build" }, { - "name": "@types/archiver", + "name": "@stylistic/eslint-plugin", + "version": "^3", "type": "build" }, { @@ -194,10 +194,6 @@ "version": "^4", "type": "runtime" }, - { - "name": "archiver", - "type": "runtime" - }, { "name": "fast-glob", "type": "runtime" diff --git a/packages/@aws-cdk/cdk-assets-lib/.projen/tasks.json b/packages/@aws-cdk/cdk-assets-lib/.projen/tasks.json index 3543df298..a44abf13e 100644 --- a/packages/@aws-cdk/cdk-assets-lib/.projen/tasks.json +++ b/packages/@aws-cdk/cdk-assets-lib/.projen/tasks.json @@ -55,7 +55,7 @@ }, "steps": [ { - "exec": "yarn dlx npm-check-updates@20 --upgrade --target=minor --cooldown=3 --peer --no-deprecated --dep=dev,peer,prod,optional --filter=@cdklabs/eslint-plugin,@types/archiver,@types/jest,@types/picomatch,aws-sdk-client-mock,aws-sdk-client-mock-jest,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-jest,eslint-plugin-jsdoc,eslint-plugin-prettier,graceful-fs,jest,jszip,license-checker,nx,projen,ts-jest,archiver,fast-glob,picomatch" + "exec": "yarn dlx npm-check-updates@20 --upgrade --target=minor --cooldown=3 --peer --no-deprecated --dep=dev,peer,prod,optional --filter=@cdklabs/eslint-plugin,@types/jest,@types/picomatch,aws-sdk-client-mock,aws-sdk-client-mock-jest,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-jest,eslint-plugin-jsdoc,eslint-plugin-prettier,graceful-fs,jest,jszip,license-checker,nx,projen,ts-jest,fast-glob,picomatch" } ] }, @@ -109,7 +109,7 @@ "name": "gather-versions", "steps": [ { - "exec": "node -e \"require(require.resolve('cdklabs-projen-project-types/lib/yarn/gather-versions.exec.js')).cliMain()\" @aws-cdk/cloud-assembly-schema=any-future @aws-cdk/cloud-assembly-api=exact", + "exec": "node -e \"require(require.resolve('cdklabs-projen-project-types/lib/yarn/gather-versions.exec.js')).cliMain()\" @aws-cdk/tools=exact @aws-cdk/cloud-assembly-schema=any-future @aws-cdk/cloud-assembly-api=exact", "receiveArgs": true } ] @@ -163,6 +163,9 @@ "steps": [ { "spawn": "check-licenses" + }, + { + "exec": "node -e \"const p=require.resolve('@aws-cdk/tools/lib/zip/index.js');const d=require('path').dirname(p);const fs=require('fs');fs.mkdirSync('lib/private/tools/zip',{recursive:true});fs.copyFileSync(p,'lib/private/tools/zip/index.js');fs.copyFileSync(require('path').join(d,'index.d.ts'),'lib/private/tools/zip/index.d.ts');\"" } ] }, diff --git a/packages/@aws-cdk/cdk-assets-lib/jest.config.json b/packages/@aws-cdk/cdk-assets-lib/jest.config.json index 24edc7364..ab79f1876 100644 --- a/packages/@aws-cdk/cdk-assets-lib/jest.config.json +++ b/packages/@aws-cdk/cdk-assets-lib/jest.config.json @@ -34,7 +34,8 @@ "\\.generated\\.[jt]s$", "/test/", ".warnings.jsii.js$", - "/node_modules/" + "/node_modules/", + "lib/private/tools/zip/index\\.js$" ], "reporters": [ "default", diff --git a/packages/@aws-cdk/cdk-assets-lib/lib/private/archive.ts b/packages/@aws-cdk/cdk-assets-lib/lib/private/archive.ts index 75eadc5ae..9e7afdbbf 100644 --- a/packages/@aws-cdk/cdk-assets-lib/lib/private/archive.ts +++ b/packages/@aws-cdk/cdk-assets-lib/lib/private/archive.ts @@ -1,101 +1,4 @@ -import { createWriteStream, promises as fs } from 'fs'; -import * as path from 'path'; -import type { Options } from 'fast-glob'; -import { globSync } from 'fast-glob'; - -// namespace object imports won't work in the bundle for function exports -// eslint-disable-next-line @typescript-eslint/no-require-imports -const archiver = require('archiver'); - -type EventEmitter = (x: string) => void; - -export async function zipDirectory( - directory: string, - outputFile: string, - eventEmitter: EventEmitter, -): Promise { - // We write to a temporary file and rename at the last moment. This is so that if we are - // interrupted during this process, we don't leave a half-finished file in the target location. - const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`; - await writeZipFile(directory, temporaryOutputFile); - await moveIntoPlace(temporaryOutputFile, outputFile, eventEmitter); -} - -function writeZipFile(directory: string, outputFile: string): Promise { - return new Promise(async (ok, fail) => { - // The below options are needed to support following symlinks when building zip files: - // - onlyFiles: This will prevent symlinks themselves from being copied into the zip. - // - followSymbolicLinks: This will follow symlinks and copy the files within. - const globOptions: Options = { - dot: true, - onlyFiles: true, - followSymbolicLinks: true, - cwd: directory, - }; - const files = globSync('**', globOptions); // The output here is already sorted - - const output = createWriteStream(outputFile); - - const archive = archiver('zip'); - archive.on('warning', fail); - archive.on('error', fail); - - // archive has been finalized and the output file descriptor has closed, resolve promise - // this has to be done before calling `finalize` since the events may fire immediately after. - // see https://www.npmjs.com/package/archiver - output.once('close', ok); - - archive.pipe(output); - - // Append files serially to ensure file order - for (const file of files) { - const fullPath = path.resolve(directory, file); - // There are exactly 2 promises - // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism - const [data, stat] = await Promise.all([fs.readFile(fullPath), fs.stat(fullPath)]); - archive.append(data, { - name: file, - date: new Date('1980-01-01T00:00:00.000Z'), // reset dates to get the same hash for the same content - mode: stat.mode, - }); - } - - await archive.finalize(); - }); -} - -/** - * Rename the file to the target location, taking into account: - * - * - That we may see EPERM on Windows while an Antivirus scanner still has the - * file open, so retry a couple of times. - * - This same function may be called in parallel and be interrupted at any point. - */ -async function moveIntoPlace(source: string, target: string, eventEmitter: EventEmitter) { - let delay = 100; - let attempts = 5; - while (true) { - try { - // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory) - await fs.rename(source, target); - return; - } catch (e: any) { - if (e.code !== 'EPERM' || attempts-- <= 0) { - throw e; - } - eventEmitter(e.message); - await sleep(Math.floor(Math.random() * delay)); - delay *= 2; - } - } -} - -function sleep(ms: number) { - return new Promise((ok) => setTimeout(ok, ms)); -} - -function randomString() { - return Math.random() - .toString(36) - .replace(/[^a-z0-9]+/g, ''); -} +// Re-export the shared, bundled `zip` tool from @aws-cdk/tools. +// The bundled files are copied into `./tools/zip/` by a pre-compile task +// (via useTools); see projenrc/tools.ts. +export { zipDirectory } from './tools/zip'; diff --git a/packages/@aws-cdk/cdk-assets-lib/lib/private/handlers/files.ts b/packages/@aws-cdk/cdk-assets-lib/lib/private/handlers/files.ts index 7b9fa3b0a..9a3fc53df 100644 --- a/packages/@aws-cdk/cdk-assets-lib/lib/private/handlers/files.ts +++ b/packages/@aws-cdk/cdk-assets-lib/lib/private/handlers/files.ts @@ -8,11 +8,11 @@ import type { FileManifestEntry } from '../../asset-manifest'; import type { IS3Client } from '../../aws'; import type { PutObjectCommandInput } from '../../aws-types'; import { EventType, shellEventPublisherFromEventEmitter } from '../../progress'; -import { zipDirectory } from '../archive'; import type { IAssetHandler, IHandlerHost, PublishOptions } from '../asset-handler'; import { pathExists } from '../fs-extra'; import { replaceAwsPlaceholders } from '../placeholders'; import { shell } from '../shell'; +import { zipDirectory } from '../tools/zip'; /** * The size of an empty zip file is 22 bytes diff --git a/packages/@aws-cdk/cdk-assets-lib/package.json b/packages/@aws-cdk/cdk-assets-lib/package.json index 9ef298b54..c65022f9d 100644 --- a/packages/@aws-cdk/cdk-assets-lib/package.json +++ b/packages/@aws-cdk/cdk-assets-lib/package.json @@ -31,9 +31,9 @@ "organization": true }, "devDependencies": { + "@aws-cdk/tools": "^0.0.0", "@cdklabs/eslint-plugin": "^2.0.4", "@stylistic/eslint-plugin": "^3", - "@types/archiver": "^6.0.4", "@types/jest": "^29.5.14", "@types/mime": "^2", "@types/mock-fs": "^4", @@ -76,7 +76,6 @@ "@aws-sdk/lib-storage": "^3", "@smithy/config-resolver": "^4", "@smithy/node-config-provider": "^4", - "archiver": "^7.0.1", "fast-glob": "^3.3.3", "mime": "^2", "picomatch": "^4.0.4" diff --git a/packages/@aws-cdk/cdk-assets-lib/test/tsconfig.json b/packages/@aws-cdk/cdk-assets-lib/test/tsconfig.json index 9d865f9aa..2f0008410 100644 --- a/packages/@aws-cdk/cdk-assets-lib/test/tsconfig.json +++ b/packages/@aws-cdk/cdk-assets-lib/test/tsconfig.json @@ -10,6 +10,9 @@ }, { "path": "../../cloud-assembly-api" + }, + { + "path": "../../tools" } ], "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." diff --git a/packages/@aws-cdk/cdk-assets-lib/tsconfig.dev.json b/packages/@aws-cdk/cdk-assets-lib/tsconfig.dev.json index bf5fec577..378956b13 100644 --- a/packages/@aws-cdk/cdk-assets-lib/tsconfig.dev.json +++ b/packages/@aws-cdk/cdk-assets-lib/tsconfig.dev.json @@ -25,7 +25,6 @@ "stripInternal": true, "target": "ES2020", "types": [ - "archiver", "jest", "mime", "mock-fs", @@ -52,6 +51,9 @@ }, { "path": "../cloud-assembly-api" + }, + { + "path": "../tools" } ] } diff --git a/packages/@aws-cdk/cdk-assets-lib/tsconfig.json b/packages/@aws-cdk/cdk-assets-lib/tsconfig.json index e2504bd71..88a9c64d7 100644 --- a/packages/@aws-cdk/cdk-assets-lib/tsconfig.json +++ b/packages/@aws-cdk/cdk-assets-lib/tsconfig.json @@ -25,7 +25,6 @@ "stripInternal": true, "target": "ES2020", "types": [ - "archiver", "jest", "mime", "mock-fs", @@ -48,6 +47,9 @@ }, { "path": "../cloud-assembly-api" + }, + { + "path": "../tools" } ] } diff --git a/packages/@aws-cdk/toolkit-lib/.projen/deps.json b/packages/@aws-cdk/toolkit-lib/.projen/deps.json index 558b50bc7..14ef326df 100644 --- a/packages/@aws-cdk/toolkit-lib/.projen/deps.json +++ b/packages/@aws-cdk/toolkit-lib/.projen/deps.json @@ -4,6 +4,10 @@ "name": "@aws-cdk/aws-service-spec", "type": "build" }, + { + "name": "@aws-cdk/tools", + "type": "build" + }, { "name": "@cdklabs/eslint-plugin", "type": "build" @@ -336,10 +340,6 @@ "version": "^4", "type": "runtime" }, - { - "name": "archiver", - "type": "runtime" - }, { "name": "cdk-from-cfn", "type": "runtime" diff --git a/packages/@aws-cdk/toolkit-lib/.projen/tasks.json b/packages/@aws-cdk/toolkit-lib/.projen/tasks.json index 0c2cf2abe..341e6f551 100644 --- a/packages/@aws-cdk/toolkit-lib/.projen/tasks.json +++ b/packages/@aws-cdk/toolkit-lib/.projen/tasks.json @@ -55,7 +55,7 @@ }, "steps": [ { - "exec": "yarn dlx npm-check-updates@20 --upgrade --target=minor --cooldown=3 --peer --no-deprecated --dep=dev,peer,prod,optional --filter=@aws-cdk/aws-service-spec,@cdklabs/eslint-plugin,@jest/environment,@jest/globals,@jest/types,@microsoft/api-extractor,@smithy/util-stream,@types/jest,@types/jest-when,@types/picomatch,@types/split2,aws-cdk-lib,aws-sdk-client-mock,aws-sdk-client-mock-jest,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-jest,eslint-plugin-jsdoc,eslint-plugin-prettier,fast-check,jest,jest-environment-node,jest-when,license-checker,nx,projen,ts-jest,tsx,archiver,cdk-from-cfn,fast-deep-equal,fast-glob,picomatch,semver,split2" + "exec": "yarn dlx npm-check-updates@20 --upgrade --target=minor --cooldown=3 --peer --no-deprecated --dep=dev,peer,prod,optional --filter=@aws-cdk/aws-service-spec,@cdklabs/eslint-plugin,@jest/environment,@jest/globals,@jest/types,@microsoft/api-extractor,@smithy/util-stream,@types/jest,@types/jest-when,@types/picomatch,@types/split2,aws-cdk-lib,aws-sdk-client-mock,aws-sdk-client-mock-jest,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-jest,eslint-plugin-jsdoc,eslint-plugin-prettier,fast-check,jest,jest-environment-node,jest-when,license-checker,nx,projen,ts-jest,tsx,cdk-from-cfn,fast-deep-equal,fast-glob,picomatch,semver,split2" } ] }, @@ -117,7 +117,7 @@ "name": "gather-versions", "steps": [ { - "exec": "node -e \"require(require.resolve('cdklabs-projen-project-types/lib/yarn/gather-versions.exec.js')).cliMain()\" @aws-cdk/cloud-assembly-schema=any-future @aws-cdk/cloudformation-diff=any-minor @aws-cdk/cdk-assets-lib=any-minor @aws-cdk/cloud-assembly-api=exact @aws-cdk/cli-plugin-contract=any-minor", + "exec": "node -e \"require(require.resolve('cdklabs-projen-project-types/lib/yarn/gather-versions.exec.js')).cliMain()\" @aws-cdk/tools=exact @aws-cdk/cloud-assembly-schema=any-future @aws-cdk/cloudformation-diff=any-minor @aws-cdk/cdk-assets-lib=any-minor @aws-cdk/cloud-assembly-api=exact @aws-cdk/cli-plugin-contract=any-minor", "receiveArgs": true } ] @@ -198,6 +198,9 @@ "steps": [ { "spawn": "check-licenses" + }, + { + "exec": "node -e \"const p=require.resolve('@aws-cdk/tools/lib/zip/index.js');const d=require('path').dirname(p);const fs=require('fs');fs.mkdirSync('lib/private/tools/zip',{recursive:true});fs.copyFileSync(p,'lib/private/tools/zip/index.js');fs.copyFileSync(require('path').join(d,'index.d.ts'),'lib/private/tools/zip/index.d.ts');\"" } ] }, diff --git a/packages/@aws-cdk/toolkit-lib/jest.config.json b/packages/@aws-cdk/toolkit-lib/jest.config.json index daa764d89..f643b6485 100644 --- a/packages/@aws-cdk/toolkit-lib/jest.config.json +++ b/packages/@aws-cdk/toolkit-lib/jest.config.json @@ -34,7 +34,8 @@ "\\.generated\\.[jt]s$", "/test/", ".warnings.jsii.js$", - "/node_modules/" + "/node_modules/", + "lib/private/tools/zip/index\\.js$" ], "reporters": [ "default", diff --git a/packages/@aws-cdk/toolkit-lib/lib/api/hotswap/lambda-functions.ts b/packages/@aws-cdk/toolkit-lib/lib/api/hotswap/lambda-functions.ts index fbb04bf16..5c710599b 100644 --- a/packages/@aws-cdk/toolkit-lib/lib/api/hotswap/lambda-functions.ts +++ b/packages/@aws-cdk/toolkit-lib/lib/api/hotswap/lambda-functions.ts @@ -1,18 +1,14 @@ -import { Writable } from 'stream'; import type { PropertyDifference } from '@aws-cdk/cloudformation-diff'; import type { UpdateFunctionConfigurationCommandInput } from '@aws-sdk/client-lambda'; import type { HotswapChange } from './common'; import { classifyChanges } from './common'; import type { AffectedResource, ResourceChange } from '../../payloads/hotswap'; +import { zipString } from '../../private/tools/zip'; import { ToolkitError } from '../../toolkit/toolkit-error'; import { flatMap } from '../../util'; import type { ILambdaClient, SDK } from '../aws-auth/private'; import { CfnEvaluationException, type EvaluateCloudFormationTemplate } from '../cloudformation'; -// namespace object imports won't work in the bundle for function exports -// eslint-disable-next-line @typescript-eslint/no-require-imports -const archiver = require('archiver'); - export async function isHotswappableLambdaFunctionChange( logicalId: string, change: ResourceChange, @@ -260,42 +256,6 @@ interface LambdaFunctionChange { readonly configurations?: LambdaFunctionConfigurations; } -/** - * Compress a string as a file, returning a promise for the zip buffer - * https://github.com/archiverjs/node-archiver/issues/342 - */ -function zipString(fileName: string, rawString: string): Promise { - return new Promise((resolve, reject) => { - const buffers: Buffer[] = []; - - const converter = new Writable(); - - converter._write = (chunk: Buffer, _: string, callback: () => void) => { - buffers.push(chunk); - process.nextTick(callback); - }; - - converter.on('finish', () => { - resolve(Buffer.concat(buffers)); - }); - - const archive = archiver('zip'); - - archive.on('error', (err: any) => { - reject(err); - }); - - archive.pipe(converter); - - archive.append(rawString, { - name: fileName, - date: new Date('1980-01-01T00:00:00.000Z'), // Add date to make resulting zip file deterministic - }); - - void archive.finalize(); - }); -} - /** * After a Lambda Function is updated, it cannot be updated again until the * `State=Active` and the `LastUpdateStatus=Successful`. diff --git a/packages/@aws-cdk/toolkit-lib/lib/util/archive.ts b/packages/@aws-cdk/toolkit-lib/lib/util/archive.ts index 4263d3a79..9d34a9721 100644 --- a/packages/@aws-cdk/toolkit-lib/lib/util/archive.ts +++ b/packages/@aws-cdk/toolkit-lib/lib/util/archive.ts @@ -1,94 +1,4 @@ -import { error } from 'console'; -import { createWriteStream, promises as fs } from 'fs'; -import * as path from 'path'; -import type { Options } from 'fast-glob'; -import { globSync } from 'fast-glob'; -import { formatErrorMessage } from './format-error'; - -// eslint-disable-next-line @typescript-eslint/no-require-imports -const archiver = require('archiver'); - -// Adapted from cdk-assets -export async function zipDirectory(directory: string, outputFile: string): Promise { - // We write to a temporary file and rename at the last moment. This is so that if we are - // interrupted during this process, we don't leave a half-finished file in the target location. - const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`; - await writeZipFile(directory, temporaryOutputFile); - await moveIntoPlace(temporaryOutputFile, outputFile); -} - -function writeZipFile(directory: string, outputFile: string): Promise { - return new Promise(async (ok, fail) => { - // The below options are needed to support following symlinks when building zip files: - // - onlyFiles: This will prevent symlinks themselves from being copied into the zip. - // - followSymbolicLinks: This will follow symlinks and copy the files within. - const globOptions: Options = { - dot: true, - onlyFiles: true, - followSymbolicLinks: true, - cwd: directory, - }; - const files = globSync('**', globOptions); // The output here is already sorted - - const output = createWriteStream(outputFile); - - const archive = archiver('zip'); - archive.on('warning', fail); - archive.on('error', fail); - - // archive has been finalized and the output file descriptor has closed, resolve promise - // this has to be done before calling `finalize` since the events may fire immediately after. - // see https://www.npmjs.com/package/archiver - output.once('close', ok); - - archive.pipe(output); - - // Append files serially to ensure file order - for (const file of files) { - const fullPath = path.resolve(directory, file); - // Exactly 2 promises - // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism - const [data, stat] = await Promise.all([fs.readFile(fullPath), fs.stat(fullPath)]); - archive.append(data, { - name: file, - mode: stat.mode, - }); - } - - await archive.finalize(); - }); -} - -/** - * Rename the file to the target location, taking into account: - * - * - That we may see EPERM on Windows while an Antivirus scanner still has the - * file open, so retry a couple of times. - * - This same function may be called in parallel and be interrupted at any point. - */ -async function moveIntoPlace(source: string, target: string) { - let delay = 100; - let attempts = 5; - while (true) { - try { - // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory) - await fs.rename(source, target); - return; - } catch (e: any) { - if (e.code !== 'EPERM' || attempts-- <= 0) { - throw e; - } - error(formatErrorMessage(e)); - await sleep(Math.floor(Math.random() * delay)); - delay *= 2; - } - } -} - -function sleep(ms: number) { - return new Promise(ok => setTimeout(ok, ms)); -} - -function randomString() { - return Math.random().toString(36).replace(/[^a-z0-9]+/g, ''); -} +// Re-export the shared, bundled `zip` tool from @aws-cdk/tools. +// The bundled files are copied into `../private/tools/zip/` by a +// pre-compile task (via useTools); see projenrc/tools.ts. +export { zipDirectory } from '../private/tools/zip'; diff --git a/packages/@aws-cdk/toolkit-lib/package.json b/packages/@aws-cdk/toolkit-lib/package.json index 103c74c8f..3699ff0a2 100644 --- a/packages/@aws-cdk/toolkit-lib/package.json +++ b/packages/@aws-cdk/toolkit-lib/package.json @@ -37,6 +37,7 @@ "devDependencies": { "@aws-cdk/aws-service-spec": "^0.1.179", "@aws-cdk/cli-plugin-contract": "^0.0.0", + "@aws-cdk/tools": "^0.0.0", "@cdklabs/eslint-plugin": "^2.0.4", "@jest/environment": "^29.7.0", "@jest/globals": "^29.7.0", @@ -114,7 +115,6 @@ "@smithy/shared-ini-file-loader": "^4", "@smithy/util-retry": "^4", "@smithy/util-waiter": "^4", - "archiver": "^7.0.1", "cdk-from-cfn": "^0.299.0", "chalk": "^4", "chokidar": "^4", diff --git a/packages/@aws-cdk/toolkit-lib/test/tsconfig.json b/packages/@aws-cdk/toolkit-lib/test/tsconfig.json index 1765b1375..e043bb4c4 100644 --- a/packages/@aws-cdk/toolkit-lib/test/tsconfig.json +++ b/packages/@aws-cdk/toolkit-lib/test/tsconfig.json @@ -19,6 +19,9 @@ }, { "path": "../../cli-plugin-contract" + }, + { + "path": "../../tools" } ], "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." diff --git a/packages/@aws-cdk/toolkit-lib/tsconfig.dev.json b/packages/@aws-cdk/toolkit-lib/tsconfig.dev.json index 437858648..5d081198d 100644 --- a/packages/@aws-cdk/toolkit-lib/tsconfig.dev.json +++ b/packages/@aws-cdk/toolkit-lib/tsconfig.dev.json @@ -63,6 +63,9 @@ }, { "path": "../cli-plugin-contract" + }, + { + "path": "../tools" } ] } diff --git a/packages/@aws-cdk/toolkit-lib/tsconfig.json b/packages/@aws-cdk/toolkit-lib/tsconfig.json index 6d6142fd5..8a563ec11 100644 --- a/packages/@aws-cdk/toolkit-lib/tsconfig.json +++ b/packages/@aws-cdk/toolkit-lib/tsconfig.json @@ -60,6 +60,9 @@ }, { "path": "../cli-plugin-contract" + }, + { + "path": "../tools" } ] } diff --git a/packages/@aws-cdk/tools/.eslintrc.json b/packages/@aws-cdk/tools/.eslintrc.json new file mode 100644 index 000000000..ae0501b14 --- /dev/null +++ b/packages/@aws-cdk/tools/.eslintrc.json @@ -0,0 +1,320 @@ +// ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". +{ + "env": { + "jest": true, + "node": true + }, + "root": true, + "plugins": [ + "@typescript-eslint", + "import", + "@cdklabs", + "@stylistic", + "jest", + "jsdoc" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 2018, + "sourceType": "module", + "project": "./tsconfig.dev.json" + }, + "extends": [ + "plugin:import/typescript", + "plugin:jest/recommended", + "plugin:prettier/recommended" + ], + "settings": { + "import/parsers": { + "@typescript-eslint/parser": [ + ".ts", + ".tsx" + ] + }, + "import/resolver": { + "node": {}, + "typescript": { + "project": "./tsconfig.dev.json", + "alwaysTryTypes": true + } + } + }, + "ignorePatterns": [ + "*.js", + "*.d.ts", + "node_modules/", + "*.generated.ts", + "coverage", + "*.generated.ts" + ], + "rules": { + "curly": [ + "error", + "multi-line", + "consistent" + ], + "@typescript-eslint/no-require-imports": "error", + "import/no-extraneous-dependencies": [ + "error", + { + "devDependencies": [ + "**/test/**", + "**/build-tools/**" + ], + "optionalDependencies": false, + "peerDependencies": true + } + ], + "import/no-unresolved": [ + "error" + ], + "import/order": [ + "error", + { + "groups": [ + "builtin", + "external" + ], + "alphabetize": { + "order": "asc", + "caseInsensitive": true + } + } + ], + "import/no-duplicates": "error", + "no-shadow": [ + "off" + ], + "@typescript-eslint/no-shadow": "error", + "@typescript-eslint/no-floating-promises": "error", + "no-return-await": [ + "off" + ], + "@typescript-eslint/return-await": "error", + "dot-notation": [ + "error" + ], + "no-bitwise": [ + "error" + ], + "@typescript-eslint/member-ordering": [ + "error", + { + "default": [ + "public-static-field", + "public-static-method", + "protected-static-field", + "protected-static-method", + "private-static-field", + "private-static-method", + "field", + "constructor", + "method" + ] + } + ], + "@cdklabs/promiseall-no-unbounded-parallelism": [ + "error" + ], + "no-restricted-syntax": [ + "error", + { + "selector": "CallExpression:matches([callee.name='createHash'], [callee.property.name='createHash']) Literal[value='md5']", + "message": "Use the md5hash() function from the core library if you want md5" + } + ], + "no-throw-literal": [ + "error" + ], + "no-console": [ + "error" + ], + "@cdklabs/no-invalid-path": [ + "error" + ], + "@typescript-eslint/unbound-method": "error", + "@cdklabs/no-core-construct": [ + "error" + ], + "@cdklabs/invalid-cfn-imports": [ + "error" + ], + "@cdklabs/no-literal-partition": [ + "error" + ], + "@typescript-eslint/consistent-type-imports": "error", + "import/no-relative-packages": "error", + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "punycode", + "message": "Package 'punycode' has to be imported with trailing slash, see warning in https://github.com/bestiejs/punycode.js#installation" + } + ], + "patterns": [ + "!punycode/" + ] + } + ], + "@stylistic/indent": [ + "error", + 2 + ], + "@stylistic/quotes": [ + "error", + "single", + { + "avoidEscape": true + } + ], + "@stylistic/member-delimiter-style": [ + "error" + ], + "@stylistic/comma-dangle": [ + "error", + "always-multiline" + ], + "@stylistic/no-extra-semi": [ + "error" + ], + "@stylistic/curly-newline": [ + "error", + "always" + ], + "@stylistic/comma-spacing": [ + "error", + { + "before": false, + "after": true + } + ], + "@stylistic/no-multi-spaces": [ + "error", + { + "ignoreEOLComments": false + } + ], + "@stylistic/array-bracket-spacing": [ + "error", + "never" + ], + "@stylistic/array-bracket-newline": [ + "error", + "consistent" + ], + "@stylistic/object-curly-spacing": [ + "error", + "always" + ], + "@stylistic/object-curly-newline": [ + "error", + { + "multiline": true, + "consistent": true + } + ], + "@stylistic/object-property-newline": [ + "error", + { + "allowAllPropertiesOnSameLine": true + } + ], + "@stylistic/keyword-spacing": [ + "error" + ], + "@stylistic/brace-style": [ + "error", + "1tbs", + { + "allowSingleLine": true + } + ], + "@stylistic/space-before-blocks": "error", + "@stylistic/eol-last": [ + "error", + "always" + ], + "@stylistic/spaced-comment": [ + "error", + "always", + { + "exceptions": [ + "/", + "*" + ], + "markers": [ + "/" + ] + } + ], + "@stylistic/padded-blocks": [ + "error", + { + "classes": "never", + "blocks": "never", + "switches": "never" + } + ], + "@stylistic/key-spacing": [ + "error" + ], + "@stylistic/quote-props": [ + "error", + "consistent-as-needed" + ], + "@stylistic/no-multiple-empty-lines": [ + "error", + { + "max": 1 + } + ], + "@stylistic/no-trailing-spaces": [ + "error" + ], + "@stylistic/semi": [ + "error", + "always" + ], + "@stylistic/max-len": [ + "error", + { + "code": 150, + "ignoreUrls": true, + "ignoreStrings": true, + "ignoreTemplateLiterals": true, + "ignoreComments": true, + "ignoreRegExpLiterals": true + } + ], + "jsdoc/require-param-description": [ + "error" + ], + "jsdoc/require-property-description": [ + "error" + ], + "jsdoc/require-returns-description": [ + "error" + ], + "jsdoc/check-alignment": [ + "error" + ], + "jsdoc/require-hyphen-before-param-description": [ + "error" + ], + "jest/expect-expect": "off", + "jest/no-conditional-expect": "off", + "jest/no-done-callback": "off", + "jest/no-standalone-expect": "off", + "jest/valid-expect": "off", + "jest/valid-title": "off", + "jest/no-identical-title": "off", + "jest/no-disabled-tests": "error", + "jest/no-focused-tests": "error", + "prettier/prettier": [ + "off" + ] + }, + "overrides": [] +} diff --git a/packages/@aws-cdk/tools/.gitattributes b/packages/@aws-cdk/tools/.gitattributes new file mode 100644 index 000000000..e0c2bceed --- /dev/null +++ b/packages/@aws-cdk/tools/.gitattributes @@ -0,0 +1,25 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". + +* text=auto eol=lf +/.eslintrc.js linguist-generated +/.eslintrc.json linguist-generated linguist-language=JSON-with-Comments +/.gitattributes linguist-generated +/.gitignore linguist-generated +/.npmignore linguist-generated +/.pnp.* binary linguist-vendored +/.prettierignore linguist-generated +/.prettierrc.json linguist-generated +/.projen/** linguist-generated +/.projen/deps.json linguist-generated +/.projen/files.json linguist-generated +/.projen/tasks.json linguist-generated +/.yarn/** linguist-vendored +/.yarn/plugins/**/* binary +/.yarn/releases/* binary +/.yarnrc.yml linguist-generated +/jest.config.json linguist-generated +/LICENSE linguist-generated +/package.json linguist-generated +/tsconfig.dev.json linguist-generated linguist-language=JSON-with-Comments +/tsconfig.json linguist-generated linguist-language=JSON-with-Comments +/yarn.lock linguist-generated \ No newline at end of file diff --git a/packages/@aws-cdk/tools/.gitignore b/packages/@aws-cdk/tools/.gitignore new file mode 100644 index 000000000..2524b6918 --- /dev/null +++ b/packages/@aws-cdk/tools/.gitignore @@ -0,0 +1,55 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". +!/.gitattributes +!/.projen/tasks.json +!/.projen/deps.json +!/.projen/files.json +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions +.pnp.* +!/.yarnrc.yml +!/package.json +!/LICENSE +!/.npmignore +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json +pids +*.pid +*.seed +*.pid.lock +lib-cov +coverage +*.lcov +.nyc_output +build/Release +node_modules/ +jspm_packages/ +*.tsbuildinfo +.eslintcache +*.tgz +.yarn-integrity +.cache +!/jest.config.json +/coverage/ +!/.prettierignore +!/.prettierrc.json +!/test/ +!/tsconfig.json +!/tsconfig.dev.json +!/lib/ +/lib/**/*.js +/lib/**/*.d.ts +/lib/**/*.d.ts.map +/dist/ +!/.eslintrc.json +!/.eslintrc.js +*.js +*.d.ts diff --git a/packages/@aws-cdk/tools/.npmignore b/packages/@aws-cdk/tools/.npmignore new file mode 100644 index 000000000..75d96a45f --- /dev/null +++ b/packages/@aws-cdk/tools/.npmignore @@ -0,0 +1,24 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". +/.projen/ +/jest.config.json +/coverage/ +/.prettierignore +/.prettierrc.json +/test/ +/tsconfig.dev.json +!/lib/ +!/lib/**/*.js +!/lib/**/*.d.ts +dist +/tsconfig.json +/.github/ +/.vscode/ +/.idea/ +/.projenrc.js +tsconfig.tsbuildinfo +/.eslintrc.json +.eslintrc.js +*.ts +!*.d.ts +build-tools +/.gitattributes diff --git a/packages/@aws-cdk/tools/.prettierignore b/packages/@aws-cdk/tools/.prettierignore new file mode 100644 index 000000000..d715de5ca --- /dev/null +++ b/packages/@aws-cdk/tools/.prettierignore @@ -0,0 +1,2 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". +.eslintrc.js diff --git a/packages/@aws-cdk/tools/.prettierrc.json b/packages/@aws-cdk/tools/.prettierrc.json new file mode 100644 index 000000000..af318ca5f --- /dev/null +++ b/packages/@aws-cdk/tools/.prettierrc.json @@ -0,0 +1,6 @@ +{ + "printWidth": 120, + "singleQuote": true, + "trailingComma": "all", + "overrides": [] +} diff --git a/packages/@aws-cdk/tools/.projen/deps.json b/packages/@aws-cdk/tools/.projen/deps.json new file mode 100644 index 000000000..d7a11e16a --- /dev/null +++ b/packages/@aws-cdk/tools/.projen/deps.json @@ -0,0 +1,118 @@ +{ + "dependencies": [ + { + "name": "@cdklabs/eslint-plugin", + "type": "build" + }, + { + "name": "@stylistic/eslint-plugin", + "version": "^3", + "type": "build" + }, + { + "name": "@types/archiver", + "type": "build" + }, + { + "name": "@types/jest", + "type": "build" + }, + { + "name": "@types/node", + "version": "^20", + "type": "build" + }, + { + "name": "@typescript-eslint/eslint-plugin", + "version": "^8", + "type": "build" + }, + { + "name": "@typescript-eslint/parser", + "version": "^8", + "type": "build" + }, + { + "name": "constructs", + "version": "^10.0.0", + "type": "build" + }, + { + "name": "esbuild", + "type": "build" + }, + { + "name": "eslint-config-prettier", + "type": "build" + }, + { + "name": "eslint-import-resolver-typescript", + "type": "build" + }, + { + "name": "eslint-plugin-import", + "type": "build" + }, + { + "name": "eslint-plugin-jest", + "type": "build" + }, + { + "name": "eslint-plugin-jsdoc", + "type": "build" + }, + { + "name": "eslint-plugin-prettier", + "type": "build" + }, + { + "name": "eslint", + "version": "^9", + "type": "build" + }, + { + "name": "jest", + "type": "build" + }, + { + "name": "jest-junit", + "version": "^16", + "type": "build" + }, + { + "name": "jszip", + "type": "build" + }, + { + "name": "nx", + "type": "build" + }, + { + "name": "prettier", + "version": "^2.8", + "type": "build" + }, + { + "name": "projen", + "type": "build" + }, + { + "name": "ts-jest", + "type": "build" + }, + { + "name": "typescript", + "version": "5.9", + "type": "build" + }, + { + "name": "archiver", + "type": "runtime" + }, + { + "name": "fast-glob", + "type": "runtime" + } + ], + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." +} diff --git a/packages/@aws-cdk/tools/.projen/files.json b/packages/@aws-cdk/tools/.projen/files.json new file mode 100644 index 000000000..19f0e3151 --- /dev/null +++ b/packages/@aws-cdk/tools/.projen/files.json @@ -0,0 +1,19 @@ +{ + "files": [ + ".eslintrc.js", + ".eslintrc.json", + ".gitattributes", + ".gitignore", + ".npmignore", + ".prettierignore", + ".prettierrc.json", + ".projen/deps.json", + ".projen/files.json", + ".projen/tasks.json", + "jest.config.json", + "LICENSE", + "tsconfig.dev.json", + "tsconfig.json" + ], + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." +} diff --git a/packages/@aws-cdk/tools/.projen/tasks.json b/packages/@aws-cdk/tools/.projen/tasks.json new file mode 100644 index 000000000..5b0df9391 --- /dev/null +++ b/packages/@aws-cdk/tools/.projen/tasks.json @@ -0,0 +1,181 @@ +{ + "tasks": { + "build": { + "name": "build", + "description": "Full release build", + "steps": [ + { + "spawn": "pre-compile" + }, + { + "spawn": "compile" + }, + { + "spawn": "post-compile" + }, + { + "spawn": "test" + }, + { + "spawn": "package" + } + ] + }, + "bump": { + "name": "bump", + "description": "Bumps versions of local dependencies", + "steps": [ + { + "spawn": "gather-versions" + } + ] + }, + "check-for-updates": { + "name": "check-for-updates", + "env": { + "CI": "0", + "YARN_ENABLE_IMMUTABLE_INSTALLS": "false", + "YARN_NPM_MINIMAL_AGE_GATE": "4320" + }, + "steps": [ + { + "exec": "yarn dlx npm-check-updates@20 --upgrade --target=minor --cooldown=3 --peer --no-deprecated --dep=dev,peer,prod,optional --filter=@cdklabs/eslint-plugin,@types/archiver,@types/jest,esbuild,eslint-config-prettier,eslint-import-resolver-typescript,eslint-plugin-import,eslint-plugin-jest,eslint-plugin-jsdoc,eslint-plugin-prettier,jest,jszip,nx,projen,ts-jest,archiver,fast-glob" + } + ] + }, + "compile": { + "name": "compile", + "description": "Only compile", + "steps": [ + { + "exec": "tsc --build", + "receiveArgs": true + } + ] + }, + "default": { + "name": "default", + "description": "Synthesize project files", + "steps": [ + { + "exec": "projen default", + "cwd": "../../.." + } + ] + }, + "eslint": { + "name": "eslint", + "description": "Runs eslint against the codebase", + "env": { + "ESLINT_USE_FLAT_CONFIG": "false", + "NODE_NO_WARNINGS": "1" + }, + "steps": [ + { + "exec": "eslint --ext .ts,.tsx --fix --no-error-on-unmatched-pattern $@ lib test build-tools", + "receiveArgs": true + } + ] + }, + "gather-versions": { + "name": "gather-versions", + "steps": [ + { + "exec": "node -e \"require(require.resolve('cdklabs-projen-project-types/lib/yarn/gather-versions.exec.js')).cliMain()\" ", + "receiveArgs": true + } + ] + }, + "install": { + "name": "install", + "description": "Install project dependencies and update lockfile (non-frozen)", + "steps": [ + { + "exec": "yarn install --no-immutable" + } + ] + }, + "install:ci": { + "name": "install:ci", + "description": "Install project dependencies using frozen lockfile", + "steps": [ + { + "exec": "yarn install --immutable" + } + ] + }, + "nx": { + "name": "nx", + "steps": [ + { + "exec": "nx run", + "receiveArgs": true + } + ] + }, + "package": { + "name": "package", + "description": "Creates the distribution package" + }, + "post-compile": { + "name": "post-compile", + "description": "Runs after successful compilation", + "steps": [ + { + "exec": "esbuild --bundle lib/zip/index.ts --platform=node --target=node18 --outfile=lib/zip/index.js --allow-overwrite" + } + ] + }, + "pre-compile": { + "name": "pre-compile", + "description": "Prepare the project for compilation" + }, + "test": { + "name": "test", + "description": "Run tests", + "steps": [ + { + "exec": "jest --passWithNoTests --updateSnapshot", + "receiveArgs": true + }, + { + "spawn": "eslint" + } + ] + }, + "test:watch": { + "name": "test:watch", + "description": "Run jest in watch mode", + "steps": [ + { + "exec": "jest --watch" + } + ] + }, + "unbump": { + "name": "unbump", + "description": "Resets versions of local dependencies to 0.0.0", + "steps": [ + { + "spawn": "gather-versions", + "env": { + "RESET_VERSIONS": "true" + } + } + ] + }, + "watch": { + "name": "watch", + "description": "Watch & compile in the background", + "steps": [ + { + "exec": "tsc --build -w" + } + ] + } + }, + "env": { + "PATH": "$(yarn exec node --print process.env.PATH)" + }, + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." +} diff --git a/packages/@aws-cdk/tools/.yarnrc.yml b/packages/@aws-cdk/tools/.yarnrc.yml new file mode 100644 index 000000000..f0ac08c6b --- /dev/null +++ b/packages/@aws-cdk/tools/.yarnrc.yml @@ -0,0 +1,3 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". + +{} diff --git a/packages/@aws-cdk/tools/LICENSE b/packages/@aws-cdk/tools/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/packages/@aws-cdk/tools/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@aws-cdk/tools/README.md b/packages/@aws-cdk/tools/README.md new file mode 100644 index 000000000..549edf620 --- /dev/null +++ b/packages/@aws-cdk/tools/README.md @@ -0,0 +1,27 @@ +# @aws-cdk/tools + +Private (unpublished) monorepo package that hosts small, self-contained +utilities that are **bundled into a single file each** and then **cherry-picked** +by consumer packages at build time. + +Each subdirectory under `lib/` is a "tool": it has its own `index.ts` source and +gets bundled by `esbuild` into a single `index.js` (with a matching `index.d.ts`). + +Consumers declare a `devDependency` on `@aws-cdk/tools` and add a `preCompile` +step (see `.projenrc.ts` → `copyTool()`) that copies the bundled +`lib//index.{js,d.ts}` into their own `lib/private//`. The consumer +then imports from `./private/` and ships the bundled file on publish. + +## Tools + +| Tool | Exports | Description | +| ------- | ------------------------- | ------------------------------------------------------- | +| archive | `zipDirectory`, `zipString` | Deterministic zip helpers (wraps `archiver` + `fast-glob`). | + +## Adding a new tool + +1. Create `lib//index.ts` with the public API. +2. Add the tool name to the `TOOLS` list in `.projenrc.ts` — this wires up the + per-tool `esbuild --bundle` post-compile step automatically. +3. Add tests under `test//`. +4. In the consumer's projen config, call `copyTool(consumer, '')`. diff --git a/packages/@aws-cdk/tools/jest.config.json b/packages/@aws-cdk/tools/jest.config.json new file mode 100644 index 000000000..ac29819e4 --- /dev/null +++ b/packages/@aws-cdk/tools/jest.config.json @@ -0,0 +1,67 @@ +{ + "coverageProvider": "v8", + "moduleFileExtensions": [ + "ts", + "js" + ], + "maxWorkers": "80%", + "testEnvironment": "node", + "coverageThreshold": { + "global": { + "statements": 80, + "branches": 80, + "functions": 80, + "lines": 80 + } + }, + "collectCoverage": true, + "coverageReporters": [ + "text-summary", + "cobertura", + [ + "html", + { + "subdir": "html-report" + } + ] + ], + "testMatch": [ + "/test/**/?(*.)+(test).ts", + "/@(lib|test)/**/*(*.)@(spec|test).ts?(x)", + "/@(lib|test)/**/__tests__/**/*.ts?(x)" + ], + "coveragePathIgnorePatterns": [ + "\\.generated\\.[jt]s$", + "/test/", + ".warnings.jsii.js$", + "/node_modules/" + ], + "reporters": [ + "default", + [ + "jest-junit", + { + "suiteName": "jest tests", + "outputDirectory": "coverage" + } + ] + ], + "randomize": true, + "clearMocks": true, + "coverageDirectory": "coverage", + "testPathIgnorePatterns": [ + "/node_modules/" + ], + "watchPathIgnorePatterns": [ + "/node_modules/" + ], + "transform": { + "^.+\\.[t]sx?$": [ + "ts-jest", + { + "tsconfig": "tsconfig.dev.json" + } + ] + }, + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." +} diff --git a/packages/@aws-cdk/tools/lib/zip/index.ts b/packages/@aws-cdk/tools/lib/zip/index.ts new file mode 100644 index 000000000..a4abb37c9 --- /dev/null +++ b/packages/@aws-cdk/tools/lib/zip/index.ts @@ -0,0 +1,147 @@ +import { createWriteStream, promises as fs } from 'fs'; +import * as path from 'path'; +import { Writable } from 'stream'; +import type { Options } from 'fast-glob'; +import { globSync } from 'fast-glob'; + +// namespace object imports won't work in the bundle for function exports +// eslint-disable-next-line @typescript-eslint/no-require-imports +const archiver = require('archiver'); + +/** + * Receives informational messages (e.g. retries on EPERM on Windows). + */ +export type EventEmitter = (x: string) => void; + +/** + * Zip the contents of a directory into the given output file. + * + * The resulting zip is deterministic: file dates are reset to a fixed + * epoch so equal content produces equal zip files. + * + * Follows symbolic links. + * + * @param directory - The directory to zip. + * @param outputFile - The target zip file path. + * @param eventEmitter - Optional sink for informational messages. + */ +export async function zipDirectory( + directory: string, + outputFile: string, + eventEmitter: EventEmitter = () => { + }, +): Promise { + // We write to a temporary file and rename at the last moment. This is so that if we are + // interrupted during this process, we don't leave a half-finished file in the target location. + const temporaryOutputFile = `${outputFile}.${randomString()}._tmp`; + await writeZipFile(directory, temporaryOutputFile); + await moveIntoPlace(temporaryOutputFile, outputFile, eventEmitter); +} + +/** + * Compress a string as a single-file zip, returning the zip buffer. + * + * The resulting zip is deterministic: the file date is reset to a fixed epoch. + * + * @see https://github.com/archiverjs/node-archiver/issues/342 + */ +export function zipString(fileName: string, rawString: string): Promise { + return new Promise((resolve, reject) => { + const buffers: Buffer[] = []; + + const converter = new Writable(); + converter._write = (chunk: Buffer, _: string, callback: () => void) => { + buffers.push(chunk); + process.nextTick(callback); + }; + converter.on('finish', () => resolve(Buffer.concat(buffers))); + + const archive = archiver('zip'); + archive.on('error', reject); + archive.pipe(converter); + archive.append(rawString, { + name: fileName, + date: new Date('1980-01-01T00:00:00.000Z'), + }); + void archive.finalize(); + }); +} + +function writeZipFile(directory: string, outputFile: string): Promise { + return new Promise(async (ok, fail) => { + // The below options are needed to support following symlinks when building zip files: + // - onlyFiles: This will prevent symlinks themselves from being copied into the zip. + // - followSymbolicLinks: This will follow symlinks and copy the files within. + const globOptions: Options = { + dot: true, + onlyFiles: true, + followSymbolicLinks: true, + cwd: directory, + }; + const files = globSync('**', globOptions); // The output here is already sorted + + const output = createWriteStream(outputFile); + + const archive = archiver('zip'); + archive.on('warning', fail); + archive.on('error', fail); + + // archive has been finalized and the output file descriptor has closed, resolve promise + // this has to be done before calling `finalize` since the events may fire immediately after. + // see https://www.npmjs.com/package/archiver + output.once('close', ok); + + archive.pipe(output); + + // Append files serially to ensure file order + for (const file of files) { + const fullPath = path.resolve(directory, file); + // There are exactly 2 promises + // eslint-disable-next-line @cdklabs/promiseall-no-unbounded-parallelism + const [data, stat] = await Promise.all([fs.readFile(fullPath), fs.stat(fullPath)]); + archive.append(data, { + name: file, + date: new Date('1980-01-01T00:00:00.000Z'), // reset dates to get the same hash for the same content + mode: stat.mode, + }); + } + + await archive.finalize(); + }); +} + +/** + * Rename the file to the target location, taking into account: + * + * - That we may see EPERM on Windows while an Antivirus scanner still has the + * file open, so retry a couple of times. + * - This same function may be called in parallel and be interrupted at any point. + */ +async function moveIntoPlace(source: string, target: string, eventEmitter: EventEmitter) { + let delay = 100; + let attempts = 5; + while (true) { + try { + // 'rename' is guaranteed to overwrite an existing target, as long as it is a file (not a directory) + await fs.rename(source, target); + return; + } catch (e: any) { + if (e.code !== 'EPERM' || attempts-- <= 0) { + throw e; + } + eventEmitter(e.message); + await sleep(Math.floor(Math.random() * delay)); + delay *= 2; + } + } +} + +function sleep(ms: number) { + return new Promise((ok) => setTimeout(ok, ms)); +} + +function randomString() { + return Math.random() + .toString(36) + .replace(/[^a-z0-9]+/g, ''); +} diff --git a/packages/@aws-cdk/tools/package.json b/packages/@aws-cdk/tools/package.json new file mode 100644 index 000000000..f1f8fc8e6 --- /dev/null +++ b/packages/@aws-cdk/tools/package.json @@ -0,0 +1,84 @@ +{ + "name": "@aws-cdk/tools", + "description": "Bundled utility tools that other packages cherry-pick from", + "repository": { + "type": "git", + "url": "https://github.com/aws/aws-cdk-cli", + "directory": "packages/@aws-cdk/tools" + }, + "scripts": { + "build": "projen build", + "bump": "projen bump", + "check-for-updates": "projen check-for-updates", + "compile": "projen compile", + "default": "projen default", + "eslint": "projen eslint", + "gather-versions": "projen gather-versions", + "nx": "projen nx", + "package": "projen package", + "post-compile": "projen post-compile", + "pre-compile": "projen pre-compile", + "test": "projen test", + "test:watch": "projen test:watch", + "unbump": "projen unbump", + "watch": "projen watch", + "projen": "projen" + }, + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "devDependencies": { + "@cdklabs/eslint-plugin": "^2.0.4", + "@stylistic/eslint-plugin": "^3", + "@types/archiver": "^7.0.0", + "@types/jest": "^29.5.14", + "@types/node": "^20", + "@typescript-eslint/eslint-plugin": "^8", + "@typescript-eslint/parser": "^8", + "constructs": "^10.0.0", + "esbuild": "^0.28.0", + "eslint": "^9", + "eslint-config-prettier": "^10.1.8", + "eslint-import-resolver-typescript": "^4.4.4", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-jest": "^29.15.2", + "eslint-plugin-jsdoc": "^62.9.0", + "eslint-plugin-prettier": "^4.2.5", + "jest": "^29.7.0", + "jest-junit": "^16", + "jszip": "^3.10.1", + "nx": "^22.7.1", + "prettier": "^2.8", + "projen": "^0.99.57", + "ts-jest": "^29.4.9", + "typescript": "5.9" + }, + "dependencies": { + "archiver": "^7.0.1", + "fast-glob": "^3.3.3" + }, + "keywords": [ + "aws", + "cdk" + ], + "engines": { + "node": ">= 18.0.0" + }, + "devEngines": { + "packageManager": { + "name": "yarn", + "version": ">=4", + "onFail": "ignore" + } + }, + "main": "lib/index.js", + "license": "Apache-2.0", + "homepage": "https://github.com/aws/aws-cdk", + "version": "0.0.0", + "packageManager": "yarn@4.13.0", + "types": "lib/index.d.ts", + "private": true, + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"." +} diff --git a/packages/@aws-cdk/tools/test/zip/zip.test.ts b/packages/@aws-cdk/tools/test/zip/zip.test.ts new file mode 100644 index 000000000..f42cc6bb7 --- /dev/null +++ b/packages/@aws-cdk/tools/test/zip/zip.test.ts @@ -0,0 +1,155 @@ +import { exec as _exec } from 'child_process'; +import * as crypto from 'crypto'; +import { constants, promises as fs } from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { promisify } from 'util'; +import * as jszip from 'jszip'; +import { zipDirectory, zipString } from '../../lib/zip'; + +const exec = promisify(_exec); + +function contentHash(data: string | Buffer | DataView) { + return crypto.createHash('sha256').update(data).digest('hex'); +} + +describe('zipDirectory', () => { + let stagingDir: string; + let extractDir: string; + + beforeEach(async () => { + stagingDir = await fs.mkdtemp(path.join(os.tmpdir(), 'archive-staging-')); + extractDir = await fs.mkdtemp(path.join(os.tmpdir(), 'archive-extract-')); + }); + + afterEach(async () => { + await fs.rm(stagingDir, { recursive: true, force: true }); + await fs.rm(extractDir, { recursive: true, force: true }); + }); + + test('zips a directory, preserves content, mode, and resets dates', async () => { + // Arrange + const srcDir = path.join(stagingDir, 'src'); + await fs.mkdir(path.join(srcDir, 'sub'), { recursive: true }); + await fs.writeFile(path.join(srcDir, 'file1.txt'), 'content1'); + await fs.writeFile(path.join(srcDir, 'sub', 'file2.txt'), 'content2'); + const execFile = path.join(srcDir, 'run.sh'); + await fs.writeFile(execFile, '#!/bin/sh\necho hi'); + await fs.chmod(execFile, 0o755); + const zipFile = path.join(stagingDir, 'out.zip'); + + // Act + await zipDirectory(srcDir, zipFile); + + // Assert content + await exec(`unzip ${zipFile}`, { cwd: extractDir }); + await expect(exec(`diff -bur ${srcDir} ${extractDir}`)).resolves.toBeTruthy(); + + // Dates reset to deterministic epoch + const zipData = await jszip.loadAsync(await fs.readFile(zipFile)); + const dates = Object.values(zipData.files).map((f) => f.date.toISOString()); + expect(new Set(dates).size).toBe(1); + expect(dates[0]).toBe('1980-01-01T00:00:00.000Z'); + + // Executable bit preserved + const stat = await fs.stat(path.join(extractDir, 'run.sh')); + // eslint-disable-next-line no-bitwise + expect(!!(stat.mode & (constants.S_IXUSR | constants.S_IXGRP | constants.S_IXOTH))).toBe(true); + }); + + test('produces the same hash for the same content (deterministic)', async () => { + const srcDir = path.join(stagingDir, 'src'); + await fs.mkdir(srcDir, { recursive: true }); + await fs.writeFile(path.join(srcDir, 'a.txt'), 'a'); + const zip1 = path.join(stagingDir, '1.zip'); + const zip2 = path.join(stagingDir, '2.zip'); + + await zipDirectory(srcDir, zip1); + await new Promise((ok) => setTimeout(ok, 50)); + await zipDirectory(srcDir, zip2); + + expect(contentHash(await fs.readFile(zip1))).toEqual(contentHash(await fs.readFile(zip2))); + }); + + test('follows symlinks', async () => { + if (os.platform() === 'win32') return; + + const srcDir = path.join(stagingDir, 'src'); + await fs.mkdir(srcDir, { recursive: true }); + const target = path.join(stagingDir, 'target.txt'); + await fs.writeFile(target, 'target-content'); + await fs.symlink(target, path.join(srcDir, 'link.txt')); + + const zipFile = path.join(stagingDir, 'out.zip'); + await zipDirectory(srcDir, zipFile); + + await exec(`unzip ${zipFile}`, { cwd: extractDir }); + const content = await fs.readFile(path.join(extractDir, 'link.txt'), 'utf-8'); + expect(content).toBe('target-content'); + }); + + test('retries on EPERM and reports via eventEmitter', async () => { + const srcDir = path.join(stagingDir, 'src'); + await fs.mkdir(srcDir, { recursive: true }); + await fs.writeFile(path.join(srcDir, 'a.txt'), 'a'); + const zipFile = path.join(stagingDir, 'out.zip'); + const events: string[] = []; + + const realRename = fs.rename; + let calls = 0; + const spy = jest.spyOn(fs, 'rename').mockImplementation(async (from, to) => { + calls++; + if (calls === 1) { + const err: NodeJS.ErrnoException = new Error('permission denied'); + err.code = 'EPERM'; + throw err; + } + return realRename(from, to); + }); + + try { + await zipDirectory(srcDir, zipFile, (m) => events.push(m)); + } finally { + spy.mockRestore(); + } + + expect(events).toEqual(['permission denied']); + await expect(fs.stat(zipFile)).resolves.toBeDefined(); + }); + + test('rethrows non-EPERM rename errors', async () => { + const srcDir = path.join(stagingDir, 'src'); + await fs.mkdir(srcDir, { recursive: true }); + await fs.writeFile(path.join(srcDir, 'a.txt'), 'a'); + const zipFile = path.join(stagingDir, 'out.zip'); + + const spy = jest.spyOn(fs, 'rename').mockImplementation(async () => { + const err: NodeJS.ErrnoException = new Error('disk full'); + err.code = 'ENOSPC'; + throw err; + }); + + try { + await expect(zipDirectory(srcDir, zipFile)).rejects.toThrow('disk full'); + } finally { + spy.mockRestore(); + } + }); +}); + +describe('zipString', () => { + test('produces a zip buffer containing the given file', async () => { + const buf = await zipString('hello.txt', 'hello world'); + const zip = await jszip.loadAsync(buf); + const entry = zip.files['hello.txt']; + expect(entry).toBeDefined(); + expect(await entry.async('string')).toBe('hello world'); + expect(entry.date.toISOString()).toBe('1980-01-01T00:00:00.000Z'); + }); + + test('is deterministic for the same input', async () => { + const a = await zipString('f.txt', 'same'); + const b = await zipString('f.txt', 'same'); + expect(contentHash(a)).toEqual(contentHash(b)); + }); +}); diff --git a/packages/@aws-cdk/tools/tsconfig.dev.json b/packages/@aws-cdk/tools/tsconfig.dev.json new file mode 100644 index 000000000..8a240ef39 --- /dev/null +++ b/packages/@aws-cdk/tools/tsconfig.dev.json @@ -0,0 +1,46 @@ +// ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". +{ + "compilerOptions": { + "alwaysStrict": true, + "declaration": true, + "esModuleInterop": false, + "experimentalDecorators": true, + "inlineSourceMap": true, + "inlineSources": true, + "lib": [ + "es2020" + ], + "module": "commonjs", + "noEmitOnError": false, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "strict": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "stripInternal": true, + "target": "ES2020", + "types": [ + "archiver", + "jest", + "node" + ], + "incremental": true, + "skipLibCheck": true, + "isolatedModules": true, + "composite": true, + "outDir": "lib" + }, + "include": [ + "lib/**/*.ts", + "test/**/*.ts" + ], + "exclude": [ + "node_modules" + ], + "references": [] +} diff --git a/packages/@aws-cdk/tools/tsconfig.json b/packages/@aws-cdk/tools/tsconfig.json new file mode 100644 index 000000000..f4b19cb75 --- /dev/null +++ b/packages/@aws-cdk/tools/tsconfig.json @@ -0,0 +1,44 @@ +// ~~ Generated by projen. To modify, edit .projenrc.js and run "yarn projen". +{ + "compilerOptions": { + "rootDir": "lib", + "outDir": "lib", + "alwaysStrict": true, + "declaration": true, + "esModuleInterop": false, + "experimentalDecorators": true, + "inlineSourceMap": true, + "inlineSources": true, + "lib": [ + "es2020" + ], + "module": "commonjs", + "noEmitOnError": false, + "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "resolveJsonModule": true, + "strict": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, + "stripInternal": true, + "target": "ES2020", + "types": [ + "archiver", + "jest", + "node" + ], + "incremental": true, + "skipLibCheck": true, + "isolatedModules": true, + "composite": true + }, + "include": [ + "lib/**/*.ts" + ], + "exclude": [], + "references": [] +} diff --git a/projenrc/tools.ts b/projenrc/tools.ts new file mode 100644 index 000000000..149f65125 --- /dev/null +++ b/projenrc/tools.ts @@ -0,0 +1,158 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import { yarn } from 'cdklabs-projen-project-types'; +import type { TypeScriptWorkspaceOptions } from 'cdklabs-projen-project-types/lib/yarn'; + +const TOOLS_PACKAGE_NAME = '@aws-cdk/tools'; +const TOOLS_KEY = Symbol.for('aws-cdk-cli.tools-workspace'); + +export interface ToolsWorkspaceOptions extends Omit { + /** + * Runtime dependencies that `esbuild` will bundle into the tool outputs. + */ + readonly deps?: string[]; + /** + * Dev dependencies (must at minimum include `esbuild`). + */ + readonly devDeps?: string[]; +} + +/** + * Private monorepo package that hosts small, self-contained utilities. + * + * Each subdirectory of `lib/` is a "tool": it has its own `index.ts` source + * and is bundled by `esbuild` into a single `lib//index.js` (with a + * matching `.d.ts`). Tools are auto-discovered from the filesystem. + * + * Consumers take a `devDependency` on this package and use `useTools` on + * `CdkTypeScriptWorkspace` to cherry-pick bundled tools into their source + * tree at pre-compile time. + */ +export class ToolsWorkspace extends yarn.TypeScriptWorkspace { + /** + * Tool names discovered under `lib/`. + */ + public readonly toolNames: readonly string[]; + + constructor(options: ToolsWorkspaceOptions) { + super({ + ...options, + name: TOOLS_PACKAGE_NAME, + description: 'Bundled utility tools that other packages cherry-pick from', + srcdir: 'lib', + private: true, + devDeps: ['esbuild', ...(options.devDeps ?? [])], + }); + + // Register this workspace on the parent monorepo so that consumer + // workspaces can locate it via `options.parent`. + (options.parent as any)[TOOLS_KEY] = this; + + this.toolNames = discoverTools(path.join(options.parent?.outdir ?? '.', 'packages/@aws-cdk/tools/lib')); + + // Per-tool esbuild bundle step after tsc compile. The `.d.ts` output + // from tsc is left untouched for consumers to consume. + for (const tool of this.toolNames) { + this.postCompileTask.exec( + [ + 'esbuild', + '--bundle', + `lib/${tool}/index.ts`, + '--platform=node', + '--target=node18', + `--outfile=lib/${tool}/index.js`, + '--allow-overwrite', + ].join(' '), + ); + } + this.gitignore.addPatterns('*.js', '*.d.ts'); + } +} + +/** + * Locate the `ToolsWorkspace` attached to a monorepo (if any). + */ +function findTools(parent: unknown): ToolsWorkspace | undefined { + return parent ? (parent as any)[TOOLS_KEY] : undefined; +} + +/** + * List the immediate subdirectories of `dir` that contain an `index.ts`. + * Returns an empty array if `dir` does not exist yet (first projen run). + */ +function discoverTools(dir: string): string[] { + if (!fs.existsSync(dir)) { + return []; + } + return fs + .readdirSync(dir, { withFileTypes: true }) + .filter((e) => e.isDirectory() && fs.existsSync(path.join(dir, e.name, 'index.ts'))) + .map((e) => e.name) + .sort(); +} + +export interface CdkTypeScriptWorkspaceOptions extends TypeScriptWorkspaceOptions { + /** + * Names of tools from `@aws-cdk/tools` to cherry-pick into this package. + * + * For each name, the bundled `lib//index.{js,d.ts}` from + * `@aws-cdk/tools` is copied into this package's `lib/private//` + * at pre-compile time, so the consumer can import from + * `./private/` and ship the bundled file on publish. + * + * @default - no tools + */ + readonly useTools?: string[]; +} + +/** + * A `yarn.TypeScriptWorkspace` that can optionally cherry-pick bundled tools + * from the monorepo's `@aws-cdk/tools` workspace via `useTools`. + */ +export class CdkTypeScriptWorkspace extends yarn.TypeScriptWorkspace { + constructor(options: CdkTypeScriptWorkspaceOptions) { + const { useTools = [], ...rest } = options; + const toolsWorkspace = findTools(options.parent); + super({ + ...rest, + devDeps: [ + ...(useTools.length > 0 && toolsWorkspace ? [toolsWorkspace as any] : []), + ...(rest.devDeps ?? []), + ], + }); + + if (useTools.length === 0) { + return; + } + if (!toolsWorkspace) { + throw new Error(`useTools was specified but no ToolsWorkspace is registered on the monorepo (package ${options.name})`); + } + + for (const tool of useTools) { + if (!toolsWorkspace.toolNames.includes(tool)) { + throw new Error(`Unknown tool '${tool}' requested by ${options.name}; known tools: ${toolsWorkspace.toolNames.join(', ')}`); + } + this.wireTool(tool); + } + } + + private wireTool(tool: string) { + const dest = `lib/private/tools/${tool}`; + const script = [ + `const p=require.resolve('${TOOLS_PACKAGE_NAME}/lib/${tool}/index.js');`, + "const d=require('path').dirname(p);", + "const fs=require('fs');", + `fs.mkdirSync('${dest}',{recursive:true});`, + `fs.copyFileSync(p,'${dest}/index.js');`, + `fs.copyFileSync(require('path').join(d,'index.d.ts'),'${dest}/index.d.ts');`, + ].join(''); + this.preCompileTask.exec(`node -e "${script}"`); + + // Exclude the copied (generated) bundle from test coverage. + const jest = this.tryFindObjectFile('jest.config.json'); + jest?.addOverride( + 'coveragePathIgnorePatterns', + [...((jest as any).obj?.coveragePathIgnorePatterns ?? []), `${dest}/index\\.js$`], + ); + } +} diff --git a/tsconfig.dev.json b/tsconfig.dev.json index f083e9917..5751d5b2b 100644 --- a/tsconfig.dev.json +++ b/tsconfig.dev.json @@ -55,6 +55,9 @@ { "path": "packages/@aws-cdk/cli-plugin-contract" }, + { + "path": "packages/@aws-cdk/tools" + }, { "path": "packages/@aws-cdk/cdk-assets-lib" }, diff --git a/tsconfig.json b/tsconfig.json index 2977d3697..e05845e5a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -52,6 +52,9 @@ { "path": "packages/@aws-cdk/cli-plugin-contract" }, + { + "path": "packages/@aws-cdk/tools" + }, { "path": "packages/@aws-cdk/cdk-assets-lib" }, diff --git a/yarn.lock b/yarn.lock index d1318a027..907127f82 100644 --- a/yarn.lock +++ b/yarn.lock @@ -109,6 +109,7 @@ __metadata: dependencies: "@aws-cdk/cloud-assembly-api": "npm:^0.0.0" "@aws-cdk/cloud-assembly-schema": "npm:^0.0.0" + "@aws-cdk/tools": "npm:^0.0.0" "@aws-sdk/client-ecr": "npm:^3" "@aws-sdk/client-s3": "npm:^3" "@aws-sdk/client-secrets-manager": "npm:^3" @@ -119,7 +120,6 @@ __metadata: "@smithy/config-resolver": "npm:^4" "@smithy/node-config-provider": "npm:^4" "@stylistic/eslint-plugin": "npm:^3" - "@types/archiver": "npm:^6.0.4" "@types/jest": "npm:^29.5.14" "@types/mime": "npm:^2" "@types/mock-fs": "npm:^4" @@ -127,7 +127,6 @@ __metadata: "@types/picomatch": "npm:^4.0.3" "@typescript-eslint/eslint-plugin": "npm:^8" "@typescript-eslint/parser": "npm:^8" - archiver: "npm:^7.0.1" aws-sdk-client-mock: "npm:^4.1.0" aws-sdk-client-mock-jest: "npm:^4.1.0" commit-and-tag-version: "npm:^12" @@ -442,6 +441,7 @@ __metadata: "@aws-cdk/cloud-assembly-schema": "npm:^0.0.0" "@aws-cdk/cloudformation-diff": "npm:^0.0.0" "@aws-cdk/cx-api": "npm:^2" + "@aws-cdk/tools": "npm:^0.0.0" "@aws-sdk/client-appsync": "npm:^3" "@aws-sdk/client-bedrock-agentcore-control": "npm:^3" "@aws-sdk/client-cloudcontrol": "npm:^3" @@ -484,7 +484,6 @@ __metadata: "@types/split2": "npm:^4.2.3" "@typescript-eslint/eslint-plugin": "npm:^8" "@typescript-eslint/parser": "npm:^8" - archiver: "npm:^7.0.1" aws-cdk-lib: "npm:2.253.0" aws-sdk-client-mock: "npm:^4.1.0" aws-sdk-client-mock-jest: "npm:^4.1.0" @@ -527,6 +526,39 @@ __metadata: languageName: unknown linkType: soft +"@aws-cdk/tools@npm:^0.0.0, @aws-cdk/tools@workspace:packages/@aws-cdk/tools": + version: 0.0.0-use.local + resolution: "@aws-cdk/tools@workspace:packages/@aws-cdk/tools" + dependencies: + "@cdklabs/eslint-plugin": "npm:^2.0.0" + "@stylistic/eslint-plugin": "npm:^3" + "@types/archiver": "npm:^7.0.0" + "@types/jest": "npm:^29.5.14" + "@types/node": "npm:^20" + "@typescript-eslint/eslint-plugin": "npm:^8" + "@typescript-eslint/parser": "npm:^8" + archiver: "npm:^7.0.1" + constructs: "npm:^10.0.0" + esbuild: "npm:^0.28.0" + eslint: "npm:^9" + eslint-config-prettier: "npm:^10.1.8" + eslint-import-resolver-typescript: "npm:^4.4.4" + eslint-plugin-import: "npm:^2.32.0" + eslint-plugin-jest: "npm:^29.15.2" + eslint-plugin-jsdoc: "npm:^62.9.0" + eslint-plugin-prettier: "npm:^4.2.5" + fast-glob: "npm:^3.3.3" + jest: "npm:^29.7.0" + jest-junit: "npm:^16" + jszip: "npm:^3.10.1" + nx: "npm:^22.6.4" + prettier: "npm:^2.8" + projen: "npm:^0.99.48" + ts-jest: "npm:^29.4.9" + typescript: "npm:5.9" + languageName: unknown + linkType: soft + "@aws-cdk/user-input-gen@npm:^0.0.0, @aws-cdk/user-input-gen@workspace:packages/@aws-cdk/user-input-gen": version: 0.0.0-use.local resolution: "@aws-cdk/user-input-gen@workspace:packages/@aws-cdk/user-input-gen" @@ -822,50 +854,50 @@ __metadata: linkType: hard "@aws-sdk/client-cloudformation@npm:^3": - version: 3.1041.0 - resolution: "@aws-sdk/client-cloudformation@npm:3.1041.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-cloudformation@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.8" - "@aws-sdk/credential-provider-node": "npm:^3.972.39" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.38" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.24" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.7" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.6" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" "@smithy/util-utf8": "npm:^4.2.2" - "@smithy/util-waiter": "npm:^4.3.0" + "@smithy/util-waiter": "npm:^4.2.15" tslib: "npm:^2.6.2" - checksum: 10c0/efc5e795b57627fe598c27528020aec7133c16791a53d635731b144b4defc70fbc4247cd366c736651d26eda2acd1c0754742b401d71d9a5c37ba69dc81180c4 + checksum: 10c0/e517b6c4b47a3b4647c62b30172cb96ed281bb3fc644798712e4b400e240275e2d24fb439a24f1368a10b6ccec32940b8be1e00fd67b34ebfd8e93ea36faf59d languageName: node linkType: hard @@ -1014,50 +1046,50 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/client-cognito-identity@npm:3.1036.0": - version: 3.1036.0 - resolution: "@aws-sdk/client-cognito-identity@npm:3.1036.0" +"@aws-sdk/client-cognito-identity@npm:3.1028.0": + version: 3.1028.0 + resolution: "@aws-sdk/client-cognito-identity@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.5" - "@aws-sdk/credential-provider-node": "npm:^3.972.36" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.35" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.21" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.5" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.4" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" "@smithy/util-utf8": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/032cb6f4d342480c6dfa67e3021a448131182a1b5b23763ba11ef7584e95d93737bcfd2d938e11276588915a6e3e3a26d9e6fb2fa8197fc606f6d1a7c6bfc58c + checksum: 10c0/2c5bfd26f8b13ef638e52346e47fd9158106673c2b603e74c18859212f9ff6ef7f07fbf07c38fb7507e0f728765c2405553f518e0afe7093e3afa43d50b97ae9 languageName: node linkType: hard @@ -1255,98 +1287,98 @@ __metadata: linkType: hard "@aws-sdk/client-ecr@npm:^3": - version: 3.1041.0 - resolution: "@aws-sdk/client-ecr@npm:3.1041.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-ecr@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.8" - "@aws-sdk/credential-provider-node": "npm:^3.972.39" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.38" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.24" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.7" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.6" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" "@smithy/util-utf8": "npm:^4.2.2" - "@smithy/util-waiter": "npm:^4.3.0" + "@smithy/util-waiter": "npm:^4.2.15" tslib: "npm:^2.6.2" - checksum: 10c0/27af6c8fbf79c38f11913e5f6559e8b97c4df4559c27ae6b3410db038122555da250e8d71e8fc09bf833239b25fbc5c9b4c86f3ea015a11ccbd5cd7698e35a85 + checksum: 10c0/d83140fdd13454da6f546e6b4d18dc669b9223e22462cc0667ff1dd7e3a36a045ba163c2bdcb332a7af5644800c54ab59f7c91bf8ba45ac60dbf3a17c3859f58 languageName: node linkType: hard "@aws-sdk/client-ecs@npm:^3": - version: 3.1036.0 - resolution: "@aws-sdk/client-ecs@npm:3.1036.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-ecs@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.5" - "@aws-sdk/credential-provider-node": "npm:^3.972.36" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.35" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.21" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.5" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.4" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" "@smithy/util-utf8": "npm:^4.2.2" - "@smithy/util-waiter": "npm:^4.2.16" + "@smithy/util-waiter": "npm:^4.2.15" tslib: "npm:^2.6.2" - checksum: 10c0/0dece614e287b4eaca7edcd6f579786b75e7bd61dc001f1069167a14b474e3ca371db4df7e4db5cede583628daaf77c293c264df08ee6a68e83cb84783feee05 + checksum: 10c0/75397475c3d5df00f609035a257b5d633a669fc9fce51b615ea1e8fb43e86ca6f69e0640cbad1a4e6eec8c7d285a18446fc9dcae7e399c38b4c864af56956a99 languageName: node linkType: hard @@ -1399,50 +1431,50 @@ __metadata: linkType: hard "@aws-sdk/client-iam@npm:^3": - version: 3.1036.0 - resolution: "@aws-sdk/client-iam@npm:3.1036.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-iam@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.5" - "@aws-sdk/credential-provider-node": "npm:^3.972.36" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.35" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.21" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.5" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.4" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" "@smithy/util-utf8": "npm:^4.2.2" - "@smithy/util-waiter": "npm:^4.2.16" + "@smithy/util-waiter": "npm:^4.2.15" tslib: "npm:^2.6.2" - checksum: 10c0/f59001518298bc3fd542ba125b1db5589df8c6aacd70c9c8e73d32eccee014efc49d526aff8e4394f616359a55674ff0b0f2069ef67f710d1a71625f09f3d8dd + checksum: 10c0/368e2345866ea65c5b56023c3108c134f179ebda2f09c62b2d07d0ac8e68eb79629b6719889d09d75aa2d241f8b2a65ae71ee9165ac58e3cfaf86c561714aeef languageName: node linkType: hard @@ -1494,54 +1526,54 @@ __metadata: linkType: hard "@aws-sdk/client-lambda@npm:^3": - version: 3.1045.0 - resolution: "@aws-sdk/client-lambda@npm:3.1045.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-lambda@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.8" - "@aws-sdk/credential-provider-node": "npm:^3.972.39" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.38" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.24" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/eventstream-serde-browser": "npm:^4.2.14" - "@smithy/eventstream-serde-config-resolver": "npm:^4.3.14" - "@smithy/eventstream-serde-node": "npm:^4.2.14" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.7" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/eventstream-serde-browser": "npm:^4.2.13" + "@smithy/eventstream-serde-config-resolver": "npm:^4.3.13" + "@smithy/eventstream-serde-node": "npm:^4.2.13" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.6" - "@smithy/util-stream": "npm:^4.5.25" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" + "@smithy/util-stream": "npm:^4.5.22" "@smithy/util-utf8": "npm:^4.2.2" - "@smithy/util-waiter": "npm:^4.3.0" + "@smithy/util-waiter": "npm:^4.2.15" tslib: "npm:^2.6.2" - checksum: 10c0/fdb43b7217a2ff79d2581c902961c72e3d06eb0ac50a020c9cabbb8783e7fce93311bbd7b1e67b6d7adc884c92784b30de8dda244ba8849f53153e243b21f3bc + checksum: 10c0/83a10d4f10a37df7b6d2805cef0f8a0da67ab4f06ce32a846b94425a2c069f5bb67ab4f89e84a863b4fab24fbaffae5d192134f0eab6f514f265ee1b5cb55897 languageName: node linkType: hard @@ -1595,112 +1627,112 @@ __metadata: linkType: hard "@aws-sdk/client-s3@npm:^3": - version: 3.1045.0 - resolution: "@aws-sdk/client-s3@npm:3.1045.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-s3@npm:3.1028.0" dependencies: "@aws-crypto/sha1-browser": "npm:5.2.0" "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.8" - "@aws-sdk/credential-provider-node": "npm:^3.972.39" - "@aws-sdk/middleware-bucket-endpoint": "npm:^3.972.10" - "@aws-sdk/middleware-expect-continue": "npm:^3.972.10" - "@aws-sdk/middleware-flexible-checksums": "npm:^3.974.16" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-location-constraint": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-sdk-s3": "npm:^3.972.37" - "@aws-sdk/middleware-ssec": "npm:^3.972.10" - "@aws-sdk/middleware-user-agent": "npm:^3.972.38" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/signature-v4-multi-region": "npm:^3.996.25" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.24" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/eventstream-serde-browser": "npm:^4.2.14" - "@smithy/eventstream-serde-config-resolver": "npm:^4.3.14" - "@smithy/eventstream-serde-node": "npm:^4.2.14" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-blob-browser": "npm:^4.2.15" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/hash-stream-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/md5-js": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.7" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-bucket-endpoint": "npm:^3.972.9" + "@aws-sdk/middleware-expect-continue": "npm:^3.972.9" + "@aws-sdk/middleware-flexible-checksums": "npm:^3.974.7" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-location-constraint": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-sdk-s3": "npm:^3.972.28" + "@aws-sdk/middleware-ssec": "npm:^3.972.9" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/signature-v4-multi-region": "npm:^3.996.16" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/eventstream-serde-browser": "npm:^4.2.13" + "@smithy/eventstream-serde-config-resolver": "npm:^4.3.13" + "@smithy/eventstream-serde-node": "npm:^4.2.13" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-blob-browser": "npm:^4.2.14" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/hash-stream-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/md5-js": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.6" - "@smithy/util-stream": "npm:^4.5.25" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" + "@smithy/util-stream": "npm:^4.5.22" "@smithy/util-utf8": "npm:^4.2.2" - "@smithy/util-waiter": "npm:^4.3.0" + "@smithy/util-waiter": "npm:^4.2.15" tslib: "npm:^2.6.2" - checksum: 10c0/e1c017dd5ee22f57658f0527fcc736e6a240de0e836d49b125b2cde120cd7ff017c7d2e9ac172cca404ffa4c853048079221db068a49ab0faf5e2d6b7a2f93fa + checksum: 10c0/532a93320bcb7e0c5a3a92ab92474652849e7635c3632e3c235653bfbee44c538af7f424e0ffe144c9444bb357ff71486a5769a2126293933a3d7cbc9b0482ae languageName: node linkType: hard "@aws-sdk/client-secrets-manager@npm:^3": - version: 3.1045.0 - resolution: "@aws-sdk/client-secrets-manager@npm:3.1045.0" + version: 3.1028.0 + resolution: "@aws-sdk/client-secrets-manager@npm:3.1028.0" dependencies: "@aws-crypto/sha256-browser": "npm:5.2.0" "@aws-crypto/sha256-js": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.8" - "@aws-sdk/credential-provider-node": "npm:^3.972.39" - "@aws-sdk/middleware-host-header": "npm:^3.972.10" - "@aws-sdk/middleware-logger": "npm:^3.972.10" - "@aws-sdk/middleware-recursion-detection": "npm:^3.972.11" - "@aws-sdk/middleware-user-agent": "npm:^3.972.38" - "@aws-sdk/region-config-resolver": "npm:^3.972.13" - "@aws-sdk/types": "npm:^3.973.8" - "@aws-sdk/util-endpoints": "npm:^3.996.8" - "@aws-sdk/util-user-agent-browser": "npm:^3.972.10" - "@aws-sdk/util-user-agent-node": "npm:^3.973.24" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/fetch-http-handler": "npm:^5.3.17" - "@smithy/hash-node": "npm:^4.2.14" - "@smithy/invalid-dependency": "npm:^4.2.14" - "@smithy/middleware-content-length": "npm:^4.2.14" - "@smithy/middleware-endpoint": "npm:^4.4.32" - "@smithy/middleware-retry": "npm:^4.5.7" - "@smithy/middleware-serde": "npm:^4.2.20" - "@smithy/middleware-stack": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/node-http-handler": "npm:^4.6.1" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/smithy-client": "npm:^4.12.13" - "@smithy/types": "npm:^4.14.1" - "@smithy/url-parser": "npm:^4.2.14" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" "@smithy/util-base64": "npm:^4.3.2" "@smithy/util-body-length-browser": "npm:^4.2.2" "@smithy/util-body-length-node": "npm:^4.2.3" - "@smithy/util-defaults-mode-browser": "npm:^4.3.49" - "@smithy/util-defaults-mode-node": "npm:^4.2.54" - "@smithy/util-endpoints": "npm:^3.4.2" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-retry": "npm:^4.3.6" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" "@smithy/util-utf8": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/4d35ad1428d70735888a374528f4a33f52ff43d81376577970f2048e35063d9c9c5c06a6caa767efb65f0f7460e342c2b92b96be75cd8a3ca6087733c50b1fbd + checksum: 10c0/b422422dd79aa500431e11c78c1cd78903b58cb70f1fca8a344a053bbd6b3eba7abe42811ef94f5e6bae10ae4f676376f79141576ae5e8d755a921003f97f736 languageName: node linkType: hard @@ -1940,6 +1972,27 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/core@npm:^3.973.27": + version: 3.973.27 + resolution: "@aws-sdk/core@npm:3.973.27" + dependencies: + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/xml-builder": "npm:^3.972.17" + "@smithy/core": "npm:^3.23.14" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/signature-v4": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-base64": "npm:^4.3.2" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-utf8": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/7c68235e3c33603bb236fbcbe00242b6a2a0d556504ed592d03ea5f9f76581ef7e41ce7f61d782a790c731267ac6d84dcb633e76677e1cfd2c5dfdfe7f3bd43b + languageName: node + linkType: hard + "@aws-sdk/core@npm:^3.974.5": version: 3.974.5 resolution: "@aws-sdk/core@npm:3.974.5" @@ -1984,26 +2037,26 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/crc64-nvme@npm:^3.972.7": - version: 3.972.7 - resolution: "@aws-sdk/crc64-nvme@npm:3.972.7" +"@aws-sdk/crc64-nvme@npm:^3.972.6": + version: 3.972.6 + resolution: "@aws-sdk/crc64-nvme@npm:3.972.6" dependencies: - "@smithy/types": "npm:^4.14.1" + "@smithy/types": "npm:^4.14.0" tslib: "npm:^2.6.2" - checksum: 10c0/c6f23e4e4c06b98009264b511567bb808d4c4f53c1da9b41f5c975f5f9f5e4b11af16e7add850e7bba29731b6efb145eb4dc0538d9639d6a5daaceadb4acf35d + checksum: 10c0/1baf15bdc6809aa5058485f2aa6174e2f43f23f55cbe99e429570164c5c36a0dceb671677595a6f4eb69db2732e15d42679c2d532abb9300d287e5c2f4af0af5 languageName: node linkType: hard -"@aws-sdk/credential-provider-cognito-identity@npm:^3.972.28": - version: 3.972.28 - resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.972.28" +"@aws-sdk/credential-provider-cognito-identity@npm:^3.972.22": + version: 3.972.22 + resolution: "@aws-sdk/credential-provider-cognito-identity@npm:3.972.22" dependencies: - "@aws-sdk/nested-clients": "npm:^3.997.3" - "@aws-sdk/types": "npm:^3.973.8" - "@smithy/property-provider": "npm:^4.2.14" - "@smithy/types": "npm:^4.14.1" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" tslib: "npm:^2.6.2" - checksum: 10c0/95eb672d35acf5d5c44c3577bb1350047e468af16458255e5b5eb7f0dac7785dce0d9fedea78614a71322f245afaf472bd684e58221709d1e3ce29bef7839b00 + checksum: 10c0/6d76d8cc8b3647d3c8daa4f97d1ca4b52f87676cfe813704a12d426257547f4f9bab0c0754f9e26374b82288121da53c6ffe444e66aff76ccad547a3848376ca languageName: node linkType: hard @@ -2020,6 +2073,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-env@npm:^3.972.25": + version: 3.972.25 + resolution: "@aws-sdk/credential-provider-env@npm:3.972.25" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/b22335d697f0fc108a238e78145c2bdcdecc7f660110df644f5c7852144e78a4958575ea57408503d0c777a328d77c220522cad7992a843a642dafdb504d2223 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-env@npm:^3.972.31": version: 3.972.31 resolution: "@aws-sdk/credential-provider-env@npm:3.972.31" @@ -2046,6 +2112,24 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-http@npm:^3.972.27": + version: 3.972.27 + resolution: "@aws-sdk/credential-provider-http@npm:3.972.27" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-stream": "npm:^4.5.22" + tslib: "npm:^2.6.2" + checksum: 10c0/1d7ac5afa0192008dcfc51b6dd7b6253775e4044a7787ea394d7c9eb2715a40dbf29fd6797a17edea56000632600b1e5b857b18feebfa69ebd815bf5f9f0731b + languageName: node + linkType: hard + "@aws-sdk/credential-provider-http@npm:^3.972.33": version: 3.972.33 resolution: "@aws-sdk/credential-provider-http@npm:3.972.33" @@ -2082,6 +2166,28 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-ini@npm:^3.972.29": + version: 3.972.29 + resolution: "@aws-sdk/credential-provider-ini@npm:3.972.29" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-env": "npm:^3.972.25" + "@aws-sdk/credential-provider-http": "npm:^3.972.27" + "@aws-sdk/credential-provider-login": "npm:^3.972.29" + "@aws-sdk/credential-provider-process": "npm:^3.972.25" + "@aws-sdk/credential-provider-sso": "npm:^3.972.29" + "@aws-sdk/credential-provider-web-identity": "npm:^3.972.29" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/credential-provider-imds": "npm:^4.2.13" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/d7f3305d90c3d9ef8dde9e44e107b035e612cd81c24852f08e8ecc9e767e293311833513dafe4cccaba766175d69e151118b8f6a168c8ed16611750d646df189 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-ini@npm:^3.972.35": version: 3.972.35 resolution: "@aws-sdk/credential-provider-ini@npm:3.972.35" @@ -2126,6 +2232,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-login@npm:^3.972.29": + version: 3.972.29 + resolution: "@aws-sdk/credential-provider-login@npm:3.972.29" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/cc07c1491c4742f1fb1aba1bc27cdd3e3aec1c8986794c4c3d197c241a0ccac2cfd45740e56691a7e26f8c2f399fa00df8010739d749fb5305a0b7607b348372 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-login@npm:^3.972.35": version: 3.972.35 resolution: "@aws-sdk/credential-provider-login@npm:3.972.35" @@ -2158,6 +2280,26 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-node@npm:^3.972.30": + version: 3.972.30 + resolution: "@aws-sdk/credential-provider-node@npm:3.972.30" + dependencies: + "@aws-sdk/credential-provider-env": "npm:^3.972.25" + "@aws-sdk/credential-provider-http": "npm:^3.972.27" + "@aws-sdk/credential-provider-ini": "npm:^3.972.29" + "@aws-sdk/credential-provider-process": "npm:^3.972.25" + "@aws-sdk/credential-provider-sso": "npm:^3.972.29" + "@aws-sdk/credential-provider-web-identity": "npm:^3.972.29" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/credential-provider-imds": "npm:^4.2.13" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/e0cd35acc824ad640a20244af29b7b04209935eab4b9265fd70b70669057ae52285e86e9acbc123c91602bb12877f64c2aa35a15ac7291bf214fee35eba8abf3 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-node@npm:^3.972.36": version: 3.972.36 resolution: "@aws-sdk/credential-provider-node@npm:3.972.36" @@ -2198,6 +2340,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-process@npm:^3.972.25": + version: 3.972.25 + resolution: "@aws-sdk/credential-provider-process@npm:3.972.25" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/caf5761d0fb8b8a1faf1fdf0c9668a9884eae67159785055dab1484f2e361a6b5c8c50a4b614f9746d278cbda2593fc1c10ca4bd718b207e5c689b98124853f0 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-process@npm:^3.972.31": version: 3.972.31 resolution: "@aws-sdk/credential-provider-process@npm:3.972.31" @@ -2226,6 +2382,22 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-sso@npm:^3.972.29": + version: 3.972.29 + resolution: "@aws-sdk/credential-provider-sso@npm:3.972.29" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/token-providers": "npm:3.1026.0" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/5c276fc23d0aa31459c2d4f145f51befe043cc1c934342c53886611fe490737353619f4ed3a7e6e7ee5ea73a8444a9899757d63c06ecfdace5dec8238a04f4a6 + languageName: node + linkType: hard + "@aws-sdk/credential-provider-sso@npm:^3.972.35": version: 3.972.35 resolution: "@aws-sdk/credential-provider-sso@npm:3.972.35" @@ -2258,6 +2430,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/credential-provider-web-identity@npm:^3.972.29": + version: 3.972.29 + resolution: "@aws-sdk/credential-provider-web-identity@npm:3.972.29" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/20b1ca3fa36335bea134d8b417314047725191f859313bbcb456d4ea36373ac8cd6cef9ddc7192ba74a4fb3200650e198c290fbc7df6848684d1643fc22199ae + languageName: node + linkType: hard + "@aws-sdk/credential-provider-web-identity@npm:^3.972.35": version: 3.972.35 resolution: "@aws-sdk/credential-provider-web-identity@npm:3.972.35" @@ -2289,30 +2476,30 @@ __metadata: linkType: hard "@aws-sdk/credential-providers@npm:^3": - version: 3.1036.0 - resolution: "@aws-sdk/credential-providers@npm:3.1036.0" - dependencies: - "@aws-sdk/client-cognito-identity": "npm:3.1036.0" - "@aws-sdk/core": "npm:^3.974.5" - "@aws-sdk/credential-provider-cognito-identity": "npm:^3.972.28" - "@aws-sdk/credential-provider-env": "npm:^3.972.31" - "@aws-sdk/credential-provider-http": "npm:^3.972.33" - "@aws-sdk/credential-provider-ini": "npm:^3.972.35" - "@aws-sdk/credential-provider-login": "npm:^3.972.35" - "@aws-sdk/credential-provider-node": "npm:^3.972.36" - "@aws-sdk/credential-provider-process": "npm:^3.972.31" - "@aws-sdk/credential-provider-sso": "npm:^3.972.35" - "@aws-sdk/credential-provider-web-identity": "npm:^3.972.35" - "@aws-sdk/nested-clients": "npm:^3.997.3" - "@aws-sdk/types": "npm:^3.973.8" - "@smithy/config-resolver": "npm:^4.4.17" - "@smithy/core": "npm:^3.23.17" - "@smithy/credential-provider-imds": "npm:^4.2.14" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/property-provider": "npm:^4.2.14" - "@smithy/types": "npm:^4.14.1" + version: 3.1028.0 + resolution: "@aws-sdk/credential-providers@npm:3.1028.0" + dependencies: + "@aws-sdk/client-cognito-identity": "npm:3.1028.0" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/credential-provider-cognito-identity": "npm:^3.972.22" + "@aws-sdk/credential-provider-env": "npm:^3.972.25" + "@aws-sdk/credential-provider-http": "npm:^3.972.27" + "@aws-sdk/credential-provider-ini": "npm:^3.972.29" + "@aws-sdk/credential-provider-login": "npm:^3.972.29" + "@aws-sdk/credential-provider-node": "npm:^3.972.30" + "@aws-sdk/credential-provider-process": "npm:^3.972.25" + "@aws-sdk/credential-provider-sso": "npm:^3.972.29" + "@aws-sdk/credential-provider-web-identity": "npm:^3.972.29" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/credential-provider-imds": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" tslib: "npm:^2.6.2" - checksum: 10c0/d4690b5f48786d3edd4dea825cc56144326c38456c3637e1b3566a8cbb9883d9ae56cb77830007e6c4154eb35ac4ac2361f69eb7ee5d672ffd35f73fe76b1ea4 + checksum: 10c0/5007cd7de722fea7fe4187134a87069647103a69fda5a17514e94a869aab5dd89cd6c8a620ceebeb5841828b9dbfc0a3326e4c366ee7362cf22a3e2b18d98e3a languageName: node linkType: hard @@ -2400,18 +2587,18 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-bucket-endpoint@npm:^3.972.10": - version: 3.972.10 - resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.972.10" +"@aws-sdk/middleware-bucket-endpoint@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.972.9" dependencies: - "@aws-sdk/types": "npm:^3.973.8" + "@aws-sdk/types": "npm:^3.973.7" "@aws-sdk/util-arn-parser": "npm:^3.972.3" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/types": "npm:^4.14.1" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" "@smithy/util-config-provider": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/5529288142e0ebfbd985a257dbbb0f3510981a6ef56ce449465458ca12f7bcbbb9bfba9e1788c925329443604d4a438275f30254ef1d47e7931da798fb6e6765 + checksum: 10c0/819db936d6be1d238c26a210e6b26f498b839f91a8fc2848f82dae27ca226e3d96e4e8f6d625512baf184839fa5e0430b31d57ded1e96c774321050e3aa47841 languageName: node linkType: hard @@ -2429,37 +2616,37 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-expect-continue@npm:^3.972.10": - version: 3.972.10 - resolution: "@aws-sdk/middleware-expect-continue@npm:3.972.10" +"@aws-sdk/middleware-expect-continue@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/middleware-expect-continue@npm:3.972.9" dependencies: - "@aws-sdk/types": "npm:^3.973.8" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/types": "npm:^4.14.1" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" tslib: "npm:^2.6.2" - checksum: 10c0/c91588169621597bed09aa53f9bf858b83a0c8b8b84d6838ed3729c8222a7b7d5819595fd2617ca8f859e8471ca7e7132bb7d1694d5ada17039dea53cc707e4b + checksum: 10c0/699c6a3e66c5d1dbab54128093c867d3f596e93ca5c3c1aa11a400c4d47b305b768361d64d6de23404d08b5558b55db797747b29e78979bf9f21c7f0cc640ebf languageName: node linkType: hard -"@aws-sdk/middleware-flexible-checksums@npm:^3.974.16": - version: 3.974.16 - resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.974.16" +"@aws-sdk/middleware-flexible-checksums@npm:^3.974.7": + version: 3.974.7 + resolution: "@aws-sdk/middleware-flexible-checksums@npm:3.974.7" dependencies: "@aws-crypto/crc32": "npm:5.2.0" "@aws-crypto/crc32c": "npm:5.2.0" "@aws-crypto/util": "npm:5.2.0" - "@aws-sdk/core": "npm:^3.974.8" - "@aws-sdk/crc64-nvme": "npm:^3.972.7" - "@aws-sdk/types": "npm:^3.973.8" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/crc64-nvme": "npm:^3.972.6" + "@aws-sdk/types": "npm:^3.973.7" "@smithy/is-array-buffer": "npm:^4.2.2" - "@smithy/node-config-provider": "npm:^4.3.14" - "@smithy/protocol-http": "npm:^5.3.14" - "@smithy/types": "npm:^4.14.1" - "@smithy/util-middleware": "npm:^4.2.14" - "@smithy/util-stream": "npm:^4.5.25" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-stream": "npm:^4.5.22" "@smithy/util-utf8": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/0725e497e2ebd4201682a786b28da90acc9c86459bfd6a3a29591021b7be4e5e17aee2628b71921eba003740d49b88d48eab8bd80220dfc5aa16dc7c50488775 + checksum: 10c0/2fc017e4da0fe6d0f6ffd021f86be879f9fd9ffa262b8e66bb8524ec433726130d0df6c1224e0fa6fc8e90afa758036ea94cb105488c7e4fb5283b782ea32a2c languageName: node linkType: hard @@ -2475,25 +2662,61 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-location-constraint@npm:^3.972.10": - version: 3.972.10 - resolution: "@aws-sdk/middleware-location-constraint@npm:3.972.10" +"@aws-sdk/middleware-host-header@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/middleware-host-header@npm:3.972.9" + dependencies: + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6be32e17a1355456705767178e6d17498295a7e84570759feaa27d53b74b6cfa8b8c5ef1dbfab41a0f9dc9342fb2d618de3eaf36f1859f111b0167b648938394 + languageName: node + linkType: hard + +"@aws-sdk/middleware-location-constraint@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/middleware-location-constraint@npm:3.972.9" + dependencies: + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/cae925dac42102533b599ef8b6984f27578f6040bc4d631eb40226747abee5c56211be30f0b963523faa1a14408f1ca7cb2aa171f65d041da4c3c302d37dcba8 + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:^3.972.10": + version: 3.972.10 + resolution: "@aws-sdk/middleware-logger@npm:3.972.10" + dependencies: + "@aws-sdk/types": "npm:^3.973.8" + "@smithy/types": "npm:^4.14.1" + tslib: "npm:^2.6.2" + checksum: 10c0/a24e0c98b3cf6c9b7960bf8979d2ab8f839fb89294ba8943136d99dbe7370cc45b010460ed7f5bf14ab6ad8e113ccec6387cf1bda655bcbdb58722df21d9b713 + languageName: node + linkType: hard + +"@aws-sdk/middleware-logger@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/middleware-logger@npm:3.972.9" dependencies: - "@aws-sdk/types": "npm:^3.973.8" - "@smithy/types": "npm:^4.14.1" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/types": "npm:^4.14.0" tslib: "npm:^2.6.2" - checksum: 10c0/ef8ef1f3cf7d28e5b02edcc2b62cab07a380f7a02983bdfcaf24fbea35129c53ac5a1f5846ab28212b649d6c81f437e2a846f1f954fb374509ea174201bf09d4 + checksum: 10c0/ed909c5265a14843a9768f9495eb2f05e7eb313eebe1f63d2ff31cc358bd9cdfd9b504d272c14c40dd4b39d8b2d0d2b499b9cd7935b3f7d4c04ae69fc38f2bdb languageName: node linkType: hard -"@aws-sdk/middleware-logger@npm:^3.972.10": +"@aws-sdk/middleware-recursion-detection@npm:^3.972.10": version: 3.972.10 - resolution: "@aws-sdk/middleware-logger@npm:3.972.10" + resolution: "@aws-sdk/middleware-recursion-detection@npm:3.972.10" dependencies: - "@aws-sdk/types": "npm:^3.973.8" - "@smithy/types": "npm:^4.14.1" + "@aws-sdk/types": "npm:^3.973.7" + "@aws/lambda-invoke-store": "npm:^0.2.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" tslib: "npm:^2.6.2" - checksum: 10c0/a24e0c98b3cf6c9b7960bf8979d2ab8f839fb89294ba8943136d99dbe7370cc45b010460ed7f5bf14ab6ad8e113ccec6387cf1bda655bcbdb58722df21d9b713 + checksum: 10c0/69a46dfad38919cc27181f6ee61e952dfc5072e568f091a3fbad42ba5d7ee670acb85a30e7f50dec68ac8d9d9d3b242b062f9948236ac5bb4d23b1aa661f345f languageName: node linkType: hard @@ -2537,6 +2760,28 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/middleware-sdk-s3@npm:^3.972.28": + version: 3.972.28 + resolution: "@aws-sdk/middleware-sdk-s3@npm:3.972.28" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-arn-parser": "npm:^3.972.3" + "@smithy/core": "npm:^3.23.14" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/signature-v4": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-config-provider": "npm:^4.2.2" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-stream": "npm:^4.5.22" + "@smithy/util-utf8": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/b140c77ec47314d80179650d31f160e0c1e0d5db584825282446d58d652fbecfb06c96e6a37c0e37a3a07cb1e6d8a69410c49c16d05d55275f2af77bb65632aa + languageName: node + linkType: hard + "@aws-sdk/middleware-sdk-s3@npm:^3.972.34": version: 3.972.34 resolution: "@aws-sdk/middleware-sdk-s3@npm:3.972.34" @@ -2581,14 +2826,30 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/middleware-ssec@npm:^3.972.10": - version: 3.972.10 - resolution: "@aws-sdk/middleware-ssec@npm:3.972.10" +"@aws-sdk/middleware-ssec@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/middleware-ssec@npm:3.972.9" dependencies: - "@aws-sdk/types": "npm:^3.973.8" - "@smithy/types": "npm:^4.14.1" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/8970151d43abc8eba2f3d8b5b82c9bfd6b1775a7fc57e77596a64e3fcb5b6467baac4f9e710cb8a26a3a89c60dc31794b0eaa3ad92d703341b8a32a311a1285a + languageName: node + linkType: hard + +"@aws-sdk/middleware-user-agent@npm:^3.972.29": + version: 3.972.29 + resolution: "@aws-sdk/middleware-user-agent@npm:3.972.29" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@smithy/core": "npm:^3.23.14" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-retry": "npm:^4.3.0" tslib: "npm:^2.6.2" - checksum: 10c0/13e11c485e63d6b3d8a5f14888c6b8aea1c0a96a99826e840840b6974b9605b5f528f8869b021036e8615995d9e5ecd33d6e67af1561ed673d37292d356ca441 + checksum: 10c0/dd3ffa73c9ed7f83c11e2db28b641889d729e34a4eefb974177d9825ede165bc347cda0ebc21837e70222fc7edd02c76cb5b256c8be3205b76953ddf0ea43ab5 languageName: node linkType: hard @@ -2624,6 +2885,52 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/nested-clients@npm:^3.996.19": + version: 3.996.19 + resolution: "@aws-sdk/nested-clients@npm:3.996.19" + dependencies: + "@aws-crypto/sha256-browser": "npm:5.2.0" + "@aws-crypto/sha256-js": "npm:5.2.0" + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/middleware-host-header": "npm:^3.972.9" + "@aws-sdk/middleware-logger": "npm:^3.972.9" + "@aws-sdk/middleware-recursion-detection": "npm:^3.972.10" + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/region-config-resolver": "npm:^3.972.11" + "@aws-sdk/types": "npm:^3.973.7" + "@aws-sdk/util-endpoints": "npm:^3.996.6" + "@aws-sdk/util-user-agent-browser": "npm:^3.972.9" + "@aws-sdk/util-user-agent-node": "npm:^3.973.15" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/core": "npm:^3.23.14" + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/hash-node": "npm:^4.2.13" + "@smithy/invalid-dependency": "npm:^4.2.13" + "@smithy/middleware-content-length": "npm:^4.2.13" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-retry": "npm:^4.5.0" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" + "@smithy/util-base64": "npm:^4.3.2" + "@smithy/util-body-length-browser": "npm:^4.2.2" + "@smithy/util-body-length-node": "npm:^4.2.3" + "@smithy/util-defaults-mode-browser": "npm:^4.3.45" + "@smithy/util-defaults-mode-node": "npm:^4.2.49" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.0" + "@smithy/util-utf8": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/1673e02d2afbf667345271c35709a01e06c2aff677cd6b9ee69c17ebaad172130dada419b1356db0df578e43b490c813e8c8de321ed77a61abbec26cd5a72099 + languageName: node + linkType: hard + "@aws-sdk/nested-clients@npm:^3.997.3": version: 3.997.3 resolution: "@aws-sdk/nested-clients@npm:3.997.3" @@ -2718,6 +3025,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/region-config-resolver@npm:^3.972.11": + version: 3.972.11 + resolution: "@aws-sdk/region-config-resolver@npm:3.972.11" + dependencies: + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/a1dc43cc21a1423f08446300ac3c4ae597a987375fba85b40be779b2ad6b328e1e97480df53bbdcdd381f7395d017962dbbd2128626c5e5f923fbfb4874720e1 + languageName: node + linkType: hard + "@aws-sdk/region-config-resolver@npm:^3.972.13": version: 3.972.13 resolution: "@aws-sdk/region-config-resolver@npm:3.972.13" @@ -2731,6 +3051,20 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/signature-v4-multi-region@npm:^3.996.16": + version: 3.996.16 + resolution: "@aws-sdk/signature-v4-multi-region@npm:3.996.16" + dependencies: + "@aws-sdk/middleware-sdk-s3": "npm:^3.972.28" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/signature-v4": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/49b3fa8d0ab0e208224c64445c212f8592091ae6d031ca65cb0ca11009f2abdf1f08948caaea297295a901407ae9df212a3f7c993a30f8ee11fe8d34f86a4976 + languageName: node + linkType: hard + "@aws-sdk/signature-v4-multi-region@npm:^3.996.22": version: 3.996.22 resolution: "@aws-sdk/signature-v4-multi-region@npm:3.996.22" @@ -2759,6 +3093,21 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/token-providers@npm:3.1026.0": + version: 3.1026.0 + resolution: "@aws-sdk/token-providers@npm:3.1026.0" + dependencies: + "@aws-sdk/core": "npm:^3.973.27" + "@aws-sdk/nested-clients": "npm:^3.996.19" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/18d1b7e088cc976c486b6e6025f3402a25edd91004025c6527e689682f0c79138c7cbcbc67b63d1257c80ab2b0bfd4fa4e29349e14d88bdbcfaee169fec32f07 + languageName: node + linkType: hard + "@aws-sdk/token-providers@npm:3.1036.0": version: 3.1036.0 resolution: "@aws-sdk/token-providers@npm:3.1036.0" @@ -2789,7 +3138,7 @@ __metadata: languageName: node linkType: hard -"@aws-sdk/types@npm:^3.222.0": +"@aws-sdk/types@npm:^3.222.0, @aws-sdk/types@npm:^3.973.7": version: 3.973.7 resolution: "@aws-sdk/types@npm:3.973.7" dependencies: @@ -2818,6 +3167,19 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-endpoints@npm:^3.996.6": + version: 3.996.6 + resolution: "@aws-sdk/util-endpoints@npm:3.996.6" + dependencies: + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" + "@smithy/util-endpoints": "npm:^3.3.4" + tslib: "npm:^2.6.2" + checksum: 10c0/34c80b2ee5b038d32a0e019f85b62195cb970c62f15e8caab44092632f40410ea960fea4576c864254fc232064d78897f75458629db534146241475caf250d08 + languageName: node + linkType: hard + "@aws-sdk/util-endpoints@npm:^3.996.8": version: 3.996.8 resolution: "@aws-sdk/util-endpoints@npm:3.996.8" @@ -2864,6 +3226,37 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/util-user-agent-browser@npm:^3.972.9": + version: 3.972.9 + resolution: "@aws-sdk/util-user-agent-browser@npm:3.972.9" + dependencies: + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/types": "npm:^4.14.0" + bowser: "npm:^2.11.0" + tslib: "npm:^2.6.2" + checksum: 10c0/49b1c013cac8c89f6da4217eb34623ea206432d9fdb476e2337d857b02680c404a3cd83f10647aef459a78bd743383b1d66d2a8f3ed4c4c7ab38bc47f7da555e + languageName: node + linkType: hard + +"@aws-sdk/util-user-agent-node@npm:^3.973.15": + version: 3.973.15 + resolution: "@aws-sdk/util-user-agent-node@npm:3.973.15" + dependencies: + "@aws-sdk/middleware-user-agent": "npm:^3.972.29" + "@aws-sdk/types": "npm:^3.973.7" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-config-provider": "npm:^4.2.2" + tslib: "npm:^2.6.2" + peerDependencies: + aws-crt: ">=1.0.0" + peerDependenciesMeta: + aws-crt: + optional: true + checksum: 10c0/59c079e7435ea02d3c005019dfa3aaa055f16dc37c6c24433273f083a9444d52d6590c7de0c740c39245694e5998d4a26a21e1d8c0ad36f1762cf98e1d315712 + languageName: node + linkType: hard + "@aws-sdk/util-user-agent-node@npm:^3.973.21": version: 3.973.21 resolution: "@aws-sdk/util-user-agent-node@npm:3.973.21" @@ -2902,6 +3295,17 @@ __metadata: languageName: node linkType: hard +"@aws-sdk/xml-builder@npm:^3.972.17": + version: 3.972.17 + resolution: "@aws-sdk/xml-builder@npm:3.972.17" + dependencies: + "@smithy/types": "npm:^4.14.0" + fast-xml-parser: "npm:5.5.8" + tslib: "npm:^2.6.2" + checksum: 10c0/d0ea3190ae9078435249d389722c18e90ed6156e1cab3574abc22d5be1e4cbe9984c92013cb9550f48330f8fab1cd92f94a40a9d9afade47c4ad24993f69a18e + languageName: node + linkType: hard + "@aws-sdk/xml-builder@npm:^3.972.19": version: 3.972.19 resolution: "@aws-sdk/xml-builder@npm:3.972.19" @@ -3325,6 +3729,19 @@ __metadata: languageName: node linkType: hard +"@cdklabs/eslint-plugin@npm:^2.0.0": + version: 2.0.0 + resolution: "@cdklabs/eslint-plugin@npm:2.0.0" + dependencies: + "@typescript-eslint/utils": "npm:^8.58.0" + fs-extra: "npm:^11.3.4" + typescript: "npm:^5.9.3" + peerDependencies: + eslint: ">=9 <11" + checksum: 10c0/14134bad7bc057c4255805549c1aff5c74736ee04b9e0bd806067a92536be1f41eae6c0ca3d087bd805faa215f9f6c7a514e6dc64adae6670296b8310bfecceb + languageName: node + linkType: hard + "@cdklabs/eslint-plugin@npm:^2.0.4": version: 2.0.4 resolution: "@cdklabs/eslint-plugin@npm:2.0.4" @@ -4478,6 +4895,13 @@ __metadata: languageName: node linkType: hard +"@ltd/j-toml@npm:^1.38.0": + version: 1.38.0 + resolution: "@ltd/j-toml@npm:1.38.0" + checksum: 10c0/6db2b203e21c6bc2e781ad76f3e798ae9c4b9d83205070f482602a30f3d1c37dde8c8c72575bdc505c1b8c228c5e81171a4557f0d76b814da0fb91cdd21f6194 + languageName: node + linkType: hard + "@microsoft/api-extractor-model@npm:7.33.8": version: 7.33.8 resolution: "@microsoft/api-extractor-model@npm:7.33.8" @@ -4789,6 +5213,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-darwin-arm64@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-darwin-arm64@npm:22.6.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@nx/nx-darwin-arm64@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-darwin-arm64@npm:22.7.1" @@ -4796,6 +5227,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-darwin-x64@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-darwin-x64@npm:22.6.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-darwin-x64@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-darwin-x64@npm:22.7.1" @@ -4803,6 +5241,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-freebsd-x64@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-freebsd-x64@npm:22.6.4" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-freebsd-x64@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-freebsd-x64@npm:22.7.1" @@ -4810,6 +5255,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm-gnueabihf@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.6.4" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@nx/nx-linux-arm-gnueabihf@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.7.1" @@ -4817,6 +5269,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm64-gnu@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-linux-arm64-gnu@npm:22.6.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@nx/nx-linux-arm64-gnu@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-linux-arm64-gnu@npm:22.7.1" @@ -4824,6 +5283,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-arm64-musl@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-linux-arm64-musl@npm:22.6.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@nx/nx-linux-arm64-musl@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-linux-arm64-musl@npm:22.7.1" @@ -4831,6 +5297,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-x64-gnu@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-linux-x64-gnu@npm:22.6.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@nx/nx-linux-x64-gnu@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-linux-x64-gnu@npm:22.7.1" @@ -4838,6 +5311,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-linux-x64-musl@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-linux-x64-musl@npm:22.6.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@nx/nx-linux-x64-musl@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-linux-x64-musl@npm:22.7.1" @@ -4845,6 +5325,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-win32-arm64-msvc@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-win32-arm64-msvc@npm:22.6.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@nx/nx-win32-arm64-msvc@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-win32-arm64-msvc@npm:22.7.1" @@ -4852,6 +5339,13 @@ __metadata: languageName: node linkType: hard +"@nx/nx-win32-x64-msvc@npm:22.6.4": + version: 22.6.4 + resolution: "@nx/nx-win32-x64-msvc@npm:22.6.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@nx/nx-win32-x64-msvc@npm:22.7.1": version: 22.7.1 resolution: "@nx/nx-win32-x64-msvc@npm:22.7.1" @@ -5309,6 +5803,38 @@ __metadata: languageName: node linkType: hard +"@smithy/config-resolver@npm:^4.4.14": + version: 4.4.14 + resolution: "@smithy/config-resolver@npm:4.4.14" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-config-provider": "npm:^4.2.2" + "@smithy/util-endpoints": "npm:^3.3.4" + "@smithy/util-middleware": "npm:^4.2.13" + tslib: "npm:^2.6.2" + checksum: 10c0/1abc72d5c32881ae2c4c658a98aaf7200838fa5b549c964c5530a3afdac3cafe749a7980f09a25d8f1d9ac465dff23b81c65fa37c903b674d5209494c5209ee5 + languageName: node + linkType: hard + +"@smithy/core@npm:^3.23.14": + version: 3.23.14 + resolution: "@smithy/core@npm:3.23.14" + dependencies: + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" + "@smithy/util-base64": "npm:^4.3.2" + "@smithy/util-body-length-browser": "npm:^4.2.2" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-stream": "npm:^4.5.22" + "@smithy/util-utf8": "npm:^4.2.2" + "@smithy/uuid": "npm:^1.1.2" + tslib: "npm:^2.6.2" + checksum: 10c0/de767863fdf2ffea4c1857773663d84c3b6e915841763b4b899402e0aa38797d913c9b0c520466ba72edd47f8e0cb0c5c27d9754d1e2a75915a38e7fe1f354ad + languageName: node + linkType: hard + "@smithy/core@npm:^3.23.17": version: 3.23.17 resolution: "@smithy/core@npm:3.23.17" @@ -5338,6 +5864,19 @@ __metadata: languageName: node linkType: hard +"@smithy/credential-provider-imds@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/credential-provider-imds@npm:4.2.13" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" + tslib: "npm:^2.6.2" + checksum: 10c0/05019c2e653d28d3fead26196499394b3d3bda43008b8d93af879a856b412425b55aa48506460ab4ae0e139d26a858df74f19fe46b4b3f95526e7da2d31d7ba8 + languageName: node + linkType: hard + "@smithy/credential-provider-imds@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/credential-provider-imds@npm:4.2.14" @@ -5351,6 +5890,18 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-codec@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/eventstream-codec@npm:4.2.13" + dependencies: + "@aws-crypto/crc32": "npm:5.2.0" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-hex-encoding": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/fe22952cd7afaddc37effab3615e79925eddcc564435e919f9879e7fda5d16f01952702e1559fb3d677188c150a3d708a403e95fb44d6781a34d0995bc100ba2 + languageName: node + linkType: hard + "@smithy/eventstream-codec@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/eventstream-codec@npm:4.2.14" @@ -5363,6 +5914,17 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-browser@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/eventstream-serde-browser@npm:4.2.13" + dependencies: + "@smithy/eventstream-serde-universal": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/277aa718363cd0550a42d88376ee60ca130aae0893bb2dc96f3588fc729caa42c53f9fd944c01529936e797c635b38301aefe9252a947eac335df8d42d20fca4 + languageName: node + linkType: hard + "@smithy/eventstream-serde-browser@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/eventstream-serde-browser@npm:4.2.14" @@ -5374,6 +5936,16 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-config-resolver@npm:^4.3.13": + version: 4.3.13 + resolution: "@smithy/eventstream-serde-config-resolver@npm:4.3.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/35094ccd4f30e78dca106b989f849e99409fb98f3245023eb99069debb613f12e889db962db3a8bdcb6dd9e629883ba5dc9f59424d98b23b655d0b0e875d5bbf + languageName: node + linkType: hard + "@smithy/eventstream-serde-config-resolver@npm:^4.3.14": version: 4.3.14 resolution: "@smithy/eventstream-serde-config-resolver@npm:4.3.14" @@ -5384,6 +5956,17 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-node@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/eventstream-serde-node@npm:4.2.13" + dependencies: + "@smithy/eventstream-serde-universal": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/49d93f35ceac191bc79ff489233627434c8f13a69c0d70d4dbd3f20b23b7c514fa27c82ebbab657e52808718c8d4b73f8767a9cc5fbe809c4edf087cc341f470 + languageName: node + linkType: hard + "@smithy/eventstream-serde-node@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/eventstream-serde-node@npm:4.2.14" @@ -5395,6 +5978,17 @@ __metadata: languageName: node linkType: hard +"@smithy/eventstream-serde-universal@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/eventstream-serde-universal@npm:4.2.13" + dependencies: + "@smithy/eventstream-codec": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/954f28b8ff6f02faa4a66078071bc1437bbd937354fa8fefdd7ef9d30ee68479d26f6ec7f7f09873727f61a446d0446745e7c3f1ca174c76220df745d52d59c0 + languageName: node + linkType: hard + "@smithy/eventstream-serde-universal@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/eventstream-serde-universal@npm:4.2.14" @@ -5406,6 +6000,19 @@ __metadata: languageName: node linkType: hard +"@smithy/fetch-http-handler@npm:^5.3.16": + version: 5.3.16 + resolution: "@smithy/fetch-http-handler@npm:5.3.16" + dependencies: + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/querystring-builder": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-base64": "npm:^4.3.2" + tslib: "npm:^2.6.2" + checksum: 10c0/a6068975d9096d9f19f73012f90b5af5068818059c09769bf2e8bd4fdd1f80b9d6d915b05a5a1c6f81ea6545676c0d0f9b899ddbe86846511805abb21e259e50 + languageName: node + linkType: hard + "@smithy/fetch-http-handler@npm:^5.3.17": version: 5.3.17 resolution: "@smithy/fetch-http-handler@npm:5.3.17" @@ -5419,15 +6026,27 @@ __metadata: languageName: node linkType: hard -"@smithy/hash-blob-browser@npm:^4.2.15": - version: 4.2.15 - resolution: "@smithy/hash-blob-browser@npm:4.2.15" +"@smithy/hash-blob-browser@npm:^4.2.14": + version: 4.2.14 + resolution: "@smithy/hash-blob-browser@npm:4.2.14" dependencies: "@smithy/chunked-blob-reader": "npm:^5.2.2" "@smithy/chunked-blob-reader-native": "npm:^4.2.3" - "@smithy/types": "npm:^4.14.1" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/03bc708338ec6e2f54f3365a9ad6b3005189dfeb8142b5799f9edcc878cedc3b7c1179ecbf86118b7f1f129384378d1a4e797fd07a55dc36b455e52e2a141ce6 + languageName: node + linkType: hard + +"@smithy/hash-node@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/hash-node@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + "@smithy/util-buffer-from": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/0f1ee2fd786306c604c4c08bb3b6ba00bf99fd2ba36743ca5d2695c8d37e02bb84435d5d55ebde6483a506ebcc20c42203750671cdd73618255499ef8cd0852b + checksum: 10c0/97f64530272df58f6dab571a1ce92ef81fec2ab6e89d2c53e9c4f2d6abfc6a7aba3bc09754b3cb8dd94f7eb2bb60f4d13308c77746a59da47da4275840b766cc languageName: node linkType: hard @@ -5443,14 +6062,24 @@ __metadata: languageName: node linkType: hard -"@smithy/hash-stream-node@npm:^4.2.14": - version: 4.2.14 - resolution: "@smithy/hash-stream-node@npm:4.2.14" +"@smithy/hash-stream-node@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/hash-stream-node@npm:4.2.13" dependencies: - "@smithy/types": "npm:^4.14.1" + "@smithy/types": "npm:^4.14.0" "@smithy/util-utf8": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/db14c0879527dfc0a184a4958e8f229e1e3f15d0e612ad4596ee92de8f9d672a5ead4a325e517f235129530a8d8472c2bb628d0620af6662abc65adfe71f573e + checksum: 10c0/8bb71666d7b1ad346c38d7821068e51d01d3e9ce3a4df039de0eea9cdd4cc398b6d4d3260c401626539adc90636ca7d731713230381db71c4aeae459d27e681f + languageName: node + linkType: hard + +"@smithy/invalid-dependency@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/invalid-dependency@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/77a464647d5b5281e1348538bb805c1562ff0c7674c0814c09f1b1963c99a91622684617426f8f83b43c964c55e30232ee5c5c8f17f8a714effa53e474a5e90f languageName: node linkType: hard @@ -5482,14 +6111,25 @@ __metadata: languageName: node linkType: hard -"@smithy/md5-js@npm:^4.2.14": - version: 4.2.14 - resolution: "@smithy/md5-js@npm:4.2.14" +"@smithy/md5-js@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/md5-js@npm:4.2.13" dependencies: - "@smithy/types": "npm:^4.14.1" + "@smithy/types": "npm:^4.14.0" "@smithy/util-utf8": "npm:^4.2.2" tslib: "npm:^2.6.2" - checksum: 10c0/d0bd6f08a3e37e83685fc1eba6621ee0f19576466ba23e7239dc201c97f83d46f6b9f7ddecc48ab74535b1f498d9facc43f18018f168dc26d2b5d0f9c72af761 + checksum: 10c0/b78d038581281177aee42ea80c1421b87d0c5947ed751ddaaf978482a8f711d4c93661c55ad875747b95f4fd2aaf6e98332514122f2f9f56413b4f8af3fb5a44 + languageName: node + linkType: hard + +"@smithy/middleware-content-length@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/middleware-content-length@npm:4.2.13" + dependencies: + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/34eb84ffd265acadc13836bd5e44d83dd6ac725ebd54360418eba9f9241028345c5f6b09b80c7f6c1d51885be3087d33d66d5d5cfcd4760463f4bbbfe861d338 languageName: node linkType: hard @@ -5520,6 +6160,40 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-endpoint@npm:^4.4.29": + version: 4.4.29 + resolution: "@smithy/middleware-endpoint@npm:4.4.29" + dependencies: + "@smithy/core": "npm:^3.23.14" + "@smithy/middleware-serde": "npm:^4.2.17" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + "@smithy/url-parser": "npm:^4.2.13" + "@smithy/util-middleware": "npm:^4.2.13" + tslib: "npm:^2.6.2" + checksum: 10c0/1b6e561443cb4fc3793b12e1fd2c9a30df75b840d2159a7a57a0805a2b50a34d53d1eb86ea9f1b86813f4acdac8b5febae89f2966464ba61b34e22b49a734f83 + languageName: node + linkType: hard + +"@smithy/middleware-retry@npm:^4.5.0": + version: 4.5.1 + resolution: "@smithy/middleware-retry@npm:4.5.1" + dependencies: + "@smithy/core": "npm:^3.23.14" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/service-error-classification": "npm:^4.2.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-retry": "npm:^4.3.1" + "@smithy/uuid": "npm:^1.1.2" + tslib: "npm:^2.6.2" + checksum: 10c0/e36726587caaa978dd0cbf1c8f16c6fcb7decb6af71dd347a7782b64e7cb2f8f70cca1764223c1ffda3468e88fdd21e9fd8478231cb0cbb99b21ce72d3de0dc1 + languageName: node + linkType: hard + "@smithy/middleware-retry@npm:^4.5.5": version: 4.5.5 resolution: "@smithy/middleware-retry@npm:4.5.5" @@ -5552,7 +6226,19 @@ __metadata: "@smithy/util-retry": "npm:^4.3.6" "@smithy/uuid": "npm:^1.1.2" tslib: "npm:^2.6.2" - checksum: 10c0/44ba622d961f83935aa13210fc92edfbf017f655ad4f4fb2024f7e880a70867d547b358be2089966689ed92c5deedcdf4723177c015babaf332ba3b55a40fe9b + checksum: 10c0/44ba622d961f83935aa13210fc92edfbf017f655ad4f4fb2024f7e880a70867d547b358be2089966689ed92c5deedcdf4723177c015babaf332ba3b55a40fe9b + languageName: node + linkType: hard + +"@smithy/middleware-serde@npm:^4.2.17": + version: 4.2.17 + resolution: "@smithy/middleware-serde@npm:4.2.17" + dependencies: + "@smithy/core": "npm:^3.23.14" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/4ebbdd612d1c38d8b1f0a373512fb685ff409e173a208009f6fad5325c92463c528cb80a6268a8e697324da46be314cf07b319831272b32e47f39ed6f044a30c languageName: node linkType: hard @@ -5568,6 +6254,16 @@ __metadata: languageName: node linkType: hard +"@smithy/middleware-stack@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/middleware-stack@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/b19ea66852cdaa9a434353af62d081632100a86af5db0a40fae3daccbc69e89e5a4666820817ee797b94271ed0315bbfb184cd297b6cfefed00079e11884f273 + languageName: node + linkType: hard + "@smithy/middleware-stack@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/middleware-stack@npm:4.2.14" @@ -5590,6 +6286,30 @@ __metadata: languageName: node linkType: hard +"@smithy/node-config-provider@npm:^4.3.13": + version: 4.3.13 + resolution: "@smithy/node-config-provider@npm:4.3.13" + dependencies: + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/shared-ini-file-loader": "npm:^4.4.8" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/a5fb4ca3c8d4f8e1ec6ee2b29f42d0ba184195235178e671f89aa9d92afe9b4ae0f25ff5b32791d9114d0af7f430cdbdadf75e7a59d548a1e7e085211e61afc6 + languageName: node + linkType: hard + +"@smithy/node-http-handler@npm:^4.5.2": + version: 4.5.2 + resolution: "@smithy/node-http-handler@npm:4.5.2" + dependencies: + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/querystring-builder": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/3203f4d9fffd87be8c0fd1e5e724f191df572bc0ff1cd8a422d55829588b42b9b6062228943c4fdf13a21c52ac9137c684f681d01249fb1095d71d1ee4aae64e + languageName: node + linkType: hard + "@smithy/node-http-handler@npm:^4.6.1": version: 4.6.1 resolution: "@smithy/node-http-handler@npm:4.6.1" @@ -5612,6 +6332,26 @@ __metadata: languageName: node linkType: hard +"@smithy/property-provider@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/property-provider@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/769f1070347b89c2232664aeb88ea0886e57059729122814d12121cda09cd8aef10c9fdfb583aec0e080f92bd09eac2c8817f1e632e2c96de7cfb057ff49a26a + languageName: node + linkType: hard + +"@smithy/protocol-http@npm:^5.3.13": + version: 5.3.13 + resolution: "@smithy/protocol-http@npm:5.3.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/e8eecc9ae3a9ef572110a8444631396b6e95e9991be850c3b8c221c964388d624d88742accee51906c322e63d1f4edcc71eec69344e6ee72cfa4b862726d196f + languageName: node + linkType: hard + "@smithy/protocol-http@npm:^5.3.14": version: 5.3.14 resolution: "@smithy/protocol-http@npm:5.3.14" @@ -5622,6 +6362,17 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-builder@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/querystring-builder@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + "@smithy/util-uri-escape": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/7c182186944ca228f5cfb366f0545783458ae2cf9012758bd89fb52cb5897507340890a6d653bf3b7adcb4a71f120654cd42334cc0695e7440707c504de3ea21 + languageName: node + linkType: hard + "@smithy/querystring-builder@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/querystring-builder@npm:4.2.14" @@ -5633,6 +6384,16 @@ __metadata: languageName: node linkType: hard +"@smithy/querystring-parser@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/querystring-parser@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/bc7ecbfdd29f6c44689037ebda159a6f162f7062cac7c0d126edc2b175c2a68befaa86fe1294bca40b6ac4b77a217ce2ff583e39900006da0dc1ff1be3e4d1f6 + languageName: node + linkType: hard + "@smithy/querystring-parser@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/querystring-parser@npm:4.2.14" @@ -5643,6 +6404,15 @@ __metadata: languageName: node linkType: hard +"@smithy/service-error-classification@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/service-error-classification@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + checksum: 10c0/238e7317c0cdb4d4d4dd5dbb5898130e537c7cc6f089bc38603fc0bf9071f5223d01d94838e4cf40c63d038ac30f82e9fa88fafc3797fe10bcf9aabd45ec6d88 + languageName: node + linkType: hard + "@smithy/service-error-classification@npm:^4.3.0": version: 4.3.0 resolution: "@smithy/service-error-classification@npm:4.3.0" @@ -5671,6 +6441,32 @@ __metadata: languageName: node linkType: hard +"@smithy/shared-ini-file-loader@npm:^4.4.8": + version: 4.4.8 + resolution: "@smithy/shared-ini-file-loader@npm:4.4.8" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/b11fbcb58ca4d1e00d9f1dabadb1b0de37a7e7618e65339e01fe0d051fd7d47b14f10fc06bc627c40adb85062e3fd3c6505c5129bdd32ef03ceee13dd04270d3 + languageName: node + linkType: hard + +"@smithy/signature-v4@npm:^5.3.13": + version: 5.3.13 + resolution: "@smithy/signature-v4@npm:5.3.13" + dependencies: + "@smithy/is-array-buffer": "npm:^4.2.2" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-hex-encoding": "npm:^4.2.2" + "@smithy/util-middleware": "npm:^4.2.13" + "@smithy/util-uri-escape": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/1a4da2d37983b6afe5523af29e4d71a9c1d19c8d8ab778c0181d2163691e992d19dd99fa415a2daf2cfe641a7c9bd517c8c506b33913e05db060fb43d9c7abe6 + languageName: node + linkType: hard + "@smithy/signature-v4@npm:^5.3.14": version: 5.3.14 resolution: "@smithy/signature-v4@npm:5.3.14" @@ -5702,6 +6498,21 @@ __metadata: languageName: node linkType: hard +"@smithy/smithy-client@npm:^4.12.9": + version: 4.12.9 + resolution: "@smithy/smithy-client@npm:4.12.9" + dependencies: + "@smithy/core": "npm:^3.23.14" + "@smithy/middleware-endpoint": "npm:^4.4.29" + "@smithy/middleware-stack": "npm:^4.2.13" + "@smithy/protocol-http": "npm:^5.3.13" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-stream": "npm:^4.5.22" + tslib: "npm:^2.6.2" + checksum: 10c0/fde04b2fbfe463d82a0e9de2ceed741c0faf26e280cec9eba51f3254c0411e95bdc6001aee24913e1a09c0ac2baf35ab990e77e1ec92ae6ce46aca09777bce30 + languageName: node + linkType: hard + "@smithy/types@npm:^4, @smithy/types@npm:^4.14.1": version: 4.14.1 resolution: "@smithy/types@npm:4.14.1" @@ -5720,6 +6531,17 @@ __metadata: languageName: node linkType: hard +"@smithy/url-parser@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/url-parser@npm:4.2.13" + dependencies: + "@smithy/querystring-parser": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/6b8970b0061fc170b22880c246a9c4cf6d4fd600181062aee00c1d3bf2a5ee5438c94609b436ba17306a30a993e106e48d7f33c8c306de399ba6f17cb9d7e8d8 + languageName: node + linkType: hard + "@smithy/url-parser@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/url-parser@npm:4.2.14" @@ -5789,6 +6611,18 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-browser@npm:^4.3.45": + version: 4.3.45 + resolution: "@smithy/util-defaults-mode-browser@npm:4.3.45" + dependencies: + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/8dac551d768204b50d92d44a37a64d1d205c4099c3797d31c46d96aadb1b3f41aabb018b3072a434a5f3699b562513f6dece8321cfa58e0d4a8a6dd04260ea38 + languageName: node + linkType: hard + "@smithy/util-defaults-mode-browser@npm:^4.3.49": version: 4.3.49 resolution: "@smithy/util-defaults-mode-browser@npm:4.3.49" @@ -5801,6 +6635,21 @@ __metadata: languageName: node linkType: hard +"@smithy/util-defaults-mode-node@npm:^4.2.49": + version: 4.2.49 + resolution: "@smithy/util-defaults-mode-node@npm:4.2.49" + dependencies: + "@smithy/config-resolver": "npm:^4.4.14" + "@smithy/credential-provider-imds": "npm:^4.2.13" + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/property-provider": "npm:^4.2.13" + "@smithy/smithy-client": "npm:^4.12.9" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/c5456af20b3f71619eb3ff5b0c5b7c07a1391bd1566c1e9cab81051dddbe1835a24c7e1758d630141b4ad990218447c5e7de491e222a97ad8fa4ec6eeb6dca45 + languageName: node + linkType: hard + "@smithy/util-defaults-mode-node@npm:^4.2.54": version: 4.2.54 resolution: "@smithy/util-defaults-mode-node@npm:4.2.54" @@ -5816,6 +6665,17 @@ __metadata: languageName: node linkType: hard +"@smithy/util-endpoints@npm:^3.3.4": + version: 3.3.4 + resolution: "@smithy/util-endpoints@npm:3.3.4" + dependencies: + "@smithy/node-config-provider": "npm:^4.3.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/db00c8f9ce5a0fc630b906324f82ae28e238f4cc4041a70b4fe4b07b66b0726375f8b84c676a9a29914d3ab6708161c149e87e77305b749f91af9a89cd4fabb7 + languageName: node + linkType: hard + "@smithy/util-endpoints@npm:^3.4.2": version: 3.4.2 resolution: "@smithy/util-endpoints@npm:3.4.2" @@ -5836,6 +6696,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-middleware@npm:^4.2.13": + version: 4.2.13 + resolution: "@smithy/util-middleware@npm:4.2.13" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/f579a5a0d6d9cd5aac17244bd4b9cec7b47a9cab0e44d07101f2164a754f4974a2a0853f838c2de70887780ebbc01f72119c7afc0d869c8978b605f98380325f + languageName: node + linkType: hard + "@smithy/util-middleware@npm:^4.2.14": version: 4.2.14 resolution: "@smithy/util-middleware@npm:4.2.14" @@ -5856,6 +6726,33 @@ __metadata: languageName: node linkType: hard +"@smithy/util-retry@npm:^4.3.0, @smithy/util-retry@npm:^4.3.1": + version: 4.3.1 + resolution: "@smithy/util-retry@npm:4.3.1" + dependencies: + "@smithy/service-error-classification": "npm:^4.2.13" + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/ffab82e0c2f077fa5d9c8f1f1fc4568e3054e12ba871a71abfe73fb02898a4b8dec10785c309aa22b415817e8d5535d0756e18be89f0b4eab3ce4a1309adc184 + languageName: node + linkType: hard + +"@smithy/util-stream@npm:^4.5.22": + version: 4.5.22 + resolution: "@smithy/util-stream@npm:4.5.22" + dependencies: + "@smithy/fetch-http-handler": "npm:^5.3.16" + "@smithy/node-http-handler": "npm:^4.5.2" + "@smithy/types": "npm:^4.14.0" + "@smithy/util-base64": "npm:^4.3.2" + "@smithy/util-buffer-from": "npm:^4.2.2" + "@smithy/util-hex-encoding": "npm:^4.2.2" + "@smithy/util-utf8": "npm:^4.2.2" + tslib: "npm:^2.6.2" + checksum: 10c0/adc1cce1879af7724973002cc9bb446020c074a16b0c6f25c1e97895bf65a10fecbf24d7eaacedc9c6054cbd3fc025b5c472c5a1b0be4f0dcd2fa5bf4e5e5ca4 + languageName: node + linkType: hard + "@smithy/util-stream@npm:^4.5.25": version: 4.5.25 resolution: "@smithy/util-stream@npm:4.5.25" @@ -5911,6 +6808,16 @@ __metadata: languageName: node linkType: hard +"@smithy/util-waiter@npm:^4.2.15": + version: 4.2.15 + resolution: "@smithy/util-waiter@npm:4.2.15" + dependencies: + "@smithy/types": "npm:^4.14.0" + tslib: "npm:^2.6.2" + checksum: 10c0/4397b614db15c5c24e71310fce204005024543580789b9807caae749752a0a183b53430e38bcb3e2800850860398a57974f85f7aea89b626d68d40b71dc0202c + languageName: node + linkType: hard + "@smithy/util-waiter@npm:^4.3.0": version: 4.3.0 resolution: "@smithy/util-waiter@npm:4.3.0" @@ -6031,6 +6938,15 @@ __metadata: languageName: node linkType: hard +"@types/archiver@npm:^7.0.0": + version: 7.0.0 + resolution: "@types/archiver@npm:7.0.0" + dependencies: + "@types/readdir-glob": "npm:*" + checksum: 10c0/30fe68377e3fbdd9691235bca1c99e1d6ac9c850156a56abc09fa3ed7777c520a260cbee6a1c796994a5adee96dcdc6dd3742cc4444aca713e2611c6b6d1f73d + languageName: node + linkType: hard + "@types/argparse@npm:1.0.38": version: 1.0.38 resolution: "@types/argparse@npm:1.0.38" @@ -6611,7 +7527,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.58.1, @typescript-eslint/utils@npm:^8.0.0, @typescript-eslint/utils@npm:^8.13.0": +"@typescript-eslint/utils@npm:8.58.1, @typescript-eslint/utils@npm:^8.0.0, @typescript-eslint/utils@npm:^8.13.0, @typescript-eslint/utils@npm:^8.58.0": version: 8.58.1 resolution: "@typescript-eslint/utils@npm:8.58.1" dependencies: @@ -6854,13 +7770,23 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/lockfile@npm:1.1.0": +"@yarnpkg/lockfile@npm:1.1.0, @yarnpkg/lockfile@npm:^1.1.0": version: 1.1.0 resolution: "@yarnpkg/lockfile@npm:1.1.0" checksum: 10c0/0bfa50a3d756623d1f3409bc23f225a1d069424dbc77c6fd2f14fb377390cd57ec703dc70286e081c564be9051ead9ba85d81d66a3e68eeb6eb506d4e0c0fbda languageName: node linkType: hard +"@yarnpkg/parsers@npm:3.0.2": + version: 3.0.2 + resolution: "@yarnpkg/parsers@npm:3.0.2" + dependencies: + js-yaml: "npm:^3.10.0" + tslib: "npm:^2.4.0" + checksum: 10c0/a0c340e13129643162423d7e666061c0b39b143bfad3fc5a74c7d92a30fd740f6665d41cd4e61832c20375889d793eea1d1d103cacb39ed68f7acd168add8c53 + languageName: node + linkType: hard + "@yarnpkg/parsers@npm:^3.0.3": version: 3.0.3 resolution: "@yarnpkg/parsers@npm:3.0.3" @@ -7630,6 +8556,17 @@ __metadata: languageName: node linkType: hard +"axios@npm:1.12.0": + version: 1.12.0 + resolution: "axios@npm:1.12.0" + dependencies: + follow-redirects: "npm:^1.15.6" + form-data: "npm:^4.0.4" + proxy-from-env: "npm:^1.1.0" + checksum: 10c0/44a1e4cfb69a2d59aa12bbc441a336e5c18e87c02b904c509fd33607d94e8cb8cc221c17e9d53f67841a4efe13abf1aa1497c85df390cdb8681ee723998d11b0 + languageName: node + linkType: hard + "axios@npm:1.15.0": version: 1.15.0 resolution: "axios@npm:1.15.0" @@ -9487,7 +10424,16 @@ __metadata: languageName: node linkType: hard -"dotenv@npm:16.4.7": +"dotenv-expand@npm:~11.0.6": + version: 11.0.7 + resolution: "dotenv-expand@npm:11.0.7" + dependencies: + dotenv: "npm:^16.4.5" + checksum: 10c0/d80b8a7be085edf351270b96ac0e794bc3ddd7f36157912939577cb4d33ba6492ebee349d59798b71b90e36f498d24a2a564fb4aa00073b2ef4c2a3a49c467b1 + languageName: node + linkType: hard + +"dotenv@npm:16.4.7, dotenv@npm:~16.4.5": version: 16.4.7 resolution: "dotenv@npm:16.4.7" checksum: 10c0/be9f597e36a8daf834452daa1f4cc30e5375a5968f98f46d89b16b983c567398a330580c88395069a77473943c06b877d1ca25b4afafcdd6d4adb549e8293462 @@ -9557,6 +10503,17 @@ __metadata: languageName: node linkType: hard +"ejs@npm:^3.1.7": + version: 3.1.10 + resolution: "ejs@npm:3.1.10" + dependencies: + jake: "npm:^10.8.5" + bin: + ejs: bin/cli.js + checksum: 10c0/52eade9e68416ed04f7f92c492183340582a36482836b11eab97b159fcdcfdedc62233a1bf0bf5e5e1851c501f2dca0e2e9afd111db2599e4e7f53ee29429ae1 + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.5.328": version: 1.5.334 resolution: "electron-to-chromium@npm:1.5.334" @@ -9625,7 +10582,7 @@ __metadata: languageName: node linkType: hard -"enquirer@npm:2.3.6": +"enquirer@npm:2.3.6, enquirer@npm:~2.3.6": version: 2.3.6 resolution: "enquirer@npm:2.3.6" dependencies: @@ -10574,6 +11531,19 @@ __metadata: languageName: node linkType: hard +"fast-xml-parser@npm:5.5.8": + version: 5.5.8 + resolution: "fast-xml-parser@npm:5.5.8" + dependencies: + fast-xml-builder: "npm:^1.1.4" + path-expression-matcher: "npm:^1.2.0" + strnum: "npm:^2.2.0" + bin: + fxparser: src/cli/cli.js + checksum: 10c0/b0eb5b5b4b02bb2dfac2fac4c19ce834017553e1f74499929a196b67bfe0741389a89dca4662c97bff138646d7c5fd985af59c7a216c433717e854de3355638c + languageName: node + linkType: hard + "fast-xml-parser@npm:5.7.1": version: 5.7.1 resolution: "fast-xml-parser@npm:5.7.1" @@ -10670,6 +11640,15 @@ __metadata: languageName: node linkType: hard +"filelist@npm:^1.0.4": + version: 1.0.6 + resolution: "filelist@npm:1.0.6" + dependencies: + minimatch: "npm:^5.0.1" + checksum: 10c0/6ee725bec3e1936d680a45f14439b224d9f7c71658c145addcf551dd82f03d608522eb6b191aa086b392bc3e52ed4ce0ed8d78e24b203e6c5e867560a05d1121 + languageName: node + linkType: hard + "filing-cabinet@npm:^3.0.1": version: 3.3.1 resolution: "filing-cabinet@npm:3.3.1" @@ -10780,7 +11759,7 @@ __metadata: languageName: node linkType: hard -"flat@npm:5.0.2": +"flat@npm:5.0.2, flat@npm:^5.0.2": version: 5.0.2 resolution: "flat@npm:5.0.2" bin: @@ -10813,7 +11792,7 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.11": +"follow-redirects@npm:^1.15.11, follow-redirects@npm:^1.15.6": version: 1.16.0 resolution: "follow-redirects@npm:1.16.0" peerDependenciesMeta: @@ -10842,7 +11821,7 @@ __metadata: languageName: node linkType: hard -"form-data@npm:4.0.5, form-data@npm:^4.0.5": +"form-data@npm:4.0.5, form-data@npm:^4.0.4, form-data@npm:^4.0.5": version: 4.0.5 resolution: "form-data@npm:4.0.5" dependencies: @@ -10869,6 +11848,15 @@ __metadata: languageName: node linkType: hard +"front-matter@npm:^4.0.2": + version: 4.0.2 + resolution: "front-matter@npm:4.0.2" + dependencies: + js-yaml: "npm:^3.13.1" + checksum: 10c0/7a0df5ca37428dd563c057bc17a8940481fe53876609bcdc443a02ce463c70f1842c7cb4628b80916de46a253732794b36fb6a31105db0f185698a93acee4011 + languageName: node + linkType: hard + "fs-constants@npm:1.0.0, fs-constants@npm:^1.0.0": version: 1.0.0 resolution: "fs-constants@npm:1.0.0" @@ -12257,6 +13245,19 @@ __metadata: languageName: node linkType: hard +"jake@npm:^10.8.5": + version: 10.9.4 + resolution: "jake@npm:10.9.4" + dependencies: + async: "npm:^3.2.6" + filelist: "npm:^1.0.4" + picocolors: "npm:^1.1.1" + bin: + jake: bin/cli.js + checksum: 10c0/bb52f000340d4a32f1a3893b9abe56ef2b77c25da4dbf2c0c874a8159d082dddda50a5ad10e26060198bd645b928ba8dba3b362710f46a247e335321188c5a9c + languageName: node + linkType: hard + "jest-changed-files@npm:^29.7.0": version: 29.7.0 resolution: "jest-changed-files@npm:29.7.0" @@ -12360,7 +13361,7 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:30.3.0": +"jest-diff@npm:30.3.0, jest-diff@npm:^30.0.2": version: 30.3.0 resolution: "jest-diff@npm:30.3.0" dependencies: @@ -13769,7 +14770,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^5.1.0": +"minimatch@npm:^5.0.1, minimatch@npm:^5.1.0": version: 5.1.9 resolution: "minimatch@npm:5.1.9" dependencies: @@ -14499,6 +15500,92 @@ __metadata: languageName: node linkType: hard +"nx@npm:^22.6.4": + version: 22.6.4 + resolution: "nx@npm:22.6.4" + dependencies: + "@ltd/j-toml": "npm:^1.38.0" + "@napi-rs/wasm-runtime": "npm:0.2.4" + "@nx/nx-darwin-arm64": "npm:22.6.4" + "@nx/nx-darwin-x64": "npm:22.6.4" + "@nx/nx-freebsd-x64": "npm:22.6.4" + "@nx/nx-linux-arm-gnueabihf": "npm:22.6.4" + "@nx/nx-linux-arm64-gnu": "npm:22.6.4" + "@nx/nx-linux-arm64-musl": "npm:22.6.4" + "@nx/nx-linux-x64-gnu": "npm:22.6.4" + "@nx/nx-linux-x64-musl": "npm:22.6.4" + "@nx/nx-win32-arm64-msvc": "npm:22.6.4" + "@nx/nx-win32-x64-msvc": "npm:22.6.4" + "@yarnpkg/lockfile": "npm:^1.1.0" + "@yarnpkg/parsers": "npm:3.0.2" + "@zkochan/js-yaml": "npm:0.0.7" + axios: "npm:1.12.0" + cli-cursor: "npm:3.1.0" + cli-spinners: "npm:2.6.1" + cliui: "npm:^8.0.1" + dotenv: "npm:~16.4.5" + dotenv-expand: "npm:~11.0.6" + ejs: "npm:^3.1.7" + enquirer: "npm:~2.3.6" + figures: "npm:3.2.0" + flat: "npm:^5.0.2" + front-matter: "npm:^4.0.2" + ignore: "npm:^7.0.5" + jest-diff: "npm:^30.0.2" + jsonc-parser: "npm:3.2.0" + lines-and-columns: "npm:2.0.3" + minimatch: "npm:10.2.4" + npm-run-path: "npm:^4.0.1" + open: "npm:^8.4.0" + ora: "npm:5.3.0" + picocolors: "npm:^1.1.0" + resolve.exports: "npm:2.0.3" + semver: "npm:^7.6.3" + string-width: "npm:^4.2.3" + tar-stream: "npm:~2.2.0" + tmp: "npm:~0.2.1" + tree-kill: "npm:^1.2.2" + tsconfig-paths: "npm:^4.1.2" + tslib: "npm:^2.3.0" + yaml: "npm:^2.6.0" + yargs: "npm:^17.6.2" + yargs-parser: "npm:21.1.1" + peerDependencies: + "@swc-node/register": ^1.11.1 + "@swc/core": ^1.15.8 + dependenciesMeta: + "@nx/nx-darwin-arm64": + optional: true + "@nx/nx-darwin-x64": + optional: true + "@nx/nx-freebsd-x64": + optional: true + "@nx/nx-linux-arm-gnueabihf": + optional: true + "@nx/nx-linux-arm64-gnu": + optional: true + "@nx/nx-linux-arm64-musl": + optional: true + "@nx/nx-linux-x64-gnu": + optional: true + "@nx/nx-linux-x64-musl": + optional: true + "@nx/nx-win32-arm64-msvc": + optional: true + "@nx/nx-win32-x64-msvc": + optional: true + peerDependenciesMeta: + "@swc-node/register": + optional: true + "@swc/core": + optional: true + bin: + nx: bin/nx.js + nx-cloud: bin/nx-cloud.js + checksum: 10c0/96ceb9691abb7bec654377394344491cce5fa8b4c888c18a9954850fa2c3d1268c62690653b3eaeec52704aa70cc429cfd8866ae8e5931db3d53719302193680 + languageName: node + linkType: hard + "nx@npm:^22.7.1": version: 22.7.1 resolution: "nx@npm:22.7.1" @@ -14798,7 +15885,7 @@ __metadata: languageName: node linkType: hard -"open@npm:8.4.2": +"open@npm:8.4.2, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -15207,7 +16294,7 @@ __metadata: languageName: node linkType: hard -"path-expression-matcher@npm:^1.4.0, path-expression-matcher@npm:^1.5.0": +"path-expression-matcher@npm:^1.2.0, path-expression-matcher@npm:^1.4.0, path-expression-matcher@npm:^1.5.0": version: 1.5.0 resolution: "path-expression-matcher@npm:1.5.0" checksum: 10c0/646cb5bc66cd7d809a52288336f3ac1e6223f156fd8e912936e490e590f7f93e8056d4fd25fcbcc7da61bb698fa520112cb050372a3f65e7b79bd4afa0f77610 @@ -15308,7 +16395,7 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:1.1.1, picocolors@npm:^1.1.1": +"picocolors@npm:1.1.1, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 @@ -15542,6 +16629,33 @@ __metadata: languageName: node linkType: hard +"projen@npm:^0.99.48": + version: 0.99.48 + resolution: "projen@npm:0.99.48" + dependencies: + "@iarna/toml": "npm:^2.2.5" + case: "npm:^1.6.3" + chalk: "npm:^4.1.2" + comment-json: "npm:4.2.2" + constructs: "npm:^10.0.0" + conventional-changelog-config-spec: "npm:^2.1.0" + fast-glob: "npm:^3.3.3" + fast-json-patch: "npm:^3.1.1" + ini: "npm:^2.0.0" + parse-conflict-json: "npm:^4.0.0" + semver: "npm:^7.7.4" + shx: "npm:^0.4.0" + xmlbuilder2: "npm:^4.0.3" + yaml: "npm:^2.2.2" + yargs: "npm:^17.7.2" + peerDependencies: + constructs: ^10.0.0 + bin: + projen: bin/projen + checksum: 10c0/a2c5ce743f4395cf5b92b12ca43294acd362fc079ee17d59fcda4670c7bcc5d4b7bc2f75ab1625d344ca9f2f718be9661f5655173f781a585e4a3cd82ae8cd9a + languageName: node + linkType: hard + "projen@npm:^0.99.57": version: 0.99.57 resolution: "projen@npm:0.99.57" @@ -16310,7 +17424,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.4, semver@npm:^7, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.7.1, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4, semver@npm:~7.7.4": +"semver@npm:7.7.4, semver@npm:^7, semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.3, semver@npm:^7.7.1, semver@npm:^7.7.2, semver@npm:^7.7.3, semver@npm:^7.7.4, semver@npm:~7.7.4": version: 7.7.4 resolution: "semver@npm:7.7.4" bin: @@ -17130,7 +18244,7 @@ __metadata: languageName: node linkType: hard -"strnum@npm:^2.2.3": +"strnum@npm:^2.2.0, strnum@npm:^2.2.3": version: 2.2.3 resolution: "strnum@npm:2.2.3" checksum: 10c0/1ee78101f1cd73a5b32f63cfd0be501bd246801a002f5987efef903a49e9297d1b63574e302ab3c06ee5e715c524d6cbdfef010e372ec1ea848e0179836cc208 @@ -17217,7 +18331,7 @@ __metadata: languageName: node linkType: hard -"tar-stream@npm:2.2.0": +"tar-stream@npm:2.2.0, tar-stream@npm:~2.2.0": version: 2.2.0 resolution: "tar-stream@npm:2.2.0" dependencies: @@ -17353,6 +18467,13 @@ __metadata: languageName: node linkType: hard +"tmp@npm:~0.2.1": + version: 0.2.5 + resolution: "tmp@npm:0.2.5" + checksum: 10c0/cee5bb7d674bb4ba3ab3f3841c2ca7e46daeb2109eec395c1ec7329a91d52fcb21032b79ac25161a37b2565c4858fefab927af9735926a113ef7bac9091a6e0e + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -17393,7 +18514,7 @@ __metadata: languageName: node linkType: hard -"tree-kill@npm:1.2.2": +"tree-kill@npm:1.2.2, tree-kill@npm:^1.2.2": version: 1.2.2 resolution: "tree-kill@npm:1.2.2" bin: @@ -17520,7 +18641,7 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:4.2.0": +"tsconfig-paths@npm:4.2.0, tsconfig-paths@npm:^4.1.2": version: 4.2.0 resolution: "tsconfig-paths@npm:4.2.0" dependencies: @@ -17543,7 +18664,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.8.1, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2": +"tslib@npm:2.8.1, tslib@npm:^2.0.1, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -18450,7 +19571,7 @@ __metadata: languageName: node linkType: hard -"yargs@npm:17.7.2, yargs@npm:^17.3.1, yargs@npm:^17.7.2": +"yargs@npm:17.7.2, yargs@npm:^17.3.1, yargs@npm:^17.6.2, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: