@woltz/rich-domain 0.2.2 → 1.1.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 +23 -75
- package/LICENSE +20 -20
- package/README.md +37 -20
- package/dist/base-entity.d.ts +2 -2
- package/dist/base-entity.d.ts.map +1 -1
- package/dist/base-entity.js +6 -4
- package/dist/base-entity.js.map +1 -1
- package/dist/criteria.d.ts +5 -11
- package/dist/criteria.d.ts.map +1 -1
- package/dist/criteria.js +4 -3
- package/dist/criteria.js.map +1 -1
- package/dist/deep-proxy.d.ts +3 -1
- package/dist/deep-proxy.d.ts.map +1 -1
- package/dist/deep-proxy.js +116 -29
- package/dist/deep-proxy.js.map +1 -1
- package/dist/domain-event-bus.d.ts +5 -6
- package/dist/domain-event-bus.d.ts.map +1 -1
- package/dist/domain-event-bus.js +3 -11
- package/dist/domain-event-bus.js.map +1 -1
- package/dist/domain-event.d.ts +1 -31
- package/dist/domain-event.d.ts.map +1 -1
- package/dist/domain-event.js +2 -1
- package/dist/domain-event.js.map +1 -1
- package/dist/entity.d.ts +2 -2
- package/dist/entity.js +1 -1
- package/dist/exceptions.d.ts +251 -0
- package/dist/exceptions.d.ts.map +1 -0
- package/dist/exceptions.js +321 -0
- package/dist/exceptions.js.map +1 -0
- package/dist/id.d.ts +3 -3
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +15 -4
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -8
- package/dist/index.js.map +1 -1
- package/dist/paginated-result.d.ts.map +1 -1
- package/dist/paginated-result.js +12 -1
- package/dist/paginated-result.js.map +1 -1
- package/dist/repository/index.d.ts +2 -39
- package/dist/repository/index.d.ts.map +1 -1
- package/dist/repository/index.js +2 -39
- package/dist/repository/index.js.map +1 -1
- package/dist/repository/unit-of-work.d.ts +0 -11
- package/dist/repository/unit-of-work.d.ts.map +1 -1
- package/dist/repository/unit-of-work.js +0 -35
- package/dist/repository/unit-of-work.js.map +1 -1
- package/dist/types/criteria.d.ts +6 -2
- package/dist/types/criteria.d.ts.map +1 -1
- package/dist/types/criteria.js +1 -1
- package/dist/types/criteria.js.map +1 -1
- package/dist/types/domain-event.d.ts +32 -0
- package/dist/types/domain-event.d.ts.map +1 -0
- package/dist/types/domain-event.js +2 -0
- package/dist/types/domain-event.js.map +1 -0
- package/dist/types/domain.d.ts +2 -2
- package/dist/types/domain.d.ts.map +1 -1
- package/dist/types/history-tracker.d.ts +1 -1
- package/dist/types/history-tracker.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/value-object.d.ts +1 -1
- package/dist/value-object.d.ts.map +1 -1
- package/dist/value-object.js +2 -5
- package/dist/value-object.js.map +1 -1
- package/eslint.config.js +3 -3
- package/jest.config.js +1 -1
- package/package.json +14 -20
- package/src/base-entity.ts +6 -5
- package/src/criteria.ts +11 -11
- package/src/deep-proxy.ts +447 -339
- package/src/domain-event-bus.ts +152 -166
- package/src/domain-event.ts +53 -90
- package/src/entity.ts +16 -16
- package/src/exceptions.ts +435 -0
- package/src/id.ts +107 -94
- package/src/index.ts +26 -9
- package/src/paginated-result.ts +14 -1
- package/src/repository/index.ts +2 -44
- package/src/repository/unit-of-work.ts +1 -44
- package/src/types/criteria.ts +7 -2
- package/src/types/domain-event.ts +38 -0
- package/src/types/domain.ts +2 -3
- package/src/types/history-tracker.ts +1 -1
- package/src/types/index.ts +1 -0
- package/src/validation-error.ts +97 -97
- package/src/value-object.ts +3 -6
- package/tests/criteria.test.ts +8 -0
- package/tests/domain-events.test.ts +431 -445
- package/tests/entity-validation.test.ts +2 -2
- package/tests/entity.test.ts +33 -33
- package/tests/history-tracker.spec.ts +57 -17
- package/tests/id.test.ts +341 -341
- package/tests/repository.test.ts +8 -4
- package/tests/to-json.test.ts +103 -91
- package/tests/utils.ts +254 -151
- package/tests/value-object-validation.test.ts +0 -9
- package/tests/value-objects.test.ts +52 -52
- package/tsconfig.json +2 -24
- package/.github/workflows/ci.yml +0 -40
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.vscode/settings.json +0 -3
- package/commitlint.config.js +0 -23
- package/dist/filtering.d.ts +0 -107
- package/dist/filtering.d.ts.map +0 -1
- package/dist/filtering.js +0 -202
- package/dist/filtering.js.map +0 -1
- package/dist/ordering.d.ts +0 -93
- package/dist/ordering.d.ts.map +0 -1
- package/dist/ordering.js +0 -154
- package/dist/ordering.js.map +0 -1
- package/dist/pagination.d.ts +0 -218
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pagination.js +0 -281
- package/dist/pagination.js.map +0 -1
- package/dist/repository/in-memory-repository.d.ts +0 -50
- package/dist/repository/in-memory-repository.d.ts.map +0 -1
- package/dist/repository/in-memory-repository.js +0 -93
- package/dist/repository/in-memory-repository.js.map +0 -1
- package/dist/repository/mapper.d.ts +0 -56
- package/dist/repository/mapper.d.ts.map +0 -1
- package/dist/repository/mapper.js +0 -15
- package/dist/repository/mapper.js.map +0 -1
- package/dist/repository/types.d.ts +0 -87
- package/dist/repository/types.d.ts.map +0 -1
- package/dist/repository/types.js +0 -6
- package/dist/repository/types.js.map +0 -1
- package/dist/repository.d.ts +0 -2
- package/dist/repository.d.ts.map +0 -1
- package/dist/repository.js +0 -21
- package/dist/repository.js.map +0 -1
- package/dist/specification.d.ts +0 -102
- package/dist/specification.d.ts.map +0 -1
- package/dist/specification.js +0 -187
- package/dist/specification.js.map +0 -1
- package/dist/types/repository.d.ts +0 -43
- package/dist/types/repository.d.ts.map +0 -1
- package/dist/types/repository.js +0 -2
- package/dist/types/repository.js.map +0 -1
- package/dist/types.d.ts +0 -88
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -12
- package/dist/types.js.map +0 -1
- package/src/repository/in-memory-repository.ts +0 -116
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
export { Id } from "./id";
|
|
2
|
-
export { BaseEntity } from "./base-entity";
|
|
3
2
|
export { Entity, Aggregate } from "./entity";
|
|
4
3
|
export { ValueObject } from "./value-object";
|
|
5
4
|
export { Mapper } from "./mapper";
|
|
6
5
|
export * from "./validation-error";
|
|
7
6
|
export * from "./domain-event";
|
|
8
7
|
export * from "./domain-event-bus";
|
|
8
|
+
export * from "./exceptions";
|
|
9
9
|
export * from "./criteria";
|
|
10
10
|
export * from "./paginated-result";
|
|
11
11
|
export * from "./repository";
|
|
12
|
-
export {
|
|
13
|
-
export * from "./types";
|
|
14
|
-
export * from "./constants";
|
|
15
|
-
export { DeepProxy } from "./deep-proxy";
|
|
12
|
+
export { DomainEventHandler, EntityHooks, Filter, EntityValidation, IDomainEvent, VOValidation, VOHooks, ValidationConfig, Primitive, TransactionContext, PaginationMeta, Pagination, OrderDirection, Order, IUnitOfWork, IDomainEventHandler, EntityId, FieldPath, FilterOperator, Search, FilterValueFor, PathValue, } from "./types";
|
|
16
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,kBAAkB,EAClB,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,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,MAAM,EACN,cAAc,EACd,SAAS,GACV,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
// Core Classes
|
|
5
5
|
export { Id } from "./id";
|
|
6
|
-
export { BaseEntity } from "./base-entity";
|
|
7
6
|
export { Entity, Aggregate } from "./entity";
|
|
8
7
|
export { ValueObject } from "./value-object";
|
|
9
8
|
export { Mapper } from "./mapper";
|
|
@@ -11,16 +10,11 @@ export * from "./validation-error";
|
|
|
11
10
|
// Domain Events
|
|
12
11
|
export * from "./domain-event";
|
|
13
12
|
export * from "./domain-event-bus";
|
|
14
|
-
|
|
13
|
+
export * from "./exceptions";
|
|
14
|
+
// Criteria
|
|
15
15
|
export * from "./criteria";
|
|
16
16
|
export * from "./paginated-result";
|
|
17
17
|
// Repository
|
|
18
18
|
export * from "./repository";
|
|
19
|
-
// Backward compatibility - re-export InMemoryRepository at top level
|
|
20
|
-
export { InMemoryRepository } from "./repository";
|
|
21
|
-
// Types
|
|
22
|
-
export * from "./types";
|
|
23
|
-
export * from "./constants";
|
|
24
19
|
// Internal (for advanced usage)
|
|
25
|
-
export { DeepProxy } from "./deep-proxy";
|
|
26
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E,eAAe;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,qCAAqC;AACrC,+EAA+E;AAE/E,eAAe;AACf,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,oBAAoB,CAAC;AAEnC,gBAAgB;AAChB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAE7B,WAAW;AACX,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AAEnC,aAAa;AACb,cAAc,cAAc,CAAC;AA4B7B,gCAAgC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginated-result.d.ts","sourceRoot":"","sources":["../src/paginated-result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAU,MAAM,SAAS,CAAC;AAMlE;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAMF,qBAAa,eAAe,CAAC,CAAC;aAEV,IAAI,EAAE,CAAC,EAAE;aACT,IAAI,EAAE,cAAc;gBADpB,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,cAAc;IAGtC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EACb,IAAI,EAAE,CAAC,EAAE,EACT,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,CAAC,CAAC;IAKrB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IAaxE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"paginated-result.d.ts","sourceRoot":"","sources":["../src/paginated-result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAU,MAAM,SAAS,CAAC;AAMlE;;;;GAIG;AACH,KAAK,eAAe,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,IAAI,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;IACnC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;CACtB,CAAC;AAMF,qBAAa,eAAe,CAAC,CAAC;aAEV,IAAI,EAAE,CAAC,EAAE;aACT,IAAI,EAAE,cAAc;gBADpB,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,cAAc;IAGtC;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EACb,IAAI,EAAE,CAAC,EAAE,EACT,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,MAAM,GACZ,eAAe,CAAC,CAAC,CAAC;IAKrB;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,cAAc;IAaxE;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAuD1E;;;;;;;;OAQG;IACH,MAAM,IAAI,mBAAmB,CAAC,CAAC,CAAC;IAShC;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAI9C;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
|
package/dist/paginated-result.js
CHANGED
|
@@ -37,7 +37,18 @@ export class PaginatedResult {
|
|
|
37
37
|
for (const filter of criteria.getFilters()) {
|
|
38
38
|
result = result.filter((item) => applyFilter(item, filter));
|
|
39
39
|
}
|
|
40
|
-
|
|
40
|
+
let total = result.length;
|
|
41
|
+
const search = criteria.getSearch();
|
|
42
|
+
if (search) {
|
|
43
|
+
result = result.filter((item) => {
|
|
44
|
+
return search.fields.some((field) => {
|
|
45
|
+
return String(getNestedValue(item, field))
|
|
46
|
+
.toLowerCase()
|
|
47
|
+
.includes(search.value.toLowerCase());
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
total = result.length;
|
|
51
|
+
}
|
|
41
52
|
// Apply ordering
|
|
42
53
|
for (const order of criteria.getOrders().reverse()) {
|
|
43
54
|
result.sort((a, b) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginated-result.js","sourceRoot":"","sources":["../src/paginated-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAuB1B,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E,MAAM,OAAO,eAAe;IAC1B,YACkB,IAAS,EACT,IAAoB;QADpB,SAAI,GAAJ,IAAI,CAAK;QACT,SAAI,GAAJ,IAAI,CAAgB;IACnC,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,MAAM,CACX,IAAS,EACT,UAAsB,EACtB,KAAa;QAEb,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,UAAsB,EAAE,KAAa;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAEvD,OAAO;YACL,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,KAAK;YACL,UAAU;YACV,OAAO,EAAE,UAAU,CAAC,IAAI,GAAG,UAAU;YACrC,WAAW,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC;SACjC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAI,KAAU,EAAE,QAAqB;QACnD,IAAI,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAExB,gBAAgB;QAChB,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC;YAC3C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"paginated-result.js","sourceRoot":"","sources":["../src/paginated-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,4 @@
|
|
|
1
1
|
export { Mapper } from "../mapper";
|
|
2
|
-
export
|
|
3
|
-
export {
|
|
4
|
-
export { UnitOfWork, BaseTransactionContext, InMemoryUnitOfWork, } from "./unit-of-work";
|
|
5
|
-
/**
|
|
6
|
-
* QUICK START:
|
|
7
|
-
*
|
|
8
|
-
* 1. For Testing:
|
|
9
|
-
* ```ts
|
|
10
|
-
* import { InMemoryRepository } from 'rich-domain';
|
|
11
|
-
*
|
|
12
|
-
* const userRepo = new InMemoryRepository<User>();
|
|
13
|
-
* await userRepo.save(user);
|
|
14
|
-
* const found = await userRepo.findById(user.id);
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* 2. For Production (Prisma, TypeORM, etc):
|
|
18
|
-
* - Extend BaseRepository
|
|
19
|
-
* - Implement abstract methods
|
|
20
|
-
* - Create a Mapper
|
|
21
|
-
* - See examples/ folder for reference
|
|
22
|
-
*
|
|
23
|
-
* 3. With Criteria:
|
|
24
|
-
* ```ts
|
|
25
|
-
* const result = await userRepo.find(
|
|
26
|
-
* Criteria.create<User>()
|
|
27
|
-
* .whereEquals('status', 'active')
|
|
28
|
-
* .orderByDesc('createdAt')
|
|
29
|
-
* .paginate(1, 10)
|
|
30
|
-
* );
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* 4. With Unit of Work:
|
|
34
|
-
* ```ts
|
|
35
|
-
* await uow.transaction(async (ctx) => {
|
|
36
|
-
* const userRepo = uow.getRepository(UserRepository);
|
|
37
|
-
* await userRepo.save(user);
|
|
38
|
-
* });
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
2
|
+
export * from "./base-repository";
|
|
3
|
+
export { UnitOfWork, BaseTransactionContext } from "./unit-of-work";
|
|
41
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/repository/index.js
CHANGED
|
@@ -4,44 +4,7 @@
|
|
|
4
4
|
// Mapper
|
|
5
5
|
export { Mapper } from "../mapper";
|
|
6
6
|
// Base implementations
|
|
7
|
-
export
|
|
8
|
-
export { InMemoryRepository } from "./in-memory-repository";
|
|
7
|
+
export * from "./base-repository";
|
|
9
8
|
// Unit of Work
|
|
10
|
-
export { UnitOfWork, BaseTransactionContext
|
|
11
|
-
/**
|
|
12
|
-
* QUICK START:
|
|
13
|
-
*
|
|
14
|
-
* 1. For Testing:
|
|
15
|
-
* ```ts
|
|
16
|
-
* import { InMemoryRepository } from 'rich-domain';
|
|
17
|
-
*
|
|
18
|
-
* const userRepo = new InMemoryRepository<User>();
|
|
19
|
-
* await userRepo.save(user);
|
|
20
|
-
* const found = await userRepo.findById(user.id);
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* 2. For Production (Prisma, TypeORM, etc):
|
|
24
|
-
* - Extend BaseRepository
|
|
25
|
-
* - Implement abstract methods
|
|
26
|
-
* - Create a Mapper
|
|
27
|
-
* - See examples/ folder for reference
|
|
28
|
-
*
|
|
29
|
-
* 3. With Criteria:
|
|
30
|
-
* ```ts
|
|
31
|
-
* const result = await userRepo.find(
|
|
32
|
-
* Criteria.create<User>()
|
|
33
|
-
* .whereEquals('status', 'active')
|
|
34
|
-
* .orderByDesc('createdAt')
|
|
35
|
-
* .paginate(1, 10)
|
|
36
|
-
* );
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
* 4. With Unit of Work:
|
|
40
|
-
* ```ts
|
|
41
|
-
* await uow.transaction(async (ctx) => {
|
|
42
|
-
* const userRepo = uow.getRepository(UserRepository);
|
|
43
|
-
* await userRepo.save(user);
|
|
44
|
-
* });
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
9
|
+
export { UnitOfWork, BaseTransactionContext } from "./unit-of-work";
|
|
47
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,uBAAuB;AACvB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;AAE/E,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -56,15 +56,4 @@ export declare abstract class BaseTransactionContext implements TransactionConte
|
|
|
56
56
|
isActive(): boolean;
|
|
57
57
|
protected markInactive(): void;
|
|
58
58
|
}
|
|
59
|
-
/**
|
|
60
|
-
* In-Memory Unit of Work (for testing)
|
|
61
|
-
*/
|
|
62
|
-
export declare class InMemoryUnitOfWork extends UnitOfWork {
|
|
63
|
-
private committed;
|
|
64
|
-
private rolledBack;
|
|
65
|
-
begin(): Promise<TransactionContext>;
|
|
66
|
-
protected createRepository<TRepo>(RepositoryClass: new (...args: any[]) => TRepo): TRepo;
|
|
67
|
-
isCommitted(): boolean;
|
|
68
|
-
isRolledBack(): boolean;
|
|
69
|
-
}
|
|
70
59
|
//# sourceMappingURL=unit-of-work.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../src/repository/unit-of-work.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,8BAAsB,UAAW,YAAW,WAAW;IACrD,SAAS,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAC3D,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IAExD,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAE7C;;;OAGG;IACG,WAAW,CAAC,CAAC,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,CAAC;IAkBb;;OAEG;IACH,aAAa,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../src/repository/unit-of-work.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,8BAAsB,UAAW,YAAW,WAAW;IACrD,SAAS,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAC3D,SAAS,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IAExD,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAE7C;;;OAGG;IACG,WAAW,CAAC,CAAC,EACjB,IAAI,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,CAAC;IAkBb;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,KAAK;IAY3E;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EACvC,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,GAC7C,KAAK;CACT;AAED;;GAEG;AACH,8BAAsB,sBAAuB,YAAW,kBAAkB;IACxE,SAAS,CAAC,SAAS,UAAQ;IAE3B,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAChC,QAAQ,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC,QAAQ,IAAI,OAAO;IAInB,SAAS,CAAC,YAAY,IAAI,IAAI;CAG/B"}
|
|
@@ -84,39 +84,4 @@ export class BaseTransactionContext {
|
|
|
84
84
|
this._isActive = false;
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
|
-
/**
|
|
88
|
-
* In-Memory Unit of Work (for testing)
|
|
89
|
-
*/
|
|
90
|
-
export class InMemoryUnitOfWork extends UnitOfWork {
|
|
91
|
-
constructor() {
|
|
92
|
-
super(...arguments);
|
|
93
|
-
this.committed = false;
|
|
94
|
-
this.rolledBack = false;
|
|
95
|
-
}
|
|
96
|
-
async begin() {
|
|
97
|
-
this.currentContext = new InMemoryTransactionContext();
|
|
98
|
-
this.committed = false;
|
|
99
|
-
this.rolledBack = false;
|
|
100
|
-
return this.currentContext;
|
|
101
|
-
}
|
|
102
|
-
createRepository(RepositoryClass) {
|
|
103
|
-
// For in-memory, just create a new instance
|
|
104
|
-
// In real implementation, pass transaction client
|
|
105
|
-
return new RepositoryClass();
|
|
106
|
-
}
|
|
107
|
-
isCommitted() {
|
|
108
|
-
return this.committed;
|
|
109
|
-
}
|
|
110
|
-
isRolledBack() {
|
|
111
|
-
return this.rolledBack;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
class InMemoryTransactionContext extends BaseTransactionContext {
|
|
115
|
-
async commit() {
|
|
116
|
-
this.markInactive();
|
|
117
|
-
}
|
|
118
|
-
async rollback() {
|
|
119
|
-
this.markInactive();
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
87
|
//# sourceMappingURL=unit-of-work.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../src/repository/unit-of-work.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAI/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAgB,UAAU;IAAhC;QACY,mBAAc,GAA8B,IAAI,CAAC;QACjD,oBAAe,GAAqB,IAAI,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../src/repository/unit-of-work.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;AAI/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAgB,UAAU;IAAhC;QACY,mBAAc,GAA8B,IAAI,CAAC;QACjD,oBAAe,GAAqB,IAAI,GAAG,EAAE,CAAC;IAiD1D,CAAC;IA7CC;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,IAA6C;QAE7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACnB,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,aAAa,CAAQ,eAA8C;QACjE,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC;QAEjC,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;CAQF;AAED;;GAEG;AACH,MAAM,OAAgB,sBAAsB;IAA5C;QACY,cAAS,GAAG,IAAI,CAAC;IAY7B,CAAC;IAPC,QAAQ;QACN,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACzB,CAAC;CACF"}
|
package/dist/types/criteria.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Primitive } from "./utils";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const FILTER_OPERATORS: readonly ["equals", "notEquals", "greaterThan", "greaterThanOrEqual", "lessThan", "lessThanOrEqual", "contains", "startsWith", "endsWith", "in", "notIn", "between", "isNull", "isNotNull"];
|
|
3
3
|
export type FilterValueFor<T> = T | (T extends number | Date ? [T, T] : never) | T[] | null;
|
|
4
4
|
export type PathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? PathValue<T[K], Rest> : never : P extends keyof T ? T[P] : never;
|
|
5
|
-
export type FilterOperator = (typeof
|
|
5
|
+
export type FilterOperator = (typeof FILTER_OPERATORS)[number];
|
|
6
6
|
export interface Filter<TField = string, TValue = unknown> {
|
|
7
7
|
field: TField;
|
|
8
8
|
operator: FilterOperator;
|
|
@@ -21,6 +21,10 @@ export interface Pagination {
|
|
|
21
21
|
limit: number;
|
|
22
22
|
offset: number;
|
|
23
23
|
}
|
|
24
|
+
export interface Search<T> {
|
|
25
|
+
fields: FieldPath<T>[];
|
|
26
|
+
value: string;
|
|
27
|
+
}
|
|
24
28
|
export interface PaginationMeta {
|
|
25
29
|
page: number;
|
|
26
30
|
limit: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,gBAAgB,6LAenB,CAAC;AAEX,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GACpB,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,KAAK,CAAC,GACV,CAAC,EAAE,GACH,IAAI,CAAC;AAET,MAAM,MAAM,SAAS,CACnB,CAAC,EACD,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GACpC,CAAC,SAAS,MAAM,CAAC,GACf,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GACrB,KAAK,GACP,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,OAAO;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAC3C,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC3B,CAAC,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,GAC1B,CAAC,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAClC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC"}
|
package/dist/types/criteria.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,QAAQ;IACR,WAAW;IACX,aAAa;IACb,oBAAoB;IACpB,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,UAAU;IACV,IAAI;IACJ,OAAO;IACP,SAAS;IACT,QAAQ;IACR,WAAW;CACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interface for all domain events
|
|
3
|
+
*/
|
|
4
|
+
export interface IDomainEvent {
|
|
5
|
+
/**
|
|
6
|
+
* Unique identifier for this event occurrence
|
|
7
|
+
*/
|
|
8
|
+
readonly eventId: string;
|
|
9
|
+
/**
|
|
10
|
+
* When the event occurred
|
|
11
|
+
*/
|
|
12
|
+
readonly occurredOn: Date;
|
|
13
|
+
/**
|
|
14
|
+
* Name/type of the event (e.g., "UserCreated", "OrderPlaced")
|
|
15
|
+
*/
|
|
16
|
+
readonly eventName: string;
|
|
17
|
+
/**
|
|
18
|
+
* ID of the aggregate that raised this event
|
|
19
|
+
*/
|
|
20
|
+
readonly aggregateId: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Event handler function type
|
|
24
|
+
*/
|
|
25
|
+
export type DomainEventHandler<T extends IDomainEvent = IDomainEvent> = (event: T) => void | Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Event handler class type
|
|
28
|
+
*/
|
|
29
|
+
export interface IDomainEventHandler<T extends IDomainEvent = IDomainEvent> {
|
|
30
|
+
handle(event: T): void | Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=domain-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-event.d.ts","sourceRoot":"","sources":["../../src/types/domain-event.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,IAAI,CACtE,KAAK,EAAE,CAAC,KACL,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IACxE,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-event.js","sourceRoot":"","sources":["../../src/types/domain-event.ts"],"names":[],"mappings":""}
|
package/dist/types/domain.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ValidationConfig } from "..";
|
|
2
2
|
import { Id } from "../id";
|
|
3
|
+
import { StandardSchema } from "./standard-schema";
|
|
3
4
|
export type EntityId = string | number;
|
|
4
5
|
export interface BaseProps {
|
|
5
6
|
id: Id;
|
|
@@ -14,7 +15,6 @@ export interface VOHooks<T, E> {
|
|
|
14
15
|
onBeforeUpdate?: (entity: E, snapshot: T) => boolean;
|
|
15
16
|
onCreate?: (entity: E) => void;
|
|
16
17
|
rules?: (entity: E) => void;
|
|
17
|
-
defaultValues?: Partial<T>;
|
|
18
18
|
}
|
|
19
19
|
export interface EntityHooks<T extends BaseProps, E> {
|
|
20
20
|
onBeforeUpdate?: (entity: E, snapshot: T) => boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/types/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/types/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,IAAI,CAAC;AACtC,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,EAAE,CAAC;CACR;AAED,UAAU,gBAAgB,CAAC,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACtD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAElD,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAGD,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC;IACjD,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,OAAO,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC;IACvD,KAAK,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAClB,UAAU,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-tracker.d.ts","sourceRoot":"","sources":["../../src/types/history-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"history-tracker.d.ts","sourceRoot":"","sources":["../../src/types/history-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IACxB,OAAO,EAAE,CAAC,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACpE,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAEtE,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CAC9B;AAED,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI;KACnD,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,GACrD,iBAAiB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAClD,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,GAAG,CAAC;IACnB,YAAY,EAAE,GAAG,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
|
package/dist/value-object.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ValidationError } from "./validation-error";
|
|
2
|
-
import { IDomainEvent } from "
|
|
2
|
+
import { IDomainEvent } from ".";
|
|
3
3
|
import { VOHooks, EntityValidation } from "./types";
|
|
4
4
|
export declare abstract class ValueObject<T> {
|
|
5
5
|
protected readonly props: T;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EACL,OAAO,EAGP,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAYjB,8BAAsB,WAAW,CAAC,CAAC;IACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAkB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAoB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAG1C,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;IA2CpB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,cAAc;IAmBtB;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO;IAKtC;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B,MAAM,IAAI,CAAC;IAIX;;;OAGG;IACH,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;CAI3C"}
|
package/dist/value-object.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// ============================================================================
|
|
4
4
|
import { ValidationError } from "./validation-error";
|
|
5
5
|
import { DEFAULT_VALIDATION_CONFIG } from "./constants";
|
|
6
|
+
import { DomainError } from "./exceptions";
|
|
6
7
|
// Helper to get static properties from constructor
|
|
7
8
|
function getStaticProperty(instance, propertyName) {
|
|
8
9
|
return instance.constructor[propertyName];
|
|
@@ -21,11 +22,7 @@ export class ValueObject {
|
|
|
21
22
|
...DEFAULT_VALIDATION_CONFIG,
|
|
22
23
|
...validation?.config,
|
|
23
24
|
};
|
|
24
|
-
// Apply defaultValues
|
|
25
25
|
let finalProps = { ...props };
|
|
26
|
-
if (hooks?.defaultValues) {
|
|
27
|
-
finalProps = { ...hooks.defaultValues, ...props };
|
|
28
|
-
}
|
|
29
26
|
// Validate schema on creation
|
|
30
27
|
if (this.domainSchema && this.validationConfig.onCreate) {
|
|
31
28
|
this.validateProps(finalProps);
|
|
@@ -48,7 +45,7 @@ export class ValueObject {
|
|
|
48
45
|
return;
|
|
49
46
|
const result = this.domainSchema["~standard"].validate(props);
|
|
50
47
|
if (result instanceof Promise) {
|
|
51
|
-
throw new
|
|
48
|
+
throw new DomainError("Async validation not supported in constructor. Use sync validation schema.");
|
|
52
49
|
}
|
|
53
50
|
if (result.issues && result.issues.length > 0) {
|
|
54
51
|
const validationError = new ValidationError(result.issues.map((issue) => ({
|
package/dist/value-object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAQrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import tsParser from "@typescript-eslint/parser";
|
|
2
|
+
import tsPlugin from "@typescript-eslint/eslint-plugin";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
export default [
|
|
5
5
|
{
|
|
6
6
|
ignores: [
|
|
7
7
|
"dist/**",
|
package/jest.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@woltz/rich-domain",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Rich Domain Library with Standard Schema validation support",
|
|
5
|
+
"homepage": "https://github.com/tarcisioandrade/rich-domain",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"author": "Tarcisio Andrade",
|
|
10
|
+
"license": "MIT",
|
|
5
11
|
"publishConfig": {
|
|
6
12
|
"access": "public"
|
|
7
13
|
},
|
|
8
|
-
"
|
|
9
|
-
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/tarcisioandrade/rich-domain.git",
|
|
17
|
+
"directory": "packages/rich-domain"
|
|
18
|
+
},
|
|
10
19
|
"scripts": {
|
|
11
20
|
"build": "tsc",
|
|
12
21
|
"test": "jest",
|
|
@@ -14,13 +23,12 @@
|
|
|
14
23
|
"check": "tsc --noEmit",
|
|
15
24
|
"coverage": "jest --coverage",
|
|
16
25
|
"lint": "eslint src",
|
|
26
|
+
"clean": "rm -rf dist coverage node_modules",
|
|
17
27
|
"prepublishOnly": "npm run build",
|
|
18
28
|
"release": "standard-version",
|
|
19
29
|
"release:minor": "standard-version --release-as minor",
|
|
20
30
|
"release:major": "standard-version --release-as major",
|
|
21
|
-
"release:patch": "standard-version --release-as patch"
|
|
22
|
-
"release:first": "standard-version --first-release",
|
|
23
|
-
"prepare": "husky"
|
|
31
|
+
"release:patch": "standard-version --release-as patch"
|
|
24
32
|
},
|
|
25
33
|
"keywords": [
|
|
26
34
|
"ddd",
|
|
@@ -32,21 +40,7 @@
|
|
|
32
40
|
"standard-schema",
|
|
33
41
|
"typescript"
|
|
34
42
|
],
|
|
35
|
-
"author": "Tarcisio Andrade",
|
|
36
|
-
"license": "MIT",
|
|
37
43
|
"devDependencies": {
|
|
38
|
-
"@commitlint/cli": "^20.1.0",
|
|
39
|
-
"@commitlint/config-conventional": "^20.0.0",
|
|
40
|
-
"@types/jest": "^29.5.12",
|
|
41
|
-
"@types/node": "^20.11.30",
|
|
42
|
-
"@typescript-eslint/eslint-plugin": "^8.46.4",
|
|
43
|
-
"@typescript-eslint/parser": "^8.46.4",
|
|
44
|
-
"eslint": "^9.39.1",
|
|
45
|
-
"husky": "^9.1.7",
|
|
46
|
-
"jest": "^29.7.0",
|
|
47
|
-
"standard-version": "^9.5.0",
|
|
48
|
-
"ts-jest": "^29.1.2",
|
|
49
|
-
"typescript": "^5.4.3",
|
|
50
44
|
"zod": "^3.24.0"
|
|
51
45
|
},
|
|
52
46
|
"peerDependencies": {
|