@aws/nx-plugin 1.0.0-rc.79 → 1.0.0-rc.80

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 (469) hide show
  1. package/generators.json +10 -0
  2. package/migrations.json +1 -1
  3. package/package.json +1 -1
  4. package/src/agentcore-gateway/agent-connection/generator.d.ts +1 -1
  5. package/src/agentcore-gateway/agent-connection/generator.js.map +1 -1
  6. package/src/agentcore-gateway/agent-connection/schema.d.js.map +1 -1
  7. package/src/agentcore-gateway/agent-connection/schema.d.ts +1 -1
  8. package/src/agentcore-gateway/attach-upstream.js.map +1 -1
  9. package/src/agentcore-gateway/gateway-connection/generator.d.ts +1 -1
  10. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
  11. package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -1
  12. package/src/agentcore-gateway/gateway-connection/schema.d.ts +1 -1
  13. package/src/agentcore-gateway/generator.d.ts +3 -3
  14. package/src/agentcore-gateway/generator.js.map +1 -1
  15. package/src/agentcore-gateway/mcp-connection/generator.d.ts +1 -1
  16. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
  17. package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -1
  18. package/src/agentcore-gateway/mcp-connection/schema.d.ts +1 -1
  19. package/src/agentcore-gateway/react-connection/generator.d.ts +1 -1
  20. package/src/agentcore-gateway/react-connection/generator.js.map +1 -1
  21. package/src/agentcore-gateway/react-connection/schema.d.js.map +1 -1
  22. package/src/agentcore-gateway/react-connection/schema.d.ts +1 -1
  23. package/src/agentcore-gateway/schema.d.js.map +1 -1
  24. package/src/agentcore-gateway/schema.d.ts +1 -1
  25. package/src/agentcore-harness/generator.d.ts +4 -4
  26. package/src/agentcore-harness/generator.js.map +1 -1
  27. package/src/agentcore-harness/schema.d.js.map +1 -1
  28. package/src/agentcore-harness/schema.d.ts +1 -1
  29. package/src/connection/agent-local-dev.d.ts +1 -1
  30. package/src/connection/agent-local-dev.js.map +1 -1
  31. package/src/connection/agent-runtime-config.js.map +1 -1
  32. package/src/connection/gateway-runtime-config.js.map +1 -1
  33. package/src/connection/generator.d.ts +2 -2
  34. package/src/connection/generator.js.map +1 -1
  35. package/src/connection/local-dev.js.map +1 -1
  36. package/src/connection/scaffold-catalog.d.ts +1 -1
  37. package/src/connection/scaffold-catalog.js +6 -6
  38. package/src/connection/scaffold-catalog.js.map +1 -1
  39. package/src/connection/schema-resolver.d.ts +1 -1
  40. package/src/connection/schema-resolver.js.map +1 -1
  41. package/src/index.d.ts +1 -1
  42. package/src/index.js.map +1 -1
  43. package/src/infra/app/generator.d.ts +7 -7
  44. package/src/infra/app/generator.js.map +1 -1
  45. package/src/init/generator.d.ts +3 -3
  46. package/src/init/generator.js.map +1 -1
  47. package/src/init/schema.d.js.map +1 -1
  48. package/src/init/schema.d.ts +2 -2
  49. package/src/internal/test-matrix/generator.js.map +1 -1
  50. package/src/license/config-types.d.ts +2 -2
  51. package/src/license/config-types.js.map +1 -1
  52. package/src/license/config.d.ts +2 -2
  53. package/src/license/config.js.map +1 -1
  54. package/src/license/dependency-check/check.d.ts +2 -2
  55. package/src/license/dependency-check/check.js.map +1 -1
  56. package/src/license/dependency-check/collectors/collector.js.map +1 -1
  57. package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
  58. package/src/license/dependency-check/evaluator.d.ts +1 -1
  59. package/src/license/dependency-check/evaluator.js.map +1 -1
  60. package/src/license/dependency-check/executor.js.map +1 -1
  61. package/src/license/dependency-check/pre-approved.d.ts +1 -1
  62. package/src/license/dependency-check/pre-approved.js.map +1 -1
  63. package/src/license/dependency-check/types.d.ts +1 -1
  64. package/src/license/dependency-check/types.js.map +1 -1
  65. package/src/license/generator.d.ts +1 -1
  66. package/src/license/generator.js.map +1 -1
  67. package/src/license/index.d.ts +4 -4
  68. package/src/license/index.js.map +1 -1
  69. package/src/license/known-exceptions.d.ts +1 -1
  70. package/src/license/known-exceptions.js.map +1 -1
  71. package/src/license/sync/generator.js.map +1 -1
  72. package/src/license/sync/project-file-sync.d.ts +1 -1
  73. package/src/license/sync/project-file-sync.js.map +1 -1
  74. package/src/mcp-server/dev-server.js.map +1 -1
  75. package/src/mcp-server/generator-info.d.ts +3 -3
  76. package/src/mcp-server/generator-info.js.map +1 -1
  77. package/src/mcp-server/guide-pipeline.d.ts +1 -1
  78. package/src/mcp-server/guide-pipeline.js.map +1 -1
  79. package/src/mcp-server/guide-render.js.map +1 -1
  80. package/src/mcp-server/index.js.map +1 -1
  81. package/src/mcp-server/mdx-ast.js.map +1 -1
  82. package/src/mcp-server/server.js.map +1 -1
  83. package/src/mcp-server/tools/add-to-existing-project.d.ts +1 -1
  84. package/src/mcp-server/tools/add-to-existing-project.js.map +1 -1
  85. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  86. package/src/mcp-server/tools/general-guidance.d.ts +1 -1
  87. package/src/mcp-server/tools/general-guidance.js +1 -1
  88. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  89. package/src/mcp-server/tools/generator-guide.d.ts +1 -1
  90. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  91. package/src/mcp-server/tools/list-generators.d.ts +1 -1
  92. package/src/mcp-server/tools/list-generators.js.map +1 -1
  93. package/src/mcp-server/tools/upgrade-workspace.d.ts +1 -1
  94. package/src/mcp-server/tools/upgrade-workspace.js.map +1 -1
  95. package/src/migrations/latest/apt-security-updates-in-container-images/migration.js.map +1 -1
  96. package/src/migrations/latest/dynamodb-configurable-encryption/migration.js.map +1 -1
  97. package/src/migrations/latest/py-agent-ag-ui-hooks/migration.js.map +1 -1
  98. package/src/migrations/latest/py-agent-session-id-middleware-extraction/migration.js.map +1 -1
  99. package/src/migrations/latest/remove-mcp-inspector-license-exceptions/migration.js.map +1 -1
  100. package/src/migrations/latest/static-website-configurable-waf-encryption/migration.js.map +1 -1
  101. package/src/migrations/latest/ts-agent-session-id-middleware-extraction/migration.js.map +1 -1
  102. package/src/migrations/latest/user-identity-configurable-mfa/migration.js.map +1 -1
  103. package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js.map +1 -1
  104. package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js.map +1 -1
  105. package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -1
  106. package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js.map +1 -1
  107. package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js.map +1 -1
  108. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.d.ts +1 -1
  109. package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js.map +1 -1
  110. package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js.map +1 -1
  111. package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js.map +1 -1
  112. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js.map +1 -1
  113. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js.map +1 -1
  114. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js.map +1 -1
  115. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js.map +1 -1
  116. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js.map +1 -1
  117. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js.map +1 -1
  118. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js.map +1 -1
  119. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js.map +1 -1
  120. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js.map +1 -1
  121. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js.map +1 -1
  122. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js.map +1 -1
  123. package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.js.map +1 -1
  124. package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.js.map +1 -1
  125. package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.js.map +1 -1
  126. package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.js.map +1 -1
  127. package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.js.map +1 -1
  128. package/src/open-api/ts-client/generator.d.ts +1 -1
  129. package/src/open-api/ts-client/generator.js.map +1 -1
  130. package/src/open-api/ts-hooks/generator.d.ts +1 -1
  131. package/src/open-api/ts-hooks/generator.js.map +1 -1
  132. package/src/open-api/ts-hooks/generator.spec.tsx +6 -6
  133. package/src/open-api/ts-metadata/generator.d.ts +1 -1
  134. package/src/open-api/ts-metadata/generator.js.map +1 -1
  135. package/src/open-api/utils/codegen-data/languages.d.ts +1 -1
  136. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  137. package/src/open-api/utils/codegen-data.d.ts +2 -2
  138. package/src/open-api/utils/codegen-data.js.map +1 -1
  139. package/src/open-api/utils/normalise.d.ts +1 -1
  140. package/src/open-api/utils/normalise.js.map +1 -1
  141. package/src/open-api/utils/parse.d.ts +1 -1
  142. package/src/open-api/utils/parse.js.map +1 -1
  143. package/src/open-api/utils/parser.d.ts +2 -2
  144. package/src/open-api/utils/parser.js.map +1 -1
  145. package/src/open-api/utils/refs.d.ts +1 -1
  146. package/src/open-api/utils/refs.js.map +1 -1
  147. package/src/preset/generator.d.ts +3 -3
  148. package/src/preset/generator.js.map +1 -1
  149. package/src/preset/schema.d.js.map +1 -1
  150. package/src/preset/schema.d.ts +3 -3
  151. package/src/py/agent/a2a-connection/generator.d.ts +3 -3
  152. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  153. package/src/py/agent/a2a-connection/schema.d.js.map +1 -1
  154. package/src/py/agent/a2a-connection/schema.d.ts +1 -1
  155. package/src/py/agent/gateway-connection/generator.d.ts +3 -3
  156. package/src/py/agent/gateway-connection/generator.js.map +1 -1
  157. package/src/py/agent/gateway-connection/schema.d.js.map +1 -1
  158. package/src/py/agent/gateway-connection/schema.d.ts +1 -1
  159. package/src/py/agent/generator.d.ts +3 -3
  160. package/src/py/agent/generator.js.map +1 -1
  161. package/src/py/agent/mcp-connection/generator.d.ts +3 -3
  162. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  163. package/src/py/agent/mcp-connection/schema.d.js.map +1 -1
  164. package/src/py/agent/mcp-connection/schema.d.ts +1 -1
  165. package/src/py/agent/react-connection/generator.d.ts +12 -12
  166. package/src/py/agent/react-connection/generator.js.map +1 -1
  167. package/src/py/agent/react-connection/local-dev.d.ts +1 -1
  168. package/src/py/agent/react-connection/local-dev.js.map +1 -1
  169. package/src/py/agent/react-connection/schema.d.js.map +1 -1
  170. package/src/py/agent/react-connection/schema.d.ts +1 -1
  171. package/src/py/agent/schema.d.js.map +1 -1
  172. package/src/py/agent/schema.d.ts +1 -1
  173. package/src/py/api/generator.d.ts +1 -1
  174. package/src/py/api/generator.js.map +1 -1
  175. package/src/py/api/schema.d.js.map +1 -1
  176. package/src/py/api/schema.d.ts +1 -1
  177. package/src/py/dynamodb/agent-connection/generator.d.ts +1 -1
  178. package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
  179. package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -1
  180. package/src/py/dynamodb/agent-connection/schema.d.ts +1 -1
  181. package/src/py/dynamodb/fast-api-connection/generator.d.ts +1 -1
  182. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
  183. package/src/py/dynamodb/generator.d.ts +4 -4
  184. package/src/py/dynamodb/generator.js.map +1 -1
  185. package/src/py/dynamodb/mcp-server-connection/generator.d.ts +1 -1
  186. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
  187. package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -1
  188. package/src/py/dynamodb/mcp-server-connection/schema.d.ts +1 -1
  189. package/src/py/dynamodb/schema.d.js.map +1 -1
  190. package/src/py/dynamodb/schema.d.ts +1 -1
  191. package/src/py/fast-api/generator.d.ts +3 -3
  192. package/src/py/fast-api/generator.js.map +1 -1
  193. package/src/py/fast-api/react/generator.d.ts +3 -3
  194. package/src/py/fast-api/react/generator.js.map +1 -1
  195. package/src/py/fast-api/react/open-api.js.map +1 -1
  196. package/src/py/fast-api/schema.d.js.map +1 -1
  197. package/src/py/fast-api/schema.d.ts +1 -1
  198. package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +1 -1
  199. package/src/py/lambda-function/generator.d.ts +10 -4
  200. package/src/py/lambda-function/generator.js +8 -1
  201. package/src/py/lambda-function/generator.js.map +1 -1
  202. package/src/py/lambda-function/schema.d.js.map +1 -1
  203. package/src/py/lambda-function/schema.d.ts +2 -2
  204. package/src/py/lambda-function/schema.json +1 -1
  205. package/src/py/mcp-server/generator.d.ts +3 -3
  206. package/src/py/mcp-server/generator.js.map +1 -1
  207. package/src/py/mcp-server/schema.d.js.map +1 -1
  208. package/src/py/mcp-server/schema.d.ts +1 -1
  209. package/src/py/project/generator.d.ts +2 -2
  210. package/src/py/project/generator.js.map +1 -1
  211. package/src/py/project/schema.json +1 -0
  212. package/src/py/rdb/agent-connection/generator.d.ts +1 -1
  213. package/src/py/rdb/agent-connection/generator.js.map +1 -1
  214. package/src/py/rdb/agent-connection/schema.d.js.map +1 -1
  215. package/src/py/rdb/agent-connection/schema.d.ts +1 -1
  216. package/src/py/rdb/fast-api-connection/generator.d.ts +1 -1
  217. package/src/py/rdb/fast-api-connection/generator.js.map +1 -1
  218. package/src/py/rdb/generator.d.ts +3 -3
  219. package/src/py/rdb/generator.js.map +1 -1
  220. package/src/py/rdb/mcp-server-connection/generator.d.ts +1 -1
  221. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -1
  222. package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -1
  223. package/src/py/rdb/mcp-server-connection/schema.d.ts +1 -1
  224. package/src/sdk/agentcore-gateway.d.ts +1 -1
  225. package/src/sdk/agentcore-gateway.js.map +1 -1
  226. package/src/sdk/agentcore-harness.d.ts +1 -1
  227. package/src/sdk/agentcore-harness.js.map +1 -1
  228. package/src/sdk/connection.d.ts +1 -1
  229. package/src/sdk/connection.js.map +1 -1
  230. package/src/sdk/license.d.ts +3 -3
  231. package/src/sdk/license.js.map +1 -1
  232. package/src/sdk/open-api.d.ts +3 -3
  233. package/src/sdk/open-api.js.map +1 -1
  234. package/src/sdk/py.d.ts +7 -7
  235. package/src/sdk/py.js.map +1 -1
  236. package/src/sdk/smithy.d.ts +1 -1
  237. package/src/sdk/smithy.js.map +1 -1
  238. package/src/sdk/terraform.d.ts +1 -1
  239. package/src/sdk/terraform.js.map +1 -1
  240. package/src/sdk/ts.d.ts +18 -18
  241. package/src/sdk/ts.js.map +1 -1
  242. package/src/sdk/utils/ast.d.ts +1 -1
  243. package/src/sdk/utils/ast.js.map +1 -1
  244. package/src/sdk/utils/format.d.ts +1 -1
  245. package/src/sdk/utils/format.js.map +1 -1
  246. package/src/sdk/utils/test.d.ts +1 -1
  247. package/src/sdk/utils/test.js.map +1 -1
  248. package/src/smithy/project/generator.d.ts +4 -4
  249. package/src/smithy/project/generator.js.map +1 -1
  250. package/src/smithy/react-connection/generator.d.ts +3 -3
  251. package/src/smithy/react-connection/generator.js.map +1 -1
  252. package/src/smithy/ts/api/generator.d.ts +3 -3
  253. package/src/smithy/ts/api/generator.js.map +1 -1
  254. package/src/smithy/ts/api/schema.d.js.map +1 -1
  255. package/src/smithy/ts/api/schema.d.ts +1 -1
  256. package/src/terraform/project/generator.d.ts +5 -5
  257. package/src/terraform/project/generator.js.map +1 -1
  258. package/src/trpc/backend/generator.d.ts +3 -3
  259. package/src/trpc/backend/generator.js.map +1 -1
  260. package/src/trpc/backend/schema.d.js.map +1 -1
  261. package/src/trpc/backend/schema.d.ts +1 -1
  262. package/src/trpc/react/generator.d.ts +3 -3
  263. package/src/trpc/react/generator.js.map +1 -1
  264. package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
  265. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  266. package/src/ts/agent/a2a-connection/schema.d.js.map +1 -1
  267. package/src/ts/agent/a2a-connection/schema.d.ts +1 -1
  268. package/src/ts/agent/gateway-connection/generator.d.ts +3 -3
  269. package/src/ts/agent/gateway-connection/generator.js.map +1 -1
  270. package/src/ts/agent/gateway-connection/schema.d.js.map +1 -1
  271. package/src/ts/agent/gateway-connection/schema.d.ts +1 -1
  272. package/src/ts/agent/generator.d.ts +3 -3
  273. package/src/ts/agent/generator.js.map +1 -1
  274. package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
  275. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  276. package/src/ts/agent/mcp-connection/schema.d.js.map +1 -1
  277. package/src/ts/agent/mcp-connection/schema.d.ts +1 -1
  278. package/src/ts/agent/react-connection/generator.d.ts +11 -11
  279. package/src/ts/agent/react-connection/generator.js.map +1 -1
  280. package/src/ts/agent/react-connection/local-dev.d.ts +1 -1
  281. package/src/ts/agent/react-connection/local-dev.js.map +1 -1
  282. package/src/ts/agent/react-connection/schema.d.js.map +1 -1
  283. package/src/ts/agent/react-connection/schema.d.ts +1 -1
  284. package/src/ts/agent/schema.d.js.map +1 -1
  285. package/src/ts/agent/schema.d.ts +1 -1
  286. package/src/ts/api/generator.d.ts +1 -1
  287. package/src/ts/api/generator.js.map +1 -1
  288. package/src/ts/api/schema.d.js.map +1 -1
  289. package/src/ts/api/schema.d.ts +1 -1
  290. package/src/ts/astro-docs/generator.d.ts +3 -3
  291. package/src/ts/astro-docs/generator.js.map +1 -1
  292. package/src/ts/dcr-proxy/generator.d.ts +5 -5
  293. package/src/ts/dcr-proxy/generator.js.map +1 -1
  294. package/src/ts/dcr-proxy/schema.d.js.map +1 -1
  295. package/src/ts/dcr-proxy/schema.d.ts +1 -1
  296. package/src/ts/docs/generator.d.ts +1 -1
  297. package/src/ts/docs/generator.js.map +1 -1
  298. package/src/ts/dynamodb/agent-connection/generator.d.ts +1 -1
  299. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  300. package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -1
  301. package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -1
  302. package/src/ts/dynamodb/generator.d.ts +5 -5
  303. package/src/ts/dynamodb/generator.js +1 -0
  304. package/src/ts/dynamodb/generator.js.map +1 -1
  305. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +1 -1
  306. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  307. package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -1
  308. package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -1
  309. package/src/ts/dynamodb/schema.d.js.map +1 -1
  310. package/src/ts/dynamodb/schema.d.ts +1 -1
  311. package/src/ts/dynamodb/smithy-connection/generator.d.ts +1 -1
  312. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  313. package/src/ts/dynamodb/trpc-connection/generator.d.ts +1 -1
  314. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  315. package/src/ts/lambda-function/generator.d.ts +5 -5
  316. package/src/ts/lambda-function/generator.js.map +1 -1
  317. package/src/ts/lambda-function/schema.d.js.map +1 -1
  318. package/src/ts/lambda-function/schema.d.ts +1 -1
  319. package/src/ts/lib/biome.d.ts +1 -1
  320. package/src/ts/lib/biome.js.map +1 -1
  321. package/src/ts/lib/generator.d.ts +3 -3
  322. package/src/ts/lib/generator.js.map +1 -1
  323. package/src/ts/lib/ts-project-utils.d.ts +3 -3
  324. package/src/ts/lib/ts-project-utils.js.map +1 -1
  325. package/src/ts/lib/vitest.d.ts +2 -2
  326. package/src/ts/lib/vitest.js.map +1 -1
  327. package/src/ts/mcp-server/generator.d.ts +3 -3
  328. package/src/ts/mcp-server/generator.js.map +1 -1
  329. package/src/ts/mcp-server/schema.d.js.map +1 -1
  330. package/src/ts/mcp-server/schema.d.ts +1 -1
  331. package/src/ts/nx-generator/generator.d.ts +2 -2
  332. package/src/ts/nx-generator/generator.js.map +1 -1
  333. package/src/ts/nx-migration/generator.d.ts +3 -3
  334. package/src/ts/nx-migration/generator.js.map +1 -1
  335. package/src/ts/nx-plugin/generator.d.ts +3 -3
  336. package/src/ts/nx-plugin/generator.js.map +1 -1
  337. package/src/ts/nx-plugin/utils.d.ts +1 -1
  338. package/src/ts/nx-plugin/utils.js.map +1 -1
  339. package/src/ts/rdb/agent-connection/generator.d.ts +1 -1
  340. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  341. package/src/ts/rdb/agent-connection/schema.d.js.map +1 -1
  342. package/src/ts/rdb/agent-connection/schema.d.ts +1 -1
  343. package/src/ts/rdb/generator.d.ts +4 -4
  344. package/src/ts/rdb/generator.js +1 -0
  345. package/src/ts/rdb/generator.js.map +1 -1
  346. package/src/ts/rdb/mcp-server-connection/generator.d.ts +1 -1
  347. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  348. package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -1
  349. package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -1
  350. package/src/ts/rdb/schema.d.js.map +1 -1
  351. package/src/ts/rdb/schema.d.ts +1 -1
  352. package/src/ts/rdb/smithy-connection/generator.d.ts +1 -1
  353. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  354. package/src/ts/rdb/trpc-connection/generator.d.ts +1 -1
  355. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  356. package/src/ts/react-website/agui/generator.d.ts +2 -2
  357. package/src/ts/react-website/agui/generator.js.map +1 -1
  358. package/src/ts/react-website/app/generator.d.ts +3 -3
  359. package/src/ts/react-website/app/generator.js.map +1 -1
  360. package/src/ts/react-website/app/schema.d.js.map +1 -1
  361. package/src/ts/react-website/app/schema.d.ts +2 -2
  362. package/src/ts/react-website/cognito-auth/generator.d.ts +5 -5
  363. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  364. package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -1
  365. package/src/ts/react-website/cognito-auth/schema.d.ts +1 -1
  366. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  367. package/src/ts/react-website/runtime-config/generator.d.ts +1 -1
  368. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  369. package/src/ts/sync/generator.d.ts +1 -1
  370. package/src/ts/sync/generator.js.map +1 -1
  371. package/src/ts/website/app/generator.d.ts +1 -1
  372. package/src/ts/website/app/generator.js.map +1 -1
  373. package/src/ts/website/app/schema.d.js.map +1 -1
  374. package/src/ts/website/app/schema.d.ts +2 -2
  375. package/src/ts/website/auth/generator.d.ts +1 -1
  376. package/src/ts/website/auth/generator.js.map +1 -1
  377. package/src/ts/website/auth/schema.d.js.map +1 -1
  378. package/src/ts/website/auth/schema.d.ts +1 -1
  379. package/src/utils/add-dependencies.d.ts +1 -1
  380. package/src/utils/add-dependencies.js.map +1 -1
  381. package/src/utils/agent-chat/agent-chat.js.map +1 -1
  382. package/src/utils/agent-connection/agent-connection.d.ts +2 -2
  383. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  384. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +4 -4
  385. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  386. package/src/utils/api-constructs/api-constructs.d.ts +3 -3
  387. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  388. package/src/utils/api-constructs/open-api-metadata.d.ts +1 -1
  389. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  390. package/src/utils/ast/website.js.map +1 -1
  391. package/src/utils/ast.js +6 -0
  392. package/src/utils/ast.js.map +1 -1
  393. package/src/utils/bundle/bundle.d.ts +1 -1
  394. package/src/utils/bundle/bundle.js.map +1 -1
  395. package/src/utils/commands.d.ts +1 -1
  396. package/src/utils/commands.js.map +1 -1
  397. package/src/utils/config/index.d.ts +6 -6
  398. package/src/utils/config/index.js.map +1 -1
  399. package/src/utils/config/utils.d.ts +1 -1
  400. package/src/utils/config/utils.js.map +1 -1
  401. package/src/utils/connection/open-api/react.d.ts +1 -1
  402. package/src/utils/connection/open-api/react.js.map +1 -1
  403. package/src/utils/containers.js.map +1 -1
  404. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +1 -1
  405. package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -1
  406. package/src/utils/declared-dependencies.d.ts +1 -1
  407. package/src/utils/declared-dependencies.js.map +1 -1
  408. package/src/utils/dependencies.js.map +1 -1
  409. package/src/utils/docker.d.ts +1 -1
  410. package/src/utils/docker.js.map +1 -1
  411. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +1 -1
  412. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  413. package/src/utils/format.js.map +1 -1
  414. package/src/utils/fs.d.ts +1 -1
  415. package/src/utils/fs.js.map +1 -1
  416. package/src/utils/function-constructs/function-constructs.d.ts +1 -1
  417. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  418. package/src/utils/iac.d.ts +2 -2
  419. package/src/utils/iac.js.map +1 -1
  420. package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
  421. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  422. package/src/utils/init.d.ts +3 -3
  423. package/src/utils/init.js.map +1 -1
  424. package/src/utils/install.d.ts +1 -1
  425. package/src/utils/install.js.map +1 -1
  426. package/src/utils/mcp.js.map +1 -1
  427. package/src/utils/metrics.d.ts +1 -1
  428. package/src/utils/metrics.js.map +1 -1
  429. package/src/utils/migration-manifest.d.ts +1 -1
  430. package/src/utils/migration-manifest.js.map +1 -1
  431. package/src/utils/nx.d.ts +3 -3
  432. package/src/utils/nx.js.map +1 -1
  433. package/src/utils/paths.js.map +1 -1
  434. package/src/utils/pkg-manager.d.ts +1 -1
  435. package/src/utils/pkg-manager.js.map +1 -1
  436. package/src/utils/pnpm-workspace.js.map +1 -1
  437. package/src/utils/project-package-json.js.map +1 -1
  438. package/src/utils/py.d.ts +2 -2
  439. package/src/utils/py.js.map +1 -1
  440. package/src/utils/rdb-constructs/rdb-constructs.d.ts +2 -2
  441. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  442. package/src/utils/shared-constructs-constants.js.map +1 -1
  443. package/src/utils/shared-constructs.d.ts +3 -3
  444. package/src/utils/shared-constructs.js.map +1 -1
  445. package/src/utils/shared-dynamodb-scripts.d.ts +1 -1
  446. package/src/utils/shared-dynamodb-scripts.js.map +1 -1
  447. package/src/utils/shared-infra-config.js.map +1 -1
  448. package/src/utils/shared-infra-scripts.d.ts +2 -2
  449. package/src/utils/shared-infra-scripts.js.map +1 -1
  450. package/src/utils/shared-rdb-scripts.d.ts +1 -1
  451. package/src/utils/shared-rdb-scripts.js.map +1 -1
  452. package/src/utils/shared-scripts.js.map +1 -1
  453. package/src/utils/shared-shadcn.d.ts +1 -1
  454. package/src/utils/shared-shadcn.js.map +1 -1
  455. package/src/utils/smithy.js.map +1 -1
  456. package/src/utils/test.js.map +1 -1
  457. package/src/utils/version-upgrade-migration/migration.js.map +1 -1
  458. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -1
  459. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +1 -1
  460. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -1
  461. package/src/utils/version-upgrade-migration/register.js.map +1 -1
  462. package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +1 -1
  463. package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -1
  464. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -1
  465. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -1
  466. package/src/utils/versions.d.ts +1 -1
  467. package/src/utils/versions.js.map +1 -1
  468. package/src/utils/website-constructs/website-constructs.d.ts +2 -2
  469. package/src/utils/website-constructs/website-constructs.js.map +1 -1
@@ -3,9 +3,9 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type GeneratorCallback, type Tree } from '@nx/devkit';
6
- import { type NxGeneratorInfo } from '../../utils/nx';
6
+ import { type NxGeneratorInfo } from '../../utils/nx.js';
7
7
  import type { TsDynamoDBGeneratorSchema } from './schema';
8
- export declare const DEPENDENCIES: import("../../utils/declared-dependencies").DependencyDeclaration<readonly [{
8
+ export declare const DEPENDENCIES: import("../../utils/declared-dependencies.js").DependencyDeclaration<readonly [{
9
9
  readonly name: "@aws-sdk/client-dynamodb";
10
10
  }, {
11
11
  readonly name: "electrodb";
@@ -25,12 +25,12 @@ export declare const DEPENDENCIES: import("../../utils/declared-dependencies").D
25
25
  readonly root: true;
26
26
  }, {
27
27
  readonly name: "constructs";
28
- readonly when: (m: import("../../utils/shared-constructs-constants").IacMetadata) => boolean;
28
+ readonly when: (m: import("../../utils/shared-constructs-constants.js").IacMetadata) => boolean;
29
29
  } & {
30
30
  versionOnly: true;
31
31
  }, {
32
32
  readonly name: "aws-cdk-lib";
33
- readonly when: (m: import("../../utils/shared-constructs-constants").IacMetadata) => boolean;
33
+ readonly when: (m: import("../../utils/shared-constructs-constants.js").IacMetadata) => boolean;
34
34
  } & {
35
35
  versionOnly: true;
36
36
  }, {
@@ -45,7 +45,7 @@ export declare const DEPENDENCIES: import("../../utils/declared-dependencies").D
45
45
  readonly name: "tsx";
46
46
  } & {
47
47
  versionOnly: true;
48
- }], readonly import("../../utils/declared-dependencies").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
48
+ }], readonly import("../../utils/declared-dependencies.js").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
49
49
  export declare const TS_DYNAMODB_GENERATOR_INFO: NxGeneratorInfo;
50
50
  export declare const tsDynamoDBGenerator: (tree: Tree, options: TsDynamoDBGeneratorSchema) => Promise<GeneratorCallback>;
51
51
  export default tsDynamoDBGenerator;
@@ -74,6 +74,7 @@ export const tsDynamoDBGenerator = async (tree, options)=>{
74
74
  await tsProjectGenerator(tree, {
75
75
  name: options.name,
76
76
  directory: options.directory,
77
+ subDirectory: options.subDirectory,
77
78
  preferInstallDependencies: false
78
79
  });
79
80
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/dynamodb/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { relative } from 'node:path';\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n readProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addTsDependencies } from '../../utils/add-dependencies';\nimport { resolveContainers } from '../../utils/containers';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies';\nimport { addDynamoDBInfra } from '../../utils/dynamodb-constructs/dynamodb-constructs';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { resolveIac } from '../../utils/iac';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { esmVars } from '../../utils/module-format';\nimport { kebabCase, toClassName } from '../../utils/names';\nimport { getNpmScope } from '../../utils/npm-scope';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n} from '../../utils/nx';\nimport { assignSharedPort } from '../../utils/port';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs';\nimport {\n DYNAMODB_GENERATOR_IDS,\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from '../../utils/shared-constructs-constants';\nimport {\n SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES,\n sharedDynamoDBScriptsGenerator,\n} from '../../utils/shared-dynamodb-scripts';\nimport tsProjectGenerator, { getTsLibDetails } from '../lib/generator';\nimport type { TsDynamoDBGeneratorSchema } from './schema';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [\n { name: '@aws-sdk/client-dynamodb' },\n { name: 'electrodb' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@aws-sdk/client-appconfigdata' },\n { name: '@types/aws-lambda', dev: true },\n { name: '@types/node', dev: true },\n // tsx runs the local-dev scripts from the workspace root.\n { name: 'tsx', dev: true, root: true },\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ...ownedElsewhere(SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES),\n ],\n});\n\nexport const TS_DYNAMODB_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const tsDynamoDBGenerator = async (\n tree: Tree,\n options: TsDynamoDBGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const nameKebabCase = kebabCase(options.name);\n const nameClassName = toClassName(options.name);\n const localTableName = `${getNpmScope(tree)}-${kebabCase(options.tableName ?? options.name)}`;\n const containerEngine = await resolveContainers(tree, 'inherit');\n const { fullyQualifiedName, dir } = getTsLibDetails(tree, {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n });\n\n let projectExists: boolean;\n try {\n readProjectConfiguration(tree, fullyQualifiedName);\n projectExists = true;\n } catch {\n projectExists = false;\n }\n\n if (!projectExists) {\n await tsProjectGenerator(tree, {\n name: options.name,\n directory: options.directory,\n preferInstallDependencies: false,\n });\n }\n\n const projectConfig = readProjectConfiguration(tree, fullyQualifiedName);\n\n const localDynamoDBPort = assignSharedPort(\n tree,\n projectConfig,\n DYNAMODB_GENERATOR_IDS,\n 8000,\n );\n\n const containerName = `${getNpmScope(tree)}-dynamodb`;\n\n const templateOptions = {\n runtimeConfigKey: nameClassName,\n localDynamoDBPort,\n localTableName,\n containerName,\n containerEngine,\n ...esmVars(tree),\n };\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n dir,\n templateOptions,\n );\n\n await sharedDynamoDBScriptsGenerator(tree, DEPENDENCIES);\n\n const scriptsDir = relative(\n dir,\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'src', 'dynamodb'),\n );\n\n projectConfig.targets['pull-image'] = {\n executor: 'nx:run-commands',\n options: {\n command: `tsx ${scriptsDir}/pull-image.ts`,\n cwd: '{projectRoot}',\n },\n };\n projectConfig.targets['dev'] = {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n commands: [\n `tsx ${scriptsDir}/start-container.ts`,\n `tsx ${scriptsDir}/create-local-table.ts`,\n ],\n parallel: true,\n cwd: '{projectRoot}',\n },\n };\n\n updateProjectConfiguration(tree, fullyQualifiedName, projectConfig);\n // Recorded so the version sync can tell a CDK project from a Terraform one;\n // undefined when no infrastructure was generated.\n const iac =\n options.infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n addGeneratorMetadata(\n tree,\n fullyQualifiedName,\n TS_DYNAMODB_GENERATOR_INFO,\n iac ? { iac } : {},\n );\n\n if (options.infra !== 'none') {\n await sharedConstructsGenerator(tree, { iac }, DEPENDENCIES);\n await addDynamoDBInfra(tree, {\n iac,\n projectName: fullyQualifiedName,\n nameClassName,\n nameKebabCase,\n tableName: localTableName,\n projectRoot: dir,\n });\n }\n\n addTsDependencies(tree, DEPENDENCIES, { projectRoot: dir });\n\n await addGeneratorMetricsIfApplicable(tree, [TS_DYNAMODB_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nexport default tsDynamoDBGenerator;\n"],"names":["relative","generateFiles","joinPathFragments","readProjectConfiguration","updateProjectConfiguration","addTsDependencies","resolveContainers","declareDependencies","ownedElsewhere","addDynamoDBInfra","formatFilesInSubtree","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","esmVars","kebabCase","toClassName","getNpmScope","addGeneratorMetadata","getGeneratorInfo","assignSharedPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","DYNAMODB_GENERATOR_IDS","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES","sharedDynamoDBScriptsGenerator","tsProjectGenerator","getTsLibDetails","DEPENDENCIES","ts","name","dev","root","TS_DYNAMODB_GENERATOR_INFO","filename","tsDynamoDBGenerator","tree","options","nameKebabCase","nameClassName","localTableName","tableName","containerEngine","fullyQualifiedName","dir","directory","subDirectory","projectExists","preferInstallDependencies","projectConfig","localDynamoDBPort","containerName","templateOptions","runtimeConfigKey","dirname","scriptsDir","targets","executor","command","cwd","continuous","commands","parallel","iac","infra","undefined","projectName","projectRoot","languages"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/dynamodb/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { relative } from 'node:path';\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n readProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { addTsDependencies } from '../../utils/add-dependencies.js';\nimport { resolveContainers } from '../../utils/containers.js';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies.js';\nimport { addDynamoDBInfra } from '../../utils/dynamodb-constructs/dynamodb-constructs.js';\nimport { formatFilesInSubtree } from '../../utils/format.js';\nimport { resolveIac } from '../../utils/iac.js';\nimport { installDependencies } from '../../utils/install.js';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics.js';\nimport { esmVars } from '../../utils/module-format.js';\nimport { kebabCase, toClassName } from '../../utils/names.js';\nimport { getNpmScope } from '../../utils/npm-scope.js';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n} from '../../utils/nx.js';\nimport { assignSharedPort } from '../../utils/port.js';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs.js';\nimport {\n DYNAMODB_GENERATOR_IDS,\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from '../../utils/shared-constructs-constants.js';\nimport {\n SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES,\n sharedDynamoDBScriptsGenerator,\n} from '../../utils/shared-dynamodb-scripts.js';\nimport tsProjectGenerator, { getTsLibDetails } from '../lib/generator.js';\nimport type { TsDynamoDBGeneratorSchema } from './schema';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [\n { name: '@aws-sdk/client-dynamodb' },\n { name: 'electrodb' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@aws-sdk/client-appconfigdata' },\n { name: '@types/aws-lambda', dev: true },\n { name: '@types/node', dev: true },\n // tsx runs the local-dev scripts from the workspace root.\n { name: 'tsx', dev: true, root: true },\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ...ownedElsewhere(SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES),\n ],\n});\n\nexport const TS_DYNAMODB_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const tsDynamoDBGenerator = async (\n tree: Tree,\n options: TsDynamoDBGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const nameKebabCase = kebabCase(options.name);\n const nameClassName = toClassName(options.name);\n const localTableName = `${getNpmScope(tree)}-${kebabCase(options.tableName ?? options.name)}`;\n const containerEngine = await resolveContainers(tree, 'inherit');\n const { fullyQualifiedName, dir } = getTsLibDetails(tree, {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n });\n\n let projectExists: boolean;\n try {\n readProjectConfiguration(tree, fullyQualifiedName);\n projectExists = true;\n } catch {\n projectExists = false;\n }\n\n if (!projectExists) {\n await tsProjectGenerator(tree, {\n name: options.name,\n directory: options.directory,\n subDirectory: options.subDirectory,\n preferInstallDependencies: false,\n });\n }\n\n const projectConfig = readProjectConfiguration(tree, fullyQualifiedName);\n\n const localDynamoDBPort = assignSharedPort(\n tree,\n projectConfig,\n DYNAMODB_GENERATOR_IDS,\n 8000,\n );\n\n const containerName = `${getNpmScope(tree)}-dynamodb`;\n\n const templateOptions = {\n runtimeConfigKey: nameClassName,\n localDynamoDBPort,\n localTableName,\n containerName,\n containerEngine,\n ...esmVars(tree),\n };\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n dir,\n templateOptions,\n );\n\n await sharedDynamoDBScriptsGenerator(tree, DEPENDENCIES);\n\n const scriptsDir = relative(\n dir,\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'src', 'dynamodb'),\n );\n\n projectConfig.targets['pull-image'] = {\n executor: 'nx:run-commands',\n options: {\n command: `tsx ${scriptsDir}/pull-image.ts`,\n cwd: '{projectRoot}',\n },\n };\n projectConfig.targets['dev'] = {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n commands: [\n `tsx ${scriptsDir}/start-container.ts`,\n `tsx ${scriptsDir}/create-local-table.ts`,\n ],\n parallel: true,\n cwd: '{projectRoot}',\n },\n };\n\n updateProjectConfiguration(tree, fullyQualifiedName, projectConfig);\n // Recorded so the version sync can tell a CDK project from a Terraform one;\n // undefined when no infrastructure was generated.\n const iac =\n options.infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n addGeneratorMetadata(\n tree,\n fullyQualifiedName,\n TS_DYNAMODB_GENERATOR_INFO,\n iac ? { iac } : {},\n );\n\n if (options.infra !== 'none') {\n await sharedConstructsGenerator(tree, { iac }, DEPENDENCIES);\n await addDynamoDBInfra(tree, {\n iac,\n projectName: fullyQualifiedName,\n nameClassName,\n nameKebabCase,\n tableName: localTableName,\n projectRoot: dir,\n });\n }\n\n addTsDependencies(tree, DEPENDENCIES, { projectRoot: dir });\n\n await addGeneratorMetricsIfApplicable(tree, [TS_DYNAMODB_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nexport default tsDynamoDBGenerator;\n"],"names":["relative","generateFiles","joinPathFragments","readProjectConfiguration","updateProjectConfiguration","addTsDependencies","resolveContainers","declareDependencies","ownedElsewhere","addDynamoDBInfra","formatFilesInSubtree","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","esmVars","kebabCase","toClassName","getNpmScope","addGeneratorMetadata","getGeneratorInfo","assignSharedPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","DYNAMODB_GENERATOR_IDS","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES","sharedDynamoDBScriptsGenerator","tsProjectGenerator","getTsLibDetails","DEPENDENCIES","ts","name","dev","root","TS_DYNAMODB_GENERATOR_INFO","filename","tsDynamoDBGenerator","tree","options","nameKebabCase","nameClassName","localTableName","tableName","containerEngine","fullyQualifiedName","dir","directory","subDirectory","projectExists","preferInstallDependencies","projectConfig","localDynamoDBPort","containerName","templateOptions","runtimeConfigKey","dirname","scriptsDir","targets","executor","command","cwd","continuous","commands","parallel","iac","infra","undefined","projectName","projectRoot","languages"],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- import { type NxGeneratorInfo } from '../../../utils/nx';
6
+ import { type NxGeneratorInfo } from '../../../utils/nx.js';
7
7
  import type { TsDynamoDBMcpServerConnectionGeneratorSchema } from './schema';
8
8
  export declare const TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
9
9
  export declare const tsDynamoDBMcpServerConnectionGenerator: (tree: Tree, options: TsDynamoDBMcpServerConnectionGeneratorSchema) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/mcp-server-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateProjectConfiguration } from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport {\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport type { TsDynamoDBMcpServerConnectionGeneratorSchema } from './schema';\n\nexport const TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const tsDynamoDBMcpServerConnectionGenerator = async (\n tree: Tree,\n options: TsDynamoDBMcpServerConnectionGeneratorSchema,\n): Promise<void> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n const mcpServerName = options.sourceComponent?.name ?? 'mcp-server';\n const devTarget = `${mcpServerName}-dev`;\n\n if (sourceProject.targets?.[devTarget]) {\n addDependencyToTargetIfNotPresent(sourceProject, devTarget, {\n projects: [targetProject.name],\n target: 'dev',\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n // Recorded so the version sync can identify this connection.\n addComponentGeneratorMetadata(\n tree,\n sourceProject.name,\n TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO,\n targetProject.root,\n `${mcpServerName}-${targetProject.name}`,\n // The source component this connection is made from, so the pair is\n // identifiable rather than just the two projects.\n { sourcePath: options.sourceComponent?.path },\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO,\n ]);\n await formatFilesInSubtree(tree);\n};\n\nexport default tsDynamoDBMcpServerConnectionGenerator;\n"],"names":["updateProjectConfiguration","formatFilesInSubtree","addGeneratorMetricsIfApplicable","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO","filename","tsDynamoDBMcpServerConnectionGenerator","tree","options","sourceProject","targetProject","mcpServerName","sourceComponent","name","devTarget","targets","projects","target","root","sourcePath","path"],"mappings":"AAAA;;;CAGC,GACD,SAAoBA,0BAA0B,QAAQ,aAAa;AACnE,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,+BAA+B,QAAQ,4BAAyB;AACzE,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,gBAAgB,EAEhBC,mCAAmC,QAC9B,uBAAoB;AAG3B,OAAO,MAAMC,mDACXF,iBAAiB,YAAYG,QAAQ,EAAE;AAEzC,OAAO,MAAMC,yCAAyC,OACpDC,MACAC;IAEA,MAAMC,gBAAgBN,oCACpBI,MACAC,QAAQC,aAAa;IAEvB,MAAMC,gBAAgBP,oCACpBI,MACAC,QAAQE,aAAa;IAGvB,MAAMC,gBAAgBH,QAAQI,eAAe,EAAEC,QAAQ;IACvD,MAAMC,YAAY,GAAGH,cAAc,IAAI,CAAC;IAExC,IAAIF,cAAcM,OAAO,EAAE,CAACD,UAAU,EAAE;QACtCb,kCAAkCQ,eAAeK,WAAW;YAC1DE,UAAU;gBAACN,cAAcG,IAAI;aAAC;YAC9BI,QAAQ;QACV;QACApB,2BAA2BU,MAAME,cAAcI,IAAI,EAAEJ;IACvD;IAEA,6DAA6D;IAC7DT,8BACEO,MACAE,cAAcI,IAAI,EAClBT,kDACAM,cAAcQ,IAAI,EAClB,GAAGP,cAAc,CAAC,EAAED,cAAcG,IAAI,EAAE,EACxC,oEAAoE;IACpE,kDAAkD;IAClD;QAAEM,YAAYX,QAAQI,eAAe,EAAEQ;IAAK;IAG9C,MAAMrB,gCAAgCQ,MAAM;QAC1CH;KACD;IACD,MAAMN,qBAAqBS;AAC7B,EAAE;AAEF,eAAeD,uCAAuC"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/mcp-server-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateProjectConfiguration } from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics.js';\nimport {\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx.js';\nimport type { TsDynamoDBMcpServerConnectionGeneratorSchema } from './schema';\n\nexport const TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const tsDynamoDBMcpServerConnectionGenerator = async (\n tree: Tree,\n options: TsDynamoDBMcpServerConnectionGeneratorSchema,\n): Promise<void> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n const mcpServerName = options.sourceComponent?.name ?? 'mcp-server';\n const devTarget = `${mcpServerName}-dev`;\n\n if (sourceProject.targets?.[devTarget]) {\n addDependencyToTargetIfNotPresent(sourceProject, devTarget, {\n projects: [targetProject.name],\n target: 'dev',\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n // Recorded so the version sync can identify this connection.\n addComponentGeneratorMetadata(\n tree,\n sourceProject.name,\n TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO,\n targetProject.root,\n `${mcpServerName}-${targetProject.name}`,\n // The source component this connection is made from, so the pair is\n // identifiable rather than just the two projects.\n { sourcePath: options.sourceComponent?.path },\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO,\n ]);\n await formatFilesInSubtree(tree);\n};\n\nexport default tsDynamoDBMcpServerConnectionGenerator;\n"],"names":["updateProjectConfiguration","formatFilesInSubtree","addGeneratorMetricsIfApplicable","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","TS_DYNAMODB_MCP_SERVER_CONNECTION_GENERATOR_INFO","filename","tsDynamoDBMcpServerConnectionGenerator","tree","options","sourceProject","targetProject","mcpServerName","sourceComponent","name","devTarget","targets","projects","target","root","sourcePath","path"],"mappings":"AAAA;;;CAGC,GACD,SAAoBA,0BAA0B,QAAQ,aAAa;AACnE,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,+BAA+B,QAAQ,4BAA4B;AAC5E,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,gBAAgB,EAEhBC,mCAAmC,QAC9B,uBAAuB;AAG9B,OAAO,MAAMC,mDACXF,iBAAiB,YAAYG,QAAQ,EAAE;AAEzC,OAAO,MAAMC,yCAAyC,OACpDC,MACAC;IAEA,MAAMC,gBAAgBN,oCACpBI,MACAC,QAAQC,aAAa;IAEvB,MAAMC,gBAAgBP,oCACpBI,MACAC,QAAQE,aAAa;IAGvB,MAAMC,gBAAgBH,QAAQI,eAAe,EAAEC,QAAQ;IACvD,MAAMC,YAAY,GAAGH,cAAc,IAAI,CAAC;IAExC,IAAIF,cAAcM,OAAO,EAAE,CAACD,UAAU,EAAE;QACtCb,kCAAkCQ,eAAeK,WAAW;YAC1DE,UAAU;gBAACN,cAAcG,IAAI;aAAC;YAC9BI,QAAQ;QACV;QACApB,2BAA2BU,MAAME,cAAcI,IAAI,EAAEJ;IACvD;IAEA,6DAA6D;IAC7DT,8BACEO,MACAE,cAAcI,IAAI,EAClBT,kDACAM,cAAcQ,IAAI,EAClB,GAAGP,cAAc,CAAC,EAAED,cAAcG,IAAI,EAAE,EACxC,oEAAoE;IACpE,kDAAkD;IAClD;QAAEM,YAAYX,QAAQI,eAAe,EAAEQ;IAAK;IAG9C,MAAMrB,gCAAgCQ,MAAM;QAC1CH;KACD;IACD,MAAMN,qBAAqBS;AAC7B,EAAE;AAEF,eAAeD,uCAAuC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/mcp-server-connection/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ComponentMetadata } from '../../../utils/nx';\n\n/**\n * TypeScript types for options defined in schema.json\n */\nexport interface TsDynamoDBMcpServerConnectionGeneratorSchema {\n sourceProject: string;\n targetProject: string;\n sourceComponent?: ComponentMetadata;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD;;CAEC,GACD,WAKC"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/mcp-server-connection/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { ComponentMetadata } from '../../../utils/nx.js';\n\n/**\n * TypeScript types for options defined in schema.json\n */\nexport interface TsDynamoDBMcpServerConnectionGeneratorSchema {\n sourceProject: string;\n targetProject: string;\n sourceComponent?: ComponentMetadata;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD;;CAEC,GACD,WAKC"}
@@ -2,7 +2,7 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { ComponentMetadata } from '../../../utils/nx';
5
+ import { ComponentMetadata } from '../../../utils/nx.js';
6
6
 
7
7
  /**
8
8
  * TypeScript types for options defined in schema.json
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/dynamodb/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../utils/iac';\n\nexport interface TsDynamoDBGeneratorSchema {\n name: string;\n directory?: string;\n subDirectory?: string;\n framework: 'electrodb';\n tableName?: string;\n infra: 'dynamodb' | 'none';\n iac: IacOption;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD,WASC"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/dynamodb/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../utils/iac.js';\n\nexport interface TsDynamoDBGeneratorSchema {\n name: string;\n directory?: string;\n subDirectory?: string;\n framework: 'electrodb';\n tableName?: string;\n infra: 'dynamodb' | 'none';\n iac: IacOption;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD,WASC"}
@@ -2,7 +2,7 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { IacOption } from '../../utils/iac';
5
+ import { IacOption } from '../../utils/iac.js';
6
6
 
7
7
  export interface TsDynamoDBGeneratorSchema {
8
8
  name: string;
@@ -3,7 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- import { type NxGeneratorInfo } from '../../../utils/nx';
6
+ import { type NxGeneratorInfo } from '../../../utils/nx.js';
7
7
  import type { TsDynamoDBSmithyConnectionGeneratorSchema } from './schema';
8
8
  export declare const TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
9
9
  export declare const tsDynamoDBSmithyConnectionGenerator: (tree: Tree, options: TsDynamoDBSmithyConnectionGeneratorSchema) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/smithy-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateProjectConfiguration } from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport {\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport type { TsDynamoDBSmithyConnectionGeneratorSchema } from './schema';\n\nexport const TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const tsDynamoDBSmithyConnectionGenerator = async (\n tree: Tree,\n options: TsDynamoDBSmithyConnectionGeneratorSchema,\n): Promise<void> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n if (sourceProject.targets?.['dev']) {\n addDependencyToTargetIfNotPresent(sourceProject, 'dev', {\n projects: [targetProject.name],\n target: 'dev',\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n // Recorded so the version sync can identify this connection.\n addComponentGeneratorMetadata(\n tree,\n sourceProject.name,\n TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO,\n targetProject.root,\n targetProject.name,\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO,\n ]);\n await formatFilesInSubtree(tree);\n};\n\nexport default tsDynamoDBSmithyConnectionGenerator;\n"],"names":["updateProjectConfiguration","formatFilesInSubtree","addGeneratorMetricsIfApplicable","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO","filename","tsDynamoDBSmithyConnectionGenerator","tree","options","sourceProject","targetProject","targets","projects","name","target","root"],"mappings":"AAAA;;;CAGC,GACD,SAAoBA,0BAA0B,QAAQ,aAAa;AACnE,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,+BAA+B,QAAQ,4BAAyB;AACzE,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,gBAAgB,EAEhBC,mCAAmC,QAC9B,uBAAoB;AAG3B,OAAO,MAAMC,+CACXF,iBAAiB,YAAYG,QAAQ,EAAE;AAEzC,OAAO,MAAMC,sCAAsC,OACjDC,MACAC;IAEA,MAAMC,gBAAgBN,oCACpBI,MACAC,QAAQC,aAAa;IAEvB,MAAMC,gBAAgBP,oCACpBI,MACAC,QAAQE,aAAa;IAGvB,IAAID,cAAcE,OAAO,EAAE,CAAC,MAAM,EAAE;QAClCV,kCAAkCQ,eAAe,OAAO;YACtDG,UAAU;gBAACF,cAAcG,IAAI;aAAC;YAC9BC,QAAQ;QACV;QACAjB,2BAA2BU,MAAME,cAAcI,IAAI,EAAEJ;IACvD;IAEA,6DAA6D;IAC7DT,8BACEO,MACAE,cAAcI,IAAI,EAClBT,8CACAM,cAAcK,IAAI,EAClBL,cAAcG,IAAI;IAGpB,MAAMd,gCAAgCQ,MAAM;QAC1CH;KACD;IACD,MAAMN,qBAAqBS;AAC7B,EAAE;AAEF,eAAeD,oCAAoC"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/smithy-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateProjectConfiguration } from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics.js';\nimport {\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx.js';\nimport type { TsDynamoDBSmithyConnectionGeneratorSchema } from './schema';\n\nexport const TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const tsDynamoDBSmithyConnectionGenerator = async (\n tree: Tree,\n options: TsDynamoDBSmithyConnectionGeneratorSchema,\n): Promise<void> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n if (sourceProject.targets?.['dev']) {\n addDependencyToTargetIfNotPresent(sourceProject, 'dev', {\n projects: [targetProject.name],\n target: 'dev',\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n // Recorded so the version sync can identify this connection.\n addComponentGeneratorMetadata(\n tree,\n sourceProject.name,\n TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO,\n targetProject.root,\n targetProject.name,\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO,\n ]);\n await formatFilesInSubtree(tree);\n};\n\nexport default tsDynamoDBSmithyConnectionGenerator;\n"],"names":["updateProjectConfiguration","formatFilesInSubtree","addGeneratorMetricsIfApplicable","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","TS_DYNAMODB_SMITHY_CONNECTION_GENERATOR_INFO","filename","tsDynamoDBSmithyConnectionGenerator","tree","options","sourceProject","targetProject","targets","projects","name","target","root"],"mappings":"AAAA;;;CAGC,GACD,SAAoBA,0BAA0B,QAAQ,aAAa;AACnE,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,+BAA+B,QAAQ,4BAA4B;AAC5E,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,gBAAgB,EAEhBC,mCAAmC,QAC9B,uBAAuB;AAG9B,OAAO,MAAMC,+CACXF,iBAAiB,YAAYG,QAAQ,EAAE;AAEzC,OAAO,MAAMC,sCAAsC,OACjDC,MACAC;IAEA,MAAMC,gBAAgBN,oCACpBI,MACAC,QAAQC,aAAa;IAEvB,MAAMC,gBAAgBP,oCACpBI,MACAC,QAAQE,aAAa;IAGvB,IAAID,cAAcE,OAAO,EAAE,CAAC,MAAM,EAAE;QAClCV,kCAAkCQ,eAAe,OAAO;YACtDG,UAAU;gBAACF,cAAcG,IAAI;aAAC;YAC9BC,QAAQ;QACV;QACAjB,2BAA2BU,MAAME,cAAcI,IAAI,EAAEJ;IACvD;IAEA,6DAA6D;IAC7DT,8BACEO,MACAE,cAAcI,IAAI,EAClBT,8CACAM,cAAcK,IAAI,EAClBL,cAAcG,IAAI;IAGpB,MAAMd,gCAAgCQ,MAAM;QAC1CH;KACD;IACD,MAAMN,qBAAqBS;AAC7B,EAAE;AAEF,eAAeD,oCAAoC"}
@@ -3,7 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- import { type NxGeneratorInfo } from '../../../utils/nx';
6
+ import { type NxGeneratorInfo } from '../../../utils/nx.js';
7
7
  import type { TsDynamoDBTrpcConnectionGeneratorSchema } from './schema';
8
8
  export declare const TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO: NxGeneratorInfo;
9
9
  export declare const tsDynamoDBTrpcConnectionGenerator: (tree: Tree, options: TsDynamoDBTrpcConnectionGeneratorSchema) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/trpc-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateProjectConfiguration } from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport {\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport type { TsDynamoDBTrpcConnectionGeneratorSchema } from './schema';\n\nexport const TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const tsDynamoDBTrpcConnectionGenerator = async (\n tree: Tree,\n options: TsDynamoDBTrpcConnectionGeneratorSchema,\n): Promise<void> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n if (sourceProject.targets?.['dev']) {\n addDependencyToTargetIfNotPresent(sourceProject, 'dev', {\n projects: [targetProject.name],\n target: 'dev',\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n // Recorded so the version sync can identify this connection.\n addComponentGeneratorMetadata(\n tree,\n sourceProject.name,\n TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO,\n targetProject.root,\n targetProject.name,\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO,\n ]);\n await formatFilesInSubtree(tree);\n};\n\nexport default tsDynamoDBTrpcConnectionGenerator;\n"],"names":["updateProjectConfiguration","formatFilesInSubtree","addGeneratorMetricsIfApplicable","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO","filename","tsDynamoDBTrpcConnectionGenerator","tree","options","sourceProject","targetProject","targets","projects","name","target","root"],"mappings":"AAAA;;;CAGC,GACD,SAAoBA,0BAA0B,QAAQ,aAAa;AACnE,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,+BAA+B,QAAQ,4BAAyB;AACzE,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,gBAAgB,EAEhBC,mCAAmC,QAC9B,uBAAoB;AAG3B,OAAO,MAAMC,6CACXF,iBAAiB,YAAYG,QAAQ,EAAE;AAEzC,OAAO,MAAMC,oCAAoC,OAC/CC,MACAC;IAEA,MAAMC,gBAAgBN,oCACpBI,MACAC,QAAQC,aAAa;IAEvB,MAAMC,gBAAgBP,oCACpBI,MACAC,QAAQE,aAAa;IAGvB,IAAID,cAAcE,OAAO,EAAE,CAAC,MAAM,EAAE;QAClCV,kCAAkCQ,eAAe,OAAO;YACtDG,UAAU;gBAACF,cAAcG,IAAI;aAAC;YAC9BC,QAAQ;QACV;QACAjB,2BAA2BU,MAAME,cAAcI,IAAI,EAAEJ;IACvD;IAEA,6DAA6D;IAC7DT,8BACEO,MACAE,cAAcI,IAAI,EAClBT,4CACAM,cAAcK,IAAI,EAClBL,cAAcG,IAAI;IAGpB,MAAMd,gCAAgCQ,MAAM;QAC1CH;KACD;IACD,MAAMN,qBAAqBS;AAC7B,EAAE;AAEF,eAAeD,kCAAkC"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/dynamodb/trpc-connection/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { type Tree, updateProjectConfiguration } from '@nx/devkit';\nimport { formatFilesInSubtree } from '../../../utils/format.js';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics.js';\nimport {\n addComponentGeneratorMetadata,\n addDependencyToTargetIfNotPresent,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx.js';\nimport type { TsDynamoDBTrpcConnectionGeneratorSchema } from './schema';\n\nexport const TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\nexport const tsDynamoDBTrpcConnectionGenerator = async (\n tree: Tree,\n options: TsDynamoDBTrpcConnectionGeneratorSchema,\n): Promise<void> => {\n const sourceProject = readProjectConfigurationUnqualified(\n tree,\n options.sourceProject,\n );\n const targetProject = readProjectConfigurationUnqualified(\n tree,\n options.targetProject,\n );\n\n if (sourceProject.targets?.['dev']) {\n addDependencyToTargetIfNotPresent(sourceProject, 'dev', {\n projects: [targetProject.name],\n target: 'dev',\n });\n updateProjectConfiguration(tree, sourceProject.name, sourceProject);\n }\n\n // Recorded so the version sync can identify this connection.\n addComponentGeneratorMetadata(\n tree,\n sourceProject.name,\n TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO,\n targetProject.root,\n targetProject.name,\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO,\n ]);\n await formatFilesInSubtree(tree);\n};\n\nexport default tsDynamoDBTrpcConnectionGenerator;\n"],"names":["updateProjectConfiguration","formatFilesInSubtree","addGeneratorMetricsIfApplicable","addComponentGeneratorMetadata","addDependencyToTargetIfNotPresent","getGeneratorInfo","readProjectConfigurationUnqualified","TS_DYNAMODB_TRPC_CONNECTION_GENERATOR_INFO","filename","tsDynamoDBTrpcConnectionGenerator","tree","options","sourceProject","targetProject","targets","projects","name","target","root"],"mappings":"AAAA;;;CAGC,GACD,SAAoBA,0BAA0B,QAAQ,aAAa;AACnE,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,+BAA+B,QAAQ,4BAA4B;AAC5E,SACEC,6BAA6B,EAC7BC,iCAAiC,EACjCC,gBAAgB,EAEhBC,mCAAmC,QAC9B,uBAAuB;AAG9B,OAAO,MAAMC,6CACXF,iBAAiB,YAAYG,QAAQ,EAAE;AAEzC,OAAO,MAAMC,oCAAoC,OAC/CC,MACAC;IAEA,MAAMC,gBAAgBN,oCACpBI,MACAC,QAAQC,aAAa;IAEvB,MAAMC,gBAAgBP,oCACpBI,MACAC,QAAQE,aAAa;IAGvB,IAAID,cAAcE,OAAO,EAAE,CAAC,MAAM,EAAE;QAClCV,kCAAkCQ,eAAe,OAAO;YACtDG,UAAU;gBAACF,cAAcG,IAAI;aAAC;YAC9BC,QAAQ;QACV;QACAjB,2BAA2BU,MAAME,cAAcI,IAAI,EAAEJ;IACvD;IAEA,6DAA6D;IAC7DT,8BACEO,MACAE,cAAcI,IAAI,EAClBT,4CACAM,cAAcK,IAAI,EAClBL,cAAcG,IAAI;IAGpB,MAAMd,gCAAgCQ,MAAM;QAC1CH;KACD;IACD,MAAMN,qBAAqBS;AAC7B,EAAE;AAEF,eAAeD,kCAAkC"}
@@ -3,9 +3,9 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type GeneratorCallback, type Tree } from '@nx/devkit';
6
- import { type NxGeneratorInfo } from '../../utils/nx';
6
+ import { type NxGeneratorInfo } from '../../utils/nx.js';
7
7
  import type { TsLambdaFunctionGeneratorSchema } from './schema';
8
- export declare const DEPENDENCIES: import("../../utils/declared-dependencies").DependencyDeclaration<readonly [{
8
+ export declare const DEPENDENCIES: import("../../utils/declared-dependencies.js").DependencyDeclaration<readonly [{
9
9
  readonly name: "@aws-lambda-powertools/tracer";
10
10
  }, {
11
11
  readonly name: "@aws-lambda-powertools/logger";
@@ -30,19 +30,19 @@ export declare const DEPENDENCIES: import("../../utils/declared-dependencies").D
30
30
  versionOnly: true;
31
31
  }, {
32
32
  readonly name: "constructs";
33
- readonly when: (m: import("../../utils/shared-constructs-constants").IacMetadata) => boolean;
33
+ readonly when: (m: import("../../utils/shared-constructs-constants.js").IacMetadata) => boolean;
34
34
  } & {
35
35
  versionOnly: true;
36
36
  }, {
37
37
  readonly name: "aws-cdk-lib";
38
- readonly when: (m: import("../../utils/shared-constructs-constants").IacMetadata) => boolean;
38
+ readonly when: (m: import("../../utils/shared-constructs-constants.js").IacMetadata) => boolean;
39
39
  } & {
40
40
  versionOnly: true;
41
41
  }, {
42
42
  readonly name: "@types/node";
43
43
  } & {
44
44
  versionOnly: true;
45
- }], readonly import("../../utils/declared-dependencies").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
45
+ }], readonly import("../../utils/declared-dependencies.js").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
46
46
  export declare const TS_LAMBDA_FUNCTION_GENERATOR_INFO: NxGeneratorInfo;
47
47
  /**
48
48
  * Generates a TypeScript Lambda Function to add to a TypeScript project
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lambda-function/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport camelCase from 'lodash.camelcase';\nimport { addTsDependencies } from '../../utils/add-dependencies';\nimport {\n addTypeScriptBundleTarget,\n BUNDLE_DEPENDENCIES,\n} from '../../utils/bundle/bundle';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { addLambdaFunctionInfra } from '../../utils/function-constructs/function-constructs';\nimport { resolveIac } from '../../utils/iac';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { pascalCase, toClassName, toKebabCase } from '../../utils/names';\nimport {\n addComponentGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs';\nimport { TS_HANDLER_RETURN_TYPES } from './io';\nimport type { TsLambdaFunctionGeneratorSchema } from './schema';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [\n { name: '@aws-lambda-powertools/tracer' },\n { name: '@aws-lambda-powertools/logger' },\n { name: '@aws-lambda-powertools/metrics' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@aws-lambda-powertools/parser' },\n { name: '@aws-sdk/client-appconfigdata' },\n { name: '@middy/core' },\n { name: 'zod' },\n { name: '@types/aws-lambda', dev: true },\n ...ownedElsewhere(BUNDLE_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n});\n\nexport const TS_LAMBDA_FUNCTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\n/**\n * Generates a TypeScript Lambda Function to add to a TypeScript project\n */\nexport const tsLambdaFunctionGenerator = async (\n tree: Tree,\n schema: TsLambdaFunctionGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const projectConfig = readProjectConfigurationUnqualified(\n tree,\n schema.project,\n );\n\n const tsconfigPath = joinPathFragments(projectConfig.root, 'tsconfig.json');\n\n // Check if the project has a tsconfig.json file\n if (!tree.exists(tsconfigPath)) {\n throw new Error(\n `This generator does not support selected project ${schema.project}. The project must be a typescript project (ie contain a tsconfig.json)`,\n );\n }\n\n if (!projectConfig.sourceRoot) {\n throw new Error(\n `This project does not have a source root. Please add a source root to the project configuration before running this generator.`,\n );\n }\n\n const dir = projectConfig.root;\n const projectNameWithOutScope = projectConfig.name.split('/').pop();\n const projectNameKebabCase = toKebabCase(projectNameWithOutScope);\n const nameKebabCase = toKebabCase(schema.name);\n\n const constructFunctionNameKebabCase = `${projectNameKebabCase}-${nameKebabCase}`;\n const constructFunctionClassName = toClassName(\n constructFunctionNameKebabCase,\n );\n const lambdaFunctionCamelCase = camelCase(schema.name);\n const lambdaFunctionClassName = pascalCase(schema.name);\n const lambdaFunctionKebabCase = toKebabCase(schema.name);\n\n const functionPathFromProjectRoot = joinPathFragments(\n 'src',\n schema.functionPath ?? '',\n `${lambdaFunctionKebabCase}.ts`,\n );\n const functionPath = joinPathFragments(\n projectConfig.root,\n functionPathFromProjectRoot,\n );\n\n const infra = schema.infra ?? 'lambda';\n const handlerAlreadyExists = tree.exists(functionPath);\n\n if (handlerAlreadyExists && infra === 'none') {\n throw new Error(\n `This project already has a lambda function with the name ${nameKebabCase}. Please remove the lambda function before running this generator or use a different name.`,\n );\n }\n\n const bundleOutputDir = joinPathFragments('lambda', lambdaFunctionKebabCase);\n\n // Recorded below so the version sync can tell a CDK project from a\n // Terraform one; undefined when no infrastructure was generated.\n const iac = infra !== 'none' ? await resolveIac(tree, schema.iac) : undefined;\n\n if (infra !== 'none') {\n await sharedConstructsGenerator(\n tree,\n {\n iac,\n },\n DEPENDENCIES,\n );\n\n await addLambdaFunctionInfra(tree, {\n functionProjectName: projectConfig.name,\n nameClassName: constructFunctionClassName,\n nameKebabCase: constructFunctionNameKebabCase,\n handler: 'index.handler',\n runtime: 'node',\n bundlePathFromRoot: joinPathFragments(\n 'dist',\n dir,\n 'bundle',\n bundleOutputDir,\n ),\n iac,\n });\n }\n\n const enhancedOptions = {\n ...schema,\n lambdaFunctionCamelCase,\n lambdaFunctionClassName,\n lambdaFunctionKebabCase,\n returnType: TS_HANDLER_RETURN_TYPES[schema.event],\n };\n\n if (infra !== 'none') {\n // Add a bundle target for the function\n await addTypeScriptBundleTarget(\n tree,\n projectConfig,\n {\n targetFilePath: functionPathFromProjectRoot,\n bundleOutputDir,\n external: [/@aws-sdk\\/.*/], // lambda runtime provides aws sdk\n },\n DEPENDENCIES,\n );\n }\n\n projectConfig.targets = sortObjectKeys(projectConfig.targets);\n updateProjectConfiguration(tree, projectConfig.name, projectConfig);\n\n // Generate the lambda handler file\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'handler'),\n joinPathFragments(projectConfig.sourceRoot, schema.functionPath ?? ''),\n enhancedOptions,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n addTsDependencies(tree, DEPENDENCIES, { projectRoot: dir });\n\n addComponentGeneratorMetadata(\n tree,\n projectConfig.name,\n TS_LAMBDA_FUNCTION_GENERATOR_INFO,\n functionPathFromProjectRoot,\n lambdaFunctionKebabCase,\n iac ? { iac } : {},\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_LAMBDA_FUNCTION_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n\n return () =>\n installDependencies(tree, schema.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nexport default tsLambdaFunctionGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","camelCase","addTsDependencies","addTypeScriptBundleTarget","BUNDLE_DEPENDENCIES","declareDependencies","ownedElsewhere","formatFilesInSubtree","addLambdaFunctionInfra","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","pascalCase","toClassName","toKebabCase","addComponentGeneratorMetadata","getGeneratorInfo","readProjectConfigurationUnqualified","sortObjectKeys","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","TS_HANDLER_RETURN_TYPES","DEPENDENCIES","ts","name","dev","TS_LAMBDA_FUNCTION_GENERATOR_INFO","filename","tsLambdaFunctionGenerator","tree","schema","projectConfig","project","tsconfigPath","root","exists","Error","sourceRoot","dir","projectNameWithOutScope","split","pop","projectNameKebabCase","nameKebabCase","constructFunctionNameKebabCase","constructFunctionClassName","lambdaFunctionCamelCase","lambdaFunctionClassName","lambdaFunctionKebabCase","functionPathFromProjectRoot","functionPath","infra","handlerAlreadyExists","bundleOutputDir","iac","undefined","functionProjectName","nameClassName","handler","runtime","bundlePathFromRoot","enhancedOptions","returnType","event","targetFilePath","external","targets","dirname","overwriteStrategy","KeepExisting","projectRoot","preferInstallDependencies","languages"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lambda-function/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport camelCase from 'lodash.camelcase';\nimport { addTsDependencies } from '../../utils/add-dependencies.js';\nimport {\n addTypeScriptBundleTarget,\n BUNDLE_DEPENDENCIES,\n} from '../../utils/bundle/bundle.js';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../utils/declared-dependencies.js';\nimport { formatFilesInSubtree } from '../../utils/format.js';\nimport { addLambdaFunctionInfra } from '../../utils/function-constructs/function-constructs.js';\nimport { resolveIac } from '../../utils/iac.js';\nimport { installDependencies } from '../../utils/install.js';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics.js';\nimport { pascalCase, toClassName, toKebabCase } from '../../utils/names.js';\nimport {\n addComponentGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../utils/nx.js';\nimport { sortObjectKeys } from '../../utils/object.js';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../utils/shared-constructs.js';\nimport { TS_HANDLER_RETURN_TYPES } from './io.js';\nimport type { TsLambdaFunctionGeneratorSchema } from './schema';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [\n { name: '@aws-lambda-powertools/tracer' },\n { name: '@aws-lambda-powertools/logger' },\n { name: '@aws-lambda-powertools/metrics' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@aws-lambda-powertools/parser' },\n { name: '@aws-sdk/client-appconfigdata' },\n { name: '@middy/core' },\n { name: 'zod' },\n { name: '@types/aws-lambda', dev: true },\n ...ownedElsewhere(BUNDLE_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n});\n\nexport const TS_LAMBDA_FUNCTION_GENERATOR_INFO: NxGeneratorInfo =\n getGeneratorInfo(import.meta.filename);\n\n/**\n * Generates a TypeScript Lambda Function to add to a TypeScript project\n */\nexport const tsLambdaFunctionGenerator = async (\n tree: Tree,\n schema: TsLambdaFunctionGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const projectConfig = readProjectConfigurationUnqualified(\n tree,\n schema.project,\n );\n\n const tsconfigPath = joinPathFragments(projectConfig.root, 'tsconfig.json');\n\n // Check if the project has a tsconfig.json file\n if (!tree.exists(tsconfigPath)) {\n throw new Error(\n `This generator does not support selected project ${schema.project}. The project must be a typescript project (ie contain a tsconfig.json)`,\n );\n }\n\n if (!projectConfig.sourceRoot) {\n throw new Error(\n `This project does not have a source root. Please add a source root to the project configuration before running this generator.`,\n );\n }\n\n const dir = projectConfig.root;\n const projectNameWithOutScope = projectConfig.name.split('/').pop();\n const projectNameKebabCase = toKebabCase(projectNameWithOutScope);\n const nameKebabCase = toKebabCase(schema.name);\n\n const constructFunctionNameKebabCase = `${projectNameKebabCase}-${nameKebabCase}`;\n const constructFunctionClassName = toClassName(\n constructFunctionNameKebabCase,\n );\n const lambdaFunctionCamelCase = camelCase(schema.name);\n const lambdaFunctionClassName = pascalCase(schema.name);\n const lambdaFunctionKebabCase = toKebabCase(schema.name);\n\n const functionPathFromProjectRoot = joinPathFragments(\n 'src',\n schema.functionPath ?? '',\n `${lambdaFunctionKebabCase}.ts`,\n );\n const functionPath = joinPathFragments(\n projectConfig.root,\n functionPathFromProjectRoot,\n );\n\n const infra = schema.infra ?? 'lambda';\n const handlerAlreadyExists = tree.exists(functionPath);\n\n if (handlerAlreadyExists && infra === 'none') {\n throw new Error(\n `This project already has a lambda function with the name ${nameKebabCase}. Please remove the lambda function before running this generator or use a different name.`,\n );\n }\n\n const bundleOutputDir = joinPathFragments('lambda', lambdaFunctionKebabCase);\n\n // Recorded below so the version sync can tell a CDK project from a\n // Terraform one; undefined when no infrastructure was generated.\n const iac = infra !== 'none' ? await resolveIac(tree, schema.iac) : undefined;\n\n if (infra !== 'none') {\n await sharedConstructsGenerator(\n tree,\n {\n iac,\n },\n DEPENDENCIES,\n );\n\n await addLambdaFunctionInfra(tree, {\n functionProjectName: projectConfig.name,\n nameClassName: constructFunctionClassName,\n nameKebabCase: constructFunctionNameKebabCase,\n handler: 'index.handler',\n runtime: 'node',\n bundlePathFromRoot: joinPathFragments(\n 'dist',\n dir,\n 'bundle',\n bundleOutputDir,\n ),\n iac,\n });\n }\n\n const enhancedOptions = {\n ...schema,\n lambdaFunctionCamelCase,\n lambdaFunctionClassName,\n lambdaFunctionKebabCase,\n returnType: TS_HANDLER_RETURN_TYPES[schema.event],\n };\n\n if (infra !== 'none') {\n // Add a bundle target for the function\n await addTypeScriptBundleTarget(\n tree,\n projectConfig,\n {\n targetFilePath: functionPathFromProjectRoot,\n bundleOutputDir,\n external: [/@aws-sdk\\/.*/], // lambda runtime provides aws sdk\n },\n DEPENDENCIES,\n );\n }\n\n projectConfig.targets = sortObjectKeys(projectConfig.targets);\n updateProjectConfiguration(tree, projectConfig.name, projectConfig);\n\n // Generate the lambda handler file\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'handler'),\n joinPathFragments(projectConfig.sourceRoot, schema.functionPath ?? ''),\n enhancedOptions,\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n addTsDependencies(tree, DEPENDENCIES, { projectRoot: dir });\n\n addComponentGeneratorMetadata(\n tree,\n projectConfig.name,\n TS_LAMBDA_FUNCTION_GENERATOR_INFO,\n functionPathFromProjectRoot,\n lambdaFunctionKebabCase,\n iac ? { iac } : {},\n );\n\n await addGeneratorMetricsIfApplicable(tree, [\n TS_LAMBDA_FUNCTION_GENERATOR_INFO,\n ]);\n\n await formatFilesInSubtree(tree);\n\n return () =>\n installDependencies(tree, schema.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nexport default tsLambdaFunctionGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","camelCase","addTsDependencies","addTypeScriptBundleTarget","BUNDLE_DEPENDENCIES","declareDependencies","ownedElsewhere","formatFilesInSubtree","addLambdaFunctionInfra","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","pascalCase","toClassName","toKebabCase","addComponentGeneratorMetadata","getGeneratorInfo","readProjectConfigurationUnqualified","sortObjectKeys","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","TS_HANDLER_RETURN_TYPES","DEPENDENCIES","ts","name","dev","TS_LAMBDA_FUNCTION_GENERATOR_INFO","filename","tsLambdaFunctionGenerator","tree","schema","projectConfig","project","tsconfigPath","root","exists","Error","sourceRoot","dir","projectNameWithOutScope","split","pop","projectNameKebabCase","nameKebabCase","constructFunctionNameKebabCase","constructFunctionClassName","lambdaFunctionCamelCase","lambdaFunctionClassName","lambdaFunctionKebabCase","functionPathFromProjectRoot","functionPath","infra","handlerAlreadyExists","bundleOutputDir","iac","undefined","functionProjectName","nameClassName","handler","runtime","bundlePathFromRoot","enhancedOptions","returnType","event","targetFilePath","external","targets","dirname","overwriteStrategy","KeepExisting","projectRoot","preferInstallDependencies","languages"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lambda-function/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IacOption } from '../../utils/iac';\n\nexport type EventSource =\n | 'Any'\n | 'AlbSchema'\n | 'APIGatewayProxyEventSchema'\n | 'APIGatewayRequestAuthorizerEventSchema'\n | 'APIGatewayTokenAuthorizerEventSchema'\n | 'APIGatewayProxyEventV2Schema'\n | 'APIGatewayProxyWebsocketEventSchema'\n | 'APIGatewayRequestAuthorizerEventV2Schema'\n | 'CloudFormationCustomResourceCreateSchema'\n | 'CloudFormationCustomResourceUpdateSchema'\n | 'CloudFormationCustomResourceDeleteSchema'\n | 'CloudWatchLogsSchema'\n | 'PreSignupTriggerSchema'\n | 'PostConfirmationTriggerSchema'\n | 'CustomMessageTriggerSchema'\n | 'MigrateUserTriggerSchema'\n | 'CustomSMSSenderTriggerSchema'\n | 'CustomEmailSenderTriggerSchema'\n | 'DefineAuthChallengeTriggerSchema'\n | 'CreateAuthChallengeTriggerSchema'\n | 'VerifyAuthChallengeTriggerSchema'\n | 'PreTokenGenerationTriggerSchemaV1'\n | 'PreTokenGenerationTriggerSchemaV2AndV3'\n | 'DynamoDBStreamSchema'\n | 'EventBridgeSchema'\n | 'KafkaMskEventSchema'\n | 'KafkaSelfManagedEventSchema'\n | 'KinesisDataStreamSchema'\n | 'KinesisFirehoseSchema'\n | 'KinesisDynamoDBStreamSchema'\n | 'KinesisFirehoseSqsSchema'\n | 'LambdaFunctionUrlSchema'\n | 'S3EventNotificationEventBridgeSchema'\n | 'S3Schema'\n | 'S3ObjectLambdaEventSchema'\n | 'S3SqsEventNotificationSchema'\n | 'SesSchema'\n | 'SnsSchema'\n | 'SqsSchema'\n | 'TransferFamilySchema'\n | 'VpcLatticeSchema'\n | 'VpcLatticeV2Schema';\n\nexport type LambdaInfraOption = 'lambda' | 'none';\n\nexport interface TsLambdaFunctionGeneratorSchema {\n readonly project: string;\n readonly name: string;\n readonly functionPath?: string;\n readonly event?: EventSource;\n readonly infra?: LambdaInfraOption;\n readonly iac: IacOption;\n readonly preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAkDD,WAQC"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lambda-function/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IacOption } from '../../utils/iac.js';\n\nexport type EventSource =\n | 'Any'\n | 'AlbSchema'\n | 'APIGatewayProxyEventSchema'\n | 'APIGatewayRequestAuthorizerEventSchema'\n | 'APIGatewayTokenAuthorizerEventSchema'\n | 'APIGatewayProxyEventV2Schema'\n | 'APIGatewayProxyWebsocketEventSchema'\n | 'APIGatewayRequestAuthorizerEventV2Schema'\n | 'CloudFormationCustomResourceCreateSchema'\n | 'CloudFormationCustomResourceUpdateSchema'\n | 'CloudFormationCustomResourceDeleteSchema'\n | 'CloudWatchLogsSchema'\n | 'PreSignupTriggerSchema'\n | 'PostConfirmationTriggerSchema'\n | 'CustomMessageTriggerSchema'\n | 'MigrateUserTriggerSchema'\n | 'CustomSMSSenderTriggerSchema'\n | 'CustomEmailSenderTriggerSchema'\n | 'DefineAuthChallengeTriggerSchema'\n | 'CreateAuthChallengeTriggerSchema'\n | 'VerifyAuthChallengeTriggerSchema'\n | 'PreTokenGenerationTriggerSchemaV1'\n | 'PreTokenGenerationTriggerSchemaV2AndV3'\n | 'DynamoDBStreamSchema'\n | 'EventBridgeSchema'\n | 'KafkaMskEventSchema'\n | 'KafkaSelfManagedEventSchema'\n | 'KinesisDataStreamSchema'\n | 'KinesisFirehoseSchema'\n | 'KinesisDynamoDBStreamSchema'\n | 'KinesisFirehoseSqsSchema'\n | 'LambdaFunctionUrlSchema'\n | 'S3EventNotificationEventBridgeSchema'\n | 'S3Schema'\n | 'S3ObjectLambdaEventSchema'\n | 'S3SqsEventNotificationSchema'\n | 'SesSchema'\n | 'SnsSchema'\n | 'SqsSchema'\n | 'TransferFamilySchema'\n | 'VpcLatticeSchema'\n | 'VpcLatticeV2Schema';\n\nexport type LambdaInfraOption = 'lambda' | 'none';\n\nexport interface TsLambdaFunctionGeneratorSchema {\n readonly project: string;\n readonly name: string;\n readonly functionPath?: string;\n readonly event?: EventSource;\n readonly infra?: LambdaInfraOption;\n readonly iac: IacOption;\n readonly preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAkDD,WAQC"}
@@ -3,7 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
 
6
- import { IacOption } from '../../utils/iac';
6
+ import { IacOption } from '../../utils/iac.js';
7
7
 
8
8
  export type EventSource =
9
9
  | 'Any'
@@ -3,5 +3,5 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- import type { ConfigureProjectOptions } from './types';
6
+ import type { ConfigureProjectOptions } from './types.js';
7
7
  export declare const configureBiomeLint: (tree: Tree, options: ConfigureProjectOptions) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lib/biome.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n readNxJson,\n type Tree,\n updateNxJson,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { readProjectConfigurationUnqualified } from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport type { ConfigureProjectOptions } from './types';\n\nexport const configureBiomeLint = async (\n tree: Tree,\n options: ConfigureProjectOptions,\n) => {\n const projectJson = readProjectConfigurationUnqualified(\n tree,\n options.fullyQualifiedName,\n );\n\n const biomeConfigured = tree.exists('biome.json');\n\n // When there's no root Biome configuration (eg the user removed it), make the\n // lint target a no-op rather than failing on a missing config.\n const lintTarget = biomeConfigured\n ? {\n executor: 'nx:run-commands',\n cache: true,\n inputs: ['biome'],\n options: {\n command: 'biome lint {projectRoot}',\n },\n configurations: {\n fix: {\n command: 'biome check --write {projectRoot}',\n },\n 'skip-lint': {\n // Cross-platform no-op (`true` is not available on Windows cmd).\n command: 'node -e \"\"',\n },\n },\n // Format before linting so any fixable formatting issues (eg line too\n // long) are resolved first, mirroring the Python project generator.\n dependsOn: ['format'],\n }\n : { executor: 'nx:noop' };\n\n // The base format target checks formatting (failing when files aren't\n // formatted); the `fix` configuration writes the changes. `skip-lint` is a\n // no-op so `nx lint --configuration=skip-lint` propagates cleanly through the\n // lint -> format dependency edge.\n const formatTarget = biomeConfigured\n ? {\n executor: 'nx:run-commands',\n cache: true,\n inputs: ['biome'],\n options: {\n command: 'biome format {projectRoot}',\n },\n configurations: {\n fix: {\n command: 'biome format --write {projectRoot}',\n },\n 'skip-lint': {\n // Cross-platform no-op (`true` is not available on Windows cmd).\n command: 'node -e \"\"',\n },\n },\n }\n : { executor: 'nx:noop' };\n\n updateProjectConfiguration(tree, options.fullyQualifiedName, {\n ...projectJson,\n // Sort targets so the lint and format targets land in deterministic\n // positions regardless of whether they already existed (keeps re-runs\n // stable)\n targets: sortObjectKeys({\n ...projectJson?.targets,\n format: formatTarget,\n lint: lintTarget,\n }),\n });\n\n // Register the `biome` named input so lint targets are cache-invalidated when\n // the root biome.json changes.\n const nxJson = readNxJson(tree);\n if (\n !nxJson.namedInputs?.biome ||\n !nxJson.namedInputs.biome.includes('{workspaceRoot}/biome.json')\n ) {\n updateNxJson(tree, {\n ...nxJson,\n namedInputs: {\n ...nxJson.namedInputs,\n biome: ['default', '{workspaceRoot}/biome.json'],\n },\n });\n }\n};\n"],"names":["readNxJson","updateNxJson","updateProjectConfiguration","readProjectConfigurationUnqualified","sortObjectKeys","configureBiomeLint","tree","options","projectJson","fullyQualifiedName","biomeConfigured","exists","lintTarget","executor","cache","inputs","command","configurations","fix","dependsOn","formatTarget","targets","format","lint","nxJson","namedInputs","biome","includes"],"mappings":"AAAA;;;CAGC,GACD,SACEA,UAAU,EAEVC,YAAY,EACZC,0BAA0B,QACrB,aAAa;AACpB,SAASC,mCAAmC,QAAQ,oBAAiB;AACrE,SAASC,cAAc,QAAQ,wBAAqB;AAGpD,OAAO,MAAMC,qBAAqB,OAChCC,MACAC;IAEA,MAAMC,cAAcL,oCAClBG,MACAC,QAAQE,kBAAkB;IAG5B,MAAMC,kBAAkBJ,KAAKK,MAAM,CAAC;IAEpC,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAMC,aAAaF,kBACf;QACEG,UAAU;QACVC,OAAO;QACPC,QAAQ;YAAC;SAAQ;QACjBR,SAAS;YACPS,SAAS;QACX;QACAC,gBAAgB;YACdC,KAAK;gBACHF,SAAS;YACX;YACA,aAAa;gBACX,iEAAiE;gBACjEA,SAAS;YACX;QACF;QACA,sEAAsE;QACtE,oEAAoE;QACpEG,WAAW;YAAC;SAAS;IACvB,IACA;QAAEN,UAAU;IAAU;IAE1B,sEAAsE;IACtE,2EAA2E;IAC3E,8EAA8E;IAC9E,kCAAkC;IAClC,MAAMO,eAAeV,kBACjB;QACEG,UAAU;QACVC,OAAO;QACPC,QAAQ;YAAC;SAAQ;QACjBR,SAAS;YACPS,SAAS;QACX;QACAC,gBAAgB;YACdC,KAAK;gBACHF,SAAS;YACX;YACA,aAAa;gBACX,iEAAiE;gBACjEA,SAAS;YACX;QACF;IACF,IACA;QAAEH,UAAU;IAAU;IAE1BX,2BAA2BI,MAAMC,QAAQE,kBAAkB,EAAE;QAC3D,GAAGD,WAAW;QACd,oEAAoE;QACpE,sEAAsE;QACtE,UAAU;QACVa,SAASjB,eAAe;YACtB,GAAGI,aAAaa,OAAO;YACvBC,QAAQF;YACRG,MAAMX;QACR;IACF;IAEA,8EAA8E;IAC9E,+BAA+B;IAC/B,MAAMY,SAASxB,WAAWM;IAC1B,IACE,CAACkB,OAAOC,WAAW,EAAEC,SACrB,CAACF,OAAOC,WAAW,CAACC,KAAK,CAACC,QAAQ,CAAC,+BACnC;QACA1B,aAAaK,MAAM;YACjB,GAAGkB,MAAM;YACTC,aAAa;gBACX,GAAGD,OAAOC,WAAW;gBACrBC,OAAO;oBAAC;oBAAW;iBAA6B;YAClD;QACF;IACF;AACF,EAAE"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lib/biome.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n readNxJson,\n type Tree,\n updateNxJson,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { readProjectConfigurationUnqualified } from '../../utils/nx.js';\nimport { sortObjectKeys } from '../../utils/object.js';\nimport type { ConfigureProjectOptions } from './types.js';\n\nexport const configureBiomeLint = async (\n tree: Tree,\n options: ConfigureProjectOptions,\n) => {\n const projectJson = readProjectConfigurationUnqualified(\n tree,\n options.fullyQualifiedName,\n );\n\n const biomeConfigured = tree.exists('biome.json');\n\n // When there's no root Biome configuration (eg the user removed it), make the\n // lint target a no-op rather than failing on a missing config.\n const lintTarget = biomeConfigured\n ? {\n executor: 'nx:run-commands',\n cache: true,\n inputs: ['biome'],\n options: {\n command: 'biome lint {projectRoot}',\n },\n configurations: {\n fix: {\n command: 'biome check --write {projectRoot}',\n },\n 'skip-lint': {\n // Cross-platform no-op (`true` is not available on Windows cmd).\n command: 'node -e \"\"',\n },\n },\n // Format before linting so any fixable formatting issues (eg line too\n // long) are resolved first, mirroring the Python project generator.\n dependsOn: ['format'],\n }\n : { executor: 'nx:noop' };\n\n // The base format target checks formatting (failing when files aren't\n // formatted); the `fix` configuration writes the changes. `skip-lint` is a\n // no-op so `nx lint --configuration=skip-lint` propagates cleanly through the\n // lint -> format dependency edge.\n const formatTarget = biomeConfigured\n ? {\n executor: 'nx:run-commands',\n cache: true,\n inputs: ['biome'],\n options: {\n command: 'biome format {projectRoot}',\n },\n configurations: {\n fix: {\n command: 'biome format --write {projectRoot}',\n },\n 'skip-lint': {\n // Cross-platform no-op (`true` is not available on Windows cmd).\n command: 'node -e \"\"',\n },\n },\n }\n : { executor: 'nx:noop' };\n\n updateProjectConfiguration(tree, options.fullyQualifiedName, {\n ...projectJson,\n // Sort targets so the lint and format targets land in deterministic\n // positions regardless of whether they already existed (keeps re-runs\n // stable)\n targets: sortObjectKeys({\n ...projectJson?.targets,\n format: formatTarget,\n lint: lintTarget,\n }),\n });\n\n // Register the `biome` named input so lint targets are cache-invalidated when\n // the root biome.json changes.\n const nxJson = readNxJson(tree);\n if (\n !nxJson.namedInputs?.biome ||\n !nxJson.namedInputs.biome.includes('{workspaceRoot}/biome.json')\n ) {\n updateNxJson(tree, {\n ...nxJson,\n namedInputs: {\n ...nxJson.namedInputs,\n biome: ['default', '{workspaceRoot}/biome.json'],\n },\n });\n }\n};\n"],"names":["readNxJson","updateNxJson","updateProjectConfiguration","readProjectConfigurationUnqualified","sortObjectKeys","configureBiomeLint","tree","options","projectJson","fullyQualifiedName","biomeConfigured","exists","lintTarget","executor","cache","inputs","command","configurations","fix","dependsOn","formatTarget","targets","format","lint","nxJson","namedInputs","biome","includes"],"mappings":"AAAA;;;CAGC,GACD,SACEA,UAAU,EAEVC,YAAY,EACZC,0BAA0B,QACrB,aAAa;AACpB,SAASC,mCAAmC,QAAQ,oBAAoB;AACxE,SAASC,cAAc,QAAQ,wBAAwB;AAGvD,OAAO,MAAMC,qBAAqB,OAChCC,MACAC;IAEA,MAAMC,cAAcL,oCAClBG,MACAC,QAAQE,kBAAkB;IAG5B,MAAMC,kBAAkBJ,KAAKK,MAAM,CAAC;IAEpC,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAMC,aAAaF,kBACf;QACEG,UAAU;QACVC,OAAO;QACPC,QAAQ;YAAC;SAAQ;QACjBR,SAAS;YACPS,SAAS;QACX;QACAC,gBAAgB;YACdC,KAAK;gBACHF,SAAS;YACX;YACA,aAAa;gBACX,iEAAiE;gBACjEA,SAAS;YACX;QACF;QACA,sEAAsE;QACtE,oEAAoE;QACpEG,WAAW;YAAC;SAAS;IACvB,IACA;QAAEN,UAAU;IAAU;IAE1B,sEAAsE;IACtE,2EAA2E;IAC3E,8EAA8E;IAC9E,kCAAkC;IAClC,MAAMO,eAAeV,kBACjB;QACEG,UAAU;QACVC,OAAO;QACPC,QAAQ;YAAC;SAAQ;QACjBR,SAAS;YACPS,SAAS;QACX;QACAC,gBAAgB;YACdC,KAAK;gBACHF,SAAS;YACX;YACA,aAAa;gBACX,iEAAiE;gBACjEA,SAAS;YACX;QACF;IACF,IACA;QAAEH,UAAU;IAAU;IAE1BX,2BAA2BI,MAAMC,QAAQE,kBAAkB,EAAE;QAC3D,GAAGD,WAAW;QACd,oEAAoE;QACpE,sEAAsE;QACtE,UAAU;QACVa,SAASjB,eAAe;YACtB,GAAGI,aAAaa,OAAO;YACvBC,QAAQF;YACRG,MAAMX;QACR;IACF;IAEA,8EAA8E;IAC9E,+BAA+B;IAC/B,MAAMY,SAASxB,WAAWM;IAC1B,IACE,CAACkB,OAAOC,WAAW,EAAEC,SACrB,CAACF,OAAOC,WAAW,CAACC,KAAK,CAACC,QAAQ,CAAC,+BACnC;QACA1B,aAAaK,MAAM;YACjB,GAAGkB,MAAM;YACTC,aAAa;gBACX,GAAGD,OAAOC,WAAW;gBACrBC,OAAO;oBAAC;oBAAW;iBAA6B;YAClD;QACF;IACF;AACF,EAAE"}
@@ -3,15 +3,15 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type GeneratorCallback, type Tree } from '@nx/devkit';
6
- import { type NxGeneratorInfo } from '../../utils/nx';
6
+ import { type NxGeneratorInfo } from '../../utils/nx.js';
7
7
  import type { TsProjectGeneratorSchema } from './schema';
8
- export declare const DEPENDENCIES: import("../../utils/declared-dependencies").DependencyDeclaration<readonly [{
8
+ export declare const DEPENDENCIES: import("../../utils/declared-dependencies.js").DependencyDeclaration<readonly [{
9
9
  readonly name: "vite";
10
10
  }, {
11
11
  readonly name: "vitest";
12
12
  }, {
13
13
  readonly name: "@vitest/coverage-v8";
14
- }], readonly import("../../utils/declared-dependencies").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
14
+ }], readonly import("../../utils/declared-dependencies.js").DeclaredPyDependency<"a2a-sdk" | "ag-ui-langgraph" | "ag-ui-protocol" | "ag-ui-strands" | "aiosqlite" | "aws-lambda-powertools" | "aws-lambda-powertools[tracer]" | "aws-lambda-powertools[parser]" | "aws-opentelemetry-distro" | "bedrock-agentcore" | "boto3" | "checkov" | "fastapi" | "fastapi[standard]" | "httpx" | "langchain" | "langchain-aws" | "langchain-mcp-adapters" | "langgraph" | "langgraph-checkpoint-aws" | "langgraph-checkpoint-sqlite" | "mcp" | "pip-check-updates" | "pip-licenses" | "ruff" | "strands-agents" | "strands-agents[a2a]" | "strands-agents-tools" | "ty" | "pynamodb" | "uvicorn" | "sqlmodel" | "alembic" | "aiomysql" | "asyncpg" | "greenlet", Record<string, never>>[]>;
15
15
  export declare const TS_LIB_GENERATOR_INFO: NxGeneratorInfo;
16
16
  export interface TsLibDetails {
17
17
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lib/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n type NxJsonConfiguration,\n OverwriteStrategy,\n readProjectConfiguration,\n type TargetConfiguration,\n type Tree,\n updateJson,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { libraryGenerator } from '@nx/js';\nimport { declareDependencies } from '../../utils/declared-dependencies';\nimport { formatFilesInSubtree } from '../../utils/format';\nimport { installDependencies } from '../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics';\nimport { isEsmWorkspace } from '../../utils/module-format';\nimport { toKebabCase } from '../../utils/names';\nimport { getNpmScopePrefix } from '../../utils/npm-scope';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n mergeTargetDefault,\n type NxGeneratorInfo,\n projectExists,\n} from '../../utils/nx';\nimport { sortObjectKeys } from '../../utils/object';\nimport { getPackageManagerDisplayCommands } from '../../utils/pkg-manager';\nimport type { TsProjectGeneratorSchema } from './schema';\nimport { configureTsProject } from './ts-project-utils';\nimport { VITEST_DEPENDENCIES } from './vitest';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [...VITEST_DEPENDENCIES],\n});\n\nexport const TS_LIB_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport interface TsLibDetails {\n /**\n * Full package name including scope (eg @foo/bar)\n */\n readonly fullyQualifiedName: string;\n /**\n * Directory of the library relative to the root\n */\n readonly dir: string;\n}\n\n/**\n * Returns details about the TS library to be created\n */\nexport const getTsLibDetails = (\n tree: Tree,\n schema: TsProjectGeneratorSchema,\n): TsLibDetails => {\n const scope = getNpmScopePrefix(tree);\n const normalizedName = toKebabCase(schema.name);\n const fullyQualifiedName = `${scope}${normalizedName}`;\n // NB: interactive nx generator cli can pass empty string\n const dir = joinPathFragments(\n schema.directory || '.',\n schema.subDirectory || normalizedName,\n );\n return { dir, fullyQualifiedName };\n};\n\n/**\n * Generates a typescript project\n */\nexport const tsProjectGenerator = async (\n tree: Tree,\n schema: TsProjectGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const { fullyQualifiedName, dir } = getTsLibDetails(tree, schema);\n // The module format is workspace-wide, established by the preset when the\n // workspace is created, so vending generators always infer it from the tree.\n const esm = isEsmWorkspace(tree);\n\n // Only scaffold the project on first run; on re-run skip creation so user\n // edits are preserved, but continue to (re)apply the configuration below.\n if (!projectExists(tree, fullyQualifiedName)) {\n await libraryGenerator(tree, {\n ...schema,\n name: fullyQualifiedName,\n directory: dir,\n skipPackageJson: true,\n bundler: 'tsc', // TODO: consider supporting others\n linter: 'none',\n unitTestRunner: 'vitest',\n // Register the @nx/vitest plugin so the test target is inferred rather\n // than emitting the deprecated @nx/vitest:test executor target.\n addPlugin: true,\n });\n\n // Replace with simpler sample source code\n tree.delete(joinPathFragments(dir, 'src'));\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n joinPathFragments(dir),\n {\n fullyQualifiedName,\n esm,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n await configureTsProject(\n tree,\n {\n dir,\n fullyQualifiedName,\n esm,\n },\n DEPENDENCIES,\n );\n\n const projectConfiguration = readProjectConfiguration(\n tree,\n fullyQualifiedName,\n );\n const targets = projectConfiguration.targets;\n\n targets['compile'] = {\n executor: 'nx:run-commands',\n outputs: ['{workspaceRoot}/dist/{projectRoot}/tsc'],\n options: {\n command: 'tsc --build tsconfig.lib.json',\n cwd: '{projectRoot}',\n },\n };\n targets['build'] = {\n dependsOn: ['lint', 'compile', 'test'],\n };\n projectConfiguration.targets = sortObjectKeys(targets);\n\n updateProjectConfiguration(tree, fullyQualifiedName, projectConfiguration);\n\n addGeneratorMetadata(tree, fullyQualifiedName, TS_LIB_GENERATOR_INFO);\n\n updateJson(tree, 'nx.json', (nxJson: NxJsonConfiguration) => {\n nxJson.namedInputs = {\n ...nxJson.namedInputs,\n default: [\n ...(nxJson.namedInputs?.default ?? []).filter(\n (input) =>\n typeof input !== 'object' ||\n !('dependentTasksOutputFiles' in input) ||\n !(input.dependentTasksOutputFiles === '**/*' && input.transitive),\n ),\n {\n dependentTasksOutputFiles: '**/*',\n transitive: true,\n },\n ],\n };\n\n const withDefaultInput = (base: Partial<TargetConfiguration>) => ({\n ...base,\n inputs: [\n ...(base.inputs ?? []).filter((i) => i !== 'default'),\n 'default',\n ],\n });\n\n nxJson.targetDefaults = {\n ...nxJson.targetDefaults,\n compile: mergeTargetDefault(nxJson.targetDefaults?.compile, (base) => ({\n cache: true,\n ...withDefaultInput(base),\n })),\n build: mergeTargetDefault(nxJson.targetDefaults?.build, (base) => ({\n cache: true,\n ...withDefaultInput(base),\n })),\n test: mergeTargetDefault(nxJson.targetDefaults?.test, withDefaultInput),\n };\n\n // Ensure we only declare a single typescript plugin with the correct settings\n nxJson.plugins = [\n {\n plugin: '@nx/js/typescript',\n options: {\n typecheck: {\n targetName: 'typecheck',\n },\n build: {\n targetName: 'compile',\n configName: 'tsconfig.lib.json',\n buildDepsName: 'build-deps',\n watchDepsName: 'watch-deps',\n },\n },\n },\n ...(nxJson.plugins ?? []).filter(\n (p) => typeof p === 'string' || p.plugin !== '@nx/js/typescript',\n ),\n ];\n\n return nxJson;\n });\n\n await addGeneratorMetricsIfApplicable(tree, [TS_LIB_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n\n // `installDependencies` ensures vitest resolves for the `typescript` language (the\n // generated vitest.config.mts imports it and Nx loads that config when\n // computing the project graph), so a deferred install still runs when needed.\n return () =>\n installDependencies(tree, schema.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\nexport default tsProjectGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","readProjectConfiguration","updateJson","updateProjectConfiguration","libraryGenerator","declareDependencies","formatFilesInSubtree","installDependencies","addGeneratorMetricsIfApplicable","isEsmWorkspace","toKebabCase","getNpmScopePrefix","addGeneratorMetadata","getGeneratorInfo","mergeTargetDefault","projectExists","sortObjectKeys","getPackageManagerDisplayCommands","configureTsProject","VITEST_DEPENDENCIES","DEPENDENCIES","ts","TS_LIB_GENERATOR_INFO","filename","getTsLibDetails","tree","schema","scope","normalizedName","name","fullyQualifiedName","dir","directory","subDirectory","tsProjectGenerator","esm","skipPackageJson","bundler","linter","unitTestRunner","addPlugin","delete","dirname","pkgMgrCmd","exec","overwriteStrategy","KeepExisting","projectConfiguration","targets","executor","outputs","options","command","cwd","dependsOn","nxJson","namedInputs","default","filter","input","dependentTasksOutputFiles","transitive","withDefaultInput","base","inputs","i","targetDefaults","compile","cache","build","test","plugins","plugin","typecheck","targetName","configName","buildDepsName","watchDepsName","p","preferInstallDependencies","languages"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lib/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n type NxJsonConfiguration,\n OverwriteStrategy,\n readProjectConfiguration,\n type TargetConfiguration,\n type Tree,\n updateJson,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport { libraryGenerator } from '@nx/js';\nimport { declareDependencies } from '../../utils/declared-dependencies.js';\nimport { formatFilesInSubtree } from '../../utils/format.js';\nimport { installDependencies } from '../../utils/install.js';\nimport { addGeneratorMetricsIfApplicable } from '../../utils/metrics.js';\nimport { isEsmWorkspace } from '../../utils/module-format.js';\nimport { toKebabCase } from '../../utils/names.js';\nimport { getNpmScopePrefix } from '../../utils/npm-scope.js';\nimport {\n addGeneratorMetadata,\n getGeneratorInfo,\n mergeTargetDefault,\n type NxGeneratorInfo,\n projectExists,\n} from '../../utils/nx.js';\nimport { sortObjectKeys } from '../../utils/object.js';\nimport { getPackageManagerDisplayCommands } from '../../utils/pkg-manager.js';\nimport type { TsProjectGeneratorSchema } from './schema';\nimport { configureTsProject } from './ts-project-utils.js';\nimport { VITEST_DEPENDENCIES } from './vitest.js';\n\nexport const DEPENDENCIES = declareDependencies()({\n ts: [...VITEST_DEPENDENCIES],\n});\n\nexport const TS_LIB_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport interface TsLibDetails {\n /**\n * Full package name including scope (eg @foo/bar)\n */\n readonly fullyQualifiedName: string;\n /**\n * Directory of the library relative to the root\n */\n readonly dir: string;\n}\n\n/**\n * Returns details about the TS library to be created\n */\nexport const getTsLibDetails = (\n tree: Tree,\n schema: TsProjectGeneratorSchema,\n): TsLibDetails => {\n const scope = getNpmScopePrefix(tree);\n const normalizedName = toKebabCase(schema.name);\n const fullyQualifiedName = `${scope}${normalizedName}`;\n // NB: interactive nx generator cli can pass empty string\n const dir = joinPathFragments(\n schema.directory || '.',\n schema.subDirectory || normalizedName,\n );\n return { dir, fullyQualifiedName };\n};\n\n/**\n * Generates a typescript project\n */\nexport const tsProjectGenerator = async (\n tree: Tree,\n schema: TsProjectGeneratorSchema,\n): Promise<GeneratorCallback> => {\n const { fullyQualifiedName, dir } = getTsLibDetails(tree, schema);\n // The module format is workspace-wide, established by the preset when the\n // workspace is created, so vending generators always infer it from the tree.\n const esm = isEsmWorkspace(tree);\n\n // Only scaffold the project on first run; on re-run skip creation so user\n // edits are preserved, but continue to (re)apply the configuration below.\n if (!projectExists(tree, fullyQualifiedName)) {\n await libraryGenerator(tree, {\n ...schema,\n name: fullyQualifiedName,\n directory: dir,\n skipPackageJson: true,\n bundler: 'tsc', // TODO: consider supporting others\n linter: 'none',\n unitTestRunner: 'vitest',\n // Register the @nx/vitest plugin so the test target is inferred rather\n // than emitting the deprecated @nx/vitest:test executor target.\n addPlugin: true,\n });\n\n // Replace with simpler sample source code\n tree.delete(joinPathFragments(dir, 'src'));\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n joinPathFragments(dir),\n {\n fullyQualifiedName,\n esm,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n await configureTsProject(\n tree,\n {\n dir,\n fullyQualifiedName,\n esm,\n },\n DEPENDENCIES,\n );\n\n const projectConfiguration = readProjectConfiguration(\n tree,\n fullyQualifiedName,\n );\n const targets = projectConfiguration.targets;\n\n targets['compile'] = {\n executor: 'nx:run-commands',\n outputs: ['{workspaceRoot}/dist/{projectRoot}/tsc'],\n options: {\n command: 'tsc --build tsconfig.lib.json',\n cwd: '{projectRoot}',\n },\n };\n targets['build'] = {\n dependsOn: ['lint', 'compile', 'test'],\n };\n projectConfiguration.targets = sortObjectKeys(targets);\n\n updateProjectConfiguration(tree, fullyQualifiedName, projectConfiguration);\n\n addGeneratorMetadata(tree, fullyQualifiedName, TS_LIB_GENERATOR_INFO);\n\n updateJson(tree, 'nx.json', (nxJson: NxJsonConfiguration) => {\n nxJson.namedInputs = {\n ...nxJson.namedInputs,\n default: [\n ...(nxJson.namedInputs?.default ?? []).filter(\n (input) =>\n typeof input !== 'object' ||\n !('dependentTasksOutputFiles' in input) ||\n !(input.dependentTasksOutputFiles === '**/*' && input.transitive),\n ),\n {\n dependentTasksOutputFiles: '**/*',\n transitive: true,\n },\n ],\n };\n\n const withDefaultInput = (base: Partial<TargetConfiguration>) => ({\n ...base,\n inputs: [\n ...(base.inputs ?? []).filter((i) => i !== 'default'),\n 'default',\n ],\n });\n\n nxJson.targetDefaults = {\n ...nxJson.targetDefaults,\n compile: mergeTargetDefault(nxJson.targetDefaults?.compile, (base) => ({\n cache: true,\n ...withDefaultInput(base),\n })),\n build: mergeTargetDefault(nxJson.targetDefaults?.build, (base) => ({\n cache: true,\n ...withDefaultInput(base),\n })),\n test: mergeTargetDefault(nxJson.targetDefaults?.test, withDefaultInput),\n };\n\n // Ensure we only declare a single typescript plugin with the correct settings\n nxJson.plugins = [\n {\n plugin: '@nx/js/typescript',\n options: {\n typecheck: {\n targetName: 'typecheck',\n },\n build: {\n targetName: 'compile',\n configName: 'tsconfig.lib.json',\n buildDepsName: 'build-deps',\n watchDepsName: 'watch-deps',\n },\n },\n },\n ...(nxJson.plugins ?? []).filter(\n (p) => typeof p === 'string' || p.plugin !== '@nx/js/typescript',\n ),\n ];\n\n return nxJson;\n });\n\n await addGeneratorMetricsIfApplicable(tree, [TS_LIB_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n\n // `installDependencies` ensures vitest resolves for the `typescript` language (the\n // generated vitest.config.mts imports it and Nx loads that config when\n // computing the project graph), so a deferred install still runs when needed.\n return () =>\n installDependencies(tree, schema.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\nexport default tsProjectGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","readProjectConfiguration","updateJson","updateProjectConfiguration","libraryGenerator","declareDependencies","formatFilesInSubtree","installDependencies","addGeneratorMetricsIfApplicable","isEsmWorkspace","toKebabCase","getNpmScopePrefix","addGeneratorMetadata","getGeneratorInfo","mergeTargetDefault","projectExists","sortObjectKeys","getPackageManagerDisplayCommands","configureTsProject","VITEST_DEPENDENCIES","DEPENDENCIES","ts","TS_LIB_GENERATOR_INFO","filename","getTsLibDetails","tree","schema","scope","normalizedName","name","fullyQualifiedName","dir","directory","subDirectory","tsProjectGenerator","esm","skipPackageJson","bundler","linter","unitTestRunner","addPlugin","delete","dirname","pkgMgrCmd","exec","overwriteStrategy","KeepExisting","projectConfiguration","targets","executor","outputs","options","command","cwd","dependsOn","nxJson","namedInputs","default","filter","input","dependentTasksOutputFiles","transitive","withDefaultInput","base","inputs","i","targetDefaults","compile","cache","build","test","plugins","plugin","typecheck","targetName","configName","buildDepsName","watchDepsName","p","preferInstallDependencies","languages"],"mappings":"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"}
@@ -3,9 +3,9 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- import { type DependencyDeclaration, type MustDeclare } from '../../utils/declared-dependencies';
7
- import type { ConfigureProjectOptions } from './types';
8
- import { type VITEST_DEPENDENCIES } from './vitest';
6
+ import { type DependencyDeclaration, type MustDeclare } from '../../utils/declared-dependencies.js';
7
+ import type { ConfigureProjectOptions } from './types.js';
8
+ import { type VITEST_DEPENDENCIES } from './vitest.js';
9
9
  interface TsConfigReference {
10
10
  path: string;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lib/ts-project-utils.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { joinPathFragments, logger, type Tree, updateJson } from '@nx/devkit';\nimport { join, relative } from 'path';\nimport { addLicenseCheckToLintTarget } from '../../license/config';\nimport { AWS_NX_PLUGIN_CONFIG_FILE_NAME } from '../../utils/config/utils';\nimport {\n type DependencyDeclaration,\n forDependencies,\n type MustDeclare,\n} from '../../utils/declared-dependencies';\nimport { isEsmWorkspace } from '../../utils/module-format';\nimport { ensureProjectPackageJson } from '../../utils/project-package-json';\nimport { configureBiomeLint } from './biome';\nimport type { ConfigureProjectOptions } from './types';\nimport { configureVitest, type VITEST_DEPENDENCIES } from './vitest';\n\ninterface TsConfigReference {\n path: string;\n}\n\n/**\n * Merges new TypeScript project references into existing ones, deduplicating by\n * path and preserving the order of existing references so re-running a\n * generator neither duplicates nor reorders references.\n */\nexport const mergeTsReferences = (\n existing: TsConfigReference[] | undefined,\n toAdd: TsConfigReference[],\n): TsConfigReference[] => {\n const references = [...(existing ?? [])];\n const existingPaths = new Set(references.map((ref) => ref.path));\n for (const ref of toAdd) {\n if (!existingPaths.has(ref.path)) {\n references.push(ref);\n existingPaths.add(ref.path);\n }\n }\n return references;\n};\n\n/**\n * Updates typescript projects\n */\nexport const configureTsProject = async <const D extends DependencyDeclaration>(\n tree: Tree,\n options: ConfigureProjectOptions,\n declaration: D & MustDeclare<typeof VITEST_DEPENDENCIES, D>,\n) => {\n // Point users at init when the workspace hasn't been configured, since\n // lint/format targets and workspace dependency sync depend on it.\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) {\n logger.warn(\n `This workspace has no ${AWS_NX_PLUGIN_CONFIG_FILE_NAME} — run 'nx g @aws/nx-plugin:init' (or 'nx add @aws/nx-plugin') to configure linting, formatting and workspace dependency sync.`,\n );\n }\n\n // When the caller doesn't specify a module format, infer it from the\n // workspace root package.json (defaulting to ESM for a fresh workspace).\n const esm = options.esm ?? isEsmWorkspace(tree);\n\n // Remove a conflicting `module: commonjs` from the project tsconfig.json\n // (CommonJS is configured on tsconfig.lib.json below when needed).\n updateJson(tree, join(options.dir, 'tsconfig.json'), (tsConfig) => ({\n ...tsConfig,\n compilerOptions: {\n ...tsConfig.compilerOptions,\n module:\n tsConfig.compilerOptions?.module === 'commonjs'\n ? undefined\n : tsConfig.compilerOptions?.module,\n },\n }));\n const outDirToRootRelativePath = relative(\n join(tree.root, options.dir),\n tree.root,\n );\n const distDir = join(outDirToRootRelativePath, 'dist', options.dir, 'tsc');\n // Remove baseUrl and rootDir from the tsconfig.lib.json\n if (tree.exists(join(options.dir, 'tsconfig.lib.json'))) {\n updateJson(tree, join(options.dir, 'tsconfig.lib.json'), (tsConfig) => ({\n ...tsConfig,\n compilerOptions: {\n ...tsConfig.compilerOptions,\n baseUrl: undefined,\n rootDir: '.',\n outDir: distDir,\n tsBuildInfoFile: join(distDir, 'tsconfig.lib.tsbuildinfo'),\n // @nx/js configures the lib for ESM (module `nodenext`). CommonJS\n // projects use `node16`, which honours the workspace's\n // `type: commonjs`, emits CommonJS and resolves extensionless relative\n // imports. (Plain `commonjs`/`node` is deprecated in TypeScript 6.)\n ...(esm ? {} : { module: 'node16', moduleResolution: 'node16' }),\n },\n }));\n }\n // Update root project tsconfig\n updateJson(tree, 'tsconfig.base.json', (tsConfig) => ({\n ...tsConfig,\n compilerOptions: {\n ...tsConfig.compilerOptions,\n // baseUrl is deprecated in TypeScript 6 — use ./ prefix in paths instead\n baseUrl: undefined,\n rootDir: '.',\n paths: {\n ...tsConfig.compilerOptions?.paths,\n [options.fullyQualifiedName]: [\n `./${joinPathFragments(options.dir, 'src', 'index.ts')}`,\n ],\n },\n },\n }));\n if (tree.exists('tsconfig.json')) {\n updateJson(tree, 'tsconfig.json', (tsConfig) => ({\n ...tsConfig,\n // Add project references, deduplicating and preserving existing order\n references: mergeTsReferences(tsConfig.references, [\n { path: `./${options.dir}` },\n ]),\n }));\n }\n // Every project carries a minimal private package.json so the workspace\n // follows the standard npm package layout (see ensureProjectPackageJson).\n ensureProjectPackageJson(tree, {\n dir: options.dir,\n fullyQualifiedName: options.fullyQualifiedName,\n esm,\n });\n\n await configureBiomeLint(tree, options);\n await configureVitest(\n tree,\n options,\n forDependencies<typeof VITEST_DEPENDENCIES>(declaration),\n );\n\n // If license checking is configured, make this project's lint target depend\n // on the root license-check target. No-op if there's no license-check target\n // (i.e. the license generator hasn't run); the license generator wires up\n // existing projects itself, so this works regardless of generator order.\n addLicenseCheckToLintTarget(tree, options.fullyQualifiedName);\n};\n"],"names":["joinPathFragments","logger","updateJson","join","relative","addLicenseCheckToLintTarget","AWS_NX_PLUGIN_CONFIG_FILE_NAME","forDependencies","isEsmWorkspace","ensureProjectPackageJson","configureBiomeLint","configureVitest","mergeTsReferences","existing","toAdd","references","existingPaths","Set","map","ref","path","has","push","add","configureTsProject","tree","options","declaration","exists","warn","esm","dir","tsConfig","compilerOptions","module","undefined","outDirToRootRelativePath","root","distDir","baseUrl","rootDir","outDir","tsBuildInfoFile","moduleResolution","paths","fullyQualifiedName"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/ts/lib/ts-project-utils.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { joinPathFragments, logger, type Tree, updateJson } from '@nx/devkit';\nimport { join, relative } from 'path';\nimport { addLicenseCheckToLintTarget } from '../../license/config.js';\nimport { AWS_NX_PLUGIN_CONFIG_FILE_NAME } from '../../utils/config/utils.js';\nimport {\n type DependencyDeclaration,\n forDependencies,\n type MustDeclare,\n} from '../../utils/declared-dependencies.js';\nimport { isEsmWorkspace } from '../../utils/module-format.js';\nimport { ensureProjectPackageJson } from '../../utils/project-package-json.js';\nimport { configureBiomeLint } from './biome.js';\nimport type { ConfigureProjectOptions } from './types.js';\nimport { configureVitest, type VITEST_DEPENDENCIES } from './vitest.js';\n\ninterface TsConfigReference {\n path: string;\n}\n\n/**\n * Merges new TypeScript project references into existing ones, deduplicating by\n * path and preserving the order of existing references so re-running a\n * generator neither duplicates nor reorders references.\n */\nexport const mergeTsReferences = (\n existing: TsConfigReference[] | undefined,\n toAdd: TsConfigReference[],\n): TsConfigReference[] => {\n const references = [...(existing ?? [])];\n const existingPaths = new Set(references.map((ref) => ref.path));\n for (const ref of toAdd) {\n if (!existingPaths.has(ref.path)) {\n references.push(ref);\n existingPaths.add(ref.path);\n }\n }\n return references;\n};\n\n/**\n * Updates typescript projects\n */\nexport const configureTsProject = async <const D extends DependencyDeclaration>(\n tree: Tree,\n options: ConfigureProjectOptions,\n declaration: D & MustDeclare<typeof VITEST_DEPENDENCIES, D>,\n) => {\n // Point users at init when the workspace hasn't been configured, since\n // lint/format targets and workspace dependency sync depend on it.\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) {\n logger.warn(\n `This workspace has no ${AWS_NX_PLUGIN_CONFIG_FILE_NAME} — run 'nx g @aws/nx-plugin:init' (or 'nx add @aws/nx-plugin') to configure linting, formatting and workspace dependency sync.`,\n );\n }\n\n // When the caller doesn't specify a module format, infer it from the\n // workspace root package.json (defaulting to ESM for a fresh workspace).\n const esm = options.esm ?? isEsmWorkspace(tree);\n\n // Remove a conflicting `module: commonjs` from the project tsconfig.json\n // (CommonJS is configured on tsconfig.lib.json below when needed).\n updateJson(tree, join(options.dir, 'tsconfig.json'), (tsConfig) => ({\n ...tsConfig,\n compilerOptions: {\n ...tsConfig.compilerOptions,\n module:\n tsConfig.compilerOptions?.module === 'commonjs'\n ? undefined\n : tsConfig.compilerOptions?.module,\n },\n }));\n const outDirToRootRelativePath = relative(\n join(tree.root, options.dir),\n tree.root,\n );\n const distDir = join(outDirToRootRelativePath, 'dist', options.dir, 'tsc');\n // Remove baseUrl and rootDir from the tsconfig.lib.json\n if (tree.exists(join(options.dir, 'tsconfig.lib.json'))) {\n updateJson(tree, join(options.dir, 'tsconfig.lib.json'), (tsConfig) => ({\n ...tsConfig,\n compilerOptions: {\n ...tsConfig.compilerOptions,\n baseUrl: undefined,\n rootDir: '.',\n outDir: distDir,\n tsBuildInfoFile: join(distDir, 'tsconfig.lib.tsbuildinfo'),\n // @nx/js configures the lib for ESM (module `nodenext`). CommonJS\n // projects use `node16`, which honours the workspace's\n // `type: commonjs`, emits CommonJS and resolves extensionless relative\n // imports. (Plain `commonjs`/`node` is deprecated in TypeScript 6.)\n ...(esm ? {} : { module: 'node16', moduleResolution: 'node16' }),\n },\n }));\n }\n // Update root project tsconfig\n updateJson(tree, 'tsconfig.base.json', (tsConfig) => ({\n ...tsConfig,\n compilerOptions: {\n ...tsConfig.compilerOptions,\n // baseUrl is deprecated in TypeScript 6 — use ./ prefix in paths instead\n baseUrl: undefined,\n rootDir: '.',\n paths: {\n ...tsConfig.compilerOptions?.paths,\n [options.fullyQualifiedName]: [\n `./${joinPathFragments(options.dir, 'src', 'index.ts')}`,\n ],\n },\n },\n }));\n if (tree.exists('tsconfig.json')) {\n updateJson(tree, 'tsconfig.json', (tsConfig) => ({\n ...tsConfig,\n // Add project references, deduplicating and preserving existing order\n references: mergeTsReferences(tsConfig.references, [\n { path: `./${options.dir}` },\n ]),\n }));\n }\n // Every project carries a minimal private package.json so the workspace\n // follows the standard npm package layout (see ensureProjectPackageJson).\n ensureProjectPackageJson(tree, {\n dir: options.dir,\n fullyQualifiedName: options.fullyQualifiedName,\n esm,\n });\n\n await configureBiomeLint(tree, options);\n await configureVitest(\n tree,\n options,\n forDependencies<typeof VITEST_DEPENDENCIES>(declaration),\n );\n\n // If license checking is configured, make this project's lint target depend\n // on the root license-check target. No-op if there's no license-check target\n // (i.e. the license generator hasn't run); the license generator wires up\n // existing projects itself, so this works regardless of generator order.\n addLicenseCheckToLintTarget(tree, options.fullyQualifiedName);\n};\n"],"names":["joinPathFragments","logger","updateJson","join","relative","addLicenseCheckToLintTarget","AWS_NX_PLUGIN_CONFIG_FILE_NAME","forDependencies","isEsmWorkspace","ensureProjectPackageJson","configureBiomeLint","configureVitest","mergeTsReferences","existing","toAdd","references","existingPaths","Set","map","ref","path","has","push","add","configureTsProject","tree","options","declaration","exists","warn","esm","dir","tsConfig","compilerOptions","module","undefined","outDirToRootRelativePath","root","distDir","baseUrl","rootDir","outDir","tsBuildInfoFile","moduleResolution","paths","fullyQualifiedName"],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- import { type DependencyDeclaration, type MustDeclare } from '../../utils/declared-dependencies';
7
- import type { ConfigureProjectOptions } from './types';
6
+ import { type DependencyDeclaration, type MustDeclare } from '../../utils/declared-dependencies.js';
7
+ import type { ConfigureProjectOptions } from './types.js';
8
8
  /** Dependencies a caller must declare to configure vitest. */
9
9
  export declare const VITEST_DEPENDENCIES: readonly [{
10
10
  readonly name: "vite";