@aws/nx-plugin 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +7 -7
- package/migrations.json +6 -6
- package/package.json +4 -4
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/license/dependency-check/collectors/npm-collector.d.ts +14 -0
- package/src/license/dependency-check/collectors/npm-collector.js +35 -1
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
- package/src/migrations/v1.0.3/0001-terraform-init-target/migration.js.map +1 -0
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +3 -3
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +3 -3
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +1 -1
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +16 -16
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +13 -13
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +1 -1
- package/src/utils/docker.d.ts +1 -1
- package/src/utils/versions.d.ts +54 -54
- package/src/utils/versions.js +54 -54
- package/src/utils/versions.js.map +1 -1
- package/src/migrations/latest/terraform-init-target/migration.js.map +0 -1
- /package/src/migrations/{latest/terraform-init-target → v1.0.3/0001-terraform-init-target}/metadata.json +0 -0
- /package/src/migrations/{latest/terraform-init-target → v1.0.3/0001-terraform-init-target}/migration.d.ts +0 -0
- /package/src/migrations/{latest/terraform-init-target → v1.0.3/0001-terraform-init-target}/migration.js +0 -0
package/LICENSE-THIRD-PARTY
CHANGED
|
@@ -108,7 +108,7 @@ THE SOFTWARE.
|
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
|
-
The following software may be included in this product: @astral-sh/ruff-wasm-nodejs (0.16.
|
|
111
|
+
The following software may be included in this product: @astral-sh/ruff-wasm-nodejs (0.16.9)
|
|
112
112
|
This software contains the following license and notice below:
|
|
113
113
|
|
|
114
114
|
MIT License
|
|
@@ -3898,7 +3898,7 @@ SOFTWARE.
|
|
|
3898
3898
|
|
|
3899
3899
|
---
|
|
3900
3900
|
|
|
3901
|
-
The following software may be included in this product: @modelcontextprotocol/sdk (1.30.
|
|
3901
|
+
The following software may be included in this product: @modelcontextprotocol/sdk (1.30.1)
|
|
3902
3902
|
This software contains the following license and notice below:
|
|
3903
3903
|
|
|
3904
3904
|
MIT License
|
|
@@ -4274,7 +4274,7 @@ SOFTWARE.
|
|
|
4274
4274
|
|
|
4275
4275
|
---
|
|
4276
4276
|
|
|
4277
|
-
The following software may be included in this product: @oxc-project/types (0.
|
|
4277
|
+
The following software may be included in this product: @oxc-project/types (0.150.0)
|
|
4278
4278
|
This software contains the following license and notice below:
|
|
4279
4279
|
|
|
4280
4280
|
MIT License
|
|
@@ -8757,7 +8757,7 @@ THE SOFTWARE.
|
|
|
8757
8757
|
|
|
8758
8758
|
---
|
|
8759
8759
|
|
|
8760
|
-
The following software may be included in this product: fs-extra (11.4.
|
|
8760
|
+
The following software may be included in this product: fs-extra (11.4.1)
|
|
8761
8761
|
This software contains the following license and notice below:
|
|
8762
8762
|
|
|
8763
8763
|
(The MIT License)
|
|
@@ -9034,7 +9034,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
9034
9034
|
|
|
9035
9035
|
---
|
|
9036
9036
|
|
|
9037
|
-
The following software may be included in this product: hono (4.13.
|
|
9037
|
+
The following software may be included in this product: hono (4.13.8)
|
|
9038
9038
|
This software contains the following license and notice below:
|
|
9039
9039
|
|
|
9040
9040
|
MIT License
|
|
@@ -14165,7 +14165,7 @@ SOFTWARE.
|
|
|
14165
14165
|
|
|
14166
14166
|
---
|
|
14167
14167
|
|
|
14168
|
-
The following software may be included in this product: rolldown (1.2.
|
|
14168
|
+
The following software may be included in this product: rolldown (1.2.9)
|
|
14169
14169
|
This software contains the following license and notice below:
|
|
14170
14170
|
|
|
14171
14171
|
MIT License
|
|
@@ -16088,7 +16088,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
16088
16088
|
|
|
16089
16089
|
---
|
|
16090
16090
|
|
|
16091
|
-
The following software may be included in this product: vite (8.3.
|
|
16091
|
+
The following software may be included in this product: vite (8.3.1)
|
|
16092
16092
|
This software contains the following license and notice below:
|
|
16093
16093
|
|
|
16094
16094
|
# Vite core license
|
package/migrations.json
CHANGED
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/schema",
|
|
3
3
|
"name": "@aws/nx-plugin",
|
|
4
4
|
"generators": {
|
|
5
|
-
"latest-terraform-init-target": {
|
|
6
|
-
"version": "1.0.3",
|
|
7
|
-
"description": "Add the terraform-init target to Terraform projects so the shared provider plugin cache has a single writer",
|
|
8
|
-
"implementation": "./src/migrations/latest/terraform-init-target/migration"
|
|
9
|
-
},
|
|
10
5
|
"v1.0.0-rc.50-0001-modernize-function-props-cast": {
|
|
11
6
|
"version": "1.0.0-rc.50",
|
|
12
7
|
"description": "Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs",
|
|
@@ -377,8 +372,13 @@
|
|
|
377
372
|
"description": "Send an empty map rather than null for a vended Terraform AgentCore Harness module's environment_variables, so the first apply does not fail after creating the Harness",
|
|
378
373
|
"implementation": "./src/migrations/v1.0.2/0001-terraform-harness-environment-variables/migration"
|
|
379
374
|
},
|
|
380
|
-
"
|
|
375
|
+
"v1.0.3-0001-terraform-init-target": {
|
|
381
376
|
"version": "1.0.3",
|
|
377
|
+
"description": "Add the terraform-init target to Terraform projects so the shared provider plugin cache has a single writer",
|
|
378
|
+
"implementation": "./src/migrations/v1.0.3/0001-terraform-init-target/migration"
|
|
379
|
+
},
|
|
380
|
+
"sync-vended-versions": {
|
|
381
|
+
"version": "1.0.4",
|
|
382
382
|
"description": "Sync vended dependency versions and the tracked plugin version to those vended by this release",
|
|
383
383
|
"implementation": "./src/utils/version-upgrade-migration/migration"
|
|
384
384
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws/nx-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/awslabs/nx-plugin-for-aws.git",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@apidevtools/swagger-parser": "12.1.0",
|
|
43
|
-
"@astral-sh/ruff-wasm-nodejs": "0.16.
|
|
43
|
+
"@astral-sh/ruff-wasm-nodejs": "0.16.9",
|
|
44
44
|
"@biomejs/js-api": "6.0.0",
|
|
45
45
|
"@biomejs/wasm-nodejs": "2.5.14",
|
|
46
46
|
"@getgrit/gritql": "0.0.3",
|
|
47
47
|
"@iarna/toml": "2.2.5",
|
|
48
|
-
"@modelcontextprotocol/sdk": "1.30.
|
|
48
|
+
"@modelcontextprotocol/sdk": "1.30.1",
|
|
49
49
|
"@nx/devkit": "23.2.1",
|
|
50
50
|
"@nx/js": "23.2.1",
|
|
51
51
|
"@nx/react": "23.2.1",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"typescript": "6.0.3",
|
|
80
80
|
"unified": "11.0.5",
|
|
81
81
|
"unist-util-visit": "5.1.0",
|
|
82
|
-
"vite": "8.3.
|
|
82
|
+
"vite": "8.3.1",
|
|
83
83
|
"vitest": "4.1.11",
|
|
84
84
|
"zod": "4.6.5"
|
|
85
85
|
},
|
|
@@ -50,7 +50,7 @@ exports[`infra generator > should configure Checkov target correctly > checkov-t
|
|
|
50
50
|
"default",
|
|
51
51
|
],
|
|
52
52
|
"options": {
|
|
53
|
-
"command": "uvx --from checkov==3.3.
|
|
53
|
+
"command": "uvx --from checkov==3.3.20 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
|
|
54
54
|
},
|
|
55
55
|
"outputs": [
|
|
56
56
|
"{workspaceRoot}/dist/{projectRoot}/checkov",
|
|
@@ -150,7 +150,7 @@ exports[`infra generator > should configure project.json with correct targets >
|
|
|
150
150
|
"default",
|
|
151
151
|
],
|
|
152
152
|
"options": {
|
|
153
|
-
"command": "uvx --from checkov==3.3.
|
|
153
|
+
"command": "uvx --from checkov==3.3.20 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
|
|
154
154
|
},
|
|
155
155
|
"outputs": [
|
|
156
156
|
"{workspaceRoot}/dist/{projectRoot}/checkov",
|
|
@@ -762,7 +762,7 @@ exports[`infra generator > should handle custom project names correctly > custom
|
|
|
762
762
|
"default",
|
|
763
763
|
],
|
|
764
764
|
"options": {
|
|
765
|
-
"command": "uvx --from checkov==3.3.
|
|
765
|
+
"command": "uvx --from checkov==3.3.20 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
|
|
766
766
|
},
|
|
767
767
|
"outputs": [
|
|
768
768
|
"{workspaceRoot}/dist/{projectRoot}/checkov",
|
|
@@ -7,4 +7,18 @@ export interface NpmDependency {
|
|
|
7
7
|
export interface NpmCollectorOptions {
|
|
8
8
|
start: string;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Resolve a license that only names a file into the license that file grants.
|
|
12
|
+
*
|
|
13
|
+
* license-checker reads a package's license file only when the package declares
|
|
14
|
+
* no license, so a package declaring `SEE LICENSE IN LICENSE` is reported as
|
|
15
|
+
* `Custom: LICENSE` and evaluates to UNKNOWN even when the file grants a
|
|
16
|
+
* pre-approved license. Read the file license-checker already located and run
|
|
17
|
+
* its text detection over it, which returns an SPDX id with the trailing `*`
|
|
18
|
+
* marking a license guessed from text.
|
|
19
|
+
*
|
|
20
|
+
* The reference is kept when the file can't be read, or when detection can't
|
|
21
|
+
* name a license, so the dependency is still reported as UNKNOWN.
|
|
22
|
+
*/
|
|
23
|
+
export declare const resolveFileReferencedLicense: (rawLicense: string, licenseFile: string | undefined) => string;
|
|
10
24
|
export declare const collectNpmDependencies: (options: NpmCollectorOptions) => Promise<NpmDependency[]>;
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/ import { existsSync, readFileSync } from "fs";
|
|
5
5
|
import * as licenseChecker from "license-checker-rseidelsohn";
|
|
6
|
+
// license-checker's own license-from-text detection, which it applies to
|
|
7
|
+
// packages that declare no license. Reused here so a `SEE LICENSE IN <file>`
|
|
8
|
+
// package resolves the same way, rather than through a second implementation.
|
|
9
|
+
import { getLicenseTitle } from "license-checker-rseidelsohn/lib/getLicenseTitle.js";
|
|
6
10
|
import { join } from "path";
|
|
7
11
|
const NAME_VERSION_RE = /^(@?[^@]+)@(.+)$/;
|
|
8
12
|
const splitNameVersion = (identifier)=>{
|
|
@@ -27,6 +31,36 @@ const flattenLicense = (raw)=>{
|
|
|
27
31
|
}
|
|
28
32
|
return raw;
|
|
29
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* A license that names a file instead of a license: the SPDX form
|
|
36
|
+
* `SEE LICENSE IN <file>`, or the `Custom: <file>` license-checker reports it
|
|
37
|
+
* as.
|
|
38
|
+
*/ const FILE_REFERENCE_RE = /^(?:custom:|see\s+license\s+in)\s+(.+)$/i;
|
|
39
|
+
/**
|
|
40
|
+
* Resolve a license that only names a file into the license that file grants.
|
|
41
|
+
*
|
|
42
|
+
* license-checker reads a package's license file only when the package declares
|
|
43
|
+
* no license, so a package declaring `SEE LICENSE IN LICENSE` is reported as
|
|
44
|
+
* `Custom: LICENSE` and evaluates to UNKNOWN even when the file grants a
|
|
45
|
+
* pre-approved license. Read the file license-checker already located and run
|
|
46
|
+
* its text detection over it, which returns an SPDX id with the trailing `*`
|
|
47
|
+
* marking a license guessed from text.
|
|
48
|
+
*
|
|
49
|
+
* The reference is kept when the file can't be read, or when detection can't
|
|
50
|
+
* name a license, so the dependency is still reported as UNKNOWN.
|
|
51
|
+
*/ export const resolveFileReferencedLicense = (rawLicense, licenseFile)=>{
|
|
52
|
+
if (!licenseFile || !FILE_REFERENCE_RE.test(rawLicense.trim())) {
|
|
53
|
+
return rawLicense;
|
|
54
|
+
}
|
|
55
|
+
let detected = null;
|
|
56
|
+
try {
|
|
57
|
+
detected = getLicenseTitle(readFileSync(licenseFile, 'utf-8'));
|
|
58
|
+
} catch {
|
|
59
|
+
return rawLicense;
|
|
60
|
+
}
|
|
61
|
+
if (!detected || detected === 'Undefined' || FILE_REFERENCE_RE.test(detected)) return rawLicense;
|
|
62
|
+
return detected;
|
|
63
|
+
};
|
|
30
64
|
export const collectNpmDependencies = async (options)=>{
|
|
31
65
|
const nodeModules = join(options.start, 'node_modules');
|
|
32
66
|
if (!existsSync(nodeModules)) {
|
|
@@ -58,7 +92,7 @@ export const collectNpmDependencies = async (options)=>{
|
|
|
58
92
|
out.push({
|
|
59
93
|
name,
|
|
60
94
|
version,
|
|
61
|
-
rawLicense: flattenLicense(info.licenses),
|
|
95
|
+
rawLicense: resolveFileReferencedLicense(flattenLicense(info.licenses), info.licenseFile),
|
|
62
96
|
path: info.path
|
|
63
97
|
});
|
|
64
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/license/dependency-check/collectors/npm-collector.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { existsSync, readFileSync } from 'fs';\nimport * as licenseChecker from 'license-checker-rseidelsohn';\nimport { join } from 'path';\n\nexport interface NpmDependency {\n name: string;\n version: string;\n rawLicense: string;\n path?: string;\n}\n\nexport interface NpmCollectorOptions {\n start: string;\n}\n\nconst NAME_VERSION_RE = /^(@?[^@]+)@(.+)$/;\n\nconst splitNameVersion = (\n identifier: string,\n): { name: string; version: string } => {\n const match = identifier.match(NAME_VERSION_RE);\n if (!match) {\n return { name: identifier, version: '0.0.0' };\n }\n return { name: match[1], version: match[2] };\n};\n\nconst flattenLicense = (raw: string | string[] | undefined | null): string => {\n if (!raw) return '';\n if (Array.isArray(raw)) {\n if (raw.length === 0) return '';\n if (raw.length === 1) return raw[0];\n return `(${raw.join(' OR ')})`;\n }\n return raw;\n};\n\nexport const collectNpmDependencies = async (\n options: NpmCollectorOptions,\n): Promise<NpmDependency[]> => {\n const nodeModules = join(options.start, 'node_modules');\n if (!existsSync(nodeModules)) {\n return [];\n }\n\n const exclude = new Set<string>();\n\n const projectPackageJson = join(options.start, 'package.json');\n if (existsSync(projectPackageJson)) {\n try {\n const pkg = JSON.parse(readFileSync(projectPackageJson, 'utf-8')) as {\n name?: string;\n };\n if (pkg.name) exclude.add(pkg.name);\n } catch {\n // ignore\n }\n }\n\n const packages = await new Promise<licenseChecker.ModuleInfos>(\n (resolve, reject) => {\n licenseChecker.init(\n {\n start: options.start,\n excludePrivatePackages: true,\n },\n (err, results) => {\n if (err) reject(err);\n else resolve(results);\n },\n );\n },\n );\n\n const out: NpmDependency[] = [];\n for (const [identifier, info] of Object.entries(packages)) {\n const { name, version } = splitNameVersion(identifier);\n if (exclude.has(name)) continue;\n out.push({\n name,\n version,\n rawLicense: flattenLicense(info.licenses),\n path: info.path,\n });\n }\n return out;\n};\n"],"names":["existsSync","readFileSync","licenseChecker","join","NAME_VERSION_RE","splitNameVersion","identifier","match","name","version","flattenLicense","raw","Array","isArray","length","collectNpmDependencies","options","nodeModules","start","exclude","Set","projectPackageJson","pkg","JSON","parse","add","packages","Promise","resolve","reject","init","excludePrivatePackages","err","results","out","info","Object","entries","has","push","
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/license/dependency-check/collectors/npm-collector.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { existsSync, readFileSync } from 'fs';\nimport * as licenseChecker from 'license-checker-rseidelsohn';\n// license-checker's own license-from-text detection, which it applies to\n// packages that declare no license. Reused here so a `SEE LICENSE IN <file>`\n// package resolves the same way, rather than through a second implementation.\nimport { getLicenseTitle } from 'license-checker-rseidelsohn/lib/getLicenseTitle.js';\nimport { join } from 'path';\n\nexport interface NpmDependency {\n name: string;\n version: string;\n rawLicense: string;\n path?: string;\n}\n\nexport interface NpmCollectorOptions {\n start: string;\n}\n\nconst NAME_VERSION_RE = /^(@?[^@]+)@(.+)$/;\n\nconst splitNameVersion = (\n identifier: string,\n): { name: string; version: string } => {\n const match = identifier.match(NAME_VERSION_RE);\n if (!match) {\n return { name: identifier, version: '0.0.0' };\n }\n return { name: match[1], version: match[2] };\n};\n\nconst flattenLicense = (raw: string | string[] | undefined | null): string => {\n if (!raw) return '';\n if (Array.isArray(raw)) {\n if (raw.length === 0) return '';\n if (raw.length === 1) return raw[0];\n return `(${raw.join(' OR ')})`;\n }\n return raw;\n};\n\n/**\n * A license that names a file instead of a license: the SPDX form\n * `SEE LICENSE IN <file>`, or the `Custom: <file>` license-checker reports it\n * as.\n */\nconst FILE_REFERENCE_RE = /^(?:custom:|see\\s+license\\s+in)\\s+(.+)$/i;\n\n/**\n * Resolve a license that only names a file into the license that file grants.\n *\n * license-checker reads a package's license file only when the package declares\n * no license, so a package declaring `SEE LICENSE IN LICENSE` is reported as\n * `Custom: LICENSE` and evaluates to UNKNOWN even when the file grants a\n * pre-approved license. Read the file license-checker already located and run\n * its text detection over it, which returns an SPDX id with the trailing `*`\n * marking a license guessed from text.\n *\n * The reference is kept when the file can't be read, or when detection can't\n * name a license, so the dependency is still reported as UNKNOWN.\n */\nexport const resolveFileReferencedLicense = (\n rawLicense: string,\n licenseFile: string | undefined,\n): string => {\n if (!licenseFile || !FILE_REFERENCE_RE.test(rawLicense.trim())) {\n return rawLicense;\n }\n let detected: string | null = null;\n try {\n detected = getLicenseTitle(readFileSync(licenseFile, 'utf-8'));\n } catch {\n return rawLicense;\n }\n if (!detected || detected === 'Undefined' || FILE_REFERENCE_RE.test(detected))\n return rawLicense;\n return detected;\n};\n\nexport const collectNpmDependencies = async (\n options: NpmCollectorOptions,\n): Promise<NpmDependency[]> => {\n const nodeModules = join(options.start, 'node_modules');\n if (!existsSync(nodeModules)) {\n return [];\n }\n\n const exclude = new Set<string>();\n\n const projectPackageJson = join(options.start, 'package.json');\n if (existsSync(projectPackageJson)) {\n try {\n const pkg = JSON.parse(readFileSync(projectPackageJson, 'utf-8')) as {\n name?: string;\n };\n if (pkg.name) exclude.add(pkg.name);\n } catch {\n // ignore\n }\n }\n\n const packages = await new Promise<licenseChecker.ModuleInfos>(\n (resolve, reject) => {\n licenseChecker.init(\n {\n start: options.start,\n excludePrivatePackages: true,\n },\n (err, results) => {\n if (err) reject(err);\n else resolve(results);\n },\n );\n },\n );\n\n const out: NpmDependency[] = [];\n for (const [identifier, info] of Object.entries(packages)) {\n const { name, version } = splitNameVersion(identifier);\n if (exclude.has(name)) continue;\n out.push({\n name,\n version,\n rawLicense: resolveFileReferencedLicense(\n flattenLicense(info.licenses),\n info.licenseFile,\n ),\n path: info.path,\n });\n }\n return out;\n};\n"],"names":["existsSync","readFileSync","licenseChecker","getLicenseTitle","join","NAME_VERSION_RE","splitNameVersion","identifier","match","name","version","flattenLicense","raw","Array","isArray","length","FILE_REFERENCE_RE","resolveFileReferencedLicense","rawLicense","licenseFile","test","trim","detected","collectNpmDependencies","options","nodeModules","start","exclude","Set","projectPackageJson","pkg","JSON","parse","add","packages","Promise","resolve","reject","init","excludePrivatePackages","err","results","out","info","Object","entries","has","push","licenses","path"],"mappings":"AAAA;;;CAGC,GACD,SAASA,UAAU,EAAEC,YAAY,QAAQ,KAAK;AAC9C,YAAYC,oBAAoB,8BAA8B;AAC9D,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,SAASC,eAAe,QAAQ,qDAAqD;AACrF,SAASC,IAAI,QAAQ,OAAO;AAa5B,MAAMC,kBAAkB;AAExB,MAAMC,mBAAmB,CACvBC;IAEA,MAAMC,QAAQD,WAAWC,KAAK,CAACH;IAC/B,IAAI,CAACG,OAAO;QACV,OAAO;YAAEC,MAAMF;YAAYG,SAAS;QAAQ;IAC9C;IACA,OAAO;QAAED,MAAMD,KAAK,CAAC,EAAE;QAAEE,SAASF,KAAK,CAAC,EAAE;IAAC;AAC7C;AAEA,MAAMG,iBAAiB,CAACC;IACtB,IAAI,CAACA,KAAK,OAAO;IACjB,IAAIC,MAAMC,OAAO,CAACF,MAAM;QACtB,IAAIA,IAAIG,MAAM,KAAK,GAAG,OAAO;QAC7B,IAAIH,IAAIG,MAAM,KAAK,GAAG,OAAOH,GAAG,CAAC,EAAE;QACnC,OAAO,CAAC,CAAC,EAAEA,IAAIR,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC;IACA,OAAOQ;AACT;AAEA;;;;CAIC,GACD,MAAMI,oBAAoB;AAE1B;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMC,+BAA+B,CAC1CC,YACAC;IAEA,IAAI,CAACA,eAAe,CAACH,kBAAkBI,IAAI,CAACF,WAAWG,IAAI,KAAK;QAC9D,OAAOH;IACT;IACA,IAAII,WAA0B;IAC9B,IAAI;QACFA,WAAWnB,gBAAgBF,aAAakB,aAAa;IACvD,EAAE,OAAM;QACN,OAAOD;IACT;IACA,IAAI,CAACI,YAAYA,aAAa,eAAeN,kBAAkBI,IAAI,CAACE,WAClE,OAAOJ;IACT,OAAOI;AACT,EAAE;AAEF,OAAO,MAAMC,yBAAyB,OACpCC;IAEA,MAAMC,cAAcrB,KAAKoB,QAAQE,KAAK,EAAE;IACxC,IAAI,CAAC1B,WAAWyB,cAAc;QAC5B,OAAO,EAAE;IACX;IAEA,MAAME,UAAU,IAAIC;IAEpB,MAAMC,qBAAqBzB,KAAKoB,QAAQE,KAAK,EAAE;IAC/C,IAAI1B,WAAW6B,qBAAqB;QAClC,IAAI;YACF,MAAMC,MAAMC,KAAKC,KAAK,CAAC/B,aAAa4B,oBAAoB;YAGxD,IAAIC,IAAIrB,IAAI,EAAEkB,QAAQM,GAAG,CAACH,IAAIrB,IAAI;QACpC,EAAE,OAAM;QACN,SAAS;QACX;IACF;IAEA,MAAMyB,WAAW,MAAM,IAAIC,QACzB,CAACC,SAASC;QACRnC,eAAeoC,IAAI,CACjB;YACEZ,OAAOF,QAAQE,KAAK;YACpBa,wBAAwB;QAC1B,GACA,CAACC,KAAKC;YACJ,IAAID,KAAKH,OAAOG;iBACXJ,QAAQK;QACf;IAEJ;IAGF,MAAMC,MAAuB,EAAE;IAC/B,KAAK,MAAM,CAACnC,YAAYoC,KAAK,IAAIC,OAAOC,OAAO,CAACX,UAAW;QACzD,MAAM,EAAEzB,IAAI,EAAEC,OAAO,EAAE,GAAGJ,iBAAiBC;QAC3C,IAAIoB,QAAQmB,GAAG,CAACrC,OAAO;QACvBiC,IAAIK,IAAI,CAAC;YACPtC;YACAC;YACAQ,YAAYD,6BACVN,eAAegC,KAAKK,QAAQ,GAC5BL,KAAKxB,WAAW;YAElB8B,MAAMN,KAAKM,IAAI;QACjB;IACF;IACA,OAAOP;AACT,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.3/0001-terraform-init-target/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n getProjects,\n joinPathFragments,\n type MigrationReturnObject,\n type TargetConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { relative } from 'path';\nimport { TERRAFORM_PROJECT_GENERATOR_INFO } from '../../../terraform/project/generator.js';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport { sortObjectKeys } from '../../../utils/object.js';\n\n/**\n * Give the shared Terraform provider plugin cache a single writer.\n *\n * `init`, `test` and `validate` each ran their own `terraform init` against one\n * per-project cache, and Nx schedules them concurrently — `plan` depends on both\n * `init` and `validate`. Two `terraform init` runs filling the cache at once each\n * compute a different hash for the same provider, because the hash covers a\n * directory the other is still writing, and terraform then rejects the mismatch\n * against the lock file: \"the cached package ... does not match any of the\n * checksums recorded in the dependency lock file\".\n *\n * The new `terraform-init` target runs that init once, and `test`, `validate` and\n * `init` depend on it — `test` and `validate` now run against the `TF_DATA_DIR`\n * it prepared rather than initialising their own.\n */\n\nconst TERRAFORM_INIT = 'terraform-init';\n\n/** `terraform init` as the pre-fix `test` and `validate` targets ran it. */\nconst BACKENDLESS_INIT = 'terraform init -backend=false';\n\nconst divergedStep = (projectName: string, targetName: string) =>\n `${projectName}: its '${targetName}' target no longer matches the shape the generator produced - left untouched. Point it at the \\`TF_DATA_DIR\\` of the new \\`${TERRAFORM_INIT}\\` target and add \\`\"dependsOn\": [\"${TERRAFORM_INIT}\"]\\`, so its \\`terraform init\\` no longer races the other targets over the provider cache.`;\n\n/** Path from a target running in `{projectRoot}/src` back to the workspace root. */\nconst rootRelativePath = (projectRoot: string) =>\n relative(joinPathFragments(projectRoot, 'src'), '.').replace(/\\\\/g, '/');\n\nconst pluginCacheDirFor = (toRoot: string) =>\n joinPathFragments(toRoot, '.terraform', 'plugin-cache', '{projectRoot}');\n\nconst dataDirFor = (toRoot: string, name: string) =>\n joinPathFragments(toRoot, 'dist', '{projectRoot}', name);\n\n/**\n * The target as the generator vends it: `-backend=false` needs no credentials,\n * so this runs on a fresh workspace before `bootstrap`, and its `TF_DATA_DIR`\n * keeps the `.terraform` it initialises out of `src`.\n */\nconst terraformInitTarget = (projectRoot: string): TargetConfiguration => {\n const toRoot = rootRelativePath(projectRoot);\n const pluginCacheDir = pluginCacheDirFor(toRoot);\n return {\n executor: 'nx:run-commands',\n options: {\n commands: [\n { command: `shx mkdir -p ${pluginCacheDir}`, forwardAllArgs: false },\n BACKENDLESS_INIT,\n ],\n forwardAllArgs: true,\n cwd: '{projectRoot}/src',\n parallel: false,\n env: {\n TF_DATA_DIR: dataDirFor(toRoot, TERRAFORM_INIT),\n TF_PLUGIN_CACHE_DIR: pluginCacheDir,\n },\n },\n };\n};\n\n/** Every command a target runs, across its options and its configurations. */\nconst commandsOf = (target: TargetConfiguration): string[] =>\n [target.options, ...Object.values(target.configurations ?? {})]\n .flatMap(\n (holder: { command?: unknown; commands?: unknown } | undefined) => [\n holder?.command,\n ...(Array.isArray(holder?.commands) ? holder.commands : []),\n ],\n )\n .map((command) =>\n typeof command === 'string'\n ? command\n : (command as { command?: unknown } | undefined)?.command,\n )\n .filter((command): command is string => typeof command === 'string');\n\n/**\n * Whether the target still runs the `terraform init` this migration orders. A\n * library's `init` runs it directly and an application's delegates to the vended\n * script.\n */\nconst runsTerraformInit = (target: TargetConfiguration): boolean =>\n commandsOf(target).some(\n (command) =>\n command.includes('terraform init') || command.includes('scripts/init.ts'),\n );\n\n/** Creating the plugin cache directory, which `terraform-init` now does. */\nconst isMakeCacheDir = (command: string) =>\n /^(shx mkdir -p|make-dir)\\s/.test(command) &&\n command.includes('plugin-cache');\n\n/**\n * Rewrites `test` or `validate` to run against the `TF_DATA_DIR` `terraform-init`\n * prepared. Only the exact shape the generator produced is rewritten: its own\n * `terraform init` (with the cache directory the plugin-cache fix added ahead of\n * it), then the one terraform command the target exists to run. Anything else is\n * the user's, and is reported instead.\n */\nconst migrateInitlessTarget = (\n target: TargetConfiguration,\n verb: 'test' | 'validate',\n toRoot: string,\n): boolean => {\n const commands = commandsOf(target).filter(\n (command) => !isMakeCacheDir(command),\n );\n if (\n commands.length !== 2 ||\n commands[0] !== BACKENDLESS_INIT ||\n commands[1] !== `terraform ${verb}`\n ) {\n return false;\n }\n const options = target.options ?? {};\n const env: Record<string, string> = options.env ?? {};\n if (env.TF_DATA_DIR !== dataDirFor(toRoot, `terraform-${verb}`)) {\n return false;\n }\n\n const {\n TF_DATA_DIR: _dataDir,\n TF_PLUGIN_CACHE_DIR: _cacheDir,\n ...rest\n } = env;\n delete options.commands;\n // `parallel: false` sequenced the init ahead of the command; one command left.\n delete options.parallel;\n target.options = {\n ...options,\n command: `terraform ${verb}`,\n env: { ...rest, TF_DATA_DIR: dataDirFor(toRoot, TERRAFORM_INIT) },\n };\n return true;\n};\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n for (const [projectName, project] of getProjects(tree)) {\n const generator = (project.metadata as { generator?: string } | undefined)\n ?.generator;\n if (generator !== TERRAFORM_PROJECT_GENERATOR_INFO.id) continue;\n\n let targets = project.targets ?? {};\n const toRoot = rootRelativePath(project.root);\n let changed = false;\n\n // Guarded on the target being absent, so a re-run — and a project generated\n // with it — is a no-op.\n if (!targets[TERRAFORM_INIT]) {\n targets = sortObjectKeys({\n ...targets,\n [TERRAFORM_INIT]: terraformInitTarget(project.root),\n });\n changed = true;\n }\n\n for (const targetName of ['init', 'test', 'validate'] as const) {\n const target = targets[targetName];\n if (!target) continue;\n if (target.dependsOn?.includes(TERRAFORM_INIT)) continue;\n\n // `init` keeps its own backend-configured `terraform init`; `test` and\n // `validate` hand theirs over to `terraform-init`, so nothing is ordered\n // after a target whose shape is no longer recognised.\n const migrated =\n targetName === 'init'\n ? runsTerraformInit(target)\n : migrateInitlessTarget(target, targetName, toRoot);\n if (!migrated) {\n nextSteps.push(divergedStep(projectName, targetName));\n continue;\n }\n\n // Prepended rather than appended, so a migrated workspace matches a\n // freshly generated one.\n target.dependsOn = [TERRAFORM_INIT, ...(target.dependsOn ?? [])];\n changed = true;\n }\n\n if (changed) {\n updateProjectConfiguration(tree, projectName, { ...project, targets });\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["getProjects","joinPathFragments","updateProjectConfiguration","relative","TERRAFORM_PROJECT_GENERATOR_INFO","formatFilesInSubtree","sortObjectKeys","TERRAFORM_INIT","BACKENDLESS_INIT","divergedStep","projectName","targetName","rootRelativePath","projectRoot","replace","pluginCacheDirFor","toRoot","dataDirFor","name","terraformInitTarget","pluginCacheDir","executor","options","commands","command","forwardAllArgs","cwd","parallel","env","TF_DATA_DIR","TF_PLUGIN_CACHE_DIR","commandsOf","target","Object","values","configurations","flatMap","holder","Array","isArray","map","filter","runsTerraformInit","some","includes","isMakeCacheDir","test","migrateInitlessTarget","verb","length","_dataDir","_cacheDir","rest","migration","tree","nextSteps","project","generator","metadata","id","targets","root","changed","dependsOn","migrated","push"],"mappings":"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"}
|
|
@@ -766,12 +766,12 @@ dependencies = [
|
|
|
766
766
|
"aws-lambda-powertools==3.35.0",
|
|
767
767
|
"aws-opentelemetry-distro==0.20.0",
|
|
768
768
|
"bedrock-agentcore==1.23.1",
|
|
769
|
-
"boto3==1.43.
|
|
769
|
+
"boto3==1.43.103",
|
|
770
770
|
"fastapi==0.141.1",
|
|
771
771
|
"mcp==1.28.1",
|
|
772
|
-
"strands-agents==1.
|
|
772
|
+
"strands-agents==1.57.1",
|
|
773
773
|
"strands-agents-tools==0.8.9",
|
|
774
|
-
"uvicorn==0.
|
|
774
|
+
"uvicorn==0.54.0"
|
|
775
775
|
]
|
|
776
776
|
|
|
777
777
|
[dependency-groups]
|
|
@@ -704,17 +704,17 @@ dependencies = [
|
|
|
704
704
|
"aws-lambda-powertools==3.35.0",
|
|
705
705
|
"aws-opentelemetry-distro==0.20.0",
|
|
706
706
|
"bedrock-agentcore==1.23.1",
|
|
707
|
-
"boto3==1.43.
|
|
707
|
+
"boto3==1.43.103",
|
|
708
708
|
"fastapi==0.141.1",
|
|
709
709
|
"mcp==1.28.1",
|
|
710
710
|
"langchain==1.4.2",
|
|
711
|
-
"langchain-aws==1.7.
|
|
711
|
+
"langchain-aws==1.7.9",
|
|
712
712
|
"langgraph==1.2.12",
|
|
713
713
|
"langgraph-checkpoint-sqlite==3.1.1",
|
|
714
714
|
"aiosqlite==0.22.1",
|
|
715
715
|
"ag-ui-protocol==0.1.22",
|
|
716
716
|
"ag-ui-langgraph==0.0.45",
|
|
717
|
-
"uvicorn==0.
|
|
717
|
+
"uvicorn==0.54.0"
|
|
718
718
|
]
|
|
719
719
|
|
|
720
720
|
[dependency-groups]
|
|
@@ -1063,7 +1063,7 @@ resource "null_resource" "runtime_ready" {
|
|
|
1063
1063
|
|
|
1064
1064
|
provisioner "local-exec" {
|
|
1065
1065
|
command = <<-EOT
|
|
1066
|
-
uv run --with boto3==1.43.
|
|
1066
|
+
uv run --with boto3==1.43.103 python -c "
|
|
1067
1067
|
import boto3
|
|
1068
1068
|
import json
|
|
1069
1069
|
import os
|
|
@@ -514,7 +514,7 @@ resource "null_resource" "runtime_ready" {
|
|
|
514
514
|
|
|
515
515
|
provisioner "local-exec" {
|
|
516
516
|
command = <<-EOT
|
|
517
|
-
uv run --with boto3==1.43.
|
|
517
|
+
uv run --with boto3==1.43.103 python -c "
|
|
518
518
|
import boto3
|
|
519
519
|
import json
|
|
520
520
|
import os
|
|
@@ -803,8 +803,8 @@ version = "0.1.0"
|
|
|
803
803
|
dependencies = [
|
|
804
804
|
"aws-lambda-powertools==3.35.0",
|
|
805
805
|
"mcp==1.28.1",
|
|
806
|
-
"uvicorn==0.
|
|
807
|
-
"boto3==1.43.
|
|
806
|
+
"uvicorn==0.54.0",
|
|
807
|
+
"boto3==1.43.103",
|
|
808
808
|
"aws-opentelemetry-distro==0.20.0"
|
|
809
809
|
]
|
|
810
810
|
|
|
@@ -1491,11 +1491,11 @@ description = "Automatically generated by Nx."
|
|
|
1491
1491
|
requires-python = ">=3.14"
|
|
1492
1492
|
readme = "README.md"
|
|
1493
1493
|
dependencies = [
|
|
1494
|
-
"sqlmodel==0.0.
|
|
1494
|
+
"sqlmodel==0.0.47",
|
|
1495
1495
|
"alembic==1.20.0",
|
|
1496
1496
|
"greenlet==3.5.6",
|
|
1497
1497
|
"asyncpg==0.31.0",
|
|
1498
|
-
"boto3==1.43.
|
|
1498
|
+
"boto3==1.43.103",
|
|
1499
1499
|
"aws-lambda-powertools==3.35.0"
|
|
1500
1500
|
]
|
|
1501
1501
|
|
|
@@ -45,7 +45,7 @@ exports[`smithyProjectGenerator > shape libraries > should generate a shape libr
|
|
|
45
45
|
"shx rm -rf dist/{projectRoot}/build",
|
|
46
46
|
"shx rm -rf dist/{projectRoot}/smithy",
|
|
47
47
|
"shx mkdir -p dist/{projectRoot}/build",
|
|
48
|
-
"npx -y mise@2026.9.
|
|
48
|
+
"npx -y mise@2026.9.14 exec smithy@1.74.0 -- smithy build -c {projectRoot}/smithy-build.json --output dist/{projectRoot}/smithy",
|
|
49
49
|
"shx cp dist/{projectRoot}/smithy/source/model/model.json dist/{projectRoot}/build/model.json"
|
|
50
50
|
],
|
|
51
51
|
"parallel": false,
|
|
@@ -62,7 +62,7 @@ exports[`smithyProjectGenerator > shape libraries > should generate a shape libr
|
|
|
62
62
|
"version": "1.0",
|
|
63
63
|
"sources": ["src/"],
|
|
64
64
|
"maven": {
|
|
65
|
-
"dependencies": ["software.amazon.smithy:smithy-model:1.
|
|
65
|
+
"dependencies": ["software.amazon.smithy:smithy-model:1.74.0"]
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
"
|
|
@@ -122,7 +122,7 @@ exports[`smithyProjectGenerator > should generate smithy project with all custom
|
|
|
122
122
|
"shx rm -rf dist/{projectRoot}/build",
|
|
123
123
|
"shx rm -rf dist/{projectRoot}/smithy",
|
|
124
124
|
"shx mkdir -p dist/{projectRoot}/build",
|
|
125
|
-
"npx -y mise@2026.9.
|
|
125
|
+
"npx -y mise@2026.9.14 exec smithy@1.74.0 -- smithy build -c {projectRoot}/smithy-build.json --output dist/{projectRoot}/smithy",
|
|
126
126
|
"shx mkdir -p dist/{projectRoot}/build/openapi",
|
|
127
127
|
"shx cp \\"dist/{projectRoot}/smithy/source/openapi/*.openapi.json\\" dist/{projectRoot}/build/openapi/openapi.json"
|
|
128
128
|
],
|
|
@@ -180,7 +180,7 @@ exports[`smithyProjectGenerator > should generate smithy project with custom dir
|
|
|
180
180
|
"shx rm -rf dist/{projectRoot}/build",
|
|
181
181
|
"shx rm -rf dist/{projectRoot}/smithy",
|
|
182
182
|
"shx mkdir -p dist/{projectRoot}/build",
|
|
183
|
-
"npx -y mise@2026.9.
|
|
183
|
+
"npx -y mise@2026.9.14 exec smithy@1.74.0 -- smithy build -c {projectRoot}/smithy-build.json --output dist/{projectRoot}/smithy",
|
|
184
184
|
"shx mkdir -p dist/{projectRoot}/build/openapi",
|
|
185
185
|
"shx cp \\"dist/{projectRoot}/smithy/source/openapi/*.openapi.json\\" dist/{projectRoot}/build/openapi/openapi.json"
|
|
186
186
|
],
|
|
@@ -330,7 +330,7 @@ exports[`smithyProjectGenerator > should generate smithy project with default op
|
|
|
330
330
|
"shx rm -rf dist/{projectRoot}/build",
|
|
331
331
|
"shx rm -rf dist/{projectRoot}/smithy",
|
|
332
332
|
"shx mkdir -p dist/{projectRoot}/build",
|
|
333
|
-
"npx -y mise@2026.9.
|
|
333
|
+
"npx -y mise@2026.9.14 exec smithy@1.74.0 -- smithy build -c {projectRoot}/smithy-build.json --output dist/{projectRoot}/smithy",
|
|
334
334
|
"shx mkdir -p dist/{projectRoot}/build/openapi",
|
|
335
335
|
"shx cp \\"dist/{projectRoot}/smithy/source/openapi/*.openapi.json\\" dist/{projectRoot}/build/openapi/openapi.json"
|
|
336
336
|
],
|
|
@@ -375,11 +375,11 @@ exports[`smithyProjectGenerator > should generate smithy project with default op
|
|
|
375
375
|
},
|
|
376
376
|
"maven": {
|
|
377
377
|
"dependencies": [
|
|
378
|
-
"software.amazon.smithy:smithy-model:1.
|
|
379
|
-
"software.amazon.smithy:smithy-aws-traits:1.
|
|
380
|
-
"software.amazon.smithy:smithy-validation-model:1.
|
|
381
|
-
"software.amazon.smithy:smithy-openapi:1.
|
|
382
|
-
"software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.
|
|
378
|
+
"software.amazon.smithy:smithy-model:1.74.0",
|
|
379
|
+
"software.amazon.smithy:smithy-aws-traits:1.74.0",
|
|
380
|
+
"software.amazon.smithy:smithy-validation-model:1.74.0",
|
|
381
|
+
"software.amazon.smithy:smithy-openapi:1.74.0",
|
|
382
|
+
"software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.54.0"
|
|
383
383
|
]
|
|
384
384
|
}
|
|
385
385
|
}
|
|
@@ -474,7 +474,7 @@ exports[`smithyProjectGenerator > should generate smithy project with subdirecto
|
|
|
474
474
|
"shx rm -rf dist/{projectRoot}/build",
|
|
475
475
|
"shx rm -rf dist/{projectRoot}/smithy",
|
|
476
476
|
"shx mkdir -p dist/{projectRoot}/build",
|
|
477
|
-
"npx -y mise@2026.9.
|
|
477
|
+
"npx -y mise@2026.9.14 exec smithy@1.74.0 -- smithy build -c {projectRoot}/smithy-build.json --output dist/{projectRoot}/smithy",
|
|
478
478
|
"shx mkdir -p dist/{projectRoot}/build/openapi",
|
|
479
479
|
"shx cp \\"dist/{projectRoot}/smithy/source/openapi/*.openapi.json\\" dist/{projectRoot}/build/openapi/openapi.json"
|
|
480
480
|
],
|
|
@@ -565,11 +565,11 @@ exports[`smithyProjectGenerator > should handle kebab-case conversion for servic
|
|
|
565
565
|
},
|
|
566
566
|
"maven": {
|
|
567
567
|
"dependencies": [
|
|
568
|
-
"software.amazon.smithy:smithy-model:1.
|
|
569
|
-
"software.amazon.smithy:smithy-aws-traits:1.
|
|
570
|
-
"software.amazon.smithy:smithy-validation-model:1.
|
|
571
|
-
"software.amazon.smithy:smithy-openapi:1.
|
|
572
|
-
"software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.
|
|
568
|
+
"software.amazon.smithy:smithy-model:1.74.0",
|
|
569
|
+
"software.amazon.smithy:smithy-aws-traits:1.74.0",
|
|
570
|
+
"software.amazon.smithy:smithy-validation-model:1.74.0",
|
|
571
|
+
"software.amazon.smithy:smithy-openapi:1.74.0",
|
|
572
|
+
"software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.54.0"
|
|
573
573
|
]
|
|
574
574
|
}
|
|
575
575
|
}
|
|
@@ -2113,7 +2113,7 @@ exports[`tsSmithyApiGenerator > should generate smithy ts api with default optio
|
|
|
2113
2113
|
"shx rm -rf dist/{projectRoot}/build",
|
|
2114
2114
|
"shx rm -rf dist/{projectRoot}/smithy",
|
|
2115
2115
|
"shx mkdir -p dist/{projectRoot}/build",
|
|
2116
|
-
"npx -y mise@2026.9.
|
|
2116
|
+
"npx -y mise@2026.9.14 exec smithy@1.74.0 -- smithy build -c {projectRoot}/smithy-build.json --output dist/{projectRoot}/smithy",
|
|
2117
2117
|
"shx mkdir -p dist/{projectRoot}/build/openapi",
|
|
2118
2118
|
"shx cp \\"dist/{projectRoot}/smithy/source/openapi/*.openapi.json\\" dist/{projectRoot}/build/openapi/openapi.json"
|
|
2119
2119
|
],
|
|
@@ -650,7 +650,7 @@ RUN apt-get update && \\
|
|
|
650
650
|
rm -rf /var/lib/apt/lists/*
|
|
651
651
|
|
|
652
652
|
# Upgrade npm to a version free of known HIGH/CRITICAL vulnerabilities
|
|
653
|
-
RUN npm install -g npm@12.0
|
|
653
|
+
RUN npm install -g npm@12.1.0
|
|
654
654
|
|
|
655
655
|
WORKDIR /app
|
|
656
656
|
|
|
@@ -1666,7 +1666,7 @@ resource "null_resource" "runtime_ready" {
|
|
|
1666
1666
|
|
|
1667
1667
|
provisioner "local-exec" {
|
|
1668
1668
|
command = <<-EOT
|
|
1669
|
-
uv run --with boto3==1.43.
|
|
1669
|
+
uv run --with boto3==1.43.103 python -c "
|
|
1670
1670
|
import boto3
|
|
1671
1671
|
import json
|
|
1672
1672
|
import os
|
|
@@ -4520,7 +4520,7 @@ exports[`ts#rdb generator > should generate the aurora shared construct 4`] = `
|
|
|
4520
4520
|
"FROM public.ecr.aws/lambda/nodejs:24
|
|
4521
4521
|
|
|
4522
4522
|
# Upgrade npm to a version free of known HIGH/CRITICAL vulnerabilities
|
|
4523
|
-
RUN npm install -g npm@12.0
|
|
4523
|
+
RUN npm install -g npm@12.1.0
|
|
4524
4524
|
|
|
4525
4525
|
# Patch OS packages beyond the base image's pinned release, and drop the
|
|
4526
4526
|
# runtime's convenience copy of the AWS SDK (the handler bundle inlines its
|
|
@@ -745,7 +745,7 @@ resource "null_resource" "upload_website_files" {
|
|
|
745
745
|
provisioner "local-exec" {
|
|
746
746
|
command = <<-EOT
|
|
747
747
|
cd "$ROOT_PATH"
|
|
748
|
-
uv run --with boto3==1.43.
|
|
748
|
+
uv run --with boto3==1.43.103 python3 -c "
|
|
749
749
|
import os
|
|
750
750
|
import sys
|
|
751
751
|
import boto3
|
|
@@ -868,7 +868,7 @@ resource "null_resource" "cloudfront_invalidation" {
|
|
|
868
868
|
|
|
869
869
|
provisioner "local-exec" {
|
|
870
870
|
command = <<-EOT
|
|
871
|
-
uv run --with boto3==1.43.
|
|
871
|
+
uv run --with boto3==1.43.103 python3 -c "
|
|
872
872
|
import boto3
|
|
873
873
|
import os
|
|
874
874
|
import sys
|
|
@@ -2325,18 +2325,18 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
2325
2325
|
- test-app
|
|
2326
2326
|
- packages/common/*
|
|
2327
2327
|
catalog:
|
|
2328
|
-
'@types/node': 26.6.
|
|
2329
|
-
vite: 8.3.
|
|
2328
|
+
'@types/node': 26.6.3
|
|
2329
|
+
vite: 8.3.1
|
|
2330
2330
|
vitest: 4.1.11
|
|
2331
2331
|
'@vitest/coverage-v8': 4.1.11
|
|
2332
2332
|
jsdom: 29.1.1
|
|
2333
2333
|
'@nx/vitest': 23.2.1
|
|
2334
2334
|
constructs: 10.8.1
|
|
2335
|
-
aws-cdk-lib: 2.
|
|
2335
|
+
aws-cdk-lib: 2.271.0
|
|
2336
2336
|
react: 19.3.0
|
|
2337
2337
|
react-dom: 19.3.0
|
|
2338
|
-
'@cloudscape-design/components': 3.0.
|
|
2339
|
-
'@cloudscape-design/board-components': 3.0.
|
|
2338
|
+
'@cloudscape-design/components': 3.0.1387
|
|
2339
|
+
'@cloudscape-design/board-components': 3.0.234
|
|
2340
2340
|
'@cloudscape-design/global-styles': 1.0.70
|
|
2341
2341
|
tailwindcss: 4.3.3
|
|
2342
2342
|
'@nx/react': 23.2.1
|
|
@@ -4205,21 +4205,21 @@ exports[`react-website generator > Tanstack router integration > should generate
|
|
|
4205
4205
|
- test-app
|
|
4206
4206
|
- packages/common/*
|
|
4207
4207
|
catalog:
|
|
4208
|
-
'@types/node': 26.6.
|
|
4209
|
-
vite: 8.3.
|
|
4208
|
+
'@types/node': 26.6.3
|
|
4209
|
+
vite: 8.3.1
|
|
4210
4210
|
vitest: 4.1.11
|
|
4211
4211
|
'@vitest/coverage-v8': 4.1.11
|
|
4212
4212
|
jsdom: 29.1.1
|
|
4213
4213
|
'@nx/vitest': 23.2.1
|
|
4214
4214
|
constructs: 10.8.1
|
|
4215
|
-
aws-cdk-lib: 2.
|
|
4215
|
+
aws-cdk-lib: 2.271.0
|
|
4216
4216
|
react: 19.3.0
|
|
4217
4217
|
react-dom: 19.3.0
|
|
4218
|
-
'@cloudscape-design/components': 3.0.
|
|
4219
|
-
'@cloudscape-design/board-components': 3.0.
|
|
4218
|
+
'@cloudscape-design/components': 3.0.1387
|
|
4219
|
+
'@cloudscape-design/board-components': 3.0.234
|
|
4220
4220
|
'@cloudscape-design/global-styles': 1.0.70
|
|
4221
4221
|
tailwindcss: 4.3.3
|
|
4222
|
-
'@tanstack/react-router': 1.170.
|
|
4222
|
+
'@tanstack/react-router': 1.170.39
|
|
4223
4223
|
'@nx/react': 23.2.1
|
|
4224
4224
|
'@vitest/ui': 4.1.11
|
|
4225
4225
|
'@tailwindcss/vite': 4.3.3
|
package/src/utils/docker.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export declare const IMAGE_BUILD_CACHE = false;
|
|
|
25
25
|
* version to install globally, and the versions its dependency overrides pin.
|
|
26
26
|
*/
|
|
27
27
|
export declare const nodeImageVersions: () => {
|
|
28
|
-
npmVersion: "12.0
|
|
28
|
+
npmVersion: "12.1.0";
|
|
29
29
|
minimatchVersion: "10.2.6";
|
|
30
30
|
};
|
|
31
31
|
/**
|