@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
@@ -288,9 +288,10 @@ export class ChangeTracker {
288
288
  continue;
289
289
  const { created, updated, deleted } = this.detectArrayChanges(arrayState.cloned, arrayState.original, currentArray);
290
290
  const { depth, parentId, parentEntity } = arrayState.metadata;
291
+ const relationField = this.extractRelationField(path);
291
292
  for (const item of created) {
292
293
  const itemEntityName = this.getEntityName(item);
293
- changes.addCreate(itemEntityName, item, depth, parentId, parentEntity);
294
+ changes.addCreate(itemEntityName, item, depth, parentId, parentEntity, relationField);
294
295
  this.markNestedItemsAsCreated(item, depth, changes);
295
296
  }
296
297
  for (const item of updated) {
@@ -310,7 +311,7 @@ export class ChangeTracker {
310
311
  if (id || key) {
311
312
  const itemEntityName = this.getEntityName(item);
312
313
  const deleteId = id || key;
313
- changes.addDelete(itemEntityName, deleteId, item, depth);
314
+ changes.addDelete(itemEntityName, deleteId, item, depth, relationField, parentId, parentEntity);
314
315
  this.markNestedItemsAsDeleted(item, depth, changes, rootTracker);
315
316
  }
316
317
  }
@@ -322,26 +323,27 @@ export class ChangeTracker {
322
323
  markNestedItemsAsCreated(item, parentDepth, changes) {
323
324
  if (!item || typeof item !== "object")
324
325
  return;
325
- const itemId = this.getEntityId(item);
326
- if (!itemId)
327
- return;
328
- const props = item.props || item;
329
- for (const [propName, value] of Object.entries(props)) {
326
+ const propsToScan = item.props || item;
327
+ const parentId = this.getEntityId(item);
328
+ const parentEntity = this.getEntityName(item);
329
+ for (const [propName, value] of Object.entries(propsToScan)) {
330
330
  if (propName === "id")
331
331
  continue;
332
332
  if (Array.isArray(value)) {
333
- for (const nestedItem of value) {
334
- if (this.isEntityOrVO(nestedItem)) {
335
- const nestedId = this.getEntityId(nestedItem);
336
- const nestedKey = this.getItemKey(nestedItem);
337
- if (nestedId || nestedKey) {
338
- const entityName = this.getEntityName(nestedItem);
339
- changes.addCreate(entityName, nestedItem, parentDepth + 1, itemId, this.getEntityName(item));
340
- this.markNestedItemsAsCreated(nestedItem, parentDepth + 1, changes);
341
- }
333
+ const relationField = propName;
334
+ for (const child of value) {
335
+ if (this.isEntityOrVO(child)) {
336
+ const childEntityName = this.getEntityName(child);
337
+ changes.addCreate(childEntityName, child, parentDepth + 1, parentId, parentEntity, relationField);
338
+ this.markNestedItemsAsCreated(child, parentDepth + 1, changes);
342
339
  }
343
340
  }
344
341
  }
342
+ else if (this.isEntityOrVO(value)) {
343
+ const childEntityName = this.getEntityName(value);
344
+ changes.addCreate(childEntityName, value, parentDepth + 1, parentId, parentEntity, propName);
345
+ this.markNestedItemsAsCreated(value, parentDepth + 1, changes);
346
+ }
345
347
  }
346
348
  }
347
349
  /**
@@ -354,15 +356,18 @@ export class ChangeTracker {
354
356
  const itemId = this.getEntityId(item);
355
357
  if (!itemId)
356
358
  return;
357
- for (const [, arrayState] of rootTracker.trackedArrays) {
359
+ for (const [path, arrayState] of rootTracker.trackedArrays) {
358
360
  if (arrayState.metadata.parentId === itemId) {
361
+ const relationField = this.extractRelationField(path);
362
+ const parentEntity = arrayState.metadata.parentEntity;
363
+ const parentId = arrayState.metadata.parentId;
359
364
  for (const nestedItem of arrayState.cloned) {
360
365
  const id = typeof nestedItem === "object" && nestedItem !== null
361
366
  ? nestedItem.id
362
367
  : undefined;
363
368
  if (id) {
364
369
  const entityName = arrayState.metadata.entityName;
365
- changes.addDelete(entityName, id, nestedItem, parentDepth + 1);
370
+ changes.addDelete(entityName, id, nestedItem, parentDepth + 1, relationField, parentEntity, parentId);
366
371
  this.markNestedJsonItemAsDeleted(id, parentDepth + 1, changes, rootTracker);
367
372
  }
368
373
  }
@@ -374,21 +379,24 @@ export class ChangeTracker {
374
379
  * This is used when processing cloned (JSON) state.
375
380
  */
376
381
  markNestedJsonItemAsDeleted(itemId, parentDepth, changes, rootTracker) {
377
- for (const [, arrayState] of rootTracker.trackedArrays) {
382
+ for (const [path, arrayState] of rootTracker.trackedArrays) {
378
383
  if (arrayState.metadata.parentId === itemId) {
384
+ const relationField = this.extractRelationField(path);
379
385
  for (const nestedJsonItem of arrayState.cloned) {
380
386
  if (typeof nestedJsonItem !== "object" || nestedJsonItem === null)
381
387
  continue;
382
388
  const nestedId = nestedJsonItem.id;
383
389
  const entityName = arrayState.metadata.entityName;
390
+ const parentEntity = arrayState.metadata.parentEntity;
391
+ const parentId = arrayState.metadata.parentId;
384
392
  if (nestedId) {
385
- changes.addDelete(entityName, nestedId, nestedJsonItem, parentDepth + 1);
393
+ changes.addDelete(entityName, nestedId, nestedJsonItem, parentDepth + 1, relationField, parentId, parentEntity);
386
394
  this.markNestedJsonItemAsDeleted(nestedId, parentDepth + 1, changes, rootTracker);
387
395
  }
388
396
  else {
389
397
  const key = this.extractIdentityKeyFromJson(nestedJsonItem, arrayState.original);
390
398
  if (key) {
391
- changes.addDelete(entityName, key, nestedJsonItem, parentDepth + 1);
399
+ changes.addDelete(entityName, key, nestedJsonItem, parentDepth + 1, relationField, parentId, parentEntity);
392
400
  }
393
401
  }
394
402
  }
@@ -442,23 +450,24 @@ export class ChangeTracker {
442
450
  const originalValue = trackedItem.originalState;
443
451
  const originalEntity = trackedItem.entity;
444
452
  const { entityName, depth, parentId, parentEntity } = trackedItem.metadata;
453
+ const relationField = this.extractRelationField(path);
445
454
  const state = this.detectEntityChangeState(originalValue, currentValue);
446
455
  switch (state) {
447
456
  case "created":
448
- changes.addCreate(entityName, currentValue, depth, parentId, parentEntity);
457
+ changes.addCreate(entityName, currentValue, depth, parentId, parentEntity, relationField);
449
458
  break;
450
459
  case "deleted":
451
460
  const id = this.getEntityId(originalValue);
452
461
  if (id) {
453
- changes.addDelete(entityName, id, originalEntity, depth);
462
+ changes.addDelete(entityName, id, originalEntity, depth, relationField, parentId, parentEntity);
454
463
  }
455
464
  break;
456
465
  case "replaced":
457
466
  const oldId = this.getEntityId(originalValue);
458
467
  if (oldId) {
459
- changes.addDelete(entityName, oldId, originalEntity, depth);
468
+ changes.addDelete(entityName, oldId, originalEntity, depth, relationField, parentId, parentEntity);
460
469
  }
461
- changes.addCreate(entityName, currentValue, depth, parentId, parentEntity);
470
+ changes.addCreate(entityName, currentValue, depth, parentId, parentEntity, relationField);
462
471
  break;
463
472
  case "updated":
464
473
  const updateId = this.getEntityId(currentValue);
@@ -602,6 +611,11 @@ export class ChangeTracker {
602
611
  }
603
612
  return current;
604
613
  }
614
+ extractRelationField(path) {
615
+ const withoutIndices = path.replace(/\[\d+\]/g, "");
616
+ const parts = withoutIndices.split(".");
617
+ return parts[parts.length - 1];
618
+ }
605
619
  getItemKey(item) {
606
620
  const id = this.getEntityId(item);
607
621
  if (id)
@@ -703,8 +717,8 @@ export class ChangeTracker {
703
717
  if (obj instanceof Id) {
704
718
  return obj.value;
705
719
  }
706
- if (typeof obj.toJson === "function") {
707
- return obj.toJson();
720
+ if (typeof obj.toJSON === "function") {
721
+ return obj.toJSON();
708
722
  }
709
723
  if (Array.isArray(obj)) {
710
724
  return obj.map((item) => this.deepClone(item));
@@ -1 +1 @@
1
- {"version":3,"file":"change-tracker.js","sourceRoot":"","sources":["../src/change-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"change-tracker.js","sourceRoot":"","sources":["../src/change-tracker.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CriteriaAdapter, CriteriaOptions, FieldPath, Filter, FilterValueFor, OperatorsForType, Order, OrderDirection, Pagination, PathValue, TypedFilter, TypedOrder } from "./types";
1
+ import { CriteriaAdapter, CriteriaOptions, FieldPath, Filter, FilterValueFor, OperatorsForType, Order, OrderDirection, Pagination, PathValue, Search, TypedFilter, TypedOrder } from "./types";
2
2
  export declare class Criteria<T = any> {
3
3
  private _filters;
4
4
  private _orders;
@@ -22,12 +22,9 @@ export declare class Criteria<T = any> {
22
22
  orderBy<K extends FieldPath<T>>(field: K, direction?: OrderDirection): this;
23
23
  orderByAsc<K extends FieldPath<T>>(field: K): this;
24
24
  orderByDesc<K extends FieldPath<T>>(field: K): this;
25
- search<K extends FieldPath<T>>(fields: K[], value: string): this;
25
+ search(value: string): this;
26
26
  hasSearch(): boolean;
27
- getSearch(): {
28
- fields: FieldPath<T>[];
29
- value: string;
30
- } | undefined;
27
+ getSearch(): Search | undefined;
31
28
  paginate(page: number, limit: number): this;
32
29
  limit(limit: number): this;
33
30
  getFilters(): Filter[];
@@ -49,22 +46,17 @@ export declare class Criteria<T = any> {
49
46
  direction: OrderDirection;
50
47
  }[];
51
48
  pagination: Pagination;
52
- search: {
53
- fields: FieldPath<T>[];
54
- value: string;
55
- } | undefined;
49
+ search: string | undefined;
56
50
  };
57
51
  static fromObject<T>(obj: {
58
52
  filters?: TypedFilter<T>[];
59
53
  orders?: TypedOrder<T>[];
60
54
  pagination?: Pagination;
61
- search?: {
62
- fields: FieldPath<T>[];
63
- value: string;
64
- };
55
+ search?: Search;
65
56
  }, adapter?: CriteriaAdapter<any, any>): Criteria<T>;
66
57
  protected resolveFieldPath(field: FieldPath<T>): FieldPath<T>;
67
- static fromQueryParams<T>(query: Record<string, any>, adapter?: CriteriaAdapter<any, any>): Criteria<T>;
58
+ static fromQueryParams<T = any>(query: Record<string, any> | undefined, adapter?: CriteriaAdapter<any, any>): Criteria<T>;
68
59
  private validateOperator;
60
+ private parseFilterValue;
69
61
  }
70
62
  //# sourceMappingURL=criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../src/criteria.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../src/criteria.ts"],"names":[],"mappings":"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"}
package/dist/criteria.js CHANGED
@@ -67,23 +67,15 @@ export class Criteria {
67
67
  orderByDesc(field) {
68
68
  return this.orderBy(field, "desc");
69
69
  }
70
- search(fields, value) {
71
- this._search = {
72
- fields: fields.map(this.resolveFieldPath),
73
- value,
74
- };
70
+ search(value) {
71
+ this._search = value;
75
72
  return this;
76
73
  }
77
74
  hasSearch() {
78
75
  return !!this._search;
79
76
  }
80
77
  getSearch() {
81
- return this._search
82
- ? {
83
- fields: this._search.fields.map(this.resolveFieldPath),
84
- value: this._search.value,
85
- }
86
- : undefined;
78
+ return this._search;
87
79
  }
88
80
  paginate(page, limit) {
89
81
  if (page < 1)
@@ -143,12 +135,7 @@ export class Criteria {
143
135
  })),
144
136
  ];
145
137
  cloned._pagination = { ...this._pagination };
146
- cloned._search = this._search
147
- ? {
148
- fields: this._search.fields.map(this.resolveFieldPath),
149
- value: this._search.value,
150
- }
151
- : undefined;
138
+ cloned._search = this._search;
152
139
  if (this._adapter) {
153
140
  cloned.useAdapter(this._adapter);
154
141
  }
@@ -167,12 +154,7 @@ export class Criteria {
167
154
  direction: order.direction,
168
155
  })),
169
156
  pagination: this._pagination,
170
- search: this._search
171
- ? {
172
- fields: this._search.fields.map(this.resolveFieldPath),
173
- value: this._search.value,
174
- }
175
- : undefined,
157
+ search: this._search,
176
158
  };
177
159
  }
178
160
  static fromObject(obj, adapter) {
@@ -197,10 +179,7 @@ export class Criteria {
197
179
  if (obj.pagination)
198
180
  criteria._pagination = { ...obj.pagination };
199
181
  if (obj.search)
200
- criteria._search = {
201
- ...obj.search,
202
- fields: obj.search.fields.map(criteria.resolveFieldPath),
203
- };
182
+ criteria._search = obj.search;
204
183
  return criteria;
205
184
  }
206
185
  resolveFieldPath(field) {
@@ -222,6 +201,8 @@ export class Criteria {
222
201
  return field;
223
202
  }
224
203
  static fromQueryParams(query, adapter) {
204
+ if (!query)
205
+ return Criteria.create();
225
206
  const criteria = Criteria.create();
226
207
  if (adapter) {
227
208
  criteria.useAdapter(adapter);
@@ -233,65 +214,96 @@ export class Criteria {
233
214
  if (key === "limit") {
234
215
  continue;
235
216
  }
236
- if (key === "sort") {
237
- continue;
238
- }
239
- const [field, operatorWithQuantifier] = key.split(":");
240
- if (!operatorWithQuantifier || !field)
241
- continue;
242
- const [operatorRaw, quantifierRaw] = operatorWithQuantifier.split("@");
243
- const operator = isOperator(operatorRaw) ? operatorRaw : null;
244
- if (!operator) {
245
- throw new InvalidCriteriaError(`Invalid filter operator`, operatorRaw);
246
- }
247
- const validQuantifiers = ["some", "every", "none"];
248
- const quantifier = quantifierRaw && validQuantifiers.includes(quantifierRaw)
249
- ? quantifierRaw
250
- : undefined;
251
- if (quantifierRaw && !quantifier) {
252
- throw new InvalidCriteriaError(`Invalid quantifier. Valid values: ${validQuantifiers.join(", ")}`, quantifierRaw);
253
- }
254
- const options = quantifier
255
- ? { quantifier }
256
- : undefined;
257
- let parsedValue = value;
258
- const resolvedField = criteria.resolveFieldPath(field);
259
- if (operator === "between") {
260
- parsedValue = value
261
- .split(",")
262
- .map((v) => parseQueryValue(v.trim()));
263
- if (parsedValue.length === 2) {
264
- criteria.where(resolvedField, "between", [parsedValue[0], parsedValue[1]], options);
217
+ if (key === "filters") {
218
+ const filters = criteria.parseFilterValue(value);
219
+ for (let [filterKey, filterValue] of Object.entries(filters)) {
220
+ const [field, operatorWithQuantifier] = filterKey.split(":");
221
+ if (!operatorWithQuantifier || !field)
222
+ continue;
223
+ const [operatorRaw, quantifierRaw] = operatorWithQuantifier.split("@");
224
+ const operator = isOperator(operatorRaw) ? operatorRaw : null;
225
+ if (!operator) {
226
+ throw new InvalidCriteriaError(`Invalid filter operator`, operatorRaw);
227
+ }
228
+ const validQuantifiers = ["some", "every", "none"];
229
+ const quantifier = quantifierRaw && validQuantifiers.includes(quantifierRaw)
230
+ ? quantifierRaw
231
+ : undefined;
232
+ if (quantifierRaw && !quantifier) {
233
+ throw new InvalidCriteriaError(`Invalid quantifier. Valid values: ${validQuantifiers.join(", ")}`, quantifierRaw);
234
+ }
235
+ const options = quantifier
236
+ ? { quantifier }
237
+ : undefined;
238
+ let parsedValue = filterValue;
239
+ const resolvedField = criteria.resolveFieldPath(field);
240
+ if (operator === "between") {
241
+ parsedValue = criteria
242
+ .parseFilterValue(filterValue)
243
+ .map((v) => parseQueryValue(v.trim()));
244
+ if (parsedValue.length === 2) {
245
+ criteria.where(resolvedField, "between", [parsedValue[0], parsedValue[1]], options);
246
+ }
247
+ continue;
248
+ }
249
+ if (operator === "in" || operator === "notIn") {
250
+ parsedValue = criteria
251
+ .parseFilterValue(filterValue)
252
+ .map(parseQueryValue);
253
+ criteria.where(field, operator, parsedValue, options);
254
+ continue;
255
+ }
256
+ const parsedFinalValue = parseQueryValue(filterValue);
257
+ criteria.validateOperator(operator, parsedFinalValue);
258
+ criteria.where(field, operator, parsedFinalValue, options);
265
259
  }
266
- continue;
267
260
  }
268
- if (operator === "in" || operator === "notIn") {
269
- parsedValue = value.split(",").map(parseQueryValue);
270
- criteria.where(field, operator, parsedValue, options);
271
- continue;
272
- }
273
- const parsedFinalValue = parseQueryValue(value);
274
- criteria.validateOperator(operator, parsedFinalValue);
275
- criteria.where(field, operator, parsedFinalValue, options);
276
261
  }
277
262
  const page = query.page ? parseInt(query.page) : undefined;
278
263
  const limit = query.limit ? parseInt(query.limit) : undefined;
279
264
  if (page && limit) {
280
265
  criteria.paginate(page, limit);
281
266
  }
267
+ // 1. orderBy=["field:asc","field2:desc"]
282
268
  if (query.orderBy) {
283
- const sortParts = query.orderBy.split(",");
284
- sortParts.forEach((part) => {
285
- const [field, direction] = part.split(":");
286
- criteria.orderBy(field, direction || "asc");
287
- });
269
+ const orderByValue = query.orderBy;
270
+ if (typeof orderByValue === "string" &&
271
+ orderByValue.trim().startsWith("[")) {
272
+ try {
273
+ const orderArray = JSON.parse(orderByValue);
274
+ if (Array.isArray(orderArray)) {
275
+ orderArray.forEach((item) => {
276
+ const [field, direction] = item.split(":");
277
+ criteria.orderBy(field, direction || "asc");
278
+ });
279
+ }
280
+ }
281
+ catch {
282
+ throw new InvalidCriteriaError("Invalid JSON array format for orderBy", orderByValue);
283
+ }
284
+ }
285
+ else if (Array.isArray(orderByValue)) {
286
+ orderByValue.forEach((item) => {
287
+ const [field, direction] = item.split(":");
288
+ criteria.orderBy(field, direction || "asc");
289
+ });
290
+ }
291
+ // 2. orderBy="field:asc,field2:desc"
292
+ else if (typeof orderByValue === "string" && orderByValue.includes(":")) {
293
+ const sortParts = orderByValue.split(",");
294
+ sortParts.forEach((part) => {
295
+ const [field, direction] = part.split(":");
296
+ criteria.orderBy(field, direction || "asc");
297
+ });
298
+ }
299
+ // 3. orderBy="field" + orderDirection="asc"
300
+ else {
301
+ const direction = query.orderDirection || "asc";
302
+ criteria.orderBy(orderByValue, direction);
303
+ }
288
304
  }
289
- if (query.search && query.searchFields) {
290
- const fields = query.searchFields
291
- .split(",")
292
- .filter(Boolean);
293
- const resolvedFields = fields.map(criteria.resolveFieldPath);
294
- criteria.search(resolvedFields, query.search);
305
+ if (query.search && typeof query.search === "string") {
306
+ criteria.search(query.search);
295
307
  }
296
308
  return criteria;
297
309
  }
@@ -303,5 +315,16 @@ export class Criteria {
303
315
  throw new InvalidCriteriaError(`Operator "${operator}" is not valid for type "${typeof sanitizedValue}". Valid operators: ${validOps.join(", ")}`, operator);
304
316
  }
305
317
  }
318
+ parseFilterValue(value) {
319
+ if (typeof value === "string") {
320
+ try {
321
+ return JSON.parse(value);
322
+ }
323
+ catch {
324
+ throw new InvalidCriteriaError(`Invalid filter value`, value);
325
+ }
326
+ }
327
+ return parseQueryValue(value);
328
+ }
306
329
  }
307
330
  //# sourceMappingURL=criteria.js.map