@aws/nx-plugin 1.0.8 → 1.0.10
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 +100 -562
- package/migrations.json +67 -24
- package/package.json +10 -10
- package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/migrations/latest/pin-strands-mcp-client-peer/metadata.json +3 -0
- package/src/migrations/latest/pin-strands-mcp-client-peer/migration.d.ts +20 -0
- package/src/migrations/latest/pin-strands-mcp-client-peer/migration.js +51 -0
- package/src/migrations/latest/pin-strands-mcp-client-peer/migration.js.map +1 -0
- package/src/migrations/latest/py-dynamodb-bind-base-model-meta/metadata.json +3 -0
- package/src/migrations/latest/{rdb-drop-lambda-rie → py-dynamodb-bind-base-model-meta}/migration.d.ts +1 -1
- package/src/migrations/latest/py-dynamodb-bind-base-model-meta/migration.js +56 -0
- package/src/migrations/latest/py-dynamodb-bind-base-model-meta/migration.js.map +1 -0
- package/src/migrations/v1.0.7/0001-pin-strands-express-peer/migration.js.map +1 -0
- package/src/migrations/v1.0.7/0002-rdb-drop-lambda-rie/migration.js.map +1 -0
- package/src/migrations/v1.0.8/0001-infra-test-loop/migration.js.map +1 -0
- package/src/migrations/v1.0.8/0002-py-dynamodb-type-base-model-meta/metadata.json +3 -0
- package/src/migrations/v1.0.8/0002-py-dynamodb-type-base-model-meta/migration.d.ts +6 -0
- package/src/migrations/v1.0.8/0002-py-dynamodb-type-base-model-meta/migration.js +54 -0
- package/src/migrations/v1.0.8/0002-py-dynamodb-type-base-model-meta/migration.js.map +1 -0
- package/src/migrations/v1.0.8/0003-cache-inputs-outputs/migration.js.map +1 -0
- package/src/open-api/py-client/files/shared/errors.py.template +3 -5
- package/src/open-api/py-client/generator.d.ts +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +5 -5
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +9 -9
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +4 -4
- package/src/py/agent/a2a-connection/generator.d.ts +1 -1
- package/src/py/agent/gateway-connection/generator.d.ts +1 -1
- package/src/py/agent/mcp-connection/generator.d.ts +1 -1
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +8 -4
- package/src/py/dynamodb/base-model-meta.d.ts +39 -0
- package/src/py/dynamodb/base-model-meta.js +54 -0
- package/src/py/dynamodb/base-model-meta.js.map +1 -0
- package/src/py/dynamodb/files/__name__/entities/base.py.template +3 -1
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/agent/a2a-connection/generator.d.ts +2 -2
- package/src/ts/agent/gateway-connection/generator.d.ts +3 -1
- package/src/ts/agent/gateway-connection/generator.js +4 -0
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/generator.d.ts +3 -1
- package/src/ts/agent/generator.js +5 -0
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/generator.d.ts +3 -1
- package/src/ts/agent/mcp-connection/generator.js +4 -0
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/astro-docs/generator.d.ts +1 -1
- package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +41 -39
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
- package/src/utils/agent-connection/agent-connection.d.ts +9 -3
- package/src/utils/agent-connection/agent-connection.js +9 -2
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/git.d.ts +5 -0
- package/src/utils/git.js +29 -4
- package/src/utils/git.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +5 -0
- package/src/utils/shared-constructs.js +10 -9
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/version-lockstep/hold.d.ts +29 -0
- package/src/utils/version-lockstep/hold.js +40 -0
- package/src/utils/version-lockstep/hold.js.map +1 -0
- package/src/utils/version-lockstep/lockstep.d.ts +2 -2
- package/src/utils/version-lockstep/lockstep.js.map +1 -1
- package/src/utils/versions.d.ts +81 -80
- package/src/utils/versions.js +79 -78
- package/src/utils/versions.js.map +1 -1
- package/src/migrations/latest/cache-inputs-outputs/migration.js.map +0 -1
- package/src/migrations/latest/infra-test-loop/migration.js.map +0 -1
- package/src/migrations/latest/pin-strands-express-peer/migration.js.map +0 -1
- package/src/migrations/latest/py-dynamodb-type-base-model-meta/metadata.json +0 -3
- package/src/migrations/latest/py-dynamodb-type-base-model-meta/migration.js +0 -87
- package/src/migrations/latest/py-dynamodb-type-base-model-meta/migration.js.map +0 -1
- package/src/migrations/latest/rdb-drop-lambda-rie/migration.js.map +0 -1
- /package/src/migrations/{latest/pin-strands-express-peer → v1.0.7/0001-pin-strands-express-peer}/metadata.json +0 -0
- /package/src/migrations/{latest/pin-strands-express-peer → v1.0.7/0001-pin-strands-express-peer}/migration.d.ts +0 -0
- /package/src/migrations/{latest/pin-strands-express-peer → v1.0.7/0001-pin-strands-express-peer}/migration.js +0 -0
- /package/src/migrations/{latest/rdb-drop-lambda-rie → v1.0.7/0002-rdb-drop-lambda-rie}/metadata.json +0 -0
- /package/src/migrations/{latest/cache-inputs-outputs → v1.0.7/0002-rdb-drop-lambda-rie}/migration.d.ts +0 -0
- /package/src/migrations/{latest/rdb-drop-lambda-rie → v1.0.7/0002-rdb-drop-lambda-rie}/migration.js +0 -0
- /package/src/migrations/{latest/infra-test-loop → v1.0.8/0001-infra-test-loop}/metadata.json +0 -0
- /package/src/migrations/{latest/infra-test-loop → v1.0.8/0001-infra-test-loop}/migration.d.ts +0 -0
- /package/src/migrations/{latest/infra-test-loop → v1.0.8/0001-infra-test-loop}/migration.js +0 -0
- /package/src/migrations/{latest/cache-inputs-outputs → v1.0.8/0003-cache-inputs-outputs}/metadata.json +0 -0
- /package/src/migrations/{latest/py-dynamodb-type-base-model-meta → v1.0.8/0003-cache-inputs-outputs}/migration.d.ts +0 -0
- /package/src/migrations/{latest/cache-inputs-outputs → v1.0.8/0003-cache-inputs-outputs}/migration.js +0 -0
package/src/utils/git.d.ts
CHANGED
|
@@ -13,5 +13,10 @@ export declare const getGitIncludedFiles: (tree: Tree) => string[];
|
|
|
13
13
|
export declare const isWithinGitRepo: (tree: Tree) => boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Update a .gitignore file. Will create a new .gitignore file if it does not exist
|
|
16
|
+
*
|
|
17
|
+
* A trailing newline is kept rather than handed to `doUpdate` as an empty
|
|
18
|
+
* pattern. Duplicate patterns are removed, but blank lines are kept where they
|
|
19
|
+
* are. When the update adds and removes nothing the file is left untouched, so
|
|
20
|
+
* re-running a caller is a no-op.
|
|
16
21
|
*/
|
|
17
22
|
export declare const updateGitIgnore: (tree: Tree, dir: string, doUpdate: (patterns: string[]) => string[]) => void;
|
package/src/utils/git.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/ import { joinPathFragments } from "@nx/devkit";
|
|
5
5
|
import { execSync } from "child_process";
|
|
6
|
-
import uniqBy from "lodash.uniqby";
|
|
7
6
|
/**
|
|
8
7
|
* Returns all files from the tree root that are not gitignored (both tracked and untracked)
|
|
9
8
|
*/ export const getGitIncludedFiles = (tree)=>{
|
|
@@ -37,11 +36,37 @@ import uniqBy from "lodash.uniqby";
|
|
|
37
36
|
};
|
|
38
37
|
/**
|
|
39
38
|
* Update a .gitignore file. Will create a new .gitignore file if it does not exist
|
|
39
|
+
*
|
|
40
|
+
* A trailing newline is kept rather than handed to `doUpdate` as an empty
|
|
41
|
+
* pattern. Duplicate patterns are removed, but blank lines are kept where they
|
|
42
|
+
* are. When the update adds and removes nothing the file is left untouched, so
|
|
43
|
+
* re-running a caller is a no-op.
|
|
40
44
|
*/ export const updateGitIgnore = (tree, dir, doUpdate)=>{
|
|
41
45
|
const gitIgnorePath = joinPathFragments(dir, '.gitignore');
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
|
|
46
|
+
const existing = tree.read(gitIgnorePath, 'utf-8');
|
|
47
|
+
const hasTrailingNewline = existing?.endsWith('\n') ?? false;
|
|
48
|
+
const existingPatterns = existing === null ? [] : (hasTrailingNewline ? existing.slice(0, -1) : existing).split('\n');
|
|
49
|
+
const seen = new Set();
|
|
50
|
+
const newPatterns = doUpdate([
|
|
51
|
+
...existingPatterns
|
|
52
|
+
]).filter((p)=>{
|
|
53
|
+
if (p.trim() === '') {
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
if (seen.has(p)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
seen.add(p);
|
|
60
|
+
return true;
|
|
61
|
+
});
|
|
62
|
+
if (existing !== null) {
|
|
63
|
+
const existingSet = new Set(existingPatterns);
|
|
64
|
+
const newSet = new Set(newPatterns);
|
|
65
|
+
if (newPatterns.every((p)=>existingSet.has(p)) && existingPatterns.every((p)=>newSet.has(p))) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
tree.write(gitIgnorePath, newPatterns.join('\n') + (hasTrailingNewline ? '\n' : ''));
|
|
45
70
|
};
|
|
46
71
|
|
|
47
72
|
//# sourceMappingURL=git.js.map
|
package/src/utils/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/git.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { joinPathFragments, type Tree } from '@nx/devkit';\nimport { execSync } from 'child_process';\
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/git.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { joinPathFragments, type Tree } from '@nx/devkit';\nimport { execSync } from 'child_process';\n\n/**\n * Returns all files from the tree root that are not gitignored (both tracked and untracked)\n */\nexport const getGitIncludedFiles = (tree: Tree): string[] => {\n return [\n // Git tracked files\n ...execSync('git ls-files --exclude-standard', {\n encoding: 'utf-8',\n cwd: tree.root,\n })\n .split('\\n')\n .filter((x) => x),\n // Untracked files that aren't ignored\n ...execSync('git ls-files --others --exclude-standard', {\n encoding: 'utf-8',\n cwd: tree.root,\n })\n .split('\\n')\n .filter((x) => x),\n ].filter((f) => tree.exists(f));\n};\n\n/**\n * Return whether or not a tree is within a git repo\n */\nexport const isWithinGitRepo = (tree: Tree): boolean => {\n if (tree.exists('.git')) {\n return true;\n }\n try {\n return execSync('git rev-parse --is-inside-work-tree', {\n encoding: 'utf-8',\n cwd: tree.root,\n }).startsWith('true');\n } catch {\n return false;\n }\n};\n\n/**\n * Update a .gitignore file. Will create a new .gitignore file if it does not exist\n *\n * A trailing newline is kept rather than handed to `doUpdate` as an empty\n * pattern. Duplicate patterns are removed, but blank lines are kept where they\n * are. When the update adds and removes nothing the file is left untouched, so\n * re-running a caller is a no-op.\n */\nexport const updateGitIgnore = (\n tree: Tree,\n dir: string,\n doUpdate: (patterns: string[]) => string[],\n) => {\n const gitIgnorePath = joinPathFragments(dir, '.gitignore');\n const existing = tree.read(gitIgnorePath, 'utf-8');\n const hasTrailingNewline = existing?.endsWith('\\n') ?? false;\n const existingPatterns =\n existing === null\n ? []\n : (hasTrailingNewline ? existing.slice(0, -1) : existing).split('\\n');\n const seen = new Set<string>();\n const newPatterns = doUpdate([...existingPatterns]).filter((p) => {\n if (p.trim() === '') {\n return true;\n }\n if (seen.has(p)) {\n return false;\n }\n seen.add(p);\n return true;\n });\n\n if (existing !== null) {\n const existingSet = new Set(existingPatterns);\n const newSet = new Set(newPatterns);\n if (\n newPatterns.every((p) => existingSet.has(p)) &&\n existingPatterns.every((p) => newSet.has(p))\n ) {\n return;\n }\n }\n\n tree.write(\n gitIgnorePath,\n newPatterns.join('\\n') + (hasTrailingNewline ? '\\n' : ''),\n );\n};\n"],"names":["joinPathFragments","execSync","getGitIncludedFiles","tree","encoding","cwd","root","split","filter","x","f","exists","isWithinGitRepo","startsWith","updateGitIgnore","dir","doUpdate","gitIgnorePath","existing","read","hasTrailingNewline","endsWith","existingPatterns","slice","seen","Set","newPatterns","p","trim","has","add","existingSet","newSet","every","write","join"],"mappings":"AAAA;;;CAGC,GACD,SAASA,iBAAiB,QAAmB,aAAa;AAC1D,SAASC,QAAQ,QAAQ,gBAAgB;AAEzC;;CAEC,GACD,OAAO,MAAMC,sBAAsB,CAACC;IAClC,OAAO;QACL,oBAAoB;WACjBF,SAAS,mCAAmC;YAC7CG,UAAU;YACVC,KAAKF,KAAKG,IAAI;QAChB,GACGC,KAAK,CAAC,MACNC,MAAM,CAAC,CAACC,IAAMA;QACjB,sCAAsC;WACnCR,SAAS,4CAA4C;YACtDG,UAAU;YACVC,KAAKF,KAAKG,IAAI;QAChB,GACGC,KAAK,CAAC,MACNC,MAAM,CAAC,CAACC,IAAMA;KAClB,CAACD,MAAM,CAAC,CAACE,IAAMP,KAAKQ,MAAM,CAACD;AAC9B,EAAE;AAEF;;CAEC,GACD,OAAO,MAAME,kBAAkB,CAACT;IAC9B,IAAIA,KAAKQ,MAAM,CAAC,SAAS;QACvB,OAAO;IACT;IACA,IAAI;QACF,OAAOV,SAAS,uCAAuC;YACrDG,UAAU;YACVC,KAAKF,KAAKG,IAAI;QAChB,GAAGO,UAAU,CAAC;IAChB,EAAE,OAAM;QACN,OAAO;IACT;AACF,EAAE;AAEF;;;;;;;CAOC,GACD,OAAO,MAAMC,kBAAkB,CAC7BX,MACAY,KACAC;IAEA,MAAMC,gBAAgBjB,kBAAkBe,KAAK;IAC7C,MAAMG,WAAWf,KAAKgB,IAAI,CAACF,eAAe;IAC1C,MAAMG,qBAAqBF,UAAUG,SAAS,SAAS;IACvD,MAAMC,mBACJJ,aAAa,OACT,EAAE,GACF,AAACE,CAAAA,qBAAqBF,SAASK,KAAK,CAAC,GAAG,CAAC,KAAKL,QAAO,EAAGX,KAAK,CAAC;IACpE,MAAMiB,OAAO,IAAIC;IACjB,MAAMC,cAAcV,SAAS;WAAIM;KAAiB,EAAEd,MAAM,CAAC,CAACmB;QAC1D,IAAIA,EAAEC,IAAI,OAAO,IAAI;YACnB,OAAO;QACT;QACA,IAAIJ,KAAKK,GAAG,CAACF,IAAI;YACf,OAAO;QACT;QACAH,KAAKM,GAAG,CAACH;QACT,OAAO;IACT;IAEA,IAAIT,aAAa,MAAM;QACrB,MAAMa,cAAc,IAAIN,IAAIH;QAC5B,MAAMU,SAAS,IAAIP,IAAIC;QACvB,IACEA,YAAYO,KAAK,CAAC,CAACN,IAAMI,YAAYF,GAAG,CAACF,OACzCL,iBAAiBW,KAAK,CAAC,CAACN,IAAMK,OAAOH,GAAG,CAACF,KACzC;YACA;QACF;IACF;IAEAxB,KAAK+B,KAAK,CACRjB,eACAS,YAAYS,IAAI,CAAC,QAASf,CAAAA,qBAAqB,OAAO,EAAC;AAE3D,EAAE"}
|
|
@@ -11,3 +11,8 @@ export interface SharedConstructsGeneratorOptions {
|
|
|
11
11
|
iac: Iac;
|
|
12
12
|
}
|
|
13
13
|
export declare function sharedConstructsGenerator<const D extends DependencyDeclaration>(tree: Tree, options: SharedConstructsGeneratorOptions, declaration: D & MustDeclare<typeof SHARED_CONSTRUCTS_DEPENDENCIES, D>): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Ignore the root `runtime-config.json`, unless an existing entry already
|
|
16
|
+
* covers it.
|
|
17
|
+
*/
|
|
18
|
+
export declare const ignoreRuntimeConfig: (tree: Tree) => void;
|
|
@@ -8,6 +8,7 @@ import { addCdkTestGlobalSetup } from "./cdk-test-setup.js";
|
|
|
8
8
|
import { readAwsNxPluginConfig } from "./config/utils.js";
|
|
9
9
|
import { addDependenciesToPackageJson } from "./dependencies.js";
|
|
10
10
|
import { formatFilesInSubtree } from "./format.js";
|
|
11
|
+
import { updateGitIgnore } from "./git.js";
|
|
11
12
|
import { esmVars } from "./module-format.js";
|
|
12
13
|
import { getNpmScopePrefix } from "./npm-scope.js";
|
|
13
14
|
import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
|
|
@@ -17,7 +18,7 @@ import { terraformProviderVersions, withVersions } from "./versions.js";
|
|
|
17
18
|
export async function sharedConstructsGenerator(tree, options, declaration) {
|
|
18
19
|
const { iac } = options;
|
|
19
20
|
const npmScopePrefix = getNpmScopePrefix(tree);
|
|
20
|
-
|
|
21
|
+
ignoreRuntimeConfig(tree);
|
|
21
22
|
if (iac === 'cdk') {
|
|
22
23
|
if (!tree.exists(joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'project.json'))) {
|
|
23
24
|
await tsProjectGenerator(tree, {
|
|
@@ -85,14 +86,14 @@ export async function sharedConstructsGenerator(tree, options, declaration) {
|
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Ignore the root `runtime-config.json`, unless an existing entry already
|
|
91
|
+
* covers it.
|
|
92
|
+
*/ export const ignoreRuntimeConfig = (tree)=>{
|
|
93
|
+
updateGitIgnore(tree, '.', (patterns)=>patterns.some((p)=>p.includes('runtime-config.json')) ? patterns : [
|
|
94
|
+
...patterns,
|
|
95
|
+
'runtime-config.json'
|
|
96
|
+
]);
|
|
96
97
|
};
|
|
97
98
|
|
|
98
99
|
//# sourceMappingURL=shared-constructs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport terraformProjectGenerator from '../terraform/project/generator.js';\nimport tsProjectGenerator from '../ts/lib/generator.js';\nimport { addCdkTestGlobalSetup } from './cdk-test-setup.js';\nimport { readAwsNxPluginConfig } from './config/utils.js';\nimport type {\n DependencyDeclaration,\n MustDeclare,\n} from './declared-dependencies.js';\nimport { addDependenciesToPackageJson } from './dependencies.js';\nimport { formatFilesInSubtree } from './format.js';\nimport type { Iac } from './iac.js';\nimport { esmVars } from './module-format.js';\nimport { getNpmScopePrefix } from './npm-scope.js';\nimport { getPackageManagerDisplayCommands } from './pkg-manager.js';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DEPENDENCIES,\n SHARED_CONSTRUCTS_DIR,\n SHARED_CONSTRUCTS_NAME,\n SHARED_TERRAFORM_DIR,\n SHARED_TERRAFORM_NAME,\n} from './shared-constructs-constants.js';\n\nexport { SHARED_CONSTRUCTS_DEPENDENCIES };\n\nimport { terraformProviderVersions, withVersions } from './versions.js';\n\nexport interface SharedConstructsGeneratorOptions {\n iac: Iac;\n}\n\nexport async function sharedConstructsGenerator<\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n options: SharedConstructsGeneratorOptions,\n declaration: D & MustDeclare<typeof SHARED_CONSTRUCTS_DEPENDENCIES, D>,\n) {\n const { iac } = options;\n const npmScopePrefix = getNpmScopePrefix(tree);\n
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport terraformProjectGenerator from '../terraform/project/generator.js';\nimport tsProjectGenerator from '../ts/lib/generator.js';\nimport { addCdkTestGlobalSetup } from './cdk-test-setup.js';\nimport { readAwsNxPluginConfig } from './config/utils.js';\nimport type {\n DependencyDeclaration,\n MustDeclare,\n} from './declared-dependencies.js';\nimport { addDependenciesToPackageJson } from './dependencies.js';\nimport { formatFilesInSubtree } from './format.js';\nimport { updateGitIgnore } from './git.js';\nimport type { Iac } from './iac.js';\nimport { esmVars } from './module-format.js';\nimport { getNpmScopePrefix } from './npm-scope.js';\nimport { getPackageManagerDisplayCommands } from './pkg-manager.js';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DEPENDENCIES,\n SHARED_CONSTRUCTS_DIR,\n SHARED_CONSTRUCTS_NAME,\n SHARED_TERRAFORM_DIR,\n SHARED_TERRAFORM_NAME,\n} from './shared-constructs-constants.js';\n\nexport { SHARED_CONSTRUCTS_DEPENDENCIES };\n\nimport { terraformProviderVersions, withVersions } from './versions.js';\n\nexport interface SharedConstructsGeneratorOptions {\n iac: Iac;\n}\n\nexport async function sharedConstructsGenerator<\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n options: SharedConstructsGeneratorOptions,\n declaration: D & MustDeclare<typeof SHARED_CONSTRUCTS_DEPENDENCIES, D>,\n) {\n const { iac } = options;\n const npmScopePrefix = getNpmScopePrefix(tree);\n ignoreRuntimeConfig(tree);\n\n if (iac === 'cdk') {\n if (\n !tree.exists(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'project.json'),\n )\n ) {\n await tsProjectGenerator(tree, {\n name: SHARED_CONSTRUCTS_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_CONSTRUCTS_DIR,\n });\n tree.delete(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n );\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_CONSTRUCTS_DIR,\n 'src',\n ),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src'),\n {\n npmScopePrefix,\n scopeAlias: npmScopePrefix,\n tags: readAwsNxPluginConfig(tree)?.tags ?? [],\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_CONSTRUCTS_NAME}`,\n name: SHARED_CONSTRUCTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n addDependenciesToPackageJson(\n tree,\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_CONSTRUCTS_DEPENDENCIES\n >,\n ['constructs', 'aws-cdk-lib'],\n ),\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_CONSTRUCTS_DEPENDENCIES\n >,\n ['@types/node'],\n ),\n joinPathFragments(\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n 'package.json',\n ),\n );\n await addCdkTestGlobalSetup(\n tree,\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR),\n );\n await formatFilesInSubtree(tree);\n }\n }\n\n // Handle Terraform provider\n if (iac === 'terraform') {\n const terraformLibPath = joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n );\n if (!tree.exists(joinPathFragments(terraformLibPath, 'project.json'))) {\n await terraformProjectGenerator(tree, {\n name: SHARED_TERRAFORM_NAME,\n directory: joinPathFragments(PACKAGES_DIR, 'common'),\n type: 'library',\n });\n\n // `build` is a no-op orchestration target that produces no files of its\n // own. Terraform writes runtime-config entries into\n // `dist/{projectRoot}/runtime-config` at apply time, and other terraform\n // projects contribute their own entries to the same directory. Without\n // explicit outputs, Nx infers `dist/{projectRoot}` as this target's\n // cached output and, on a cache hit, restores the cached copy over the\n // freshly-applied config — wiping the very values consumers read. Declare\n // no outputs so Nx never treats runtime config as a cacheable artifact.\n updateJson(\n tree,\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'project.json'),\n (projectConfig: ProjectConfiguration) => {\n projectConfig.targets ??= {};\n projectConfig.targets.build ??= {};\n projectConfig.targets.build.outputs = [];\n return projectConfig;\n },\n );\n\n tree.delete(joinPathFragments(terraformLibPath, 'src', 'main.tf'));\n\n // Create the metrics.tf file with empty initial values\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform'),\n terraformLibPath,\n { ...terraformProviderVersions() },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await formatFilesInSubtree(tree);\n }\n }\n}\n\n/**\n * Ignore the root `runtime-config.json`, unless an existing entry already\n * covers it.\n */\nexport const ignoreRuntimeConfig = (tree: Tree) => {\n updateGitIgnore(tree, '.', (patterns) =>\n patterns.some((p) => p.includes('runtime-config.json'))\n ? patterns\n : [...patterns, 'runtime-config.json'],\n );\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","terraformProjectGenerator","tsProjectGenerator","addCdkTestGlobalSetup","readAwsNxPluginConfig","addDependenciesToPackageJson","formatFilesInSubtree","updateGitIgnore","esmVars","getNpmScopePrefix","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_CONSTRUCTS_DEPENDENCIES","SHARED_CONSTRUCTS_DIR","SHARED_CONSTRUCTS_NAME","SHARED_TERRAFORM_DIR","SHARED_TERRAFORM_NAME","terraformProviderVersions","withVersions","sharedConstructsGenerator","tree","options","declaration","iac","npmScopePrefix","ignoreRuntimeConfig","exists","name","directory","subDirectory","delete","dirname","scopeAlias","tags","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","exec","Overwrite","terraformLibPath","type","projectConfig","targets","build","outputs","patterns","some","p","includes"],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import type { IPyDepVersion, ITerraformProviderVersion } from '../versions.js';
|
|
6
|
+
import type { IVersionedDep, LockstepNote } from './lockstep.js';
|
|
7
|
+
/**
|
|
8
|
+
* A pin the version update must not move, why, and what lets it move again.
|
|
9
|
+
*
|
|
10
|
+
* The npm equivalent is a `reject` entry in `.ncurc.cjs`. pip-check-updates
|
|
11
|
+
* has no exclude option and Terraform providers are resolved from the
|
|
12
|
+
* registry, so Python and Terraform pins are held here instead.
|
|
13
|
+
*/
|
|
14
|
+
export interface VersionHold<Name extends IVersionedDep = IVersionedDep> {
|
|
15
|
+
name: Name;
|
|
16
|
+
reason: string;
|
|
17
|
+
liftWhen: string;
|
|
18
|
+
}
|
|
19
|
+
/** Python pins the version update keeps at their current version. */
|
|
20
|
+
export declare const PY_VERSION_HOLDS: readonly VersionHold<IPyDepVersion>[];
|
|
21
|
+
/** Terraform providers the version update keeps at their current version. */
|
|
22
|
+
export declare const TERRAFORM_VERSION_HOLDS: readonly VersionHold<ITerraformProviderVersion>[];
|
|
23
|
+
/**
|
|
24
|
+
* Put each held pin the run proposed moving back to its current version.
|
|
25
|
+
*
|
|
26
|
+
* Mutates `proposed`, which holds versions not yet written anywhere, and
|
|
27
|
+
* returns a note for each pin it held so the reason reaches the update's PR.
|
|
28
|
+
*/
|
|
29
|
+
export declare const holdPinnedVersions: <Name extends IVersionedDep>(holds: readonly VersionHold<Name>[], current: Readonly<Partial<Record<Name, string>>>, proposed: Partial<Record<Name, string>>) => LockstepNote[];
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ /** Python pins the version update keeps at their current version. */ export const PY_VERSION_HOLDS = [
|
|
5
|
+
{
|
|
6
|
+
name: 'ty',
|
|
7
|
+
reason: 'ty is 0.x and its releases add diagnostics that fail the vended Python templates',
|
|
8
|
+
liftWhen: 'a newer ty has been checked against all vended Python templates (run the py-client, py#dynamodb and other Python-typecheck specs with it)'
|
|
9
|
+
}
|
|
10
|
+
];
|
|
11
|
+
/** Terraform providers the version update keeps at their current version. */ export const TERRAFORM_VERSION_HOLDS = [
|
|
12
|
+
{
|
|
13
|
+
name: 'aws',
|
|
14
|
+
reason: 'hashicorp/aws 6.69.0 moved to aws-sdk-go-base/v2 v2.0.0-beta.75, whose bufio.Scanner response logger fails reading aws_cognito_managed_login_branding with "token too long", so the vended Cognito user identity fails apply (terraform-provider-aws#50481)',
|
|
15
|
+
liftWhen: "a hashicorp/aws release includes aws-sdk-go-base#1539 (fixes terraform-provider-aws#50481); check the provider's go.mod for aws-sdk-go-base/v2 > beta.75 or the changelog"
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Put each held pin the run proposed moving back to its current version.
|
|
20
|
+
*
|
|
21
|
+
* Mutates `proposed`, which holds versions not yet written anywhere, and
|
|
22
|
+
* returns a note for each pin it held so the reason reaches the update's PR.
|
|
23
|
+
*/ export const holdPinnedVersions = (holds, current, proposed)=>{
|
|
24
|
+
const notes = [];
|
|
25
|
+
for (const { name, reason, liftWhen } of holds){
|
|
26
|
+
const held = current[name];
|
|
27
|
+
const available = proposed[name];
|
|
28
|
+
if (held === undefined || available === undefined || available === held) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
proposed[name] = held;
|
|
32
|
+
notes.push({
|
|
33
|
+
name,
|
|
34
|
+
note: `${name} held at ${held} (${available} available): ${reason}. Lift when ${liftWhen}`
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
return notes;
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=hold.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-lockstep/hold.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { IPyDepVersion, ITerraformProviderVersion } from '../versions.js';\nimport type { IVersionedDep, LockstepNote } from './lockstep.js';\n\n/**\n * A pin the version update must not move, why, and what lets it move again.\n *\n * The npm equivalent is a `reject` entry in `.ncurc.cjs`. pip-check-updates\n * has no exclude option and Terraform providers are resolved from the\n * registry, so Python and Terraform pins are held here instead.\n */\nexport interface VersionHold<Name extends IVersionedDep = IVersionedDep> {\n name: Name;\n reason: string;\n liftWhen: string;\n}\n\n/** Python pins the version update keeps at their current version. */\nexport const PY_VERSION_HOLDS: readonly VersionHold<IPyDepVersion>[] = [\n {\n name: 'ty',\n reason:\n 'ty is 0.x and its releases add diagnostics that fail the vended Python templates',\n liftWhen:\n 'a newer ty has been checked against all vended Python templates (run the py-client, py#dynamodb and other Python-typecheck specs with it)',\n },\n];\n\n/** Terraform providers the version update keeps at their current version. */\nexport const TERRAFORM_VERSION_HOLDS: readonly VersionHold<ITerraformProviderVersion>[] =\n [\n {\n name: 'aws',\n reason:\n 'hashicorp/aws 6.69.0 moved to aws-sdk-go-base/v2 v2.0.0-beta.75, whose bufio.Scanner response logger fails reading aws_cognito_managed_login_branding with \"token too long\", so the vended Cognito user identity fails apply (terraform-provider-aws#50481)',\n liftWhen:\n \"a hashicorp/aws release includes aws-sdk-go-base#1539 (fixes terraform-provider-aws#50481); check the provider's go.mod for aws-sdk-go-base/v2 > beta.75 or the changelog\",\n },\n ];\n\n/**\n * Put each held pin the run proposed moving back to its current version.\n *\n * Mutates `proposed`, which holds versions not yet written anywhere, and\n * returns a note for each pin it held so the reason reaches the update's PR.\n */\nexport const holdPinnedVersions = <Name extends IVersionedDep>(\n holds: readonly VersionHold<Name>[],\n current: Readonly<Partial<Record<Name, string>>>,\n proposed: Partial<Record<Name, string>>,\n): LockstepNote[] => {\n const notes: LockstepNote[] = [];\n\n for (const { name, reason, liftWhen } of holds) {\n const held = current[name];\n const available = proposed[name];\n if (held === undefined || available === undefined || available === held) {\n continue;\n }\n proposed[name] = held;\n notes.push({\n name,\n note: `${name} held at ${held} (${available} available): ${reason}. Lift when ${liftWhen}`,\n });\n }\n\n return notes;\n};\n"],"names":["PY_VERSION_HOLDS","name","reason","liftWhen","TERRAFORM_VERSION_HOLDS","holdPinnedVersions","holds","current","proposed","notes","held","available","undefined","push","note"],"mappings":"AAAA;;;CAGC,GAiBD,mEAAmE,GACnE,OAAO,MAAMA,mBAA0D;IACrE;QACEC,MAAM;QACNC,QACE;QACFC,UACE;IACJ;CACD,CAAC;AAEF,2EAA2E,GAC3E,OAAO,MAAMC,0BACX;IACE;QACEH,MAAM;QACNC,QACE;QACFC,UACE;IACJ;CACD,CAAC;AAEJ;;;;;CAKC,GACD,OAAO,MAAME,qBAAqB,CAChCC,OACAC,SACAC;IAEA,MAAMC,QAAwB,EAAE;IAEhC,KAAK,MAAM,EAAER,IAAI,EAAEC,MAAM,EAAEC,QAAQ,EAAE,IAAIG,MAAO;QAC9C,MAAMI,OAAOH,OAAO,CAACN,KAAK;QAC1B,MAAMU,YAAYH,QAAQ,CAACP,KAAK;QAChC,IAAIS,SAASE,aAAaD,cAAcC,aAAaD,cAAcD,MAAM;YACvE;QACF;QACAF,QAAQ,CAACP,KAAK,GAAGS;QACjBD,MAAMI,IAAI,CAAC;YACTZ;YACAa,MAAM,GAAGb,KAAK,SAAS,EAAES,KAAK,EAAE,EAAEC,UAAU,aAAa,EAAET,OAAO,YAAY,EAAEC,UAAU;QAC5F;IACF;IAEA,OAAOM;AACT,EAAE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IJavaVersion, IMiseVersion, IPyDepVersion, ITsDepVersion } from '../versions.js';
|
|
1
|
+
import type { IJavaVersion, IMiseVersion, IPyDepVersion, ITerraformProviderVersion, ITsDepVersion } from '../versions.js';
|
|
2
2
|
/** Any dependency a version table pins. */
|
|
3
|
-
export type IVersionedDep = ITsDepVersion | IPyDepVersion | IJavaVersion | IMiseVersion;
|
|
3
|
+
export type IVersionedDep = ITsDepVersion | IPyDepVersion | IJavaVersion | IMiseVersion | ITerraformProviderVersion;
|
|
4
4
|
/** A pin the run deliberately did not take, and why. */
|
|
5
5
|
export interface LockstepNote {
|
|
6
6
|
name: IVersionedDep;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-lockstep/lockstep.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { coerce, compare } from 'semver';\nimport type {\n IJavaVersion,\n IMiseVersion,\n IPyDepVersion,\n ITsDepVersion,\n} from '../versions.js';\n\n/** Any dependency a version table pins. */\nexport type IVersionedDep =\n | ITsDepVersion\n | IPyDepVersion\n | IJavaVersion\n | IMiseVersion;\n\n/** A pin the run deliberately did not take, and why. */\nexport interface LockstepNote {\n name: IVersionedDep;\n note: string;\n}\n\n/** Proposed versions from a run, keyed by dependency name. */\nexport type ProposedVersions = Partial<Record<IVersionedDep, string>>;\n\n/**\n * Dependencies that must move as a unit. At least two, since one pin has nothing\n * to stay in step with.\n */\nexport type LockstepGroup = readonly [\n IVersionedDep,\n IVersionedDep,\n ...IVersionedDep[],\n];\n\n/** The bare version in a pin, whatever range syntax it was written with. */\nconst bare = (version: string): string | undefined =>\n coerce(version, { includePrerelease: true })?.version;\n\n/** The range prefix a pin was written with, so it is preserved. */\nconst prefixOf = (version: string, bareVersion: string): string =>\n version.slice(0, version.indexOf(bareVersion));\n\n/**\n * Hold every member of each group at the lowest version proposed across it, so a\n * group only moves once all of its members can.\n *\n * Mutates the tables, which hold proposed versions not yet written anywhere.\n * Groups the run proposed fewer than two comparable versions for are left alone.\n */\nexport const holdGroupsInLockstep = (\n groups: readonly LockstepGroup[],\n ...tables: readonly ProposedVersions[]\n): LockstepNote[] => {\n const notes: LockstepNote[] = [];\n\n for (const group of groups) {\n const members = group.flatMap((name) => {\n const table = tables.find((candidate) => candidate[name] !== undefined);\n const proposed = table?.[name];\n const version = proposed && bare(proposed);\n return table && proposed && version\n ? [{ name, table, proposed, version }]\n : [];\n });\n if (members.length < 2) continue;\n\n const lowest = members\n .map(({ version }) => version)\n .reduce((min, version) => (compare(version, min) < 0 ? version : min));\n\n for (const { name, table, proposed, version } of members) {\n if (version === lowest) continue;\n const held = `${prefixOf(proposed, version)}${lowest}`;\n table[name] = held;\n notes.push({\n name,\n note: `${name} held at ${held} (${proposed} available): must move in step with ${group\n .filter((other) => other !== name)\n .join(', ')}`,\n });\n }\n }\n\n return notes;\n};\n"],"names":["coerce","compare","bare","version","includePrerelease","prefixOf","bareVersion","slice","indexOf","holdGroupsInLockstep","groups","tables","notes","group","members","flatMap","name","table","find","candidate","undefined","proposed","length","lowest","map","reduce","min","held","push","note","filter","other","join"],"mappings":"AAAA;;;CAGC,GACD,SAASA,MAAM,EAAEC,OAAO,QAAQ,SAAS;
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-lockstep/lockstep.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { coerce, compare } from 'semver';\nimport type {\n IJavaVersion,\n IMiseVersion,\n IPyDepVersion,\n ITerraformProviderVersion,\n ITsDepVersion,\n} from '../versions.js';\n\n/** Any dependency a version table pins. */\nexport type IVersionedDep =\n | ITsDepVersion\n | IPyDepVersion\n | IJavaVersion\n | IMiseVersion\n | ITerraformProviderVersion;\n\n/** A pin the run deliberately did not take, and why. */\nexport interface LockstepNote {\n name: IVersionedDep;\n note: string;\n}\n\n/** Proposed versions from a run, keyed by dependency name. */\nexport type ProposedVersions = Partial<Record<IVersionedDep, string>>;\n\n/**\n * Dependencies that must move as a unit. At least two, since one pin has nothing\n * to stay in step with.\n */\nexport type LockstepGroup = readonly [\n IVersionedDep,\n IVersionedDep,\n ...IVersionedDep[],\n];\n\n/** The bare version in a pin, whatever range syntax it was written with. */\nconst bare = (version: string): string | undefined =>\n coerce(version, { includePrerelease: true })?.version;\n\n/** The range prefix a pin was written with, so it is preserved. */\nconst prefixOf = (version: string, bareVersion: string): string =>\n version.slice(0, version.indexOf(bareVersion));\n\n/**\n * Hold every member of each group at the lowest version proposed across it, so a\n * group only moves once all of its members can.\n *\n * Mutates the tables, which hold proposed versions not yet written anywhere.\n * Groups the run proposed fewer than two comparable versions for are left alone.\n */\nexport const holdGroupsInLockstep = (\n groups: readonly LockstepGroup[],\n ...tables: readonly ProposedVersions[]\n): LockstepNote[] => {\n const notes: LockstepNote[] = [];\n\n for (const group of groups) {\n const members = group.flatMap((name) => {\n const table = tables.find((candidate) => candidate[name] !== undefined);\n const proposed = table?.[name];\n const version = proposed && bare(proposed);\n return table && proposed && version\n ? [{ name, table, proposed, version }]\n : [];\n });\n if (members.length < 2) continue;\n\n const lowest = members\n .map(({ version }) => version)\n .reduce((min, version) => (compare(version, min) < 0 ? version : min));\n\n for (const { name, table, proposed, version } of members) {\n if (version === lowest) continue;\n const held = `${prefixOf(proposed, version)}${lowest}`;\n table[name] = held;\n notes.push({\n name,\n note: `${name} held at ${held} (${proposed} available): must move in step with ${group\n .filter((other) => other !== name)\n .join(', ')}`,\n });\n }\n }\n\n return notes;\n};\n"],"names":["coerce","compare","bare","version","includePrerelease","prefixOf","bareVersion","slice","indexOf","holdGroupsInLockstep","groups","tables","notes","group","members","flatMap","name","table","find","candidate","undefined","proposed","length","lowest","map","reduce","min","held","push","note","filter","other","join"],"mappings":"AAAA;;;CAGC,GACD,SAASA,MAAM,EAAEC,OAAO,QAAQ,SAAS;AAoCzC,0EAA0E,GAC1E,MAAMC,OAAO,CAACC,UACZH,OAAOG,SAAS;QAAEC,mBAAmB;IAAK,IAAID;AAEhD,iEAAiE,GACjE,MAAME,WAAW,CAACF,SAAiBG,cACjCH,QAAQI,KAAK,CAAC,GAAGJ,QAAQK,OAAO,CAACF;AAEnC;;;;;;CAMC,GACD,OAAO,MAAMG,uBAAuB,CAClCC,QACA,GAAGC;IAEH,MAAMC,QAAwB,EAAE;IAEhC,KAAK,MAAMC,SAASH,OAAQ;QAC1B,MAAMI,UAAUD,MAAME,OAAO,CAAC,CAACC;YAC7B,MAAMC,QAAQN,OAAOO,IAAI,CAAC,CAACC,YAAcA,SAAS,CAACH,KAAK,KAAKI;YAC7D,MAAMC,WAAWJ,OAAO,CAACD,KAAK;YAC9B,MAAMb,UAAUkB,YAAYnB,KAAKmB;YACjC,OAAOJ,SAASI,YAAYlB,UACxB;gBAAC;oBAAEa;oBAAMC;oBAAOI;oBAAUlB;gBAAQ;aAAE,GACpC,EAAE;QACR;QACA,IAAIW,QAAQQ,MAAM,GAAG,GAAG;QAExB,MAAMC,SAAST,QACZU,GAAG,CAAC,CAAC,EAAErB,OAAO,EAAE,GAAKA,SACrBsB,MAAM,CAAC,CAACC,KAAKvB,UAAaF,QAAQE,SAASuB,OAAO,IAAIvB,UAAUuB;QAEnE,KAAK,MAAM,EAAEV,IAAI,EAAEC,KAAK,EAAEI,QAAQ,EAAElB,OAAO,EAAE,IAAIW,QAAS;YACxD,IAAIX,YAAYoB,QAAQ;YACxB,MAAMI,OAAO,GAAGtB,SAASgB,UAAUlB,WAAWoB,QAAQ;YACtDN,KAAK,CAACD,KAAK,GAAGW;YACdf,MAAMgB,IAAI,CAAC;gBACTZ;gBACAa,MAAM,GAAGb,KAAK,SAAS,EAAEW,KAAK,EAAE,EAAEN,SAAS,oCAAoC,EAAER,MAC9EiB,MAAM,CAAC,CAACC,QAAUA,UAAUf,MAC5BgB,IAAI,CAAC,OAAO;YACjB;QACF;IACF;IAEA,OAAOpB;AACT,EAAE"}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -9,46 +9,47 @@ import { type DeclaredPy, type DeclaredTs, type DependencyDeclaration } from './
|
|
|
9
9
|
export declare const TS_VERSIONS: {
|
|
10
10
|
readonly '@a2a-js/sdk': "0.3.14";
|
|
11
11
|
readonly '@aws/aws-distro-opentelemetry-node-autoinstrumentation': "0.13.0";
|
|
12
|
-
readonly '@opentelemetry/propagator-jaeger': "2.
|
|
12
|
+
readonly '@opentelemetry/propagator-jaeger': "2.12.0";
|
|
13
13
|
readonly minimatch: "10.2.6";
|
|
14
14
|
readonly 'deepmerge-ts': "8.0.2";
|
|
15
|
-
readonly mysql2: "3.24.
|
|
16
|
-
readonly '@aws-sdk/client-dynamodb': "3.
|
|
17
|
-
readonly '@aws-sdk/client-api-gateway': "3.
|
|
18
|
-
readonly '@aws-sdk/client-iam': "3.
|
|
19
|
-
readonly '@aws-sdk/client-bedrock-agentcore': "3.
|
|
20
|
-
readonly '@aws-sdk/client-bedrock-runtime': "3.
|
|
21
|
-
readonly '@aws-sdk/client-s3': "3.
|
|
22
|
-
readonly '@aws-sdk/client-sts': "3.
|
|
23
|
-
readonly '@aws-sdk/client-cognito-identity-provider': "3.
|
|
24
|
-
readonly '@aws-sdk/credential-providers': "3.
|
|
25
|
-
readonly '@aws-sdk/credential-provider-cognito-identity': "3.972.
|
|
26
|
-
readonly '@aws-sdk/client-secrets-manager': "3.
|
|
27
|
-
readonly '@aws-sdk/rds-signer': "3.
|
|
28
|
-
readonly '@smithy/server-apigateway': "0.3.
|
|
29
|
-
readonly '@smithy/server-node': "0.3.
|
|
30
|
-
readonly '@aws-lambda-powertools/logger': "2.
|
|
31
|
-
readonly '@aws-lambda-powertools/metrics': "2.
|
|
32
|
-
readonly '@aws-lambda-powertools/parameters': "2.
|
|
33
|
-
readonly '@aws-lambda-powertools/tracer': "2.
|
|
34
|
-
readonly '@aws-lambda-powertools/parser': "2.
|
|
35
|
-
readonly '@aws-sdk/client-appconfigdata': "3.
|
|
15
|
+
readonly mysql2: "3.24.6";
|
|
16
|
+
readonly '@aws-sdk/client-dynamodb': "3.1151.0";
|
|
17
|
+
readonly '@aws-sdk/client-api-gateway': "3.1151.0";
|
|
18
|
+
readonly '@aws-sdk/client-iam': "3.1151.0";
|
|
19
|
+
readonly '@aws-sdk/client-bedrock-agentcore': "3.1151.0";
|
|
20
|
+
readonly '@aws-sdk/client-bedrock-runtime': "3.1151.0";
|
|
21
|
+
readonly '@aws-sdk/client-s3': "3.1151.0";
|
|
22
|
+
readonly '@aws-sdk/client-sts': "3.1151.0";
|
|
23
|
+
readonly '@aws-sdk/client-cognito-identity-provider': "3.1151.0";
|
|
24
|
+
readonly '@aws-sdk/credential-providers': "3.1151.0";
|
|
25
|
+
readonly '@aws-sdk/credential-provider-cognito-identity': "3.972.73";
|
|
26
|
+
readonly '@aws-sdk/client-secrets-manager': "3.1151.0";
|
|
27
|
+
readonly '@aws-sdk/rds-signer': "3.1151.0";
|
|
28
|
+
readonly '@smithy/server-apigateway': "0.3.4";
|
|
29
|
+
readonly '@smithy/server-node': "0.3.4";
|
|
30
|
+
readonly '@aws-lambda-powertools/logger': "2.36.0";
|
|
31
|
+
readonly '@aws-lambda-powertools/metrics': "2.36.0";
|
|
32
|
+
readonly '@aws-lambda-powertools/parameters': "2.36.0";
|
|
33
|
+
readonly '@aws-lambda-powertools/tracer': "2.36.0";
|
|
34
|
+
readonly '@aws-lambda-powertools/parser': "2.36.0";
|
|
35
|
+
readonly '@aws-sdk/client-appconfigdata': "3.1151.0";
|
|
36
36
|
readonly '@middy/core': "7.9.2";
|
|
37
37
|
readonly '@nxlv/python': "23.2.1";
|
|
38
38
|
readonly '@nx-extend/terraform': "10.4.1";
|
|
39
|
-
readonly nx: "23.
|
|
40
|
-
readonly '@nx/devkit': "23.
|
|
41
|
-
readonly '@nx/js': "23.
|
|
42
|
-
readonly '@nx/react': "23.
|
|
43
|
-
readonly '@nx/vite': "23.
|
|
44
|
-
readonly '@nx/vitest': "23.
|
|
45
|
-
readonly '@nx/workspace': "23.
|
|
46
|
-
readonly 'create-nx-workspace': "23.
|
|
39
|
+
readonly nx: "23.3.0";
|
|
40
|
+
readonly '@nx/devkit': "23.3.0";
|
|
41
|
+
readonly '@nx/js': "23.3.0";
|
|
42
|
+
readonly '@nx/react': "23.3.0";
|
|
43
|
+
readonly '@nx/vite': "23.3.0";
|
|
44
|
+
readonly '@nx/vitest': "23.3.0";
|
|
45
|
+
readonly '@nx/workspace': "23.3.0";
|
|
46
|
+
readonly 'create-nx-workspace': "23.3.0";
|
|
47
47
|
readonly '@swc-node/register': "1.12.1";
|
|
48
|
-
readonly '@swc/core': "1.16.
|
|
49
|
-
readonly '@modelcontextprotocol/sdk': "1.32.
|
|
50
|
-
readonly '@modelcontextprotocol/
|
|
51
|
-
readonly '@
|
|
48
|
+
readonly '@swc/core': "1.16.18";
|
|
49
|
+
readonly '@modelcontextprotocol/sdk': "1.32.1";
|
|
50
|
+
readonly '@modelcontextprotocol/client': "2.3.1";
|
|
51
|
+
readonly '@modelcontextprotocol/inspector': "2.10.1";
|
|
52
|
+
readonly '@ag-ui/a2ui-toolkit': "0.0.5";
|
|
52
53
|
readonly '@ag-ui/aws-strands': "0.3.0";
|
|
53
54
|
readonly '@ag-ui/client': "0.0.59";
|
|
54
55
|
readonly '@ag-ui/core': "0.0.59";
|
|
@@ -56,22 +57,22 @@ export declare const TS_VERSIONS: {
|
|
|
56
57
|
readonly 'agent-chat-cli': "0.3.0";
|
|
57
58
|
readonly '@copilotkit/react-core': "1.74.0";
|
|
58
59
|
readonly rxjs: "7.8.2";
|
|
59
|
-
readonly '@strands-agents/sdk': "1.
|
|
60
|
-
readonly '@tanstack/react-router': "1.170.
|
|
61
|
-
readonly '@tanstack/router-plugin': "1.168.
|
|
62
|
-
readonly '@tanstack/router-generator': "1.167.
|
|
60
|
+
readonly '@strands-agents/sdk': "1.20.0";
|
|
61
|
+
readonly '@tanstack/react-router': "1.170.44";
|
|
62
|
+
readonly '@tanstack/router-plugin': "1.168.45";
|
|
63
|
+
readonly '@tanstack/router-generator': "1.167.43";
|
|
63
64
|
readonly '@tanstack/virtual-file-routes': "1.162.0";
|
|
64
65
|
readonly '@tanstack/router-utils': "1.162.3";
|
|
65
|
-
readonly '@cloudscape-design/board-components': "3.0.
|
|
66
|
-
readonly '@cloudscape-design/chat-components': "1.0.
|
|
67
|
-
readonly '@cloudscape-design/components': "3.0.
|
|
66
|
+
readonly '@cloudscape-design/board-components': "3.0.238";
|
|
67
|
+
readonly '@cloudscape-design/chat-components': "1.0.179";
|
|
68
|
+
readonly '@cloudscape-design/components': "3.0.1400";
|
|
68
69
|
readonly '@cloudscape-design/global-styles': "1.0.71";
|
|
69
|
-
readonly '@tanstack/react-query': "5.104.
|
|
70
|
-
readonly '@tanstack/react-query-devtools': "5.104.
|
|
70
|
+
readonly '@tanstack/react-query': "5.104.2";
|
|
71
|
+
readonly '@tanstack/react-query-devtools': "5.104.2";
|
|
71
72
|
readonly '@trpc/tanstack-react-query': "11.19.0";
|
|
72
73
|
readonly '@trpc/client': "11.19.0";
|
|
73
74
|
readonly '@trpc/server': "11.19.0";
|
|
74
|
-
readonly '@types/node': "26.6.
|
|
75
|
+
readonly '@types/node': "26.6.5";
|
|
75
76
|
readonly '@types/aws-lambda': "8.10.164";
|
|
76
77
|
readonly '@types/cors': "2.8.19";
|
|
77
78
|
readonly '@types/pg': "8.23.1";
|
|
@@ -84,12 +85,12 @@ export declare const TS_VERSIONS: {
|
|
|
84
85
|
readonly '@vitest/coverage-v8': "4.1.11";
|
|
85
86
|
readonly '@vitest/ui': "4.1.11";
|
|
86
87
|
readonly '@astrojs/react': "6.0.6";
|
|
87
|
-
readonly '@astrojs/starlight': "0.42.
|
|
88
|
-
readonly astro: "7.3.
|
|
88
|
+
readonly '@astrojs/starlight': "0.42.6";
|
|
89
|
+
readonly astro: "7.3.8";
|
|
89
90
|
readonly cookie: "2.0.1";
|
|
90
91
|
readonly aws4fetch: "1.0.20";
|
|
91
|
-
readonly 'aws-cdk': "2.
|
|
92
|
-
readonly 'aws-cdk-lib': "2.
|
|
92
|
+
readonly 'aws-cdk': "2.1145.0";
|
|
93
|
+
readonly 'aws-cdk-lib': "2.273.0";
|
|
93
94
|
readonly 'aws-xray-sdk-core': "3.12.0";
|
|
94
95
|
readonly constructs: "10.8.1";
|
|
95
96
|
readonly cors: "2.8.6";
|
|
@@ -107,39 +108,39 @@ export declare const TS_VERSIONS: {
|
|
|
107
108
|
readonly '@prisma/client': "7.10.0";
|
|
108
109
|
readonly ejs: "6.0.1";
|
|
109
110
|
readonly '@types/ejs': "3.1.5";
|
|
110
|
-
readonly express: "5.
|
|
111
|
+
readonly express: "5.3.0";
|
|
111
112
|
readonly 'fast-glob': "3.3.3";
|
|
112
113
|
readonly husky: "9.1.7";
|
|
113
114
|
readonly 'fs-extra': "11.4.1";
|
|
114
115
|
readonly '@types/fs-extra': "11.0.4";
|
|
115
116
|
readonly mariadb: "3.5.4";
|
|
116
|
-
readonly mise: "2026.10.
|
|
117
|
+
readonly mise: "2026.10.9";
|
|
117
118
|
readonly npm: "12.2.0";
|
|
118
|
-
readonly 'npm-check-updates': "23.1.
|
|
119
|
+
readonly 'npm-check-updates': "23.1.1";
|
|
119
120
|
readonly 'oidc-client-ts': "3.5.0";
|
|
120
121
|
readonly pg: "8.23.1";
|
|
121
122
|
readonly prisma: "7.10.0";
|
|
122
123
|
readonly 'react-oidc-context': "3.3.1";
|
|
123
124
|
readonly react: "19.3.0";
|
|
124
125
|
readonly 'react-dom': "19.3.0";
|
|
125
|
-
readonly rolldown: "1.2.
|
|
126
|
-
readonly 'rolldown-plugin-dts': "0.28.
|
|
126
|
+
readonly rolldown: "1.2.13";
|
|
127
|
+
readonly 'rolldown-plugin-dts': "0.28.8";
|
|
127
128
|
readonly shx: "0.4.0";
|
|
128
129
|
readonly 'simple-git': "4.0.2";
|
|
129
130
|
readonly 'source-map-support': "0.5.21";
|
|
130
|
-
readonly 'starlight-blog': "0.30.
|
|
131
|
+
readonly 'starlight-blog': "0.30.1";
|
|
131
132
|
readonly tailwindcss: "4.3.3";
|
|
132
133
|
readonly '@tailwindcss/vite': "4.3.3";
|
|
133
134
|
readonly tsx: "4.23.15";
|
|
134
|
-
readonly 'lucide-react': "1.
|
|
135
|
-
readonly 'radix-ui': "1.
|
|
136
|
-
readonly shadcn: "4.21.
|
|
135
|
+
readonly 'lucide-react': "1.56.0";
|
|
136
|
+
readonly 'radix-ui': "1.8.1";
|
|
137
|
+
readonly shadcn: "4.21.4";
|
|
137
138
|
readonly 'tw-animate-css': "1.4.0";
|
|
138
|
-
readonly vite: "8.3.
|
|
139
|
+
readonly vite: "8.3.4";
|
|
139
140
|
readonly typescript: "6.0.3";
|
|
140
141
|
readonly vitest: "4.1.11";
|
|
141
142
|
readonly jsdom: "29.1.1";
|
|
142
|
-
readonly zod: "4.6.
|
|
143
|
+
readonly zod: "4.6.7";
|
|
143
144
|
readonly ws: "8.22.0";
|
|
144
145
|
};
|
|
145
146
|
export type ITsDepVersion = keyof typeof TS_VERSIONS;
|
|
@@ -170,13 +171,13 @@ export declare const NX_PACKAGES: readonly ["nx", "@nx/devkit", "@nx/js", "@nx/r
|
|
|
170
171
|
* The nx version the plugin is built against, and the single source of truth
|
|
171
172
|
* for every place a workspace's nx is pinned.
|
|
172
173
|
*/
|
|
173
|
-
export declare const NX_VERSION: "23.
|
|
174
|
+
export declare const NX_VERSION: "23.3.0";
|
|
174
175
|
/**
|
|
175
176
|
* Versions for Python dependencies added by generators
|
|
176
177
|
*/
|
|
177
178
|
export declare const PY_VERSIONS: {
|
|
178
179
|
readonly 'a2a-sdk': "==0.3.26";
|
|
179
|
-
readonly 'ag-ui-langgraph': "==0.0.
|
|
180
|
+
readonly 'ag-ui-langgraph': "==0.0.47";
|
|
180
181
|
readonly 'ag-ui-protocol': "==0.1.22";
|
|
181
182
|
readonly 'ag-ui-strands': "==0.4.1";
|
|
182
183
|
readonly aiosqlite: "==0.22.1";
|
|
@@ -184,33 +185,33 @@ export declare const PY_VERSIONS: {
|
|
|
184
185
|
readonly 'aws-lambda-powertools[tracer]': "==3.35.0";
|
|
185
186
|
readonly 'aws-lambda-powertools[parser]': "==3.35.0";
|
|
186
187
|
readonly 'aws-opentelemetry-distro': "==0.21.0";
|
|
187
|
-
readonly 'bedrock-agentcore': "==1.24.
|
|
188
|
-
readonly boto3: "==1.43.
|
|
189
|
-
readonly checkov: "==3.3.
|
|
190
|
-
readonly fastapi: "==0.
|
|
191
|
-
readonly 'fastapi[standard]': "==0.
|
|
188
|
+
readonly 'bedrock-agentcore': "==1.24.1";
|
|
189
|
+
readonly boto3: "==1.43.113";
|
|
190
|
+
readonly checkov: "==3.3.29";
|
|
191
|
+
readonly fastapi: "==0.143.1";
|
|
192
|
+
readonly 'fastapi[standard]': "==0.143.1";
|
|
192
193
|
readonly httpx: "==0.28.1";
|
|
193
|
-
readonly langchain: "==1.4.
|
|
194
|
-
readonly 'langchain-aws': "==1.8.
|
|
194
|
+
readonly langchain: "==1.4.6";
|
|
195
|
+
readonly 'langchain-aws': "==1.8.2";
|
|
195
196
|
readonly 'langchain-mcp-adapters': "==0.3.2";
|
|
196
|
-
readonly langgraph: "==1.2.
|
|
197
|
-
readonly 'langgraph-checkpoint-aws': "==1.2.
|
|
198
|
-
readonly 'langgraph-checkpoint-sqlite': "==3.1.
|
|
197
|
+
readonly langgraph: "==1.2.15";
|
|
198
|
+
readonly 'langgraph-checkpoint-aws': "==1.2.5";
|
|
199
|
+
readonly 'langgraph-checkpoint-sqlite': "==3.1.2";
|
|
199
200
|
readonly mcp: "==1.28.1";
|
|
200
201
|
readonly 'pip-check-updates': "==0.29.0";
|
|
201
202
|
readonly 'pip-licenses': "==5.5.5";
|
|
202
|
-
readonly pydantic: "==2.
|
|
203
|
-
readonly ruff: "==0.
|
|
204
|
-
readonly 'strands-agents': "==1.
|
|
205
|
-
readonly 'strands-agents[a2a]': "==1.
|
|
203
|
+
readonly pydantic: "==2.14.1";
|
|
204
|
+
readonly ruff: "==0.17.0";
|
|
205
|
+
readonly 'strands-agents': "==1.60.0";
|
|
206
|
+
readonly 'strands-agents[a2a]': "==1.60.0";
|
|
206
207
|
readonly 'strands-agents-tools': "==0.8.9";
|
|
207
|
-
readonly ty: "==0.0.
|
|
208
|
+
readonly ty: "==0.0.87";
|
|
208
209
|
readonly pynamodb: "==6.1.0";
|
|
209
210
|
readonly uvicorn: "==0.54.0";
|
|
210
|
-
readonly sqlmodel: "==0.0.
|
|
211
|
+
readonly sqlmodel: "==0.0.48";
|
|
211
212
|
readonly alembic: "==1.20.0";
|
|
212
213
|
readonly aiomysql: "==0.3.2";
|
|
213
|
-
readonly asyncpg: "==0.
|
|
214
|
+
readonly asyncpg: "==0.32.0";
|
|
214
215
|
readonly greenlet: "==3.5.6";
|
|
215
216
|
};
|
|
216
217
|
export type IPyDepVersion = keyof typeof PY_VERSIONS;
|
|
@@ -363,7 +364,7 @@ export declare const terraformLambdaRuntimeVars: () => {
|
|
|
363
364
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
|
364
365
|
*/
|
|
365
366
|
export declare const TERRAFORM_VERSIONS: {
|
|
366
|
-
readonly aws: "6.
|
|
367
|
+
readonly aws: "6.68.0";
|
|
367
368
|
readonly random: "3.9.1";
|
|
368
369
|
readonly null: "3.3.2";
|
|
369
370
|
readonly archive: "2.8.1";
|
|
@@ -377,7 +378,7 @@ export type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;
|
|
|
377
378
|
* generated `.tf` templates (e.g. `version = "<%- awsProviderVersion %>"`)
|
|
378
379
|
*/
|
|
379
380
|
export declare const terraformProviderVersions: () => {
|
|
380
|
-
awsProviderVersion: "6.
|
|
381
|
+
awsProviderVersion: "6.68.0";
|
|
381
382
|
randomProviderVersion: "3.9.1";
|
|
382
383
|
nullProviderVersion: "3.3.2";
|
|
383
384
|
archiveProviderVersion: "2.8.1";
|