ddd-ts-kit 0.2.0 → 0.3.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 (232) hide show
  1. package/README.md +55 -2
  2. package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
  3. package/dist/check/catalogue/architecture-rules.js +4 -0
  4. package/dist/check/catalogue/architecture-rules.js.map +1 -1
  5. package/dist/check/catalogue/eslint-only-rules.d.ts.map +1 -1
  6. package/dist/check/catalogue/eslint-only-rules.js +12 -0
  7. package/dist/check/catalogue/eslint-only-rules.js.map +1 -1
  8. package/dist/check/errors/builds-through-factories.d.ts +4 -0
  9. package/dist/check/errors/builds-through-factories.d.ts.map +1 -0
  10. package/dist/check/errors/builds-through-factories.js +5 -0
  11. package/dist/check/errors/builds-through-factories.js.map +1 -0
  12. package/dist/check/errors/error-code.d.ts +6 -0
  13. package/dist/check/errors/error-code.d.ts.map +1 -0
  14. package/dist/check/errors/error-code.js +2 -0
  15. package/dist/check/errors/error-code.js.map +1 -0
  16. package/dist/check/errors/error-codes.d.ts +8 -0
  17. package/dist/check/errors/error-codes.d.ts.map +1 -0
  18. package/dist/check/errors/error-codes.js +21 -0
  19. package/dist/check/errors/error-codes.js.map +1 -0
  20. package/dist/check/errors/kit-error-codes.d.ts +3 -0
  21. package/dist/check/errors/kit-error-codes.d.ts.map +1 -0
  22. package/dist/check/errors/kit-error-codes.js +17 -0
  23. package/dist/check/errors/kit-error-codes.js.map +1 -0
  24. package/dist/check/explain/errors-docs.d.ts +3 -0
  25. package/dist/check/explain/errors-docs.d.ts.map +1 -0
  26. package/dist/check/explain/errors-docs.js +30 -0
  27. package/dist/check/explain/errors-docs.js.map +1 -0
  28. package/dist/check/explain/rule-docs.d.ts.map +1 -1
  29. package/dist/check/explain/rule-docs.js +2 -0
  30. package/dist/check/explain/rule-docs.js.map +1 -1
  31. package/dist/check/fixtures/errors-fixtures.d.ts +3 -0
  32. package/dist/check/fixtures/errors-fixtures.d.ts.map +1 -0
  33. package/dist/check/fixtures/errors-fixtures.js +126 -0
  34. package/dist/check/fixtures/errors-fixtures.js.map +1 -0
  35. package/dist/check/fixtures/fixtures.d.ts.map +1 -1
  36. package/dist/check/fixtures/fixtures.js +2 -0
  37. package/dist/check/fixtures/fixtures.js.map +1 -1
  38. package/dist/check/rules/errors-code-unique.d.ts +3 -0
  39. package/dist/check/rules/errors-code-unique.d.ts.map +1 -0
  40. package/dist/check/rules/errors-code-unique.js +34 -0
  41. package/dist/check/rules/errors-code-unique.js.map +1 -0
  42. package/dist/check/rules/errors-known-code.d.ts +3 -0
  43. package/dist/check/rules/errors-known-code.d.ts.map +1 -0
  44. package/dist/check/rules/errors-known-code.js +51 -0
  45. package/dist/check/rules/errors-known-code.js.map +1 -0
  46. package/dist/check/rules/language-glossary-term.d.ts.map +1 -1
  47. package/dist/check/rules/language-glossary-term.js +7 -5
  48. package/dist/check/rules/language-glossary-term.js.map +1 -1
  49. package/dist/commands/error-factories.d.ts +7 -0
  50. package/dist/commands/error-factories.d.ts.map +1 -0
  51. package/dist/commands/error-factories.js +65 -0
  52. package/dist/commands/error-factories.js.map +1 -0
  53. package/dist/commands/init.d.ts.map +1 -1
  54. package/dist/commands/init.js +1 -0
  55. package/dist/commands/init.js.map +1 -1
  56. package/dist/config/index.d.ts +1 -1
  57. package/dist/config/index.d.ts.map +1 -1
  58. package/dist/config/index.js +1 -1
  59. package/dist/config/index.js.map +1 -1
  60. package/dist/config/parse-stack.d.ts.map +1 -1
  61. package/dist/config/parse-stack.js +2 -1
  62. package/dist/config/parse-stack.js.map +1 -1
  63. package/dist/config/stack.d.ts +9 -0
  64. package/dist/config/stack.d.ts.map +1 -1
  65. package/dist/config/stack.js +1 -0
  66. package/dist/config/stack.js.map +1 -1
  67. package/dist/describe/context-description.d.ts +12 -0
  68. package/dist/describe/context-description.d.ts.map +1 -1
  69. package/dist/describe/describe-context.d.ts.map +1 -1
  70. package/dist/describe/describe-context.js +2 -0
  71. package/dist/describe/describe-context.js.map +1 -1
  72. package/dist/describe/format-description.d.ts.map +1 -1
  73. package/dist/describe/format-description.js +5 -0
  74. package/dist/describe/format-description.js.map +1 -1
  75. package/dist/describe/read-errors.d.ts +8 -0
  76. package/dist/describe/read-errors.d.ts.map +1 -0
  77. package/dist/describe/read-errors.js +52 -0
  78. package/dist/describe/read-errors.js.map +1 -0
  79. package/dist/describe/reference-lines.js +14 -1
  80. package/dist/describe/reference-lines.js.map +1 -1
  81. package/dist/generate/errors/add-factory.d.ts +13 -0
  82. package/dist/generate/errors/add-factory.d.ts.map +1 -0
  83. package/dist/generate/errors/add-factory.js +30 -0
  84. package/dist/generate/errors/add-factory.js.map +1 -0
  85. package/dist/generate/errors/add-spec-case.d.ts +6 -0
  86. package/dist/generate/errors/add-spec-case.d.ts.map +1 -0
  87. package/dist/generate/errors/add-spec-case.js +26 -0
  88. package/dist/generate/errors/add-spec-case.js.map +1 -0
  89. package/dist/generate/errors/class-body.d.ts +8 -0
  90. package/dist/generate/errors/class-body.d.ts.map +1 -0
  91. package/dist/generate/errors/class-body.js +11 -0
  92. package/dist/generate/errors/class-body.js.map +1 -0
  93. package/dist/generate/errors/codes-of-context.d.ts +4 -0
  94. package/dist/generate/errors/codes-of-context.d.ts.map +1 -0
  95. package/dist/generate/errors/codes-of-context.js +17 -0
  96. package/dist/generate/errors/codes-of-context.js.map +1 -0
  97. package/dist/generate/errors/refusal-code.d.ts +13 -0
  98. package/dist/generate/errors/refusal-code.d.ts.map +1 -0
  99. package/dist/generate/errors/refusal-code.js +19 -0
  100. package/dist/generate/errors/refusal-code.js.map +1 -0
  101. package/dist/generate/errors/refusal-name.d.ts +4 -0
  102. package/dist/generate/errors/refusal-name.d.ts.map +1 -0
  103. package/dist/generate/errors/refusal-name.js +15 -0
  104. package/dist/generate/errors/refusal-name.js.map +1 -0
  105. package/dist/generate/errors/static-methods.d.ts +10 -0
  106. package/dist/generate/errors/static-methods.d.ts.map +1 -0
  107. package/dist/generate/errors/static-methods.js +13 -0
  108. package/dist/generate/errors/static-methods.js.map +1 -0
  109. package/dist/generate/errors/vague-refusal-names.d.ts +3 -0
  110. package/dist/generate/errors/vague-refusal-names.d.ts.map +1 -0
  111. package/dist/generate/errors/vague-refusal-names.js +15 -0
  112. package/dist/generate/errors/vague-refusal-names.js.map +1 -0
  113. package/dist/generate/kinds/domain-error-kind.d.ts.map +1 -1
  114. package/dist/generate/kinds/domain-error-kind.js +4 -1
  115. package/dist/generate/kinds/domain-error-kind.js.map +1 -1
  116. package/dist/generate/kinds/error-kind.d.ts +3 -0
  117. package/dist/generate/kinds/error-kind.d.ts.map +1 -0
  118. package/dist/generate/kinds/error-kind.js +75 -0
  119. package/dist/generate/kinds/error-kind.js.map +1 -0
  120. package/dist/generate/kinds.d.ts.map +1 -1
  121. package/dist/generate/kinds.js +2 -0
  122. package/dist/generate/kinds.js.map +1 -1
  123. package/dist/init/manifest/versions.js +23 -23
  124. package/dist/init/stack/resolve-stack.d.ts.map +1 -1
  125. package/dist/init/stack/resolve-stack.js +3 -1
  126. package/dist/init/stack/resolve-stack.js.map +1 -1
  127. package/dist/init/stack/stack-options.d.ts +1 -0
  128. package/dist/init/stack/stack-options.d.ts.map +1 -1
  129. package/dist/refusals/apply-plan.d.ts +17 -0
  130. package/dist/refusals/apply-plan.d.ts.map +1 -0
  131. package/dist/refusals/apply-plan.js +118 -0
  132. package/dist/refusals/apply-plan.js.map +1 -0
  133. package/dist/refusals/factory-name-for.d.ts +7 -0
  134. package/dist/refusals/factory-name-for.d.ts.map +1 -0
  135. package/dist/refusals/factory-name-for.js +16 -0
  136. package/dist/refusals/factory-name-for.js.map +1 -0
  137. package/dist/refusals/legacy-error.d.ts +21 -0
  138. package/dist/refusals/legacy-error.d.ts.map +1 -0
  139. package/dist/refusals/legacy-error.js +2 -0
  140. package/dist/refusals/legacy-error.js.map +1 -0
  141. package/dist/refusals/legacy-errors.d.ts +6 -0
  142. package/dist/refusals/legacy-errors.d.ts.map +1 -0
  143. package/dist/refusals/legacy-errors.js +16 -0
  144. package/dist/refusals/legacy-errors.js.map +1 -0
  145. package/dist/refusals/migration-draft.d.ts +15 -0
  146. package/dist/refusals/migration-draft.d.ts.map +1 -0
  147. package/dist/refusals/migration-draft.js +41 -0
  148. package/dist/refusals/migration-draft.js.map +1 -0
  149. package/dist/refusals/migration-plan.d.ts +6 -0
  150. package/dist/refusals/migration-plan.d.ts.map +1 -0
  151. package/dist/refusals/migration-plan.js +2 -0
  152. package/dist/refusals/migration-plan.js.map +1 -0
  153. package/dist/refusals/move.d.ts +15 -0
  154. package/dist/refusals/move.d.ts.map +1 -0
  155. package/dist/refusals/move.js +2 -0
  156. package/dist/refusals/move.js.map +1 -0
  157. package/dist/refusals/nested-cases.d.ts +3 -0
  158. package/dist/refusals/nested-cases.d.ts.map +1 -0
  159. package/dist/refusals/nested-cases.js +9 -0
  160. package/dist/refusals/nested-cases.js.map +1 -0
  161. package/dist/refusals/plan-file.d.ts +3 -0
  162. package/dist/refusals/plan-file.d.ts.map +1 -0
  163. package/dist/refusals/plan-file.js +3 -0
  164. package/dist/refusals/plan-file.js.map +1 -0
  165. package/dist/refusals/planned-factory.d.ts +11 -0
  166. package/dist/refusals/planned-factory.d.ts.map +1 -0
  167. package/dist/refusals/planned-factory.js +2 -0
  168. package/dist/refusals/planned-factory.js.map +1 -0
  169. package/dist/refusals/planned-move.d.ts +8 -0
  170. package/dist/refusals/planned-move.d.ts.map +1 -0
  171. package/dist/refusals/planned-move.js +2 -0
  172. package/dist/refusals/planned-move.js.map +1 -0
  173. package/dist/refusals/project-sources.d.ts +5 -0
  174. package/dist/refusals/project-sources.d.ts.map +1 -0
  175. package/dist/refusals/project-sources.js +13 -0
  176. package/dist/refusals/project-sources.js.map +1 -0
  177. package/dist/refusals/propose-plan.d.ts +16 -0
  178. package/dist/refusals/propose-plan.d.ts.map +1 -0
  179. package/dist/refusals/propose-plan.js +39 -0
  180. package/dist/refusals/propose-plan.js.map +1 -0
  181. package/dist/refusals/read-legacy-error.d.ts +9 -0
  182. package/dist/refusals/read-legacy-error.d.ts.map +1 -0
  183. package/dist/refusals/read-legacy-error.js +75 -0
  184. package/dist/refusals/read-legacy-error.js.map +1 -0
  185. package/dist/refusals/read-plan.d.ts +4 -0
  186. package/dist/refusals/read-plan.d.ts.map +1 -0
  187. package/dist/refusals/read-plan.js +43 -0
  188. package/dist/refusals/read-plan.js.map +1 -0
  189. package/dist/refusals/render-factory.d.ts +5 -0
  190. package/dist/refusals/render-factory.d.ts.map +1 -0
  191. package/dist/refusals/render-factory.js +14 -0
  192. package/dist/refusals/render-factory.js.map +1 -0
  193. package/dist/refusals/replace-in-code.d.ts +16 -0
  194. package/dist/refusals/replace-in-code.d.ts.map +1 -0
  195. package/dist/refusals/replace-in-code.js +20 -0
  196. package/dist/refusals/replace-in-code.js.map +1 -0
  197. package/dist/refusals/rewrite-usages.d.ts +6 -0
  198. package/dist/refusals/rewrite-usages.d.ts.map +1 -0
  199. package/dist/refusals/rewrite-usages.js +80 -0
  200. package/dist/refusals/rewrite-usages.js.map +1 -0
  201. package/dist/refusals/spec-parts.d.ts +8 -0
  202. package/dist/refusals/spec-parts.d.ts.map +1 -0
  203. package/dist/refusals/spec-parts.js +14 -0
  204. package/dist/refusals/spec-parts.js.map +1 -0
  205. package/dist/run.d.ts.map +1 -1
  206. package/dist/run.js +7 -1
  207. package/dist/run.js.map +1 -1
  208. package/dist/stack/stack-vars.d.ts.map +1 -1
  209. package/dist/stack/stack-vars.js +2 -1
  210. package/dist/stack/stack-vars.js.map +1 -1
  211. package/dist/version.d.ts +1 -1
  212. package/dist/version.js +1 -1
  213. package/package.json +2 -2
  214. package/templates/aggregate/aggregate.ts.tpl +5 -0
  215. package/templates/command/handler.declared.ts.tpl +5 -0
  216. package/templates/command/handler.ts.tpl +5 -0
  217. package/templates/docs/openapi.json.tpl +5 -0
  218. package/templates/entity/entity.ts.tpl +5 -0
  219. package/templates/error/case.spec.ts.tpl +8 -0
  220. package/templates/error/concept-error.spec.ts.tpl +7 -0
  221. package/templates/error/concept-error.ts.tpl +5 -0
  222. package/templates/error/factory.ts.tpl +4 -0
  223. package/templates/init/jest.config.js.tpl +7 -0
  224. package/templates/init/rules/domain.md.tpl +11 -0
  225. package/templates/init/rules/presentation.md.tpl +5 -0
  226. package/templates/pipeline/package-scripts.json +1 -1
  227. package/templates/route/route.class-validator.ts.tpl +1 -1
  228. package/templates/route/route.none.ts.tpl +1 -1
  229. package/templates/route/route.search.ts.tpl +1 -1
  230. package/templates/route/route.standard-schema.ts.tpl +1 -1
  231. package/templates/route/route.zod.ts.tpl +1 -1
  232. package/templates/value-object/value-object.ts.tpl +5 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-known-code.d.ts","sourceRoot":"","sources":["../../../src/check/rules/errors-known-code.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,eAAO,MAAM,eAAe,EAAE,IAc7B,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { buildsThroughFactories } from '../errors/builds-through-factories.js';
2
+ import { errorCodes } from '../errors/error-codes.js';
3
+ import { KIT_ERROR_CODES } from '../errors/kit-error-codes.js';
4
+ import { perFile } from '../support/per-file.js';
5
+ import { matchingBracket } from '../text/matching-bracket.js';
6
+ const ERRORS_LIST = /(?<![\w$.])errors\s*:\s*\[/g;
7
+ export const errorsKnownCode = {
8
+ id: 'errors/known-code',
9
+ description: 'Under "stack.refusals": "factories", every code a route declares in `errors` exists: a factory or an error class of its context sets it, a class outside the contexts does, or it is a code of the kit.',
10
+ scope: 'project',
11
+ run(project) {
12
+ if (!buildsThroughFactories(project)) {
13
+ return [];
14
+ }
15
+ const known = knownCodes(project);
16
+ return perFile(project, this.id, (file) => (isRouteFile(file) ? unknownCodes(file, known) : []));
17
+ },
18
+ };
19
+ /** The codes set outside the contexts (platform, shared kernel) under the key `*`, and those of each context under its name. */
20
+ function knownCodes(project) {
21
+ const known = new Map([['*', new Set(KIT_ERROR_CODES)]]);
22
+ for (const file of project.files.filter((candidate) => !candidate.isTest)) {
23
+ const owner = file.location.area === 'context' ? file.location.context : '*';
24
+ const codes = known.get(owner) ?? new Set();
25
+ for (const { code } of errorCodes(file.scan)) {
26
+ codes.add(code);
27
+ }
28
+ known.set(owner, codes);
29
+ }
30
+ return known;
31
+ }
32
+ function isRouteFile(file) {
33
+ return !file.isTest && file.path.endsWith('.route.ts');
34
+ }
35
+ function unknownCodes(file, known) {
36
+ const { scan, location } = file;
37
+ const context = location.area === 'context' ? location.context : '*';
38
+ const exists = (code) => known.get('*')?.has(code) === true || known.get(context)?.has(code) === true;
39
+ return [...scan.code.matchAll(ERRORS_LIST)].flatMap((match) => {
40
+ const open = match.index + match[0].length - 1;
41
+ const close = matchingBracket(scan.code, open);
42
+ return scan.strings
43
+ .filter((literal) => literal.start > open && literal.end <= close && !exists(literal.value))
44
+ .map((literal) => ({
45
+ line: scan.lineAt(literal.start),
46
+ message: `The route declares the error code "${literal.value}", which no refusal ${context === '*' ? 'of the project' : `of the context "${context}"`} sets.`,
47
+ fix: `Write the code as its factory sets it, or add the refusal: \`ddd-ts-kit generate error ${context === '*' ? '<context>' : context} <Concept> <refusal>\`. A code declared and never raised is a promise the contract makes for nothing.`,
48
+ }));
49
+ });
50
+ }
51
+ //# sourceMappingURL=errors-known-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors-known-code.js","sourceRoot":"","sources":["../../../src/check/rules/errors-known-code.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"language-glossary-term.d.ts","sourceRoot":"","sources":["../../../src/check/rules/language-glossary-term.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7C,eAAO,MAAM,oBAAoB,EAAE,IAqClC,CAAC"}
1
+ {"version":3,"file":"language-glossary-term.d.ts","sourceRoot":"","sources":["../../../src/check/rules/language-glossary-term.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7C,eAAO,MAAM,oBAAoB,EAAE,IAsClC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { Glossaries } from '../language/glossaries.js';
2
2
  import { unknownWords } from '../language/unknown-words.js';
3
+ import { buildsThroughFactories } from '../errors/builds-through-factories.js';
3
4
  import { inContext } from '../support/in-context.js';
4
5
  import { reporter } from '../support/reporter.js';
5
6
  import { toViolations } from '../support/to-violations.js';
@@ -7,13 +8,14 @@ const CLASS = /(?<![\w$.])class\s+([A-Za-z_$][\w$]*)/g;
7
8
  const DOMAIN_ROLES = new Set(['aggregates', 'entities', 'value-objects', 'services', 'events']);
8
9
  export const languageGlossaryTerm = {
9
10
  id: 'language/glossary-term',
10
- description: "Every aggregate, entity, value object, domain service, domain event, command and query is named with terms of the Ubiquitous language table of its context's CONTEXT.md.",
11
+ description: 'Every aggregate, entity, value object, domain service, domain event, command and query is named with terms of the Ubiquitous language table of its context\'s CONTEXT.md, and under "stack.refusals": "factories" every error class of domain/errors/ too.',
11
12
  scope: 'file',
12
13
  run(project) {
13
14
  const report = reporter(project, this.id);
14
15
  const glossaries = new Glossaries(project.root, project.config.contextsDir);
16
+ const roles = buildsThroughFactories(project) ? new Set([...DOMAIN_ROLES, 'errors']) : DOMAIN_ROLES;
15
17
  return project.files.flatMap((file) => {
16
- const context = conceptsContext(file);
18
+ const context = conceptsContext(file, roles);
17
19
  const classes = context === undefined ? [] : [...file.scan.code.matchAll(CLASS)];
18
20
  if (context === undefined || classes.length === 0) {
19
21
  return [];
@@ -53,8 +55,8 @@ function undefinedNames(file, classes, { glossary, context, doc }) {
53
55
  ];
54
56
  });
55
57
  }
56
- /** The context of a file whose classes are concepts of the model: the building blocks and the use case messages. */
57
- function conceptsContext(file) {
58
+ /** The context of a file whose classes are concepts of the model: the building blocks, the use case messages and, once errors are named after concepts, the error classes. */
59
+ function conceptsContext(file, roles) {
58
60
  if (!inContext(file.location) || file.isTest) {
59
61
  return undefined;
60
62
  }
@@ -63,6 +65,6 @@ function conceptsContext(file) {
63
65
  const isMessage = layer === 'application' &&
64
66
  (folder === 'commands' || folder === 'queries') &&
65
67
  /\.(?:command|query)\.ts$/.test(file.path);
66
- return (layer === 'domain' && DOMAIN_ROLES.has(folder)) || isMessage ? context : undefined;
68
+ return (layer === 'domain' && roles.has(folder)) || isMessage ? context : undefined;
67
69
  }
68
70
  //# sourceMappingURL=language-glossary-term.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"language-glossary-term.js","sourceRoot":"","sources":["../../../src/check/rules/language-glossary-term.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,MAAM,KAAK,GAAG,wCAAwC,CAAC;AACvD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhG,MAAM,CAAC,MAAM,oBAAoB,GAAS;IACxC,EAAE,EAAE,wBAAwB;IAC5B,WAAW,EACT,0KAA0K;IAC5K,KAAK,EAAE,MAAM;IACb,GAAG,CAAC,OAAO;QACT,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE5E,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAEjF,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEtC,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YACpG,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO;gBACL,MAAM,CACJ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,EACvC,gBAAgB,OAAO,iDAAiD,EACxE,aAAa,CAAC,GAAG,CAAC,CACnB;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC;AASF,SAAS,aAAa,CAAC,GAAW;IAChC,OAAO,uFAAuF,GAAG,oFAAoF,CAAC;AACxL,CAAC;AAED,SAAS,cAAc,CACrB,IAAgB,EAChB,OAAmC,EACnC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAY;IAEpC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,mCAAmC,GAAG,8CAA8C,CAAC;QAEjG,OAAO;YACL;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;gBACnC,OAAO,EAAE,GAAG,IAAI,SAAS,KAAK,4BAA4B,OAAO,oBAAoB;gBACrF,GAAG;aACJ;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oHAAoH;AACpH,SAAS,eAAe,CAAC,IAAgB;IACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;IACjD,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC;IAE7B,MAAM,SAAS,GACb,KAAK,KAAK,aAAa;QACvB,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,SAAS,CAAC;QAC/C,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7C,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"language-glossary-term.js","sourceRoot":"","sources":["../../../src/check/rules/language-glossary-term.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Command } from './command.js';
2
+ /**
3
+ * Moves a project from one class per error to static factories on one error class per concept:
4
+ * `--plan` writes the proposal to edit, `--apply` follows it.
5
+ */
6
+ export declare const errorFactoriesCommand: Command;
7
+ //# sourceMappingURL=error-factories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-factories.d.ts","sourceRoot":"","sources":["../../src/commands/error-factories.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAU5C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,OAuCnC,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { CliError } from '../cli-error.js';
2
+ import { readConfig } from '../config/index.js';
3
+ import { formatJson } from '../json/format-json.js';
4
+ import { applyPlan } from '../refusals/apply-plan.js';
5
+ import { legacyErrors } from '../refusals/legacy-errors.js';
6
+ import { MigrationDraft } from '../refusals/migration-draft.js';
7
+ import { PLAN_FILE } from '../refusals/plan-file.js';
8
+ import { proposePlan } from '../refusals/propose-plan.js';
9
+ import { readPlan } from '../refusals/read-plan.js';
10
+ import { Workspace } from '../workspace/index.js';
11
+ import { Arguments } from './arguments.js';
12
+ const MANUAL = [
13
+ 'Run the formatter, then the checks: a factory keeps the parameters and the message of its constructor.',
14
+ 'Decide which facts a client may read: none is exposed, add `.exposing(..)` in the factory of each one that may.',
15
+ 'A factory whose only parameter is a sentence (`rule: string`) still takes an ad hoc message: split it into one factory per rule when the rules are few.',
16
+ 'Assert the facts in the specs (`expectRefusal`, `thenError(code, facts)`), and delete the plan file.',
17
+ ];
18
+ /**
19
+ * Moves a project from one class per error to static factories on one error class per concept:
20
+ * `--plan` writes the proposal to edit, `--apply` follows it.
21
+ */
22
+ export const errorFactoriesCommand = (argv, io) => {
23
+ const args = Arguments.parse(argv, {
24
+ plan: { type: 'boolean', default: false },
25
+ apply: { type: 'boolean', default: false },
26
+ 'dry-run': { type: 'boolean', default: false },
27
+ });
28
+ const ws = new Workspace(args.projectRoot, false);
29
+ const { config } = readConfig(args.projectRoot);
30
+ const draft = new MigrationDraft(ws);
31
+ if (args.flag('plan') === args.flag('apply')) {
32
+ throw new CliError('error-factories needs --plan or --apply.', `Run \`ddd-ts-kit error-factories --plan\`, give each entry of ${PLAN_FILE} its concept, then run \`ddd-ts-kit error-factories --apply\`.`);
33
+ }
34
+ if (args.flag('plan')) {
35
+ draft.write(PLAN_FILE, formatJson(proposePlan(legacyErrors(ws, config), { ws, config })));
36
+ }
37
+ const moves = args.flag('apply') ? applyPlan({ ws, config }, readPlan(ws.read(PLAN_FILE)), draft) : [];
38
+ const outcome = {
39
+ dryRun: args.flag('dry-run'),
40
+ moved: moves.map(({ move }) => `${move.className} -> ${move.conceptClass}.${move.factory}`),
41
+ written: draft.written,
42
+ removed: draft.removed,
43
+ manual: [...draft.manual, ...(moves.length > 0 ? MANUAL : [])],
44
+ };
45
+ if (!outcome.dryRun) {
46
+ draft.commit();
47
+ }
48
+ print(io, args.json, outcome);
49
+ return 0;
50
+ };
51
+ function print(io, json, outcome) {
52
+ if (json) {
53
+ io.out(JSON.stringify(outcome, null, 2));
54
+ return;
55
+ }
56
+ const verb = (done) => (outcome.dryRun ? `would ${done}` : done).padEnd(14);
57
+ const lines = [
58
+ ...outcome.moved.map((move) => `${verb('move')}${move}`),
59
+ ...outcome.written.map((file) => `${verb('write')}${file}`),
60
+ ...outcome.removed.map((file) => `${verb('remove')}${file}`),
61
+ ...(outcome.manual.length > 0 ? ['', 'Left to you:', ...outcome.manual.map((line) => ` - ${line}`)] : []),
62
+ ];
63
+ io.out(lines.length > 0 ? lines.join('\n') : 'Nothing to do.');
64
+ }
65
+ //# sourceMappingURL=error-factories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-factories.js","sourceRoot":"","sources":["../../src/commands/error-factories.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AA0B5C,eAAO,MAAM,WAAW,EAAE,OA6BzB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AA2B5C,eAAO,MAAM,WAAW,EAAE,OA6BzB,CAAC"}
@@ -23,6 +23,7 @@ const STACK_FLAGS = [
23
23
  'style',
24
24
  'assembly',
25
25
  'dependencies',
26
+ 'refusals',
26
27
  ];
27
28
  const OTHER_TEXT_FLAGS = ['docs-ui', 'allow-no-outbox', 'import-alias', 'import-extension', 'package-manager'];
28
29
  export const initCommand = (argv, io) => {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -22,5 +22,5 @@ export { RELATIONSHIPS } from './relationships.js';
22
22
  export { restackConfigText } from './restack-config-text.js';
23
23
  export { serializeConfig } from './serialize-config.js';
24
24
  export { SEVERITIES, type Severity } from './severities.js';
25
- export { ASSEMBLIES, AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, DATABASE_STACKS, DEPENDENCY_STATEMENTS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_STACKS, LOGGERS, ORM_STACKS, PACKAGE_MANAGERS, STYLES, TEST_STACKS, VALIDATION_STACKS, type OrmStack, type Stack, } from './stack.js';
25
+ export { ASSEMBLIES, AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, DATABASE_STACKS, DEPENDENCY_STATEMENTS, REFUSAL_FORMS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_STACKS, LOGGERS, ORM_STACKS, PACKAGE_MANAGERS, STYLES, TEST_STACKS, VALIDATION_STACKS, type OrmStack, type Stack, } from './stack.js';
26
26
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,KAAK,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,iBAAiB,EACjB,KAAK,QAAQ,EACb,KAAK,KAAK,GACX,MAAM,YAAY,CAAC"}
@@ -20,5 +20,5 @@ export { RELATIONSHIPS } from './relationships.js';
20
20
  export { restackConfigText } from './restack-config-text.js';
21
21
  export { serializeConfig } from './serialize-config.js';
22
22
  export { SEVERITIES } from './severities.js';
23
- export { ASSEMBLIES, AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, DATABASE_STACKS, DEPENDENCY_STATEMENTS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_STACKS, LOGGERS, ORM_STACKS, PACKAGE_MANAGERS, STYLES, TEST_STACKS, VALIDATION_STACKS, } from './stack.js';
23
+ export { ASSEMBLIES, AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, DATABASE_STACKS, DEPENDENCY_STATEMENTS, REFUSAL_FORMS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, HTTP_STACKS, LOGGERS, ORM_STACKS, PACKAGE_MANAGERS, STYLES, TEST_STACKS, VALIDATION_STACKS, } from './stack.js';
24
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAiB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,iBAAiB,GAGlB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAiB,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,QAAQ,EACR,eAAe,EACf,WAAW,EACX,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,iBAAiB,GAGlB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-stack.d.ts","sourceRoot":"","sources":["../../src/config/parse-stack.ts"],"names":[],"mappings":"AAGA,OAAO,EAqBL,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AAIpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAmBhE"}
1
+ {"version":3,"file":"parse-stack.d.ts","sourceRoot":"","sources":["../../src/config/parse-stack.ts"],"names":[],"mappings":"AAGA,OAAO,EAsBL,KAAK,KAAK,EACX,MAAM,YAAY,CAAC;AAIpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAoBhE"}
@@ -1,7 +1,7 @@
1
1
  import { CliError } from '../cli-error.js';
2
2
  import { CONFIG_FILE } from './config-file.js';
3
3
  import { isOneOf } from './is-one-of.js';
4
- import { ASSEMBLIES, AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, DATABASE_STACKS, DEPENDENCY_STATEMENTS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, EVENT_STACKS, HTTP_STACKS, LOGGERS, ORM_STACKS, PACKAGE_MANAGERS, STYLES, TEST_STACKS, VALIDATION_STACKS, } from './stack.js';
4
+ import { ASSEMBLIES, AUDIT_MODES, AUTHN_STACKS, AUTHZ_STACKS, BROKER_STACKS, CACHE_STACKS, CI_PLATFORMS, DATABASE_STACKS, DEPENDENCY_STATEMENTS, DI_STACKS, DOCS_UIS, ERROR_REPORTERS, EVENT_STACKS, HTTP_STACKS, LOGGERS, ORM_STACKS, PACKAGE_MANAGERS, REFUSAL_FORMS, STYLES, TEST_STACKS, VALIDATION_STACKS, } from './stack.js';
5
5
  export function parseStack(stack) {
6
6
  const choose = (key, values, fallback) => pick(values, stack[key], { fallback, key: `stack.${key}` });
7
7
  const http = choose('http', HTTP_STACKS, 'express');
@@ -18,6 +18,7 @@ export function parseStack(stack) {
18
18
  docsUi: choose('docsUi', DOCS_UIS, http === 'none' ? 'none' : 'swagger'),
19
19
  ci: choose('ci', CI_PLATFORMS, 'github'),
20
20
  ...parseChoices(choose, orm),
21
+ refusals: choose('refusals', REFUSAL_FORMS, 'classes'),
21
22
  packageManager: choose('packageManager', PACKAGE_MANAGERS, 'npm'),
22
23
  };
23
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse-stack.js","sourceRoot":"","sources":["../../src/config/parse-stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-stack.js","sourceRoot":"","sources":["../../src/config/parse-stack.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare const BROKER_STACKS: readonly ['none', 'rabbitmq', 'kafka', 'nats
13
13
  export declare const STYLES: readonly ['declared', 'explicit'];
14
14
  export declare const ASSEMBLIES: readonly ['barrel', 'discovery'];
15
15
  export declare const DEPENDENCY_STATEMENTS: readonly ['signature', 'listed'];
16
+ export declare const REFUSAL_FORMS: readonly ['factories', 'classes'];
16
17
  export declare const CACHE_STACKS: readonly ['none', 'redis'];
17
18
  export declare const AUDIT_MODES: readonly ['on', 'off'];
18
19
  export declare const ERROR_REPORTERS: readonly ['none', 'sentry'];
@@ -62,6 +63,14 @@ export interface Stack {
62
63
  * every decorator listed its dependencies: it is `listed`, and both forms run in either.
63
64
  */
64
65
  readonly dependencies: (typeof DEPENDENCY_STATEMENTS)[number];
66
+ /**
67
+ * How a domain error is written: `factories`, one error class per concept of the model, each
68
+ * refusal built by a static factory named in the words of the business
69
+ * (`AppointmentError.slotTaken(..)`), which the `errors/*` rules hold; `classes`, one class per
70
+ * error, built with `new`. A config that says nothing was written when every error was a
71
+ * class: it is `classes`, and both forms run in either.
72
+ */
73
+ readonly refusals: (typeof REFUSAL_FORMS)[number];
65
74
  /**
66
75
  * What installs the dependencies and runs the scripts: every command the CLI writes (scripts,
67
76
  * pipelines, hooks, Dockerfile, guidance) is in its dialect. A config that says nothing was
@@ -1 +1 @@
1
- {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/config/stack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../src/config/stack.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export const BROKER_STACKS = ['none', 'rabbitmq', 'kafka', 'nats', 'redis', 'cus
13
13
  export const STYLES = ['declared', 'explicit'];
14
14
  export const ASSEMBLIES = ['barrel', 'discovery'];
15
15
  export const DEPENDENCY_STATEMENTS = ['signature', 'listed'];
16
+ export const REFUSAL_FORMS = ['factories', 'classes'];
16
17
  export const CACHE_STACKS = ['none', 'redis'];
17
18
  export const AUDIT_MODES = ['on', 'off'];
18
19
  export const ERROR_REPORTERS = ['none', 'sentry'];
@@ -1 +1 @@
1
- {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/config/stack.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAU,CAAC;AAChG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAC3F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAU,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAC/F,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAU,CAAC;AACtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC"}
1
+ {"version":3,"file":"stack.js","sourceRoot":"","sources":["../../src/config/stack.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAU,CAAC;AAChG,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AACvE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAC3F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAU,CAAC;AACjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AACzE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AAC/F,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,UAAU,EAAE,UAAU,CAAU,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAU,CAAC;AACtE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AACvD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;AAClD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC;AAC3D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAC9D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAU,CAAC"}
@@ -23,6 +23,8 @@ export interface ContextDescription {
23
23
  readonly publishedEvents: readonly PublishedEventFact[];
24
24
  readonly ports: readonly PortFact[];
25
25
  readonly policies: readonly PolicyFact[];
26
+ /** The refusals of the domain, by error class and code. */
27
+ readonly errors: readonly ErrorFact[];
26
28
  /** The projectors, `application/projections/*.projection.ts`: each keeps one read model up to date. */
27
29
  readonly projections: readonly ProjectionFact[];
28
30
  readonly gateways: readonly GatewayFact[];
@@ -86,6 +88,16 @@ export interface PolicyFact {
86
88
  readonly permission: string;
87
89
  readonly file: string;
88
90
  }
91
+ export interface ErrorFact {
92
+ /** The error class: the one of a concept, or the class of one error in the form of 0.2. */
93
+ readonly errorClass: string;
94
+ /** The static factory that builds the refusal; empty for a class per error. */
95
+ readonly refusal: string;
96
+ readonly code: string;
97
+ /** The facts the factory lets a client read, by name: the others stay in the process. */
98
+ readonly exposes: readonly string[];
99
+ readonly file: string;
100
+ }
89
101
  export interface ProjectionFact {
90
102
  /** `<context>.<name>`, the consumer the projection is subscribed as; empty when it is not written as a literal. */
91
103
  readonly name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"context-description.d.ts","sourceRoot":"","sources":["../../src/describe/context-description.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-description.d.ts","sourceRoot":"","sources":["../../src/describe/context-description.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"describe-context.d.ts","sourceRoot":"","sources":["../../src/describe/describe-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAoC,MAAM,0BAA0B,CAAC;AAcrG;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,kBAAkB,CA8BtG"}
1
+ {"version":3,"file":"describe-context.d.ts","sourceRoot":"","sources":["../../src/describe/describe-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAoC,MAAM,0BAA0B,CAAC;AAerG;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,kBAAkB,CA+BtG"}
@@ -1,5 +1,6 @@
1
1
  import { readAdapters } from './read-adapters.js';
2
2
  import { readConsumedEvents } from './read-consumed-events.js';
3
+ import { readErrors } from './read-errors.js';
3
4
  import { readPolicies } from './read-policies.js';
4
5
  import { readPorts } from './read-ports.js';
5
6
  import { readProjections } from './read-projections.js';
@@ -34,6 +35,7 @@ export function describeContext(ws, config, facts) {
34
35
  publishedEvents: readPublishedEvents(sources),
35
36
  ports,
36
37
  policies: readPolicies(sources),
38
+ errors: readErrors(sources),
37
39
  projections: readProjections(sources),
38
40
  gateways: gatewaysOf(ports, adapters),
39
41
  jobs: facts.jobs,
@@ -1 +1 @@
1
- {"version":3,"file":"describe-context.js","sourceRoot":"","sources":["../../src/describe/describe-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describe-context.js","sourceRoot":"","sources":["../../src/describe/describe-context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-description.d.ts","sourceRoot":"","sources":["../../src/describe/format-description.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAKnB,MAAM,0BAA0B,CAAC;AAElC,uGAAuG;AACvG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA0BrE"}
1
+ {"version":3,"file":"format-description.d.ts","sourceRoot":"","sources":["../../src/describe/format-description.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,kBAAkB,EAMnB,MAAM,0BAA0B,CAAC;AAElC,uGAAuG;AACvG,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA2BrE"}
@@ -10,6 +10,7 @@ export function formatDescription(context) {
10
10
  ['published events', context.publishedEvents.map(publishedEventLine)],
11
11
  ['ports', context.ports.map(portLine)],
12
12
  ['policies', context.policies.map((policy) => `${policy.name} (on ${known(policy.permission)})`)],
13
+ ['errors', context.errors.map(errorLine)],
13
14
  [
14
15
  'projections',
15
16
  context.projections.map((projection) => `${projection.name} (${projection.projector}, applies ${projection.applies.join(', ')})`),
@@ -23,6 +24,10 @@ export function formatDescription(context) {
23
24
  ` contracts: ${context.contracts.openapi}, ${context.contracts.eventCatalog}`,
24
25
  ].join('\n');
25
26
  }
27
+ function errorLine({ errorClass, refusal, code, exposes }) {
28
+ const built = refusal === '' ? errorClass : `${errorClass}.${refusal}`;
29
+ return `${code} (${built}${exposes.length === 0 ? '' : `, exposes ${exposes.join(', ')}`})`;
30
+ }
26
31
  function headingLines(context) {
27
32
  return [
28
33
  `${context.name} [${context.classification}]${context.deployable ? ' (deployable alone)' : ''}`,
@@ -1 +1 @@
1
- {"version":3,"file":"format-description.js","sourceRoot":"","sources":["../../src/describe/format-description.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-description.js","sourceRoot":"","sources":["../../src/describe/format-description.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ErrorFact } from './context-description.js';
2
+ import type { ContextSources } from './context-sources.js';
3
+ /**
4
+ * The refusals of a context: one row per static factory of an error class, with its code and
5
+ * the facts it exposes, and one row per class that carries its code itself, as 0.2 wrote them.
6
+ */
7
+ export declare function readErrors({ ws, directory }: ContextSources): ErrorFact[];
8
+ //# sourceMappingURL=read-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-errors.d.ts","sourceRoot":"","sources":["../../src/describe/read-errors.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM3D;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,cAAc,GAAG,SAAS,EAAE,CAUzE"}
@@ -0,0 +1,52 @@
1
+ import { errorCodes } from '../check/errors/error-codes.js';
2
+ import { wholeLiteral } from '../check/declarations/whole-literal.js';
3
+ import { scan } from '../check/scan/scan.js';
4
+ import { callArguments } from '../check/text/call-arguments.js';
5
+ import { matchingBracket } from '../check/text/matching-bracket.js';
6
+ import { staticMethods } from '../generate/errors/static-methods.js';
7
+ const FOLDER = 'domain/errors';
8
+ const CLASS = /(?<![\w$.])class\s+([A-Za-z_$][\w$]*)[^{]*\{/g;
9
+ const EXPOSING = /\.\s*exposing\s*\(/g;
10
+ /**
11
+ * The refusals of a context: one row per static factory of an error class, with its code and
12
+ * the facts it exposes, and one row per class that carries its code itself, as 0.2 wrote them.
13
+ */
14
+ export function readErrors({ ws, directory }) {
15
+ return ws
16
+ .list(`${directory}/${FOLDER}`)
17
+ .filter((name) => name.endsWith('.error.ts'))
18
+ .flatMap((name) => {
19
+ const file = `${directory}/${FOLDER}/${name}`;
20
+ const scanned = scan(ws.read(file) ?? '');
21
+ return [...scanned.code.matchAll(CLASS)].flatMap((declared) => errorsOf(scanned, declared, file));
22
+ });
23
+ }
24
+ function errorsOf(scanned, declared, file) {
25
+ const errorClass = declared[1] ?? '';
26
+ const body = { open: declared.index + declared[0].length - 1, close: 0 };
27
+ const within = { ...body, close: matchingBracket(scanned.code, body.open) };
28
+ const built = staticMethods(scanned.code, within).flatMap((method) => {
29
+ const [code] = codesIn(scanned, method);
30
+ return code === undefined
31
+ ? []
32
+ : [{ errorClass, refusal: method.name, code, exposes: exposedBy(scanned, method), file }];
33
+ });
34
+ const own = errorCodes(scanned)
35
+ .filter(({ code }) => !built.some((fact) => fact.code === code))
36
+ .map(({ code }) => ({ errorClass, refusal: '', code, exposes: [], file }));
37
+ return [...built, ...(built.length === 0 ? own : [])];
38
+ }
39
+ function codesIn(scanned, method) {
40
+ const starts = scanned.lineAt(method.open);
41
+ const ends = scanned.lineAt(method.end);
42
+ return errorCodes(scanned)
43
+ .filter(({ line }) => line >= starts && line <= ends)
44
+ .map(({ code }) => code);
45
+ }
46
+ function exposedBy(scanned, method) {
47
+ return [...scanned.code.matchAll(EXPOSING)]
48
+ .filter((match) => match.index > method.open && match.index < method.end)
49
+ .flatMap((match) => callArguments(scanned.code, match.index + match[0].length - 1))
50
+ .flatMap((argument) => wholeLiteral(scanned, argument) ?? []);
51
+ }
52
+ //# sourceMappingURL=read-errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-errors.js","sourceRoot":"","sources":["../../src/describe/read-errors.ts"],"names":[],"mappings":"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"}