@aws/nx-plugin 1.0.0-rc.7 → 1.0.0-rc.71

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.
Files changed (1358) hide show
  1. package/LICENSE-THIRD-PARTY +7044 -6135
  2. package/README.md +9 -7
  3. package/generators.json +152 -10
  4. package/migrations.json +161 -0
  5. package/package.json +41 -22
  6. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +295 -0
  7. package/src/agentcore-gateway/agent-connection/generator.d.ts +19 -0
  8. package/src/agentcore-gateway/agent-connection/generator.js +95 -0
  9. package/src/agentcore-gateway/agent-connection/generator.js.map +1 -0
  10. package/src/agentcore-gateway/agent-connection/schema.d.js +6 -0
  11. package/src/agentcore-gateway/agent-connection/schema.d.js.map +1 -0
  12. package/src/agentcore-gateway/agent-connection/schema.d.ts +13 -0
  13. package/src/agentcore-gateway/agent-connection/schema.json +31 -0
  14. package/src/agentcore-gateway/attach-upstream.d.ts +49 -0
  15. package/src/agentcore-gateway/attach-upstream.js +59 -0
  16. package/src/agentcore-gateway/attach-upstream.js.map +1 -0
  17. package/src/agentcore-gateway/files/cedar/policies/README.md +61 -0
  18. package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +26 -0
  19. package/src/agentcore-gateway/files/project/http/local-dev.ts.template +77 -0
  20. package/src/agentcore-gateway/files/project/mcp/local-dev.ts.template +134 -0
  21. package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
  22. package/src/agentcore-gateway/gateway-connection/generator.js +103 -0
  23. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
  24. package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
  25. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
  26. package/src/agentcore-gateway/gateway-connection/schema.d.ts +13 -0
  27. package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
  28. package/src/agentcore-gateway/generator.d.ts +89 -0
  29. package/src/agentcore-gateway/generator.js +212 -0
  30. package/src/agentcore-gateway/generator.js.map +1 -0
  31. package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
  32. package/src/agentcore-gateway/mcp-connection/generator.js +61 -0
  33. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
  34. package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
  35. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
  36. package/src/agentcore-gateway/mcp-connection/schema.d.ts +13 -0
  37. package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
  38. package/src/agentcore-gateway/react-connection/__snapshots__/generator.spec.ts.snap +68 -0
  39. package/src/agentcore-gateway/react-connection/generator.d.ts +19 -0
  40. package/src/agentcore-gateway/react-connection/generator.js +119 -0
  41. package/src/agentcore-gateway/react-connection/generator.js.map +1 -0
  42. package/src/agentcore-gateway/react-connection/schema.d.js +6 -0
  43. package/src/agentcore-gateway/react-connection/schema.d.js.map +1 -0
  44. package/src/agentcore-gateway/react-connection/schema.d.ts +13 -0
  45. package/src/agentcore-gateway/react-connection/schema.json +31 -0
  46. package/src/agentcore-gateway/schema.d.js +6 -0
  47. package/src/agentcore-gateway/schema.d.js.map +1 -0
  48. package/src/agentcore-gateway/schema.d.ts +17 -0
  49. package/src/agentcore-gateway/schema.json +72 -0
  50. package/src/agentcore-harness/__snapshots__/generator.spec.ts.snap +238 -0
  51. package/src/agentcore-harness/files/project/README.md.template +83 -0
  52. package/src/agentcore-harness/files/project/scripts/chat.ts.template +99 -0
  53. package/src/agentcore-harness/files/project/src/PROMPT.md.template +16 -0
  54. package/src/agentcore-harness/generator.d.ts +62 -0
  55. package/src/agentcore-harness/generator.js +158 -0
  56. package/src/agentcore-harness/generator.js.map +1 -0
  57. package/src/agentcore-harness/schema.d.js +8 -0
  58. package/src/agentcore-harness/schema.d.js.map +1 -0
  59. package/src/agentcore-harness/schema.d.ts +17 -0
  60. package/src/agentcore-harness/schema.json +53 -0
  61. package/src/connection/agent-local-dev.d.ts +49 -0
  62. package/src/connection/agent-local-dev.js +84 -0
  63. package/src/connection/agent-local-dev.js.map +1 -0
  64. package/src/connection/agent-runtime-config.js +9 -14
  65. package/src/connection/agent-runtime-config.js.map +1 -1
  66. package/src/connection/gateway-runtime-config.d.ts +19 -0
  67. package/src/connection/gateway-runtime-config.js +47 -0
  68. package/src/connection/gateway-runtime-config.js.map +1 -0
  69. package/src/connection/generator.d.ts +3 -10
  70. package/src/connection/generator.js +172 -194
  71. package/src/connection/generator.js.map +1 -1
  72. package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
  73. package/src/connection/local-dev.js +37 -0
  74. package/src/connection/local-dev.js.map +1 -0
  75. package/src/connection/scaffold-catalog.d.ts +267 -0
  76. package/src/connection/scaffold-catalog.js +347 -0
  77. package/src/connection/scaffold-catalog.js.map +1 -0
  78. package/src/connection/schema-resolver.d.ts +5 -0
  79. package/src/connection/schema-resolver.js +27 -0
  80. package/src/connection/schema-resolver.js.map +1 -0
  81. package/src/connection/schema.d.js +6 -0
  82. package/src/connection/schema.d.js.map +1 -0
  83. package/src/connection/schema.d.ts +1 -0
  84. package/src/connection/schema.json +5 -0
  85. package/src/connection/supported-connections.d.ts +116 -0
  86. package/src/connection/supported-connections.js +163 -0
  87. package/src/connection/supported-connections.js.map +1 -0
  88. package/src/index.js +2 -5
  89. package/src/index.js.map +1 -1
  90. package/src/infra/app/__snapshots__/generator.spec.ts.snap +119 -72
  91. package/src/infra/app/files/app/README.md.template +8 -4
  92. package/src/infra/app/files/app/src/main.ts.template +5 -1
  93. package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
  94. package/src/infra/app/generator.d.ts +43 -0
  95. package/src/infra/app/generator.js +195 -127
  96. package/src/infra/app/generator.js.map +1 -1
  97. package/src/infra/app/schema.d.js +6 -0
  98. package/src/infra/app/schema.d.js.map +1 -0
  99. package/src/infra/app/schema.d.ts +1 -1
  100. package/src/infra/app/schema.json +5 -0
  101. package/src/init/generator.d.ts +31 -0
  102. package/src/init/generator.js +46 -0
  103. package/src/init/generator.js.map +1 -0
  104. package/src/init/schema.d.js +6 -0
  105. package/src/init/schema.d.js.map +1 -0
  106. package/src/init/schema.d.ts +16 -0
  107. package/src/init/schema.json +35 -0
  108. package/src/internal/test-matrix/generator.d.ts +29 -0
  109. package/src/internal/test-matrix/generator.js +698 -0
  110. package/src/internal/test-matrix/generator.js.map +1 -0
  111. package/src/internal/test-matrix/schema.d.js +6 -0
  112. package/src/internal/test-matrix/schema.d.js.map +1 -0
  113. package/src/internal/test-matrix/schema.d.ts +12 -0
  114. package/src/internal/test-matrix/schema.json +21 -0
  115. package/src/license/config-types.js +5 -3
  116. package/src/license/config-types.js.map +1 -1
  117. package/src/license/config.d.ts +1 -1
  118. package/src/license/config.js +267 -242
  119. package/src/license/config.js.map +1 -1
  120. package/src/license/dependency-check/check.js +51 -46
  121. package/src/license/dependency-check/check.js.map +1 -1
  122. package/src/license/dependency-check/collectors/collector.js +41 -71
  123. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  124. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  125. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  126. package/src/license/dependency-check/collectors/python-collector.js +55 -62
  127. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  128. package/src/license/dependency-check/evaluator.js +40 -68
  129. package/src/license/dependency-check/evaluator.js.map +1 -1
  130. package/src/license/dependency-check/executor.js +30 -22
  131. package/src/license/dependency-check/executor.js.map +1 -1
  132. package/src/license/dependency-check/pre-approved.js +949 -336
  133. package/src/license/dependency-check/pre-approved.js.map +1 -1
  134. package/src/license/dependency-check/types.js +2 -3
  135. package/src/license/dependency-check/types.js.map +1 -1
  136. package/src/license/generator.js +65 -68
  137. package/src/license/generator.js.map +1 -1
  138. package/src/license/index.js +3 -9
  139. package/src/license/index.js.map +1 -1
  140. package/src/license/known-exceptions.d.ts +1 -1
  141. package/src/license/known-exceptions.js +19 -13
  142. package/src/license/known-exceptions.js.map +1 -1
  143. package/src/license/schema.d.js +6 -0
  144. package/src/license/schema.d.js.map +1 -0
  145. package/src/license/schema.d.ts +2 -0
  146. package/src/license/schema.json +5 -0
  147. package/src/license/sync/generator.js +94 -119
  148. package/src/license/sync/generator.js.map +1 -1
  149. package/src/license/sync/project-file-sync.js +28 -35
  150. package/src/license/sync/project-file-sync.js.map +1 -1
  151. package/src/mcp-server/dev-server.d.ts +1 -0
  152. package/src/mcp-server/dev-server.js +18 -0
  153. package/src/mcp-server/dev-server.js.map +1 -0
  154. package/src/mcp-server/generator-info.js +149 -165
  155. package/src/mcp-server/generator-info.js.map +1 -1
  156. package/src/mcp-server/guide-pipeline.js +199 -206
  157. package/src/mcp-server/guide-pipeline.js.map +1 -1
  158. package/src/mcp-server/guide-render.js +10 -25
  159. package/src/mcp-server/guide-render.js.map +1 -1
  160. package/src/mcp-server/index.js +6 -10
  161. package/src/mcp-server/index.js.map +1 -1
  162. package/src/mcp-server/mdx-ast.js +39 -57
  163. package/src/mcp-server/mdx-ast.js.map +1 -1
  164. package/src/mcp-server/option-filter.js +33 -47
  165. package/src/mcp-server/option-filter.js.map +1 -1
  166. package/src/mcp-server/schema-registry.d.ts +9 -3
  167. package/src/mcp-server/schema-registry.js +41 -38
  168. package/src/mcp-server/schema-registry.js.map +1 -1
  169. package/src/mcp-server/schema.d.ts +1 -1
  170. package/src/mcp-server/schema.js +9 -7
  171. package/src/mcp-server/schema.js.map +1 -1
  172. package/src/mcp-server/server.js +24 -24
  173. package/src/mcp-server/server.js.map +1 -1
  174. package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
  175. package/src/mcp-server/tools/add-to-existing-project.js +36 -0
  176. package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
  177. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  178. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  179. package/src/mcp-server/tools/general-guidance.d.ts +1 -1
  180. package/src/mcp-server/tools/general-guidance.js +55 -32
  181. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  182. package/src/mcp-server/tools/generator-guide.js +29 -37
  183. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  184. package/src/mcp-server/tools/list-generators.js +19 -25
  185. package/src/mcp-server/tools/list-generators.js.map +1 -1
  186. package/src/mcp-server/tools/upgrade-workspace.d.ts +11 -0
  187. package/src/mcp-server/tools/upgrade-workspace.js +32 -0
  188. package/src/mcp-server/tools/upgrade-workspace.js.map +1 -0
  189. package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/metadata.json +3 -0
  190. package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.d.ts +6 -0
  191. package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.js +329 -0
  192. package/src/migrations/latest/py-agent-a2a-httpx-client-per-call/migration.js.map +1 -0
  193. package/src/migrations/latest/py-agent-a2a-lifespan-construction/metadata.json +3 -0
  194. package/src/migrations/latest/py-agent-a2a-lifespan-construction/migration.d.ts +6 -0
  195. package/src/migrations/latest/py-agent-a2a-lifespan-construction/migration.js +234 -0
  196. package/src/migrations/latest/py-agent-a2a-lifespan-construction/migration.js.map +1 -0
  197. package/src/migrations/latest/smithy-server-package-rename/metadata.json +3 -0
  198. package/src/migrations/latest/smithy-server-package-rename/migration.d.ts +6 -0
  199. package/src/migrations/latest/smithy-server-package-rename/migration.js +123 -0
  200. package/src/migrations/latest/smithy-server-package-rename/migration.js.map +1 -0
  201. package/src/migrations/latest/translate-script-whole-file-writes/files/build-system-prompt.ts.fixture +23 -0
  202. package/src/migrations/latest/translate-script-whole-file-writes/files/build-user-prompt.ts.fixture +96 -0
  203. package/src/migrations/latest/translate-script-whole-file-writes/files/config-path.ts.fixture +1 -0
  204. package/src/migrations/latest/translate-script-whole-file-writes/files/file-to-translate.ts.fixture +10 -0
  205. package/src/migrations/latest/translate-script-whole-file-writes/files/get-files-to-translate.ts.fixture +96 -0
  206. package/src/migrations/latest/translate-script-whole-file-writes/files/header.ts.fixture +15 -0
  207. package/src/migrations/latest/translate-script-whole-file-writes/files/log.ts.fixture +18 -0
  208. package/src/migrations/latest/translate-script-whole-file-writes/files/main-call.ts.fixture +6 -0
  209. package/src/migrations/latest/translate-script-whole-file-writes/files/main.ts.fixture +79 -0
  210. package/src/migrations/latest/translate-script-whole-file-writes/files/project-root.ts.fixture +1 -0
  211. package/src/migrations/latest/translate-script-whole-file-writes/files/run-with-concurrency.ts.fixture +57 -0
  212. package/src/migrations/latest/translate-script-whole-file-writes/files/scripts-dir.ts.fixture +1 -0
  213. package/src/migrations/latest/translate-script-whole-file-writes/files/translate-file-for-language.ts.fixture +61 -0
  214. package/src/migrations/latest/translate-script-whole-file-writes/grit/already-migrated.grit +1 -0
  215. package/src/migrations/latest/translate-script-whole-file-writes/grit/build-system-prompt.grit +6 -0
  216. package/src/migrations/latest/translate-script-whole-file-writes/grit/build-user-prompt.grit +6 -0
  217. package/src/migrations/latest/translate-script-whole-file-writes/grit/config-path.grit +1 -0
  218. package/src/migrations/latest/translate-script-whole-file-writes/grit/file-to-translate.grit +11 -0
  219. package/src/migrations/latest/translate-script-whole-file-writes/grit/get-files-to-translate.grit +7 -0
  220. package/src/migrations/latest/translate-script-whole-file-writes/grit/log.grit +3 -0
  221. package/src/migrations/latest/translate-script-whole-file-writes/grit/main-call.grit +1 -0
  222. package/src/migrations/latest/translate-script-whole-file-writes/grit/main.grit +8 -0
  223. package/src/migrations/latest/translate-script-whole-file-writes/grit/project-root.grit +1 -0
  224. package/src/migrations/latest/translate-script-whole-file-writes/grit/run-with-concurrency.grit +6 -0
  225. package/src/migrations/latest/translate-script-whole-file-writes/grit/translate-file-for-language.grit +6 -0
  226. package/src/migrations/latest/translate-script-whole-file-writes/metadata.json +3 -0
  227. package/src/migrations/latest/translate-script-whole-file-writes/migration.d.ts +2 -0
  228. package/src/migrations/latest/translate-script-whole-file-writes/migration.js +103 -0
  229. package/src/migrations/latest/translate-script-whole-file-writes/migration.js.map +1 -0
  230. package/src/migrations/latest/translate-script-whole-file-writes/test-fixtures/released-script-first.ts.fixture +430 -0
  231. package/src/migrations/latest/translate-script-whole-file-writes/test-fixtures/released-script.ts.fixture +431 -0
  232. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/metadata.json +3 -0
  233. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.d.ts +6 -0
  234. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js +65 -0
  235. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js.map +1 -0
  236. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/metadata.json +3 -0
  237. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.d.ts +6 -0
  238. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js +108 -0
  239. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js.map +1 -0
  240. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/metadata.json +3 -0
  241. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
  242. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js +128 -0
  243. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
  244. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/metadata.json +3 -0
  245. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.d.ts +6 -0
  246. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js +215 -0
  247. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js.map +1 -0
  248. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/metadata.json +3 -0
  249. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
  250. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js +93 -0
  251. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
  252. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/metadata.json +3 -0
  253. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.d.ts +96 -0
  254. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js +670 -0
  255. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js.map +1 -0
  256. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/metadata.json +3 -0
  257. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
  258. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js +89 -0
  259. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
  260. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/metadata.json +3 -0
  261. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.d.ts +6 -0
  262. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js +449 -0
  263. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js.map +1 -0
  264. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/metadata.json +3 -0
  265. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.d.ts +6 -0
  266. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js +78 -0
  267. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js.map +1 -0
  268. package/src/{smithy/project/files/build.Dockerfile.template → migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/rc57-service.Dockerfile.fixture} +1 -4
  269. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/__snapshots__/migration.spec.ts.snap +223 -0
  270. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/metadata.json +3 -0
  271. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.d.ts +6 -0
  272. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js +217 -0
  273. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js.map +1 -0
  274. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/__snapshots__/migration.spec.ts.snap +149 -0
  275. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/metadata.json +3 -0
  276. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.d.ts +6 -0
  277. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js +195 -0
  278. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js.map +1 -0
  279. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/__snapshots__/migration.spec.ts.snap +57 -0
  280. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/metadata.json +3 -0
  281. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.d.ts +6 -0
  282. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js +77 -0
  283. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js.map +1 -0
  284. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/__snapshots__/migration.spec.ts.snap +48 -0
  285. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/metadata.json +3 -0
  286. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.d.ts +6 -0
  287. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js +91 -0
  288. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js.map +1 -0
  289. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/metadata.json +3 -0
  290. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.d.ts +6 -0
  291. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js +412 -0
  292. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js.map +1 -0
  293. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/metadata.json +3 -0
  294. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.d.ts +6 -0
  295. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js +33 -0
  296. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js.map +1 -0
  297. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/metadata.json +3 -0
  298. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.d.ts +6 -0
  299. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js +83 -0
  300. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js.map +1 -0
  301. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/legacy-service.Dockerfile.fixture +95 -0
  302. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/metadata.json +3 -0
  303. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.d.ts +6 -0
  304. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js +154 -0
  305. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js.map +1 -0
  306. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/metadata.json +3 -0
  307. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.d.ts +6 -0
  308. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js +71 -0
  309. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js.map +1 -0
  310. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/metadata.json +3 -0
  311. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.d.ts +6 -0
  312. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js +57 -0
  313. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js.map +1 -0
  314. package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
  315. package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
  316. package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
  317. package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
  318. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
  319. package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
  320. package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
  321. package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
  322. package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
  323. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
  324. package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
  325. package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
  326. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +100 -24
  327. package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
  328. package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
  329. package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
  330. package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
  331. package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
  332. package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
  333. package/src/open-api/ts-client/generator.js +41 -26
  334. package/src/open-api/ts-client/generator.js.map +1 -1
  335. package/src/open-api/ts-client/schema.d.js +6 -0
  336. package/src/open-api/ts-client/schema.d.js.map +1 -0
  337. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
  338. package/src/open-api/ts-hooks/generator.js +17 -21
  339. package/src/open-api/ts-hooks/generator.js.map +1 -1
  340. package/src/open-api/ts-hooks/generator.spec.tsx +70 -0
  341. package/src/open-api/ts-hooks/schema.d.js +6 -0
  342. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  343. package/src/open-api/ts-metadata/generator.js +12 -20
  344. package/src/open-api/ts-metadata/generator.js.map +1 -1
  345. package/src/open-api/ts-metadata/schema.d.js +6 -0
  346. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  347. package/src/open-api/utils/codegen-data/languages.d.ts +0 -6
  348. package/src/open-api/utils/codegen-data/languages.js +59 -66
  349. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  350. package/src/open-api/utils/codegen-data/types.d.ts +255 -10
  351. package/src/open-api/utils/codegen-data/types.js +54 -30
  352. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  353. package/src/open-api/utils/codegen-data.d.ts +2 -2
  354. package/src/open-api/utils/codegen-data.js +494 -674
  355. package/src/open-api/utils/codegen-data.js.map +1 -1
  356. package/src/open-api/utils/normalise.js +437 -246
  357. package/src/open-api/utils/normalise.js.map +1 -1
  358. package/src/open-api/utils/parse.js +8 -14
  359. package/src/open-api/utils/parse.js.map +1 -1
  360. package/src/open-api/utils/parser.d.ts +55 -0
  361. package/src/open-api/utils/parser.js +787 -0
  362. package/src/open-api/utils/parser.js.map +1 -0
  363. package/src/open-api/utils/refs.js +12 -22
  364. package/src/open-api/utils/refs.js.map +1 -1
  365. package/src/open-api/utils/types.d.ts +18 -0
  366. package/src/open-api/utils/types.js +5 -2
  367. package/src/open-api/utils/types.js.map +1 -1
  368. package/src/preset/__snapshots__/generator.spec.ts.snap +101 -20
  369. package/src/preset/generator.d.ts +14 -1
  370. package/src/preset/generator.js +76 -151
  371. package/src/preset/generator.js.map +1 -1
  372. package/src/preset/schema.d.js +6 -0
  373. package/src/preset/schema.d.js.map +1 -0
  374. package/src/preset/schema.d.ts +4 -1
  375. package/src/preset/schema.json +16 -5
  376. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +326 -0
  377. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +738 -0
  378. package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +191 -315
  379. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +231 -0
  380. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +29 -0
  381. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +29 -0
  382. package/src/py/agent/a2a-connection/generator.d.ts +24 -0
  383. package/src/py/agent/a2a-connection/generator.js +145 -88
  384. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  385. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  386. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  387. package/src/py/agent/a2a-connection/schema.d.ts +1 -0
  388. package/src/py/agent/a2a-connection/schema.json +5 -0
  389. package/src/py/agent/files/deploy/Dockerfile.template +8 -1
  390. package/src/py/agent/files/langchain/a2a/main.py.template +94 -0
  391. package/src/py/agent/files/langchain/ag-ui/main.py.template +87 -0
  392. package/src/py/agent/files/langchain/common/agent.py.template +30 -0
  393. package/src/py/agent/files/{http → langchain/http}/init.py.template +17 -25
  394. package/src/py/agent/files/langchain/http/main.py.template +81 -0
  395. package/src/py/agent/files/{a2a → strands/a2a}/main.py.template +33 -15
  396. package/src/py/agent/files/strands/ag-ui/main.py.template +89 -0
  397. package/src/py/agent/files/{common → strands/common}/agent.py.template +2 -0
  398. package/src/py/agent/files/strands/http/init.py.template +97 -0
  399. package/src/py/agent/files/{http → strands/http}/main.py.template +4 -13
  400. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  401. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  402. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  403. package/src/py/agent/gateway-connection/generator.d.ts +33 -0
  404. package/src/py/agent/gateway-connection/generator.js +153 -0
  405. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  406. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  407. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  408. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  409. package/src/py/agent/gateway-connection/schema.json +31 -0
  410. package/src/py/agent/generator.d.ts +154 -1
  411. package/src/py/agent/generator.js +396 -197
  412. package/src/py/agent/generator.js.map +1 -1
  413. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +154 -89
  414. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +31 -0
  415. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +31 -0
  416. package/src/py/agent/mcp-connection/generator.d.ts +23 -0
  417. package/src/py/agent/mcp-connection/generator.js +103 -130
  418. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  419. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  420. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  421. package/src/py/agent/mcp-connection/schema.d.ts +1 -0
  422. package/src/py/agent/mcp-connection/schema.json +5 -0
  423. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +17 -19
  424. package/src/py/agent/react-connection/generator.d.ts +150 -1
  425. package/src/py/agent/react-connection/generator.js +105 -65
  426. package/src/py/agent/react-connection/generator.js.map +1 -1
  427. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +4 -4
  428. package/src/py/agent/react-connection/local-dev.js +36 -0
  429. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  430. package/src/py/agent/react-connection/schema.d.js +8 -0
  431. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  432. package/src/py/agent/react-connection/schema.d.ts +1 -0
  433. package/src/py/agent/react-connection/schema.json +5 -0
  434. package/src/py/agent/schema.d.js +6 -0
  435. package/src/py/agent/schema.d.js.map +1 -0
  436. package/src/py/agent/schema.d.ts +5 -1
  437. package/src/py/agent/schema.json +15 -1
  438. package/src/py/api/generator.js +12 -11
  439. package/src/py/api/generator.js.map +1 -1
  440. package/src/py/api/schema.d.js +6 -0
  441. package/src/py/api/schema.d.js.map +1 -0
  442. package/src/py/api/schema.d.ts +1 -0
  443. package/src/py/api/schema.json +5 -0
  444. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1520 -0
  445. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +63 -0
  446. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  447. package/src/py/dynamodb/agent-connection/generator.js +45 -0
  448. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  449. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  450. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  451. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  452. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  453. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +32 -0
  454. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  455. package/src/py/dynamodb/fast-api-connection/generator.js +39 -0
  456. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  457. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  458. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  459. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  460. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  461. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  462. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  463. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  464. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  465. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  466. package/src/py/dynamodb/files/config.json.template +24 -0
  467. package/src/py/dynamodb/generator.d.ts +39 -0
  468. package/src/py/dynamodb/generator.js +130 -0
  469. package/src/py/dynamodb/generator.js.map +1 -0
  470. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +63 -0
  471. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  472. package/src/py/dynamodb/mcp-server-connection/generator.js +45 -0
  473. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  474. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  475. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  476. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  477. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  478. package/src/py/dynamodb/schema.d.js +6 -0
  479. package/src/py/dynamodb/schema.d.js.map +1 -0
  480. package/src/py/dynamodb/schema.d.ts +16 -0
  481. package/src/py/dynamodb/schema.json +76 -0
  482. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +240 -4693
  483. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +5409 -0
  484. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  485. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  486. package/src/py/fast-api/generator.d.ts +72 -0
  487. package/src/py/fast-api/generator.js +134 -95
  488. package/src/py/fast-api/generator.js.map +1 -1
  489. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  490. package/src/py/fast-api/react/generator.d.ts +16 -1
  491. package/src/py/fast-api/react/generator.js +38 -26
  492. package/src/py/fast-api/react/generator.js.map +1 -1
  493. package/src/py/fast-api/react/open-api.js +31 -29
  494. package/src/py/fast-api/react/open-api.js.map +1 -1
  495. package/src/py/fast-api/react/schema.d.js +6 -0
  496. package/src/py/fast-api/react/schema.d.js.map +1 -0
  497. package/src/py/fast-api/react/schema.d.ts +1 -0
  498. package/src/py/fast-api/react/schema.json +5 -0
  499. package/src/py/fast-api/schema.d.js +6 -0
  500. package/src/py/fast-api/schema.d.js.map +1 -0
  501. package/src/py/fast-api/schema.d.ts +1 -0
  502. package/src/py/fast-api/schema.json +6 -0
  503. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  504. package/src/py/lambda-function/generator.d.ts +21 -0
  505. package/src/py/lambda-function/generator.js +82 -62
  506. package/src/py/lambda-function/generator.js.map +1 -1
  507. package/src/py/lambda-function/schema.d.js +6 -0
  508. package/src/py/lambda-function/schema.d.js.map +1 -0
  509. package/src/py/lambda-function/schema.d.ts +1 -0
  510. package/src/py/lambda-function/schema.json +5 -0
  511. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +221 -21
  512. package/src/py/mcp-server/files/deploy/Dockerfile.template +8 -1
  513. package/src/py/mcp-server/generator.d.ts +68 -0
  514. package/src/py/mcp-server/generator.js +204 -131
  515. package/src/py/mcp-server/generator.js.map +1 -1
  516. package/src/py/mcp-server/schema.d.js +6 -0
  517. package/src/py/mcp-server/schema.d.js.map +1 -0
  518. package/src/py/mcp-server/schema.d.ts +1 -0
  519. package/src/py/mcp-server/schema.json +6 -0
  520. package/src/py/project/generator.d.ts +27 -1
  521. package/src/py/project/generator.js +248 -130
  522. package/src/py/project/generator.js.map +1 -1
  523. package/src/py/project/schema.d.js +6 -0
  524. package/src/py/project/schema.d.js.map +1 -0
  525. package/src/py/project/schema.d.ts +1 -0
  526. package/src/py/project/schema.json +5 -0
  527. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2070 -0
  528. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +123 -0
  529. package/src/py/rdb/agent-connection/generator.d.ts +10 -0
  530. package/src/py/rdb/agent-connection/generator.js +52 -0
  531. package/src/py/rdb/agent-connection/generator.js.map +1 -0
  532. package/src/py/rdb/agent-connection/schema.d.js +8 -0
  533. package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
  534. package/src/py/rdb/agent-connection/schema.d.ts +15 -0
  535. package/src/py/rdb/agent-connection/schema.json +27 -0
  536. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +51 -0
  537. package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
  538. package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
  539. package/src/py/rdb/fast-api-connection/generator.js +56 -0
  540. package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
  541. package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
  542. package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
  543. package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
  544. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  545. package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
  546. package/src/py/rdb/files/Dockerfile.migration.template +14 -0
  547. package/src/py/rdb/files/__name__/__init__.py.template +3 -0
  548. package/src/py/rdb/files/__name__/connection.py.template +55 -0
  549. package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
  550. package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
  551. package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
  552. package/src/py/rdb/files/__name__/models/example.py.template +8 -0
  553. package/src/py/rdb/files/__name__/utils.py.template +104 -0
  554. package/src/py/rdb/files/alembic.ini.template +38 -0
  555. package/src/py/rdb/files/config.json.template +14 -0
  556. package/src/py/rdb/files/migrations/env.py.template +80 -0
  557. package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
  558. package/src/py/rdb/generator.d.ts +103 -0
  559. package/src/py/rdb/generator.js +328 -0
  560. package/src/py/rdb/generator.js.map +1 -0
  561. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +119 -0
  562. package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
  563. package/src/py/rdb/mcp-server-connection/generator.js +52 -0
  564. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
  565. package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
  566. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
  567. package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
  568. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  569. package/src/py/rdb/schema.d.js +6 -0
  570. package/src/py/rdb/schema.d.js.map +1 -0
  571. package/src/py/rdb/schema.d.ts +16 -0
  572. package/src/py/rdb/schema.json +78 -0
  573. package/src/py/rdb/utils.d.ts +6 -0
  574. package/src/py/rdb/utils.js +16 -0
  575. package/src/py/rdb/utils.js.map +1 -0
  576. package/src/sdk/agentcore-gateway.d.ts +6 -0
  577. package/src/sdk/agentcore-gateway.js +7 -0
  578. package/src/sdk/agentcore-gateway.js.map +1 -0
  579. package/src/sdk/connection.d.ts +6 -0
  580. package/src/sdk/connection.js +6 -0
  581. package/src/sdk/connection.js.map +1 -0
  582. package/src/sdk/license.d.ts +8 -0
  583. package/src/sdk/license.js +7 -0
  584. package/src/sdk/license.js.map +1 -0
  585. package/src/sdk/open-api.d.ts +10 -0
  586. package/src/sdk/open-api.js +8 -0
  587. package/src/sdk/open-api.js.map +1 -0
  588. package/src/sdk/py.d.ts +18 -0
  589. package/src/sdk/py.js +12 -0
  590. package/src/sdk/py.js.map +1 -0
  591. package/src/sdk/terraform.d.ts +6 -0
  592. package/src/sdk/terraform.js +7 -0
  593. package/src/sdk/terraform.js.map +1 -0
  594. package/src/sdk/ts.d.ts +39 -0
  595. package/src/sdk/ts.js +41 -0
  596. package/src/sdk/ts.js.map +1 -0
  597. package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
  598. package/src/sdk/utils/ast.js +6 -0
  599. package/src/sdk/utils/ast.js.map +1 -0
  600. package/{sdk/utils/ast.d.ts → src/sdk/utils/format.d.ts} +1 -2
  601. package/src/sdk/utils/format.js +6 -0
  602. package/src/sdk/utils/format.js.map +1 -0
  603. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  604. package/src/sdk/utils/test.js +6 -0
  605. package/src/sdk/utils/test.js.map +1 -0
  606. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +245 -242
  607. package/src/smithy/project/files/{smithy-build.json.template → service/smithy-build.json.template} +5 -5
  608. package/src/smithy/project/files/{src → service/src}/operations/echo.smithy.template +1 -0
  609. package/src/smithy/project/files/shapes/smithy-build.json.template +7 -0
  610. package/src/smithy/project/files/shapes/src/main.smithy.template +11 -0
  611. package/src/smithy/project/files/ssdk-bundle/ssdk.rolldown.config.mjs.template +52 -0
  612. package/src/smithy/project/generator.d.ts +90 -0
  613. package/src/smithy/project/generator.js +223 -56
  614. package/src/smithy/project/generator.js.map +1 -1
  615. package/src/smithy/project/schema.d.js +6 -0
  616. package/src/smithy/project/schema.d.js.map +1 -0
  617. package/src/smithy/project/schema.d.ts +2 -0
  618. package/src/smithy/project/schema.json +28 -1
  619. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  620. package/src/smithy/react-connection/generator.d.ts +15 -0
  621. package/src/smithy/react-connection/generator.js +54 -48
  622. package/src/smithy/react-connection/generator.js.map +1 -1
  623. package/src/smithy/react-connection/schema.d.js +6 -0
  624. package/src/smithy/react-connection/schema.d.js.map +1 -0
  625. package/src/smithy/react-connection/schema.d.ts +1 -0
  626. package/src/smithy/react-connection/schema.json +5 -0
  627. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +871 -109
  628. package/src/smithy/ts/api/files/handler.ts.template +3 -3
  629. package/src/smithy/ts/api/files/local-server.ts.template +3 -3
  630. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  631. package/src/smithy/ts/api/files/service.ts.template +3 -3
  632. package/src/smithy/ts/api/generator.d.ts +88 -0
  633. package/src/smithy/ts/api/generator.js +187 -114
  634. package/src/smithy/ts/api/generator.js.map +1 -1
  635. package/src/smithy/ts/api/schema.d.js +6 -0
  636. package/src/smithy/ts/api/schema.d.js.map +1 -0
  637. package/src/smithy/ts/api/schema.d.ts +1 -0
  638. package/src/smithy/ts/api/schema.json +6 -0
  639. package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
  640. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  641. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  642. package/src/terraform/project/generator.d.ts +50 -0
  643. package/src/terraform/project/generator.js +212 -111
  644. package/src/terraform/project/generator.js.map +1 -1
  645. package/src/terraform/project/schema.d.js +9 -0
  646. package/src/terraform/project/schema.d.js.map +1 -0
  647. package/src/terraform/project/schema.d.ts +1 -0
  648. package/src/terraform/project/schema.json +5 -0
  649. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1182 -184
  650. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  651. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  652. package/src/trpc/backend/files/src/index.ts.template +5 -5
  653. package/src/trpc/backend/files/src/init.ts.template +1 -1
  654. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  655. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  656. package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
  657. package/src/trpc/backend/files/src/router.ts.template +2 -2
  658. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  659. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  660. package/src/trpc/backend/generator.d.ts +90 -1
  661. package/src/trpc/backend/generator.js +177 -100
  662. package/src/trpc/backend/generator.js.map +1 -1
  663. package/src/trpc/backend/schema.d.js +6 -0
  664. package/src/trpc/backend/schema.d.js.map +1 -0
  665. package/src/trpc/backend/schema.d.ts +1 -0
  666. package/src/trpc/backend/schema.json +6 -0
  667. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  668. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  669. package/src/trpc/react/generator.d.ts +38 -1
  670. package/src/trpc/react/generator.js +105 -63
  671. package/src/trpc/react/generator.js.map +1 -1
  672. package/src/trpc/react/schema.d.js +6 -0
  673. package/src/trpc/react/schema.d.js.map +1 -0
  674. package/src/trpc/react/schema.d.ts +1 -0
  675. package/src/trpc/react/schema.json +5 -0
  676. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1452 -25
  677. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +258 -0
  678. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  679. package/src/ts/agent/a2a-connection/generator.d.ts +46 -0
  680. package/src/ts/agent/a2a-connection/generator.js +110 -63
  681. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  682. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  683. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  684. package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
  685. package/src/ts/agent/a2a-connection/schema.json +5 -0
  686. package/src/ts/agent/files/a2a/index.ts.template +1 -1
  687. package/src/ts/agent/files/ag-ui/index.ts.template +36 -11
  688. package/src/ts/agent/files/common/agent.ts.template +15 -2
  689. package/src/ts/agent/files/common/session.ts.template +43 -0
  690. package/src/ts/agent/files/deploy/Dockerfile.template +13 -2
  691. package/src/ts/agent/files/http/client.ts.template +2 -2
  692. package/src/ts/agent/files/http/index.ts.template +2 -2
  693. package/src/ts/agent/files/http/router.ts.template +5 -5
  694. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +222 -0
  695. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  696. package/src/ts/agent/gateway-connection/generator.d.ts +47 -0
  697. package/src/ts/agent/gateway-connection/generator.js +144 -0
  698. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  699. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  700. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  701. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  702. package/src/ts/agent/gateway-connection/schema.json +31 -0
  703. package/src/ts/agent/generator.d.ts +205 -0
  704. package/src/ts/agent/generator.js +339 -156
  705. package/src/ts/agent/generator.js.map +1 -1
  706. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +194 -113
  707. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +23 -0
  708. package/src/ts/agent/mcp-connection/generator.d.ts +37 -0
  709. package/src/ts/agent/mcp-connection/generator.js +88 -65
  710. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  711. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  712. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  713. package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
  714. package/src/ts/agent/mcp-connection/schema.json +5 -0
  715. package/src/ts/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -4
  716. package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +2 -1
  717. package/src/ts/agent/react-connection/generator.d.ts +202 -1
  718. package/src/ts/agent/react-connection/generator.js +158 -99
  719. package/src/ts/agent/react-connection/generator.js.map +1 -1
  720. package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
  721. package/src/ts/agent/react-connection/local-dev.js +17 -0
  722. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  723. package/src/ts/agent/react-connection/schema.d.js +8 -0
  724. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  725. package/src/ts/agent/react-connection/schema.d.ts +1 -0
  726. package/src/ts/agent/react-connection/schema.json +5 -0
  727. package/src/ts/agent/schema.d.js +6 -0
  728. package/src/ts/agent/schema.d.js.map +1 -0
  729. package/src/ts/agent/schema.d.ts +4 -0
  730. package/src/ts/agent/schema.json +14 -0
  731. package/src/ts/api/generator.js +16 -16
  732. package/src/ts/api/generator.js.map +1 -1
  733. package/src/ts/api/schema.d.js +6 -0
  734. package/src/ts/api/schema.d.js.map +1 -0
  735. package/src/ts/api/schema.d.ts +1 -0
  736. package/src/ts/api/schema.json +5 -0
  737. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +28 -14
  738. package/src/ts/astro-docs/files/base/src/content/docs/en/index.mdx.template +2 -2
  739. package/src/ts/astro-docs/files/base/src/content.config.ts.template +4 -4
  740. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +272 -150
  741. package/src/ts/astro-docs/generator.d.ts +38 -0
  742. package/src/ts/astro-docs/generator.js +126 -61
  743. package/src/ts/astro-docs/generator.js.map +1 -1
  744. package/src/ts/astro-docs/schema.d.js +6 -0
  745. package/src/ts/astro-docs/schema.d.js.map +1 -0
  746. package/src/ts/astro-docs/schema.d.ts +2 -2
  747. package/src/ts/astro-docs/schema.json +3 -3
  748. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +982 -0
  749. package/src/ts/dcr-proxy/generator.d.ts +34 -0
  750. package/src/ts/dcr-proxy/generator.js +115 -0
  751. package/src/ts/dcr-proxy/generator.js.map +1 -0
  752. package/src/ts/dcr-proxy/schema.d.js +6 -0
  753. package/src/ts/dcr-proxy/schema.d.js.map +1 -0
  754. package/src/ts/dcr-proxy/schema.d.ts +13 -0
  755. package/src/ts/dcr-proxy/schema.json +44 -0
  756. package/src/ts/docs/generator.js +10 -10
  757. package/src/ts/docs/generator.js.map +1 -1
  758. package/src/ts/docs/schema.d.js +6 -0
  759. package/src/ts/docs/schema.d.js.map +1 -0
  760. package/src/ts/docs/schema.d.ts +1 -4
  761. package/src/ts/docs/schema.json +3 -3
  762. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +400 -518
  763. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +23 -5
  764. package/src/ts/dynamodb/agent-connection/generator.js +27 -23
  765. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  766. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  767. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  768. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
  769. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  770. package/src/ts/dynamodb/files/config.json.template +24 -0
  771. package/src/ts/dynamodb/files/src/client.ts.template +30 -11
  772. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  773. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  774. package/src/ts/dynamodb/files/src/index.ts.template +2 -11
  775. package/src/ts/dynamodb/generator.d.ts +41 -0
  776. package/src/ts/dynamodb/generator.js +106 -64
  777. package/src/ts/dynamodb/generator.js.map +1 -1
  778. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +23 -5
  779. package/src/ts/dynamodb/mcp-server-connection/generator.js +27 -23
  780. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  781. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  782. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  783. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
  784. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  785. package/src/ts/dynamodb/schema.d.js +6 -0
  786. package/src/ts/dynamodb/schema.d.js.map +1 -0
  787. package/src/ts/dynamodb/schema.d.ts +2 -0
  788. package/src/ts/dynamodb/schema.json +26 -2
  789. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  790. package/src/ts/dynamodb/smithy-connection/generator.js +22 -22
  791. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  792. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  793. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  794. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  795. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  796. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  797. package/src/ts/dynamodb/trpc-connection/generator.js +22 -22
  798. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  799. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  800. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  801. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  802. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  803. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -6
  804. package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
  805. package/src/ts/lambda-function/generator.d.ts +38 -0
  806. package/src/ts/lambda-function/generator.js +98 -65
  807. package/src/ts/lambda-function/generator.js.map +1 -1
  808. package/src/ts/lambda-function/io.js +83 -52
  809. package/src/ts/lambda-function/io.js.map +1 -1
  810. package/src/ts/lambda-function/schema.d.js +6 -0
  811. package/src/ts/lambda-function/schema.d.js.map +1 -0
  812. package/src/ts/lambda-function/schema.d.ts +1 -0
  813. package/src/ts/lambda-function/schema.json +5 -0
  814. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +83 -45
  815. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +1 -1
  816. package/src/ts/lib/biome.js +71 -35
  817. package/src/ts/lib/biome.js.map +1 -1
  818. package/src/ts/lib/generator.d.ts +7 -0
  819. package/src/ts/lib/generator.js +115 -103
  820. package/src/ts/lib/generator.js.map +1 -1
  821. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  822. package/src/ts/lib/schema.d.js +6 -0
  823. package/src/ts/lib/schema.d.js.map +1 -0
  824. package/src/ts/lib/schema.d.ts +1 -1
  825. package/src/ts/lib/schema.json +5 -0
  826. package/src/ts/lib/ts-project-utils.d.ts +13 -1
  827. package/src/ts/lib/ts-project-utils.js +96 -71
  828. package/src/ts/lib/ts-project-utils.js.map +1 -1
  829. package/src/ts/lib/types.d.ts +6 -0
  830. package/src/ts/lib/types.js +5 -2
  831. package/src/ts/lib/types.js.map +1 -1
  832. package/src/ts/lib/vitest.d.ts +10 -1
  833. package/src/ts/lib/vitest.js +54 -26
  834. package/src/ts/lib/vitest.js.map +1 -1
  835. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +221 -44
  836. package/src/ts/mcp-server/files/Dockerfile.template +13 -2
  837. package/src/ts/mcp-server/generator.d.ts +110 -0
  838. package/src/ts/mcp-server/generator.js +231 -148
  839. package/src/ts/mcp-server/generator.js.map +1 -1
  840. package/src/ts/mcp-server/schema.d.js +6 -0
  841. package/src/ts/mcp-server/schema.d.js.map +1 -0
  842. package/src/ts/mcp-server/schema.d.ts +1 -0
  843. package/src/ts/mcp-server/schema.json +6 -0
  844. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +28 -13
  845. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  846. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  847. package/src/ts/nx-generator/files/local/generator.spec.ts.template +1 -1
  848. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  849. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  850. package/src/ts/nx-generator/generator.d.ts +3 -0
  851. package/src/ts/nx-generator/generator.js +124 -73
  852. package/src/ts/nx-generator/generator.js.map +1 -1
  853. package/src/ts/nx-generator/schema.d.js +6 -0
  854. package/src/ts/nx-generator/schema.d.js.map +1 -0
  855. package/src/ts/nx-generator/schema.d.ts +1 -0
  856. package/src/ts/nx-generator/schema.json +5 -0
  857. package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
  858. package/src/ts/nx-migration/files/migration.ts.template +65 -0
  859. package/src/ts/nx-migration/files/prompt.md.template +46 -0
  860. package/src/ts/nx-migration/generator.d.ts +27 -0
  861. package/src/ts/nx-migration/generator.js +147 -0
  862. package/src/ts/nx-migration/generator.js.map +1 -0
  863. package/src/ts/nx-migration/schema.d.js +6 -0
  864. package/src/ts/nx-migration/schema.d.js.map +1 -0
  865. package/src/ts/nx-migration/schema.d.ts +13 -0
  866. package/src/ts/nx-migration/schema.json +63 -0
  867. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
  868. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
  869. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  870. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  871. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  872. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  873. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  874. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
  875. package/src/ts/nx-plugin/generator.d.ts +3 -0
  876. package/src/ts/nx-plugin/generator.js +67 -50
  877. package/src/ts/nx-plugin/generator.js.map +1 -1
  878. package/src/ts/nx-plugin/schema.d.js +9 -0
  879. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  880. package/src/ts/nx-plugin/schema.json +5 -0
  881. package/src/ts/nx-plugin/utils.d.ts +27 -2
  882. package/src/ts/nx-plugin/utils.js +66 -51
  883. package/src/ts/nx-plugin/utils.js.map +1 -1
  884. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +553 -644
  885. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +16 -6
  886. package/src/ts/rdb/agent-connection/generator.js +44 -39
  887. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  888. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  889. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  890. package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
  891. package/src/ts/rdb/agent-connection/schema.json +5 -0
  892. package/src/ts/rdb/files/Dockerfile.template +19 -1
  893. package/src/ts/rdb/files/config.json.template +14 -0
  894. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  895. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
  896. package/src/ts/rdb/files/src/index.ts.template +1 -2
  897. package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
  898. package/src/ts/rdb/files/src/prisma.ts.template +33 -25
  899. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  900. package/src/ts/rdb/generator.d.ts +117 -4
  901. package/src/ts/rdb/generator.js +257 -138
  902. package/src/ts/rdb/generator.js.map +1 -1
  903. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +16 -6
  904. package/src/ts/rdb/mcp-server-connection/generator.js +42 -37
  905. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  906. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  907. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  908. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
  909. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  910. package/src/ts/rdb/schema.d.js +6 -0
  911. package/src/ts/rdb/schema.d.js.map +1 -0
  912. package/src/ts/rdb/schema.d.ts +1 -0
  913. package/src/ts/rdb/schema.json +7 -1
  914. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +18 -9
  915. package/src/ts/rdb/smithy-connection/generator.js +48 -43
  916. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  917. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  918. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  919. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  920. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  921. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  922. package/src/ts/rdb/trpc-connection/generator.js +37 -31
  923. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  924. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  925. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  926. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  927. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  928. package/src/ts/rdb/utils.js +9 -11
  929. package/src/ts/rdb/utils.js.map +1 -1
  930. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +17 -16
  931. package/src/ts/react-website/agui/generator.d.ts +97 -0
  932. package/src/ts/react-website/agui/generator.js +114 -67
  933. package/src/ts/react-website/agui/generator.js.map +1 -1
  934. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1391 -644
  935. package/src/ts/react-website/app/files/app/common/README.md.template +1 -1
  936. package/src/ts/react-website/app/generator.d.ts +142 -2
  937. package/src/ts/react-website/app/generator.js +333 -209
  938. package/src/ts/react-website/app/generator.js.map +1 -1
  939. package/src/ts/react-website/app/schema.d.js +6 -0
  940. package/src/ts/react-website/app/schema.d.js.map +1 -0
  941. package/src/ts/react-website/app/schema.d.ts +1 -1
  942. package/src/ts/react-website/app/schema.json +12 -6
  943. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +161 -26
  944. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +48 -12
  945. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  946. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  947. package/src/ts/react-website/cognito-auth/generator.d.ts +25 -1
  948. package/src/ts/react-website/cognito-auth/generator.js +79 -64
  949. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  950. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +3 -1
  951. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  952. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  953. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  954. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  955. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  956. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
  957. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  958. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  959. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  960. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  961. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  962. package/src/ts/react-website/runtime-config/generator.js +29 -31
  963. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  964. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  965. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  966. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  967. package/src/ts/react-website/runtime-config/schema.json +5 -0
  968. package/src/ts/sync/generator.js +137 -60
  969. package/src/ts/sync/generator.js.map +1 -1
  970. package/src/ts/website/app/generator.js +10 -10
  971. package/src/ts/website/app/generator.js.map +1 -1
  972. package/src/ts/website/app/schema.d.js +6 -0
  973. package/src/ts/website/app/schema.d.js.map +1 -0
  974. package/src/ts/website/app/schema.d.ts +1 -1
  975. package/src/ts/website/app/schema.json +11 -6
  976. package/src/ts/website/auth/generator.d.ts +1 -1
  977. package/src/ts/website/auth/generator.js +11 -10
  978. package/src/ts/website/auth/generator.js.map +1 -1
  979. package/src/ts/website/auth/schema.d.js +6 -0
  980. package/src/ts/website/auth/schema.d.js.map +1 -0
  981. package/src/ts/website/auth/schema.d.ts +1 -0
  982. package/src/ts/website/auth/schema.json +5 -0
  983. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
  984. package/src/utils/add-dependencies.d.ts +38 -0
  985. package/src/utils/add-dependencies.js +83 -0
  986. package/src/utils/add-dependencies.js.map +1 -0
  987. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  988. package/src/utils/agent-chat/agent-chat.js +31 -0
  989. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  990. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  991. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  992. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  993. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  994. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  995. package/src/utils/agent-connection/agent-connection.d.ts +139 -26
  996. package/src/utils/agent-connection/agent-connection.js +500 -103
  997. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  998. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  999. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  1000. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  1001. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  1002. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  1003. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +33 -33
  1004. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  1005. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  1006. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +47 -0
  1007. package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +29 -0
  1008. package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +1 -1
  1009. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  1010. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  1011. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  1012. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  1013. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  1014. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  1015. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +105 -0
  1016. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  1017. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  1018. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  1019. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +6 -18
  1020. package/src/utils/agent-connection/files/py-core-runtime-config/session_context.py.template +2 -2
  1021. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  1022. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +111 -0
  1023. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  1024. package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +2 -2
  1025. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  1026. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  1027. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +79 -0
  1028. package/src/utils/agent-core-constructs/agent-core-constructs.js +212 -38
  1029. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  1030. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +170 -6
  1031. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +87 -0
  1032. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.ts.template +366 -0
  1033. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +624 -0
  1034. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  1035. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +212 -1
  1036. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +521 -0
  1037. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  1038. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.tf.template +282 -0
  1039. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +159 -13
  1040. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  1041. package/src/utils/api-constructs/api-constructs.d.ts +30 -2
  1042. package/src/utils/api-constructs/api-constructs.js +82 -32
  1043. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  1044. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +20 -15
  1045. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -16
  1046. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
  1047. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
  1048. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  1049. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +56 -17
  1050. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  1051. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  1052. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +101 -12
  1053. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +194 -8
  1054. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  1055. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  1056. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  1057. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  1058. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  1059. package/src/utils/ast/website.js +18 -20
  1060. package/src/utils/ast/website.js.map +1 -1
  1061. package/src/utils/ast.d.ts +9 -0
  1062. package/src/utils/ast.js +125 -86
  1063. package/src/utils/ast.js.map +1 -1
  1064. package/src/utils/base-tsconfig.d.ts +30 -0
  1065. package/src/utils/base-tsconfig.js +32 -0
  1066. package/src/utils/base-tsconfig.js.map +1 -0
  1067. package/src/utils/bundle/bundle.d.ts +6 -1
  1068. package/src/utils/bundle/bundle.js +58 -48
  1069. package/src/utils/bundle/bundle.js.map +1 -1
  1070. package/src/utils/commands.d.ts +14 -3
  1071. package/src/utils/commands.js +83 -28
  1072. package/src/utils/commands.js.map +1 -1
  1073. package/src/utils/config/index.d.ts +18 -2
  1074. package/src/utils/config/index.js +5 -4
  1075. package/src/utils/config/index.js.map +1 -1
  1076. package/src/utils/config/utils.d.ts +8 -2
  1077. package/src/utils/config/utils.js +56 -59
  1078. package/src/utils/config/utils.js.map +1 -1
  1079. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +16 -3
  1080. package/src/utils/connection/open-api/react.d.ts +31 -5
  1081. package/src/utils/connection/open-api/react.js +106 -76
  1082. package/src/utils/connection/open-api/react.js.map +1 -1
  1083. package/src/utils/containers.js +22 -23
  1084. package/src/utils/containers.js.map +1 -1
  1085. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
  1086. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +93 -0
  1087. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
  1088. package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
  1089. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
  1090. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
  1091. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
  1092. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
  1093. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
  1094. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
  1095. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +410 -0
  1096. package/src/utils/declared-dependencies.d.ts +140 -0
  1097. package/src/utils/declared-dependencies.js +64 -0
  1098. package/src/utils/declared-dependencies.js.map +1 -0
  1099. package/src/utils/dependencies.d.ts +18 -0
  1100. package/src/utils/dependencies.js +206 -0
  1101. package/src/utils/dependencies.js.map +1 -0
  1102. package/src/utils/docker.d.ts +89 -0
  1103. package/src/utils/docker.js +125 -0
  1104. package/src/utils/docker.js.map +1 -0
  1105. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -1
  1106. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -41
  1107. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  1108. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
  1109. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +1 -1
  1110. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +24 -17
  1111. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
  1112. package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
  1113. package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
  1114. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  1115. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  1116. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  1117. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  1118. package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
  1119. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  1120. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +103 -0
  1121. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
  1122. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
  1123. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  1124. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
  1125. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  1126. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  1127. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  1128. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +115 -0
  1129. package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
  1130. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  1131. package/src/utils/files/shadcn/components.json.template +1 -1
  1132. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
  1133. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  1134. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  1135. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  1136. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  1137. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  1138. package/src/utils/format.d.ts +39 -4
  1139. package/src/utils/format.js +318 -198
  1140. package/src/utils/format.js.map +1 -1
  1141. package/src/utils/fs.d.ts +24 -5
  1142. package/src/utils/fs.js +40 -15
  1143. package/src/utils/fs.js.map +1 -1
  1144. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  1145. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  1146. package/src/utils/function-constructs/function-constructs.js +22 -25
  1147. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  1148. package/src/utils/generators.js +18 -20
  1149. package/src/utils/generators.js.map +1 -1
  1150. package/src/utils/git.js +19 -34
  1151. package/src/utils/git.js.map +1 -1
  1152. package/src/utils/iac-providers.js +5 -5
  1153. package/src/utils/iac-providers.js.map +1 -1
  1154. package/src/utils/iac.js +12 -14
  1155. package/src/utils/iac.js.map +1 -1
  1156. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +153 -24
  1157. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  1158. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +129 -12
  1159. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
  1160. package/src/utils/identity-constructs/identity-constructs.d.ts +10 -0
  1161. package/src/utils/identity-constructs/identity-constructs.js +52 -31
  1162. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  1163. package/src/utils/init.d.ts +72 -0
  1164. package/src/utils/init.js +300 -0
  1165. package/src/utils/init.js.map +1 -0
  1166. package/src/utils/install.d.ts +32 -0
  1167. package/src/utils/install.js +58 -0
  1168. package/src/utils/install.js.map +1 -0
  1169. package/src/utils/js.js +27 -20
  1170. package/src/utils/js.js.map +1 -1
  1171. package/src/utils/mcp.d.ts +9 -0
  1172. package/src/utils/mcp.js +42 -41
  1173. package/src/utils/mcp.js.map +1 -1
  1174. package/src/utils/metrics.d.ts +7 -1
  1175. package/src/utils/metrics.js +61 -46
  1176. package/src/utils/metrics.js.map +1 -1
  1177. package/src/utils/migration-manifest.d.ts +58 -0
  1178. package/src/utils/migration-manifest.js +76 -0
  1179. package/src/utils/migration-manifest.js.map +1 -0
  1180. package/src/utils/migration-versions.d.ts +145 -0
  1181. package/src/utils/migration-versions.js +250 -0
  1182. package/src/utils/migration-versions.js.map +1 -0
  1183. package/src/utils/mock-project-graph.js +8 -12
  1184. package/src/utils/mock-project-graph.js.map +1 -1
  1185. package/src/utils/module-format.d.ts +25 -0
  1186. package/src/utils/module-format.js +45 -0
  1187. package/src/utils/module-format.js.map +1 -0
  1188. package/src/utils/names.d.ts +22 -0
  1189. package/src/utils/names.js +44 -48
  1190. package/src/utils/names.js.map +1 -1
  1191. package/src/utils/npm-scope.d.ts +0 -4
  1192. package/src/utils/npm-scope.js +7 -20
  1193. package/src/utils/npm-scope.js.map +1 -1
  1194. package/src/utils/nx.d.ts +74 -3
  1195. package/src/utils/nx.js +196 -75
  1196. package/src/utils/nx.js.map +1 -1
  1197. package/src/utils/nxlv-python.js +27 -15
  1198. package/src/utils/nxlv-python.js.map +1 -1
  1199. package/src/utils/object.js +5 -11
  1200. package/src/utils/object.js.map +1 -1
  1201. package/src/utils/paths.js +11 -15
  1202. package/src/utils/paths.js.map +1 -1
  1203. package/src/utils/pkg-manager.js +4 -9
  1204. package/src/utils/pkg-manager.js.map +1 -1
  1205. package/src/utils/pnpm-workspace.d.ts +1 -12
  1206. package/src/utils/pnpm-workspace.js +16 -43
  1207. package/src/utils/pnpm-workspace.js.map +1 -1
  1208. package/src/utils/port.d.ts +28 -6
  1209. package/src/utils/port.js +67 -28
  1210. package/src/utils/port.js.map +1 -1
  1211. package/src/utils/project-package-json.d.ts +39 -0
  1212. package/src/utils/project-package-json.js +119 -0
  1213. package/src/utils/project-package-json.js.map +1 -0
  1214. package/src/utils/py.d.ts +17 -3
  1215. package/src/utils/py.js +73 -48
  1216. package/src/utils/py.js.map +1 -1
  1217. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
  1218. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +112 -88
  1219. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +127 -53
  1220. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +60 -53
  1221. package/src/utils/rdb-constructs/rdb-constructs.d.ts +12 -1
  1222. package/src/utils/rdb-constructs/rdb-constructs.js +38 -41
  1223. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  1224. package/src/utils/ruff.d.ts +59 -0
  1225. package/src/utils/ruff.js +140 -0
  1226. package/src/utils/ruff.js.map +1 -0
  1227. package/src/utils/shared-constructs-constants.d.ts +46 -4
  1228. package/src/utils/shared-constructs-constants.js +50 -15
  1229. package/src/utils/shared-constructs-constants.js.map +1 -1
  1230. package/src/utils/shared-constructs.d.ts +4 -1
  1231. package/src/utils/shared-constructs.js +62 -67
  1232. package/src/utils/shared-constructs.js.map +1 -1
  1233. package/src/utils/shared-dynamodb-scripts.d.ts +18 -0
  1234. package/src/utils/shared-dynamodb-scripts.js +35 -0
  1235. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  1236. package/src/utils/shared-infra-config.js +31 -30
  1237. package/src/utils/shared-infra-config.js.map +1 -1
  1238. package/src/utils/shared-infra-scripts.d.ts +26 -0
  1239. package/src/utils/shared-infra-scripts.js +58 -0
  1240. package/src/utils/shared-infra-scripts.js.map +1 -0
  1241. package/src/utils/shared-rdb-scripts.d.ts +27 -0
  1242. package/src/utils/shared-rdb-scripts.js +59 -0
  1243. package/src/utils/shared-rdb-scripts.js.map +1 -0
  1244. package/src/utils/shared-scripts.d.ts +1 -4
  1245. package/src/utils/shared-scripts.js +12 -38
  1246. package/src/utils/shared-scripts.js.map +1 -1
  1247. package/src/utils/shared-shadcn.d.ts +26 -1
  1248. package/src/utils/shared-shadcn.js +93 -67
  1249. package/src/utils/shared-shadcn.js.map +1 -1
  1250. package/src/utils/smithy.d.ts +59 -0
  1251. package/src/utils/smithy.js +73 -0
  1252. package/src/utils/smithy.js.map +1 -0
  1253. package/src/utils/test-git.d.ts +39 -0
  1254. package/src/utils/test-git.js +117 -0
  1255. package/src/utils/test-git.js.map +1 -0
  1256. package/src/utils/test.d.ts +10 -0
  1257. package/src/utils/test.js +44 -25
  1258. package/src/utils/test.js.map +1 -1
  1259. package/src/utils/toml.d.ts +5 -0
  1260. package/src/utils/toml.js +17 -15
  1261. package/src/utils/toml.js.map +1 -1
  1262. package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
  1263. package/src/utils/version-upgrade-migration/migration.js +16 -0
  1264. package/src/utils/version-upgrade-migration/migration.js.map +1 -0
  1265. package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
  1266. package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
  1267. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
  1268. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +76 -0
  1269. package/src/utils/version-upgrade-migration/owned-dependencies.js +146 -0
  1270. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
  1271. package/src/utils/version-upgrade-migration/register.d.ts +29 -0
  1272. package/src/utils/version-upgrade-migration/register.js +42 -0
  1273. package/src/utils/version-upgrade-migration/register.js.map +1 -0
  1274. package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +26 -0
  1275. package/src/utils/version-upgrade-migration/sync-embedded-versions.js +352 -0
  1276. package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -0
  1277. package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
  1278. package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
  1279. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
  1280. package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
  1281. package/src/utils/version-upgrade-migration/sync-vended-versions.js +518 -0
  1282. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
  1283. package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
  1284. package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
  1285. package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
  1286. package/src/utils/versions.d.ts +240 -108
  1287. package/src/utils/versions.js +265 -121
  1288. package/src/utils/versions.js.map +1 -1
  1289. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +2 -2
  1290. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +207 -41
  1291. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
  1292. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +145 -93
  1293. package/src/utils/website-constructs/website-constructs.d.ts +11 -0
  1294. package/src/utils/website-constructs/website-constructs.js +49 -30
  1295. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  1296. package/bin/aws-nx-mcp.d.ts +0 -2
  1297. package/bin/aws-nx-mcp.js +0 -17
  1298. package/bin/aws-nx-mcp.js.map +0 -1
  1299. package/sdk/connection.d.ts +0 -6
  1300. package/sdk/connection.js +0 -10
  1301. package/sdk/connection.js.map +0 -1
  1302. package/sdk/license.d.ts +0 -8
  1303. package/sdk/license.js +0 -13
  1304. package/sdk/license.js.map +0 -1
  1305. package/sdk/open-api.d.ts +0 -10
  1306. package/sdk/open-api.js +0 -15
  1307. package/sdk/open-api.js.map +0 -1
  1308. package/sdk/py.d.ts +0 -14
  1309. package/sdk/py.js +0 -18
  1310. package/sdk/py.js.map +0 -1
  1311. package/sdk/terraform.d.ts +0 -6
  1312. package/sdk/terraform.js +0 -11
  1313. package/sdk/terraform.js.map +0 -1
  1314. package/sdk/ts.d.ts +0 -29
  1315. package/sdk/ts.js +0 -47
  1316. package/sdk/ts.js.map +0 -1
  1317. package/sdk/utils/ast.js +0 -12
  1318. package/sdk/utils/ast.js.map +0 -1
  1319. package/sdk/utils/format.js +0 -10
  1320. package/sdk/utils/format.js.map +0 -1
  1321. package/sdk/utils/test.js +0 -10
  1322. package/sdk/utils/test.js.map +0 -1
  1323. package/src/connection/agent-serve-local.d.ts +0 -33
  1324. package/src/connection/agent-serve-local.js +0 -48
  1325. package/src/connection/agent-serve-local.js.map +0 -1
  1326. package/src/connection/serve-local.js +0 -41
  1327. package/src/connection/serve-local.js.map +0 -1
  1328. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  1329. package/src/py/agent/files/ag-ui/main.py.template +0 -37
  1330. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  1331. package/src/py/agent/react-connection/serve-local.js +0 -30
  1332. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  1333. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  1334. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  1335. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  1336. package/src/ts/agent/react-connection/serve-local.js +0 -19
  1337. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  1338. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  1339. package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
  1340. package/src/ts/dynamodb/files/scripts/start-container.ts.template +0 -81
  1341. package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
  1342. package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
  1343. package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
  1344. package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
  1345. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  1346. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  1347. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  1348. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  1349. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  1350. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  1351. package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
  1352. package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
  1353. package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
  1354. /package/src/py/agent/files/{common → strands/common}/__init__.py.template +0 -0
  1355. /package/src/smithy/project/files/{src → service/src}/main.smithy.template +0 -0
  1356. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  1357. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  1358. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { type MigrationReturnObject, type Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { getProjects, joinPathFragments } from "@nx/devkit";
5
+ import { TERRAFORM_PROJECT_GENERATOR_INFO } from "../../../terraform/project/generator.js";
6
+ import { applyGritQL, GRIT_INSERT_PLACEHOLDER, insertViaGritQL, matchGritQL } from "../../../utils/ast.js";
7
+ import { formatFilesInSubtree } from "../../../utils/format.js";
8
+ /**
9
+ * Adopt an existing Terraform state bucket in the vended bootstrap script when its state object is missing
10
+ *
11
+ * The state bucket stores its own tfstate inside itself, so if that object is
12
+ * deleted while the bucket survives, `bootstrap` reads the 404 as a first run
13
+ * and asks terraform to create a bucket that already exists — failing with
14
+ * `BucketAlreadyOwnedByYou` on every subsequent run, with no retry that clears
15
+ * it. The vended script now imports the existing bucket instead.
16
+ *
17
+ * Every edit is expressed as a GritQL rewrite so the script is matched on its
18
+ * AST rather than its formatting.
19
+ *
20
+ * How to write a migration:
21
+ * - https://nx.dev/docs/kb/migration-generators
22
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
23
+ *
24
+ * Guardrails:
25
+ * - Pattern-match before writing: skip files that have diverged from the shape
26
+ * your generators produce and report them via `nextSteps`, or consider a
27
+ * hybrid migration, rather than clobbering the user's changes.
28
+ * - Idempotent: re-running must be a no-op.
29
+ * - Format what you write: finish with `formatFilesInSubtree` so the files your
30
+ * migration wrote are formatted correctly.
31
+ */ // Guards the whole migration: present only once the import step exists.
32
+ const MIGRATED_PATTERN = '`bucketExists($_, $_)`';
33
+ // Every edit site, matched structurally so formatting and argument layout
34
+ // don't affect whether the script is recognised.
35
+ const STATE_FETCH_TRY_PATTERN = 'try_statement() as $try where { $try <: contains `GetObjectCommand` }';
36
+ const STATE_FLAG_SET_PATTERN = '`if (out.Body) { $body }`';
37
+ const HELPER_PATTERN = '`const main = async () => { $body }`';
38
+ const INIT_PATTERN = "`execFileSync('terraform', ['init'], $opts)`";
39
+ const S3_IMPORT_PATTERN = "`import { $before, GetObjectCommand, $after } from '@aws-sdk/client-s3'`";
40
+ const HEADER_COMMENT_PATTERN = 'comment() as $c where { $c <: includes "state back to S3." }';
41
+ // GritQL snippets are parsed as backtick-quoted patterns, so any backtick in
42
+ // the inserted source has to survive that layer escaped.
43
+ const BUCKET_EXISTS_HELPER = `// S3 answers 404 only when the name is genuinely free; 403 means it exists
44
+ // but is not readable with these credentials.
45
+ const bucketExists = async (s3: S3Client, bucket: string) => {
46
+ try {
47
+ await s3.send(new HeadBucketCommand({ Bucket: bucket }));
48
+ return true;
49
+ } catch (err: any) {
50
+ const status = err?.$metadata?.httpStatusCode;
51
+ if (status === 404) return false;
52
+ if (status === 403) return true;
53
+ throw err;
54
+ }
55
+ };`;
56
+ const IMPORT_STEP = `// The bucket holds its own state, so losing the state object while the
57
+ // bucket survives would otherwise wedge bootstrap on a permanent
58
+ // \`BucketAlreadyOwnedByYou\`. Adopt the existing bucket instead.
59
+ if (!haveState && (await bucketExists(s3, bucket))) {
60
+ console.log(
61
+ \`State bucket \${bucket} already exists but its bootstrap state is missing — importing it.\`,
62
+ );
63
+ execFileSync(
64
+ 'terraform',
65
+ [
66
+ 'import',
67
+ \`-state=\${tfStatePath}\`,
68
+ \`-var=aws_region=\${region}\`,
69
+ 'aws_s3_bucket.terraform_state',
70
+ bucket,
71
+ ],
72
+ { cwd: bootstrapDir, stdio: 'inherit' },
73
+ );
74
+ }`;
75
+ // Rewritten wholesale rather than appended to, since the summary sentence
76
+ // changes rather than gaining a clause.
77
+ const NEW_HEADER_COMMENT = `/**
78
+ * Bootstraps the remote Terraform state bucket.
79
+ *
80
+ * Equivalent to \\\`cdk bootstrap\\\` — resolves account + region from the AWS
81
+ * SDK credential chain, pulls any existing bootstrap tfstate from S3,
82
+ * runs \\\`terraform apply\\\` in the \\\`bootstrap\\\` dir, then pushes the new
83
+ * state back to S3. Adopts an already-existing state bucket when its
84
+ * state object is missing.
85
+ */`;
86
+ const DIVERGED_NEXT_STEP = (filePath)=>`${filePath}: the bootstrap script has diverged from the generated shape - left untouched. Manually \`terraform import aws_s3_bucket.terraform_state <bucket>\` before \`terraform apply\` when the state bucket exists but its \`bootstrap.tfstate\` object does not, otherwise bootstrap fails with BucketAlreadyOwnedByYou.`;
87
+ export default async function migration(tree) {
88
+ const nextSteps = [];
89
+ // Terraform application projects are the only ones that vend bootstrap.ts.
90
+ const bootstrapScripts = [
91
+ ...getProjects(tree).values()
92
+ ].filter((project)=>project.metadata?.generator === TERRAFORM_PROJECT_GENERATOR_INFO.id).map((project)=>joinPathFragments(project.root, 'scripts/bootstrap.ts')).filter((filePath)=>tree.exists(filePath));
93
+ for (const filePath of bootstrapScripts){
94
+ if (await matchGritQL(tree, filePath, MIGRATED_PATTERN)) {
95
+ continue;
96
+ }
97
+ // Confirm every edit site is present before writing any of them, so a
98
+ // script that only partly matches is left whole rather than half-edited.
99
+ const allSitesPresent = (await Promise.all([
100
+ STATE_FETCH_TRY_PATTERN,
101
+ STATE_FLAG_SET_PATTERN,
102
+ HELPER_PATTERN,
103
+ INIT_PATTERN,
104
+ S3_IMPORT_PATTERN,
105
+ HEADER_COMMENT_PATTERN
106
+ ].map((pattern)=>matchGritQL(tree, filePath, pattern)))).every(Boolean);
107
+ if (!allSitesPresent) {
108
+ nextSteps.push(DIVERGED_NEXT_STEP(filePath));
109
+ continue;
110
+ }
111
+ // `haveState` distinguishes "no remote state" from "no bucket", so the
112
+ // import only runs when terraform has no prior knowledge of the bucket.
113
+ await insertViaGritQL(tree, filePath, `${STATE_FETCH_TRY_PATTERN} => \`${GRIT_INSERT_PLACEHOLDER}\n $try\``, 'let haveState = false;');
114
+ await applyGritQL(tree, filePath, `${STATE_FLAG_SET_PATTERN} => \`if (out.Body) {\n $body\n haveState = true;\n }\``);
115
+ await insertViaGritQL(tree, filePath, `${HELPER_PATTERN} => \`${GRIT_INSERT_PLACEHOLDER}\n\nconst main = async () => { $body }\``, BUCKET_EXISTS_HELPER);
116
+ await insertViaGritQL(tree, filePath, `${INIT_PATTERN} => \`execFileSync('terraform', ['init'], $opts);\n\n ${GRIT_INSERT_PLACEHOLDER}\n\``, IMPORT_STEP);
117
+ // Placed in the generator's import position rather than appended, so a
118
+ // migrated workspace matches a freshly generated one.
119
+ await applyGritQL(tree, filePath, `${S3_IMPORT_PATTERN} => \`import { $before, GetObjectCommand, HeadBucketCommand, $after } from '@aws-sdk/client-s3'\``);
120
+ await applyGritQL(tree, filePath, `${HEADER_COMMENT_PATTERN} => \`${NEW_HEADER_COMMENT}\``);
121
+ }
122
+ await formatFilesInSubtree(tree);
123
+ return {
124
+ nextSteps
125
+ };
126
+ }
127
+
128
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n getProjects,\n joinPathFragments,\n type MigrationReturnObject,\n type Tree,\n} from '@nx/devkit';\nimport { TERRAFORM_PROJECT_GENERATOR_INFO } from '../../../terraform/project/generator';\nimport {\n applyGritQL,\n GRIT_INSERT_PLACEHOLDER,\n insertViaGritQL,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\n\n/**\n * Adopt an existing Terraform state bucket in the vended bootstrap script when its state object is missing\n *\n * The state bucket stores its own tfstate inside itself, so if that object is\n * deleted while the bucket survives, `bootstrap` reads the 404 as a first run\n * and asks terraform to create a bucket that already exists — failing with\n * `BucketAlreadyOwnedByYou` on every subsequent run, with no retry that clears\n * it. The vended script now imports the existing bucket instead.\n *\n * Every edit is expressed as a GritQL rewrite so the script is matched on its\n * AST rather than its formatting.\n *\n * How to write a migration:\n * - https://nx.dev/docs/kb/migration-generators\n * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject\n *\n * Guardrails:\n * - Pattern-match before writing: skip files that have diverged from the shape\n * your generators produce and report them via `nextSteps`, or consider a\n * hybrid migration, rather than clobbering the user's changes.\n * - Idempotent: re-running must be a no-op.\n * - Format what you write: finish with `formatFilesInSubtree` so the files your\n * migration wrote are formatted correctly.\n */\n\n// Guards the whole migration: present only once the import step exists.\nconst MIGRATED_PATTERN = '`bucketExists($_, $_)`';\n\n// Every edit site, matched structurally so formatting and argument layout\n// don't affect whether the script is recognised.\nconst STATE_FETCH_TRY_PATTERN =\n 'try_statement() as $try where { $try <: contains `GetObjectCommand` }';\nconst STATE_FLAG_SET_PATTERN = '`if (out.Body) { $body }`';\nconst HELPER_PATTERN = '`const main = async () => { $body }`';\nconst INIT_PATTERN = \"`execFileSync('terraform', ['init'], $opts)`\";\nconst S3_IMPORT_PATTERN =\n \"`import { $before, GetObjectCommand, $after } from '@aws-sdk/client-s3'`\";\nconst HEADER_COMMENT_PATTERN =\n 'comment() as $c where { $c <: includes \"state back to S3.\" }';\n\n// GritQL snippets are parsed as backtick-quoted patterns, so any backtick in\n// the inserted source has to survive that layer escaped.\nconst BUCKET_EXISTS_HELPER = `// S3 answers 404 only when the name is genuinely free; 403 means it exists\n// but is not readable with these credentials.\nconst bucketExists = async (s3: S3Client, bucket: string) => {\n try {\n await s3.send(new HeadBucketCommand({ Bucket: bucket }));\n return true;\n } catch (err: any) {\n const status = err?.$metadata?.httpStatusCode;\n if (status === 404) return false;\n if (status === 403) return true;\n throw err;\n }\n};`;\n\nconst IMPORT_STEP = `// The bucket holds its own state, so losing the state object while the\n // bucket survives would otherwise wedge bootstrap on a permanent\n // \\`BucketAlreadyOwnedByYou\\`. Adopt the existing bucket instead.\n if (!haveState && (await bucketExists(s3, bucket))) {\n console.log(\n \\`State bucket \\${bucket} already exists but its bootstrap state is missing — importing it.\\`,\n );\n execFileSync(\n 'terraform',\n [\n 'import',\n \\`-state=\\${tfStatePath}\\`,\n \\`-var=aws_region=\\${region}\\`,\n 'aws_s3_bucket.terraform_state',\n bucket,\n ],\n { cwd: bootstrapDir, stdio: 'inherit' },\n );\n }`;\n\n// Rewritten wholesale rather than appended to, since the summary sentence\n// changes rather than gaining a clause.\nconst NEW_HEADER_COMMENT = `/**\n * Bootstraps the remote Terraform state bucket.\n *\n * Equivalent to \\\\\\`cdk bootstrap\\\\\\` — resolves account + region from the AWS\n * SDK credential chain, pulls any existing bootstrap tfstate from S3,\n * runs \\\\\\`terraform apply\\\\\\` in the \\\\\\`bootstrap\\\\\\` dir, then pushes the new\n * state back to S3. Adopts an already-existing state bucket when its\n * state object is missing.\n */`;\n\nconst DIVERGED_NEXT_STEP = (filePath: string) =>\n `${filePath}: the bootstrap script has diverged from the generated shape - left untouched. Manually \\`terraform import aws_s3_bucket.terraform_state <bucket>\\` before \\`terraform apply\\` when the state bucket exists but its \\`bootstrap.tfstate\\` object does not, otherwise bootstrap fails with BucketAlreadyOwnedByYou.`;\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n // Terraform application projects are the only ones that vend bootstrap.ts.\n const bootstrapScripts = [...getProjects(tree).values()]\n .filter(\n (project) =>\n (project.metadata as any)?.generator ===\n TERRAFORM_PROJECT_GENERATOR_INFO.id,\n )\n .map((project) => joinPathFragments(project.root, 'scripts/bootstrap.ts'))\n .filter((filePath) => tree.exists(filePath));\n\n for (const filePath of bootstrapScripts) {\n if (await matchGritQL(tree, filePath, MIGRATED_PATTERN)) {\n // Already migrated - silent skip keeps re-runs a no-op.\n continue;\n }\n\n // Confirm every edit site is present before writing any of them, so a\n // script that only partly matches is left whole rather than half-edited.\n const allSitesPresent = (\n await Promise.all(\n [\n STATE_FETCH_TRY_PATTERN,\n STATE_FLAG_SET_PATTERN,\n HELPER_PATTERN,\n INIT_PATTERN,\n S3_IMPORT_PATTERN,\n HEADER_COMMENT_PATTERN,\n ].map((pattern) => matchGritQL(tree, filePath, pattern)),\n )\n ).every(Boolean);\n\n if (!allSitesPresent) {\n nextSteps.push(DIVERGED_NEXT_STEP(filePath));\n continue;\n }\n\n // `haveState` distinguishes \"no remote state\" from \"no bucket\", so the\n // import only runs when terraform has no prior knowledge of the bucket.\n await insertViaGritQL(\n tree,\n filePath,\n `${STATE_FETCH_TRY_PATTERN} => \\`${GRIT_INSERT_PLACEHOLDER}\\n $try\\``,\n 'let haveState = false;',\n );\n await applyGritQL(\n tree,\n filePath,\n `${STATE_FLAG_SET_PATTERN} => \\`if (out.Body) {\\n $body\\n haveState = true;\\n }\\``,\n );\n await insertViaGritQL(\n tree,\n filePath,\n `${HELPER_PATTERN} => \\`${GRIT_INSERT_PLACEHOLDER}\\n\\nconst main = async () => { $body }\\``,\n BUCKET_EXISTS_HELPER,\n );\n await insertViaGritQL(\n tree,\n filePath,\n `${INIT_PATTERN} => \\`execFileSync('terraform', ['init'], $opts);\\n\\n ${GRIT_INSERT_PLACEHOLDER}\\n\\``,\n IMPORT_STEP,\n );\n\n // Placed in the generator's import position rather than appended, so a\n // migrated workspace matches a freshly generated one.\n await applyGritQL(\n tree,\n filePath,\n `${S3_IMPORT_PATTERN} => \\`import { $before, GetObjectCommand, HeadBucketCommand, $after } from '@aws-sdk/client-s3'\\``,\n );\n\n await applyGritQL(\n tree,\n filePath,\n `${HEADER_COMMENT_PATTERN} => \\`${NEW_HEADER_COMMENT}\\``,\n );\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["getProjects","joinPathFragments","TERRAFORM_PROJECT_GENERATOR_INFO","applyGritQL","GRIT_INSERT_PLACEHOLDER","insertViaGritQL","matchGritQL","formatFilesInSubtree","MIGRATED_PATTERN","STATE_FETCH_TRY_PATTERN","STATE_FLAG_SET_PATTERN","HELPER_PATTERN","INIT_PATTERN","S3_IMPORT_PATTERN","HEADER_COMMENT_PATTERN","BUCKET_EXISTS_HELPER","IMPORT_STEP","NEW_HEADER_COMMENT","DIVERGED_NEXT_STEP","filePath","migration","tree","nextSteps","bootstrapScripts","values","filter","project","metadata","generator","id","map","root","exists","allSitesPresent","Promise","all","pattern","every","Boolean","push"],"mappings":"AAAA;;;CAGC,GACD,SACEA,WAAW,EACXC,iBAAiB,QAGZ,aAAa;AACpB,SAASC,gCAAgC,QAAQ,0CAAuC;AACxF,SACEC,WAAW,EACXC,uBAAuB,EACvBC,eAAe,EACfC,WAAW,QACN,wBAAqB;AAC5B,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GAED,wEAAwE;AACxE,MAAMC,mBAAmB;AAEzB,0EAA0E;AAC1E,iDAAiD;AACjD,MAAMC,0BACJ;AACF,MAAMC,yBAAyB;AAC/B,MAAMC,iBAAiB;AACvB,MAAMC,eAAe;AACrB,MAAMC,oBACJ;AACF,MAAMC,yBACJ;AAEF,6EAA6E;AAC7E,yDAAyD;AACzD,MAAMC,uBAAuB,CAAC;;;;;;;;;;;;EAY5B,CAAC;AAEH,MAAMC,cAAc,CAAC;;;;;;;;;;;;;;;;;;GAkBlB,CAAC;AAEJ,0EAA0E;AAC1E,wCAAwC;AACxC,MAAMC,qBAAqB,CAAC;;;;;;;;GAQzB,CAAC;AAEJ,MAAMC,qBAAqB,CAACC,WAC1B,GAAGA,SAAS,kTAAkT,CAAC;AAEjU,eAAe,eAAeC,UAC5BC,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,2EAA2E;IAC3E,MAAMC,mBAAmB;WAAIvB,YAAYqB,MAAMG,MAAM;KAAG,CACrDC,MAAM,CACL,CAACC,UACC,AAACA,QAAQC,QAAQ,EAAUC,cAC3B1B,iCAAiC2B,EAAE,EAEtCC,GAAG,CAAC,CAACJ,UAAYzB,kBAAkByB,QAAQK,IAAI,EAAE,yBACjDN,MAAM,CAAC,CAACN,WAAaE,KAAKW,MAAM,CAACb;IAEpC,KAAK,MAAMA,YAAYI,iBAAkB;QACvC,IAAI,MAAMjB,YAAYe,MAAMF,UAAUX,mBAAmB;YAEvD;QACF;QAEA,sEAAsE;QACtE,yEAAyE;QACzE,MAAMyB,kBAAkB,AACtB,CAAA,MAAMC,QAAQC,GAAG,CACf;YACE1B;YACAC;YACAC;YACAC;YACAC;YACAC;SACD,CAACgB,GAAG,CAAC,CAACM,UAAY9B,YAAYe,MAAMF,UAAUiB,UACjD,EACAC,KAAK,CAACC;QAER,IAAI,CAACL,iBAAiB;YACpBX,UAAUiB,IAAI,CAACrB,mBAAmBC;YAClC;QACF;QAEA,uEAAuE;QACvE,wEAAwE;QACxE,MAAMd,gBACJgB,MACAF,UACA,GAAGV,wBAAwB,MAAM,EAAEL,wBAAwB,UAAU,CAAC,EACtE;QAEF,MAAMD,YACJkB,MACAF,UACA,GAAGT,uBAAuB,oEAAoE,CAAC;QAEjG,MAAML,gBACJgB,MACAF,UACA,GAAGR,eAAe,MAAM,EAAEP,wBAAwB,wCAAwC,CAAC,EAC3FW;QAEF,MAAMV,gBACJgB,MACAF,UACA,GAAGP,aAAa,uDAAuD,EAAER,wBAAwB,IAAI,CAAC,EACtGY;QAGF,uEAAuE;QACvE,sDAAsD;QACtD,MAAMb,YACJkB,MACAF,UACA,GAAGN,kBAAkB,iGAAiG,CAAC;QAGzH,MAAMV,YACJkB,MACAF,UACA,GAAGL,uBAAuB,MAAM,EAAEG,mBAAmB,EAAE,CAAC;IAE5D;IAEA,MAAMV,qBAAqBc;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Count the EC2MetaDataSSRF_QUERYARGUMENTS WAF rule on the UserIdentity Web ACL so sign-in from a local dev server is not blocked"
3
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import type { MigrationReturnObject, Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,215 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { applyGritQL, matchGritQL } from "../../../utils/ast.js";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Count the EC2MetaDataSSRF_QUERYARGUMENTS WAF rule on the UserIdentity Web ACL
9
+ *
10
+ * `AWSManagedRulesCommonRuleSet` treats the loopback `redirect_uri` the Cognito
11
+ * Hosted UI receives during local sign-in as an SSRF attempt, so sign-in against
12
+ * a local dev server fails with an opaque 403 before the login page renders. The
13
+ * rule is overridden to Count while a local callback URL is allowed; every other
14
+ * rule in the group still blocks.
15
+ *
16
+ * The local callback URLs are lifted into a named constant so the override can be
17
+ * derived from them rather than restating the condition.
18
+ *
19
+ * How to write a migration:
20
+ * - https://nx.dev/docs/kb/migration-generators
21
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
22
+ *
23
+ * Guardrails:
24
+ * - Pattern-match before writing: skip files that have diverged from the shape
25
+ * your generators produce and report them via `nextSteps`, rather than
26
+ * clobbering the user's changes.
27
+ * - Idempotent: re-running must be a no-op.
28
+ * - Format what you write: finish with `formatFilesInSubtree` so the files your
29
+ * migration wrote are formatted correctly.
30
+ */ const CDK_USER_IDENTITY_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/user-identity.ts`;
31
+ const TERRAFORM_IDENTITY_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/user-identity/identity/identity.tf`;
32
+ const SSRF_RULE_NAME = 'EC2MetaDataSSRF_QUERYARGUMENTS';
33
+ // Guards each file: present only once the override has been added.
34
+ const CDK_MIGRATED_PATTERN = `\`ruleActionOverrides: allowsLocalCallback ? $_ : undefined\``;
35
+ const TERRAFORM_MIGRATED_PATTERN = `language hcl\n\`name = "${SSRF_RULE_NAME}"\``;
36
+ // Every CDK edit site, matched structurally so formatting doesn't affect whether
37
+ // the construct is recognised.
38
+ const CDK_CONSTANT_ANCHOR_PATTERN = "`const WEB_CLIENT_ID = 'WebClient'`";
39
+ // Scoped to the `.concat` callsite so it can't also rewrite the array literal
40
+ // inside the constant this migration inserts.
41
+ const CDK_LOCAL_URLS_PATTERN = "`['http://localhost:4200', 'http://localhost:4300'].concat($rest)`";
42
+ const CDK_CALL_PATTERN = '`this.createWebAcl($id, this.userPool)`';
43
+ const CDK_SIGNATURE_PATTERN = '`private createWebAcl = ($id: string, $pool: UserPool) => $body`';
44
+ const CDK_STATEMENT_PATTERN = "`managedRuleGroupStatement: { name: 'AWSManagedRulesCommonRuleSet', vendorName: 'AWS' }`";
45
+ const CDK_EDITS = [
46
+ // Local callback URLs become a named constant the override can key off.
47
+ [
48
+ CDK_CONSTANT_ANCHOR_PATTERN,
49
+ `${CDK_CONSTANT_ANCHOR_PATTERN} => \`const WEB_CLIENT_ID = 'WebClient';
50
+
51
+ /** Local dev server origins permitted to complete the sign-in redirect */
52
+ const LOCAL_CALLBACK_URLS = ['http://localhost:4200', 'http://localhost:4300']\``
53
+ ],
54
+ [
55
+ CDK_LOCAL_URLS_PATTERN,
56
+ `${CDK_LOCAL_URLS_PATTERN} => \`LOCAL_CALLBACK_URLS.concat($rest)\``
57
+ ],
58
+ [
59
+ CDK_CALL_PATTERN,
60
+ `${CDK_CALL_PATTERN} => \`this.createWebAcl($id, this.userPool, LOCAL_CALLBACK_URLS.length > 0)\``
61
+ ],
62
+ [
63
+ CDK_SIGNATURE_PATTERN,
64
+ `${CDK_SIGNATURE_PATTERN} => \`private createWebAcl = (
65
+ $id: string,
66
+ $pool: UserPool,
67
+ allowsLocalCallback: boolean
68
+ ) => $body\``
69
+ ],
70
+ [
71
+ CDK_STATEMENT_PATTERN,
72
+ `${CDK_STATEMENT_PATTERN} => \`managedRuleGroupStatement: {
73
+ name: 'AWSManagedRulesCommonRuleSet',
74
+ vendorName: 'AWS',
75
+ // ${SSRF_RULE_NAME} treats the loopback redirect_uri the
76
+ // Hosted UI receives during local sign-in as an SSRF attempt. Counted
77
+ // only while a local callback URL is allowed; every other rule blocks.
78
+ ruleActionOverrides: allowsLocalCallback
79
+ ? [
80
+ {
81
+ name: '${SSRF_RULE_NAME}',
82
+ actionToUse: { count: {} },
83
+ },
84
+ ]
85
+ : undefined,
86
+ }\``
87
+ ]
88
+ ];
89
+ const TERRAFORM_DATA_SOURCES_PATTERN = [
90
+ 'language hcl',
91
+ '`data "aws_region" "current" {}`'
92
+ ].join('\n');
93
+ const TERRAFORM_EDITS = [
94
+ // Local callback URLs become a local the override can key off.
95
+ [
96
+ TERRAFORM_DATA_SOURCES_PATTERN,
97
+ [
98
+ 'language hcl',
99
+ '`data "aws_region" "current" {}` => `data "aws_region" "current" {}',
100
+ '',
101
+ 'locals {',
102
+ ' # Local dev server origins permitted to complete the sign-in redirect',
103
+ ' local_callback_urls = [',
104
+ ' "http://localhost:4200",',
105
+ ' "http://localhost:4300"',
106
+ ' ]',
107
+ '}`'
108
+ ].join('\n')
109
+ ],
110
+ [
111
+ [
112
+ 'language hcl',
113
+ '`callback_urls = concat([',
114
+ ' "http://localhost:4200",',
115
+ ' "http://localhost:4300"',
116
+ ' ], var.callback_urls)`'
117
+ ].join('\n'),
118
+ [
119
+ 'language hcl',
120
+ '`callback_urls = concat([',
121
+ ' "http://localhost:4200",',
122
+ ' "http://localhost:4300"',
123
+ ' ], var.callback_urls)` => `callback_urls = concat(local.local_callback_urls, var.callback_urls)`'
124
+ ].join('\n')
125
+ ],
126
+ [
127
+ [
128
+ 'language hcl',
129
+ '`logout_urls = concat([',
130
+ ' "http://localhost:4200",',
131
+ ' "http://localhost:4300"',
132
+ ' ], var.logout_urls)`'
133
+ ].join('\n'),
134
+ [
135
+ 'language hcl',
136
+ '`logout_urls = concat([',
137
+ ' "http://localhost:4200",',
138
+ ' "http://localhost:4300"',
139
+ ' ], var.logout_urls)` => `logout_urls = concat(local.local_callback_urls, var.logout_urls)`'
140
+ ].join('\n')
141
+ ],
142
+ [
143
+ [
144
+ 'language hcl',
145
+ '`managed_rule_group_statement {',
146
+ ' name = "AWSManagedRulesCommonRuleSet"',
147
+ ' vendor_name = "AWS"',
148
+ ' }`'
149
+ ].join('\n'),
150
+ [
151
+ 'language hcl',
152
+ '`managed_rule_group_statement {',
153
+ ' name = "AWSManagedRulesCommonRuleSet"',
154
+ ' vendor_name = "AWS"',
155
+ ' }` => `managed_rule_group_statement {',
156
+ ' name = "AWSManagedRulesCommonRuleSet"',
157
+ ' vendor_name = "AWS"',
158
+ '',
159
+ ` # ${SSRF_RULE_NAME} treats the loopback redirect_uri the`,
160
+ ' # Hosted UI receives during local sign-in as an SSRF attempt. Counted',
161
+ ' # only while a local callback URL is allowed; every other rule blocks.',
162
+ ' dynamic "rule_action_override" {',
163
+ ' for_each = length(local.local_callback_urls) > 0 ? [1] : []',
164
+ '',
165
+ ' content {',
166
+ ` name = "${SSRF_RULE_NAME}"`,
167
+ '',
168
+ ' action_to_use {',
169
+ ' count {}',
170
+ ' }',
171
+ ' }',
172
+ ' }',
173
+ ' }`'
174
+ ].join('\n')
175
+ ]
176
+ ];
177
+ const divergedNextStep = (filePath)=>`${filePath}: the UserIdentity Web ACL has diverged from the generated shape - left untouched. To sign in against a local dev server, override ${SSRF_RULE_NAME} in the AWSManagedRulesCommonRuleSet rule group to Count, otherwise the Cognito Hosted UI returns 403 for localhost redirect URIs.`;
178
+ export default async function migration(tree) {
179
+ const nextSteps = [];
180
+ for (const [filePath, migratedPattern, edits] of [
181
+ [
182
+ CDK_USER_IDENTITY_FILE,
183
+ CDK_MIGRATED_PATTERN,
184
+ CDK_EDITS
185
+ ],
186
+ [
187
+ TERRAFORM_IDENTITY_FILE,
188
+ TERRAFORM_MIGRATED_PATTERN,
189
+ TERRAFORM_EDITS
190
+ ]
191
+ ]){
192
+ if (!tree.exists(filePath)) {
193
+ continue;
194
+ }
195
+ if (await matchGritQL(tree, filePath, migratedPattern)) {
196
+ continue;
197
+ }
198
+ // Confirm every edit site is present before writing any of them, so a file
199
+ // that only partly matches is left whole rather than half-edited.
200
+ const allSitesPresent = (await Promise.all(edits.map(([match])=>matchGritQL(tree, filePath, match)))).every(Boolean);
201
+ if (!allSitesPresent) {
202
+ nextSteps.push(divergedNextStep(filePath));
203
+ continue;
204
+ }
205
+ for (const [, rewrite] of edits){
206
+ await applyGritQL(tree, filePath, rewrite);
207
+ }
208
+ }
209
+ await formatFilesInSubtree(tree);
210
+ return {
211
+ nextSteps
212
+ };
213
+ }
214
+
215
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { MigrationReturnObject, Tree } from '@nx/devkit';\nimport { applyGritQL, matchGritQL } from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../../../utils/shared-constructs-constants';\n\n/**\n * Count the EC2MetaDataSSRF_QUERYARGUMENTS WAF rule on the UserIdentity Web ACL\n *\n * `AWSManagedRulesCommonRuleSet` treats the loopback `redirect_uri` the Cognito\n * Hosted UI receives during local sign-in as an SSRF attempt, so sign-in against\n * a local dev server fails with an opaque 403 before the login page renders. The\n * rule is overridden to Count while a local callback URL is allowed; every other\n * rule in the group still blocks.\n *\n * The local callback URLs are lifted into a named constant so the override can be\n * derived from them rather than restating the condition.\n *\n * How to write a migration:\n * - https://nx.dev/docs/kb/migration-generators\n * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject\n *\n * Guardrails:\n * - Pattern-match before writing: skip files that have diverged from the shape\n * your generators produce and report them via `nextSteps`, rather than\n * clobbering the user's changes.\n * - Idempotent: re-running must be a no-op.\n * - Format what you write: finish with `formatFilesInSubtree` so the files your\n * migration wrote are formatted correctly.\n */\n\nconst CDK_USER_IDENTITY_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/user-identity.ts`;\nconst TERRAFORM_IDENTITY_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/user-identity/identity/identity.tf`;\n\nconst SSRF_RULE_NAME = 'EC2MetaDataSSRF_QUERYARGUMENTS';\n\n// Guards each file: present only once the override has been added.\nconst CDK_MIGRATED_PATTERN = `\\`ruleActionOverrides: allowsLocalCallback ? $_ : undefined\\``;\nconst TERRAFORM_MIGRATED_PATTERN = `language hcl\\n\\`name = \"${SSRF_RULE_NAME}\"\\``;\n\n// Every CDK edit site, matched structurally so formatting doesn't affect whether\n// the construct is recognised.\nconst CDK_CONSTANT_ANCHOR_PATTERN = \"`const WEB_CLIENT_ID = 'WebClient'`\";\n// Scoped to the `.concat` callsite so it can't also rewrite the array literal\n// inside the constant this migration inserts.\nconst CDK_LOCAL_URLS_PATTERN =\n \"`['http://localhost:4200', 'http://localhost:4300'].concat($rest)`\";\nconst CDK_CALL_PATTERN = '`this.createWebAcl($id, this.userPool)`';\nconst CDK_SIGNATURE_PATTERN =\n '`private createWebAcl = ($id: string, $pool: UserPool) => $body`';\nconst CDK_STATEMENT_PATTERN =\n \"`managedRuleGroupStatement: { name: 'AWSManagedRulesCommonRuleSet', vendorName: 'AWS' }`\";\n\nconst CDK_EDITS: Array<[string, string]> = [\n // Local callback URLs become a named constant the override can key off.\n [\n CDK_CONSTANT_ANCHOR_PATTERN,\n `${CDK_CONSTANT_ANCHOR_PATTERN} => \\`const WEB_CLIENT_ID = 'WebClient';\n\n/** Local dev server origins permitted to complete the sign-in redirect */\nconst LOCAL_CALLBACK_URLS = ['http://localhost:4200', 'http://localhost:4300']\\``,\n ],\n [\n CDK_LOCAL_URLS_PATTERN,\n `${CDK_LOCAL_URLS_PATTERN} => \\`LOCAL_CALLBACK_URLS.concat($rest)\\``,\n ],\n [\n CDK_CALL_PATTERN,\n `${CDK_CALL_PATTERN} => \\`this.createWebAcl($id, this.userPool, LOCAL_CALLBACK_URLS.length > 0)\\``,\n ],\n [\n CDK_SIGNATURE_PATTERN,\n `${CDK_SIGNATURE_PATTERN} => \\`private createWebAcl = (\n $id: string,\n $pool: UserPool,\n allowsLocalCallback: boolean\n ) => $body\\``,\n ],\n [\n CDK_STATEMENT_PATTERN,\n `${CDK_STATEMENT_PATTERN} => \\`managedRuleGroupStatement: {\n name: 'AWSManagedRulesCommonRuleSet',\n vendorName: 'AWS',\n // ${SSRF_RULE_NAME} treats the loopback redirect_uri the\n // Hosted UI receives during local sign-in as an SSRF attempt. Counted\n // only while a local callback URL is allowed; every other rule blocks.\n ruleActionOverrides: allowsLocalCallback\n ? [\n {\n name: '${SSRF_RULE_NAME}',\n actionToUse: { count: {} },\n },\n ]\n : undefined,\n }\\``,\n ],\n];\n\nconst TERRAFORM_DATA_SOURCES_PATTERN = [\n 'language hcl',\n '`data \"aws_region\" \"current\" {}`',\n].join('\\n');\n\nconst TERRAFORM_EDITS: Array<[string, string]> = [\n // Local callback URLs become a local the override can key off.\n [\n TERRAFORM_DATA_SOURCES_PATTERN,\n [\n 'language hcl',\n '`data \"aws_region\" \"current\" {}` => `data \"aws_region\" \"current\" {}',\n '',\n 'locals {',\n ' # Local dev server origins permitted to complete the sign-in redirect',\n ' local_callback_urls = [',\n ' \"http://localhost:4200\",',\n ' \"http://localhost:4300\"',\n ' ]',\n '}`',\n ].join('\\n'),\n ],\n [\n [\n 'language hcl',\n '`callback_urls = concat([',\n ' \"http://localhost:4200\",',\n ' \"http://localhost:4300\"',\n ' ], var.callback_urls)`',\n ].join('\\n'),\n [\n 'language hcl',\n '`callback_urls = concat([',\n ' \"http://localhost:4200\",',\n ' \"http://localhost:4300\"',\n ' ], var.callback_urls)` => `callback_urls = concat(local.local_callback_urls, var.callback_urls)`',\n ].join('\\n'),\n ],\n [\n [\n 'language hcl',\n '`logout_urls = concat([',\n ' \"http://localhost:4200\",',\n ' \"http://localhost:4300\"',\n ' ], var.logout_urls)`',\n ].join('\\n'),\n [\n 'language hcl',\n '`logout_urls = concat([',\n ' \"http://localhost:4200\",',\n ' \"http://localhost:4300\"',\n ' ], var.logout_urls)` => `logout_urls = concat(local.local_callback_urls, var.logout_urls)`',\n ].join('\\n'),\n ],\n [\n [\n 'language hcl',\n '`managed_rule_group_statement {',\n ' name = \"AWSManagedRulesCommonRuleSet\"',\n ' vendor_name = \"AWS\"',\n ' }`',\n ].join('\\n'),\n [\n 'language hcl',\n '`managed_rule_group_statement {',\n ' name = \"AWSManagedRulesCommonRuleSet\"',\n ' vendor_name = \"AWS\"',\n ' }` => `managed_rule_group_statement {',\n ' name = \"AWSManagedRulesCommonRuleSet\"',\n ' vendor_name = \"AWS\"',\n '',\n ` # ${SSRF_RULE_NAME} treats the loopback redirect_uri the`,\n ' # Hosted UI receives during local sign-in as an SSRF attempt. Counted',\n ' # only while a local callback URL is allowed; every other rule blocks.',\n ' dynamic \"rule_action_override\" {',\n ' for_each = length(local.local_callback_urls) > 0 ? [1] : []',\n '',\n ' content {',\n ` name = \"${SSRF_RULE_NAME}\"`,\n '',\n ' action_to_use {',\n ' count {}',\n ' }',\n ' }',\n ' }',\n ' }`',\n ].join('\\n'),\n ],\n];\n\nconst divergedNextStep = (filePath: string) =>\n `${filePath}: the UserIdentity Web ACL has diverged from the generated shape - left untouched. To sign in against a local dev server, override ${SSRF_RULE_NAME} in the AWSManagedRulesCommonRuleSet rule group to Count, otherwise the Cognito Hosted UI returns 403 for localhost redirect URIs.`;\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n for (const [filePath, migratedPattern, edits] of [\n [CDK_USER_IDENTITY_FILE, CDK_MIGRATED_PATTERN, CDK_EDITS],\n [TERRAFORM_IDENTITY_FILE, TERRAFORM_MIGRATED_PATTERN, TERRAFORM_EDITS],\n ] as const) {\n if (!tree.exists(filePath)) {\n // This workspace doesn't use this IaC provider, or has no UserIdentity.\n continue;\n }\n\n if (await matchGritQL(tree, filePath, migratedPattern)) {\n // Already migrated - silent skip keeps re-runs a no-op.\n continue;\n }\n\n // Confirm every edit site is present before writing any of them, so a file\n // that only partly matches is left whole rather than half-edited.\n const allSitesPresent = (\n await Promise.all(\n edits.map(([match]) => matchGritQL(tree, filePath, match)),\n )\n ).every(Boolean);\n\n if (!allSitesPresent) {\n nextSteps.push(divergedNextStep(filePath));\n continue;\n }\n\n for (const [, rewrite] of edits) {\n await applyGritQL(tree, filePath, rewrite);\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["applyGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","CDK_USER_IDENTITY_FILE","TERRAFORM_IDENTITY_FILE","SSRF_RULE_NAME","CDK_MIGRATED_PATTERN","TERRAFORM_MIGRATED_PATTERN","CDK_CONSTANT_ANCHOR_PATTERN","CDK_LOCAL_URLS_PATTERN","CDK_CALL_PATTERN","CDK_SIGNATURE_PATTERN","CDK_STATEMENT_PATTERN","CDK_EDITS","TERRAFORM_DATA_SOURCES_PATTERN","join","TERRAFORM_EDITS","divergedNextStep","filePath","migration","tree","nextSteps","migratedPattern","edits","exists","allSitesPresent","Promise","all","map","match","every","Boolean","push","rewrite"],"mappings":"AAAA;;;CAGC,GAED,SAASA,WAAW,EAAEC,WAAW,QAAQ,wBAAqB;AAC9D,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,gDAA6C;AAEpD;;;;;;;;;;;;;;;;;;;;;;;CAuBC,GAED,MAAMC,yBAAyB,GAAGH,aAAa,CAAC,EAAEC,sBAAsB,0BAA0B,CAAC;AACnG,MAAMG,0BAA0B,GAAGJ,aAAa,CAAC,EAAEE,qBAAqB,4CAA4C,CAAC;AAErH,MAAMG,iBAAiB;AAEvB,mEAAmE;AACnE,MAAMC,uBAAuB,CAAC,6DAA6D,CAAC;AAC5F,MAAMC,6BAA6B,CAAC,wBAAwB,EAAEF,eAAe,GAAG,CAAC;AAEjF,iFAAiF;AACjF,+BAA+B;AAC/B,MAAMG,8BAA8B;AACpC,8EAA8E;AAC9E,8CAA8C;AAC9C,MAAMC,yBACJ;AACF,MAAMC,mBAAmB;AACzB,MAAMC,wBACJ;AACF,MAAMC,wBACJ;AAEF,MAAMC,YAAqC;IACzC,wEAAwE;IACxE;QACEL;QACA,GAAGA,4BAA4B;;;gFAG6C,CAAC;KAC9E;IACD;QACEC;QACA,GAAGA,uBAAuB,yCAAyC,CAAC;KACrE;IACD;QACEC;QACA,GAAGA,iBAAiB,6EAA6E,CAAC;KACnG;IACD;QACEC;QACA,GAAGA,sBAAsB;;;;cAIf,CAAC;KACZ;IACD;QACEC;QACA,GAAGA,sBAAsB;;;iBAGZ,EAAEP,eAAe;;;;;;6BAML,EAAEA,eAAe;;;;;eAK/B,CAAC;KACb;CACF;AAED,MAAMS,iCAAiC;IACrC;IACA;CACD,CAACC,IAAI,CAAC;AAEP,MAAMC,kBAA2C;IAC/C,+DAA+D;IAC/D;QACEF;QACA;YACE;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;SACD,CAACC,IAAI,CAAC;KACR;IACD;QACE;YACE;YACA;YACA;YACA;YACA;SACD,CAACA,IAAI,CAAC;QACP;YACE;YACA;YACA;YACA;YACA;SACD,CAACA,IAAI,CAAC;KACR;IACD;QACE;YACE;YACA;YACA;YACA;YACA;SACD,CAACA,IAAI,CAAC;QACP;YACE;YACA;YACA;YACA;YACA;SACD,CAACA,IAAI,CAAC;KACR;IACD;QACE;YACE;YACA;YACA;YACA;YACA;SACD,CAACA,IAAI,CAAC;QACP;YACE;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA,CAAC,UAAU,EAAEV,eAAe,qCAAqC,CAAC;YAClE;YACA;YACA;YACA;YACA;YACA;YACA,CAAC,oBAAoB,EAAEA,eAAe,CAAC,CAAC;YACxC;YACA;YACA;YACA;YACA;YACA;YACA;SACD,CAACU,IAAI,CAAC;KACR;CACF;AAED,MAAME,mBAAmB,CAACC,WACxB,GAAGA,SAAS,mIAAmI,EAAEb,eAAe,kIAAkI,CAAC;AAErS,eAAe,eAAec,UAC5BC,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,KAAK,MAAM,CAACH,UAAUI,iBAAiBC,MAAM,IAAI;QAC/C;YAACpB;YAAwBG;YAAsBO;SAAU;QACzD;YAACT;YAAyBG;YAA4BS;SAAgB;KACvE,CAAW;QACV,IAAI,CAACI,KAAKI,MAAM,CAACN,WAAW;YAE1B;QACF;QAEA,IAAI,MAAMpB,YAAYsB,MAAMF,UAAUI,kBAAkB;YAEtD;QACF;QAEA,2EAA2E;QAC3E,kEAAkE;QAClE,MAAMG,kBAAkB,AACtB,CAAA,MAAMC,QAAQC,GAAG,CACfJ,MAAMK,GAAG,CAAC,CAAC,CAACC,MAAM,GAAK/B,YAAYsB,MAAMF,UAAUW,QACrD,EACAC,KAAK,CAACC;QAER,IAAI,CAACN,iBAAiB;YACpBJ,UAAUW,IAAI,CAACf,iBAAiBC;YAChC;QACF;QAEA,KAAK,MAAM,GAAGe,QAAQ,IAAIV,MAAO;YAC/B,MAAM1B,YAAYuB,MAAMF,UAAUe;QACpC;IACF;IAEA,MAAMlC,qBAAqBqB;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Order the S3 server access log delivery source after the bucket policy to avoid a 409 from concurrent bucket configuration writes"
3
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import type { MigrationReturnObject, Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { addDestructuredImport, applyGritQL, captureGritQL, matchGritQL } from "../../../utils/ast.js";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Order the S3 server access log delivery source after the bucket policy.
9
+ *
10
+ * S3 rejects concurrent configuration writes against the same bucket with a 409
11
+ * (OperationAborted). The generated StaticWebsite construct left the delivery
12
+ * source and the bucket policy unordered, so CloudFormation could submit both at
13
+ * once and fail the stack.
14
+ */ const STATIC_WEBSITE_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/static-website.ts`;
15
+ const BUCKET_ARN_SUFFIX = '.bucketArn';
16
+ /**
17
+ * The bucket whose policy the delivery source must be ordered after is the one
18
+ * the delivery source itself targets, so read it off `resourceArn` rather than
19
+ * assuming the generated parameter name. Returns undefined unless exactly one
20
+ * simple identifier is found, so a diverged helper is left alone.
21
+ */ const findDeliverySourceBucket = async (tree, filePath)=>{
22
+ const captured = await captureGritQL(tree, filePath, '`resourceArn: $bucket.bucketArn`');
23
+ if (!captured) return undefined;
24
+ const bucket = captured.slice(captured.indexOf(':') + 1).replace(BUCKET_ARN_SUFFIX, '').trim();
25
+ // Only a plain identifier can be cast and dereferenced safely in the
26
+ // statement this migration writes.
27
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(bucket) ? bucket : undefined;
28
+ };
29
+ /**
30
+ * Confirm the bucket the delivery source targets is declared as a parameter of
31
+ * the enclosing helper, so the statement this migration writes references a
32
+ * variable that is actually in scope.
33
+ */ const isBucketDeclaredParameter = async (tree, filePath, bucket)=>await matchGritQL(tree, filePath, `\`private deliverAccessLogsToCloudWatch($params) { $_ }\` where {
34
+ $params <: contains \`${bucket}: $bucketType\`,
35
+ $bucketType <: or { \`IBucket\`, \`Bucket\` }
36
+ }`);
37
+ // Inserts the bucket policy dependency between the delivery source and the
38
+ // delivery destination, matching the shape generators produced prior to this
39
+ // fix. Anchored on the destination declaration so the source's own (multi-line,
40
+ // Lazy-valued) arguments don't need to be matched.
41
+ const addDependencyPattern = (bucket)=>`\`const $dest: CfnDeliveryDestination = new CfnDeliveryDestination($destArgs)\` as $decl where {
42
+ $dest <: \`destination\`
43
+ } => \`const bucketPolicy = (${bucket} as Bucket).policy;
44
+ if (bucketPolicy) {
45
+ source.node.addDependency(bucketPolicy);
46
+ }
47
+ $decl\``;
48
+ export default async function migration(tree) {
49
+ const nextSteps = [];
50
+ if (!tree.exists(STATIC_WEBSITE_FILE)) {
51
+ // No vended StaticWebsite construct in this workspace - nothing to migrate.
52
+ return {
53
+ nextSteps
54
+ };
55
+ }
56
+ const contents = tree.read(STATIC_WEBSITE_FILE, 'utf-8') ?? '';
57
+ if (contents.includes('source.node.addDependency(bucketPolicy)')) {
58
+ // Already migrated.
59
+ return {
60
+ nextSteps
61
+ };
62
+ }
63
+ const divergedMessage = `${STATIC_WEBSITE_FILE}: deliverAccessLogsToCloudWatch has diverged from the generated shape - left untouched. Manually order the S3 server access log delivery source after the bucket policy of the bucket it targets (\`source.node.addDependency(bucketPolicy)\`), avoiding a 409 (OperationAborted) from concurrent bucket configuration writes.`;
64
+ // The rewrite is anchored on the delivery destination but references the
65
+ // `source` variable, so only apply it when the delivery source still has the
66
+ // generated shape.
67
+ const hasGeneratedSource = await matchGritQL(tree, STATIC_WEBSITE_FILE, '`const source: CfnDeliverySource = new CfnDeliverySource($_)`');
68
+ const bucket = hasGeneratedSource ? await findDeliverySourceBucket(tree, STATIC_WEBSITE_FILE) : undefined;
69
+ if (!bucket || !await isBucketDeclaredParameter(tree, STATIC_WEBSITE_FILE, bucket)) {
70
+ nextSteps.push(divergedMessage);
71
+ return {
72
+ nextSteps
73
+ };
74
+ }
75
+ const rewrote = await applyGritQL(tree, STATIC_WEBSITE_FILE, addDependencyPattern(bucket));
76
+ if (!rewrote) {
77
+ nextSteps.push(divergedMessage);
78
+ return {
79
+ nextSteps
80
+ };
81
+ }
82
+ // The inserted statement casts to the concrete Bucket to reach its policy,
83
+ // which the helper's own `IBucket` parameter type does not expose.
84
+ await addDestructuredImport(tree, STATIC_WEBSITE_FILE, [
85
+ 'Bucket'
86
+ ], 'aws-cdk-lib/aws-s3');
87
+ await formatFilesInSubtree(tree);
88
+ return {
89
+ nextSteps
90
+ };
91
+ }
92
+
93
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { MigrationReturnObject, Tree } from '@nx/devkit';\nimport {\n addDestructuredImport,\n applyGritQL,\n captureGritQL,\n matchGritQL,\n} from '../../../utils/ast';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n} from '../../../utils/shared-constructs-constants';\n\n/**\n * Order the S3 server access log delivery source after the bucket policy.\n *\n * S3 rejects concurrent configuration writes against the same bucket with a 409\n * (OperationAborted). The generated StaticWebsite construct left the delivery\n * source and the bucket policy unordered, so CloudFormation could submit both at\n * once and fail the stack.\n */\n\nconst STATIC_WEBSITE_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/static-website.ts`;\n\nconst BUCKET_ARN_SUFFIX = '.bucketArn';\n\n/**\n * The bucket whose policy the delivery source must be ordered after is the one\n * the delivery source itself targets, so read it off `resourceArn` rather than\n * assuming the generated parameter name. Returns undefined unless exactly one\n * simple identifier is found, so a diverged helper is left alone.\n */\nconst findDeliverySourceBucket = async (\n tree: Tree,\n filePath: string,\n): Promise<string | undefined> => {\n const captured = await captureGritQL(\n tree,\n filePath,\n '`resourceArn: $bucket.bucketArn`',\n );\n if (!captured) return undefined;\n\n const bucket = captured\n .slice(captured.indexOf(':') + 1)\n .replace(BUCKET_ARN_SUFFIX, '')\n .trim();\n\n // Only a plain identifier can be cast and dereferenced safely in the\n // statement this migration writes.\n return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(bucket) ? bucket : undefined;\n};\n\n/**\n * Confirm the bucket the delivery source targets is declared as a parameter of\n * the enclosing helper, so the statement this migration writes references a\n * variable that is actually in scope.\n */\nconst isBucketDeclaredParameter = async (\n tree: Tree,\n filePath: string,\n bucket: string,\n): Promise<boolean> =>\n await matchGritQL(\n tree,\n filePath,\n `\\`private deliverAccessLogsToCloudWatch($params) { $_ }\\` where {\n $params <: contains \\`${bucket}: $bucketType\\`,\n $bucketType <: or { \\`IBucket\\`, \\`Bucket\\` }\n }`,\n );\n\n// Inserts the bucket policy dependency between the delivery source and the\n// delivery destination, matching the shape generators produced prior to this\n// fix. Anchored on the destination declaration so the source's own (multi-line,\n// Lazy-valued) arguments don't need to be matched.\nconst addDependencyPattern = (bucket: string) =>\n `\\`const $dest: CfnDeliveryDestination = new CfnDeliveryDestination($destArgs)\\` as $decl where {\n $dest <: \\`destination\\`\n} => \\`const bucketPolicy = (${bucket} as Bucket).policy;\n if (bucketPolicy) {\n source.node.addDependency(bucketPolicy);\n }\n $decl\\``;\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n if (!tree.exists(STATIC_WEBSITE_FILE)) {\n // No vended StaticWebsite construct in this workspace - nothing to migrate.\n return { nextSteps };\n }\n\n const contents = tree.read(STATIC_WEBSITE_FILE, 'utf-8') ?? '';\n if (contents.includes('source.node.addDependency(bucketPolicy)')) {\n // Already migrated.\n return { nextSteps };\n }\n\n const divergedMessage = `${STATIC_WEBSITE_FILE}: deliverAccessLogsToCloudWatch has diverged from the generated shape - left untouched. Manually order the S3 server access log delivery source after the bucket policy of the bucket it targets (\\`source.node.addDependency(bucketPolicy)\\`), avoiding a 409 (OperationAborted) from concurrent bucket configuration writes.`;\n\n // The rewrite is anchored on the delivery destination but references the\n // `source` variable, so only apply it when the delivery source still has the\n // generated shape.\n const hasGeneratedSource = await matchGritQL(\n tree,\n STATIC_WEBSITE_FILE,\n '`const source: CfnDeliverySource = new CfnDeliverySource($_)`',\n );\n\n const bucket = hasGeneratedSource\n ? await findDeliverySourceBucket(tree, STATIC_WEBSITE_FILE)\n : undefined;\n\n if (\n !bucket ||\n !(await isBucketDeclaredParameter(tree, STATIC_WEBSITE_FILE, bucket))\n ) {\n nextSteps.push(divergedMessage);\n return { nextSteps };\n }\n\n const rewrote = await applyGritQL(\n tree,\n STATIC_WEBSITE_FILE,\n addDependencyPattern(bucket),\n );\n\n if (!rewrote) {\n nextSteps.push(divergedMessage);\n return { nextSteps };\n }\n\n // The inserted statement casts to the concrete Bucket to reach its policy,\n // which the helper's own `IBucket` parameter type does not expose.\n await addDestructuredImport(\n tree,\n STATIC_WEBSITE_FILE,\n ['Bucket'],\n 'aws-cdk-lib/aws-s3',\n );\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["addDestructuredImport","applyGritQL","captureGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","STATIC_WEBSITE_FILE","BUCKET_ARN_SUFFIX","findDeliverySourceBucket","tree","filePath","captured","undefined","bucket","slice","indexOf","replace","trim","test","isBucketDeclaredParameter","addDependencyPattern","migration","nextSteps","exists","contents","read","includes","divergedMessage","hasGeneratedSource","push","rewrote"],"mappings":"AAAA;;;CAGC,GAED,SACEA,qBAAqB,EACrBC,WAAW,EACXC,aAAa,EACbC,WAAW,QACN,wBAAqB;AAC5B,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SACEC,YAAY,EACZC,qBAAqB,QAChB,gDAA6C;AAEpD;;;;;;;CAOC,GAED,MAAMC,sBAAsB,GAAGF,aAAa,CAAC,EAAEC,sBAAsB,2BAA2B,CAAC;AAEjG,MAAME,oBAAoB;AAE1B;;;;;CAKC,GACD,MAAMC,2BAA2B,OAC/BC,MACAC;IAEA,MAAMC,WAAW,MAAMV,cACrBQ,MACAC,UACA;IAEF,IAAI,CAACC,UAAU,OAAOC;IAEtB,MAAMC,SAASF,SACZG,KAAK,CAACH,SAASI,OAAO,CAAC,OAAO,GAC9BC,OAAO,CAACT,mBAAmB,IAC3BU,IAAI;IAEP,qEAAqE;IACrE,mCAAmC;IACnC,OAAO,6BAA6BC,IAAI,CAACL,UAAUA,SAASD;AAC9D;AAEA;;;;CAIC,GACD,MAAMO,4BAA4B,OAChCV,MACAC,UACAG,SAEA,MAAMX,YACJO,MACAC,UACA,CAAC;4BACuB,EAAEG,OAAO;;KAEhC,CAAC;AAGN,2EAA2E;AAC3E,6EAA6E;AAC7E,gFAAgF;AAChF,mDAAmD;AACnD,MAAMO,uBAAuB,CAACP,SAC5B,CAAC;;6BAE0B,EAAEA,OAAO;;;;WAI3B,CAAC;AAEZ,eAAe,eAAeQ,UAC5BZ,IAAU;IAEV,MAAMa,YAAsB,EAAE;IAE9B,IAAI,CAACb,KAAKc,MAAM,CAACjB,sBAAsB;QACrC,4EAA4E;QAC5E,OAAO;YAAEgB;QAAU;IACrB;IAEA,MAAME,WAAWf,KAAKgB,IAAI,CAACnB,qBAAqB,YAAY;IAC5D,IAAIkB,SAASE,QAAQ,CAAC,4CAA4C;QAChE,oBAAoB;QACpB,OAAO;YAAEJ;QAAU;IACrB;IAEA,MAAMK,kBAAkB,GAAGrB,oBAAoB,8TAA8T,CAAC;IAE9W,yEAAyE;IACzE,6EAA6E;IAC7E,mBAAmB;IACnB,MAAMsB,qBAAqB,MAAM1B,YAC/BO,MACAH,qBACA;IAGF,MAAMO,SAASe,qBACX,MAAMpB,yBAAyBC,MAAMH,uBACrCM;IAEJ,IACE,CAACC,UACD,CAAE,MAAMM,0BAA0BV,MAAMH,qBAAqBO,SAC7D;QACAS,UAAUO,IAAI,CAACF;QACf,OAAO;YAAEL;QAAU;IACrB;IAEA,MAAMQ,UAAU,MAAM9B,YACpBS,MACAH,qBACAc,qBAAqBP;IAGvB,IAAI,CAACiB,SAAS;QACZR,UAAUO,IAAI,CAACF;QACf,OAAO;YAAEL;QAAU;IACrB;IAEA,2EAA2E;IAC3E,mEAAmE;IACnE,MAAMvB,sBACJU,MACAH,qBACA;QAAC;KAAS,EACV;IAGF,MAAMH,qBAAqBM;IAE3B,OAAO;QAAEa;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Backfill the project metadata the version sync reads, recovered from the files the generators left behind"
3
+ }