@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
@@ -1,5 +1,11 @@
1
- import { CfnOutput, CfnResource, Lazy, RemovalPolicy, Stack } from 'aws-cdk-lib';
2
- import { Distribution, ViewerProtocolPolicy } from 'aws-cdk-lib/aws-cloudfront';
1
+ import { CfnOutput, CfnResource, Duration, Lazy, RemovalPolicy, Stack } from 'aws-cdk-lib';
2
+ import {
3
+ Distribution,
4
+ HeadersFrameOption,
5
+ HeadersReferrerPolicy,
6
+ ResponseHeadersPolicy,
7
+ ViewerProtocolPolicy,
8
+ } from 'aws-cdk-lib/aws-cloudfront';
3
9
  import { S3BucketOrigin } from 'aws-cdk-lib/aws-cloudfront-origins';
4
10
  import {
5
11
  BlockPublicAccess,
@@ -8,7 +14,11 @@ import {
8
14
  IBucket,
9
15
  ObjectOwnership,
10
16
  } from 'aws-cdk-lib/aws-s3';
11
- import { BucketDeployment, Source } from 'aws-cdk-lib/aws-s3-deployment';
17
+ import {
18
+ BucketDeployment,
19
+ CacheControl,
20
+ Source,
21
+ } from 'aws-cdk-lib/aws-s3-deployment';
12
22
  import { Construct } from 'constructs';
13
23
  import { RuntimeConfig } from './runtime-config.js';
14
24
  import { Key } from 'aws-cdk-lib/aws-kms';
@@ -17,6 +27,23 @@ import { suppressRules } from './checkov.js';
17
27
 
18
28
  const DEFAULT_RUNTIME_CONFIG_FILENAME = 'runtime-config.json';
19
29
 
30
+ // Content-Security-Policy enforced on all responses. Restricts scripts and
31
+ // framing to mitigate XSS and clickjacking, while permitting HTTPS/WSS calls
32
+ // (connect-src) to AWS service endpoints such as API Gateway, Cognito and
33
+ // Bedrock AgentCore which are only known at deploy time. Edit this to tighten
34
+ // connect-src to your specific origins once they are known.
35
+ const CONTENT_SECURITY_POLICY = [
36
+ "default-src 'self'",
37
+ "script-src 'self'",
38
+ "style-src 'self' 'unsafe-inline'",
39
+ "img-src 'self' data:",
40
+ "font-src 'self' data:",
41
+ "connect-src 'self' https: wss:",
42
+ "object-src 'none'",
43
+ "base-uri 'self'",
44
+ "frame-ancestors 'none'",
45
+ ].join('; ');
46
+
20
47
  export interface StaticWebsiteProps {
21
48
  readonly websiteName: string;
22
49
  readonly websiteFilePath: string;
@@ -108,6 +135,35 @@ export class StaticWebsite extends Construct {
108
135
  'Distribution log bucket does not need versioning enabled',
109
136
  );
110
137
 
138
+ // Security headers applied to all responses.
139
+ const responseHeadersPolicy = new ResponseHeadersPolicy(
140
+ this,
141
+ 'ResponseHeadersPolicy',
142
+ {
143
+ securityHeadersBehavior: {
144
+ strictTransportSecurity: {
145
+ accessControlMaxAge: Duration.days(730),
146
+ includeSubdomains: true,
147
+ preload: true,
148
+ override: true,
149
+ },
150
+ contentTypeOptions: { override: true },
151
+ frameOptions: {
152
+ frameOption: HeadersFrameOption.DENY,
153
+ override: true,
154
+ },
155
+ referrerPolicy: {
156
+ referrerPolicy: HeadersReferrerPolicy.STRICT_ORIGIN_WHEN_CROSS_ORIGIN,
157
+ override: true,
158
+ },
159
+ contentSecurityPolicy: {
160
+ contentSecurityPolicy: CONTENT_SECURITY_POLICY,
161
+ override: true,
162
+ },
163
+ },
164
+ },
165
+ );
166
+
111
167
  const defaultRootObject = 'index.html';
112
168
  this.cloudFrontDistribution = new Distribution(
113
169
  this,
@@ -119,6 +175,7 @@ export class StaticWebsite extends Construct {
119
175
  defaultBehavior: {
120
176
  origin: S3BucketOrigin.withOriginAccessControl(this.websiteBucket),
121
177
  viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
178
+ responseHeadersPolicy,
122
179
  },
123
180
  defaultRootObject,
124
181
  errorResponses: [
@@ -143,8 +200,17 @@ export class StaticWebsite extends Construct {
143
200
 
144
201
  // Deploy Website
145
202
  this.bucketDeployment = new BucketDeployment(this, 'WebsiteDeployment', {
203
+ sources: [Source.asset(websiteFilePath)],
204
+ destinationBucket: this.websiteBucket,
205
+ // Files in the distribution's edge caches will be invalidated after files are uploaded to the destination bucket.
206
+ distribution: this.cloudFrontDistribution,
207
+ memoryLimit: 1024,
208
+ });
209
+
210
+ // Deploy runtime-config.json separately so it is never cached - clients
211
+ // must always fetch the latest configuration.
212
+ new BucketDeployment(this, 'RuntimeConfigDeployment', {
146
213
  sources: [
147
- Source.asset(websiteFilePath),
148
214
  Source.data(
149
215
  DEFAULT_RUNTIME_CONFIG_FILENAME,
150
216
  Lazy.string({
@@ -156,8 +222,9 @@ export class StaticWebsite extends Construct {
156
222
  ),
157
223
  ],
158
224
  destinationBucket: this.websiteBucket,
159
- // Files in the distribution's edge caches will be invalidated after files are uploaded to the destination bucket.
160
225
  distribution: this.cloudFrontDistribution,
226
+ cacheControl: [CacheControl.noCache()],
227
+ prune: false,
161
228
  memoryLimit: 1024,
162
229
  });
163
230
 
@@ -23,6 +23,15 @@ variable "website_file_path" {
23
23
  type = string
24
24
  }
25
25
 
26
+ # Content-Security-Policy enforced on all responses. Restricts scripts and
27
+ # framing to mitigate XSS and clickjacking, while permitting HTTPS/WSS calls
28
+ # (connect-src) to AWS service endpoints such as API Gateway, Cognito and
29
+ # Bedrock AgentCore which are only known at deploy time. Edit this to tighten
30
+ # connect-src to your specific origins once they are known.
31
+ locals {
32
+ content_security_policy = "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self' data:; connect-src 'self' https: wss:; object-src 'none'; base-uri 'self'; frame-ancestors 'none'"
33
+ }
34
+
26
35
 
27
36
  # Data sources
28
37
  data "aws_caller_identity" "current" {}
@@ -383,13 +392,41 @@ resource "aws_cloudfront_origin_access_control" "website_oac" {
383
392
  signing_protocol = "sigv4"
384
393
  }
385
394
 
395
+ # Security headers applied to all responses.
396
+ resource "aws_cloudfront_response_headers_policy" "website" {
397
+ name = "${aws_s3_bucket.website.bucket}-security-headers"
398
+
399
+ security_headers_config {
400
+ strict_transport_security {
401
+ access_control_max_age_sec = 63072000
402
+ include_subdomains = true
403
+ preload = true
404
+ override = true
405
+ }
406
+ content_type_options {
407
+ override = true
408
+ }
409
+ frame_options {
410
+ frame_option = "DENY"
411
+ override = true
412
+ }
413
+ referrer_policy {
414
+ referrer_policy = "strict-origin-when-cross-origin"
415
+ override = true
416
+ }
417
+ content_security_policy {
418
+ content_security_policy = local.content_security_policy
419
+ override = true
420
+ }
421
+ }
422
+ }
423
+
386
424
  # CloudFront Distribution
387
425
  resource "aws_cloudfront_distribution" "website" {
388
426
  #checkov:skip=CKV_AWS_174:Using CloudFront default certificate which does not support TLS v1.2
389
427
  #checkov:skip=CKV_AWS_310:Origin failover not required for single S3 origin static website
390
428
  #checkov:skip=CKV_AWS_374:Geo restrictions not required for global web application
391
429
  #checkov:skip=CKV2_AWS_42:Custom SSL certificate not required for development - using CloudFront default
392
- #checkov:skip=CKV2_AWS_32:Response headers policy not required for basic static website
393
430
  #checkov:skip=CKV2_AWS_47:WAF includes AWSManagedRulesKnownBadInputsRuleSet which provides Log4j protection
394
431
  origin {
395
432
  domain_name = aws_s3_bucket.website.bucket_regional_domain_name
@@ -419,11 +456,12 @@ resource "aws_cloudfront_distribution" "website" {
419
456
  }
420
457
  }
421
458
 
422
- viewer_protocol_policy = "redirect-to-https"
423
- min_ttl = 0
424
- default_ttl = 3600
425
- max_ttl = 86400
426
- compress = true
459
+ viewer_protocol_policy = "redirect-to-https"
460
+ response_headers_policy_id = aws_cloudfront_response_headers_policy.website.id
461
+ min_ttl = 0
462
+ default_ttl = 3600
463
+ max_ttl = 86400
464
+ compress = true
427
465
  }
428
466
 
429
467
  # Custom error responses for SPA routing
@@ -527,7 +565,7 @@ resource "null_resource" "upload_website_files" {
527
565
 
528
566
  provisioner "local-exec" {
529
567
  command = <<-EOT
530
- cd "${path.root}"
568
+ cd "$ROOT_PATH"
531
569
  uv run --with boto3 python3 -c "
532
570
  import os
533
571
  import sys
@@ -616,9 +654,14 @@ def sync_to_s3(local_path, bucket_name):
616
654
  sys.exit(1)
617
655
 
618
656
  # Execute sync
619
- sync_to_s3('${var.website_file_path}', '${aws_s3_bucket.website.bucket}')
657
+ sync_to_s3(os.environ['WEBSITE_FILE_PATH'], os.environ['BUCKET_NAME'])
620
658
  "
621
659
  EOT
660
+ environment = {
661
+ ROOT_PATH = path.root
662
+ WEBSITE_FILE_PATH = var.website_file_path
663
+ BUCKET_NAME = aws_s3_bucket.website.bucket
664
+ }
622
665
  }
623
666
 
624
667
  depends_on = [aws_s3_bucket_policy.website_cloudfront_policy]
@@ -626,11 +669,12 @@ sync_to_s3('${var.website_file_path}', '${aws_s3_bucket.website.bucket}')
626
669
 
627
670
  # Upload runtime config file
628
671
  resource "aws_s3_object" "runtime_config" {
629
- bucket = aws_s3_bucket.website.id
630
- key = "runtime-config.json"
631
- content = module.runtime_config_reader.config_json
632
- content_type = "application/json"
633
- etag = md5(module.runtime_config_reader.config_json)
672
+ bucket = aws_s3_bucket.website.id
673
+ key = "runtime-config.json"
674
+ content = module.runtime_config_reader.config_json
675
+ content_type = "application/json"
676
+ cache_control = "no-cache"
677
+ etag = md5(module.runtime_config_reader.config_json)
634
678
 
635
679
  depends_on = [null_resource.upload_website_files]
636
680
  }
@@ -647,6 +691,7 @@ resource "null_resource" "cloudfront_invalidation" {
647
691
  command = <<-EOT
648
692
  uv run --with boto3 python3 -c "
649
693
  import boto3
694
+ import os
650
695
  import sys
651
696
  from botocore.exceptions import ClientError, NoCredentialsError
652
697
 
@@ -668,7 +713,7 @@ def create_invalidation(distribution_id):
668
713
 
669
714
  invalidation_id = response['Invalidation']['Id']
670
715
  print(f'CloudFront cache invalidation created: {invalidation_id}')
671
- print(f'Distribution: ${aws_cloudfront_distribution.website.id}')
716
+ print(f'Distribution: {distribution_id}')
672
717
  print(f'Status: {response[\"Invalidation\"][\"Status\"]}')
673
718
 
674
719
  except NoCredentialsError:
@@ -682,9 +727,12 @@ def create_invalidation(distribution_id):
682
727
  sys.exit(1)
683
728
 
684
729
  # Execute invalidation
685
- create_invalidation('${aws_cloudfront_distribution.website.id}')
730
+ create_invalidation(os.environ['DISTRIBUTION_ID'])
686
731
  "
687
732
  EOT
733
+ environment = {
734
+ DISTRIBUTION_ID = aws_cloudfront_distribution.website.id
735
+ }
688
736
  }
689
737
 
690
738
  depends_on = [
@@ -2,8 +2,8 @@
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 { Iac } from '../iac';
5
+ import { type Tree } from '@nx/devkit';
6
+ import type { Iac } from '../iac';
7
7
  export interface AddWebsiteInfraOptions {
8
8
  websiteProjectName: string;
9
9
  scopeAlias: string;
@@ -6,9 +6,9 @@ exports.addWebsiteInfra = void 0;
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
8
  const devkit_1 = require("@nx/devkit");
9
- const shared_constructs_constants_1 = require("../shared-constructs-constants");
10
9
  const ast_1 = require("../ast");
11
10
  const nx_1 = require("../nx");
11
+ const shared_constructs_constants_1 = require("../shared-constructs-constants");
12
12
  /**
13
13
  * Add infrastructure for a static website
14
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"website-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/website-constructs/website-constructs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"website-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/website-constructs/website-constructs.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import os
2
-
3
- from strands.agent.a2a_agent import A2AAgent
4
-
5
- from <%- agentConnectionModuleName %>.core.agentcore_a2a_client import AgentCoreA2aClient
6
- from <%- agentConnectionModuleName %>.core.runtime_config import (
7
- get_connected_agent_runtime_arn,
8
- )
9
-
10
-
11
- class <%- targetAgentClassName %>Client:
12
- """Client for the <%- targetAgentClassName %> A2A agent."""
13
-
14
- @staticmethod
15
- def create() -> A2AAgent:
16
- if os.environ.get("SERVE_LOCAL") == "true":
17
- return AgentCoreA2aClient.without_auth(
18
- "http://localhost:<%- targetAgentPort %>/"
19
- )
20
- return AgentCoreA2aClient.with_iam_auth(
21
- get_connected_agent_runtime_arn("<%- targetAgentClassName %>")
22
- )
@@ -1,22 +0,0 @@
1
- import os
2
-
3
- from strands.tools.mcp.mcp_client import MCPClient
4
-
5
- from <%- agentConnectionModuleName %>.core.agentcore_mcp_client import AgentCoreMCPClient
6
- from <%- agentConnectionModuleName %>.core.runtime_config import (
7
- get_connected_agent_runtime_arn,
8
- )
9
-
10
-
11
- class <%- mcpServerClassName %>Client:
12
- """Client for the <%- mcpServerClassName %> MCP server."""
13
-
14
- @staticmethod
15
- def create() -> MCPClient:
16
- if os.environ.get("SERVE_LOCAL") == "true":
17
- return AgentCoreMCPClient.without_auth(
18
- "http://localhost:<%- mcpServerPort %>/mcp"
19
- )
20
- return AgentCoreMCPClient.with_iam_auth(
21
- get_connected_agent_runtime_arn("<%- mcpServerClassName %>")
22
- )
@@ -1,38 +0,0 @@
1
- /**
2
- * Minimal chat CLI for <%- agentNameClassName %> (Python FastAPI / JSONL streaming).
3
- *
4
- * Uses the type-safe TypeScript client generated from the agent's OpenAPI
5
- * spec. Connects to the agent at `process.env.URL` (set by the Nx
6
- * `<%- agentTargetPrefix %>-chat` target).
7
- */
8
- import { randomUUID } from 'node:crypto';
9
- import { chatLoop, type ChatAdapter } from 'agent-chat-cli';
10
- import { <%- agentNameClassName %> } from './generated/client.gen.js';
11
-
12
- const SESSION_ID_HEADER = 'X-Amzn-Bedrock-AgentCore-Runtime-Session-Id';
13
-
14
- class <%- agentNameClassName %>Adapter implements ChatAdapter {
15
- private client!: <%- agentNameClassName %>;
16
- // AgentCore session IDs must be at least 33 characters.
17
- private readonly sessionId = randomUUID().replaceAll('-', '').padEnd(33, '0');
18
-
19
- async connect(url: string) {
20
- this.client = new <%- agentNameClassName %>({
21
- url,
22
- fetch: (input, init) => {
23
- const headers = new Headers(init?.headers);
24
- headers.set(SESSION_ID_HEADER, this.sessionId);
25
- return fetch(input, { ...init, headers });
26
- },
27
- });
28
- return { agentName: '<%- agentNameClassName %>' };
29
- }
30
-
31
- async *sendMessage(text: string): AsyncIterable<string> {
32
- for await (const chunk of this.client.invoke({ message: text })) {
33
- if (typeof chunk.content === 'string') yield chunk.content;
34
- }
35
- }
36
- }
37
-
38
- await chatLoop(new <%- agentNameClassName %>Adapter(), process.env.URL!);
@@ -1,19 +0,0 @@
1
- import { A2AAgent } from '@strands-agents/sdk/a2a';
2
- import { AgentCoreA2aClient } from '../core/agentcore-a2a-client.js';
3
- import { getConnectedAgentRuntimeArn } from '../core/runtime-config.js';
4
-
5
- /** Client for the <%- targetAgentClassName %> A2A agent. */
6
- export class <%- targetAgentClassName %>Client {
7
- static async create(): Promise<A2AAgent> {
8
- if (process.env.SERVE_LOCAL === 'true') {
9
- return AgentCoreA2aClient.withoutAuth({
10
- url: 'http://localhost:<%- targetAgentPort %>/',
11
- });
12
- }
13
- return AgentCoreA2aClient.withIamAuth({
14
- agentRuntimeArn: await getConnectedAgentRuntimeArn(
15
- '<%- targetAgentClassName %>',
16
- ),
17
- });
18
- }
19
- }
@@ -1,19 +0,0 @@
1
- import { McpClient } from '@strands-agents/sdk';
2
- import { AgentCoreMcpClient } from '../core/agentcore-mcp-client.js';
3
- import { getConnectedAgentRuntimeArn } from '../core/runtime-config.js';
4
-
5
- /** Client for the <%- mcpServerClassName %> MCP server. */
6
- export class <%- mcpServerClassName %>Client {
7
- static async create(): Promise<McpClient> {
8
- if (process.env.SERVE_LOCAL === 'true') {
9
- return AgentCoreMcpClient.withoutAuth({
10
- url: 'http://localhost:<%- mcpServerPort %>/mcp',
11
- });
12
- }
13
- return AgentCoreMcpClient.withIamAuth({
14
- agentRuntimeArn: await getConnectedAgentRuntimeArn(
15
- '<%- mcpServerClassName %>',
16
- ),
17
- });
18
- }
19
- }
@@ -1,35 +0,0 @@
1
- /**
2
- * Minimal chat CLI for <%- agentNameClassName %> (HTTP / tRPC WebSocket).
3
- *
4
- * Connects to the agent at `process.env.URL` (set by the Nx `<%- agentTargetPrefix %>-chat` target).
5
- */
6
- import { chatLoop, type ChatAdapter } from 'agent-chat-cli';
7
- import { <%- agentNameClassName %>Client } from '<%- relativeAgentImport %>/client.js';
8
-
9
- class TrpcWebSocketAdapter implements ChatAdapter {
10
- private client!: ReturnType<typeof <%- agentNameClassName %>Client.local>;
11
-
12
- async connect(url: string) {
13
- this.client = <%- agentNameClassName %>Client.local({ url });
14
- return { agentName: '<%- agentNameClassName %>' };
15
- }
16
-
17
- async *sendMessage(text: string): AsyncIterable<string> {
18
- const stream = new ReadableStream<string>({
19
- start: (controller) => {
20
- this.client.invoke.subscribe(
21
- { message: text },
22
- {
23
- onData: (chunk: string) => controller.enqueue(chunk),
24
- onComplete: () => controller.close(),
25
- onError: (err: unknown) => controller.error(err),
26
- },
27
- );
28
- },
29
- });
30
-
31
- yield* stream as unknown as AsyncIterable<string>;
32
- }
33
- }
34
-
35
- await chatLoop(new TrpcWebSocketAdapter(), process.env.URL!);
@@ -1,14 +0,0 @@
1
- /**
2
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
- * SPDX-License-Identifier: Apache-2.0
4
- */
5
- import { Tree } from '@nx/devkit';
6
- import { ConfigureProjectOptions } from './types';
7
- export declare const configureEslint: (tree: Tree, options: ConfigureProjectOptions) => Promise<void>;
8
- /**
9
- * Adds ignore patterns to the eslint config file
10
- * @param tree - The file system tree
11
- * @param eslintConfigPath - Path to the eslint config file
12
- * @param ignorePatterns - Array of ignore patterns to add
13
- */
14
- export declare const addIgnoresToEslintConfig: (tree: Tree, eslintConfigPath: string, ignorePatterns: string[]) => Promise<void>;
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addIgnoresToEslintConfig = exports.configureEslint = 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 versions_1 = require("../../utils/versions");
10
- const ast_1 = require("../../utils/ast");
11
- const nx_1 = require("../../utils/nx");
12
- const configureEslint = async (tree, options) => {
13
- // Configure the lint task
14
- const projectJson = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.fullyQualifiedName);
15
- (0, devkit_1.updateProjectConfiguration)(tree, options.fullyQualifiedName, {
16
- ...projectJson,
17
- targets: {
18
- ...projectJson?.targets,
19
- lint: {
20
- executor: '@nx/eslint:lint',
21
- cache: true,
22
- inputs: ['eslint'],
23
- configurations: {
24
- fix: {
25
- fix: true,
26
- },
27
- 'skip-lint': {
28
- force: true,
29
- },
30
- },
31
- },
32
- },
33
- });
34
- (0, devkit_1.addDependenciesToPackageJson)(tree, {}, (0, versions_1.withVersions)(['prettier', 'eslint-plugin-prettier', 'jsonc-eslint-parser']));
35
- // Update or create eslint.config.mjs
36
- const eslintConfigPath = 'eslint.config.mjs';
37
- if (tree.exists(eslintConfigPath)) {
38
- // Add import if it doesn't exist
39
- await (0, ast_1.addSingleImport)(tree, eslintConfigPath, 'eslintPluginPrettierRecommended', 'eslint-plugin-prettier/recommended');
40
- // Prepend eslintPluginPrettierRecommended to the exports array if not present
41
- await (0, ast_1.applyGritQL)(tree, eslintConfigPath, 'or { `export default []` => `export default [eslintPluginPrettierRecommended]`, `export default [$items]` => `export default [eslintPluginPrettierRecommended, $items]` where { $items <: not contains `eslintPluginPrettierRecommended` } }');
42
- // Add ignore patterns to eslint config
43
- await (0, exports.addIgnoresToEslintConfig)(tree, eslintConfigPath, [
44
- '**/vite.config.*.timestamp*',
45
- ]);
46
- const nxJson = (0, devkit_1.readNxJson)(tree);
47
- (0, devkit_1.updateNxJson)(tree, {
48
- ...nxJson,
49
- namedInputs: {
50
- ...nxJson.namedInputs,
51
- eslint: [
52
- 'default',
53
- '{workspaceRoot}/eslint.config.mjs',
54
- '{projectRoot}/eslint.config.mjs',
55
- ],
56
- },
57
- });
58
- }
59
- };
60
- exports.configureEslint = configureEslint;
61
- /**
62
- * Adds ignore patterns to the eslint config file
63
- * @param tree - The file system tree
64
- * @param eslintConfigPath - Path to the eslint config file
65
- * @param ignorePatterns - Array of ignore patterns to add
66
- */
67
- const addIgnoresToEslintConfig = async (tree, eslintConfigPath, ignorePatterns) => {
68
- for (const pattern of ignorePatterns) {
69
- const escaped = pattern.replace(/`/g, '\\`');
70
- // Single or{} per pattern handles all cases:
71
- // 1. No ignores object → add { ignores: ['pattern'] } to the exports array
72
- // 2. Empty ignores: [] → rewrite to ignores: ['pattern']
73
- // 3. Non-empty ignores: [items] → append 'pattern' to existing items
74
- await (0, ast_1.applyGritQL)(tree, eslintConfigPath, `or {
75
- \`export default [$items]\` where {
76
- $items <: not some \`{ ignores: $_ }\`,
77
- $items += \`{ ignores: ['${escaped}'] }\`
78
- },
79
- \`export default [$items]\` where {
80
- $items <: contains \`ignores: []\` => \`ignores: ['${escaped}']\`
81
- },
82
- \`ignores: [$items]\` => \`ignores: [$items, '${escaped}']\` where {
83
- $items <: within \`export default [$_]\`,
84
- $items <: not some \`'${escaped}'\`
85
- }
86
- }`);
87
- }
88
- };
89
- exports.addIgnoresToEslintConfig = addIgnoresToEslintConfig;
90
- //# sourceMappingURL=eslint.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/eslint.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAMoB;AACpB,mDAAoD;AACpD,yCAA+D;AAE/D,uCAAqE;AAE9D,MAAM,eAAe,GAAG,KAAK,EAClC,IAAU,EACV,OAAgC,EAChC,EAAE;IACF,0BAA0B;IAC1B,MAAM,WAAW,GAAG,IAAA,wCAAmC,EACrD,IAAI,EACJ,OAAO,CAAC,kBAAkB,CAC3B,CAAC;IACF,IAAA,mCAA0B,EAAC,IAAI,EAAE,OAAO,CAAC,kBAAkB,EAAE;QAC3D,GAAG,WAAW;QACd,OAAO,EAAE;YACP,GAAG,WAAW,EAAE,OAAO;YACvB,IAAI,EAAE;gBACJ,QAAQ,EAAE,iBAAiB;gBAC3B,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,CAAC,QAAQ,CAAC;gBAClB,cAAc,EAAE;oBACd,GAAG,EAAE;wBACH,GAAG,EAAE,IAAI;qBACV;oBACD,WAAW,EAAE;wBACX,KAAK,EAAE,IAAI;qBACZ;iBACF;aACF;SACF;KACF,CAAC,CAAC;IAEH,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,IAAA,uBAAY,EAAC,CAAC,UAAU,EAAE,wBAAwB,EAAE,qBAAqB,CAAC,CAAC,CAC5E,CAAC;IAEF,qCAAqC;IACrC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;IAE7C,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAClC,iCAAiC;QACjC,MAAM,IAAA,qBAAe,EACnB,IAAI,EACJ,gBAAgB,EAChB,iCAAiC,EACjC,oCAAoC,CACrC,CAAC;QAEF,8EAA8E;QAC9E,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,gBAAgB,EAChB,8OAA8O,CAC/O,CAAC;QAEF,uCAAuC;QACvC,MAAM,IAAA,gCAAwB,EAAC,IAAI,EAAE,gBAAgB,EAAE;YACrD,6BAA6B;SAC9B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,CAAC;QAChC,IAAA,qBAAY,EAAC,IAAI,EAAE;YACjB,GAAG,MAAM;YACT,WAAW,EAAE;gBACX,GAAG,MAAM,CAAC,WAAW;gBACrB,MAAM,EAAE;oBACN,SAAS;oBACT,mCAAmC;oBACnC,iCAAiC;iBAClC;aACF;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAxEW,QAAA,eAAe,mBAwE1B;AAEF;;;;;GAKG;AACI,MAAM,wBAAwB,GAAG,KAAK,EAC3C,IAAU,EACV,gBAAwB,EACxB,cAAwB,EACT,EAAE;IACjB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC7C,6CAA6C;QAC7C,2EAA2E;QAC3E,yDAAyD;QACzD,qEAAqE;QACrE,MAAM,IAAA,iBAAW,EACf,IAAI,EACJ,gBAAgB,EAChB;;;qCAG+B,OAAO;;;+DAGmB,OAAO;;wDAEd,OAAO;;kCAE7B,OAAO;;QAEjC,CACH,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AA7BW,QAAA,wBAAwB,4BA6BnC"}
@@ -1 +0,0 @@
1
- `'@nx/dependency-checks': ['error', $rest]` => `'@nx/dependency-checks': ['warn', $rest]`
@@ -1,15 +0,0 @@
1
- import { spawnSync } from 'child_process';
2
-
3
- const ENGINE = '<%= containers %>';
4
- const image = process.argv[2];
5
-
6
- const inspect = spawnSync(ENGINE, ['image', 'inspect', image], {
7
- stdio: 'ignore',
8
- });
9
-
10
- if (inspect.status !== 0) {
11
- const pull = spawnSync(ENGINE, ['pull', image], { stdio: 'inherit' });
12
- if (pull.status !== 0) {
13
- process.exit(pull.status ?? 1);
14
- }
15
- }