@woltz/rich-domain 1.2.4 → 1.3.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 (72) hide show
  1. package/dist/aggregate-changes.d.ts +56 -14
  2. package/dist/aggregate-changes.d.ts.map +1 -1
  3. package/dist/aggregate-changes.js +102 -22
  4. package/dist/aggregate-changes.js.map +1 -1
  5. package/dist/base-entity.d.ts +1 -1
  6. package/dist/base-entity.d.ts.map +1 -1
  7. package/dist/base-entity.js +11 -8
  8. package/dist/base-entity.js.map +1 -1
  9. package/dist/change-tracker.d.ts +1 -0
  10. package/dist/change-tracker.d.ts.map +1 -1
  11. package/dist/change-tracker.js +41 -27
  12. package/dist/change-tracker.js.map +1 -1
  13. package/dist/criteria.d.ts +7 -15
  14. package/dist/criteria.d.ts.map +1 -1
  15. package/dist/criteria.js +99 -76
  16. package/dist/criteria.js.map +1 -1
  17. package/dist/entity-schema-registry.d.ts +133 -3
  18. package/dist/entity-schema-registry.d.ts.map +1 -1
  19. package/dist/entity-schema-registry.js +155 -4
  20. package/dist/entity-schema-registry.js.map +1 -1
  21. package/dist/paginated-result.d.ts +4 -4
  22. package/dist/paginated-result.d.ts.map +1 -1
  23. package/dist/paginated-result.js +6 -20
  24. package/dist/paginated-result.js.map +1 -1
  25. package/dist/types/change-tracker.d.ts +30 -0
  26. package/dist/types/change-tracker.d.ts.map +1 -1
  27. package/dist/types/criteria.d.ts +1 -4
  28. package/dist/types/criteria.d.ts.map +1 -1
  29. package/dist/types/domain.d.ts +2 -0
  30. package/dist/types/domain.d.ts.map +1 -1
  31. package/dist/types/utils.d.ts +2 -2
  32. package/dist/utils/helpers.d.ts +1 -0
  33. package/dist/utils/helpers.d.ts.map +1 -1
  34. package/dist/utils/helpers.js +23 -0
  35. package/dist/utils/helpers.js.map +1 -1
  36. package/dist/value-object.d.ts +1 -1
  37. package/dist/value-object.js +1 -1
  38. package/package.json +17 -3
  39. package/src/aggregate-changes.ts +133 -24
  40. package/src/base-entity.ts +13 -8
  41. package/src/change-tracker.ts +107 -38
  42. package/src/criteria.ts +151 -109
  43. package/src/entity-schema-registry.ts +253 -6
  44. package/src/paginated-result.ts +10 -30
  45. package/src/types/change-tracker.ts +31 -0
  46. package/src/types/criteria.ts +1 -4
  47. package/src/types/domain.ts +2 -0
  48. package/src/types/utils.ts +2 -2
  49. package/src/utils/helpers.ts +28 -0
  50. package/src/value-object.ts +1 -1
  51. package/.versionrc.json +0 -21
  52. package/CHANGELOG.md +0 -163
  53. package/tests/aggregate-changes.test.ts +0 -284
  54. package/tests/criteria.test.ts +0 -716
  55. package/tests/depth/deep-tracking.test.ts +0 -554
  56. package/tests/domain-events.test.ts +0 -431
  57. package/tests/entity-equality.test.ts +0 -464
  58. package/tests/entity-schema-registry.test.ts +0 -382
  59. package/tests/entity-validation.test.ts +0 -252
  60. package/tests/history-tracker.spec.ts +0 -439
  61. package/tests/id.test.ts +0 -338
  62. package/tests/load-test/data.json +0 -347211
  63. package/tests/load-test/entities.ts +0 -97
  64. package/tests/load-test/generate-data.ts +0 -81
  65. package/tests/load-test/lead-to-domain.mapper.ts +0 -24
  66. package/tests/load-test/load.test.ts +0 -38
  67. package/tests/repository.test.ts +0 -635
  68. package/tests/to-json.test.ts +0 -99
  69. package/tests/utils.ts +0 -290
  70. package/tests/value-object-validation.test.ts +0 -219
  71. package/tests/value-objects.test.ts +0 -80
  72. package/tsconfig.json +0 -9
@@ -8,6 +8,7 @@ import { EntityChanges } from "./entity-changes";
8
8
  * - Orders operations respecting FK dependencies
9
9
  * - Groups operations by entity for batch execution
10
10
  * - Provides query and iteration methods
11
+ * - Includes relationField, parentId, parentEntity for N:N support
11
12
  *
12
13
  * @example
13
14
  * ```typescript
@@ -22,9 +23,9 @@ import { EntityChanges } from "./entity-changes";
22
23
  * const changes = user.getChanges<UserEntities>();
23
24
  *
24
25
  * // Filtering by entity with autocompletion
25
- * const postChanges = changes.for('Post'); // 'Post' autocompletes
26
+ * const postChanges = changes.for('Post');
26
27
  * postChanges.creates.forEach(post => {
27
- * console.log(post.title); // 'post' is typed as Post
28
+ * console.log(post.title);
28
29
  * });
29
30
  * ```
30
31
  */
@@ -33,16 +34,31 @@ export declare class AggregateChanges<TEntityMap = Record<string, any>> {
33
34
  constructor(operations?: Operation[]);
34
35
  /**
35
36
  * Adds a create operation.
37
+ *
38
+ * @param entity - Entity name
39
+ * @param data - Entity data
40
+ * @param depth - Depth in the aggregate tree
41
+ * @param parentId - Parent entity ID (for FK)
42
+ * @param parentEntity - Parent entity name
43
+ * @param relationField - Name of the relation field in parent (e.g., 'tags', 'comments')
36
44
  */
37
- addCreate<T>(entity: string, data: T, depth: number, parentId?: string, parentEntity?: string): void;
45
+ addCreate<T>(entity: string, data: T, depth: number, parentId?: string, parentEntity?: string, relationField?: string): void;
38
46
  /**
39
47
  * Adds an update operation.
40
48
  */
41
49
  addUpdate<T>(entity: string, id: string, data: T, changedFields: Record<string, any>, depth: number): void;
42
50
  /**
43
51
  * Adds a delete operation.
52
+ *
53
+ * @param entity - Entity name
54
+ * @param id - Entity ID
55
+ * @param data - Entity data (for reference)
56
+ * @param depth - Depth in the aggregate tree
57
+ * @param relationField - Name of the relation field in parent (e.g., 'tags', 'comments')
58
+ * @param parentId - Parent entity ID (for N:N disconnect)
59
+ * @param parentEntity - Parent entity name (for N:N disconnect)
44
60
  */
45
- addDelete<T>(entity: string, id: string, data: T, depth: number): void;
61
+ addDelete<T>(entity: string, id: string, data: T, depth: number, relationField?: string, parentId?: string, parentEntity?: string): void;
46
62
  /**
47
63
  * Returns all create operations, sorted by ascending depth (root → leaf).
48
64
  */
@@ -70,8 +86,8 @@ export declare class AggregateChanges<TEntityMap = Record<string, any>> {
70
86
  * Converts the changes into BatchOperations for optimized execution.
71
87
  *
72
88
  * Groups operations by entity and sorts by depth:
73
- * - Deletes: depth DESC (leaf → root)
74
- * - Creates: depth ASC (root → leaf)
89
+ * - Deletes: depth DESC (leaf → root), grouped by entity + relationField + parentId
90
+ * - Creates: depth ASC (root → leaf), grouped by entity + relationField
75
91
  * - Updates: grouped by entity
76
92
  *
77
93
  * @example
@@ -80,22 +96,31 @@ export declare class AggregateChanges<TEntityMap = Record<string, any>> {
80
96
  *
81
97
  * // Run deletes
82
98
  * for (const del of batch.deletes) {
83
- * await tx[del.entity].deleteMany({ where: { id: { in: del.ids } } });
84
- * }
85
- *
86
- * // Run creates
87
- * for (const create of batch.creates) {
88
- * await tx[create.entity].createMany({ data: create.items });
99
+ * if (registry.isReferenceCollection(del.parentEntity, del.relationField)) {
100
+ * // N:N - disconnect only
101
+ * await prisma[del.parentEntity].update({
102
+ * where: { id: del.parentId },
103
+ * data: { [del.relationField]: { disconnect: del.ids.map(id => ({ id })) } }
104
+ * });
105
+ * } else {
106
+ * // 1:N - delete entities
107
+ * await prisma[del.entity].deleteMany({ where: { id: { in: del.ids } } });
108
+ * }
89
109
  * }
90
110
  * ```
91
111
  */
92
112
  toBatchOperations(): BatchOperations;
93
113
  /**
94
- * Groups deletes by entity, sorted by descending depth.
114
+ * Groups deletes by entity + relationField + parentId, sorted by descending depth.
115
+ *
116
+ * For N:N relations, we need to group by parentId because disconnect
117
+ * operations are performed on the parent entity.
95
118
  */
96
119
  private groupDeletes;
97
120
  /**
98
- * Groups creates by entity, sorted by ascending depth.
121
+ * Groups creates by entity + relationField, sorted by ascending depth.
122
+ *
123
+ * Preserves parentEntity for N:N connect operations.
99
124
  */
100
125
  private groupCreates;
101
126
  /**
@@ -120,6 +145,19 @@ export declare class AggregateChanges<TEntityMap = Record<string, any>> {
120
145
  * ```
121
146
  */
122
147
  for<K extends keyof TEntityMap>(entityName: K): EntityChanges<TEntityMap[K]>;
148
+ /**
149
+ * Filters changes by relation field.
150
+ *
151
+ * @param relationField - Name of the relation field (e.g., 'tags', 'comments')
152
+ * @returns New AggregateChanges containing only operations for this relation
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const tagChanges = changes.forRelation('tags');
157
+ * // Contains only creates/deletes for the 'tags' relation
158
+ * ```
159
+ */
160
+ forRelation(relationField: string): AggregateChanges<TEntityMap>;
123
161
  /**
124
162
  * Checks if there are create operations.
125
163
  */
@@ -152,6 +190,10 @@ export declare class AggregateChanges<TEntityMap = Record<string, any>> {
152
190
  * Lists all entities that have changes.
153
191
  */
154
192
  getAffectedEntities(): string[];
193
+ /**
194
+ * Lists all relation fields that have changes.
195
+ */
196
+ getAffectedRelations(): string[];
155
197
  /**
156
198
  * Clears all operations.
157
199
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-changes.d.ts","sourceRoot":"","sources":["../src/aggregate-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAmB;gBAElB,UAAU,GAAE,SAAS,EAAO;IAIxC;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI;IAWP;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,KAAK,EAAE,MAAM,GACZ,IAAI;IAWP;;OAEG;IACH,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAUtE;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAI5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;;;;OAKG;IACF,UAAU,IAAI,SAAS,CAAC,SAAS,CAAC;IAMnC;;OAEG;IACH,OAAO,IAAI,SAAS,EAAE;IAItB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,iBAAiB,IAAI,eAAe;IAQpC;;OAEG;IACH,OAAO,CAAC,YAAY;IAgBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAK5E;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,SAAS,EAAE,CAE/B;IAED;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,gBAAgB,CAAC,UAAU,CAAC;CAGtC"}
1
+ {"version":3,"file":"aggregate-changes.d.ts","sourceRoot":"","sources":["../src/aggregate-changes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAmB;gBAElB,UAAU,GAAE,SAAS,EAAO;IAIxC;;;;;;;;;OASG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI;IAYP;;OAEG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAClC,KAAK,EAAE,MAAM,GACZ,IAAI;IAWP;;;;;;;;;;OAUG;IACH,SAAS,CAAC,CAAC,EACT,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,EACb,aAAa,CAAC,EAAE,MAAM,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,GACpB,IAAI;IAaP;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAI5B;;OAEG;IACH,OAAO,IAAI,eAAe,EAAE;IAM5B;;;;;OAKG;IACF,UAAU,IAAI,SAAS,CAAC,SAAS,CAAC;IAMnC;;OAEG;IACH,OAAO,IAAI,SAAS,EAAE;IAItB;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iBAAiB,IAAI,eAAe;IAQpC;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAsCpB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAuCpB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAK5E;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC;IAOhE;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,IAAI,KAAK,IAAI,MAAM,CAElB;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,SAAS,EAAE,CAE/B;IAED;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAM/B;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAUhC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,KAAK,IAAI,gBAAgB,CAAC,UAAU,CAAC;CAGtC"}
@@ -7,6 +7,7 @@ import { EntityChanges } from "./entity-changes";
7
7
  * - Orders operations respecting FK dependencies
8
8
  * - Groups operations by entity for batch execution
9
9
  * - Provides query and iteration methods
10
+ * - Includes relationField, parentId, parentEntity for N:N support
10
11
  *
11
12
  * @example
12
13
  * ```typescript
@@ -21,9 +22,9 @@ import { EntityChanges } from "./entity-changes";
21
22
  * const changes = user.getChanges<UserEntities>();
22
23
  *
23
24
  * // Filtering by entity with autocompletion
24
- * const postChanges = changes.for('Post'); // 'Post' autocompletes
25
+ * const postChanges = changes.for('Post');
25
26
  * postChanges.creates.forEach(post => {
26
- * console.log(post.title); // 'post' is typed as Post
27
+ * console.log(post.title);
27
28
  * });
28
29
  * ```
29
30
  */
@@ -34,8 +35,15 @@ export class AggregateChanges {
34
35
  }
35
36
  /**
36
37
  * Adds a create operation.
38
+ *
39
+ * @param entity - Entity name
40
+ * @param data - Entity data
41
+ * @param depth - Depth in the aggregate tree
42
+ * @param parentId - Parent entity ID (for FK)
43
+ * @param parentEntity - Parent entity name
44
+ * @param relationField - Name of the relation field in parent (e.g., 'tags', 'comments')
37
45
  */
38
- addCreate(entity, data, depth, parentId, parentEntity) {
46
+ addCreate(entity, data, depth, parentId, parentEntity, relationField) {
39
47
  this.ops.push({
40
48
  type: "create",
41
49
  entity,
@@ -43,6 +51,7 @@ export class AggregateChanges {
43
51
  depth,
44
52
  parentId,
45
53
  parentEntity,
54
+ relationField,
46
55
  });
47
56
  }
48
57
  /**
@@ -60,14 +69,25 @@ export class AggregateChanges {
60
69
  }
61
70
  /**
62
71
  * Adds a delete operation.
72
+ *
73
+ * @param entity - Entity name
74
+ * @param id - Entity ID
75
+ * @param data - Entity data (for reference)
76
+ * @param depth - Depth in the aggregate tree
77
+ * @param relationField - Name of the relation field in parent (e.g., 'tags', 'comments')
78
+ * @param parentId - Parent entity ID (for N:N disconnect)
79
+ * @param parentEntity - Parent entity name (for N:N disconnect)
63
80
  */
64
- addDelete(entity, id, data, depth) {
81
+ addDelete(entity, id, data, depth, relationField, parentId, parentEntity) {
65
82
  this.ops.push({
66
83
  type: "delete",
67
84
  entity,
68
85
  id,
69
86
  data,
70
87
  depth,
88
+ relationField,
89
+ parentId,
90
+ parentEntity,
71
91
  });
72
92
  }
73
93
  /**
@@ -113,8 +133,8 @@ export class AggregateChanges {
113
133
  * Converts the changes into BatchOperations for optimized execution.
114
134
  *
115
135
  * Groups operations by entity and sorts by depth:
116
- * - Deletes: depth DESC (leaf → root)
117
- * - Creates: depth ASC (root → leaf)
136
+ * - Deletes: depth DESC (leaf → root), grouped by entity + relationField + parentId
137
+ * - Creates: depth ASC (root → leaf), grouped by entity + relationField
118
138
  * - Updates: grouped by entity
119
139
  *
120
140
  * @example
@@ -123,12 +143,16 @@ export class AggregateChanges {
123
143
  *
124
144
  * // Run deletes
125
145
  * for (const del of batch.deletes) {
126
- * await tx[del.entity].deleteMany({ where: { id: { in: del.ids } } });
127
- * }
128
- *
129
- * // Run creates
130
- * for (const create of batch.creates) {
131
- * await tx[create.entity].createMany({ data: create.items });
146
+ * if (registry.isReferenceCollection(del.parentEntity, del.relationField)) {
147
+ * // N:N - disconnect only
148
+ * await prisma[del.parentEntity].update({
149
+ * where: { id: del.parentId },
150
+ * data: { [del.relationField]: { disconnect: del.ids.map(id => ({ id })) } }
151
+ * });
152
+ * } else {
153
+ * // 1:N - delete entities
154
+ * await prisma[del.entity].deleteMany({ where: { id: { in: del.ids } } });
155
+ * }
132
156
  * }
133
157
  * ```
134
158
  */
@@ -140,38 +164,66 @@ export class AggregateChanges {
140
164
  };
141
165
  }
142
166
  /**
143
- * Groups deletes by entity, sorted by descending depth.
167
+ * Groups deletes by entity + relationField + parentId, sorted by descending depth.
168
+ *
169
+ * For N:N relations, we need to group by parentId because disconnect
170
+ * operations are performed on the parent entity.
144
171
  */
145
172
  groupDeletes() {
146
173
  const deleteOps = this.deletes();
147
174
  const grouped = new Map();
148
175
  for (const op of deleteOps) {
149
- if (!grouped.has(op.entity)) {
150
- grouped.set(op.entity, { depth: op.depth, ids: [] });
176
+ // Group by entity + relationField + parentId
177
+ // This ensures N:N disconnects are grouped per parent
178
+ const key = `${op.entity}:${op.relationField ?? ""}:${op.parentId ?? ""}`;
179
+ if (!grouped.has(key)) {
180
+ grouped.set(key, {
181
+ depth: op.depth,
182
+ ids: [],
183
+ relationField: op.relationField,
184
+ parentEntity: op.parentEntity,
185
+ parentId: op.parentId,
186
+ });
151
187
  }
152
- grouped.get(op.entity).ids.push(op.id);
188
+ grouped.get(key).ids.push(op.id);
153
189
  }
154
190
  return Array.from(grouped.entries())
155
- .map(([entity, { depth, ids }]) => ({ entity, depth, ids }))
191
+ .map(([key, { depth, ids, relationField, parentEntity, parentId }]) => {
192
+ const entity = key.split(":")[0];
193
+ return { entity, depth, ids, parentId, relationField, parentEntity };
194
+ })
156
195
  .sort((a, b) => b.depth - a.depth);
157
196
  }
158
197
  /**
159
- * Groups creates by entity, sorted by ascending depth.
198
+ * Groups creates by entity + relationField, sorted by ascending depth.
199
+ *
200
+ * Preserves parentEntity for N:N connect operations.
160
201
  */
161
202
  groupCreates() {
162
203
  const createOps = this.creates();
163
204
  const grouped = new Map();
164
205
  for (const op of createOps) {
165
- if (!grouped.has(op.entity)) {
166
- grouped.set(op.entity, { depth: op.depth, items: [] });
206
+ const key = `${op.entity}:${op.relationField ?? ""}`;
207
+ if (!grouped.has(key)) {
208
+ grouped.set(key, {
209
+ depth: op.depth,
210
+ items: [],
211
+ relationField: op.relationField,
212
+ parentEntity: op.parentEntity,
213
+ });
167
214
  }
168
- grouped.get(op.entity).items.push({
215
+ grouped.get(key).items.push({
169
216
  data: op.data,
170
217
  parentId: op.parentId,
218
+ parentEntity: op.parentEntity,
219
+ relationField: op.relationField,
171
220
  });
172
221
  }
173
222
  return Array.from(grouped.entries())
174
- .map(([entity, { depth, items }]) => ({ entity, depth, items }))
223
+ .map(([key, { depth, items, relationField, parentEntity }]) => {
224
+ const entity = key.split(":")[0];
225
+ return { entity, depth, items, relationField, parentEntity };
226
+ })
175
227
  .sort((a, b) => a.depth - b.depth);
176
228
  }
177
229
  /**
@@ -215,6 +267,22 @@ export class AggregateChanges {
215
267
  const filtered = this.ops.filter((op) => op.entity === entityName);
216
268
  return new EntityChanges(filtered);
217
269
  }
270
+ /**
271
+ * Filters changes by relation field.
272
+ *
273
+ * @param relationField - Name of the relation field (e.g., 'tags', 'comments')
274
+ * @returns New AggregateChanges containing only operations for this relation
275
+ *
276
+ * @example
277
+ * ```typescript
278
+ * const tagChanges = changes.forRelation('tags');
279
+ * // Contains only creates/deletes for the 'tags' relation
280
+ * ```
281
+ */
282
+ forRelation(relationField) {
283
+ const filtered = this.ops.filter((op) => op.relationField === relationField);
284
+ return new AggregateChanges(filtered);
285
+ }
218
286
  /**
219
287
  * Checks if there are create operations.
220
288
  */
@@ -265,6 +333,18 @@ export class AggregateChanges {
265
333
  this.ops.forEach((op) => entities.add(op.entity));
266
334
  return Array.from(entities);
267
335
  }
336
+ /**
337
+ * Lists all relation fields that have changes.
338
+ */
339
+ getAffectedRelations() {
340
+ const relations = new Set();
341
+ this.ops.forEach((op) => {
342
+ if (op.relationField) {
343
+ relations.add(op.relationField);
344
+ }
345
+ });
346
+ return Array.from(relations);
347
+ }
268
348
  /**
269
349
  * Clears all operations.
270
350
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate-changes.js","sourceRoot":"","sources":["../src/aggregate-changes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregate-changes.js","sourceRoot":"","sources":["../src/aggregate-changes.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,gBAAgB;IAG3B,YAAY,aAA0B,EAAE;QAFhC,QAAG,GAAgB,EAAE,CAAC;QAG5B,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACH,SAAS,CACP,MAAc,EACd,IAAO,EACP,KAAa,EACb,QAAiB,EACjB,YAAqB,EACrB,aAAsB;QAEtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,IAAI;YACJ,KAAK;YACL,QAAQ;YACR,YAAY;YACZ,aAAa;SACQ,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,SAAS,CACP,MAAc,EACd,EAAU,EACV,IAAO,EACP,aAAkC,EAClC,KAAa;QAEb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,EAAE;YACF,IAAI;YACJ,aAAa;YACb,KAAK;SACgB,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;;;;;OAUG;IACH,SAAS,CACP,MAAc,EACd,EAAU,EACV,IAAO,EACP,KAAa,EACb,aAAsB,EACtB,QAAiB,EACjB,YAAqB;QAErB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,MAAM;YACN,EAAE;YACF,IAAI;YACJ,KAAK;YACL,aAAa;YACb,QAAQ;YACR,YAAY;SACS,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG;aACZ,MAAM,CAAC,CAAC,EAAE,EAAyB,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC3D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAyB,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG;aACZ,MAAM,CAAC,CAAC,EAAE,EAAyB,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC;aAC3D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,CAAC,UAAU;QACT,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACtB,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,iBAAiB;QACf,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5B,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE;SAC7B,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,YAAY;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EASpB,CAAC;QAEJ,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,6CAA6C;YAC7C,sDAAsD;YACtD,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,aAAa,IAAI,EAAE,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YAE1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;oBACf,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,GAAG,EAAE,EAAE;oBACP,aAAa,EAAE,EAAE,CAAC,aAAa;oBAC/B,YAAY,EAAE,EAAE,CAAC,YAAY;oBAC7B,QAAQ,EAAE,EAAE,CAAC,QAAQ;iBACtB,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE;YACpE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;QACvE,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACK,YAAY;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAQpB,CAAC;QAEJ,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YAErD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;oBACf,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,KAAK,EAAE,EAAE;oBACT,aAAa,EAAE,EAAE,CAAC,aAAa;oBAC/B,YAAY,EAAE,EAAE,CAAC,YAAY;iBAC9B,CAAC,CAAC;YACL,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,YAAY,EAAE,EAAE,CAAC,YAAY;gBAC7B,aAAa,EAAE,EAAE,CAAC,aAAa;aAChC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;aACjC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC,EAAE,EAAE;YAC5D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;QAC/D,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;QAErD,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC;gBAC3B,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,aAAa,EAAE,EAAE,CAAC,aAAa;aAChC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,MAAM;YACN,KAAK;SACN,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAA6B,UAAa;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;QACnE,OAAO,IAAI,aAAa,CAAgB,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,aAAqB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAC9B,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,KAAK,aAAa,CAC3C,CAAC;QACF,OAAO,IAAI,gBAAgB,CAAa,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACf,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACtB,IAAI,EAAE,CAAC,aAAa,EAAE,CAAC;gBACrB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,gBAAgB,CAAa,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -85,7 +85,7 @@ export declare abstract class BaseEntity<T extends BaseProps> {
85
85
  * Check if entity has uncommitted events
86
86
  */
87
87
  hasUncommittedEvents(): boolean;
88
- toJson(): DeepJsonResult<T>;
88
+ toJSON(): DeepJsonResult<T>;
89
89
  private deepToJson;
90
90
  }
91
91
  //# sourceMappingURL=base-entity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../src/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AASvD,8BAAsB,UAAU,CAAC,CAAC,SAAS,SAAS;IAClD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,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,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAEnC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE;IAgD9C,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyE7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAkDtB,IAAI,EAAE,IAAI,EAAE,CAEX;IAEM,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO;IAoBnD,IAAW,KAAK,IAAI,CAAC,CAEpB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAI5E;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAI3B,OAAO,CAAC,UAAU;CAgBnB"}
1
+ {"version":3,"file":"base-entity.d.ts","sourceRoot":"","sources":["../src/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,CAAC;AACjC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EAGX,gBAAgB,EACjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AASvD,8BAAsB,UAAU,CAAC,CAAC,SAAS,SAAS;IAClD,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,YAAY,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,WAAW,CAAC,CAAsB;IAC1C,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,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAEnC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,EAAE,CAAA;KAAE;IAqD9C,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAyE7B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,cAAc;IAkDtB,IAAI,EAAE,IAAI,EAAE,CAEX;IAEM,KAAK,IAAI,OAAO;IAIvB;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO;IAoBnD,IAAW,KAAK,IAAI,CAAC,CAEpB;IAED;;OAEG;IACH,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,eAAe,GAAG,SAAS,CAElD;IAED;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAI5E;;OAEG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B;;;OAGG;IACH,WAAW,IAAI,IAAI;IAKnB;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAInD;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;OAEG;IACH,oBAAoB,IAAI,YAAY,EAAE;IAItC;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACH,oBAAoB,IAAI,OAAO;IAI/B,MAAM,IAAI,cAAc,CAAC,CAAC,CAAC;IAI3B,OAAO,CAAC,UAAU;CAgBnB"}
@@ -12,6 +12,12 @@ export class BaseEntity {
12
12
  this.domainEvents = [];
13
13
  const validation = getStaticProperty(this, "validation");
14
14
  const hooks = getStaticProperty(this, "hooks");
15
+ if (!props.id) {
16
+ props.id = new Id();
17
+ }
18
+ if (hooks?.onBeforeCreate) {
19
+ hooks.onBeforeCreate(props);
20
+ }
15
21
  this.entityHooks = hooks;
16
22
  if (validation?.schema) {
17
23
  this.entitySchema = validation.schema;
@@ -21,9 +27,6 @@ export class BaseEntity {
21
27
  ...validation?.config,
22
28
  };
23
29
  let finalProps = { ...props };
24
- if (!finalProps.id) {
25
- finalProps.id = new Id();
26
- }
27
30
  if (this.entitySchema && this.validationConfig.onCreate) {
28
31
  this.validateProps(finalProps);
29
32
  }
@@ -154,7 +157,7 @@ export class BaseEntity {
154
157
  if (obj.constructor &&
155
158
  obj.constructor.name !== "Object" &&
156
159
  obj.constructor.name !== "Array") {
157
- if (typeof obj.toJson === "function" &&
160
+ if (typeof obj.toJSON === "function" &&
158
161
  typeof obj.equals === "function") {
159
162
  return obj;
160
163
  }
@@ -279,7 +282,7 @@ export class BaseEntity {
279
282
  hasUncommittedEvents() {
280
283
  return this.domainEvents.length > 0;
281
284
  }
282
- toJson() {
285
+ toJSON() {
283
286
  return this.deepToJson(this._props);
284
287
  }
285
288
  deepToJson(obj) {
@@ -292,9 +295,9 @@ export class BaseEntity {
292
295
  if (Array.isArray(obj))
293
296
  return obj.map((item) => this.deepToJson(item));
294
297
  if (obj instanceof BaseEntity)
295
- return obj.toJson();
296
- if (obj && typeof obj.toJson === "function")
297
- return obj.toJson();
298
+ return obj.toJSON();
299
+ if (obj && typeof obj.toJSON === "function")
300
+ return obj.toJSON();
298
301
  if (typeof obj === "object") {
299
302
  const result = {};
300
303
  for (const key in obj) {
@@ -1 +1 @@
1
- {"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../src/base-entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-entity.js","sourceRoot":"","sources":["../src/base-entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAYrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,SAAS,iBAAiB,CACxB,QAAa,EACb,YAAoB;IAEpB,OAAO,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,OAAgB,UAAU;IAa9B,YAAY,KAAkC;QATtC,aAAQ,GAAa,IAAI,CAAC;QAI1B,iBAAY,GAAmB,EAAE,CAAC;QAMxC,MAAM,UAAU,GAAG,iBAAiB,CAClC,IAAI,EACJ,YAAY,CACb,CAAC;QAEF,MAAM,KAAK,GAAG,iBAAiB,CAAsB,IAAI,EAAE,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;QACtB,CAAC;QAED,IAAI,KAAK,EAAE,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,KAAU,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAEzB,IAAI,UAAU,EAAE,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,gBAAgB,GAAG;YACtB,GAAG,yBAAyB;YAC5B,GAAG,UAAU,EAAE,MAAM;SACtB,CAAC;QAEF,IAAI,UAAU,GAAG,EAAE,GAAG,KAAK,EAAO,CAAC;QAEnC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAErE,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAE/C,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,KAAK,CAAC,IAAW,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpB,KAAK,CAAC,QAAQ,CAAC,IAAW,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,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,WAAW,CACnB,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;YAEA,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,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACvE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;YACpC,OAAO,WAAW,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;QACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;YAC5D,OAAO,MAAM,CAAE,WAAgC,CAAC,GAAG,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACK,qBAAqB;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAe,CAAC,CAAC;YAClD,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YAEtC,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,WAAW,EAAE,cAAc,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CACpD,IAAW,EACX,IAAI,CAAC,QAAQ,CACd,CAAC;oBACF,IAAI,CAAC,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;wBAC3C,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEpE,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;wBAC9B,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAC;wBACD,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;wBAC3C,OAAO,IAAI,CAAC;oBACd,CAAC;oBAED,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC9C,MAAM,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;4BAC1D,OAAO,EAAE,KAAK,CAAC,OAAO;yBACvB,CAAC,CAAC,CACJ,CAAC;wBAED,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;wBAE3C,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;4BACvC,MAAM,eAAe,CAAC;wBACxB,CAAC;wBAED,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,eAAe,CAAC,CAAC;wBAC/D,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAW,CAAC,CAAC;oBACtC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACd,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;wBAE3C,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;4BACvC,MAAM,KAAK,CAAC;wBACd,CAAC;wBAED,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;wBAC3D,OAAO,KAAK,CAAC;oBACf,CAAC;gBACH,CAAC;gBAEA,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACd,IAAI,CAAC,MAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;gBAC3C,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAEO,cAAc,CAAC,GAAQ,EAAE,OAAwB,IAAI,OAAO,EAAE;QACpE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAClD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,IAAI,GAAG,YAAY,EAAE;YAAE,OAAO,GAAG,CAAC;QAClC,IAAI,GAAG,YAAY,IAAI;YAAE,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAExD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IACE,GAAG,CAAC,WAAW;YACf,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;YACjC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,OAAO,EAChC,CAAC;YACD,IACE,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;gBAChC,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAChC,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEd,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,GAAG,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,MAAM,GAAQ,EAAE,CAAC;gBACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;oBACtB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;wBACnD,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,CAAC;IAEM,KAAK;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAkC;QACvC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,YAAY,EAAE,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAW,KAAK;QACd,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,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;;;;;;;;;;;;OAYG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAc,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACO,cAAc,CAAC,KAAmB;QAC1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,CAAC,GAAmB;QAC1C,MAAM,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,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,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAsB,CAAC;IAC3D,CAAC;IAEO,UAAU,CAAC,GAAQ;QACzB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,GAAG,CAAC;QAClD,IAAI,GAAG,YAAY,EAAE;YAAE,OAAO,GAAG,CAAC,KAAK,CAAC;QACxC,IAAI,GAAG,YAAY,IAAI;YAAE,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,GAAG,YAAY,UAAU;YAAE,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;QACnD,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;QACjE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAQ,EAAE,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;gBACtB,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;CACF"}
@@ -79,6 +79,7 @@ export declare class ChangeTracker {
79
79
  private buildPath;
80
80
  private shouldSkipProperty;
81
81
  private getValueAtPath;
82
+ private extractRelationField;
82
83
  private getItemKey;
83
84
  private getEntityId;
84
85
  private getEntityName;
@@ -1 +1 @@
1
- {"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../src/change-tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,YAAY,EAAe,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,KACV,OAAO,GAAG,IAAI,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IAQtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,WAAW,CAAC;IAbtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAGpC,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,MAAW,EACjB,KAAK,GAAE,MAAU,EACjB,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,WAAW,CAAC,EAAE,aAAa,YAAA;IAQrC;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIxD,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,iBAAiB;IAoCzB,WAAW,IAAI,GAAG;IAuFlB,OAAO,CAAC,gBAAgB;IAmHxB;;OAEG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAW5E,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,wBAAwB;IAqEhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA0ChC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IAgDnC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,oBAAoB;IAsE5B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,qBAAqB;IAkB7B,UAAU,IAAI,YAAY,EAAE;IAI5B,YAAY,IAAI,IAAI;IASpB,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,GAAG;CAGjB"}
1
+ {"version":3,"file":"change-tracker.d.ts","sourceRoot":"","sources":["../src/change-tracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,YAAY,EAAe,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,KACV,OAAO,GAAG,IAAI,CAAC;AAEpB;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IAQtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ,CAAC;IACjB,OAAO,CAAC,YAAY,CAAC;IACrB,OAAO,CAAC,WAAW,CAAC;IAbtB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,iBAAiB,CAAC,CAAoB;gBAGpC,MAAM,EAAE,GAAG,EACX,cAAc,EAAE,MAAM,EACtB,IAAI,GAAE,MAAW,EACjB,KAAK,GAAE,MAAU,EACjB,QAAQ,CAAC,EAAE,MAAM,YAAA,EACjB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,WAAW,CAAC,EAAE,aAAa,YAAA;IAQrC;;;;;;OAMG;IACH,oBAAoB,CAAC,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAIxD,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,iBAAiB;IAoCzB,WAAW,IAAI,GAAG;IAuFlB,OAAO,CAAC,gBAAgB;IAmHxB;;OAEG;IACH,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,gBAAgB,CAAC,UAAU,CAAC;IAW5E,OAAO,CAAC,kBAAkB;IAgC1B,OAAO,CAAC,wBAAwB;IAsFhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IA8ChC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA0DnC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,oBAAoB;IA0F5B,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,kBAAkB;IA2C1B,OAAO,CAAC,mBAAmB;IA6B3B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,SAAS;IA4CjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAkCjB,OAAO,CAAC,qBAAqB;IAkB7B,UAAU,IAAI,YAAY,EAAE;IAI5B,YAAY,IAAI,IAAI;IASpB,WAAW,IAAI,IAAI;IAInB,SAAS,IAAI,GAAG;CAGjB"}