@aws/nx-plugin 1.0.0-rc.2 → 1.0.0-rc.21

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 (633) hide show
  1. package/LICENSE-THIRD-PARTY +3552 -4179
  2. package/README.md +8 -8
  3. package/executors.json +9 -0
  4. package/generators.json +100 -1
  5. package/package.json +16 -12
  6. package/sdk/agentcore-gateway.d.ts +6 -0
  7. package/sdk/agentcore-gateway.js +11 -0
  8. package/sdk/agentcore-gateway.js.map +1 -0
  9. package/sdk/license.d.ts +8 -0
  10. package/sdk/license.js +14 -0
  11. package/sdk/license.js.map +1 -0
  12. package/sdk/py.d.ts +6 -6
  13. package/sdk/py.js +7 -7
  14. package/sdk/py.js.map +1 -1
  15. package/sdk/ts.d.ts +18 -14
  16. package/sdk/ts.js +38 -32
  17. package/sdk/ts.js.map +1 -1
  18. package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
  19. package/src/agentcore-gateway/attach-upstream.js +41 -0
  20. package/src/agentcore-gateway/attach-upstream.js.map +1 -0
  21. package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
  22. package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
  23. package/src/agentcore-gateway/files/project/serve-local.ts.template +134 -0
  24. package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
  25. package/src/agentcore-gateway/gateway-connection/generator.js +102 -0
  26. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
  27. package/src/agentcore-gateway/gateway-connection/schema.d.ts +12 -0
  28. package/src/agentcore-gateway/gateway-connection/schema.json +26 -0
  29. package/src/agentcore-gateway/generator.d.ts +25 -0
  30. package/src/agentcore-gateway/generator.js +129 -0
  31. package/src/agentcore-gateway/generator.js.map +1 -0
  32. package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
  33. package/src/agentcore-gateway/mcp-connection/generator.js +63 -0
  34. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
  35. package/src/agentcore-gateway/mcp-connection/schema.d.ts +12 -0
  36. package/src/agentcore-gateway/mcp-connection/schema.json +26 -0
  37. package/src/agentcore-gateway/schema.d.ts +16 -0
  38. package/src/agentcore-gateway/schema.json +65 -0
  39. package/src/connection/agent-runtime-config.d.ts +1 -1
  40. package/src/connection/agent-runtime-config.js.map +1 -1
  41. package/src/connection/agent-serve-local.d.ts +2 -2
  42. package/src/connection/agent-serve-local.js +1 -1
  43. package/src/connection/agent-serve-local.js.map +1 -1
  44. package/src/connection/generator.d.ts +5 -5
  45. package/src/connection/generator.js +93 -37
  46. package/src/connection/generator.js.map +1 -1
  47. package/src/connection/serve-local.d.ts +1 -1
  48. package/src/connection/serve-local.js +1 -1
  49. package/src/connection/serve-local.js.map +1 -1
  50. package/src/infra/app/__snapshots__/generator.spec.ts.snap +47 -58
  51. package/src/infra/app/generator.d.ts +3 -3
  52. package/src/infra/app/generator.js +19 -17
  53. package/src/infra/app/generator.js.map +1 -1
  54. package/src/license/__snapshots__/config.spec.ts.snap +23 -0
  55. package/src/license/config-types.d.ts +18 -1
  56. package/src/license/config-types.js +4 -0
  57. package/src/license/config-types.js.map +1 -1
  58. package/src/license/config.d.ts +65 -7
  59. package/src/license/config.js +315 -7
  60. package/src/license/config.js.map +1 -1
  61. package/src/license/dependency-check/check.d.ts +16 -0
  62. package/src/license/dependency-check/check.js +111 -0
  63. package/src/license/dependency-check/check.js.map +1 -0
  64. package/src/license/dependency-check/collectors/collector.d.ts +21 -0
  65. package/src/license/dependency-check/collectors/collector.js +76 -0
  66. package/src/license/dependency-check/collectors/collector.js.map +1 -0
  67. package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
  68. package/src/license/dependency-check/collectors/npm-collector.js +75 -0
  69. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
  70. package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
  71. package/src/license/dependency-check/collectors/python-collector.js +121 -0
  72. package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
  73. package/src/license/dependency-check/evaluator.d.ts +9 -0
  74. package/src/license/dependency-check/evaluator.js +122 -0
  75. package/src/license/dependency-check/evaluator.js.map +1 -0
  76. package/src/license/dependency-check/executor-schema.json +6 -0
  77. package/src/license/dependency-check/executor.d.ts +9 -0
  78. package/src/license/dependency-check/executor.js +43 -0
  79. package/src/license/dependency-check/executor.js.map +1 -0
  80. package/src/license/dependency-check/pre-approved.d.ts +6 -0
  81. package/src/license/dependency-check/pre-approved.js +1280 -0
  82. package/src/license/dependency-check/pre-approved.js.map +1 -0
  83. package/src/license/dependency-check/types.d.ts +45 -0
  84. package/src/license/dependency-check/types.js +7 -0
  85. package/src/license/dependency-check/types.js.map +1 -0
  86. package/src/license/generator.d.ts +3 -3
  87. package/src/license/generator.js +102 -14
  88. package/src/license/generator.js.map +1 -1
  89. package/src/license/index.d.ts +8 -0
  90. package/src/license/index.js +13 -0
  91. package/src/license/index.js.map +1 -0
  92. package/src/license/known-exceptions.d.ts +6 -0
  93. package/src/license/known-exceptions.js +26 -0
  94. package/src/license/known-exceptions.js.map +1 -0
  95. package/src/license/schema.d.ts +5 -0
  96. package/src/license/schema.json +6 -0
  97. package/src/license/sync/generator.d.ts +2 -2
  98. package/src/license/sync/generator.js +15 -15
  99. package/src/license/sync/generator.js.map +1 -1
  100. package/src/license/sync/project-file-sync.d.ts +3 -3
  101. package/src/license/sync/project-file-sync.js.map +1 -1
  102. package/src/mcp-server/generator-info.d.ts +5 -1
  103. package/src/mcp-server/generator-info.js +7 -7
  104. package/src/mcp-server/generator-info.js.map +1 -1
  105. package/src/mcp-server/guide-pipeline.d.ts +1 -1
  106. package/src/mcp-server/guide-pipeline.js +2 -2
  107. package/src/mcp-server/guide-pipeline.js.map +1 -1
  108. package/src/mcp-server/mdx-ast.js +4 -0
  109. package/src/mcp-server/mdx-ast.js.map +1 -1
  110. package/src/mcp-server/schema-registry.d.ts +9 -3
  111. package/src/mcp-server/schema-registry.js +22 -6
  112. package/src/mcp-server/schema-registry.js.map +1 -1
  113. package/src/mcp-server/server.js +3 -3
  114. package/src/mcp-server/server.js.map +1 -1
  115. package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
  116. package/src/mcp-server/tools/create-workspace-command.js +4 -4
  117. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  118. package/src/mcp-server/tools/general-guidance.d.ts +2 -2
  119. package/src/mcp-server/tools/general-guidance.js +2 -2
  120. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  121. package/src/mcp-server/tools/generator-guide.d.ts +2 -2
  122. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  123. package/src/mcp-server/tools/list-generators.d.ts +2 -2
  124. package/src/mcp-server/tools/list-generators.js +1 -1
  125. package/src/mcp-server/tools/list-generators.js.map +1 -1
  126. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
  127. package/src/open-api/ts-client/generator.d.ts +3 -3
  128. package/src/open-api/ts-client/generator.js +2 -2
  129. package/src/open-api/ts-client/generator.js.map +1 -1
  130. package/src/open-api/ts-hooks/generator.d.ts +3 -3
  131. package/src/open-api/ts-hooks/generator.js +2 -2
  132. package/src/open-api/ts-hooks/generator.js.map +1 -1
  133. package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
  134. package/src/open-api/ts-metadata/generator.d.ts +3 -3
  135. package/src/open-api/ts-metadata/generator.js +1 -1
  136. package/src/open-api/ts-metadata/generator.js.map +1 -1
  137. package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
  138. package/src/open-api/utils/codegen-data/languages.js +4 -4
  139. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  140. package/src/open-api/utils/codegen-data.d.ts +6 -2
  141. package/src/open-api/utils/codegen-data.js +6 -6
  142. package/src/open-api/utils/codegen-data.js.map +1 -1
  143. package/src/open-api/utils/normalise.d.ts +5 -1
  144. package/src/open-api/utils/normalise.js +5 -5
  145. package/src/open-api/utils/normalise.js.map +1 -1
  146. package/src/open-api/utils/parse.d.ts +2 -2
  147. package/src/open-api/utils/parse.js +4 -0
  148. package/src/open-api/utils/parse.js.map +1 -1
  149. package/src/open-api/utils/refs.d.ts +1 -1
  150. package/src/preset/__snapshots__/generator.spec.ts.snap +131 -13
  151. package/src/preset/generator.d.ts +4 -4
  152. package/src/preset/generator.js +21 -14
  153. package/src/preset/generator.js.map +1 -1
  154. package/src/preset/schema.d.ts +3 -1
  155. package/src/preset/schema.json +5 -0
  156. package/src/py/agent/__snapshots__/generator.spec.ts.snap +659 -21
  157. package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +201 -0
  158. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +30 -0
  159. package/src/py/agent/a2a-connection/generator.d.ts +3 -3
  160. package/src/py/agent/a2a-connection/generator.js +11 -10
  161. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  162. package/src/py/agent/files/common/agent.py.template +2 -0
  163. package/src/py/agent/files/http/init.py.template +7 -25
  164. package/src/py/agent/files/http/main.py.template +2 -3
  165. package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +197 -0
  166. package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
  167. package/src/py/agent/gateway-connection/generator.d.ts +10 -0
  168. package/src/py/agent/gateway-connection/generator.js +106 -0
  169. package/src/py/agent/gateway-connection/generator.js.map +1 -0
  170. package/src/py/agent/gateway-connection/schema.d.ts +12 -0
  171. package/src/py/agent/gateway-connection/schema.json +26 -0
  172. package/src/py/agent/generator.d.ts +3 -3
  173. package/src/py/agent/generator.js +47 -38
  174. package/src/py/agent/generator.js.map +1 -1
  175. package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +167 -81
  176. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +30 -0
  177. package/src/py/agent/mcp-connection/generator.d.ts +3 -3
  178. package/src/py/agent/mcp-connection/generator.js +11 -81
  179. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  180. package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -17
  181. package/src/py/agent/react-connection/generator.d.ts +3 -3
  182. package/src/py/agent/react-connection/generator.js +4 -4
  183. package/src/py/agent/react-connection/generator.js.map +1 -1
  184. package/src/py/agent/react-connection/serve-local.d.ts +2 -2
  185. package/src/py/agent/react-connection/serve-local.js.map +1 -1
  186. package/src/py/api/generator.d.ts +3 -3
  187. package/src/py/api/generator.js.map +1 -1
  188. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1486 -0
  189. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
  190. package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
  191. package/src/py/dynamodb/agent-connection/generator.js +39 -0
  192. package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
  193. package/src/py/dynamodb/agent-connection/schema.d.ts +14 -0
  194. package/src/py/dynamodb/agent-connection/schema.json +22 -0
  195. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +23 -0
  196. package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
  197. package/src/py/dynamodb/fast-api-connection/generator.js +37 -0
  198. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
  199. package/src/py/dynamodb/fast-api-connection/schema.d.ts +12 -0
  200. package/src/py/dynamodb/fast-api-connection/schema.json +18 -0
  201. package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
  202. package/src/py/dynamodb/files/__name__/client.py.template +39 -0
  203. package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
  204. package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
  205. package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
  206. package/src/py/dynamodb/files/config.json.template +24 -0
  207. package/src/py/dynamodb/generator.d.ts +10 -0
  208. package/src/py/dynamodb/generator.js +106 -0
  209. package/src/py/dynamodb/generator.js.map +1 -0
  210. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
  211. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  212. package/src/py/dynamodb/mcp-server-connection/generator.js +39 -0
  213. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
  214. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +14 -0
  215. package/src/py/dynamodb/mcp-server-connection/schema.json +22 -0
  216. package/src/py/dynamodb/schema.d.ts +15 -0
  217. package/src/py/dynamodb/schema.json +70 -0
  218. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +167 -39
  219. package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
  220. package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
  221. package/src/py/fast-api/generator.d.ts +3 -3
  222. package/src/py/fast-api/generator.js +23 -17
  223. package/src/py/fast-api/generator.js.map +1 -1
  224. package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +1 -1
  225. package/src/py/fast-api/react/generator.d.ts +3 -3
  226. package/src/py/fast-api/react/generator.js +2 -2
  227. package/src/py/fast-api/react/generator.js.map +1 -1
  228. package/src/py/fast-api/react/open-api.d.ts +1 -1
  229. package/src/py/fast-api/react/open-api.js +5 -2
  230. package/src/py/fast-api/react/open-api.js.map +1 -1
  231. package/src/py/lambda-function/generator.d.ts +3 -3
  232. package/src/py/lambda-function/generator.js +11 -11
  233. package/src/py/lambda-function/generator.js.map +1 -1
  234. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +83 -13
  235. package/src/py/mcp-server/generator.d.ts +3 -3
  236. package/src/py/mcp-server/generator.js +33 -26
  237. package/src/py/mcp-server/generator.js.map +1 -1
  238. package/src/py/project/generator.d.ts +3 -3
  239. package/src/py/project/generator.js +96 -70
  240. package/src/py/project/generator.js.map +1 -1
  241. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +19 -16
  242. package/src/smithy/project/files/build.Dockerfile.template +1 -0
  243. package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
  244. package/src/smithy/project/generator.d.ts +3 -3
  245. package/src/smithy/project/generator.js +30 -28
  246. package/src/smithy/project/generator.js.map +1 -1
  247. package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
  248. package/src/smithy/react-connection/generator.d.ts +3 -3
  249. package/src/smithy/react-connection/generator.js +3 -3
  250. package/src/smithy/react-connection/generator.js.map +1 -1
  251. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +14 -34
  252. package/src/smithy/ts/api/generator.d.ts +3 -3
  253. package/src/smithy/ts/api/generator.js +18 -12
  254. package/src/smithy/ts/api/generator.js.map +1 -1
  255. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  256. package/src/terraform/project/generator.d.ts +3 -3
  257. package/src/terraform/project/generator.js +13 -8
  258. package/src/terraform/project/generator.js.map +1 -1
  259. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +163 -18
  260. package/src/trpc/backend/files/src/procedures/echo.ts.template +1 -1
  261. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  262. package/src/trpc/backend/generator.d.ts +3 -3
  263. package/src/trpc/backend/generator.js +11 -10
  264. package/src/trpc/backend/generator.js.map +1 -1
  265. package/src/trpc/backend/schema.d.ts +2 -2
  266. package/src/trpc/react/__snapshots__/generator.spec.ts.snap +3 -3
  267. package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
  268. package/src/trpc/react/generator.d.ts +3 -3
  269. package/src/trpc/react/generator.js +5 -5
  270. package/src/trpc/react/generator.js.map +1 -1
  271. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +652 -14
  272. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +256 -0
  273. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  274. package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
  275. package/src/ts/agent/a2a-connection/generator.js +8 -8
  276. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  277. package/src/ts/agent/files/common/agent.ts.template +6 -2
  278. package/src/ts/agent/files/http/router.ts.template +1 -1
  279. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +220 -0
  280. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  281. package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
  282. package/src/ts/agent/gateway-connection/generator.js +106 -0
  283. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  284. package/src/ts/agent/gateway-connection/schema.d.ts +12 -0
  285. package/src/ts/agent/gateway-connection/schema.json +26 -0
  286. package/src/ts/agent/generator.d.ts +3 -3
  287. package/src/ts/agent/generator.js +44 -32
  288. package/src/ts/agent/generator.js.map +1 -1
  289. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +191 -110
  290. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
  291. package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
  292. package/src/ts/agent/mcp-connection/generator.js +9 -21
  293. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  294. package/src/ts/agent/react-connection/generator.d.ts +3 -3
  295. package/src/ts/agent/react-connection/generator.js +9 -9
  296. package/src/ts/agent/react-connection/generator.js.map +1 -1
  297. package/src/ts/agent/react-connection/serve-local.d.ts +2 -2
  298. package/src/ts/api/generator.d.ts +3 -3
  299. package/src/ts/api/generator.js +4 -4
  300. package/src/ts/api/generator.js.map +1 -1
  301. package/src/ts/api/schema.d.ts +2 -1
  302. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +7 -8
  303. package/src/ts/astro-docs/generator.d.ts +3 -3
  304. package/src/ts/astro-docs/generator.js +14 -11
  305. package/src/ts/astro-docs/generator.js.map +1 -1
  306. package/src/ts/docs/generator.d.ts +3 -3
  307. package/src/ts/docs/generator.js.map +1 -1
  308. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +1352 -0
  309. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
  310. package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
  311. package/src/ts/dynamodb/agent-connection/generator.js +32 -0
  312. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
  313. package/src/ts/dynamodb/agent-connection/schema.d.ts +14 -0
  314. package/src/ts/dynamodb/agent-connection/schema.json +22 -0
  315. package/src/ts/dynamodb/files/config.json.template +24 -0
  316. package/src/ts/dynamodb/files/src/client.ts.template +61 -0
  317. package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
  318. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
  319. package/src/ts/dynamodb/files/src/index.ts.template +2 -0
  320. package/src/ts/dynamodb/generator.d.ts +10 -0
  321. package/src/ts/dynamodb/generator.js +111 -0
  322. package/src/ts/dynamodb/generator.js.map +1 -0
  323. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
  324. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  325. package/src/ts/dynamodb/mcp-server-connection/generator.js +32 -0
  326. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
  327. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +14 -0
  328. package/src/ts/dynamodb/mcp-server-connection/schema.json +22 -0
  329. package/src/ts/dynamodb/schema.d.ts +15 -0
  330. package/src/ts/dynamodb/schema.json +70 -0
  331. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
  332. package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
  333. package/src/ts/dynamodb/smithy-connection/generator.js +30 -0
  334. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
  335. package/src/ts/dynamodb/smithy-connection/schema.d.ts +12 -0
  336. package/src/ts/dynamodb/smithy-connection/schema.json +18 -0
  337. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
  338. package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
  339. package/src/ts/dynamodb/trpc-connection/generator.js +30 -0
  340. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
  341. package/src/ts/dynamodb/trpc-connection/schema.d.ts +12 -0
  342. package/src/ts/dynamodb/trpc-connection/schema.json +18 -0
  343. package/src/ts/lambda-function/generator.d.ts +3 -3
  344. package/src/ts/lambda-function/generator.js +8 -8
  345. package/src/ts/lambda-function/generator.js.map +1 -1
  346. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +32 -65
  347. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
  348. package/src/ts/lib/biome.d.ts +7 -0
  349. package/src/ts/lib/biome.js +58 -0
  350. package/src/ts/lib/biome.js.map +1 -0
  351. package/src/ts/lib/generator.d.ts +3 -3
  352. package/src/ts/lib/generator.js +27 -29
  353. package/src/ts/lib/generator.js.map +1 -1
  354. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  355. package/src/ts/lib/ts-project-utils.d.ts +12 -2
  356. package/src/ts/lib/ts-project-utils.js +30 -10
  357. package/src/ts/lib/ts-project-utils.js.map +1 -1
  358. package/src/ts/lib/vitest.d.ts +2 -2
  359. package/src/ts/lib/vitest.js +1 -1
  360. package/src/ts/lib/vitest.js.map +1 -1
  361. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +82 -12
  362. package/src/ts/mcp-server/generator.d.ts +3 -3
  363. package/src/ts/mcp-server/generator.js +34 -12
  364. package/src/ts/mcp-server/generator.js.map +1 -1
  365. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +19 -14
  366. package/src/ts/nx-generator/generator.d.ts +2 -2
  367. package/src/ts/nx-generator/generator.js +52 -19
  368. package/src/ts/nx-generator/generator.js.map +1 -1
  369. package/src/ts/nx-plugin/generator.d.ts +3 -3
  370. package/src/ts/nx-plugin/generator.js +10 -9
  371. package/src/ts/nx-plugin/generator.js.map +1 -1
  372. package/src/ts/nx-plugin/utils.d.ts +1 -1
  373. package/src/ts/nx-plugin/utils.js +10 -4
  374. package/src/ts/nx-plugin/utils.js.map +1 -1
  375. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +252 -388
  376. package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
  377. package/src/ts/rdb/agent-connection/generator.js +4 -4
  378. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  379. package/src/ts/rdb/files/config.json.template +14 -0
  380. package/src/ts/rdb/files/prisma.config.ts.template +5 -4
  381. package/src/ts/rdb/files/src/index.ts.template +0 -1
  382. package/src/ts/rdb/files/src/prisma.ts.template +26 -21
  383. package/src/ts/rdb/generator.d.ts +3 -7
  384. package/src/ts/rdb/generator.js +52 -41
  385. package/src/ts/rdb/generator.js.map +1 -1
  386. package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
  387. package/src/ts/rdb/mcp-server-connection/generator.js +4 -4
  388. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  389. package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
  390. package/src/ts/rdb/smithy-connection/generator.js +4 -4
  391. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  392. package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
  393. package/src/ts/rdb/trpc-connection/generator.js +3 -3
  394. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  395. package/src/ts/rdb/utils.d.ts +1 -1
  396. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
  397. package/src/ts/react-website/agui/generator.d.ts +1 -1
  398. package/src/ts/react-website/agui/generator.js +4 -5
  399. package/src/ts/react-website/agui/generator.js.map +1 -1
  400. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +530 -367
  401. package/src/ts/react-website/app/generator.d.ts +3 -3
  402. package/src/ts/react-website/app/generator.js +21 -17
  403. package/src/ts/react-website/app/generator.js.map +1 -1
  404. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +1 -7
  405. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +9 -3
  406. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  407. package/src/ts/react-website/cognito-auth/generator.d.ts +3 -3
  408. package/src/ts/react-website/cognito-auth/generator.js +10 -13
  409. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  410. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
  411. package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
  412. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  413. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  414. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  415. package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
  416. package/src/ts/react-website/cognito-auth/utils.js +1 -1
  417. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  418. package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
  419. package/src/ts/react-website/runtime-config/generator.js +4 -4
  420. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  421. package/src/ts/sync/generator.d.ts +3 -3
  422. package/src/ts/sync/generator.js +2 -2
  423. package/src/ts/sync/generator.js.map +1 -1
  424. package/src/ts/website/app/generator.d.ts +3 -3
  425. package/src/ts/website/app/generator.js +1 -1
  426. package/src/ts/website/app/generator.js.map +1 -1
  427. package/src/ts/website/auth/generator.d.ts +3 -3
  428. package/src/ts/website/auth/generator.js +1 -1
  429. package/src/ts/website/auth/generator.js.map +1 -1
  430. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  431. package/src/utils/agent-chat/agent-chat.js +30 -0
  432. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  433. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  434. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  435. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  436. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  437. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  438. package/src/utils/agent-connection/agent-connection.d.ts +67 -24
  439. package/src/utils/agent-connection/agent-connection.js +236 -44
  440. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  441. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  442. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  443. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  444. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  445. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  446. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
  447. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  448. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  449. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +36 -0
  450. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  451. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  452. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  453. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  454. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  455. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  456. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  457. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
  458. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  459. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  460. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  461. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  462. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  463. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +11 -3
  464. package/src/utils/agent-core-constructs/agent-core-constructs.js +57 -12
  465. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  466. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +4 -0
  467. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +40 -0
  468. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +375 -0
  469. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  470. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +335 -0
  471. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  472. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +77 -9
  473. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  474. package/src/utils/api-constructs/api-constructs.d.ts +2 -2
  475. package/src/utils/api-constructs/api-constructs.js +1 -1
  476. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  477. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +3 -0
  478. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +9 -0
  479. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +23 -1
  480. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  481. package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +3 -0
  482. package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
  483. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  484. package/src/utils/ast/website.d.ts +5 -1
  485. package/src/utils/ast/website.js +3 -3
  486. package/src/utils/ast/website.js.map +1 -1
  487. package/src/utils/ast.d.ts +33 -1
  488. package/src/utils/ast.js +89 -4
  489. package/src/utils/ast.js.map +1 -1
  490. package/src/utils/bundle/bundle.d.ts +1 -1
  491. package/src/utils/bundle/bundle.js +2 -2
  492. package/src/utils/bundle/bundle.js.map +1 -1
  493. package/src/utils/config/index.d.ts +5 -5
  494. package/src/utils/config/utils.d.ts +13 -3
  495. package/src/utils/config/utils.js +37 -5
  496. package/src/utils/config/utils.js.map +1 -1
  497. package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
  498. package/src/utils/connection/open-api/react.d.ts +1 -1
  499. package/src/utils/connection/open-api/react.js +4 -4
  500. package/src/utils/connection/open-api/react.js.map +1 -1
  501. package/src/utils/containers.d.ts +1 -1
  502. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
  503. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +49 -0
  504. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
  505. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +43 -0
  506. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
  507. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +62 -0
  508. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
  509. package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +195 -0
  510. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  511. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +91 -0
  512. package/src/utils/files/common/scripts/src/rdb/pull-image.ts.template +16 -0
  513. package/src/utils/files/common/scripts/src/rdb/start-container.ts.template +102 -0
  514. package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +59 -0
  515. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +9 -3
  516. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +7 -2
  517. package/src/utils/format.d.ts +45 -2
  518. package/src/utils/format.js +167 -46
  519. package/src/utils/format.js.map +1 -1
  520. package/src/utils/fs.d.ts +1 -1
  521. package/src/utils/fs.js.map +1 -1
  522. package/src/utils/function-constructs/function-constructs.d.ts +2 -2
  523. package/src/utils/function-constructs/function-constructs.js +1 -1
  524. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  525. package/src/utils/generators.d.ts +4 -0
  526. package/src/utils/generators.js +4 -4
  527. package/src/utils/generators.js.map +1 -1
  528. package/src/utils/git.d.ts +1 -1
  529. package/src/utils/git.js.map +1 -1
  530. package/src/utils/iac.d.ts +1 -1
  531. package/src/utils/iac.js.map +1 -1
  532. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +1 -5
  533. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +9 -3
  534. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +2 -4
  535. package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
  536. package/src/utils/identity-constructs/identity-constructs.js +1 -1
  537. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  538. package/src/utils/js.d.ts +4 -0
  539. package/src/utils/js.js +4 -4
  540. package/src/utils/js.js.map +1 -1
  541. package/src/utils/mcp.d.ts +25 -0
  542. package/src/utils/mcp.js +81 -0
  543. package/src/utils/mcp.js.map +1 -0
  544. package/src/utils/metrics.d.ts +9 -3
  545. package/src/utils/metrics.js +58 -28
  546. package/src/utils/metrics.js.map +1 -1
  547. package/src/utils/npm-scope.d.ts +1 -1
  548. package/src/utils/npm-scope.js.map +1 -1
  549. package/src/utils/nx.d.ts +7 -2
  550. package/src/utils/nx.js +46 -14
  551. package/src/utils/nx.js.map +1 -1
  552. package/src/utils/nxlv-python.d.ts +1 -1
  553. package/src/utils/paths.d.ts +1 -1
  554. package/src/utils/pnpm-workspace.d.ts +1 -1
  555. package/src/utils/pnpm-workspace.js.map +1 -1
  556. package/src/utils/port.d.ts +31 -3
  557. package/src/utils/port.js +74 -4
  558. package/src/utils/port.js.map +1 -1
  559. package/src/utils/py.d.ts +2 -2
  560. package/src/utils/py.js +13 -6
  561. package/src/utils/py.js.map +1 -1
  562. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +12 -2
  563. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +30 -1
  564. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +38 -16
  565. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +28 -13
  566. package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -4
  567. package/src/utils/rdb-constructs/rdb-constructs.js +3 -11
  568. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  569. package/src/utils/shared-constructs-constants.d.ts +1 -0
  570. package/src/utils/shared-constructs-constants.js +2 -1
  571. package/src/utils/shared-constructs-constants.js.map +1 -1
  572. package/src/utils/shared-constructs.d.ts +2 -2
  573. package/src/utils/shared-constructs.js +7 -7
  574. package/src/utils/shared-constructs.js.map +1 -1
  575. package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
  576. package/src/utils/shared-dynamodb-scripts.js +23 -0
  577. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  578. package/src/utils/shared-infra-config.d.ts +1 -1
  579. package/src/utils/shared-infra-config.js +1 -1
  580. package/src/utils/shared-infra-config.js.map +1 -1
  581. package/src/utils/shared-infra-scripts.d.ts +11 -0
  582. package/src/utils/shared-infra-scripts.js +35 -0
  583. package/src/utils/shared-infra-scripts.js.map +1 -0
  584. package/src/utils/shared-rdb-scripts.d.ts +11 -0
  585. package/src/utils/shared-rdb-scripts.js +20 -0
  586. package/src/utils/shared-rdb-scripts.js.map +1 -0
  587. package/src/utils/shared-scripts.d.ts +2 -5
  588. package/src/utils/shared-scripts.js +2 -23
  589. package/src/utils/shared-scripts.js.map +1 -1
  590. package/src/utils/shared-shadcn.d.ts +1 -1
  591. package/src/utils/shared-shadcn.js +1 -13
  592. package/src/utils/shared-shadcn.js.map +1 -1
  593. package/src/utils/test.d.ts +5 -1
  594. package/src/utils/test.js +9 -5
  595. package/src/utils/test.js.map +1 -1
  596. package/src/utils/toml.d.ts +1 -1
  597. package/src/utils/toml.js +4 -0
  598. package/src/utils/toml.js.map +1 -1
  599. package/src/utils/versions.d.ts +82 -83
  600. package/src/utils/versions.js +81 -82
  601. package/src/utils/versions.js.map +1 -1
  602. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +72 -5
  603. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +63 -15
  604. package/src/utils/website-constructs/website-constructs.d.ts +2 -2
  605. package/src/utils/website-constructs/website-constructs.js +1 -1
  606. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  607. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  608. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  609. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  610. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  611. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  612. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  613. package/src/ts/lib/eslint.d.ts +0 -14
  614. package/src/ts/lib/eslint.js +0 -90
  615. package/src/ts/lib/eslint.js.map +0 -1
  616. package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
  617. package/src/ts/rdb/files/scripts/docker-pull.ts.template +0 -15
  618. package/src/ts/rdb/files/scripts/docker-start.ts.template +0 -84
  619. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  620. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  621. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  622. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  623. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  624. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  625. /package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +0 -0
  626. /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} +0 -0
  627. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  628. /package/src/utils/files/common/scripts/src/{infra-deploy.ts.template → infra/infra-deploy.ts.template} +0 -0
  629. /package/src/utils/files/common/scripts/src/{infra-destroy.ts.template → infra/infra-destroy.ts.template} +0 -0
  630. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +0 -0
  631. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  632. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +0 -0
  633. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pyDynamoDBMcpServerConnectionGenerator = exports.PY_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO = void 0;
4
+ /**
5
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ const devkit_1 = require("@nx/devkit");
9
+ const format_1 = require("../../../utils/format");
10
+ const metrics_1 = require("../../../utils/metrics");
11
+ const nx_1 = require("../../../utils/nx");
12
+ const nxlv_python_1 = require("../../../utils/nxlv-python");
13
+ const py_1 = require("../../../utils/py");
14
+ exports.PY_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
15
+ const pyDynamoDBMcpServerConnectionGenerator = async (tree, options) => {
16
+ const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
17
+ const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
18
+ (0, py_1.addWorkspaceDependencyToPyProject)(tree, sourceProject.root, targetProject.name);
19
+ const mcpServerName = options.sourceComponent?.name ?? 'mcp-server';
20
+ const serveLocalTarget = `${mcpServerName}-serve-local`;
21
+ if (sourceProject.targets?.[serveLocalTarget]) {
22
+ (0, nx_1.addDependencyToTargetIfNotPresent)(sourceProject, serveLocalTarget, {
23
+ projects: [targetProject.name],
24
+ target: 'serve-local',
25
+ });
26
+ (0, devkit_1.updateProjectConfiguration)(tree, sourceProject.name, sourceProject);
27
+ }
28
+ await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
29
+ exports.PY_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO,
30
+ ]);
31
+ await (0, format_1.formatFilesInSubtree)(tree);
32
+ return async () => {
33
+ (0, devkit_1.installPackagesTask)(tree);
34
+ await new nxlv_python_1.UVProvider(tree.root, new nxlv_python_1.Logger(), tree).install();
35
+ };
36
+ };
37
+ exports.pyDynamoDBMcpServerConnectionGenerator = pyDynamoDBMcpServerConnectionGenerator;
38
+ exports.default = exports.pyDynamoDBMcpServerConnectionGenerator;
39
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/py/dynamodb/mcp-server-connection/generator.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAKoB;AACpB,kDAA6D;AAC7D,oDAAyE;AACzE,0CAK2B;AAC3B,4DAAgE;AAChE,0CAAsE;AAGzD,QAAA,gDAAgD,GAC3D,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,sCAAsC,GAAG,KAAK,EACzD,IAAU,EACV,OAAqD,EACzB,EAAE;IAC9B,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,wCAAmC,EACvD,IAAI,EACJ,OAAO,CAAC,aAAa,CACtB,CAAC;IAEF,IAAA,sCAAiC,EAC/B,IAAI,EACJ,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,IAAK,CACpB,CAAC;IAEF,MAAM,aAAa,GAAG,OAAO,CAAC,eAAe,EAAE,IAAI,IAAI,YAAY,CAAC;IACpE,MAAM,gBAAgB,GAAG,GAAG,aAAa,cAAc,CAAC;IAExD,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,IAAA,sCAAiC,EAAC,aAAa,EAAE,gBAAgB,EAAE;YACjE,QAAQ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,IAAA,mCAA0B,EAAC,IAAI,EAAE,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE;QAC1C,wDAAgD;KACjD,CAAC,CAAC;IACH,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,KAAK,IAAI,EAAE;QAChB,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,wBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,oBAAM,EAAE,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC,CAAC;AACJ,CAAC,CAAC;AAtCW,QAAA,sCAAsC,0CAsCjD;AAEF,kBAAe,8CAAsC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { ComponentMetadata } from '../../../utils/nx';
6
+
7
+ /**
8
+ * TypeScript types for options defined in schema.json
9
+ */
10
+ export interface PyDynamoDBMcpServerConnectionGeneratorSchema {
11
+ sourceProject: string;
12
+ targetProject: string;
13
+ sourceComponent?: ComponentMetadata;
14
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "py#dynamodb#mcp-server-connection",
4
+ "title": "py#dynamodb#mcp-server-connection",
5
+ "description": "Connect a py#mcp-server to a py#dynamodb project",
6
+ "type": "object",
7
+ "properties": {
8
+ "sourceProject": {
9
+ "type": "string",
10
+ "description": "The project containing the py#mcp-server to connect from"
11
+ },
12
+ "targetProject": {
13
+ "type": "string",
14
+ "description": "The py#dynamodb project to connect to"
15
+ },
16
+ "sourceComponent": {
17
+ "type": "string",
18
+ "description": "The MCP server component name"
19
+ }
20
+ },
21
+ "required": ["sourceProject", "targetProject"]
22
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { IacOption } from '../../utils/iac';
6
+
7
+ export interface PyDynamoDBGeneratorSchema {
8
+ name: string;
9
+ directory?: string;
10
+ subDirectory?: string;
11
+ framework: 'pynamodb';
12
+ tableName?: string;
13
+ infra: 'dynamodb' | 'none';
14
+ iac: IacOption;
15
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "$schema": "https://json-schema.org/schema",
3
+ "$id": "py#dynamodb",
4
+ "title": "py#dynamodb",
5
+ "description": "Create a Python DynamoDB project",
6
+ "type": "object",
7
+ "properties": {
8
+ "name": {
9
+ "type": "string",
10
+ "description": "Name of the DynamoDB project to generate",
11
+ "$default": {
12
+ "$source": "argv",
13
+ "index": 0
14
+ },
15
+ "x-priority": "important",
16
+ "x-prompt": "What name would you like your DynamoDB project to have? i.e: MyTable"
17
+ },
18
+ "directory": {
19
+ "type": "string",
20
+ "description": "The directory to store the project in.",
21
+ "default": "packages",
22
+ "x-priority": "important",
23
+ "x-prompt": "Which directory do you want to create the project in?"
24
+ },
25
+ "subDirectory": {
26
+ "type": "string",
27
+ "description": "The sub directory the project is placed in. By default this is the project name.",
28
+ "x-prompt": "Which sub directory do you want to create the project in? (By default this is the project name)"
29
+ },
30
+ "framework": {
31
+ "type": "string",
32
+ "enum": ["pynamodb"],
33
+ "default": "pynamodb",
34
+ "description": "The framework to use for DynamoDB entities.",
35
+ "x-priority": "important",
36
+ "x-prompt": {
37
+ "message": "Which framework would you like to use for DynamoDB entities?",
38
+ "type": "list",
39
+ "items": [
40
+ {
41
+ "value": "pynamodb",
42
+ "label": "PynamoDB"
43
+ }
44
+ ],
45
+ "default": "pynamodb"
46
+ }
47
+ },
48
+ "tableName": {
49
+ "type": "string",
50
+ "description": "The DynamoDB table name. Auto-generated if not specified."
51
+ },
52
+ "infra": {
53
+ "type": "string",
54
+ "enum": ["dynamodb", "none"],
55
+ "default": "dynamodb",
56
+ "description": "Infrastructure to provision for the DynamoDB table.",
57
+ "x-priority": "important",
58
+ "x-prompt": "Which infrastructure would you like to provision?"
59
+ },
60
+ "iac": {
61
+ "type": "string",
62
+ "description": "The preferred IaC provider. By default this is inherited from your initial selection.",
63
+ "enum": ["inherit", "cdk", "terraform"],
64
+ "x-priority": "important",
65
+ "default": "inherit",
66
+ "x-prompt": "Which provider would you like to manage your infrastructure? (default: Inherit)"
67
+ }
68
+ },
69
+ "required": ["name"]
70
+ }
@@ -14,7 +14,6 @@ from urllib.parse import urlparse
14
14
  from aws_lambda_powertools import Logger, Metrics, Tracer
15
15
  from aws_lambda_powertools.metrics import MetricUnit
16
16
  from fastapi import FastAPI, Request, Response
17
- from fastapi.openapi.utils import get_openapi
18
17
  from fastapi.responses import JSONResponse, StreamingResponse
19
18
  from fastapi.routing import APIRoute
20
19
  from pydantic import BaseModel
@@ -81,7 +80,11 @@ class JsonStreamingResponse(StreamingResponse):
81
80
  }
82
81
 
83
82
 
84
- app = FastAPI(title="TestApi", responses={500: {"model": InternalServerErrorDetails}})
83
+ app = FastAPI(
84
+ title="TestApi",
85
+ responses={500: {"model": InternalServerErrorDetails}},
86
+ generate_unique_id_function=lambda route: route.name,
87
+ )
85
88
 
86
89
 
87
90
  # Add cors middleware
@@ -187,28 +190,11 @@ class LoggerRouteHandler(APIRoute):
187
190
 
188
191
 
189
192
  app.router.route_class = LoggerRouteHandler
190
-
191
-
192
- def custom_openapi() -> dict[str, Any]:
193
- if app.openapi_schema:
194
- return app.openapi_schema
195
- for route in app.routes:
196
- if isinstance(route, APIRoute):
197
- route.operation_id = route.name
198
- openapi_schema = get_openapi(
199
- title=app.title,
200
- version=app.version,
201
- openapi_version=app.openapi_version,
202
- description=app.description,
203
- routes=app.routes,
204
- )
205
- app.openapi_schema = openapi_schema
206
- return app.openapi_schema
207
-
208
-
209
- app.openapi = custom_openapi # ty: ignore[invalid-assignment]
210
193
  ",
211
- "apps/test_api/proj_test_api/main.py": "import uvicorn
194
+ "apps/test_api/proj_test_api/main.py": "from typing import Annotated
195
+
196
+ import uvicorn
197
+ from fastapi import Query
212
198
  from pydantic import BaseModel
213
199
 
214
200
  from .init import app, tracer
@@ -220,7 +206,7 @@ class EchoOutput(BaseModel):
220
206
 
221
207
  @app.get("/echo")
222
208
  @tracer.capture_method
223
- def echo(message: str) -> EchoOutput:
209
+ def echo(message: Annotated[str, Query(max_length=1024)]) -> EchoOutput:
224
210
  return EchoOutput(message=f"{message}")
225
211
 
226
212
 
@@ -270,6 +256,7 @@ import {
270
256
  HttpMethod,
271
257
  HttpStage,
272
258
  LogGroupLogDestination,
259
+ ThrottleSettings,
273
260
  } from 'aws-cdk-lib/aws-apigatewayv2';
274
261
  import { LogGroup } from 'aws-cdk-lib/aws-logs';
275
262
  import { suppressRules } from '../checkov.js';
@@ -296,6 +283,12 @@ export interface HttpApiProps<
296
283
  * Map of operation names to their API Gateway integrations
297
284
  */
298
285
  readonly integrations: TIntegrations;
286
+ /**
287
+ * Default throttling limits applied to the API's default stage.
288
+ *
289
+ * @default { rateLimit: 10000, burstLimit: 5000 }
290
+ */
291
+ readonly throttle?: ThrottleSettings;
299
292
  }
300
293
 
301
294
  /**
@@ -329,6 +322,7 @@ export class HttpApi<
329
322
  apiName,
330
323
  operations,
331
324
  integrations,
325
+ throttle = { rateLimit: 10000, burstLimit: 5000 },
332
326
  ...props
333
327
  }: HttpApiProps<TIntegrations, TOperation>,
334
328
  ) {
@@ -356,6 +350,7 @@ export class HttpApi<
356
350
  this.defaultStage = new HttpStage(this, 'DefaultStage', {
357
351
  httpApi: this.api,
358
352
  autoDeploy: true,
353
+ throttle,
359
354
  accessLogSettings: {
360
355
  destination: new LogGroupLogDestination(accessLogGroup),
361
356
  },
@@ -757,6 +752,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
757
752
  * @template TDefaultIntegrationProps - Type for default integration properties
758
753
  * @template TDefaultIntegration - Type for default integration implementation
759
754
  * @template TPattern - The integration pattern ('shared' or 'isolated')
755
+ * @template TOverridden - Union of operation names that have been overridden
756
+ * @template TOperationOptioned - Union of operation names with per-operation options
760
757
  */
761
758
  export class IntegrationBuilder<
762
759
  TOperation extends string,
@@ -765,6 +762,8 @@ export class IntegrationBuilder<
765
762
  TDefaultIntegrationProps extends object,
766
763
  TDefaultIntegration extends TBaseIntegration,
767
764
  TPattern extends 'shared' | 'isolated',
765
+ TOverridden extends string = never,
766
+ TOperationOptioned extends string = never,
768
767
  > {
769
768
  /** Options for the integration builder */
770
769
  private options: IntegrationBuilderProps<
@@ -777,6 +776,11 @@ export class IntegrationBuilder<
777
776
  /** Map of operation names to their custom integrations */
778
777
  private integrations: Partial<TIntegrations> = {};
779
778
 
779
+ /** Map of default integration keys to per-operation default option overrides */
780
+ private perOperationOptions: Partial<
781
+ Record<string, Partial<TDefaultIntegrationProps>>
782
+ > = {};
783
+
780
784
  /**
781
785
  * Create an Integration Builder for an HTTP API with a shared pattern
782
786
  */
@@ -931,11 +935,16 @@ export class IntegrationBuilder<
931
935
  /**
932
936
  * Overrides default integrations with custom implementations for specific operations.
933
937
  *
938
+ * Operations which have per-operation options set via withOperationOptions cannot be
939
+ * overridden, since these still use the default integration.
940
+ *
934
941
  * @param overrides - Map of operation names to their custom integration implementations
935
942
  * @returns The builder instance with updated type information reflecting the overrides
936
943
  */
937
944
  public withOverrides<
938
- TOverrideIntegrations extends Partial<Record<TOperation, TBaseIntegration>>,
945
+ TOverrideIntegrations extends Partial<
946
+ Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
947
+ >,
939
948
  >(overrides: TOverrideIntegrations) {
940
949
  this.integrations = { ...this.integrations, ...overrides };
941
950
  // Re-type to include the overridden integration types.
@@ -951,7 +960,9 @@ export class IntegrationBuilder<
951
960
  MergedIntegrations,
952
961
  TDefaultIntegrationProps,
953
962
  TDefaultIntegration,
954
- TPattern
963
+ TPattern,
964
+ TOverridden | Extract<keyof TOverrideIntegrations, string>,
965
+ TOperationOptioned
955
966
  >;
956
967
  }
957
968
 
@@ -970,6 +981,43 @@ export class IntegrationBuilder<
970
981
  return this;
971
982
  }
972
983
 
984
+ /**
985
+ * Updates the default integration options for specific operations, without
986
+ * affecting the others. The given options are merged with the defaults (and
987
+ * any options set via withDefaultOptions) when building each default integration.
988
+ *
989
+ * Operations which have been replaced via withOverrides cannot be targeted, since
990
+ * they no longer use the default integration.
991
+ *
992
+ * @param options - Map of operation names to partial default integration options
993
+ * @returns The builder instance
994
+ */
995
+ public withOperationOptions<
996
+ TOptions extends Partial<
997
+ Record<
998
+ Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
999
+ Partial<TDefaultIntegrationProps>
1000
+ >
1001
+ >,
1002
+ >(options: TOptions) {
1003
+ Object.entries(options).forEach(([op, opOptions]) => {
1004
+ this.perOperationOptions[op] = {
1005
+ ...this.perOperationOptions[op],
1006
+ ...(opOptions as Partial<TDefaultIntegrationProps>),
1007
+ };
1008
+ });
1009
+ return this as unknown as IntegrationBuilder<
1010
+ TOperation,
1011
+ TBaseIntegration,
1012
+ TIntegrations,
1013
+ TDefaultIntegrationProps,
1014
+ TDefaultIntegration,
1015
+ TPattern,
1016
+ TOverridden,
1017
+ TOperationOptioned | Extract<keyof TOptions, string>
1018
+ >;
1019
+ }
1020
+
973
1021
  /**
974
1022
  * Builds and returns the complete set of integrations.
975
1023
  *
@@ -984,6 +1032,10 @@ export class IntegrationBuilder<
984
1032
  */
985
1033
  public build(): TIntegrations {
986
1034
  const options = this.options;
1035
+ const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
1036
+ ...options.defaultIntegrationOptions,
1037
+ ...this.perOperationOptions[op],
1038
+ });
987
1039
  return {
988
1040
  ...Object.fromEntries(
989
1041
  options.pattern === 'shared'
@@ -992,7 +1044,7 @@ export class IntegrationBuilder<
992
1044
  '$router',
993
1045
  options.buildDefaultIntegration(
994
1046
  '$router',
995
- options.defaultIntegrationOptions,
1047
+ buildOptionsFor('$router'),
996
1048
  ),
997
1049
  ],
998
1050
  ]
@@ -1003,10 +1055,7 @@ export class IntegrationBuilder<
1003
1055
  )
1004
1056
  .map((op) => [
1005
1057
  op,
1006
- options.buildDefaultIntegration(
1007
- op,
1008
- options.defaultIntegrationOptions,
1009
- ),
1058
+ options.buildDefaultIntegration(op, buildOptionsFor(op)),
1010
1059
  ]),
1011
1060
  ),
1012
1061
  ...this.integrations,
@@ -1025,6 +1074,7 @@ import {
1025
1074
  RestApiProps as _RestApiProps,
1026
1075
  IResource,
1027
1076
  Stage,
1077
+ ThrottleSettings,
1028
1078
  } from 'aws-cdk-lib/aws-apigateway';
1029
1079
  import { IAspect, RemovalPolicy } from 'aws-cdk-lib';
1030
1080
  import {
@@ -1071,6 +1121,12 @@ export interface RestApiProps<
1071
1121
  * @default true
1072
1122
  */
1073
1123
  readonly enableWaf?: boolean;
1124
+ /**
1125
+ * Default throttling limits applied to all methods on the API's default stage.
1126
+ *
1127
+ * @default { rateLimit: 10000, burstLimit: 5000 }
1128
+ */
1129
+ readonly throttle?: ThrottleSettings;
1074
1130
  }
1075
1131
 
1076
1132
  /**
@@ -1105,6 +1161,7 @@ export class RestApi<
1105
1161
  operations,
1106
1162
  integrations,
1107
1163
  enableWaf = true,
1164
+ throttle = { rateLimit: 10000, burstLimit: 5000 },
1108
1165
  ...props
1109
1166
  }: RestApiProps<TIntegrations, TOperation>,
1110
1167
  ) {
@@ -1112,7 +1169,21 @@ export class RestApi<
1112
1169
  this.integrations = integrations;
1113
1170
 
1114
1171
  // Create the API Gateway REST API
1115
- this.api = new _RestApi(this, 'Api', props);
1172
+ this.api = new _RestApi(this, 'Api', {
1173
+ ...props,
1174
+ deployOptions: {
1175
+ ...props.deployOptions,
1176
+ methodOptions: {
1177
+ ...props.deployOptions?.methodOptions,
1178
+ // Default throttling applied to all resource paths and methods
1179
+ '/*/*': {
1180
+ throttlingRateLimit: throttle.rateLimit,
1181
+ throttlingBurstLimit: throttle.burstLimit,
1182
+ ...props.deployOptions?.methodOptions?.['/*/*'],
1183
+ },
1184
+ },
1185
+ },
1186
+ });
1116
1187
 
1117
1188
  if (enableWaf) {
1118
1189
  this.webAcl = new CfnWebACL(this, 'WebAcl', {
@@ -1656,6 +1727,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
1656
1727
  * @template TDefaultIntegrationProps - Type for default integration properties
1657
1728
  * @template TDefaultIntegration - Type for default integration implementation
1658
1729
  * @template TPattern - The integration pattern ('shared' or 'isolated')
1730
+ * @template TOverridden - Union of operation names that have been overridden
1731
+ * @template TOperationOptioned - Union of operation names with per-operation options
1659
1732
  */
1660
1733
  export class IntegrationBuilder<
1661
1734
  TOperation extends string,
@@ -1664,6 +1737,8 @@ export class IntegrationBuilder<
1664
1737
  TDefaultIntegrationProps extends object,
1665
1738
  TDefaultIntegration extends TBaseIntegration,
1666
1739
  TPattern extends 'shared' | 'isolated',
1740
+ TOverridden extends string = never,
1741
+ TOperationOptioned extends string = never,
1667
1742
  > {
1668
1743
  /** Options for the integration builder */
1669
1744
  private options: IntegrationBuilderProps<
@@ -1676,6 +1751,11 @@ export class IntegrationBuilder<
1676
1751
  /** Map of operation names to their custom integrations */
1677
1752
  private integrations: Partial<TIntegrations> = {};
1678
1753
 
1754
+ /** Map of default integration keys to per-operation default option overrides */
1755
+ private perOperationOptions: Partial<
1756
+ Record<string, Partial<TDefaultIntegrationProps>>
1757
+ > = {};
1758
+
1679
1759
  /**
1680
1760
  * Create an Integration Builder for an HTTP API with a shared pattern
1681
1761
  */
@@ -1830,11 +1910,16 @@ export class IntegrationBuilder<
1830
1910
  /**
1831
1911
  * Overrides default integrations with custom implementations for specific operations.
1832
1912
  *
1913
+ * Operations which have per-operation options set via withOperationOptions cannot be
1914
+ * overridden, since these still use the default integration.
1915
+ *
1833
1916
  * @param overrides - Map of operation names to their custom integration implementations
1834
1917
  * @returns The builder instance with updated type information reflecting the overrides
1835
1918
  */
1836
1919
  public withOverrides<
1837
- TOverrideIntegrations extends Partial<Record<TOperation, TBaseIntegration>>,
1920
+ TOverrideIntegrations extends Partial<
1921
+ Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
1922
+ >,
1838
1923
  >(overrides: TOverrideIntegrations) {
1839
1924
  this.integrations = { ...this.integrations, ...overrides };
1840
1925
  // Re-type to include the overridden integration types.
@@ -1850,7 +1935,9 @@ export class IntegrationBuilder<
1850
1935
  MergedIntegrations,
1851
1936
  TDefaultIntegrationProps,
1852
1937
  TDefaultIntegration,
1853
- TPattern
1938
+ TPattern,
1939
+ TOverridden | Extract<keyof TOverrideIntegrations, string>,
1940
+ TOperationOptioned
1854
1941
  >;
1855
1942
  }
1856
1943
 
@@ -1869,6 +1956,43 @@ export class IntegrationBuilder<
1869
1956
  return this;
1870
1957
  }
1871
1958
 
1959
+ /**
1960
+ * Updates the default integration options for specific operations, without
1961
+ * affecting the others. The given options are merged with the defaults (and
1962
+ * any options set via withDefaultOptions) when building each default integration.
1963
+ *
1964
+ * Operations which have been replaced via withOverrides cannot be targeted, since
1965
+ * they no longer use the default integration.
1966
+ *
1967
+ * @param options - Map of operation names to partial default integration options
1968
+ * @returns The builder instance
1969
+ */
1970
+ public withOperationOptions<
1971
+ TOptions extends Partial<
1972
+ Record<
1973
+ Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
1974
+ Partial<TDefaultIntegrationProps>
1975
+ >
1976
+ >,
1977
+ >(options: TOptions) {
1978
+ Object.entries(options).forEach(([op, opOptions]) => {
1979
+ this.perOperationOptions[op] = {
1980
+ ...this.perOperationOptions[op],
1981
+ ...(opOptions as Partial<TDefaultIntegrationProps>),
1982
+ };
1983
+ });
1984
+ return this as unknown as IntegrationBuilder<
1985
+ TOperation,
1986
+ TBaseIntegration,
1987
+ TIntegrations,
1988
+ TDefaultIntegrationProps,
1989
+ TDefaultIntegration,
1990
+ TPattern,
1991
+ TOverridden,
1992
+ TOperationOptioned | Extract<keyof TOptions, string>
1993
+ >;
1994
+ }
1995
+
1872
1996
  /**
1873
1997
  * Builds and returns the complete set of integrations.
1874
1998
  *
@@ -1883,6 +2007,10 @@ export class IntegrationBuilder<
1883
2007
  */
1884
2008
  public build(): TIntegrations {
1885
2009
  const options = this.options;
2010
+ const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
2011
+ ...options.defaultIntegrationOptions,
2012
+ ...this.perOperationOptions[op],
2013
+ });
1886
2014
  return {
1887
2015
  ...Object.fromEntries(
1888
2016
  options.pattern === 'shared'
@@ -1891,7 +2019,7 @@ export class IntegrationBuilder<
1891
2019
  '$router',
1892
2020
  options.buildDefaultIntegration(
1893
2021
  '$router',
1894
- options.defaultIntegrationOptions,
2022
+ buildOptionsFor('$router'),
1895
2023
  ),
1896
2024
  ],
1897
2025
  ]
@@ -1902,10 +2030,7 @@ export class IntegrationBuilder<
1902
2030
  )
1903
2031
  .map((op) => [
1904
2032
  op,
1905
- options.buildDefaultIntegration(
1906
- op,
1907
- options.defaultIntegrationOptions,
1908
- ),
2033
+ options.buildDefaultIntegration(op, buildOptionsFor(op)),
1909
2034
  ]),
1910
2035
  ),
1911
2036
  ...this.integrations,
@@ -4522,6 +4647,9 @@ resource "aws_api_gateway_method" "proxy_method" {
4522
4647
 
4523
4648
  authorization = "COGNITO_USER_POOLS"
4524
4649
  authorizer_id = aws_api_gateway_authorizer.cognito_authorizer.id
4650
+ # Accept access tokens from both sign-in flows: 'openid' (Cognito hosted UI)
4651
+ # and 'aws.cognito.signin.user.admin' (Cognito admin/SRP auth APIs).
4652
+ authorization_scopes = ["openid", "aws.cognito.signin.user.admin"]
4525
4653
 
4526
4654
  request_parameters = {
4527
4655
  "method.request.path.proxy" = true
@@ -8,7 +8,6 @@ from urllib.parse import urlparse
8
8
  from aws_lambda_powertools import Logger, Metrics, Tracer
9
9
  from aws_lambda_powertools.metrics import MetricUnit
10
10
  from fastapi import FastAPI, Request, Response
11
- from fastapi.openapi.utils import get_openapi
12
11
  from fastapi.responses import JSONResponse, StreamingResponse
13
12
  from fastapi.routing import APIRoute
14
13
  from pydantic import BaseModel
@@ -73,7 +72,11 @@ class JsonStreamingResponse(StreamingResponse):
73
72
  }
74
73
 
75
74
 
76
- app = FastAPI(title="<%= apiNameClassName %>", responses={500: {"model": InternalServerErrorDetails}})
75
+ app = FastAPI(
76
+ title="<%= apiNameClassName %>",
77
+ responses={500: {"model": InternalServerErrorDetails}},
78
+ generate_unique_id_function=lambda route: route.name,
79
+ )
77
80
 
78
81
 
79
82
  # Add cors middleware
@@ -174,23 +177,3 @@ class LoggerRouteHandler(APIRoute):
174
177
 
175
178
 
176
179
  app.router.route_class = LoggerRouteHandler
177
-
178
-
179
- def custom_openapi() -> dict[str, Any]:
180
- if app.openapi_schema:
181
- return app.openapi_schema
182
- for route in app.routes:
183
- if isinstance(route, APIRoute):
184
- route.operation_id = route.name
185
- openapi_schema = get_openapi(
186
- title=app.title,
187
- version=app.version,
188
- openapi_version=app.openapi_version,
189
- description=app.description,
190
- routes=app.routes,
191
- )
192
- app.openapi_schema = openapi_schema
193
- return app.openapi_schema
194
-
195
-
196
- app.openapi = custom_openapi # ty: ignore[invalid-assignment]
@@ -1,4 +1,7 @@
1
+ from typing import Annotated
2
+
1
3
  import uvicorn
4
+ from fastapi import Query
2
5
  from pydantic import BaseModel
3
6
 
4
7
  from .init import app, tracer
@@ -10,7 +13,7 @@ class EchoOutput(BaseModel):
10
13
 
11
14
  @app.get("/echo")
12
15
  @tracer.capture_method
13
- def echo(message: str) -> EchoOutput:
16
+ def echo(message: Annotated[str, Query(max_length=1024)]) -> EchoOutput:
14
17
  return EchoOutput(message=f"{message}")
15
18
 
16
19
 
@@ -2,9 +2,9 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { GeneratorCallback, Tree } from '@nx/devkit';
6
- import { PyFastApiProjectGeneratorSchema } from './schema';
7
- import { NxGeneratorInfo } from '../../utils/nx';
5
+ import { type GeneratorCallback, type Tree } from '@nx/devkit';
6
+ import { type NxGeneratorInfo } from '../../utils/nx';
7
+ import type { PyFastApiProjectGeneratorSchema } from './schema';
8
8
  export declare const FAST_API_GENERATOR_INFO: NxGeneratorInfo;
9
9
  /**
10
10
  * Generates a Python FastAPI project