@aws/nx-plugin 1.0.0-rc.45 → 1.0.0-rc.47
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 +3 -60
- package/generators.json +9 -9
- package/package.json +7 -3
- package/src/agentcore-gateway/generator.js +12 -2
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +25 -31
- package/src/infra/app/generator.js +9 -6
- package/src/infra/app/generator.js.map +1 -1
- package/src/license/config.js +1 -1
- package/src/license/config.js.map +1 -1
- package/src/mcp-server/schema.d.ts +1 -1
- package/src/mcp-server/tools/general-guidance.js +5 -6
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +38 -7
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +4 -2
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js.map +1 -1
- package/src/preset/schema.d.ts +1 -0
- package/src/preset/schema.json +5 -0
- package/src/py/agent/generator.js +2 -1
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/mcp-server/generator.js +2 -1
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/project/generator.js +2 -1
- package/src/py/project/generator.js.map +1 -1
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +1 -0
- package/src/py/rdb/generator.js +7 -1
- package/src/py/rdb/generator.js.map +1 -1
- package/src/smithy/ts/api/generator.js +5 -2
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/generator.js +4 -1
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/trpc/backend/generator.js +7 -5
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/generator.js +4 -4
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/agent/a2a-connection/generator.js +3 -2
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/gateway-connection/generator.js +4 -3
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/generator.js +8 -5
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/mcp-connection/generator.js +4 -3
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/generator.js +10 -19
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/astro-docs/generator.js +12 -3
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/dcr-proxy/generator.js +5 -5
- package/src/ts/dcr-proxy/generator.js.map +1 -1
- package/src/ts/dynamodb/generator.js +5 -2
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -2
- package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
- package/src/ts/lambda-function/generator.js +3 -2
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lib/ts-project-utils.js +17 -10
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.js +2 -1
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/generator.js +11 -11
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/generator.js +5 -0
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +5 -6
- package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
- package/src/ts/nx-plugin/utils.js +2 -1
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/agent-connection/generator.js +1 -2
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/generator.js +10 -6
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/generator.js +1 -2
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/generator.js +1 -2
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/generator.js +1 -2
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/react-website/agui/generator.js +5 -4
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +219 -79
- package/src/ts/react-website/app/generator.js +34 -14
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +11 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +12 -2
- package/src/ts/react-website/cognito-auth/generator.js +3 -2
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/generator.js +2 -2
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/sync/generator.js +81 -3
- package/src/ts/sync/generator.js.map +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +1 -1
- package/src/utils/agent-connection/agent-connection.js +50 -1
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +10 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.js +15 -1
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/bundle/bundle.js +2 -1
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.d.ts +5 -3
- package/src/utils/commands.js +24 -3
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +16 -0
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.d.ts +3 -2
- package/src/utils/config/utils.js +4 -3
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.js +3 -2
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.js +1 -1
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dependencies.d.ts +18 -0
- package/src/utils/dependencies.js +206 -0
- package/src/utils/dependencies.js.map +1 -0
- package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
- package/src/utils/files/shadcn/components.json.template +1 -1
- package/src/utils/format.d.ts +20 -1
- package/src/utils/format.js +83 -49
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +1 -1
- package/src/utils/fs.js +1 -1
- package/src/utils/fs.js.map +1 -1
- package/src/utils/iac.js +1 -1
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +11 -6
- package/src/utils/identity-constructs/identity-constructs.js +14 -3
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/init.d.ts +7 -1
- package/src/utils/init.js +38 -17
- package/src/utils/init.js.map +1 -1
- package/src/utils/install.js +3 -1
- package/src/utils/install.js.map +1 -1
- package/src/utils/module-format.d.ts +5 -8
- package/src/utils/module-format.js +29 -12
- package/src/utils/module-format.js.map +1 -1
- package/src/utils/npm-scope.d.ts +0 -4
- package/src/utils/npm-scope.js +0 -5
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/pnpm-workspace.d.ts +1 -12
- package/src/utils/pnpm-workspace.js +3 -30
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/project-package-json.d.ts +39 -0
- package/src/utils/project-package-json.js +119 -0
- package/src/utils/project-package-json.js.map +1 -0
- package/src/utils/shared-constructs.js +6 -5
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.js +4 -2
- package/src/utils/shared-dynamodb-scripts.js.map +1 -1
- package/src/utils/shared-infra-scripts.js +5 -4
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-rdb-scripts.js +14 -1
- package/src/utils/shared-rdb-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +11 -8
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.js +8 -3
- package/src/utils/test.js.map +1 -1
- package/src/utils/versions.d.ts +4 -0
- package/src/utils/versions.js +8 -1
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +3 -0
package/LICENSE-THIRD-PARTY
CHANGED
|
@@ -3297,7 +3297,7 @@ SOFTWARE.
|
|
|
3297
3297
|
|
|
3298
3298
|
---
|
|
3299
3299
|
|
|
3300
|
-
The following software may be included in this product: @emnapi/core (1.11.
|
|
3300
|
+
The following software may be included in this product: @emnapi/core (1.11.2)
|
|
3301
3301
|
This software contains the following license and notice below:
|
|
3302
3302
|
|
|
3303
3303
|
MIT License
|
|
@@ -3351,7 +3351,7 @@ SOFTWARE.
|
|
|
3351
3351
|
|
|
3352
3352
|
---
|
|
3353
3353
|
|
|
3354
|
-
The following software may be included in this product: @emnapi/runtime (1.11.
|
|
3354
|
+
The following software may be included in this product: @emnapi/runtime (1.11.2)
|
|
3355
3355
|
This software contains the following license and notice below:
|
|
3356
3356
|
|
|
3357
3357
|
MIT License
|
|
@@ -12944,7 +12944,7 @@ THE SOFTWARE.
|
|
|
12944
12944
|
|
|
12945
12945
|
---
|
|
12946
12946
|
|
|
12947
|
-
The following software may be included in this product: enhanced-resolve (5.
|
|
12947
|
+
The following software may be included in this product: enhanced-resolve (5.24.2)
|
|
12948
12948
|
This software contains the following license and notice below:
|
|
12949
12949
|
|
|
12950
12950
|
Copyright JS Foundation and other contributors
|
|
@@ -25979,21 +25979,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
|
|
25979
25979
|
|
|
25980
25980
|
---
|
|
25981
25981
|
|
|
25982
|
-
The following software may be included in this product: supports-color (10.2.2)
|
|
25983
|
-
This software contains the following license and notice below:
|
|
25984
|
-
|
|
25985
|
-
MIT License
|
|
25986
|
-
|
|
25987
|
-
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
25988
|
-
|
|
25989
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
25990
|
-
|
|
25991
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
25992
|
-
|
|
25993
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
25994
|
-
|
|
25995
|
-
---
|
|
25996
|
-
|
|
25997
25982
|
The following software may be included in this product: supports-preserve-symlinks-flag (1.0.0)
|
|
25998
25983
|
This software contains the following license and notice below:
|
|
25999
25984
|
|
|
@@ -40255,48 +40240,6 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
|
40255
40240
|
|
|
40256
40241
|
---
|
|
40257
40242
|
|
|
40258
|
-
The following software may be included in this product: semver (7.8.0)
|
|
40259
|
-
This software contains the following license and notice below:
|
|
40260
|
-
|
|
40261
|
-
The ISC License
|
|
40262
|
-
|
|
40263
|
-
Copyright (c) Isaac Z. Schlueter and Contributors
|
|
40264
|
-
|
|
40265
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
40266
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
40267
|
-
copyright notice and this permission notice appear in all copies.
|
|
40268
|
-
|
|
40269
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
40270
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
40271
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
40272
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
40273
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
40274
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
40275
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
40276
|
-
|
|
40277
|
-
---
|
|
40278
|
-
|
|
40279
|
-
The following software may be included in this product: semver (7.8.2)
|
|
40280
|
-
This software contains the following license and notice below:
|
|
40281
|
-
|
|
40282
|
-
The ISC License
|
|
40283
|
-
|
|
40284
|
-
Copyright (c) Isaac Z. Schlueter and Contributors
|
|
40285
|
-
|
|
40286
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
40287
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
40288
|
-
copyright notice and this permission notice appear in all copies.
|
|
40289
|
-
|
|
40290
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
40291
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
40292
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
40293
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
40294
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
40295
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
40296
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
40297
|
-
|
|
40298
|
-
---
|
|
40299
|
-
|
|
40300
40243
|
The following software may be included in this product: semver (7.8.4)
|
|
40301
40244
|
This software contains the following license and notice below:
|
|
40302
40245
|
|
package/generators.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"factory": "./src/init/generator",
|
|
8
8
|
"schema": "./src/init/schema.json",
|
|
9
9
|
"description": "Configure an existing Nx workspace to use the @aws/nx-plugin",
|
|
10
|
-
"metric": "
|
|
10
|
+
"metric": "g66",
|
|
11
11
|
"guidePages": ["existing-project"]
|
|
12
12
|
},
|
|
13
13
|
"agentcore-gateway": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"factory": "./src/agentcore-gateway/gateway-connection/generator",
|
|
28
28
|
"schema": "./src/agentcore-gateway/gateway-connection/schema.json",
|
|
29
29
|
"description": "Connect an AgentCore Gateway to another AgentCore Gateway",
|
|
30
|
-
"metric": "
|
|
30
|
+
"metric": "g65",
|
|
31
31
|
"hidden": true
|
|
32
32
|
},
|
|
33
33
|
"connection": {
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
"factory": "./src/ts/dcr-proxy/generator",
|
|
216
216
|
"schema": "./src/ts/dcr-proxy/schema.json",
|
|
217
217
|
"description": "Generate an OAuth Dynamic Client Registration (DCR) proxy construct for Cognito-authenticated MCP servers",
|
|
218
|
-
"metric": "
|
|
218
|
+
"metric": "g67"
|
|
219
219
|
},
|
|
220
220
|
"ts#mcp-server": {
|
|
221
221
|
"factory": "./src/ts/mcp-server/generator",
|
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
"factory": "./src/ts/website/app/generator",
|
|
249
249
|
"schema": "./src/ts/website/app/schema.json",
|
|
250
250
|
"description": "Generates a website application",
|
|
251
|
-
"metric": "
|
|
251
|
+
"metric": "g60",
|
|
252
252
|
"guidePages": ["website", "react-website"]
|
|
253
253
|
},
|
|
254
254
|
"ts#website#auth": {
|
|
@@ -340,7 +340,7 @@
|
|
|
340
340
|
"ts#sync": {
|
|
341
341
|
"factory": "./src/ts/sync/generator",
|
|
342
342
|
"schema": "./src/ts/sync/schema.json",
|
|
343
|
-
"description": "TypeScript path alias sync generator",
|
|
343
|
+
"description": "TypeScript path alias and local workspace dependency sync generator",
|
|
344
344
|
"metric": "g29",
|
|
345
345
|
"hidden": true
|
|
346
346
|
},
|
|
@@ -405,27 +405,27 @@
|
|
|
405
405
|
"factory": "./src/ts/dynamodb/generator",
|
|
406
406
|
"schema": "./src/ts/dynamodb/schema.json",
|
|
407
407
|
"description": "Create a TypeScript DynamoDB project",
|
|
408
|
-
"metric": "
|
|
408
|
+
"metric": "g61"
|
|
409
409
|
},
|
|
410
410
|
"ts#dynamodb#trpc-connection": {
|
|
411
411
|
"factory": "./src/ts/dynamodb/trpc-connection/generator",
|
|
412
412
|
"schema": "./src/ts/dynamodb/trpc-connection/schema.json",
|
|
413
413
|
"description": "Connect a ts#trpc-api project to a ts#dynamodb project",
|
|
414
|
-
"metric": "
|
|
414
|
+
"metric": "g62",
|
|
415
415
|
"hidden": true
|
|
416
416
|
},
|
|
417
417
|
"ts#dynamodb#smithy-connection": {
|
|
418
418
|
"factory": "./src/ts/dynamodb/smithy-connection/generator",
|
|
419
419
|
"schema": "./src/ts/dynamodb/smithy-connection/schema.json",
|
|
420
420
|
"description": "Connect a Smithy backend to a ts#dynamodb project",
|
|
421
|
-
"metric": "
|
|
421
|
+
"metric": "g63",
|
|
422
422
|
"hidden": true
|
|
423
423
|
},
|
|
424
424
|
"ts#dynamodb#agent-connection": {
|
|
425
425
|
"factory": "./src/ts/dynamodb/agent-connection/generator",
|
|
426
426
|
"schema": "./src/ts/dynamodb/agent-connection/schema.json",
|
|
427
427
|
"description": "Connect a ts#agent to a ts#dynamodb project",
|
|
428
|
-
"metric": "
|
|
428
|
+
"metric": "g64",
|
|
429
429
|
"hidden": true
|
|
430
430
|
},
|
|
431
431
|
"ts#dynamodb#mcp-server-connection": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws/nx-plugin",
|
|
3
|
-
"version": "1.0.0-rc.
|
|
3
|
+
"version": "1.0.0-rc.47",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/awslabs/nx-plugin-for-aws.git",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"@nx/js": "23.1.0",
|
|
50
50
|
"@nx/react": "23.1.0",
|
|
51
51
|
"@nx/vite": "23.1.0",
|
|
52
|
+
"@nxlv/python": "22.2.2",
|
|
53
|
+
"@phenomnomnominal/tsquery": "6.2.0",
|
|
52
54
|
"@types/estree": "1.0.9",
|
|
53
55
|
"@types/js-yaml": "4.0.9",
|
|
54
56
|
"@types/mdast": "4.0.4",
|
|
55
|
-
"@nxlv/python": "22.2.2",
|
|
56
|
-
"@phenomnomnominal/tsquery": "6.2.0",
|
|
57
57
|
"enquirer": "2.4.1",
|
|
58
58
|
"fast-glob": "3.3.3",
|
|
59
59
|
"jiti": "2.7.0",
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"remark-mdx": "3.1.1",
|
|
74
74
|
"remark-parse": "11.0.0",
|
|
75
75
|
"remark-stringify": "11.0.0",
|
|
76
|
+
"semver": "7.8.5",
|
|
76
77
|
"spdx-satisfies": "6.0.0",
|
|
77
78
|
"typescript": "6.0.3",
|
|
78
79
|
"unified": "11.0.5",
|
|
@@ -80,5 +81,8 @@
|
|
|
80
81
|
"vite": "8.1.5",
|
|
81
82
|
"vitest": "4.1.10",
|
|
82
83
|
"zod": "4.4.3"
|
|
84
|
+
},
|
|
85
|
+
"devDependencies": {
|
|
86
|
+
"@types/semver": "7.7.1"
|
|
83
87
|
}
|
|
84
88
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
*/ import {
|
|
4
|
+
*/ import { addProjectConfiguration, generateFiles, joinPathFragments, OverwriteStrategy, updateProjectConfiguration } from "@nx/devkit";
|
|
5
5
|
import { addAgentCoreGatewayInfra } from "../utils/agent-core-constructs/agent-core-constructs.js";
|
|
6
|
+
import { addDependenciesToPackageJson } from "../utils/dependencies.js";
|
|
6
7
|
import { formatFilesInSubtree } from "../utils/format.js";
|
|
7
8
|
import { resolveIac } from "../utils/iac.js";
|
|
8
9
|
import { installDependencies } from "../utils/install.js";
|
|
@@ -11,6 +12,7 @@ import { kebabCase, toClassName } from "../utils/names.js";
|
|
|
11
12
|
import { getNpmScopePrefix } from "../utils/npm-scope.js";
|
|
12
13
|
import { addGeneratorMetadata, getGeneratorInfo, projectExists, readProjectConfigurationUnqualified } from "../utils/nx.js";
|
|
13
14
|
import { assignPort } from "../utils/port.js";
|
|
15
|
+
import { ensureProjectPackageJson } from "../utils/project-package-json.js";
|
|
14
16
|
import { sharedConstructsGenerator } from "../utils/shared-constructs.js";
|
|
15
17
|
import { withVersions } from "../utils/versions.js";
|
|
16
18
|
export const AGENTCORE_GATEWAY_GENERATOR_INFO = getGeneratorInfo(import.meta.filename);
|
|
@@ -68,6 +70,12 @@ export const agentcoreGatewayGenerator = async (tree, options)=>{
|
|
|
68
70
|
});
|
|
69
71
|
project = readProjectConfigurationUnqualified(tree, fullyQualifiedName);
|
|
70
72
|
}
|
|
73
|
+
// Ensure the project has its own package.json so its runtime dependencies
|
|
74
|
+
// (added below) are declared in it rather than the workspace root.
|
|
75
|
+
ensureProjectPackageJson(tree, {
|
|
76
|
+
dir: projectRoot,
|
|
77
|
+
fullyQualifiedName
|
|
78
|
+
});
|
|
71
79
|
const port = assignPort(tree, project, 8100);
|
|
72
80
|
// A gateway is its own standalone project, so it uses plain `serve` / `dev`
|
|
73
81
|
// targets. Re-run: keep existing targets (their dependsOn may have been
|
|
@@ -109,10 +117,12 @@ export const agentcoreGatewayGenerator = async (tree, options)=>{
|
|
|
109
117
|
'@modelcontextprotocol/sdk',
|
|
110
118
|
'express'
|
|
111
119
|
]), withVersions([
|
|
112
|
-
'tsx',
|
|
113
120
|
'@types/express',
|
|
114
121
|
'ejs',
|
|
115
122
|
'@types/ejs'
|
|
123
|
+
]), joinPathFragments(projectRoot, 'package.json'));
|
|
124
|
+
addDependenciesToPackageJson(tree, {}, withVersions([
|
|
125
|
+
'tsx'
|
|
116
126
|
]));
|
|
117
127
|
// Wire up infra (CDK or Terraform); re-running with infra=agentcore adds
|
|
118
128
|
// the infrastructure to a previously infra-less gateway.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../packages/nx-plugin/src/agentcore-gateway/generator.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 addProjectConfiguration,\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addAgentCoreGatewayInfra } from '../utils/agent-core-constructs/agent-core-constructs';\nimport { formatFilesInSubtree } from '../utils/format';\nimport { resolveIac } from '../utils/iac';\nimport { installDependencies } from '../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../utils/metrics';\nimport { kebabCase, toClassName } from '../utils/names';\nimport { getNpmScopePrefix } from '../utils/npm-scope';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n projectExists,\n readProjectConfigurationUnqualified,\n} from '../utils/nx';\nimport { assignPort } from '../utils/port';\nimport { sharedConstructsGenerator } from '../utils/shared-constructs';\nimport { withVersions } from '../utils/versions';\nimport type { AgentcoreGatewayGeneratorSchema } from './schema';\n\nexport const AGENTCORE_GATEWAY_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const agentcoreGatewayGenerator = async (\n tree: Tree,\n options: AgentcoreGatewayGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const name = kebabCase(options.name);\n const nameClassName = toClassName(name);\n const parentDir = options.directory ?? 'packages';\n const subDir = options.subDirectory ?? name;\n const projectRoot = joinPathFragments(parentDir, subDir);\n const fullyQualifiedName = `${getNpmScopePrefix(tree)}${name}`;\n\n // Protocol is fixed to mcp — the enum accepts only this value, but we still\n // persist the resolved value in metadata so connection generators can read\n // it uniformly (and future additions are non-breaking).\n const protocol = options.protocol ?? 'mcp';\n // Inbound auth is iam (default) or cognito. Persisted in metadata so\n // connection generators can validate it (agent -> gateway connections\n // require an IAM gateway).\n const auth = options.auth ?? 'iam';\n const cedarPolicy = options.cedarPolicy ?? true;\n const infra = options.infra ?? 'agentcore';\n\n // local-dev.ts is the local gateway: a continuous MCP aggregator chaining\n // onto attached MCP servers' dev targets (added by the mcp-connection\n // generator), so a single `nx dev <gateway>` boots the gateway and every\n // attached MCP server together.\n //\n // `serve` exists for parity with other generators; the deployed Gateway is\n // a managed AWS resource, so `serve`-mode agents talk to it via runtime\n // config and the local gateway sits idle.\n const localGatewayTarget = (port: number) => ({\n executor: 'nx:run-commands' as const,\n continuous: true,\n options: {\n command: 'tsx local-dev.ts',\n cwd: '{projectRoot}',\n env: { PORT: `${port}` },\n },\n dependsOn: [] as Array<string | { projects: string[]; target: string }>,\n });\n let project: ProjectConfiguration;\n if (projectExists(tree, fullyQualifiedName)) {\n project = readProjectConfigurationUnqualified(tree, fullyQualifiedName);\n } else {\n addProjectConfiguration(tree, fullyQualifiedName, {\n name: fullyQualifiedName,\n root: projectRoot,\n projectType: 'library',\n sourceRoot: projectRoot,\n tags: [],\n targets: {},\n metadata: {\n generator: AGENTCORE_GATEWAY_GENERATOR_INFO.id,\n } as any,\n });\n project = readProjectConfigurationUnqualified(tree, fullyQualifiedName);\n }\n const port = assignPort(tree, project, 8100);\n // A gateway is its own standalone project, so it uses plain `serve` / `dev`\n // targets. Re-run: keep existing targets (their dependsOn may have been\n // populated by the mcp-connection generator), just ensure both exist.\n project.targets ??= {};\n project.targets['serve'] ??= localGatewayTarget(port);\n project.targets['dev'] ??= localGatewayTarget(port);\n updateProjectConfiguration(tree, project.name, project);\n\n // Scaffold the gateway project: local-dev.ts (+ Cedar policies if requested)\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'project'),\n projectRoot,\n { nameClassName, nameKebabCase: name, port, attachedMcpServers: [] },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n if (cedarPolicy) {\n // The default permit-all policy differs by auth type: AgentCore represents\n // IAM callers as `AgentCore::IamEntity` and Cognito/JWT callers as\n // `AgentCore::OAuthUser`, so the two policies match different principals.\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cedar'),\n projectRoot,\n { nameClassName, auth },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n }\n\n addGeneratorMetadata(\n tree,\n fullyQualifiedName,\n AGENTCORE_GATEWAY_GENERATOR_INFO,\n {\n name,\n rc: nameClassName,\n protocol,\n auth,\n port,\n },\n );\n\n // local-dev.ts dependencies (+ ejs for Cedar policy rendering in the\n // shared gateway construct)\n addDependenciesToPackageJson(\n tree,\n withVersions(['@modelcontextprotocol/sdk', 'express']),\n withVersions(['tsx', '@types/express', 'ejs', '@types/ejs']),\n );\n\n // Wire up infra (CDK or Terraform); re-running with infra=agentcore adds\n // the infrastructure to a previously infra-less gateway.\n if (infra === 'agentcore') {\n const iac = await resolveIac(tree, options.iac);\n await sharedConstructsGenerator(tree, { iac });\n\n await addAgentCoreGatewayInfra(tree, {\n gatewayNameClassName: nameClassName,\n gatewayNameKebabCase: name,\n projectName: fullyQualifiedName,\n projectDirectory: projectRoot,\n cedarPolicy,\n auth,\n iac,\n });\n }\n\n await addGeneratorMetricsIfApplicable(tree, [\n AGENTCORE_GATEWAY_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\n/**\n * Gateway details stored in the gateway project's metadata.\n */\nexport interface AgentCoreGatewayMetadata {\n name: string;\n rc: string;\n protocol: string;\n auth: string;\n port: number;\n}\n\n/**\n * Read a gateway project's metadata, validating it was generated by the\n * agentcore-gateway generator.\n */\nexport const readAgentCoreGatewayMetadata = (\n project: ProjectConfiguration,\n): AgentCoreGatewayMetadata => {\n const metadata = project.metadata as any;\n if (metadata?.generator !== AGENTCORE_GATEWAY_GENERATOR_INFO.id) {\n throw new Error(\n `Project '${project.name}' was not generated by the '${AGENTCORE_GATEWAY_GENERATOR_INFO.id}' generator.`,\n );\n }\n return metadata as AgentCoreGatewayMetadata;\n};\n\nexport default agentcoreGatewayGenerator;\n"],"names":["addDependenciesToPackageJson","addProjectConfiguration","generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","addAgentCoreGatewayInfra","formatFilesInSubtree","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","kebabCase","toClassName","getNpmScopePrefix","addGeneratorMetadata","getGeneratorInfo","projectExists","readProjectConfigurationUnqualified","assignPort","sharedConstructsGenerator","withVersions","AGENTCORE_GATEWAY_GENERATOR_INFO","filename","agentcoreGatewayGenerator","tree","options","name","nameClassName","parentDir","directory","subDir","subDirectory","projectRoot","fullyQualifiedName","protocol","auth","cedarPolicy","infra","localGatewayTarget","port","executor","continuous","command","cwd","env","PORT","dependsOn","project","root","projectType","sourceRoot","tags","targets","metadata","generator","id","dirname","nameKebabCase","attachedMcpServers","overwriteStrategy","KeepExisting","rc","iac","gatewayNameClassName","gatewayNameKebabCase","projectName","projectDirectory","preferInstallDependencies","languages","readAgentCoreGatewayMetadata","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/agentcore-gateway/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addProjectConfiguration,\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addAgentCoreGatewayInfra } from '../utils/agent-core-constructs/agent-core-constructs';\nimport { addDependenciesToPackageJson } from '../utils/dependencies';\nimport { formatFilesInSubtree } from '../utils/format';\nimport { resolveIac } from '../utils/iac';\nimport { installDependencies } from '../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../utils/metrics';\nimport { kebabCase, toClassName } from '../utils/names';\nimport { getNpmScopePrefix } from '../utils/npm-scope';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n projectExists,\n readProjectConfigurationUnqualified,\n} from '../utils/nx';\nimport { assignPort } from '../utils/port';\nimport { ensureProjectPackageJson } from '../utils/project-package-json';\nimport { sharedConstructsGenerator } from '../utils/shared-constructs';\nimport { withVersions } from '../utils/versions';\nimport type { AgentcoreGatewayGeneratorSchema } from './schema';\n\nexport const AGENTCORE_GATEWAY_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const agentcoreGatewayGenerator = async (\n tree: Tree,\n options: AgentcoreGatewayGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const name = kebabCase(options.name);\n const nameClassName = toClassName(name);\n const parentDir = options.directory ?? 'packages';\n const subDir = options.subDirectory ?? name;\n const projectRoot = joinPathFragments(parentDir, subDir);\n const fullyQualifiedName = `${getNpmScopePrefix(tree)}${name}`;\n\n // Protocol is fixed to mcp — the enum accepts only this value, but we still\n // persist the resolved value in metadata so connection generators can read\n // it uniformly (and future additions are non-breaking).\n const protocol = options.protocol ?? 'mcp';\n // Inbound auth is iam (default) or cognito. Persisted in metadata so\n // connection generators can validate it (agent -> gateway connections\n // require an IAM gateway).\n const auth = options.auth ?? 'iam';\n const cedarPolicy = options.cedarPolicy ?? true;\n const infra = options.infra ?? 'agentcore';\n\n // local-dev.ts is the local gateway: a continuous MCP aggregator chaining\n // onto attached MCP servers' dev targets (added by the mcp-connection\n // generator), so a single `nx dev <gateway>` boots the gateway and every\n // attached MCP server together.\n //\n // `serve` exists for parity with other generators; the deployed Gateway is\n // a managed AWS resource, so `serve`-mode agents talk to it via runtime\n // config and the local gateway sits idle.\n const localGatewayTarget = (port: number) => ({\n executor: 'nx:run-commands' as const,\n continuous: true,\n options: {\n command: 'tsx local-dev.ts',\n cwd: '{projectRoot}',\n env: { PORT: `${port}` },\n },\n dependsOn: [] as Array<string | { projects: string[]; target: string }>,\n });\n let project: ProjectConfiguration;\n if (projectExists(tree, fullyQualifiedName)) {\n project = readProjectConfigurationUnqualified(tree, fullyQualifiedName);\n } else {\n addProjectConfiguration(tree, fullyQualifiedName, {\n name: fullyQualifiedName,\n root: projectRoot,\n projectType: 'library',\n sourceRoot: projectRoot,\n tags: [],\n targets: {},\n metadata: {\n generator: AGENTCORE_GATEWAY_GENERATOR_INFO.id,\n } as any,\n });\n project = readProjectConfigurationUnqualified(tree, fullyQualifiedName);\n }\n // Ensure the project has its own package.json so its runtime dependencies\n // (added below) are declared in it rather than the workspace root.\n ensureProjectPackageJson(tree, {\n dir: projectRoot,\n fullyQualifiedName,\n });\n const port = assignPort(tree, project, 8100);\n // A gateway is its own standalone project, so it uses plain `serve` / `dev`\n // targets. Re-run: keep existing targets (their dependsOn may have been\n // populated by the mcp-connection generator), just ensure both exist.\n project.targets ??= {};\n project.targets['serve'] ??= localGatewayTarget(port);\n project.targets['dev'] ??= localGatewayTarget(port);\n updateProjectConfiguration(tree, project.name, project);\n\n // Scaffold the gateway project: local-dev.ts (+ Cedar policies if requested)\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'project'),\n projectRoot,\n { nameClassName, nameKebabCase: name, port, attachedMcpServers: [] },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n if (cedarPolicy) {\n // The default permit-all policy differs by auth type: AgentCore represents\n // IAM callers as `AgentCore::IamEntity` and Cognito/JWT callers as\n // `AgentCore::OAuthUser`, so the two policies match different principals.\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cedar'),\n projectRoot,\n { nameClassName, auth },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n }\n\n addGeneratorMetadata(\n tree,\n fullyQualifiedName,\n AGENTCORE_GATEWAY_GENERATOR_INFO,\n {\n name,\n rc: nameClassName,\n protocol,\n auth,\n port,\n },\n );\n\n // local-dev.ts dependencies (+ ejs for Cedar policy rendering in the\n // shared gateway construct)\n addDependenciesToPackageJson(\n tree,\n withVersions(['@modelcontextprotocol/sdk', 'express']),\n withVersions(['@types/express', 'ejs', '@types/ejs']),\n joinPathFragments(projectRoot, 'package.json'),\n );\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n\n // Wire up infra (CDK or Terraform); re-running with infra=agentcore adds\n // the infrastructure to a previously infra-less gateway.\n if (infra === 'agentcore') {\n const iac = await resolveIac(tree, options.iac);\n await sharedConstructsGenerator(tree, { iac });\n\n await addAgentCoreGatewayInfra(tree, {\n gatewayNameClassName: nameClassName,\n gatewayNameKebabCase: name,\n projectName: fullyQualifiedName,\n projectDirectory: projectRoot,\n cedarPolicy,\n auth,\n iac,\n });\n }\n\n await addGeneratorMetricsIfApplicable(tree, [\n AGENTCORE_GATEWAY_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\n/**\n * Gateway details stored in the gateway project's metadata.\n */\nexport interface AgentCoreGatewayMetadata {\n name: string;\n rc: string;\n protocol: string;\n auth: string;\n port: number;\n}\n\n/**\n * Read a gateway project's metadata, validating it was generated by the\n * agentcore-gateway generator.\n */\nexport const readAgentCoreGatewayMetadata = (\n project: ProjectConfiguration,\n): AgentCoreGatewayMetadata => {\n const metadata = project.metadata as any;\n if (metadata?.generator !== AGENTCORE_GATEWAY_GENERATOR_INFO.id) {\n throw new Error(\n `Project '${project.name}' was not generated by the '${AGENTCORE_GATEWAY_GENERATOR_INFO.id}' generator.`,\n );\n }\n return metadata as AgentCoreGatewayMetadata;\n};\n\nexport default agentcoreGatewayGenerator;\n"],"names":["addProjectConfiguration","generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","addAgentCoreGatewayInfra","addDependenciesToPackageJson","formatFilesInSubtree","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","kebabCase","toClassName","getNpmScopePrefix","addGeneratorMetadata","getGeneratorInfo","projectExists","readProjectConfigurationUnqualified","assignPort","ensureProjectPackageJson","sharedConstructsGenerator","withVersions","AGENTCORE_GATEWAY_GENERATOR_INFO","filename","agentcoreGatewayGenerator","tree","options","name","nameClassName","parentDir","directory","subDir","subDirectory","projectRoot","fullyQualifiedName","protocol","auth","cedarPolicy","infra","localGatewayTarget","port","executor","continuous","command","cwd","env","PORT","dependsOn","project","root","projectType","sourceRoot","tags","targets","metadata","generator","id","dir","dirname","nameKebabCase","attachedMcpServers","overwriteStrategy","KeepExisting","rc","iac","gatewayNameClassName","gatewayNameKebabCase","projectName","projectDirectory","preferInstallDependencies","languages","readAgentCoreGatewayMetadata","Error"],"mappings":"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"}
|
|
@@ -1,53 +1,47 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`infra generator > should add required dependencies to package.json > dependencies 1`] = `
|
|
4
|
-
{
|
|
5
|
-
"aws-cdk": "2.1132.0",
|
|
6
|
-
"aws-cdk-lib": "2.261.0",
|
|
7
|
-
"constructs": "10.7.0",
|
|
8
|
-
"esbuild": "0.28.1",
|
|
9
|
-
"source-map-support": "0.5.21",
|
|
10
|
-
}
|
|
11
|
-
`;
|
|
3
|
+
exports[`infra generator > should add required dependencies to package.json > dependencies 1`] = `{}`;
|
|
12
4
|
|
|
13
5
|
exports[`infra generator > should add required dependencies to package.json > dev-dependencies 1`] = `
|
|
14
6
|
{
|
|
15
7
|
"@nx/js": "23.1.0",
|
|
16
8
|
"@nx/vitest": "23.1.0",
|
|
17
9
|
"@swc/helpers": "~0.5.18",
|
|
18
|
-
"@types/node": "
|
|
19
|
-
"@vitest/coverage-v8": "
|
|
10
|
+
"@types/node": "catalog:",
|
|
11
|
+
"@vitest/coverage-v8": "catalog:",
|
|
12
|
+
"aws-cdk": "catalog:",
|
|
13
|
+
"esbuild": "catalog:",
|
|
20
14
|
"jsdom": "^27.1.0",
|
|
21
|
-
"tsx": "
|
|
15
|
+
"tsx": "catalog:",
|
|
22
16
|
"typescript": "~6.0.3",
|
|
23
|
-
"vite": "
|
|
24
|
-
"vitest": "
|
|
17
|
+
"vite": "catalog:",
|
|
18
|
+
"vitest": "catalog:",
|
|
25
19
|
}
|
|
26
20
|
`;
|
|
27
21
|
|
|
28
22
|
exports[`infra generator > should add required dependencies to package.json > package-json 1`] = `
|
|
29
23
|
{
|
|
30
|
-
"dependencies": {
|
|
31
|
-
"aws-cdk": "2.1132.0",
|
|
32
|
-
"aws-cdk-lib": "2.261.0",
|
|
33
|
-
"constructs": "10.7.0",
|
|
34
|
-
"esbuild": "0.28.1",
|
|
35
|
-
"source-map-support": "0.5.21",
|
|
36
|
-
},
|
|
24
|
+
"dependencies": {},
|
|
37
25
|
"devDependencies": {
|
|
38
26
|
"@nx/js": "23.1.0",
|
|
39
27
|
"@nx/vitest": "23.1.0",
|
|
40
28
|
"@swc/helpers": "~0.5.18",
|
|
41
|
-
"@types/node": "
|
|
42
|
-
"@vitest/coverage-v8": "
|
|
29
|
+
"@types/node": "catalog:",
|
|
30
|
+
"@vitest/coverage-v8": "catalog:",
|
|
31
|
+
"aws-cdk": "catalog:",
|
|
32
|
+
"esbuild": "catalog:",
|
|
43
33
|
"jsdom": "^27.1.0",
|
|
44
|
-
"tsx": "
|
|
34
|
+
"tsx": "catalog:",
|
|
45
35
|
"typescript": "~6.0.3",
|
|
46
|
-
"vite": "
|
|
47
|
-
"vitest": "
|
|
36
|
+
"vite": "catalog:",
|
|
37
|
+
"vitest": "catalog:",
|
|
48
38
|
},
|
|
49
39
|
"name": "@proj/source",
|
|
50
40
|
"type": "module",
|
|
41
|
+
"workspaces": [
|
|
42
|
+
"packages/*",
|
|
43
|
+
"packages/common/constructs",
|
|
44
|
+
],
|
|
51
45
|
}
|
|
52
46
|
`;
|
|
53
47
|
|
|
@@ -403,7 +397,7 @@ exports[`infra generator > should generate consistent file content across runs >
|
|
|
403
397
|
}
|
|
404
398
|
",
|
|
405
399
|
"src/main.ts": "import { ApplicationStage } from './stages/application-stage.js';
|
|
406
|
-
import { App } from '
|
|
400
|
+
import { App } from '@proj/common-constructs';
|
|
407
401
|
|
|
408
402
|
const app = new App();
|
|
409
403
|
|
|
@@ -555,7 +549,7 @@ exports[`infra generator > should generate files with correct content > cdk-json
|
|
|
555
549
|
|
|
556
550
|
exports[`infra generator > should generate files with correct content > main-ts 1`] = `
|
|
557
551
|
"import { ApplicationStage } from './stages/application-stage.js';
|
|
558
|
-
import { App } from '
|
|
552
|
+
import { App } from '@proj/common-constructs';
|
|
559
553
|
|
|
560
554
|
const app = new App();
|
|
561
555
|
|
|
@@ -642,7 +636,7 @@ exports[`infra generator > should handle custom project names correctly > custom
|
|
|
642
636
|
}
|
|
643
637
|
",
|
|
644
638
|
"src/main.ts": "import { ApplicationStage } from './stages/application-stage.js';
|
|
645
|
-
import { App } from '
|
|
639
|
+
import { App } from '@proj/common-constructs';
|
|
646
640
|
|
|
647
641
|
const app = new App();
|
|
648
642
|
|
|
@@ -1044,7 +1038,7 @@ export function buildCdkCommand(
|
|
|
1044
1038
|
`;
|
|
1045
1039
|
|
|
1046
1040
|
exports[`infra generator > with stageConfig > should snapshot generated scripts src directory > packages/common/scripts/src/infra/stage-credentials/credentials.ts 1`] = `
|
|
1047
|
-
"import type { StageCredentials, StagesConfig } from '
|
|
1041
|
+
"import type { StageCredentials, StagesConfig } from '@proj/common-infra-config';
|
|
1048
1042
|
|
|
1049
1043
|
/**
|
|
1050
1044
|
* Looks up credentials for a given project + stage combination.
|
|
@@ -1147,7 +1141,7 @@ export function describeCredentials(creds: StageCredentials): string {
|
|
|
1147
1141
|
|
|
1148
1142
|
exports[`infra generator > with stageConfig > should snapshot generated scripts src directory > packages/common/scripts/src/infra/stage-credentials/run.ts 1`] = `
|
|
1149
1143
|
"import { spawnSync } from 'child_process';
|
|
1150
|
-
import stagesConfig from '
|
|
1144
|
+
import stagesConfig from '@proj/common-infra-config';
|
|
1151
1145
|
import { parseStageName } from './stage-parser.js';
|
|
1152
1146
|
import {
|
|
1153
1147
|
lookupCredentials,
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
*/ import {
|
|
4
|
+
*/ import { generateFiles, joinPathFragments, OverwriteStrategy, readProjectConfiguration, updateJson } from "@nx/devkit";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import tsProjectGenerator, { getTsLibDetails } from "../../ts/lib/generator.js";
|
|
7
7
|
import { mergeTsReferences } from "../../ts/lib/ts-project-utils.js";
|
|
8
8
|
import { resolveContainers } from "../../utils/containers.js";
|
|
9
|
+
import { addDependenciesToPackageJson } from "../../utils/dependencies.js";
|
|
9
10
|
import { formatFilesInSubtree } from "../../utils/format.js";
|
|
10
11
|
import { installDependencies } from "../../utils/install.js";
|
|
11
12
|
import { addGeneratorMetricsIfApplicable } from "../../utils/metrics.js";
|
|
12
13
|
import { esmVars } from "../../utils/module-format.js";
|
|
13
14
|
import { kebabCase } from "../../utils/names.js";
|
|
14
|
-
import { getNpmScopePrefix
|
|
15
|
+
import { getNpmScopePrefix } from "../../utils/npm-scope.js";
|
|
15
16
|
import { addDependencyToTargetIfNotPresent, addGeneratorMetadata, getGeneratorInfo, projectExists } from "../../utils/nx.js";
|
|
16
17
|
import { sortObjectKeys } from "../../utils/object.js";
|
|
17
18
|
import { getPackageManagerDisplayCommands } from "../../utils/pkg-manager.js";
|
|
@@ -65,7 +66,7 @@ export async function tsInfraGenerator(tree, schema) {
|
|
|
65
66
|
const projectConfig = readProjectConfiguration(tree, lib.fullyQualifiedName);
|
|
66
67
|
const libraryRoot = projectConfig.root;
|
|
67
68
|
const npmScopePrefix = getNpmScopePrefix(tree);
|
|
68
|
-
const scopeAlias =
|
|
69
|
+
const scopeAlias = npmScopePrefix;
|
|
69
70
|
const fullyQualifiedName = `${npmScopePrefix}${schema.name}`;
|
|
70
71
|
tree.delete(joinPathFragments(libraryRoot, 'src'));
|
|
71
72
|
generateFiles(tree, joinPathFragments(import.meta.dirname, './files/app'), libraryRoot, {
|
|
@@ -181,11 +182,13 @@ export async function tsInfraGenerator(tree, schema) {
|
|
|
181
182
|
});
|
|
182
183
|
addDependenciesToPackageJson(tree, withVersions([
|
|
183
184
|
'aws-cdk-lib',
|
|
184
|
-
'aws-cdk',
|
|
185
|
-
'esbuild',
|
|
186
185
|
'constructs',
|
|
187
186
|
'source-map-support'
|
|
188
|
-
]),
|
|
187
|
+
]), {}, joinPathFragments(libraryRoot, 'package.json'));
|
|
188
|
+
// The `aws-cdk` CLI, esbuild (CDK bundling) and tsx are shared tooling.
|
|
189
|
+
addDependenciesToPackageJson(tree, {}, withVersions([
|
|
190
|
+
'aws-cdk',
|
|
191
|
+
'esbuild',
|
|
189
192
|
'tsx'
|
|
190
193
|
]));
|
|
191
194
|
updateJson(tree, `${libraryRoot}/tsconfig.lib.json`, (tsConfig)=>({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/infra/app/generator.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 type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n readProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport path from 'path';\nimport tsProjectGenerator, { getTsLibDetails } from '../../ts/lib/generator';\nimport { mergeTsReferences } from '../../ts/lib/ts-project-utils';\nimport { resolveContainers } from '../../utils/containers';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { esmVars } from '../../utils/module-format';\nimport { kebabCase } from '../../utils/names';\nimport { getNpmScopePrefix, toScopeAlias } from '../../utils/npm-scope';\nimport {\n addDependencyToTargetIfNotPresent,\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n projectExists,\n} from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport { getPackageManagerDisplayCommands } from '../../utils/pkg-manager';\nimport { uvxCommand } from '../../utils/py';\nimport { sharedConstructsGenerator } from '../../utils/shared-constructs';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_INFRA_CONFIG_DIR,\n} from '../../utils/shared-constructs-constants';\nimport { sharedInfraConfigGenerator } from '../../utils/shared-infra-config';\nimport { sharedInfraScriptsGenerator } from '../../utils/shared-infra-scripts';\nimport { withVersions } from '../../utils/versions';\nimport type { TsInfraGeneratorSchema } from './schema';\n\nexport const INFRA_APP_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport async function tsInfraGenerator(\n tree: Tree,\n schema: TsInfraGeneratorSchema,\n): Promise<GeneratorCallback> {\n const lib = getTsLibDetails(tree, schema);\n\n if (!projectExists(tree, lib.fullyQualifiedName)) {\n await tsProjectGenerator(tree, {\n ...schema,\n preferInstallDependencies: false,\n });\n }\n\n // CDK shells out to a container engine to build image assets. Default\n // (docker) needs no env override; finch is set via CDK_DOCKER per\n // https://docs.aws.amazon.com/cdk/v2/guide/build-containers.html#build-container-replace.\n const containers = await resolveContainers(tree, 'inherit');\n const cdkEnv: Record<string, string> | undefined =\n containers === 'docker' ? undefined : { CDK_DOCKER: containers };\n const withCdkEnv = <T extends Record<string, unknown>>(opts: T): T => {\n if (!cdkEnv) return opts;\n const existingEnv = (opts.env as Record<string, string> | undefined) ?? {};\n return { ...opts, env: { ...existingEnv, ...cdkEnv } } as T;\n };\n\n addGeneratorMetadata(tree, lib.fullyQualifiedName, INFRA_APP_GENERATOR_INFO);\n\n // Shared constructs always in CDK for typescript infra generator\n await sharedConstructsGenerator(tree, {\n iac: 'cdk',\n });\n\n // Shared infra-config and infra-scripts packages (lazy creation, only when enabled)\n const stageConfig = schema.stageConfig ?? false;\n if (stageConfig) {\n await sharedInfraConfigGenerator(tree);\n await sharedInfraScriptsGenerator(tree);\n }\n\n const synthDirFromRoot = `/dist/${lib.dir}/cdk.out`;\n const synthDirFromProject =\n lib.dir\n .split('/')\n .map(() => '..')\n .join('/') + `/dist/${lib.dir}/cdk.out`;\n const distDirFromProjectRoot =\n lib.dir\n .split('/')\n .map(() => '..')\n .join('/') + '/dist/{projectRoot}/cdk.out';\n const projectConfig = readProjectConfiguration(tree, lib.fullyQualifiedName);\n const libraryRoot = projectConfig.root;\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = toScopeAlias(npmScopePrefix);\n const fullyQualifiedName = `${npmScopePrefix}${schema.name}`;\n tree.delete(joinPathFragments(libraryRoot, 'src'));\n\n generateFiles(\n tree, // the virtual file system\n joinPathFragments(import.meta.dirname, './files/app'), // path to the file templates\n libraryRoot, // destination path of the files\n {\n synthDir: synthDirFromProject,\n scopeAlias: scopeAlias,\n namespace: kebabCase(fullyQualifiedName),\n fullyQualifiedName,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n dir: lib.dir,\n stageConfig,\n ...schema,\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n updateJson(\n tree,\n `${libraryRoot}/project.json`,\n (config: ProjectConfiguration) => {\n config.projectType = 'application';\n addDependencyToTargetIfNotPresent(config, 'build', 'synth');\n addDependencyToTargetIfNotPresent(config, 'build', 'checkov');\n config.targets.compile.outputs = [\n '{workspaceRoot}/dist/{projectRoot}/tsc',\n ];\n config.targets.synth = {\n cache: true,\n executor: 'nx:run-commands',\n inputs: ['default'],\n outputs: ['{workspaceRoot}/dist/{projectRoot}/cdk.out'],\n dependsOn: ['^build', 'compile'], // compile clobbers dist directory, so ensure synth runs afterwards\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk synth',\n }),\n };\n config.targets.checkov = {\n cache: true,\n executor: 'nx:run-commands',\n inputs: ['{workspaceRoot}/dist/{projectRoot}/cdk.out'],\n outputs: ['{workspaceRoot}/dist/{projectRoot}/checkov'],\n dependsOn: ['synth'],\n options: {\n command: uvxCommand(\n 'checkov',\n '--config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation',\n ),\n },\n };\n config.targets.deploy = {\n executor: 'nx:run-commands',\n dependsOn: ['^build', 'compile'],\n options: stageConfig\n ? withCdkEnv({\n command: `tsx packages/common/scripts/src/infra/infra-deploy.ts ${libraryRoot}`,\n })\n : withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk deploy --require-approval=never',\n }),\n };\n config.targets['deploy-ci'] = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: `cdk deploy --require-approval=never --app ${distDirFromProjectRoot}`,\n }),\n };\n config.targets.destroy = {\n executor: 'nx:run-commands',\n dependsOn: ['^build', 'compile'],\n options: stageConfig\n ? withCdkEnv({\n command: `tsx packages/common/scripts/src/infra/infra-destroy.ts ${libraryRoot}`,\n })\n : withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk destroy --require-approval=never',\n }),\n };\n config.targets['destroy-ci'] = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: `cdk destroy --require-approval=never --app ${distDirFromProjectRoot}`,\n }),\n };\n config.targets.cdk = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk',\n }),\n };\n config.targets.bootstrap = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk bootstrap',\n }),\n };\n config.targets = sortObjectKeys(config.targets);\n return config;\n },\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions([\n 'aws-cdk-lib',\n 'aws-cdk',\n 'esbuild',\n 'constructs',\n 'source-map-support',\n ]),\n withVersions(['tsx']),\n );\n\n updateJson(tree, `${libraryRoot}/tsconfig.lib.json`, (tsConfig) => ({\n ...tsConfig,\n references: mergeTsReferences(tsConfig.references, [\n {\n path: `${path.relative(\n libraryRoot,\n `${tree.root}/${PACKAGES_DIR}`,\n )}/${SHARED_CONSTRUCTS_DIR}/tsconfig.lib.json`,\n },\n ...(stageConfig\n ? [\n {\n path: `${path.relative(\n libraryRoot,\n `${tree.root}/${PACKAGES_DIR}`,\n )}/${SHARED_INFRA_CONFIG_DIR}/tsconfig.json`,\n },\n ]\n : []),\n ]),\n }));\n\n await addGeneratorMetricsIfApplicable(tree, [INFRA_APP_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, schema.preferInstallDependencies, {\n languages: ['typescript'],\n });\n}\nexport default tsInfraGenerator;\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","readProjectConfiguration","updateJson","path","tsProjectGenerator","getTsLibDetails","mergeTsReferences","resolveContainers","formatFilesInSubtree","installDependencies","addGeneratorMetricsIfApplicable","esmVars","kebabCase","getNpmScopePrefix","toScopeAlias","addDependencyToTargetIfNotPresent","addGeneratorMetadata","getGeneratorInfo","projectExists","sortObjectKeys","getPackageManagerDisplayCommands","uvxCommand","sharedConstructsGenerator","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_INFRA_CONFIG_DIR","sharedInfraConfigGenerator","sharedInfraScriptsGenerator","withVersions","INFRA_APP_GENERATOR_INFO","filename","tsInfraGenerator","tree","schema","lib","fullyQualifiedName","preferInstallDependencies","containers","cdkEnv","undefined","CDK_DOCKER","withCdkEnv","opts","existingEnv","env","iac","stageConfig","synthDirFromRoot","dir","synthDirFromProject","split","map","join","distDirFromProjectRoot","projectConfig","libraryRoot","root","npmScopePrefix","scopeAlias","name","delete","dirname","synthDir","namespace","pkgMgrCmd","exec","overwriteStrategy","Overwrite","config","projectType","targets","compile","outputs","synth","cache","executor","inputs","dependsOn","options","cwd","command","checkov","deploy","destroy","cdk","bootstrap","tsConfig","references","relative","languages"],"mappings":"AAAA;;;CAGC,GACD,SACEA,4BAA4B,EAE5BC,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,wBAAwB,EAExBC,UAAU,QACL,aAAa;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,sBAAsBC,eAAe,QAAQ,4BAAyB;AAC7E,SAASC,iBAAiB,QAAQ,mCAAgC;AAClE,SAASC,iBAAiB,QAAQ,4BAAyB;AAC3D,SAASC,oBAAoB,QAAQ,wBAAqB;AAC1D,SAASC,mBAAmB,QAAQ,yBAAsB;AAC1D,SAASC,+BAA+B,QAAQ,yBAAsB;AACtE,SAASC,OAAO,QAAQ,+BAA4B;AACpD,SAASC,SAAS,QAAQ,uBAAoB;AAC9C,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,2BAAwB;AACxE,SACEC,iCAAiC,EACjCC,oBAAoB,EACpBC,gBAAgB,EAEhBC,aAAa,QACR,oBAAiB;AACxB,SAASC,cAAc,QAAQ,wBAAqB;AACpD,SAASC,gCAAgC,QAAQ,6BAA0B;AAC3E,SAASC,UAAU,QAAQ,oBAAiB;AAC5C,SAASC,yBAAyB,QAAQ,mCAAgC;AAC1E,SACEC,YAAY,EACZC,qBAAqB,EACrBC,uBAAuB,QAClB,6CAA0C;AACjD,SAASC,0BAA0B,QAAQ,qCAAkC;AAC7E,SAASC,2BAA2B,QAAQ,sCAAmC;AAC/E,SAASC,YAAY,QAAQ,0BAAuB;AAGpD,OAAO,MAAMC,2BAA4CZ,iBACvD,YAAYa,QAAQ,EACpB;AAEF,OAAO,eAAeC,iBACpBC,IAAU,EACVC,MAA8B;IAE9B,MAAMC,MAAM7B,gBAAgB2B,MAAMC;IAElC,IAAI,CAACf,cAAcc,MAAME,IAAIC,kBAAkB,GAAG;QAChD,MAAM/B,mBAAmB4B,MAAM;YAC7B,GAAGC,MAAM;YACTG,2BAA2B;QAC7B;IACF;IAEA,sEAAsE;IACtE,kEAAkE;IAClE,0FAA0F;IAC1F,MAAMC,aAAa,MAAM9B,kBAAkByB,MAAM;IACjD,MAAMM,SACJD,eAAe,WAAWE,YAAY;QAAEC,YAAYH;IAAW;IACjE,MAAMI,aAAa,CAAoCC;QACrD,IAAI,CAACJ,QAAQ,OAAOI;QACpB,MAAMC,cAAc,AAACD,KAAKE,GAAG,IAA2C,CAAC;QACzE,OAAO;YAAE,GAAGF,IAAI;YAAEE,KAAK;gBAAE,GAAGD,WAAW;gBAAE,GAAGL,MAAM;YAAC;QAAE;IACvD;IAEAtB,qBAAqBgB,MAAME,IAAIC,kBAAkB,EAAEN;IAEnD,iEAAiE;IACjE,MAAMP,0BAA0BU,MAAM;QACpCa,KAAK;IACP;IAEA,oFAAoF;IACpF,MAAMC,cAAcb,OAAOa,WAAW,IAAI;IAC1C,IAAIA,aAAa;QACf,MAAMpB,2BAA2BM;QACjC,MAAML,4BAA4BK;IACpC;IAEA,MAAMe,mBAAmB,CAAC,MAAM,EAAEb,IAAIc,GAAG,CAAC,QAAQ,CAAC;IACnD,MAAMC,sBACJf,IAAIc,GAAG,CACJE,KAAK,CAAC,KACNC,GAAG,CAAC,IAAM,MACVC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAElB,IAAIc,GAAG,CAAC,QAAQ,CAAC;IAC3C,MAAMK,yBACJnB,IAAIc,GAAG,CACJE,KAAK,CAAC,KACNC,GAAG,CAAC,IAAM,MACVC,IAAI,CAAC,OAAO;IACjB,MAAME,gBAAgBrD,yBAAyB+B,MAAME,IAAIC,kBAAkB;IAC3E,MAAMoB,cAAcD,cAAcE,IAAI;IACtC,MAAMC,iBAAiB5C,kBAAkBmB;IACzC,MAAM0B,aAAa5C,aAAa2C;IAChC,MAAMtB,qBAAqB,GAAGsB,iBAAiBxB,OAAO0B,IAAI,EAAE;IAC5D3B,KAAK4B,MAAM,CAAC7D,kBAAkBwD,aAAa;IAE3CzD,cACEkC,MACAjC,kBAAkB,YAAY8D,OAAO,EAAE,gBACvCN,aACA;QACEO,UAAUb;QACVS,YAAYA;QACZK,WAAWnD,UAAUuB;QACrBA;QACA6B,WAAW5C,mCAAmC6C,IAAI;QAClDjB,KAAKd,IAAIc,GAAG;QACZF;QACA,GAAGb,MAAM;QACT,GAAGtB,QAAQqB,KAAK;IAClB,GACA;QACEkC,mBAAmBlE,kBAAkBmE,SAAS;IAChD;IAGFjE,WACE8B,MACA,GAAGuB,YAAY,aAAa,CAAC,EAC7B,CAACa;QACCA,OAAOC,WAAW,GAAG;QACrBtD,kCAAkCqD,QAAQ,SAAS;QACnDrD,kCAAkCqD,QAAQ,SAAS;QACnDA,OAAOE,OAAO,CAACC,OAAO,CAACC,OAAO,GAAG;YAC/B;SACD;QACDJ,OAAOE,OAAO,CAACG,KAAK,GAAG;YACrBC,OAAO;YACPC,UAAU;YACVC,QAAQ;gBAAC;aAAU;YACnBJ,SAAS;gBAAC;aAA6C;YACvDK,WAAW;gBAAC;gBAAU;aAAU;YAChCC,SAASrC,WAAW;gBAClBsC,KAAK;gBACLC,SAAS;YACX;QACF;QACAZ,OAAOE,OAAO,CAACW,OAAO,GAAG;YACvBP,OAAO;YACPC,UAAU;YACVC,QAAQ;gBAAC;aAA6C;YACtDJ,SAAS;gBAAC;aAA6C;YACvDK,WAAW;gBAAC;aAAQ;YACpBC,SAAS;gBACPE,SAAS3D,WACP,WACA;YAEJ;QACF;QACA+C,OAAOE,OAAO,CAACY,MAAM,GAAG;YACtBP,UAAU;YACVE,WAAW;gBAAC;gBAAU;aAAU;YAChCC,SAAShC,cACLL,WAAW;gBACTuC,SAAS,CAAC,sDAAsD,EAAEzB,aAAa;YACjF,KACAd,WAAW;gBACTsC,KAAK;gBACLC,SAAS;YACX;QACN;QACAZ,OAAOE,OAAO,CAAC,YAAY,GAAG;YAC5BK,UAAU;YACVG,SAASrC,WAAW;gBAClBsC,KAAK;gBACLC,SAAS,CAAC,0CAA0C,EAAE3B,wBAAwB;YAChF;QACF;QACAe,OAAOE,OAAO,CAACa,OAAO,GAAG;YACvBR,UAAU;YACVE,WAAW;gBAAC;gBAAU;aAAU;YAChCC,SAAShC,cACLL,WAAW;gBACTuC,SAAS,CAAC,uDAAuD,EAAEzB,aAAa;YAClF,KACAd,WAAW;gBACTsC,KAAK;gBACLC,SAAS;YACX;QACN;QACAZ,OAAOE,OAAO,CAAC,aAAa,GAAG;YAC7BK,UAAU;YACVG,SAASrC,WAAW;gBAClBsC,KAAK;gBACLC,SAAS,CAAC,2CAA2C,EAAE3B,wBAAwB;YACjF;QACF;QACAe,OAAOE,OAAO,CAACc,GAAG,GAAG;YACnBT,UAAU;YACVG,SAASrC,WAAW;gBAClBsC,KAAK;gBACLC,SAAS;YACX;QACF;QACAZ,OAAOE,OAAO,CAACe,SAAS,GAAG;YACzBV,UAAU;YACVG,SAASrC,WAAW;gBAClBsC,KAAK;gBACLC,SAAS;YACX;QACF;QACAZ,OAAOE,OAAO,GAAGnD,eAAeiD,OAAOE,OAAO;QAC9C,OAAOF;IACT;IAGFvE,6BACEmC,MACAJ,aAAa;QACX;QACA;QACA;QACA;QACA;KACD,GACDA,aAAa;QAAC;KAAM;IAGtB1B,WAAW8B,MAAM,GAAGuB,YAAY,kBAAkB,CAAC,EAAE,CAAC+B,WAAc,CAAA;YAClE,GAAGA,QAAQ;YACXC,YAAYjF,kBAAkBgF,SAASC,UAAU,EAAE;gBACjD;oBACEpF,MAAM,GAAGA,KAAKqF,QAAQ,CACpBjC,aACA,GAAGvB,KAAKwB,IAAI,CAAC,CAAC,EAAEjC,cAAc,EAC9B,CAAC,EAAEC,sBAAsB,kBAAkB,CAAC;gBAChD;mBACIsB,cACA;oBACE;wBACE3C,MAAM,GAAGA,KAAKqF,QAAQ,CACpBjC,aACA,GAAGvB,KAAKwB,IAAI,CAAC,CAAC,EAAEjC,cAAc,EAC9B,CAAC,EAAEE,wBAAwB,cAAc,CAAC;oBAC9C;iBACD,GACD,EAAE;aACP;QACH,CAAA;IAEA,MAAMf,gCAAgCsB,MAAM;QAACH;KAAyB;IAEtE,MAAMrB,qBAAqBwB;IAC3B,OAAO,IACLvB,oBAAoBuB,MAAMC,OAAOG,yBAAyB,EAAE;YAC1DqD,WAAW;gBAAC;aAAa;QAC3B;AACJ;AACA,eAAe1D,iBAAiB"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/infra/app/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type ProjectConfiguration,\n readProjectConfiguration,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport path from 'path';\nimport tsProjectGenerator, { getTsLibDetails } from '../../ts/lib/generator';\nimport { mergeTsReferences } from '../../ts/lib/ts-project-utils';\nimport { resolveContainers } from '../../utils/containers';\nimport { addDependenciesToPackageJson } from '../../utils/dependencies';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { esmVars } from '../../utils/module-format';\nimport { kebabCase } from '../../utils/names';\nimport { getNpmScopePrefix } from '../../utils/npm-scope';\nimport {\n addDependencyToTargetIfNotPresent,\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n projectExists,\n} from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport { getPackageManagerDisplayCommands } from '../../utils/pkg-manager';\nimport { uvxCommand } from '../../utils/py';\nimport { sharedConstructsGenerator } from '../../utils/shared-constructs';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_INFRA_CONFIG_DIR,\n} from '../../utils/shared-constructs-constants';\nimport { sharedInfraConfigGenerator } from '../../utils/shared-infra-config';\nimport { sharedInfraScriptsGenerator } from '../../utils/shared-infra-scripts';\nimport { withVersions } from '../../utils/versions';\nimport type { TsInfraGeneratorSchema } from './schema';\n\nexport const INFRA_APP_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport async function tsInfraGenerator(\n tree: Tree,\n schema: TsInfraGeneratorSchema,\n): Promise<GeneratorCallback> {\n const lib = getTsLibDetails(tree, schema);\n\n if (!projectExists(tree, lib.fullyQualifiedName)) {\n await tsProjectGenerator(tree, {\n ...schema,\n preferInstallDependencies: false,\n });\n }\n\n // CDK shells out to a container engine to build image assets. Default\n // (docker) needs no env override; finch is set via CDK_DOCKER per\n // https://docs.aws.amazon.com/cdk/v2/guide/build-containers.html#build-container-replace.\n const containers = await resolveContainers(tree, 'inherit');\n const cdkEnv: Record<string, string> | undefined =\n containers === 'docker' ? undefined : { CDK_DOCKER: containers };\n const withCdkEnv = <T extends Record<string, unknown>>(opts: T): T => {\n if (!cdkEnv) return opts;\n const existingEnv = (opts.env as Record<string, string> | undefined) ?? {};\n return { ...opts, env: { ...existingEnv, ...cdkEnv } } as T;\n };\n\n addGeneratorMetadata(tree, lib.fullyQualifiedName, INFRA_APP_GENERATOR_INFO);\n\n // Shared constructs always in CDK for typescript infra generator\n await sharedConstructsGenerator(tree, {\n iac: 'cdk',\n });\n\n // Shared infra-config and infra-scripts packages (lazy creation, only when enabled)\n const stageConfig = schema.stageConfig ?? false;\n if (stageConfig) {\n await sharedInfraConfigGenerator(tree);\n await sharedInfraScriptsGenerator(tree);\n }\n\n const synthDirFromRoot = `/dist/${lib.dir}/cdk.out`;\n const synthDirFromProject =\n lib.dir\n .split('/')\n .map(() => '..')\n .join('/') + `/dist/${lib.dir}/cdk.out`;\n const distDirFromProjectRoot =\n lib.dir\n .split('/')\n .map(() => '..')\n .join('/') + '/dist/{projectRoot}/cdk.out';\n const projectConfig = readProjectConfiguration(tree, lib.fullyQualifiedName);\n const libraryRoot = projectConfig.root;\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = npmScopePrefix;\n const fullyQualifiedName = `${npmScopePrefix}${schema.name}`;\n tree.delete(joinPathFragments(libraryRoot, 'src'));\n\n generateFiles(\n tree, // the virtual file system\n joinPathFragments(import.meta.dirname, './files/app'), // path to the file templates\n libraryRoot, // destination path of the files\n {\n synthDir: synthDirFromProject,\n scopeAlias: scopeAlias,\n namespace: kebabCase(fullyQualifiedName),\n fullyQualifiedName,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n dir: lib.dir,\n stageConfig,\n ...schema,\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n updateJson(\n tree,\n `${libraryRoot}/project.json`,\n (config: ProjectConfiguration) => {\n config.projectType = 'application';\n addDependencyToTargetIfNotPresent(config, 'build', 'synth');\n addDependencyToTargetIfNotPresent(config, 'build', 'checkov');\n config.targets.compile.outputs = [\n '{workspaceRoot}/dist/{projectRoot}/tsc',\n ];\n config.targets.synth = {\n cache: true,\n executor: 'nx:run-commands',\n inputs: ['default'],\n outputs: ['{workspaceRoot}/dist/{projectRoot}/cdk.out'],\n dependsOn: ['^build', 'compile'], // compile clobbers dist directory, so ensure synth runs afterwards\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk synth',\n }),\n };\n config.targets.checkov = {\n cache: true,\n executor: 'nx:run-commands',\n inputs: ['{workspaceRoot}/dist/{projectRoot}/cdk.out'],\n outputs: ['{workspaceRoot}/dist/{projectRoot}/checkov'],\n dependsOn: ['synth'],\n options: {\n command: uvxCommand(\n 'checkov',\n '--config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation',\n ),\n },\n };\n config.targets.deploy = {\n executor: 'nx:run-commands',\n dependsOn: ['^build', 'compile'],\n options: stageConfig\n ? withCdkEnv({\n command: `tsx packages/common/scripts/src/infra/infra-deploy.ts ${libraryRoot}`,\n })\n : withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk deploy --require-approval=never',\n }),\n };\n config.targets['deploy-ci'] = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: `cdk deploy --require-approval=never --app ${distDirFromProjectRoot}`,\n }),\n };\n config.targets.destroy = {\n executor: 'nx:run-commands',\n dependsOn: ['^build', 'compile'],\n options: stageConfig\n ? withCdkEnv({\n command: `tsx packages/common/scripts/src/infra/infra-destroy.ts ${libraryRoot}`,\n })\n : withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk destroy --require-approval=never',\n }),\n };\n config.targets['destroy-ci'] = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: `cdk destroy --require-approval=never --app ${distDirFromProjectRoot}`,\n }),\n };\n config.targets.cdk = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk',\n }),\n };\n config.targets.bootstrap = {\n executor: 'nx:run-commands',\n options: withCdkEnv({\n cwd: '{projectRoot}',\n command: 'cdk bootstrap',\n }),\n };\n config.targets = sortObjectKeys(config.targets);\n return config;\n },\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions(['aws-cdk-lib', 'constructs', 'source-map-support']),\n {},\n joinPathFragments(libraryRoot, 'package.json'),\n );\n // The `aws-cdk` CLI, esbuild (CDK bundling) and tsx are shared tooling.\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(['aws-cdk', 'esbuild', 'tsx']),\n );\n\n updateJson(tree, `${libraryRoot}/tsconfig.lib.json`, (tsConfig) => ({\n ...tsConfig,\n references: mergeTsReferences(tsConfig.references, [\n {\n path: `${path.relative(\n libraryRoot,\n `${tree.root}/${PACKAGES_DIR}`,\n )}/${SHARED_CONSTRUCTS_DIR}/tsconfig.lib.json`,\n },\n ...(stageConfig\n ? [\n {\n path: `${path.relative(\n libraryRoot,\n `${tree.root}/${PACKAGES_DIR}`,\n )}/${SHARED_INFRA_CONFIG_DIR}/tsconfig.json`,\n },\n ]\n : []),\n ]),\n }));\n\n await addGeneratorMetricsIfApplicable(tree, [INFRA_APP_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, schema.preferInstallDependencies, {\n languages: ['typescript'],\n });\n}\nexport default tsInfraGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","readProjectConfiguration","updateJson","path","tsProjectGenerator","getTsLibDetails","mergeTsReferences","resolveContainers","addDependenciesToPackageJson","formatFilesInSubtree","installDependencies","addGeneratorMetricsIfApplicable","esmVars","kebabCase","getNpmScopePrefix","addDependencyToTargetIfNotPresent","addGeneratorMetadata","getGeneratorInfo","projectExists","sortObjectKeys","getPackageManagerDisplayCommands","uvxCommand","sharedConstructsGenerator","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_INFRA_CONFIG_DIR","sharedInfraConfigGenerator","sharedInfraScriptsGenerator","withVersions","INFRA_APP_GENERATOR_INFO","filename","tsInfraGenerator","tree","schema","lib","fullyQualifiedName","preferInstallDependencies","containers","cdkEnv","undefined","CDK_DOCKER","withCdkEnv","opts","existingEnv","env","iac","stageConfig","synthDirFromRoot","dir","synthDirFromProject","split","map","join","distDirFromProjectRoot","projectConfig","libraryRoot","root","npmScopePrefix","scopeAlias","name","delete","dirname","synthDir","namespace","pkgMgrCmd","exec","overwriteStrategy","Overwrite","config","projectType","targets","compile","outputs","synth","cache","executor","inputs","dependsOn","options","cwd","command","checkov","deploy","destroy","cdk","bootstrap","tsConfig","references","relative","languages"],"mappings":"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"}
|
package/src/license/config.js
CHANGED
|
@@ -517,7 +517,7 @@ import { addDependencyToTargetIfNotPresent } from "../utils/nx.js";
|
|
|
517
517
|
/**
|
|
518
518
|
* Read license configuration
|
|
519
519
|
*/ export const readLicenseConfig = async (tree)=>{
|
|
520
|
-
return
|
|
520
|
+
return readAwsNxPluginConfig(tree)?.license;
|
|
521
521
|
};
|
|
522
522
|
|
|
523
523
|
//# sourceMappingURL=config.js.map
|