@aws/nx-plugin 1.0.0-rc.54 → 1.0.0-rc.56

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 (284) hide show
  1. package/migrations.json +50 -0
  2. package/package.json +1 -1
  3. package/src/agentcore-gateway/gateway-connection/generator.js +3 -1
  4. package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
  5. package/src/agentcore-gateway/generator.d.ts +49 -1
  6. package/src/agentcore-gateway/generator.js +55 -22
  7. package/src/agentcore-gateway/generator.js.map +1 -1
  8. package/src/agentcore-gateway/mcp-connection/generator.js +3 -1
  9. package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
  10. package/src/infra/app/__snapshots__/generator.spec.ts.snap +2 -0
  11. package/src/infra/app/generator.d.ts +43 -0
  12. package/src/infra/app/generator.js +47 -18
  13. package/src/infra/app/generator.js.map +1 -1
  14. package/src/init/generator.d.ts +13 -0
  15. package/src/init/generator.js +14 -3
  16. package/src/init/generator.js.map +1 -1
  17. package/src/migrations/latest/backfill-generator-metadata/migration.d.ts +96 -0
  18. package/src/migrations/latest/backfill-generator-metadata/migration.js +670 -0
  19. package/src/migrations/latest/backfill-generator-metadata/migration.js.map +1 -0
  20. package/src/migrations/latest/dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
  21. package/src/migrations/latest/dynamodb-local-remove-optimize-flag/migration.js +89 -0
  22. package/src/migrations/latest/dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
  23. package/src/migrations/latest/modernize-function-props-cast/migration.js +0 -1
  24. package/src/migrations/latest/modernize-function-props-cast/migration.js.map +1 -1
  25. package/src/migrations/latest/order-access-log-delivery-after-bucket-policy/migration.js +0 -1
  26. package/src/migrations/latest/order-access-log-delivery-after-bucket-policy/migration.js.map +1 -1
  27. package/src/migrations/latest/restrict-cors-to-custom-domains/migration.js +0 -2
  28. package/src/migrations/latest/restrict-cors-to-custom-domains/migration.js.map +1 -1
  29. package/src/migrations/latest/terraform-bootstrap-adopt-existing-bucket/migration.js +0 -1
  30. package/src/migrations/latest/terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -1
  31. package/src/migrations/latest/user-identity-waf-allow-localhost-callback/migration.js +0 -2
  32. package/src/migrations/latest/user-identity-waf-allow-localhost-callback/migration.js.map +1 -1
  33. package/src/preset/generator.d.ts +13 -0
  34. package/src/preset/generator.js +12 -3
  35. package/src/preset/generator.js.map +1 -1
  36. package/src/py/agent/a2a-connection/generator.d.ts +24 -0
  37. package/src/py/agent/a2a-connection/generator.js +49 -20
  38. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  39. package/src/py/agent/gateway-connection/generator.d.ts +23 -0
  40. package/src/py/agent/gateway-connection/generator.js +45 -11
  41. package/src/py/agent/gateway-connection/generator.js.map +1 -1
  42. package/src/py/agent/generator.d.ts +146 -1
  43. package/src/py/agent/generator.js +173 -76
  44. package/src/py/agent/generator.js.map +1 -1
  45. package/src/py/agent/mcp-connection/generator.d.ts +23 -0
  46. package/src/py/agent/mcp-connection/generator.js +45 -11
  47. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  48. package/src/py/agent/react-connection/generator.d.ts +146 -0
  49. package/src/py/agent/react-connection/generator.js +27 -4
  50. package/src/py/agent/react-connection/generator.js.map +1 -1
  51. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +0 -2
  52. package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +18 -0
  53. package/src/py/dynamodb/agent-connection/generator.js +7 -1
  54. package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
  55. package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +9 -0
  56. package/src/py/dynamodb/fast-api-connection/generator.js +3 -1
  57. package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
  58. package/src/py/dynamodb/generator.d.ts +29 -0
  59. package/src/py/dynamodb/generator.js +32 -12
  60. package/src/py/dynamodb/generator.js.map +1 -1
  61. package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +18 -0
  62. package/src/py/dynamodb/mcp-server-connection/generator.js +7 -1
  63. package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
  64. package/src/py/fast-api/generator.d.ts +63 -0
  65. package/src/py/fast-api/generator.js +58 -23
  66. package/src/py/fast-api/generator.js.map +1 -1
  67. package/src/py/fast-api/react/generator.d.ts +16 -1
  68. package/src/py/fast-api/react/generator.js +15 -3
  69. package/src/py/fast-api/react/generator.js.map +1 -1
  70. package/src/py/lambda-function/generator.d.ts +21 -0
  71. package/src/py/lambda-function/generator.js +29 -10
  72. package/src/py/lambda-function/generator.js.map +1 -1
  73. package/src/py/mcp-server/generator.d.ts +60 -0
  74. package/src/py/mcp-server/generator.js +62 -25
  75. package/src/py/mcp-server/generator.js.map +1 -1
  76. package/src/py/project/generator.d.ts +13 -0
  77. package/src/py/project/generator.js +29 -10
  78. package/src/py/project/generator.js.map +1 -1
  79. package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +19 -0
  80. package/src/py/rdb/agent-connection/generator.js +7 -1
  81. package/src/py/rdb/agent-connection/generator.js.map +1 -1
  82. package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +7 -0
  83. package/src/py/rdb/fast-api-connection/generator.js +3 -1
  84. package/src/py/rdb/fast-api-connection/generator.js.map +1 -1
  85. package/src/py/rdb/generator.d.ts +89 -0
  86. package/src/py/rdb/generator.js +88 -40
  87. package/src/py/rdb/generator.js.map +1 -1
  88. package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +18 -0
  89. package/src/py/rdb/mcp-server-connection/generator.js +7 -1
  90. package/src/py/rdb/mcp-server-connection/generator.js.map +1 -1
  91. package/src/smithy/project/generator.d.ts +7 -0
  92. package/src/smithy/project/generator.js +8 -2
  93. package/src/smithy/project/generator.js.map +1 -1
  94. package/src/smithy/react-connection/generator.d.ts +15 -0
  95. package/src/smithy/react-connection/generator.js +17 -3
  96. package/src/smithy/react-connection/generator.js.map +1 -1
  97. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +1 -0
  98. package/src/smithy/ts/api/generator.d.ts +79 -0
  99. package/src/smithy/ts/api/generator.js +77 -33
  100. package/src/smithy/ts/api/generator.js.map +1 -1
  101. package/src/terraform/project/generator.d.ts +50 -0
  102. package/src/terraform/project/generator.js +63 -17
  103. package/src/terraform/project/generator.js.map +1 -1
  104. package/src/trpc/backend/generator.d.ts +84 -0
  105. package/src/trpc/backend/generator.js +98 -38
  106. package/src/trpc/backend/generator.js.map +1 -1
  107. package/src/trpc/react/generator.d.ts +37 -0
  108. package/src/trpc/react/generator.js +63 -26
  109. package/src/trpc/react/generator.js.map +1 -1
  110. package/src/ts/agent/a2a-connection/generator.d.ts +46 -0
  111. package/src/ts/agent/a2a-connection/generator.js +53 -16
  112. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  113. package/src/ts/agent/gateway-connection/generator.d.ts +37 -0
  114. package/src/ts/agent/gateway-connection/generator.js +41 -14
  115. package/src/ts/agent/gateway-connection/generator.js.map +1 -1
  116. package/src/ts/agent/generator.d.ts +162 -0
  117. package/src/ts/agent/generator.js +166 -75
  118. package/src/ts/agent/generator.js.map +1 -1
  119. package/src/ts/agent/mcp-connection/generator.d.ts +37 -0
  120. package/src/ts/agent/mcp-connection/generator.js +41 -14
  121. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  122. package/src/ts/agent/react-connection/generator.d.ts +186 -0
  123. package/src/ts/agent/react-connection/generator.js +70 -21
  124. package/src/ts/agent/react-connection/generator.js.map +1 -1
  125. package/src/ts/astro-docs/generator.d.ts +38 -0
  126. package/src/ts/astro-docs/generator.js +58 -19
  127. package/src/ts/astro-docs/generator.js.map +1 -1
  128. package/src/ts/dcr-proxy/generator.d.ts +24 -0
  129. package/src/ts/dcr-proxy/generator.js +31 -14
  130. package/src/ts/dcr-proxy/generator.js.map +1 -1
  131. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +0 -2
  132. package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +18 -0
  133. package/src/ts/dynamodb/agent-connection/generator.js +7 -1
  134. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  135. package/src/ts/dynamodb/generator.d.ts +41 -0
  136. package/src/ts/dynamodb/generator.js +47 -20
  137. package/src/ts/dynamodb/generator.js.map +1 -1
  138. package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +18 -0
  139. package/src/ts/dynamodb/mcp-server-connection/generator.js +7 -1
  140. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  141. package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +9 -0
  142. package/src/ts/dynamodb/smithy-connection/generator.js +3 -1
  143. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  144. package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +9 -0
  145. package/src/ts/dynamodb/trpc-connection/generator.js +3 -1
  146. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  147. package/src/ts/lambda-function/generator.d.ts +38 -0
  148. package/src/ts/lambda-function/generator.js +49 -20
  149. package/src/ts/lambda-function/generator.js.map +1 -1
  150. package/src/ts/lib/generator.d.ts +7 -0
  151. package/src/ts/lib/generator.js +8 -1
  152. package/src/ts/lib/generator.js.map +1 -1
  153. package/src/ts/lib/ts-project-utils.d.ts +3 -1
  154. package/src/ts/lib/ts-project-utils.js +3 -2
  155. package/src/ts/lib/ts-project-utils.js.map +1 -1
  156. package/src/ts/lib/vitest.d.ts +10 -1
  157. package/src/ts/lib/vitest.js +14 -2
  158. package/src/ts/lib/vitest.js.map +1 -1
  159. package/src/ts/mcp-server/generator.d.ts +71 -0
  160. package/src/ts/mcp-server/generator.js +73 -36
  161. package/src/ts/mcp-server/generator.js.map +1 -1
  162. package/src/ts/nx-generator/generator.d.ts +3 -0
  163. package/src/ts/nx-generator/generator.js +8 -2
  164. package/src/ts/nx-generator/generator.js.map +1 -1
  165. package/src/ts/nx-migration/files/migration.ts.template +4 -0
  166. package/src/ts/nx-migration/generator.d.ts +3 -0
  167. package/src/ts/nx-migration/generator.js +8 -2
  168. package/src/ts/nx-migration/generator.js.map +1 -1
  169. package/src/ts/nx-plugin/generator.d.ts +3 -0
  170. package/src/ts/nx-plugin/generator.js +8 -2
  171. package/src/ts/nx-plugin/generator.js.map +1 -1
  172. package/src/ts/nx-plugin/utils.d.ts +7 -2
  173. package/src/ts/nx-plugin/utils.js +10 -4
  174. package/src/ts/nx-plugin/utils.js.map +1 -1
  175. package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +10 -0
  176. package/src/ts/rdb/agent-connection/generator.js +8 -1
  177. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  178. package/src/ts/rdb/generator.d.ts +101 -0
  179. package/src/ts/rdb/generator.js +93 -41
  180. package/src/ts/rdb/generator.js.map +1 -1
  181. package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +10 -0
  182. package/src/ts/rdb/mcp-server-connection/generator.js +8 -1
  183. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  184. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +9 -0
  185. package/src/ts/rdb/smithy-connection/generator.js +4 -1
  186. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  187. package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +9 -0
  188. package/src/ts/rdb/trpc-connection/generator.js +3 -1
  189. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  190. package/src/ts/react-website/agui/generator.d.ts +86 -0
  191. package/src/ts/react-website/agui/generator.js +63 -28
  192. package/src/ts/react-website/agui/generator.js.map +1 -1
  193. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +8 -2
  194. package/src/ts/react-website/app/generator.d.ts +136 -1
  195. package/src/ts/react-website/app/generator.js +109 -40
  196. package/src/ts/react-website/app/generator.js.map +1 -1
  197. package/src/ts/react-website/cognito-auth/generator.d.ts +19 -0
  198. package/src/ts/react-website/cognito-auth/generator.js +21 -9
  199. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  200. package/src/utils/add-dependencies.d.ts +38 -0
  201. package/src/utils/add-dependencies.js +83 -0
  202. package/src/utils/add-dependencies.js.map +1 -0
  203. package/src/utils/agent-connection/agent-connection.d.ts +27 -6
  204. package/src/utils/agent-connection/agent-connection.js +47 -18
  205. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  206. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +19 -1
  207. package/src/utils/agent-core-constructs/agent-core-constructs.js +26 -6
  208. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  209. package/src/utils/api-constructs/api-constructs.d.ts +21 -2
  210. package/src/utils/api-constructs/api-constructs.js +26 -5
  211. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  212. package/src/utils/bundle/bundle.d.ts +6 -1
  213. package/src/utils/bundle/bundle.js +8 -2
  214. package/src/utils/bundle/bundle.js.map +1 -1
  215. package/src/utils/commands.d.ts +5 -4
  216. package/src/utils/commands.js +2 -6
  217. package/src/utils/commands.js.map +1 -1
  218. package/src/utils/connection/open-api/react.d.ts +18 -1
  219. package/src/utils/connection/open-api/react.js +27 -3
  220. package/src/utils/connection/open-api/react.js.map +1 -1
  221. package/src/utils/declared-dependencies.d.ts +140 -0
  222. package/src/utils/declared-dependencies.js +64 -0
  223. package/src/utils/declared-dependencies.js.map +1 -0
  224. package/src/utils/docker.d.ts +10 -1
  225. package/src/utils/docker.js +7 -3
  226. package/src/utils/docker.js.map +1 -1
  227. package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +0 -1
  228. package/src/utils/fs.d.ts +15 -4
  229. package/src/utils/fs.js +26 -13
  230. package/src/utils/fs.js.map +1 -1
  231. package/src/utils/init.d.ts +14 -1
  232. package/src/utils/init.js +25 -7
  233. package/src/utils/init.js.map +1 -1
  234. package/src/utils/migration-versions.d.ts +25 -6
  235. package/src/utils/migration-versions.js +72 -14
  236. package/src/utils/migration-versions.js.map +1 -1
  237. package/src/utils/nx.d.ts +18 -0
  238. package/src/utils/nx.js +4 -0
  239. package/src/utils/nx.js.map +1 -1
  240. package/src/utils/py.d.ts +3 -2
  241. package/src/utils/py.js +10 -10
  242. package/src/utils/py.js.map +1 -1
  243. package/src/utils/shared-constructs-constants.d.ts +39 -4
  244. package/src/utils/shared-constructs-constants.js +29 -0
  245. package/src/utils/shared-constructs-constants.js.map +1 -1
  246. package/src/utils/shared-constructs.d.ts +4 -1
  247. package/src/utils/shared-constructs.js +5 -4
  248. package/src/utils/shared-constructs.js.map +1 -1
  249. package/src/utils/shared-dynamodb-scripts.d.ts +8 -1
  250. package/src/utils/shared-dynamodb-scripts.js +11 -3
  251. package/src/utils/shared-dynamodb-scripts.js.map +1 -1
  252. package/src/utils/shared-infra-scripts.d.ts +16 -1
  253. package/src/utils/shared-infra-scripts.js +18 -3
  254. package/src/utils/shared-infra-scripts.js.map +1 -1
  255. package/src/utils/shared-rdb-scripts.d.ts +12 -1
  256. package/src/utils/shared-rdb-scripts.js +17 -3
  257. package/src/utils/shared-rdb-scripts.js.map +1 -1
  258. package/src/utils/shared-shadcn.d.ts +26 -1
  259. package/src/utils/shared-shadcn.js +31 -14
  260. package/src/utils/shared-shadcn.js.map +1 -1
  261. package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
  262. package/src/utils/version-upgrade-migration/migration.js +16 -0
  263. package/src/utils/version-upgrade-migration/migration.js.map +1 -0
  264. package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
  265. package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
  266. package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
  267. package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +50 -0
  268. package/src/utils/version-upgrade-migration/owned-dependencies.js +98 -0
  269. package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
  270. package/src/utils/version-upgrade-migration/register.d.ts +23 -0
  271. package/src/utils/version-upgrade-migration/register.js +38 -0
  272. package/src/utils/version-upgrade-migration/register.js.map +1 -0
  273. package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
  274. package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
  275. package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
  276. package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
  277. package/src/utils/version-upgrade-migration/sync-vended-versions.js +504 -0
  278. package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
  279. package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
  280. package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
  281. package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
  282. package/src/utils/versions.d.ts +25 -5
  283. package/src/utils/versions.js +46 -4
  284. package/src/utils/versions.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-dynamodb-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds DynamoDB local-dev scripts\n * to packages/common/scripts/src/dynamodb/. Used by both ts#dynamodb and\n * py#dynamodb so a single set of TypeScript scripts serves both.\n */\nexport async function sharedDynamoDBScriptsGenerator(\n tree: Tree,\n): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'dynamodb',\n ),\n joinPathFragments(scriptsDir, 'src', 'dynamodb'),\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions(['@aws-sdk/client-dynamodb']),\n {},\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'package.json'),\n );\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addDependenciesToPackageJson","PACKAGES_DIR","SHARED_SCRIPTS_DIR","ensureSharedScriptsProject","withVersions","sharedDynamoDBScriptsGenerator","tree","scriptsDir","dirname","overwriteStrategy","KeepExisting"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SACEC,YAAY,EACZC,kBAAkB,QACb,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAASC,YAAY,QAAQ,gBAAa;AAE1C;;;;CAIC,GACD,OAAO,eAAeC,+BACpBC,IAAU;IAEV,MAAMC,aAAaT,kBAAkBG,cAAcC;IAEnD,MAAMC,2BAA2BG;IAEjCT,cACES,MACAR,kBACE,YAAYU,OAAO,EACnB,SACAN,oBACA,OACA,aAEFJ,kBAAkBS,YAAY,OAAO,aACrC,CAAC,GACD;QAAEE,mBAAmBV,kBAAkBW,YAAY;IAAC;IAGtDV,6BACEM,MACAF,aAAa;QAAC;KAA2B,GACzC,CAAC,GACDN,kBAAkBG,cAAcC,oBAAoB;IAEtDF,6BAA6BM,MAAM,CAAC,GAAGF,aAAa;QAAC;KAAM;AAC7D"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-dynamodb-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport type {\n DependencyDeclaration,\n MustDeclare,\n} from './declared-dependencies';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { type ITsDepVersion, withVersions } from './versions';\n\n/** Dependencies a caller must declare to use the shared DynamoDB scripts. */\nexport const SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES = [\n { name: '@aws-sdk/client-dynamodb' },\n { name: 'tsx' },\n] as const satisfies readonly { name: ITsDepVersion }[];\n\n/**\n * Ensures the shared scripts package exists and adds DynamoDB local-dev scripts\n * to packages/common/scripts/src/dynamodb/. Used by both ts#dynamodb and\n * py#dynamodb so a single set of TypeScript scripts serves both.\n */\nexport async function sharedDynamoDBScriptsGenerator<\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n declaration: D & MustDeclare<typeof SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES, D>,\n): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'dynamodb',\n ),\n joinPathFragments(scriptsDir, 'src', 'dynamodb'),\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES\n >,\n ['@aws-sdk/client-dynamodb'],\n ),\n {},\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'package.json'),\n );\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES\n >,\n ['tsx'],\n ),\n );\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addDependenciesToPackageJson","PACKAGES_DIR","SHARED_SCRIPTS_DIR","ensureSharedScriptsProject","withVersions","SHARED_DYNAMODB_SCRIPTS_DEPENDENCIES","name","sharedDynamoDBScriptsGenerator","tree","declaration","scriptsDir","dirname","overwriteStrategy","KeepExisting"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AAKpB,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SACEC,YAAY,EACZC,kBAAkB,QACb,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,2EAA2E,GAC3E,OAAO,MAAMC,uCAAuC;IAClD;QAAEC,MAAM;IAA2B;IACnC;QAAEA,MAAM;IAAM;CACf,CAAuD;AAExD;;;;CAIC,GACD,OAAO,eAAeC,+BAGpBC,IAAU,EACVC,WAA4E;IAE5E,MAAMC,aAAaZ,kBAAkBG,cAAcC;IAEnD,MAAMC,2BAA2BK;IAEjCX,cACEW,MACAV,kBACE,YAAYa,OAAO,EACnB,SACAT,oBACA,OACA,aAEFJ,kBAAkBY,YAAY,OAAO,aACrC,CAAC,GACD;QAAEE,mBAAmBb,kBAAkBc,YAAY;IAAC;IAGtDb,6BACEQ,MACAJ,aACEK,aAGA;QAAC;KAA2B,GAE9B,CAAC,GACDX,kBAAkBG,cAAcC,oBAAoB;IAEtDF,6BACEQ,MACA,CAAC,GACDJ,aACEK,aAGA;QAAC;KAAM;AAGb"}
@@ -3,9 +3,24 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
+ import type { DependencyDeclaration, MustDeclare } from './declared-dependencies';
7
+ import { type IacMetadata } from './shared-constructs-constants';
8
+ /**
9
+ * Dependencies a caller must declare to use the shared infra scripts.
10
+ *
11
+ * Gated on infrastructure having been generated, since the scripts project is
12
+ * only created on that branch.
13
+ */
14
+ export declare const SHARED_INFRA_SCRIPTS_DEPENDENCIES: readonly [{
15
+ readonly name: "@aws-sdk/client-sts";
16
+ readonly when: (m: IacMetadata) => boolean;
17
+ }, {
18
+ readonly name: "@aws-sdk/credential-providers";
19
+ readonly when: (m: IacMetadata) => boolean;
20
+ }];
6
21
  /**
7
22
  * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy
8
23
  * scripts to packages/common/scripts/src/infra/. Called by ts#infra when
9
24
  * stageConfig is enabled.
10
25
  */
11
- export declare function sharedInfraScriptsGenerator(tree: Tree): Promise<void>;
26
+ export declare function sharedInfraScriptsGenerator<const D extends DependencyDeclaration>(tree: Tree, declaration: D & MustDeclare<typeof SHARED_INFRA_SCRIPTS_DEPENDENCIES, D>): Promise<void>;
@@ -7,14 +7,29 @@ import { formatFilesInSubtree } from "./format.js";
7
7
  import { esmVars } from "./module-format.js";
8
8
  import { getNpmScopePrefix } from "./npm-scope.js";
9
9
  import { getPackageManagerDisplayCommands } from "./pkg-manager.js";
10
- import { PACKAGES_DIR, SHARED_SCRIPTS_DIR, SHARED_SCRIPTS_NAME } from "./shared-constructs-constants.js";
10
+ import { generatedInfrastructure, PACKAGES_DIR, SHARED_SCRIPTS_DIR, SHARED_SCRIPTS_NAME } from "./shared-constructs-constants.js";
11
11
  import { ensureSharedScriptsProject } from "./shared-scripts.js";
12
12
  import { withVersions } from "./versions.js";
13
+ /**
14
+ * Dependencies a caller must declare to use the shared infra scripts.
15
+ *
16
+ * Gated on infrastructure having been generated, since the scripts project is
17
+ * only created on that branch.
18
+ */ export const SHARED_INFRA_SCRIPTS_DEPENDENCIES = [
19
+ {
20
+ name: '@aws-sdk/client-sts',
21
+ when: generatedInfrastructure
22
+ },
23
+ {
24
+ name: '@aws-sdk/credential-providers',
25
+ when: generatedInfrastructure
26
+ }
27
+ ];
13
28
  /**
14
29
  * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy
15
30
  * scripts to packages/common/scripts/src/infra/. Called by ts#infra when
16
31
  * stageConfig is enabled.
17
- */ export async function sharedInfraScriptsGenerator(tree) {
32
+ */ export async function sharedInfraScriptsGenerator(tree, declaration) {
18
33
  const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);
19
34
  await ensureSharedScriptsProject(tree);
20
35
  const npmScopePrefix = getNpmScopePrefix(tree);
@@ -26,7 +41,7 @@ import { withVersions } from "./versions.js";
26
41
  overwriteStrategy: OverwriteStrategy.KeepExisting
27
42
  });
28
43
  // Used by deploy-time scripts for assumeRole
29
- addDependenciesToPackageJson(tree, {}, withVersions([
44
+ addDependenciesToPackageJson(tree, {}, withVersions(declaration, [
30
45
  '@aws-sdk/client-sts',
31
46
  '@aws-sdk/credential-providers'
32
47
  ]), joinPathFragments(joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR), 'package.json'));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n SHARED_SCRIPTS_NAME,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy\n * scripts to packages/common/scripts/src/infra/. Called by ts#infra when\n * stageConfig is enabled.\n */\nexport async function sharedInfraScriptsGenerator(tree: Tree): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = npmScopePrefix;\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'infra',\n ),\n joinPathFragments(scriptsDir, 'src', 'infra'),\n { scopeAlias, ...esmVars(tree) },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Used by deploy-time scripts for assumeRole\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(['@aws-sdk/client-sts', '@aws-sdk/credential-providers']),\n joinPathFragments(\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR),\n 'package.json',\n ),\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n scriptsDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_SCRIPTS_NAME}`,\n name: SHARED_SCRIPTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addDependenciesToPackageJson","formatFilesInSubtree","esmVars","getNpmScopePrefix","getPackageManagerDisplayCommands","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_SCRIPTS_NAME","ensureSharedScriptsProject","withVersions","sharedInfraScriptsGenerator","tree","scriptsDir","npmScopePrefix","scopeAlias","dirname","overwriteStrategy","KeepExisting","fullyQualifiedName","name","pkgMgrCmd","exec","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,QACd,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAASC,YAAY,QAAQ,gBAAa;AAE1C;;;;CAIC,GACD,OAAO,eAAeC,4BAA4BC,IAAU;IAC1D,MAAMC,aAAad,kBAAkBO,cAAcC;IAEnD,MAAME,2BAA2BG;IAEjC,MAAME,iBAAiBV,kBAAkBQ;IACzC,MAAMG,aAAaD;IAEnBhB,cACEc,MACAb,kBACE,YAAYiB,OAAO,EACnB,SACAT,oBACA,OACA,UAEFR,kBAAkBc,YAAY,OAAO,UACrC;QAAEE;QAAY,GAAGZ,QAAQS,KAAK;IAAC,GAC/B;QAAEK,mBAAmBjB,kBAAkBkB,YAAY;IAAC;IAGtD,6CAA6C;IAC7CjB,6BACEW,MACA,CAAC,GACDF,aAAa;QAAC;QAAuB;KAAgC,GACrEX,kBACEA,kBAAkBO,cAAcC,qBAChC;IAIJT,cACEc,MACAb,kBAAkB,YAAYiB,OAAO,EAAE,SAAS,UAAU,WAC1DH,YACA;QACEM,oBAAoB,GAAGL,iBAAiBN,qBAAqB;QAC7DY,MAAMZ;QACNa,WAAWhB,mCAAmCiB,IAAI;IACpD,GACA;QAAEL,mBAAmBjB,kBAAkBuB,SAAS;IAAC;IAGnD,MAAMrB,qBAAqBU;AAC7B"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-infra-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport type {\n DeclaredTsDependency,\n DependencyDeclaration,\n MustDeclare,\n} from './declared-dependencies';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport { getPackageManagerDisplayCommands } from './pkg-manager';\nimport {\n generatedInfrastructure,\n type IacMetadata,\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n SHARED_SCRIPTS_NAME,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { type ITsDepVersion, withVersions } from './versions';\n\n/**\n * Dependencies a caller must declare to use the shared infra scripts.\n *\n * Gated on infrastructure having been generated, since the scripts project is\n * only created on that branch.\n */\nexport const SHARED_INFRA_SCRIPTS_DEPENDENCIES = [\n { name: '@aws-sdk/client-sts', when: generatedInfrastructure },\n { name: '@aws-sdk/credential-providers', when: generatedInfrastructure },\n] as const satisfies readonly DeclaredTsDependency<\n ITsDepVersion,\n IacMetadata\n>[];\n\n/**\n * Ensures the shared scripts package exists and adds infra-deploy/infra-destroy\n * scripts to packages/common/scripts/src/infra/. Called by ts#infra when\n * stageConfig is enabled.\n */\nexport async function sharedInfraScriptsGenerator<\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n declaration: D & MustDeclare<typeof SHARED_INFRA_SCRIPTS_DEPENDENCIES, D>,\n): Promise<void> {\n const scriptsDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR);\n\n await ensureSharedScriptsProject(tree);\n\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = npmScopePrefix;\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'infra',\n ),\n joinPathFragments(scriptsDir, 'src', 'infra'),\n { scopeAlias, ...esmVars(tree) },\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // Used by deploy-time scripts for assumeRole\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_INFRA_SCRIPTS_DEPENDENCIES\n >,\n ['@aws-sdk/client-sts', '@aws-sdk/credential-providers'],\n ),\n joinPathFragments(\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR),\n 'package.json',\n ),\n );\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'common', 'readme'),\n scriptsDir,\n {\n fullyQualifiedName: `${npmScopePrefix}${SHARED_SCRIPTS_NAME}`,\n name: SHARED_SCRIPTS_NAME,\n pkgMgrCmd: getPackageManagerDisplayCommands().exec,\n },\n { overwriteStrategy: OverwriteStrategy.Overwrite },\n );\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addDependenciesToPackageJson","formatFilesInSubtree","esmVars","getNpmScopePrefix","getPackageManagerDisplayCommands","generatedInfrastructure","PACKAGES_DIR","SHARED_SCRIPTS_DIR","SHARED_SCRIPTS_NAME","ensureSharedScriptsProject","withVersions","SHARED_INFRA_SCRIPTS_DEPENDENCIES","name","when","sharedInfraScriptsGenerator","tree","declaration","scriptsDir","npmScopePrefix","scopeAlias","dirname","overwriteStrategy","KeepExisting","fullyQualifiedName","pkgMgrCmd","exec","Overwrite"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AAMpB,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SAASC,gCAAgC,QAAQ,mBAAgB;AACjE,SACEC,uBAAuB,EAEvBC,YAAY,EACZC,kBAAkB,EAClBC,mBAAmB,QACd,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D;;;;;CAKC,GACD,OAAO,MAAMC,oCAAoC;IAC/C;QAAEC,MAAM;QAAuBC,MAAMR;IAAwB;IAC7D;QAAEO,MAAM;QAAiCC,MAAMR;IAAwB;CACxE,CAGG;AAEJ;;;;CAIC,GACD,OAAO,eAAeS,4BAGpBC,IAAU,EACVC,WAAyE;IAEzE,MAAMC,aAAanB,kBAAkBQ,cAAcC;IAEnD,MAAME,2BAA2BM;IAEjC,MAAMG,iBAAiBf,kBAAkBY;IACzC,MAAMI,aAAaD;IAEnBrB,cACEkB,MACAjB,kBACE,YAAYsB,OAAO,EACnB,SACAb,oBACA,OACA,UAEFT,kBAAkBmB,YAAY,OAAO,UACrC;QAAEE;QAAY,GAAGjB,QAAQa,KAAK;IAAC,GAC/B;QAAEM,mBAAmBtB,kBAAkBuB,YAAY;IAAC;IAGtD,6CAA6C;IAC7CtB,6BACEe,MACA,CAAC,GACDL,aACEM,aAGA;QAAC;QAAuB;KAAgC,GAE1DlB,kBACEA,kBAAkBQ,cAAcC,qBAChC;IAIJV,cACEkB,MACAjB,kBAAkB,YAAYsB,OAAO,EAAE,SAAS,UAAU,WAC1DH,YACA;QACEM,oBAAoB,GAAGL,iBAAiBV,qBAAqB;QAC7DI,MAAMJ;QACNgB,WAAWpB,mCAAmCqB,IAAI;IACpD,GACA;QAAEJ,mBAAmBtB,kBAAkB2B,SAAS;IAAC;IAGnD,MAAMzB,qBAAqBc;AAC7B"}
@@ -3,6 +3,17 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
+ import type { DependencyDeclaration, MustDeclare } from './declared-dependencies';
7
+ /** Dependencies a caller must declare to use the shared RDB scripts. */
8
+ export declare const SHARED_RDB_SCRIPTS_DEPENDENCIES: readonly [{
9
+ readonly name: "pg";
10
+ }, {
11
+ readonly name: "@types/pg";
12
+ }, {
13
+ readonly name: "mariadb";
14
+ }, {
15
+ readonly name: "tsx";
16
+ }];
6
17
  /**
7
18
  * Ensures the shared scripts package exists and adds RDB local-dev scripts
8
19
  * to packages/common/scripts/src/rdb/. Used by ts#rdb.
@@ -13,4 +24,4 @@ import { type Tree } from '@nx/devkit';
13
24
  * The engine-specific file names allow postgres and mysql projects to
14
25
  * coexist in the same workspace.
15
26
  */
16
- export declare function sharedRdbScriptsGenerator(tree: Tree, engine: 'postgres' | 'mysql'): Promise<void>;
27
+ export declare function sharedRdbScriptsGenerator<const D extends DependencyDeclaration>(tree: Tree, engine: 'postgres' | 'mysql', declaration: D & MustDeclare<typeof SHARED_RDB_SCRIPTS_DEPENDENCIES, D>): Promise<void>;
@@ -6,6 +6,20 @@ import { addDependenciesToPackageJson } from "./dependencies.js";
6
6
  import { PACKAGES_DIR, SHARED_SCRIPTS_DIR } from "./shared-constructs-constants.js";
7
7
  import { ensureSharedScriptsProject } from "./shared-scripts.js";
8
8
  import { withVersions } from "./versions.js";
9
+ /** Dependencies a caller must declare to use the shared RDB scripts. */ export const SHARED_RDB_SCRIPTS_DEPENDENCIES = [
10
+ {
11
+ name: 'pg'
12
+ },
13
+ {
14
+ name: '@types/pg'
15
+ },
16
+ {
17
+ name: 'mariadb'
18
+ },
19
+ {
20
+ name: 'tsx'
21
+ }
22
+ ];
9
23
  /**
10
24
  * Ensures the shared scripts package exists and adds RDB local-dev scripts
11
25
  * to packages/common/scripts/src/rdb/. Used by ts#rdb.
@@ -15,7 +29,7 @@ import { withVersions } from "./versions.js";
15
29
  * projects do not reference database client packages they don't install.
16
30
  * The engine-specific file names allow postgres and mysql projects to
17
31
  * coexist in the same workspace.
18
- */ export async function sharedRdbScriptsGenerator(tree, engine) {
32
+ */ export async function sharedRdbScriptsGenerator(tree, engine, declaration) {
19
33
  await ensureSharedScriptsProject(tree);
20
34
  const rdbScriptsDir = joinPathFragments(import.meta.dirname, 'files', SHARED_SCRIPTS_DIR, 'src', 'rdb');
21
35
  const targetDir = joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'src', 'rdb');
@@ -36,8 +50,8 @@ import { withVersions } from "./versions.js";
36
50
  const clientDevDeps = engine === 'postgres' ? [
37
51
  '@types/pg'
38
52
  ] : [];
39
- addDependenciesToPackageJson(tree, withVersions(clientDeps), withVersions(clientDevDeps), joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'package.json'));
40
- addDependenciesToPackageJson(tree, {}, withVersions([
53
+ addDependenciesToPackageJson(tree, withVersions(declaration, clientDeps), withVersions(declaration, clientDevDeps), joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'package.json'));
54
+ addDependenciesToPackageJson(tree, {}, withVersions(declaration, [
41
55
  'tsx'
42
56
  ]));
43
57
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-rdb-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { type ITsDepVersion, withVersions } from './versions';\n\n/**\n * Ensures the shared scripts package exists and adds RDB local-dev scripts\n * to packages/common/scripts/src/rdb/. Used by ts#rdb.\n *\n * Engine-agnostic scripts (pull-image, start-container) are always vended.\n * Only the wait-for-db script for the requested engine is vended so that\n * projects do not reference database client packages they don't install.\n * The engine-specific file names allow postgres and mysql projects to\n * coexist in the same workspace.\n */\nexport async function sharedRdbScriptsGenerator(\n tree: Tree,\n engine: 'postgres' | 'mysql',\n): Promise<void> {\n await ensureSharedScriptsProject(tree);\n\n const rdbScriptsDir = joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'rdb',\n );\n const targetDir = joinPathFragments(\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n 'src',\n 'rdb',\n );\n\n generateFiles(\n tree,\n joinPathFragments(rdbScriptsDir, 'shared'),\n targetDir,\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n generateFiles(\n tree,\n joinPathFragments(rdbScriptsDir, engine),\n targetDir,\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // The engine's wait-for-db script imports the database client, so declare it\n // in the scripts project's own package.json (tsx runs the scripts and lives\n // in the workspace root devDependencies).\n const clientDeps: ITsDepVersion[] =\n engine === 'postgres' ? ['pg'] : ['mariadb'];\n const clientDevDeps: ITsDepVersion[] =\n engine === 'postgres' ? ['@types/pg'] : [];\n addDependenciesToPackageJson(\n tree,\n withVersions(clientDeps),\n withVersions(clientDevDeps),\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'package.json'),\n );\n addDependenciesToPackageJson(tree, {}, withVersions(['tsx']));\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addDependenciesToPackageJson","PACKAGES_DIR","SHARED_SCRIPTS_DIR","ensureSharedScriptsProject","withVersions","sharedRdbScriptsGenerator","tree","engine","rdbScriptsDir","dirname","targetDir","overwriteStrategy","KeepExisting","clientDeps","clientDevDeps"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SACEC,YAAY,EACZC,kBAAkB,QACb,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D;;;;;;;;;CASC,GACD,OAAO,eAAeC,0BACpBC,IAAU,EACVC,MAA4B;IAE5B,MAAMJ,2BAA2BG;IAEjC,MAAME,gBAAgBV,kBACpB,YAAYW,OAAO,EACnB,SACAP,oBACA,OACA;IAEF,MAAMQ,YAAYZ,kBAChBG,cACAC,oBACA,OACA;IAGFL,cACES,MACAR,kBAAkBU,eAAe,WACjCE,WACA,CAAC,GACD;QAAEC,mBAAmBZ,kBAAkBa,YAAY;IAAC;IAEtDf,cACES,MACAR,kBAAkBU,eAAeD,SACjCG,WACA,CAAC,GACD;QAAEC,mBAAmBZ,kBAAkBa,YAAY;IAAC;IAGtD,6EAA6E;IAC7E,4EAA4E;IAC5E,0CAA0C;IAC1C,MAAMC,aACJN,WAAW,aAAa;QAAC;KAAK,GAAG;QAAC;KAAU;IAC9C,MAAMO,gBACJP,WAAW,aAAa;QAAC;KAAY,GAAG,EAAE;IAC5CP,6BACEM,MACAF,aAAaS,aACbT,aAAaU,gBACbhB,kBAAkBG,cAAcC,oBAAoB;IAEtDF,6BAA6BM,MAAM,CAAC,GAAGF,aAAa;QAAC;KAAM;AAC7D"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-rdb-scripts.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport type {\n DependencyDeclaration,\n MustDeclare,\n} from './declared-dependencies';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport {\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n} from './shared-constructs-constants';\nimport { ensureSharedScriptsProject } from './shared-scripts';\nimport { type ITsDepVersion, withVersions } from './versions';\n\n/** Dependencies a caller must declare to use the shared RDB scripts. */\nexport const SHARED_RDB_SCRIPTS_DEPENDENCIES = [\n { name: 'pg' },\n { name: '@types/pg' },\n { name: 'mariadb' },\n { name: 'tsx' },\n] as const satisfies readonly { name: ITsDepVersion }[];\n\n/**\n * Ensures the shared scripts package exists and adds RDB local-dev scripts\n * to packages/common/scripts/src/rdb/. Used by ts#rdb.\n *\n * Engine-agnostic scripts (pull-image, start-container) are always vended.\n * Only the wait-for-db script for the requested engine is vended so that\n * projects do not reference database client packages they don't install.\n * The engine-specific file names allow postgres and mysql projects to\n * coexist in the same workspace.\n */\nexport async function sharedRdbScriptsGenerator<\n const D extends DependencyDeclaration,\n>(\n tree: Tree,\n engine: 'postgres' | 'mysql',\n declaration: D & MustDeclare<typeof SHARED_RDB_SCRIPTS_DEPENDENCIES, D>,\n): Promise<void> {\n await ensureSharedScriptsProject(tree);\n\n const rdbScriptsDir = joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SCRIPTS_DIR,\n 'src',\n 'rdb',\n );\n const targetDir = joinPathFragments(\n PACKAGES_DIR,\n SHARED_SCRIPTS_DIR,\n 'src',\n 'rdb',\n );\n\n generateFiles(\n tree,\n joinPathFragments(rdbScriptsDir, 'shared'),\n targetDir,\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n generateFiles(\n tree,\n joinPathFragments(rdbScriptsDir, engine),\n targetDir,\n {},\n { overwriteStrategy: OverwriteStrategy.KeepExisting },\n );\n\n // The engine's wait-for-db script imports the database client, so declare it\n // in the scripts project's own package.json (tsx runs the scripts and lives\n // in the workspace root devDependencies).\n const clientDeps: (typeof SHARED_RDB_SCRIPTS_DEPENDENCIES)[number]['name'][] =\n engine === 'postgres' ? ['pg'] : ['mariadb'];\n const clientDevDeps: (typeof SHARED_RDB_SCRIPTS_DEPENDENCIES)[number]['name'][] =\n engine === 'postgres' ? ['@types/pg'] : [];\n addDependenciesToPackageJson(\n tree,\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_RDB_SCRIPTS_DEPENDENCIES\n >,\n clientDeps,\n ),\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_RDB_SCRIPTS_DEPENDENCIES\n >,\n clientDevDeps,\n ),\n joinPathFragments(PACKAGES_DIR, SHARED_SCRIPTS_DIR, 'package.json'),\n );\n addDependenciesToPackageJson(\n tree,\n {},\n withVersions(\n declaration as DependencyDeclaration<\n typeof SHARED_RDB_SCRIPTS_DEPENDENCIES\n >,\n ['tsx'],\n ),\n );\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addDependenciesToPackageJson","PACKAGES_DIR","SHARED_SCRIPTS_DIR","ensureSharedScriptsProject","withVersions","SHARED_RDB_SCRIPTS_DEPENDENCIES","name","sharedRdbScriptsGenerator","tree","engine","declaration","rdbScriptsDir","dirname","targetDir","overwriteStrategy","KeepExisting","clientDeps","clientDevDeps"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AAKpB,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SACEC,YAAY,EACZC,kBAAkB,QACb,mCAAgC;AACvC,SAASC,0BAA0B,QAAQ,sBAAmB;AAC9D,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,sEAAsE,GACtE,OAAO,MAAMC,kCAAkC;IAC7C;QAAEC,MAAM;IAAK;IACb;QAAEA,MAAM;IAAY;IACpB;QAAEA,MAAM;IAAU;IAClB;QAAEA,MAAM;IAAM;CACf,CAAuD;AAExD;;;;;;;;;CASC,GACD,OAAO,eAAeC,0BAGpBC,IAAU,EACVC,MAA4B,EAC5BC,WAAuE;IAEvE,MAAMP,2BAA2BK;IAEjC,MAAMG,gBAAgBb,kBACpB,YAAYc,OAAO,EACnB,SACAV,oBACA,OACA;IAEF,MAAMW,YAAYf,kBAChBG,cACAC,oBACA,OACA;IAGFL,cACEW,MACAV,kBAAkBa,eAAe,WACjCE,WACA,CAAC,GACD;QAAEC,mBAAmBf,kBAAkBgB,YAAY;IAAC;IAEtDlB,cACEW,MACAV,kBAAkBa,eAAeF,SACjCI,WACA,CAAC,GACD;QAAEC,mBAAmBf,kBAAkBgB,YAAY;IAAC;IAGtD,6EAA6E;IAC7E,4EAA4E;IAC5E,0CAA0C;IAC1C,MAAMC,aACJP,WAAW,aAAa;QAAC;KAAK,GAAG;QAAC;KAAU;IAC9C,MAAMQ,gBACJR,WAAW,aAAa;QAAC;KAAY,GAAG,EAAE;IAC5CT,6BACEQ,MACAJ,aACEM,aAGAM,aAEFZ,aACEM,aAGAO,gBAEFnB,kBAAkBG,cAAcC,oBAAoB;IAEtDF,6BACEQ,MACA,CAAC,GACDJ,aACEM,aAGA;QAAC;KAAM;AAGb"}
@@ -3,4 +3,29 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { type Tree } from '@nx/devkit';
6
- export declare function sharedShadcnGenerator(tree: Tree): Promise<void>;
6
+ import { type DependencyDeclaration, type MustDeclare } from './declared-dependencies';
7
+ /** Dependencies a caller must declare to use the shared shadcn project. */
8
+ export declare const SHADCN_DEPENDENCIES: readonly [{
9
+ readonly name: "react";
10
+ }, {
11
+ readonly name: "react-dom";
12
+ }, {
13
+ readonly name: "class-variance-authority";
14
+ }, {
15
+ readonly name: "clsx";
16
+ }, {
17
+ readonly name: "tailwind-merge";
18
+ }, {
19
+ readonly name: "lucide-react";
20
+ }, {
21
+ readonly name: "tw-animate-css";
22
+ }, {
23
+ readonly name: "radix-ui";
24
+ }, {
25
+ readonly name: "vite";
26
+ }, {
27
+ readonly name: "vitest";
28
+ }, {
29
+ readonly name: "@vitest/coverage-v8";
30
+ }];
31
+ export declare function sharedShadcnGenerator<const D extends DependencyDeclaration>(tree: Tree, declaration: D & MustDeclare<typeof SHADCN_DEPENDENCIES, D>): Promise<void>;
@@ -4,23 +4,42 @@
4
4
  */ import { generateFiles, joinPathFragments, OverwriteStrategy, updateJson } from "@nx/devkit";
5
5
  import tsProjectGenerator from "../ts/lib/generator.js";
6
6
  import { configureTsProject } from "../ts/lib/ts-project-utils.js";
7
+ import { VITEST_DEPENDENCIES } from "../ts/lib/vitest.js";
8
+ import { declaredNames, forDependencies } from "./declared-dependencies.js";
7
9
  import { addDependenciesToPackageJson } from "./dependencies.js";
8
10
  import { formatFilesInSubtree } from "./format.js";
9
11
  import { esmVars } from "./module-format.js";
10
12
  import { getNpmScopePrefix } from "./npm-scope.js";
11
13
  import { PACKAGES_DIR, SHARED_SHADCN_DIR, SHARED_SHADCN_NAME } from "./shared-constructs-constants.js";
12
14
  import { withVersions } from "./versions.js";
13
- const SHADCN_DEPS = [
14
- 'react',
15
- 'react-dom',
16
- 'class-variance-authority',
17
- 'clsx',
18
- 'tailwind-merge',
19
- 'lucide-react',
20
- 'tw-animate-css',
21
- 'radix-ui'
15
+ /** Dependencies a caller must declare to use the shared shadcn project. */ export const SHADCN_DEPENDENCIES = [
16
+ {
17
+ name: 'react'
18
+ },
19
+ {
20
+ name: 'react-dom'
21
+ },
22
+ {
23
+ name: 'class-variance-authority'
24
+ },
25
+ {
26
+ name: 'clsx'
27
+ },
28
+ {
29
+ name: 'tailwind-merge'
30
+ },
31
+ {
32
+ name: 'lucide-react'
33
+ },
34
+ {
35
+ name: 'tw-animate-css'
36
+ },
37
+ {
38
+ name: 'radix-ui'
39
+ },
40
+ ...VITEST_DEPENDENCIES
22
41
  ];
23
- export async function sharedShadcnGenerator(tree) {
42
+ export async function sharedShadcnGenerator(tree, declaration) {
24
43
  const npmScopePrefix = getNpmScopePrefix(tree);
25
44
  const scopeAlias = npmScopePrefix;
26
45
  const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;
@@ -49,7 +68,7 @@ export async function sharedShadcnGenerator(tree) {
49
68
  await configureTsProject(tree, {
50
69
  dir: libraryRoot,
51
70
  fullyQualifiedName
52
- });
71
+ }, forDependencies(declaration));
53
72
  updateJson(tree, joinPathFragments(libraryRoot, 'tsconfig.lib.json'), (json)=>({
54
73
  ...json,
55
74
  compilerOptions: {
@@ -67,9 +86,7 @@ export async function sharedShadcnGenerator(tree) {
67
86
  'src/**/*.tsx'
68
87
  ]))
69
88
  }));
70
- addDependenciesToPackageJson(tree, withVersions([
71
- ...SHADCN_DEPS
72
- ]), {}, joinPathFragments(libraryRoot, 'package.json'));
89
+ addDependenciesToPackageJson(tree, withVersions(forDependencies(declaration), declaredNames(SHADCN_DEPENDENCIES)), {}, joinPathFragments(libraryRoot, 'package.json'));
73
90
  }
74
91
  updateJson(tree, 'tsconfig.base.json', (json)=>({
75
92
  ...json,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-shadcn.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { configureTsProject } from '../ts/lib/ts-project-utils';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport {\n PACKAGES_DIR,\n SHARED_SHADCN_DIR,\n SHARED_SHADCN_NAME,\n} from './shared-constructs-constants';\nimport { type ITsDepVersion, withVersions } from './versions';\n\nconst SHADCN_DEPS = [\n 'react',\n 'react-dom',\n 'class-variance-authority',\n 'clsx',\n 'tailwind-merge',\n 'lucide-react',\n 'tw-animate-css',\n 'radix-ui',\n] as const satisfies ITsDepVersion[];\n\nexport async function sharedShadcnGenerator(tree: Tree) {\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = npmScopePrefix;\n const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;\n const fullyQualifiedName = `${npmScopePrefix}${SHARED_SHADCN_NAME}`;\n const libraryRoot = joinPathFragments(PACKAGES_DIR, SHARED_SHADCN_DIR);\n const shadcnSrcRoot = joinPathFragments(libraryRoot, 'src');\n\n if (!tree.exists(joinPathFragments(libraryRoot, 'project.json'))) {\n await tsProjectGenerator(tree, {\n name: SHARED_SHADCN_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_SHADCN_DIR,\n });\n\n tree.delete(shadcnSrcRoot);\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'),\n shadcnSrcRoot,\n {\n scopeAlias,\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SHADCN_DIR,\n 'readme',\n ),\n libraryRoot,\n {\n fullyQualifiedName,\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n await configureTsProject(tree, {\n dir: libraryRoot,\n fullyQualifiedName,\n });\n\n updateJson(\n tree,\n joinPathFragments(libraryRoot, 'tsconfig.lib.json'),\n (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n jsx: 'react-jsx',\n module: 'preserve',\n moduleResolution: 'bundler',\n lib: Array.from(\n new Set([...(json.compilerOptions?.lib ?? []), 'DOM']),\n ),\n },\n include: Array.from(new Set([...(json.include ?? []), 'src/**/*.tsx'])),\n }),\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions([...SHADCN_DEPS]),\n {},\n joinPathFragments(libraryRoot, 'package.json'),\n );\n }\n\n updateJson(tree, 'tsconfig.base.json', (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n paths: {\n ...(json.compilerOptions?.paths ?? {}),\n [`${sharedShadcnAlias}/*`]: [\n `./${joinPathFragments(libraryRoot, 'src', '*')}`,\n ],\n },\n },\n }));\n\n // components.json lives in the package so `shadcn add` runs there and\n // installs component dependencies into the package's own manifest.\n if (!tree.exists(joinPathFragments(libraryRoot, 'components.json'))) {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'shadcn'),\n libraryRoot,\n {\n sharedShadcnAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","tsProjectGenerator","configureTsProject","addDependenciesToPackageJson","formatFilesInSubtree","esmVars","getNpmScopePrefix","PACKAGES_DIR","SHARED_SHADCN_DIR","SHARED_SHADCN_NAME","withVersions","SHADCN_DEPS","sharedShadcnGenerator","tree","npmScopePrefix","scopeAlias","sharedShadcnAlias","fullyQualifiedName","libraryRoot","shadcnSrcRoot","exists","name","directory","subDirectory","delete","dirname","overwriteStrategy","KeepExisting","Overwrite","dir","json","compilerOptions","jsx","module","moduleResolution","lib","Array","from","Set","include","paths"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,UAAU,QACL,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QACb,mCAAgC;AACvC,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,MAAMC,cAAc;IAClB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,eAAeC,sBAAsBC,IAAU;IACpD,MAAMC,iBAAiBR,kBAAkBO;IACzC,MAAME,aAAaD;IACnB,MAAME,oBAAoB,GAAGD,aAAaN,oBAAoB;IAC9D,MAAMQ,qBAAqB,GAAGH,iBAAiBL,oBAAoB;IACnE,MAAMS,cAAcpB,kBAAkBS,cAAcC;IACpD,MAAMW,gBAAgBrB,kBAAkBoB,aAAa;IAErD,IAAI,CAACL,KAAKO,MAAM,CAACtB,kBAAkBoB,aAAa,kBAAkB;QAChE,MAAMjB,mBAAmBY,MAAM;YAC7BQ,MAAMZ;YACNa,WAAWf;YACXgB,cAAcf;QAChB;QAEAK,KAAKW,MAAM,CAACL;QAEZtB,cACEgB,MACAf,kBAAkB,YAAY2B,OAAO,EAAE,SAASjB,mBAAmB,QACnEW,eACA;YACEJ;YACA,GAAGV,QAAQQ,KAAK;QAClB,GACA;YACEa,mBAAmB3B,kBAAkB4B,YAAY;QACnD;QAGF9B,cACEgB,MACAf,kBACE,YAAY2B,OAAO,EACnB,SACAjB,mBACA,WAEFU,aACA;YACED;YACAF;QACF,GACA;YACEW,mBAAmB3B,kBAAkB6B,SAAS;QAChD;QAGF,MAAM1B,mBAAmBW,MAAM;YAC7BgB,KAAKX;YACLD;QACF;QAEAjB,WACEa,MACAf,kBAAkBoB,aAAa,sBAC/B,CAACY,OAAU,CAAA;gBACT,GAAGA,IAAI;gBACPC,iBAAiB;oBACf,GAAGD,KAAKC,eAAe;oBACvBC,KAAK;oBACLC,QAAQ;oBACRC,kBAAkB;oBAClBC,KAAKC,MAAMC,IAAI,CACb,IAAIC,IAAI;2BAAKR,KAAKC,eAAe,EAAEI,OAAO,EAAE;wBAAG;qBAAM;gBAEzD;gBACAI,SAASH,MAAMC,IAAI,CAAC,IAAIC,IAAI;uBAAKR,KAAKS,OAAO,IAAI,EAAE;oBAAG;iBAAe;YACvE,CAAA;QAGFpC,6BACEU,MACAH,aAAa;eAAIC;SAAY,GAC7B,CAAC,GACDb,kBAAkBoB,aAAa;IAEnC;IAEAlB,WAAWa,MAAM,sBAAsB,CAACiB,OAAU,CAAA;YAChD,GAAGA,IAAI;YACPC,iBAAiB;gBACf,GAAGD,KAAKC,eAAe;gBACvBS,OAAO;oBACL,GAAIV,KAAKC,eAAe,EAAES,SAAS,CAAC,CAAC;oBACrC,CAAC,GAAGxB,kBAAkB,EAAE,CAAC,CAAC,EAAE;wBAC1B,CAAC,EAAE,EAAElB,kBAAkBoB,aAAa,OAAO,MAAM;qBAClD;gBACH;YACF;QACF,CAAA;IAEA,sEAAsE;IACtE,mEAAmE;IACnE,IAAI,CAACL,KAAKO,MAAM,CAACtB,kBAAkBoB,aAAa,qBAAqB;QACnErB,cACEgB,MACAf,kBAAkB,YAAY2B,OAAO,EAAE,SAAS,WAChDP,aACA;YACEF;QACF,GACA;YACEU,mBAAmB3B,kBAAkB4B,YAAY;QACnD;IAEJ;IAEA,MAAMvB,qBAAqBS;AAC7B"}
1
+ {"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/shared-shadcn.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateJson,\n} from '@nx/devkit';\nimport tsProjectGenerator from '../ts/lib/generator';\nimport { configureTsProject } from '../ts/lib/ts-project-utils';\nimport { VITEST_DEPENDENCIES } from '../ts/lib/vitest';\nimport {\n type DependencyDeclaration,\n declaredNames,\n forDependencies,\n type MustDeclare,\n} from './declared-dependencies';\nimport { addDependenciesToPackageJson } from './dependencies';\nimport { formatFilesInSubtree } from './format';\nimport { esmVars } from './module-format';\nimport { getNpmScopePrefix } from './npm-scope';\nimport {\n PACKAGES_DIR,\n SHARED_SHADCN_DIR,\n SHARED_SHADCN_NAME,\n} from './shared-constructs-constants';\nimport { type ITsDepVersion, withVersions } from './versions';\n\n/** Dependencies a caller must declare to use the shared shadcn project. */\nexport const SHADCN_DEPENDENCIES = [\n { name: 'react' },\n { name: 'react-dom' },\n { name: 'class-variance-authority' },\n { name: 'clsx' },\n { name: 'tailwind-merge' },\n { name: 'lucide-react' },\n { name: 'tw-animate-css' },\n { name: 'radix-ui' },\n ...VITEST_DEPENDENCIES,\n] as const satisfies readonly { name: ITsDepVersion }[];\n\nexport async function sharedShadcnGenerator<\n const D extends DependencyDeclaration,\n>(tree: Tree, declaration: D & MustDeclare<typeof SHADCN_DEPENDENCIES, D>) {\n const npmScopePrefix = getNpmScopePrefix(tree);\n const scopeAlias = npmScopePrefix;\n const sharedShadcnAlias = `${scopeAlias}${SHARED_SHADCN_NAME}`;\n const fullyQualifiedName = `${npmScopePrefix}${SHARED_SHADCN_NAME}`;\n const libraryRoot = joinPathFragments(PACKAGES_DIR, SHARED_SHADCN_DIR);\n const shadcnSrcRoot = joinPathFragments(libraryRoot, 'src');\n\n if (!tree.exists(joinPathFragments(libraryRoot, 'project.json'))) {\n await tsProjectGenerator(tree, {\n name: SHARED_SHADCN_NAME,\n directory: PACKAGES_DIR,\n subDirectory: SHARED_SHADCN_DIR,\n });\n\n tree.delete(shadcnSrcRoot);\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', SHARED_SHADCN_DIR, 'src'),\n shadcnSrcRoot,\n {\n scopeAlias,\n ...esmVars(tree),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n 'files',\n SHARED_SHADCN_DIR,\n 'readme',\n ),\n libraryRoot,\n {\n fullyQualifiedName,\n scopeAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.Overwrite,\n },\n );\n\n await configureTsProject(\n tree,\n {\n dir: libraryRoot,\n fullyQualifiedName,\n },\n forDependencies<typeof SHADCN_DEPENDENCIES>(declaration),\n );\n\n updateJson(\n tree,\n joinPathFragments(libraryRoot, 'tsconfig.lib.json'),\n (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n jsx: 'react-jsx',\n module: 'preserve',\n moduleResolution: 'bundler',\n lib: Array.from(\n new Set([...(json.compilerOptions?.lib ?? []), 'DOM']),\n ),\n },\n include: Array.from(new Set([...(json.include ?? []), 'src/**/*.tsx'])),\n }),\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions(\n forDependencies<typeof SHADCN_DEPENDENCIES>(declaration),\n declaredNames(SHADCN_DEPENDENCIES),\n ),\n {},\n joinPathFragments(libraryRoot, 'package.json'),\n );\n }\n\n updateJson(tree, 'tsconfig.base.json', (json) => ({\n ...json,\n compilerOptions: {\n ...json.compilerOptions,\n paths: {\n ...(json.compilerOptions?.paths ?? {}),\n [`${sharedShadcnAlias}/*`]: [\n `./${joinPathFragments(libraryRoot, 'src', '*')}`,\n ],\n },\n },\n }));\n\n // components.json lives in the package so `shadcn add` runs there and\n // installs component dependencies into the package's own manifest.\n if (!tree.exists(joinPathFragments(libraryRoot, 'components.json'))) {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'shadcn'),\n libraryRoot,\n {\n sharedShadcnAlias,\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n await formatFilesInSubtree(tree);\n}\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateJson","tsProjectGenerator","configureTsProject","VITEST_DEPENDENCIES","declaredNames","forDependencies","addDependenciesToPackageJson","formatFilesInSubtree","esmVars","getNpmScopePrefix","PACKAGES_DIR","SHARED_SHADCN_DIR","SHARED_SHADCN_NAME","withVersions","SHADCN_DEPENDENCIES","name","sharedShadcnGenerator","tree","declaration","npmScopePrefix","scopeAlias","sharedShadcnAlias","fullyQualifiedName","libraryRoot","shadcnSrcRoot","exists","directory","subDirectory","delete","dirname","overwriteStrategy","KeepExisting","Overwrite","dir","json","compilerOptions","jsx","module","moduleResolution","lib","Array","from","Set","include","paths"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,UAAU,QACL,aAAa;AACpB,OAAOC,wBAAwB,yBAAsB;AACrD,SAASC,kBAAkB,QAAQ,gCAA6B;AAChE,SAASC,mBAAmB,QAAQ,sBAAmB;AACvD,SAEEC,aAAa,EACbC,eAAe,QAEV,6BAA0B;AACjC,SAASC,4BAA4B,QAAQ,oBAAiB;AAC9D,SAASC,oBAAoB,QAAQ,cAAW;AAChD,SAASC,OAAO,QAAQ,qBAAkB;AAC1C,SAASC,iBAAiB,QAAQ,iBAAc;AAChD,SACEC,YAAY,EACZC,iBAAiB,EACjBC,kBAAkB,QACb,mCAAgC;AACvC,SAA6BC,YAAY,QAAQ,gBAAa;AAE9D,yEAAyE,GACzE,OAAO,MAAMC,sBAAsB;IACjC;QAAEC,MAAM;IAAQ;IAChB;QAAEA,MAAM;IAAY;IACpB;QAAEA,MAAM;IAA2B;IACnC;QAAEA,MAAM;IAAO;IACf;QAAEA,MAAM;IAAiB;IACzB;QAAEA,MAAM;IAAe;IACvB;QAAEA,MAAM;IAAiB;IACzB;QAAEA,MAAM;IAAW;OAChBZ;CACJ,CAAuD;AAExD,OAAO,eAAea,sBAEpBC,IAAU,EAAEC,WAA2D;IACvE,MAAMC,iBAAiBV,kBAAkBQ;IACzC,MAAMG,aAAaD;IACnB,MAAME,oBAAoB,GAAGD,aAAaR,oBAAoB;IAC9D,MAAMU,qBAAqB,GAAGH,iBAAiBP,oBAAoB;IACnE,MAAMW,cAAczB,kBAAkBY,cAAcC;IACpD,MAAMa,gBAAgB1B,kBAAkByB,aAAa;IAErD,IAAI,CAACN,KAAKQ,MAAM,CAAC3B,kBAAkByB,aAAa,kBAAkB;QAChE,MAAMtB,mBAAmBgB,MAAM;YAC7BF,MAAMH;YACNc,WAAWhB;YACXiB,cAAchB;QAChB;QAEAM,KAAKW,MAAM,CAACJ;QAEZ3B,cACEoB,MACAnB,kBAAkB,YAAY+B,OAAO,EAAE,SAASlB,mBAAmB,QACnEa,eACA;YACEJ;YACA,GAAGZ,QAAQS,KAAK;QAClB,GACA;YACEa,mBAAmB/B,kBAAkBgC,YAAY;QACnD;QAGFlC,cACEoB,MACAnB,kBACE,YAAY+B,OAAO,EACnB,SACAlB,mBACA,WAEFY,aACA;YACED;YACAF;QACF,GACA;YACEU,mBAAmB/B,kBAAkBiC,SAAS;QAChD;QAGF,MAAM9B,mBACJe,MACA;YACEgB,KAAKV;YACLD;QACF,GACAjB,gBAA4Ca;QAG9ClB,WACEiB,MACAnB,kBAAkByB,aAAa,sBAC/B,CAACW,OAAU,CAAA;gBACT,GAAGA,IAAI;gBACPC,iBAAiB;oBACf,GAAGD,KAAKC,eAAe;oBACvBC,KAAK;oBACLC,QAAQ;oBACRC,kBAAkB;oBAClBC,KAAKC,MAAMC,IAAI,CACb,IAAIC,IAAI;2BAAKR,KAAKC,eAAe,EAAEI,OAAO,EAAE;wBAAG;qBAAM;gBAEzD;gBACAI,SAASH,MAAMC,IAAI,CAAC,IAAIC,IAAI;uBAAKR,KAAKS,OAAO,IAAI,EAAE;oBAAG;iBAAe;YACvE,CAAA;QAGFrC,6BACEW,MACAJ,aACER,gBAA4Ca,cAC5Cd,cAAcU,uBAEhB,CAAC,GACDhB,kBAAkByB,aAAa;IAEnC;IAEAvB,WAAWiB,MAAM,sBAAsB,CAACiB,OAAU,CAAA;YAChD,GAAGA,IAAI;YACPC,iBAAiB;gBACf,GAAGD,KAAKC,eAAe;gBACvBS,OAAO;oBACL,GAAIV,KAAKC,eAAe,EAAES,SAAS,CAAC,CAAC;oBACrC,CAAC,GAAGvB,kBAAkB,EAAE,CAAC,CAAC,EAAE;wBAC1B,CAAC,EAAE,EAAEvB,kBAAkByB,aAAa,OAAO,MAAM;qBAClD;gBACH;YACF;QACF,CAAA;IAEA,sEAAsE;IACtE,mEAAmE;IACnE,IAAI,CAACN,KAAKQ,MAAM,CAAC3B,kBAAkByB,aAAa,qBAAqB;QACnE1B,cACEoB,MACAnB,kBAAkB,YAAY+B,OAAO,EAAE,SAAS,WAChDN,aACA;YACEF;QACF,GACA;YACES,mBAAmB/B,kBAAkBgC,YAAY;QACnD;IAEJ;IAEA,MAAMxB,qBAAqBU;AAC7B"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import type { MigrationReturnObject, Tree } from '@nx/devkit';
6
+ /**
7
+ * Syncs the workspace's vended versions to those the installed plugin vends.
8
+ *
9
+ * Registered `everyMigration`, so it runs on every upgrade and last in the run:
10
+ * versions come from the installed plugin's own tables, so there is nothing
11
+ * release-specific to register, and running after the code migrations lets them
12
+ * add dependencies this then brings up to date.
13
+ */
14
+ export default function migration(tree: Tree): Promise<MigrationReturnObject>;
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { syncVendedVersions } from "./sync-vended-versions.js";
5
+ /**
6
+ * Syncs the workspace's vended versions to those the installed plugin vends.
7
+ *
8
+ * Registered `everyMigration`, so it runs on every upgrade and last in the run:
9
+ * versions come from the installed plugin's own tables, so there is nothing
10
+ * release-specific to register, and running after the code migrations lets them
11
+ * add dependencies this then brings up to date.
12
+ */ export default async function migration(tree) {
13
+ return syncVendedVersions(tree);
14
+ }
15
+
16
+ //# sourceMappingURL=migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-upgrade-migration/migration.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { MigrationReturnObject, Tree } from '@nx/devkit';\nimport { syncVendedVersions } from './sync-vended-versions';\n\n/**\n * Syncs the workspace's vended versions to those the installed plugin vends.\n *\n * Registered `everyMigration`, so it runs on every upgrade and last in the run:\n * versions come from the installed plugin's own tables, so there is nothing\n * release-specific to register, and running after the code migrations lets them\n * add dependencies this then brings up to date.\n */\nexport default async function migration(\n tree: Tree,\n): Promise<MigrationReturnObject> {\n return syncVendedVersions(tree);\n}\n"],"names":["syncVendedVersions","migration","tree"],"mappings":"AAAA;;;CAGC,GAED,SAASA,kBAAkB,QAAQ,4BAAyB;AAE5D;;;;;;;CAOC,GACD,eAAe,eAAeC,UAC5BC,IAAU;IAEV,OAAOF,mBAAmBE;AAC5B"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * `packageJsonUpdates` for the nx packages a generated workspace pins.
3
+ *
4
+ * A migration cannot bump these: `nx migrate` builds its migration list from the
5
+ * packages it is itself bumping, so an nx version only rewritten by our migration
6
+ * silently skips Nx's own migrations for that hop. Declaring the bump here pulls
7
+ * them in.
8
+ *
9
+ * It also keeps every nx pin moving together. A workspace nx even a patch apart
10
+ * from the plugin's `@nx/*` packages hoists a second nested nx, and the two
11
+ * deadlock `nx sync`.
12
+ */
13
+ export declare const NX_PACKAGE_UPDATES_NAME = "nx-packages";
14
+ export declare const isNxPackage: (name: string) => boolean;
15
+ /** Indexed to satisfy the open shape `migrations.json` entries carry. */
16
+ export interface PackageJsonUpdate extends Record<string, unknown> {
17
+ version: string;
18
+ packages: Record<string, {
19
+ version: string;
20
+ alwaysAddToPackageJson: false;
21
+ }>;
22
+ }
23
+ export type PackageJsonUpdates = Record<string, PackageJsonUpdate>;
24
+ /**
25
+ * Key an nx bump is registered under, named for the nx version it moves to.
26
+ *
27
+ * The plugin version the bump ships under isn't known when it is written — the
28
+ * weekly update writes it, and only the release that publishes it can say which
29
+ * version that is. The nx version, though, is exactly what the entry is *for*,
30
+ * and two bumps to the same nx version would be the same bump — so it keys the
31
+ * entry uniquely from the moment it is written, with no re-keying later.
32
+ *
33
+ * That matters because each release's bump has to stay behind as the next is
34
+ * written: a workspace several releases behind gets every nx hop in turn rather
35
+ * than only the newest. A key that had to be rewritten once the plugin version
36
+ * was known would let a second bump land on the first before either shipped.
37
+ */
38
+ export declare const nxPackageUpdatesKey: (nxVersion: string) => string;
39
+ /**
40
+ * `alwaysAddToPackageJson: false` so only packages already present are updated.
41
+ *
42
+ * @param version plugin version `nx migrate` gates the bump on, or
43
+ * {@link LATEST_MIGRATIONS_DIR} while it is still waiting for a release
44
+ */
45
+ export declare const nxPackageJsonUpdates: (version: string, nxVersion?: string) => PackageJsonUpdates;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */ import { NX_PACKAGES, NX_VERSION } from "../versions.js";
5
+ /**
6
+ * `packageJsonUpdates` for the nx packages a generated workspace pins.
7
+ *
8
+ * A migration cannot bump these: `nx migrate` builds its migration list from the
9
+ * packages it is itself bumping, so an nx version only rewritten by our migration
10
+ * silently skips Nx's own migrations for that hop. Declaring the bump here pulls
11
+ * them in.
12
+ *
13
+ * It also keeps every nx pin moving together. A workspace nx even a patch apart
14
+ * from the plugin's `@nx/*` packages hoists a second nested nx, and the two
15
+ * deadlock `nx sync`.
16
+ */ export const NX_PACKAGE_UPDATES_NAME = 'nx-packages';
17
+ export const isNxPackage = (name)=>NX_PACKAGES.includes(name);
18
+ /**
19
+ * Key an nx bump is registered under, named for the nx version it moves to.
20
+ *
21
+ * The plugin version the bump ships under isn't known when it is written — the
22
+ * weekly update writes it, and only the release that publishes it can say which
23
+ * version that is. The nx version, though, is exactly what the entry is *for*,
24
+ * and two bumps to the same nx version would be the same bump — so it keys the
25
+ * entry uniquely from the moment it is written, with no re-keying later.
26
+ *
27
+ * That matters because each release's bump has to stay behind as the next is
28
+ * written: a workspace several releases behind gets every nx hop in turn rather
29
+ * than only the newest. A key that had to be rewritten once the plugin version
30
+ * was known would let a second bump land on the first before either shipped.
31
+ */ export const nxPackageUpdatesKey = (nxVersion)=>`nx-${nxVersion}-${NX_PACKAGE_UPDATES_NAME}`;
32
+ /**
33
+ * `alwaysAddToPackageJson: false` so only packages already present are updated.
34
+ *
35
+ * @param version plugin version `nx migrate` gates the bump on, or
36
+ * {@link LATEST_MIGRATIONS_DIR} while it is still waiting for a release
37
+ */ export const nxPackageJsonUpdates = (version, nxVersion = NX_VERSION)=>({
38
+ [nxPackageUpdatesKey(nxVersion)]: {
39
+ version,
40
+ packages: Object.fromEntries(NX_PACKAGES.map((name)=>[
41
+ name,
42
+ {
43
+ version: nxVersion,
44
+ alwaysAddToPackageJson: false
45
+ }
46
+ ]))
47
+ }
48
+ });
49
+
50
+ //# sourceMappingURL=nx-package-updates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/version-upgrade-migration/nx-package-updates.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { migrationKey } from '../migration-versions';\nimport { NX_PACKAGES, NX_VERSION } from '../versions';\n\n/**\n * `packageJsonUpdates` for the nx packages a generated workspace pins.\n *\n * A migration cannot bump these: `nx migrate` builds its migration list from the\n * packages it is itself bumping, so an nx version only rewritten by our migration\n * silently skips Nx's own migrations for that hop. Declaring the bump here pulls\n * them in.\n *\n * It also keeps every nx pin moving together. A workspace nx even a patch apart\n * from the plugin's `@nx/*` packages hoists a second nested nx, and the two\n * deadlock `nx sync`.\n */\n\nexport const NX_PACKAGE_UPDATES_NAME = 'nx-packages';\n\nexport const isNxPackage = (name: string): boolean =>\n (NX_PACKAGES as readonly string[]).includes(name);\n\n/** Indexed to satisfy the open shape `migrations.json` entries carry. */\nexport interface PackageJsonUpdate extends Record<string, unknown> {\n version: string;\n packages: Record<string, { version: string; alwaysAddToPackageJson: false }>;\n}\n\nexport type PackageJsonUpdates = Record<string, PackageJsonUpdate>;\n\n/**\n * Key an nx bump is registered under, named for the nx version it moves to.\n *\n * The plugin version the bump ships under isn't known when it is written — the\n * weekly update writes it, and only the release that publishes it can say which\n * version that is. The nx version, though, is exactly what the entry is *for*,\n * and two bumps to the same nx version would be the same bump — so it keys the\n * entry uniquely from the moment it is written, with no re-keying later.\n *\n * That matters because each release's bump has to stay behind as the next is\n * written: a workspace several releases behind gets every nx hop in turn rather\n * than only the newest. A key that had to be rewritten once the plugin version\n * was known would let a second bump land on the first before either shipped.\n */\nexport const nxPackageUpdatesKey = (nxVersion: string) =>\n `nx-${nxVersion}-${NX_PACKAGE_UPDATES_NAME}`;\n\n/**\n * `alwaysAddToPackageJson: false` so only packages already present are updated.\n *\n * @param version plugin version `nx migrate` gates the bump on, or\n * {@link LATEST_MIGRATIONS_DIR} while it is still waiting for a release\n */\nexport const nxPackageJsonUpdates = (\n version: string,\n nxVersion: string = NX_VERSION,\n): PackageJsonUpdates => ({\n [nxPackageUpdatesKey(nxVersion)]: {\n version,\n packages: Object.fromEntries(\n NX_PACKAGES.map((name) => [\n name,\n { version: nxVersion, alwaysAddToPackageJson: false as const },\n ]),\n ),\n },\n});\n"],"names":["NX_PACKAGES","NX_VERSION","NX_PACKAGE_UPDATES_NAME","isNxPackage","name","includes","nxPackageUpdatesKey","nxVersion","nxPackageJsonUpdates","version","packages","Object","fromEntries","map","alwaysAddToPackageJson"],"mappings":"AAAA;;;CAGC,GAED,SAASA,WAAW,EAAEC,UAAU,QAAQ,iBAAc;AAEtD;;;;;;;;;;;CAWC,GAED,OAAO,MAAMC,0BAA0B,cAAc;AAErD,OAAO,MAAMC,cAAc,CAACC,OAC1B,AAACJ,YAAkCK,QAAQ,CAACD,MAAM;AAUpD;;;;;;;;;;;;;CAaC,GACD,OAAO,MAAME,sBAAsB,CAACC,YAClC,CAAC,GAAG,EAAEA,UAAU,CAAC,EAAEL,yBAAyB,CAAC;AAE/C;;;;;CAKC,GACD,OAAO,MAAMM,uBAAuB,CAClCC,SACAF,YAAoBN,UAAU,GACN,CAAA;QACxB,CAACK,oBAAoBC,WAAW,EAAE;YAChCE;YACAC,UAAUC,OAAOC,WAAW,CAC1BZ,YAAYa,GAAG,CAAC,CAACT,OAAS;oBACxBA;oBACA;wBAAEK,SAASF;wBAAWO,wBAAwB;oBAAe;iBAC9D;QAEL;IACF,CAAA,EAAG"}
@@ -0,0 +1,50 @@
1
+ import { type Tree } from '@nx/devkit';
2
+ import { type DependencyMetadata } from '../declared-dependencies';
3
+ /** Directory holding `generators.json`, which maps ids to their modules. */
4
+ export declare const PLUGIN_ROOT: string;
5
+ /**
6
+ * Which vended dependencies this workspace's generators are responsible for.
7
+ *
8
+ * Only these are synced, so a package the user added themselves keeps the version
9
+ * they chose. Ownership is derived from the generators the workspace has run and
10
+ * the dependencies each declares — nothing extra is recorded in the workspace.
11
+ */
12
+ export interface OwnedDependencies {
13
+ readonly ts: ReadonlySet<string>;
14
+ readonly py: ReadonlySet<string>;
15
+ }
16
+ /**
17
+ * One recorded run of a generator, with the metadata it wrote.
18
+ *
19
+ * The metadata carries the values the generator's dependency conditions read, so
20
+ * a declaration filters down to the branch this occurrence actually took.
21
+ */
22
+ export interface GeneratorOccurrence {
23
+ readonly id: string;
24
+ readonly metadata: DependencyMetadata;
25
+ }
26
+ /**
27
+ * Every recorded run of a generator in this workspace, from the metadata
28
+ * generators record on the projects (and components) they create.
29
+ *
30
+ * A generator appears once per project or component it created, since each may
31
+ * have been run with different options.
32
+ *
33
+ * `init` creates no project, so its config file stands in for it.
34
+ */
35
+ export declare const generatorOccurrences: (tree: Tree) => readonly GeneratorOccurrence[];
36
+ /** Generator ids this workspace has run. */
37
+ export declare const generatorsRun: (tree: Tree) => ReadonlySet<string>;
38
+ /**
39
+ * Union of the dependencies declared by the generators this workspace has run,
40
+ * narrowed per occurrence to those whose conditions its recorded metadata
41
+ * satisfies — a project generated with one protocol does not own another's
42
+ * packages.
43
+ *
44
+ * A `versionOnly` entry is owned like any other: it is declared precisely so the
45
+ * sync keeps its pinned version current wherever the workspace already holds it.
46
+ *
47
+ * Each generator module exports its declaration, so reading one is an import
48
+ * rather than a run — the generators themselves are never invoked.
49
+ */
50
+ export declare const ownedDependencies: (tree: Tree) => Promise<OwnedDependencies>;