ddd-ts-kit 0.16.1 → 0.18.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 (329) hide show
  1. package/README.fr.md +14 -15
  2. package/README.md +13 -13
  3. package/dist/affected/reach-of.js +1 -1
  4. package/dist/affected/reach-of.js.map +1 -1
  5. package/dist/check/business-names/closing-parenthesis.d.ts +3 -0
  6. package/dist/check/business-names/closing-parenthesis.d.ts.map +1 -0
  7. package/dist/check/business-names/closing-parenthesis.js +16 -0
  8. package/dist/check/business-names/closing-parenthesis.js.map +1 -0
  9. package/dist/check/business-names/declared-bindings.d.ts +4 -0
  10. package/dist/check/business-names/declared-bindings.d.ts.map +1 -0
  11. package/dist/check/business-names/declared-bindings.js +41 -0
  12. package/dist/check/business-names/declared-bindings.js.map +1 -0
  13. package/dist/check/business-names/generic-words-of.d.ts +4 -0
  14. package/dist/check/business-names/generic-words-of.d.ts.map +1 -0
  15. package/dist/check/business-names/generic-words-of.js +7 -0
  16. package/dist/check/business-names/generic-words-of.js.map +1 -0
  17. package/dist/check/business-names/generic-words.d.ts +7 -0
  18. package/dist/check/business-names/generic-words.d.ts.map +1 -0
  19. package/dist/check/business-names/generic-words.js +26 -0
  20. package/dist/check/business-names/generic-words.js.map +1 -0
  21. package/dist/check/business-names/identifier-at.d.ts +3 -0
  22. package/dist/check/business-names/identifier-at.d.ts.map +1 -0
  23. package/dist/check/business-names/identifier-at.js +6 -0
  24. package/dist/check/business-names/identifier-at.js.map +1 -0
  25. package/dist/check/business-names/judges-names.d.ts +7 -0
  26. package/dist/check/business-names/judges-names.d.ts.map +1 -0
  27. package/dist/check/business-names/judges-names.js +14 -0
  28. package/dist/check/business-names/judges-names.js.map +1 -0
  29. package/dist/check/business-names/named-binding.d.ts +12 -0
  30. package/dist/check/business-names/named-binding.d.ts.map +1 -0
  31. package/dist/check/business-names/named-binding.js +2 -0
  32. package/dist/check/business-names/named-binding.js.map +1 -0
  33. package/dist/check/business-names/named-bindings.d.ts +4 -0
  34. package/dist/check/business-names/named-bindings.d.ts.map +1 -0
  35. package/dist/check/business-names/named-bindings.js +8 -0
  36. package/dist/check/business-names/named-bindings.js.map +1 -0
  37. package/dist/check/business-names/opening-bracket.d.ts +3 -0
  38. package/dist/check/business-names/opening-bracket.d.ts.map +1 -0
  39. package/dist/check/business-names/opening-bracket.js +16 -0
  40. package/dist/check/business-names/opening-bracket.js.map +1 -0
  41. package/dist/check/business-names/parameter-bindings.d.ts +4 -0
  42. package/dist/check/business-names/parameter-bindings.d.ts.map +1 -0
  43. package/dist/check/business-names/parameter-bindings.js +28 -0
  44. package/dist/check/business-names/parameter-bindings.js.map +1 -0
  45. package/dist/check/business-names/parameter-lists.d.ts +14 -0
  46. package/dist/check/business-names/parameter-lists.d.ts.map +1 -0
  47. package/dist/check/business-names/parameter-lists.js +109 -0
  48. package/dist/check/business-names/parameter-lists.js.map +1 -0
  49. package/dist/check/business-names/pattern-bindings.d.ts +7 -0
  50. package/dist/check/business-names/pattern-bindings.d.ts.map +1 -0
  51. package/dist/check/business-names/pattern-bindings.js +31 -0
  52. package/dist/check/business-names/pattern-bindings.js.map +1 -0
  53. package/dist/check/business-names/property-bindings.d.ts +7 -0
  54. package/dist/check/business-names/property-bindings.d.ts.map +1 -0
  55. package/dist/check/business-names/property-bindings.js +31 -0
  56. package/dist/check/business-names/property-bindings.js.map +1 -0
  57. package/dist/check/business-names/suggested-name.d.ts +8 -0
  58. package/dist/check/business-names/suggested-name.d.ts.map +1 -0
  59. package/dist/check/business-names/suggested-name.js +28 -0
  60. package/dist/check/business-names/suggested-name.js.map +1 -0
  61. package/dist/check/business-names/top-level-separator.d.ts +3 -0
  62. package/dist/check/business-names/top-level-separator.d.ts.map +1 -0
  63. package/dist/check/business-names/top-level-separator.js +23 -0
  64. package/dist/check/business-names/top-level-separator.js.map +1 -0
  65. package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
  66. package/dist/check/catalogue/architecture-rules.js +4 -0
  67. package/dist/check/catalogue/architecture-rules.js.map +1 -1
  68. package/dist/check/declarations/declared-event-handlers.d.ts +4 -9
  69. package/dist/check/declarations/declared-event-handlers.d.ts.map +1 -1
  70. package/dist/check/declarations/declared-event-handlers.js +5 -5
  71. package/dist/check/declarations/declared-event-handlers.js.map +1 -1
  72. package/dist/check/declarations/option-of.d.ts +0 -2
  73. package/dist/check/declarations/option-of.d.ts.map +1 -1
  74. package/dist/check/declarations/option-of.js +1 -7
  75. package/dist/check/declarations/option-of.js.map +1 -1
  76. package/dist/check/explain/authz-docs.d.ts.map +1 -1
  77. package/dist/check/explain/authz-docs.js +14 -1
  78. package/dist/check/explain/authz-docs.js.map +1 -1
  79. package/dist/check/explain/events-docs.d.ts.map +1 -1
  80. package/dist/check/explain/events-docs.js +31 -11
  81. package/dist/check/explain/events-docs.js.map +1 -1
  82. package/dist/check/explain/ports-docs.d.ts.map +1 -1
  83. package/dist/check/explain/ports-docs.js +11 -9
  84. package/dist/check/explain/ports-docs.js.map +1 -1
  85. package/dist/check/explain/scheduling-docs.d.ts.map +1 -1
  86. package/dist/check/explain/scheduling-docs.js +10 -5
  87. package/dist/check/explain/scheduling-docs.js.map +1 -1
  88. package/dist/check/explain/tree-docs.d.ts.map +1 -1
  89. package/dist/check/explain/tree-docs.js +11 -0
  90. package/dist/check/explain/tree-docs.js.map +1 -1
  91. package/dist/check/explain/wiring-docs.js +4 -4
  92. package/dist/check/explain/wiring-docs.js.map +1 -1
  93. package/dist/check/fixtures/authz-policy-fixtures.d.ts +3 -0
  94. package/dist/check/fixtures/authz-policy-fixtures.d.ts.map +1 -0
  95. package/dist/check/fixtures/authz-policy-fixtures.js +97 -0
  96. package/dist/check/fixtures/authz-policy-fixtures.js.map +1 -0
  97. package/dist/check/fixtures/business-name-fixtures.d.ts +3 -0
  98. package/dist/check/fixtures/business-name-fixtures.d.ts.map +1 -0
  99. package/dist/check/fixtures/business-name-fixtures.js +98 -0
  100. package/dist/check/fixtures/business-name-fixtures.js.map +1 -0
  101. package/dist/check/fixtures/declarations-fixtures.d.ts.map +1 -1
  102. package/dist/check/fixtures/declarations-fixtures.js +2 -42
  103. package/dist/check/fixtures/declarations-fixtures.js.map +1 -1
  104. package/dist/check/fixtures/declared.d.ts.map +1 -1
  105. package/dist/check/fixtures/declared.js +3 -3
  106. package/dist/check/fixtures/declared.js.map +1 -1
  107. package/dist/check/fixtures/domain-events-fixtures.js +1 -1
  108. package/dist/check/fixtures/domain-events-fixtures.js.map +1 -1
  109. package/dist/check/fixtures/fixtures.d.ts.map +1 -1
  110. package/dist/check/fixtures/fixtures.js +4 -0
  111. package/dist/check/fixtures/fixtures.js.map +1 -1
  112. package/dist/check/rules/authz-policy-asked.d.ts +3 -0
  113. package/dist/check/rules/authz-policy-asked.d.ts.map +1 -0
  114. package/dist/check/rules/authz-policy-asked.js +184 -0
  115. package/dist/check/rules/authz-policy-asked.js.map +1 -0
  116. package/dist/check/rules/declarations-role-declared.d.ts.map +1 -1
  117. package/dist/check/rules/declarations-role-declared.js +4 -35
  118. package/dist/check/rules/declarations-role-declared.js.map +1 -1
  119. package/dist/check/rules/events-consumer-idempotent.js +3 -3
  120. package/dist/check/rules/events-consumer-idempotent.js.map +1 -1
  121. package/dist/check/rules/naming-business-name.d.ts +3 -0
  122. package/dist/check/rules/naming-business-name.d.ts.map +1 -0
  123. package/dist/check/rules/naming-business-name.js +41 -0
  124. package/dist/check/rules/naming-business-name.js.map +1 -0
  125. package/dist/config/config.d.ts +8 -0
  126. package/dist/config/config.d.ts.map +1 -1
  127. package/dist/config/parse-business-names.d.ts +4 -0
  128. package/dist/config/parse-business-names.d.ts.map +1 -0
  129. package/dist/config/parse-business-names.js +14 -0
  130. package/dist/config/parse-business-names.js.map +1 -0
  131. package/dist/config/parse-config.d.ts.map +1 -1
  132. package/dist/config/parse-config.js +2 -0
  133. package/dist/config/parse-config.js.map +1 -1
  134. package/dist/config/serialize-config.js +9 -1
  135. package/dist/config/serialize-config.js.map +1 -1
  136. package/dist/generate/emit.d.ts.map +1 -1
  137. package/dist/generate/emit.js +2 -14
  138. package/dist/generate/emit.js.map +1 -1
  139. package/dist/generate/kinds/ask-policy-in-generated-use-case.d.ts +9 -0
  140. package/dist/generate/kinds/ask-policy-in-generated-use-case.d.ts.map +1 -0
  141. package/dist/generate/kinds/ask-policy-in-generated-use-case.js +102 -0
  142. package/dist/generate/kinds/ask-policy-in-generated-use-case.js.map +1 -0
  143. package/dist/generate/kinds/assert-declares-its-name.d.ts +9 -0
  144. package/dist/generate/kinds/assert-declares-its-name.d.ts.map +1 -0
  145. package/dist/generate/kinds/assert-declares-its-name.js +16 -0
  146. package/dist/generate/kinds/assert-declares-its-name.js.map +1 -0
  147. package/dist/generate/kinds/command-context.d.ts +12 -0
  148. package/dist/generate/kinds/command-context.d.ts.map +1 -0
  149. package/dist/generate/kinds/command-context.js +18 -0
  150. package/dist/generate/kinds/command-context.js.map +1 -0
  151. package/dist/generate/kinds/command-kind.d.ts.map +1 -1
  152. package/dist/generate/kinds/command-kind.js +7 -24
  153. package/dist/generate/kinds/command-kind.js.map +1 -1
  154. package/dist/generate/kinds/command-outputs.d.ts +6 -0
  155. package/dist/generate/kinds/command-outputs.d.ts.map +1 -0
  156. package/dist/generate/kinds/command-outputs.js +13 -0
  157. package/dist/generate/kinds/command-outputs.js.map +1 -0
  158. package/dist/generate/kinds/declares-its-name.d.ts +5 -0
  159. package/dist/generate/kinds/declares-its-name.d.ts.map +1 -0
  160. package/dist/generate/kinds/declares-its-name.js +7 -0
  161. package/dist/generate/kinds/declares-its-name.js.map +1 -0
  162. package/dist/generate/kinds/event-file-of.d.ts +5 -0
  163. package/dist/generate/kinds/event-file-of.d.ts.map +1 -0
  164. package/dist/generate/kinds/event-file-of.js +5 -0
  165. package/dist/generate/kinds/event-file-of.js.map +1 -0
  166. package/dist/generate/kinds/event-handler-kind.d.ts.map +1 -1
  167. package/dist/generate/kinds/event-handler-kind.js +2 -0
  168. package/dist/generate/kinds/event-handler-kind.js.map +1 -1
  169. package/dist/generate/kinds/event-name-reference.d.ts +4 -3
  170. package/dist/generate/kinds/event-name-reference.d.ts.map +1 -1
  171. package/dist/generate/kinds/event-name-reference.js +6 -6
  172. package/dist/generate/kinds/event-name-reference.js.map +1 -1
  173. package/dist/generate/kinds/integration-event-kind.d.ts.map +1 -1
  174. package/dist/generate/kinds/integration-event-kind.js +2 -0
  175. package/dist/generate/kinds/integration-event-kind.js.map +1 -1
  176. package/dist/generate/kinds/policy-kind.d.ts.map +1 -1
  177. package/dist/generate/kinds/policy-kind.js +2 -0
  178. package/dist/generate/kinds/policy-kind.js.map +1 -1
  179. package/dist/generate/kinds/query-context.d.ts +9 -0
  180. package/dist/generate/kinds/query-context.d.ts.map +1 -0
  181. package/dist/generate/kinds/query-context.js +27 -0
  182. package/dist/generate/kinds/query-context.js.map +1 -0
  183. package/dist/generate/kinds/query-kind.d.ts.map +1 -1
  184. package/dist/generate/kinds/query-kind.js +16 -51
  185. package/dist/generate/kinds/query-kind.js.map +1 -1
  186. package/dist/generate/kinds/query-outputs.d.ts +8 -0
  187. package/dist/generate/kinds/query-outputs.d.ts.map +1 -0
  188. package/dist/generate/kinds/query-outputs.js +20 -0
  189. package/dist/generate/kinds/query-outputs.js.map +1 -0
  190. package/dist/generate/kinds/reader-file.d.ts +8 -0
  191. package/dist/generate/kinds/reader-file.d.ts.map +1 -0
  192. package/dist/generate/kinds/reader-file.js +9 -0
  193. package/dist/generate/kinds/reader-file.js.map +1 -0
  194. package/dist/generate/kinds/route/write-controller.d.ts.map +1 -1
  195. package/dist/generate/kinds/route/write-controller.js +2 -1
  196. package/dist/generate/kinds/route/write-controller.js.map +1 -1
  197. package/dist/generate/kinds/route-kind.d.ts.map +1 -1
  198. package/dist/generate/kinds/route-kind.js +2 -1
  199. package/dist/generate/kinds/route-kind.js.map +1 -1
  200. package/dist/generate/mark-policy-questions.d.ts +10 -0
  201. package/dist/generate/mark-policy-questions.d.ts.map +1 -0
  202. package/dist/generate/mark-policy-questions.js +76 -0
  203. package/dist/generate/mark-policy-questions.js.map +1 -0
  204. package/dist/generate/permission-pattern.d.ts +4 -0
  205. package/dist/generate/permission-pattern.d.ts.map +1 -0
  206. package/dist/generate/permission-pattern.js +7 -0
  207. package/dist/generate/permission-pattern.js.map +1 -0
  208. package/dist/generate/refined-by-policy.d.ts +4 -0
  209. package/dist/generate/refined-by-policy.d.ts.map +1 -0
  210. package/dist/generate/refined-by-policy.js +9 -0
  211. package/dist/generate/refined-by-policy.js.map +1 -0
  212. package/dist/generate/rendered.d.ts +5 -0
  213. package/dist/generate/rendered.d.ts.map +1 -0
  214. package/dist/generate/rendered.js +18 -0
  215. package/dist/generate/rendered.js.map +1 -0
  216. package/dist/generate/searched-elements.d.ts +13 -0
  217. package/dist/generate/searched-elements.d.ts.map +1 -0
  218. package/dist/generate/searched-elements.js +63 -0
  219. package/dist/generate/searched-elements.js.map +1 -0
  220. package/dist/generate/wire.d.ts.map +1 -1
  221. package/dist/generate/wire.js +3 -25
  222. package/dist/generate/wire.js.map +1 -1
  223. package/dist/generate/wirings.d.ts +8 -0
  224. package/dist/generate/wirings.d.ts.map +1 -0
  225. package/dist/generate/wirings.js +28 -0
  226. package/dist/generate/wirings.js.map +1 -0
  227. package/dist/init/copilot-instruction.d.ts +6 -0
  228. package/dist/init/copilot-instruction.d.ts.map +1 -0
  229. package/dist/init/copilot-instruction.js +15 -0
  230. package/dist/init/copilot-instruction.js.map +1 -0
  231. package/dist/init/files/guidance-files.d.ts +1 -0
  232. package/dist/init/files/guidance-files.d.ts.map +1 -1
  233. package/dist/init/files/guidance-files.js +4 -3
  234. package/dist/init/files/guidance-files.js.map +1 -1
  235. package/dist/init/files/layer-rules.d.ts +3 -0
  236. package/dist/init/files/layer-rules.d.ts.map +1 -0
  237. package/dist/init/files/layer-rules.js +11 -0
  238. package/dist/init/files/layer-rules.js.map +1 -0
  239. package/dist/init/files/pipeline-files.d.ts.map +1 -1
  240. package/dist/init/files/pipeline-files.js +2 -0
  241. package/dist/init/files/pipeline-files.js.map +1 -1
  242. package/dist/init/json-object.d.ts +3 -0
  243. package/dist/init/json-object.d.ts.map +1 -0
  244. package/dist/init/json-object.js +12 -0
  245. package/dist/init/json-object.js.map +1 -0
  246. package/dist/init/manifest/versions.js +24 -24
  247. package/dist/init/run-init.d.ts.map +1 -1
  248. package/dist/init/run-init.js +4 -0
  249. package/dist/init/run-init.js.map +1 -1
  250. package/dist/init/write-agent-settings.d.ts.map +1 -1
  251. package/dist/init/write-agent-settings.js +3 -10
  252. package/dist/init/write-agent-settings.js.map +1 -1
  253. package/dist/init/write-copilot-instructions.d.ts +7 -0
  254. package/dist/init/write-copilot-instructions.d.ts.map +1 -0
  255. package/dist/init/write-copilot-instructions.js +16 -0
  256. package/dist/init/write-copilot-instructions.js.map +1 -0
  257. package/dist/init/write-copilot-settings.d.ts +8 -0
  258. package/dist/init/write-copilot-settings.d.ts.map +1 -0
  259. package/dist/init/write-copilot-settings.js +36 -0
  260. package/dist/init/write-copilot-settings.js.map +1 -0
  261. package/dist/markers/index.d.ts +1 -0
  262. package/dist/markers/index.d.ts.map +1 -1
  263. package/dist/markers/index.js +1 -0
  264. package/dist/markers/index.js.map +1 -1
  265. package/dist/markers/replace-in-region.d.ts +10 -0
  266. package/dist/markers/replace-in-region.d.ts.map +1 -0
  267. package/dist/markers/replace-in-region.js +30 -0
  268. package/dist/markers/replace-in-region.js.map +1 -0
  269. package/dist/naming/index.d.ts +2 -0
  270. package/dist/naming/index.d.ts.map +1 -1
  271. package/dist/naming/index.js +2 -0
  272. package/dist/naming/index.js.map +1 -1
  273. package/dist/naming/plural.d.ts +3 -0
  274. package/dist/naming/plural.d.ts.map +1 -0
  275. package/dist/naming/plural.js +8 -0
  276. package/dist/naming/plural.js.map +1 -0
  277. package/dist/naming/singular.d.ts +3 -0
  278. package/dist/naming/singular.d.ts.map +1 -0
  279. package/dist/naming/singular.js +11 -0
  280. package/dist/naming/singular.js.map +1 -0
  281. package/dist/naming/to-name.d.ts.map +1 -1
  282. package/dist/naming/to-name.js +1 -6
  283. package/dist/naming/to-name.js.map +1 -1
  284. package/dist/sdk/agent-instruction.d.ts +1 -1
  285. package/dist/sdk/agent-instruction.js +1 -1
  286. package/dist/sdk/instruct-agents.d.ts +1 -1
  287. package/dist/sdk/instruct-agents.d.ts.map +1 -1
  288. package/dist/sdk/instruct-agents.js +12 -8
  289. package/dist/sdk/instruct-agents.js.map +1 -1
  290. package/dist/version.d.ts +1 -1
  291. package/dist/version.js +1 -1
  292. package/package.json +24 -3
  293. package/templates/command/handler.declared.ts.tpl +32 -3
  294. package/templates/command/handler.spec.buses.ts.tpl +24 -1
  295. package/templates/command/handler.ts.tpl +32 -3
  296. package/templates/command/wiring.manual.tpl +2 -2
  297. package/templates/command/wiring.tsyringe.tpl +5 -2
  298. package/templates/controller/controller.search.ts.tpl +1 -1
  299. package/templates/event-handler/event-handler.declared.ts.tpl +1 -1
  300. package/templates/init/AGENTS.md.tpl +46 -0
  301. package/templates/init/CLAUDE.md.tpl +2 -45
  302. package/templates/init/README.md.tpl +1 -1
  303. package/templates/init/rules/application.md.tpl +2 -2
  304. package/templates/init/rules/domain.md.tpl +1 -1
  305. package/templates/init/scripts/events.ts.tpl +6 -6
  306. package/templates/init/scripts/openapi.ts.tpl +2 -2
  307. package/templates/integration-event/publisher.declared.ts.tpl +1 -1
  308. package/templates/pipeline/github/workflows/copilot-setup-steps.yml +26 -0
  309. package/templates/pipeline/package-scripts.json +1 -1
  310. package/templates/policy/policy.declared.ts.tpl +1 -1
  311. package/templates/policy/policy.ts.tpl +1 -1
  312. package/templates/presets/identity/context/application/integration/publishers/account-deactivated.publisher.ts.tpl +1 -1
  313. package/templates/presets/identity/context/application/integration/publishers/delegation-granted.publisher.ts.tpl +1 -1
  314. package/templates/presets/identity/context/application/integration/publishers/delegation-revoked.publisher.ts.tpl +1 -1
  315. package/templates/presets/identity/context/application/integration/publishers/member-joined.publisher.ts.tpl +1 -1
  316. package/templates/presets/identity/context/application/integration/publishers/member-removed.publisher.ts.tpl +1 -1
  317. package/templates/presets/identity/context/application/integration/publishers/member-role-changed.publisher.ts.tpl +1 -1
  318. package/templates/presets/identity/context/application/integration/publishers/organisation-opened.publisher.ts.tpl +1 -1
  319. package/templates/presets/identity/context/infrastructure/persistence/drizzle-search-members-reader.repository.drizzle.ts.tpl +2 -2
  320. package/templates/presets/identity/context/presentation/http/organisations/search-members/search-members.controller.ts.tpl +2 -2
  321. package/templates/presets/identity/context/test/integration/search-members-reader.spec.ts.tpl +1 -1
  322. package/templates/query/handler.declared.ts.tpl +19 -0
  323. package/templates/query/handler.spec.buses.ts.tpl +21 -0
  324. package/templates/query/handler.ts.tpl +19 -0
  325. package/templates/query/search.reader.fake.ts.tpl +1 -1
  326. package/templates/query/search.reader.in-memory.ts.tpl +20 -18
  327. package/templates/query/wiring.manual.tpl +1 -1
  328. package/templates/query/wiring.tsyringe.tpl +4 -1
  329. package/templates/route/route.search.ts.tpl +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"domain-events-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/domain-events-fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"domain-events-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/domain-events-fixtures.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/check/fixtures/fixtures.ts"],"names":[],"mappings":"AAuCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EAwCtC,CAAC"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../../src/check/fixtures/fixtures.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,QAAQ,EAAE,SAAS,OAAO,EA0CtC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { ALIAS_DECLARED_FIXTURES } from './alias-declared-fixtures.js';
2
+ import { BUSINESS_NAME_FIXTURES } from './business-name-fixtures.js';
2
3
  import { AUTHZ_DECLARED_FIXTURES } from './authz-declared-fixtures.js';
3
4
  import { AUTHZ_FIXTURES } from './authz-fixtures.js';
5
+ import { AUTHZ_POLICY_FIXTURES } from './authz-policy-fixtures.js';
4
6
  import { CLEAN_FIXTURES } from './clean-fixtures.js';
5
7
  import { COMPOSITION_FIXTURES } from './composition-fixtures.js';
6
8
  import { CONFIG_FIXTURES } from './config-fixtures.js';
@@ -46,6 +48,7 @@ export const FIXTURES = [
46
48
  ...ALIAS_DECLARED_FIXTURES,
47
49
  ...AUTHZ_DECLARED_FIXTURES,
48
50
  ...AUTHZ_FIXTURES,
51
+ ...AUTHZ_POLICY_FIXTURES,
49
52
  ...CLEAN_FIXTURES,
50
53
  ...COMPOSITION_FIXTURES,
51
54
  ...CONFIG_FIXTURES,
@@ -70,6 +73,7 @@ export const FIXTURES = [
70
73
  ...LAYOUT_FIXTURES,
71
74
  ...LIFECYCLE_FIXTURES,
72
75
  ...NAMING_FIXTURES,
76
+ ...BUSINESS_NAME_FIXTURES,
73
77
  ...OUTBOX_FIXTURES,
74
78
  ...PERSISTENCE_FIXTURES,
75
79
  ...PORTS_FIXTURES,
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/fixtures.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from '../model/rule.js';
2
+ export declare const authzPolicyAsked: Rule;
3
+ //# sourceMappingURL=authz-policy-asked.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authz-policy-asked.d.ts","sourceRoot":"","sources":["../../../src/check/rules/authz-policy-asked.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAqB7C,eAAO,MAAM,gBAAgB,EAAE,IAqB9B,CAAC"}
@@ -0,0 +1,184 @@
1
+ import { argumentsOf } from '../declarations/arguments-of.js';
2
+ import { classesOf } from '../declarations/classes-of.js';
3
+ import { inLayer } from '../support/in-layer.js';
4
+ import { reporter } from '../support/reporter.js';
5
+ import { sourceDeclaring } from '../support/source-declaring.js';
6
+ import { toViolations } from '../support/to-violations.js';
7
+ import { callArguments } from '../text/call-arguments.js';
8
+ import { escapeRegExp } from '../text/escape-reg-exp.js';
9
+ import { exportedClass } from '../text/exported-class.js';
10
+ import { statementEnd } from '../text/statement-end.js';
11
+ const PERMISSION_REF = /^([A-Za-z_$][\w$]*)\s*(?:\[\s*(['"`])([^'"`]+)\2\s*\]|\.\s*([A-Za-z_$][\w$]*))$/;
12
+ const DEFINE_POLICY = /(?<![\w$.])definePolicy\s*(?:<[^<>()]*>)?\s*\(/g;
13
+ const PERMISSION_ENTRY = /^permission\s*:\s*/;
14
+ const REGISTRATION = /\.\s*(?:command|query)\s*\(\s*([A-Z][\w$]*)\s*\)/g;
15
+ const CHAINED_REQUIRES = /\.\s*requires\s*\(/;
16
+ const MAP_REQUIRES = /(?<![\w$.])requires\s*\(/g;
17
+ const ASKS_ACCESS = /\.\s*(?:authorize|decide|decideOn)\s*\(/;
18
+ const STILL_GENERATED = 'TODO(domain)';
19
+ export const authzPolicyAsked = {
20
+ id: 'authz/policy-asked',
21
+ description: 'A use case whose permission has a policy has a handler that asks it through Access, with that permission.',
22
+ scope: 'project',
23
+ run(project) {
24
+ const refined = refinedPermissions(project);
25
+ const report = reporter(project, this.id);
26
+ if (refined.size === 0) {
27
+ return [];
28
+ }
29
+ return requirements(project)
30
+ .filter(({ permission }) => refined.has(permission.key))
31
+ .flatMap((requirement) => handlersOf(project, requirement).flatMap((handler) => toViolations(report, handler.path, unasked(handler, requirement))));
32
+ },
33
+ };
34
+ /** The permissions some policy refines, by `@Policy(<permission>, ...)` or `definePolicy({ permission, ... })`. */
35
+ function refinedPermissions(project) {
36
+ const refined = new Set();
37
+ for (const file of project.files) {
38
+ if (inLayer(file, 'application')?.inside[0] !== 'authorization') {
39
+ continue;
40
+ }
41
+ for (const permission of [...decoratedPolicies(file), ...definedPolicies(file)]) {
42
+ refined.add(permission.key);
43
+ }
44
+ }
45
+ return refined;
46
+ }
47
+ function decoratedPolicies(file) {
48
+ return classesOf(file.scan).flatMap(({ decorations }) => decorations.flatMap((decoration) => {
49
+ const [permission] = decoration.name === 'Policy' ? argumentsOf(file.scan, decoration) : [];
50
+ return refOf(file, permission);
51
+ }));
52
+ }
53
+ function definedPolicies(file) {
54
+ const { code } = file.scan;
55
+ return [...code.matchAll(DEFINE_POLICY)].flatMap((match) => {
56
+ const open = code.indexOf('{', match.index + match[0].length - 1);
57
+ const entry = open === -1 ? undefined : callArguments(code, open).find((part) => PERMISSION_ENTRY.test(part.code));
58
+ if (entry === undefined) {
59
+ return [];
60
+ }
61
+ const value = PERMISSION_ENTRY.exec(entry.code)?.[0].length ?? 0;
62
+ return refOf(file, { code: entry.code.slice(value), start: entry.start + value });
63
+ });
64
+ }
65
+ /** Every use case that requires a permission: `@Requires` on its class, or its registration in a module or a map. */
66
+ function requirements(project) {
67
+ return project.files.flatMap((file) => {
68
+ if (file.isTest || file.location.area !== 'context') {
69
+ return [];
70
+ }
71
+ return [...decoratedRequirements(file), ...registeredRequirements(file), ...mappedRequirements(file)];
72
+ });
73
+ }
74
+ function decoratedRequirements(file) {
75
+ return classesOf(file.scan).flatMap(({ name, decorations }) => decorations.flatMap((decoration) => {
76
+ const [permission] = decoration.name === 'Requires' ? argumentsOf(file.scan, decoration) : [];
77
+ return refOf(file, permission).map((ref) => ({ message: name, permission: ref, declaredIn: file }));
78
+ }));
79
+ }
80
+ /** `.command(X).requires(<permission>)` in a module wired by hand with the builder. */
81
+ function registeredRequirements(file) {
82
+ const { code } = file.scan;
83
+ if (file.location.area !== 'context' || file.location.layer !== 'module') {
84
+ return [];
85
+ }
86
+ const registrations = [...code.matchAll(REGISTRATION)];
87
+ return registrations.flatMap((match, index) => {
88
+ const next = registrations[index + 1]?.index ?? code.length;
89
+ const end = Math.min(next, statementEnd(code, match.index));
90
+ const chained = CHAINED_REQUIRES.exec(code.slice(match.index, end));
91
+ if (chained === null) {
92
+ return [];
93
+ }
94
+ const open = match.index + chained.index + chained[0].length - 1;
95
+ const [permission] = callArguments(code, open);
96
+ return refOf(file, permission).map((ref) => ({ message: match[1] ?? '', permission: ref, declaredIn: file }));
97
+ });
98
+ }
99
+ /** `requires(X, <permission>)` in the authorization map of a module wired by hand. */
100
+ function mappedRequirements(file) {
101
+ const { code } = file.scan;
102
+ const here = file.location;
103
+ if (here.area !== 'context' || (here.layer !== 'module' && !isAuthorizationFolder(file))) {
104
+ return [];
105
+ }
106
+ return [...code.matchAll(MAP_REQUIRES)].flatMap((match) => {
107
+ const [message, permission] = callArguments(code, match.index + match[0].length - 1);
108
+ if (message === undefined || !/^[A-Z][\w$]*$/.test(message.code)) {
109
+ return [];
110
+ }
111
+ return refOf(file, permission).map((ref) => ({ message: message.code, permission: ref, declaredIn: file }));
112
+ });
113
+ }
114
+ function isAuthorizationFolder(file) {
115
+ return inLayer(file, 'application')?.inside[0] === 'authorization';
116
+ }
117
+ /** The permission an argument names, read from the source: the code has the contents of its strings blanked. */
118
+ function refOf(file, argument) {
119
+ if (argument === undefined) {
120
+ return [];
121
+ }
122
+ const written = file.text.slice(argument.start, argument.start + argument.code.length).trim();
123
+ const match = PERMISSION_REF.exec(written);
124
+ const set = match?.[1];
125
+ const id = match?.[3] ?? match?.[4];
126
+ return set === undefined || id === undefined ? [] : [{ set, id, key: `${set}[${id}]`, written }];
127
+ }
128
+ /** The handlers in the folder of the use case: `commands/<use-case>/` or `queries/<use-case>/`. */
129
+ function handlersOf(project, { message, declaredIn }) {
130
+ const source = messageSource(project, declaredIn, message);
131
+ if (source === undefined) {
132
+ return [];
133
+ }
134
+ const folder = source.path.slice(0, source.path.lastIndexOf('/') + 1);
135
+ return project.files.filter((file) => !file.isTest &&
136
+ file.path.startsWith(folder) &&
137
+ !file.path.slice(folder.length).includes('/') &&
138
+ file.path.endsWith('.handler.ts'));
139
+ }
140
+ function messageSource(project, declaredIn, message) {
141
+ const declaring = sourceDeclaring(project, declaredIn, message);
142
+ if (declares(declaring, message)) {
143
+ return declaring;
144
+ }
145
+ const context = declaredIn.location.area === 'context' ? declaredIn.location.context : undefined;
146
+ return project.files.find((file) => !file.isTest &&
147
+ file.location.area === 'context' &&
148
+ file.location.context === context &&
149
+ /\.(?:command|query)\.ts$/.test(file.path) &&
150
+ declares(file, message));
151
+ }
152
+ function declares(file, name) {
153
+ return classesOf(file.scan).some((candidate) => candidate.name === name);
154
+ }
155
+ function unasked(handler, { message, permission }) {
156
+ if (asks(handler, permission)) {
157
+ return [];
158
+ }
159
+ const handlerClass = exportedClass(handler);
160
+ return [
161
+ {
162
+ line: handlerClass?.line ?? 1,
163
+ message: `A policy refines ${permission.written}, which ${message} requires, and ${handlerClass?.name ?? 'its handler'} never asks it: the bus checked the permission without the element, and the rule of the policy is skipped.`,
164
+ fix: `Load the element, then call \`await this.access.authorize(${/Query$/.test(message) ? 'query' : 'command'}.actor, ${permission.written}, <aggregate>)\` with the Access port of @ddd-ts-kit/auth, before the change.`,
165
+ },
166
+ ];
167
+ }
168
+ /**
169
+ * A call to `authorize`, `decide` or `decideOn` of `Access`, and the permission named in the
170
+ * code, not in a comment; or the `TODO(domain)` the generator leaves there, which `ddd-ts-kit
171
+ * todo` lists and the authorization module enforces at run time until it is done.
172
+ */
173
+ function asks(handler, permission) {
174
+ const { code, comments } = handler.scan;
175
+ const set = escapeRegExp(permission.set);
176
+ const id = escapeRegExp(permission.id);
177
+ const named = new RegExp(`(?<![\\w$.])${set}\\s*(?:\\[\\s*(['"\`])${id}\\1\\s*\\]|\\.\\s*${id}(?![\\w$]))`, 'g');
178
+ if (comments.some(({ text }) => text.includes(STILL_GENERATED) && new RegExp(named.source).test(text))) {
179
+ return true;
180
+ }
181
+ return (ASKS_ACCESS.test(code) &&
182
+ [...handler.text.matchAll(named)].some((match) => code.slice(match.index, match.index + permission.set.length) === permission.set));
183
+ }
184
+ //# sourceMappingURL=authz-policy-asked.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authz-policy-asked.js","sourceRoot":"","sources":["../../../src/check/rules/authz-policy-asked.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"declarations-role-declared.d.ts","sourceRoot":"","sources":["../../../src/check/rules/declarations-role-declared.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAwB7C,eAAO,MAAM,wBAAwB,EAAE,IAkBtC,CAAC"}
1
+ {"version":3,"file":"declarations-role-declared.d.ts","sourceRoot":"","sources":["../../../src/check/rules/declarations-role-declared.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAqB7C,eAAO,MAAM,wBAAwB,EAAE,IAkBtC,CAAC"}
@@ -1,28 +1,22 @@
1
1
  import path from 'node:path';
2
2
  import { DECLARED_ROLES, declaredRoleOf } from '../../declared/index.js';
3
- import { argumentsOf } from '../declarations/arguments-of.js';
4
3
  import { classesOf } from '../declarations/classes-of.js';
5
4
  import { DECLARATIONS_ENTRY } from '../declarations/declarations-entry.js';
6
- import { declaredEventHandlers } from '../declarations/declared-event-handlers.js';
7
5
  import { optionOf } from '../declarations/option-of.js';
8
- import { nameOfEventClass } from '../events/name-of-event-class.js';
9
6
  import { inContext } from '../support/in-context.js';
10
7
  import { isDeclaredStyle } from '../support/is-declared-style.js';
11
8
  import { pathInContext } from '../support/path-in-context.js';
12
9
  import { perFile } from '../support/per-file.js';
13
- import { sourceDeclaring } from '../support/source-declaring.js';
14
10
  /** The option of each decorator that names what it declares, written once and never derived. */
15
11
  const WRITTEN_NAMES = {
16
12
  IntegrationEventHandler: 'consumer',
17
- DomainEventHandler: 'name',
18
13
  Policy: 'name',
19
14
  };
20
15
  /** `authz/declared` holds the messages: a command or a query says who may send it, or is reported there. */
21
16
  const MESSAGE_SUFFIXES = ['command', 'query'];
22
- const IDENTIFIER = /^[A-Za-z_$][\w$]*$/;
23
17
  export const declarationsRoleDeclared = {
24
18
  id: 'declarations/role-declared',
25
- description: 'In the declared style, a role file exports a class carrying the decorator of its role, with its names written as string literals (the name of a domain event handler may read the name its event class declares, `{ name: InvoiceIssued.eventName }`), and domain/ declares nothing.',
19
+ description: 'In the declared style, a role file exports a class carrying the decorator of its role, with its names written as string literals (a domain event handler writes none: it is attached under the name its event class declares), and domain/ declares nothing.',
26
20
  scope: 'file',
27
21
  run(project) {
28
22
  if (!isDeclaredStyle(project)) {
@@ -50,7 +44,7 @@ function outsideTheDomain(file, project) {
50
44
  const inside = pathInContext(project, file) ?? '';
51
45
  const role = declaredRoleOf(inside);
52
46
  const place = role === undefined ? misplaced(file) : undeclaredRole(file, role, inside);
53
- return [...place, ...unwrittenNames(file), ...renamedEvents(file, project)];
47
+ return [...place, ...unwrittenNames(file)];
54
48
  }
55
49
  /** A declared class outside a role file is read by neither the barrel nor discovery; the module file may hold what it wants. */
56
50
  function misplaced(file) {
@@ -101,44 +95,19 @@ function unwrittenNames(file) {
101
95
  return decorated(file).flatMap(({ declared, decoration }) => {
102
96
  const key = WRITTEN_NAMES[decoration.name];
103
97
  const value = key === undefined ? undefined : optionOf(file.scan, decoration, key);
104
- if (key === undefined || isWritten(value) || readsEventName(file, decoration, value)) {
98
+ if (key === undefined || isWritten(value)) {
105
99
  return [];
106
100
  }
107
101
  return [
108
102
  {
109
103
  line: value?.line ?? decoration.line,
110
104
  message: `The ${key} of @${decoration.name} on ${declared.name} is ${value?.literal === '' ? 'empty' : 'not a string literal'}.`,
111
- fix: decoration.name === 'DomainEventHandler' ? READ_EVENT_NAME : writeInPlace(key, context),
105
+ fix: `Write it in place as a string literal, { ${key}: '${context}.<name>' }: a name that is written survives the renaming of the class and is read without running the code.`,
112
106
  },
113
107
  ];
114
108
  });
115
109
  }
116
- const READ_EVENT_NAME = 'Read the name the event class declares, { name: <Event>.eventName }, or write it in place as a string literal: a handler is attached under the name its event carries.';
117
- function writeInPlace(key, context) {
118
- return `Write it in place as a string literal, { ${key}: '${context}.<name>' }: a name that is written survives the renaming of the class and is read without running the code.`;
119
- }
120
110
  function isWritten(value) {
121
111
  return value?.literal !== undefined && value.literal !== '';
122
112
  }
123
- /** `@DomainEventHandler(InvoiceIssued, { name: InvoiceIssued.eventName })`: the name the event class declares, read where it is written. */
124
- function readsEventName(file, decoration, value) {
125
- const event = argumentsOf(file.scan, decoration)[0]?.code.trim();
126
- return decoration.name === 'DomainEventHandler' && event !== undefined && value?.reference === `${event}.eventName`;
127
- }
128
- /** A domain event handler is attached under the name it writes: it has to be the name the event class carries. */
129
- function renamedEvents(file, project) {
130
- return declaredEventHandlers(file.scan, 'DomainEventHandler').flatMap(({ event, name }) => {
131
- const carried = IDENTIFIER.test(event) ? nameOfEventClass(sourceDeclaring(project, file, event), event) : undefined;
132
- if (carried === undefined || name?.literal === undefined || name.literal === '' || name.literal === carried) {
133
- return [];
134
- }
135
- return [
136
- {
137
- line: name.line,
138
- message: `@DomainEventHandler is named "${name.literal}" but ${event} is named "${carried}".`,
139
- fix: `Write { name: '${carried}' }, the name ${event} carries: a handler attached under another name is never called.`,
140
- },
141
- ];
142
- });
143
- }
144
113
  //# sourceMappingURL=declarations-role-declared.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"declarations-role-declared.js","sourceRoot":"","sources":["../../../src/check/rules/declarations-role-declared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"declarations-role-declared.js","sourceRoot":"","sources":["../../../src/check/rules/declarations-role-declared.ts"],"names":[],"mappings":"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"}
@@ -40,13 +40,13 @@ function flawedRegistrations(file) {
40
40
  /** The consumer names a file gives, in a registration or in an `@IntegrationEventHandler` declaration, in source order. */
41
41
  function consumerNames(file) {
42
42
  const registered = consumerRegistrations(file).flatMap(({ name, nameLine }) => name === undefined ? [] : [{ name, line: nameLine }]);
43
- const declared = declaredEventHandlers(file.scan, 'IntegrationEventHandler').flatMap(({ name }) => name?.literal === undefined ? [] : [{ name: name.literal, line: name.line }]);
43
+ const declared = declaredEventHandlers(file.scan).flatMap(({ name }) => name?.literal === undefined ? [] : [{ name: name.literal, line: name.line }]);
44
44
  return [...registered, ...declared].sort((left, right) => left.line - right.line);
45
45
  }
46
46
  /** A declared handler carries its consumer name itself: the store deduplicates per name, so it has to be readable where it is declared. */
47
47
  function unnamedHandlers(file) {
48
48
  const context = inContext(file.location) ? file.location.context : '<context>';
49
- return declaredEventHandlers(file.scan, 'IntegrationEventHandler')
49
+ return declaredEventHandlers(file.scan)
50
50
  .filter(({ name }) => name?.literal === undefined || name.literal === '')
51
51
  .map(({ className, line, name }) => ({
52
52
  line: name?.line ?? line,
@@ -68,7 +68,7 @@ function unregistered(file, project) {
68
68
  return [];
69
69
  }
70
70
  // A handler that declares itself needs no registration: its decorator carries the name.
71
- if (declaredEventHandlers(file.scan, 'IntegrationEventHandler').length > 0) {
71
+ if (declaredEventHandlers(file.scan).length > 0) {
72
72
  return [];
73
73
  }
74
74
  const instance = handler.name.charAt(0).toLowerCase() + handler.name.slice(1);
@@ -1 +1 @@
1
- {"version":3,"file":"events-consumer-idempotent.js","sourceRoot":"","sources":["../../../src/check/rules/events-consumer-idempotent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events-consumer-idempotent.js","sourceRoot":"","sources":["../../../src/check/rules/events-consumer-idempotent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from '../model/rule.js';
2
+ export declare const namingBusinessName: Rule;
3
+ //# sourceMappingURL=naming-business-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-business-name.d.ts","sourceRoot":"","sources":["../../../src/check/rules/naming-business-name.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,eAAO,MAAM,kBAAkB,EAAE,IAkBhC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { genericWordsOf } from '../business-names/generic-words-of.js';
2
+ import { judgesNames } from '../business-names/judges-names.js';
3
+ import { namedBindings } from '../business-names/named-bindings.js';
4
+ import { suggestedName } from '../business-names/suggested-name.js';
5
+ import { perFile } from '../support/per-file.js';
6
+ const WHY = 'the code of the model speaks the ubiquitous language of its context, and a generic word hides which concept the value is';
7
+ export const namingBusinessName = {
8
+ id: 'naming/business-name',
9
+ description: 'A variable, parameter, property, destructured or loop binding of domain/ and application/ (and of the shared kernel) is named after the concept it holds, never a generic word such as target, data or item.',
10
+ scope: 'file',
11
+ run(project) {
12
+ const words = genericWordsOf(project.config);
13
+ return perFile(project, this.id, (file) => {
14
+ if (words.size === 0 || !judgesNames(file, project.config.sharedKernelDir)) {
15
+ return [];
16
+ }
17
+ return namedBindings(file.scan.code)
18
+ .filter((binding) => words.has(binding.name))
19
+ .map((binding) => finding(file, binding));
20
+ });
21
+ },
22
+ };
23
+ function finding(file, binding) {
24
+ const suggestion = suggestedName(binding);
25
+ return {
26
+ line: file.scan.lineAt(binding.offset),
27
+ message: `The ${binding.kind} "${binding.name}" is named with a generic word.`,
28
+ fix: `${rename(binding, suggestion)}: ${WHY}. \`npx eslint --fix\` renames a variable built by X.create(..) or new X(..), or read from a repository, with every use of it.`,
29
+ };
30
+ }
31
+ function rename(binding, suggestion) {
32
+ if (suggestion !== undefined) {
33
+ return `Rename it ${suggestion}, the name the code already gives to what it holds`;
34
+ }
35
+ const collection = binding.source ?? '';
36
+ if (binding.kind === 'loop variable') {
37
+ return `Rename it after one element of ${collection === '' ? 'the collection' : collection}, in the singular (for (const reminder of dueReminders))`;
38
+ }
39
+ return 'Rename it after the concept it holds, a term of the glossary of the context (CONTEXT.md)';
40
+ }
41
+ //# sourceMappingURL=naming-business-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"naming-business-name.js","sourceRoot":"","sources":["../../../src/check/rules/naming-business-name.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,MAAM,GAAG,GACP,0HAA0H,CAAC;AAE7H,MAAM,CAAC,MAAM,kBAAkB,GAAS;IACtC,EAAE,EAAE,sBAAsB;IAC1B,WAAW,EACT,8MAA8M;IAChN,KAAK,EAAE,MAAM;IACb,GAAG,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC3E,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;iBACjC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBAC5C,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AAEF,SAAS,OAAO,CAAC,IAAgB,EAAE,OAAqB;IACtD,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QACtC,OAAO,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,iCAAiC;QAC9E,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,GAAG,gIAAgI;KAC5K,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,OAAqB,EAAE,UAA8B;IACnE,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,aAAa,UAAU,oDAAoD,CAAC;IACrF,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IAExC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QACrC,OAAO,kCAAkC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,0DAA0D,CAAC;IACvJ,CAAC;IAED,OAAO,0FAA0F,CAAC;AACpG,CAAC"}
@@ -31,6 +31,12 @@ export interface OnePerFileAllowance {
31
31
  export interface OnePerFile {
32
32
  readonly allow: readonly OnePerFileAllowance[];
33
33
  }
34
+ /** The generic words `naming/business-name` reports: `words` replaces its list, `allow` removes some of them. */
35
+ export interface BusinessNames {
36
+ /** Undefined: the default list of the rule. */
37
+ readonly words: readonly string[] | undefined;
38
+ readonly allow: readonly string[];
39
+ }
34
40
  /** What the pipeline adds over the free gates: the jobs of `CI_EXTRAS` the team asked for. */
35
41
  export interface CiConfig {
36
42
  readonly extras: readonly string[];
@@ -77,6 +83,8 @@ export interface Config {
77
83
  readonly deviations: readonly Deviation[];
78
84
  /** Names reported by `standard/no-parallel-interface`, over its defaults: the kernel interface to use instead, or `false` to drop a default. */
79
85
  readonly standardInterfaces: Readonly<Record<string, string | false>>;
86
+ /** The generic words `naming/business-name` reports, over its defaults. */
87
+ readonly businessNames: BusinessNames;
80
88
  /** True once the project has a worker process under `apps/worker/main.ts`: the API then starts with its jobs off. */
81
89
  readonly worker: boolean;
82
90
  readonly ci: CiConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { BusinessNames } from './config.js';
2
+ /** Tolerant: an entry that is not a word is left out, and a `words` that is not a list keeps the defaults. */
3
+ export declare function parseBusinessNames(value: unknown): BusinessNames;
4
+ //# sourceMappingURL=parse-business-names.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-business-names.d.ts","sourceRoot":"","sources":["../../src/config/parse-business-names.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,8GAA8G;AAC9G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CAQhE"}
@@ -0,0 +1,14 @@
1
+ import { isRecord } from './values/is-record.js';
2
+ /** Tolerant: an entry that is not a word is left out, and a `words` that is not a list keeps the defaults. */
3
+ export function parseBusinessNames(value) {
4
+ const raw = isRecord(value) ? value : {};
5
+ const words = raw['words'];
6
+ return {
7
+ words: Array.isArray(words) ? wordsOf(words) : undefined,
8
+ allow: Array.isArray(raw['allow']) ? wordsOf(raw['allow']) : [],
9
+ };
10
+ }
11
+ function wordsOf(entries) {
12
+ return entries.filter((entry) => typeof entry === 'string' && entry.trim() !== '');
13
+ }
14
+ //# sourceMappingURL=parse-business-names.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-business-names.js","sourceRoot":"","sources":["../../src/config/parse-business-names.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,8GAA8G;AAC9G,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3B,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;QACxD,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAA2B;IAC1C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACtG,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../src/config/parse-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,aAAa,CAAC;AAoBrD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAqBhD"}
1
+ {"version":3,"file":"parse-config.d.ts","sourceRoot":"","sources":["../../src/config/parse-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAa,MAAM,aAAa,CAAC;AAqBrD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAqBhD"}