@woltz/rich-domain 1.9.0 → 1.9.2
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/dist/cjs/core/aggregate-changes.d.ts +14 -0
- package/dist/cjs/core/aggregate-changes.d.ts.map +1 -1
- package/dist/cjs/core/aggregate-changes.js +18 -0
- package/dist/cjs/core/aggregate-changes.js.map +1 -1
- package/dist/cjs/core/base-entity.d.ts +2 -0
- package/dist/cjs/core/base-entity.d.ts.map +1 -1
- package/dist/cjs/core/base-entity.js +39 -41
- package/dist/cjs/core/base-entity.js.map +1 -1
- package/dist/cjs/core/change-tracker.d.ts +8 -0
- package/dist/cjs/core/change-tracker.d.ts.map +1 -1
- package/dist/cjs/core/change-tracker.js +36 -6
- package/dist/cjs/core/change-tracker.js.map +1 -1
- package/dist/cjs/core/domain-event.d.ts +3 -0
- package/dist/cjs/core/domain-event.d.ts.map +1 -1
- package/dist/cjs/core/domain-event.js +8 -1
- package/dist/cjs/core/domain-event.js.map +1 -1
- package/dist/cjs/core/value-object.d.ts.map +1 -1
- package/dist/cjs/core/value-object.js +3 -5
- package/dist/cjs/core/value-object.js.map +1 -1
- package/dist/cjs/criteria.d.ts +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/repository/entity-schema-registry.d.ts +56 -3
- package/dist/cjs/repository/entity-schema-registry.d.ts.map +1 -1
- package/dist/cjs/repository/entity-schema-registry.js +61 -6
- package/dist/cjs/repository/entity-schema-registry.js.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/index.js +1 -0
- package/dist/cjs/types/index.js.map +1 -1
- package/dist/cjs/types/outbox-store.d.ts +91 -0
- package/dist/cjs/types/outbox-store.d.ts.map +1 -0
- package/dist/cjs/types/outbox-store.js +3 -0
- package/dist/cjs/types/outbox-store.js.map +1 -0
- package/dist/cjs/utils/helpers.d.ts +1 -0
- package/dist/cjs/utils/helpers.d.ts.map +1 -1
- package/dist/cjs/utils/helpers.js +4 -0
- package/dist/cjs/utils/helpers.js.map +1 -1
- package/dist/esm/core/aggregate-changes.d.ts +14 -0
- package/dist/esm/core/aggregate-changes.d.ts.map +1 -1
- package/dist/esm/core/aggregate-changes.js +18 -0
- package/dist/esm/core/aggregate-changes.js.map +1 -1
- package/dist/esm/core/base-entity.d.ts +2 -0
- package/dist/esm/core/base-entity.d.ts.map +1 -1
- package/dist/esm/core/base-entity.js +37 -39
- package/dist/esm/core/base-entity.js.map +1 -1
- package/dist/esm/core/change-tracker.d.ts +8 -0
- package/dist/esm/core/change-tracker.d.ts.map +1 -1
- package/dist/esm/core/change-tracker.js +36 -6
- package/dist/esm/core/change-tracker.js.map +1 -1
- package/dist/esm/core/domain-event.d.ts +3 -0
- package/dist/esm/core/domain-event.d.ts.map +1 -1
- package/dist/esm/core/domain-event.js +5 -1
- package/dist/esm/core/domain-event.js.map +1 -1
- package/dist/esm/core/value-object.d.ts.map +1 -1
- package/dist/esm/core/value-object.js +1 -3
- package/dist/esm/core/value-object.js.map +1 -1
- package/dist/esm/criteria.d.ts +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/repository/entity-schema-registry.d.ts +56 -3
- package/dist/esm/repository/entity-schema-registry.d.ts.map +1 -1
- package/dist/esm/repository/entity-schema-registry.js +61 -6
- package/dist/esm/repository/entity-schema-registry.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/outbox-store.d.ts +91 -0
- package/dist/esm/types/outbox-store.d.ts.map +1 -0
- package/dist/esm/types/outbox-store.js +2 -0
- package/dist/esm/types/outbox-store.js.map +1 -0
- package/dist/esm/utils/helpers.d.ts +1 -0
- package/dist/esm/utils/helpers.d.ts.map +1 -1
- package/dist/esm/utils/helpers.js +3 -0
- package/dist/esm/utils/helpers.js.map +1 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/core/aggregate-changes.d.ts +14 -0
- package/dist/types/core/aggregate-changes.d.ts.map +1 -1
- package/dist/types/core/base-entity.d.ts +2 -0
- package/dist/types/core/base-entity.d.ts.map +1 -1
- package/dist/types/core/change-tracker.d.ts +8 -0
- package/dist/types/core/change-tracker.d.ts.map +1 -1
- package/dist/types/core/domain-event.d.ts +3 -0
- package/dist/types/core/domain-event.d.ts.map +1 -1
- package/dist/types/core/value-object.d.ts.map +1 -1
- package/dist/types/criteria.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/repository/entity-schema-registry.d.ts +56 -3
- package/dist/types/repository/entity-schema-registry.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/outbox-store.d.ts +91 -0
- package/dist/types/types/outbox-store.d.ts.map +1 -0
- package/dist/types/utils/helpers.d.ts +1 -0
- package/dist/types/utils/helpers.d.ts.map +1 -1
- package/package.json +68 -67
- package/src/constants.ts +82 -0
- package/src/core/aggregate-changes.ts +466 -0
- package/src/core/base-aggregate.ts +76 -0
- package/src/core/base-entity.ts +552 -0
- package/src/core/change-tracker.ts +1327 -0
- package/src/core/domain-event.ts +41 -0
- package/src/core/entity-changes.ts +146 -0
- package/src/core/entity.ts +13 -0
- package/src/core/id.ts +124 -0
- package/src/core/index.ts +9 -0
- package/src/core/value-object.ts +179 -0
- package/src/criteria.ts +574 -0
- package/src/exceptions.ts +549 -0
- package/src/index.ts +74 -0
- package/src/repository/base-repository.ts +81 -0
- package/src/repository/entity-schema-registry.ts +620 -0
- package/src/repository/index.ts +5 -0
- package/src/repository/mapper.ts +7 -0
- package/src/repository/paginated-result.ts +251 -0
- package/src/repository/unit-of-work.ts +76 -0
- package/src/types/change-tracker.ts +268 -0
- package/src/types/criteria.ts +197 -0
- package/src/types/domain-event.ts +29 -0
- package/src/types/domain.ts +41 -0
- package/src/types/event-bus.ts +17 -0
- package/src/types/index.ts +9 -0
- package/src/types/outbox-store.ts +97 -0
- package/src/types/standard-schema.ts +19 -0
- package/src/types/unit-of-work.ts +46 -0
- package/src/types/utils.ts +24 -0
- package/src/utils/criteria-operator-validation.ts +209 -0
- package/src/utils/crypto.ts +31 -0
- package/src/utils/helpers.ts +50 -0
- package/src/validation-error.ts +219 -0
- package/dist/cjs/t.d.ts +0 -2
- package/dist/cjs/t.d.ts.map +0 -1
- package/dist/cjs/t.js +0 -96
- package/dist/cjs/t.js.map +0 -1
- package/dist/esm/t.d.ts +0 -2
- package/dist/esm/t.d.ts.map +0 -1
- package/dist/esm/t.js +0 -94
- package/dist/esm/t.js.map +0 -1
- package/dist/types/t.d.ts +0 -2
- package/dist/types/t.d.ts.map +0 -1
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.DomainEvent = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("../utils/crypto"));
|
|
4
8
|
/**
|
|
5
9
|
* Base class for domain events
|
|
6
10
|
*/
|
|
@@ -20,8 +24,11 @@ class DomainEvent {
|
|
|
20
24
|
get eventName() {
|
|
21
25
|
return this.constructor.name;
|
|
22
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Generate a UUID v4
|
|
29
|
+
*/
|
|
23
30
|
generateEventId() {
|
|
24
|
-
return
|
|
31
|
+
return (0, crypto_1.default)();
|
|
25
32
|
}
|
|
26
33
|
toJSON() {
|
|
27
34
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../../src/core/domain-event.ts"],"names":[],"mappings":";;;;;;AACA,6DAAmC;AAEnC;;GAEG;AACH,MAAsB,WAAW;IACf,OAAO,CAAS;IAChB,UAAU,CAAO;IACjB,OAAO,CAAI;IAC3B,MAAM,CAAU,SAAS,CAAU;IAEnC,YAAY,OAAU;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,IAAA,gBAAI,GAAE,CAAC;IAChB,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;IACJ,CAAC;CACF;AAlCD,kCAkCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,EAGP,gBAAgB,EAChB,SAAS,EACV,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,EAGP,gBAAgB,EAChB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAK3B,8BAAsB,WAAW,CAAC,CAAC,SAAS,SAAS;IACnD,SAAgB,KAAK,EAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAkC;IAEjE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACpD,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAE/B,KAAK,EAAE,CAAC;IAmCpB;;OAEG;IACI,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAIzE,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAKtC;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAIhC"}
|
|
@@ -4,9 +4,7 @@ exports.ValueObject = void 0;
|
|
|
4
4
|
const validation_error_js_1 = require("../validation-error.js");
|
|
5
5
|
const constants_js_1 = require("../constants.js");
|
|
6
6
|
const exceptions_js_1 = require("../exceptions.js");
|
|
7
|
-
|
|
8
|
-
return instance.constructor[propertyName];
|
|
9
|
-
}
|
|
7
|
+
const helpers_js_1 = require("../utils/helpers.js");
|
|
10
8
|
class ValueObject {
|
|
11
9
|
value;
|
|
12
10
|
validationConfig;
|
|
@@ -16,8 +14,8 @@ class ValueObject {
|
|
|
16
14
|
static validation;
|
|
17
15
|
static hooks;
|
|
18
16
|
constructor(value) {
|
|
19
|
-
const validation = getStaticProperty(this, "validation");
|
|
20
|
-
const hooks = getStaticProperty(this, "hooks");
|
|
17
|
+
const validation = (0, helpers_js_1.getStaticProperty)(this, "validation");
|
|
18
|
+
const hooks = (0, helpers_js_1.getStaticProperty)(this, "hooks");
|
|
21
19
|
if (hooks?.onBeforeCreate) {
|
|
22
20
|
hooks.onBeforeCreate(value);
|
|
23
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":";;;AAAA,gEAIgC;AAQhC,kDAA4D;AAC5D,oDAA+C;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../../../src/core/value-object.ts"],"names":[],"mappings":";;;AAAA,gEAIgC;AAQhC,kDAA4D;AAC5D,oDAA+C;AAC/C,oDAAwD;AAExD,MAAsB,WAAW;IACf,KAAK,CAAK;IAClB,gBAAgB,CAA6B;IAC7C,WAAW,CAAmB;IAC9B,YAAY,CAAqB;IACxB,cAAc,GAAG,IAAI,8CAAwB,EAAE,CAAC;IAEvD,MAAM,CAAC,UAAU,CAAyB;IAC1C,MAAM,CAAC,KAAK,CAAqB;IAE3C,YAAY,KAAQ;QAClB,MAAM,UAAU,GAAG,IAAA,8BAAiB,EAClC,IAAI,EACJ,YAAY,CACb,CAAC;QACF,MAAM,KAAK,GAAG,IAAA,8BAAiB,EAAkB,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,KAAK,EAAE,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,wCAAyB;YAC5B,GAAG,UAAU,EAAE,MAAM;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,IAAuB,EAAE,OAAe;QAChE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAEO,oBAAoB;QAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,kBAAkB,CAAC,kBAAqC,EAAE;QAChE,MAAM,QAAQ,GAAI,IAAY,CAAC,gBAElB,CAAC;QACd,MAAM,MAAM,GAAG,qCAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAQ,IAAY,CAAC,gBAAgB,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,MAAM,CAAC;QACf,CAAC;QAEA,IAAY,CAAC,gBAAgB,GAAG,MAAM,CAAC;IAC1C,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK;YAAE,OAAO;QAErC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAW,CAAC,CAAC;QACpC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,aAAa,CAAC,KAAQ;QAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,WAAW,CAAC;QACpB,CAAC;QAEA,IAAY,CAAC,gBAAgB,GAAG,WAAW,CAAC;IAC/C,CAAC;IAEO,cAAc,CAAC,KAAQ;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9D,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,2BAAW,CACnB,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,IAAI,qCAAe,CACxB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBAC1D,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC,CACJ,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,cAAc,CAAC,WAAoB;QACzC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAE,WAAgC,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,mBAAmB;QACrB,OAAO,CAAC,CAAE,IAAY,CAAC,gBAAgB,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,IAAI,gBAAgB;QAClB,OAAQ,IAAY,CAAC,gBAAgB,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAqB;QAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC;IACpC,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,KAAQ;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAqC,CAAC;QAC/D,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AAlKD,kCAkKC"}
|
package/dist/cjs/criteria.d.ts
CHANGED
|
@@ -37,7 +37,7 @@ export declare class Criteria<T = any> {
|
|
|
37
37
|
toJSON(): {
|
|
38
38
|
filters: {
|
|
39
39
|
field: FieldPath<T>;
|
|
40
|
-
operator: "
|
|
40
|
+
operator: "equals" | "notEquals" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "contains" | "startsWith" | "endsWith" | "in" | "notIn" | "between" | "isNull" | "isNotNull";
|
|
41
41
|
value: any;
|
|
42
42
|
options: CriteriaOptions | undefined;
|
|
43
43
|
}[];
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export { isValidOperatorForType } from "./utils/criteria-operator-validation.js"
|
|
|
6
6
|
export { ARRAY_OPERATORS, BOOLEAN_OPERATORS, DATE_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, FILTER_OPERATORS, } from "./constants.js";
|
|
7
7
|
export { Id, Entity, Aggregate, ValueObject, AggregateChanges, DomainEvent, } from "./core/index.js";
|
|
8
8
|
export { type PaginatedJsonResult, type CollectionConfig, Repository, Mapper, UnitOfWork, PaginatedResult, ReadRepository, WriteAndRead, WriteRepository, BaseTransactionContext, EntitySchemaRegistry, } from "./repository/index.js";
|
|
9
|
-
export type { EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, BatchDeleteOperation, BatchCreateOperation, BatchUpdateOperation, BatchOperations, BatchCreateItem, BatchUpdateItem, BatchDeleteItem, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, IDomainEventBus, } from "./types/index.js";
|
|
9
|
+
export type { EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, OperatorsForType, DateOperators, NumberOperators, BatchDeleteOperation, BatchCreateOperation, BatchUpdateOperation, BatchOperations, BatchCreateItem, BatchUpdateItem, BatchDeleteItem, StringOperators, BooleanOperators, ArrayOperators, CriteriaOptions, IDomainEventBus, IOutboxStore, OutboxEntryData, OutboxFetchResult, OutboxStatus, } from "./types/index.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,EAAE,EACF,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,UAAU,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,EAAE,EACF,MAAM,EACN,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,WAAW,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,UAAU,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,cAAc,EACd,KAAK,EACL,WAAW,EACX,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC"}
|
|
@@ -80,6 +80,30 @@ export interface EntitySchema {
|
|
|
80
80
|
* ```
|
|
81
81
|
*/
|
|
82
82
|
collections?: Record<string, CollectionConfig>;
|
|
83
|
+
/**
|
|
84
|
+
* Database primary key **column** name (persistence layer only).
|
|
85
|
+
* Defaults to `'id'` when omitted.
|
|
86
|
+
*
|
|
87
|
+
* This does **not** refer to a domain property. Adapters always take the
|
|
88
|
+
* identity value from `entity.id` and write/query it under this column name.
|
|
89
|
+
* For example, `primaryKey: "otherKeyToPk"` produces
|
|
90
|
+
* `where: { otherKeyToPk: entity.id.value }`, not `{ otherKeyToPk: entity.factoryId }`.
|
|
91
|
+
*
|
|
92
|
+
* For 1:1 child tables that share the parent's PK (e.g. `factoryProfile.otherKeyToPk`),
|
|
93
|
+
* set `Profile.id` to the same value as the parent aggregate (`Factory.id`).
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* .register({
|
|
98
|
+
* entity: "Profile",
|
|
99
|
+
* table: "factoryProfile",
|
|
100
|
+
* primaryKey: "otherKeyToPk"
|
|
101
|
+
* })
|
|
102
|
+
* // Domain: profile.id.value === factory.id.value
|
|
103
|
+
* // DB update: WHERE otherKeyToPk = profile.id.value
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
primaryKey?: string;
|
|
83
107
|
}
|
|
84
108
|
/**
|
|
85
109
|
* Result of entity mapping.
|
|
@@ -158,6 +182,26 @@ export declare class EntitySchemaRegistry {
|
|
|
158
182
|
* @param entity - Entity name.
|
|
159
183
|
*/
|
|
160
184
|
getFieldsMap(entity: string): Record<string, string>;
|
|
185
|
+
/**
|
|
186
|
+
* Gets the database primary key column name for an entity.
|
|
187
|
+
* @param entity - Entity name.
|
|
188
|
+
* @returns Primary key column name (defaults to `'id'`)
|
|
189
|
+
*/
|
|
190
|
+
getPrimaryKeyField(entity: string): string;
|
|
191
|
+
/**
|
|
192
|
+
* Builds a Prisma/ORM where clause for a single record by domain ID.
|
|
193
|
+
* @param entity - Entity name.
|
|
194
|
+
* @param id - Domain entity ID value.
|
|
195
|
+
*/
|
|
196
|
+
buildWhereById(entity: string, id: string): Record<string, string>;
|
|
197
|
+
/**
|
|
198
|
+
* Builds a Prisma/ORM where clause for multiple records by domain IDs.
|
|
199
|
+
* @param entity - Entity name.
|
|
200
|
+
* @param ids - Domain entity ID values.
|
|
201
|
+
*/
|
|
202
|
+
buildWhereByIds(entity: string, ids: string[]): Record<string, {
|
|
203
|
+
in: string[];
|
|
204
|
+
}>;
|
|
161
205
|
/**
|
|
162
206
|
* Maps a domain field name to the database field name.
|
|
163
207
|
* @param entity - Entity name.
|
|
@@ -166,7 +210,8 @@ export declare class EntitySchemaRegistry {
|
|
|
166
210
|
mapFieldName(entity: string, fieldName: string): string;
|
|
167
211
|
/**
|
|
168
212
|
* Maps fields of a domain object to database field names.
|
|
169
|
-
* Ignores
|
|
213
|
+
* Ignores Entity, ValueObject, and entity collections.
|
|
214
|
+
* Primitive arrays (e.g. `photoIds: string[]`) are persisted as scalar columns.
|
|
170
215
|
*
|
|
171
216
|
* @param entity - Entity name.
|
|
172
217
|
* @param data - Data to be mapped.
|
|
@@ -280,9 +325,17 @@ export declare class EntitySchemaRegistry {
|
|
|
280
325
|
*/
|
|
281
326
|
clear(): void;
|
|
282
327
|
/**
|
|
283
|
-
*
|
|
328
|
+
* Skips values that must not be written as scalar columns during partial updates.
|
|
329
|
+
* `changedFields` only carries primitive arrays for scalar columns.
|
|
330
|
+
*/
|
|
331
|
+
private shouldSkipPartialFieldValue;
|
|
332
|
+
/**
|
|
333
|
+
* Skips nested relations and entity collections during full entity mapping.
|
|
284
334
|
*/
|
|
285
|
-
private
|
|
335
|
+
private shouldSkipEntityFieldValue;
|
|
336
|
+
private isNestedDomainValue;
|
|
337
|
+
private isPrimitiveValue;
|
|
338
|
+
private isPrimitiveArray;
|
|
286
339
|
/**
|
|
287
340
|
* Normalizes a value for persistence.
|
|
288
341
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-schema-registry.d.ts","sourceRoot":"","sources":["../../../src/repository/entity-schema-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAM,MAAM,eAAe,CAAC;AAIxD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;OAKG;IACH,IAAI,EAAE,cAAc,CAAC;IAErB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,EAAE;QACT,4DAA4D;QAC5D,KAAK,EAAE,MAAM,CAAC;QACd,+DAA+D;QAC/D,SAAS,EAAE,MAAM,CAAC;QAClB,8DAA8D;QAC9D,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT,+DAA+D;QAC/D,KAAK,EAAE,MAAM,CAAC;QACd,+CAA+C;QAC/C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF;;;;;;;;;;OAUG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"entity-schema-registry.d.ts","sourceRoot":"","sources":["../../../src/repository/entity-schema-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -101,6 +101,30 @@ class EntitySchemaRegistry {
|
|
|
101
101
|
getFieldsMap(entity) {
|
|
102
102
|
return this.getSchema(entity).fields || {};
|
|
103
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Gets the database primary key column name for an entity.
|
|
106
|
+
* @param entity - Entity name.
|
|
107
|
+
* @returns Primary key column name (defaults to `'id'`)
|
|
108
|
+
*/
|
|
109
|
+
getPrimaryKeyField(entity) {
|
|
110
|
+
return this.getSchema(entity).primaryKey ?? "id";
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Builds a Prisma/ORM where clause for a single record by domain ID.
|
|
114
|
+
* @param entity - Entity name.
|
|
115
|
+
* @param id - Domain entity ID value.
|
|
116
|
+
*/
|
|
117
|
+
buildWhereById(entity, id) {
|
|
118
|
+
return { [this.getPrimaryKeyField(entity)]: id };
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Builds a Prisma/ORM where clause for multiple records by domain IDs.
|
|
122
|
+
* @param entity - Entity name.
|
|
123
|
+
* @param ids - Domain entity ID values.
|
|
124
|
+
*/
|
|
125
|
+
buildWhereByIds(entity, ids) {
|
|
126
|
+
return { [this.getPrimaryKeyField(entity)]: { in: ids } };
|
|
127
|
+
}
|
|
104
128
|
/**
|
|
105
129
|
* Maps a domain field name to the database field name.
|
|
106
130
|
* @param entity - Entity name.
|
|
@@ -112,7 +136,8 @@ class EntitySchemaRegistry {
|
|
|
112
136
|
}
|
|
113
137
|
/**
|
|
114
138
|
* Maps fields of a domain object to database field names.
|
|
115
|
-
* Ignores
|
|
139
|
+
* Ignores Entity, ValueObject, and entity collections.
|
|
140
|
+
* Primitive arrays (e.g. `photoIds: string[]`) are persisted as scalar columns.
|
|
116
141
|
*
|
|
117
142
|
* @param entity - Entity name.
|
|
118
143
|
* @param data - Data to be mapped.
|
|
@@ -121,7 +146,7 @@ class EntitySchemaRegistry {
|
|
|
121
146
|
const fields = this.getFieldsMap(entity);
|
|
122
147
|
const result = {};
|
|
123
148
|
for (const [key, value] of Object.entries(data)) {
|
|
124
|
-
if (this.
|
|
149
|
+
if (this.shouldSkipPartialFieldValue(value))
|
|
125
150
|
continue;
|
|
126
151
|
const mappedKey = fields[key] ?? key;
|
|
127
152
|
result[mappedKey] = this.normalizeValue(value);
|
|
@@ -141,13 +166,13 @@ class EntitySchemaRegistry {
|
|
|
141
166
|
const hasId = domainEntity.id;
|
|
142
167
|
if (hasId) {
|
|
143
168
|
const idValue = hasId.value ?? hasId;
|
|
144
|
-
result[
|
|
169
|
+
result[this.getPrimaryKeyField(entity)] = idValue;
|
|
145
170
|
}
|
|
146
171
|
const props = domainEntity.props || domainEntity;
|
|
147
172
|
for (const [key, value] of Object.entries(props)) {
|
|
148
173
|
if (key === "id")
|
|
149
174
|
continue;
|
|
150
|
-
if (this.
|
|
175
|
+
if (this.shouldSkipEntityFieldValue(entity, key, value))
|
|
151
176
|
continue;
|
|
152
177
|
const mappedKey = fields[key] ?? key;
|
|
153
178
|
result[mappedKey] = this.normalizeValue(value);
|
|
@@ -295,18 +320,33 @@ class EntitySchemaRegistry {
|
|
|
295
320
|
this.schemas.clear();
|
|
296
321
|
}
|
|
297
322
|
/**
|
|
298
|
-
*
|
|
323
|
+
* Skips values that must not be written as scalar columns during partial updates.
|
|
324
|
+
* `changedFields` only carries primitive arrays for scalar columns.
|
|
299
325
|
*/
|
|
300
|
-
|
|
326
|
+
shouldSkipPartialFieldValue(value) {
|
|
301
327
|
if (value === null || value === undefined)
|
|
302
328
|
return false;
|
|
303
329
|
if (Array.isArray(value))
|
|
330
|
+
return !this.isPrimitiveArray(value);
|
|
331
|
+
return this.isNestedDomainValue(value);
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Skips nested relations and entity collections during full entity mapping.
|
|
335
|
+
*/
|
|
336
|
+
shouldSkipEntityFieldValue(entity, key, value) {
|
|
337
|
+
if (this.getCollectionConfig(entity, key))
|
|
304
338
|
return true;
|
|
305
339
|
if (value instanceof index_1.Entity)
|
|
306
340
|
return true;
|
|
307
341
|
if (value instanceof index_1.ValueObject)
|
|
308
342
|
return true;
|
|
343
|
+
if (Array.isArray(value))
|
|
344
|
+
return !this.isPrimitiveArray(value);
|
|
345
|
+
return this.isNestedDomainValue(value);
|
|
346
|
+
}
|
|
347
|
+
isNestedDomainValue(value) {
|
|
309
348
|
if (typeof value === "object" &&
|
|
349
|
+
value !== null &&
|
|
310
350
|
value.id &&
|
|
311
351
|
typeof value.id === "object" &&
|
|
312
352
|
"value" in value.id) {
|
|
@@ -314,6 +354,21 @@ class EntitySchemaRegistry {
|
|
|
314
354
|
}
|
|
315
355
|
return false;
|
|
316
356
|
}
|
|
357
|
+
isPrimitiveValue(value) {
|
|
358
|
+
if (value === null || value === undefined)
|
|
359
|
+
return true;
|
|
360
|
+
const type = typeof value;
|
|
361
|
+
return (type === "string" ||
|
|
362
|
+
type === "number" ||
|
|
363
|
+
type === "boolean" ||
|
|
364
|
+
type === "symbol" ||
|
|
365
|
+
type === "bigint");
|
|
366
|
+
}
|
|
367
|
+
isPrimitiveArray(arr) {
|
|
368
|
+
if (arr.length === 0)
|
|
369
|
+
return true;
|
|
370
|
+
return arr.every((item) => this.isPrimitiveValue(item));
|
|
371
|
+
}
|
|
317
372
|
/**
|
|
318
373
|
* Normalizes a value for persistence.
|
|
319
374
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-schema-registry.js","sourceRoot":"","sources":["../../../src/repository/entity-schema-registry.ts"],"names":[],"mappings":";;;AAAA,yCAAwD;AACxD,oDAAsD;AACtD,oDAA0D;
|
|
1
|
+
{"version":3,"file":"entity-schema-registry.js","sourceRoot":"","sources":["../../../src/repository/entity-schema-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC"}
|
package/dist/cjs/types/index.js
CHANGED
|
@@ -22,4 +22,5 @@ __exportStar(require("./unit-of-work.js"), exports);
|
|
|
22
22
|
__exportStar(require("./domain-event.js"), exports);
|
|
23
23
|
__exportStar(require("./change-tracker.js"), exports);
|
|
24
24
|
__exportStar(require("./event-bus.js"), exports);
|
|
25
|
+
__exportStar(require("./outbox-store.js"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,uDAAqC;AACrC,6CAA2B;AAC3B,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC;AACpC,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,8CAA4B;AAC5B,uDAAqC;AACrC,6CAA2B;AAC3B,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC;AACpC,iDAA+B;AAC/B,oDAAkC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { IDomainEvent } from "./domain-event.js";
|
|
2
|
+
/**
|
|
3
|
+
* Possible statuses for an outbox entry.
|
|
4
|
+
*
|
|
5
|
+
* - `pending`: The event has been persisted but not yet published.
|
|
6
|
+
* - `published`: The event has been successfully published to the message broker.
|
|
7
|
+
* - `failed`: The event failed to publish after the maximum number of retries.
|
|
8
|
+
*/
|
|
9
|
+
export type OutboxStatus = "pending" | "published" | "failed";
|
|
10
|
+
/**
|
|
11
|
+
* The data shape of a single outbox entry returned by {@link IOutboxStore.fetchPending}.
|
|
12
|
+
* This is the flat wire format — no class logic, just data.
|
|
13
|
+
*/
|
|
14
|
+
export interface OutboxEntryData {
|
|
15
|
+
/** The event's own `eventId`, used as the primary key of the outbox table. */
|
|
16
|
+
id: string;
|
|
17
|
+
/** The event class name (e.g. `"OrderPlaced"`). */
|
|
18
|
+
eventName: string;
|
|
19
|
+
/** The event payload (the `P` generic from `DomainEvent<P>`). */
|
|
20
|
+
payload: unknown;
|
|
21
|
+
/** When the domain event was originally created. */
|
|
22
|
+
occurredOn: Date;
|
|
23
|
+
/** Current publish status. */
|
|
24
|
+
status: OutboxStatus;
|
|
25
|
+
/** Number of publish attempts so far. */
|
|
26
|
+
retries: number;
|
|
27
|
+
/** Error message from the most recent failed publish attempt, if any. */
|
|
28
|
+
lastError: string | null;
|
|
29
|
+
/** When this outbox row was inserted. */
|
|
30
|
+
createdAt: Date;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result returned by {@link IOutboxStore.fetchPending}.
|
|
34
|
+
*/
|
|
35
|
+
export interface OutboxFetchResult {
|
|
36
|
+
entries: OutboxEntryData[];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Minimal, framework-agnostic contract for an outbox persistence store.
|
|
40
|
+
*
|
|
41
|
+
* Implementations exist for Prisma, Drizzle, TypeORM, and raw SQL.
|
|
42
|
+
* The interface lives in `@woltz/rich-domain` (core) so that the
|
|
43
|
+
* `@woltz/rich-domain-outbox` package can depend on it without
|
|
44
|
+
* coupling to any specific ORM or database.
|
|
45
|
+
*/
|
|
46
|
+
export interface IOutboxStore {
|
|
47
|
+
/**
|
|
48
|
+
* Persist one or more domain events to the outbox table.
|
|
49
|
+
*
|
|
50
|
+
* MUST be called within the same database transaction as the aggregate write
|
|
51
|
+
* so that both succeed or both roll back together.
|
|
52
|
+
*
|
|
53
|
+
* Each event's `eventId` becomes the primary key (`id`) of the outbox row.
|
|
54
|
+
* The `status` column is always set to `"pending"` initially.
|
|
55
|
+
*
|
|
56
|
+
* @param events - The domain events to persist.
|
|
57
|
+
* @param tx - Optional ORM-specific transaction context (e.g. a Prisma interactive tx client, a Drizzle tx, or a TypeORM EntityManager).
|
|
58
|
+
*/
|
|
59
|
+
save(events: IDomainEvent[], tx?: unknown): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* Fetch a batch of events whose status is still `"pending"`.
|
|
62
|
+
* Entries are returned in insertion order (oldest first) so that
|
|
63
|
+
* earlier events are retried before later ones.
|
|
64
|
+
*
|
|
65
|
+
* The publisher calls this periodically and attempts to publish each entry.
|
|
66
|
+
* On success it calls {@link markPublished}; on failure it calls {@link markFailed}.
|
|
67
|
+
*
|
|
68
|
+
* @param batchSize - Maximum number of entries to return. Default 50.
|
|
69
|
+
* @returns A result object containing the matching entries.
|
|
70
|
+
*/
|
|
71
|
+
fetchPending(batchSize?: number): Promise<OutboxFetchResult>;
|
|
72
|
+
/**
|
|
73
|
+
* Mark an outbox entry as successfully published.
|
|
74
|
+
*
|
|
75
|
+
* Mapping: `UPDATE outbox SET status = 'published' WHERE id = :eventId`
|
|
76
|
+
*
|
|
77
|
+
* @param id - The event's `eventId` (same value used as the outbox primary key).
|
|
78
|
+
*/
|
|
79
|
+
markPublished(id: string): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* Mark an outbox entry as failed, incrementing its retry counter
|
|
82
|
+
* and recording the error that caused the failure.
|
|
83
|
+
*
|
|
84
|
+
* Mapping: `UPDATE outbox SET status = 'failed', retries = retries + 1, lastError = :error WHERE id = :eventId`
|
|
85
|
+
*
|
|
86
|
+
* @param id - The event's `eventId`.
|
|
87
|
+
* @param error - The error message.
|
|
88
|
+
*/
|
|
89
|
+
markFailed(id: string, error: string): Promise<void>;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=outbox-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox-store.d.ts","sourceRoot":"","sources":["../../../src/types/outbox-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,UAAU,EAAE,IAAI,CAAC;IACjB,8BAA8B;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;;;;;;;;;OAUG;IACH,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE7D;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox-store.js","sourceRoot":"","sources":["../../../src/types/outbox-store.ts"],"names":[],"mappings":""}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare function parseQueryValue(value: unknown): any;
|
|
2
2
|
export declare function levenshteinDistance(a: string, b: string): number;
|
|
3
|
+
export declare function getStaticProperty<T>(instance: any, propertyName: string): T | undefined;
|
|
3
4
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAcnD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BhE"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,GAAG,CAcnD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA0BhE;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,QAAQ,EAAE,GAAG,EACb,YAAY,EAAE,MAAM,GACnB,CAAC,GAAG,SAAS,CAEf"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.parseQueryValue = parseQueryValue;
|
|
4
4
|
exports.levenshteinDistance = levenshteinDistance;
|
|
5
|
+
exports.getStaticProperty = getStaticProperty;
|
|
5
6
|
function parseQueryValue(value) {
|
|
6
7
|
if (value === null || value === undefined)
|
|
7
8
|
return value;
|
|
@@ -47,4 +48,7 @@ function levenshteinDistance(a, b) {
|
|
|
47
48
|
}
|
|
48
49
|
return matrix[b.length][a.length];
|
|
49
50
|
}
|
|
51
|
+
function getStaticProperty(instance, propertyName) {
|
|
52
|
+
return instance.constructor[propertyName];
|
|
53
|
+
}
|
|
50
54
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":";;AAAA,0CAcC;AAED,kDA0BC;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -162,6 +162,20 @@ export declare class AggregateChanges<TEntityMap = Record<string, any>> {
|
|
|
162
162
|
* Checks if there are create operations.
|
|
163
163
|
*/
|
|
164
164
|
hasCreates(): boolean;
|
|
165
|
+
/**
|
|
166
|
+
* Returns a new AggregateChanges without the specified entities.
|
|
167
|
+
*
|
|
168
|
+
* @param input - Entity name or array of entity names
|
|
169
|
+
* @returns New AggregateChanges containing only operations for the remaining entities
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const changes = new AggregateChanges([...]);
|
|
174
|
+
* const filtered = changes.without('Post');
|
|
175
|
+
* // Contains only operations for entities other than 'Post'
|
|
176
|
+
* ```
|
|
177
|
+
*/
|
|
178
|
+
without<K extends keyof TEntityMap>(input: K | K[]): AggregateChanges<TEntityMap>;
|
|
165
179
|
/**
|
|
166
180
|
* Checks if there are update operations.
|
|
167
181
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate-changes.d.ts","sourceRoot":"","sources":["../../../src/core/aggregate-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAmB;gBAElB,UAAU,GAAE,SAAS,EAAO;IAIxC;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI;IAYP;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,KAAK,EAAE,MAAM,GACZ,IAAI;IAWP;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI;IAaP;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAI5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;;;;OAKG;IACF,UAAU,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;IAMpD;;OAEG;IACH,OAAO,IAAI,SAAS,EAAE;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iBAAiB,IAAI,eAAe;IAQpC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAsCpB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAuCpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAK3E;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAOhE;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,SAAS,EAAE,CAE/B;IAED;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAUhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,gBAAgB,CAAC,UAAU,CAAC;CAGtC"}
|
|
1
|
+
{"version":3,"file":"aggregate-changes.d.ts","sourceRoot":"","sources":["../../../src/core/aggregate-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EAGhB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAmB;gBAElB,UAAU,GAAE,SAAS,EAAO;IAIxC;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI;IAYP;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,KAAK,EAAE,MAAM,GACZ,IAAI;IAWP;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI;IAaP;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAI5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;;;;OAKG;IACF,UAAU,IAAI,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC;IAMpD;;OAEG;IACH,OAAO,IAAI,SAAS,EAAE;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iBAAiB,IAAI,eAAe;IAQpC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAsCpB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAuCpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;;;;;;;OAgBG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAK3E;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAOhE;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,UAAU,EAChC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GACb,gBAAgB,CAAC,UAAU,CAAC;IAO/B;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,SAAS,EAAE,CAE/B;IAED;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAUhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,gBAAgB,CAAC,UAAU,CAAC;CAGtC"}
|
|
@@ -289,6 +289,24 @@ export class AggregateChanges {
|
|
|
289
289
|
hasCreates() {
|
|
290
290
|
return this.ops.some((op) => op.type === "create");
|
|
291
291
|
}
|
|
292
|
+
/**
|
|
293
|
+
* Returns a new AggregateChanges without the specified entities.
|
|
294
|
+
*
|
|
295
|
+
* @param input - Entity name or array of entity names
|
|
296
|
+
* @returns New AggregateChanges containing only operations for the remaining entities
|
|
297
|
+
*
|
|
298
|
+
* @example
|
|
299
|
+
* ```typescript
|
|
300
|
+
* const changes = new AggregateChanges([...]);
|
|
301
|
+
* const filtered = changes.without('Post');
|
|
302
|
+
* // Contains only operations for entities other than 'Post'
|
|
303
|
+
* ```
|
|
304
|
+
*/
|
|
305
|
+
without(input) {
|
|
306
|
+
const entities = Array.isArray(input) ? input : [input];
|
|
307
|
+
const filtered = this.ops.filter((op) => !entities.includes(op.entity));
|
|
308
|
+
return new AggregateChanges(filtered);
|
|
309
|
+
}
|
|
292
310
|
/**
|
|
293
311
|
* Checks if there are update operations.
|
|
294
312
|
*/
|