@aws/nx-plugin 1.0.0-rc.4 → 1.0.0-rc.6

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 (390) hide show
  1. package/LICENSE-THIRD-PARTY +1989 -503
  2. package/executors.json +9 -0
  3. package/package.json +8 -4
  4. package/sdk/license.d.ts +8 -0
  5. package/sdk/license.js +13 -0
  6. package/sdk/license.js.map +1 -0
  7. package/src/connection/agent-runtime-config.d.ts +1 -1
  8. package/src/connection/agent-runtime-config.js.map +1 -1
  9. package/src/connection/agent-serve-local.d.ts +2 -2
  10. package/src/connection/generator.d.ts +4 -4
  11. package/src/connection/generator.js +47 -47
  12. package/src/connection/generator.js.map +1 -1
  13. package/src/connection/serve-local.d.ts +1 -1
  14. package/src/connection/serve-local.js +1 -1
  15. package/src/connection/serve-local.js.map +1 -1
  16. package/src/infra/app/__snapshots__/generator.spec.ts.snap +17 -28
  17. package/src/infra/app/generator.d.ts +3 -3
  18. package/src/infra/app/generator.js +10 -10
  19. package/src/infra/app/generator.js.map +1 -1
  20. package/src/license/__snapshots__/config.spec.ts.snap +23 -0
  21. package/src/license/config-types.d.ts +18 -1
  22. package/src/license/config-types.js +4 -0
  23. package/src/license/config-types.js.map +1 -1
  24. package/src/license/config.d.ts +65 -7
  25. package/src/license/config.js +315 -7
  26. package/src/license/config.js.map +1 -1
  27. package/src/license/dependency-check/check.d.ts +16 -0
  28. package/src/license/dependency-check/check.js +111 -0
  29. package/src/license/dependency-check/check.js.map +1 -0
  30. package/src/license/dependency-check/collectors/collector.d.ts +21 -0
  31. package/src/license/dependency-check/collectors/collector.js +76 -0
  32. package/src/license/dependency-check/collectors/collector.js.map +1 -0
  33. package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
  34. package/src/license/dependency-check/collectors/npm-collector.js +75 -0
  35. package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
  36. package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
  37. package/src/license/dependency-check/collectors/python-collector.js +121 -0
  38. package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
  39. package/src/license/dependency-check/evaluator.d.ts +9 -0
  40. package/src/license/dependency-check/evaluator.js +122 -0
  41. package/src/license/dependency-check/evaluator.js.map +1 -0
  42. package/src/license/dependency-check/executor-schema.json +6 -0
  43. package/src/license/dependency-check/executor.d.ts +9 -0
  44. package/src/license/dependency-check/executor.js +43 -0
  45. package/src/license/dependency-check/executor.js.map +1 -0
  46. package/src/license/dependency-check/pre-approved.d.ts +6 -0
  47. package/src/license/dependency-check/pre-approved.js +1280 -0
  48. package/src/license/dependency-check/pre-approved.js.map +1 -0
  49. package/src/license/dependency-check/types.d.ts +45 -0
  50. package/src/license/dependency-check/types.js +7 -0
  51. package/src/license/dependency-check/types.js.map +1 -0
  52. package/src/license/generator.d.ts +3 -3
  53. package/src/license/generator.js +113 -14
  54. package/src/license/generator.js.map +1 -1
  55. package/src/license/index.d.ts +8 -0
  56. package/src/license/index.js +13 -0
  57. package/src/license/index.js.map +1 -0
  58. package/src/license/known-exceptions.d.ts +7 -0
  59. package/src/license/known-exceptions.js +33 -0
  60. package/src/license/known-exceptions.js.map +1 -0
  61. package/src/license/schema.d.ts +5 -0
  62. package/src/license/schema.json +6 -0
  63. package/src/license/sync/generator.d.ts +2 -2
  64. package/src/license/sync/generator.js +15 -15
  65. package/src/license/sync/generator.js.map +1 -1
  66. package/src/license/sync/project-file-sync.d.ts +3 -3
  67. package/src/license/sync/project-file-sync.js.map +1 -1
  68. package/src/mcp-server/generator-info.d.ts +5 -1
  69. package/src/mcp-server/generator-info.js +7 -7
  70. package/src/mcp-server/generator-info.js.map +1 -1
  71. package/src/mcp-server/guide-pipeline.d.ts +1 -1
  72. package/src/mcp-server/guide-pipeline.js +2 -2
  73. package/src/mcp-server/guide-pipeline.js.map +1 -1
  74. package/src/mcp-server/mdx-ast.js +4 -0
  75. package/src/mcp-server/mdx-ast.js.map +1 -1
  76. package/src/mcp-server/server.js +3 -3
  77. package/src/mcp-server/server.js.map +1 -1
  78. package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
  79. package/src/mcp-server/tools/create-workspace-command.js +2 -2
  80. package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
  81. package/src/mcp-server/tools/general-guidance.d.ts +2 -2
  82. package/src/mcp-server/tools/general-guidance.js +2 -2
  83. package/src/mcp-server/tools/general-guidance.js.map +1 -1
  84. package/src/mcp-server/tools/generator-guide.d.ts +2 -2
  85. package/src/mcp-server/tools/generator-guide.js.map +1 -1
  86. package/src/mcp-server/tools/list-generators.d.ts +2 -2
  87. package/src/mcp-server/tools/list-generators.js +1 -1
  88. package/src/mcp-server/tools/list-generators.js.map +1 -1
  89. package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
  90. package/src/open-api/ts-client/generator.d.ts +3 -3
  91. package/src/open-api/ts-client/generator.js +2 -2
  92. package/src/open-api/ts-client/generator.js.map +1 -1
  93. package/src/open-api/ts-hooks/generator.d.ts +3 -3
  94. package/src/open-api/ts-hooks/generator.js +2 -2
  95. package/src/open-api/ts-hooks/generator.js.map +1 -1
  96. package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
  97. package/src/open-api/ts-metadata/generator.d.ts +3 -3
  98. package/src/open-api/ts-metadata/generator.js +1 -1
  99. package/src/open-api/ts-metadata/generator.js.map +1 -1
  100. package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
  101. package/src/open-api/utils/codegen-data/languages.js +4 -4
  102. package/src/open-api/utils/codegen-data/languages.js.map +1 -1
  103. package/src/open-api/utils/codegen-data.d.ts +6 -2
  104. package/src/open-api/utils/codegen-data.js +6 -6
  105. package/src/open-api/utils/codegen-data.js.map +1 -1
  106. package/src/open-api/utils/normalise.d.ts +5 -1
  107. package/src/open-api/utils/normalise.js +5 -5
  108. package/src/open-api/utils/normalise.js.map +1 -1
  109. package/src/open-api/utils/parse.d.ts +2 -2
  110. package/src/open-api/utils/parse.js +4 -0
  111. package/src/open-api/utils/parse.js.map +1 -1
  112. package/src/open-api/utils/refs.d.ts +1 -1
  113. package/src/preset/__snapshots__/generator.spec.ts.snap +59 -15
  114. package/src/preset/generator.d.ts +3 -3
  115. package/src/preset/generator.js +16 -13
  116. package/src/preset/generator.js.map +1 -1
  117. package/src/preset/schema.d.ts +2 -1
  118. package/src/py/agent/a2a-connection/generator.d.ts +3 -3
  119. package/src/py/agent/a2a-connection/generator.js +4 -4
  120. package/src/py/agent/a2a-connection/generator.js.map +1 -1
  121. package/src/py/agent/generator.d.ts +3 -3
  122. package/src/py/agent/generator.js +19 -15
  123. package/src/py/agent/generator.js.map +1 -1
  124. package/src/py/agent/mcp-connection/generator.d.ts +3 -3
  125. package/src/py/agent/mcp-connection/generator.js +4 -4
  126. package/src/py/agent/mcp-connection/generator.js.map +1 -1
  127. package/src/py/agent/react-connection/generator.d.ts +3 -3
  128. package/src/py/agent/react-connection/generator.js +4 -4
  129. package/src/py/agent/react-connection/generator.js.map +1 -1
  130. package/src/py/agent/react-connection/serve-local.d.ts +2 -2
  131. package/src/py/agent/react-connection/serve-local.js.map +1 -1
  132. package/src/py/api/generator.d.ts +3 -3
  133. package/src/py/api/generator.js.map +1 -1
  134. package/src/py/fast-api/generator.d.ts +3 -3
  135. package/src/py/fast-api/generator.js +12 -12
  136. package/src/py/fast-api/generator.js.map +1 -1
  137. package/src/py/fast-api/react/generator.d.ts +3 -3
  138. package/src/py/fast-api/react/generator.js +2 -2
  139. package/src/py/fast-api/react/generator.js.map +1 -1
  140. package/src/py/fast-api/react/open-api.d.ts +1 -1
  141. package/src/py/fast-api/react/open-api.js +1 -1
  142. package/src/py/fast-api/react/open-api.js.map +1 -1
  143. package/src/py/lambda-function/generator.d.ts +3 -3
  144. package/src/py/lambda-function/generator.js +9 -9
  145. package/src/py/lambda-function/generator.js.map +1 -1
  146. package/src/py/mcp-server/generator.d.ts +3 -3
  147. package/src/py/mcp-server/generator.js +14 -11
  148. package/src/py/mcp-server/generator.js.map +1 -1
  149. package/src/py/project/generator.d.ts +3 -3
  150. package/src/py/project/generator.js +14 -7
  151. package/src/py/project/generator.js.map +1 -1
  152. package/src/smithy/project/generator.d.ts +3 -3
  153. package/src/smithy/project/generator.js +5 -5
  154. package/src/smithy/project/generator.js.map +1 -1
  155. package/src/smithy/react-connection/generator.d.ts +3 -3
  156. package/src/smithy/react-connection/generator.js +3 -3
  157. package/src/smithy/react-connection/generator.js.map +1 -1
  158. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -34
  159. package/src/smithy/ts/api/generator.d.ts +3 -3
  160. package/src/smithy/ts/api/generator.js +9 -11
  161. package/src/smithy/ts/api/generator.js.map +1 -1
  162. package/src/terraform/project/generator.d.ts +3 -3
  163. package/src/terraform/project/generator.js +6 -6
  164. package/src/terraform/project/generator.js.map +1 -1
  165. package/src/trpc/backend/generator.d.ts +3 -3
  166. package/src/trpc/backend/generator.js +10 -10
  167. package/src/trpc/backend/generator.js.map +1 -1
  168. package/src/trpc/backend/schema.d.ts +2 -2
  169. package/src/trpc/react/generator.d.ts +3 -3
  170. package/src/trpc/react/generator.js +5 -5
  171. package/src/trpc/react/generator.js.map +1 -1
  172. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +4 -2
  173. package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
  174. package/src/ts/agent/a2a-connection/generator.js +5 -5
  175. package/src/ts/agent/a2a-connection/generator.js.map +1 -1
  176. package/src/ts/agent/generator.d.ts +3 -3
  177. package/src/ts/agent/generator.js +10 -10
  178. package/src/ts/agent/generator.js.map +1 -1
  179. package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +4 -2
  180. package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
  181. package/src/ts/agent/mcp-connection/generator.js +5 -5
  182. package/src/ts/agent/mcp-connection/generator.js.map +1 -1
  183. package/src/ts/agent/react-connection/generator.d.ts +3 -3
  184. package/src/ts/agent/react-connection/generator.js +9 -9
  185. package/src/ts/agent/react-connection/generator.js.map +1 -1
  186. package/src/ts/agent/react-connection/serve-local.d.ts +2 -2
  187. package/src/ts/api/generator.d.ts +3 -3
  188. package/src/ts/api/generator.js +4 -4
  189. package/src/ts/api/generator.js.map +1 -1
  190. package/src/ts/api/schema.d.ts +2 -1
  191. package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +1 -2
  192. package/src/ts/astro-docs/generator.d.ts +3 -3
  193. package/src/ts/astro-docs/generator.js +4 -4
  194. package/src/ts/astro-docs/generator.js.map +1 -1
  195. package/src/ts/docs/generator.d.ts +3 -3
  196. package/src/ts/docs/generator.js.map +1 -1
  197. package/src/ts/dynamodb/agent-connection/generator.d.ts +3 -3
  198. package/src/ts/dynamodb/agent-connection/generator.js +2 -2
  199. package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
  200. package/src/ts/dynamodb/generator.d.ts +3 -3
  201. package/src/ts/dynamodb/generator.js +11 -13
  202. package/src/ts/dynamodb/generator.js.map +1 -1
  203. package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +3 -3
  204. package/src/ts/dynamodb/mcp-server-connection/generator.js +2 -2
  205. package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
  206. package/src/ts/dynamodb/smithy-connection/generator.d.ts +3 -3
  207. package/src/ts/dynamodb/smithy-connection/generator.js +2 -2
  208. package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
  209. package/src/ts/dynamodb/trpc-connection/generator.d.ts +3 -3
  210. package/src/ts/dynamodb/trpc-connection/generator.js +2 -2
  211. package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
  212. package/src/ts/lambda-function/generator.d.ts +3 -3
  213. package/src/ts/lambda-function/generator.js +8 -8
  214. package/src/ts/lambda-function/generator.js.map +1 -1
  215. package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -56
  216. package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
  217. package/src/ts/lib/biome.d.ts +7 -0
  218. package/src/ts/lib/biome.js +55 -0
  219. package/src/ts/lib/biome.js.map +1 -0
  220. package/src/ts/lib/generator.d.ts +3 -3
  221. package/src/ts/lib/generator.js +7 -13
  222. package/src/ts/lib/generator.js.map +1 -1
  223. package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -1
  224. package/src/ts/lib/ts-project-utils.d.ts +2 -2
  225. package/src/ts/lib/ts-project-utils.js +8 -2
  226. package/src/ts/lib/ts-project-utils.js.map +1 -1
  227. package/src/ts/lib/vitest.d.ts +2 -2
  228. package/src/ts/lib/vitest.js +1 -1
  229. package/src/ts/lib/vitest.js.map +1 -1
  230. package/src/ts/mcp-server/generator.d.ts +3 -3
  231. package/src/ts/mcp-server/generator.js +12 -9
  232. package/src/ts/mcp-server/generator.js.map +1 -1
  233. package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +19 -14
  234. package/src/ts/nx-generator/generator.d.ts +2 -2
  235. package/src/ts/nx-generator/generator.js +6 -6
  236. package/src/ts/nx-generator/generator.js.map +1 -1
  237. package/src/ts/nx-plugin/generator.d.ts +3 -3
  238. package/src/ts/nx-plugin/generator.js +3 -3
  239. package/src/ts/nx-plugin/generator.js.map +1 -1
  240. package/src/ts/nx-plugin/utils.d.ts +1 -1
  241. package/src/ts/nx-plugin/utils.js +1 -1
  242. package/src/ts/nx-plugin/utils.js.map +1 -1
  243. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +22 -38
  244. package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
  245. package/src/ts/rdb/agent-connection/generator.js +4 -4
  246. package/src/ts/rdb/agent-connection/generator.js.map +1 -1
  247. package/src/ts/rdb/files/scripts/{docker-pull.ts.template → pull-image.ts.template} +1 -1
  248. package/src/ts/rdb/files/scripts/{docker-start.ts.template → start-container.ts.template} +23 -23
  249. package/src/ts/rdb/generator.d.ts +3 -3
  250. package/src/ts/rdb/generator.js +20 -22
  251. package/src/ts/rdb/generator.js.map +1 -1
  252. package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
  253. package/src/ts/rdb/mcp-server-connection/generator.js +4 -4
  254. package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
  255. package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
  256. package/src/ts/rdb/smithy-connection/generator.js +4 -4
  257. package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
  258. package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
  259. package/src/ts/rdb/trpc-connection/generator.js +3 -3
  260. package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
  261. package/src/ts/rdb/utils.d.ts +1 -1
  262. package/src/ts/react-website/agui/generator.d.ts +1 -1
  263. package/src/ts/react-website/agui/generator.js +4 -4
  264. package/src/ts/react-website/agui/generator.js.map +1 -1
  265. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +166 -305
  266. package/src/ts/react-website/app/generator.d.ts +3 -3
  267. package/src/ts/react-website/app/generator.js +13 -13
  268. package/src/ts/react-website/app/generator.js.map +1 -1
  269. package/src/ts/react-website/cognito-auth/generator.d.ts +3 -3
  270. package/src/ts/react-website/cognito-auth/generator.js +10 -10
  271. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  272. package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +5 -5
  273. package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
  274. package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
  275. package/src/ts/react-website/cognito-auth/utils.js +1 -1
  276. package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
  277. package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
  278. package/src/ts/react-website/runtime-config/generator.js +4 -4
  279. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  280. package/src/ts/sync/generator.d.ts +3 -3
  281. package/src/ts/sync/generator.js +2 -2
  282. package/src/ts/sync/generator.js.map +1 -1
  283. package/src/ts/website/app/generator.d.ts +3 -3
  284. package/src/ts/website/app/generator.js +1 -1
  285. package/src/ts/website/app/generator.js.map +1 -1
  286. package/src/ts/website/auth/generator.d.ts +3 -3
  287. package/src/ts/website/auth/generator.js +1 -1
  288. package/src/ts/website/auth/generator.js.map +1 -1
  289. package/src/utils/agent-connection/agent-connection.d.ts +1 -1
  290. package/src/utils/agent-connection/agent-connection.js +8 -8
  291. package/src/utils/agent-connection/agent-connection.js.map +1 -1
  292. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +3 -3
  293. package/src/utils/agent-core-constructs/agent-core-constructs.js +1 -1
  294. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  295. package/src/utils/api-constructs/api-constructs.d.ts +2 -2
  296. package/src/utils/api-constructs/api-constructs.js +1 -1
  297. package/src/utils/api-constructs/api-constructs.js.map +1 -1
  298. package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
  299. package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
  300. package/src/utils/ast/website.d.ts +5 -1
  301. package/src/utils/ast/website.js +2 -2
  302. package/src/utils/ast/website.js.map +1 -1
  303. package/src/utils/ast.d.ts +29 -1
  304. package/src/utils/ast.js +66 -4
  305. package/src/utils/ast.js.map +1 -1
  306. package/src/utils/bundle/bundle.d.ts +1 -1
  307. package/src/utils/bundle/bundle.js +2 -2
  308. package/src/utils/bundle/bundle.js.map +1 -1
  309. package/src/utils/config/index.d.ts +5 -5
  310. package/src/utils/config/utils.d.ts +13 -3
  311. package/src/utils/config/utils.js +37 -5
  312. package/src/utils/config/utils.js.map +1 -1
  313. package/src/utils/connection/open-api/react.d.ts +1 -1
  314. package/src/utils/connection/open-api/react.js +4 -4
  315. package/src/utils/connection/open-api/react.js.map +1 -1
  316. package/src/utils/containers.d.ts +1 -1
  317. package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +2 -2
  318. package/src/utils/dynamodb-constructs/dynamodb-constructs.js +1 -1
  319. package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
  320. package/src/utils/format.d.ts +45 -2
  321. package/src/utils/format.js +91 -50
  322. package/src/utils/format.js.map +1 -1
  323. package/src/utils/fs.d.ts +1 -1
  324. package/src/utils/fs.js.map +1 -1
  325. package/src/utils/function-constructs/function-constructs.d.ts +2 -2
  326. package/src/utils/function-constructs/function-constructs.js +1 -1
  327. package/src/utils/function-constructs/function-constructs.js.map +1 -1
  328. package/src/utils/generators.d.ts +4 -0
  329. package/src/utils/generators.js +4 -4
  330. package/src/utils/generators.js.map +1 -1
  331. package/src/utils/git.d.ts +1 -1
  332. package/src/utils/git.js.map +1 -1
  333. package/src/utils/iac.d.ts +1 -1
  334. package/src/utils/iac.js.map +1 -1
  335. package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
  336. package/src/utils/identity-constructs/identity-constructs.js +1 -1
  337. package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
  338. package/src/utils/js.d.ts +4 -0
  339. package/src/utils/js.js +4 -4
  340. package/src/utils/js.js.map +1 -1
  341. package/src/utils/mcp.d.ts +1 -1
  342. package/src/utils/mcp.js.map +1 -1
  343. package/src/utils/metrics.d.ts +2 -2
  344. package/src/utils/metrics.js.map +1 -1
  345. package/src/utils/npm-scope.d.ts +1 -1
  346. package/src/utils/npm-scope.js.map +1 -1
  347. package/src/utils/nx.d.ts +2 -2
  348. package/src/utils/nx.js +2 -2
  349. package/src/utils/nx.js.map +1 -1
  350. package/src/utils/nxlv-python.d.ts +1 -1
  351. package/src/utils/paths.d.ts +1 -1
  352. package/src/utils/pnpm-workspace.d.ts +1 -1
  353. package/src/utils/pnpm-workspace.js.map +1 -1
  354. package/src/utils/port.d.ts +1 -1
  355. package/src/utils/port.js.map +1 -1
  356. package/src/utils/py.d.ts +2 -2
  357. package/src/utils/py.js +1 -1
  358. package/src/utils/py.js.map +1 -1
  359. package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
  360. package/src/utils/rdb-constructs/rdb-constructs.d.ts +4 -4
  361. package/src/utils/rdb-constructs/rdb-constructs.js +1 -1
  362. package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
  363. package/src/utils/shared-constructs.d.ts +2 -2
  364. package/src/utils/shared-constructs.js +7 -7
  365. package/src/utils/shared-constructs.js.map +1 -1
  366. package/src/utils/shared-infra-config.d.ts +1 -1
  367. package/src/utils/shared-infra-config.js +1 -1
  368. package/src/utils/shared-infra-config.js.map +1 -1
  369. package/src/utils/shared-scripts.d.ts +1 -1
  370. package/src/utils/shared-scripts.js +2 -2
  371. package/src/utils/shared-scripts.js.map +1 -1
  372. package/src/utils/shared-shadcn.d.ts +1 -1
  373. package/src/utils/shared-shadcn.js +1 -13
  374. package/src/utils/shared-shadcn.js.map +1 -1
  375. package/src/utils/test.d.ts +5 -1
  376. package/src/utils/test.js +9 -5
  377. package/src/utils/test.js.map +1 -1
  378. package/src/utils/toml.d.ts +1 -1
  379. package/src/utils/toml.js +4 -0
  380. package/src/utils/toml.js.map +1 -1
  381. package/src/utils/versions.d.ts +3 -7
  382. package/src/utils/versions.js +2 -6
  383. package/src/utils/versions.js.map +1 -1
  384. package/src/utils/website-constructs/website-constructs.d.ts +2 -2
  385. package/src/utils/website-constructs/website-constructs.js +1 -1
  386. package/src/utils/website-constructs/website-constructs.js.map +1 -1
  387. package/src/ts/lib/eslint.d.ts +0 -14
  388. package/src/ts/lib/eslint.js +0 -90
  389. package/src/ts/lib/eslint.js.map +0 -1
  390. package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config-types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config-types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -2,9 +2,10 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { Tree } from '@nx/devkit';
6
- import { SPDXLicenseIdentifier } from './schema';
7
- import { CommentSyntax, LicenseConfig } from './config-types';
5
+ import type { Tree } from '@nx/devkit';
6
+ import type { CommentSyntax, LicenseConfig, LicenseSourceConfig } from './config-types';
7
+ import type { DependencyCheckException } from './dependency-check/types';
8
+ import type { SPDXLicenseIdentifier } from './schema';
8
9
  /**
9
10
  * Defines the comment syntax for popular programming languages
10
11
  */
@@ -12,13 +13,70 @@ export declare const LANGUAGE_COMMENT_SYNTAX: {
12
13
  [ext: string]: CommentSyntax;
13
14
  };
14
15
  /**
15
- * Build the default license config for a given license
16
+ * Recompute the `inputs` of the root `license-check` target from what's
17
+ * currently in the workspace: the present npm lockfiles, the config file, and
18
+ * a recursive uv.lock glob when the dependency check uses a Python collector.
19
+ *
20
+ * The uv lockfile is keyed off the collector (not file presence) because it is
21
+ * created by `uv` *after* the generator runs, and may live in a subdirectory of
22
+ * a uv workspace. Callers run this whenever they change the relevant state, so
23
+ * the inputs stay correct regardless of generator order. No-op if the
24
+ * license-check target doesn't exist yet.
16
25
  */
17
- export declare const defaultLicenseConfig: (spdx: SPDXLicenseIdentifier, copyrightHolder: string) => LicenseConfig;
26
+ export declare const updateLicenseCheckTargetInputs: (tree: Tree) => Promise<void>;
18
27
  /**
19
- * Write license configuration to the aws nx plugin config
28
+ * Make a project's `lint` target depend on the root `license-check` target, so
29
+ * license checking runs as part of lint/build. No-op when the project has no
30
+ * `lint` target or there's no license-check target to depend on. Idempotent.
31
+ *
32
+ * Callers format afterwards (generators call `formatFilesInSubtree` at the end),
33
+ * so the rewritten project.json matches prettier.
20
34
  */
21
- export declare const writeLicenseConfig: (tree: Tree, config: LicenseConfig) => Promise<void>;
35
+ export declare const addLicenseCheckToLintTarget: (tree: Tree, projectName: string) => void;
36
+ /**
37
+ * Wire every project's `lint` target to the root `license-check` target.
38
+ * Called by the license generator so existing projects pick up the dependency
39
+ * regardless of the order generators ran in.
40
+ */
41
+ export declare const addLicenseCheckToAllLintTargets: (tree: Tree) => void;
42
+ export interface EnsureDependencyCheckBlockOptions {
43
+ includeCollectors?: 'npm' | 'npm+python';
44
+ }
45
+ /**
46
+ * Ensure the `dependencies` block (dependency license checking) exists within
47
+ * the `license` config. If one already exists it is left untouched, so user
48
+ * customizations survive.
49
+ */
50
+ export declare const ensureDependencyCheckBlock: (tree: Tree, options?: EnsureDependencyCheckBlockOptions) => Promise<void>;
51
+ /**
52
+ * Ensure license exceptions are present in `license.dependencies.exceptions`.
53
+ * An exception whose package is already listed is skipped (so existing reasons
54
+ * are never overwritten). Other exceptions, collectors and the allowlist are
55
+ * left untouched.
56
+ *
57
+ * The `dependencies: { $scope }` scope keeps edits within the dependency-check
58
+ * block, so an `exceptions` array elsewhere in the file isn't matched.
59
+ */
60
+ export declare const ensureLicenseExceptions: (tree: Tree, exceptions: DependencyCheckException[]) => Promise<void>;
61
+ /**
62
+ * Add `pythonCollector()` to `license.dependencies.collectors`, unless one is
63
+ * already configured.
64
+ */
65
+ export declare const ensurePythonLicenseCollector: (tree: Tree) => Promise<void>;
66
+ /**
67
+ * Build the default `license.source` config for a given license
68
+ */
69
+ export declare const defaultLicenseConfig: (spdx: SPDXLicenseIdentifier, copyrightHolder: string) => LicenseSourceConfig;
70
+ /**
71
+ * Write the `license.source` config (headers + LICENSE files) to the aws nx
72
+ * plugin config.
73
+ *
74
+ * The `source` block is (re)written, but any existing `license.dependencies`
75
+ * block — a user-customized allowlist, collectors and exceptions — is
76
+ * preserved, so re-running the license generator (e.g. to change the copyright
77
+ * holder) never clobbers dependency-check customizations.
78
+ */
79
+ export declare const writeLicenseConfig: (tree: Tree, source: LicenseSourceConfig) => Promise<void>;
22
80
  /**
23
81
  * Read license configuration
24
82
  */
@@ -1,7 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.readLicenseConfig = exports.writeLicenseConfig = exports.defaultLicenseConfig = exports.LANGUAGE_COMMENT_SYNTAX = void 0;
36
+ exports.readLicenseConfig = exports.writeLicenseConfig = exports.defaultLicenseConfig = exports.ensurePythonLicenseCollector = exports.ensureLicenseExceptions = exports.ensureDependencyCheckBlock = exports.addLicenseCheckToAllLintTargets = exports.addLicenseCheckToLintTarget = exports.updateLicenseCheckTargetInputs = exports.LANGUAGE_COMMENT_SYNTAX = void 0;
4
37
  const utils_1 = require("../utils/config/utils");
38
+ const format_1 = require("../utils/format");
39
+ const nx_1 = require("../utils/nx");
5
40
  /**
6
41
  * Licenses containing a placeholder for the copyright year.
7
42
  */
@@ -93,7 +128,262 @@ exports.LANGUAGE_COMMENT_SYNTAX = {
93
128
  smithy: { line: '//' },
94
129
  };
95
130
  /**
96
- * Build the default license config for a given license
131
+ * Module specifier for the license helpers exported by this package, used by
132
+ * imports written into the user's config file.
133
+ */
134
+ const LICENSE_SDK_MODULE = '@aws/nx-plugin/sdk/license';
135
+ /**
136
+ * Build the object literal source for a dependency check exception.
137
+ * `JSON.stringify` produces valid string literals for arbitrary text (quotes,
138
+ * backslashes, newlines all escaped); prettier later normalises quote style.
139
+ */
140
+ const exceptionLiteral = (exception) => {
141
+ const parts = [`package: ${JSON.stringify(exception.package)}`];
142
+ if (exception.version !== undefined) {
143
+ parts.push(`version: ${JSON.stringify(exception.version)}`);
144
+ }
145
+ parts.push(`reason: ${JSON.stringify(exception.reason)}`);
146
+ if (exception.spdx !== undefined) {
147
+ parts.push(`spdx: ${JSON.stringify(exception.spdx)}`);
148
+ }
149
+ return `{ ${parts.join(', ')} }`;
150
+ };
151
+ /**
152
+ * GritQL `or` block that appends `$ins` (the insert placeholder) to the named
153
+ * array inside the matched `$scope`, without ever producing an array hole:
154
+ * - empty `key: []` → `key: [$ins]` (a list-append `+=` does not match an
155
+ * empty array, so the empty case is rewritten directly)
156
+ * - otherwise → list-append `+=` of `, $ins`; the leading comma is the
157
+ * element separator and `+=` places it correctly for single inline,
158
+ * single-with-trailing-comma and multi-element arrays alike
159
+ */
160
+ const appendToArray = (key, ins) => `or {
161
+ $scope <: contains \`${key}: []\` => \`${key}: [${ins}]\`,
162
+ $scope <: contains \`${key}: [$items]\` where { $items += \`, ${ins}\` }
163
+ }`;
164
+ /**
165
+ * Insert `property` (TypeScript source like `dependencies: { ... }`) as the
166
+ * first property of the `license` object literal.
167
+ *
168
+ * Prepending is comma-safe for every shape — empty `{}`, single- or multi-line.
169
+ * `+=` appending is not: it omits the separator when the last property's value
170
+ * is an object/array literal (e.g. `source: { ... }`), corrupting the file. The
171
+ * property text is routed through a placeholder so its content never enters the
172
+ * GritQL pattern. Returns true if the file changed (a `license` object existed).
173
+ */
174
+ const prependLicenseProperty = async (tree, property) => {
175
+ const { insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
176
+ // Non-empty license object: insert before the first existing property.
177
+ const intoNonEmpty = await insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`license: { $props }\` where { $props => \`${GRIT_INSERT_PLACEHOLDER}, $props\` }`, property);
178
+ if (intoNonEmpty)
179
+ return true;
180
+ // Empty license object: `{ $props }` doesn't match `{}`, so fill it directly.
181
+ return insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`license: {}\` => \`license: { ${GRIT_INSERT_PLACEHOLDER} }\``, property);
182
+ };
183
+ /**
184
+ * Whether `license.dependencies` (the dependency-check block) is configured.
185
+ * Scoped within `license` so a `dependencies`-shaped object elsewhere in the
186
+ * file isn't mistaken for it.
187
+ */
188
+ const hasDependenciesBlock = async (tree) => {
189
+ if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
190
+ return false;
191
+ const { matchGritQL } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
192
+ return matchGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`license: { $l }` where { $l <: contains `dependencies: $_` }');
193
+ };
194
+ /**
195
+ * Workspace-root npm-ecosystem lockfiles. Each is added to the license-check
196
+ * cache inputs only when present, so the cache invalidates on dependency
197
+ * changes without listing lockfiles for package managers the workspace doesn't
198
+ * use.
199
+ */
200
+ const NPM_LOCKFILES = [
201
+ 'pnpm-lock.yaml',
202
+ 'yarn.lock',
203
+ 'package-lock.json',
204
+ 'bun.lockb',
205
+ ];
206
+ /**
207
+ * Recompute the `inputs` of the root `license-check` target from what's
208
+ * currently in the workspace: the present npm lockfiles, the config file, and
209
+ * a recursive uv.lock glob when the dependency check uses a Python collector.
210
+ *
211
+ * The uv lockfile is keyed off the collector (not file presence) because it is
212
+ * created by `uv` *after* the generator runs, and may live in a subdirectory of
213
+ * a uv workspace. Callers run this whenever they change the relevant state, so
214
+ * the inputs stay correct regardless of generator order. No-op if the
215
+ * license-check target doesn't exist yet.
216
+ */
217
+ const updateLicenseCheckTargetInputs = async (tree) => {
218
+ const rootProjectJsonPath = 'project.json';
219
+ if (!tree.exists(rootProjectJsonPath))
220
+ return;
221
+ const rootProject = JSON.parse(tree.read(rootProjectJsonPath, 'utf-8'));
222
+ const target = rootProject.targets?.['license-check'];
223
+ if (!target)
224
+ return;
225
+ const inputs = NPM_LOCKFILES.filter((f) => tree.exists(f)).map((f) => `{workspaceRoot}/${f}`);
226
+ if (await hasPythonCollector(tree)) {
227
+ inputs.push('{workspaceRoot}/**/uv.lock');
228
+ }
229
+ inputs.push('{workspaceRoot}/aws-nx-plugin.config.mts');
230
+ target.inputs = inputs;
231
+ tree.write(rootProjectJsonPath, JSON.stringify(rootProject, null, 2));
232
+ };
233
+ exports.updateLicenseCheckTargetInputs = updateLicenseCheckTargetInputs;
234
+ /**
235
+ * Whether the dependency check config has a `pythonCollector` configured.
236
+ */
237
+ const hasPythonCollector = async (tree) => {
238
+ if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
239
+ return false;
240
+ const { matchGritQL } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
241
+ return matchGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`pythonCollector`');
242
+ };
243
+ /**
244
+ * The name of the project that owns the root `license-check` target, or
245
+ * undefined if no project defines it.
246
+ */
247
+ const findLicenseCheckProjectName = (tree) => {
248
+ const { getProjects } = require('@nx/devkit');
249
+ for (const [name, config] of getProjects(tree)) {
250
+ if (config.targets?.['license-check'])
251
+ return name;
252
+ }
253
+ return undefined;
254
+ };
255
+ /**
256
+ * Make a project's `lint` target depend on the root `license-check` target, so
257
+ * license checking runs as part of lint/build. No-op when the project has no
258
+ * `lint` target or there's no license-check target to depend on. Idempotent.
259
+ *
260
+ * Callers format afterwards (generators call `formatFilesInSubtree` at the end),
261
+ * so the rewritten project.json matches prettier.
262
+ */
263
+ const addLicenseCheckToLintTarget = (tree, projectName) => {
264
+ const { readProjectConfiguration, updateProjectConfiguration, } = require('@nx/devkit');
265
+ const licenseCheckProject = findLicenseCheckProjectName(tree);
266
+ if (!licenseCheckProject)
267
+ return;
268
+ let project;
269
+ try {
270
+ project = readProjectConfiguration(tree, projectName);
271
+ }
272
+ catch {
273
+ return;
274
+ }
275
+ // Only wire projects that actually lint, and never the license-check project
276
+ // itself (a target can't depend on its own project's target).
277
+ if (!project.targets?.lint || projectName === licenseCheckProject)
278
+ return;
279
+ (0, nx_1.addDependencyToTargetIfNotPresent)(project, 'lint', {
280
+ projects: [licenseCheckProject],
281
+ target: 'license-check',
282
+ });
283
+ updateProjectConfiguration(tree, projectName, project);
284
+ };
285
+ exports.addLicenseCheckToLintTarget = addLicenseCheckToLintTarget;
286
+ /**
287
+ * Wire every project's `lint` target to the root `license-check` target.
288
+ * Called by the license generator so existing projects pick up the dependency
289
+ * regardless of the order generators ran in.
290
+ */
291
+ const addLicenseCheckToAllLintTargets = (tree) => {
292
+ const { getProjects } = require('@nx/devkit');
293
+ for (const [name] of getProjects(tree)) {
294
+ (0, exports.addLicenseCheckToLintTarget)(tree, name);
295
+ }
296
+ };
297
+ exports.addLicenseCheckToAllLintTargets = addLicenseCheckToAllLintTargets;
298
+ /**
299
+ * Ensure the `dependencies` block (dependency license checking) exists within
300
+ * the `license` config. If one already exists it is left untouched, so user
301
+ * customizations survive.
302
+ */
303
+ const ensureDependencyCheckBlock = async (tree, options) => {
304
+ if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
305
+ return;
306
+ const { addDestructuredImport } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
307
+ if (await hasDependenciesBlock(tree)) {
308
+ return;
309
+ }
310
+ const withPython = options?.includeCollectors === 'npm+python';
311
+ const collectors = withPython
312
+ ? 'collectors: [npmCollector(), pythonCollector()]'
313
+ : 'collectors: [npmCollector()]';
314
+ const block = `dependencies: { allow: DEFAULT_LICENSE_ALLOWLIST, ${collectors}, exceptions: [] }`;
315
+ // Prepend the block as the first property of the license object. Prepending
316
+ // (rather than `+=` appending) is comma-safe for every shape: GritQL's `+=`
317
+ // omits the separator when the last existing property's value is an object
318
+ // literal (e.g. `source: { ... }`), which would corrupt the file.
319
+ const added = await prependLicenseProperty(tree, block);
320
+ // Only add the imports if the block was actually written (i.e. a license
321
+ // object literal existed to attach it to).
322
+ if (added) {
323
+ await addDestructuredImport(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, withPython
324
+ ? ['DEFAULT_LICENSE_ALLOWLIST', 'npmCollector', 'pythonCollector']
325
+ : ['DEFAULT_LICENSE_ALLOWLIST', 'npmCollector'], LICENSE_SDK_MODULE);
326
+ await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
327
+ }
328
+ };
329
+ exports.ensureDependencyCheckBlock = ensureDependencyCheckBlock;
330
+ /**
331
+ * Ensure license exceptions are present in `license.dependencies.exceptions`.
332
+ * An exception whose package is already listed is skipped (so existing reasons
333
+ * are never overwritten). Other exceptions, collectors and the allowlist are
334
+ * left untouched.
335
+ *
336
+ * The `dependencies: { $scope }` scope keeps edits within the dependency-check
337
+ * block, so an `exceptions` array elsewhere in the file isn't matched.
338
+ */
339
+ const ensureLicenseExceptions = async (tree, exceptions) => {
340
+ if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
341
+ return;
342
+ const { insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
343
+ if (!(await hasDependenciesBlock(tree))) {
344
+ return;
345
+ }
346
+ let modified = false;
347
+ for (const exception of exceptions) {
348
+ const pkg = JSON.stringify(exception.package);
349
+ const inserted = await insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`dependencies: { $scope }\` where {
350
+ $scope <: not contains \`package: ${pkg}\`,
351
+ ${appendToArray('exceptions', GRIT_INSERT_PLACEHOLDER)}
352
+ }`, exceptionLiteral(exception));
353
+ modified ||= inserted;
354
+ }
355
+ if (modified) {
356
+ await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
357
+ }
358
+ };
359
+ exports.ensureLicenseExceptions = ensureLicenseExceptions;
360
+ /**
361
+ * Add `pythonCollector()` to `license.dependencies.collectors`, unless one is
362
+ * already configured.
363
+ */
364
+ const ensurePythonLicenseCollector = async (tree) => {
365
+ if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
366
+ return;
367
+ const { addDestructuredImport, insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
368
+ if (!(await hasDependenciesBlock(tree))) {
369
+ return;
370
+ }
371
+ const added = await insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`dependencies: { $scope }\` where {
372
+ $scope <: not contains \`pythonCollector\`,
373
+ ${appendToArray('collectors', GRIT_INSERT_PLACEHOLDER)}
374
+ }`, 'pythonCollector()');
375
+ if (added) {
376
+ await addDestructuredImport(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, ['pythonCollector'], LICENSE_SDK_MODULE);
377
+ await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
378
+ // Now that a Python collector is configured, ensure uv.lock is a cache
379
+ // input. Runs here (not only in the license generator) so it's added
380
+ // whenever the collector is — e.g. when py#project runs after license.
381
+ await (0, exports.updateLicenseCheckTargetInputs)(tree);
382
+ }
383
+ };
384
+ exports.ensurePythonLicenseCollector = ensurePythonLicenseCollector;
385
+ /**
386
+ * Build the default `license.source` config for a given license
97
387
  */
98
388
  const defaultLicenseConfig = (spdx, copyrightHolder) => {
99
389
  switch (spdx) {
@@ -172,12 +462,30 @@ const defaultLicenseConfig = (spdx, copyrightHolder) => {
172
462
  };
173
463
  exports.defaultLicenseConfig = defaultLicenseConfig;
174
464
  /**
175
- * Write license configuration to the aws nx plugin config
465
+ * Write the `license.source` config (headers + LICENSE files) to the aws nx
466
+ * plugin config.
467
+ *
468
+ * The `source` block is (re)written, but any existing `license.dependencies`
469
+ * block — a user-customized allowlist, collectors and exceptions — is
470
+ * preserved, so re-running the license generator (e.g. to change the copyright
471
+ * holder) never clobbers dependency-check customizations.
176
472
  */
177
- const writeLicenseConfig = async (tree, config) => {
178
- await (0, utils_1.updateAwsNxPluginConfig)(tree, {
179
- license: config,
180
- });
473
+ const writeLicenseConfig = async (tree, source) => {
474
+ const { captureGritQL } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
475
+ // Capture the existing `dependencies: { ... }` block before overwriting the
476
+ // license value, so we can re-attach it afterwards. It's managed by the
477
+ // ensure* helpers, never written from here.
478
+ const preserved = tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME)
479
+ ? await captureGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`dependencies: $_`')
480
+ : undefined;
481
+ await (0, utils_1.updateAwsNxPluginConfig)(tree, { license: { source } });
482
+ // Re-attach the preserved block. The captured text may contain backticks,
483
+ // `${...}` or quotes — prependLicenseProperty routes it through a placeholder
484
+ // so it never enters the GritQL pattern.
485
+ if (preserved) {
486
+ await prependLicenseProperty(tree, preserved);
487
+ await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
488
+ }
181
489
  };
182
490
  exports.writeLicenseConfig = writeLicenseConfig;
183
491
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config.ts"],"names":[],"mappings":";;;AAMA,iDAG+B;AAG/B;;GAEG;AACH,MAAM,kBAAkB,GAA+B,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAExE;;GAEG;AACU,QAAA,uBAAuB,GAAqC;IACvE,qBAAqB;IACrB,GAAG,MAAM,CAAC,WAAW,CACnB;QACE,OAAO;QACP,IAAI;QACJ,IAAI;QACJ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,QAAQ;QACR,KAAK;QACL,KAAK;QACL,MAAM;QACN,MAAM;QACN,MAAM;QACN,KAAK;QACL,OAAO;QACP,MAAM;QACN,WAAW;QACX,KAAK;QACL,SAAS;QACT,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,YAAY;QACZ,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,GAAG;QACH,KAAK;QACL,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,KAAK;QACL,SAAS;QACT,IAAI;QACJ,QAAQ;QACR,OAAO;KACR,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CACzE;IACD,sBAAsB;IACtB,GAAG,MAAM,CAAC,WAAW,CACnB;QACE,OAAO;QACP,IAAI;QACJ,OAAO;QACP,IAAI;QACJ,OAAO;QACP,MAAM;QACN,KAAK;QACL,IAAI;QACJ,GAAG;KACJ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CACrC;IACD,SAAS;IACT,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;IACzB,SAAS;IACT,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IACtD,MAAM;IACN,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IAC9C,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC1C,OAAO;IACP,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAC1D,KAAK;IACL,GAAG,MAAM,CAAC,WAAW,CACnB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;QACzB,GAAG;QACH,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;KAClD,CAAC,CACH;IACD,eAAe;IACf,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IAClB,MAAM;IACN,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACxD,aAAa;IACb,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACrD,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACtD,WAAW;IACX,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;IAC5C,YAAY;IACZ,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACpD,SAAS;IACT,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;CACvB,CAAC;AAEF;;GAEG;AACI,MAAM,oBAAoB,GAAG,CAClC,IAA2B,EAC3B,eAAuB,EACR,EAAE;IACjB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,+CAA+C;YAC/C,MAAM,UAAU,GAAG;gBACjB,aAAa,eAAe,wBAAwB;gBACpD,EAAE;gBACF,4GAA4G;gBAC5G,uDAAuD;gBACvD,EAAE;gBACF,gCAAgC;gBAChC,EAAE;gBACF,mHAAmH;gBACnH,gHAAgH;gBAChH,oCAAoC;aACrC,CAAC;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAClE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAC1B,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CACvD,CAAC;YACF,OAAO;gBACL,IAAI;gBACJ,eAAe;gBACf,MAAM,EAAE;oBACN,OAAO,EAAE,EAAE,KAAK,EAAE;oBAClB,MAAM,EAAE;wBACN,8BAA8B,EAAE;4BAC9B,UAAU,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;4BACzC,SAAS,EAAE,MAAM;4BACjB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;yBACzC;wBACD,iBAAiB,EAAE;4BACjB,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;4BACxC,SAAS,EAAE,KAAK;4BAChB,OAAO,EAAE,IAAI;4BACb,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI;yBACvC;qBACF;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO;gBACL,IAAI;gBACJ,eAAe;gBACf,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC;oBAC9B,CAAC,CAAC;wBACE,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACxC;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,EAAE;oBACN,OAAO,EAAE;wBACP,KAAK,EAAE;4BACL,aAAa,eAAe,wBAAwB;4BACpD,4BAA4B,IAAI,EAAE;yBACnC;qBACF;oBACD,MAAM,EAAE;wBACN,8BAA8B,EAAE;4BAC9B,UAAU,EAAE,KAAK;4BACjB,SAAS,EAAE,KAAK;4BAChB,QAAQ,EAAE,KAAK;yBAChB;wBACD,iBAAiB,EAAE;4BACjB,UAAU,EAAE,GAAG;4BACf,SAAS,EAAE,IAAI;4BACf,QAAQ,EAAE,GAAG;yBACd;qBACF;oBACD,OAAO,EAAE,CAAC,YAAY,CAAC;iBACxB;aACF,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AA/EW,QAAA,oBAAoB,wBA+E/B;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAU,EAAE,MAAqB,EAAE,EAAE;IAC5E,MAAM,IAAA,+BAAuB,EAAC,IAAI,EAAE;QAClC,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;AACL,CAAC,CAAC;AAJW,QAAA,kBAAkB,sBAI7B;AAEF;;GAEG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,IAAU,EAC0B,EAAE;IACtC,OAAO,CAAC,MAAM,IAAA,6BAAqB,EAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC;AACtD,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { type LicenseCollector } from './collectors/collector';
6
+ import type { CheckResult, DependencyCheckConfig } from './types';
7
+ export interface RunCheckOptions {
8
+ projectRoot: string;
9
+ config: DependencyCheckConfig;
10
+ collectors?: LicenseCollector[];
11
+ }
12
+ export declare const runCheck: (options: RunCheckOptions) => Promise<CheckResult>;
13
+ export interface FormatReportOptions {
14
+ collectors?: LicenseCollector[];
15
+ }
16
+ export declare const formatReport: (result: CheckResult, options?: FormatReportOptions) => string;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.formatReport = exports.runCheck = void 0;
8
+ const utils_1 = require("../../utils/config/utils");
9
+ const collector_1 = require("./collectors/collector");
10
+ const evaluator_1 = require("./evaluator");
11
+ const findException = (exceptions, name, version) => {
12
+ if (!exceptions)
13
+ return undefined;
14
+ return exceptions.find((e) => e && e.package === name && (!e.version || e.version === version));
15
+ };
16
+ const runCheck = async (options) => {
17
+ const { projectRoot, config } = options;
18
+ const collectors = options.collectors ?? collector_1.DEFAULT_COLLECTORS;
19
+ const evaluator = (0, evaluator_1.createEvaluator)({ allow: config.allow });
20
+ const allDeps = await Promise.all(collectors.map((c) => c.collect({ workspaceRoot: projectRoot })));
21
+ const dependencies = [];
22
+ for (const deps of allDeps) {
23
+ for (const dep of deps) {
24
+ const exception = findException(config.exceptions, dep.name, dep.version);
25
+ const license = exception?.spdx ?? dep.rawLicense;
26
+ const status = exception ? 'PRE_APPROVED' : evaluator.evaluate(license);
27
+ config.onDependency?.({ package: dep.name, spdx: license });
28
+ dependencies.push({
29
+ name: dep.name,
30
+ version: dep.version,
31
+ ecosystem: dep.ecosystem,
32
+ rawLicense: dep.rawLicense,
33
+ status,
34
+ exception,
35
+ });
36
+ }
37
+ }
38
+ const pass = !dependencies.some((d) => d.status === 'NOT_APPROVED' || d.status === 'UNKNOWN');
39
+ return { pass, dependencies };
40
+ };
41
+ exports.runCheck = runCheck;
42
+ const formatReport = (result, options) => {
43
+ const groups = new Map();
44
+ for (const dep of result.dependencies) {
45
+ if (dep.status === 'PRE_APPROVED')
46
+ continue;
47
+ const arr = groups.get(dep.status) ?? [];
48
+ arr.push(dep);
49
+ groups.set(dep.status, arr);
50
+ }
51
+ if (groups.size === 0) {
52
+ const total = result.dependencies.length;
53
+ return `License check passed (${total} dependencies inspected).`;
54
+ }
55
+ const failing = [
56
+ ...(groups.get('NOT_APPROVED') ?? []),
57
+ ...(groups.get('UNKNOWN') ?? []),
58
+ ];
59
+ const lines = ['License check failed:', ''];
60
+ for (const status of ['NOT_APPROVED', 'UNKNOWN']) {
61
+ const deps = groups.get(status);
62
+ if (!deps || deps.length === 0)
63
+ continue;
64
+ lines.push(` ${status}:`);
65
+ for (const dep of deps) {
66
+ const license = dep.rawLicense || '(no license declared)';
67
+ lines.push(` - ${dep.name}@${dep.version} [${dep.ecosystem}] ${license}`);
68
+ }
69
+ lines.push('');
70
+ }
71
+ const collectors = options?.collectors ?? collector_1.DEFAULT_COLLECTORS;
72
+ const activeEcosystems = new Set(result.dependencies.map((d) => d.ecosystem));
73
+ const traceCommands = collectors.filter((c) => {
74
+ if (!c.traceCommand)
75
+ return false;
76
+ const eco = c.name === 'python' ? 'pypi' : c.name;
77
+ return activeEcosystems.has(eco);
78
+ });
79
+ if (traceCommands.length > 0) {
80
+ lines.push('To trace the dependency chain:');
81
+ for (const c of traceCommands) {
82
+ lines.push(` ${c.name}: ${c.traceCommand}`);
83
+ }
84
+ lines.push('');
85
+ }
86
+ lines.push(`To fix, add exceptions to license.dependencies.exceptions in ${utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME}:`);
87
+ lines.push('');
88
+ lines.push(' exceptions: [');
89
+ for (const dep of failing) {
90
+ lines.push(` { package: '${dep.name}', reason: '<your reason>' },`);
91
+ }
92
+ lines.push(' ]');
93
+ lines.push('');
94
+ const uniqueLicenses = [
95
+ ...new Set(failing
96
+ .filter((d) => d.rawLicense && d.status === 'NOT_APPROVED')
97
+ .map((d) => d.rawLicense)),
98
+ ];
99
+ if (uniqueLicenses.length > 0) {
100
+ lines.push('Or add the license to license.dependencies.allow if it should be broadly permitted:');
101
+ lines.push('');
102
+ lines.push(' allow: [');
103
+ for (const lic of uniqueLicenses) {
104
+ lines.push(` { spdxId: '${lic}', fullName: '${lic}', aliases: [] },`);
105
+ }
106
+ lines.push(' ]');
107
+ }
108
+ return lines.join('\n');
109
+ };
110
+ exports.formatReport = formatReport;
111
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/license/dependency-check/check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export interface CollectedDependency {
6
+ name: string;
7
+ version: string;
8
+ rawLicense: string;
9
+ ecosystem: string;
10
+ path?: string;
11
+ }
12
+ export interface LicenseCollector {
13
+ name: string;
14
+ traceCommand?: string;
15
+ collect(options: {
16
+ workspaceRoot: string;
17
+ }): Promise<CollectedDependency[]>;
18
+ }
19
+ export declare const npmCollector: () => LicenseCollector;
20
+ export declare const pythonCollector: () => LicenseCollector;
21
+ export declare const DEFAULT_COLLECTORS: LicenseCollector[];