@woltz/rich-domain 0.2.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +37 -20
  3. package/dist/base-entity.d.ts +1 -1
  4. package/dist/base-entity.d.ts.map +1 -1
  5. package/dist/base-entity.js +21 -15
  6. package/dist/base-entity.js.map +1 -1
  7. package/dist/constants.js +4 -1
  8. package/dist/constants.js.map +1 -1
  9. package/dist/criteria.d.ts.map +1 -1
  10. package/dist/criteria.js +7 -3
  11. package/dist/criteria.js.map +1 -1
  12. package/dist/deep-proxy.d.ts +3 -1
  13. package/dist/deep-proxy.d.ts.map +1 -1
  14. package/dist/deep-proxy.js +110 -33
  15. package/dist/deep-proxy.js.map +1 -1
  16. package/dist/domain-event-bus.js +7 -2
  17. package/dist/domain-event-bus.js.map +1 -1
  18. package/dist/domain-event.js +7 -3
  19. package/dist/domain-event.js.map +1 -1
  20. package/dist/entity.js +8 -3
  21. package/dist/entity.js.map +1 -1
  22. package/dist/id.d.ts +3 -3
  23. package/dist/id.d.ts.map +1 -1
  24. package/dist/id.js +10 -6
  25. package/dist/id.js.map +1 -1
  26. package/dist/index.d.ts +1 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +39 -16
  29. package/dist/index.js.map +1 -1
  30. package/dist/mapper.d.ts +4 -0
  31. package/dist/mapper.d.ts.map +1 -0
  32. package/dist/mapper.js +7 -0
  33. package/dist/mapper.js.map +1 -0
  34. package/dist/paginated-result.d.ts.map +1 -1
  35. package/dist/paginated-result.js +7 -6
  36. package/dist/paginated-result.js.map +1 -1
  37. package/dist/repository/base-repository.d.ts +25 -48
  38. package/dist/repository/base-repository.d.ts.map +1 -1
  39. package/dist/repository/base-repository.js +14 -51
  40. package/dist/repository/base-repository.js.map +1 -1
  41. package/dist/repository/in-memory-repository.d.ts +12 -8
  42. package/dist/repository/in-memory-repository.d.ts.map +1 -1
  43. package/dist/repository/in-memory-repository.js +24 -12
  44. package/dist/repository/in-memory-repository.js.map +1 -1
  45. package/dist/repository/index.d.ts +2 -39
  46. package/dist/repository/index.d.ts.map +1 -1
  47. package/dist/repository/index.js +26 -40
  48. package/dist/repository/index.js.map +1 -1
  49. package/dist/repository/unit-of-work.js +9 -3
  50. package/dist/repository/unit-of-work.js.map +1 -1
  51. package/dist/types/criteria.d.ts +2 -2
  52. package/dist/types/criteria.d.ts.map +1 -1
  53. package/dist/types/criteria.js +4 -1
  54. package/dist/types/criteria.js.map +1 -1
  55. package/dist/types/domain.js +2 -1
  56. package/dist/types/history-tracker.js +2 -1
  57. package/dist/types/index.d.ts +0 -1
  58. package/dist/types/index.d.ts.map +1 -1
  59. package/dist/types/index.js +22 -7
  60. package/dist/types/index.js.map +1 -1
  61. package/dist/types/standard-schema.js +2 -1
  62. package/dist/types/unit-of-work.d.ts +2 -2
  63. package/dist/types/unit-of-work.d.ts.map +1 -1
  64. package/dist/types/unit-of-work.js +2 -1
  65. package/dist/types/utils.js +2 -1
  66. package/dist/validation-error.js +9 -3
  67. package/dist/validation-error.js.map +1 -1
  68. package/dist/value-object.js +9 -5
  69. package/dist/value-object.js.map +1 -1
  70. package/package.json +1 -1
  71. package/src/base-entity.ts +3 -2
  72. package/src/criteria.ts +2 -2
  73. package/src/deep-proxy.ts +435 -339
  74. package/src/id.ts +4 -4
  75. package/src/index.ts +2 -3
  76. package/src/mapper.ts +3 -0
  77. package/src/paginated-result.ts +1 -8
  78. package/src/repository/base-repository.ts +27 -115
  79. package/src/repository/in-memory-repository.ts +28 -16
  80. package/src/repository/index.ts +2 -40
  81. package/src/types/criteria.ts +2 -2
  82. package/src/types/index.ts +0 -1
  83. package/src/types/unit-of-work.ts +3 -3
  84. package/tests/entity-validation.test.ts +1 -1
  85. package/tests/history-tracker.spec.ts +57 -17
  86. package/tests/id.test.ts +341 -341
  87. package/tests/repository.test.ts +95 -79
  88. package/tests/to-json.test.ts +103 -91
  89. package/tests/value-objects.test.ts +52 -52
  90. package/tsconfig.json +2 -2
  91. package/dist/filtering.d.ts +0 -107
  92. package/dist/filtering.d.ts.map +0 -1
  93. package/dist/filtering.js +0 -202
  94. package/dist/filtering.js.map +0 -1
  95. package/dist/ordering.d.ts +0 -93
  96. package/dist/ordering.d.ts.map +0 -1
  97. package/dist/ordering.js +0 -154
  98. package/dist/ordering.js.map +0 -1
  99. package/dist/pagination.d.ts +0 -218
  100. package/dist/pagination.d.ts.map +0 -1
  101. package/dist/pagination.js +0 -281
  102. package/dist/pagination.js.map +0 -1
  103. package/dist/repository/mapper.d.ts +0 -56
  104. package/dist/repository/mapper.d.ts.map +0 -1
  105. package/dist/repository/mapper.js +0 -15
  106. package/dist/repository/mapper.js.map +0 -1
  107. package/dist/repository/types.d.ts +0 -87
  108. package/dist/repository/types.d.ts.map +0 -1
  109. package/dist/repository/types.js +0 -6
  110. package/dist/repository/types.js.map +0 -1
  111. package/dist/repository.d.ts +0 -2
  112. package/dist/repository.d.ts.map +0 -1
  113. package/dist/repository.js +0 -21
  114. package/dist/repository.js.map +0 -1
  115. package/dist/specification.d.ts +0 -102
  116. package/dist/specification.d.ts.map +0 -1
  117. package/dist/specification.js +0 -187
  118. package/dist/specification.js.map +0 -1
  119. package/dist/types/repository.d.ts +0 -43
  120. package/dist/types/repository.d.ts.map +0 -1
  121. package/dist/types/repository.js +0 -2
  122. package/dist/types/repository.js.map +0 -1
  123. package/dist/types.d.ts +0 -88
  124. package/dist/types.d.ts.map +0 -1
  125. package/dist/types.js +0 -12
  126. package/dist/types.js.map +0 -1
  127. package/src/repository/mapper.ts +0 -74
  128. package/src/types/repository.ts +0 -51
@@ -1,4 +1,7 @@
1
- export const FilterOperator = [
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FILTER_OPERATORS = void 0;
4
+ exports.FILTER_OPERATORS = [
2
5
  "equals",
3
6
  "notEquals",
4
7
  "greaterThan",
@@ -1 +1 @@
1
- {"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,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"}
1
+ {"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":";;;AAEa,QAAA,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"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=domain.js.map
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=history-tracker.js.map
@@ -3,6 +3,5 @@ export * from "./domain";
3
3
  export * from "./history-tracker";
4
4
  export * from "./standard-schema";
5
5
  export * from "./utils";
6
- export * from "./repository";
7
6
  export * from "./unit-of-work";
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -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,cAAc,CAAC;AAC7B,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"}
@@ -1,8 +1,23 @@
1
- export * from "./criteria";
2
- export * from "./domain";
3
- export * from "./history-tracker";
4
- export * from "./standard-schema";
5
- export * from "./utils";
6
- export * from "./repository";
7
- export * from "./unit-of-work";
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./criteria"), exports);
18
+ __exportStar(require("./domain"), exports);
19
+ __exportStar(require("./history-tracker"), exports);
20
+ __exportStar(require("./standard-schema"), exports);
21
+ __exportStar(require("./utils"), exports);
22
+ __exportStar(require("./unit-of-work"), exports);
8
23
  //# sourceMappingURL=index.js.map
@@ -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,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,oDAAkC;AAClC,oDAAkC;AAClC,0CAAwB;AACxB,iDAA+B"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=standard-schema.js.map
@@ -1,5 +1,5 @@
1
1
  import { Aggregate } from "../entity";
2
- import { IRepository } from "./repository";
2
+ import { Repository } from "../repository/base-repository";
3
3
  /**
4
4
  * Transaction context for Unit of Work
5
5
  */
@@ -34,6 +34,6 @@ export interface IUnitOfWork {
34
34
  /**
35
35
  * Get repository within transaction context
36
36
  */
37
- getRepository<TDomain extends Aggregate<any>>(repository: new (...args: any[]) => IRepository<TDomain>): IRepository<TDomain>;
37
+ getRepository<TDomain extends Aggregate<any>>(repository: new (...args: any[]) => Repository<TDomain>): Repository<TDomain>;
38
38
  }
39
39
  //# sourceMappingURL=unit-of-work.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../src/types/unit-of-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAErC;;;OAGG;IACH,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1E;;OAEG;IACH,aAAa,CAAC,OAAO,SAAS,SAAS,CAAC,GAAG,CAAC,EAC1C,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,WAAW,CAAC,OAAO,CAAC,GACvD,WAAW,CAAC,OAAO,CAAC,CAAC;CACzB"}
1
+ {"version":3,"file":"unit-of-work.d.ts","sourceRoot":"","sources":["../../src/types/unit-of-work.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAErC;;;OAGG;IACH,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1E;;OAEG;IACH,aAAa,CAAC,OAAO,SAAS,SAAS,CAAC,GAAG,CAAC,EAC1C,UAAU,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,GACtD,UAAU,CAAC,OAAO,CAAC,CAAC;CACxB"}
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=unit-of-work.js.map
@@ -1,2 +1,3 @@
1
- export {};
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,12 @@
1
+ "use strict";
1
2
  // ============================================================================
2
3
  // Validation Error - Domain Validation Errors
3
4
  // ============================================================================
4
- export class ValidationError extends Error {
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ValidationError = void 0;
7
+ exports.createValidationIssue = createValidationIssue;
8
+ exports.throwValidationError = throwValidationError;
9
+ class ValidationError extends Error {
5
10
  constructor(issues, message) {
6
11
  const errorMessage = message || `Validation failed: ${issues.map(i => i.message).join(', ')}`;
7
12
  super(errorMessage);
@@ -55,10 +60,11 @@ export class ValidationError extends Error {
55
60
  };
56
61
  }
57
62
  }
63
+ exports.ValidationError = ValidationError;
58
64
  /**
59
65
  * Helper to create a single validation issue
60
66
  */
61
- export function createValidationIssue(path, message) {
67
+ function createValidationIssue(path, message) {
62
68
  return {
63
69
  path: Array.isArray(path) ? path : path.split('.'),
64
70
  message,
@@ -67,7 +73,7 @@ export function createValidationIssue(path, message) {
67
73
  /**
68
74
  * Helper to throw a validation error with a single issue
69
75
  */
70
- export function throwValidationError(path, message) {
76
+ function throwValidationError(path, message) {
71
77
  throw new ValidationError([createValidationIssue(path, message)]);
72
78
  }
73
79
  //# sourceMappingURL=validation-error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAO/E,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAIxC,YAAY,MAAyB,EAAE,OAAgB;QACrD,MAAM,YAAY,GAChB,OAAO,IAAI,sBAAsB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,YAAY,CAAC,CAAC;QALN,wBAAmB,GAAG,IAAI,CAAC,CAAC,2BAA2B;QAMrE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,8BAA8B;QAC9B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAc;QACrC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,sDAAsD;QACtD,OAAO,CACL,KAAK,YAAY,KAAK;YACtB,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,OAAO,CAAE,KAAa,CAAC,MAAM,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CACnC,IAAuB,EACvB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAClD,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAuB,EACvB,OAAe;IAEf,MAAM,IAAI,eAAe,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC"}
1
+ {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;;;AA4E/E,sDAQC;AAKD,oDAKC;AAvFD,MAAa,eAAgB,SAAQ,KAAK;IAIxC,YAAY,MAAyB,EAAE,OAAgB;QACrD,MAAM,YAAY,GAChB,OAAO,IAAI,sBAAsB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,YAAY,CAAC,CAAC;QALN,wBAAmB,GAAG,IAAI,CAAC,CAAC,2BAA2B;QAMrE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,8BAA8B;QAC9B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAc;QACrC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,sDAAsD;QACtD,OAAO,CACL,KAAK,YAAY,KAAK;YACtB,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,OAAO,CAAE,KAAa,CAAC,MAAM,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF;AAhED,0CAgEC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,IAAuB,EACvB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAClD,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,IAAuB,EACvB,OAAe;IAEf,MAAM,IAAI,eAAe,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -1,13 +1,16 @@
1
+ "use strict";
1
2
  // ============================================================================
2
3
  // Value Object - Immutable Domain Objects
3
4
  // ============================================================================
4
- import { ValidationError } from "./validation-error";
5
- import { DEFAULT_VALIDATION_CONFIG } from "./constants";
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ValueObject = void 0;
7
+ const validation_error_1 = require("./validation-error");
8
+ const constants_1 = require("./constants");
6
9
  // Helper to get static properties from constructor
7
10
  function getStaticProperty(instance, propertyName) {
8
11
  return instance.constructor[propertyName];
9
12
  }
10
- export class ValueObject {
13
+ class ValueObject {
11
14
  constructor(props) {
12
15
  this.domainEvents = [];
13
16
  // Get static configuration from subclass
@@ -18,7 +21,7 @@ export class ValueObject {
18
21
  this.domainSchema = validation.schema;
19
22
  }
20
23
  this.validationConfig = {
21
- ...DEFAULT_VALIDATION_CONFIG,
24
+ ...constants_1.DEFAULT_VALIDATION_CONFIG,
22
25
  ...validation?.config,
23
26
  };
24
27
  // Apply defaultValues
@@ -51,7 +54,7 @@ export class ValueObject {
51
54
  throw new Error("Async validation not supported in constructor. Use sync validation schema.");
52
55
  }
53
56
  if (result.issues && result.issues.length > 0) {
54
- const validationError = new ValidationError(result.issues.map((issue) => ({
57
+ const validationError = new validation_error_1.ValidationError(result.issues.map((issue) => ({
55
58
  path: issue.path?.map((p) => this.extractPathKey(p)) || [],
56
59
  message: issue.message,
57
60
  })));
@@ -133,4 +136,5 @@ export class ValueObject {
133
136
  return new Constructor({ ...this.props, ...updates });
134
137
  }
135
138
  }
139
+ exports.ValueObject = ValueObject;
136
140
  //# sourceMappingURL=value-object.js.map
@@ -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;AAExD,mDAAmD;AACnD,SAAS,iBAAiB,CACxB,QAAa,EACb,YAAoB;IAEpB,OAAO,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,OAAgB,WAAW;IAW/B,YAAY,KAAQ;QANZ,iBAAY,GAAmB,EAAE,CAAC;QAOxC,yCAAyC;QACzC,MAAM,UAAU,GAAG,iBAAiB,CAClC,IAAI,EACJ,YAAY,CACb,CAAC;QACF,MAAM,KAAK,GAAG,iBAAiB,CAAkB,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhE,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,yBAAyB;YAC5B,GAAG,UAAU,EAAE,MAAM;SACtB,CAAC;QAEF,sBAAsB;QACtB,IAAI,UAAU,GAAG,EAAE,GAAG,KAAK,EAAO,CAAC;QACnC,IAAI,KAAK,EAAE,aAAa,EAAE,CAAC;YACzB,UAAU,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,EAAE,GAAG,KAAK,EAAO,CAAC;QACzD,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,sDAAsD;QACrD,IAAY,CAAC,KAAK,GAAG,UAAU,CAAC;QAEjC,8EAA8E;QAC9E,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,KAAK,CAAC,IAAW,CAAC,CAAC;QAC3B,CAAC;QAED,wCAAwC;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,gBAAgB;QAChB,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAQ;QAC5B,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAE/B,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,KAAK,CACb,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,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;YAEF,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBACvC,MAAM,eAAe,CAAC;YACxB,CAAC;YAED,mDAAmD;YAClD,IAAY,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,WAAoB;QACzC,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YACtD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,gDAAgD;QAChD,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,wDAAwD;QACxD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAE,WAAgC,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,WAAW;QACX,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,MAAM,CAAC,KAAqB;QAC1B,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,KAAmB;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,OAAmB;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAqC,CAAC;QAC/D,OAAO,IAAI,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;CACF"}
1
+ {"version":3,"file":"value-object.js","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@woltz/rich-domain",
3
- "version": "0.2.1",
3
+ "version": "1.0.0",
4
4
  "description": "Rich Domain Library with Standard Schema validation support",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -278,8 +278,8 @@ export abstract class BaseEntity<T extends BaseProps> {
278
278
  return this._props.id;
279
279
  }
280
280
 
281
- get isNew(): boolean {
282
- return this._props.id.isNew;
281
+ public isNew(): boolean {
282
+ return this._props.id.isNew();
283
283
  }
284
284
 
285
285
  /**
@@ -386,6 +386,7 @@ export abstract class BaseEntity<T extends BaseProps> {
386
386
  private deepToJson(obj: any): any {
387
387
  if (obj === null || obj === undefined) return obj;
388
388
  if (obj instanceof Id) return obj.value;
389
+ if (obj instanceof Date) return obj.toISOString();
389
390
  if (Array.isArray(obj)) return obj.map((item) => this.deepToJson(item));
390
391
  if (obj instanceof BaseEntity) return obj.toJson();
391
392
  if (obj && typeof obj.toJson === "function") return obj.toJson();
package/src/criteria.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  FieldPath,
3
3
  Filter,
4
+ FILTER_OPERATORS,
4
5
  FilterOperator,
5
6
  FilterValueFor,
6
7
  Order,
@@ -221,7 +222,6 @@ export class Criteria<T = unknown> {
221
222
  const [field, operatorRaw] = key.split(":");
222
223
 
223
224
  if (!operatorRaw || !field) continue;
224
-
225
225
  const operator = isOperator(operatorRaw) ? operatorRaw : null;
226
226
  if (!operator) throw new Error(`Invalid filter operator: ${operatorRaw}`);
227
227
 
@@ -287,5 +287,5 @@ function parseQueryValue(value: string): any {
287
287
  }
288
288
 
289
289
  function isOperator(value: string): value is FilterOperator {
290
- return FilterOperator.includes(value as FilterOperator);
290
+ return FILTER_OPERATORS.includes(value as FilterOperator);
291
291
  }