diff --git a/package.json b/package.json index 9333afa0c..b19a8967c 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "prettier": "2.7.1", "simple-git-hooks": "^2.8.1", "ts-jest": "^29.0.3", + "tsx": "^3.12.1", "typescript": "~4.9.4" }, "engines": { diff --git a/scripts/generateNewClientTests/getClientNamesSortedByPackageName.ts b/scripts/generateNewClientTests/getClientNamesSortedByPackageName.ts new file mode 100644 index 000000000..62d0b1a5c --- /dev/null +++ b/scripts/generateNewClientTests/getClientNamesSortedByPackageName.ts @@ -0,0 +1,6 @@ +import { CLIENT_PACKAGE_NAMES_MAP } from "../../src/transforms/v2-to-v3/utils/config"; + +export const getClientNamesSortedByPackageName = () => + Object.keys(CLIENT_PACKAGE_NAMES_MAP).sort((a, b) => + CLIENT_PACKAGE_NAMES_MAP[a].localeCompare(CLIENT_PACKAGE_NAMES_MAP[b]) + ); diff --git a/scripts/generateNewClientTests/getGlobalImportInputContent.ts b/scripts/generateNewClientTests/getGlobalImportInputContent.ts new file mode 100644 index 000000000..89237af13 --- /dev/null +++ b/scripts/generateNewClientTests/getGlobalImportInputContent.ts @@ -0,0 +1,10 @@ +import { getV2ClientsNewExpressionCode } from "./getV2ClientsNewExpressionCode"; + +export const getGlobalImportInputContent = (codegenComment: string) => { + let globalImportInputContent = `${codegenComment}\n`; + + globalImportInputContent += `import AWS from "aws-sdk";\n\n`; + globalImportInputContent += getV2ClientsNewExpressionCode(`AWS.`); + + return globalImportInputContent; +}; diff --git a/scripts/generateNewClientTests/getGlobalImportOutputContent.ts b/scripts/generateNewClientTests/getGlobalImportOutputContent.ts new file mode 100644 index 000000000..f01a3b4d3 --- /dev/null +++ b/scripts/generateNewClientTests/getGlobalImportOutputContent.ts @@ -0,0 +1,13 @@ +import { getClientNamesSortedByPackageName } from "./getClientNamesSortedByPackageName"; +import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode"; +import { getV3PackageImportsCode } from "./getV3PackageImportsCode"; + +export const getGlobalImportOutputContent = (codegenComment: string) => { + let globalImportOutputContent = `${codegenComment}\n`; + + globalImportOutputContent += getV3PackageImportsCode(getClientNamesSortedByPackageName()); + globalImportOutputContent += `\n`; + globalImportOutputContent += getV3ClientsNewExpressionCode(); + + return globalImportOutputContent; +}; diff --git a/scripts/generateNewClientTests/getGlobalRequireInputContent.ts b/scripts/generateNewClientTests/getGlobalRequireInputContent.ts new file mode 100644 index 000000000..b3fe4f8d2 --- /dev/null +++ b/scripts/generateNewClientTests/getGlobalRequireInputContent.ts @@ -0,0 +1,10 @@ +import { getV2ClientsNewExpressionCode } from "./getV2ClientsNewExpressionCode"; + +export const getGlobalRequireInputContent = (codegenComment: string) => { + let globalRequireInputContent = `${codegenComment}\n`; + + globalRequireInputContent += `const AWS = require("aws-sdk");\n\n`; + globalRequireInputContent += getV2ClientsNewExpressionCode(`AWS.`); + + return globalRequireInputContent; +}; diff --git a/scripts/generateNewClientTests/getGlobalRequireOutputContent.ts b/scripts/generateNewClientTests/getGlobalRequireOutputContent.ts new file mode 100644 index 000000000..4b6f34f2c --- /dev/null +++ b/scripts/generateNewClientTests/getGlobalRequireOutputContent.ts @@ -0,0 +1,14 @@ +import { getClientNamesSortedByPackageName } from "./getClientNamesSortedByPackageName"; +import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode"; +import { getV3PackageRequireCode } from "./getV3PackageRequireCode"; + +export const getGlobalRequireOutputContent = (codegenComment: string) => { + let globalRequireOutputContent = `${codegenComment}\n\n`; + + globalRequireOutputContent += getV3PackageRequireCode(getClientNamesSortedByPackageName(), { + extraNewLine: true, + }); + globalRequireOutputContent += getV3ClientsNewExpressionCode(); + + return globalRequireOutputContent; +}; diff --git a/scripts/generateNewClientTests/getServiceImportInputContent.ts b/scripts/generateNewClientTests/getServiceImportInputContent.ts new file mode 100644 index 000000000..aa57fde2c --- /dev/null +++ b/scripts/generateNewClientTests/getServiceImportInputContent.ts @@ -0,0 +1,14 @@ +import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/utils/config"; +import { getV2ClientsNewExpressionCode } from "./getV2ClientsNewExpressionCode"; + +export const getServiceImportInputContent = (codegenComment: string) => { + let serviceImportInputContent = `${codegenComment}\n`; + + for (const clientName of CLIENT_NAMES) { + serviceImportInputContent += `import ${clientName} from "aws-sdk/clients/${clientName.toLowerCase()}";\n`; + } + serviceImportInputContent += `\n`; + serviceImportInputContent += getV2ClientsNewExpressionCode(); + + return serviceImportInputContent; +}; diff --git a/scripts/generateNewClientTests/getServiceImportOutputContent.ts b/scripts/generateNewClientTests/getServiceImportOutputContent.ts new file mode 100644 index 000000000..7aa29743e --- /dev/null +++ b/scripts/generateNewClientTests/getServiceImportOutputContent.ts @@ -0,0 +1,13 @@ +import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/utils/config"; +import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode"; +import { getV3PackageImportsCode } from "./getV3PackageImportsCode"; + +export const getServiceImportOutputContent = (codegenComment: string) => { + let serviceImportOutputContent = `${codegenComment}\n`; + + serviceImportOutputContent += getV3PackageImportsCode(CLIENT_NAMES); + serviceImportOutputContent += `\n`; + serviceImportOutputContent += getV3ClientsNewExpressionCode(); + + return serviceImportOutputContent; +}; diff --git a/scripts/generateNewClientTests/getServiceRequireInputContent.ts b/scripts/generateNewClientTests/getServiceRequireInputContent.ts new file mode 100644 index 000000000..11808307e --- /dev/null +++ b/scripts/generateNewClientTests/getServiceRequireInputContent.ts @@ -0,0 +1,14 @@ +import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/utils/config"; +import { getV2ClientsNewExpressionCode } from "./getV2ClientsNewExpressionCode"; + +export const getServiceRequireInputContent = (codegenComment: string) => { + let serviceRequireInputContent = `${codegenComment}\n`; + + for (const clientName of CLIENT_NAMES) { + serviceRequireInputContent += `const ${clientName} = require("aws-sdk/clients/${clientName.toLowerCase()}");\n`; + } + serviceRequireInputContent += `\n`; + serviceRequireInputContent += getV2ClientsNewExpressionCode(); + + return serviceRequireInputContent; +}; diff --git a/scripts/generateNewClientTests/getServiceRequireOutputContent.ts b/scripts/generateNewClientTests/getServiceRequireOutputContent.ts new file mode 100644 index 000000000..6fc77515a --- /dev/null +++ b/scripts/generateNewClientTests/getServiceRequireOutputContent.ts @@ -0,0 +1,13 @@ +import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/utils/config"; +import { getV3ClientsNewExpressionCode } from "./getV3ClientsNewExpressionCode"; +import { getV3PackageRequireCode } from "./getV3PackageRequireCode"; + +export const getServiceRequireOutputContent = (codegenComment: string) => { + let serviceRequireOutputContent = `${codegenComment}\n`; + + serviceRequireOutputContent += getV3PackageRequireCode(CLIENT_NAMES); + serviceRequireOutputContent += `\n`; + serviceRequireOutputContent += getV3ClientsNewExpressionCode(); + + return serviceRequireOutputContent; +}; diff --git a/scripts/generateNewClientTests/getV2ClientsNewExpressionCode.ts b/scripts/generateNewClientTests/getV2ClientsNewExpressionCode.ts new file mode 100644 index 000000000..5f881e605 --- /dev/null +++ b/scripts/generateNewClientTests/getV2ClientsNewExpressionCode.ts @@ -0,0 +1,9 @@ +import { CLIENT_NAMES } from "../../src/transforms/v2-to-v3/utils/config"; + +export const getV2ClientsNewExpressionCode = (prefix?: string) => { + let v2ClientsNewExpressionCode = ``; + for (const clientName of CLIENT_NAMES) { + v2ClientsNewExpressionCode += `new ${prefix || ""}${clientName}();\n`; + } + return v2ClientsNewExpressionCode; +}; diff --git a/scripts/generateNewClientTests/getV3ClientsNewExpressionCode.ts b/scripts/generateNewClientTests/getV3ClientsNewExpressionCode.ts new file mode 100644 index 000000000..eefb2078d --- /dev/null +++ b/scripts/generateNewClientTests/getV3ClientsNewExpressionCode.ts @@ -0,0 +1,9 @@ +import { CLIENT_NAMES, CLIENT_NAMES_MAP } from "../../src/transforms/v2-to-v3/utils/config"; + +export const getV3ClientsNewExpressionCode = () => { + let v3ClientsNewExpressionCode = ``; + for (const v2ClientName of CLIENT_NAMES) { + v3ClientsNewExpressionCode += `new ${CLIENT_NAMES_MAP[v2ClientName]}();\n`; + } + return v3ClientsNewExpressionCode; +}; diff --git a/scripts/generateNewClientTests/getV3PackageImportsCode.ts b/scripts/generateNewClientTests/getV3PackageImportsCode.ts new file mode 100644 index 000000000..1a62f60a2 --- /dev/null +++ b/scripts/generateNewClientTests/getV3PackageImportsCode.ts @@ -0,0 +1,15 @@ +import { + CLIENT_NAMES, + CLIENT_NAMES_MAP, + CLIENT_PACKAGE_NAMES_MAP, +} from "../../src/transforms/v2-to-v3/utils/config"; + +export const getV3PackageImportsCode = (sortedV2ClientNames: typeof CLIENT_NAMES) => { + let v3PackageImportsCode = ``; + for (const v2ClientName of sortedV2ClientNames) { + const v3ClientName = CLIENT_NAMES_MAP[v2ClientName]; + const v3ClientPackageName = `@aws-sdk/${CLIENT_PACKAGE_NAMES_MAP[v2ClientName]}`; + v3PackageImportsCode += `import { ${v3ClientName} } from "${v3ClientPackageName}";\n`; + } + return v3PackageImportsCode; +}; diff --git a/scripts/generateNewClientTests/getV3PackageRequireCode.ts b/scripts/generateNewClientTests/getV3PackageRequireCode.ts new file mode 100644 index 000000000..e5b1b81e3 --- /dev/null +++ b/scripts/generateNewClientTests/getV3PackageRequireCode.ts @@ -0,0 +1,19 @@ +import { + CLIENT_NAMES, + CLIENT_NAMES_MAP, + CLIENT_PACKAGE_NAMES_MAP, +} from "../../src/transforms/v2-to-v3/utils/config"; + +export const getV3PackageRequireCode = ( + sortedV2ClientNames: typeof CLIENT_NAMES, + { extraNewLine = false }: { extraNewLine?: boolean } = {} +) => { + let v3PackageRequireCode = ``; + for (const v2ClientName of sortedV2ClientNames) { + const v3ClientName = CLIENT_NAMES_MAP[v2ClientName]; + const v3ClientPackageName = `@aws-sdk/${CLIENT_PACKAGE_NAMES_MAP[v2ClientName]}`; + v3PackageRequireCode += `const {\n ${v3ClientName}\n} = require("${v3ClientPackageName}");\n`; + if (extraNewLine) v3PackageRequireCode += `\n`; + } + return v3PackageRequireCode; +}; diff --git a/scripts/generateNewClientTests/index.ts b/scripts/generateNewClientTests/index.ts new file mode 100644 index 000000000..829299b4f --- /dev/null +++ b/scripts/generateNewClientTests/index.ts @@ -0,0 +1,39 @@ +// This script generates tests in src/transforms/v2-to-v3/__fixtures__/new-client +// Run them using: yarn tsx scripts/generateNewClientTests/index.ts +import { writeFile } from "fs/promises"; +import { join } from "path"; + +import { getGlobalImportInputContent } from "./getGlobalImportInputContent"; +import { getGlobalImportOutputContent } from "./getGlobalImportOutputContent"; +import { getGlobalRequireInputContent } from "./getGlobalRequireInputContent"; +import { getGlobalRequireOutputContent } from "./getGlobalRequireOutputContent"; +import { getServiceImportInputContent } from "./getServiceImportInputContent"; +import { getServiceImportOutputContent } from "./getServiceImportOutputContent"; +import { getServiceRequireInputContent } from "./getServiceRequireInputContent"; +import { getServiceRequireOutputContent } from "./getServiceRequireOutputContent"; + +// The "use strict" directive is added to so that comments can be attached to it. +// Recast removes the comments while removing import/require. +// Details in https://github.com/awslabs/aws-sdk-js-codemod/issues/205 +const codegenComment = `// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict";`; + +const newClientsTestsFolder = join("src", "transforms", "v2-to-v3", "__fixtures__", "new-client"); +const newClientTestsPath = join(__dirname, "..", "..", newClientsTestsFolder); + +(async () => { + for (const [fileName, getFileContent] of [ + ["global-import.input.js", getGlobalImportInputContent], + ["global-import.output.js", getGlobalImportOutputContent], + ["global-require.input.js", getGlobalRequireInputContent], + ["global-require.output.js", getGlobalRequireOutputContent], + ["service-import.input.js", getServiceImportInputContent], + ["service-import.output.js", getServiceImportOutputContent], + ["service-require.input.js", getServiceRequireInputContent], + ["service-require.output.js", getServiceRequireOutputContent], + ] as [string, (comment: string) => string][]) { + const filePath = join(newClientTestsPath, fileName); + await writeFile(filePath, getFileContent(codegenComment)); + } +})(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.input.js b/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.input.js index 50805d8b6..f6fc5a610 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.input.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.input.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; import AWS from "aws-sdk"; new AWS.ACM(); @@ -296,4 +299,4 @@ new AWS.WorkMail(); new AWS.WorkMailMessageFlow(); new AWS.WorkSpaces(); new AWS.WorkSpacesWeb(); -new AWS.XRay(); \ No newline at end of file +new AWS.XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.output.js b/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.output.js index 156055f7c..7d932dd81 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.output.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/global-import.output.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; import { AccessAnalyzer } from "@aws-sdk/client-accessanalyzer"; import { Account } from "@aws-sdk/client-account"; import { ACM } from "@aws-sdk/client-acm"; @@ -592,4 +595,4 @@ new WorkMail(); new WorkMailMessageFlow(); new WorkSpaces(); new WorkSpacesWeb(); -new XRay(); \ No newline at end of file +new XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.input.js b/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.input.js index 4003b43aa..10afdc2e6 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.input.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.input.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; const AWS = require("aws-sdk"); new AWS.ACM(); @@ -296,4 +299,4 @@ new AWS.WorkMail(); new AWS.WorkMailMessageFlow(); new AWS.WorkSpaces(); new AWS.WorkSpacesWeb(); -new AWS.XRay(); \ No newline at end of file +new AWS.XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.output.js b/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.output.js index 9e0a5e066..f7e102065 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.output.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/global-require.output.js @@ -1,3 +1,7 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; + const { AccessAnalyzer } = require("@aws-sdk/client-accessanalyzer"); @@ -1482,4 +1486,4 @@ new WorkMail(); new WorkMailMessageFlow(); new WorkSpaces(); new WorkSpacesWeb(); -new XRay(); \ No newline at end of file +new XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.input.js b/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.input.js index d92a87414..1ef1defa9 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.input.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.input.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; import ACM from "aws-sdk/clients/acm"; import ACMPCA from "aws-sdk/clients/acmpca"; import APIGateway from "aws-sdk/clients/apigateway"; @@ -592,4 +595,4 @@ new WorkMail(); new WorkMailMessageFlow(); new WorkSpaces(); new WorkSpacesWeb(); -new XRay(); \ No newline at end of file +new XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.output.js b/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.output.js index ce42a1972..45b6d6a3d 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.output.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/service-import.output.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; import { ACM } from "@aws-sdk/client-acm"; import { ACMPCA } from "@aws-sdk/client-acm-pca"; import { APIGateway } from "@aws-sdk/client-api-gateway"; @@ -592,4 +595,4 @@ new WorkMail(); new WorkMailMessageFlow(); new WorkSpaces(); new WorkSpacesWeb(); -new XRay(); \ No newline at end of file +new XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.input.js b/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.input.js index 4ec906b28..3a603144c 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.input.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.input.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; const ACM = require("aws-sdk/clients/acm"); const ACMPCA = require("aws-sdk/clients/acmpca"); const APIGateway = require("aws-sdk/clients/apigateway"); @@ -592,4 +595,4 @@ new WorkMail(); new WorkMailMessageFlow(); new WorkSpaces(); new WorkSpacesWeb(); -new XRay(); \ No newline at end of file +new XRay(); diff --git a/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.output.js b/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.output.js index 2b8116e42..9bd2da186 100644 --- a/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.output.js +++ b/src/transforms/v2-to-v3/__fixtures__/new-client/service-require.output.js @@ -1,3 +1,6 @@ +// This file is generated by scripts/generateNewClientTests/index.ts +// Do not edit this file directly. Instead, edit the script and run it to regenerate this file. +"use strict"; const { ACM } = require("@aws-sdk/client-acm"); @@ -1186,4 +1189,4 @@ new WorkMail(); new WorkMailMessageFlow(); new WorkSpaces(); new WorkSpacesWeb(); -new XRay(); \ No newline at end of file +new XRay(); diff --git a/tsconfig.json b/tsconfig.json index 984e99fbd..9c5440266 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -6,5 +6,5 @@ "resolveJsonModule": true, "rootDir": "src" }, - "exclude": ["dist", "**/__fixtures__/**", "**/*.spec.ts"] + "exclude": ["dist", "**/__fixtures__/**", "**/*.spec.ts", "scripts"] } diff --git a/yarn.lock b/yarn.lock index 19416bc71..dfa916129 100644 --- a/yarn.lock +++ b/yarn.lock @@ -845,6 +845,50 @@ __metadata: languageName: node linkType: hard +"@esbuild-kit/cjs-loader@npm:^2.4.0": + version: 2.4.1 + resolution: "@esbuild-kit/cjs-loader@npm:2.4.1" + dependencies: + "@esbuild-kit/core-utils": ^3.0.0 + get-tsconfig: ^4.2.0 + checksum: a516065907be0ead76ac2199ccb08ff92659ba5e2edb4bb8772b6a63afe4faed7eb45a3b4d87266a68c7c135c3dba971cd087bc6f16c382356e835c7dd3440f5 + languageName: node + linkType: hard + +"@esbuild-kit/core-utils@npm:^3.0.0": + version: 3.0.0 + resolution: "@esbuild-kit/core-utils@npm:3.0.0" + dependencies: + esbuild: ~0.15.10 + source-map-support: ^0.5.21 + checksum: 0e89ec718e2211bf95c48a8085aaef88e8e416f42abd1c62d488d5458eecd3fbc144179a0c5570ad36fa7e2d3bbc411f8d3fb28802c37ced2154dc2c6ded9dfe + languageName: node + linkType: hard + +"@esbuild-kit/esm-loader@npm:^2.5.0": + version: 2.5.4 + resolution: "@esbuild-kit/esm-loader@npm:2.5.4" + dependencies: + "@esbuild-kit/core-utils": ^3.0.0 + get-tsconfig: ^4.2.0 + checksum: 8f4b4b6470f7afeb58ddc15ddcc4e35a6d25910133f2b21a82a793918c6f8e28768d5cd77b1c90a003f2f1c83cb476b68354580a4e04e83e2da3312afe5b5895 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.15.18": + version: 0.15.18 + resolution: "@esbuild/android-arm@npm:0.15.18" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.15.18": + version: 0.15.18 + resolution: "@esbuild/linux-loong64@npm:0.15.18" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^1.3.3": version: 1.3.3 resolution: "@eslint/eslintrc@npm:1.3.3" @@ -1860,6 +1904,7 @@ __metadata: prettier: 2.7.1 simple-git-hooks: ^2.8.1 ts-jest: ^29.0.3 + tsx: ^3.12.1 typescript: ~4.9.4 bin: aws-sdk-js-codemod: bin/aws-sdk-js-codemod @@ -2659,6 +2704,223 @@ __metadata: languageName: node linkType: hard +"esbuild-android-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-android-64@npm:0.15.18" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"esbuild-android-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-android-arm64@npm:0.15.18" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-darwin-64@npm:0.15.18" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-darwin-arm64@npm:0.15.18" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-freebsd-64@npm:0.15.18" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-freebsd-arm64@npm:0.15.18" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-32@npm:0.15.18" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-64@npm:0.15.18" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-arm64@npm:0.15.18" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-arm@npm:0.15.18" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-mips64le@npm:0.15.18" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-ppc64le@npm:0.15.18" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"esbuild-linux-riscv64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-riscv64@npm:0.15.18" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"esbuild-linux-s390x@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-linux-s390x@npm:0.15.18" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-netbsd-64@npm:0.15.18" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-openbsd-64@npm:0.15.18" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-sunos-64@npm:0.15.18" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-windows-32@npm:0.15.18" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-windows-64@npm:0.15.18" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.15.18": + version: 0.15.18 + resolution: "esbuild-windows-arm64@npm:0.15.18" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:~0.15.10": + version: 0.15.18 + resolution: "esbuild@npm:0.15.18" + dependencies: + "@esbuild/android-arm": 0.15.18 + "@esbuild/linux-loong64": 0.15.18 + esbuild-android-64: 0.15.18 + esbuild-android-arm64: 0.15.18 + esbuild-darwin-64: 0.15.18 + esbuild-darwin-arm64: 0.15.18 + esbuild-freebsd-64: 0.15.18 + esbuild-freebsd-arm64: 0.15.18 + esbuild-linux-32: 0.15.18 + esbuild-linux-64: 0.15.18 + esbuild-linux-arm: 0.15.18 + esbuild-linux-arm64: 0.15.18 + esbuild-linux-mips64le: 0.15.18 + esbuild-linux-ppc64le: 0.15.18 + esbuild-linux-riscv64: 0.15.18 + esbuild-linux-s390x: 0.15.18 + esbuild-netbsd-64: 0.15.18 + esbuild-openbsd-64: 0.15.18 + esbuild-sunos-64: 0.15.18 + esbuild-windows-32: 0.15.18 + esbuild-windows-64: 0.15.18 + esbuild-windows-arm64: 0.15.18 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/linux-loong64": + optional: true + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: ec12682b2cb2d4f0669d0e555028b87a9284ca7f6a1b26e35e69a8697165b35cc682ad598abc70f0bbcfdc12ca84ef888caf5ceee389237862e8f8c17da85f89 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -3104,7 +3366,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2": +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -3114,7 +3376,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin": +"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" dependencies: @@ -3214,6 +3476,13 @@ __metadata: languageName: node linkType: hard +"get-tsconfig@npm:^4.2.0": + version: 4.2.0 + resolution: "get-tsconfig@npm:4.2.0" + checksum: dfae3520bee20b71a651fdc93fd29901013dfc4df9fb41a423cf3efb4468c79087ef9d3bc3d0625b6486397730991d2a749eed4985d8ab411f481319c3e931e5 + languageName: node + linkType: hard + "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -5862,7 +6131,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:^0.5.16": +"source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.21": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -6275,6 +6544,23 @@ __metadata: languageName: node linkType: hard +"tsx@npm:^3.12.1": + version: 3.12.1 + resolution: "tsx@npm:3.12.1" + dependencies: + "@esbuild-kit/cjs-loader": ^2.4.0 + "@esbuild-kit/core-utils": ^3.0.0 + "@esbuild-kit/esm-loader": ^2.5.0 + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + tsx: dist/cli.js + checksum: 7251ad550b82cc95716599b5f4fc8825d3896722f30ee6abfff5e5dd63b9ba8ad1c41fefbf27657ff5375f71bb69fb2b001dfe87f1f81e5d017b55616e1691cb + languageName: node + linkType: hard + "tty-table@npm:^4.1.5": version: 4.1.6 resolution: "tty-table@npm:4.1.6"