@aws/nx-plugin 1.0.0-rc.8 → 1.0.0-rc.81

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 (1452) hide show
  1. package/LICENSE-THIRD-PARTY +6436 -4404
  2. package/README.md +16 -96
  3. package/generators.json +162 -10
  4. package/migrations.json +206 -0
  5. package/package.json +40 -21
  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 +4 -11
  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.d.ts +1 -1
  89. package/src/index.js +2 -5
  90. package/src/index.js.map +1 -1
  91. package/src/infra/app/__snapshots__/generator.spec.ts.snap +119 -72
  92. package/src/infra/app/files/app/README.md.template +8 -4
  93. package/src/infra/app/files/app/src/main.ts.template +5 -1
  94. package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
  95. package/src/infra/app/generator.d.ts +44 -1
  96. package/src/infra/app/generator.js +195 -127
  97. package/src/infra/app/generator.js.map +1 -1
  98. package/src/infra/app/schema.d.js +6 -0
  99. package/src/infra/app/schema.d.js.map +1 -0
  100. package/src/infra/app/schema.d.ts +1 -1
  101. package/src/infra/app/schema.json +5 -0
  102. package/src/init/generator.d.ts +31 -0
  103. package/src/init/generator.js +46 -0
  104. package/src/init/generator.js.map +1 -0
  105. package/src/init/schema.d.js +6 -0
  106. package/src/init/schema.d.js.map +1 -0
  107. package/src/init/schema.d.ts +16 -0
  108. package/src/init/schema.json +35 -0
  109. package/src/internal/test-matrix/generator.d.ts +29 -0
  110. package/src/internal/test-matrix/generator.js +713 -0
  111. package/src/internal/test-matrix/generator.js.map +1 -0
  112. package/src/internal/test-matrix/schema.d.js +6 -0
  113. package/src/internal/test-matrix/schema.d.js.map +1 -0
  114. package/src/internal/test-matrix/schema.d.ts +12 -0
  115. package/src/internal/test-matrix/schema.json +21 -0
  116. package/src/license/config-types.d.ts +2 -2
  117. package/src/license/config-types.js +5 -3
  118. package/src/license/config-types.js.map +1 -1
  119. package/src/license/config.d.ts +12 -3
  120. package/src/license/config.js +295 -242
  121. package/src/license/config.js.map +1 -1
  122. package/src/license/dependency-check/check.d.ts +2 -2
  123. package/src/license/dependency-check/check.js +51 -46
  124. package/src/license/dependency-check/check.js.map +1 -1
  125. package/src/license/dependency-check/collectors/collector.js +41 -71
  126. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  127. package/src/license/dependency-check/collectors/npm-collector.js +34 -41
  128. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
  129. package/src/license/dependency-check/collectors/python-collector.js +61 -62
  130. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  131. package/src/license/dependency-check/evaluator.d.ts +1 -1
  132. package/src/license/dependency-check/evaluator.js +91 -74
  133. package/src/license/dependency-check/evaluator.js.map +1 -1
  134. package/src/license/dependency-check/executor.js +30 -22
  135. package/src/license/dependency-check/executor.js.map +1 -1
  136. package/src/license/dependency-check/pre-approved.d.ts +1 -1
  137. package/src/license/dependency-check/pre-approved.js +949 -336
  138. package/src/license/dependency-check/pre-approved.js.map +1 -1
  139. package/src/license/dependency-check/types.d.ts +1 -1
  140. package/src/license/dependency-check/types.js +2 -3
  141. package/src/license/dependency-check/types.js.map +1 -1
  142. package/src/license/generator.d.ts +1 -1
  143. package/src/license/generator.js +60 -77
  144. package/src/license/generator.js.map +1 -1
  145. package/src/license/index.d.ts +4 -4
  146. package/src/license/index.js +3 -9
  147. package/src/license/index.js.map +1 -1
  148. package/src/license/known-exceptions.d.ts +2 -3
  149. package/src/license/known-exceptions.js +12 -28
  150. package/src/license/known-exceptions.js.map +1 -1
  151. package/src/license/schema.d.js +6 -0
  152. package/src/license/schema.d.js.map +1 -0
  153. package/src/license/schema.d.ts +2 -0
  154. package/src/license/schema.json +5 -0
  155. package/src/license/sync/generator.js +94 -119
  156. package/src/license/sync/generator.js.map +1 -1
  157. package/src/license/sync/project-file-sync.d.ts +1 -1
  158. package/src/license/sync/project-file-sync.js +28 -35
  159. package/src/license/sync/project-file-sync.js.map +1 -1
  160. package/src/mcp-server/dev-server.d.ts +1 -0
  161. package/src/mcp-server/dev-server.js +18 -0
  162. package/src/mcp-server/dev-server.js.map +1 -0
  163. package/src/mcp-server/generator-info.d.ts +3 -3
  164. package/src/mcp-server/generator-info.js +149 -165
  165. package/src/mcp-server/generator-info.js.map +1 -1
  166. package/src/mcp-server/guide-pipeline.d.ts +1 -1
  167. package/src/mcp-server/guide-pipeline.js +199 -206
  168. package/src/mcp-server/guide-pipeline.js.map +1 -1
  169. package/src/mcp-server/guide-render.js +10 -25
  170. package/src/mcp-server/guide-render.js.map +1 -1
  171. package/src/mcp-server/index.js +6 -10
  172. package/src/mcp-server/index.js.map +1 -1
  173. package/src/mcp-server/mdx-ast.js +39 -57
  174. package/src/mcp-server/mdx-ast.js.map +1 -1
  175. package/src/mcp-server/option-filter.js +33 -47
  176. package/src/mcp-server/option-filter.js.map +1 -1
  177. package/src/mcp-server/schema-registry.d.ts +9 -3
  178. package/src/mcp-server/schema-registry.js +41 -38
  179. package/src/mcp-server/schema-registry.js.map +1 -1
  180. package/src/mcp-server/schema.d.ts +1 -1
  181. package/src/mcp-server/schema.js +9 -7
  182. package/src/mcp-server/schema.js.map +1 -1
  183. package/src/mcp-server/server.js +24 -24
  184. package/src/mcp-server/server.js.map +1 -1
  185. package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
  186. package/src/mcp-server/tools/add-to-existing-project.js +36 -0
  187. package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
  188. package/src/mcp-server/tools/create-workspace-command.js +23 -24
  189. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  190. package/src/mcp-server/tools/general-guidance.d.ts +2 -2
  191. package/src/mcp-server/tools/general-guidance.js +55 -32
  192. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  193. package/src/mcp-server/tools/generator-guide.d.ts +1 -1
  194. package/src/mcp-server/tools/generator-guide.js +29 -37
  195. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  196. package/src/mcp-server/tools/list-generators.d.ts +1 -1
  197. package/src/mcp-server/tools/list-generators.js +19 -25
  198. package/src/mcp-server/tools/list-generators.js.map +1 -1
  199. package/src/mcp-server/tools/upgrade-workspace.d.ts +11 -0
  200. package/src/mcp-server/tools/upgrade-workspace.js +32 -0
  201. package/src/mcp-server/tools/upgrade-workspace.js.map +1 -0
  202. package/src/migrations/latest/dynamodb-configurable-encryption/__snapshots__/migration.spec.ts.snap +429 -0
  203. package/src/migrations/latest/dynamodb-configurable-encryption/metadata.json +3 -0
  204. package/src/migrations/latest/dynamodb-configurable-encryption/migration.d.ts +6 -0
  205. package/src/migrations/latest/dynamodb-configurable-encryption/migration.js +325 -0
  206. package/src/migrations/latest/dynamodb-configurable-encryption/migration.js.map +1 -0
  207. package/src/migrations/latest/py-agent-ag-ui-hooks/metadata.json +3 -0
  208. package/src/migrations/latest/py-agent-ag-ui-hooks/migration.d.ts +6 -0
  209. package/src/migrations/latest/py-agent-ag-ui-hooks/migration.js +113 -0
  210. package/src/migrations/latest/py-agent-ag-ui-hooks/migration.js.map +1 -0
  211. package/src/migrations/latest/static-website-configurable-waf-encryption/metadata.json +3 -0
  212. package/src/migrations/latest/static-website-configurable-waf-encryption/migration.d.ts +6 -0
  213. package/src/migrations/latest/static-website-configurable-waf-encryption/migration.js +418 -0
  214. package/src/migrations/latest/static-website-configurable-waf-encryption/migration.js.map +1 -0
  215. package/src/migrations/latest/user-identity-configurable-mfa/metadata.json +3 -0
  216. package/src/migrations/latest/user-identity-configurable-mfa/migration.d.ts +6 -0
  217. package/src/migrations/latest/user-identity-configurable-mfa/migration.js +362 -0
  218. package/src/migrations/latest/user-identity-configurable-mfa/migration.js.map +1 -0
  219. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/metadata.json +3 -0
  220. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.d.ts +6 -0
  221. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js +65 -0
  222. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js.map +1 -0
  223. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/metadata.json +3 -0
  224. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.d.ts +6 -0
  225. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js +108 -0
  226. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js.map +1 -0
  227. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/metadata.json +3 -0
  228. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
  229. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js +128 -0
  230. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
  231. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/metadata.json +3 -0
  232. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.d.ts +6 -0
  233. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js +215 -0
  234. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js.map +1 -0
  235. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/metadata.json +3 -0
  236. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
  237. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js +93 -0
  238. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
  239. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/metadata.json +3 -0
  240. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.d.ts +96 -0
  241. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js +670 -0
  242. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js.map +1 -0
  243. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/metadata.json +3 -0
  244. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
  245. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js +89 -0
  246. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
  247. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/metadata.json +3 -0
  248. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.d.ts +6 -0
  249. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js +449 -0
  250. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js.map +1 -0
  251. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/metadata.json +3 -0
  252. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.d.ts +6 -0
  253. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js +78 -0
  254. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js.map +1 -0
  255. 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
  256. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/__snapshots__/migration.spec.ts.snap +223 -0
  257. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/metadata.json +3 -0
  258. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.d.ts +6 -0
  259. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js +217 -0
  260. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js.map +1 -0
  261. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/__snapshots__/migration.spec.ts.snap +149 -0
  262. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/metadata.json +3 -0
  263. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.d.ts +6 -0
  264. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js +195 -0
  265. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js.map +1 -0
  266. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/__snapshots__/migration.spec.ts.snap +57 -0
  267. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/metadata.json +3 -0
  268. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.d.ts +6 -0
  269. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js +77 -0
  270. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js.map +1 -0
  271. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/__snapshots__/migration.spec.ts.snap +48 -0
  272. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/metadata.json +3 -0
  273. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.d.ts +6 -0
  274. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js +91 -0
  275. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js.map +1 -0
  276. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/metadata.json +3 -0
  277. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.d.ts +6 -0
  278. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js +412 -0
  279. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js.map +1 -0
  280. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/metadata.json +3 -0
  281. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.d.ts +6 -0
  282. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js +33 -0
  283. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js.map +1 -0
  284. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/metadata.json +3 -0
  285. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.d.ts +6 -0
  286. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js +83 -0
  287. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js.map +1 -0
  288. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/legacy-service.Dockerfile.fixture +95 -0
  289. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/metadata.json +3 -0
  290. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.d.ts +6 -0
  291. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js +154 -0
  292. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js.map +1 -0
  293. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/metadata.json +3 -0
  294. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.d.ts +6 -0
  295. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js +71 -0
  296. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js.map +1 -0
  297. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/metadata.json +3 -0
  298. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.d.ts +6 -0
  299. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js +57 -0
  300. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js.map +1 -0
  301. package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/metadata.json +3 -0
  302. package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.d.ts +6 -0
  303. package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.js +123 -0
  304. package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.js.map +1 -0
  305. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/build-system-prompt.ts.fixture +23 -0
  306. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/build-user-prompt.ts.fixture +96 -0
  307. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/config-path.ts.fixture +1 -0
  308. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/file-to-translate.ts.fixture +10 -0
  309. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/get-files-to-translate.ts.fixture +96 -0
  310. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/header.ts.fixture +15 -0
  311. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/log.ts.fixture +18 -0
  312. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/main-call.ts.fixture +6 -0
  313. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/main.ts.fixture +79 -0
  314. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/project-root.ts.fixture +1 -0
  315. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/run-with-concurrency.ts.fixture +57 -0
  316. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/scripts-dir.ts.fixture +1 -0
  317. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/translate-file-for-language.ts.fixture +61 -0
  318. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/already-migrated.grit +1 -0
  319. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/build-system-prompt.grit +6 -0
  320. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/build-user-prompt.grit +6 -0
  321. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/config-path.grit +1 -0
  322. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/file-to-translate.grit +11 -0
  323. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/get-files-to-translate.grit +7 -0
  324. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/log.grit +3 -0
  325. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/main-call.grit +1 -0
  326. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/main.grit +8 -0
  327. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/project-root.grit +1 -0
  328. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/run-with-concurrency.grit +6 -0
  329. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/translate-file-for-language.grit +6 -0
  330. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/metadata.json +3 -0
  331. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.d.ts +2 -0
  332. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.js +103 -0
  333. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.js.map +1 -0
  334. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/test-fixtures/released-script-first.ts.fixture +430 -0
  335. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/test-fixtures/released-script.ts.fixture +431 -0
  336. package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/metadata.json +3 -0
  337. package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.d.ts +6 -0
  338. package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.js +246 -0
  339. package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.js.map +1 -0
  340. package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/metadata.json +3 -0
  341. package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.d.ts +6 -0
  342. package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.js +329 -0
  343. package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.js.map +1 -0
  344. package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/metadata.json +3 -0
  345. package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.d.ts +2 -0
  346. package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.js +308 -0
  347. package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.js.map +1 -0
  348. package/src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/metadata.json +3 -0
  349. package/{sdk/utils/ast.d.ts → src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/migration.d.ts} +2 -2
  350. package/src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/migration.js +38 -0
  351. package/src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/migration.js.map +1 -0
  352. package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/__snapshots__/migration.spec.ts.snap +90 -0
  353. package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/metadata.json +3 -0
  354. package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/migration.d.ts +6 -0
  355. package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/migration.js +90 -0
  356. package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/migration.js.map +1 -0
  357. package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/metadata.json +3 -0
  358. package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/migration.d.ts +2 -0
  359. package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/migration.js +118 -0
  360. package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/migration.js.map +1 -0
  361. package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/metadata.json +3 -0
  362. package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/migration.d.ts +2 -0
  363. package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/migration.js +136 -0
  364. package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/migration.js.map +1 -0
  365. package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
  366. package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
  367. package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
  368. package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
  369. package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
  370. package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
  371. package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
  372. package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
  373. package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
  374. package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
  375. package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
  376. package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
  377. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +100 -24
  378. package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
  379. package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
  380. package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
  381. package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
  382. package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
  383. package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
  384. package/src/open-api/ts-client/generator.d.ts +1 -1
  385. package/src/open-api/ts-client/generator.js +41 -26
  386. package/src/open-api/ts-client/generator.js.map +1 -1
  387. package/src/open-api/ts-client/schema.d.js +6 -0
  388. package/src/open-api/ts-client/schema.d.js.map +1 -0
  389. package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
  390. package/src/open-api/ts-hooks/generator.d.ts +1 -1
  391. package/src/open-api/ts-hooks/generator.js +17 -21
  392. package/src/open-api/ts-hooks/generator.js.map +1 -1
  393. package/src/open-api/ts-hooks/generator.spec.tsx +76 -6
  394. package/src/open-api/ts-hooks/schema.d.js +6 -0
  395. package/src/open-api/ts-hooks/schema.d.js.map +1 -0
  396. package/src/open-api/ts-metadata/generator.d.ts +1 -1
  397. package/src/open-api/ts-metadata/generator.js +12 -20
  398. package/src/open-api/ts-metadata/generator.js.map +1 -1
  399. package/src/open-api/ts-metadata/schema.d.js +6 -0
  400. package/src/open-api/ts-metadata/schema.d.js.map +1 -0
  401. package/src/open-api/utils/codegen-data/languages.d.ts +1 -7
  402. package/src/open-api/utils/codegen-data/languages.js +59 -66
  403. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  404. package/src/open-api/utils/codegen-data/types.d.ts +255 -10
  405. package/src/open-api/utils/codegen-data/types.js +54 -30
  406. package/src/open-api/utils/codegen-data/types.js.map +1 -1
  407. package/src/open-api/utils/codegen-data.d.ts +4 -4
  408. package/src/open-api/utils/codegen-data.js +494 -674
  409. package/src/open-api/utils/codegen-data.js.map +1 -1
  410. package/src/open-api/utils/normalise.d.ts +1 -1
  411. package/src/open-api/utils/normalise.js +437 -246
  412. package/src/open-api/utils/normalise.js.map +1 -1
  413. package/src/open-api/utils/parse.d.ts +1 -1
  414. package/src/open-api/utils/parse.js +8 -14
  415. package/src/open-api/utils/parse.js.map +1 -1
  416. package/src/open-api/utils/parser.d.ts +55 -0
  417. package/src/open-api/utils/parser.js +787 -0
  418. package/src/open-api/utils/parser.js.map +1 -0
  419. package/src/open-api/utils/refs.d.ts +1 -1
  420. package/src/open-api/utils/refs.js +12 -22
  421. package/src/open-api/utils/refs.js.map +1 -1
  422. package/src/open-api/utils/types.d.ts +18 -0
  423. package/src/open-api/utils/types.js +5 -2
  424. package/src/open-api/utils/types.js.map +1 -1
  425. package/src/preset/__snapshots__/generator.spec.ts.snap +101 -20
  426. package/src/preset/generator.d.ts +15 -2
  427. package/src/preset/generator.js +76 -151
  428. package/src/preset/generator.js.map +1 -1
  429. package/src/preset/schema.d.js +6 -0
  430. package/src/preset/schema.d.js.map +1 -0
  431. package/src/preset/schema.d.ts +6 -3
  432. package/src/preset/schema.json +16 -5
  433. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +931 -0
  434. package/src/py/agent/__snapshots__/generator.core.spec.ts.snap +186 -0
  435. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +771 -0
  436. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +1310 -0
  437. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +231 -0
  438. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +29 -0
  439. package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +29 -0
  440. package/src/py/agent/a2a-connection/generator.d.ts +25 -1
  441. package/src/py/agent/a2a-connection/generator.js +146 -95
  442. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  443. package/src/py/agent/a2a-connection/schema.d.js +8 -0
  444. package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
  445. package/src/py/agent/a2a-connection/schema.d.ts +2 -1
  446. package/src/py/agent/a2a-connection/schema.json +5 -0
  447. package/src/py/agent/files/deploy/Dockerfile.template +15 -1
  448. package/src/py/agent/files/langchain/a2a/main.py.template +83 -0
  449. package/src/py/agent/files/langchain/ag-ui/main.py.template +76 -0
  450. package/src/py/agent/files/langchain/common/agent.py.template +30 -0
  451. package/src/py/agent/files/langchain/common/middleware/__init__.py.template +0 -0
  452. package/src/py/agent/files/langchain/common/middleware/session_id_middleware.py.template +17 -0
  453. package/src/py/agent/files/langchain/common/session.py.template +61 -0
  454. package/src/py/agent/files/{http → langchain/http}/init.py.template +17 -25
  455. package/src/py/agent/files/langchain/http/main.py.template +69 -0
  456. package/src/py/agent/files/strands/a2a/main.py.template +61 -0
  457. package/src/py/agent/files/strands/ag-ui/main.py.template +86 -0
  458. package/src/py/agent/files/strands/common/__init__.py.template +0 -0
  459. package/src/py/agent/files/{common → strands/common}/agent.py.template +13 -0
  460. package/src/py/agent/files/strands/common/middleware/__init__.py.template +0 -0
  461. package/src/py/agent/files/strands/common/middleware/session_id_middleware.py.template +17 -0
  462. package/src/py/agent/files/strands/common/session.py.template +36 -0
  463. package/src/py/agent/files/strands/http/init.py.template +97 -0
  464. package/src/py/agent/files/{http → strands/http}/main.py.template +5 -29
  465. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
  466. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  467. package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
  468. package/src/py/agent/gateway-connection/generator.d.ts +33 -0
  469. package/src/py/agent/gateway-connection/generator.js +153 -0
  470. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  471. package/src/py/agent/gateway-connection/schema.d.js +6 -0
  472. package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
  473. package/src/py/agent/gateway-connection/schema.d.ts +13 -0
  474. package/src/py/agent/gateway-connection/schema.json +31 -0
  475. package/src/py/agent/generator.d.ts +165 -2
  476. package/src/py/agent/generator.js +446 -197
  477. package/src/py/agent/generator.js.map +1 -1
  478. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +156 -89
  479. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +31 -0
  480. package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +31 -0
  481. package/src/py/agent/mcp-connection/generator.d.ts +24 -1
  482. package/src/py/agent/mcp-connection/generator.js +103 -130
  483. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  484. package/src/py/agent/mcp-connection/schema.d.js +8 -0
  485. package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
  486. package/src/py/agent/mcp-connection/schema.d.ts +2 -1
  487. package/src/py/agent/mcp-connection/schema.json +5 -0
  488. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +17 -19
  489. package/src/py/agent/react-connection/generator.d.ts +152 -3
  490. package/src/py/agent/react-connection/generator.js +105 -65
  491. package/src/py/agent/react-connection/generator.js.map +1 -1
  492. package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +5 -5
  493. package/src/py/agent/react-connection/local-dev.js +36 -0
  494. package/src/py/agent/react-connection/local-dev.js.map +1 -0
  495. package/src/py/agent/react-connection/schema.d.js +8 -0
  496. package/src/py/agent/react-connection/schema.d.js.map +1 -0
  497. package/src/py/agent/react-connection/schema.d.ts +2 -1
  498. package/src/py/agent/react-connection/schema.json +5 -0
  499. package/src/py/agent/schema.d.js +6 -0
  500. package/src/py/agent/schema.d.js.map +1 -0
  501. package/src/py/agent/schema.d.ts +6 -2
  502. package/src/py/agent/schema.json +15 -1
  503. package/src/py/api/generator.d.ts +1 -1
  504. package/src/py/api/generator.js +12 -11
  505. package/src/py/api/generator.js.map +1 -1
  506. package/src/py/api/schema.d.js +6 -0
  507. package/src/py/api/schema.d.js.map +1 -0
  508. package/src/py/api/schema.d.ts +2 -1
  509. package/src/py/api/schema.json +5 -0
  510. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1601 -0
  511. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +63 -0
  512. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  513. package/src/py/dynamodb/agent-connection/generator.js +45 -0
  514. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  515. package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
  516. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
  517. package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
  518. package/src/py/dynamodb/agent-connection/schema.json +27 -0
  519. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +32 -0
  520. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  521. package/src/py/dynamodb/fast-api-connection/generator.js +39 -0
  522. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  523. package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
  524. package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
  525. package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
  526. package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
  527. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  528. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  529. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  530. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  531. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  532. package/src/py/dynamodb/files/config.json.template +24 -0
  533. package/src/py/dynamodb/generator.d.ts +39 -0
  534. package/src/py/dynamodb/generator.js +130 -0
  535. package/src/py/dynamodb/generator.js.map +1 -0
  536. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +63 -0
  537. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  538. package/src/py/dynamodb/mcp-server-connection/generator.js +45 -0
  539. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  540. package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
  541. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  542. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
  543. package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
  544. package/src/py/dynamodb/schema.d.js +6 -0
  545. package/src/py/dynamodb/schema.d.js.map +1 -0
  546. package/src/py/dynamodb/schema.d.ts +16 -0
  547. package/src/py/dynamodb/schema.json +76 -0
  548. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +240 -4693
  549. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +5409 -0
  550. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  551. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  552. package/src/py/fast-api/generator.d.ts +73 -1
  553. package/src/py/fast-api/generator.js +134 -95
  554. package/src/py/fast-api/generator.js.map +1 -1
  555. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
  556. package/src/py/fast-api/react/generator.d.ts +17 -2
  557. package/src/py/fast-api/react/generator.js +38 -26
  558. package/src/py/fast-api/react/generator.js.map +1 -1
  559. package/src/py/fast-api/react/open-api.js +31 -29
  560. package/src/py/fast-api/react/open-api.js.map +1 -1
  561. package/src/py/fast-api/react/schema.d.js +6 -0
  562. package/src/py/fast-api/react/schema.d.js.map +1 -0
  563. package/src/py/fast-api/react/schema.d.ts +1 -0
  564. package/src/py/fast-api/react/schema.json +5 -0
  565. package/src/py/fast-api/schema.d.js +6 -0
  566. package/src/py/fast-api/schema.d.js.map +1 -0
  567. package/src/py/fast-api/schema.d.ts +2 -1
  568. package/src/py/fast-api/schema.json +6 -0
  569. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
  570. package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +1 -1
  571. package/src/py/lambda-function/generator.d.ts +28 -1
  572. package/src/py/lambda-function/generator.js +88 -61
  573. package/src/py/lambda-function/generator.js.map +1 -1
  574. package/src/py/lambda-function/schema.d.js +6 -0
  575. package/src/py/lambda-function/schema.d.js.map +1 -0
  576. package/src/py/lambda-function/schema.d.ts +3 -2
  577. package/src/py/lambda-function/schema.json +6 -1
  578. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +221 -21
  579. package/src/py/mcp-server/files/deploy/Dockerfile.template +15 -1
  580. package/src/py/mcp-server/generator.d.ts +69 -1
  581. package/src/py/mcp-server/generator.js +209 -145
  582. package/src/py/mcp-server/generator.js.map +1 -1
  583. package/src/py/mcp-server/schema.d.js +6 -0
  584. package/src/py/mcp-server/schema.d.js.map +1 -0
  585. package/src/py/mcp-server/schema.d.ts +2 -1
  586. package/src/py/mcp-server/schema.json +6 -0
  587. package/src/py/project/generator.d.ts +28 -2
  588. package/src/py/project/generator.js +248 -130
  589. package/src/py/project/generator.js.map +1 -1
  590. package/src/py/project/schema.d.js +6 -0
  591. package/src/py/project/schema.d.js.map +1 -0
  592. package/src/py/project/schema.d.ts +1 -0
  593. package/src/py/project/schema.json +6 -0
  594. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2072 -0
  595. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +123 -0
  596. package/src/py/rdb/agent-connection/generator.d.ts +10 -0
  597. package/src/py/rdb/agent-connection/generator.js +52 -0
  598. package/src/py/rdb/agent-connection/generator.js.map +1 -0
  599. package/src/py/rdb/agent-connection/schema.d.js +8 -0
  600. package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
  601. package/src/py/rdb/agent-connection/schema.d.ts +15 -0
  602. package/src/py/rdb/agent-connection/schema.json +27 -0
  603. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +51 -0
  604. package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
  605. package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
  606. package/src/py/rdb/fast-api-connection/generator.js +56 -0
  607. package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
  608. package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
  609. package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
  610. package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
  611. package/src/py/rdb/fast-api-connection/schema.json +23 -0
  612. package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
  613. package/src/py/rdb/files/Dockerfile.migration.template +14 -0
  614. package/src/py/rdb/files/__name__/connection.py.template +55 -0
  615. package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
  616. package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
  617. package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
  618. package/src/py/rdb/files/__name__/models/example.py.template +8 -0
  619. package/src/py/rdb/files/__name__/utils.py.template +104 -0
  620. package/src/py/rdb/files/alembic.ini.template +38 -0
  621. package/src/py/rdb/files/migrations/env.py.template +80 -0
  622. package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
  623. package/src/py/rdb/generator.d.ts +103 -0
  624. package/src/py/rdb/generator.js +362 -0
  625. package/src/py/rdb/generator.js.map +1 -0
  626. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +119 -0
  627. package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
  628. package/src/py/rdb/mcp-server-connection/generator.js +52 -0
  629. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
  630. package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
  631. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
  632. package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
  633. package/src/py/rdb/mcp-server-connection/schema.json +27 -0
  634. package/src/py/rdb/schema.d.js +6 -0
  635. package/src/py/rdb/schema.d.js.map +1 -0
  636. package/src/py/rdb/schema.d.ts +16 -0
  637. package/src/py/rdb/schema.json +78 -0
  638. package/src/py/rdb/utils.d.ts +6 -0
  639. package/src/py/rdb/utils.js +16 -0
  640. package/src/py/rdb/utils.js.map +1 -0
  641. package/src/sdk/agentcore-gateway.d.ts +6 -0
  642. package/src/sdk/agentcore-gateway.js +7 -0
  643. package/src/sdk/agentcore-gateway.js.map +1 -0
  644. package/src/sdk/agentcore-harness.d.ts +6 -0
  645. package/src/sdk/agentcore-harness.js +7 -0
  646. package/src/sdk/agentcore-harness.js.map +1 -0
  647. package/src/sdk/connection.d.ts +6 -0
  648. package/src/sdk/connection.js +6 -0
  649. package/src/sdk/connection.js.map +1 -0
  650. package/src/sdk/license.d.ts +8 -0
  651. package/src/sdk/license.js +7 -0
  652. package/src/sdk/license.js.map +1 -0
  653. package/src/sdk/open-api.d.ts +10 -0
  654. package/src/sdk/open-api.js +8 -0
  655. package/src/sdk/open-api.js.map +1 -0
  656. package/src/sdk/py.d.ts +18 -0
  657. package/src/sdk/py.js +12 -0
  658. package/src/sdk/py.js.map +1 -0
  659. package/src/sdk/smithy.d.ts +6 -0
  660. package/src/sdk/smithy.js +7 -0
  661. package/src/sdk/smithy.js.map +1 -0
  662. package/src/sdk/terraform.d.ts +6 -0
  663. package/src/sdk/terraform.js +7 -0
  664. package/src/sdk/terraform.js.map +1 -0
  665. package/src/sdk/ts.d.ts +39 -0
  666. package/src/sdk/ts.js +41 -0
  667. package/src/sdk/ts.js.map +1 -0
  668. package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
  669. package/src/sdk/utils/ast.js +6 -0
  670. package/src/sdk/utils/ast.js.map +1 -0
  671. package/src/sdk/utils/format.d.ts +5 -0
  672. package/src/sdk/utils/format.js +6 -0
  673. package/src/sdk/utils/format.js.map +1 -0
  674. package/{sdk → src/sdk}/utils/test.d.ts +1 -1
  675. package/src/sdk/utils/test.js +6 -0
  676. package/src/sdk/utils/test.js.map +1 -0
  677. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +245 -242
  678. package/src/smithy/project/files/{smithy-build.json.template → service/smithy-build.json.template} +5 -5
  679. package/src/smithy/project/files/{src → service/src}/operations/echo.smithy.template +1 -0
  680. package/src/smithy/project/files/shapes/smithy-build.json.template +7 -0
  681. package/src/smithy/project/files/shapes/src/main.smithy.template +11 -0
  682. package/src/smithy/project/files/ssdk-bundle/ssdk.rolldown.config.mjs.template +52 -0
  683. package/src/smithy/project/generator.d.ts +91 -1
  684. package/src/smithy/project/generator.js +223 -56
  685. package/src/smithy/project/generator.js.map +1 -1
  686. package/src/smithy/project/schema.d.js +6 -0
  687. package/src/smithy/project/schema.d.js.map +1 -0
  688. package/src/smithy/project/schema.d.ts +2 -0
  689. package/src/smithy/project/schema.json +28 -1
  690. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  691. package/src/smithy/react-connection/generator.d.ts +16 -1
  692. package/src/smithy/react-connection/generator.js +54 -48
  693. package/src/smithy/react-connection/generator.js.map +1 -1
  694. package/src/smithy/react-connection/schema.d.js +6 -0
  695. package/src/smithy/react-connection/schema.d.js.map +1 -0
  696. package/src/smithy/react-connection/schema.d.ts +1 -0
  697. package/src/smithy/react-connection/schema.json +5 -0
  698. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +871 -109
  699. package/src/smithy/ts/api/files/handler.ts.template +3 -3
  700. package/src/smithy/ts/api/files/local-server.ts.template +3 -3
  701. package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
  702. package/src/smithy/ts/api/files/service.ts.template +3 -3
  703. package/src/smithy/ts/api/generator.d.ts +89 -1
  704. package/src/smithy/ts/api/generator.js +187 -114
  705. package/src/smithy/ts/api/generator.js.map +1 -1
  706. package/src/smithy/ts/api/schema.d.js +6 -0
  707. package/src/smithy/ts/api/schema.d.js.map +1 -0
  708. package/src/smithy/ts/api/schema.d.ts +2 -1
  709. package/src/smithy/ts/api/schema.json +6 -0
  710. package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
  711. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  712. package/src/terraform/project/files/application/src/providers.tf.template +1 -1
  713. package/src/terraform/project/generator.d.ts +51 -1
  714. package/src/terraform/project/generator.js +212 -111
  715. package/src/terraform/project/generator.js.map +1 -1
  716. package/src/terraform/project/schema.d.js +9 -0
  717. package/src/terraform/project/schema.d.js.map +1 -0
  718. package/src/terraform/project/schema.d.ts +1 -0
  719. package/src/terraform/project/schema.json +5 -0
  720. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +1182 -184
  721. package/src/trpc/backend/files/src/client/index.ts.template +1 -1
  722. package/src/trpc/backend/files/src/handler.ts.template +1 -1
  723. package/src/trpc/backend/files/src/index.ts.template +5 -5
  724. package/src/trpc/backend/files/src/init.ts.template +1 -1
  725. package/src/trpc/backend/files/src/local-server.ts.template +1 -1
  726. package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
  727. package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
  728. package/src/trpc/backend/files/src/router.ts.template +2 -2
  729. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  730. package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
  731. package/src/trpc/backend/generator.d.ts +91 -2
  732. package/src/trpc/backend/generator.js +177 -100
  733. package/src/trpc/backend/generator.js.map +1 -1
  734. package/src/trpc/backend/schema.d.js +6 -0
  735. package/src/trpc/backend/schema.d.js.map +1 -0
  736. package/src/trpc/backend/schema.d.ts +2 -1
  737. package/src/trpc/backend/schema.json +6 -0
  738. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
  739. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  740. package/src/trpc/react/generator.d.ts +39 -2
  741. package/src/trpc/react/generator.js +105 -63
  742. package/src/trpc/react/generator.js.map +1 -1
  743. package/src/trpc/react/schema.d.js +6 -0
  744. package/src/trpc/react/schema.d.js.map +1 -0
  745. package/src/trpc/react/schema.d.ts +1 -0
  746. package/src/trpc/react/schema.json +5 -0
  747. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1483 -28
  748. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +258 -0
  749. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  750. package/src/ts/agent/a2a-connection/generator.d.ts +47 -1
  751. package/src/ts/agent/a2a-connection/generator.js +112 -63
  752. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  753. package/src/ts/agent/a2a-connection/schema.d.js +8 -0
  754. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
  755. package/src/ts/agent/a2a-connection/schema.d.ts +2 -1
  756. package/src/ts/agent/a2a-connection/schema.json +5 -0
  757. package/src/ts/agent/files/a2a/index.ts.template +5 -12
  758. package/src/ts/agent/files/ag-ui/index.ts.template +29 -14
  759. package/src/ts/agent/files/common/agent.ts.template +15 -2
  760. package/src/ts/agent/files/common/session.ts.template +43 -0
  761. package/src/ts/agent/files/common-express/middleware/session-id-middleware.ts.template +16 -0
  762. package/src/ts/agent/files/deploy/Dockerfile.template +20 -2
  763. package/src/ts/agent/files/http/client.ts.template +2 -2
  764. package/src/ts/agent/files/http/index.ts.template +2 -2
  765. package/src/ts/agent/files/http/router.ts.template +5 -5
  766. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +222 -0
  767. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  768. package/src/ts/agent/gateway-connection/generator.d.ts +47 -0
  769. package/src/ts/agent/gateway-connection/generator.js +144 -0
  770. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  771. package/src/ts/agent/gateway-connection/schema.d.js +6 -0
  772. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
  773. package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
  774. package/src/ts/agent/gateway-connection/schema.json +31 -0
  775. package/src/ts/agent/generator.d.ts +206 -1
  776. package/src/ts/agent/generator.js +347 -156
  777. package/src/ts/agent/generator.js.map +1 -1
  778. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +194 -113
  779. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +23 -0
  780. package/src/ts/agent/mcp-connection/generator.d.ts +38 -1
  781. package/src/ts/agent/mcp-connection/generator.js +88 -65
  782. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  783. package/src/ts/agent/mcp-connection/schema.d.js +8 -0
  784. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
  785. package/src/ts/agent/mcp-connection/schema.d.ts +2 -1
  786. package/src/ts/agent/mcp-connection/schema.json +5 -0
  787. package/src/ts/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -4
  788. package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +2 -1
  789. package/src/ts/agent/react-connection/generator.d.ts +204 -3
  790. package/src/ts/agent/react-connection/generator.js +158 -99
  791. package/src/ts/agent/react-connection/generator.js.map +1 -1
  792. package/src/ts/agent/react-connection/local-dev.d.ts +13 -0
  793. package/src/ts/agent/react-connection/local-dev.js +17 -0
  794. package/src/ts/agent/react-connection/local-dev.js.map +1 -0
  795. package/src/ts/agent/react-connection/schema.d.js +8 -0
  796. package/src/ts/agent/react-connection/schema.d.js.map +1 -0
  797. package/src/ts/agent/react-connection/schema.d.ts +2 -1
  798. package/src/ts/agent/react-connection/schema.json +5 -0
  799. package/src/ts/agent/schema.d.js +6 -0
  800. package/src/ts/agent/schema.d.js.map +1 -0
  801. package/src/ts/agent/schema.d.ts +5 -1
  802. package/src/ts/agent/schema.json +14 -0
  803. package/src/ts/api/generator.d.ts +1 -1
  804. package/src/ts/api/generator.js +16 -16
  805. package/src/ts/api/generator.js.map +1 -1
  806. package/src/ts/api/schema.d.js +6 -0
  807. package/src/ts/api/schema.d.js.map +1 -0
  808. package/src/ts/api/schema.d.ts +2 -1
  809. package/src/ts/api/schema.json +5 -0
  810. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +28 -14
  811. package/src/ts/astro-docs/files/base/src/content/docs/en/index.mdx.template +2 -2
  812. package/src/ts/astro-docs/files/base/src/content.config.ts.template +4 -4
  813. package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +272 -150
  814. package/src/ts/astro-docs/generator.d.ts +41 -1
  815. package/src/ts/astro-docs/generator.js +133 -61
  816. package/src/ts/astro-docs/generator.js.map +1 -1
  817. package/src/ts/astro-docs/schema.d.js +6 -0
  818. package/src/ts/astro-docs/schema.d.js.map +1 -0
  819. package/src/ts/astro-docs/schema.d.ts +2 -2
  820. package/src/ts/astro-docs/schema.json +3 -3
  821. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +982 -0
  822. package/src/ts/dcr-proxy/generator.d.ts +34 -0
  823. package/src/ts/dcr-proxy/generator.js +115 -0
  824. package/src/ts/dcr-proxy/generator.js.map +1 -0
  825. package/src/ts/dcr-proxy/schema.d.js +6 -0
  826. package/src/ts/dcr-proxy/schema.d.js.map +1 -0
  827. package/src/ts/dcr-proxy/schema.d.ts +13 -0
  828. package/src/ts/dcr-proxy/schema.json +44 -0
  829. package/src/ts/docs/generator.d.ts +1 -1
  830. package/src/ts/docs/generator.js +10 -10
  831. package/src/ts/docs/generator.js.map +1 -1
  832. package/src/ts/docs/schema.d.js +6 -0
  833. package/src/ts/docs/schema.d.js.map +1 -0
  834. package/src/ts/docs/schema.d.ts +1 -4
  835. package/src/ts/docs/schema.json +3 -3
  836. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +490 -527
  837. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +23 -5
  838. package/src/ts/dynamodb/agent-connection/generator.d.ts +1 -1
  839. package/src/ts/dynamodb/agent-connection/generator.js +27 -23
  840. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  841. package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
  842. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
  843. package/src/ts/dynamodb/agent-connection/schema.d.ts +2 -1
  844. package/src/ts/dynamodb/agent-connection/schema.json +5 -0
  845. package/src/ts/dynamodb/files/config.json.template +24 -0
  846. package/src/ts/dynamodb/files/src/client.ts.template +30 -11
  847. package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
  848. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
  849. package/src/ts/dynamodb/files/src/index.ts.template +2 -11
  850. package/src/ts/dynamodb/generator.d.ts +42 -1
  851. package/src/ts/dynamodb/generator.js +107 -64
  852. package/src/ts/dynamodb/generator.js.map +1 -1
  853. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +23 -5
  854. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +1 -1
  855. package/src/ts/dynamodb/mcp-server-connection/generator.js +27 -23
  856. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  857. package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
  858. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
  859. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +2 -1
  860. package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
  861. package/src/ts/dynamodb/schema.d.js +6 -0
  862. package/src/ts/dynamodb/schema.d.js.map +1 -0
  863. package/src/ts/dynamodb/schema.d.ts +3 -1
  864. package/src/ts/dynamodb/schema.json +26 -2
  865. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
  866. package/src/ts/dynamodb/smithy-connection/generator.d.ts +1 -1
  867. package/src/ts/dynamodb/smithy-connection/generator.js +22 -22
  868. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  869. package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
  870. package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
  871. package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
  872. package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
  873. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  874. package/src/ts/dynamodb/trpc-connection/generator.d.ts +1 -1
  875. package/src/ts/dynamodb/trpc-connection/generator.js +22 -22
  876. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  877. package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
  878. package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
  879. package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
  880. package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
  881. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +8 -6
  882. package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
  883. package/src/ts/lambda-function/generator.d.ts +39 -1
  884. package/src/ts/lambda-function/generator.js +98 -65
  885. package/src/ts/lambda-function/generator.js.map +1 -1
  886. package/src/ts/lambda-function/io.js +83 -52
  887. package/src/ts/lambda-function/io.js.map +1 -1
  888. package/src/ts/lambda-function/schema.d.js +6 -0
  889. package/src/ts/lambda-function/schema.d.js.map +1 -0
  890. package/src/ts/lambda-function/schema.d.ts +2 -1
  891. package/src/ts/lambda-function/schema.json +5 -0
  892. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +83 -45
  893. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +1 -1
  894. package/src/ts/lib/biome.d.ts +1 -1
  895. package/src/ts/lib/biome.js +71 -35
  896. package/src/ts/lib/biome.js.map +1 -1
  897. package/src/ts/lib/generator.d.ts +8 -1
  898. package/src/ts/lib/generator.js +115 -103
  899. package/src/ts/lib/generator.js.map +1 -1
  900. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  901. package/src/ts/lib/schema.d.js +6 -0
  902. package/src/ts/lib/schema.d.js.map +1 -0
  903. package/src/ts/lib/schema.d.ts +1 -1
  904. package/src/ts/lib/schema.json +5 -0
  905. package/src/ts/lib/ts-project-utils.d.ts +14 -2
  906. package/src/ts/lib/ts-project-utils.js +96 -71
  907. package/src/ts/lib/ts-project-utils.js.map +1 -1
  908. package/src/ts/lib/types.d.ts +6 -0
  909. package/src/ts/lib/types.js +5 -2
  910. package/src/ts/lib/types.js.map +1 -1
  911. package/src/ts/lib/vitest.d.ts +11 -2
  912. package/src/ts/lib/vitest.js +54 -26
  913. package/src/ts/lib/vitest.js.map +1 -1
  914. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +221 -44
  915. package/src/ts/mcp-server/files/Dockerfile.template +20 -2
  916. package/src/ts/mcp-server/generator.d.ts +111 -1
  917. package/src/ts/mcp-server/generator.js +236 -162
  918. package/src/ts/mcp-server/generator.js.map +1 -1
  919. package/src/ts/mcp-server/schema.d.js +6 -0
  920. package/src/ts/mcp-server/schema.d.js.map +1 -0
  921. package/src/ts/mcp-server/schema.d.ts +2 -1
  922. package/src/ts/mcp-server/schema.json +6 -0
  923. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +28 -13
  924. package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
  925. package/src/ts/nx-generator/files/common/schema.json.template +5 -0
  926. package/src/ts/nx-generator/files/local/generator.spec.ts.template +1 -1
  927. package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
  928. package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
  929. package/src/ts/nx-generator/generator.d.ts +3 -0
  930. package/src/ts/nx-generator/generator.js +124 -72
  931. package/src/ts/nx-generator/generator.js.map +1 -1
  932. package/src/ts/nx-generator/schema.d.js +6 -0
  933. package/src/ts/nx-generator/schema.d.js.map +1 -0
  934. package/src/ts/nx-generator/schema.d.ts +1 -0
  935. package/src/ts/nx-generator/schema.json +5 -0
  936. package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
  937. package/src/ts/nx-migration/files/migration.ts.template +65 -0
  938. package/src/ts/nx-migration/files/prompt.md.template +46 -0
  939. package/src/ts/nx-migration/generator.d.ts +27 -0
  940. package/src/ts/nx-migration/generator.js +147 -0
  941. package/src/ts/nx-migration/generator.js.map +1 -0
  942. package/src/ts/nx-migration/schema.d.js +6 -0
  943. package/src/ts/nx-migration/schema.d.js.map +1 -0
  944. package/src/ts/nx-migration/schema.d.ts +13 -0
  945. package/src/ts/nx-migration/schema.json +63 -0
  946. package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
  947. package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
  948. package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
  949. package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
  950. package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
  951. package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
  952. package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
  953. package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
  954. package/src/ts/nx-plugin/generator.d.ts +4 -1
  955. package/src/ts/nx-plugin/generator.js +67 -50
  956. package/src/ts/nx-plugin/generator.js.map +1 -1
  957. package/src/ts/nx-plugin/schema.d.js +9 -0
  958. package/src/ts/nx-plugin/schema.d.js.map +1 -0
  959. package/src/ts/nx-plugin/schema.json +5 -0
  960. package/src/ts/nx-plugin/utils.d.ts +27 -2
  961. package/src/ts/nx-plugin/utils.js +66 -51
  962. package/src/ts/nx-plugin/utils.js.map +1 -1
  963. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +555 -644
  964. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +16 -6
  965. package/src/ts/rdb/agent-connection/generator.d.ts +1 -1
  966. package/src/ts/rdb/agent-connection/generator.js +44 -39
  967. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  968. package/src/ts/rdb/agent-connection/schema.d.js +8 -0
  969. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
  970. package/src/ts/rdb/agent-connection/schema.d.ts +2 -1
  971. package/src/ts/rdb/agent-connection/schema.json +5 -0
  972. package/src/ts/rdb/files/Dockerfile.template +19 -1
  973. package/src/ts/rdb/files/prisma.config.ts.template +6 -5
  974. package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
  975. package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
  976. package/src/ts/rdb/files/src/prisma.ts.template +33 -25
  977. package/src/ts/rdb/files/src/utils.ts.template +3 -0
  978. package/src/ts/rdb/generator.d.ts +118 -5
  979. package/src/ts/rdb/generator.js +285 -138
  980. package/src/ts/rdb/generator.js.map +1 -1
  981. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +16 -6
  982. package/src/ts/rdb/mcp-server-connection/generator.d.ts +1 -1
  983. package/src/ts/rdb/mcp-server-connection/generator.js +42 -37
  984. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  985. package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
  986. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
  987. package/src/ts/rdb/mcp-server-connection/schema.d.ts +2 -1
  988. package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
  989. package/src/ts/rdb/schema.d.js +6 -0
  990. package/src/ts/rdb/schema.d.js.map +1 -0
  991. package/src/ts/rdb/schema.d.ts +2 -1
  992. package/src/ts/rdb/schema.json +7 -1
  993. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +18 -9
  994. package/src/ts/rdb/smithy-connection/generator.d.ts +1 -1
  995. package/src/ts/rdb/smithy-connection/generator.js +48 -43
  996. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  997. package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
  998. package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
  999. package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
  1000. package/src/ts/rdb/smithy-connection/schema.json +5 -0
  1001. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
  1002. package/src/ts/rdb/trpc-connection/generator.d.ts +1 -1
  1003. package/src/ts/rdb/trpc-connection/generator.js +37 -31
  1004. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  1005. package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
  1006. package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
  1007. package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
  1008. package/src/ts/rdb/trpc-connection/schema.json +5 -0
  1009. package/src/ts/rdb/utils.js +9 -11
  1010. package/src/ts/rdb/utils.js.map +1 -1
  1011. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +17 -16
  1012. package/src/ts/react-website/agui/generator.d.ts +97 -0
  1013. package/src/ts/react-website/agui/generator.js +114 -67
  1014. package/src/ts/react-website/agui/generator.js.map +1 -1
  1015. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1648 -690
  1016. package/src/ts/react-website/app/files/app/common/README.md.template +1 -1
  1017. package/src/ts/react-website/app/generator.d.ts +143 -3
  1018. package/src/ts/react-website/app/generator.js +335 -209
  1019. package/src/ts/react-website/app/generator.js.map +1 -1
  1020. package/src/ts/react-website/app/schema.d.js +6 -0
  1021. package/src/ts/react-website/app/schema.d.js.map +1 -0
  1022. package/src/ts/react-website/app/schema.d.ts +3 -3
  1023. package/src/ts/react-website/app/schema.json +12 -6
  1024. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +198 -33
  1025. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +74 -12
  1026. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  1027. package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
  1028. package/src/ts/react-website/cognito-auth/generator.d.ts +26 -2
  1029. package/src/ts/react-website/cognito-auth/generator.js +79 -64
  1030. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  1031. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +3 -1
  1032. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  1033. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  1034. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  1035. package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
  1036. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
  1037. package/src/ts/react-website/cognito-auth/schema.d.ts +2 -1
  1038. package/src/ts/react-website/cognito-auth/schema.json +5 -0
  1039. package/src/ts/react-website/cognito-auth/utils.js +34 -32
  1040. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  1041. package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
  1042. package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
  1043. package/src/ts/react-website/runtime-config/generator.d.ts +1 -1
  1044. package/src/ts/react-website/runtime-config/generator.js +29 -31
  1045. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  1046. package/src/ts/react-website/runtime-config/schema.d.js +6 -0
  1047. package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
  1048. package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
  1049. package/src/ts/react-website/runtime-config/schema.json +5 -0
  1050. package/src/ts/sync/generator.d.ts +1 -1
  1051. package/src/ts/sync/generator.js +137 -60
  1052. package/src/ts/sync/generator.js.map +1 -1
  1053. package/src/ts/website/app/generator.d.ts +1 -1
  1054. package/src/ts/website/app/generator.js +10 -10
  1055. package/src/ts/website/app/generator.js.map +1 -1
  1056. package/src/ts/website/app/schema.d.js +6 -0
  1057. package/src/ts/website/app/schema.d.js.map +1 -0
  1058. package/src/ts/website/app/schema.d.ts +3 -3
  1059. package/src/ts/website/app/schema.json +11 -6
  1060. package/src/ts/website/auth/generator.d.ts +2 -2
  1061. package/src/ts/website/auth/generator.js +11 -10
  1062. package/src/ts/website/auth/generator.js.map +1 -1
  1063. package/src/ts/website/auth/schema.d.js +6 -0
  1064. package/src/ts/website/auth/schema.d.js.map +1 -0
  1065. package/src/ts/website/auth/schema.d.ts +2 -1
  1066. package/src/ts/website/auth/schema.json +5 -0
  1067. package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
  1068. package/src/utils/add-dependencies.d.ts +38 -0
  1069. package/src/utils/add-dependencies.js +83 -0
  1070. package/src/utils/add-dependencies.js.map +1 -0
  1071. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  1072. package/src/utils/agent-chat/agent-chat.js +31 -0
  1073. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  1074. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  1075. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  1076. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  1077. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  1078. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  1079. package/src/utils/agent-connection/agent-connection.d.ts +149 -26
  1080. package/src/utils/agent-connection/agent-connection.js +511 -103
  1081. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  1082. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  1083. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  1084. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  1085. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  1086. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  1087. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +35 -33
  1088. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  1089. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  1090. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +47 -0
  1091. package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +29 -0
  1092. 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
  1093. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  1094. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  1095. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  1096. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  1097. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  1098. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  1099. package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +105 -0
  1100. package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
  1101. package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
  1102. package/src/utils/agent-connection/files/py-core-langchain/s3/s3_checkpoint_saver_langchain.py.template +360 -0
  1103. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  1104. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +4 -18
  1105. package/src/utils/agent-connection/files/py-core-runtime-config/session_context.py.template +2 -2
  1106. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  1107. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +111 -0
  1108. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  1109. package/src/utils/agent-connection/files/py-core-strands/base/tool_errors_strands.py.template +24 -0
  1110. 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
  1111. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  1112. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  1113. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +81 -2
  1114. package/src/utils/agent-core-constructs/agent-core-constructs.js +212 -38
  1115. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  1116. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +273 -9
  1117. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +87 -0
  1118. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.ts.template +366 -0
  1119. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +624 -0
  1120. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  1121. package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +281 -1
  1122. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +521 -0
  1123. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  1124. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.tf.template +282 -0
  1125. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +159 -13
  1126. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  1127. package/src/utils/api-constructs/api-constructs.d.ts +31 -3
  1128. package/src/utils/api-constructs/api-constructs.js +82 -32
  1129. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  1130. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +20 -15
  1131. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -16
  1132. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
  1133. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
  1134. package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
  1135. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +56 -17
  1136. package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
  1137. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  1138. package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +101 -12
  1139. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +194 -8
  1140. package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
  1141. package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
  1142. package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
  1143. package/src/utils/api-constructs/open-api-metadata.d.ts +1 -1
  1144. package/src/utils/api-constructs/open-api-metadata.js +22 -22
  1145. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  1146. package/src/utils/ast/website.js +18 -20
  1147. package/src/utils/ast/website.js.map +1 -1
  1148. package/src/utils/ast.d.ts +38 -0
  1149. package/src/utils/ast.js +162 -86
  1150. package/src/utils/ast.js.map +1 -1
  1151. package/src/utils/base-tsconfig.d.ts +30 -0
  1152. package/src/utils/base-tsconfig.js +32 -0
  1153. package/src/utils/base-tsconfig.js.map +1 -0
  1154. package/src/utils/bundle/bundle.d.ts +6 -1
  1155. package/src/utils/bundle/bundle.js +58 -48
  1156. package/src/utils/bundle/bundle.js.map +1 -1
  1157. package/src/utils/commands.d.ts +14 -3
  1158. package/src/utils/commands.js +83 -28
  1159. package/src/utils/commands.js.map +1 -1
  1160. package/src/utils/config/index.d.ts +22 -6
  1161. package/src/utils/config/index.js +5 -4
  1162. package/src/utils/config/index.js.map +1 -1
  1163. package/src/utils/config/utils.d.ts +9 -3
  1164. package/src/utils/config/utils.js +56 -59
  1165. package/src/utils/config/utils.js.map +1 -1
  1166. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +16 -3
  1167. package/src/utils/connection/open-api/react.d.ts +31 -5
  1168. package/src/utils/connection/open-api/react.js +106 -76
  1169. package/src/utils/connection/open-api/react.js.map +1 -1
  1170. package/src/utils/containers.js +22 -23
  1171. package/src/utils/containers.js.map +1 -1
  1172. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
  1173. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +93 -0
  1174. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
  1175. package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
  1176. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
  1177. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
  1178. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
  1179. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
  1180. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
  1181. package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
  1182. package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +410 -0
  1183. package/src/utils/declared-dependencies.d.ts +140 -0
  1184. package/src/utils/declared-dependencies.js +64 -0
  1185. package/src/utils/declared-dependencies.js.map +1 -0
  1186. package/src/utils/dependencies.d.ts +18 -0
  1187. package/src/utils/dependencies.js +206 -0
  1188. package/src/utils/dependencies.js.map +1 -0
  1189. package/src/utils/docker.d.ts +89 -0
  1190. package/src/utils/docker.js +125 -0
  1191. package/src/utils/docker.js.map +1 -0
  1192. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +2 -2
  1193. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -41
  1194. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  1195. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
  1196. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +24 -4
  1197. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +51 -18
  1198. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +40 -6
  1199. package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
  1200. package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
  1201. package/src/utils/files/common/constructs/src/index.ts.template +2 -2
  1202. package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
  1203. package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
  1204. package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
  1205. package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
  1206. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  1207. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +103 -0
  1208. package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
  1209. package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
  1210. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
  1211. package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
  1212. package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
  1213. package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
  1214. package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
  1215. package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +115 -0
  1216. package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
  1217. package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
  1218. package/src/utils/files/shadcn/components.json.template +1 -1
  1219. package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
  1220. package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
  1221. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
  1222. package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
  1223. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
  1224. package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
  1225. package/src/utils/format.d.ts +39 -4
  1226. package/src/utils/format.js +318 -198
  1227. package/src/utils/format.js.map +1 -1
  1228. package/src/utils/fs.d.ts +24 -5
  1229. package/src/utils/fs.js +40 -15
  1230. package/src/utils/fs.js.map +1 -1
  1231. package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
  1232. package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
  1233. package/src/utils/function-constructs/function-constructs.d.ts +1 -1
  1234. package/src/utils/function-constructs/function-constructs.js +22 -25
  1235. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  1236. package/src/utils/generators.js +18 -20
  1237. package/src/utils/generators.js.map +1 -1
  1238. package/src/utils/git.js +19 -34
  1239. package/src/utils/git.js.map +1 -1
  1240. package/src/utils/iac-providers.js +5 -5
  1241. package/src/utils/iac-providers.js.map +1 -1
  1242. package/src/utils/iac.d.ts +2 -2
  1243. package/src/utils/iac.js +12 -14
  1244. package/src/utils/iac.js.map +1 -1
  1245. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +193 -30
  1246. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
  1247. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +177 -25
  1248. package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +33 -0
  1249. package/src/utils/identity-constructs/identity-constructs.d.ts +11 -1
  1250. package/src/utils/identity-constructs/identity-constructs.js +52 -31
  1251. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  1252. package/src/utils/init.d.ts +72 -0
  1253. package/src/utils/init.js +300 -0
  1254. package/src/utils/init.js.map +1 -0
  1255. package/src/utils/install.d.ts +32 -0
  1256. package/src/utils/install.js +58 -0
  1257. package/src/utils/install.js.map +1 -0
  1258. package/src/utils/js.js +27 -20
  1259. package/src/utils/js.js.map +1 -1
  1260. package/src/utils/mcp.d.ts +9 -0
  1261. package/src/utils/mcp.js +42 -41
  1262. package/src/utils/mcp.js.map +1 -1
  1263. package/src/utils/metrics.d.ts +8 -2
  1264. package/src/utils/metrics.js +61 -46
  1265. package/src/utils/metrics.js.map +1 -1
  1266. package/src/utils/migration-manifest.d.ts +58 -0
  1267. package/src/utils/migration-manifest.js +76 -0
  1268. package/src/utils/migration-manifest.js.map +1 -0
  1269. package/src/utils/migration-versions.d.ts +145 -0
  1270. package/src/utils/migration-versions.js +250 -0
  1271. package/src/utils/migration-versions.js.map +1 -0
  1272. package/src/utils/mock-project-graph.js +8 -12
  1273. package/src/utils/mock-project-graph.js.map +1 -1
  1274. package/src/utils/module-format.d.ts +25 -0
  1275. package/src/utils/module-format.js +45 -0
  1276. package/src/utils/module-format.js.map +1 -0
  1277. package/src/utils/names.d.ts +22 -0
  1278. package/src/utils/names.js +44 -48
  1279. package/src/utils/names.js.map +1 -1
  1280. package/src/utils/npm-scope.d.ts +0 -4
  1281. package/src/utils/npm-scope.js +7 -20
  1282. package/src/utils/npm-scope.js.map +1 -1
  1283. package/src/utils/nx.d.ts +77 -6
  1284. package/src/utils/nx.js +196 -75
  1285. package/src/utils/nx.js.map +1 -1
  1286. package/src/utils/nxlv-python.js +27 -15
  1287. package/src/utils/nxlv-python.js.map +1 -1
  1288. package/src/utils/object.js +5 -11
  1289. package/src/utils/object.js.map +1 -1
  1290. package/src/utils/paths.js +11 -15
  1291. package/src/utils/paths.js.map +1 -1
  1292. package/src/utils/pkg-manager.d.ts +1 -1
  1293. package/src/utils/pkg-manager.js +4 -9
  1294. package/src/utils/pkg-manager.js.map +1 -1
  1295. package/src/utils/pnpm-workspace.d.ts +1 -12
  1296. package/src/utils/pnpm-workspace.js +16 -43
  1297. package/src/utils/pnpm-workspace.js.map +1 -1
  1298. package/src/utils/port.d.ts +28 -6
  1299. package/src/utils/port.js +67 -28
  1300. package/src/utils/port.js.map +1 -1
  1301. package/src/utils/project-package-json.d.ts +39 -0
  1302. package/src/utils/project-package-json.js +119 -0
  1303. package/src/utils/project-package-json.js.map +1 -0
  1304. package/src/utils/py.d.ts +18 -4
  1305. package/src/utils/py.js +73 -48
  1306. package/src/utils/py.js.map +1 -1
  1307. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
  1308. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +112 -88
  1309. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +127 -53
  1310. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +60 -53
  1311. package/src/utils/rdb-constructs/rdb-constructs.d.ts +14 -3
  1312. package/src/utils/rdb-constructs/rdb-constructs.js +38 -41
  1313. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  1314. package/src/utils/ruff.d.ts +59 -0
  1315. package/src/utils/ruff.js +140 -0
  1316. package/src/utils/ruff.js.map +1 -0
  1317. package/src/utils/shared-constructs-constants.d.ts +46 -4
  1318. package/src/utils/shared-constructs-constants.js +50 -15
  1319. package/src/utils/shared-constructs-constants.js.map +1 -1
  1320. package/src/utils/shared-constructs.d.ts +5 -2
  1321. package/src/utils/shared-constructs.js +62 -67
  1322. package/src/utils/shared-constructs.js.map +1 -1
  1323. package/src/utils/shared-dynamodb-scripts.d.ts +18 -0
  1324. package/src/utils/shared-dynamodb-scripts.js +35 -0
  1325. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  1326. package/src/utils/shared-infra-config.js +31 -30
  1327. package/src/utils/shared-infra-config.js.map +1 -1
  1328. package/src/utils/shared-infra-scripts.d.ts +26 -0
  1329. package/src/utils/shared-infra-scripts.js +58 -0
  1330. package/src/utils/shared-infra-scripts.js.map +1 -0
  1331. package/src/utils/shared-rdb-scripts.d.ts +27 -0
  1332. package/src/utils/shared-rdb-scripts.js +59 -0
  1333. package/src/utils/shared-rdb-scripts.js.map +1 -0
  1334. package/src/utils/shared-scripts.d.ts +1 -4
  1335. package/src/utils/shared-scripts.js +12 -38
  1336. package/src/utils/shared-scripts.js.map +1 -1
  1337. package/src/utils/shared-shadcn.d.ts +26 -1
  1338. package/src/utils/shared-shadcn.js +93 -67
  1339. package/src/utils/shared-shadcn.js.map +1 -1
  1340. package/src/utils/smithy.d.ts +59 -0
  1341. package/src/utils/smithy.js +73 -0
  1342. package/src/utils/smithy.js.map +1 -0
  1343. package/src/utils/test-git.d.ts +39 -0
  1344. package/src/utils/test-git.js +117 -0
  1345. package/src/utils/test-git.js.map +1 -0
  1346. package/src/utils/test.d.ts +10 -0
  1347. package/src/utils/test.js +44 -25
  1348. package/src/utils/test.js.map +1 -1
  1349. package/src/utils/toml.d.ts +5 -0
  1350. package/src/utils/toml.js +17 -15
  1351. package/src/utils/toml.js.map +1 -1
  1352. package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
  1353. package/src/utils/version-upgrade-migration/migration.js +16 -0
  1354. package/src/utils/version-upgrade-migration/migration.js.map +1 -0
  1355. package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
  1356. package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
  1357. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
  1358. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +76 -0
  1359. package/src/utils/version-upgrade-migration/owned-dependencies.js +146 -0
  1360. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
  1361. package/src/utils/version-upgrade-migration/register.d.ts +29 -0
  1362. package/src/utils/version-upgrade-migration/register.js +42 -0
  1363. package/src/utils/version-upgrade-migration/register.js.map +1 -0
  1364. package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +26 -0
  1365. package/src/utils/version-upgrade-migration/sync-embedded-versions.js +352 -0
  1366. package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -0
  1367. package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
  1368. package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
  1369. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
  1370. package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
  1371. package/src/utils/version-upgrade-migration/sync-vended-versions.js +518 -0
  1372. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
  1373. package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
  1374. package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
  1375. package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
  1376. package/src/utils/versions.d.ts +244 -108
  1377. package/src/utils/versions.js +269 -121
  1378. package/src/utils/versions.js.map +1 -1
  1379. package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +12 -3
  1380. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +252 -49
  1381. package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +56 -1
  1382. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +201 -107
  1383. package/src/utils/website-constructs/website-constructs.d.ts +12 -1
  1384. package/src/utils/website-constructs/website-constructs.js +49 -30
  1385. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  1386. package/bin/aws-nx-mcp.d.ts +0 -2
  1387. package/bin/aws-nx-mcp.js +0 -17
  1388. package/bin/aws-nx-mcp.js.map +0 -1
  1389. package/sdk/connection.d.ts +0 -6
  1390. package/sdk/connection.js +0 -10
  1391. package/sdk/connection.js.map +0 -1
  1392. package/sdk/license.d.ts +0 -8
  1393. package/sdk/license.js +0 -13
  1394. package/sdk/license.js.map +0 -1
  1395. package/sdk/open-api.d.ts +0 -10
  1396. package/sdk/open-api.js +0 -15
  1397. package/sdk/open-api.js.map +0 -1
  1398. package/sdk/py.d.ts +0 -14
  1399. package/sdk/py.js +0 -18
  1400. package/sdk/py.js.map +0 -1
  1401. package/sdk/terraform.d.ts +0 -6
  1402. package/sdk/terraform.js +0 -11
  1403. package/sdk/terraform.js.map +0 -1
  1404. package/sdk/ts.d.ts +0 -29
  1405. package/sdk/ts.js +0 -47
  1406. package/sdk/ts.js.map +0 -1
  1407. package/sdk/utils/ast.js +0 -12
  1408. package/sdk/utils/ast.js.map +0 -1
  1409. package/sdk/utils/format.js +0 -10
  1410. package/sdk/utils/format.js.map +0 -1
  1411. package/sdk/utils/test.js +0 -10
  1412. package/sdk/utils/test.js.map +0 -1
  1413. package/src/connection/agent-serve-local.d.ts +0 -33
  1414. package/src/connection/agent-serve-local.js +0 -48
  1415. package/src/connection/agent-serve-local.js.map +0 -1
  1416. package/src/connection/serve-local.js +0 -41
  1417. package/src/connection/serve-local.js.map +0 -1
  1418. package/src/py/agent/__snapshots__/generator.spec.ts.snap +0 -769
  1419. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  1420. package/src/py/agent/files/a2a/main.py.template +0 -54
  1421. package/src/py/agent/files/ag-ui/main.py.template +0 -37
  1422. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  1423. package/src/py/agent/react-connection/serve-local.js +0 -30
  1424. package/src/py/agent/react-connection/serve-local.js.map +0 -1
  1425. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  1426. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  1427. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  1428. package/src/ts/agent/react-connection/serve-local.d.ts +0 -13
  1429. package/src/ts/agent/react-connection/serve-local.js +0 -19
  1430. package/src/ts/agent/react-connection/serve-local.js.map +0 -1
  1431. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  1432. package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
  1433. package/src/ts/dynamodb/files/scripts/start-container.ts.template +0 -81
  1434. package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
  1435. package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
  1436. package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
  1437. package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
  1438. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  1439. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  1440. package/src/ts/rdb/files/src/index.ts.template +0 -2
  1441. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  1442. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  1443. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  1444. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  1445. package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
  1446. package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
  1447. package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
  1448. /package/src/py/agent/files/{common → langchain/common}/__init__.py.template +0 -0
  1449. /package/src/smithy/project/files/{src → service/src}/main.smithy.template +0 -0
  1450. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  1451. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  1452. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -0,0 +1,362 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { addDestructuredImport, 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
+ * Surface mfa and mfaSecondFactor on the vended UserIdentity construct/module
9
+ *
10
+ * CDK's `mfa` / `mfaSecondFactor` props default to what the construct already
11
+ * hard-coded (`Mfa.REQUIRED` / `{ sms: true, otp: true }`), so this just makes
12
+ * them overridable, matching the existing `enableWaf` prop pattern.
13
+ *
14
+ * Terraform has no equivalent of CloudFormation's `EnabledMfas` - SMS MFA is
15
+ * inseparable from the `sms_configuration` block, which phone number
16
+ * verification also relies on. So `mfa_second_factor_sms` gates
17
+ * `sms_configuration` (and, with it, SMS phone verification) rather than only
18
+ * MFA, unlike the CDK prop.
19
+ *
20
+ * CDK has the same underlying coupling for any non-OFF `mfa`: Cognito rejects
21
+ * `SmsConfiguration` (which CDK emits whenever phone is auto-verified) unless
22
+ * SMS is also an enabled MFA method. So `phoneVerificationEnabled` gates
23
+ * `autoVerify`/`keepOriginal`'s `phone` flag on whether SMS is actually usable
24
+ * as a second factor, and a `mfa: REQUIRED` with neither `sms` nor `otp`
25
+ * enabled - a pool nobody could ever sign into - is rejected at synth time.
26
+ *
27
+ * How to write a migration:
28
+ * - https://nx.dev/docs/kb/migration-generators
29
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
30
+ *
31
+ * Guardrails:
32
+ * - Pattern-match before writing: skip files that have diverged from the shape
33
+ * your generators produce and report them via `nextSteps`, rather than
34
+ * clobbering the user's changes.
35
+ * - Idempotent: re-running must be a no-op.
36
+ * - Format what you write: finish with `formatFilesInSubtree` so the files your
37
+ * migration wrote are formatted correctly.
38
+ */ const CDK_USER_IDENTITY_FILE = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core/user-identity.ts`;
39
+ const TERRAFORM_IDENTITY_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/user-identity/identity/identity.tf`;
40
+ const TERRAFORM_MAIN_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/user-identity/main.tf`;
41
+ const NEW_TERRAFORM_VARIABLES = `variable "mfa" {
42
+ description = "Whether users must configure MFA, may optionally configure MFA, or cannot use MFA at all"
43
+ type = string
44
+ default = "ON"
45
+
46
+ validation {
47
+ condition = contains(["OFF", "OPTIONAL", "ON"], var.mfa)
48
+ error_message = "mfa must be one of OFF, OPTIONAL, ON"
49
+ }
50
+ }
51
+
52
+ variable "mfa_second_factor_otp" {
53
+ description = "Whether users can use a time-based one time password (TOTP), generated by a hardware or software token, as an MFA method"
54
+ type = bool
55
+ default = true
56
+ }
57
+
58
+ variable "mfa_second_factor_sms" {
59
+ description = "Whether users can use SMS to their verified phone numbers as an MFA method. Due to a Terraform AWS provider limitation, disabling this also disables SMS-based phone number verification, unlike the equivalent CDK construct prop"
60
+ type = bool
61
+ default = true
62
+ }`;
63
+ // Guards each file: present only once it has been migrated.
64
+ const CDK_MIGRATED_PATTERN = '`mfa === Mfa.OFF || mfaSecondFactor.sms`';
65
+ const TERRAFORM_IDENTITY_MIGRATED_PATTERN = 'language hcl\n`mfa_configuration = var.mfa`';
66
+ const TERRAFORM_MAIN_MIGRATED_PATTERN = 'language hcl\n`mfa = var.mfa`';
67
+ // Interface members don't parse as standalone snippets, so this anchors on the
68
+ // whole interface body (preserved via $body) rather than the enableWaf member.
69
+ const CDK_INTERFACE_BODY_PATTERN = '`export interface UserIdentityProps { $body }`';
70
+ // A parameter's type annotation blocks matching the destructure sub-pattern in
71
+ // isolation, so this anchors on the full constructor signature instead
72
+ // (literal params so a customised signature is correctly seen as diverged).
73
+ const CDK_CONSTRUCTOR_PATTERN = '`constructor(scope: Construct, id: string, { enableWaf = true }: UserIdentityProps = {}) { $body }`';
74
+ const CDK_CREATE_CALL_PATTERN = '`this.createUserPool()`';
75
+ const CDK_CREATE_SIGNATURE_PATTERN = '`private createUserPool = () => $body`';
76
+ // Trailing commas block matching a bare object property in isolation; the
77
+ // separator is outside the matched span either way, so it survives untouched.
78
+ const CDK_MFA_FIELD_PATTERN = '`mfa: Mfa.REQUIRED`';
79
+ const CDK_MFA_SECOND_FACTOR_FIELD_PATTERN = '`mfaSecondFactor: { sms: true, otp: true }`';
80
+ const CDK_SUPER_CALL_PATTERN = '`super(scope, id);`';
81
+ // $props preserves the whole (large) UserPool props object untouched while
82
+ // inserting the new const declaration immediately before it.
83
+ const CDK_NEW_USER_POOL_PATTERN = "`const userPool = new UserPool(this, 'UserPool', { $props })`";
84
+ // Matches both the autoVerify.phone and keepOriginal.phone occurrences in one pass.
85
+ const CDK_PHONE_TRUE_PATTERN = '`phone: true`';
86
+ const CDK_EDITS = [
87
+ [
88
+ CDK_INTERFACE_BODY_PATTERN,
89
+ `${CDK_INTERFACE_BODY_PATTERN} => \`export interface UserIdentityProps {
90
+ $body
91
+
92
+ /**
93
+ * Whether users must configure MFA, may optionally configure MFA, or cannot use MFA at all.
94
+ *
95
+ * @default Mfa.REQUIRED
96
+ */
97
+ readonly mfa?: Mfa;
98
+
99
+ /**
100
+ * The MFA methods available to users when MFA is not off.
101
+ *
102
+ * @default { sms: true, otp: true }
103
+ */
104
+ readonly mfaSecondFactor?: MfaSecondFactor;
105
+ }\``
106
+ ],
107
+ [
108
+ CDK_CONSTRUCTOR_PATTERN,
109
+ `${CDK_CONSTRUCTOR_PATTERN} => \`constructor(
110
+ scope: Construct,
111
+ id: string,
112
+ {
113
+ enableWaf = true,
114
+ mfa = Mfa.REQUIRED,
115
+ mfaSecondFactor = { sms: true, otp: true },
116
+ }: UserIdentityProps = {},
117
+ ) { $body }\``
118
+ ],
119
+ [
120
+ CDK_CREATE_CALL_PATTERN,
121
+ `${CDK_CREATE_CALL_PATTERN} => \`this.createUserPool(mfa, mfaSecondFactor)\``
122
+ ],
123
+ [
124
+ CDK_CREATE_SIGNATURE_PATTERN,
125
+ `${CDK_CREATE_SIGNATURE_PATTERN} => \`private createUserPool = (mfa: Mfa, mfaSecondFactor: MfaSecondFactor) => $body\``
126
+ ],
127
+ [
128
+ CDK_MFA_FIELD_PATTERN,
129
+ `${CDK_MFA_FIELD_PATTERN} => \`mfa\``
130
+ ],
131
+ [
132
+ CDK_MFA_SECOND_FACTOR_FIELD_PATTERN,
133
+ `${CDK_MFA_SECOND_FACTOR_FIELD_PATTERN} => \`mfaSecondFactor\``
134
+ ],
135
+ [
136
+ CDK_SUPER_CALL_PATTERN,
137
+ `${CDK_SUPER_CALL_PATTERN} => \`super(scope, id);
138
+
139
+ if (mfa === Mfa.REQUIRED && !mfaSecondFactor.sms && !mfaSecondFactor.otp) {
140
+ throw new Error(
141
+ 'UserIdentity: mfa is REQUIRED but mfaSecondFactor has no methods enabled (sms and otp are both false)',
142
+ );
143
+ }\``
144
+ ],
145
+ [
146
+ CDK_NEW_USER_POOL_PATTERN,
147
+ `${CDK_NEW_USER_POOL_PATTERN} => \`const phoneVerificationEnabled = mfa === Mfa.OFF || mfaSecondFactor.sms;
148
+
149
+ const userPool = new UserPool(this, 'UserPool', { $props })\``
150
+ ],
151
+ [
152
+ CDK_PHONE_TRUE_PATTERN,
153
+ `${CDK_PHONE_TRUE_PATTERN} => \`phone: phoneVerificationEnabled\``
154
+ ]
155
+ ];
156
+ const TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR = [
157
+ 'language hcl',
158
+ '`variable "enable_waf" {',
159
+ ' description = "Whether to enable AWS WAFv2 with the default managed ruleset (AWSManagedRulesCommonRuleSet and AWSManagedRulesKnownBadInputsRuleSet) and associate it with the user pool"',
160
+ ' type = bool',
161
+ ' default = true',
162
+ '}`'
163
+ ].join('\n');
164
+ const TERRAFORM_MFA_CONFIGURATION_PATTERN = [
165
+ 'language hcl',
166
+ '`mfa_configuration = "ON"`'
167
+ ].join('\n');
168
+ const TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN = [
169
+ 'language hcl',
170
+ '`software_token_mfa_configuration {',
171
+ ' enabled = true',
172
+ ' }`'
173
+ ].join('\n');
174
+ const TERRAFORM_SMS_CONFIGURATION_PATTERN = [
175
+ 'language hcl',
176
+ '`sms_configuration {',
177
+ ' external_id = random_uuid.sms_external_id.result',
178
+ ' sns_caller_arn = aws_iam_role.cognito_sms_role.arn',
179
+ ' sns_region = data.aws_region.current.region',
180
+ ' }`'
181
+ ].join('\n');
182
+ const TERRAFORM_RANDOM_UUID_PATTERN = [
183
+ 'language hcl',
184
+ '`resource "random_uuid" "sms_external_id" {}`'
185
+ ].join('\n');
186
+ const TERRAFORM_SMS_ROLE_PATTERN = [
187
+ 'language hcl',
188
+ '`resource "aws_iam_role" "cognito_sms_role" { $body }`'
189
+ ].join('\n');
190
+ const TERRAFORM_SMS_POLICY_PATTERN = [
191
+ 'language hcl',
192
+ '`resource "aws_iam_role_policy" "cognito_sms_policy" { $body }`'
193
+ ].join('\n');
194
+ const TERRAFORM_SMS_ROLE_ID_REF_PATTERN = [
195
+ 'language hcl',
196
+ '`aws_iam_role.cognito_sms_role.id`'
197
+ ].join('\n');
198
+ const TERRAFORM_EXTERNAL_ID_REF_PATTERN = [
199
+ 'language hcl',
200
+ '`random_uuid.sms_external_id.result`'
201
+ ].join('\n');
202
+ const TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN = [
203
+ 'language hcl',
204
+ '`auto_verified_attributes = ["email", "phone_number"]`'
205
+ ].join('\n');
206
+ const TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN = [
207
+ 'language hcl',
208
+ '`attributes_require_verification_before_update = ["email", "phone_number"]`'
209
+ ].join('\n');
210
+ const TERRAFORM_IDENTITY_EDITS = [
211
+ [
212
+ TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR,
213
+ `${TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR} => \`variable "enable_waf" {
214
+ description = "Whether to enable AWS WAFv2 with the default managed ruleset (AWSManagedRulesCommonRuleSet and AWSManagedRulesKnownBadInputsRuleSet) and associate it with the user pool"
215
+ type = bool
216
+ default = true
217
+ }
218
+
219
+ ${NEW_TERRAFORM_VARIABLES}\``
220
+ ],
221
+ [
222
+ TERRAFORM_RANDOM_UUID_PATTERN,
223
+ `${TERRAFORM_RANDOM_UUID_PATTERN} => \`resource "random_uuid" "sms_external_id" {
224
+ count = var.mfa_second_factor_sms ? 1 : 0
225
+ }\``
226
+ ],
227
+ [
228
+ TERRAFORM_SMS_ROLE_PATTERN,
229
+ `${TERRAFORM_SMS_ROLE_PATTERN} => \`resource "aws_iam_role" "cognito_sms_role" {
230
+ count = var.mfa_second_factor_sms ? 1 : 0
231
+
232
+ $body
233
+ }\``
234
+ ],
235
+ [
236
+ TERRAFORM_SMS_POLICY_PATTERN,
237
+ `${TERRAFORM_SMS_POLICY_PATTERN} => \`resource "aws_iam_role_policy" "cognito_sms_policy" {
238
+ count = var.mfa_second_factor_sms ? 1 : 0
239
+
240
+ $body
241
+ }\``
242
+ ],
243
+ [
244
+ TERRAFORM_MFA_CONFIGURATION_PATTERN,
245
+ `${TERRAFORM_MFA_CONFIGURATION_PATTERN} => \`mfa_configuration = var.mfa\``
246
+ ],
247
+ [
248
+ TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN,
249
+ `${TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN} => \`software_token_mfa_configuration {
250
+ enabled = var.mfa_second_factor_otp
251
+ }\``
252
+ ],
253
+ [
254
+ TERRAFORM_SMS_CONFIGURATION_PATTERN,
255
+ `${TERRAFORM_SMS_CONFIGURATION_PATTERN} => \`# SMS MFA configuration. Due to a Terraform AWS provider limitation, this also gates
256
+ # SMS-based phone number verification below - see the mfa_second_factor_sms variable.
257
+ dynamic "sms_configuration" {
258
+ for_each = var.mfa_second_factor_sms ? [1] : []
259
+
260
+ content {
261
+ external_id = random_uuid.sms_external_id[0].result
262
+ sns_caller_arn = aws_iam_role.cognito_sms_role[0].arn
263
+ sns_region = data.aws_region.current.region
264
+ }
265
+ }\``
266
+ ],
267
+ [
268
+ TERRAFORM_SMS_ROLE_ID_REF_PATTERN,
269
+ `${TERRAFORM_SMS_ROLE_ID_REF_PATTERN} => \`aws_iam_role.cognito_sms_role[0].id\``
270
+ ],
271
+ [
272
+ TERRAFORM_EXTERNAL_ID_REF_PATTERN,
273
+ `${TERRAFORM_EXTERNAL_ID_REF_PATTERN} => \`random_uuid.sms_external_id[0].result\``
274
+ ],
275
+ [
276
+ TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN,
277
+ `${TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN} => \`auto_verified_attributes = var.mfa_second_factor_sms ? ["email", "phone_number"] : ["email"]\``
278
+ ],
279
+ [
280
+ TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN,
281
+ `${TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN} => \`attributes_require_verification_before_update = var.mfa_second_factor_sms ? ["email", "phone_number"] : ["email"]\``
282
+ ]
283
+ ];
284
+ const TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR = [
285
+ 'language hcl',
286
+ '`variable "enable_waf" {',
287
+ ' description = "Whether to enable AWS WAFv2 with the default managed ruleset and associate it with the user pool"',
288
+ ' type = bool',
289
+ ' default = true',
290
+ '}`'
291
+ ].join('\n');
292
+ const TERRAFORM_MAIN_MODULE_PATTERN = [
293
+ 'language hcl',
294
+ '`module "identity" {',
295
+ ' source = "./identity"',
296
+ '',
297
+ ' user_pool_domain_prefix = $prefix',
298
+ ' allow_signup = $allowSignup',
299
+ ' enable_waf = var.enable_waf',
300
+ '}`'
301
+ ].join('\n');
302
+ const TERRAFORM_MAIN_EDITS = [
303
+ [
304
+ TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR,
305
+ `${TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR} => \`variable "enable_waf" {
306
+ description = "Whether to enable AWS WAFv2 with the default managed ruleset and associate it with the user pool"
307
+ type = bool
308
+ default = true
309
+ }
310
+
311
+ ${NEW_TERRAFORM_VARIABLES}\``
312
+ ],
313
+ [
314
+ TERRAFORM_MAIN_MODULE_PATTERN,
315
+ `${TERRAFORM_MAIN_MODULE_PATTERN} => \`module "identity" {
316
+ source = "./identity"
317
+
318
+ user_pool_domain_prefix = $prefix
319
+ allow_signup = $allowSignup
320
+ enable_waf = var.enable_waf
321
+ mfa = var.mfa
322
+ mfa_second_factor_otp = var.mfa_second_factor_otp
323
+ mfa_second_factor_sms = var.mfa_second_factor_sms
324
+ }\``
325
+ ]
326
+ ];
327
+ const divergedNextStep = (filePath)=>`${filePath}: the UserIdentity construct/module has diverged from the generated shape - left untouched. To make MFA configurable, add mfa and mfaSecondFactor (CDK) / mfa, mfa_second_factor_otp and mfa_second_factor_sms (Terraform) yourself, following the same pattern as the existing enableWaf prop/variable.`;
328
+ const applyEdits = async (tree, filePath, migratedPattern, edits, nextSteps, beforeApply)=>{
329
+ if (!tree.exists(filePath)) {
330
+ // This workspace doesn't use this IaC provider, or has no UserIdentity.
331
+ return;
332
+ }
333
+ if (await matchGritQL(tree, filePath, migratedPattern)) {
334
+ // Already migrated - silent skip keeps re-runs a no-op.
335
+ return;
336
+ }
337
+ // Confirm every edit site is present before writing any of them, so a file
338
+ // that only partly matches is left whole rather than half-edited.
339
+ const allSitesPresent = (await Promise.all(edits.map(([match])=>matchGritQL(tree, filePath, match)))).every(Boolean);
340
+ if (!allSitesPresent) {
341
+ nextSteps.push(divergedNextStep(filePath));
342
+ return;
343
+ }
344
+ await beforeApply?.();
345
+ for (const [, rewrite] of edits){
346
+ await applyGritQL(tree, filePath, rewrite);
347
+ }
348
+ };
349
+ export default async function migration(tree) {
350
+ const nextSteps = [];
351
+ await applyEdits(tree, CDK_USER_IDENTITY_FILE, CDK_MIGRATED_PATTERN, CDK_EDITS, nextSteps, ()=>addDestructuredImport(tree, CDK_USER_IDENTITY_FILE, [
352
+ 'type MfaSecondFactor'
353
+ ], 'aws-cdk-lib/aws-cognito'));
354
+ await applyEdits(tree, TERRAFORM_IDENTITY_FILE, TERRAFORM_IDENTITY_MIGRATED_PATTERN, TERRAFORM_IDENTITY_EDITS, nextSteps);
355
+ await applyEdits(tree, TERRAFORM_MAIN_FILE, TERRAFORM_MAIN_MIGRATED_PATTERN, TERRAFORM_MAIN_EDITS, nextSteps);
356
+ await formatFilesInSubtree(tree);
357
+ return {
358
+ nextSteps
359
+ };
360
+ }
361
+
362
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/latest/user-identity-configurable-mfa/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 matchGritQL,\n} from '../../../utils/ast.js';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../../../utils/shared-constructs-constants.js';\n\n/**\n * Surface mfa and mfaSecondFactor on the vended UserIdentity construct/module\n *\n * CDK's `mfa` / `mfaSecondFactor` props default to what the construct already\n * hard-coded (`Mfa.REQUIRED` / `{ sms: true, otp: true }`), so this just makes\n * them overridable, matching the existing `enableWaf` prop pattern.\n *\n * Terraform has no equivalent of CloudFormation's `EnabledMfas` - SMS MFA is\n * inseparable from the `sms_configuration` block, which phone number\n * verification also relies on. So `mfa_second_factor_sms` gates\n * `sms_configuration` (and, with it, SMS phone verification) rather than only\n * MFA, unlike the CDK prop.\n *\n * CDK has the same underlying coupling for any non-OFF `mfa`: Cognito rejects\n * `SmsConfiguration` (which CDK emits whenever phone is auto-verified) unless\n * SMS is also an enabled MFA method. So `phoneVerificationEnabled` gates\n * `autoVerify`/`keepOriginal`'s `phone` flag on whether SMS is actually usable\n * as a second factor, and a `mfa: REQUIRED` with neither `sms` nor `otp`\n * enabled - a pool nobody could ever sign into - is rejected at synth time.\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`;\nconst TERRAFORM_MAIN_FILE = `${PACKAGES_DIR}/${SHARED_TERRAFORM_DIR}/src/core/user-identity/main.tf`;\n\nconst NEW_TERRAFORM_VARIABLES = `variable \"mfa\" {\n description = \"Whether users must configure MFA, may optionally configure MFA, or cannot use MFA at all\"\n type = string\n default = \"ON\"\n\n validation {\n condition = contains([\"OFF\", \"OPTIONAL\", \"ON\"], var.mfa)\n error_message = \"mfa must be one of OFF, OPTIONAL, ON\"\n }\n}\n\nvariable \"mfa_second_factor_otp\" {\n description = \"Whether users can use a time-based one time password (TOTP), generated by a hardware or software token, as an MFA method\"\n type = bool\n default = true\n}\n\nvariable \"mfa_second_factor_sms\" {\n description = \"Whether users can use SMS to their verified phone numbers as an MFA method. Due to a Terraform AWS provider limitation, disabling this also disables SMS-based phone number verification, unlike the equivalent CDK construct prop\"\n type = bool\n default = true\n}`;\n\n// Guards each file: present only once it has been migrated.\nconst CDK_MIGRATED_PATTERN = '`mfa === Mfa.OFF || mfaSecondFactor.sms`';\nconst TERRAFORM_IDENTITY_MIGRATED_PATTERN =\n 'language hcl\\n`mfa_configuration = var.mfa`';\nconst TERRAFORM_MAIN_MIGRATED_PATTERN = 'language hcl\\n`mfa = var.mfa`';\n\n// Interface members don't parse as standalone snippets, so this anchors on the\n// whole interface body (preserved via $body) rather than the enableWaf member.\nconst CDK_INTERFACE_BODY_PATTERN =\n '`export interface UserIdentityProps { $body }`';\n// A parameter's type annotation blocks matching the destructure sub-pattern in\n// isolation, so this anchors on the full constructor signature instead\n// (literal params so a customised signature is correctly seen as diverged).\nconst CDK_CONSTRUCTOR_PATTERN =\n '`constructor(scope: Construct, id: string, { enableWaf = true }: UserIdentityProps = {}) { $body }`';\nconst CDK_CREATE_CALL_PATTERN = '`this.createUserPool()`';\nconst CDK_CREATE_SIGNATURE_PATTERN = '`private createUserPool = () => $body`';\n// Trailing commas block matching a bare object property in isolation; the\n// separator is outside the matched span either way, so it survives untouched.\nconst CDK_MFA_FIELD_PATTERN = '`mfa: Mfa.REQUIRED`';\nconst CDK_MFA_SECOND_FACTOR_FIELD_PATTERN =\n '`mfaSecondFactor: { sms: true, otp: true }`';\nconst CDK_SUPER_CALL_PATTERN = '`super(scope, id);`';\n// $props preserves the whole (large) UserPool props object untouched while\n// inserting the new const declaration immediately before it.\nconst CDK_NEW_USER_POOL_PATTERN =\n \"`const userPool = new UserPool(this, 'UserPool', { $props })`\";\n// Matches both the autoVerify.phone and keepOriginal.phone occurrences in one pass.\nconst CDK_PHONE_TRUE_PATTERN = '`phone: true`';\n\nconst CDK_EDITS: Array<[string, string]> = [\n [\n CDK_INTERFACE_BODY_PATTERN,\n `${CDK_INTERFACE_BODY_PATTERN} => \\`export interface UserIdentityProps {\n $body\n\n /**\n * Whether users must configure MFA, may optionally configure MFA, or cannot use MFA at all.\n *\n * @default Mfa.REQUIRED\n */\n readonly mfa?: Mfa;\n\n /**\n * The MFA methods available to users when MFA is not off.\n *\n * @default { sms: true, otp: true }\n */\n readonly mfaSecondFactor?: MfaSecondFactor;\n}\\``,\n ],\n [\n CDK_CONSTRUCTOR_PATTERN,\n `${CDK_CONSTRUCTOR_PATTERN} => \\`constructor(\n scope: Construct,\n id: string,\n {\n enableWaf = true,\n mfa = Mfa.REQUIRED,\n mfaSecondFactor = { sms: true, otp: true },\n }: UserIdentityProps = {},\n ) { $body }\\``,\n ],\n [\n CDK_CREATE_CALL_PATTERN,\n `${CDK_CREATE_CALL_PATTERN} => \\`this.createUserPool(mfa, mfaSecondFactor)\\``,\n ],\n [\n CDK_CREATE_SIGNATURE_PATTERN,\n `${CDK_CREATE_SIGNATURE_PATTERN} => \\`private createUserPool = (mfa: Mfa, mfaSecondFactor: MfaSecondFactor) => $body\\``,\n ],\n [CDK_MFA_FIELD_PATTERN, `${CDK_MFA_FIELD_PATTERN} => \\`mfa\\``],\n [\n CDK_MFA_SECOND_FACTOR_FIELD_PATTERN,\n `${CDK_MFA_SECOND_FACTOR_FIELD_PATTERN} => \\`mfaSecondFactor\\``,\n ],\n [\n CDK_SUPER_CALL_PATTERN,\n `${CDK_SUPER_CALL_PATTERN} => \\`super(scope, id);\n\n if (mfa === Mfa.REQUIRED && !mfaSecondFactor.sms && !mfaSecondFactor.otp) {\n throw new Error(\n 'UserIdentity: mfa is REQUIRED but mfaSecondFactor has no methods enabled (sms and otp are both false)',\n );\n }\\``,\n ],\n [\n CDK_NEW_USER_POOL_PATTERN,\n `${CDK_NEW_USER_POOL_PATTERN} => \\`const phoneVerificationEnabled = mfa === Mfa.OFF || mfaSecondFactor.sms;\n\n const userPool = new UserPool(this, 'UserPool', { $props })\\``,\n ],\n [\n CDK_PHONE_TRUE_PATTERN,\n `${CDK_PHONE_TRUE_PATTERN} => \\`phone: phoneVerificationEnabled\\``,\n ],\n];\n\nconst TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR = [\n 'language hcl',\n '`variable \"enable_waf\" {',\n ' description = \"Whether to enable AWS WAFv2 with the default managed ruleset (AWSManagedRulesCommonRuleSet and AWSManagedRulesKnownBadInputsRuleSet) and associate it with the user pool\"',\n ' type = bool',\n ' default = true',\n '}`',\n].join('\\n');\n\nconst TERRAFORM_MFA_CONFIGURATION_PATTERN = [\n 'language hcl',\n '`mfa_configuration = \"ON\"`',\n].join('\\n');\n\nconst TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN = [\n 'language hcl',\n '`software_token_mfa_configuration {',\n ' enabled = true',\n ' }`',\n].join('\\n');\n\nconst TERRAFORM_SMS_CONFIGURATION_PATTERN = [\n 'language hcl',\n '`sms_configuration {',\n ' external_id = random_uuid.sms_external_id.result',\n ' sns_caller_arn = aws_iam_role.cognito_sms_role.arn',\n ' sns_region = data.aws_region.current.region',\n ' }`',\n].join('\\n');\n\nconst TERRAFORM_RANDOM_UUID_PATTERN = [\n 'language hcl',\n '`resource \"random_uuid\" \"sms_external_id\" {}`',\n].join('\\n');\n\nconst TERRAFORM_SMS_ROLE_PATTERN = [\n 'language hcl',\n '`resource \"aws_iam_role\" \"cognito_sms_role\" { $body }`',\n].join('\\n');\n\nconst TERRAFORM_SMS_POLICY_PATTERN = [\n 'language hcl',\n '`resource \"aws_iam_role_policy\" \"cognito_sms_policy\" { $body }`',\n].join('\\n');\n\nconst TERRAFORM_SMS_ROLE_ID_REF_PATTERN = [\n 'language hcl',\n '`aws_iam_role.cognito_sms_role.id`',\n].join('\\n');\n\nconst TERRAFORM_EXTERNAL_ID_REF_PATTERN = [\n 'language hcl',\n '`random_uuid.sms_external_id.result`',\n].join('\\n');\n\nconst TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN = [\n 'language hcl',\n '`auto_verified_attributes = [\"email\", \"phone_number\"]`',\n].join('\\n');\n\nconst TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN = [\n 'language hcl',\n '`attributes_require_verification_before_update = [\"email\", \"phone_number\"]`',\n].join('\\n');\n\nconst TERRAFORM_IDENTITY_EDITS: Array<[string, string]> = [\n [\n TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR,\n `${TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR} => \\`variable \"enable_waf\" {\n description = \"Whether to enable AWS WAFv2 with the default managed ruleset (AWSManagedRulesCommonRuleSet and AWSManagedRulesKnownBadInputsRuleSet) and associate it with the user pool\"\n type = bool\n default = true\n}\n\n${NEW_TERRAFORM_VARIABLES}\\``,\n ],\n [\n TERRAFORM_RANDOM_UUID_PATTERN,\n `${TERRAFORM_RANDOM_UUID_PATTERN} => \\`resource \"random_uuid\" \"sms_external_id\" {\n count = var.mfa_second_factor_sms ? 1 : 0\n}\\``,\n ],\n [\n TERRAFORM_SMS_ROLE_PATTERN,\n `${TERRAFORM_SMS_ROLE_PATTERN} => \\`resource \"aws_iam_role\" \"cognito_sms_role\" {\n count = var.mfa_second_factor_sms ? 1 : 0\n\n $body\n}\\``,\n ],\n [\n TERRAFORM_SMS_POLICY_PATTERN,\n `${TERRAFORM_SMS_POLICY_PATTERN} => \\`resource \"aws_iam_role_policy\" \"cognito_sms_policy\" {\n count = var.mfa_second_factor_sms ? 1 : 0\n\n $body\n}\\``,\n ],\n [\n TERRAFORM_MFA_CONFIGURATION_PATTERN,\n `${TERRAFORM_MFA_CONFIGURATION_PATTERN} => \\`mfa_configuration = var.mfa\\``,\n ],\n [\n TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN,\n `${TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN} => \\`software_token_mfa_configuration {\n enabled = var.mfa_second_factor_otp\n }\\``,\n ],\n [\n TERRAFORM_SMS_CONFIGURATION_PATTERN,\n `${TERRAFORM_SMS_CONFIGURATION_PATTERN} => \\`# SMS MFA configuration. Due to a Terraform AWS provider limitation, this also gates\n # SMS-based phone number verification below - see the mfa_second_factor_sms variable.\n dynamic \"sms_configuration\" {\n for_each = var.mfa_second_factor_sms ? [1] : []\n\n content {\n external_id = random_uuid.sms_external_id[0].result\n sns_caller_arn = aws_iam_role.cognito_sms_role[0].arn\n sns_region = data.aws_region.current.region\n }\n }\\``,\n ],\n [\n TERRAFORM_SMS_ROLE_ID_REF_PATTERN,\n `${TERRAFORM_SMS_ROLE_ID_REF_PATTERN} => \\`aws_iam_role.cognito_sms_role[0].id\\``,\n ],\n [\n TERRAFORM_EXTERNAL_ID_REF_PATTERN,\n `${TERRAFORM_EXTERNAL_ID_REF_PATTERN} => \\`random_uuid.sms_external_id[0].result\\``,\n ],\n [\n TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN,\n `${TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN} => \\`auto_verified_attributes = var.mfa_second_factor_sms ? [\"email\", \"phone_number\"] : [\"email\"]\\``,\n ],\n [\n TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN,\n `${TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN} => \\`attributes_require_verification_before_update = var.mfa_second_factor_sms ? [\"email\", \"phone_number\"] : [\"email\"]\\``,\n ],\n];\n\nconst TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR = [\n 'language hcl',\n '`variable \"enable_waf\" {',\n ' description = \"Whether to enable AWS WAFv2 with the default managed ruleset and associate it with the user pool\"',\n ' type = bool',\n ' default = true',\n '}`',\n].join('\\n');\n\nconst TERRAFORM_MAIN_MODULE_PATTERN = [\n 'language hcl',\n '`module \"identity\" {',\n ' source = \"./identity\"',\n '',\n ' user_pool_domain_prefix = $prefix',\n ' allow_signup = $allowSignup',\n ' enable_waf = var.enable_waf',\n '}`',\n].join('\\n');\n\nconst TERRAFORM_MAIN_EDITS: Array<[string, string]> = [\n [\n TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR,\n `${TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR} => \\`variable \"enable_waf\" {\n description = \"Whether to enable AWS WAFv2 with the default managed ruleset and associate it with the user pool\"\n type = bool\n default = true\n}\n\n${NEW_TERRAFORM_VARIABLES}\\``,\n ],\n [\n TERRAFORM_MAIN_MODULE_PATTERN,\n `${TERRAFORM_MAIN_MODULE_PATTERN} => \\`module \"identity\" {\n source = \"./identity\"\n\n user_pool_domain_prefix = $prefix\n allow_signup = $allowSignup\n enable_waf = var.enable_waf\n mfa = var.mfa\n mfa_second_factor_otp = var.mfa_second_factor_otp\n mfa_second_factor_sms = var.mfa_second_factor_sms\n}\\``,\n ],\n];\n\nconst divergedNextStep = (filePath: string) =>\n `${filePath}: the UserIdentity construct/module has diverged from the generated shape - left untouched. To make MFA configurable, add mfa and mfaSecondFactor (CDK) / mfa, mfa_second_factor_otp and mfa_second_factor_sms (Terraform) yourself, following the same pattern as the existing enableWaf prop/variable.`;\n\nconst applyEdits = async (\n tree: Tree,\n filePath: string,\n migratedPattern: string,\n edits: Array<[string, string]>,\n nextSteps: string[],\n beforeApply?: () => Promise<void>,\n) => {\n if (!tree.exists(filePath)) {\n // This workspace doesn't use this IaC provider, or has no UserIdentity.\n return;\n }\n\n if (await matchGritQL(tree, filePath, migratedPattern)) {\n // Already migrated - silent skip keeps re-runs a no-op.\n return;\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 return;\n }\n\n await beforeApply?.();\n\n for (const [, rewrite] of edits) {\n await applyGritQL(tree, filePath, rewrite);\n }\n};\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n await applyEdits(\n tree,\n CDK_USER_IDENTITY_FILE,\n CDK_MIGRATED_PATTERN,\n CDK_EDITS,\n nextSteps,\n () =>\n addDestructuredImport(\n tree,\n CDK_USER_IDENTITY_FILE,\n ['type MfaSecondFactor'],\n 'aws-cdk-lib/aws-cognito',\n ),\n );\n\n await applyEdits(\n tree,\n TERRAFORM_IDENTITY_FILE,\n TERRAFORM_IDENTITY_MIGRATED_PATTERN,\n TERRAFORM_IDENTITY_EDITS,\n nextSteps,\n );\n\n await applyEdits(\n tree,\n TERRAFORM_MAIN_FILE,\n TERRAFORM_MAIN_MIGRATED_PATTERN,\n TERRAFORM_MAIN_EDITS,\n nextSteps,\n );\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["addDestructuredImport","applyGritQL","matchGritQL","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","CDK_USER_IDENTITY_FILE","TERRAFORM_IDENTITY_FILE","TERRAFORM_MAIN_FILE","NEW_TERRAFORM_VARIABLES","CDK_MIGRATED_PATTERN","TERRAFORM_IDENTITY_MIGRATED_PATTERN","TERRAFORM_MAIN_MIGRATED_PATTERN","CDK_INTERFACE_BODY_PATTERN","CDK_CONSTRUCTOR_PATTERN","CDK_CREATE_CALL_PATTERN","CDK_CREATE_SIGNATURE_PATTERN","CDK_MFA_FIELD_PATTERN","CDK_MFA_SECOND_FACTOR_FIELD_PATTERN","CDK_SUPER_CALL_PATTERN","CDK_NEW_USER_POOL_PATTERN","CDK_PHONE_TRUE_PATTERN","CDK_EDITS","TERRAFORM_IDENTITY_ENABLE_WAF_VARIABLE_ANCHOR","join","TERRAFORM_MFA_CONFIGURATION_PATTERN","TERRAFORM_SOFTWARE_TOKEN_MFA_PATTERN","TERRAFORM_SMS_CONFIGURATION_PATTERN","TERRAFORM_RANDOM_UUID_PATTERN","TERRAFORM_SMS_ROLE_PATTERN","TERRAFORM_SMS_POLICY_PATTERN","TERRAFORM_SMS_ROLE_ID_REF_PATTERN","TERRAFORM_EXTERNAL_ID_REF_PATTERN","TERRAFORM_AUTO_VERIFIED_ATTRIBUTES_PATTERN","TERRAFORM_ATTRIBUTES_REQUIRE_VERIFICATION_PATTERN","TERRAFORM_IDENTITY_EDITS","TERRAFORM_MAIN_ENABLE_WAF_VARIABLE_ANCHOR","TERRAFORM_MAIN_MODULE_PATTERN","TERRAFORM_MAIN_EDITS","divergedNextStep","filePath","applyEdits","tree","migratedPattern","edits","nextSteps","beforeApply","exists","allSitesPresent","Promise","all","map","match","every","Boolean","push","rewrite","migration"],"mappings":"AAAA;;;CAGC,GAED,SACEA,qBAAqB,EACrBC,WAAW,EACXC,WAAW,QACN,wBAAwB;AAC/B,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,gDAAgD;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BC,GAED,MAAMC,yBAAyB,GAAGH,aAAa,CAAC,EAAEC,sBAAsB,0BAA0B,CAAC;AACnG,MAAMG,0BAA0B,GAAGJ,aAAa,CAAC,EAAEE,qBAAqB,4CAA4C,CAAC;AACrH,MAAMG,sBAAsB,GAAGL,aAAa,CAAC,EAAEE,qBAAqB,+BAA+B,CAAC;AAEpG,MAAMI,0BAA0B,CAAC;;;;;;;;;;;;;;;;;;;;;CAqBhC,CAAC;AAEF,4DAA4D;AAC5D,MAAMC,uBAAuB;AAC7B,MAAMC,sCACJ;AACF,MAAMC,kCAAkC;AAExC,+EAA+E;AAC/E,+EAA+E;AAC/E,MAAMC,6BACJ;AACF,+EAA+E;AAC/E,uEAAuE;AACvE,4EAA4E;AAC5E,MAAMC,0BACJ;AACF,MAAMC,0BAA0B;AAChC,MAAMC,+BAA+B;AACrC,0EAA0E;AAC1E,8EAA8E;AAC9E,MAAMC,wBAAwB;AAC9B,MAAMC,sCACJ;AACF,MAAMC,yBAAyB;AAC/B,2EAA2E;AAC3E,6DAA6D;AAC7D,MAAMC,4BACJ;AACF,oFAAoF;AACpF,MAAMC,yBAAyB;AAE/B,MAAMC,YAAqC;IACzC;QACET;QACA,GAAGA,2BAA2B;;;;;;;;;;;;;;;;GAgB/B,CAAC;KACD;IACD;QACEC;QACA,GAAGA,wBAAwB;;;;;;;;eAQhB,CAAC;KACb;IACD;QACEC;QACA,GAAGA,wBAAwB,iDAAiD,CAAC;KAC9E;IACD;QACEC;QACA,GAAGA,6BAA6B,sFAAsF,CAAC;KACxH;IACD;QAACC;QAAuB,GAAGA,sBAAsB,WAAW,CAAC;KAAC;IAC9D;QACEC;QACA,GAAGA,oCAAoC,uBAAuB,CAAC;KAChE;IACD;QACEC;QACA,GAAGA,uBAAuB;;;;;;OAMvB,CAAC;KACL;IACD;QACEC;QACA,GAAGA,0BAA0B;;iEAEgC,CAAC;KAC/D;IACD;QACEC;QACA,GAAGA,uBAAuB,uCAAuC,CAAC;KACnE;CACF;AAED,MAAME,gDAAgD;IACpD;IACA;IACA;IACA;IACA;IACA;CACD,CAACC,IAAI,CAAC;AAEP,MAAMC,sCAAsC;IAC1C;IACA;CACD,CAACD,IAAI,CAAC;AAEP,MAAME,uCAAuC;IAC3C;IACA;IACA;IACA;CACD,CAACF,IAAI,CAAC;AAEP,MAAMG,sCAAsC;IAC1C;IACA;IACA;IACA;IACA;IACA;CACD,CAACH,IAAI,CAAC;AAEP,MAAMI,gCAAgC;IACpC;IACA;CACD,CAACJ,IAAI,CAAC;AAEP,MAAMK,6BAA6B;IACjC;IACA;CACD,CAACL,IAAI,CAAC;AAEP,MAAMM,+BAA+B;IACnC;IACA;CACD,CAACN,IAAI,CAAC;AAEP,MAAMO,oCAAoC;IACxC;IACA;CACD,CAACP,IAAI,CAAC;AAEP,MAAMQ,oCAAoC;IACxC;IACA;CACD,CAACR,IAAI,CAAC;AAEP,MAAMS,6CAA6C;IACjD;IACA;CACD,CAACT,IAAI,CAAC;AAEP,MAAMU,oDAAoD;IACxD;IACA;CACD,CAACV,IAAI,CAAC;AAEP,MAAMW,2BAAoD;IACxD;QACEZ;QACA,GAAGA,8CAA8C;;;;;;AAMrD,EAAEd,wBAAwB,EAAE,CAAC;KAC1B;IACD;QACEmB;QACA,GAAGA,8BAA8B;;GAElC,CAAC;KACD;IACD;QACEC;QACA,GAAGA,2BAA2B;;;;GAI/B,CAAC;KACD;IACD;QACEC;QACA,GAAGA,6BAA6B;;;;GAIjC,CAAC;KACD;IACD;QACEL;QACA,GAAGA,oCAAoC,mCAAmC,CAAC;KAC5E;IACD;QACEC;QACA,GAAGA,qCAAqC;;KAEvC,CAAC;KACH;IACD;QACEC;QACA,GAAGA,oCAAoC;;;;;;;;;;KAUtC,CAAC;KACH;IACD;QACEI;QACA,GAAGA,kCAAkC,2CAA2C,CAAC;KAClF;IACD;QACEC;QACA,GAAGA,kCAAkC,6CAA6C,CAAC;KACpF;IACD;QACEC;QACA,GAAGA,2CAA2C,oGAAoG,CAAC;KACpJ;IACD;QACEC;QACA,GAAGA,kDAAkD,yHAAyH,CAAC;KAChL;CACF;AAED,MAAME,4CAA4C;IAChD;IACA;IACA;IACA;IACA;IACA;CACD,CAACZ,IAAI,CAAC;AAEP,MAAMa,gCAAgC;IACpC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD,CAACb,IAAI,CAAC;AAEP,MAAMc,uBAAgD;IACpD;QACEF;QACA,GAAGA,0CAA0C;;;;;;AAMjD,EAAE3B,wBAAwB,EAAE,CAAC;KAC1B;IACD;QACE4B;QACA,GAAGA,8BAA8B;;;;;;;;;GASlC,CAAC;KACD;CACF;AAED,MAAME,mBAAmB,CAACC,WACxB,GAAGA,SAAS,wSAAwS,CAAC;AAEvT,MAAMC,aAAa,OACjBC,MACAF,UACAG,iBACAC,OACAC,WACAC;IAEA,IAAI,CAACJ,KAAKK,MAAM,CAACP,WAAW;QAC1B,wEAAwE;QACxE;IACF;IAEA,IAAI,MAAMvC,YAAYyC,MAAMF,UAAUG,kBAAkB;QACtD,wDAAwD;QACxD;IACF;IAEA,2EAA2E;IAC3E,kEAAkE;IAClE,MAAMK,kBAAkB,AACtB,CAAA,MAAMC,QAAQC,GAAG,CACfN,MAAMO,GAAG,CAAC,CAAC,CAACC,MAAM,GAAKnD,YAAYyC,MAAMF,UAAUY,QACrD,EACAC,KAAK,CAACC;IAER,IAAI,CAACN,iBAAiB;QACpBH,UAAUU,IAAI,CAAChB,iBAAiBC;QAChC;IACF;IAEA,MAAMM;IAEN,KAAK,MAAM,GAAGU,QAAQ,IAAIZ,MAAO;QAC/B,MAAM5C,YAAY0C,MAAMF,UAAUgB;IACpC;AACF;AAEA,eAAe,eAAeC,UAC5Bf,IAAU;IAEV,MAAMG,YAAsB,EAAE;IAE9B,MAAMJ,WACJC,MACApC,wBACAI,sBACAY,WACAuB,WACA,IACE9C,sBACE2C,MACApC,wBACA;YAAC;SAAuB,EACxB;IAIN,MAAMmC,WACJC,MACAnC,yBACAI,qCACAwB,0BACAU;IAGF,MAAMJ,WACJC,MACAlC,qBACAI,iCACA0B,sBACAO;IAGF,MAAM3C,qBAAqBwC;IAE3B,OAAO;QAAEG;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs"
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, type Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { visitNotIgnoredFiles } from "@nx/devkit";
5
+ import { formatFilesInSubtree } from "../../../utils/format.js";
6
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR } from "../../../utils/shared-constructs-constants.js";
7
+ /**
8
+ * Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs
9
+ *
10
+ * The legacy `<FunctionProps>{ ... }` cast form is not supported by GritQL's
11
+ * TypeScript parser, which silently breaks parsing (and therefore matching)
12
+ * for the entire containing file. Since several other migrations rely on
13
+ * GritQL to update these API construct files, this cast is replaced here with
14
+ * the equivalent, GritQL-compatible `{ ... } as FunctionProps` form. This is
15
+ * matched as an exact literal (rather than via GritQL) since GritQL cannot
16
+ * parse the file while the legacy cast is still present.
17
+ *
18
+ * How to write a migration:
19
+ * - https://nx.dev/docs/kb/migration-generators
20
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
21
+ *
22
+ * Guardrails:
23
+ * - Pattern-match before writing: skip files that have diverged from the shape
24
+ * your generators produce and report them via `nextSteps`, or consider a
25
+ * hybrid migration, rather than clobbering the user's changes.
26
+ * - Idempotent: re-running must be a no-op.
27
+ * - Format what you write: finish with `formatFilesInSubtree` so the files your
28
+ * migration wrote are formatted correctly.
29
+ */ const APIS_APP_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/apis`;
30
+ const OLD_CAST_OPEN = 'defaultIntegrationOptions: <FunctionProps>{';
31
+ const NEW_CAST_OPEN = 'defaultIntegrationOptions: {';
32
+ const OLD_CAST_CLOSE = '\n },\n buildDefaultIntegration:';
33
+ const NEW_CAST_CLOSE = '\n } as FunctionProps,\n buildDefaultIntegration:';
34
+ export default async function migration(tree) {
35
+ const nextSteps = [];
36
+ if (!tree.exists(APIS_APP_DIR)) {
37
+ return {
38
+ nextSteps
39
+ };
40
+ }
41
+ const apiAppFiles = [];
42
+ visitNotIgnoredFiles(tree, APIS_APP_DIR, (filePath)=>{
43
+ apiAppFiles.push(filePath);
44
+ });
45
+ for (const filePath of apiAppFiles){
46
+ if (!filePath.endsWith('.ts') || filePath.endsWith('/index.ts')) {
47
+ continue;
48
+ }
49
+ const contents = tree.read(filePath, 'utf-8') ?? '';
50
+ if (!contents.includes(OLD_CAST_OPEN)) {
51
+ continue;
52
+ }
53
+ if (!contents.includes(OLD_CAST_CLOSE)) {
54
+ nextSteps.push(`${filePath}: the defaultIntegrationOptions cast has diverged from the generated shape - left untouched. Manually replace \`<FunctionProps>{ ... }\` with \`{ ... } as FunctionProps\`.`);
55
+ continue;
56
+ }
57
+ tree.write(filePath, contents.replace(OLD_CAST_OPEN, NEW_CAST_OPEN).replace(OLD_CAST_CLOSE, NEW_CAST_CLOSE));
58
+ }
59
+ await formatFilesInSubtree(tree);
60
+ return {
61
+ nextSteps
62
+ };
63
+ }
64
+
65
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type MigrationReturnObject,\n type Tree,\n visitNotIgnoredFiles,\n} from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n} from '../../../utils/shared-constructs-constants.js';\n\n/**\n * Replace the legacy angle-bracket FunctionProps type assertion with the modern as syntax in generated API constructs\n *\n * The legacy `<FunctionProps>{ ... }` cast form is not supported by GritQL's\n * TypeScript parser, which silently breaks parsing (and therefore matching)\n * for the entire containing file. Since several other migrations rely on\n * GritQL to update these API construct files, this cast is replaced here with\n * the equivalent, GritQL-compatible `{ ... } as FunctionProps` form. This is\n * matched as an exact literal (rather than via GritQL) since GritQL cannot\n * parse the file while the legacy cast is still present.\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\nconst APIS_APP_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/apis`;\n\nconst OLD_CAST_OPEN = 'defaultIntegrationOptions: <FunctionProps>{';\nconst NEW_CAST_OPEN = 'defaultIntegrationOptions: {';\nconst OLD_CAST_CLOSE = '\\n },\\n buildDefaultIntegration:';\nconst NEW_CAST_CLOSE =\n '\\n } as FunctionProps,\\n buildDefaultIntegration:';\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n if (!tree.exists(APIS_APP_DIR)) {\n return { nextSteps };\n }\n\n const apiAppFiles: string[] = [];\n visitNotIgnoredFiles(tree, APIS_APP_DIR, (filePath) => {\n apiAppFiles.push(filePath);\n });\n\n for (const filePath of apiAppFiles) {\n if (!filePath.endsWith('.ts') || filePath.endsWith('/index.ts')) {\n continue;\n }\n const contents = tree.read(filePath, 'utf-8') ?? '';\n if (!contents.includes(OLD_CAST_OPEN)) {\n // Already migrated, or doesn't use this shape.\n continue;\n }\n if (!contents.includes(OLD_CAST_CLOSE)) {\n nextSteps.push(\n `${filePath}: the defaultIntegrationOptions cast has diverged from the generated shape - left untouched. Manually replace \\`<FunctionProps>{ ... }\\` with \\`{ ... } as FunctionProps\\`.`,\n );\n continue;\n }\n tree.write(\n filePath,\n contents\n .replace(OLD_CAST_OPEN, NEW_CAST_OPEN)\n .replace(OLD_CAST_CLOSE, NEW_CAST_CLOSE),\n );\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["visitNotIgnoredFiles","formatFilesInSubtree","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","APIS_APP_DIR","OLD_CAST_OPEN","NEW_CAST_OPEN","OLD_CAST_CLOSE","NEW_CAST_CLOSE","migration","tree","nextSteps","exists","apiAppFiles","filePath","push","endsWith","contents","read","includes","write","replace"],"mappings":"AAAA;;;CAGC,GACD,SAGEA,oBAAoB,QACf,aAAa;AACpB,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SACEC,YAAY,EACZC,qBAAqB,QAChB,gDAAgD;AAEvD;;;;;;;;;;;;;;;;;;;;;;CAsBC,GAED,MAAMC,eAAe,GAAGF,aAAa,CAAC,EAAEC,sBAAsB,aAAa,CAAC;AAE5E,MAAME,gBAAgB;AACtB,MAAMC,gBAAgB;AACtB,MAAMC,iBAAiB;AACvB,MAAMC,iBACJ;AAEF,eAAe,eAAeC,UAC5BC,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,IAAI,CAACD,KAAKE,MAAM,CAACR,eAAe;QAC9B,OAAO;YAAEO;QAAU;IACrB;IAEA,MAAME,cAAwB,EAAE;IAChCb,qBAAqBU,MAAMN,cAAc,CAACU;QACxCD,YAAYE,IAAI,CAACD;IACnB;IAEA,KAAK,MAAMA,YAAYD,YAAa;QAClC,IAAI,CAACC,SAASE,QAAQ,CAAC,UAAUF,SAASE,QAAQ,CAAC,cAAc;YAC/D;QACF;QACA,MAAMC,WAAWP,KAAKQ,IAAI,CAACJ,UAAU,YAAY;QACjD,IAAI,CAACG,SAASE,QAAQ,CAACd,gBAAgB;YAErC;QACF;QACA,IAAI,CAACY,SAASE,QAAQ,CAACZ,iBAAiB;YACtCI,UAAUI,IAAI,CACZ,GAAGD,SAAS,2KAA2K,CAAC;YAE1L;QACF;QACAJ,KAAKU,KAAK,CACRN,UACAG,SACGI,OAAO,CAAChB,eAAeC,eACvBe,OAAO,CAACd,gBAAgBC;IAE/B;IAEA,MAAMP,qBAAqBS;IAE3B,OAAO;QAAEC;IAAU;AACrB"}
@@ -0,0 +1,3 @@
1
+ {
2
+ "description": "Include CloudFront custom domain aliases in restrictCorsTo and UserIdentity callback URLs"
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, type Tree } from '@nx/devkit';
6
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { visitNotIgnoredFiles } from "@nx/devkit";
5
+ import { addDestructuredImport, addStarExport, applyGritQL } from "../../../utils/ast.js";
6
+ import { formatFilesInSubtree } from "../../../utils/format.js";
7
+ import { isEsmWorkspace } from "../../../utils/module-format.js";
8
+ import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR } from "../../../utils/shared-constructs-constants.js";
9
+ /**
10
+ * Include CloudFront custom domain aliases in restrictCorsTo and UserIdentity callback URLs
11
+ *
12
+ * How to write a migration:
13
+ * - https://nx.dev/docs/kb/migration-generators
14
+ * - What `nextSteps` means: https://nx.dev/docs/reference/devkit/MigrationReturnObject
15
+ *
16
+ * Guardrails:
17
+ * - Pattern-match before writing: skip files that have diverged from the shape
18
+ * your generators produce and report them via `nextSteps`, rather than
19
+ * clobbering the user's changes.
20
+ * - Idempotent: re-running must be a no-op.
21
+ * - Format what you write: finish with `formatFilesInSubtree` so the files your
22
+ * migration wrote are formatted correctly.
23
+ */ const CORE_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core`;
24
+ const APIS_APP_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/apis`;
25
+ const CLOUDFRONT_CORE_FILE = `${CORE_DIR}/cloudfront.ts`;
26
+ const CORE_INDEX_FILE = `${CORE_DIR}/index.ts`;
27
+ const USER_IDENTITY_FILE = `${CORE_DIR}/user-identity.ts`;
28
+ const CLOUDFRONT_HELPER_CONTENT = `import { CfnDistribution, Distribution } from 'aws-cdk-lib/aws-cloudfront';
29
+
30
+ /**
31
+ * Finds the domain names associated with a CloudFront distribution.
32
+ *
33
+ * Includes the distribution's default \`*.cloudfront.net\` domain name plus any custom
34
+ * domain names (aliases) configured on it.
35
+ */
36
+ export const findCloudFrontDomainNames = (
37
+ distribution: Distribution,
38
+ ): string[] => {
39
+ const cfnDistribution = distribution.node.defaultChild as CfnDistribution;
40
+ const distributionConfig =
41
+ cfnDistribution.distributionConfig as CfnDistribution.DistributionConfigProperty;
42
+ return [distribution.domainName, ...(distributionConfig.aliases ?? [])];
43
+ };
44
+ `;
45
+ // Rewrites the `restrictCorsTo` body as produced by generators prior to this fix.
46
+ const RESTRICT_CORS_TO_GRITQL_PATTERN = "`origins.map(($o) => typeof $o === 'string' ? $o : 'cloudFrontDistribution' in $o ? $branch1 : $branch2)` where { $branch1 <: contains `distributionDomainName`, $branch2 <: contains `distributionDomainName` } => raw`origins.flatMap(($o) => typeof $o === 'string' ? [$o] : findCloudFrontDomainNames('cloudFrontDistribution' in $o ? $o.cloudFrontDistribution : $o).map((domain) => \\`https://${domain}\\`))`";
47
+ // Rewrites UserIdentity's callback/logout URL logic as produced by generators
48
+ // prior to this fix.
49
+ const USER_IDENTITY_CALLBACK_URLS_GRITQL_PATTERN = '`this.findCloudFrontDomainNames()` => `Stack.of(this).node.findAll().filter((child): child is Distribution => child instanceof Distribution).flatMap(findCloudFrontDomainNames)`';
50
+ export default async function migration(tree) {
51
+ const nextSteps = [];
52
+ if (!tree.exists(CORE_INDEX_FILE)) {
53
+ // No common/constructs shared library in this workspace - nothing to migrate.
54
+ return {
55
+ nextSteps
56
+ };
57
+ }
58
+ const esm = isEsmWorkspace(tree);
59
+ const apiCloudFrontImportSpecifier = esm ? '../../core/cloudfront.js' : '../../core/cloudfront';
60
+ const coreCloudFrontImportSpecifier = esm ? './cloudfront.js' : './cloudfront';
61
+ if (!tree.exists(CLOUDFRONT_CORE_FILE)) {
62
+ tree.write(CLOUDFRONT_CORE_FILE, CLOUDFRONT_HELPER_CONTENT);
63
+ }
64
+ await addStarExport(tree, CORE_INDEX_FILE, './cloudfront.js');
65
+ const apiAppFiles = [];
66
+ visitNotIgnoredFiles(tree, APIS_APP_DIR, (filePath)=>{
67
+ apiAppFiles.push(filePath);
68
+ });
69
+ for (const filePath of apiAppFiles){
70
+ if (!filePath.endsWith('.ts') || filePath.endsWith('/index.ts')) {
71
+ continue;
72
+ }
73
+ const rewrote = await applyGritQL(tree, filePath, RESTRICT_CORS_TO_GRITQL_PATTERN);
74
+ if (rewrote) {
75
+ await addDestructuredImport(tree, filePath, [
76
+ 'findCloudFrontDomainNames'
77
+ ], apiCloudFrontImportSpecifier);
78
+ continue;
79
+ }
80
+ const contents = tree.read(filePath, 'utf-8') ?? '';
81
+ if (!contents.includes('findCloudFrontDomainNames(')) {
82
+ nextSteps.push(`${filePath}: restrictCorsTo has diverged from the generated shape - left untouched. Manually apply the CloudFront custom domain fix (see findCloudFrontDomainNames in common/constructs/src/core/cloudfront.ts).`);
83
+ }
84
+ // Otherwise already migrated - silent skip.
85
+ }
86
+ if (tree.exists(USER_IDENTITY_FILE)) {
87
+ const rewrote = await applyGritQL(tree, USER_IDENTITY_FILE, USER_IDENTITY_CALLBACK_URLS_GRITQL_PATTERN);
88
+ if (rewrote) {
89
+ await applyGritQL(tree, USER_IDENTITY_FILE, "`import { CfnDistribution, Distribution } from 'aws-cdk-lib/aws-cloudfront'` => `import { Distribution } from 'aws-cdk-lib/aws-cloudfront';`");
90
+ await applyGritQL(tree, USER_IDENTITY_FILE, "or { `// Includes each distribution's default domain name plus any custom domain names (aliases) configured on it.` => ., `private findCloudFrontDomainNames = (): string[] => $body` => . }");
91
+ await addDestructuredImport(tree, USER_IDENTITY_FILE, [
92
+ 'findCloudFrontDomainNames'
93
+ ], coreCloudFrontImportSpecifier);
94
+ } else {
95
+ const contents = tree.read(USER_IDENTITY_FILE, 'utf-8') ?? '';
96
+ if (!contents.includes('.flatMap(findCloudFrontDomainNames)')) {
97
+ nextSteps.push(`${USER_IDENTITY_FILE}: the callback URL logic has diverged from the generated shape - left untouched. Manually apply the shared findCloudFrontDomainNames helper (see common/constructs/src/core/cloudfront.ts).`);
98
+ }
99
+ // Otherwise already migrated - silent skip.
100
+ }
101
+ }
102
+ await formatFilesInSubtree(tree);
103
+ return {
104
+ nextSteps
105
+ };
106
+ }
107
+
108
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type MigrationReturnObject,\n type Tree,\n visitNotIgnoredFiles,\n} from '@nx/devkit';\nimport {\n addDestructuredImport,\n addStarExport,\n applyGritQL,\n} from '../../../utils/ast.js';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport { isEsmWorkspace } from '../../../utils/module-format.js';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n} from '../../../utils/shared-constructs-constants.js';\n\n/**\n * Include CloudFront custom domain aliases in restrictCorsTo and UserIdentity callback URLs\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 CORE_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/core`;\nconst APIS_APP_DIR = `${PACKAGES_DIR}/${SHARED_CONSTRUCTS_DIR}/src/app/apis`;\nconst CLOUDFRONT_CORE_FILE = `${CORE_DIR}/cloudfront.ts`;\nconst CORE_INDEX_FILE = `${CORE_DIR}/index.ts`;\nconst USER_IDENTITY_FILE = `${CORE_DIR}/user-identity.ts`;\n\nconst CLOUDFRONT_HELPER_CONTENT = `import { CfnDistribution, Distribution } from 'aws-cdk-lib/aws-cloudfront';\n\n/**\n * Finds the domain names associated with a CloudFront distribution.\n *\n * Includes the distribution's default \\`*.cloudfront.net\\` domain name plus any custom\n * domain names (aliases) configured on it.\n */\nexport const findCloudFrontDomainNames = (\n distribution: Distribution,\n): string[] => {\n const cfnDistribution = distribution.node.defaultChild as CfnDistribution;\n const distributionConfig =\n cfnDistribution.distributionConfig as CfnDistribution.DistributionConfigProperty;\n return [distribution.domainName, ...(distributionConfig.aliases ?? [])];\n};\n`;\n\n// Rewrites the `restrictCorsTo` body as produced by generators prior to this fix.\nconst RESTRICT_CORS_TO_GRITQL_PATTERN =\n \"`origins.map(($o) => typeof $o === 'string' ? $o : 'cloudFrontDistribution' in $o ? $branch1 : $branch2)` where { $branch1 <: contains `distributionDomainName`, $branch2 <: contains `distributionDomainName` } => raw`origins.flatMap(($o) => typeof $o === 'string' ? [$o] : findCloudFrontDomainNames('cloudFrontDistribution' in $o ? $o.cloudFrontDistribution : $o).map((domain) => \\\\`https://${domain}\\\\`))`\";\n\n// Rewrites UserIdentity's callback/logout URL logic as produced by generators\n// prior to this fix.\nconst USER_IDENTITY_CALLBACK_URLS_GRITQL_PATTERN =\n '`this.findCloudFrontDomainNames()` => `Stack.of(this).node.findAll().filter((child): child is Distribution => child instanceof Distribution).flatMap(findCloudFrontDomainNames)`';\n\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n const nextSteps: string[] = [];\n\n if (!tree.exists(CORE_INDEX_FILE)) {\n // No common/constructs shared library in this workspace - nothing to migrate.\n return { nextSteps };\n }\n\n const esm = isEsmWorkspace(tree);\n const apiCloudFrontImportSpecifier = esm\n ? '../../core/cloudfront.js'\n : '../../core/cloudfront';\n const coreCloudFrontImportSpecifier = esm\n ? './cloudfront.js'\n : './cloudfront';\n\n if (!tree.exists(CLOUDFRONT_CORE_FILE)) {\n tree.write(CLOUDFRONT_CORE_FILE, CLOUDFRONT_HELPER_CONTENT);\n }\n await addStarExport(tree, CORE_INDEX_FILE, './cloudfront.js');\n\n const apiAppFiles: string[] = [];\n visitNotIgnoredFiles(tree, APIS_APP_DIR, (filePath) => {\n apiAppFiles.push(filePath);\n });\n\n for (const filePath of apiAppFiles) {\n if (!filePath.endsWith('.ts') || filePath.endsWith('/index.ts')) {\n continue;\n }\n const rewrote = await applyGritQL(\n tree,\n filePath,\n RESTRICT_CORS_TO_GRITQL_PATTERN,\n );\n if (rewrote) {\n await addDestructuredImport(\n tree,\n filePath,\n ['findCloudFrontDomainNames'],\n apiCloudFrontImportSpecifier,\n );\n continue;\n }\n const contents = tree.read(filePath, 'utf-8') ?? '';\n if (!contents.includes('findCloudFrontDomainNames(')) {\n nextSteps.push(\n `${filePath}: restrictCorsTo has diverged from the generated shape - left untouched. Manually apply the CloudFront custom domain fix (see findCloudFrontDomainNames in common/constructs/src/core/cloudfront.ts).`,\n );\n }\n // Otherwise already migrated - silent skip.\n }\n\n if (tree.exists(USER_IDENTITY_FILE)) {\n const rewrote = await applyGritQL(\n tree,\n USER_IDENTITY_FILE,\n USER_IDENTITY_CALLBACK_URLS_GRITQL_PATTERN,\n );\n if (rewrote) {\n await applyGritQL(\n tree,\n USER_IDENTITY_FILE,\n \"`import { CfnDistribution, Distribution } from 'aws-cdk-lib/aws-cloudfront'` => `import { Distribution } from 'aws-cdk-lib/aws-cloudfront';`\",\n );\n await applyGritQL(\n tree,\n USER_IDENTITY_FILE,\n \"or { `// Includes each distribution's default domain name plus any custom domain names (aliases) configured on it.` => ., `private findCloudFrontDomainNames = (): string[] => $body` => . }\",\n );\n await addDestructuredImport(\n tree,\n USER_IDENTITY_FILE,\n ['findCloudFrontDomainNames'],\n coreCloudFrontImportSpecifier,\n );\n } else {\n const contents = tree.read(USER_IDENTITY_FILE, 'utf-8') ?? '';\n if (!contents.includes('.flatMap(findCloudFrontDomainNames)')) {\n nextSteps.push(\n `${USER_IDENTITY_FILE}: the callback URL logic has diverged from the generated shape - left untouched. Manually apply the shared findCloudFrontDomainNames helper (see common/constructs/src/core/cloudfront.ts).`,\n );\n }\n // Otherwise already migrated - silent skip.\n }\n }\n\n await formatFilesInSubtree(tree);\n\n return { nextSteps };\n}\n"],"names":["visitNotIgnoredFiles","addDestructuredImport","addStarExport","applyGritQL","formatFilesInSubtree","isEsmWorkspace","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","CORE_DIR","APIS_APP_DIR","CLOUDFRONT_CORE_FILE","CORE_INDEX_FILE","USER_IDENTITY_FILE","CLOUDFRONT_HELPER_CONTENT","RESTRICT_CORS_TO_GRITQL_PATTERN","USER_IDENTITY_CALLBACK_URLS_GRITQL_PATTERN","migration","tree","nextSteps","exists","esm","apiCloudFrontImportSpecifier","coreCloudFrontImportSpecifier","write","apiAppFiles","filePath","push","endsWith","rewrote","contents","read","includes"],"mappings":"AAAA;;;CAGC,GACD,SAGEA,oBAAoB,QACf,aAAa;AACpB,SACEC,qBAAqB,EACrBC,aAAa,EACbC,WAAW,QACN,wBAAwB;AAC/B,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,cAAc,QAAQ,kCAAkC;AACjE,SACEC,YAAY,EACZC,qBAAqB,QAChB,gDAAgD;AAEvD;;;;;;;;;;;;;;CAcC,GAED,MAAMC,WAAW,GAAGF,aAAa,CAAC,EAAEC,sBAAsB,SAAS,CAAC;AACpE,MAAME,eAAe,GAAGH,aAAa,CAAC,EAAEC,sBAAsB,aAAa,CAAC;AAC5E,MAAMG,uBAAuB,GAAGF,SAAS,cAAc,CAAC;AACxD,MAAMG,kBAAkB,GAAGH,SAAS,SAAS,CAAC;AAC9C,MAAMI,qBAAqB,GAAGJ,SAAS,iBAAiB,CAAC;AAEzD,MAAMK,4BAA4B,CAAC;;;;;;;;;;;;;;;;AAgBnC,CAAC;AAED,kFAAkF;AAClF,MAAMC,kCACJ;AAEF,8EAA8E;AAC9E,qBAAqB;AACrB,MAAMC,6CACJ;AAEF,eAAe,eAAeC,UAC5BC,IAAU;IAEV,MAAMC,YAAsB,EAAE;IAE9B,IAAI,CAACD,KAAKE,MAAM,CAACR,kBAAkB;QACjC,8EAA8E;QAC9E,OAAO;YAAEO;QAAU;IACrB;IAEA,MAAME,MAAMf,eAAeY;IAC3B,MAAMI,+BAA+BD,MACjC,6BACA;IACJ,MAAME,gCAAgCF,MAClC,oBACA;IAEJ,IAAI,CAACH,KAAKE,MAAM,CAACT,uBAAuB;QACtCO,KAAKM,KAAK,CAACb,sBAAsBG;IACnC;IACA,MAAMX,cAAce,MAAMN,iBAAiB;IAE3C,MAAMa,cAAwB,EAAE;IAChCxB,qBAAqBiB,MAAMR,cAAc,CAACgB;QACxCD,YAAYE,IAAI,CAACD;IACnB;IAEA,KAAK,MAAMA,YAAYD,YAAa;QAClC,IAAI,CAACC,SAASE,QAAQ,CAAC,UAAUF,SAASE,QAAQ,CAAC,cAAc;YAC/D;QACF;QACA,MAAMC,UAAU,MAAMzB,YACpBc,MACAQ,UACAX;QAEF,IAAIc,SAAS;YACX,MAAM3B,sBACJgB,MACAQ,UACA;gBAAC;aAA4B,EAC7BJ;YAEF;QACF;QACA,MAAMQ,WAAWZ,KAAKa,IAAI,CAACL,UAAU,YAAY;QACjD,IAAI,CAACI,SAASE,QAAQ,CAAC,+BAA+B;YACpDb,UAAUQ,IAAI,CACZ,GAAGD,SAAS,qMAAqM,CAAC;QAEtN;IACA,4CAA4C;IAC9C;IAEA,IAAIR,KAAKE,MAAM,CAACP,qBAAqB;QACnC,MAAMgB,UAAU,MAAMzB,YACpBc,MACAL,oBACAG;QAEF,IAAIa,SAAS;YACX,MAAMzB,YACJc,MACAL,oBACA;YAEF,MAAMT,YACJc,MACAL,oBACA;YAEF,MAAMX,sBACJgB,MACAL,oBACA;gBAAC;aAA4B,EAC7BU;QAEJ,OAAO;YACL,MAAMO,WAAWZ,KAAKa,IAAI,CAAClB,oBAAoB,YAAY;YAC3D,IAAI,CAACiB,SAASE,QAAQ,CAAC,wCAAwC;gBAC7Db,UAAUQ,IAAI,CACZ,GAAGd,mBAAmB,2LAA2L,CAAC;YAEtN;QACA,4CAA4C;QAC9C;IACF;IAEA,MAAMR,qBAAqBa;IAE3B,OAAO;QAAEC;IAAU;AACrB"}