@woltz/rich-domain 1.2.1 → 1.2.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/base-entity.d.ts +1 -1
  3. package/dist/base-entity.d.ts.map +1 -1
  4. package/dist/base-entity.js +3 -41
  5. package/dist/base-entity.js.map +1 -1
  6. package/dist/{history-tracker.d.ts → change-tracker.d.ts} +3 -3
  7. package/dist/change-tracker.d.ts.map +1 -0
  8. package/dist/{history-tracker.js → change-tracker.js} +9 -56
  9. package/dist/change-tracker.js.map +1 -0
  10. package/dist/constants.d.ts +7 -1
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +65 -0
  13. package/dist/constants.js.map +1 -1
  14. package/dist/criteria.d.ts.map +1 -1
  15. package/dist/criteria.js +6 -4
  16. package/dist/criteria.js.map +1 -1
  17. package/dist/domain-event.d.ts.map +1 -1
  18. package/dist/domain-event.js +0 -3
  19. package/dist/domain-event.js.map +1 -1
  20. package/dist/entity-changes.d.ts.map +1 -1
  21. package/dist/entity-changes.js +0 -4
  22. package/dist/entity-changes.js.map +1 -1
  23. package/dist/entity-schema-registry.d.ts.map +1 -1
  24. package/dist/entity-schema-registry.js +2 -8
  25. package/dist/entity-schema-registry.js.map +1 -1
  26. package/dist/entity.d.ts +0 -6
  27. package/dist/entity.d.ts.map +1 -1
  28. package/dist/entity.js +0 -9
  29. package/dist/entity.js.map +1 -1
  30. package/dist/index.d.ts +9 -6
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +8 -12
  33. package/dist/index.js.map +1 -1
  34. package/dist/paginated-result.d.ts.map +1 -1
  35. package/dist/paginated-result.js +0 -15
  36. package/dist/paginated-result.js.map +1 -1
  37. package/dist/repository/base-repository.d.ts +1 -1
  38. package/dist/repository/base-repository.d.ts.map +1 -1
  39. package/dist/repository/index.d.ts.map +1 -1
  40. package/dist/repository/index.js +0 -6
  41. package/dist/repository/index.js.map +1 -1
  42. package/dist/repository/unit-of-work.d.ts.map +1 -1
  43. package/dist/repository/unit-of-work.js +0 -3
  44. package/dist/repository/unit-of-work.js.map +1 -1
  45. package/dist/types/change-tracker.d.ts +10 -0
  46. package/dist/types/change-tracker.d.ts.map +1 -1
  47. package/dist/types/domain.d.ts +4 -6
  48. package/dist/types/domain.d.ts.map +1 -1
  49. package/dist/types/index.d.ts +1 -1
  50. package/dist/types/index.d.ts.map +1 -1
  51. package/dist/types/index.js +1 -1
  52. package/dist/types/index.js.map +1 -1
  53. package/dist/utils/criteria-operator-validation.d.ts +1 -0
  54. package/dist/utils/criteria-operator-validation.d.ts.map +1 -1
  55. package/dist/utils/criteria-operator-validation.js +39 -17
  56. package/dist/utils/criteria-operator-validation.js.map +1 -1
  57. package/dist/validation-error.d.ts.map +1 -1
  58. package/dist/validation-error.js +1 -3
  59. package/dist/validation-error.js.map +1 -1
  60. package/dist/value-object.d.ts +1 -1
  61. package/dist/value-object.d.ts.map +1 -1
  62. package/dist/value-object.js +0 -1
  63. package/dist/value-object.js.map +1 -1
  64. package/package.json +1 -1
  65. package/src/base-entity.ts +4 -51
  66. package/src/{history-tracker.ts → change-tracker.ts} +20 -72
  67. package/src/constants.ts +75 -1
  68. package/src/criteria.ts +9 -3
  69. package/src/domain-event.ts +0 -4
  70. package/src/entity-changes.ts +0 -5
  71. package/src/entity-schema-registry.ts +2 -22
  72. package/src/entity.ts +0 -11
  73. package/src/index.ts +15 -20
  74. package/src/paginated-result.ts +0 -21
  75. package/src/repository/base-repository.ts +1 -1
  76. package/src/repository/index.ts +0 -9
  77. package/src/repository/unit-of-work.ts +0 -4
  78. package/src/types/change-tracker.ts +16 -4
  79. package/src/types/domain.ts +4 -8
  80. package/src/types/index.ts +1 -1
  81. package/src/utils/criteria-operator-validation.ts +57 -19
  82. package/src/validation-error.ts +1 -3
  83. package/src/value-object.ts +1 -2
  84. package/tests/history-tracker.spec.ts +1 -1
  85. package/dist/history-tracker.d.ts.map +0 -1
  86. package/dist/history-tracker.js.map +0 -1
  87. package/dist/types/history-tracker.d.ts +0 -47
  88. package/dist/types/history-tracker.d.ts.map +0 -1
  89. package/dist/types/history-tracker.js +0 -2
  90. package/dist/types/history-tracker.js.map +0 -1
  91. package/src/types/history-tracker.ts +0 -58
@@ -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;;;GAGG;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"}
1
+ {"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../src/repository/unit-of-work.ts"],"names":[],"mappings":"AAEA;;;GAGG;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"}
@@ -183,4 +183,14 @@ export interface TrackedEntityMetadata {
183
183
  /** Path in the object (e.g., 'posts[0].comments[1]') */
184
184
  path: string;
185
185
  }
186
+ export interface TrackedItem {
187
+ entity: any;
188
+ metadata: TrackedEntityMetadata;
189
+ originalState: any;
190
+ }
191
+ export interface ArrayState {
192
+ cloned: any[];
193
+ original: any[];
194
+ metadata: TrackedEntityMetadata;
195
+ }
186
196
  //# sourceMappingURL=change-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../../src/types/change-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../../src/types/change-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { ValidationConfig } from "..";
2
1
  import { Id } from "../id";
3
2
  import { StandardSchema } from "./standard-schema";
4
- export type EntityId = string | number;
5
3
  export interface BaseProps {
6
4
  id: Id;
7
5
  }
@@ -21,10 +19,10 @@ export interface EntityHooks<T extends BaseProps, E> {
21
19
  onCreate?: (entity: E) => void;
22
20
  rules?: (entity: E) => void;
23
21
  }
24
- export interface EntityConstructor<T extends BaseProps, E> {
25
- new (props: T): E;
26
- validation?: DomainValidation<T>;
27
- hooks?: EntityHooks<T, E>;
22
+ export interface ValidationConfig {
23
+ onCreate?: boolean;
24
+ onUpdate?: boolean;
25
+ throwOnError?: boolean;
28
26
  }
29
27
  export {};
30
28
  //# sourceMappingURL=domain.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/types/domain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,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;AAED,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,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB"}
@@ -1,8 +1,8 @@
1
1
  export * from "./criteria";
2
2
  export * from "./domain";
3
- export * from "./history-tracker";
4
3
  export * from "./standard-schema";
5
4
  export * from "./utils";
6
5
  export * from "./unit-of-work";
7
6
  export * from "./domain-event";
7
+ export * from "./change-tracker";
8
8
  //# 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,gBAAgB,CAAC;AAC/B,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,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
@@ -1,8 +1,8 @@
1
1
  export * from "./criteria";
2
2
  export * from "./domain";
3
- export * from "./history-tracker";
4
3
  export * from "./standard-schema";
5
4
  export * from "./utils";
6
5
  export * from "./unit-of-work";
7
6
  export * from "./domain-event";
7
+ export * from "./change-tracker";
8
8
  //# 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,gBAAgB,CAAC;AAC/B,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,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { FilterOperator } from "../types";
2
+ export declare function sanitizeFieldValue(value: unknown, operator: FilterOperator): unknown;
2
3
  export declare function isValidOperatorForType(value: unknown, operator: FilterOperator): boolean;
3
4
  export declare function getValidOperatorsForType(value: unknown): FilterOperator[];
4
5
  export declare function isOperator(value: string): value is FilterOperator;
@@ -1 +1 @@
1
- {"version":3,"file":"criteria-operator-validation.d.ts","sourceRoot":"","sources":["../../src/utils/criteria-operator-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGf,MAAM,UAAU,CAAC;AAElB,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,GACvB,OAAO,CAyFT;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CA8DzE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEjE"}
1
+ {"version":3,"file":"criteria-operator-validation.d.ts","sourceRoot":"","sources":["../../src/utils/criteria-operator-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EAGf,MAAM,UAAU,CAAC;AAIlB,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,GACvB,OAAO,CAsCT;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,cAAc,GACvB,OAAO,CAkFT;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,EAAE,CA8DzE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAEjE"}
@@ -1,20 +1,47 @@
1
1
  import { FILTER_OPERATORS, } from "../types";
2
- export function isValidOperatorForType(value, operator) {
3
- // Handle null/undefined
2
+ const FORCE_STRING_OPERATORS = new Set(["contains", "startsWith", "endsWith"]);
3
+ export function sanitizeFieldValue(value, operator) {
4
4
  if (value === null || value === undefined) {
5
- return ["isNull", "isNotNull", "equals", "notEquals"].includes(operator);
5
+ return value;
6
+ }
7
+ if (Array.isArray(value)) {
8
+ return value.map((item) => sanitizeFieldValue(item, operator));
9
+ }
10
+ if (value instanceof Date) {
11
+ return value;
12
+ }
13
+ const stringValue = String(value).trim();
14
+ if (stringValue === "") {
15
+ return "";
16
+ }
17
+ if (operator && FORCE_STRING_OPERATORS.has(operator)) {
18
+ return stringValue;
19
+ }
20
+ if (stringValue === "true" || stringValue === "false") {
21
+ return stringValue === "true";
6
22
  }
7
- // Special case: between operator with array [min, max]
8
- if (operator === "between" && Array.isArray(value) && value.length === 2) {
9
- // Validate based on the type of the first element
10
- const elementType = typeof value[0];
11
- if (elementType === "number" || value[0] instanceof Date) {
23
+ const numberValue = Number(stringValue);
24
+ if (!Number.isNaN(numberValue)) {
25
+ return numberValue;
26
+ }
27
+ const dateObj = new Date(stringValue);
28
+ if (!Number.isNaN(dateObj.getTime())) {
29
+ return dateObj;
30
+ }
31
+ return stringValue;
32
+ }
33
+ export function isValidOperatorForType(value, operator) {
34
+ const sanitizedValue = sanitizeFieldValue(value, operator);
35
+ if (operator === "between" &&
36
+ Array.isArray(sanitizedValue) &&
37
+ sanitizedValue.length === 2) {
38
+ const elementType = typeof sanitizedValue[0];
39
+ if (elementType === "number" || sanitizedValue[0] instanceof Date) {
12
40
  return true;
13
41
  }
14
42
  return false;
15
43
  }
16
- const valueType = typeof value;
17
- // String operators
44
+ const valueType = typeof sanitizedValue;
18
45
  if (valueType === "string") {
19
46
  const validOps = [
20
47
  "equals",
@@ -29,7 +56,6 @@ export function isValidOperatorForType(value, operator) {
29
56
  ];
30
57
  return validOps.includes(operator);
31
58
  }
32
- // Number operators
33
59
  if (valueType === "number") {
34
60
  const validOps = [
35
61
  "equals",
@@ -46,7 +72,6 @@ export function isValidOperatorForType(value, operator) {
46
72
  ];
47
73
  return validOps.includes(operator);
48
74
  }
49
- // Boolean operators
50
75
  if (valueType === "boolean") {
51
76
  const validOps = [
52
77
  "equals",
@@ -56,8 +81,7 @@ export function isValidOperatorForType(value, operator) {
56
81
  ];
57
82
  return validOps.includes(operator);
58
83
  }
59
- // Date operators
60
- if (value instanceof Date) {
84
+ if (sanitizedValue instanceof Date) {
61
85
  const validOps = [
62
86
  "equals",
63
87
  "notEquals",
@@ -73,12 +97,10 @@ export function isValidOperatorForType(value, operator) {
73
97
  ];
74
98
  return validOps.includes(operator);
75
99
  }
76
- // Array operators
77
- if (Array.isArray(value)) {
100
+ if (Array.isArray(sanitizedValue)) {
78
101
  const validOps = ["in", "notIn", "isNull", "isNotNull"];
79
102
  return validOps.includes(operator);
80
103
  }
81
- // For unknown types, allow all operators
82
104
  return true;
83
105
  }
84
106
  export function getValidOperatorsForType(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"criteria-operator-validation.js","sourceRoot":"","sources":["../../src/utils/criteria-operator-validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"criteria-operator-validation.js","sourceRoot":"","sources":["../../src/utils/criteria-operator-validation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1C,SAAgB,mBAAmB,QAAQ;gBAE/B,MAAM,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM;IAavD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe;IAalE;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAIjD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;CAOvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,eAAe,CAKjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,KAAK,CAEP"}
1
+ {"version":3,"file":"validation-error.d.ts","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAgB,SAAQ,KAAK;IACxC,SAAgB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1C,SAAgB,mBAAmB,QAAQ;gBAE/B,MAAM,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM;IAYvD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe;IAYlE;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAIjD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,MAAM,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;CAOvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,eAAe,CAKjB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,KAAK,CAEP"}
@@ -2,10 +2,9 @@ export class ValidationError extends Error {
2
2
  constructor(issues, message) {
3
3
  const errorMessage = message || `Validation failed: ${issues.map(i => i.message).join(', ')}`;
4
4
  super(errorMessage);
5
- this.__isValidationError = true; // Brand for identification
5
+ this.__isValidationError = true;
6
6
  this.name = 'ValidationError';
7
7
  this.issues = issues;
8
- // Maintain proper stack trace
9
8
  if (Error.captureStackTrace) {
10
9
  Error.captureStackTrace(this, ValidationError);
11
10
  }
@@ -17,7 +16,6 @@ export class ValidationError extends Error {
17
16
  if (error instanceof ValidationError) {
18
17
  return true;
19
18
  }
20
- // Check by duck typing for cross-module compatibility
21
19
  return (error instanceof Error &&
22
20
  error.name === 'ValidationError' &&
23
21
  'issues' in error &&
@@ -1 +1 @@
1
- {"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":"AAKA,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":"AAKA,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;QAMzC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,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,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"}
@@ -15,7 +15,7 @@ export declare abstract class ValueObject<T> {
15
15
  protected static hooks?: VOHooks<any, any>;
16
16
  /**
17
17
  * Identity key for identification in collections.
18
- * Used by HistoryTracker to track changes in arrays of Value Objects.
18
+ * Used by ChangeTracker to track changes in arrays of Value Objects.
19
19
  *
20
20
  * @example
21
21
  * ```typescript
@@ -1 +1 @@
1
- {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"AAAA,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;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;AAE7D,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;IAE1C,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;IAE3C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAE9C,KAAK,EAAE,CAAC;IAqCpB,OAAO,CAAC,aAAa;IA2BrB,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;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAiB/B;;OAEG;IACH,cAAc,IAAI,OAAO;IAOzB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,CAAC,KAAK,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS;IAI1E;;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"}
1
+ {"version":3,"file":"value-object.d.ts","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"AAAA,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;AAWjB;;GAEG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;AAE7D,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;IAE1C,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;IAE3C;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;gBAE9C,KAAK,EAAE,CAAC;IAqCpB,OAAO,CAAC,aAAa;IA2BrB,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;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAiB/B;;OAEG;IACH,cAAc,IAAI,OAAO;IAOzB;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,CAAC,KAAK,qBAAqB,CAAC,CAAC,CAAC,GAAG,SAAS;IAI1E;;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"}
@@ -1,7 +1,6 @@
1
1
  import { ValidationError } from "./validation-error";
2
2
  import { DEFAULT_VALIDATION_CONFIG } from "./constants";
3
3
  import { DomainError } from "./exceptions";
4
- // Helper to get static properties from constructor
5
4
  function getStaticProperty(instance, propertyName) {
6
5
  return instance.constructor[propertyName];
7
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"value-object.js","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"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"}
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": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Rich Domain Library with Standard Schema validation support",
5
5
  "homepage": "https://github.com/tarcisioandrade/rich-domain",
6
6
  "type": "module",
@@ -13,10 +13,9 @@ import {
13
13
  import { DomainEventBus } from "./domain-event-bus";
14
14
  import { DEFAULT_VALIDATION_CONFIG } from "./constants";
15
15
  import { DomainError } from "./exceptions";
16
- import { HistoryTracker } from "./history-tracker";
16
+ import { ChangeTracker } from "./change-tracker";
17
17
  import { AggregateChanges } from "./aggregate-changes";
18
18
 
19
- // Helper to get static properties from constructor
20
19
  function getStaticProperty<T>(
21
20
  instance: any,
22
21
  propertyName: string
@@ -26,7 +25,7 @@ function getStaticProperty<T>(
26
25
 
27
26
  export abstract class BaseEntity<T extends BaseProps> {
28
27
  private _props: T;
29
- private tracker: HistoryTracker;
28
+ private tracker: ChangeTracker;
30
29
  private proxiedProps: T;
31
30
  private snapshot: T | null = null;
32
31
  private validationConfig: Required<ValidationConfig>;
@@ -34,12 +33,10 @@ export abstract class BaseEntity<T extends BaseProps> {
34
33
  private entitySchema?: StandardSchema<T>;
35
34
  private domainEvents: IDomainEvent[] = [];
36
35
 
37
- // Static properties that subclasses can override
38
36
  protected static validation?: EntityValidation<any>;
39
37
  protected static hooks?: EntityHooks<any, any>;
40
38
 
41
39
  constructor(props: Omit<T, "id"> & { id?: Id }) {
42
- // Get static configuration from subclass
43
40
  const validation = getStaticProperty<EntityValidation<T>>(
44
41
  this,
45
42
  "validation"
@@ -59,46 +56,34 @@ export abstract class BaseEntity<T extends BaseProps> {
59
56
 
60
57
  let finalProps = { ...props } as T;
61
58
 
62
- // Generate ID if not provided
63
59
  if (!finalProps.id) {
64
60
  finalProps.id = new Id();
65
61
  }
66
62
 
67
- // Validate schema on creation
68
63
  if (this.entitySchema && this.validationConfig.onCreate) {
69
64
  this.validateProps(finalProps);
70
65
  }
71
66
 
72
67
  this._props = finalProps;
68
+ this.tracker = new ChangeTracker(this._props, this.constructor.name);
73
69
 
74
- // Initialize tracker and proxy
75
- this.tracker = new HistoryTracker(this._props, this.constructor.name);
76
-
77
- // Setup validation on update BEFORE creating proxy
78
70
  if (this.validationConfig.onUpdate) {
79
71
  this.setupUpdateValidation();
80
72
  }
81
73
 
82
74
  this.proxiedProps = this.tracker.createProxy();
83
75
 
84
- // Execute rules (custom validations)
85
76
  if (hooks?.rules) {
86
77
  hooks.rules(this as any);
87
78
  }
88
79
 
89
- // Hook onCreate
90
80
  if (hooks?.onCreate) {
91
81
  hooks.onCreate(this as any);
92
82
  }
93
83
 
94
- // Take initial snapshot for onBeforeUpdate
95
84
  this.takeSnapshot();
96
85
  }
97
86
 
98
- // ============================================================================
99
- // Validation
100
- // ============================================================================
101
-
102
87
  private validateProps(props: T): void {
103
88
  if (!this.entitySchema) return;
104
89
 
@@ -144,31 +129,27 @@ export abstract class BaseEntity<T extends BaseProps> {
144
129
 
145
130
  /**
146
131
  * Setup validation that runs on every property change.
147
- * Uses the HistoryTracker's onChangeValidator callback.
132
+ * Uses the ChangeTracker's onChangeValidator callback.
148
133
  */
149
134
  private setupUpdateValidation(): void {
150
135
  const self = this;
151
136
 
152
137
  this.tracker.setOnChangeValidator((path, oldValue, newValue) => {
153
- // Temporarily apply the change to validate
154
138
  const originalValue = self._props[path as keyof T];
155
139
  (self._props as any)[path] = newValue;
156
140
 
157
141
  try {
158
- // Check onBeforeUpdate hook
159
142
  if (self.entityHooks?.onBeforeUpdate && self.snapshot) {
160
143
  const shouldContinue = self.entityHooks.onBeforeUpdate(
161
144
  self as any,
162
145
  self.snapshot
163
146
  );
164
147
  if (!shouldContinue) {
165
- // Revert change
166
148
  (self._props as any)[path] = originalValue;
167
149
  return false;
168
150
  }
169
151
  }
170
152
 
171
- // Validate with schema
172
153
  if (self.entitySchema) {
173
154
  const result = self.entitySchema["~standard"].validate(self._props);
174
155
 
@@ -188,7 +169,6 @@ export abstract class BaseEntity<T extends BaseProps> {
188
169
  }))
189
170
  );
190
171
 
191
- // Revert change before throwing
192
172
  (self._props as any)[path] = originalValue;
193
173
 
194
174
  if (self.validationConfig.throwOnError) {
@@ -200,12 +180,10 @@ export abstract class BaseEntity<T extends BaseProps> {
200
180
  }
201
181
  }
202
182
 
203
- // Execute rules after schema validation
204
183
  if (self.entityHooks?.rules) {
205
184
  try {
206
185
  self.entityHooks.rules(self as any);
207
186
  } catch (error) {
208
- // Revert change before throwing
209
187
  (self._props as any)[path] = originalValue;
210
188
 
211
189
  if (self.validationConfig.throwOnError) {
@@ -217,14 +195,9 @@ export abstract class BaseEntity<T extends BaseProps> {
217
195
  }
218
196
  }
219
197
 
220
- // Revert for now - the actual set will happen in the proxy
221
198
  (self._props as any)[path] = originalValue;
222
-
223
- // Update snapshot after successful validation
224
- // Note: snapshot is updated after the change is applied
225
199
  return true;
226
200
  } catch (error) {
227
- // Revert on any error
228
201
  (self._props as any)[path] = originalValue;
229
202
  throw error;
230
203
  }
@@ -281,10 +254,6 @@ export abstract class BaseEntity<T extends BaseProps> {
281
254
  return obj;
282
255
  }
283
256
 
284
- // ============================================================================
285
- // Identity
286
- // ============================================================================
287
-
288
257
  get id(): Id {
289
258
  return this._props.id;
290
259
  }
@@ -316,10 +285,6 @@ export abstract class BaseEntity<T extends BaseProps> {
316
285
  return false;
317
286
  }
318
287
 
319
- // ============================================================================
320
- // Props Access
321
- // ============================================================================
322
-
323
288
  public get props(): T {
324
289
  return this.proxiedProps;
325
290
  }
@@ -338,10 +303,6 @@ export abstract class BaseEntity<T extends BaseProps> {
338
303
  return (this as any)._validationError;
339
304
  }
340
305
 
341
- // ============================================================================
342
- // Change Tracking
343
- // ============================================================================
344
-
345
306
  /**
346
307
  * Returns all detected changes as AggregateChanges.
347
308
  *
@@ -375,10 +336,6 @@ export abstract class BaseEntity<T extends BaseProps> {
375
336
  this.takeSnapshot();
376
337
  }
377
338
 
378
- // ============================================================================
379
- // Domain Events
380
- // ============================================================================
381
-
382
339
  /**
383
340
  * Add a domain event to this entity
384
341
  */
@@ -415,10 +372,6 @@ export abstract class BaseEntity<T extends BaseProps> {
415
372
  return this.domainEvents.length > 0;
416
373
  }
417
374
 
418
- // ============================================================================
419
- // Serialization
420
- // ============================================================================
421
-
422
375
  toJson(): DeepJsonResult<T> {
423
376
  return this.deepToJson(this._props) as DeepJsonResult<T>;
424
377
  }