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.
- package/CHANGELOG.md +1273 -0
- package/README.fr.md +2 -1
- package/README.md +1 -0
- package/dist/check/catalogue/architecture-rules.d.ts.map +1 -1
- package/dist/check/catalogue/architecture-rules.js +2 -0
- package/dist/check/catalogue/architecture-rules.js.map +1 -1
- package/dist/check/explain/events-docs.d.ts.map +1 -1
- package/dist/check/explain/events-docs.js +13 -2
- package/dist/check/explain/events-docs.js.map +1 -1
- package/dist/check/fixtures/event-sourcing-fixtures.js +3 -3
- package/dist/check/fixtures/event-sourcing-fixtures.js.map +1 -1
- package/dist/check/fixtures/events-fixtures.d.ts.map +1 -1
- package/dist/check/fixtures/events-fixtures.js +30 -1
- package/dist/check/fixtures/events-fixtures.js.map +1 -1
- package/dist/check/fixtures/language-fixtures.d.ts.map +1 -1
- package/dist/check/fixtures/language-fixtures.js +1 -1
- package/dist/check/fixtures/language-fixtures.js.map +1 -1
- package/dist/check/rules/events-name-declared-once.d.ts +3 -0
- package/dist/check/rules/events-name-declared-once.d.ts.map +1 -0
- package/dist/check/rules/events-name-declared-once.js +51 -0
- package/dist/check/rules/events-name-declared-once.js.map +1 -0
- package/dist/init/manifest/versions.js +24 -24
- package/dist/progress/format-progress.js +4 -0
- package/dist/progress/format-progress.js.map +1 -1
- package/dist/progress/progress.d.ts +2 -0
- package/dist/progress/progress.d.ts.map +1 -1
- package/dist/progress/read-progress.js +1 -0
- package/dist/progress/read-progress.js.map +1 -1
- package/dist/progress/read-slices.d.ts +5 -1
- package/dist/progress/read-slices.d.ts.map +1 -1
- package/dist/progress/read-slices.js +17 -7
- package/dist/progress/read-slices.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +5 -3
- package/templates/init/rules/domain.md.tpl +1 -1
- 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:
|
|
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;
|
|
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":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mCAAmC,EAAE,MAAM,sDAAsD,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAC3F,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,qCAAqC,EAAE,MAAM,uDAAuD,CAAC;AAC9G,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,mCAAmC,EAAE,MAAM,qDAAqD,CAAC;AAC1G,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,kCAAkC,EAAE,MAAM,oDAAoD,CAAC;AACxG,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EAAE,gCAAgC,EAAE,MAAM,kDAAkD,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8CAA8C,CAAC;AAC5F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,gHAAgH;AAChH,MAAM,CAAC,MAAM,kBAAkB,GAAoB;IACjD,iBAAiB;IACjB,sBAAsB;IACtB,iCAAiC;IACjC,iCAAiC;IACjC,4BAA4B;IAC5B,2BAA2B;IAC3B,mCAAmC;IACnC,cAAc;IACd,UAAU;IACV,cAAc;IACd,YAAY;IACZ,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;IAClB,sBAAsB;IACtB,sBAAsB;IACtB,gBAAgB;IAChB,gBAAgB;IAChB,gCAAgC;IAChC,WAAW;IACX,mBAAmB;IACnB,oBAAoB;IACpB,oBAAoB;IACpB,uBAAuB;IACvB,0BAA0B;IAC1B,mBAAmB;IACnB,yBAAyB;IACzB,mBAAmB;IACnB,aAAa;IACb,iBAAiB;IACjB,uBAAuB;IACvB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,qBAAqB;IACrB,aAAa;IACb,sBAAsB;IACtB,oBAAoB;IACpB,wBAAwB;IACxB,4BAA4B;IAC5B,qCAAqC;IACrC,yBAAyB;IACzB,sBAAsB;IACtB,kCAAkC;IAClC,mCAAmC;IACnC,6BAA6B;IAC7B,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IACnB,sBAAsB;IACtB,2BAA2B;IAC3B,2BAA2B;IAC3B,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;IACzB,gCAAgC;IAChC,kBAAkB;IAClB,2BAA2B;IAC3B,oBAAoB;IACpB,yBAAyB;IACzB,gBAAgB;IAChB,4BAA4B;IAC5B,6BAA6B;IAC7B,wBAAwB;IACxB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,oBAAoB;IACpB,gBAAgB;IAChB,eAAe;IACf,2BAA2B;IAC3B,wBAAwB;IACxB,qBAAqB;CACtB,CAAC"}
|
|
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,
|
|
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
|
|
5
|
-
good: `readonly
|
|
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,
|
|
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
|
|
24
|
-
[PRESENT_EVENT]: source("export class IssueInvoice {\n readonly
|
|
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
|
|
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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAG7F,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;AAErD,MAAM,KAAK,GAAG,+BAA+B,CAAC;AAC9C,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,KAAK,GAAG,wCAAwC,CAAC;AACvD,MAAM,QAAQ,GAAG,kCAAkC,CAAC;AAEpD,MAAM,MAAM,GAAG,sBAAsB,CAAC;AACtC,MAAM,YAAY,GAAG,2FAA2F,CAAC;AACjH,MAAM,aAAa,GAAG,GAAG,OAAO,uCAAuC,CAAC;AACxE,MAAM,KAAK,GAAG,GAAG,OAAO,sDAAsD,CAAC;AAC/E,MAAM,aAAa,GAAG,GAAG,OAAO,+DAA+D,CAAC;AAEhG,MAAM,MAAM,GAAiB;IAC3B,CAAC,KAAK,CAAC,EAAE,MAAM,CACb,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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 @@
|
|
|
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.
|
|
4
|
-
'@ddd-ts-kit/validation': '^0.
|
|
5
|
-
'@ddd-ts-kit/http': '^0.
|
|
6
|
-
'@ddd-ts-kit/tracing': '^0.
|
|
7
|
-
'@ddd-ts-kit/di': '^0.
|
|
8
|
-
'@ddd-ts-kit/events': '^0.
|
|
9
|
-
'@ddd-ts-kit/testing': '^0.
|
|
10
|
-
'@ddd-ts-kit/drizzle': '^0.
|
|
11
|
-
'@ddd-ts-kit/knex': '^0.
|
|
12
|
-
'@ddd-ts-kit/prisma': '^0.
|
|
13
|
-
'@ddd-ts-kit/typeorm': '^0.
|
|
14
|
-
'@ddd-ts-kit/auth': '^0.
|
|
15
|
-
'@ddd-ts-kit/rabbitmq': '^0.
|
|
16
|
-
'@ddd-ts-kit/aspects': '^0.
|
|
17
|
-
'@ddd-ts-kit/audit': '^0.
|
|
18
|
-
'@ddd-ts-kit/redis': '^0.
|
|
19
|
-
'@ddd-ts-kit/kafka': '^0.
|
|
20
|
-
'@ddd-ts-kit/nats': '^0.
|
|
21
|
-
'@ddd-ts-kit/scheduling': '^0.
|
|
22
|
-
'@ddd-ts-kit/sentry': '^0.
|
|
23
|
-
'@ddd-ts-kit/s3': '^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.
|
|
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.
|
|
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.
|
|
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":"AAGA,MAAM,YAAY,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,8EAA8E;AAC9E,MAAM,OAAO,GACX,wOAAwO,CAAC;AAE3O,8HAA8H;AAC9H,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO;QACL,SAAS,QAAQ,CAAC,IAAI,IAAI,OAAO,EAAE;QACnC,EAAE;QACF,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI;YAC1B,CAAC,CAAC,CAAC,yGAAyG,CAAC;YAC7G,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE;QACF,WAAW;QACX,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;KACzC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,MAAsB;IACxC,MAAM,QAAQ,GAAG;QACf,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;QACzE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACnF,CAAC;IAEF,MAAM,IAAI,GAAG,QAAQ;SAClB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC;SACrC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5G,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAC/C,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CACrE,CAAC;IAEF,MAAM,UAAU,GACd,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;QAC5B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,sCAAsC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAE5G,OAAO;QACL,WAAW,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACtF,GAAG,UAAU;QACb,GAAG,IAAI;QACP,YAAY;QACZ,GAAG,MAAM;KACV,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,QAAqD,EAAE,QAA2B;IAChG,OAAO,QAAQ;SACZ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;SAClD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;SAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,GAAU;IACzB,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEzF,OAAO,QAAQ,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,KAAK,YAAY,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC;AACjG,CAAC;AAED,SAAS,aAAa,CAAC,KAAqB;IAC1C,OAAO,KAAK,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,kBAAkB,KAAK,CAAC,QAAQ,oBAAoB,KAAK,CAAC,IAAI,UAAU,CAAC;AACrK,CAAC"}
|
|
@@ -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;
|
|
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;
|
|
1
|
+
{"version":3,"file":"read-progress.js","sourceRoot":"","sources":["../../src/progress/read-progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
/**
|
|
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
|
|
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
|
-
/**
|
|
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
|
|
7
|
-
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
55
|
+
"@ddd-ts-kit/kernel": "^0.19.0"
|
|
54
56
|
}
|
|
55
57
|
}
|