@aws/nx-plugin 1.0.5 → 1.0.6
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 +68 -90
- package/migrations.json +6 -6
- package/package.json +6 -6
- package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/migrations/v1.0.5/0001-api-custom-domain-runtime-config/migration.js.map +1 -0
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +6 -6
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +8 -8
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +4 -4
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +21 -21
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
- package/src/utils/docker.d.ts +1 -1
- package/src/utils/versions.d.ts +56 -56
- package/src/utils/versions.js +55 -55
- package/src/utils/versions.js.map +1 -1
- package/src/migrations/latest/api-custom-domain-runtime-config/migration.js.map +0 -1
- /package/src/migrations/{latest/api-custom-domain-runtime-config → v1.0.5/0001-api-custom-domain-runtime-config}/metadata.json +0 -0
- /package/src/migrations/{latest/api-custom-domain-runtime-config → v1.0.5/0001-api-custom-domain-runtime-config}/migration.d.ts +0 -0
- /package/src/migrations/{latest/api-custom-domain-runtime-config → v1.0.5/0001-api-custom-domain-runtime-config}/migration.js +0 -0
package/LICENSE-THIRD-PARTY
CHANGED
|
@@ -108,7 +108,7 @@ THE SOFTWARE.
|
|
|
108
108
|
|
|
109
109
|
---
|
|
110
110
|
|
|
111
|
-
The following software may be included in this product: @astral-sh/ruff-wasm-nodejs (0.16.
|
|
111
|
+
The following software may be included in this product: @astral-sh/ruff-wasm-nodejs (0.16.10)
|
|
112
112
|
This software contains the following license and notice below:
|
|
113
113
|
|
|
114
114
|
MIT License
|
|
@@ -3898,7 +3898,7 @@ SOFTWARE.
|
|
|
3898
3898
|
|
|
3899
3899
|
---
|
|
3900
3900
|
|
|
3901
|
-
The following software may be included in this product: @modelcontextprotocol/sdk (1.
|
|
3901
|
+
The following software may be included in this product: @modelcontextprotocol/sdk (1.32.0)
|
|
3902
3902
|
This software contains the following license and notice below:
|
|
3903
3903
|
|
|
3904
3904
|
MIT License
|
|
@@ -4247,7 +4247,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
4247
4247
|
|
|
4248
4248
|
---
|
|
4249
4249
|
|
|
4250
|
-
The following software may be included in this product: @nxlv/python (23.
|
|
4250
|
+
The following software may be included in this product: @nxlv/python (23.2.1)
|
|
4251
4251
|
This software contains the following license and notice below:
|
|
4252
4252
|
|
|
4253
4253
|
MIT License
|
|
@@ -16088,7 +16088,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
16088
16088
|
|
|
16089
16089
|
---
|
|
16090
16090
|
|
|
16091
|
-
The following software may be included in this product: vite (8.3.
|
|
16091
|
+
The following software may be included in this product: vite (8.3.2)
|
|
16092
16092
|
This software contains the following license and notice below:
|
|
16093
16093
|
|
|
16094
16094
|
# Vite core license
|
|
@@ -16767,35 +16767,6 @@ Repository: https://github.com/expressjs/cors
|
|
|
16767
16767
|
|
|
16768
16768
|
---------------------------------------
|
|
16769
16769
|
|
|
16770
|
-
## cross-spawn
|
|
16771
|
-
License: MIT
|
|
16772
|
-
By: André Cruz
|
|
16773
|
-
Repository: https://github.com/moxystudio/node-cross-spawn
|
|
16774
|
-
|
|
16775
|
-
> The MIT License (MIT)
|
|
16776
|
-
>
|
|
16777
|
-
> Copyright (c) 2018 Made With MOXY Lda <hello@moxy.studio>
|
|
16778
|
-
>
|
|
16779
|
-
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
16780
|
-
> of this software and associated documentation files (the "Software"), to deal
|
|
16781
|
-
> in the Software without restriction, including without limitation the rights
|
|
16782
|
-
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16783
|
-
> copies of the Software, and to permit persons to whom the Software is
|
|
16784
|
-
> furnished to do so, subject to the following conditions:
|
|
16785
|
-
>
|
|
16786
|
-
> The above copyright notice and this permission notice shall be included in
|
|
16787
|
-
> all copies or substantial portions of the Software.
|
|
16788
|
-
>
|
|
16789
|
-
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16790
|
-
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
16791
|
-
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16792
|
-
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
16793
|
-
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
16794
|
-
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
16795
|
-
> THE SOFTWARE.
|
|
16796
|
-
|
|
16797
|
-
---------------------------------------
|
|
16798
|
-
|
|
16799
16770
|
## cssesc
|
|
16800
16771
|
License: MIT
|
|
16801
16772
|
By: Mathias Bynens
|
|
@@ -17319,29 +17290,6 @@ Repository: https://github.com/Rich-Harris/is-reference
|
|
|
17319
17290
|
|
|
17320
17291
|
---------------------------------------
|
|
17321
17292
|
|
|
17322
|
-
## isexe, which
|
|
17323
|
-
License: ISC
|
|
17324
|
-
By: Isaac Z. Schlueter
|
|
17325
|
-
Repositories: https://github.com/isaacs/isexe, https://github.com/isaacs/node-which
|
|
17326
|
-
|
|
17327
|
-
> The ISC License
|
|
17328
|
-
>
|
|
17329
|
-
> Copyright (c) Isaac Z. Schlueter and Contributors
|
|
17330
|
-
>
|
|
17331
|
-
> Permission to use, copy, modify, and/or distribute this software for any
|
|
17332
|
-
> purpose with or without fee is hereby granted, provided that the above
|
|
17333
|
-
> copyright notice and this permission notice appear in all copies.
|
|
17334
|
-
>
|
|
17335
|
-
> THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
17336
|
-
> WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
17337
|
-
> MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
17338
|
-
> ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
17339
|
-
> WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
17340
|
-
> ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
17341
|
-
> IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
17342
|
-
|
|
17343
|
-
---------------------------------------
|
|
17344
|
-
|
|
17345
17293
|
## js-tokens
|
|
17346
17294
|
License: MIT
|
|
17347
17295
|
By: Simon Lydell
|
|
@@ -17762,23 +17710,6 @@ Repository: https://github.com/pillarjs/parseurl
|
|
|
17762
17710
|
|
|
17763
17711
|
---------------------------------------
|
|
17764
17712
|
|
|
17765
|
-
## path-key, shebang-regex
|
|
17766
|
-
License: MIT
|
|
17767
|
-
By: Sindre Sorhus
|
|
17768
|
-
Repositories: https://github.com/sindresorhus/path-key, https://github.com/sindresorhus/shebang-regex
|
|
17769
|
-
|
|
17770
|
-
> MIT License
|
|
17771
|
-
>
|
|
17772
|
-
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
|
17773
|
-
>
|
|
17774
|
-
> 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:
|
|
17775
|
-
>
|
|
17776
|
-
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
17777
|
-
>
|
|
17778
|
-
> 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.
|
|
17779
|
-
|
|
17780
|
-
---------------------------------------
|
|
17781
|
-
|
|
17782
17713
|
## periscopic
|
|
17783
17714
|
License: MIT
|
|
17784
17715
|
Repository: https://github.com/Rich-Harris/periscopic
|
|
@@ -18089,23 +18020,6 @@ Repositories: https://github.com/lukeed/resolve.exports, https://github.com/luke
|
|
|
18089
18020
|
|
|
18090
18021
|
---------------------------------------
|
|
18091
18022
|
|
|
18092
|
-
## shebang-command
|
|
18093
|
-
License: MIT
|
|
18094
|
-
By: Kevin Mårtensson
|
|
18095
|
-
Repository: https://github.com/kevva/shebang-command
|
|
18096
|
-
|
|
18097
|
-
> MIT License
|
|
18098
|
-
>
|
|
18099
|
-
> Copyright (c) Kevin Mårtensson <kevinmartensson@gmail.com> (github.com/kevva)
|
|
18100
|
-
>
|
|
18101
|
-
> 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:
|
|
18102
|
-
>
|
|
18103
|
-
> The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
18104
|
-
>
|
|
18105
|
-
> 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.
|
|
18106
|
-
|
|
18107
|
-
---------------------------------------
|
|
18108
|
-
|
|
18109
18023
|
## shell-quote
|
|
18110
18024
|
License: MIT
|
|
18111
18025
|
By: James Halliday
|
|
@@ -18211,6 +18125,35 @@ Repository: https://github.com/antfu/strip-literal
|
|
|
18211
18125
|
|
|
18212
18126
|
---------------------------------------
|
|
18213
18127
|
|
|
18128
|
+
## tinyexec
|
|
18129
|
+
License: MIT
|
|
18130
|
+
By: James Garbutt
|
|
18131
|
+
Repository: https://github.com/tinylibs/tinyexec
|
|
18132
|
+
|
|
18133
|
+
> MIT License
|
|
18134
|
+
>
|
|
18135
|
+
> Copyright (c) 2024 Tinylibs
|
|
18136
|
+
>
|
|
18137
|
+
> Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
18138
|
+
> of this software and associated documentation files (the "Software"), to deal
|
|
18139
|
+
> in the Software without restriction, including without limitation the rights
|
|
18140
|
+
> to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
18141
|
+
> copies of the Software, and to permit persons to whom the Software is
|
|
18142
|
+
> furnished to do so, subject to the following conditions:
|
|
18143
|
+
>
|
|
18144
|
+
> The above copyright notice and this permission notice shall be included in all
|
|
18145
|
+
> copies or substantial portions of the Software.
|
|
18146
|
+
>
|
|
18147
|
+
> THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18148
|
+
> IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18149
|
+
> FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18150
|
+
> AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
18151
|
+
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18152
|
+
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
18153
|
+
> SOFTWARE.
|
|
18154
|
+
|
|
18155
|
+
---------------------------------------
|
|
18156
|
+
|
|
18214
18157
|
## to-regex-range
|
|
18215
18158
|
License: MIT
|
|
18216
18159
|
By: Jon Schlinkert, Rouven Weßling
|
|
@@ -27569,6 +27512,41 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
27569
27512
|
|
|
27570
27513
|
---
|
|
27571
27514
|
|
|
27515
|
+
The following software may be included in this product: qs (6.16.0)
|
|
27516
|
+
This software contains the following license and notice below:
|
|
27517
|
+
|
|
27518
|
+
BSD 3-Clause License
|
|
27519
|
+
|
|
27520
|
+
Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors)
|
|
27521
|
+
All rights reserved.
|
|
27522
|
+
|
|
27523
|
+
Redistribution and use in source and binary forms, with or without
|
|
27524
|
+
modification, are permitted provided that the following conditions are met:
|
|
27525
|
+
|
|
27526
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
27527
|
+
list of conditions and the following disclaimer.
|
|
27528
|
+
|
|
27529
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
27530
|
+
this list of conditions and the following disclaimer in the documentation
|
|
27531
|
+
and/or other materials provided with the distribution.
|
|
27532
|
+
|
|
27533
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
27534
|
+
contributors may be used to endorse or promote products derived from
|
|
27535
|
+
this software without specific prior written permission.
|
|
27536
|
+
|
|
27537
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
27538
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
27539
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
27540
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
27541
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
27542
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
27543
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27544
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27545
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
27546
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
27547
|
+
|
|
27548
|
+
---
|
|
27549
|
+
|
|
27572
27550
|
The following software may be included in this product: smol-toml (1.6.1)
|
|
27573
27551
|
This software contains the following license and notice below:
|
|
27574
27552
|
|
package/migrations.json
CHANGED
|
@@ -2,11 +2,6 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/schema",
|
|
3
3
|
"name": "@aws/nx-plugin",
|
|
4
4
|
"generators": {
|
|
5
|
-
"latest-api-custom-domain-runtime-config": {
|
|
6
|
-
"version": "1.0.5",
|
|
7
|
-
"description": "Publish a configured custom domain as the API URL in runtime config for vended REST/HTTP API constructs and Terraform modules, and add custom domain inputs to the Terraform API modules",
|
|
8
|
-
"implementation": "./src/migrations/latest/api-custom-domain-runtime-config/migration"
|
|
9
|
-
},
|
|
10
5
|
"v1.0.0-rc.50-0001-modernize-function-props-cast": {
|
|
11
6
|
"version": "1.0.0-rc.50",
|
|
12
7
|
"description": "Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs",
|
|
@@ -382,8 +377,13 @@
|
|
|
382
377
|
"description": "Add the terraform-init target to Terraform projects so the shared provider plugin cache has a single writer",
|
|
383
378
|
"implementation": "./src/migrations/v1.0.3/0001-terraform-init-target/migration"
|
|
384
379
|
},
|
|
385
|
-
"
|
|
380
|
+
"v1.0.5-0001-api-custom-domain-runtime-config": {
|
|
386
381
|
"version": "1.0.5",
|
|
382
|
+
"description": "Publish a configured custom domain as the API URL in runtime config for vended REST/HTTP API constructs and Terraform modules, and add custom domain inputs to the Terraform API modules",
|
|
383
|
+
"implementation": "./src/migrations/v1.0.5/0001-api-custom-domain-runtime-config/migration"
|
|
384
|
+
},
|
|
385
|
+
"sync-vended-versions": {
|
|
386
|
+
"version": "1.0.6",
|
|
387
387
|
"description": "Sync vended dependency versions and the tracked plugin version to those vended by this release",
|
|
388
388
|
"implementation": "./src/utils/version-upgrade-migration/migration"
|
|
389
389
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws/nx-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/awslabs/nx-plugin-for-aws.git",
|
|
@@ -40,17 +40,17 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@apidevtools/swagger-parser": "12.1.0",
|
|
43
|
-
"@astral-sh/ruff-wasm-nodejs": "0.16.
|
|
43
|
+
"@astral-sh/ruff-wasm-nodejs": "0.16.10",
|
|
44
44
|
"@biomejs/js-api": "6.0.0",
|
|
45
|
-
"@biomejs/wasm-nodejs": "2.5.
|
|
45
|
+
"@biomejs/wasm-nodejs": "2.5.15",
|
|
46
46
|
"@getgrit/gritql": "0.0.3",
|
|
47
47
|
"@iarna/toml": "2.2.5",
|
|
48
|
-
"@modelcontextprotocol/sdk": "1.
|
|
48
|
+
"@modelcontextprotocol/sdk": "1.32.0",
|
|
49
49
|
"@nx/devkit": "23.2.1",
|
|
50
50
|
"@nx/js": "23.2.1",
|
|
51
51
|
"@nx/react": "23.2.1",
|
|
52
52
|
"@nx/vite": "23.2.1",
|
|
53
|
-
"@nxlv/python": "23.
|
|
53
|
+
"@nxlv/python": "23.2.1",
|
|
54
54
|
"@phenomnomnominal/tsquery": "6.2.0",
|
|
55
55
|
"@types/estree": "1.0.9",
|
|
56
56
|
"@types/js-yaml": "4.0.9",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"typescript": "6.0.3",
|
|
80
80
|
"unified": "11.0.5",
|
|
81
81
|
"unist-util-visit": "5.1.0",
|
|
82
|
-
"vite": "8.3.
|
|
82
|
+
"vite": "8.3.2",
|
|
83
83
|
"vitest": "4.1.11",
|
|
84
84
|
"zod": "4.6.5"
|
|
85
85
|
},
|
|
@@ -50,7 +50,7 @@ exports[`infra generator > should configure Checkov target correctly > checkov-t
|
|
|
50
50
|
"default",
|
|
51
51
|
],
|
|
52
52
|
"options": {
|
|
53
|
-
"command": "uvx --from checkov==3.3.
|
|
53
|
+
"command": "uvx --from checkov==3.3.22 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
|
|
54
54
|
},
|
|
55
55
|
"outputs": [
|
|
56
56
|
"{workspaceRoot}/dist/{projectRoot}/checkov",
|
|
@@ -150,7 +150,7 @@ exports[`infra generator > should configure project.json with correct targets >
|
|
|
150
150
|
"default",
|
|
151
151
|
],
|
|
152
152
|
"options": {
|
|
153
|
-
"command": "uvx --from checkov==3.3.
|
|
153
|
+
"command": "uvx --from checkov==3.3.22 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
|
|
154
154
|
},
|
|
155
155
|
"outputs": [
|
|
156
156
|
"{workspaceRoot}/dist/{projectRoot}/checkov",
|
|
@@ -762,7 +762,7 @@ exports[`infra generator > should handle custom project names correctly > custom
|
|
|
762
762
|
"default",
|
|
763
763
|
],
|
|
764
764
|
"options": {
|
|
765
|
-
"command": "uvx --from checkov==3.3.
|
|
765
|
+
"command": "uvx --from checkov==3.3.22 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
|
|
766
766
|
},
|
|
767
767
|
"outputs": [
|
|
768
768
|
"{workspaceRoot}/dist/{projectRoot}/checkov",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.5/0001-api-custom-domain-runtime-config/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n joinPathFragments,\n type MigrationReturnObject,\n type Tree,\n} from '@nx/devkit';\nimport {\n addDestructuredImport,\n applyGritQL,\n GRIT_INSERT_PLACEHOLDER,\n insertViaGritQL,\n matchGritQL,\n} from '../../../utils/ast.js';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../../../utils/shared-constructs-constants.js';\n\n/**\n * Publish an API's custom domain, when one is configured, as its URL in runtime\n * config, so clients call it rather than the generated execute-api endpoint.\n *\n * - The vended CDK `RestApi` publishes `https://<domainName>/[<basePath>/]` when\n * `domainName` is set.\n * - The vended CDK `HttpApi` forwards `defaultDomainMapping` to the stage it\n * creates (previously rejected by CDK, since the construct disables the\n * default stage) and publishes the mapping's domain URL.\n * - Each vended Terraform API app module (`app/apis/<name>/<name>.tf`) gains\n * `custom_domain_name` / `acm_certificate_arn` variables, the domain and\n * mapping resources, an `api_url` local published in runtime config, and\n * outputs for the URL and DNS record targets.\n *\n * These files are generated with `KeepExisting`, so an upgraded workspace keeps\n * the old shape until this runs. Diverged files are left untouched and\n * reported via `nextSteps`.\n */\n\nconst CONSTRUCTS_API_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/api`;\nconst REST_API_CONSTRUCT = `${CONSTRUCTS_API_DIR}/rest-api.ts`;\nconst HTTP_API_CONSTRUCT = `${CONSTRUCTS_API_DIR}/http-api.ts`;\nconst TERRAFORM_APIS_DIR = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/app/apis`;\n\nconst hcl = (pattern: string) => `language hcl\\n${pattern}`;\n\n/** Whether the pattern matches any `.tf` file in the Terraform module directory. */\nconst matchesInModule = async (\n tree: Tree,\n moduleDir: string,\n pattern: string,\n) => {\n for (const child of tree.children(moduleDir)) {\n const path = joinPathFragments(moduleDir, child);\n if (\n child.endsWith('.tf') &&\n tree.isFile(path) &&\n (await matchGritQL(tree, path, pattern))\n ) {\n return true;\n }\n }\n return false;\n};\n\n/** Whether every pattern matches the file. */\nconst matchesAll = async (tree: Tree, file: string, patterns: string[]) => {\n for (const pattern of patterns) {\n if (!(await matchGritQL(tree, file, pattern))) {\n return false;\n }\n }\n return true;\n};\n\nconst REST_RUNTIME_CONFIG_URL = `domainName\n ? \\`https://\\${domainName.domainName}/\\${domainName.basePath ? \\`\\${domainName.basePath}/\\` : ''}\\`\n : this.api.url!`;\n\nconst REST_DOMAIN_OUTPUTS = `// Target for the custom domain's DNS record\n if (domainName) {\n new CfnOutput(this, \\`\\${apiName}DomainNameAlias\\`, {\n value: this.api.domainName!.domainNameAliasDomainName,\n description:\n 'Domain name of the API Gateway endpoint (regional or edge) to point a CNAME record at for the custom domain, with any DNS provider',\n });\n new CfnOutput(this, \\`\\${apiName}DomainNameAliasHostedZoneId\\`, {\n value: this.api.domainName!.domainNameAliasHostedZoneId,\n description:\n 'Hosted zone ID of that domain name, needed only for a Route 53 alias record',\n });\n }`;\n\nconst HTTP_DOMAIN_OUTPUTS = `// Target for the custom domain's DNS record\n if (defaultDomainMapping) {\n new CfnOutput(this, \\`\\${apiName}DomainNameAlias\\`, {\n value: defaultDomainMapping.domainName.regionalDomainName,\n description:\n 'Regional domain name to point a CNAME record at for the custom domain, with any DNS provider',\n });\n new CfnOutput(this, \\`\\${apiName}DomainNameAliasHostedZoneId\\`, {\n value: defaultDomainMapping.domainName.regionalHostedZoneId,\n description:\n 'Hosted zone ID of the regional domain name, needed only for a Route 53 alias record',\n });\n }`;\n\nconst HTTP_DOMAIN_MAPPING_PROP = `/**\n * Custom domain mapped to the API's default stage\n */\n readonly defaultDomainMapping?: DomainMappingOptions & {\n readonly domainName: IDomainName;\n }`;\n\n/** Matches a DNS record output this migration adds. */\nconst DOMAIN_ALIAS_OUTPUT =\n '`new CfnOutput(this, $id, $_)` where { $id <: r\".*DomainNameAlias.*\" }';\n\n/** Rewrite inserting {@link GRIT_INSERT_PLACEHOLDER} after the runtime config registration. */\nconst AFTER_RUNTIME_CONFIG = `\\`$call;\\` as $statement where {\n $call <: \\`rc.set('connection', 'apis', $_)\\`,\n $statement => \\`$call;\\n\\n ${GRIT_INSERT_PLACEHOLDER}\\`\n}`;\n\nconst migrateRestApiConstruct = async (tree: Tree, nextSteps: string[]) => {\n const file = REST_API_CONSTRUCT;\n if (!tree.exists(file)) {\n return;\n }\n\n if (await matchGritQL(tree, file, '`[apiName]: domainName ? $_ : $_`')) {\n return; // Already migrated.\n }\n\n const shape = [\n '`{ $params }: RestApiProps<$_, $_>` where { $params <: contains `...props`, $params <: not contains `domainName` }',\n \"`new _RestApi(this, 'Api', { $props })` where { $props <: contains `...props`, $props <: not contains `domainName` }\",\n \"`rc.set('connection', 'apis', { $entries })` where { $entries <: contains `[apiName]: this.api.url!` }\",\n ];\n if (\n !(await matchesAll(tree, file, shape)) ||\n (await matchGritQL(tree, file, DOMAIN_ALIAS_OUTPUT))\n ) {\n nextSteps.push(\n `${file}: has diverged from the generated shape - left untouched. To publish a configured custom domain to clients, destructure \\`domainName\\` from the constructor props and pass it to the CDK RestApi, register \\`https://\\${domainName.domainName}/\\` (plus any \\`basePath\\`) under \\`[apiName]\\` in the \\`rc.set('connection', 'apis', ...)\\` call when it is set instead of \\`this.api.url\\`, and output \\`this.api.domainName.domainNameAliasDomainName\\` / \\`domainNameAliasHostedZoneId\\` for the DNS record.`,\n );\n return;\n }\n\n // Taken out of `props` and passed explicitly, so it is in scope below.\n await applyGritQL(\n tree,\n file,\n '`{ $params }: RestApiProps<$_, $_>` where { $params <: contains `...props` as $rest, $rest => `domainName,\\n ...props` }',\n );\n await applyGritQL(\n tree,\n file,\n \"`new _RestApi(this, 'Api', { $props })` where { $props <: contains `...props` as $spread, $spread => `...props,\\n domainName` }\",\n );\n await insertViaGritQL(\n tree,\n file,\n \"`rc.set('connection', 'apis', { $entries })` where { $entries <: contains `[apiName]: this.api.url!` as $url, $url => `[apiName]: __GRIT_INSERT_PLACEHOLDER__` }\",\n REST_RUNTIME_CONFIG_URL,\n );\n await insertViaGritQL(tree, file, AFTER_RUNTIME_CONFIG, REST_DOMAIN_OUTPUTS);\n // Listed first, as the generator vends it.\n const imported = await applyGritQL(\n tree,\n file,\n \"`import { $names } from 'aws-cdk-lib'` where { $names <: not contains `CfnOutput` } => `import { CfnOutput, $names } from 'aws-cdk-lib'`\",\n );\n if (!imported) {\n await addDestructuredImport(tree, file, ['CfnOutput'], 'aws-cdk-lib');\n }\n};\n\nconst HTTP_API_URL_FIELD = `/** The URL clients call: the custom domain's if one is mapped, otherwise the stage's */\n private readonly apiUrl: string`;\n\nconst HTTP_API_URL_ASSIGNMENT = `this.apiUrl = defaultDomainMapping\n ? this.defaultStage.domainUrl\n : this.defaultStage.url!;`;\n\n/** Matches the vended `url` getter, returning the stage URL. */\nconst HTTP_URL_GETTER =\n 'method_definition(name=$name, body=$body) where { $name <: `url`, $body <: contains `return this.defaultStage.url` }';\n\nconst migrateHttpApiConstruct = async (tree: Tree, nextSteps: string[]) => {\n const file = HTTP_API_CONSTRUCT;\n if (!tree.exists(file)) {\n return;\n }\n\n if (await matchGritQL(tree, file, '`[apiName]: this.apiUrl`')) {\n return; // Already migrated.\n }\n\n const shape = [\n 'interface_declaration(name=$name, body=$body) as $interface where { $name <: `HttpApiProps`, $interface <: contains extends_type_clause() as $extends, $extends <: contains `_HttpApiProps`, $extends <: not contains `Omit`, $body <: contains `readonly throttle?: ThrottleSettings`, $body <: not contains `defaultDomainMapping` }',\n \"`import { $names } from 'aws-cdk-lib/aws-apigatewayv2'` where { $names <: contains `HttpApi as _HttpApi`, $names <: contains `HttpStage`, $names <: not contains `DomainMappingOptions`, $names <: not contains `IDomainName` }\",\n '`public readonly defaultStage: HttpStage`',\n '`{ $params }: HttpApiProps<$_, $_>` where { $params <: contains `...props`, $params <: not contains `defaultDomainMapping` }',\n \"`this.defaultStage = new HttpStage(this, 'DefaultStage', { $props })` where { $props <: contains `httpApi: this.api`, $props <: not contains `domainMapping` }\",\n '`new CfnOutput(this, $_, { $props })` where { $props <: contains `value: this.defaultStage.url!` }',\n \"`rc.set('connection', 'apis', { $entries })` where { $entries <: contains `[apiName]: this.defaultStage.url!` }\",\n HTTP_URL_GETTER,\n ];\n if (\n !(await matchesAll(tree, file, shape)) ||\n (await matchGritQL(tree, file, DOMAIN_ALIAS_OUTPUT)) ||\n (await matchGritQL(tree, file, '`this.apiUrl`'))\n ) {\n nextSteps.push(\n `${file}: has diverged from the generated shape - left untouched. To support a custom domain, destructure \\`defaultDomainMapping\\` from the constructor props (so it is not passed to the CDK HttpApi, which rejects it when the default stage is disabled) and pass it as \\`domainMapping\\` to the \\`DefaultStage\\` HttpStage; use \\`this.defaultStage.domainUrl\\` instead of \\`this.defaultStage.url\\` when it is set, for the \\`<apiName>Url\\` output, runtime config and the \\`url\\` getter; and output \\`defaultDomainMapping.domainName.regionalDomainName\\` / \\`regionalHostedZoneId\\` for the DNS record.`,\n );\n return;\n }\n\n // Typed as a domain exposing its regional attributes, for the DNS outputs.\n await insertViaGritQL(\n tree,\n file,\n 'interface_declaration(name=$name, body=$body) where { $name <: `HttpApiProps`, $body <: contains `readonly throttle?: ThrottleSettings` as $throttle, $throttle => `readonly throttle?: ThrottleSettings;\\n __GRIT_INSERT_PLACEHOLDER__` }',\n HTTP_DOMAIN_MAPPING_PROP,\n );\n // Only the `_HttpApiProps` base is replaced, keeping any others.\n await applyGritQL(\n tree,\n file,\n \"interface_declaration(name=$name) as $interface where { $name <: `HttpApiProps`, $interface <: contains extends_type_clause() as $extends, $extends <: contains `_HttpApiProps` as $base, $base => `Omit<_HttpApiProps, 'defaultDomainMapping'>` }\",\n );\n // Inserted in sorted position, as the generator vends them.\n await applyGritQL(\n tree,\n file,\n \"`import { $names } from 'aws-cdk-lib/aws-apigatewayv2'` where { $names <: contains `HttpApi as _HttpApi` as $httpApi, $httpApi => `DomainMappingOptions,\\n HttpApi as _HttpApi` }\",\n );\n await applyGritQL(\n tree,\n file,\n \"`import { $names } from 'aws-cdk-lib/aws-apigatewayv2'` where { $names <: contains `HttpStage` as $stage, $stage => `HttpStage,\\n IDomainName` }\",\n );\n await insertViaGritQL(\n tree,\n file,\n '`public readonly defaultStage: HttpStage` as $field => `public readonly defaultStage: HttpStage;\\n\\n __GRIT_INSERT_PLACEHOLDER__`',\n HTTP_API_URL_FIELD,\n );\n // Taken out of `props` so it isn't passed to the CDK HttpApi.\n await applyGritQL(\n tree,\n file,\n '`{ $params }: HttpApiProps<$_, $_>` where { $params <: contains `...props` as $rest, $rest => `defaultDomainMapping,\\n ...props` }',\n );\n await applyGritQL(\n tree,\n file,\n \"`new HttpStage(this, 'DefaultStage', { $props })` where { $props <: contains `httpApi: this.api` as $httpApi, $httpApi => `httpApi: this.api,\\n domainMapping: defaultDomainMapping` }\",\n );\n // Computed once, for the stack output, runtime config and the `url` getter.\n await insertViaGritQL(\n tree,\n file,\n `expression_statement() as $statement where {\n $statement <: contains \\`this.defaultStage = new HttpStage($_, $_, $_)\\` as $assignment,\n $statement => \\`$assignment;\\n ${GRIT_INSERT_PLACEHOLDER}\\`\n}`,\n HTTP_API_URL_ASSIGNMENT,\n );\n await applyGritQL(\n tree,\n file,\n '`new CfnOutput(this, $_, { $props })` where { $props <: contains `value: this.defaultStage.url!` as $value, $value => `value: this.apiUrl` }',\n );\n await applyGritQL(\n tree,\n file,\n \"`rc.set('connection', 'apis', { $entries })` where { $entries <: contains `[apiName]: this.defaultStage.url!` as $url, $url => `[apiName]: this.apiUrl` }\",\n );\n await applyGritQL(\n tree,\n file,\n 'method_definition(name=$name, body=$body) where { $name <: `url`, $body <: contains `return this.defaultStage.url` as $return, $return => `return this.apiUrl` }',\n );\n await insertViaGritQL(tree, file, AFTER_RUNTIME_CONFIG, HTTP_DOMAIN_OUTPUTS);\n};\n\nconst TERRAFORM_VARIABLES = `# Custom domain configuration\nvariable \"custom_domain_name\" {\n description = \"Custom domain name for the API. Requires acm_certificate_arn.\"\n type = string\n default = null\n}\n\nvariable \"acm_certificate_arn\" {\n description = \"ARN of an ACM certificate (in the API's region) for the custom domain name.\"\n type = string\n default = null\n}`;\n\n/** The differences between the REST and HTTP Terraform app modules. */\ninterface TerraformApi {\n kind: 'REST' | 'HTTP';\n /** A block only this kind of app module declares. */\n identifyingBlock: string;\n /** Matches exactly the runtime config `value` the app module was generated with. */\n runtimeConfigUrl: string;\n /** Types of the custom domain and mapping resources this migration adds. */\n domainResourceTypes: [string, string];\n domainResources: string;\n /** The `api_url` local, published in runtime config. */\n apiUrlLocal: string;\n outputs: string;\n}\n\nconst REST_TERRAFORM: TerraformApi = {\n kind: 'REST',\n identifyingBlock: '`resource \"aws_api_gateway_stage\" \"api_stage\" { $_ }`',\n runtimeConfigUrl:\n '$v <: r\"\\\\\"\\\\$\\\\{aws_api_gateway_stage\\\\.api_stage\\\\.invoke_url\\\\}/\\\\\"\"',\n domainResourceTypes: [\n 'aws_api_gateway_domain_name',\n 'aws_api_gateway_base_path_mapping',\n ],\n domainResources: `# Custom domain for the API, served without the stage path prefix\nresource \"aws_api_gateway_domain_name\" \"custom_domain\" {\n count = var.custom_domain_name == null ? 0 : 1\n\n domain_name = var.custom_domain_name\n regional_certificate_arn = var.acm_certificate_arn\n security_policy = \"TLS_1_2\"\n\n endpoint_configuration {\n types = [\"REGIONAL\"]\n }\n\n tags = var.tags\n\n lifecycle {\n precondition {\n condition = var.acm_certificate_arn != null\n error_message = \"acm_certificate_arn is required when custom_domain_name is set.\"\n }\n }\n}\n\nresource \"aws_api_gateway_base_path_mapping\" \"custom_domain\" {\n count = var.custom_domain_name == null ? 0 : 1\n\n api_id = module.rest_api.api_id\n stage_name = aws_api_gateway_stage.api_stage.stage_name\n domain_name = aws_api_gateway_domain_name.custom_domain[0].domain_name\n}`,\n apiUrlLocal: `locals {\n api_url = var.custom_domain_name == null ? \"\\${aws_api_gateway_stage.api_stage.invoke_url}/\" : \"https://\\${var.custom_domain_name}/\"\n}`,\n outputs: `output \"api_url\" {\n description = \"URL clients should call: the custom domain if configured, otherwise the stage invoke URL\"\n value = local.api_url\n}\n\noutput \"custom_domain_target_domain_name\" {\n description = \"Target domain name to point a DNS alias or CNAME record at for the custom domain\"\n value = var.custom_domain_name == null ? null : aws_api_gateway_domain_name.custom_domain[0].regional_domain_name\n}\n\noutput \"custom_domain_hosted_zone_id\" {\n description = \"Hosted zone ID to use for a Route 53 alias record for the custom domain\"\n value = var.custom_domain_name == null ? null : aws_api_gateway_domain_name.custom_domain[0].regional_zone_id\n}`,\n};\n\nconst HTTP_TERRAFORM: TerraformApi = {\n kind: 'HTTP',\n identifyingBlock: '`module \"http_api\" { $_ }`',\n runtimeConfigUrl: '$v <: `module.http_api.stage_invoke_url`',\n domainResourceTypes: [\n 'aws_apigatewayv2_domain_name',\n 'aws_apigatewayv2_api_mapping',\n ],\n domainResources: `# Custom domain for the API\nresource \"aws_apigatewayv2_domain_name\" \"custom_domain\" {\n count = var.custom_domain_name == null ? 0 : 1\n\n domain_name = var.custom_domain_name\n\n domain_name_configuration {\n certificate_arn = var.acm_certificate_arn\n endpoint_type = \"REGIONAL\"\n security_policy = \"TLS_1_2\"\n }\n\n tags = var.tags\n\n lifecycle {\n precondition {\n condition = var.acm_certificate_arn != null\n error_message = \"acm_certificate_arn is required when custom_domain_name is set.\"\n }\n }\n}\n\nresource \"aws_apigatewayv2_api_mapping\" \"custom_domain\" {\n count = var.custom_domain_name == null ? 0 : 1\n\n api_id = module.http_api.api_id\n stage = module.http_api.stage_id\n domain_name = aws_apigatewayv2_domain_name.custom_domain[0].domain_name\n}`,\n apiUrlLocal: `locals {\n api_url = var.custom_domain_name == null ? module.http_api.stage_invoke_url : \"https://\\${var.custom_domain_name}/\"\n}`,\n outputs: `output \"api_url\" {\n description = \"URL clients should call: the custom domain if configured, otherwise the stage invoke URL\"\n value = local.api_url\n}\n\noutput \"custom_domain_target_domain_name\" {\n description = \"Target domain name to point a DNS alias or CNAME record at for the custom domain\"\n value = var.custom_domain_name == null ? null : aws_apigatewayv2_domain_name.custom_domain[0].domain_name_configuration[0].target_domain_name\n}\n\noutput \"custom_domain_hosted_zone_id\" {\n description = \"Hosted zone ID to use for a Route 53 alias record for the custom domain\"\n value = var.custom_domain_name == null ? null : aws_apigatewayv2_domain_name.custom_domain[0].domain_name_configuration[0].hosted_zone_id\n}`,\n};\n\nconst RUNTIME_CONFIG_MODULE = '`module \"add_url_to_runtime_config\" { $body }`';\n\n/** The `locals` block every vended API app module declares its IAM policy statements in. */\nconst POLICY_LOCALS =\n '`locals { $body }` where { $body <: contains `lambda_policy_statements = $_` }';\n\n/** Rewrite matching the block's text back unchanged, then the placeholder after it. */\nconst appendAfterBlock = (header: string) =>\n hcl(\n `\\`${header} { $body }\\` => \\`${header} {\\n $body\\n}\\n\\n${GRIT_INSERT_PLACEHOLDER}\\``,\n );\n\nconst migrateTerraformApi = async (\n tree: Tree,\n moduleDir: string,\n file: string,\n nextSteps: string[],\n) => {\n const api = (await matchGritQL(\n tree,\n file,\n hcl(REST_TERRAFORM.identifyingBlock),\n ))\n ? REST_TERRAFORM\n : (await matchGritQL(tree, file, hcl(HTTP_TERRAFORM.identifyingBlock)))\n ? HTTP_TERRAFORM\n : undefined;\n if (!api) {\n return; // Not a vended API app module.\n }\n\n // Everything this migration declares, so a re-run recognises its own output\n // and nothing it inserts collides with an existing declaration. Terraform\n // merges every `.tf` file in the module directory, so all are checked.\n const [domainType, mappingType] = api.domainResourceTypes;\n const declarations = [\n '`variable \"custom_domain_name\" { $_ }`',\n '`variable \"acm_certificate_arn\" { $_ }`',\n `\\`resource \"${domainType}\" \"custom_domain\" { $_ }\\``,\n `\\`resource \"${mappingType}\" \"custom_domain\" { $_ }\\``,\n '`locals { $body }` where { $body <: contains `api_url = $_` }',\n '`output \"api_url\" { $_ }`',\n '`output \"custom_domain_target_domain_name\" { $_ }`',\n '`output \"custom_domain_hosted_zone_id\" { $_ }`',\n ];\n let declared = 0;\n for (const declaration of declarations) {\n if (await matchesInModule(tree, moduleDir, hcl(declaration))) {\n declared++;\n }\n }\n const publishesApiUrl = await matchGritQL(\n tree,\n file,\n hcl(\n `${RUNTIME_CONFIG_MODULE} where { $body <: contains \\`value = { $_ = local.api_url }\\` }`,\n ),\n );\n if (declared === declarations.length && publishesApiUrl) {\n return; // Already migrated.\n }\n if (declared > 0 || publishesApiUrl) {\n nextSteps.push(\n `${file}: this module (${moduleDir}) already declares some of the custom domain configuration this migration adds (custom_domain_name / acm_certificate_arn variables, the custom_domain resources, local.api_url, or the api_url / custom_domain_* outputs) - left untouched. Make sure the add_url_to_runtime_config module publishes the custom domain URL when one is configured, instead of the stage invoke URL (see the ${api.kind} API app module the plugin now generates).`,\n );\n return;\n }\n\n const runtimeConfigValue = `${RUNTIME_CONFIG_MODULE} where { $body <: contains \\`value = { $_ = $v }\\`, ${api.runtimeConfigUrl} }`;\n const shape = [\n hcl('`variable \"tags\" { $_ }`'),\n hcl(runtimeConfigValue),\n hcl(POLICY_LOCALS),\n hcl('`output \"stage_invoke_url\" { $_ }`'),\n ];\n if (!(await matchesAll(tree, file, shape))) {\n nextSteps.push(\n `${file}: has diverged from the generated shape - left untouched. To support a custom domain for this ${api.kind} API, add custom_domain_name and acm_certificate_arn variables, the custom domain and mapping resources, and publish the custom domain URL in the add_url_to_runtime_config module when it is set (see the ${api.kind} API app module the plugin now generates).`,\n );\n return;\n }\n\n await insertViaGritQL(\n tree,\n file,\n appendAfterBlock('variable \"tags\"'),\n TERRAFORM_VARIABLES,\n );\n // Only the URL expression is rewritten, preserving `terraform fmt` alignment.\n await applyGritQL(\n tree,\n file,\n hcl(\n `${RUNTIME_CONFIG_MODULE} where { $body <: contains \\`value = { $_ = $v }\\`, ${api.runtimeConfigUrl}, $v => \\`local.api_url\\` }`,\n ),\n );\n // Alongside the module's other locals.\n await insertViaGritQL(\n tree,\n file,\n hcl(\n `${POLICY_LOCALS} => \\`locals {\\n $body\\n}\\n\\n${GRIT_INSERT_PLACEHOLDER}\\``,\n ),\n api.apiUrlLocal,\n );\n await insertViaGritQL(\n tree,\n file,\n appendAfterBlock('module \"add_url_to_runtime_config\"'),\n api.domainResources,\n );\n await insertViaGritQL(\n tree,\n file,\n appendAfterBlock('output \"stage_invoke_url\"'),\n api.outputs,\n );\n};\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n await migrateRestApiConstruct(tree, nextSteps);\n await migrateHttpApiConstruct(tree, nextSteps);\n\n if (tree.exists(TERRAFORM_APIS_DIR)) {\n for (const dirName of tree.children(TERRAFORM_APIS_DIR)) {\n const moduleDir = joinPathFragments(TERRAFORM_APIS_DIR, dirName);\n const file = joinPathFragments(moduleDir, `${dirName}.tf`);\n if (tree.exists(file)) {\n await migrateTerraformApi(tree, moduleDir, file, nextSteps);\n }\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["joinPathFragments","addDestructuredImport","applyGritQL","GRIT_INSERT_PLACEHOLDER","insertViaGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","CONSTRUCTS_API_DIR","REST_API_CONSTRUCT","HTTP_API_CONSTRUCT","TERRAFORM_APIS_DIR","hcl","pattern","matchesInModule","tree","moduleDir","child","children","path","endsWith","isFile","matchesAll","file","patterns","REST_RUNTIME_CONFIG_URL","REST_DOMAIN_OUTPUTS","HTTP_DOMAIN_OUTPUTS","HTTP_DOMAIN_MAPPING_PROP","DOMAIN_ALIAS_OUTPUT","AFTER_RUNTIME_CONFIG","migrateRestApiConstruct","nextSteps","exists","shape","push","imported","HTTP_API_URL_FIELD","HTTP_API_URL_ASSIGNMENT","HTTP_URL_GETTER","migrateHttpApiConstruct","TERRAFORM_VARIABLES","REST_TERRAFORM","kind","identifyingBlock","runtimeConfigUrl","domainResourceTypes","domainResources","apiUrlLocal","outputs","HTTP_TERRAFORM","RUNTIME_CONFIG_MODULE","POLICY_LOCALS","appendAfterBlock","header","migrateTerraformApi","api","undefined","domainType","mappingType","declarations","declared","declaration","publishesApiUrl","length","runtimeConfigValue","migration","dirName"],"mappings":"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"}
|
|
@@ -253,7 +253,7 @@ export default {
|
|
|
253
253
|
|
|
254
254
|
exports[`preset generator > should run successfully > biome.json 1`] = `
|
|
255
255
|
"{
|
|
256
|
-
"$schema": "https://biomejs.dev/schemas/2.5.
|
|
256
|
+
"$schema": "https://biomejs.dev/schemas/2.5.15/schema.json",
|
|
257
257
|
"root": true,
|
|
258
258
|
"formatter": {
|
|
259
259
|
"enabled": true,
|
|
@@ -422,7 +422,7 @@ catalog:
|
|
|
422
422
|
'@nx/js': 23.2.1
|
|
423
423
|
'@nx/workspace': 23.2.1
|
|
424
424
|
typescript: ~6.0.3
|
|
425
|
-
'@biomejs/biome': 2.5.
|
|
425
|
+
'@biomejs/biome': 2.5.15
|
|
426
426
|
'@aws/nx-plugin': ^0.0.0
|
|
427
427
|
'@aws/nx-plugin-mcp': ^0.0.0
|
|
428
428
|
"
|
|
@@ -764,18 +764,18 @@ version = "0.1.0"
|
|
|
764
764
|
dependencies = [
|
|
765
765
|
"proj-agent-connection",
|
|
766
766
|
"aws-lambda-powertools==3.35.0",
|
|
767
|
-
"aws-opentelemetry-distro==0.
|
|
768
|
-
"bedrock-agentcore==1.
|
|
769
|
-
"boto3==1.43.
|
|
770
|
-
"fastapi==0.
|
|
767
|
+
"aws-opentelemetry-distro==0.21.0",
|
|
768
|
+
"bedrock-agentcore==1.24.0",
|
|
769
|
+
"boto3==1.43.108",
|
|
770
|
+
"fastapi==0.142.2",
|
|
771
771
|
"mcp==1.28.1",
|
|
772
|
-
"strands-agents==1.57.
|
|
772
|
+
"strands-agents==1.57.2",
|
|
773
773
|
"strands-agents-tools==0.8.9",
|
|
774
774
|
"uvicorn==0.54.0"
|
|
775
775
|
]
|
|
776
776
|
|
|
777
777
|
[dependency-groups]
|
|
778
|
-
dev = [ "fastapi[standard]==0.
|
|
778
|
+
dev = [ "fastapi[standard]==0.142.2" ]
|
|
779
779
|
|
|
780
780
|
[tool.uv]
|
|
781
781
|
dev-dependencies = [ ]
|
|
@@ -702,23 +702,23 @@ version = "0.1.0"
|
|
|
702
702
|
dependencies = [
|
|
703
703
|
"proj-agent-connection",
|
|
704
704
|
"aws-lambda-powertools==3.35.0",
|
|
705
|
-
"aws-opentelemetry-distro==0.
|
|
706
|
-
"bedrock-agentcore==1.
|
|
707
|
-
"boto3==1.43.
|
|
708
|
-
"fastapi==0.
|
|
705
|
+
"aws-opentelemetry-distro==0.21.0",
|
|
706
|
+
"bedrock-agentcore==1.24.0",
|
|
707
|
+
"boto3==1.43.108",
|
|
708
|
+
"fastapi==0.142.2",
|
|
709
709
|
"mcp==1.28.1",
|
|
710
|
-
"langchain==1.4.
|
|
711
|
-
"langchain-aws==1.
|
|
710
|
+
"langchain==1.4.3",
|
|
711
|
+
"langchain-aws==1.8.0",
|
|
712
712
|
"langgraph==1.2.12",
|
|
713
713
|
"langgraph-checkpoint-sqlite==3.1.1",
|
|
714
714
|
"aiosqlite==0.22.1",
|
|
715
715
|
"ag-ui-protocol==0.1.22",
|
|
716
|
-
"ag-ui-langgraph==0.0.
|
|
716
|
+
"ag-ui-langgraph==0.0.46",
|
|
717
717
|
"uvicorn==0.54.0"
|
|
718
718
|
]
|
|
719
719
|
|
|
720
720
|
[dependency-groups]
|
|
721
|
-
dev = [ "fastapi[standard]==0.
|
|
721
|
+
dev = [ "fastapi[standard]==0.142.2" ]
|
|
722
722
|
|
|
723
723
|
[tool.uv]
|
|
724
724
|
dev-dependencies = [ ]
|
|
@@ -5,7 +5,7 @@ exports[`py#agent generator > should create DynamoDB checkpoint table and S3 off
|
|
|
5
5
|
required_providers {
|
|
6
6
|
aws = {
|
|
7
7
|
source = "hashicorp/aws"
|
|
8
|
-
version = "6.
|
|
8
|
+
version = "6.67.0"
|
|
9
9
|
}
|
|
10
10
|
random = {
|
|
11
11
|
source = "hashicorp/random"
|
|
@@ -381,7 +381,7 @@ exports[`py#agent generator > should match snapshot for Terraform generated file
|
|
|
381
381
|
required_providers {
|
|
382
382
|
aws = {
|
|
383
383
|
source = "hashicorp/aws"
|
|
384
|
-
version = "6.
|
|
384
|
+
version = "6.67.0"
|
|
385
385
|
}
|
|
386
386
|
random = {
|
|
387
387
|
source = "hashicorp/random"
|
|
@@ -704,7 +704,7 @@ exports[`py#agent generator > should match snapshot for Terraform generated file
|
|
|
704
704
|
required_providers {
|
|
705
705
|
aws = {
|
|
706
706
|
source = "hashicorp/aws"
|
|
707
|
-
version = "6.
|
|
707
|
+
version = "6.67.0"
|
|
708
708
|
}
|
|
709
709
|
null = {
|
|
710
710
|
source = "hashicorp/null"
|
|
@@ -1063,7 +1063,7 @@ resource "null_resource" "runtime_ready" {
|
|
|
1063
1063
|
|
|
1064
1064
|
provisioner "local-exec" {
|
|
1065
1065
|
command = <<-EOT
|
|
1066
|
-
uv run --with boto3==1.43.
|
|
1066
|
+
uv run --with boto3==1.43.108 python -c "
|
|
1067
1067
|
import boto3
|
|
1068
1068
|
import json
|
|
1069
1069
|
import os
|
|
@@ -35,7 +35,7 @@ exports[`py#dynamodb generator > should generate terraform modules when iac is t
|
|
|
35
35
|
required_providers {
|
|
36
36
|
aws = {
|
|
37
37
|
source = "hashicorp/aws"
|
|
38
|
-
version = "6.
|
|
38
|
+
version = "6.67.0"
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -232,7 +232,7 @@ exports[`py#dynamodb generator > should generate terraform modules when iac is t
|
|
|
232
232
|
required_providers {
|
|
233
233
|
aws = {
|
|
234
234
|
source = "hashicorp/aws"
|
|
235
|
-
version = "6.
|
|
235
|
+
version = "6.67.0"
|
|
236
236
|
}
|
|
237
237
|
random = {
|
|
238
238
|
source = "hashicorp/random"
|
|
@@ -11,7 +11,7 @@ terraform {
|
|
|
11
11
|
required_providers {
|
|
12
12
|
aws = {
|
|
13
13
|
source = "hashicorp/aws"
|
|
14
|
-
version = "6.
|
|
14
|
+
version = "6.67.0"
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -262,7 +262,7 @@ output "api_log_group_arn" {
|
|
|
262
262
|
}
|
|
263
263
|
aws = {
|
|
264
264
|
source = "hashicorp/aws"
|
|
265
|
-
version = "6.
|
|
265
|
+
version = "6.67.0"
|
|
266
266
|
}
|
|
267
267
|
random = {
|
|
268
268
|
source = "hashicorp/random"
|
|
@@ -908,7 +908,7 @@ terraform {
|
|
|
908
908
|
required_providers {
|
|
909
909
|
aws = {
|
|
910
910
|
source = "hashicorp/aws"
|
|
911
|
-
version = "6.
|
|
911
|
+
version = "6.67.0"
|
|
912
912
|
}
|
|
913
913
|
}
|
|
914
914
|
}
|
|
@@ -1159,7 +1159,7 @@ output "api_log_group_arn" {
|
|
|
1159
1159
|
}
|
|
1160
1160
|
aws = {
|
|
1161
1161
|
source = "hashicorp/aws"
|
|
1162
|
-
version = "6.
|
|
1162
|
+
version = "6.67.0"
|
|
1163
1163
|
}
|
|
1164
1164
|
random = {
|
|
1165
1165
|
source = "hashicorp/random"
|
|
@@ -1878,7 +1878,7 @@ terraform {
|
|
|
1878
1878
|
required_providers {
|
|
1879
1879
|
aws = {
|
|
1880
1880
|
source = "hashicorp/aws"
|
|
1881
|
-
version = "6.
|
|
1881
|
+
version = "6.67.0"
|
|
1882
1882
|
}
|
|
1883
1883
|
}
|
|
1884
1884
|
}
|
|
@@ -2129,7 +2129,7 @@ output "api_log_group_arn" {
|
|
|
2129
2129
|
}
|
|
2130
2130
|
aws = {
|
|
2131
2131
|
source = "hashicorp/aws"
|
|
2132
|
-
version = "6.
|
|
2132
|
+
version = "6.67.0"
|
|
2133
2133
|
}
|
|
2134
2134
|
random = {
|
|
2135
2135
|
source = "hashicorp/random"
|
|
@@ -2752,7 +2752,7 @@ terraform {
|
|
|
2752
2752
|
required_providers {
|
|
2753
2753
|
aws = {
|
|
2754
2754
|
source = "hashicorp/aws"
|
|
2755
|
-
version = "6.
|
|
2755
|
+
version = "6.67.0"
|
|
2756
2756
|
}
|
|
2757
2757
|
random = {
|
|
2758
2758
|
source = "hashicorp/random"
|
|
@@ -3065,7 +3065,7 @@ output "waf_web_acl_arn" {
|
|
|
3065
3065
|
}
|
|
3066
3066
|
aws = {
|
|
3067
3067
|
source = "hashicorp/aws"
|
|
3068
|
-
version = "6.
|
|
3068
|
+
version = "6.67.0"
|
|
3069
3069
|
}
|
|
3070
3070
|
random = {
|
|
3071
3071
|
source = "hashicorp/random"
|
|
@@ -4162,7 +4162,7 @@ terraform {
|
|
|
4162
4162
|
required_providers {
|
|
4163
4163
|
aws = {
|
|
4164
4164
|
source = "hashicorp/aws"
|
|
4165
|
-
version = "6.
|
|
4165
|
+
version = "6.67.0"
|
|
4166
4166
|
}
|
|
4167
4167
|
random = {
|
|
4168
4168
|
source = "hashicorp/random"
|
|
@@ -4475,7 +4475,7 @@ output "waf_web_acl_arn" {
|
|
|
4475
4475
|
}
|
|
4476
4476
|
aws = {
|
|
4477
4477
|
source = "hashicorp/aws"
|
|
4478
|
-
version = "6.
|
|
4478
|
+
version = "6.67.0"
|
|
4479
4479
|
}
|
|
4480
4480
|
random = {
|
|
4481
4481
|
source = "hashicorp/random"
|
|
@@ -5561,7 +5561,7 @@ terraform {
|
|
|
5561
5561
|
required_providers {
|
|
5562
5562
|
aws = {
|
|
5563
5563
|
source = "hashicorp/aws"
|
|
5564
|
-
version = "6.
|
|
5564
|
+
version = "6.67.0"
|
|
5565
5565
|
}
|
|
5566
5566
|
random = {
|
|
5567
5567
|
source = "hashicorp/random"
|
|
@@ -5874,7 +5874,7 @@ output "waf_web_acl_arn" {
|
|
|
5874
5874
|
}
|
|
5875
5875
|
aws = {
|
|
5876
5876
|
source = "hashicorp/aws"
|
|
5877
|
-
version = "6.
|
|
5877
|
+
version = "6.67.0"
|
|
5878
5878
|
}
|
|
5879
5879
|
random = {
|
|
5880
5880
|
source = "hashicorp/random"
|