@aws/nx-plugin 1.0.0-rc.37 → 1.0.0-rc.39
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/generators.json +7 -0
- package/package.json +1 -1
- package/src/init/generator.d.ts +18 -0
- package/src/init/generator.js +35 -0
- package/src/init/generator.js.map +1 -0
- package/src/init/schema.d.js +6 -0
- package/src/init/schema.d.js.map +1 -0
- package/src/init/schema.d.ts +16 -0
- package/src/init/schema.json +35 -0
- package/src/mcp-server/generator-info.js +27 -13
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.js +16 -1
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/server.js +2 -0
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
- package/src/mcp-server/tools/add-to-existing-project.js +36 -0
- package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
- package/src/mcp-server/tools/general-guidance.d.ts +1 -1
- package/src/mcp-server/tools/general-guidance.js +1 -0
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +3 -0
- package/src/preset/generator.js +19 -129
- package/src/preset/generator.js.map +1 -1
- package/src/py/agent/files/deploy/Dockerfile.template +1 -1
- package/src/py/agent/generator.js +13 -2
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/mcp-server/files/deploy/Dockerfile.template +1 -1
- package/src/py/mcp-server/generator.js +13 -2
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/rdb/generator.js +11 -0
- package/src/py/rdb/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +4 -1
- package/src/ts/agent/files/deploy/Dockerfile.template +4 -1
- package/src/ts/agent/generator.js +13 -1
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/lib/ts-project-utils.js +0 -7
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/mcp-server/files/Dockerfile.template +4 -1
- package/src/ts/mcp-server/generator.js +14 -2
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +8 -1
- package/src/ts/rdb/files/Dockerfile.template +8 -1
- package/src/ts/rdb/generator.js +11 -0
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/utils/base-tsconfig.d.ts +30 -0
- package/src/utils/base-tsconfig.js +32 -0
- package/src/utils/base-tsconfig.js.map +1 -0
- package/src/utils/commands.d.ts +9 -2
- package/src/utils/commands.js +19 -9
- package/src/utils/commands.js.map +1 -1
- package/src/utils/docker.d.ts +44 -0
- package/src/utils/docker.js +81 -0
- package/src/utils/docker.js.map +1 -0
- package/src/utils/init.d.ts +53 -0
- package/src/utils/init.js +251 -0
- package/src/utils/init.js.map +1 -0
- package/src/utils/versions.d.ts +18 -1
- package/src/utils/versions.js +16 -0
- package/src/utils/versions.js.map +1 -1
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import { addDependenciesToPackageJson, detectPackageManager, generateFiles, joinPathFragments, OverwriteStrategy, readNxJson, updateJson, updateNxJson } from "@nx/devkit";
|
|
5
|
+
import { initGenerator } from "@nx/js";
|
|
6
|
+
import yaml from "js-yaml";
|
|
7
|
+
import { readModulePackageJson } from "nx/src/utils/package-json";
|
|
8
|
+
import GeneratorsJson from "../../generators.json" with {
|
|
9
|
+
type: 'json'
|
|
10
|
+
};
|
|
11
|
+
import { SYNC_GENERATOR_NAME as TS_SYNC_GENERATOR_NAME } from "../ts/sync/generator.js";
|
|
12
|
+
import { BASE_TSCONFIG_COMPILER_OPTIONS } from "./base-tsconfig.js";
|
|
13
|
+
import { ensureAwsNxPluginConfig, updateAwsNxPluginConfig } from "./config/utils.js";
|
|
14
|
+
import { inferContainers } from "./containers.js";
|
|
15
|
+
import { DEFAULT_BIOME_CONFIG } from "./format.js";
|
|
16
|
+
import { configureMcpServers } from "./mcp.js";
|
|
17
|
+
import { getNpmScope } from "./npm-scope.js";
|
|
18
|
+
import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
|
|
19
|
+
import { withVersions } from "./versions.js";
|
|
20
|
+
const WORKSPACES = [
|
|
21
|
+
'packages/*'
|
|
22
|
+
];
|
|
23
|
+
const NX_TYPESCRIPT_SYNC_GENERATOR = '@nx/js:typescript-sync';
|
|
24
|
+
// Built dependencies whose install scripts the generated workspace trusts.
|
|
25
|
+
// `onlyBuiltDependencies` is the pnpm 10 key (silently ignored by pnpm 11);
|
|
26
|
+
// pnpm 11 reads `allowBuilds` instead. Any dep NOT in this allowlist will
|
|
27
|
+
// have its install scripts skipped with a warning — matching pnpm 10's
|
|
28
|
+
// default behaviour. The user can opt-in later via `pnpm approve-builds`.
|
|
29
|
+
export const PNPM_BUILT_DEPENDENCIES = [
|
|
30
|
+
'@swc/core',
|
|
31
|
+
'esbuild',
|
|
32
|
+
'nx',
|
|
33
|
+
'sharp'
|
|
34
|
+
];
|
|
35
|
+
/**
|
|
36
|
+
* Add or repair the pnpm `allowBuilds` / `onlyBuiltDependencies` allowlist for
|
|
37
|
+
* the workspace's `packages` globs, without clobbering any packages the user
|
|
38
|
+
* has already declared.
|
|
39
|
+
*
|
|
40
|
+
* A workspace not created by the preset commonly has either no
|
|
41
|
+
* `pnpm-workspace.yaml`, one missing the `packages` globs, or one carrying the
|
|
42
|
+
* broken `set this to true or false` placeholder pnpm writes when it skips a
|
|
43
|
+
* build script. This makes the file self-consistent so the first generator's
|
|
44
|
+
* install doesn't fail with `ERR_PNPM_IGNORED_BUILDS`.
|
|
45
|
+
*/ const setUpPnpmWorkspace = (tree)=>{
|
|
46
|
+
const existing = tree.exists('pnpm-workspace.yaml') ? yaml.load(tree.read('pnpm-workspace.yaml', 'utf-8') ?? '') ?? {} : {};
|
|
47
|
+
// Preserve any packages globs the user already has, ensuring ours are present.
|
|
48
|
+
const packages = Array.from(new Set([
|
|
49
|
+
...existing.packages ?? [],
|
|
50
|
+
...WORKSPACES
|
|
51
|
+
]));
|
|
52
|
+
const allowBuilds = {
|
|
53
|
+
...typeof existing.allowBuilds === 'object' && existing.allowBuilds ? existing.allowBuilds : {},
|
|
54
|
+
// Overwrite any non-boolean (e.g. the "set this to true or false"
|
|
55
|
+
// placeholder) with an explicit true for the deps we trust.
|
|
56
|
+
...Object.fromEntries(PNPM_BUILT_DEPENDENCIES.map((dep)=>[
|
|
57
|
+
dep,
|
|
58
|
+
true
|
|
59
|
+
]))
|
|
60
|
+
};
|
|
61
|
+
tree.write('pnpm-workspace.yaml', yaml.dump({
|
|
62
|
+
...existing,
|
|
63
|
+
packages,
|
|
64
|
+
allowBuilds,
|
|
65
|
+
onlyBuiltDependencies: PNPM_BUILT_DEPENDENCIES
|
|
66
|
+
}, {
|
|
67
|
+
quotingType: "'"
|
|
68
|
+
}));
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Configure the workspace's package manager for a monorepo layout.
|
|
72
|
+
*
|
|
73
|
+
* pnpm workspaces are declared in `pnpm-workspace.yaml`; every other package
|
|
74
|
+
* manager reads the `workspaces` field of the root `package.json`.
|
|
75
|
+
*/ const setUpWorkspaces = (tree)=>{
|
|
76
|
+
if (detectPackageManager() === 'pnpm') {
|
|
77
|
+
setUpPnpmWorkspace(tree);
|
|
78
|
+
} else {
|
|
79
|
+
updateJson(tree, 'package.json', (json)=>({
|
|
80
|
+
...json,
|
|
81
|
+
workspaces: Array.from(new Set([
|
|
82
|
+
...json.workspaces ?? [],
|
|
83
|
+
...WORKSPACES
|
|
84
|
+
]))
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Ensure the workspace has a `tsconfig.base.json`.
|
|
90
|
+
*
|
|
91
|
+
* `@nx/js` `initGenerator` (with `addTsPlugin`) normally creates this, but it
|
|
92
|
+
* short-circuits when the workspace already has a root `tsconfig.json` — in
|
|
93
|
+
* which case no base file is written and the next project generator fails with
|
|
94
|
+
* `Cannot find tsconfig.base.json`. So we create a compatible one when it's
|
|
95
|
+
* absent. An existing base is left untouched: the user may have tuned it, and
|
|
96
|
+
* rewriting shared compiler options can break other projects (see the
|
|
97
|
+
* "add to an existing workspace" guide).
|
|
98
|
+
*/ const ensureBaseTsConfig = (tree)=>{
|
|
99
|
+
if (tree.exists('tsconfig.base.json')) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
tree.write('tsconfig.base.json', JSON.stringify({
|
|
103
|
+
compilerOptions: {
|
|
104
|
+
...BASE_TSCONFIG_COMPILER_OPTIONS,
|
|
105
|
+
customConditions: [
|
|
106
|
+
getNpmScope(tree)
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}, null, 2));
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* Ensure the workspace has a root `tsconfig.json`.
|
|
113
|
+
*
|
|
114
|
+
* Nx's `@nx/js:typescript-sync` generator hard-fails with
|
|
115
|
+
* `Missing root "tsconfig.json"` when it's absent. The plugin's TypeScript
|
|
116
|
+
* projects reference each other via this file, so we guarantee a minimal one
|
|
117
|
+
* exists (sync populates its `references`).
|
|
118
|
+
*/ const ensureRootTsConfig = (tree)=>{
|
|
119
|
+
if (tree.exists('tsconfig.json')) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
tree.write('tsconfig.json', JSON.stringify({
|
|
123
|
+
extends: './tsconfig.base.json',
|
|
124
|
+
files: [],
|
|
125
|
+
references: []
|
|
126
|
+
}, null, 2));
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Transform an Nx workspace into one ready to run `@aws/nx-plugin` generators.
|
|
130
|
+
*
|
|
131
|
+
* This is the deterministic core shared by the workspace preset and the `init`
|
|
132
|
+
* generator. It is safe to re-run: every step is idempotent (config merges,
|
|
133
|
+
* keyed nx.json / package.json entries, create-if-missing files), so running
|
|
134
|
+
* it against an already-initialised workspace is a no-op.
|
|
135
|
+
*
|
|
136
|
+
* It preserves the workspace's module format: the root package.json `type`
|
|
137
|
+
* field is owned by the preset (written from its `--module` option) and left
|
|
138
|
+
* untouched here. It does NOT rewrite an existing `tsconfig.base.json`'s
|
|
139
|
+
* compiler options, migrate a workspace's package manager, or restructure
|
|
140
|
+
* existing projects — those are decisions for the user (see the "add to an
|
|
141
|
+
* existing workspace" guide).
|
|
142
|
+
*/ export const applyWorkspaceInit = async (tree, { iac, containers, mcp, readmeOverwriteStrategy = OverwriteStrategy.KeepExisting, overwriteScripts = false })=>{
|
|
143
|
+
const resolvedContainers = !containers || containers === 'infer' ? inferContainers() : containers;
|
|
144
|
+
// Write IaC provider and container engine to plugin config
|
|
145
|
+
await ensureAwsNxPluginConfig(tree);
|
|
146
|
+
await updateAwsNxPluginConfig(tree, {
|
|
147
|
+
iac: {
|
|
148
|
+
provider: iac
|
|
149
|
+
},
|
|
150
|
+
containers: {
|
|
151
|
+
engine: resolvedContainers
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
// Set up the TypeScript plugin, base tsconfig, formatter etc. `@nx/js`
|
|
155
|
+
// creates `tsconfig.base.json` when absent, but skips it when a root
|
|
156
|
+
// `tsconfig.json` already exists — so we ensure both explicitly below.
|
|
157
|
+
await initGenerator(tree, {
|
|
158
|
+
formatter: 'none',
|
|
159
|
+
addTsPlugin: true
|
|
160
|
+
});
|
|
161
|
+
ensureBaseTsConfig(tree);
|
|
162
|
+
ensureRootTsConfig(tree);
|
|
163
|
+
setUpWorkspaces(tree);
|
|
164
|
+
const nxJson = readNxJson(tree);
|
|
165
|
+
updateNxJson(tree, {
|
|
166
|
+
...nxJson,
|
|
167
|
+
// Preserve an explicit analytics choice in an existing workspace.
|
|
168
|
+
analytics: nxJson.analytics ?? false,
|
|
169
|
+
targetDefaults: {
|
|
170
|
+
...nxJson.targetDefaults,
|
|
171
|
+
compile: {
|
|
172
|
+
...nxJson.targetDefaults?.compile,
|
|
173
|
+
syncGenerators: [
|
|
174
|
+
...(nxJson.targetDefaults?.compile?.syncGenerators ?? []).filter((g)=>![
|
|
175
|
+
TS_SYNC_GENERATOR_NAME,
|
|
176
|
+
NX_TYPESCRIPT_SYNC_GENERATOR
|
|
177
|
+
].includes(g)),
|
|
178
|
+
NX_TYPESCRIPT_SYNC_GENERATOR,
|
|
179
|
+
TS_SYNC_GENERATOR_NAME
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
const CONVENIENCE_SCRIPTS = {
|
|
185
|
+
dev: 'nx run-many --target dev',
|
|
186
|
+
build: 'nx run-many --target build',
|
|
187
|
+
lint: 'nx run-many --target lint --configuration=fix',
|
|
188
|
+
test: 'nx run-many --target test --all',
|
|
189
|
+
'build:skip-lint': 'nx run-many --target build --configuration=skip-lint',
|
|
190
|
+
'build:all': 'nx run-many --target build --all',
|
|
191
|
+
'affected:all': 'nx affected --target build'
|
|
192
|
+
};
|
|
193
|
+
updateJson(tree, 'package.json', (packageJson)=>({
|
|
194
|
+
...packageJson,
|
|
195
|
+
// The root `type` field is owned by the preset (written explicitly from
|
|
196
|
+
// its `--module` option). `init` preserves an existing workspace's field
|
|
197
|
+
// as-is: an ESM workspace already carries `type: "module"` (that is how
|
|
198
|
+
// the format is inferred), and introducing a `type` into a CommonJS
|
|
199
|
+
// workspace that lacks one changes behaviour for frameworks that parse it
|
|
200
|
+
// (e.g. Next.js starts treating the app's ESM source as CJS).
|
|
201
|
+
scripts: overwriteScripts ? {
|
|
202
|
+
...packageJson.scripts,
|
|
203
|
+
...CONVENIENCE_SCRIPTS
|
|
204
|
+
} : {
|
|
205
|
+
...CONVENIENCE_SCRIPTS,
|
|
206
|
+
...packageJson.scripts
|
|
207
|
+
}
|
|
208
|
+
}));
|
|
209
|
+
// Pin the workspace's `nx` to the version the plugin's @nx/* packages are
|
|
210
|
+
// built against. A mismatched workspace nx (even a patch apart) hoists a
|
|
211
|
+
// second nested nx under @nx/js, and the two instances deadlock `nx sync`.
|
|
212
|
+
// `@nx/js` must be a root dependency for the `@nx/js:typescript-sync`
|
|
213
|
+
// generator registered in nx.json to resolve (npm doesn't hoist the
|
|
214
|
+
// plugin's own copy reliably).
|
|
215
|
+
const nxVersion = readModulePackageJson('@nx/js').packageJson.version;
|
|
216
|
+
addDependenciesToPackageJson(tree, {}, {
|
|
217
|
+
nx: nxVersion,
|
|
218
|
+
'@nx/js': nxVersion,
|
|
219
|
+
'@nx/workspace': nxVersion,
|
|
220
|
+
...withVersions([
|
|
221
|
+
'typescript',
|
|
222
|
+
'@biomejs/biome'
|
|
223
|
+
])
|
|
224
|
+
});
|
|
225
|
+
// Write biome.json for formatting and linting
|
|
226
|
+
if (!tree.exists('biome.json')) {
|
|
227
|
+
tree.write('biome.json', JSON.stringify(DEFAULT_BIOME_CONFIG, null, 2));
|
|
228
|
+
}
|
|
229
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, '..', 'preset', 'files'), '.', {
|
|
230
|
+
projectName: getNpmScope(tree),
|
|
231
|
+
generators: Object.entries(GeneratorsJson.generators).filter(([_, v])=>!v['hidden']).map(([k, v])=>({
|
|
232
|
+
name: k,
|
|
233
|
+
description: v.description
|
|
234
|
+
})),
|
|
235
|
+
...(()=>{
|
|
236
|
+
const cmds = getPackageManagerDisplayCommands();
|
|
237
|
+
return {
|
|
238
|
+
pkgMgrCmd: cmds.exec,
|
|
239
|
+
buildCmd: `${cmds.run} build`,
|
|
240
|
+
lintCmd: `${cmds.run} lint`
|
|
241
|
+
};
|
|
242
|
+
})()
|
|
243
|
+
}, {
|
|
244
|
+
overwriteStrategy: readmeOverwriteStrategy
|
|
245
|
+
});
|
|
246
|
+
if (mcp !== false) {
|
|
247
|
+
configureMcpServers(tree);
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/init.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n detectPackageManager,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n readNxJson,\n type Tree,\n updateJson,\n updateNxJson,\n} from '@nx/devkit';\nimport { initGenerator } from '@nx/js';\nimport { readFileSync } from 'fs';\nimport yaml from 'js-yaml';\nimport { readModulePackageJson } from 'nx/src/utils/package-json';\nimport GeneratorsJson from '../../generators.json' with { type: 'json' };\nimport { SYNC_GENERATOR_NAME as TS_SYNC_GENERATOR_NAME } from '../ts/sync/generator';\nimport { BASE_TSCONFIG_COMPILER_OPTIONS } from './base-tsconfig';\nimport {\n ensureAwsNxPluginConfig,\n updateAwsNxPluginConfig,\n} from './config/utils';\nimport { type Containers, inferContainers } from './containers';\nimport { DEFAULT_BIOME_CONFIG } from './format';\nimport type { Iac } from './iac';\nimport { configureMcpServers } from './mcp';\nimport { getNpmScope } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport { withVersions } from './versions';\n\nconst WORKSPACES = ['packages/*'];\nconst NX_TYPESCRIPT_SYNC_GENERATOR = '@nx/js:typescript-sync';\n\n// Built dependencies whose install scripts the generated workspace trusts.\n// `onlyBuiltDependencies` is the pnpm 10 key (silently ignored by pnpm 11);\n// pnpm 11 reads `allowBuilds` instead. Any dep NOT in this allowlist will\n// have its install scripts skipped with a warning — matching pnpm 10's\n// default behaviour. The user can opt-in later via `pnpm approve-builds`.\nexport const PNPM_BUILT_DEPENDENCIES = ['@swc/core', 'esbuild', 'nx', 'sharp'];\n\n/**\n * Options controlling how the workspace is initialised. These mirror the\n * preset schema so a workspace created via the preset and one initialised via\n * the `init` generator end up in the same shape.\n */\nexport interface ApplyWorkspaceInitOptions {\n /** The IaC provider to record in the plugin config. */\n readonly iac: Iac;\n /**\n * The container engine to record. `undefined`/`'infer'` picks docker when\n * installed, else finch.\n */\n readonly containers?: Containers | 'infer';\n /** Whether to configure MCP servers for coding agents. Defaults to true. */\n readonly mcp?: boolean;\n /**\n * How to treat the generated workspace README. The preset owns the README of\n * a greenfield workspace (`Overwrite`); the `init` generator must not clobber\n * an existing workspace's README (`KeepExisting`, the default).\n */\n readonly readmeOverwriteStrategy?: OverwriteStrategy;\n /**\n * Whether to overwrite root package.json scripts that already exist. The\n * preset owns a greenfield workspace's scripts (`true`); the `init`\n * generator must not clobber an existing workspace's scripts (`false`,\n * the default) — it only adds the convenience scripts that are absent.\n */\n readonly overwriteScripts?: boolean;\n}\n\n/**\n * Add or repair the pnpm `allowBuilds` / `onlyBuiltDependencies` allowlist for\n * the workspace's `packages` globs, without clobbering any packages the user\n * has already declared.\n *\n * A workspace not created by the preset commonly has either no\n * `pnpm-workspace.yaml`, one missing the `packages` globs, or one carrying the\n * broken `set this to true or false` placeholder pnpm writes when it skips a\n * build script. This makes the file self-consistent so the first generator's\n * install doesn't fail with `ERR_PNPM_IGNORED_BUILDS`.\n */\nconst setUpPnpmWorkspace = (tree: Tree) => {\n const existing = tree.exists('pnpm-workspace.yaml')\n ? ((yaml.load(tree.read('pnpm-workspace.yaml', 'utf-8') ?? '') as Record<\n string,\n unknown\n >) ?? {})\n : {};\n\n // Preserve any packages globs the user already has, ensuring ours are present.\n const packages = Array.from(\n new Set([...((existing.packages as string[]) ?? []), ...WORKSPACES]),\n );\n\n const allowBuilds = {\n ...(typeof existing.allowBuilds === 'object' && existing.allowBuilds\n ? (existing.allowBuilds as Record<string, unknown>)\n : {}),\n // Overwrite any non-boolean (e.g. the \"set this to true or false\"\n // placeholder) with an explicit true for the deps we trust.\n ...Object.fromEntries(PNPM_BUILT_DEPENDENCIES.map((dep) => [dep, true])),\n };\n\n tree.write(\n 'pnpm-workspace.yaml',\n yaml.dump(\n {\n ...existing,\n packages,\n allowBuilds,\n onlyBuiltDependencies: PNPM_BUILT_DEPENDENCIES,\n },\n { quotingType: \"'\" },\n ),\n );\n};\n\n/**\n * Configure the workspace's package manager for a monorepo layout.\n *\n * pnpm workspaces are declared in `pnpm-workspace.yaml`; every other package\n * manager reads the `workspaces` field of the root `package.json`.\n */\nconst setUpWorkspaces = (tree: Tree) => {\n if (detectPackageManager() === 'pnpm') {\n setUpPnpmWorkspace(tree);\n } else {\n updateJson(tree, 'package.json', (json) => ({\n ...json,\n workspaces: Array.from(\n new Set([...(json.workspaces ?? []), ...WORKSPACES]),\n ),\n }));\n }\n};\n\n/**\n * Ensure the workspace has a `tsconfig.base.json`.\n *\n * `@nx/js` `initGenerator` (with `addTsPlugin`) normally creates this, but it\n * short-circuits when the workspace already has a root `tsconfig.json` — in\n * which case no base file is written and the next project generator fails with\n * `Cannot find tsconfig.base.json`. So we create a compatible one when it's\n * absent. An existing base is left untouched: the user may have tuned it, and\n * rewriting shared compiler options can break other projects (see the\n * \"add to an existing workspace\" guide).\n */\nconst ensureBaseTsConfig = (tree: Tree) => {\n if (tree.exists('tsconfig.base.json')) {\n return;\n }\n tree.write(\n 'tsconfig.base.json',\n JSON.stringify(\n {\n compilerOptions: {\n ...BASE_TSCONFIG_COMPILER_OPTIONS,\n customConditions: [getNpmScope(tree)],\n },\n },\n null,\n 2,\n ),\n );\n};\n\n/**\n * Ensure the workspace has a root `tsconfig.json`.\n *\n * Nx's `@nx/js:typescript-sync` generator hard-fails with\n * `Missing root \"tsconfig.json\"` when it's absent. The plugin's TypeScript\n * projects reference each other via this file, so we guarantee a minimal one\n * exists (sync populates its `references`).\n */\nconst ensureRootTsConfig = (tree: Tree) => {\n if (tree.exists('tsconfig.json')) {\n return;\n }\n tree.write(\n 'tsconfig.json',\n JSON.stringify(\n {\n extends: './tsconfig.base.json',\n files: [],\n references: [],\n },\n null,\n 2,\n ),\n );\n};\n\n/**\n * Transform an Nx workspace into one ready to run `@aws/nx-plugin` generators.\n *\n * This is the deterministic core shared by the workspace preset and the `init`\n * generator. It is safe to re-run: every step is idempotent (config merges,\n * keyed nx.json / package.json entries, create-if-missing files), so running\n * it against an already-initialised workspace is a no-op.\n *\n * It preserves the workspace's module format: the root package.json `type`\n * field is owned by the preset (written from its `--module` option) and left\n * untouched here. It does NOT rewrite an existing `tsconfig.base.json`'s\n * compiler options, migrate a workspace's package manager, or restructure\n * existing projects — those are decisions for the user (see the \"add to an\n * existing workspace\" guide).\n */\nexport const applyWorkspaceInit = async (\n tree: Tree,\n {\n iac,\n containers,\n mcp,\n readmeOverwriteStrategy = OverwriteStrategy.KeepExisting,\n overwriteScripts = false,\n }: ApplyWorkspaceInitOptions,\n) => {\n const resolvedContainers =\n !containers || containers === 'infer' ? inferContainers() : containers;\n\n // Write IaC provider and container engine to plugin config\n await ensureAwsNxPluginConfig(tree);\n await updateAwsNxPluginConfig(tree, {\n iac: { provider: iac },\n containers: { engine: resolvedContainers },\n });\n\n // Set up the TypeScript plugin, base tsconfig, formatter etc. `@nx/js`\n // creates `tsconfig.base.json` when absent, but skips it when a root\n // `tsconfig.json` already exists — so we ensure both explicitly below.\n await initGenerator(tree, {\n formatter: 'none',\n addTsPlugin: true,\n });\n\n ensureBaseTsConfig(tree);\n ensureRootTsConfig(tree);\n\n setUpWorkspaces(tree);\n\n const nxJson = readNxJson(tree);\n updateNxJson(tree, {\n ...nxJson,\n // Preserve an explicit analytics choice in an existing workspace.\n analytics: (nxJson as { analytics?: boolean }).analytics ?? false,\n targetDefaults: {\n ...nxJson.targetDefaults,\n compile: {\n ...nxJson.targetDefaults?.compile,\n syncGenerators: [\n ...(nxJson.targetDefaults?.compile?.syncGenerators ?? []).filter(\n (g) =>\n ![TS_SYNC_GENERATOR_NAME, NX_TYPESCRIPT_SYNC_GENERATOR].includes(\n g,\n ),\n ),\n NX_TYPESCRIPT_SYNC_GENERATOR,\n TS_SYNC_GENERATOR_NAME,\n ],\n },\n },\n });\n\n const CONVENIENCE_SCRIPTS = {\n dev: 'nx run-many --target dev',\n build: 'nx run-many --target build',\n lint: 'nx run-many --target lint --configuration=fix',\n test: 'nx run-many --target test --all',\n 'build:skip-lint': 'nx run-many --target build --configuration=skip-lint',\n 'build:all': 'nx run-many --target build --all',\n 'affected:all': 'nx affected --target build',\n };\n updateJson(tree, 'package.json', (packageJson) => ({\n ...packageJson,\n // The root `type` field is owned by the preset (written explicitly from\n // its `--module` option). `init` preserves an existing workspace's field\n // as-is: an ESM workspace already carries `type: \"module\"` (that is how\n // the format is inferred), and introducing a `type` into a CommonJS\n // workspace that lacks one changes behaviour for frameworks that parse it\n // (e.g. Next.js starts treating the app's ESM source as CJS).\n scripts: overwriteScripts\n ? { ...packageJson.scripts, ...CONVENIENCE_SCRIPTS }\n : { ...CONVENIENCE_SCRIPTS, ...packageJson.scripts },\n }));\n\n // Pin the workspace's `nx` to the version the plugin's @nx/* packages are\n // built against. A mismatched workspace nx (even a patch apart) hoists a\n // second nested nx under @nx/js, and the two instances deadlock `nx sync`.\n // `@nx/js` must be a root dependency for the `@nx/js:typescript-sync`\n // generator registered in nx.json to resolve (npm doesn't hoist the\n // plugin's own copy reliably).\n const nxVersion = readModulePackageJson('@nx/js').packageJson.version;\n addDependenciesToPackageJson(\n tree,\n {},\n {\n nx: nxVersion,\n '@nx/js': nxVersion,\n '@nx/workspace': nxVersion,\n ...withVersions(['typescript', '@biomejs/biome']),\n },\n );\n\n // Write biome.json for formatting and linting\n if (!tree.exists('biome.json')) {\n tree.write('biome.json', JSON.stringify(DEFAULT_BIOME_CONFIG, null, 2));\n }\n\n generateFiles(\n tree, // the virtual file system\n joinPathFragments(import.meta.dirname, '..', 'preset', 'files'),\n '.',\n {\n projectName: getNpmScope(tree),\n generators: Object.entries(GeneratorsJson.generators)\n .filter(([_, v]) => !v['hidden'])\n .map(([k, v]) => ({ name: k, description: v.description })),\n ...(() => {\n const cmds = getPackageManagerDisplayCommands();\n return {\n pkgMgrCmd: cmds.exec,\n buildCmd: `${cmds.run} build`,\n lintCmd: `${cmds.run} lint`,\n };\n })(),\n },\n {\n overwriteStrategy: readmeOverwriteStrategy,\n },\n );\n\n if (mcp !== false) {\n configureMcpServers(tree);\n }\n};\n"],"names":["addDependenciesToPackageJson","detectPackageManager","generateFiles","joinPathFragments","OverwriteStrategy","readNxJson","updateJson","updateNxJson","initGenerator","yaml","readModulePackageJson","GeneratorsJson","type","SYNC_GENERATOR_NAME","TS_SYNC_GENERATOR_NAME","BASE_TSCONFIG_COMPILER_OPTIONS","ensureAwsNxPluginConfig","updateAwsNxPluginConfig","inferContainers","DEFAULT_BIOME_CONFIG","configureMcpServers","getNpmScope","getPackageManagerDisplayCommands","withVersions","WORKSPACES","NX_TYPESCRIPT_SYNC_GENERATOR","PNPM_BUILT_DEPENDENCIES","setUpPnpmWorkspace","tree","existing","exists","load","read","packages","Array","from","Set","allowBuilds","Object","fromEntries","map","dep","write","dump","onlyBuiltDependencies","quotingType","setUpWorkspaces","json","workspaces","ensureBaseTsConfig","JSON","stringify","compilerOptions","customConditions","ensureRootTsConfig","extends","files","references","applyWorkspaceInit","iac","containers","mcp","readmeOverwriteStrategy","KeepExisting","overwriteScripts","resolvedContainers","provider","engine","formatter","addTsPlugin","nxJson","analytics","targetDefaults","compile","syncGenerators","filter","g","includes","CONVENIENCE_SCRIPTS","dev","build","lint","test","packageJson","scripts","nxVersion","version","nx","dirname","projectName","generators","entries","_","v","k","name","description","cmds","pkgMgrCmd","exec","buildCmd","run","lintCmd","overwriteStrategy"],"mappings":"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"}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -99,6 +99,7 @@ export declare const TS_VERSIONS: {
|
|
|
99
99
|
readonly 'make-dir-cli': "4.0.0";
|
|
100
100
|
readonly mariadb: "3.5.3";
|
|
101
101
|
readonly ncp: "2.0.0";
|
|
102
|
+
readonly npm: "12.0.1";
|
|
102
103
|
readonly 'npm-check-updates': "22.2.9";
|
|
103
104
|
readonly 'oidc-client-ts': "3.5.0";
|
|
104
105
|
readonly pg: "8.22.0";
|
|
@@ -130,7 +131,7 @@ export type ITsDepVersion = keyof typeof TS_VERSIONS;
|
|
|
130
131
|
* Add versions to the given dependencies
|
|
131
132
|
*/
|
|
132
133
|
export declare const withVersions: (deps: ITsDepVersion[]) => {
|
|
133
|
-
[k: string]: "0.3.14" | "0.12.0" | "3.1085.0" | "3.972.56" | "1.0.0-alpha.10" | "2.34.0" | "7.7.0" | "22.2.1" | "10.3.0" | "23.0.2" | "1.11.1" | "1.15.43" | "1.29.0" | "0.22.0" | "0.2.3" | "0.0.57" | "0.3.0" | "1.62.3" | "7.8.2" | "1.9.0" | "1.170.17" | "1.168.19" | "1.167.18" | "1.162.0" | "1.162.2" | "3.0.201" | "1.0.149" | "3.0.1325" | "1.0.62" | "5.101.2" | "11.18.0" | "26.1.1" | "8.10.162" | "2.8.19" | "8.20.0" | "8.18.1" | "5.0.6" | "4.6.8" | "4.5.8" | "4.9.5" | "4.16.1" | "4.1.10" | "6.0.1" | "0.41.3" | "7.0.7" | "1.0.20" | "2.1130.0" | "2.261.0" | "3.12.0" | "10.6.0" | "2.8.6" | "5.6.2" | "0.7.1" | "2.1.1" | "15.0.0" | "3.9.1" | "0.28.1" | "1.0.31" | "1.0.5" | "2.5.3" | "7.8.0" | "3.1.5" | "5.2.1" | "3.3.3" | "9.1.7" | "11.3.6" | "11.0.4" | "4.0.0" | "3.5.3" | "2.0.0" | "22.2.9" | "3.5.0" | "8.22.0" | "3.3.1" | "19.2.7" | "6.1.3" | "1.1.5" | "3.36.0" | "0.5.21" | "0.28.0" | "4.3.2" | "4.23.0" | "1.24.0" | "1.6.2" | "4.13.0" | "1.4.0" | "3.6.0" | "8.1.4" | "6.0.3" | "4.4.3" | "8.21.0";
|
|
134
|
+
[k: string]: "0.3.14" | "0.12.0" | "3.1085.0" | "3.972.56" | "1.0.0-alpha.10" | "2.34.0" | "7.7.0" | "22.2.1" | "10.3.0" | "23.0.2" | "1.11.1" | "1.15.43" | "1.29.0" | "0.22.0" | "0.2.3" | "0.0.57" | "0.3.0" | "1.62.3" | "7.8.2" | "1.9.0" | "1.170.17" | "1.168.19" | "1.167.18" | "1.162.0" | "1.162.2" | "3.0.201" | "1.0.149" | "3.0.1325" | "1.0.62" | "5.101.2" | "11.18.0" | "26.1.1" | "8.10.162" | "2.8.19" | "8.20.0" | "8.18.1" | "5.0.6" | "4.6.8" | "4.5.8" | "4.9.5" | "4.16.1" | "4.1.10" | "6.0.1" | "0.41.3" | "7.0.7" | "1.0.20" | "2.1130.0" | "2.261.0" | "3.12.0" | "10.6.0" | "2.8.6" | "5.6.2" | "0.7.1" | "2.1.1" | "15.0.0" | "3.9.1" | "0.28.1" | "1.0.31" | "1.0.5" | "2.5.3" | "7.8.0" | "3.1.5" | "5.2.1" | "3.3.3" | "9.1.7" | "11.3.6" | "11.0.4" | "4.0.0" | "3.5.3" | "2.0.0" | "12.0.1" | "22.2.9" | "3.5.0" | "8.22.0" | "3.3.1" | "19.2.7" | "6.1.3" | "1.1.5" | "3.36.0" | "0.5.21" | "0.28.0" | "4.3.2" | "4.23.0" | "1.24.0" | "1.6.2" | "4.13.0" | "1.4.0" | "3.6.0" | "8.1.4" | "6.0.3" | "4.4.3" | "8.21.0";
|
|
134
135
|
};
|
|
135
136
|
/**
|
|
136
137
|
* Versions for Python dependencies added by generators
|
|
@@ -179,6 +180,22 @@ export declare const withPyVersions: (deps: IPyDepVersion[]) => string[];
|
|
|
179
180
|
export declare const VENDORED_VERSIONS: {
|
|
180
181
|
readonly 'git-secrets': "1.3.0";
|
|
181
182
|
};
|
|
183
|
+
/**
|
|
184
|
+
* Base container images used by generated Dockerfiles. Pinned exactly so
|
|
185
|
+
* generated images are reproducible, and chosen to be free of known
|
|
186
|
+
* HIGH/CRITICAL vulnerabilities at time of generation.
|
|
187
|
+
*/
|
|
188
|
+
export declare const BASE_IMAGES: {
|
|
189
|
+
readonly node: "public.ecr.aws/docker/library/node:lts-slim";
|
|
190
|
+
readonly python: "public.ecr.aws/docker/library/python:3.14-slim";
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Versions for container tooling used by generated image build/scan targets.
|
|
194
|
+
* Pinned exactly so generated images are reproducible.
|
|
195
|
+
*/
|
|
196
|
+
export declare const CONTAINER_VERSIONS: {
|
|
197
|
+
readonly trivy: "0.72.0";
|
|
198
|
+
};
|
|
182
199
|
/**
|
|
183
200
|
* Exact versions for Terraform providers used by generated `.tf` modules.
|
|
184
201
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
package/src/utils/versions.js
CHANGED
|
@@ -97,6 +97,7 @@
|
|
|
97
97
|
'make-dir-cli': '4.0.0',
|
|
98
98
|
mariadb: '3.5.3',
|
|
99
99
|
ncp: '2.0.0',
|
|
100
|
+
npm: '12.0.1',
|
|
100
101
|
'npm-check-updates': '22.2.9',
|
|
101
102
|
'oidc-client-ts': '3.5.0',
|
|
102
103
|
pg: '8.22.0',
|
|
@@ -172,6 +173,21 @@
|
|
|
172
173
|
*/ export const VENDORED_VERSIONS = {
|
|
173
174
|
'git-secrets': '1.3.0'
|
|
174
175
|
};
|
|
176
|
+
/**
|
|
177
|
+
* Base container images used by generated Dockerfiles. Pinned exactly so
|
|
178
|
+
* generated images are reproducible, and chosen to be free of known
|
|
179
|
+
* HIGH/CRITICAL vulnerabilities at time of generation.
|
|
180
|
+
*/ export const BASE_IMAGES = {
|
|
181
|
+
node: 'public.ecr.aws/docker/library/node:lts-slim',
|
|
182
|
+
python: 'public.ecr.aws/docker/library/python:3.14-slim'
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Versions for container tooling used by generated image build/scan targets.
|
|
186
|
+
* Pinned exactly so generated images are reproducible.
|
|
187
|
+
*/ export const CONTAINER_VERSIONS = {
|
|
188
|
+
// ECR-hosted Trivy image used to scan built images during the build.
|
|
189
|
+
trivy: '0.72.0'
|
|
190
|
+
};
|
|
175
191
|
/**
|
|
176
192
|
* Exact versions for Terraform providers used by generated `.tf` modules.
|
|
177
193
|
* Pinned exactly (no range operator) so generated infrastructure is reproducible.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Versons for TypeScript dependencies added by generators\n */\nexport const TS_VERSIONS = {\n '@a2a-js/sdk': '0.3.14',\n '@aws/aws-distro-opentelemetry-node-autoinstrumentation': '0.12.0',\n '@aws-sdk/client-dynamodb': '3.1085.0',\n '@aws-sdk/client-bedrock-runtime': '3.1085.0',\n '@aws-sdk/client-s3': '3.1085.0',\n '@aws-sdk/client-sts': '3.1085.0',\n '@aws-sdk/credential-providers': '3.1085.0',\n '@aws-sdk/credential-provider-cognito-identity': '3.972.56',\n '@aws-sdk/client-secrets-manager': '3.1085.0',\n '@aws-sdk/rds-signer': '3.1085.0',\n '@aws-smithy/server-apigateway': '1.0.0-alpha.10',\n '@aws-smithy/server-node': '1.0.0-alpha.10',\n '@aws-lambda-powertools/logger': '2.34.0',\n '@aws-lambda-powertools/metrics': '2.34.0',\n '@aws-lambda-powertools/parameters': '2.34.0',\n '@aws-lambda-powertools/tracer': '2.34.0',\n '@aws-lambda-powertools/parser': '2.34.0',\n '@aws-sdk/client-appconfigdata': '3.1085.0',\n '@middy/core': '7.7.0',\n '@nxlv/python': '22.2.1',\n '@nx-extend/terraform': '10.3.0',\n '@nx/devkit': '23.0.2',\n '@nx/react': '23.0.2',\n 'create-nx-workspace': '23.0.2',\n '@swc-node/register': '1.11.1',\n '@swc/core': '1.15.43',\n '@modelcontextprotocol/sdk': '1.29.0',\n '@modelcontextprotocol/inspector': '0.22.0',\n '@ag-ui/aws-strands': '0.2.3',\n '@ag-ui/client': '0.0.57',\n '@ag-ui/core': '0.0.57',\n '@ag-ui/encoder': '0.0.57',\n 'agent-chat-cli': '0.3.0',\n '@copilotkit/react-core': '1.62.3',\n rxjs: '7.8.2',\n '@strands-agents/sdk': '1.9.0',\n '@tanstack/react-router': '1.170.17',\n '@tanstack/router-plugin': '1.168.19',\n '@tanstack/router-generator': '1.167.18',\n '@tanstack/virtual-file-routes': '1.162.0',\n '@tanstack/router-utils': '1.162.2',\n '@cloudscape-design/board-components': '3.0.201',\n '@cloudscape-design/chat-components': '1.0.149',\n '@cloudscape-design/components': '3.0.1325',\n '@cloudscape-design/global-styles': '1.0.62',\n '@tanstack/react-query': '5.101.2',\n '@tanstack/react-query-devtools': '5.101.2',\n '@trpc/tanstack-react-query': '11.18.0',\n '@trpc/client': '11.18.0',\n '@trpc/server': '11.18.0',\n '@types/node': '26.1.1',\n '@types/aws-lambda': '8.10.162',\n '@types/cors': '2.8.19',\n '@types/pg': '8.20.0',\n '@types/ws': '8.18.1',\n '@types/express': '5.0.6',\n '@smithy/config-resolver': '4.6.8',\n '@smithy/node-config-provider': '4.5.8',\n '@smithy/node-http-handler': '4.9.5',\n '@smithy/types': '4.16.1',\n '@vitest/coverage-v8': '4.1.10',\n '@vitest/ui': '4.1.10',\n '@astrojs/react': '6.0.1',\n '@astrojs/starlight': '0.41.3',\n astro: '7.0.7',\n aws4fetch: '1.0.20',\n 'aws-cdk': '2.1130.0',\n 'aws-cdk-lib': '2.261.0',\n 'aws-xray-sdk-core': '3.12.0',\n constructs: '10.6.0',\n cors: '2.8.6',\n chalk: '5.6.2',\n 'class-variance-authority': '0.7.1',\n clsx: '2.1.1',\n commander: '15.0.0',\n electrodb: '3.9.1',\n esbuild: '0.28.1',\n 'event-source-polyfill': '1.0.31',\n '@types/event-source-polyfill': '1.0.5',\n '@biomejs/biome': '2.5.3',\n '@prisma/adapter-mariadb': '7.8.0',\n '@prisma/adapter-pg': '7.8.0',\n '@prisma/client': '7.8.0',\n ejs: '6.0.1',\n '@types/ejs': '3.1.5',\n express: '5.2.1',\n 'fast-glob': '3.3.3',\n husky: '9.1.7',\n 'fs-extra': '11.3.6',\n '@types/fs-extra': '11.0.4',\n 'make-dir-cli': '4.0.0',\n mariadb: '3.5.3',\n ncp: '2.0.0',\n 'npm-check-updates': '22.2.9',\n 'oidc-client-ts': '3.5.0',\n pg: '8.22.0',\n prisma: '7.8.0',\n 'react-oidc-context': '3.3.1',\n react: '19.2.7',\n 'react-dom': '19.2.7',\n rimraf: '6.1.3',\n rolldown: '1.1.5',\n 'simple-git': '3.36.0',\n 'source-map-support': '0.5.21',\n 'starlight-blog': '0.28.0',\n tailwindcss: '4.3.2',\n '@tailwindcss/vite': '4.3.2',\n tsx: '4.23.0',\n 'lucide-react': '1.24.0',\n 'radix-ui': '1.6.2',\n shadcn: '4.13.0',\n 'tw-animate-css': '1.4.0',\n 'tailwind-merge': '3.6.0',\n vite: '8.1.4',\n typescript: '6.0.3',\n vitest: '4.1.10',\n zod: '4.4.3',\n ws: '8.21.0',\n} as const;\nexport type ITsDepVersion = keyof typeof TS_VERSIONS;\n\n/**\n * Add versions to the given dependencies\n */\nexport const withVersions = (deps: ITsDepVersion[]) =>\n Object.fromEntries(deps.map((dep) => [dep, TS_VERSIONS[dep]]));\n\n/**\n * Versions for Python dependencies added by generators\n */\nexport const PY_VERSIONS = {\n 'a2a-sdk': '==0.3.26',\n 'ag-ui-langgraph': '==0.0.42',\n 'ag-ui-protocol': '==0.1.19',\n 'ag-ui-strands': '==0.2.2',\n 'aws-lambda-powertools': '==3.31.0',\n 'aws-lambda-powertools[tracer]': '==3.31.0',\n 'aws-lambda-powertools[parser]': '==3.31.0',\n 'aws-opentelemetry-distro': '==0.18.0',\n 'bedrock-agentcore': '==1.18.0',\n boto3: '==1.43.46',\n checkov: '==3.3.8',\n fastapi: '==0.139.0',\n 'fastapi[standard]': '==0.139.0',\n httpx: '==0.28.1',\n langchain: '==1.3.13',\n 'langchain-aws': '==1.6.2',\n 'langchain-mcp-adapters': '==0.3.0',\n langgraph: '==1.2.9',\n mcp: '==1.28.1',\n 'pip-check-updates': '==0.29.0',\n 'pip-licenses': '==5.5.5',\n 'strands-agents': '==1.47.0',\n 'strands-agents[a2a]': '==1.47.0',\n 'strands-agents-tools': '==0.8.3',\n ty: '==0.0.59',\n pynamodb: '==6.1.0',\n uvicorn: '==0.51.0',\n sqlmodel: '==0.0.38',\n alembic: '==1.18.4',\n aiomysql: '==0.3.2',\n asyncpg: '==0.31.0',\n} as const;\nexport type IPyDepVersion = keyof typeof PY_VERSIONS;\n\n/**\n * Add versions to the given dependencies\n */\nexport const withPyVersions = (deps: IPyDepVersion[]) =>\n deps.map((dep) => `${dep}${PY_VERSIONS[dep]}`);\n\n/**\n * Versions for vendored tools\n */\nexport const VENDORED_VERSIONS = {\n 'git-secrets': '1.3.0',\n} as const;\n\n/**\n * Exact versions for Terraform providers used by generated `.tf` modules.\n * Pinned exactly (no range operator) so generated infrastructure is reproducible.\n */\nexport const TERRAFORM_VERSIONS = {\n aws: '6.54.0',\n random: '3.9.0',\n null: '3.3.0',\n archive: '2.8.0',\n external: '2.4.0',\n local: '2.9.0',\n} as const;\nexport type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;\n\n/**\n * Substitution variables exposing Terraform provider version constraints to\n * generated `.tf` templates (e.g. `version = \"<%- awsProviderVersion %>\"`)\n */\nexport const terraformProviderVersions = () => ({\n awsProviderVersion: TERRAFORM_VERSIONS.aws,\n randomProviderVersion: TERRAFORM_VERSIONS.random,\n nullProviderVersion: TERRAFORM_VERSIONS.null,\n archiveProviderVersion: TERRAFORM_VERSIONS.archive,\n externalProviderVersion: TERRAFORM_VERSIONS.external,\n localProviderVersion: TERRAFORM_VERSIONS.local,\n});\n"],"names":["TS_VERSIONS","rxjs","astro","aws4fetch","constructs","cors","chalk","clsx","commander","electrodb","esbuild","ejs","express","husky","mariadb","ncp","pg","prisma","react","rimraf","rolldown","tailwindcss","tsx","shadcn","vite","typescript","vitest","zod","ws","withVersions","deps","Object","fromEntries","map","dep","PY_VERSIONS","boto3","checkov","fastapi","httpx","langchain","langgraph","mcp","ty","pynamodb","uvicorn","sqlmodel","alembic","aiomysql","asyncpg","withPyVersions","VENDORED_VERSIONS","TERRAFORM_VERSIONS","aws","random","null","archive","external","local","terraformProviderVersions","awsProviderVersion","randomProviderVersion","nullProviderVersion","archiveProviderVersion","externalProviderVersion","localProviderVersion"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Versons for TypeScript dependencies added by generators\n */\nexport const TS_VERSIONS = {\n '@a2a-js/sdk': '0.3.14',\n '@aws/aws-distro-opentelemetry-node-autoinstrumentation': '0.12.0',\n '@aws-sdk/client-dynamodb': '3.1085.0',\n '@aws-sdk/client-bedrock-runtime': '3.1085.0',\n '@aws-sdk/client-s3': '3.1085.0',\n '@aws-sdk/client-sts': '3.1085.0',\n '@aws-sdk/credential-providers': '3.1085.0',\n '@aws-sdk/credential-provider-cognito-identity': '3.972.56',\n '@aws-sdk/client-secrets-manager': '3.1085.0',\n '@aws-sdk/rds-signer': '3.1085.0',\n '@aws-smithy/server-apigateway': '1.0.0-alpha.10',\n '@aws-smithy/server-node': '1.0.0-alpha.10',\n '@aws-lambda-powertools/logger': '2.34.0',\n '@aws-lambda-powertools/metrics': '2.34.0',\n '@aws-lambda-powertools/parameters': '2.34.0',\n '@aws-lambda-powertools/tracer': '2.34.0',\n '@aws-lambda-powertools/parser': '2.34.0',\n '@aws-sdk/client-appconfigdata': '3.1085.0',\n '@middy/core': '7.7.0',\n '@nxlv/python': '22.2.1',\n '@nx-extend/terraform': '10.3.0',\n '@nx/devkit': '23.0.2',\n '@nx/react': '23.0.2',\n 'create-nx-workspace': '23.0.2',\n '@swc-node/register': '1.11.1',\n '@swc/core': '1.15.43',\n '@modelcontextprotocol/sdk': '1.29.0',\n '@modelcontextprotocol/inspector': '0.22.0',\n '@ag-ui/aws-strands': '0.2.3',\n '@ag-ui/client': '0.0.57',\n '@ag-ui/core': '0.0.57',\n '@ag-ui/encoder': '0.0.57',\n 'agent-chat-cli': '0.3.0',\n '@copilotkit/react-core': '1.62.3',\n rxjs: '7.8.2',\n '@strands-agents/sdk': '1.9.0',\n '@tanstack/react-router': '1.170.17',\n '@tanstack/router-plugin': '1.168.19',\n '@tanstack/router-generator': '1.167.18',\n '@tanstack/virtual-file-routes': '1.162.0',\n '@tanstack/router-utils': '1.162.2',\n '@cloudscape-design/board-components': '3.0.201',\n '@cloudscape-design/chat-components': '1.0.149',\n '@cloudscape-design/components': '3.0.1325',\n '@cloudscape-design/global-styles': '1.0.62',\n '@tanstack/react-query': '5.101.2',\n '@tanstack/react-query-devtools': '5.101.2',\n '@trpc/tanstack-react-query': '11.18.0',\n '@trpc/client': '11.18.0',\n '@trpc/server': '11.18.0',\n '@types/node': '26.1.1',\n '@types/aws-lambda': '8.10.162',\n '@types/cors': '2.8.19',\n '@types/pg': '8.20.0',\n '@types/ws': '8.18.1',\n '@types/express': '5.0.6',\n '@smithy/config-resolver': '4.6.8',\n '@smithy/node-config-provider': '4.5.8',\n '@smithy/node-http-handler': '4.9.5',\n '@smithy/types': '4.16.1',\n '@vitest/coverage-v8': '4.1.10',\n '@vitest/ui': '4.1.10',\n '@astrojs/react': '6.0.1',\n '@astrojs/starlight': '0.41.3',\n astro: '7.0.7',\n aws4fetch: '1.0.20',\n 'aws-cdk': '2.1130.0',\n 'aws-cdk-lib': '2.261.0',\n 'aws-xray-sdk-core': '3.12.0',\n constructs: '10.6.0',\n cors: '2.8.6',\n chalk: '5.6.2',\n 'class-variance-authority': '0.7.1',\n clsx: '2.1.1',\n commander: '15.0.0',\n electrodb: '3.9.1',\n esbuild: '0.28.1',\n 'event-source-polyfill': '1.0.31',\n '@types/event-source-polyfill': '1.0.5',\n '@biomejs/biome': '2.5.3',\n '@prisma/adapter-mariadb': '7.8.0',\n '@prisma/adapter-pg': '7.8.0',\n '@prisma/client': '7.8.0',\n ejs: '6.0.1',\n '@types/ejs': '3.1.5',\n express: '5.2.1',\n 'fast-glob': '3.3.3',\n husky: '9.1.7',\n 'fs-extra': '11.3.6',\n '@types/fs-extra': '11.0.4',\n 'make-dir-cli': '4.0.0',\n mariadb: '3.5.3',\n ncp: '2.0.0',\n npm: '12.0.1',\n 'npm-check-updates': '22.2.9',\n 'oidc-client-ts': '3.5.0',\n pg: '8.22.0',\n prisma: '7.8.0',\n 'react-oidc-context': '3.3.1',\n react: '19.2.7',\n 'react-dom': '19.2.7',\n rimraf: '6.1.3',\n rolldown: '1.1.5',\n 'simple-git': '3.36.0',\n 'source-map-support': '0.5.21',\n 'starlight-blog': '0.28.0',\n tailwindcss: '4.3.2',\n '@tailwindcss/vite': '4.3.2',\n tsx: '4.23.0',\n 'lucide-react': '1.24.0',\n 'radix-ui': '1.6.2',\n shadcn: '4.13.0',\n 'tw-animate-css': '1.4.0',\n 'tailwind-merge': '3.6.0',\n vite: '8.1.4',\n typescript: '6.0.3',\n vitest: '4.1.10',\n zod: '4.4.3',\n ws: '8.21.0',\n} as const;\nexport type ITsDepVersion = keyof typeof TS_VERSIONS;\n\n/**\n * Add versions to the given dependencies\n */\nexport const withVersions = (deps: ITsDepVersion[]) =>\n Object.fromEntries(deps.map((dep) => [dep, TS_VERSIONS[dep]]));\n\n/**\n * Versions for Python dependencies added by generators\n */\nexport const PY_VERSIONS = {\n 'a2a-sdk': '==0.3.26',\n 'ag-ui-langgraph': '==0.0.42',\n 'ag-ui-protocol': '==0.1.19',\n 'ag-ui-strands': '==0.2.2',\n 'aws-lambda-powertools': '==3.31.0',\n 'aws-lambda-powertools[tracer]': '==3.31.0',\n 'aws-lambda-powertools[parser]': '==3.31.0',\n 'aws-opentelemetry-distro': '==0.18.0',\n 'bedrock-agentcore': '==1.18.0',\n boto3: '==1.43.46',\n checkov: '==3.3.8',\n fastapi: '==0.139.0',\n 'fastapi[standard]': '==0.139.0',\n httpx: '==0.28.1',\n langchain: '==1.3.13',\n 'langchain-aws': '==1.6.2',\n 'langchain-mcp-adapters': '==0.3.0',\n langgraph: '==1.2.9',\n mcp: '==1.28.1',\n 'pip-check-updates': '==0.29.0',\n 'pip-licenses': '==5.5.5',\n 'strands-agents': '==1.47.0',\n 'strands-agents[a2a]': '==1.47.0',\n 'strands-agents-tools': '==0.8.3',\n ty: '==0.0.59',\n pynamodb: '==6.1.0',\n uvicorn: '==0.51.0',\n sqlmodel: '==0.0.38',\n alembic: '==1.18.4',\n aiomysql: '==0.3.2',\n asyncpg: '==0.31.0',\n} as const;\nexport type IPyDepVersion = keyof typeof PY_VERSIONS;\n\n/**\n * Add versions to the given dependencies\n */\nexport const withPyVersions = (deps: IPyDepVersion[]) =>\n deps.map((dep) => `${dep}${PY_VERSIONS[dep]}`);\n\n/**\n * Versions for vendored tools\n */\nexport const VENDORED_VERSIONS = {\n 'git-secrets': '1.3.0',\n} as const;\n\n/**\n * Base container images used by generated Dockerfiles. Pinned exactly so\n * generated images are reproducible, and chosen to be free of known\n * HIGH/CRITICAL vulnerabilities at time of generation.\n */\nexport const BASE_IMAGES = {\n node: 'public.ecr.aws/docker/library/node:lts-slim',\n python: 'public.ecr.aws/docker/library/python:3.14-slim',\n} as const;\n\n/**\n * Versions for container tooling used by generated image build/scan targets.\n * Pinned exactly so generated images are reproducible.\n */\nexport const CONTAINER_VERSIONS = {\n // ECR-hosted Trivy image used to scan built images during the build.\n trivy: '0.72.0',\n} as const;\n\n/**\n * Exact versions for Terraform providers used by generated `.tf` modules.\n * Pinned exactly (no range operator) so generated infrastructure is reproducible.\n */\nexport const TERRAFORM_VERSIONS = {\n aws: '6.54.0',\n random: '3.9.0',\n null: '3.3.0',\n archive: '2.8.0',\n external: '2.4.0',\n local: '2.9.0',\n} as const;\nexport type ITerraformProviderVersion = keyof typeof TERRAFORM_VERSIONS;\n\n/**\n * Substitution variables exposing Terraform provider version constraints to\n * generated `.tf` templates (e.g. `version = \"<%- awsProviderVersion %>\"`)\n */\nexport const terraformProviderVersions = () => ({\n awsProviderVersion: TERRAFORM_VERSIONS.aws,\n randomProviderVersion: TERRAFORM_VERSIONS.random,\n nullProviderVersion: TERRAFORM_VERSIONS.null,\n archiveProviderVersion: TERRAFORM_VERSIONS.archive,\n externalProviderVersion: TERRAFORM_VERSIONS.external,\n localProviderVersion: TERRAFORM_VERSIONS.local,\n});\n"],"names":["TS_VERSIONS","rxjs","astro","aws4fetch","constructs","cors","chalk","clsx","commander","electrodb","esbuild","ejs","express","husky","mariadb","ncp","npm","pg","prisma","react","rimraf","rolldown","tailwindcss","tsx","shadcn","vite","typescript","vitest","zod","ws","withVersions","deps","Object","fromEntries","map","dep","PY_VERSIONS","boto3","checkov","fastapi","httpx","langchain","langgraph","mcp","ty","pynamodb","uvicorn","sqlmodel","alembic","aiomysql","asyncpg","withPyVersions","VENDORED_VERSIONS","BASE_IMAGES","node","python","CONTAINER_VERSIONS","trivy","TERRAFORM_VERSIONS","aws","random","null","archive","external","local","terraformProviderVersions","awsProviderVersion","randomProviderVersion","nullProviderVersion","archiveProviderVersion","externalProviderVersion","localProviderVersion"],"mappings":"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"}
|