ddd-ts-kit 0.18.0 → 0.19.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 (37) hide show
  1. package/CHANGELOG.md +1273 -0
  2. package/README.fr.md +2 -1
  3. package/README.md +1 -0
  4. package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
  5. package/dist/check/catalogue/architecture-rules.js +2 -0
  6. package/dist/check/catalogue/architecture-rules.js.map +1 -1
  7. package/dist/check/explain/events-docs.d.ts.map +1 -1
  8. package/dist/check/explain/events-docs.js +13 -2
  9. package/dist/check/explain/events-docs.js.map +1 -1
  10. package/dist/check/fixtures/event-sourcing-fixtures.js +3 -3
  11. package/dist/check/fixtures/event-sourcing-fixtures.js.map +1 -1
  12. package/dist/check/fixtures/events-fixtures.d.ts.map +1 -1
  13. package/dist/check/fixtures/events-fixtures.js +30 -1
  14. package/dist/check/fixtures/events-fixtures.js.map +1 -1
  15. package/dist/check/fixtures/language-fixtures.d.ts.map +1 -1
  16. package/dist/check/fixtures/language-fixtures.js +1 -1
  17. package/dist/check/fixtures/language-fixtures.js.map +1 -1
  18. package/dist/check/rules/events-name-declared-once.d.ts +3 -0
  19. package/dist/check/rules/events-name-declared-once.d.ts.map +1 -0
  20. package/dist/check/rules/events-name-declared-once.js +51 -0
  21. package/dist/check/rules/events-name-declared-once.js.map +1 -0
  22. package/dist/init/manifest/versions.js +24 -24
  23. package/dist/progress/format-progress.js +4 -0
  24. package/dist/progress/format-progress.js.map +1 -1
  25. package/dist/progress/progress.d.ts +2 -0
  26. package/dist/progress/progress.d.ts.map +1 -1
  27. package/dist/progress/read-progress.js +1 -0
  28. package/dist/progress/read-progress.js.map +1 -1
  29. package/dist/progress/read-slices.d.ts +5 -1
  30. package/dist/progress/read-slices.d.ts.map +1 -1
  31. package/dist/progress/read-slices.js +17 -7
  32. package/dist/progress/read-slices.js.map +1 -1
  33. package/dist/version.d.ts +1 -1
  34. package/dist/version.js +1 -1
  35. package/package.json +5 -3
  36. package/templates/init/rules/domain.md.tpl +1 -1
  37. package/templates/pipeline/package-scripts.json +1 -1
package/README.fr.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [English](README.md) · **Français**
2
- <!-- translation-of: README.md sha256:bed804ca4ed40c91 -->
2
+ <!-- translation-of: README.md sha256:fa841c4ea81f2c5d -->
3
3
 
4
4
  # ddd-ts-kit
5
5
 
@@ -1265,6 +1265,7 @@ règle.
1265
1265
  | `test/no-mocks` | `vi.mock`, `vi.fn`, `vi.spyOn`, leurs jumeaux `jest`, ou une bibliothèque de *mocks* dans les tests d'un contexte |
1266
1266
  | `test/builder-required` | un agrégat sans `test/builders/<name>.builder.ts` |
1267
1267
  | `events/name-format` | un nom d'événement qui n'est pas `<context>.<aggregate>.<fact>` en kebab-case avec le bon contexte |
1268
+ | `events/name-declared-once` | une classe de `domain/events/` sans `static readonly eventName`, ou dont le `readonly name` écrit le nom une seconde fois au lieu de le lire |
1268
1269
  | `events/defined-in-published-language` | `defineIntegrationEvent` hors d'un langage publié, sans charge utile, deux fois pour une même version ; un événement décrit à la main |
1269
1270
  | `language/glossary-term` | une classe du modèle nommée avec un mot que le glossaire de son contexte ne définit pas ; un glossaire vide ; sous `"stack.refusals": "factories"`, une classe d'erreur de `domain/errors/` aussi |
1270
1271
  | `language/declared-vocabulary` | une chaîne littérale dont la valeur est une valeur d'un vocabulaire fermé que le projet déclare (un objet `as const` exporté avec le type union de son nom, un ensemble de permissions de `definePermissions`), hors du fichier qui le déclare, à l'endroit qui parle son langage (son contexte ; la plateforme et les groupes de routes pour la plateforme ; partout pour un identifiant de permission ou le noyau partagé) ; les tests, les langages publiés et le schéma de relations ne sont pas jugés ; sous `"stack.literals": "named"` |
package/README.md CHANGED
@@ -1208,6 +1208,7 @@ const due = handler.isDueNow(new Reminder(new Date('2026-03-01T09:00:00Z'))); //
1208
1208
  | `test/no-mocks` | `vi.mock`, `vi.fn`, `vi.spyOn`, their `jest` twins, or a mocking library in a context's tests |
1209
1209
  | `test/builder-required` | an aggregate without `test/builders/<name>.builder.ts` |
1210
1210
  | `events/name-format` | an event name that is not `<context>.<aggregate>.<fact>` in kebab-case with the right context |
1211
+ | `events/name-declared-once` | a class of `domain/events/` without `static readonly eventName`, or whose `readonly name` writes the name again instead of reading it |
1211
1212
  | `events/defined-in-published-language` | `defineIntegrationEvent` outside a published language, without a payload, twice for one version; an event described by hand |
1212
1213
  | `language/glossary-term` | a class of the model named with a word the glossary of its context does not define; an empty glossary; under `"stack.refusals": "factories"`, an error class of `domain/errors/` too |
1213
1214
  | `language/declared-vocabulary` | a string literal whose value is a value of a closed vocabulary the project declares (an object `as const` exported with the union type of its name, a permission set of `definePermissions`), outside the file that declares it, in the place that speaks its language (its context; the platform and the route groups for the platform; everywhere for a permission id or the shared kernel); tests, published languages and the relationship schema are not judged; under `"stack.literals": "named"` |
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-rules.d.ts","sourceRoot":"","sources":["../../../src/check/catalogue/architecture-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAmF7C,gHAAgH;AAChH,eAAO,MAAM,kBAAkB,EAAE,SAAS,IAAI,EAkF7C,CAAC"}
1
+ {"version":3,"file":"architecture-rules.d.ts","sourceRoot":"","sources":["../../../src/check/catalogue/architecture-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAoF7C,gHAAgH;AAChH,eAAO,MAAM,kBAAkB,EAAE,SAAS,IAAI,EAmF7C,CAAC"}
@@ -37,6 +37,7 @@ import { errorsKnownCode } from '../rules/errors-known-code.js';
37
37
  import { filesPortNotConnector } from '../rules/files-port-not-connector.js';
38
38
  import { eventsConsumerIdempotent } from '../rules/events-consumer-idempotent.js';
39
39
  import { eventsDefinedInPublishedLanguage } from '../rules/events-defined-in-published-language.js';
40
+ import { eventsNameDeclaredOnce } from '../rules/events-name-declared-once.js';
40
41
  import { eventsNameFormat } from '../rules/events-name-format.js';
41
42
  import { eventsOutboxRequired } from '../rules/events-outbox-required.js';
42
43
  import { governanceRecordedDeviation } from '../rules/governance-recorded-deviation.js';
@@ -99,6 +100,7 @@ export const ARCHITECTURE_RULES = [
99
100
  schemaNoDuplicateShape,
100
101
  testSpecRequired,
101
102
  eventsNameFormat,
103
+ eventsNameDeclaredOnce,
102
104
  eventsDefinedInPublishedLanguage,
103
105
  testNoMocks,
104
106
  testBuilderRequired,
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-rules.js","sourceRoot":"","sources":["../../../src/check/catalogue/architecture-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"architecture-rules.js","sourceRoot":"","sources":["../../../src/check/catalogue/architecture-rules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events-docs.d.ts","sourceRoot":"","sources":["../../../src/check/explain/events-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6FzD,CAAC"}
1
+ {"version":3,"file":"events-docs.d.ts","sourceRoot":"","sources":["../../../src/check/explain/events-docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwGzD,CAAC"}
@@ -1,8 +1,19 @@
1
1
  export const EVENTS_DOCS = {
2
2
  'events/name-format': {
3
3
  why: 'Event names are routing keys and part of the public contract. A uniform <context>.<aggregate>.<fact> name tells who owns the event and what happened, and never collides across contexts.',
4
- bad: `readonly name = 'InvoiceIssued';`,
5
- good: `readonly name = 'billing.invoice.issued';`,
4
+ bad: `static readonly eventName = 'InvoiceIssued';`,
5
+ good: `static readonly eventName = 'billing.invoice.issued';`,
6
+ },
7
+ 'events/name-declared-once': {
8
+ why: 'A domain event handler and a projection are attached under the name the event class declares, static readonly eventName: the compiler refuses a reaction to an event class without it. Checked on every domain event, a missing name is found when the event is written, not later when someone first reacts to it. A name written a second time, as a literal in readonly name, drifts from the one the reactions read.',
9
+ bad: `export class InvoiceIssued implements DomainEvent {
10
+ readonly name = 'billing.invoice.issued';
11
+ }`,
12
+ good: `export class InvoiceIssued implements DomainEvent {
13
+ static readonly eventName = 'billing.invoice.issued';
14
+
15
+ readonly name = InvoiceIssued.eventName;
16
+ }`,
6
17
  },
7
18
  'events/defined-in-published-language': {
8
19
  why: 'Integration events are the only way two contexts communicate, so their shape is a public contract. One declaration with a payload schema gives the type, validates what is published and consumed, and feeds the generated catalog and AsyncAPI document. An event described by hand, or declared twice, drifts from what is really sent.',
@@ -1 +1 @@
1
- {"version":3,"file":"events-docs.js","sourceRoot":"","sources":["../../../src/check/explain/events-docs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAsC;IAC5D,oBAAoB,EAAE;QACpB,GAAG,EAAE,2LAA2L;QAChM,GAAG,EAAE,kCAAkC;QACvC,IAAI,EAAE,2CAA2C;KAClD;IACD,sCAAsC,EAAE;QACtC,GAAG,EAAE,2UAA2U;QAChV,GAAG,EAAE;uEAC8D;QACnE,IAAI,EAAE;;;IAGN;KACD;IACD,wBAAwB,EAAE;QACxB,GAAG,EAAE,wVAAwV;QAC7V,GAAG,EAAE;;;qDAG4C;QACjD,IAAI,EAAE;;;yDAG+C;KACtD;IACD,4BAA4B,EAAE;QAC5B,GAAG,EAAE,mlBAAmlB;QACxlB,GAAG,EAAE;;;uEAG8D;QACnE,IAAI,EAAE;;;;;;;;EAQR;KACC;IACD,kCAAkC,EAAE;QAClC,GAAG,EAAE,svBAAsvB;QAC3vB,GAAG,EAAE;;;;sDAI6C;QAClD,IAAI,EAAE;;;;;qCAK2B;KAClC;IACD,2CAA2C,EAAE;QAC3C,GAAG,EAAE,uxDAAuxD;QAC5xD,GAAG,EAAE;;;;;;;;;;sFAU6E;QAClF,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;EAsBR;KACC;CACF,CAAC"}
1
+ {"version":3,"file":"events-docs.js","sourceRoot":"","sources":["../../../src/check/explain/events-docs.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAsC;IAC5D,oBAAoB,EAAE;QACpB,GAAG,EAAE,2LAA2L;QAChM,GAAG,EAAE,8CAA8C;QACnD,IAAI,EAAE,uDAAuD;KAC9D;IACD,2BAA2B,EAAE;QAC3B,GAAG,EAAE,0ZAA0Z;QAC/Z,GAAG,EAAE;;EAEP;QACE,IAAI,EAAE;;;;EAIR;KACC;IACD,sCAAsC,EAAE;QACtC,GAAG,EAAE,2UAA2U;QAChV,GAAG,EAAE;uEAC8D;QACnE,IAAI,EAAE;;;IAGN;KACD;IACD,wBAAwB,EAAE;QACxB,GAAG,EAAE,wVAAwV;QAC7V,GAAG,EAAE;;;qDAG4C;QACjD,IAAI,EAAE;;;yDAG+C;KACtD;IACD,4BAA4B,EAAE;QAC5B,GAAG,EAAE,mlBAAmlB;QACxlB,GAAG,EAAE;;;uEAG8D;QACnE,IAAI,EAAE;;;;;;;;EAQR;KACC;IACD,kCAAkC,EAAE;QAClC,GAAG,EAAE,svBAAsvB;QAC3vB,GAAG,EAAE;;;;sDAI6C;QAClD,IAAI,EAAE;;;;;qCAK2B;KAClC;IACD,2CAA2C,EAAE;QAC3C,GAAG,EAAE,uxDAAuxD;QAC5xD,GAAG,EAAE;;;;;;;;;;sFAU6E;QAClF,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;EAsBR;KACC;CACF,CAAC"}
@@ -20,8 +20,8 @@ const PRESENT_EVENT = `${BILLING}/domain/events/issue-invoice.event.ts`;
20
20
  const CODEC = `${BILLING}/infrastructure/persistence/invoice-events.mapper.ts`;
21
21
  const STORE_ADAPTER = `${BILLING}/infrastructure/persistence/event-store-invoice.repository.ts`;
22
22
  const EVENTS = {
23
- [EVENT]: source("export class InvoiceIssued {\n readonly name = 'billing.invoice.issued';\n\n constructor(\n readonly aggregateId: string,\n readonly amount: number,\n ) {}\n}"),
24
- [PRESENT_EVENT]: source("export class IssueInvoice {\n readonly name = 'billing.invoice.issued';\n\n constructor(readonly aggregateId: string) {}\n}"),
23
+ [EVENT]: source("export class InvoiceIssued {\n static readonly eventName = 'billing.invoice.issued';\n\n readonly name = InvoiceIssued.eventName;\n\n constructor(\n readonly aggregateId: string,\n readonly amount: number,\n ) {}\n}"),
24
+ [PRESENT_EVENT]: source("export class IssueInvoice {\n static readonly eventName = 'billing.invoice.issued';\n\n readonly name = IssueInvoice.eventName;\n\n constructor(readonly aggregateId: string) {}\n}"),
25
25
  };
26
26
  const RECORDING = ['this.record(new InvoiceIssued(this.id, amount));'];
27
27
  const APPLYING = ['this.amount = event.amount;'];
@@ -74,7 +74,7 @@ function namedEvent(name, eventClass, expect) {
74
74
  name,
75
75
  expect,
76
76
  files: project({
77
- [`${BILLING}/domain/events/${file}.event.ts`]: source(`export class ${eventClass} {\n readonly name = 'billing.invoice.price-set';\n\n constructor(readonly aggregateId: string) {}\n}`),
77
+ [`${BILLING}/domain/events/${file}.event.ts`]: source(`export class ${eventClass} {\n static readonly eventName = 'billing.invoice.price-set';\n\n readonly name = ${eventClass}.eventName;\n\n constructor(readonly aggregateId: string) {}\n}`),
78
78
  ...invoice([`this.record(new ${eventClass}(this.id));`], APPLYING, imported),
79
79
  }, { [`${BILLING}/CONTEXT.md`]: contextDoc('core', undefined, PRICED_GLOSSARY) }),
80
80
  };
@@ -1 +1 @@
1
- {"version":3,"file":"event-sourcing-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/event-sourcing-fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-sourcing-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/event-sourcing-fixtures.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"events-fixtures.d.ts","sourceRoot":"","sources":["../../../src/check/fixtures/events-fixtures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,eAAO,MAAM,eAAe,EAAE,SAAS,OAAO,EA+E7C,CAAC"}
1
+ {"version":3,"file":"events-fixtures.d.ts","sourceRoot":"","sources":["../../../src/check/fixtures/events-fixtures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,eAAO,MAAM,eAAe,EAAE,SAAS,OAAO,EA8G7C,CAAC"}
@@ -10,7 +10,7 @@ export const EVENTS_FIXTURES = [
10
10
  name: 'context.aggregate.fact names',
11
11
  expect: 'pass',
12
12
  files: project({
13
- [EVENT]: "export class InvoiceIssued {\n readonly name = 'billing.invoice.issued';\n readonly label: string = 'Invoice issued';\n}\n",
13
+ [EVENT]: "export class InvoiceIssued {\n static readonly eventName = 'billing.invoice.issued';\n\n readonly name = InvoiceIssued.eventName;\n readonly label: string = 'Invoice issued';\n}\n",
14
14
  [PUBLISHED]: `${DECLARE}${declaration('billing.invoice.marked-as-paid')}`,
15
15
  [`${BILLING}/published-language/invoice-summary.ts`]: "export interface InvoiceSummary { readonly type: 'standard' | 'credit-note' }\n",
16
16
  }),
@@ -19,6 +19,7 @@ export const EVENTS_FIXTURES = [
19
19
  ruleId: 'events/name-format',
20
20
  name: 'a domain event named like its class',
21
21
  expect: { file: EVENT },
22
+ also: ['events/name-declared-once'],
22
23
  files: project({ [EVENT]: "export class InvoiceIssued {\n readonly name = 'InvoiceIssued';\n}\n" }),
23
24
  },
24
25
  {
@@ -35,6 +36,34 @@ export const EVENTS_FIXTURES = [
35
36
  expect: { file: PUBLISHED },
36
37
  files: project({ [PUBLISHED]: `${DECLARE}${declaration('catalog.invoice.issued')}` }),
37
38
  },
39
+ {
40
+ ruleId: 'events/name-declared-once',
41
+ name: 'a domain event declaring its name once, read by its name property',
42
+ expect: 'pass',
43
+ files: project({
44
+ [EVENT]: "export class InvoiceIssued {\n static readonly eventName = 'billing.invoice.issued';\n\n readonly name = InvoiceIssued.eventName;\n}\n",
45
+ }),
46
+ },
47
+ {
48
+ ruleId: 'events/name-declared-once',
49
+ name: 'a domain event that names itself nowhere',
50
+ expect: { file: EVENT },
51
+ files: project({ [EVENT]: 'export class InvoiceIssued {\n readonly total: number = 0;\n}\n' }),
52
+ },
53
+ {
54
+ ruleId: 'events/name-declared-once',
55
+ name: 'a domain event naming itself in readonly name alone, as 0.5 wrote it',
56
+ expect: { file: EVENT },
57
+ files: project({ [EVENT]: "export class InvoiceIssued {\n readonly name = 'billing.invoice.issued';\n}\n" }),
58
+ },
59
+ {
60
+ ruleId: 'events/name-declared-once',
61
+ name: 'a domain event writing its name twice',
62
+ expect: { file: EVENT },
63
+ files: project({
64
+ [EVENT]: "export class InvoiceIssued {\n static readonly eventName = 'billing.invoice.issued';\n\n readonly name = 'billing.invoice.issued';\n}\n",
65
+ }),
66
+ },
38
67
  {
39
68
  ruleId: 'events/defined-in-published-language',
40
69
  name: 'two versions of an event, each declared once with a payload schema',
@@ -1 +1 @@
1
- {"version":3,"file":"events-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/events-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;AAE5B,MAAM,CAAC,MAAM,eAAe,GAAuB;IACjD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,KAAK,CAAC,EACL,8HAA8H;YAChI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,gCAAgC,CAAC,EAAE;YACzE,CAAC,GAAG,OAAO,wCAAwC,CAAC,EAClD,iFAAiF;SACpF,CAAC;KACH;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,qCAAqC;QAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACvB,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,uEAAuE,EAAE,CAAC;KACrG;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,qDAAqD;QAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACvB,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,KAAK,CAAC,EACL,iIAAiI;SACpI,CAAC;KACH;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,6DAA6D;QACnE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,EAAE,EAAE,CAAC;KACtF;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,oEAAoE;QAC1E,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,EAAE;YACjE,CAAC,GAAG,OAAO,4DAA4D,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE;YACjI,CAAC,GAAG,OAAO,iEAAiE,CAAC,EAC3E,mMAAmM;SACtM,CAAC;KACH;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,4CAA4C;QAClD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,iEAAiE,EAAE;QAC7F,IAAI,EAAE,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;QAC/D,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,iEAAiE,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,EAAE;SACpI,CAAC;KACH;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,wCAAwC;QAC9C,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,EAAE,CAAC,EAAE,+BAA+B,CAAC,EAAE;SACtG,CAAC;KACH;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,iCAAiC;QACvC,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,mEAAmE,EAAE;QAC/F,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,EAAE;YACjE,CAAC,GAAG,OAAO,mEAAmE,CAAC,EAAE,GAAG,OAAO,GAAG,WAAW,CAAC,wBAAwB,CAAC,EAAE;SACtI,CAAC;KACH;IACD;QACE,MAAM,EAAE,sCAAsC;QAC9C,IAAI,EAAE,sDAAsD;QAC5D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,SAAS,CAAC,EAAE,2FAA2F;SACzG,CAAC;KACH;CACF,CAAC"}
1
+ {"version":3,"file":"events-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/events-fixtures.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"language-fixtures.d.ts","sourceRoot":"","sources":["../../../src/check/fixtures/language-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,eAAO,MAAM,iBAAiB,EAAE,SAAS,OAAO,EAoE/C,CAAC"}
1
+ {"version":3,"file":"language-fixtures.d.ts","sourceRoot":"","sources":["../../../src/check/fixtures/language-fixtures.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAQ5C,eAAO,MAAM,iBAAiB,EAAE,SAAS,OAAO,EAqE/C,CAAC"}
@@ -13,7 +13,7 @@ export const LANGUAGE_FIXTURES = [
13
13
  expect: 'pass',
14
14
  files: project({
15
15
  ...aggregate('export class Invoice {}\n'),
16
- [EVENT]: "export class InvoiceIssued {\n readonly name = 'billing.invoice.issued';\n}\n",
16
+ [EVENT]: "export class InvoiceIssued {\n static readonly eventName = 'billing.invoice.issued';\n\n readonly name = InvoiceIssued.eventName;\n}\n",
17
17
  [`${BILLING}/application/commands/issue-invoice/issue-invoice.command.ts`]: 'export class IssueInvoiceCommand {}\n',
18
18
  [`${BILLING}/application/queries/invoices-issued-for-money/invoices-issued-for-money.query.ts`]: 'export class InvoicesIssuedForMoneyQuery {}\n',
19
19
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"language-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/language-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;AAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AAEzB,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,yEAAyE;QAC/E,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC;YACb,GAAG,SAAS,CAAC,2BAA2B,CAAC;YACzC,CAAC,KAAK,CAAC,EAAE,gFAAgF;YACzF,CAAC,GAAG,OAAO,8DAA8D,CAAC,EACxE,uCAAuC;YACzC,CAAC,GAAG,OAAO,mFAAmF,CAAC,EAC7F,+CAA+C;SAClD,CAAC;KACH;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,wDAAwD;QAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,gDAAgD,EAAE;QAC5E,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,gDAAgD,CAAC,EAAE,iCAAiC;YAC/F,CAAC,GAAG,OAAO,6CAA6C,CAAC,EAAE,IAAI;YAC/D,CAAC,GAAG,OAAO,0CAA0C,CAAC,EAAE,qCAAqC;SAC9F,CAAC;KACH;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,8CAA8C;QACpD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,oEAAoE,EAAE;QAChG,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,oEAAoE,CAAC,EAC9E,0CAA0C;SAC7C,CAAC;KACH;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,qDAAqD;QAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,aAAa,EAAE;QACzC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE;YACrD,CAAC,GAAG,OAAO,aAAa,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,+BAA+B,CAAC;SACrG,CAAC;KACH;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC;YACb,GAAG,SAAS,CACV,gJAAgJ,CACjJ;YACD,CAAC,GAAG,OAAO,oDAAoD,CAAC,EAAE,qCAAqC;SACxG,CAAC;KACH;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,6CAA6C,EAAE;QACzE,IAAI,EAAE,CAAC,wBAAwB,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,6CAA6C,CAAC,EAAE,kCAAkC;YAC7F,CAAC,GAAG,OAAO,4CAA4C,CAAC,EAAE,IAAI;SAC/D,CAAC;KACH;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,IAAI,EAAE,qDAAqD;QAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,kFAAkF,CAAC,CAAC;KAC9G;CACF,CAAC"}
1
+ {"version":3,"file":"language-fixtures.js","sourceRoot":"","sources":["../../../src/check/fixtures/language-fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;AAC5C,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AAEzB,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,yEAAyE;QAC/E,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC;YACb,GAAG,SAAS,CAAC,2BAA2B,CAAC;YACzC,CAAC,KAAK,CAAC,EACL,0IAA0I;YAC5I,CAAC,GAAG,OAAO,8DAA8D,CAAC,EACxE,uCAAuC;YACzC,CAAC,GAAG,OAAO,mFAAmF,CAAC,EAC7F,+CAA+C;SAClD,CAAC;KACH;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,wDAAwD;QAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,gDAAgD,EAAE;QAC5E,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,gDAAgD,CAAC,EAAE,iCAAiC;YAC/F,CAAC,GAAG,OAAO,6CAA6C,CAAC,EAAE,IAAI;YAC/D,CAAC,GAAG,OAAO,0CAA0C,CAAC,EAAE,qCAAqC;SAC9F,CAAC;KACH;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,8CAA8C;QACpD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,oEAAoE,EAAE;QAChG,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,oEAAoE,CAAC,EAC9E,0CAA0C;SAC7C,CAAC;KACH;IACD;QACE,MAAM,EAAE,wBAAwB;QAChC,IAAI,EAAE,qDAAqD;QAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,aAAa,EAAE;QACzC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,2BAA2B,CAAC,EAAE;YACrD,CAAC,GAAG,OAAO,aAAa,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,+BAA+B,CAAC;SACrG,CAAC;KACH;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,IAAI,EAAE,uBAAuB;QAC7B,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,OAAO,CAAC;YACb,GAAG,SAAS,CACV,gJAAgJ,CACjJ;YACD,CAAC,GAAG,OAAO,oDAAoD,CAAC,EAAE,qCAAqC;SACxG,CAAC;KACH;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,IAAI,EAAE,yBAAyB;QAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,6CAA6C,EAAE;QACzE,IAAI,EAAE,CAAC,wBAAwB,CAAC;QAChC,KAAK,EAAE,OAAO,CAAC;YACb,CAAC,GAAG,OAAO,6CAA6C,CAAC,EAAE,kCAAkC;YAC7F,CAAC,GAAG,OAAO,4CAA4C,CAAC,EAAE,IAAI;SAC/D,CAAC;KACH;IACD;QACE,MAAM,EAAE,4BAA4B;QACpC,IAAI,EAAE,qDAAqD;QAC3D,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAC3B,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,kFAAkF,CAAC,CAAC;KAC9G;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from '../model/rule.js';
2
+ export declare const eventsNameDeclaredOnce: Rule;
3
+ //# sourceMappingURL=events-name-declared-once.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-name-declared-once.d.ts","sourceRoot":"","sources":["../../../src/check/rules/events-name-declared-once.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAY7C,eAAO,MAAM,sBAAsB,EAAE,IAsBpC,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { inContext } from '../support/in-context.js';
2
+ import { perFile } from '../support/per-file.js';
3
+ /** `static readonly eventName = '...'`, typed or not. */
4
+ const STATIC_NAME = /(?<![\w$.])static\s+readonly\s+eventName\s*(?::[^=;\n'"]+)?=\s*$/;
5
+ /** `name = '...'`, `name: '...'`, `name: string = '...'`: the name written a second time. */
6
+ const NAME_LITERAL = /(?<![\w$.])name\s*\??\s*(?:[:=]|:[^=;\n'"]+=)\s*$/;
7
+ export const eventsNameDeclaredOnce = {
8
+ id: 'events/name-declared-once',
9
+ description: 'Every domain event class declares its name once, `static readonly eventName`, and its `readonly name` reads it.',
10
+ scope: 'file',
11
+ run(project) {
12
+ return perFile(project, this.id, (file) => {
13
+ if (!inContext(file.location) || file.isTest) {
14
+ return [];
15
+ }
16
+ const { layer, inside, context } = file.location;
17
+ if (layer !== 'domain' || inside[0] !== 'events') {
18
+ return [];
19
+ }
20
+ return file.structure.classes
21
+ .filter((declared) => declared.depth === 0 && !declared.isAbstract)
22
+ .flatMap((declared) => judge(file, declared, context));
23
+ });
24
+ },
25
+ };
26
+ function judge(file, declared, context) {
27
+ const declaredOnce = literalsAfter(file, declared, STATIC_NAME)[0];
28
+ const written = literalsAfter(file, declared, NAME_LITERAL);
29
+ if (declaredOnce === undefined) {
30
+ const name = written[0]?.value ?? `${context}.<aggregate>.<fact>`;
31
+ return [
32
+ {
33
+ line: written[0]?.line ?? declared.line,
34
+ message: `The domain event ${declared.name} does not declare its name once: it has no static readonly eventName.`,
35
+ fix: `Write \`static readonly eventName = '${name}';\` in ${declared.name} and \`readonly name = ${declared.name}.eventName;\`: handlers and projections are attached under that static name.`,
36
+ },
37
+ ];
38
+ }
39
+ return written.map(({ line, value }) => ({
40
+ line,
41
+ message: `The domain event ${declared.name} writes its name "${value}" a second time instead of reading its eventName.`,
42
+ fix: `Write \`readonly name = ${declared.name}.eventName;\`: the name is declared once, on the class.`,
43
+ }));
44
+ }
45
+ function literalsAfter(file, declared, pattern) {
46
+ const { code, strings } = file.scan;
47
+ return strings.filter((literal) => literal.start > declared.bodyStart &&
48
+ literal.start < declared.end &&
49
+ pattern.test(code.slice(Math.max(0, literal.start - 200), literal.start)));
50
+ }
51
+ //# sourceMappingURL=events-name-declared-once.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events-name-declared-once.js","sourceRoot":"","sources":["../../../src/check/rules/events-name-declared-once.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
1
  /** Ranges written to the generated package.json; bumped together with the kit. */
2
2
  export const VERSIONS = {
3
- '@ddd-ts-kit/kernel': '^0.18.0',
4
- '@ddd-ts-kit/validation': '^0.18.0',
5
- '@ddd-ts-kit/http': '^0.18.0',
6
- '@ddd-ts-kit/tracing': '^0.18.0',
7
- '@ddd-ts-kit/di': '^0.18.0',
8
- '@ddd-ts-kit/events': '^0.18.0',
9
- '@ddd-ts-kit/testing': '^0.18.0',
10
- '@ddd-ts-kit/drizzle': '^0.18.0',
11
- '@ddd-ts-kit/knex': '^0.18.0',
12
- '@ddd-ts-kit/prisma': '^0.18.0',
13
- '@ddd-ts-kit/typeorm': '^0.18.0',
14
- '@ddd-ts-kit/auth': '^0.18.0',
15
- '@ddd-ts-kit/rabbitmq': '^0.18.0',
16
- '@ddd-ts-kit/aspects': '^0.18.0',
17
- '@ddd-ts-kit/audit': '^0.18.0',
18
- '@ddd-ts-kit/redis': '^0.18.0',
19
- '@ddd-ts-kit/kafka': '^0.18.0',
20
- '@ddd-ts-kit/nats': '^0.18.0',
21
- '@ddd-ts-kit/scheduling': '^0.18.0',
22
- '@ddd-ts-kit/sentry': '^0.18.0',
23
- '@ddd-ts-kit/s3': '^0.18.0',
3
+ '@ddd-ts-kit/kernel': '^0.19.0',
4
+ '@ddd-ts-kit/validation': '^0.19.0',
5
+ '@ddd-ts-kit/http': '^0.19.0',
6
+ '@ddd-ts-kit/tracing': '^0.19.0',
7
+ '@ddd-ts-kit/di': '^0.19.0',
8
+ '@ddd-ts-kit/events': '^0.19.0',
9
+ '@ddd-ts-kit/testing': '^0.19.0',
10
+ '@ddd-ts-kit/drizzle': '^0.19.0',
11
+ '@ddd-ts-kit/knex': '^0.19.0',
12
+ '@ddd-ts-kit/prisma': '^0.19.0',
13
+ '@ddd-ts-kit/typeorm': '^0.19.0',
14
+ '@ddd-ts-kit/auth': '^0.19.0',
15
+ '@ddd-ts-kit/rabbitmq': '^0.19.0',
16
+ '@ddd-ts-kit/aspects': '^0.19.0',
17
+ '@ddd-ts-kit/audit': '^0.19.0',
18
+ '@ddd-ts-kit/redis': '^0.19.0',
19
+ '@ddd-ts-kit/kafka': '^0.19.0',
20
+ '@ddd-ts-kit/nats': '^0.19.0',
21
+ '@ddd-ts-kit/scheduling': '^0.19.0',
22
+ '@ddd-ts-kit/sentry': '^0.19.0',
23
+ '@ddd-ts-kit/s3': '^0.19.0',
24
24
  '@aws-sdk/client-s3': '^3.1150.0',
25
25
  '@aws-sdk/lib-storage': '^3.1150.0',
26
26
  '@aws-sdk/s3-request-presigner': '^3.1150.0',
27
27
  busboy: '^1.6.0',
28
28
  '@sentry/node': '^11.6.0',
29
- '@ddd-ts-kit/pino': '^0.18.0',
29
+ '@ddd-ts-kit/pino': '^0.19.0',
30
30
  pino: '^10.4.0',
31
31
  'pino-pretty': '^13.2.0',
32
- '@ddd-ts-kit/winston': '^0.18.0',
32
+ '@ddd-ts-kit/winston': '^0.19.0',
33
33
  winston: '^3.19.0',
34
34
  '@confluentinc/kafka-javascript': '^1.11.0',
35
35
  '@nats-io/jetstream': '^3.4.0',
@@ -37,7 +37,7 @@ export const VERSIONS = {
37
37
  ioredis: '^6.0.0',
38
38
  jose: '^6.0.0',
39
39
  amqplib: '^2.2.0',
40
- 'ddd-ts-kit': '^0.18.0',
40
+ 'ddd-ts-kit': '^0.19.0',
41
41
  tsx: '^4.23.15',
42
42
  vitest: '^5.0.3',
43
43
  zod: '^4.6.5',
@@ -23,8 +23,12 @@ function sliceLines(slices) {
23
23
  .filter((status) => status !== 'done')
24
24
  .flatMap((status) => [` ${status}`, ...slices.rows.filter((row) => row.status === status).map(rowLine)]);
25
25
  const owners = Object.entries(slices.byOwner).map(([owner, byStatus]) => ` ${owner}: ${counts(byStatus, statuses)}`);
26
+ const duplicated = slices.duplicates.length === 0
27
+ ? []
28
+ : [` row numbers used more than once: ${slices.duplicates.join(', ')} (give each row its own number)`];
26
29
  return [
27
30
  `Slices (${slices.file}): ${slices.rows.length}, ${counts(slices.byStatus, statuses)}`,
31
+ ...duplicated,
28
32
  ...open,
29
33
  ' by owner',
30
34
  ...owners,
@@ -1 +1 @@
1
- {"version":3,"file":"format-progress.js","sourceRoot":"","sources":["../../src/progress/format-progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-progress.js","sourceRoot":"","sources":["../../src/progress/format-progress.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,8 @@ export interface SlicesProgress {
15
15
  readonly byStatus: Readonly<Record<string, readonly string[]>>;
16
16
  /** The ids of the rows, by owner then by status. */
17
17
  readonly byOwner: Readonly<Record<string, Readonly<Record<string, readonly string[]>>>>;
18
+ /** The ids that more than one row carries, across the tables of the file: each such row is counted. */
19
+ readonly duplicates: readonly string[];
18
20
  }
19
21
  export interface RemainingCount {
20
22
  readonly context: string;
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/progress/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,0GAA0G;AAC1G,MAAM,WAAW,QAAQ;IACvB,4HAA4H;IAC5H,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,sHAAsH;IACtH,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/D,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CACzF;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/progress/progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,0GAA0G;AAC1G,MAAM,WAAW,QAAQ;IACvB,4HAA4H;IAC5H,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,sHAAsH;IACtH,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/D,oDAAoD;IACpD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,uGAAuG;IACvG,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8BAA8B;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB"}
@@ -17,6 +17,7 @@ function slicesProgress(rows) {
17
17
  rows,
18
18
  byStatus: idsByStatus(rows),
19
19
  byOwner: Object.fromEntries(owners.map((owner) => [owner, idsByStatus(rows.filter((row) => row.owner === owner))])),
20
+ duplicates: [...new Set(rows.map((row) => row.id).filter((id, index, ids) => ids.indexOf(id) !== index))],
20
21
  };
21
22
  }
22
23
  function idsByStatus(rows) {
@@ -1 +1 @@
1
- {"version":3,"file":"read-progress.js","sourceRoot":"","sources":["../../src/progress/read-progress.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI3D,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAE9C,4HAA4H;AAC5H,MAAM,UAAU,YAAY,CAAC,EAAa,EAAE,MAAc;IACxD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QAC5E,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QAC5D,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAsB;IAC5C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACpH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAsB;IACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpE,OAAO,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACrG,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,SAA+B,EAAE,QAA2B;IAC5E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAChF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,EAAE,CAAC;IAEV,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,IAAuB,EAAU,EAAE,CACjE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAEpF,MAAM,OAAO,GAAG,CAAC,OAAe,EAAkB,EAAE,CAAC,CAAC;QACpD,OAAO;QACP,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;QAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;QACpC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrH,CAAC"}
1
+ {"version":3,"file":"read-progress.js","sourceRoot":"","sources":["../../src/progress/read-progress.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI3D,MAAM,SAAS,GAAG,2BAA2B,CAAC;AAE9C,4HAA4H;AAC5H,MAAM,UAAU,YAAY,CAAC,EAAa,EAAE,MAAc;IACxD,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAE9B,OAAO;QACL,IAAI,EAAE,0BAA0B,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI;QAC5E,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;QAC5D,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC7E,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAsB;IAC5C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,IAAI;QACJ,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnH,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;KAC1G,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,IAAsB;IACzC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpE,OAAO,MAAM,CAAC,WAAW,CACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACrG,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,SAA+B,EAAE,QAA2B;IAC5E,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAChF,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,EAAE,CAAC;IAEV,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,IAAuB,EAAU,EAAE,CACjE,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC;IAEpF,MAAM,OAAO,GAAG,CAAC,OAAe,EAAkB,EAAE,CAAC,CAAC;QACpD,OAAO;QACP,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;QAChC,QAAQ,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;QACpC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;IAE9B,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrH,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import type { Workspace } from '../workspace/index.js';
2
2
  import type { Slice } from './slice.js';
3
3
  export declare const SLICES_FILE = "docs/architecture/slices.md";
4
- /** The rows of the slices table; undefined when the project has no slices file or the file has no such table. */
4
+ /**
5
+ * The rows of every slices table, in the order of the file: a plan may keep one table per
6
+ * milestone or story, each under the same header. Undefined when the project has no slices file
7
+ * or the file has no such table.
8
+ */
5
9
  export declare function readSlices(ws: Workspace): Slice[] | undefined;
6
10
  //# sourceMappingURL=read-slices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-slices.d.ts","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAIzD,iHAAiH;AACjH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,SAAS,CAqB7D"}
1
+ {"version":3,"file":"read-slices.d.ts","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,eAAO,MAAM,WAAW,gCAAgC,CAAC;AAIzD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,SAAS,CAS7D"}
@@ -1,20 +1,30 @@
1
1
  export const SLICES_FILE = 'docs/architecture/slices.md';
2
2
  const COLUMNS = ['#', 'context', 'kind', 'slice', 'start with', 'depends on', 'owner', 'status'];
3
- /** The rows of the slices table; undefined when the project has no slices file or the file has no such table. */
3
+ /**
4
+ * The rows of every slices table, in the order of the file: a plan may keep one table per
5
+ * milestone or story, each under the same header. Undefined when the project has no slices file
6
+ * or the file has no such table.
7
+ */
4
8
  export function readSlices(ws) {
5
9
  const lines = (ws.read(SLICES_FILE) ?? '').split('\n');
6
- const header = lines.findIndex((line) => cellsOf(line)
7
- .map((cell) => cell.toLowerCase())
8
- .join('|') === COLUMNS.join('|'));
9
- if (header === -1) {
10
+ const headers = lines.flatMap((line, index) => (isHeader(line) ? [index] : []));
11
+ if (headers.length === 0) {
10
12
  return undefined;
11
13
  }
14
+ return headers.flatMap((header) => tableRows(lines, header)).map(sliceOf);
15
+ }
16
+ function isHeader(line) {
17
+ return (cellsOf(line)
18
+ .map((cell) => cell.toLowerCase())
19
+ .join('|') === COLUMNS.join('|'));
20
+ }
21
+ /** The rows under a header and its separator, up to the first line that is not a row. */
22
+ function tableRows(lines, header) {
12
23
  const end = lines.findIndex((line, index) => index > header + 1 && !line.trim().startsWith('|'));
13
24
  return lines
14
25
  .slice(header + 2, end === -1 ? undefined : end)
15
26
  .map(cellsOf)
16
- .filter((cells) => cells.length === COLUMNS.length)
17
- .map(sliceOf);
27
+ .filter((cells) => cells.length === COLUMNS.length);
18
28
  }
19
29
  /** The cells of a table row; a `\|` inside a cell is a bar of its text. */
20
30
  function cellsOf(line) {
@@ -1 +1 @@
1
- {"version":3,"file":"read-slices.js","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAEzD,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEjG,iHAAiH;AACjH,MAAM,UAAU,UAAU,CAAC,EAAa;IACtC,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEvD,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAC5B,CAAC,IAAI,EAAE,EAAE,CACP,OAAO,CAAC,IAAI,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;SACjC,IAAI,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CACrC,CAAC;IAEF,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjG,OAAO,KAAK;SACT,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;SAC/C,GAAG,CAAC,OAAO,CAAC;SACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;SAClD,GAAG,CAAC,OAAO,CAAC,CAAC;AAClB,CAAC;AAED,2EAA2E;AAC3E,SAAS,OAAO,CAAC,IAAY;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAExB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,GAAG;SACP,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACZ,KAAK,CAAC,WAAW,CAAC;SAClB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,OAAO,CAAC,KAAwB;IACvC,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IAEtH,OAAO;QACL,EAAE;QACF,OAAO;QACP,IAAI;QACJ,KAAK;QACL,SAAS;QACT,SAAS,EAAE,SAAS;aACjB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC;QAC9B,KAAK;QACL,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE;KAC7B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"read-slices.js","sourceRoot":"","sources":["../../src/progress/read-slices.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.18.0";
1
+ export declare const VERSION = "0.19.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.18.0';
1
+ export const VERSION = '0.19.0';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ddd-ts-kit",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Bootstrap, scaffold and verify Domain-Driven Design (DDD), Clean Architecture and hexagonal TypeScript backends on Node.js: project and code generators, architecture checks, OpenAPI and AsyncAPI documents, for developers and AI coding agents (Claude Code, Codex, GitHub Copilot).",
5
5
  "keywords": [
6
6
  "ddd",
@@ -42,14 +42,16 @@
42
42
  },
43
43
  "files": [
44
44
  "dist",
45
- "templates"
45
+ "templates",
46
+ "CHANGELOG.md"
46
47
  ],
47
48
  "scripts": {
48
49
  "build": "tsc -b",
50
+ "prepack": "node -e \"require('node:fs').copyFileSync('../../CHANGELOG.md', 'CHANGELOG.md')\"",
49
51
  "clean:self": "node dist/bin.js check --clean-only src test",
50
52
  "clean:packages": "node dist/bin.js check --clean-only ../kernel/src ../validation/src ../http/src ../tracing/src ../di/src ../events/src ../testing/src ../s3/src ../drizzle/src ../knex/src ../prisma/src ../typeorm/src ../aspects/src ../rabbitmq/src ../auth/src ../audit/src ../redis/src ../scheduling/src ../pino/src ../winston/src ../sentry/src ../kafka/src ../nats/src ../eslint-plugin/src"
51
53
  },
52
54
  "devDependencies": {
53
- "@ddd-ts-kit/kernel": "^0.18.0"
55
+ "@ddd-ts-kit/kernel": "^0.19.0"
54
56
  }
55
57
  }