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

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 (626) 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 +7 -16
  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 +164 -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/generator.d.ts +3 -3
  225. package/src/py/fast-api/react/generator.js +2 -2
  226. package/src/py/fast-api/react/generator.js.map +1 -1
  227. package/src/py/fast-api/react/open-api.d.ts +1 -1
  228. package/src/py/fast-api/react/open-api.js +5 -2
  229. package/src/py/fast-api/react/open-api.js.map +1 -1
  230. package/src/py/lambda-function/generator.d.ts +3 -3
  231. package/src/py/lambda-function/generator.js +11 -11
  232. package/src/py/lambda-function/generator.js.map +1 -1
  233. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +83 -13
  234. package/src/py/mcp-server/generator.d.ts +3 -3
  235. package/src/py/mcp-server/generator.js +33 -26
  236. package/src/py/mcp-server/generator.js.map +1 -1
  237. package/src/py/project/generator.d.ts +3 -3
  238. package/src/py/project/generator.js +96 -70
  239. package/src/py/project/generator.js.map +1 -1
  240. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +19 -16
  241. package/src/smithy/project/files/build.Dockerfile.template +1 -0
  242. package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
  243. package/src/smithy/project/generator.d.ts +3 -3
  244. package/src/smithy/project/generator.js +30 -28
  245. package/src/smithy/project/generator.js.map +1 -1
  246. package/src/smithy/react-connection/generator.d.ts +3 -3
  247. package/src/smithy/react-connection/generator.js +3 -3
  248. package/src/smithy/react-connection/generator.js.map +1 -1
  249. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -34
  250. package/src/smithy/ts/api/generator.d.ts +3 -3
  251. package/src/smithy/ts/api/generator.js +18 -12
  252. package/src/smithy/ts/api/generator.js.map +1 -1
  253. package/src/terraform/project/files/application/src/main.tf.template +6 -1
  254. package/src/terraform/project/generator.d.ts +3 -3
  255. package/src/terraform/project/generator.js +13 -8
  256. package/src/terraform/project/generator.js.map +1 -1
  257. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +157 -18
  258. package/src/trpc/backend/files/src/procedures/echo.ts.template +1 -1
  259. package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
  260. package/src/trpc/backend/generator.d.ts +3 -3
  261. package/src/trpc/backend/generator.js +11 -10
  262. package/src/trpc/backend/generator.js.map +1 -1
  263. package/src/trpc/backend/schema.d.ts +2 -2
  264. package/src/trpc/react/generator.d.ts +3 -3
  265. package/src/trpc/react/generator.js +5 -5
  266. package/src/trpc/react/generator.js.map +1 -1
  267. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +652 -14
  268. package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +256 -0
  269. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
  270. package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
  271. package/src/ts/agent/a2a-connection/generator.js +8 -8
  272. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  273. package/src/ts/agent/files/common/agent.ts.template +6 -2
  274. package/src/ts/agent/files/http/router.ts.template +1 -1
  275. package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +220 -0
  276. package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
  277. package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
  278. package/src/ts/agent/gateway-connection/generator.js +106 -0
  279. package/src/ts/agent/gateway-connection/generator.js.map +1 -0
  280. package/src/ts/agent/gateway-connection/schema.d.ts +12 -0
  281. package/src/ts/agent/gateway-connection/schema.json +26 -0
  282. package/src/ts/agent/generator.d.ts +3 -3
  283. package/src/ts/agent/generator.js +44 -32
  284. package/src/ts/agent/generator.js.map +1 -1
  285. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +191 -110
  286. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
  287. package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
  288. package/src/ts/agent/mcp-connection/generator.js +9 -21
  289. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  290. package/src/ts/agent/react-connection/generator.d.ts +3 -3
  291. package/src/ts/agent/react-connection/generator.js +9 -9
  292. package/src/ts/agent/react-connection/generator.js.map +1 -1
  293. package/src/ts/agent/react-connection/serve-local.d.ts +2 -2
  294. package/src/ts/api/generator.d.ts +3 -3
  295. package/src/ts/api/generator.js +4 -4
  296. package/src/ts/api/generator.js.map +1 -1
  297. package/src/ts/api/schema.d.ts +2 -1
  298. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +7 -8
  299. package/src/ts/astro-docs/generator.d.ts +3 -3
  300. package/src/ts/astro-docs/generator.js +14 -11
  301. package/src/ts/astro-docs/generator.js.map +1 -1
  302. package/src/ts/docs/generator.d.ts +3 -3
  303. package/src/ts/docs/generator.js.map +1 -1
  304. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +1352 -0
  305. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
  306. package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
  307. package/src/ts/dynamodb/agent-connection/generator.js +32 -0
  308. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
  309. package/src/ts/dynamodb/agent-connection/schema.d.ts +14 -0
  310. package/src/ts/dynamodb/agent-connection/schema.json +22 -0
  311. package/src/ts/dynamodb/files/config.json.template +24 -0
  312. package/src/ts/dynamodb/files/src/client.ts.template +61 -0
  313. package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
  314. package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
  315. package/src/ts/dynamodb/files/src/index.ts.template +2 -0
  316. package/src/ts/dynamodb/generator.d.ts +10 -0
  317. package/src/ts/dynamodb/generator.js +111 -0
  318. package/src/ts/dynamodb/generator.js.map +1 -0
  319. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
  320. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
  321. package/src/ts/dynamodb/mcp-server-connection/generator.js +32 -0
  322. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
  323. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +14 -0
  324. package/src/ts/dynamodb/mcp-server-connection/schema.json +22 -0
  325. package/src/ts/dynamodb/schema.d.ts +15 -0
  326. package/src/ts/dynamodb/schema.json +70 -0
  327. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
  328. package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
  329. package/src/ts/dynamodb/smithy-connection/generator.js +30 -0
  330. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
  331. package/src/ts/dynamodb/smithy-connection/schema.d.ts +12 -0
  332. package/src/ts/dynamodb/smithy-connection/schema.json +18 -0
  333. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
  334. package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
  335. package/src/ts/dynamodb/trpc-connection/generator.js +30 -0
  336. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
  337. package/src/ts/dynamodb/trpc-connection/schema.d.ts +12 -0
  338. package/src/ts/dynamodb/trpc-connection/schema.json +18 -0
  339. package/src/ts/lambda-function/generator.d.ts +3 -3
  340. package/src/ts/lambda-function/generator.js +8 -8
  341. package/src/ts/lambda-function/generator.js.map +1 -1
  342. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +32 -65
  343. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
  344. package/src/ts/lib/biome.d.ts +7 -0
  345. package/src/ts/lib/biome.js +58 -0
  346. package/src/ts/lib/biome.js.map +1 -0
  347. package/src/ts/lib/generator.d.ts +3 -3
  348. package/src/ts/lib/generator.js +27 -29
  349. package/src/ts/lib/generator.js.map +1 -1
  350. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
  351. package/src/ts/lib/ts-project-utils.d.ts +12 -2
  352. package/src/ts/lib/ts-project-utils.js +30 -10
  353. package/src/ts/lib/ts-project-utils.js.map +1 -1
  354. package/src/ts/lib/vitest.d.ts +2 -2
  355. package/src/ts/lib/vitest.js +1 -1
  356. package/src/ts/lib/vitest.js.map +1 -1
  357. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +82 -12
  358. package/src/ts/mcp-server/generator.d.ts +3 -3
  359. package/src/ts/mcp-server/generator.js +34 -12
  360. package/src/ts/mcp-server/generator.js.map +1 -1
  361. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +19 -14
  362. package/src/ts/nx-generator/generator.d.ts +2 -2
  363. package/src/ts/nx-generator/generator.js +52 -19
  364. package/src/ts/nx-generator/generator.js.map +1 -1
  365. package/src/ts/nx-plugin/generator.d.ts +3 -3
  366. package/src/ts/nx-plugin/generator.js +10 -9
  367. package/src/ts/nx-plugin/generator.js.map +1 -1
  368. package/src/ts/nx-plugin/utils.d.ts +1 -1
  369. package/src/ts/nx-plugin/utils.js +10 -4
  370. package/src/ts/nx-plugin/utils.js.map +1 -1
  371. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +252 -388
  372. package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
  373. package/src/ts/rdb/agent-connection/generator.js +4 -4
  374. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  375. package/src/ts/rdb/files/config.json.template +14 -0
  376. package/src/ts/rdb/files/prisma.config.ts.template +5 -4
  377. package/src/ts/rdb/files/src/index.ts.template +0 -1
  378. package/src/ts/rdb/files/src/prisma.ts.template +26 -21
  379. package/src/ts/rdb/generator.d.ts +3 -7
  380. package/src/ts/rdb/generator.js +52 -41
  381. package/src/ts/rdb/generator.js.map +1 -1
  382. package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
  383. package/src/ts/rdb/mcp-server-connection/generator.js +4 -4
  384. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  385. package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
  386. package/src/ts/rdb/smithy-connection/generator.js +4 -4
  387. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  388. package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
  389. package/src/ts/rdb/trpc-connection/generator.js +3 -3
  390. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  391. package/src/ts/rdb/utils.d.ts +1 -1
  392. package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
  393. package/src/ts/react-website/agui/generator.d.ts +1 -1
  394. package/src/ts/react-website/agui/generator.js +4 -5
  395. package/src/ts/react-website/agui/generator.js.map +1 -1
  396. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +530 -367
  397. package/src/ts/react-website/app/generator.d.ts +3 -3
  398. package/src/ts/react-website/app/generator.js +21 -17
  399. package/src/ts/react-website/app/generator.js.map +1 -1
  400. package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +1 -7
  401. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +9 -3
  402. package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
  403. package/src/ts/react-website/cognito-auth/generator.d.ts +3 -3
  404. package/src/ts/react-website/cognito-auth/generator.js +10 -13
  405. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  406. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
  407. package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
  408. package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
  409. package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
  410. package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
  411. package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
  412. package/src/ts/react-website/cognito-auth/utils.js +1 -1
  413. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  414. package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
  415. package/src/ts/react-website/runtime-config/generator.js +4 -4
  416. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  417. package/src/ts/sync/generator.d.ts +3 -3
  418. package/src/ts/sync/generator.js +2 -2
  419. package/src/ts/sync/generator.js.map +1 -1
  420. package/src/ts/website/app/generator.d.ts +3 -3
  421. package/src/ts/website/app/generator.js +1 -1
  422. package/src/ts/website/app/generator.js.map +1 -1
  423. package/src/ts/website/auth/generator.d.ts +3 -3
  424. package/src/ts/website/auth/generator.js +1 -1
  425. package/src/ts/website/auth/generator.js.map +1 -1
  426. package/src/utils/agent-chat/agent-chat.d.ts +31 -0
  427. package/src/utils/agent-chat/agent-chat.js +30 -0
  428. package/src/utils/agent-chat/agent-chat.js.map +1 -0
  429. package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
  430. package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
  431. package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
  432. package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
  433. package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
  434. package/src/utils/agent-connection/agent-connection.d.ts +67 -24
  435. package/src/utils/agent-connection/agent-connection.js +236 -44
  436. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  437. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
  438. package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
  439. package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
  440. package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
  441. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
  442. package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
  443. package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
  444. package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
  445. package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +36 -0
  446. package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
  447. package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
  448. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
  449. package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
  450. package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
  451. package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
  452. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
  453. package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
  454. package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
  455. package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
  456. package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
  457. package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
  458. package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
  459. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +11 -3
  460. package/src/utils/agent-core-constructs/agent-core-constructs.js +57 -12
  461. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  462. package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +4 -0
  463. package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +40 -0
  464. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +375 -0
  465. package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
  466. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +335 -0
  467. package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
  468. package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +77 -9
  469. package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
  470. package/src/utils/api-constructs/api-constructs.d.ts +2 -2
  471. package/src/utils/api-constructs/api-constructs.js +1 -1
  472. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  473. package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +9 -0
  474. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +23 -1
  475. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
  476. package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
  477. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  478. package/src/utils/ast/website.d.ts +5 -1
  479. package/src/utils/ast/website.js +3 -3
  480. package/src/utils/ast/website.js.map +1 -1
  481. package/src/utils/ast.d.ts +33 -1
  482. package/src/utils/ast.js +89 -4
  483. package/src/utils/ast.js.map +1 -1
  484. package/src/utils/bundle/bundle.d.ts +1 -1
  485. package/src/utils/bundle/bundle.js +2 -2
  486. package/src/utils/bundle/bundle.js.map +1 -1
  487. package/src/utils/config/index.d.ts +5 -5
  488. package/src/utils/config/utils.d.ts +13 -3
  489. package/src/utils/config/utils.js +37 -5
  490. package/src/utils/config/utils.js.map +1 -1
  491. package/src/utils/connection/open-api/react.d.ts +1 -1
  492. package/src/utils/connection/open-api/react.js +4 -4
  493. package/src/utils/connection/open-api/react.js.map +1 -1
  494. package/src/utils/containers.d.ts +1 -1
  495. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
  496. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +49 -0
  497. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
  498. package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +43 -0
  499. package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
  500. package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +62 -0
  501. package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
  502. package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +195 -0
  503. package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
  504. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +91 -0
  505. package/src/utils/files/common/scripts/src/rdb/pull-image.ts.template +16 -0
  506. package/src/utils/files/common/scripts/src/rdb/start-container.ts.template +102 -0
  507. package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +59 -0
  508. package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +9 -3
  509. package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +7 -2
  510. package/src/utils/format.d.ts +45 -2
  511. package/src/utils/format.js +167 -46
  512. package/src/utils/format.js.map +1 -1
  513. package/src/utils/fs.d.ts +1 -1
  514. package/src/utils/fs.js.map +1 -1
  515. package/src/utils/function-constructs/function-constructs.d.ts +2 -2
  516. package/src/utils/function-constructs/function-constructs.js +1 -1
  517. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  518. package/src/utils/generators.d.ts +4 -0
  519. package/src/utils/generators.js +4 -4
  520. package/src/utils/generators.js.map +1 -1
  521. package/src/utils/git.d.ts +1 -1
  522. package/src/utils/git.js.map +1 -1
  523. package/src/utils/iac.d.ts +1 -1
  524. package/src/utils/iac.js.map +1 -1
  525. package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +1 -5
  526. package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +9 -3
  527. package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +2 -4
  528. package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
  529. package/src/utils/identity-constructs/identity-constructs.js +1 -1
  530. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  531. package/src/utils/js.d.ts +4 -0
  532. package/src/utils/js.js +4 -4
  533. package/src/utils/js.js.map +1 -1
  534. package/src/utils/mcp.d.ts +25 -0
  535. package/src/utils/mcp.js +81 -0
  536. package/src/utils/mcp.js.map +1 -0
  537. package/src/utils/metrics.d.ts +9 -3
  538. package/src/utils/metrics.js +58 -28
  539. package/src/utils/metrics.js.map +1 -1
  540. package/src/utils/npm-scope.d.ts +1 -1
  541. package/src/utils/npm-scope.js.map +1 -1
  542. package/src/utils/nx.d.ts +7 -2
  543. package/src/utils/nx.js +46 -14
  544. package/src/utils/nx.js.map +1 -1
  545. package/src/utils/nxlv-python.d.ts +1 -1
  546. package/src/utils/paths.d.ts +1 -1
  547. package/src/utils/pnpm-workspace.d.ts +1 -1
  548. package/src/utils/pnpm-workspace.js.map +1 -1
  549. package/src/utils/port.d.ts +31 -3
  550. package/src/utils/port.js +74 -4
  551. package/src/utils/port.js.map +1 -1
  552. package/src/utils/py.d.ts +2 -2
  553. package/src/utils/py.js +13 -6
  554. package/src/utils/py.js.map +1 -1
  555. package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +12 -2
  556. package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +30 -1
  557. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +38 -16
  558. package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +28 -13
  559. package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -4
  560. package/src/utils/rdb-constructs/rdb-constructs.js +3 -11
  561. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  562. package/src/utils/shared-constructs-constants.d.ts +1 -0
  563. package/src/utils/shared-constructs-constants.js +2 -1
  564. package/src/utils/shared-constructs-constants.js.map +1 -1
  565. package/src/utils/shared-constructs.d.ts +2 -2
  566. package/src/utils/shared-constructs.js +7 -7
  567. package/src/utils/shared-constructs.js.map +1 -1
  568. package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
  569. package/src/utils/shared-dynamodb-scripts.js +23 -0
  570. package/src/utils/shared-dynamodb-scripts.js.map +1 -0
  571. package/src/utils/shared-infra-config.d.ts +1 -1
  572. package/src/utils/shared-infra-config.js +1 -1
  573. package/src/utils/shared-infra-config.js.map +1 -1
  574. package/src/utils/shared-infra-scripts.d.ts +11 -0
  575. package/src/utils/shared-infra-scripts.js +35 -0
  576. package/src/utils/shared-infra-scripts.js.map +1 -0
  577. package/src/utils/shared-rdb-scripts.d.ts +11 -0
  578. package/src/utils/shared-rdb-scripts.js +20 -0
  579. package/src/utils/shared-rdb-scripts.js.map +1 -0
  580. package/src/utils/shared-scripts.d.ts +2 -5
  581. package/src/utils/shared-scripts.js +2 -23
  582. package/src/utils/shared-scripts.js.map +1 -1
  583. package/src/utils/shared-shadcn.d.ts +1 -1
  584. package/src/utils/shared-shadcn.js +1 -13
  585. package/src/utils/shared-shadcn.js.map +1 -1
  586. package/src/utils/test.d.ts +5 -1
  587. package/src/utils/test.js +9 -5
  588. package/src/utils/test.js.map +1 -1
  589. package/src/utils/toml.d.ts +1 -1
  590. package/src/utils/toml.js +4 -0
  591. package/src/utils/toml.js.map +1 -1
  592. package/src/utils/versions.d.ts +82 -83
  593. package/src/utils/versions.js +81 -82
  594. package/src/utils/versions.js.map +1 -1
  595. package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +72 -5
  596. package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +63 -15
  597. package/src/utils/website-constructs/website-constructs.d.ts +2 -2
  598. package/src/utils/website-constructs/website-constructs.js +1 -1
  599. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  600. package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
  601. package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
  602. package/src/py/agent/scripts/http/chat.ts.template +0 -38
  603. package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
  604. package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
  605. package/src/ts/agent/scripts/http/chat.ts.template +0 -35
  606. package/src/ts/lib/eslint.d.ts +0 -14
  607. package/src/ts/lib/eslint.js +0 -90
  608. package/src/ts/lib/eslint.js.map +0 -1
  609. package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
  610. package/src/ts/rdb/files/scripts/docker-pull.ts.template +0 -15
  611. package/src/ts/rdb/files/scripts/docker-start.ts.template +0 -84
  612. package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
  613. package/src/ts/rdb/files/src/constants.ts.template +0 -8
  614. package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
  615. package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
  616. package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
  617. package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
  618. /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
  619. /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
  620. /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
  621. /package/src/utils/files/common/scripts/src/{infra-deploy.ts.template → infra/infra-deploy.ts.template} +0 -0
  622. /package/src/utils/files/common/scripts/src/{infra-destroy.ts.template → infra/infra-destroy.ts.template} +0 -0
  623. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +0 -0
  624. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
  625. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +0 -0
  626. /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
@@ -7,22 +7,21 @@ const tslib_1 = require("tslib");
7
7
  * SPDX-License-Identifier: Apache-2.0
8
8
  */
9
9
  const devkit_1 = require("@nx/devkit");
10
- const nx_1 = require("../../../utils/nx");
11
- const metrics_1 = require("../../../utils/metrics");
10
+ const generator_1 = tslib_1.__importStar(require("../../../ts/lib/generator"));
11
+ const api_constructs_1 = require("../../../utils/api-constructs/api-constructs");
12
+ const open_api_metadata_1 = require("../../../utils/api-constructs/open-api-metadata");
13
+ const bundle_1 = require("../../../utils/bundle/bundle");
12
14
  const format_1 = require("../../../utils/format");
15
+ const fs_1 = require("../../../utils/fs");
16
+ const git_1 = require("../../../utils/git");
13
17
  const iac_1 = require("../../../utils/iac");
14
- const shared_constructs_1 = require("../../../utils/shared-constructs");
18
+ const metrics_1 = require("../../../utils/metrics");
15
19
  const names_1 = require("../../../utils/names");
16
- const generator_1 = tslib_1.__importStar(require("../../../ts/lib/generator"));
20
+ const nx_1 = require("../../../utils/nx");
17
21
  const port_1 = require("../../../utils/port");
22
+ const shared_constructs_1 = require("../../../utils/shared-constructs");
18
23
  const versions_1 = require("../../../utils/versions");
19
24
  const generator_2 = tslib_1.__importDefault(require("../../project/generator"));
20
- const bundle_1 = require("../../../utils/bundle/bundle");
21
- const git_1 = require("../../../utils/git");
22
- const eslint_1 = require("../../../ts/lib/eslint");
23
- const fs_1 = require("../../../utils/fs");
24
- const api_constructs_1 = require("../../../utils/api-constructs/api-constructs");
25
- const open_api_metadata_1 = require("../../../utils/api-constructs/open-api-metadata");
26
25
  exports.TS_SMITHY_API_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
27
26
  const tsSmithyApiGenerator = async (tree, options) => {
28
27
  if (options.infra !== 'rest-lambda' &&
@@ -169,8 +168,12 @@ const tsSmithyApiGenerator = async (tree, options) => {
169
168
  continuous: true,
170
169
  dependsOn: ['copy-ssdk', 'watch-copy-ssdk'],
171
170
  };
171
+ const existingServeLocalDependsOn = backendProjectConfig.targets['serve-local']?.dependsOn ?? [];
172
172
  backendProjectConfig.targets['serve-local'] = {
173
173
  ...backendProjectConfig.targets.serve,
174
+ // Own copy of dependsOn so adding serve-local dependencies below doesn't
175
+ // mutate the shared array referenced by the serve target.
176
+ dependsOn: [...(backendProjectConfig.targets.serve.dependsOn ?? [])],
174
177
  options: {
175
178
  ...backendProjectConfig.targets.serve.options,
176
179
  env: {
@@ -178,12 +181,15 @@ const tsSmithyApiGenerator = async (tree, options) => {
178
181
  },
179
182
  },
180
183
  };
184
+ // Preserve any dependencies added to serve-local by connection generators
185
+ for (const dependency of existingServeLocalDependsOn) {
186
+ (0, nx_1.addDependencyToTargetIfNotPresent)(backendProjectConfig, 'serve-local', dependency);
187
+ }
181
188
  // Ignore generated code
182
189
  (0, git_1.updateGitIgnore)(tree, backendProjectConfig.root, (patterns) => [
183
190
  ...patterns,
184
191
  'src/generated',
185
192
  ]);
186
- await (0, eslint_1.addIgnoresToEslintConfig)(tree, (0, devkit_1.joinPathFragments)(backendProjectConfig.root, 'eslint.config.mjs'), ['**/generated']);
187
193
  (0, devkit_1.updateProjectConfiguration)(tree, backendFullyQualifiedName, backendProjectConfig);
188
194
  (0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
189
195
  '@aws-smithy/server-apigateway',
@@ -197,7 +203,7 @@ const tsSmithyApiGenerator = async (tree, options) => {
197
203
  ...(options.auth === 'custom'
198
204
  ? ['@aws-lambda-powertools/parser']
199
205
  : []),
200
- ]), (0, versions_1.withVersions)(['@types/aws-lambda']));
206
+ ]), (0, versions_1.withVersions)(['@types/aws-lambda', 'tsx']));
201
207
  await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_SMITHY_API_GENERATOR_INFO]);
202
208
  await (0, format_1.formatFilesInSubtree)(tree);
203
209
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,11 @@ resource "null_resource" "print_info" {
14
14
  # }
15
15
 
16
16
  provisioner "local-exec" {
17
- command = "echo 'AWS Region: ${local.aws_region}, AWS Account: ${local.account_id}, Environment: ${var.environment}'"
17
+ command = "echo \"AWS Region: $AWS_REGION, AWS Account: $ACCOUNT_ID, Environment: $ENVIRONMENT\""
18
+ environment = {
19
+ AWS_REGION = local.aws_region
20
+ ACCOUNT_ID = local.account_id
21
+ ENVIRONMENT = var.environment
22
+ }
18
23
  }
19
24
  }
@@ -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 { Tree, GeneratorCallback } from '@nx/devkit';
6
- import { TerraformProjectGeneratorSchema } 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 { TerraformProjectGeneratorSchema } from './schema';
8
8
  export declare const TERRAFORM_PROJECT_GENERATOR_INFO: NxGeneratorInfo;
9
9
  export declare function terraformProjectGenerator(tree: Tree, schema: TerraformProjectGeneratorSchema): Promise<GeneratorCallback>;
10
10
  export default terraformProjectGenerator;
@@ -7,17 +7,17 @@ exports.terraformProjectGenerator = terraformProjectGenerator;
7
7
  * SPDX-License-Identifier: Apache-2.0
8
8
  */
9
9
  const devkit_1 = require("@nx/devkit");
10
- const generator_1 = require("../../ts/lib/generator");
11
10
  const path_1 = require("path");
12
- const object_1 = require("../../utils/object");
13
- const nx_1 = require("../../utils/nx");
11
+ const generator_1 = require("../../ts/lib/generator");
14
12
  const git_1 = require("../../utils/git");
15
- const versions_1 = require("../../utils/versions");
16
13
  const metrics_1 = require("../../utils/metrics");
17
- const shared_constructs_1 = require("../../utils/shared-constructs");
14
+ const names_1 = require("../../utils/names");
15
+ const nx_1 = require("../../utils/nx");
16
+ const object_1 = require("../../utils/object");
18
17
  const py_1 = require("../../utils/py");
18
+ const shared_constructs_1 = require("../../utils/shared-constructs");
19
19
  const shared_constructs_constants_1 = require("../../utils/shared-constructs-constants");
20
- const names_1 = require("../../utils/names");
20
+ const versions_1 = require("../../utils/versions");
21
21
  const NX_EXTEND_PLUGIN = '@nx-extend/terraform';
22
22
  exports.TERRAFORM_PROJECT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
23
23
  async function terraformProjectGenerator(tree, schema) {
@@ -178,7 +178,7 @@ async function terraformProjectGenerator(tree, schema) {
178
178
  dependsOn: ['init'],
179
179
  },
180
180
  };
181
- (0, devkit_1.addProjectConfiguration)(tree, lib.fullyQualifiedName, {
181
+ const projectConfiguration = {
182
182
  root: lib.dir,
183
183
  projectType: schema.type,
184
184
  sourceRoot: (0, devkit_1.joinPathFragments)(lib.dir, 'src'),
@@ -186,7 +186,12 @@ async function terraformProjectGenerator(tree, schema) {
186
186
  ...libTargets,
187
187
  ...(schema.type === 'application' ? applicationTargets : {}),
188
188
  }),
189
- });
189
+ };
190
+ // Only create the project configuration on first run; skip it on re-run so
191
+ // existing project.json customisations are preserved.
192
+ if (!(0, nx_1.projectExists)(tree, lib.fullyQualifiedName)) {
193
+ (0, devkit_1.addProjectConfiguration)(tree, lib.fullyQualifiedName, projectConfiguration);
194
+ }
190
195
  (0, nx_1.addGeneratorMetadata)(tree, lib.fullyQualifiedName, exports.TERRAFORM_PROJECT_GENERATOR_INFO);
191
196
  (0, devkit_1.generateFiles)(tree, // the virtual file system
192
197
  (0, devkit_1.joinPathFragments)(__dirname, `./files/${schema.type}`), // path to the file templates
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/terraform/project/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/terraform/project/generator.ts"],"names":[],"mappings":"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"}
@@ -281,7 +281,7 @@ import { EchoInputSchema, EchoOutputSchema } from '../schema/index.js';
281
281
  export const echo = publicProcedure
282
282
  .input(EchoInputSchema)
283
283
  .output(EchoOutputSchema)
284
- .query((opts) => ({ result: opts.input.message }));
284
+ .query((opts) => ({ message: opts.input.message }));
285
285
  "
286
286
  `;
287
287
 
@@ -303,13 +303,13 @@ exports[`trpc backend generator > should generate the project > apps/test-api/sr
303
303
  "import { z } from 'zod';
304
304
 
305
305
  export const EchoInputSchema = z.object({
306
- message: z.string(),
306
+ message: z.string().max(1024),
307
307
  });
308
308
 
309
309
  export type IEchoInput = z.TypeOf<typeof EchoInputSchema>;
310
310
 
311
311
  export const EchoOutputSchema = z.object({
312
- result: z.string(),
312
+ message: z.string().max(1024),
313
313
  });
314
314
 
315
315
  export type IEchoOutput = z.TypeOf<typeof EchoOutputSchema>;
@@ -1206,6 +1206,7 @@ import {
1206
1206
  HttpMethod,
1207
1207
  HttpStage,
1208
1208
  LogGroupLogDestination,
1209
+ ThrottleSettings,
1209
1210
  } from 'aws-cdk-lib/aws-apigatewayv2';
1210
1211
  import { LogGroup } from 'aws-cdk-lib/aws-logs';
1211
1212
  import { suppressRules } from '../checkov.js';
@@ -1232,6 +1233,12 @@ export interface HttpApiProps<
1232
1233
  * Map of operation names to their API Gateway integrations
1233
1234
  */
1234
1235
  readonly integrations: TIntegrations;
1236
+ /**
1237
+ * Default throttling limits applied to the API's default stage.
1238
+ *
1239
+ * @default { rateLimit: 10000, burstLimit: 5000 }
1240
+ */
1241
+ readonly throttle?: ThrottleSettings;
1235
1242
  }
1236
1243
 
1237
1244
  /**
@@ -1265,6 +1272,7 @@ export class HttpApi<
1265
1272
  apiName,
1266
1273
  operations,
1267
1274
  integrations,
1275
+ throttle = { rateLimit: 10000, burstLimit: 5000 },
1268
1276
  ...props
1269
1277
  }: HttpApiProps<TIntegrations, TOperation>,
1270
1278
  ) {
@@ -1292,6 +1300,7 @@ export class HttpApi<
1292
1300
  this.defaultStage = new HttpStage(this, 'DefaultStage', {
1293
1301
  httpApi: this.api,
1294
1302
  autoDeploy: true,
1303
+ throttle,
1295
1304
  accessLogSettings: {
1296
1305
  destination: new LogGroupLogDestination(accessLogGroup),
1297
1306
  },
@@ -1751,6 +1760,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
1751
1760
  * @template TDefaultIntegrationProps - Type for default integration properties
1752
1761
  * @template TDefaultIntegration - Type for default integration implementation
1753
1762
  * @template TPattern - The integration pattern ('shared' or 'isolated')
1763
+ * @template TOverridden - Union of operation names that have been overridden
1764
+ * @template TOperationOptioned - Union of operation names with per-operation options
1754
1765
  */
1755
1766
  export class IntegrationBuilder<
1756
1767
  TOperation extends string,
@@ -1759,6 +1770,8 @@ export class IntegrationBuilder<
1759
1770
  TDefaultIntegrationProps extends object,
1760
1771
  TDefaultIntegration extends TBaseIntegration,
1761
1772
  TPattern extends 'shared' | 'isolated',
1773
+ TOverridden extends string = never,
1774
+ TOperationOptioned extends string = never,
1762
1775
  > {
1763
1776
  /** Options for the integration builder */
1764
1777
  private options: IntegrationBuilderProps<
@@ -1771,6 +1784,11 @@ export class IntegrationBuilder<
1771
1784
  /** Map of operation names to their custom integrations */
1772
1785
  private integrations: Partial<TIntegrations> = {};
1773
1786
 
1787
+ /** Map of default integration keys to per-operation default option overrides */
1788
+ private perOperationOptions: Partial<
1789
+ Record<string, Partial<TDefaultIntegrationProps>>
1790
+ > = {};
1791
+
1774
1792
  /**
1775
1793
  * Create an Integration Builder for an HTTP API with a shared pattern
1776
1794
  */
@@ -1925,11 +1943,16 @@ export class IntegrationBuilder<
1925
1943
  /**
1926
1944
  * Overrides default integrations with custom implementations for specific operations.
1927
1945
  *
1946
+ * Operations which have per-operation options set via withOperationOptions cannot be
1947
+ * overridden, since these still use the default integration.
1948
+ *
1928
1949
  * @param overrides - Map of operation names to their custom integration implementations
1929
1950
  * @returns The builder instance with updated type information reflecting the overrides
1930
1951
  */
1931
1952
  public withOverrides<
1932
- TOverrideIntegrations extends Partial<Record<TOperation, TBaseIntegration>>,
1953
+ TOverrideIntegrations extends Partial<
1954
+ Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
1955
+ >,
1933
1956
  >(overrides: TOverrideIntegrations) {
1934
1957
  this.integrations = { ...this.integrations, ...overrides };
1935
1958
  // Re-type to include the overridden integration types.
@@ -1945,7 +1968,9 @@ export class IntegrationBuilder<
1945
1968
  MergedIntegrations,
1946
1969
  TDefaultIntegrationProps,
1947
1970
  TDefaultIntegration,
1948
- TPattern
1971
+ TPattern,
1972
+ TOverridden | Extract<keyof TOverrideIntegrations, string>,
1973
+ TOperationOptioned
1949
1974
  >;
1950
1975
  }
1951
1976
 
@@ -1964,6 +1989,43 @@ export class IntegrationBuilder<
1964
1989
  return this;
1965
1990
  }
1966
1991
 
1992
+ /**
1993
+ * Updates the default integration options for specific operations, without
1994
+ * affecting the others. The given options are merged with the defaults (and
1995
+ * any options set via withDefaultOptions) when building each default integration.
1996
+ *
1997
+ * Operations which have been replaced via withOverrides cannot be targeted, since
1998
+ * they no longer use the default integration.
1999
+ *
2000
+ * @param options - Map of operation names to partial default integration options
2001
+ * @returns The builder instance
2002
+ */
2003
+ public withOperationOptions<
2004
+ TOptions extends Partial<
2005
+ Record<
2006
+ Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
2007
+ Partial<TDefaultIntegrationProps>
2008
+ >
2009
+ >,
2010
+ >(options: TOptions) {
2011
+ Object.entries(options).forEach(([op, opOptions]) => {
2012
+ this.perOperationOptions[op] = {
2013
+ ...this.perOperationOptions[op],
2014
+ ...(opOptions as Partial<TDefaultIntegrationProps>),
2015
+ };
2016
+ });
2017
+ return this as unknown as IntegrationBuilder<
2018
+ TOperation,
2019
+ TBaseIntegration,
2020
+ TIntegrations,
2021
+ TDefaultIntegrationProps,
2022
+ TDefaultIntegration,
2023
+ TPattern,
2024
+ TOverridden,
2025
+ TOperationOptioned | Extract<keyof TOptions, string>
2026
+ >;
2027
+ }
2028
+
1967
2029
  /**
1968
2030
  * Builds and returns the complete set of integrations.
1969
2031
  *
@@ -1978,6 +2040,10 @@ export class IntegrationBuilder<
1978
2040
  */
1979
2041
  public build(): TIntegrations {
1980
2042
  const options = this.options;
2043
+ const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
2044
+ ...options.defaultIntegrationOptions,
2045
+ ...this.perOperationOptions[op],
2046
+ });
1981
2047
  return {
1982
2048
  ...Object.fromEntries(
1983
2049
  options.pattern === 'shared'
@@ -1986,7 +2052,7 @@ export class IntegrationBuilder<
1986
2052
  '$router',
1987
2053
  options.buildDefaultIntegration(
1988
2054
  '$router',
1989
- options.defaultIntegrationOptions,
2055
+ buildOptionsFor('$router'),
1990
2056
  ),
1991
2057
  ],
1992
2058
  ]
@@ -1997,10 +2063,7 @@ export class IntegrationBuilder<
1997
2063
  )
1998
2064
  .map((op) => [
1999
2065
  op,
2000
- options.buildDefaultIntegration(
2001
- op,
2002
- options.defaultIntegrationOptions,
2003
- ),
2066
+ options.buildDefaultIntegration(op, buildOptionsFor(op)),
2004
2067
  ]),
2005
2068
  ),
2006
2069
  ...this.integrations,
@@ -2019,6 +2082,7 @@ import {
2019
2082
  RestApiProps as _RestApiProps,
2020
2083
  IResource,
2021
2084
  Stage,
2085
+ ThrottleSettings,
2022
2086
  } from 'aws-cdk-lib/aws-apigateway';
2023
2087
  import { IAspect, RemovalPolicy } from 'aws-cdk-lib';
2024
2088
  import {
@@ -2065,6 +2129,12 @@ export interface RestApiProps<
2065
2129
  * @default true
2066
2130
  */
2067
2131
  readonly enableWaf?: boolean;
2132
+ /**
2133
+ * Default throttling limits applied to all methods on the API's default stage.
2134
+ *
2135
+ * @default { rateLimit: 10000, burstLimit: 5000 }
2136
+ */
2137
+ readonly throttle?: ThrottleSettings;
2068
2138
  }
2069
2139
 
2070
2140
  /**
@@ -2099,6 +2169,7 @@ export class RestApi<
2099
2169
  operations,
2100
2170
  integrations,
2101
2171
  enableWaf = true,
2172
+ throttle = { rateLimit: 10000, burstLimit: 5000 },
2102
2173
  ...props
2103
2174
  }: RestApiProps<TIntegrations, TOperation>,
2104
2175
  ) {
@@ -2106,7 +2177,21 @@ export class RestApi<
2106
2177
  this.integrations = integrations;
2107
2178
 
2108
2179
  // Create the API Gateway REST API
2109
- this.api = new _RestApi(this, 'Api', props);
2180
+ this.api = new _RestApi(this, 'Api', {
2181
+ ...props,
2182
+ deployOptions: {
2183
+ ...props.deployOptions,
2184
+ methodOptions: {
2185
+ ...props.deployOptions?.methodOptions,
2186
+ // Default throttling applied to all resource paths and methods
2187
+ '/*/*': {
2188
+ throttlingRateLimit: throttle.rateLimit,
2189
+ throttlingBurstLimit: throttle.burstLimit,
2190
+ ...props.deployOptions?.methodOptions?.['/*/*'],
2191
+ },
2192
+ },
2193
+ },
2194
+ });
2110
2195
 
2111
2196
  if (enableWaf) {
2112
2197
  this.webAcl = new CfnWebACL(this, 'WebAcl', {
@@ -2708,6 +2793,8 @@ export type ApiIntegrations<TOperation extends string, TBaseIntegration> =
2708
2793
  * @template TDefaultIntegrationProps - Type for default integration properties
2709
2794
  * @template TDefaultIntegration - Type for default integration implementation
2710
2795
  * @template TPattern - The integration pattern ('shared' or 'isolated')
2796
+ * @template TOverridden - Union of operation names that have been overridden
2797
+ * @template TOperationOptioned - Union of operation names with per-operation options
2711
2798
  */
2712
2799
  export class IntegrationBuilder<
2713
2800
  TOperation extends string,
@@ -2716,6 +2803,8 @@ export class IntegrationBuilder<
2716
2803
  TDefaultIntegrationProps extends object,
2717
2804
  TDefaultIntegration extends TBaseIntegration,
2718
2805
  TPattern extends 'shared' | 'isolated',
2806
+ TOverridden extends string = never,
2807
+ TOperationOptioned extends string = never,
2719
2808
  > {
2720
2809
  /** Options for the integration builder */
2721
2810
  private options: IntegrationBuilderProps<
@@ -2728,6 +2817,11 @@ export class IntegrationBuilder<
2728
2817
  /** Map of operation names to their custom integrations */
2729
2818
  private integrations: Partial<TIntegrations> = {};
2730
2819
 
2820
+ /** Map of default integration keys to per-operation default option overrides */
2821
+ private perOperationOptions: Partial<
2822
+ Record<string, Partial<TDefaultIntegrationProps>>
2823
+ > = {};
2824
+
2731
2825
  /**
2732
2826
  * Create an Integration Builder for an HTTP API with a shared pattern
2733
2827
  */
@@ -2882,11 +2976,16 @@ export class IntegrationBuilder<
2882
2976
  /**
2883
2977
  * Overrides default integrations with custom implementations for specific operations.
2884
2978
  *
2979
+ * Operations which have per-operation options set via withOperationOptions cannot be
2980
+ * overridden, since these still use the default integration.
2981
+ *
2885
2982
  * @param overrides - Map of operation names to their custom integration implementations
2886
2983
  * @returns The builder instance with updated type information reflecting the overrides
2887
2984
  */
2888
2985
  public withOverrides<
2889
- TOverrideIntegrations extends Partial<Record<TOperation, TBaseIntegration>>,
2986
+ TOverrideIntegrations extends Partial<
2987
+ Record<Exclude<TOperation, TOperationOptioned>, TBaseIntegration>
2988
+ >,
2890
2989
  >(overrides: TOverrideIntegrations) {
2891
2990
  this.integrations = { ...this.integrations, ...overrides };
2892
2991
  // Re-type to include the overridden integration types.
@@ -2902,7 +3001,9 @@ export class IntegrationBuilder<
2902
3001
  MergedIntegrations,
2903
3002
  TDefaultIntegrationProps,
2904
3003
  TDefaultIntegration,
2905
- TPattern
3004
+ TPattern,
3005
+ TOverridden | Extract<keyof TOverrideIntegrations, string>,
3006
+ TOperationOptioned
2906
3007
  >;
2907
3008
  }
2908
3009
 
@@ -2921,6 +3022,43 @@ export class IntegrationBuilder<
2921
3022
  return this;
2922
3023
  }
2923
3024
 
3025
+ /**
3026
+ * Updates the default integration options for specific operations, without
3027
+ * affecting the others. The given options are merged with the defaults (and
3028
+ * any options set via withDefaultOptions) when building each default integration.
3029
+ *
3030
+ * Operations which have been replaced via withOverrides cannot be targeted, since
3031
+ * they no longer use the default integration.
3032
+ *
3033
+ * @param options - Map of operation names to partial default integration options
3034
+ * @returns The builder instance
3035
+ */
3036
+ public withOperationOptions<
3037
+ TOptions extends Partial<
3038
+ Record<
3039
+ Exclude<DefaultIntegrationKeys<TPattern, TOperation>, TOverridden>,
3040
+ Partial<TDefaultIntegrationProps>
3041
+ >
3042
+ >,
3043
+ >(options: TOptions) {
3044
+ Object.entries(options).forEach(([op, opOptions]) => {
3045
+ this.perOperationOptions[op] = {
3046
+ ...this.perOperationOptions[op],
3047
+ ...(opOptions as Partial<TDefaultIntegrationProps>),
3048
+ };
3049
+ });
3050
+ return this as unknown as IntegrationBuilder<
3051
+ TOperation,
3052
+ TBaseIntegration,
3053
+ TIntegrations,
3054
+ TDefaultIntegrationProps,
3055
+ TDefaultIntegration,
3056
+ TPattern,
3057
+ TOverridden,
3058
+ TOperationOptioned | Extract<keyof TOptions, string>
3059
+ >;
3060
+ }
3061
+
2924
3062
  /**
2925
3063
  * Builds and returns the complete set of integrations.
2926
3064
  *
@@ -2935,6 +3073,10 @@ export class IntegrationBuilder<
2935
3073
  */
2936
3074
  public build(): TIntegrations {
2937
3075
  const options = this.options;
3076
+ const buildOptionsFor = (op: string): TDefaultIntegrationProps => ({
3077
+ ...options.defaultIntegrationOptions,
3078
+ ...this.perOperationOptions[op],
3079
+ });
2938
3080
  return {
2939
3081
  ...Object.fromEntries(
2940
3082
  options.pattern === 'shared'
@@ -2943,7 +3085,7 @@ export class IntegrationBuilder<
2943
3085
  '$router',
2944
3086
  options.buildDefaultIntegration(
2945
3087
  '$router',
2946
- options.defaultIntegrationOptions,
3088
+ buildOptionsFor('$router'),
2947
3089
  ),
2948
3090
  ],
2949
3091
  ]
@@ -2954,10 +3096,7 @@ export class IntegrationBuilder<
2954
3096
  )
2955
3097
  .map((op) => [
2956
3098
  op,
2957
- options.buildDefaultIntegration(
2958
- op,
2959
- options.defaultIntegrationOptions,
2960
- ),
3099
+ options.buildDefaultIntegration(op, buildOptionsFor(op)),
2961
3100
  ]),
2962
3101
  ),
2963
3102
  ...this.integrations,
@@ -5,4 +5,4 @@ import { EchoInputSchema, EchoOutputSchema } from '../schema/index.js';
5
5
  export const echo = publicProcedure
6
6
  .input(EchoInputSchema)
7
7
  .output(EchoOutputSchema)
8
- .query((opts) => ({ result: opts.input.message }));
8
+ .query((opts) => ({ message: opts.input.message }));
@@ -1,13 +1,13 @@
1
1
  import { z } from 'zod';
2
2
 
3
3
  export const EchoInputSchema = z.object({
4
- message: z.string(),
4
+ message: z.string().max(1024),
5
5
  });
6
6
 
7
7
  export type IEchoInput = z.TypeOf<typeof EchoInputSchema>;
8
8
 
9
9
  export const EchoOutputSchema = z.object({
10
- result: z.string(),
10
+ message: z.string().max(1024),
11
11
  });
12
12
 
13
13
  export type IEchoOutput = z.TypeOf<typeof EchoOutputSchema>;
@@ -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 { Tree } from '@nx/devkit';
6
- import { TsTrpcApiGeneratorSchema } from './schema';
7
- import { NxGeneratorInfo } from '../../utils/nx';
5
+ import { type Tree } from '@nx/devkit';
6
+ import { type NxGeneratorInfo } from '../../utils/nx';
7
+ import type { TsTrpcApiGeneratorSchema } from './schema';
8
8
  export declare const TRPC_BACKEND_GENERATOR_INFO: NxGeneratorInfo;
9
9
  export declare function tsTrpcApiGenerator(tree: Tree, options: TsTrpcApiGeneratorSchema): Promise<() => void>;
10
10
  export default tsTrpcApiGenerator;