@woltz/rich-domain 0.2.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +37 -20
- package/dist/base-entity.d.ts +1 -1
- package/dist/base-entity.d.ts.map +1 -1
- package/dist/base-entity.js +21 -15
- package/dist/base-entity.js.map +1 -1
- package/dist/constants.js +4 -1
- package/dist/constants.js.map +1 -1
- package/dist/criteria.d.ts.map +1 -1
- package/dist/criteria.js +7 -3
- package/dist/criteria.js.map +1 -1
- package/dist/deep-proxy.d.ts +3 -1
- package/dist/deep-proxy.d.ts.map +1 -1
- package/dist/deep-proxy.js +110 -33
- package/dist/deep-proxy.js.map +1 -1
- package/dist/domain-event-bus.js +7 -2
- package/dist/domain-event-bus.js.map +1 -1
- package/dist/domain-event.js +7 -3
- package/dist/domain-event.js.map +1 -1
- package/dist/entity.js +8 -3
- package/dist/entity.js.map +1 -1
- package/dist/id.d.ts +3 -3
- package/dist/id.d.ts.map +1 -1
- package/dist/id.js +10 -6
- package/dist/id.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -17
- package/dist/index.js.map +1 -1
- package/dist/mapper.js +5 -1
- package/dist/mapper.js.map +1 -1
- package/dist/paginated-result.js +7 -3
- package/dist/paginated-result.js.map +1 -1
- package/dist/repository/base-repository.js +11 -4
- package/dist/repository/base-repository.js.map +1 -1
- package/dist/repository/in-memory-repository.js +8 -4
- package/dist/repository/in-memory-repository.js.map +1 -1
- package/dist/repository/index.d.ts +1 -37
- package/dist/repository/index.d.ts.map +1 -1
- package/dist/repository/index.js +26 -40
- package/dist/repository/index.js.map +1 -1
- package/dist/repository/unit-of-work.js +9 -3
- package/dist/repository/unit-of-work.js.map +1 -1
- package/dist/types/criteria.d.ts +2 -2
- package/dist/types/criteria.d.ts.map +1 -1
- package/dist/types/criteria.js +4 -1
- package/dist/types/criteria.js.map +1 -1
- package/dist/types/domain.js +2 -1
- package/dist/types/history-tracker.js +2 -1
- package/dist/types/index.js +22 -6
- package/dist/types/index.js.map +1 -1
- package/dist/types/standard-schema.js +2 -1
- package/dist/types/unit-of-work.js +2 -1
- package/dist/types/utils.js +2 -1
- package/dist/validation-error.js +9 -3
- package/dist/validation-error.js.map +1 -1
- package/dist/value-object.js +9 -5
- package/dist/value-object.js.map +1 -1
- package/package.json +1 -1
- package/src/base-entity.ts +3 -2
- package/src/criteria.ts +2 -2
- package/src/deep-proxy.ts +435 -339
- package/src/id.ts +4 -4
- package/src/index.ts +1 -3
- package/src/repository/index.ts +1 -38
- package/src/types/criteria.ts +2 -2
- package/tests/entity-validation.test.ts +1 -1
- package/tests/history-tracker.spec.ts +57 -17
- package/tests/id.test.ts +341 -341
- package/tests/repository.test.ts +4 -2
- package/tests/to-json.test.ts +103 -91
- package/tests/value-objects.test.ts +52 -52
- package/tsconfig.json +2 -2
- package/dist/filtering.d.ts +0 -107
- package/dist/filtering.d.ts.map +0 -1
- package/dist/filtering.js +0 -202
- package/dist/filtering.js.map +0 -1
- package/dist/ordering.d.ts +0 -93
- package/dist/ordering.d.ts.map +0 -1
- package/dist/ordering.js +0 -154
- package/dist/ordering.js.map +0 -1
- package/dist/pagination.d.ts +0 -218
- package/dist/pagination.d.ts.map +0 -1
- package/dist/pagination.js +0 -281
- package/dist/pagination.js.map +0 -1
- package/dist/repository/mapper.d.ts +0 -56
- package/dist/repository/mapper.d.ts.map +0 -1
- package/dist/repository/mapper.js +0 -15
- package/dist/repository/mapper.js.map +0 -1
- package/dist/repository/types.d.ts +0 -87
- package/dist/repository/types.d.ts.map +0 -1
- package/dist/repository/types.js +0 -6
- package/dist/repository/types.js.map +0 -1
- package/dist/repository.d.ts +0 -2
- package/dist/repository.d.ts.map +0 -1
- package/dist/repository.js +0 -21
- package/dist/repository.js.map +0 -1
- package/dist/specification.d.ts +0 -102
- package/dist/specification.d.ts.map +0 -1
- package/dist/specification.js +0 -187
- package/dist/specification.js.map +0 -1
- package/dist/types/repository.d.ts +0 -43
- package/dist/types/repository.d.ts.map +0 -1
- package/dist/types/repository.js +0 -2
- package/dist/types/repository.js.map +0 -1
- package/dist/types.d.ts +0 -88
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -12
- package/dist/types.js.map +0 -1
package/dist/paginated-result.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PaginatedResult = void 0;
|
|
4
|
+
const id_1 = require("./id");
|
|
2
5
|
// ============================================================================
|
|
3
6
|
// PaginatedResult Class
|
|
4
7
|
// ============================================================================
|
|
5
|
-
|
|
8
|
+
class PaginatedResult {
|
|
6
9
|
constructor(data, meta) {
|
|
7
10
|
this.data = data;
|
|
8
11
|
this.meta = meta;
|
|
@@ -82,7 +85,7 @@ export class PaginatedResult {
|
|
|
82
85
|
if (obj === null || obj === undefined)
|
|
83
86
|
return obj;
|
|
84
87
|
// Id → string
|
|
85
|
-
if (obj instanceof Id)
|
|
88
|
+
if (obj instanceof id_1.Id)
|
|
86
89
|
return obj.value;
|
|
87
90
|
// Arrays → map recursively
|
|
88
91
|
if (Array.isArray(obj)) {
|
|
@@ -124,6 +127,7 @@ export class PaginatedResult {
|
|
|
124
127
|
return this.meta.hasNext;
|
|
125
128
|
}
|
|
126
129
|
}
|
|
130
|
+
exports.PaginatedResult = PaginatedResult;
|
|
127
131
|
// ============================================================================
|
|
128
132
|
// Helper Functions (moved from criteria.ts)
|
|
129
133
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paginated-result.js","sourceRoot":"","sources":["../src/paginated-result.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"paginated-result.js","sourceRoot":"","sources":["../src/paginated-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// ============================================================================
|
|
2
3
|
// Base Repository - Abstract implementation with common logic
|
|
3
4
|
// ============================================================================
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Repository = exports.WriteAndRead = exports.WriteRepository = exports.ReadRepository = void 0;
|
|
4
7
|
/**
|
|
5
8
|
* Abstract base repository
|
|
6
9
|
* Implements common logic, delegates persistence to subclasses
|
|
@@ -25,12 +28,16 @@
|
|
|
25
28
|
* }
|
|
26
29
|
* ```
|
|
27
30
|
*/
|
|
28
|
-
|
|
31
|
+
class ReadRepository {
|
|
29
32
|
}
|
|
30
|
-
|
|
33
|
+
exports.ReadRepository = ReadRepository;
|
|
34
|
+
class WriteRepository {
|
|
31
35
|
}
|
|
32
|
-
|
|
36
|
+
exports.WriteRepository = WriteRepository;
|
|
37
|
+
class WriteAndRead {
|
|
33
38
|
}
|
|
34
|
-
|
|
39
|
+
exports.WriteAndRead = WriteAndRead;
|
|
40
|
+
class Repository extends WriteAndRead {
|
|
35
41
|
}
|
|
42
|
+
exports.Repository = Repository;
|
|
36
43
|
//# sourceMappingURL=base-repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.js","sourceRoot":"","sources":["../../src/repository/base-repository.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8DAA8D;AAC9D,+EAA+E
|
|
1
|
+
{"version":3,"file":"base-repository.js","sourceRoot":"","sources":["../../src/repository/base-repository.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,8DAA8D;AAC9D,+EAA+E;;;AAO/E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,MAAsB,cAAc;CAKnC;AALD,wCAKC;AAED,MAAsB,eAAe;CAIpC;AAJD,0CAIC;AAED,MAAsB,YAAY;CAQjC;AARD,oCAQC;AAED,MAAsB,UAEpB,SAAQ,YAAqB;CAI9B;AAND,gCAMC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// ============================================================================
|
|
2
3
|
// In-Memory Repository - Perfect for testing
|
|
3
4
|
// ============================================================================
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InMemoryRepository = void 0;
|
|
7
|
+
const paginated_result_1 = require("../paginated-result");
|
|
8
|
+
const base_repository_1 = require("./base-repository");
|
|
6
9
|
/**
|
|
7
10
|
* In-memory repository implementation
|
|
8
11
|
* Perfect for unit tests and prototyping
|
|
@@ -18,7 +21,7 @@ import { Repository } from "./base-repository";
|
|
|
18
21
|
* );
|
|
19
22
|
* ```
|
|
20
23
|
*/
|
|
21
|
-
|
|
24
|
+
class InMemoryRepository extends base_repository_1.Repository {
|
|
22
25
|
constructor(mapperToDomain, mapperToPersistence) {
|
|
23
26
|
super();
|
|
24
27
|
this.mapperToDomain = mapperToDomain;
|
|
@@ -34,7 +37,7 @@ export class InMemoryRepository extends Repository {
|
|
|
34
37
|
}
|
|
35
38
|
async find(criteria) {
|
|
36
39
|
const allItems = Array.from(this.items.values());
|
|
37
|
-
return PaginatedResult.fromArray(allItems, criteria);
|
|
40
|
+
return paginated_result_1.PaginatedResult.fromArray(allItems, criteria);
|
|
38
41
|
}
|
|
39
42
|
async findAll(criteria) {
|
|
40
43
|
if (criteria) {
|
|
@@ -90,4 +93,5 @@ export class InMemoryRepository extends Repository {
|
|
|
90
93
|
return this.items.size;
|
|
91
94
|
}
|
|
92
95
|
}
|
|
96
|
+
exports.InMemoryRepository = InMemoryRepository;
|
|
93
97
|
//# sourceMappingURL=in-memory-repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in-memory-repository.js","sourceRoot":"","sources":["../../src/repository/in-memory-repository.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,6CAA6C;AAC7C,+EAA+E
|
|
1
|
+
{"version":3,"file":"in-memory-repository.js","sourceRoot":"","sources":["../../src/repository/in-memory-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,5 @@
|
|
|
1
1
|
export { Mapper } from "../mapper";
|
|
2
|
-
export
|
|
2
|
+
export * from "./base-repository";
|
|
3
3
|
export { InMemoryRepository } from "./in-memory-repository";
|
|
4
4
|
export { UnitOfWork, BaseTransactionContext, InMemoryUnitOfWork, } from "./unit-of-work";
|
|
5
|
-
/**
|
|
6
|
-
* QUICK START:
|
|
7
|
-
*
|
|
8
|
-
* 1. For Testing:
|
|
9
|
-
* ```ts
|
|
10
|
-
* import { InMemoryRepository } from 'rich-domain';
|
|
11
|
-
*
|
|
12
|
-
* const userRepo = new InMemoryRepository<User>();
|
|
13
|
-
* await userRepo.save(user);
|
|
14
|
-
* const found = await userRepo.findById(user.id);
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* 2. For Production (Prisma, TypeORM, etc):
|
|
18
|
-
* - Extend BaseRepository
|
|
19
|
-
* - Implement abstract methods
|
|
20
|
-
* - Create a Mapper
|
|
21
|
-
* - See examples/ folder for reference
|
|
22
|
-
*
|
|
23
|
-
* 3. With Criteria:
|
|
24
|
-
* ```ts
|
|
25
|
-
* const result = await userRepo.find(
|
|
26
|
-
* Criteria.create<User>()
|
|
27
|
-
* .whereEquals('status', 'active')
|
|
28
|
-
* .orderByDesc('createdAt')
|
|
29
|
-
* .paginate(1, 10)
|
|
30
|
-
* );
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* 4. With Unit of Work:
|
|
34
|
-
* ```ts
|
|
35
|
-
* await uow.transaction(async (ctx) => {
|
|
36
|
-
* const userRepo = uow.getRepository(UserRepository);
|
|
37
|
-
* await userRepo.save(user);
|
|
38
|
-
* });
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC"}
|
package/dist/repository/index.js
CHANGED
|
@@ -1,47 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// ============================================================================
|
|
2
3
|
// Repository Module - Clean exports
|
|
3
4
|
// ============================================================================
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
17
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.InMemoryUnitOfWork = exports.BaseTransactionContext = exports.UnitOfWork = exports.InMemoryRepository = exports.Mapper = void 0;
|
|
4
21
|
// Mapper
|
|
5
|
-
|
|
22
|
+
var mapper_1 = require("../mapper");
|
|
23
|
+
Object.defineProperty(exports, "Mapper", { enumerable: true, get: function () { return mapper_1.Mapper; } });
|
|
6
24
|
// Base implementations
|
|
7
|
-
|
|
8
|
-
|
|
25
|
+
__exportStar(require("./base-repository"), exports);
|
|
26
|
+
var in_memory_repository_1 = require("./in-memory-repository");
|
|
27
|
+
Object.defineProperty(exports, "InMemoryRepository", { enumerable: true, get: function () { return in_memory_repository_1.InMemoryRepository; } });
|
|
9
28
|
// Unit of Work
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* 1. For Testing:
|
|
15
|
-
* ```ts
|
|
16
|
-
* import { InMemoryRepository } from 'rich-domain';
|
|
17
|
-
*
|
|
18
|
-
* const userRepo = new InMemoryRepository<User>();
|
|
19
|
-
* await userRepo.save(user);
|
|
20
|
-
* const found = await userRepo.findById(user.id);
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* 2. For Production (Prisma, TypeORM, etc):
|
|
24
|
-
* - Extend BaseRepository
|
|
25
|
-
* - Implement abstract methods
|
|
26
|
-
* - Create a Mapper
|
|
27
|
-
* - See examples/ folder for reference
|
|
28
|
-
*
|
|
29
|
-
* 3. With Criteria:
|
|
30
|
-
* ```ts
|
|
31
|
-
* const result = await userRepo.find(
|
|
32
|
-
* Criteria.create<User>()
|
|
33
|
-
* .whereEquals('status', 'active')
|
|
34
|
-
* .orderByDesc('createdAt')
|
|
35
|
-
* .paginate(1, 10)
|
|
36
|
-
* );
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
* 4. With Unit of Work:
|
|
40
|
-
* ```ts
|
|
41
|
-
* await uow.transaction(async (ctx) => {
|
|
42
|
-
* const userRepo = uow.getRepository(UserRepository);
|
|
43
|
-
* await userRepo.save(user);
|
|
44
|
-
* });
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
29
|
+
var unit_of_work_1 = require("./unit-of-work");
|
|
30
|
+
Object.defineProperty(exports, "UnitOfWork", { enumerable: true, get: function () { return unit_of_work_1.UnitOfWork; } });
|
|
31
|
+
Object.defineProperty(exports, "BaseTransactionContext", { enumerable: true, get: function () { return unit_of_work_1.BaseTransactionContext; } });
|
|
32
|
+
Object.defineProperty(exports, "InMemoryUnitOfWork", { enumerable: true, get: function () { return unit_of_work_1.InMemoryUnitOfWork; } });
|
|
47
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,oCAAoC;AACpC,+EAA+E;;;;;;;;;;;;;;;;;AAE/E,SAAS;AACT,oCAAmC;AAA1B,gGAAA,MAAM,OAAA;AAEf,uBAAuB;AACvB,oDAAkC;AAClC,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAE3B,eAAe;AACf,+CAIwB;AAHtB,0GAAA,UAAU,OAAA;AACV,sHAAA,sBAAsB,OAAA;AACtB,kHAAA,kBAAkB,OAAA"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// ============================================================================
|
|
2
3
|
// Unit of Work - Simple transaction management
|
|
3
4
|
// ============================================================================
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InMemoryUnitOfWork = exports.BaseTransactionContext = exports.UnitOfWork = void 0;
|
|
4
7
|
/**
|
|
5
8
|
* Abstract Unit of Work
|
|
6
9
|
* Provides transaction management across multiple repositories
|
|
@@ -30,7 +33,7 @@
|
|
|
30
33
|
* }
|
|
31
34
|
* ```
|
|
32
35
|
*/
|
|
33
|
-
|
|
36
|
+
class UnitOfWork {
|
|
34
37
|
constructor() {
|
|
35
38
|
this.currentContext = null;
|
|
36
39
|
this.repositoryCache = new Map();
|
|
@@ -70,10 +73,11 @@ export class UnitOfWork {
|
|
|
70
73
|
return repo;
|
|
71
74
|
}
|
|
72
75
|
}
|
|
76
|
+
exports.UnitOfWork = UnitOfWork;
|
|
73
77
|
/**
|
|
74
78
|
* Base Transaction Context
|
|
75
79
|
*/
|
|
76
|
-
|
|
80
|
+
class BaseTransactionContext {
|
|
77
81
|
constructor() {
|
|
78
82
|
this._isActive = true;
|
|
79
83
|
}
|
|
@@ -84,10 +88,11 @@ export class BaseTransactionContext {
|
|
|
84
88
|
this._isActive = false;
|
|
85
89
|
}
|
|
86
90
|
}
|
|
91
|
+
exports.BaseTransactionContext = BaseTransactionContext;
|
|
87
92
|
/**
|
|
88
93
|
* In-Memory Unit of Work (for testing)
|
|
89
94
|
*/
|
|
90
|
-
|
|
95
|
+
class InMemoryUnitOfWork extends UnitOfWork {
|
|
91
96
|
constructor() {
|
|
92
97
|
super(...arguments);
|
|
93
98
|
this.committed = false;
|
|
@@ -111,6 +116,7 @@ export class InMemoryUnitOfWork extends UnitOfWork {
|
|
|
111
116
|
return this.rolledBack;
|
|
112
117
|
}
|
|
113
118
|
}
|
|
119
|
+
exports.InMemoryUnitOfWork = InMemoryUnitOfWork;
|
|
114
120
|
class InMemoryTransactionContext extends BaseTransactionContext {
|
|
115
121
|
async commit() {
|
|
116
122
|
this.markInactive();
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"unit-of-work.js","sourceRoot":"","sources":["../../src/repository/unit-of-work.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,+CAA+C;AAC/C,+EAA+E;;;AAI/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAsB,UAAU;IAAhC;QACY,mBAAc,GAA8B,IAAI,CAAC;QACjD,oBAAe,GAAqB,IAAI,GAAG,EAAE,CAAC;IAmD1D,CAAC;IA/CC;;;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,CACX,eAA8C;QAE9C,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;AArDD,gCAqDC;AAED;;GAEG;AACH,MAAsB,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;AAbD,wDAaC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,UAAU;IAAlD;;QACU,cAAS,GAAG,KAAK,CAAC;QAClB,eAAU,GAAG,KAAK,CAAC;IAwB7B,CAAC;IAtBC,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,cAAc,GAAG,IAAI,0BAA0B,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAES,gBAAgB,CACxB,eAA8C;QAE9C,4CAA4C;QAC5C,kDAAkD;QAClD,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AA1BD,gDA0BC;AAED,MAAM,0BAA2B,SAAQ,sBAAsB;IAC7D,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;CACF"}
|
package/dist/types/criteria.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Primitive } from "./utils";
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const FILTER_OPERATORS: readonly ["equals", "notEquals", "greaterThan", "greaterThanOrEqual", "lessThan", "lessThanOrEqual", "contains", "startsWith", "endsWith", "in", "notIn", "between", "isNull", "isNotNull"];
|
|
3
3
|
export type FilterValueFor<T> = T | (T extends number | Date ? [T, T] : never) | T[] | null;
|
|
4
4
|
export type PathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof T ? PathValue<T[K], Rest> : never : P extends keyof T ? T[P] : never;
|
|
5
|
-
export type FilterOperator = (typeof
|
|
5
|
+
export type FilterOperator = (typeof FILTER_OPERATORS)[number];
|
|
6
6
|
export interface Filter<TField = string, TValue = unknown> {
|
|
7
7
|
field: TField;
|
|
8
8
|
operator: FilterOperator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,gBAAgB,6LAenB,CAAC;AAEX,MAAM,MAAM,cAAc,CAAC,CAAC,IACxB,CAAC,GACD,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GACpB,CAAC,CAAC,EAAE,CAAC,CAAC,GACN,KAAK,CAAC,GACV,CAAC,EAAE,GACH,IAAI,CAAC;AAET,MAAM,MAAM,SAAS,CACnB,CAAC,EACD,CAAC,SAAS,MAAM,IACd,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,MAAM,IAAI,EAAE,GACpC,CAAC,SAAS,MAAM,CAAC,GACf,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GACrB,KAAK,GACP,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK,CAAC;AAEV,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,MAAM,WAAW,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,GAAG,OAAO;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,GAC3C,CAAC,GACD,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC3B,CAAC,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,GAC1B,CAAC,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;CAClC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC"}
|
package/dist/types/criteria.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/types/criteria.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAG;IAC9B,QAAQ;IACR,WAAW;IACX,aAAa;IACb,oBAAoB;IACpB,UAAU;IACV,iBAAiB;IACjB,UAAU;IACV,YAAY;IACZ,UAAU;IACV,IAAI;IACJ,OAAO;IACP,SAAS;IACT,QAAQ;IACR,WAAW;CACH,CAAC"}
|
package/dist/types/domain.js
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./criteria"), exports);
|
|
18
|
+
__exportStar(require("./domain"), exports);
|
|
19
|
+
__exportStar(require("./history-tracker"), exports);
|
|
20
|
+
__exportStar(require("./standard-schema"), exports);
|
|
21
|
+
__exportStar(require("./utils"), exports);
|
|
22
|
+
__exportStar(require("./unit-of-work"), exports);
|
|
7
23
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,oDAAkC;AAClC,oDAAkC;AAClC,0CAAwB;AACxB,iDAA+B"}
|
package/dist/types/utils.js
CHANGED
package/dist/validation-error.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// ============================================================================
|
|
2
3
|
// Validation Error - Domain Validation Errors
|
|
3
4
|
// ============================================================================
|
|
4
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ValidationError = void 0;
|
|
7
|
+
exports.createValidationIssue = createValidationIssue;
|
|
8
|
+
exports.throwValidationError = throwValidationError;
|
|
9
|
+
class ValidationError extends Error {
|
|
5
10
|
constructor(issues, message) {
|
|
6
11
|
const errorMessage = message || `Validation failed: ${issues.map(i => i.message).join(', ')}`;
|
|
7
12
|
super(errorMessage);
|
|
@@ -55,10 +60,11 @@ export class ValidationError extends Error {
|
|
|
55
60
|
};
|
|
56
61
|
}
|
|
57
62
|
}
|
|
63
|
+
exports.ValidationError = ValidationError;
|
|
58
64
|
/**
|
|
59
65
|
* Helper to create a single validation issue
|
|
60
66
|
*/
|
|
61
|
-
|
|
67
|
+
function createValidationIssue(path, message) {
|
|
62
68
|
return {
|
|
63
69
|
path: Array.isArray(path) ? path : path.split('.'),
|
|
64
70
|
message,
|
|
@@ -67,7 +73,7 @@ export function createValidationIssue(path, message) {
|
|
|
67
73
|
/**
|
|
68
74
|
* Helper to throw a validation error with a single issue
|
|
69
75
|
*/
|
|
70
|
-
|
|
76
|
+
function throwValidationError(path, message) {
|
|
71
77
|
throw new ValidationError([createValidationIssue(path, message)]);
|
|
72
78
|
}
|
|
73
79
|
//# sourceMappingURL=validation-error.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E
|
|
1
|
+
{"version":3,"file":"validation-error.js","sourceRoot":"","sources":["../src/validation-error.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;;;AA4E/E,sDAQC;AAKD,oDAKC;AAvFD,MAAa,eAAgB,SAAQ,KAAK;IAIxC,YAAY,MAAyB,EAAE,OAAgB;QACrD,MAAM,YAAY,GAChB,OAAO,IAAI,sBAAsB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,YAAY,CAAC,CAAC;QALN,wBAAmB,GAAG,IAAI,CAAC,CAAC,2BAA2B;QAMrE,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,8BAA8B;QAC9B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAc;QACrC,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,sDAAsD;QACtD,OAAO,CACL,KAAK,YAAY,KAAK;YACtB,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAChC,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,OAAO,CAAE,KAAa,CAAC,MAAM,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF;AAhED,0CAgEC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CACnC,IAAuB,EACvB,OAAe;IAEf,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAClD,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,IAAuB,EACvB,OAAe;IAEf,MAAM,IAAI,eAAe,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
package/dist/value-object.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// ============================================================================
|
|
2
3
|
// Value Object - Immutable Domain Objects
|
|
3
4
|
// ============================================================================
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ValueObject = void 0;
|
|
7
|
+
const validation_error_1 = require("./validation-error");
|
|
8
|
+
const constants_1 = require("./constants");
|
|
6
9
|
// Helper to get static properties from constructor
|
|
7
10
|
function getStaticProperty(instance, propertyName) {
|
|
8
11
|
return instance.constructor[propertyName];
|
|
9
12
|
}
|
|
10
|
-
|
|
13
|
+
class ValueObject {
|
|
11
14
|
constructor(props) {
|
|
12
15
|
this.domainEvents = [];
|
|
13
16
|
// Get static configuration from subclass
|
|
@@ -18,7 +21,7 @@ export class ValueObject {
|
|
|
18
21
|
this.domainSchema = validation.schema;
|
|
19
22
|
}
|
|
20
23
|
this.validationConfig = {
|
|
21
|
-
...DEFAULT_VALIDATION_CONFIG,
|
|
24
|
+
...constants_1.DEFAULT_VALIDATION_CONFIG,
|
|
22
25
|
...validation?.config,
|
|
23
26
|
};
|
|
24
27
|
// Apply defaultValues
|
|
@@ -51,7 +54,7 @@ export class ValueObject {
|
|
|
51
54
|
throw new Error("Async validation not supported in constructor. Use sync validation schema.");
|
|
52
55
|
}
|
|
53
56
|
if (result.issues && result.issues.length > 0) {
|
|
54
|
-
const validationError = new ValidationError(result.issues.map((issue) => ({
|
|
57
|
+
const validationError = new validation_error_1.ValidationError(result.issues.map((issue) => ({
|
|
55
58
|
path: issue.path?.map((p) => this.extractPathKey(p)) || [],
|
|
56
59
|
message: issue.message,
|
|
57
60
|
})));
|
|
@@ -133,4 +136,5 @@ export class ValueObject {
|
|
|
133
136
|
return new Constructor({ ...this.props, ...updates });
|
|
134
137
|
}
|
|
135
138
|
}
|
|
139
|
+
exports.ValueObject = ValueObject;
|
|
136
140
|
//# sourceMappingURL=value-object.js.map
|
package/dist/value-object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,0CAA0C;AAC1C,+EAA+E
|
|
1
|
+
{"version":3,"file":"value-object.js","sourceRoot":"","sources":["../src/value-object.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/base-entity.ts
CHANGED
|
@@ -278,8 +278,8 @@ export abstract class BaseEntity<T extends BaseProps> {
|
|
|
278
278
|
return this._props.id;
|
|
279
279
|
}
|
|
280
280
|
|
|
281
|
-
|
|
282
|
-
return this._props.id.isNew;
|
|
281
|
+
public isNew(): boolean {
|
|
282
|
+
return this._props.id.isNew();
|
|
283
283
|
}
|
|
284
284
|
|
|
285
285
|
/**
|
|
@@ -386,6 +386,7 @@ export abstract class BaseEntity<T extends BaseProps> {
|
|
|
386
386
|
private deepToJson(obj: any): any {
|
|
387
387
|
if (obj === null || obj === undefined) return obj;
|
|
388
388
|
if (obj instanceof Id) return obj.value;
|
|
389
|
+
if (obj instanceof Date) return obj.toISOString();
|
|
389
390
|
if (Array.isArray(obj)) return obj.map((item) => this.deepToJson(item));
|
|
390
391
|
if (obj instanceof BaseEntity) return obj.toJson();
|
|
391
392
|
if (obj && typeof obj.toJson === "function") return obj.toJson();
|
package/src/criteria.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FieldPath,
|
|
3
3
|
Filter,
|
|
4
|
+
FILTER_OPERATORS,
|
|
4
5
|
FilterOperator,
|
|
5
6
|
FilterValueFor,
|
|
6
7
|
Order,
|
|
@@ -221,7 +222,6 @@ export class Criteria<T = unknown> {
|
|
|
221
222
|
const [field, operatorRaw] = key.split(":");
|
|
222
223
|
|
|
223
224
|
if (!operatorRaw || !field) continue;
|
|
224
|
-
|
|
225
225
|
const operator = isOperator(operatorRaw) ? operatorRaw : null;
|
|
226
226
|
if (!operator) throw new Error(`Invalid filter operator: ${operatorRaw}`);
|
|
227
227
|
|
|
@@ -287,5 +287,5 @@ function parseQueryValue(value: string): any {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
function isOperator(value: string): value is FilterOperator {
|
|
290
|
-
return
|
|
290
|
+
return FILTER_OPERATORS.includes(value as FilterOperator);
|
|
291
291
|
}
|