ddd-ts-kit 0.1.0 → 0.2.0

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 (772) hide show
  1. package/README.md +124 -24
  2. package/dist/affected/changed-paths.d.ts +8 -0
  3. package/dist/affected/changed-paths.d.ts.map +1 -0
  4. package/dist/affected/changed-paths.js +21 -0
  5. package/dist/affected/changed-paths.js.map +1 -0
  6. package/dist/affected/downstreams-of.d.ts +4 -0
  7. package/dist/affected/downstreams-of.d.ts.map +1 -0
  8. package/dist/affected/downstreams-of.js +16 -0
  9. package/dist/affected/downstreams-of.js.map +1 -0
  10. package/dist/affected/everything.d.ts +5 -0
  11. package/dist/affected/everything.d.ts.map +1 -0
  12. package/dist/affected/everything.js +5 -0
  13. package/dist/affected/everything.js.map +1 -0
  14. package/dist/affected/format-selection.d.ts +10 -0
  15. package/dist/affected/format-selection.d.ts.map +1 -0
  16. package/dist/affected/format-selection.js +45 -0
  17. package/dist/affected/format-selection.js.map +1 -0
  18. package/dist/affected/path-reach.d.ts +12 -0
  19. package/dist/affected/path-reach.d.ts.map +1 -0
  20. package/dist/affected/path-reach.js +2 -0
  21. package/dist/affected/path-reach.js.map +1 -0
  22. package/dist/affected/reach-of.d.ts +10 -0
  23. package/dist/affected/reach-of.d.ts.map +1 -0
  24. package/dist/affected/reach-of.js +30 -0
  25. package/dist/affected/reach-of.js.map +1 -0
  26. package/dist/affected/select-affected.d.ts +11 -0
  27. package/dist/affected/select-affected.d.ts.map +1 -0
  28. package/dist/affected/select-affected.js +39 -0
  29. package/dist/affected/select-affected.js.map +1 -0
  30. package/dist/affected/selection.d.ts +14 -0
  31. package/dist/affected/selection.d.ts.map +1 -0
  32. package/dist/affected/selection.js +2 -0
  33. package/dist/affected/selection.js.map +1 -0
  34. package/dist/alias/compiler-resolution-of.d.ts +10 -0
  35. package/dist/alias/compiler-resolution-of.d.ts.map +1 -0
  36. package/dist/alias/compiler-resolution-of.js +13 -0
  37. package/dist/alias/compiler-resolution-of.js.map +1 -0
  38. package/dist/alias/compiler-resolution.d.ts +8 -0
  39. package/dist/alias/compiler-resolution.d.ts.map +1 -0
  40. package/dist/alias/compiler-resolution.js +2 -0
  41. package/dist/alias/compiler-resolution.js.map +1 -0
  42. package/dist/alias/index.d.ts +3 -1
  43. package/dist/alias/index.d.ts.map +1 -1
  44. package/dist/alias/index.js +3 -1
  45. package/dist/alias/index.js.map +1 -1
  46. package/dist/alias/module-name-mapper.d.ts +4 -3
  47. package/dist/alias/module-name-mapper.d.ts.map +1 -1
  48. package/dist/alias/module-name-mapper.js +6 -4
  49. package/dist/alias/module-name-mapper.js.map +1 -1
  50. package/dist/alias/specifier-of.d.ts +7 -0
  51. package/dist/alias/specifier-of.d.ts.map +1 -0
  52. package/dist/alias/specifier-of.js +17 -0
  53. package/dist/alias/specifier-of.js.map +1 -0
  54. package/dist/alias/specifier-suffix.d.ts +6 -0
  55. package/dist/alias/specifier-suffix.d.ts.map +1 -0
  56. package/dist/alias/specifier-suffix.js +8 -0
  57. package/dist/alias/specifier-suffix.js.map +1 -0
  58. package/dist/alias/to-alias.d.ts +3 -2
  59. package/dist/alias/to-alias.d.ts.map +1 -1
  60. package/dist/alias/to-alias.js +4 -3
  61. package/dist/alias/to-alias.js.map +1 -1
  62. package/dist/build/emitted-place.d.ts +2 -0
  63. package/dist/build/emitted-place.d.ts.map +1 -1
  64. package/dist/build/emitted-specifier.d.ts +3 -2
  65. package/dist/build/emitted-specifier.d.ts.map +1 -1
  66. package/dist/build/emitted-specifier.js +6 -12
  67. package/dist/build/emitted-specifier.js.map +1 -1
  68. package/dist/build/emitted-target.d.ts +9 -0
  69. package/dist/build/emitted-target.d.ts.map +1 -0
  70. package/dist/build/emitted-target.js +18 -0
  71. package/dist/build/emitted-target.js.map +1 -0
  72. package/dist/build/rewrite-aliases.d.ts +5 -3
  73. package/dist/build/rewrite-aliases.d.ts.map +1 -1
  74. package/dist/build/rewrite-aliases.js +12 -7
  75. package/dist/build/rewrite-aliases.js.map +1 -1
  76. package/dist/build/rewrite-specifiers.d.ts +3 -1
  77. package/dist/build/rewrite-specifiers.d.ts.map +1 -1
  78. package/dist/build/rewrite-specifiers.js +2 -2
  79. package/dist/build/rewrite-specifiers.js.map +1 -1
  80. package/dist/build/unresolved-problem.d.ts +4 -0
  81. package/dist/build/unresolved-problem.d.ts.map +1 -0
  82. package/dist/build/unresolved-problem.js +16 -0
  83. package/dist/build/unresolved-problem.js.map +1 -0
  84. package/dist/check/alias/compiler-resolution.d.ts +10 -0
  85. package/dist/check/alias/compiler-resolution.d.ts.map +1 -0
  86. package/dist/check/alias/compiler-resolution.js +47 -0
  87. package/dist/check/alias/compiler-resolution.js.map +1 -0
  88. package/dist/check/alias/test-runners.js +4 -4
  89. package/dist/check/alias/test-runners.js.map +1 -1
  90. package/dist/check/canonical/roles.d.ts.map +1 -1
  91. package/dist/check/canonical/roles.js +6 -0
  92. package/dist/check/canonical/roles.js.map +1 -1
  93. package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
  94. package/dist/check/catalogue/architecture-rules.js +4 -0
  95. package/dist/check/catalogue/architecture-rules.js.map +1 -1
  96. package/dist/check/configuration/config-inspection.d.ts +2 -0
  97. package/dist/check/configuration/config-inspection.d.ts.map +1 -1
  98. package/dist/check/configuration/config-inspection.js +11 -1
  99. package/dist/check/configuration/config-inspection.js.map +1 -1
  100. package/dist/check/declarations/classes-of.js +1 -1
  101. package/dist/check/declarations/classes-of.js.map +1 -1
  102. package/dist/check/explain/context-docs.js +7 -7
  103. package/dist/check/explain/context-docs.js.map +1 -1
  104. package/dist/check/explain/imports-docs.d.ts.map +1 -1
  105. package/dist/check/explain/imports-docs.js +24 -9
  106. package/dist/check/explain/imports-docs.js.map +1 -1
  107. package/dist/check/explain/layer-docs.js +7 -7
  108. package/dist/check/explain/layer-docs.js.map +1 -1
  109. package/dist/check/explain/ports-docs.d.ts.map +1 -1
  110. package/dist/check/explain/ports-docs.js +15 -7
  111. package/dist/check/explain/ports-docs.js.map +1 -1
  112. package/dist/check/explain/scheduling-docs.js +1 -1
  113. package/dist/check/explain/wiring-docs.d.ts.map +1 -1
  114. package/dist/check/explain/wiring-docs.js +35 -10
  115. package/dist/check/explain/wiring-docs.js.map +1 -1
  116. package/dist/check/fixtures/alias-declared-fixtures.d.ts.map +1 -1
  117. package/dist/check/fixtures/alias-declared-fixtures.js +32 -1
  118. package/dist/check/fixtures/alias-declared-fixtures.js.map +1 -1
  119. package/dist/check/fixtures/config-fixtures.d.ts.map +1 -1
  120. package/dist/check/fixtures/config-fixtures.js +6 -0
  121. package/dist/check/fixtures/config-fixtures.js.map +1 -1
  122. package/dist/check/fixtures/constructor-injection-fixtures.d.ts +3 -0
  123. package/dist/check/fixtures/constructor-injection-fixtures.d.ts.map +1 -0
  124. package/dist/check/fixtures/constructor-injection-fixtures.js +111 -0
  125. package/dist/check/fixtures/constructor-injection-fixtures.js.map +1 -0
  126. package/dist/check/fixtures/declared-project.d.ts.map +1 -1
  127. package/dist/check/fixtures/declared-project.js +4 -1
  128. package/dist/check/fixtures/declared-project.js.map +1 -1
  129. package/dist/check/fixtures/extension-fixtures.d.ts +3 -0
  130. package/dist/check/fixtures/extension-fixtures.d.ts.map +1 -0
  131. package/dist/check/fixtures/extension-fixtures.js +77 -0
  132. package/dist/check/fixtures/extension-fixtures.js.map +1 -0
  133. package/dist/check/fixtures/fixtures.d.ts.map +1 -1
  134. package/dist/check/fixtures/fixtures.js +4 -0
  135. package/dist/check/fixtures/fixtures.js.map +1 -1
  136. package/dist/check/fixtures/signature-project.d.ts +11 -0
  137. package/dist/check/fixtures/signature-project.d.ts.map +1 -0
  138. package/dist/check/fixtures/signature-project.js +21 -0
  139. package/dist/check/fixtures/signature-project.js.map +1 -0
  140. package/dist/check/fixtures/signature.d.ts +13 -0
  141. package/dist/check/fixtures/signature.d.ts.map +1 -0
  142. package/dist/check/fixtures/signature.js +24 -0
  143. package/dist/check/fixtures/signature.js.map +1 -0
  144. package/dist/check/project/beside-the-sources.d.ts +5 -0
  145. package/dist/check/project/beside-the-sources.d.ts.map +1 -0
  146. package/dist/check/project/beside-the-sources.js +21 -0
  147. package/dist/check/project/beside-the-sources.js.map +1 -0
  148. package/dist/check/project/resolve-import.d.ts.map +1 -1
  149. package/dist/check/project/resolve-import.js +4 -1
  150. package/dist/check/project/resolve-import.js.map +1 -1
  151. package/dist/check/rules/clean-one-export-per-file.d.ts.map +1 -1
  152. package/dist/check/rules/clean-one-export-per-file.js +14 -8
  153. package/dist/check/rules/clean-one-export-per-file.js.map +1 -1
  154. package/dist/check/rules/config-valid.d.ts.map +1 -1
  155. package/dist/check/rules/config-valid.js +2 -1
  156. package/dist/check/rules/config-valid.js.map +1 -1
  157. package/dist/check/rules/declarations-barrel-current.d.ts.map +1 -1
  158. package/dist/check/rules/declarations-barrel-current.js +34 -32
  159. package/dist/check/rules/declarations-barrel-current.js.map +1 -1
  160. package/dist/check/rules/declarations-constructor-injection.d.ts +3 -0
  161. package/dist/check/rules/declarations-constructor-injection.d.ts.map +1 -0
  162. package/dist/check/rules/declarations-constructor-injection.js +58 -0
  163. package/dist/check/rules/declarations-constructor-injection.js.map +1 -0
  164. package/dist/check/rules/imports-alias-declared.d.ts.map +1 -1
  165. package/dist/check/rules/imports-alias-declared.js +3 -1
  166. package/dist/check/rules/imports-alias-declared.js.map +1 -1
  167. package/dist/check/rules/imports-alias-only.d.ts.map +1 -1
  168. package/dist/check/rules/imports-alias-only.js +16 -29
  169. package/dist/check/rules/imports-alias-only.js.map +1 -1
  170. package/dist/check/rules/imports-extension.d.ts +3 -0
  171. package/dist/check/rules/imports-extension.d.ts.map +1 -0
  172. package/dist/check/rules/imports-extension.js +65 -0
  173. package/dist/check/rules/imports-extension.js.map +1 -0
  174. package/dist/check/rules/ports-no-concrete-dependency.d.ts.map +1 -1
  175. package/dist/check/rules/ports-no-concrete-dependency.js +43 -15
  176. package/dist/check/rules/ports-no-concrete-dependency.js.map +1 -1
  177. package/dist/check/rules/tree-closed.js +6 -4
  178. package/dist/check/rules/tree-closed.js.map +1 -1
  179. package/dist/commands/affected.d.ts +8 -0
  180. package/dist/commands/affected.d.ts.map +1 -0
  181. package/dist/commands/affected.js +38 -0
  182. package/dist/commands/affected.js.map +1 -0
  183. package/dist/commands/build-aliases.d.ts.map +1 -1
  184. package/dist/commands/build-aliases.js +5 -3
  185. package/dist/commands/build-aliases.js.map +1 -1
  186. package/dist/commands/docs.d.ts.map +1 -1
  187. package/dist/commands/docs.js +19 -2
  188. package/dist/commands/docs.js.map +1 -1
  189. package/dist/commands/generate.d.ts.map +1 -1
  190. package/dist/commands/generate.js +5 -0
  191. package/dist/commands/generate.js.map +1 -1
  192. package/dist/commands/init.d.ts.map +1 -1
  193. package/dist/commands/init.js +7 -1
  194. package/dist/commands/init.js.map +1 -1
  195. package/dist/commit/is-derived.d.ts.map +1 -1
  196. package/dist/commit/is-derived.js +5 -2
  197. package/dist/commit/is-derived.js.map +1 -1
  198. package/dist/config/config.d.ts +2 -0
  199. package/dist/config/config.d.ts.map +1 -1
  200. package/dist/config/default-import-extension.d.ts +3 -0
  201. package/dist/config/default-import-extension.d.ts.map +1 -0
  202. package/dist/config/default-import-extension.js +3 -0
  203. package/dist/config/default-import-extension.js.map +1 -0
  204. package/dist/config/import-extensions.d.ts +3 -0
  205. package/dist/config/import-extensions.d.ts.map +1 -0
  206. package/dist/config/import-extensions.js +3 -0
  207. package/dist/config/import-extensions.js.map +1 -0
  208. package/dist/config/index.d.ts +4 -1
  209. package/dist/config/index.d.ts.map +1 -1
  210. package/dist/config/index.js +4 -1
  211. package/dist/config/index.js.map +1 -1
  212. package/dist/config/parse-config.d.ts.map +1 -1
  213. package/dist/config/parse-config.js +2 -0
  214. package/dist/config/parse-config.js.map +1 -1
  215. package/dist/config/parse-stack.d.ts.map +1 -1
  216. package/dist/config/parse-stack.js +3 -1
  217. package/dist/config/parse-stack.js.map +1 -1
  218. package/dist/config/restack-config-text.d.ts +11 -0
  219. package/dist/config/restack-config-text.d.ts.map +1 -0
  220. package/dist/config/restack-config-text.js +31 -0
  221. package/dist/config/restack-config-text.js.map +1 -0
  222. package/dist/config/serialize-config.d.ts.map +1 -1
  223. package/dist/config/serialize-config.js +3 -6
  224. package/dist/config/serialize-config.js.map +1 -1
  225. package/dist/config/stack.d.ts +15 -0
  226. package/dist/config/stack.d.ts.map +1 -1
  227. package/dist/config/stack.js +2 -0
  228. package/dist/config/stack.js.map +1 -1
  229. package/dist/config/unwritten-import-extension.d.ts +3 -0
  230. package/dist/config/unwritten-import-extension.d.ts.map +1 -0
  231. package/dist/config/unwritten-import-extension.js +3 -0
  232. package/dist/config/unwritten-import-extension.js.map +1 -0
  233. package/dist/config/written-stack.d.ts +8 -0
  234. package/dist/config/written-stack.d.ts.map +1 -0
  235. package/dist/config/written-stack.js +10 -0
  236. package/dist/config/written-stack.js.map +1 -0
  237. package/dist/declared/declared-role.d.ts.map +1 -1
  238. package/dist/declared/declared-role.js +1 -0
  239. package/dist/declared/declared-role.js.map +1 -1
  240. package/dist/declared/dependencies-file.d.ts +7 -0
  241. package/dist/declared/dependencies-file.d.ts.map +1 -0
  242. package/dist/declared/dependencies-file.js +9 -0
  243. package/dist/declared/dependencies-file.js.map +1 -0
  244. package/dist/declared/generated-drift.d.ts +7 -0
  245. package/dist/declared/generated-drift.d.ts.map +1 -0
  246. package/dist/declared/generated-drift.js +47 -0
  247. package/dist/declared/generated-drift.js.map +1 -0
  248. package/dist/declared/index.d.ts +8 -1
  249. package/dist/declared/index.d.ts.map +1 -1
  250. package/dist/declared/index.js +6 -1
  251. package/dist/declared/index.js.map +1 -1
  252. package/dist/declared/injection/class-injection.d.ts +19 -0
  253. package/dist/declared/injection/class-injection.d.ts.map +1 -0
  254. package/dist/declared/injection/class-injection.js +2 -0
  255. package/dist/declared/injection/class-injection.js.map +1 -0
  256. package/dist/declared/injection/constructor-of.d.ts +16 -0
  257. package/dist/declared/injection/constructor-of.d.ts.map +1 -0
  258. package/dist/declared/injection/constructor-of.js +33 -0
  259. package/dist/declared/injection/constructor-of.js.map +1 -0
  260. package/dist/declared/injection/context-injections.d.ts +8 -0
  261. package/dist/declared/injection/context-injections.d.ts.map +1 -0
  262. package/dist/declared/injection/context-injections.js +14 -0
  263. package/dist/declared/injection/context-injections.js.map +1 -0
  264. package/dist/declared/injection/declared-kind-of.d.ts +8 -0
  265. package/dist/declared/injection/declared-kind-of.d.ts.map +1 -0
  266. package/dist/declared/injection/declared-kind-of.js +12 -0
  267. package/dist/declared/injection/declared-kind-of.js.map +1 -0
  268. package/dist/declared/injection/exported-name-of.d.ts +4 -0
  269. package/dist/declared/injection/exported-name-of.d.ts.map +1 -0
  270. package/dist/declared/injection/exported-name-of.js +17 -0
  271. package/dist/declared/injection/exported-name-of.js.map +1 -0
  272. package/dist/declared/injection/language-types.d.ts +3 -0
  273. package/dist/declared/injection/language-types.d.ts.map +1 -0
  274. package/dist/declared/injection/language-types.js +32 -0
  275. package/dist/declared/injection/language-types.js.map +1 -0
  276. package/dist/declared/injection/local-names.d.ts +17 -0
  277. package/dist/declared/injection/local-names.d.ts.map +1 -0
  278. package/dist/declared/injection/local-names.js +41 -0
  279. package/dist/declared/injection/local-names.js.map +1 -0
  280. package/dist/declared/injection/parameter-shape.d.ts +11 -0
  281. package/dist/declared/injection/parameter-shape.d.ts.map +1 -0
  282. package/dist/declared/injection/parameter-shape.js +58 -0
  283. package/dist/declared/injection/parameter-shape.js.map +1 -0
  284. package/dist/declared/injection/raw-class-name.d.ts +7 -0
  285. package/dist/declared/injection/raw-class-name.d.ts.map +1 -0
  286. package/dist/declared/injection/raw-class-name.js +28 -0
  287. package/dist/declared/injection/raw-class-name.js.map +1 -0
  288. package/dist/declared/injection/read-constructor.d.ts +10 -0
  289. package/dist/declared/injection/read-constructor.d.ts.map +1 -0
  290. package/dist/declared/injection/read-constructor.js +2 -0
  291. package/dist/declared/injection/read-constructor.js.map +1 -0
  292. package/dist/declared/injection/read-injections.d.ts +6 -0
  293. package/dist/declared/injection/read-injections.d.ts.map +1 -0
  294. package/dist/declared/injection/read-injections.js +75 -0
  295. package/dist/declared/injection/read-injections.js.map +1 -0
  296. package/dist/declared/injection/render-injections.d.ts +11 -0
  297. package/dist/declared/injection/render-injections.d.ts.map +1 -0
  298. package/dist/declared/injection/render-injections.js +51 -0
  299. package/dist/declared/injection/render-injections.js.map +1 -0
  300. package/dist/declared/injection/rendered-injections.d.ts +8 -0
  301. package/dist/declared/injection/rendered-injections.d.ts.map +1 -0
  302. package/dist/declared/injection/rendered-injections.js +2 -0
  303. package/dist/declared/injection/rendered-injections.js.map +1 -0
  304. package/dist/declared/injection/resolve-token.d.ts +18 -0
  305. package/dist/declared/injection/resolve-token.d.ts.map +1 -0
  306. package/dist/declared/injection/resolve-token.js +46 -0
  307. package/dist/declared/injection/resolve-token.js.map +1 -0
  308. package/dist/declared/injection/resolved-token.d.ts +10 -0
  309. package/dist/declared/injection/resolved-token.d.ts.map +1 -0
  310. package/dist/declared/injection/resolved-token.js +2 -0
  311. package/dist/declared/injection/resolved-token.js.map +1 -0
  312. package/dist/declared/injection/sources.d.ts +4 -0
  313. package/dist/declared/injection/sources.d.ts.map +1 -0
  314. package/dist/declared/injection/sources.js +2 -0
  315. package/dist/declared/injection/sources.js.map +1 -0
  316. package/dist/declared/injection/token-reference.d.ts +14 -0
  317. package/dist/declared/injection/token-reference.d.ts.map +1 -0
  318. package/dist/declared/injection/token-reference.js +2 -0
  319. package/dist/declared/injection/token-reference.js.map +1 -0
  320. package/dist/declared/render-barrel.d.ts +8 -5
  321. package/dist/declared/render-barrel.d.ts.map +1 -1
  322. package/dist/declared/render-barrel.js +13 -6
  323. package/dist/declared/render-barrel.js.map +1 -1
  324. package/dist/declared/render-dependencies-file.d.ts +8 -0
  325. package/dist/declared/render-dependencies-file.d.ts.map +1 -0
  326. package/dist/declared/render-dependencies-file.js +12 -0
  327. package/dist/declared/render-dependencies-file.js.map +1 -0
  328. package/dist/depcruise/cruise-configuration.js +3 -1
  329. package/dist/depcruise/cruise-configuration.js.map +1 -1
  330. package/dist/depcruise/hygiene-rules.js +2 -1
  331. package/dist/depcruise/hygiene-rules.js.map +1 -1
  332. package/dist/describe/context-description.d.ts +10 -0
  333. package/dist/describe/context-description.d.ts.map +1 -1
  334. package/dist/describe/describe-context.d.ts.map +1 -1
  335. package/dist/describe/describe-context.js +2 -0
  336. package/dist/describe/describe-context.js.map +1 -1
  337. package/dist/describe/format-description.d.ts.map +1 -1
  338. package/dist/describe/format-description.js +4 -0
  339. package/dist/describe/format-description.js.map +1 -1
  340. package/dist/describe/read-projections.d.ts +5 -0
  341. package/dist/describe/read-projections.d.ts.map +1 -0
  342. package/dist/describe/read-projections.js +19 -0
  343. package/dist/describe/read-projections.js.map +1 -0
  344. package/dist/describe/reference-lines.js +9 -0
  345. package/dist/describe/reference-lines.js.map +1 -1
  346. package/dist/dev/refresh-declarations.d.ts +9 -0
  347. package/dist/dev/refresh-declarations.d.ts.map +1 -0
  348. package/dist/dev/refresh-declarations.js +28 -0
  349. package/dist/dev/refresh-declarations.js.map +1 -0
  350. package/dist/generate/access-vars.js +3 -3
  351. package/dist/generate/access-vars.js.map +1 -1
  352. package/dist/generate/apply-wiring.js +1 -1
  353. package/dist/generate/apply-wiring.js.map +1 -1
  354. package/dist/generate/kinds/adapter-kind.d.ts.map +1 -1
  355. package/dist/generate/kinds/adapter-kind.js +5 -2
  356. package/dist/generate/kinds/adapter-kind.js.map +1 -1
  357. package/dist/generate/kinds/context-plan.d.ts +10 -0
  358. package/dist/generate/kinds/context-plan.d.ts.map +1 -0
  359. package/dist/generate/kinds/context-plan.js +2 -0
  360. package/dist/generate/kinds/context-plan.js.map +1 -0
  361. package/dist/generate/kinds/declare-context-entries.d.ts +12 -0
  362. package/dist/generate/kinds/declare-context-entries.d.ts.map +1 -0
  363. package/dist/generate/kinds/declare-context-entries.js +33 -0
  364. package/dist/generate/kinds/declare-context-entries.js.map +1 -0
  365. package/dist/generate/kinds/extraction/service-selection.js +8 -11
  366. package/dist/generate/kinds/extraction/service-selection.js.map +1 -1
  367. package/dist/generate/kinds/generate-context.d.ts.map +1 -1
  368. package/dist/generate/kinds/generate-context.js +2 -0
  369. package/dist/generate/kinds/generate-context.js.map +1 -1
  370. package/dist/generate/kinds/import-assembler.d.ts +9 -0
  371. package/dist/generate/kinds/import-assembler.d.ts.map +1 -0
  372. package/dist/generate/kinds/import-assembler.js +29 -0
  373. package/dist/generate/kinds/import-assembler.js.map +1 -0
  374. package/dist/generate/kinds/job/job-vars.d.ts.map +1 -1
  375. package/dist/generate/kinds/job/job-vars.js +5 -3
  376. package/dist/generate/kinds/job/job-vars.js.map +1 -1
  377. package/dist/generate/kinds/plan-vars.d.ts +5 -0
  378. package/dist/generate/kinds/plan-vars.d.ts.map +1 -0
  379. package/dist/generate/kinds/plan-vars.js +24 -0
  380. package/dist/generate/kinds/plan-vars.js.map +1 -0
  381. package/dist/generate/kinds/projection-kind.d.ts +3 -0
  382. package/dist/generate/kinds/projection-kind.d.ts.map +1 -0
  383. package/dist/generate/kinds/projection-kind.js +72 -0
  384. package/dist/generate/kinds/projection-kind.js.map +1 -0
  385. package/dist/generate/kinds/publish-in-index.js +2 -2
  386. package/dist/generate/kinds/publish-in-index.js.map +1 -1
  387. package/dist/generate/kinds/route/route-vars.d.ts.map +1 -1
  388. package/dist/generate/kinds/route/route-vars.js +7 -6
  389. package/dist/generate/kinds/route/route-vars.js.map +1 -1
  390. package/dist/generate/kinds/wire-context.d.ts +10 -0
  391. package/dist/generate/kinds/wire-context.d.ts.map +1 -0
  392. package/dist/generate/kinds/wire-context.js +36 -0
  393. package/dist/generate/kinds/wire-context.js.map +1 -0
  394. package/dist/generate/kinds/write-context-files.d.ts +1 -8
  395. package/dist/generate/kinds/write-context-files.d.ts.map +1 -1
  396. package/dist/generate/kinds/write-context-files.js +3 -32
  397. package/dist/generate/kinds/write-context-files.js.map +1 -1
  398. package/dist/generate/kinds/write-own-policy.d.ts +9 -0
  399. package/dist/generate/kinds/write-own-policy.d.ts.map +1 -0
  400. package/dist/generate/kinds/write-own-policy.js +13 -0
  401. package/dist/generate/kinds/write-own-policy.js.map +1 -0
  402. package/dist/generate/kinds.d.ts.map +1 -1
  403. package/dist/generate/kinds.js +2 -0
  404. package/dist/generate/kinds.js.map +1 -1
  405. package/dist/generate/refresh-barrels.d.ts +4 -3
  406. package/dist/generate/refresh-barrels.d.ts.map +1 -1
  407. package/dist/generate/refresh-barrels.js +41 -16
  408. package/dist/generate/refresh-barrels.js.map +1 -1
  409. package/dist/generate/shared-writes.d.ts.map +1 -1
  410. package/dist/generate/shared-writes.js +6 -0
  411. package/dist/generate/shared-writes.js.map +1 -1
  412. package/dist/generate/spec-vars.js +4 -4
  413. package/dist/generate/spec-vars.js.map +1 -1
  414. package/dist/generate/stop-ignoring-validation.d.ts +9 -0
  415. package/dist/generate/stop-ignoring-validation.d.ts.map +1 -0
  416. package/dist/generate/stop-ignoring-validation.js +36 -0
  417. package/dist/generate/stop-ignoring-validation.js.map +1 -0
  418. package/dist/generate/storage-vars.d.ts +2 -2
  419. package/dist/generate/storage-vars.d.ts.map +1 -1
  420. package/dist/generate/storage-vars.js +6 -10
  421. package/dist/generate/storage-vars.js.map +1 -1
  422. package/dist/generate/workspace-sources.d.ts +6 -0
  423. package/dist/generate/workspace-sources.d.ts.map +1 -0
  424. package/dist/generate/workspace-sources.js +13 -0
  425. package/dist/generate/workspace-sources.js.map +1 -0
  426. package/dist/init/files/architecture-files.d.ts +9 -0
  427. package/dist/init/files/architecture-files.d.ts.map +1 -0
  428. package/dist/init/files/architecture-files.js +10 -0
  429. package/dist/init/files/architecture-files.js.map +1 -0
  430. package/dist/init/files/init-files.d.ts.map +1 -1
  431. package/dist/init/files/init-files.js +2 -0
  432. package/dist/init/files/init-files.js.map +1 -1
  433. package/dist/init/files/persistence-files.d.ts.map +1 -1
  434. package/dist/init/files/persistence-files.js +5 -1
  435. package/dist/init/files/persistence-files.js.map +1 -1
  436. package/dist/init/files/pipeline-files.d.ts.map +1 -1
  437. package/dist/init/files/pipeline-files.js +5 -1
  438. package/dist/init/files/pipeline-files.js.map +1 -1
  439. package/dist/init/files/platform-files.d.ts.map +1 -1
  440. package/dist/init/files/platform-files.js +3 -1
  441. package/dist/init/files/platform-files.js.map +1 -1
  442. package/dist/init/files/project-files.d.ts.map +1 -1
  443. package/dist/init/files/project-files.js +3 -1
  444. package/dist/init/files/project-files.js.map +1 -1
  445. package/dist/init/knip-vars.d.ts +3 -3
  446. package/dist/init/knip-vars.d.ts.map +1 -1
  447. package/dist/init/knip-vars.js +27 -5
  448. package/dist/init/knip-vars.js.map +1 -1
  449. package/dist/init/manifest/documentation-scripts.d.ts.map +1 -1
  450. package/dist/init/manifest/documentation-scripts.js +2 -0
  451. package/dist/init/manifest/documentation-scripts.js.map +1 -1
  452. package/dist/init/manifest/scripts-for.d.ts +5 -1
  453. package/dist/init/manifest/scripts-for.d.ts.map +1 -1
  454. package/dist/init/manifest/scripts-for.js +16 -2
  455. package/dist/init/manifest/scripts-for.js.map +1 -1
  456. package/dist/init/manifest/versions.js +23 -23
  457. package/dist/init/manifest/write-manifest.d.ts.map +1 -1
  458. package/dist/init/manifest/write-manifest.js +18 -1
  459. package/dist/init/manifest/write-manifest.js.map +1 -1
  460. package/dist/init/run-init.d.ts.map +1 -1
  461. package/dist/init/run-init.js +56 -7
  462. package/dist/init/run-init.js.map +1 -1
  463. package/dist/init/stack/recorded-options.d.ts +11 -0
  464. package/dist/init/stack/recorded-options.d.ts.map +1 -0
  465. package/dist/init/stack/recorded-options.js +19 -0
  466. package/dist/init/stack/recorded-options.js.map +1 -0
  467. package/dist/init/stack/resolve-stack.d.ts +6 -1
  468. package/dist/init/stack/resolve-stack.d.ts.map +1 -1
  469. package/dist/init/stack/resolve-stack.js +48 -9
  470. package/dist/init/stack/resolve-stack.js.map +1 -1
  471. package/dist/init/stack/resolve-style.d.ts +3 -5
  472. package/dist/init/stack/resolve-style.d.ts.map +1 -1
  473. package/dist/init/stack/resolve-style.js +11 -3
  474. package/dist/init/stack/resolve-style.js.map +1 -1
  475. package/dist/init/stack/stack-options.d.ts +4 -0
  476. package/dist/init/stack/stack-options.d.ts.map +1 -1
  477. package/dist/init/template-vars.d.ts.map +1 -1
  478. package/dist/init/template-vars.js +2 -0
  479. package/dist/init/template-vars.js.map +1 -1
  480. package/dist/init/validation-dependencies.d.ts +10 -0
  481. package/dist/init/validation-dependencies.d.ts.map +1 -0
  482. package/dist/init/validation-dependencies.js +23 -0
  483. package/dist/init/validation-dependencies.js.map +1 -0
  484. package/dist/init/write-agent-settings.js +4 -3
  485. package/dist/init/write-agent-settings.js.map +1 -1
  486. package/dist/init/write-contracts.d.ts +10 -0
  487. package/dist/init/write-contracts.d.ts.map +1 -0
  488. package/dist/init/write-contracts.js +33 -0
  489. package/dist/init/write-contracts.js.map +1 -0
  490. package/dist/init/write-type-script-configs.d.ts +2 -1
  491. package/dist/init/write-type-script-configs.d.ts.map +1 -1
  492. package/dist/init/write-type-script-configs.js +4 -4
  493. package/dist/init/write-type-script-configs.js.map +1 -1
  494. package/dist/package-manager/default-package-manager.d.ts +8 -0
  495. package/dist/package-manager/default-package-manager.d.ts.map +1 -0
  496. package/dist/package-manager/default-package-manager.js +7 -0
  497. package/dist/package-manager/default-package-manager.js.map +1 -0
  498. package/dist/package-manager/dialect.d.ts +3 -0
  499. package/dist/package-manager/dialect.d.ts.map +1 -0
  500. package/dist/package-manager/dialect.js +2 -0
  501. package/dist/package-manager/dialect.js.map +1 -0
  502. package/dist/package-manager/dialects.d.ts +5 -0
  503. package/dist/package-manager/dialects.d.ts.map +1 -0
  504. package/dist/package-manager/dialects.js +21 -0
  505. package/dist/package-manager/dialects.js.map +1 -0
  506. package/dist/package-manager/in-dialect.d.ts +8 -0
  507. package/dist/package-manager/in-dialect.d.ts.map +1 -0
  508. package/dist/package-manager/in-dialect.js +10 -0
  509. package/dist/package-manager/in-dialect.js.map +1 -0
  510. package/dist/package-manager/lockfiles.d.ts +4 -0
  511. package/dist/package-manager/lockfiles.d.ts.map +1 -0
  512. package/dist/package-manager/lockfiles.js +6 -0
  513. package/dist/package-manager/lockfiles.js.map +1 -0
  514. package/dist/package-manager/package-manager-of.d.ts +4 -0
  515. package/dist/package-manager/package-manager-of.d.ts.map +1 -0
  516. package/dist/package-manager/package-manager-of.js +15 -0
  517. package/dist/package-manager/package-manager-of.js.map +1 -0
  518. package/dist/package-manager/package-manager-vars.d.ts +5 -0
  519. package/dist/package-manager/package-manager-vars.d.ts.map +1 -0
  520. package/dist/package-manager/package-manager-vars.js +13 -0
  521. package/dist/package-manager/package-manager-vars.js.map +1 -0
  522. package/dist/package-manager/pinned-package-managers.d.ts +7 -0
  523. package/dist/package-manager/pinned-package-managers.d.ts.map +1 -0
  524. package/dist/package-manager/pinned-package-managers.js +9 -0
  525. package/dist/package-manager/pinned-package-managers.js.map +1 -0
  526. package/dist/refresh-declarations.d.ts +3 -0
  527. package/dist/refresh-declarations.d.ts.map +1 -0
  528. package/dist/refresh-declarations.js +4 -0
  529. package/dist/refresh-declarations.js.map +1 -0
  530. package/dist/run.d.ts.map +1 -1
  531. package/dist/run.js +10 -2
  532. package/dist/run.js.map +1 -1
  533. package/dist/stack/alias-vars.d.ts +2 -1
  534. package/dist/stack/alias-vars.d.ts.map +1 -1
  535. package/dist/stack/alias-vars.js +6 -3
  536. package/dist/stack/alias-vars.js.map +1 -1
  537. package/dist/templating/render.d.ts.map +1 -1
  538. package/dist/templating/render.js +2 -1
  539. package/dist/templating/render.js.map +1 -1
  540. package/dist/templating/rendering.js +1 -1
  541. package/dist/templating/rendering.js.map +1 -1
  542. package/dist/version.d.ts +1 -1
  543. package/dist/version.js +1 -1
  544. package/dist/workspace/workspace.d.ts +5 -1
  545. package/dist/workspace/workspace.d.ts.map +1 -1
  546. package/dist/workspace/workspace.js +13 -3
  547. package/dist/workspace/workspace.js.map +1 -1
  548. package/package.json +4 -3
  549. package/templates/acl/translator.spec.ts.tpl +1 -1
  550. package/templates/adapter/adapter.declared.ts.tpl +3 -3
  551. package/templates/adapter/adapter.spec.ts.tpl +1 -1
  552. package/templates/adapter/adapter.ts.tpl +1 -1
  553. package/templates/adapter/wiring.tsyringe.tpl +3 -3
  554. package/templates/aggregate/aggregate.spec.ts.tpl +2 -2
  555. package/templates/architecture/extractable.declared.spec.ts.tpl +7 -7
  556. package/templates/architecture/extractable.manual.spec.ts.tpl +8 -4
  557. package/templates/architecture/extractable.tsyringe.spec.ts.tpl +7 -1
  558. package/templates/architecture/wiring.declared.tpl +1 -1
  559. package/templates/architecture/wiring.manual.tpl +1 -1
  560. package/templates/architecture/wiring.tsyringe.tpl +1 -1
  561. package/templates/builder/builder.ts.tpl +1 -1
  562. package/templates/command/handler.declared.ts.tpl +7 -7
  563. package/templates/command/handler.spec.buses.ts.tpl +4 -4
  564. package/templates/command/handler.spec.tsyringe.ts.tpl +5 -5
  565. package/templates/command/handler.ts.tpl +4 -4
  566. package/templates/command/wiring.manual.tpl +2 -2
  567. package/templates/command/wiring.tsyringe.tpl +3 -3
  568. package/templates/context/module.manual.ts.tpl +1 -1
  569. package/templates/context/permission-set.tpl +1 -1
  570. package/templates/context/permissions.spec.ts.tpl +1 -1
  571. package/templates/context/routes.spec.ts.tpl +1 -1
  572. package/templates/context/wiring.declared.tpl +2 -2
  573. package/templates/context/wiring.manual.tpl +1 -1
  574. package/templates/context/wiring.tsyringe.tpl +2 -2
  575. package/templates/docs/asyncapi.json.tpl +12 -0
  576. package/templates/docs/event-catalog.md +3 -0
  577. package/templates/docs/openapi.json.tpl +354 -0
  578. package/templates/domain-error/domain-error.spec.ts.tpl +1 -1
  579. package/templates/domain-event/domain-event.spec.ts.tpl +1 -1
  580. package/templates/domain-service/domain-service.spec.ts.tpl +1 -1
  581. package/templates/e2e/e2e.spec.ts.tpl +2 -2
  582. package/templates/entity/entity.spec.ts.tpl +1 -1
  583. package/templates/event-handler/event-handler.declared.ts.tpl +3 -3
  584. package/templates/event-handler/event-handler.spec.ts.tpl +2 -2
  585. package/templates/event-handler/event-handler.ts.tpl +1 -1
  586. package/templates/event-handler/wiring.manual.tpl +2 -2
  587. package/templates/event-handler/wiring.tsyringe.tpl +2 -2
  588. package/templates/gateway/adapter.declared.ts.tpl +3 -3
  589. package/templates/gateway/adapter.ts.tpl +2 -2
  590. package/templates/gateway/contract.spec.ts.tpl +3 -3
  591. package/templates/gateway/fake.ts.tpl +1 -1
  592. package/templates/gateway/platform-test.declared.tpl +1 -1
  593. package/templates/gateway/platform.declared.tpl +1 -1
  594. package/templates/gateway/wiring.tsyringe.tpl +3 -3
  595. package/templates/init/CLAUDE.md.tpl +5 -2
  596. package/templates/init/README.md.tpl +16 -10
  597. package/templates/init/docker/Dockerfile.tpl +9 -2
  598. package/templates/init/e2e/create-credentials.jwt.ts.tpl +1 -1
  599. package/templates/init/e2e/create-credentials.keycloak.ts.tpl +1 -1
  600. package/templates/init/e2e/create-credentials.none.ts.tpl +2 -2
  601. package/templates/init/e2e/start-application.database.ts.tpl +16 -16
  602. package/templates/init/e2e/start-application.memory.ts.tpl +16 -16
  603. package/templates/init/e2e/test-environment.ts.tpl +1 -1
  604. package/templates/init/jest.config.js.tpl +3 -1
  605. package/templates/init/main.ts.tpl +11 -11
  606. package/templates/init/platform/audit/audit.module.manual.ts.tpl +5 -5
  607. package/templates/init/platform/audit/audit.module.tsyringe.ts.tpl +4 -4
  608. package/templates/init/platform/audit/create-audit.ts.tpl +5 -5
  609. package/templates/init/platform/audit/search-audit-entries.handler.ts.tpl +1 -1
  610. package/templates/init/platform/audit/search-audit-entries.route.ts.tpl +1 -1
  611. package/templates/init/platform/auth/authorization.tsyringe.ts.tpl +2 -2
  612. package/templates/init/platform/auth/create-authenticator.jwt.ts.tpl +1 -1
  613. package/templates/init/platform/auth/create-authenticator.keycloak.ts.tpl +1 -1
  614. package/templates/init/platform/auth/create-authenticator.none.ts.tpl +2 -2
  615. package/templates/init/platform/auth/create-authorizer.abac.ts.tpl +1 -1
  616. package/templates/init/platform/auth/create-authorizer.custom.ts.tpl +2 -2
  617. package/templates/init/platform/auth/create-authorizer.rbac.ts.tpl +1 -1
  618. package/templates/init/platform/auth/create-authorizer.rebac.ts.tpl +3 -3
  619. package/templates/init/platform/auth/create-tuple-store.contract.spec.ts.tpl +1 -1
  620. package/templates/init/platform/auth/custom-authorizer.contract.spec.ts.tpl +1 -1
  621. package/templates/init/platform/auth/http-boundary.ts.tpl +1 -1
  622. package/templates/init/platform/auth/permission-mapping.ts.tpl +1 -1
  623. package/templates/init/platform/auth/permissions.ts.tpl +1 -1
  624. package/templates/init/platform/auth/principal-of.none.ts.tpl +1 -1
  625. package/templates/init/platform/auth/relate-system-actors.ts.tpl +1 -1
  626. package/templates/init/platform/auth/relation-tuples.ts.tpl +2 -2
  627. package/templates/init/platform/auth/security-schemes.none.ts.tpl +1 -1
  628. package/templates/init/platform/buses/create-command-bus.ts.tpl +2 -2
  629. package/templates/init/platform/buses/create-query-bus.ts.tpl +1 -1
  630. package/templates/init/platform/compose-application.manual.ts.tpl +6 -6
  631. package/templates/init/platform/compose-application.tsyringe.ts.tpl +10 -16
  632. package/templates/init/platform/config/app-config.ts.tpl +2 -2
  633. package/templates/init/platform/config/load-config.ts.tpl +3 -3
  634. package/templates/init/platform/create-platform.manual.ts.tpl +16 -16
  635. package/templates/init/platform/database/create-client.prisma.ts.tpl +1 -1
  636. package/templates/init/platform/database/create-data-source.typeorm.ts.tpl +1 -1
  637. package/templates/init/platform/database/data-source.typeorm.ts.tpl +1 -1
  638. package/templates/init/platform/database/database.drizzle.ts.tpl +1 -1
  639. package/templates/init/platform/database/database.prisma.ts.tpl +2 -2
  640. package/templates/init/platform/database/inert-persistence.memory.ts.tpl +2 -2
  641. package/templates/init/platform/database/inert-persistence.pooled.ts.tpl +2 -2
  642. package/templates/init/platform/database/inert-persistence.prisma.ts.tpl +3 -3
  643. package/templates/init/platform/database/inert-persistence.typeorm.ts.tpl +3 -3
  644. package/templates/init/platform/database/journal.drizzle.json +5 -0
  645. package/templates/init/platform/database/open-persistence.contract.spec.ts.tpl +1 -1
  646. package/templates/init/platform/database/open-persistence.memory.ts.tpl +1 -1
  647. package/templates/init/platform/database/open-persistence.pooled.ts.tpl +3 -3
  648. package/templates/init/platform/database/open-persistence.prisma.ts.tpl +3 -3
  649. package/templates/init/platform/database/open-persistence.typeorm.ts.tpl +3 -3
  650. package/templates/init/platform/database/open-test-database.drizzle.ts.tpl +4 -4
  651. package/templates/init/platform/database/open-test-database.knex.ts.tpl +5 -5
  652. package/templates/init/platform/database/open-test-database.prisma.ts.tpl +4 -4
  653. package/templates/init/platform/database/open-test-database.typeorm.ts.tpl +3 -3
  654. package/templates/init/platform/database/persistence-over.drizzle.ts.tpl +2 -2
  655. package/templates/init/platform/database/persistence-over.knex.ts.tpl +2 -2
  656. package/templates/init/platform/database/persistence-over.prisma.ts.tpl +2 -2
  657. package/templates/init/platform/database/persistence-over.typeorm.ts.tpl +2 -2
  658. package/templates/init/platform/database/persistence.orm.ts.tpl +1 -1
  659. package/templates/init/platform/errors.ts.tpl +1 -1
  660. package/templates/init/platform/events/create-event-provider.custom.ts.tpl +2 -2
  661. package/templates/init/platform/events/create-event-provider.kafka.ts.tpl +3 -3
  662. package/templates/init/platform/events/create-event-provider.nats.ts.tpl +2 -2
  663. package/templates/init/platform/events/create-event-provider.rabbitmq.ts.tpl +2 -2
  664. package/templates/init/platform/events/create-event-provider.redis.ts.tpl +2 -2
  665. package/templates/init/platform/events/custom-event-bus.contract.spec.ts.tpl +1 -1
  666. package/templates/init/platform/events/in-process-events.ts.tpl +1 -1
  667. package/templates/init/platform/events/start-outbox-relay.ts.tpl +1 -1
  668. package/templates/init/platform/http/create-app-module.ts.tpl +1 -1
  669. package/templates/init/platform/http/start-http-server.express.ts.tpl +4 -4
  670. package/templates/init/platform/http/start-http-server.fastify.ts.tpl +4 -4
  671. package/templates/init/platform/http/start-http-server.nest.ts.tpl +5 -5
  672. package/templates/init/platform/http/with-documentation.ts.tpl +2 -2
  673. package/templates/init/platform/lay-foundations.tsyringe.ts.tpl +5 -5
  674. package/templates/init/platform/platform-test.module.tsyringe.ts.tpl +1 -1
  675. package/templates/init/platform/platform.manual.ts.tpl +3 -3
  676. package/templates/init/platform/platform.module.tsyringe.ts.tpl +8 -8
  677. package/templates/init/platform/resilience/adapter-aspects.ts.tpl +2 -2
  678. package/templates/init/platform/resilience/default-resilience.ts.tpl +1 -1
  679. package/templates/init/platform/resilience/own-policy.ts.tpl +1 -1
  680. package/templates/init/platform/tracing.ts.tpl +2 -2
  681. package/templates/init/pnpm-workspace.yaml +8 -0
  682. package/templates/init/rules/application.md.tpl +8 -2
  683. package/templates/init/rules/infrastructure.md.tpl +3 -3
  684. package/templates/init/scripts/events.ts.tpl +1 -1
  685. package/templates/init/scripts/openapi.ts.tpl +6 -6
  686. package/templates/integration-event/audited.tpl +1 -1
  687. package/templates/integration-event/integration-event.class-validator.ts.tpl +1 -1
  688. package/templates/integration-event/integration-event.custom.ts.tpl +1 -1
  689. package/templates/integration-event/publisher.declared.ts.tpl +4 -4
  690. package/templates/integration-event/publisher.spec.ts.tpl +2 -2
  691. package/templates/integration-event/publisher.ts.tpl +2 -2
  692. package/templates/integration-event/wiring.manual.tpl +2 -2
  693. package/templates/integration-event/wiring.tsyringe.tpl +2 -2
  694. package/templates/integration-handler/integration-handler.declared.ts.tpl +3 -3
  695. package/templates/integration-handler/integration-handler.spec.ts.tpl +2 -2
  696. package/templates/integration-handler/integration-handler.ts.tpl +1 -1
  697. package/templates/integration-handler/wiring.manual.tpl +3 -3
  698. package/templates/integration-handler/wiring.tsyringe.tpl +2 -2
  699. package/templates/job/job.declared.ts.tpl +3 -3
  700. package/templates/job/job.spec.buses.ts.tpl +2 -2
  701. package/templates/job/job.spec.tsyringe.ts.tpl +2 -2
  702. package/templates/job/job.ts.tpl +1 -1
  703. package/templates/job/wiring.manual.tpl +1 -1
  704. package/templates/job/wiring.tsyringe.tpl +1 -1
  705. package/templates/pipeline/biome.json.tpl +2 -1
  706. package/templates/pipeline/github/actions/setup/action.yml.tpl +37 -0
  707. package/templates/pipeline/github/scripts/start-postgres.sh +47 -0
  708. package/templates/pipeline/github/workflows/ci.yml +68 -110
  709. package/templates/pipeline/github/workflows/pr-title.yml +1 -5
  710. package/templates/pipeline/gitlab/{gitlab-ci.yml → gitlab-ci.yml.tpl} +59 -31
  711. package/templates/pipeline/knip.json.tpl +9 -10
  712. package/templates/pipeline/package-scripts.json +1 -1
  713. package/templates/pipeline/vitest.config.ts.tpl +7 -3
  714. package/templates/policy/policy.declared.ts.tpl +1 -1
  715. package/templates/policy/policy.spec.declared.ts.tpl +1 -1
  716. package/templates/policy/policy.spec.ts.tpl +1 -1
  717. package/templates/policy/policy.ts.tpl +1 -1
  718. package/templates/policy/registration.tpl +1 -1
  719. package/templates/port/fake.ts.tpl +1 -1
  720. package/templates/projection/projection.spec.ts.tpl +17 -0
  721. package/templates/projection/projection.ts.tpl +11 -0
  722. package/templates/query/handler.declared.ts.tpl +4 -4
  723. package/templates/query/handler.spec.buses.ts.tpl +5 -5
  724. package/templates/query/handler.spec.tsyringe.ts.tpl +6 -6
  725. package/templates/query/handler.ts.tpl +3 -3
  726. package/templates/query/query.ts.tpl +1 -1
  727. package/templates/query/reader.fake.ts.tpl +2 -2
  728. package/templates/query/reader.in-memory.ts.tpl +4 -4
  729. package/templates/query/reader.port.ts.tpl +2 -2
  730. package/templates/query/search.handler.declared.ts.tpl +6 -6
  731. package/templates/query/search.handler.spec.buses.ts.tpl +5 -5
  732. package/templates/query/search.handler.spec.tsyringe.ts.tpl +6 -6
  733. package/templates/query/search.handler.ts.tpl +4 -4
  734. package/templates/query/search.query.ts.tpl +1 -1
  735. package/templates/query/search.reader.fake.ts.tpl +2 -2
  736. package/templates/query/search.reader.in-memory.ts.tpl +3 -3
  737. package/templates/query/search.reader.port.ts.tpl +1 -1
  738. package/templates/query/search.reader.spec.ts.tpl +2 -2
  739. package/templates/query/search.wiring.manual.tpl +3 -3
  740. package/templates/query/search.wiring.tsyringe.tpl +4 -4
  741. package/templates/query/wiring.manual.tpl +3 -3
  742. package/templates/query/wiring.tsyringe.tpl +4 -4
  743. package/templates/repository/contract.spec.ts.tpl +5 -5
  744. package/templates/repository/drizzle/mapper.ts.tpl +2 -2
  745. package/templates/repository/drizzle/repository.ts.tpl +9 -17
  746. package/templates/repository/drizzle/schema-export.tpl +1 -1
  747. package/templates/repository/fake.ts.tpl +2 -2
  748. package/templates/repository/knex/mapper.ts.tpl +2 -2
  749. package/templates/repository/knex/repository.ts.tpl +10 -30
  750. package/templates/repository/knex/schema-export.tpl +1 -1
  751. package/templates/repository/knex/tables.ts.tpl +1 -1
  752. package/templates/repository/none/repository.ts.tpl +3 -3
  753. package/templates/repository/prisma/mapper.ts.tpl +2 -2
  754. package/templates/repository/prisma/repository.ts.tpl +6 -9
  755. package/templates/repository/repository.ts.tpl +1 -1
  756. package/templates/repository/typeorm/mapper.ts.tpl +2 -2
  757. package/templates/repository/typeorm/repository.ts.tpl +9 -12
  758. package/templates/repository/typeorm/schema-export.tpl +1 -1
  759. package/templates/repository/typeorm/table.tpl +1 -1
  760. package/templates/repository/wiring.manual.tpl +1 -1
  761. package/templates/repository/wiring.tsyringe.tpl +2 -2
  762. package/templates/route/route.search.ts.tpl +1 -1
  763. package/templates/route/route.spec.ts.tpl +1 -1
  764. package/templates/route/routes.on-tsyringe.tpl +1 -1
  765. package/templates/route/wiring.manual.tpl +1 -1
  766. package/templates/service/main.ts.tpl +11 -11
  767. package/templates/value-object/value-object.spec.ts.tpl +1 -1
  768. package/templates/worker/main.ts.tpl +9 -9
  769. package/dist/alias/platform-alias.d.ts +0 -4
  770. package/dist/alias/platform-alias.d.ts.map +0 -1
  771. package/dist/alias/platform-alias.js +0 -7
  772. package/dist/alias/platform-alias.js.map +0 -1
@@ -1,23 +1,64 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
- import { AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, CONFIG_FILE, DEFAULT_IMPORT_ALIAS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_STACKS, LOGGERS, parseConfig, readConfig, TEST_STACKS, VALIDATION_STACKS, } from '../../config/index.js';
3
+ import { AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, CONFIG_FILE, DEFAULT_IMPORT_ALIAS, DEFAULT_IMPORT_EXTENSION, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_STACKS, IMPORT_EXTENSIONS, LOGGERS, PACKAGE_MANAGERS, parseConfig, readConfig, TEST_STACKS, VALIDATION_STACKS, } from '../../config/index.js';
4
4
  import { aliasProblem } from '../../alias/index.js';
5
+ import { DEFAULT_PACKAGE_MANAGER } from '../../package-manager/default-package-manager.js';
5
6
  import { CliError } from '../../cli-error.js';
6
7
  import { choose } from './choose.js';
8
+ import { recordedOptions } from './recorded-options.js';
7
9
  import { resolvePersistence } from './resolve-persistence.js';
8
10
  import { resolveStyle } from './resolve-style.js';
9
- /** The stack of the project: the one its config records when it is already initialised, else the one the flags ask for. */
11
+ /**
12
+ * The config of the project. Already initialised, it is the one on disk: `init` run again keeps
13
+ * it, and `init --force` changes in it the choices its flags name and nothing else, so the
14
+ * contexts, the rules and every other key a team declared survive. A new project gets the stack
15
+ * the flags ask for.
16
+ */
10
17
  export function resolveStack(root, options) {
11
- if (fs.existsSync(path.join(root, CONFIG_FILE)) && !options.force) {
12
- return supportedAlias(readConfig(root).config);
18
+ const recorded = recordedConfig(root, options.force);
19
+ if (recorded !== undefined && !options.force) {
20
+ return supportedAlias(recorded);
21
+ }
22
+ const asked = recorded === undefined ? options : { ...recordedOptions(recorded), ...options };
23
+ const fresh = parseConfig({ ...spelling(asked, recorded), stack: stackOf(asked), contexts: {}, rules: {} });
24
+ const { importAlias, importExtension } = fresh;
25
+ // No flag and nothing to ask again: the config publishes its events in a way `init` does not offer, written by hand.
26
+ const events = recorded !== undefined && asked.events === undefined ? recorded.stack.events : fresh.stack.events;
27
+ const stack = { ...fresh.stack, events };
28
+ const config = supportedAlias({ ...(recorded ?? fresh), importAlias, importExtension, stack });
29
+ return { ...config, worker: config.worker || hasWorker(root, config) };
30
+ }
31
+ /** Nothing for a new project, and for a config `--force` is about to replace because it cannot be read. */
32
+ function recordedConfig(root, force) {
33
+ if (!fs.existsSync(path.join(root, CONFIG_FILE))) {
34
+ return undefined;
35
+ }
36
+ try {
37
+ return readConfig(root).config;
38
+ }
39
+ catch (error) {
40
+ if (force) {
41
+ return undefined;
42
+ }
43
+ throw error;
13
44
  }
45
+ }
46
+ /** How the imports are written: what a flag asks, else what the project already does, else the defaults of a new project. */
47
+ function spelling(options, recorded) {
48
+ const extension = choose(IMPORT_EXTENSIONS, options.importExtension, 'import-extension');
49
+ return {
50
+ importAlias: options.importAlias ?? recorded?.importAlias ?? DEFAULT_IMPORT_ALIAS,
51
+ importExtension: extension ?? recorded?.importExtension ?? DEFAULT_IMPORT_EXTENSION,
52
+ };
53
+ }
54
+ function stackOf(options) {
14
55
  const http = choose(HTTP_STACKS, options.http, 'http') ?? 'express';
15
56
  const di = choose(DI_STACKS, options.di, 'di') ?? (http === 'nest' ? 'nest' : 'tsyringe');
16
57
  assertNestGoesWithNest(http, di);
17
58
  const docsUi = http === 'none' ? 'none' : (choose(DOCS_UIS, options.docsUi, 'docs-ui') ?? 'swagger');
18
59
  const persistence = resolvePersistence(options);
19
60
  const broker = resolveBroker(options, persistence.orm);
20
- const stack = {
61
+ return {
21
62
  http,
22
63
  di,
23
64
  ...resolveTooling(options),
@@ -28,9 +69,6 @@ export function resolveStack(root, options) {
28
69
  ...resolveOperations(options, persistence.orm),
29
70
  ...resolveStyle(options, di),
30
71
  };
31
- const alias = options.importAlias === undefined ? {} : { importAlias: options.importAlias };
32
- const config = supportedAlias(parseConfig({ ...alias, stack, contexts: {}, rules: {} }));
33
- return { ...config, worker: hasWorker(root, config) };
34
72
  }
35
73
  /** Every file `init` writes imports by the alias: one that some tool cannot resolve is refused before anything is written. */
36
74
  function supportedAlias(config) {
@@ -40,7 +78,7 @@ function supportedAlias(config) {
40
78
  }
41
79
  throw new CliError(`The import alias "${config.importAlias}" is not supported: ${problem}.`, `Use "${DEFAULT_IMPORT_ALIAS}" or "$<name>/" (--import-alias, or "importAlias" in ${CONFIG_FILE}).`);
42
80
  }
43
- /** `--force` writes the project anew: a worker that is already there keeps the jobs, so the API still starts with its jobs off. */
81
+ /** A worker that is already there keeps the jobs, so the API still starts with its jobs off, whatever the config says of it. */
44
82
  function hasWorker(root, config) {
45
83
  return fs.existsSync(path.join(root, config.sourceRoot, 'apps/worker/main.ts'));
46
84
  }
@@ -77,6 +115,7 @@ function resolveTooling(options) {
77
115
  validation: choose(VALIDATION_STACKS, options.validation, 'validation') ?? 'zod',
78
116
  tests: choose(TEST_STACKS, options.tests, 'tests') ?? 'vitest',
79
117
  ci: choose(CI_PLATFORMS, options.ci, 'ci') ?? 'github',
118
+ packageManager: choose(PACKAGE_MANAGERS, options.packageManager, 'package-manager') ?? DEFAULT_PACKAGE_MANAGER,
80
119
  };
81
120
  }
82
121
  function assertNestGoesWithNest(http, di) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-stack.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EACL,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,EACP,WAAW,EACX,UAAU,EACV,WAAW,EACX,iBAAiB,GAElB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,2HAA2H;AAC3H,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,OAAqB;IAC9D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAClE,OAAO,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,SAAS,CAAC;IACpE,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAE1F,sBAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEjC,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,SAAS,CAAC,CAAC;IACrG,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IAEvD,MAAM,KAAK,GAAG;QACZ,IAAI;QACJ,EAAE;QACF,GAAG,cAAc,CAAC,OAAO,CAAC;QAC1B,GAAG,WAAW;QACd,MAAM;QACN,GAAG,eAAe,CAAC,OAAO,CAAC;QAC3B,MAAM;QACN,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC;QAC9C,GAAG,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;KAC7B,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5F,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAEzF,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,8HAA8H;AAC9H,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,qBAAqB,MAAM,CAAC,WAAW,uBAAuB,OAAO,GAAG,EACxE,QAAQ,oBAAoB,wDAAwD,WAAW,IAAI,CACpG,CAAC;AACJ,CAAC;AAED,mIAAmI;AACnI,SAAS,SAAS,CAAC,IAAY,EAAE,MAAc;IAC7C,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,OAAqB,EACrB,GAAW;IAEX,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM;QAC7D,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM;QACnE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,QAAQ;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,OAAqB;IAC5C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,KAAK;QAC5D,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM;KAC9D,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB,EAAE,GAAW;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC;IAEzE,IAAI,MAAM,KAAK,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,YAAY,MAAM,sCAAsC,EACxD,mHAAmH,CACpH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,OAAqB;IAC3C,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,KAAK;QAChF,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,QAAQ;QAC9D,EAAE,EAAE,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,QAAQ;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY,EAAE,EAAU;IACtD,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,IAAI,QAAQ,CAChB,UAAU,IAAI,iCAAiC,EAAE,GAAG,EACpD,uIAAuI,CACxI,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"resolve-stack.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-stack.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,8 @@ import type { StackOptions } from './stack-options.js';
3
3
  * A class declares what it is wherever something reads the declarations: `@ddd-ts-kit/di`, on
4
4
  * tsyringe. Hand wiring and a NestJS container read none of them, so their contexts keep a
5
5
  * module file. A declared context is assembled from its barrel or by discovery, with or
6
- * without a broker: its subscriber is the one of its name either way.
6
+ * without a broker: its subscriber is the one of its name either way. A new declared project
7
+ * states dependencies in constructor signatures; an explicit one lists them in its module file.
7
8
  */
8
- export declare function resolveStyle(options: StackOptions, di: string): {
9
- style: string;
10
- assembly: string;
11
- };
9
+ export declare function resolveStyle(options: StackOptions, di: string): Record<'style' | 'assembly' | 'dependencies', string>;
12
10
  //# sourceMappingURL=resolve-style.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-style.d.ts","sourceRoot":"","sources":["../../../src/init/stack/resolve-style.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAoBnG"}
1
+ {"version":3,"file":"resolve-style.d.ts","sourceRoot":"","sources":["../../../src/init/stack/resolve-style.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,OAAO,GAAG,UAAU,GAAG,cAAc,EAAE,MAAM,CAAC,CAoBrH"}
@@ -1,11 +1,12 @@
1
- import { ASSEMBLIES, STYLES } from '../../config/index.js';
1
+ import { ASSEMBLIES, DEPENDENCY_STATEMENTS, STYLES } from '../../config/index.js';
2
2
  import { CliError } from '../../cli-error.js';
3
3
  import { choose } from './choose.js';
4
4
  /**
5
5
  * A class declares what it is wherever something reads the declarations: `@ddd-ts-kit/di`, on
6
6
  * tsyringe. Hand wiring and a NestJS container read none of them, so their contexts keep a
7
7
  * module file. A declared context is assembled from its barrel or by discovery, with or
8
- * without a broker: its subscriber is the one of its name either way.
8
+ * without a broker: its subscriber is the one of its name either way. A new declared project
9
+ * states dependencies in constructor signatures; an explicit one lists them in its module file.
9
10
  */
10
11
  export function resolveStyle(options, di) {
11
12
  const style = choose(STYLES, options.style, 'style') ?? (di === 'tsyringe' ? 'declared' : 'explicit');
@@ -16,6 +17,13 @@ export function resolveStyle(options, di) {
16
17
  if (assembly !== undefined && style !== 'declared') {
17
18
  throw new CliError(`--assembly ${assembly} cannot be combined with --style explicit.`, 'An explicit context is assembled by its module file: drop --assembly, or use --style declared.');
18
19
  }
19
- return { style, assembly: assembly ?? 'barrel' };
20
+ return { style, assembly: assembly ?? 'barrel', dependencies: dependenciesOf(options, style) };
21
+ }
22
+ function dependenciesOf(options, style) {
23
+ const dependencies = choose(DEPENDENCY_STATEMENTS, options.dependencies, 'dependencies');
24
+ if (dependencies !== undefined && style !== 'declared') {
25
+ throw new CliError(`--dependencies ${dependencies} cannot be combined with --style explicit.`, 'An explicit context lists what each class is given in its module file: drop --dependencies, or use --style declared.');
26
+ }
27
+ return dependencies ?? (style === 'declared' ? 'signature' : 'listed');
20
28
  }
21
29
  //# sourceMappingURL=resolve-style.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-style.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAqB,EAAE,EAAU;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAEtG,IAAI,KAAK,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,QAAQ,CAChB,iDAAiD,EAAE,GAAG,EACtD,8PAA8P,CAC/P,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAElE,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACnD,MAAM,IAAI,QAAQ,CAChB,cAAc,QAAQ,4CAA4C,EAClE,gGAAgG,CACjG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAAE,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"resolve-style.js","sourceRoot":"","sources":["../../../src/init/stack/resolve-style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAqB,EAAE,EAAU;IAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAEtG,IAAI,KAAK,KAAK,UAAU,IAAI,EAAE,KAAK,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAI,QAAQ,CAChB,iDAAiD,EAAE,GAAG,EACtD,8PAA8P,CAC/P,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAElE,IAAI,QAAQ,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACnD,MAAM,IAAI,QAAQ,CAChB,cAAc,QAAQ,4CAA4C,EAClE,gGAAgG,CACjG,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,IAAI,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;AACjG,CAAC;AAED,SAAS,cAAc,CAAC,OAAqB,EAAE,KAAa;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,qBAAqB,EAAE,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAEzF,IAAI,YAAY,KAAK,SAAS,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACvD,MAAM,IAAI,QAAQ,CAChB,kBAAkB,YAAY,4CAA4C,EAC1E,sHAAsH,CACvH,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzE,CAAC"}
@@ -18,8 +18,12 @@ export interface StackOptions {
18
18
  readonly logger?: string;
19
19
  readonly style?: string;
20
20
  readonly assembly?: string;
21
+ readonly dependencies?: string;
22
+ readonly packageManager?: string;
21
23
  /** The prefix of the source root in imports, when it is not the default. */
22
24
  readonly importAlias?: string;
25
+ /** `none` or `js`: whether an import of a file of the project ends with the extension of the emitted file. */
26
+ readonly importExtension?: string;
23
27
  /** The reason given for running an ORM without the transactional outbox. */
24
28
  readonly allowNoOutbox?: string;
25
29
  readonly force: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"stack-options.d.ts","sourceRoot":"","sources":["../../../src/init/stack/stack-options.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB"}
1
+ {"version":3,"file":"stack-options.d.ts","sourceRoot":"","sources":["../../../src/init/stack/stack-options.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,8GAA8G;IAC9G,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"template-vars.d.ts","sourceRoot":"","sources":["../../src/init/template-vars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CA0B/E"}
1
+ {"version":3,"file":"template-vars.d.ts","sourceRoot":"","sources":["../../src/init/template-vars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAIjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAM5D,6GAA6G;AAC7G,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,aAAa,CA2B/E"}
@@ -1,3 +1,4 @@
1
+ import { packageManagerVars } from '../package-manager/package-manager-vars.js';
1
2
  import { stackVars } from '../stack/stack-vars.js';
2
3
  import { WITH_DATABASE } from '../stack/with-database.js';
3
4
  import { knipVars } from './knip-vars.js';
@@ -9,6 +10,7 @@ export function templateVars(config, projectName) {
9
10
  return {
10
11
  ...stackVars(config),
11
12
  project: { name: projectName },
13
+ pm: packageManagerVars(config),
12
14
  docs: { any: docsUi !== 'none', ui: docsUi },
13
15
  knip: knipVars(config),
14
16
  ci: { github: ci === 'github' || ci === 'both', gitlab: ci === 'gitlab' || ci === 'both', any: ci !== 'none' },
@@ -1 +1 @@
1
- {"version":3,"file":"template-vars.js","sourceRoot":"","sources":["../../src/init/template-vars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAElC,6GAA6G;AAC7G,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,WAAmB;IAC9D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAErE,OAAO;QACL,GAAG,SAAS,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC9B,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;QAC5C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,EAAE;QAC9G,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;QACzD,QAAQ,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACvC,OAAO,EAAE;YACP,OAAO,EACL,QAAQ,KAAK,UAAU;gBACvB,QAAQ,KAAK,OAAO;gBACpB,KAAK,KAAK,OAAO;gBACjB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAClC,MAAM,KAAK,QAAQ;SACtB;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,QAAQ,KAAK,UAAU;YACjC,KAAK,EAAE,QAAQ,KAAK,OAAO;YAC3B,MAAM,EAAE,QAAQ,KAAK,QAAQ;YAC7B,MAAM,EAAE,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,OAAO;SACxD;KACF,CAAC;AACJ,CAAC;AAED,2GAA2G;AAC3G,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAE5C,OAAO,CACL,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3B,cAAc,CAAC,MAAM,CAAC;QACtB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9C,KAAK,KAAK,OAAO,CAClB,CAAC;AACJ,CAAC;AAED,4IAA4I;AAC5I,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAErC,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"template-vars.js","sourceRoot":"","sources":["../../src/init/template-vars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,qGAAqG;AACrG,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAElC,6GAA6G;AAC7G,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,WAAmB;IAC9D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAErE,OAAO;QACL,GAAG,SAAS,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;QAC9B,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAC9B,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;QAC5C,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;QACtB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,MAAM,EAAE;QAC9G,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE;QACzD,QAAQ,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE;QACvC,OAAO,EAAE;YACP,OAAO,EACL,QAAQ,KAAK,UAAU;gBACvB,QAAQ,KAAK,OAAO;gBACpB,KAAK,KAAK,OAAO;gBACjB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAClC,MAAM,KAAK,QAAQ;SACtB;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,QAAQ,KAAK,UAAU;YACjC,KAAK,EAAE,QAAQ,KAAK,OAAO;YAC3B,MAAM,EAAE,QAAQ,KAAK,QAAQ;YAC7B,MAAM,EAAE,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,OAAO;SACxD;KACF,CAAC;AACJ,CAAC;AAED,2GAA2G;AAC3G,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAE5C,OAAO,CACL,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC3B,cAAc,CAAC,MAAM,CAAC;QACtB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC9C,KAAK,KAAK,OAAO,CAClB,CAAC;AACJ,CAAC;AAED,4IAA4I;AAC5I,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC;AACnE,CAAC;AAED,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAErC,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,UAAU,CAAC,IAAI,IAAI,KAAK,MAAM,CAAC;AACtE,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Config } from '../config/index.js';
2
+ /**
3
+ * The validation packages of the stack, the one of the kit first. A new project validates nothing
4
+ * before its first route or integration event, unless the audit trail has its route: until then
5
+ * knip is told not to report them, since the next `generate` uses them, and the note goes with
6
+ * the first use (`stopIgnoringValidation`). Under class-validator, `reflect-metadata` waits with
7
+ * them where no container imports it.
8
+ */
9
+ export declare function validationDependencies(config: Config): string[];
10
+ //# sourceMappingURL=validation-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-dependencies.d.ts","sourceRoot":"","sources":["../../src/init/validation-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAYjD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAO/D"}
@@ -0,0 +1,23 @@
1
+ /** What each validation library brings next to the package of the kit, all peers of it: knip counts them used as soon as the package is. */
2
+ const LIBRARIES = {
3
+ zod: ['zod'],
4
+ 'class-validator': ['class-validator', 'class-transformer', 'class-validator-jsonschema'],
5
+ };
6
+ const VALIDATION_PACKAGE = '@ddd-ts-kit/validation';
7
+ /** What knip counts as used by NestJS itself, whose validation pipe loads them. */
8
+ const LOADED_BY_NEST = ['class-validator', 'class-transformer'];
9
+ /**
10
+ * The validation packages of the stack, the one of the kit first. A new project validates nothing
11
+ * before its first route or integration event, unless the audit trail has its route: until then
12
+ * knip is told not to report them, since the next `generate` uses them, and the note goes with
13
+ * the first use (`stopIgnoringValidation`). Under class-validator, `reflect-metadata` waits with
14
+ * them where no container imports it.
15
+ */
16
+ export function validationDependencies(config) {
17
+ const { validation, di, http } = config.stack;
18
+ const nest = http === 'nest';
19
+ const library = (LIBRARIES[validation] ?? []).filter((name) => !nest || !LOADED_BY_NEST.includes(name));
20
+ const metadata = validation === 'class-validator' && di !== 'tsyringe' && !nest ? ['reflect-metadata'] : [];
21
+ return [VALIDATION_PACKAGE, ...library, ...metadata];
22
+ }
23
+ //# sourceMappingURL=validation-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-dependencies.js","sourceRoot":"","sources":["../../src/init/validation-dependencies.ts"],"names":[],"mappings":"AAEA,4IAA4I;AAC5I,MAAM,SAAS,GAAgD;IAC7D,GAAG,EAAE,CAAC,KAAK,CAAC;IACZ,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,4BAA4B,CAAC;CAC1F,CAAC;AAEF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AACpD,mFAAmF;AACnF,MAAM,cAAc,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAEhE;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,KAAK,MAAM,CAAC;IAC7B,MAAM,OAAO,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACxG,MAAM,QAAQ,GAAG,UAAU,KAAK,iBAAiB,IAAI,EAAE,KAAK,UAAU,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5G,OAAO,CAAC,kBAAkB,EAAE,GAAG,OAAO,EAAE,GAAG,QAAQ,CAAC,CAAC;AACvD,CAAC"}
@@ -64,7 +64,7 @@ export function writeAgentSettings(ws) {
64
64
  ws.note(`${AGENT_SETTINGS} is not a JSON object: it was left as it is.`);
65
65
  return;
66
66
  }
67
- const merged = mergePermissions(settings);
67
+ const merged = mergePermissions(settings, (rule) => ws.spoken(rule));
68
68
  ws.update(AGENT_SETTINGS, serialize(merged.settings));
69
69
  if (merged.added.length > 0) {
70
70
  ws.note(`${AGENT_SETTINGS} gained ${merged.added.length} permission(s): ${merged.added.join(', ')}.`);
@@ -80,13 +80,14 @@ function parse(text) {
80
80
  return undefined;
81
81
  }
82
82
  }
83
- function mergePermissions(settings) {
83
+ /** A rule is compared as the project says it: its settings name the package manager it runs, not npm. */
84
+ function mergePermissions(settings, spoken) {
84
85
  const current = isRecord(settings['permissions']) ? settings['permissions'] : {};
85
86
  const added = [];
86
87
  const permissions = { ...current };
87
88
  for (const [kind, wanted] of Object.entries(PERMISSIONS)) {
88
89
  const present = Array.isArray(current[kind]) ? current[kind] : [];
89
- const missing = wanted.filter((rule) => !present.includes(rule));
90
+ const missing = wanted.map(spoken).filter((rule) => !present.includes(rule));
90
91
  permissions[kind] = [...present, ...missing];
91
92
  added.push(...missing.map((rule) => `${kind} ${rule}`));
92
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"write-agent-settings.js","sourceRoot":"","sources":["../../src/init/write-agent-settings.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAI/C;;;GAGG;AACH,MAAM,WAAW,GAAgB;IAC/B,KAAK,EAAE;QACL,8BAA8B;QAC9B,6BAA6B;QAC7B,iCAAiC;QACjC,6BAA6B;QAC7B,gCAAgC;QAChC,4BAA4B;QAC5B,sBAAsB;QACtB,yBAAyB;QACzB,sBAAsB;QACtB,kBAAkB;QAClB,0BAA0B;QAC1B,6BAA6B;QAC7B,0BAA0B;QAC1B,gCAAgC;QAChC,6BAA6B;QAC7B,+BAA+B;QAC/B,4BAA4B;KAC7B;IACD,wFAAwF;IACxF,kFAAkF;IAClF,6EAA6E;IAC7E,IAAI,EAAE;QACJ,cAAc;QACd,gBAAgB;QAChB,uBAAuB;QACvB,8BAA8B;QAC9B,wCAAwC;QACxC,2CAA2C;KAC5C;IACD,yFAAyF;IACzF,4EAA4E;IAC5E,GAAG,EAAE;QACH,kBAAkB;QAClB,qBAAqB;QACrB,gCAAgC;QAChC,2BAA2B;QAC3B,oBAAoB;QACpB,iCAAiC;QACjC,mBAAmB;QACnB,sBAAsB;QACtB,wBAAwB;QACxB,8BAA8B;QAC9B,+BAA+B;KAChC;CACF,CAAC;AAEF,iHAAiH;AACjH,MAAM,UAAU,kBAAkB,CAAC,EAAa;IAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAEzC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAEnE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,8CAA8C,CAAC,CAAC;QAEzE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE1C,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtD,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,mBAAmB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxG,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,QAAiB,EAAU,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAEtE,SAAS,KAAK,CAAC,IAAY;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAiC;IACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;IAE5D,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACzD,MAAM,OAAO,GAAc,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"write-agent-settings.js","sourceRoot":"","sources":["../../src/init/write-agent-settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { Config } from '../config/index.js';
2
+ import type { Workspace } from '../workspace/index.js';
3
+ /**
4
+ * The generated contracts of a project that has no route and no integration event of its own
5
+ * yet, as its scripts write them (`docs:generate`): the first commit holds them, and the check
6
+ * of the documents passes before anything is generated. A contract that is already there is
7
+ * left alone: the scripts of the project are what keeps it current from then on.
8
+ */
9
+ export declare function writeContracts(ws: Workspace, config: Config, projectName: string): void;
10
+ //# sourceMappingURL=write-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-contracts.d.ts","sourceRoot":"","sources":["../../src/init/write-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAiBvF"}
@@ -0,0 +1,33 @@
1
+ import { stackVars } from '../stack/stack-vars.js';
2
+ import { readTemplate, renderTemplate } from '../templating/index.js';
3
+ import { isRecord } from './is-record.js';
4
+ const INTEGRATION = 'docs/integration';
5
+ /**
6
+ * The generated contracts of a project that has no route and no integration event of its own
7
+ * yet, as its scripts write them (`docs:generate`): the first commit holds them, and the check
8
+ * of the documents passes before anything is generated. A contract that is already there is
9
+ * left alone: the scripts of the project are what keeps it current from then on.
10
+ */
11
+ export function writeContracts(ws, config, projectName) {
12
+ const context = { ...stackVars(config), document: documentVars(ws, projectName) };
13
+ const contracts = [
14
+ [`${INTEGRATION}/asyncapi.json`, renderTemplate('docs/asyncapi.json.tpl', context)],
15
+ [`${INTEGRATION}/event-catalog.md`, readTemplate('docs/event-catalog.md')],
16
+ ];
17
+ if (config.stack.http !== 'none') {
18
+ contracts.push(['openapi/openapi.json', renderTemplate('docs/openapi.json.tpl', context)]);
19
+ }
20
+ for (const [file, content] of contracts) {
21
+ if (!ws.exists(file)) {
22
+ ws.create(file, content);
23
+ }
24
+ }
25
+ }
26
+ /** The title and the version the scripts read from package.json, with their fallbacks, as JSON texts. */
27
+ function documentVars(ws, projectName) {
28
+ const manifest = JSON.parse(ws.read('package.json') ?? '{}');
29
+ const field = (name) => (isRecord(manifest) ? manifest[name] : undefined);
30
+ const text = (value, fallback) => JSON.stringify(typeof value === 'string' ? value : fallback);
31
+ return { title: text(field('name'), projectName), version: text(field('version'), '0.0.0') };
32
+ }
33
+ //# sourceMappingURL=write-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-contracts.js","sourceRoot":"","sources":["../../src/init/write-contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAsB,MAAM,wBAAwB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAAa,EAAE,MAAc,EAAE,WAAmB;IAC/E,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC;IAElF,MAAM,SAAS,GAAkC;QAC/C,CAAC,GAAG,WAAW,gBAAgB,EAAE,cAAc,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;QACnF,CAAC,GAAG,WAAW,mBAAmB,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC;KAC3E,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjC,SAAS,CAAC,IAAI,CAAC,CAAC,sBAAsB,EAAE,cAAc,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;AACH,CAAC;AAED,yGAAyG;AACzG,SAAS,YAAY,CAAC,EAAa,EAAE,WAAmB;IACtD,MAAM,QAAQ,GAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE3F,MAAM,IAAI,GAAG,CAAC,KAAc,EAAE,QAAgB,EAAU,EAAE,CACxD,IAAI,CAAC,SAAS,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAE/D,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC;AAC/F,CAAC"}
@@ -3,7 +3,8 @@ import type { Workspace } from '../workspace/index.js';
3
3
  /**
4
4
  * `tsconfig.json` for the editor and the type check, `tsconfig.build.json` for what ships: no test,
5
5
  * no test database. `paths` declares the import alias for the compiler and for every tool that
6
- * reads tsconfig; the build config extends the other, so the two cannot disagree.
6
+ * reads tsconfig; the build config extends the other, so the two cannot disagree. How a specifier
7
+ * is resolved follows "importExtension".
7
8
  */
8
9
  export declare function writeTypeScriptConfigs(ws: Workspace, config: Config): void;
9
10
  //# sourceMappingURL=write-type-script-configs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"write-type-script-configs.d.ts","sourceRoot":"","sources":["../../src/init/write-type-script-configs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAY1E"}
1
+ {"version":3,"file":"write-type-script-configs.d.ts","sourceRoot":"","sources":["../../src/init/write-type-script-configs.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAY1E"}
@@ -1,10 +1,11 @@
1
- import { aliasRoots, compilerPaths, DEFAULT_BUILD_LAYOUT } from '../alias/index.js';
1
+ import { aliasRoots, compilerPaths, compilerResolutionOf, DEFAULT_BUILD_LAYOUT } from '../alias/index.js';
2
2
  import { usesLegacyDecorators } from '../stack/uses-legacy-decorators.js';
3
3
  import { formatJson } from '../json/format-json.js';
4
4
  /**
5
5
  * `tsconfig.json` for the editor and the type check, `tsconfig.build.json` for what ships: no test,
6
6
  * no test database. `paths` declares the import alias for the compiler and for every tool that
7
- * reads tsconfig; the build config extends the other, so the two cannot disagree.
7
+ * reads tsconfig; the build config extends the other, so the two cannot disagree. How a specifier
8
+ * is resolved follows "importExtension".
8
9
  */
9
10
  export function writeTypeScriptConfigs(ws, config) {
10
11
  const include = [config.sourceRoot, 'scripts', 'test', ...(config.stack.orm === 'prisma' ? ['generated'] : [])];
@@ -18,8 +19,7 @@ function compilerOptions(config) {
18
19
  return {
19
20
  target: 'ES2023',
20
21
  lib: ['ES2023'],
21
- module: 'NodeNext',
22
- moduleResolution: 'NodeNext',
22
+ ...compilerResolutionOf(config.importExtension),
23
23
  strict: true,
24
24
  noUncheckedIndexedAccess: true,
25
25
  exactOptionalPropertyTypes: true,
@@ -1 +1 @@
1
- {"version":3,"file":"write-type-script-configs.js","sourceRoot":"","sources":["../../src/init/write-type-script-configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAa,EAAE,MAAc;IAClE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhH,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAE7F,EAAE,CAAC,MAAM,CACP,qBAAqB,EACrB,SAAS,CAAC;QACR,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,CAAC;KAC5E,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAAC,QAAQ,CAAC;QACf,MAAM,EAAE,UAAU;QAClB,gBAAgB,EAAE,UAAU;QAC5B,MAAM,EAAE,IAAI;QACZ,wBAAwB,EAAE,IAAI;QAC9B,0BAA0B,EAAE,IAAI;QAChC,kBAAkB,EAAE,IAAI;QACxB,oBAAoB,EAAE,IAAI;QAC1B,YAAY,EAAE,IAAI;QAClB,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,KAAK,EAAE,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,MAAM,EAAE,oBAAoB,CAAC,MAAM;QACnC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"write-type-script-configs.js","sourceRoot":"","sources":["../../src/init/write-type-script-configs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,EAAa,EAAE,MAAc;IAClE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhH,EAAE,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAE7F,EAAE,CAAC,MAAM,CACP,qBAAqB,EACrB,SAAS,CAAC;QACR,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,CAAC;KAC5E,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,CAAC,QAAQ,CAAC;QACf,GAAG,oBAAoB,CAAC,MAAM,CAAC,eAAe,CAAC;QAC/C,MAAM,EAAE,IAAI;QACZ,wBAAwB,EAAE,IAAI;QAC9B,0BAA0B,EAAE,IAAI;QAChC,kBAAkB,EAAE,IAAI;QACxB,oBAAoB,EAAE,IAAI;QAC1B,YAAY,EAAE,IAAI;QAClB,GAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,KAAK,EAAE,CAAC,MAAM,CAAC;QACf,OAAO,EAAE,oBAAoB,CAAC,OAAO;QACrC,MAAM,EAAE,oBAAoB,CAAC,MAAM;QACnC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Stack } from '../config/index.js';
2
+ /**
3
+ * What `init` chooses when `--package-manager` is left out: the fastest of the three on a
4
+ * pipeline, measured on the default stack and on a heavy one (docs/tools/pipeline-performance.md),
5
+ * among those the end-to-end suite of the CLI proves on a real install.
6
+ */
7
+ export declare const DEFAULT_PACKAGE_MANAGER: Stack['packageManager'];
8
+ //# sourceMappingURL=default-package-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-package-manager.d.ts","sourceRoot":"","sources":["../../src/package-manager/default-package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,gBAAgB,CAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * What `init` chooses when `--package-manager` is left out: the fastest of the three on a
3
+ * pipeline, measured on the default stack and on a heavy one (docs/tools/pipeline-performance.md),
4
+ * among those the end-to-end suite of the CLI proves on a real install.
5
+ */
6
+ export const DEFAULT_PACKAGE_MANAGER = 'pnpm';
7
+ //# sourceMappingURL=default-package-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-package-manager.js","sourceRoot":"","sources":["../../src/package-manager/default-package-manager.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAA4B,MAAM,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** How one package manager writes what the templates write for npm: an ordered list of [what npm says, what it says]. */
2
+ export type Dialect = readonly (readonly [RegExp, string])[];
3
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../src/package-manager/dialect.ts"],"names":[],"mappings":"AAAA,yHAAyH;AACzH,MAAM,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../src/package-manager/dialect.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import type { Stack } from '../config/index.js';
2
+ import type { Dialect } from './dialect.js';
3
+ /** The templates are written for npm: it has nothing to translate. */
4
+ export declare const DIALECTS: Readonly<Record<Stack['packageManager'], Dialect>>;
5
+ //# sourceMappingURL=dialects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialects.d.ts","sourceRoot":"","sources":["../../src/package-manager/dialects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAuB5C,sEAAsE;AACtE,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAA2B,CAAC"}
@@ -0,0 +1,21 @@
1
+ /** `npm` and `npx` as words of their own: `pnpm run` is not `npm run`. */
2
+ const NPM = String.raw `(?<![\w@/.-])npm`;
3
+ const NPX = String.raw `(?<![\w@/.-])npx`;
4
+ const SCRIPT = String.raw `([\w:.-]+)`;
5
+ const said = (pattern) => new RegExp(pattern, 'g');
6
+ /** pnpm hands `--` over to the script as an argument: what follows the script name is already its arguments. */
7
+ const PNPM = [
8
+ [said(`${NPM} run --silent ${SCRIPT} -- `), 'pnpm --silent run $1 '],
9
+ [said(`${NPM} run --silent `), 'pnpm --silent run '],
10
+ [said(`${NPM} (run ${SCRIPT}|test) -- `), 'pnpm $1 '],
11
+ [said(`${NPM} (run|test|start)(?![\\w-])`), 'pnpm $1'],
12
+ [said(`${NPX} (?:--no -- )?`), 'pnpm exec '],
13
+ [said(`${NPM} ci --omit=dev`), 'pnpm install --frozen-lockfile --prod'],
14
+ [said(`${NPM} ci(?![\\w-])`), 'pnpm install --frozen-lockfile'],
15
+ [said(`${NPM} audit --omit=dev --audit-level=high`), 'pnpm audit --prod --audit-level high'],
16
+ [said(`${NPM} (install|publish)(?![\\w-])`), 'pnpm $1'],
17
+ [said(String.raw `package-lock\.json`), 'pnpm-lock.yaml'],
18
+ ];
19
+ /** The templates are written for npm: it has nothing to translate. */
20
+ export const DIALECTS = { npm: [], pnpm: PNPM };
21
+ //# sourceMappingURL=dialects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialects.js","sourceRoot":"","sources":["../../src/package-manager/dialects.ts"],"names":[],"mappings":"AAGA,0EAA0E;AAC1E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA,kBAAkB,CAAC;AACzC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA,kBAAkB,CAAC;AACzC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAA,YAAY,CAAC;AAEtC,MAAM,IAAI,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAEnE,gHAAgH;AAChH,MAAM,IAAI,GAAY;IACpB,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,MAAM,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACpE,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACpD,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,MAAM,YAAY,CAAC,EAAE,UAAU,CAAC;IACrD,CAAC,IAAI,CAAC,GAAG,GAAG,6BAA6B,CAAC,EAAE,SAAS,CAAC;IACtD,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,YAAY,CAAC;IAC5C,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,EAAE,uCAAuC,CAAC;IACvE,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,EAAE,gCAAgC,CAAC;IAC/D,CAAC,IAAI,CAAC,GAAG,GAAG,sCAAsC,CAAC,EAAE,sCAAsC,CAAC;IAC5F,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,CAAC,EAAE,SAAS,CAAC;IACvD,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAA,oBAAoB,CAAC,EAAE,gBAAgB,CAAC;CACzD,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,QAAQ,GAAuD,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Stack } from '../config/index.js';
2
+ /**
3
+ * A text written for npm, as the package manager of the project says it: the commands of a
4
+ * script, of a pipeline, of a hook, of a Dockerfile and of the guidance. Translating twice
5
+ * changes nothing, and npm is left as it is.
6
+ */
7
+ export declare function inDialect(text: string, manager: Stack['packageManager']): string;
8
+ //# sourceMappingURL=in-dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-dialect.d.ts","sourceRoot":"","sources":["../../src/package-manager/in-dialect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAGhD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAEhF"}
@@ -0,0 +1,10 @@
1
+ import { DIALECTS } from './dialects.js';
2
+ /**
3
+ * A text written for npm, as the package manager of the project says it: the commands of a
4
+ * script, of a pipeline, of a hook, of a Dockerfile and of the guidance. Translating twice
5
+ * changes nothing, and npm is left as it is.
6
+ */
7
+ export function inDialect(text, manager) {
8
+ return DIALECTS[manager].reduce((translated, [npm, own]) => translated.replace(npm, own), text);
9
+ }
10
+ //# sourceMappingURL=in-dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-dialect.js","sourceRoot":"","sources":["../../src/package-manager/in-dialect.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAgC;IACtE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAClG,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Stack } from '../config/index.js';
2
+ /** The lockfile each package manager writes: what a cache of the installed dependencies is keyed on. */
3
+ export declare const LOCKFILES: Readonly<Record<Stack['packageManager'], string>>;
4
+ //# sourceMappingURL=lockfiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfiles.d.ts","sourceRoot":"","sources":["../../src/package-manager/lockfiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,wGAAwG;AACxG,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAGvE,CAAC"}
@@ -0,0 +1,6 @@
1
+ /** The lockfile each package manager writes: what a cache of the installed dependencies is keyed on. */
2
+ export const LOCKFILES = {
3
+ npm: 'package-lock.json',
4
+ pnpm: 'pnpm-lock.yaml',
5
+ };
6
+ //# sourceMappingURL=lockfiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfiles.js","sourceRoot":"","sources":["../../src/package-manager/lockfiles.ts"],"names":[],"mappings":"AAEA,wGAAwG;AACxG,MAAM,CAAC,MAAM,SAAS,GAAsD;IAC1E,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,gBAAgB;CACvB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type Stack } from '../config/index.js';
2
+ /** The package manager a config file names, read from its text alone; npm when it names none or cannot be read. */
3
+ export declare function packageManagerOf(configText: string | undefined): Stack['packageManager'];
4
+ //# sourceMappingURL=package-manager-of.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-manager-of.d.ts","sourceRoot":"","sources":["../../src/package-manager/package-manager-of.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3E,mHAAmH;AACnH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAUxF"}