@nulledexp/translatable-criteria 1.0.3 → 1.1.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/README.md +1 -0
- package/dist/criteria/criteria.d.ts +15 -4
- package/dist/criteria/criteria.d.ts.map +1 -1
- package/dist/criteria/criteria.js +15 -5
- package/dist/criteria/criteria.js.map +1 -1
- package/dist/criteria/cursor.d.ts +31 -0
- package/dist/criteria/cursor.d.ts.map +1 -1
- package/dist/criteria/cursor.js +32 -4
- package/dist/criteria/cursor.js.map +1 -1
- package/dist/criteria/filter/filter-utils.d.ts +6 -0
- package/dist/criteria/filter/filter-utils.d.ts.map +1 -1
- package/dist/criteria/filter/filter-utils.js +29 -9
- package/dist/criteria/filter/filter-utils.js.map +1 -1
- package/dist/criteria/filter/filter.d.ts +3 -0
- package/dist/criteria/filter/filter.d.ts.map +1 -1
- package/dist/criteria/filter/filter.js +62 -35
- package/dist/criteria/filter/filter.js.map +1 -1
- package/dist/criteria/filter/types/filter-primitive.types.d.ts +8 -11
- package/dist/criteria/filter/types/filter-primitive.types.d.ts.map +1 -1
- package/dist/criteria/index.d.ts +2 -2
- package/dist/criteria/index.d.ts.map +1 -1
- package/dist/criteria/index.js +2 -0
- package/dist/criteria/index.js.map +1 -1
- package/dist/criteria/order/order.d.ts +49 -0
- package/dist/criteria/order/order.d.ts.map +1 -1
- package/dist/criteria/order/order.js +39 -0
- package/dist/criteria/order/order.js.map +1 -1
- package/dist/criteria/types/criteria.interface.d.ts +6 -4
- package/dist/criteria/types/criteria.interface.d.ts.map +1 -1
- package/dist/criteria/types/filter-expression.interface.d.ts +12 -0
- package/dist/criteria/types/filter-expression.interface.d.ts.map +1 -1
- package/dist/criteria/types/operator.types.d.ts +44 -7
- package/dist/criteria/types/operator.types.d.ts.map +1 -1
- package/dist/criteria/types/operator.types.js +44 -8
- package/dist/criteria/types/operator.types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|

|
|
5
5
|
[]()
|
|
6
6
|
[](./src/docs/introduction/en.md)
|
|
7
|
+
[](https://github.com/Techscq/translatable-criteria/actions/workflows/ci.yml)
|
|
7
8
|
|
|
8
9
|
A TypeScript library for building data-source agnostic, translatable query criteria. Define complex filtering, ordering, and join logic in a structured, type-safe way, then translate it to your specific data source using custom translators.
|
|
9
10
|
|
|
@@ -32,6 +32,15 @@ export declare abstract class Criteria<TSchema extends CriteriaSchema, CurrentAl
|
|
|
32
32
|
get alias(): CurrentAlias;
|
|
33
33
|
setTake(amount: number): this;
|
|
34
34
|
setSkip(amount: number): this;
|
|
35
|
+
/**
|
|
36
|
+
* Asserts that a given field name is defined within the current criteria's schema.
|
|
37
|
+
* This is a protected utility method used internally to validate field names
|
|
38
|
+
* before they are used in filters, ordering, or selections.
|
|
39
|
+
*
|
|
40
|
+
* @protected
|
|
41
|
+
* @param {FieldOfSchema<TSchema>} field - The field name to validate.
|
|
42
|
+
* @throws {Error} If the field is not defined in the schema.
|
|
43
|
+
*/
|
|
35
44
|
protected assetFieldOnSchema(field: FieldOfSchema<TSchema>): void;
|
|
36
45
|
orderBy(field: FieldOfSchema<TSchema>, direction: OrderDirection): this;
|
|
37
46
|
where<Operator extends FilterOperator>(filterPrimitive: FilterPrimitive<FieldOfSchema<TSchema>, Operator>): this;
|
|
@@ -40,9 +49,11 @@ export declare abstract class Criteria<TSchema extends CriteriaSchema, CurrentAl
|
|
|
40
49
|
join<TJoinSchema extends CriteriaSchema, TJoinedCriteriaAlias extends SelectedAliasOf<TJoinSchema>, TMatchingJoinConfig extends SpecificMatchingJoinConfig<TSchema, TJoinedCriteriaAlias>>(criteriaToJoin: JoinCriteriaParameterType<TSchema, TJoinSchema, TJoinedCriteriaAlias, TMatchingJoinConfig>, joinParameter: JoinParameterType<TSchema, TJoinSchema, TMatchingJoinConfig>): this;
|
|
41
50
|
private assertIsValidJoinOptions;
|
|
42
51
|
get cursor(): Cursor<FieldOfSchema<TSchema>, FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN> | undefined;
|
|
43
|
-
setCursor(
|
|
44
|
-
Omit<FilterPrimitive<FieldOfSchema<TSchema>,
|
|
45
|
-
|
|
46
|
-
|
|
52
|
+
setCursor<Operator extends FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN>(filterPrimitives: readonly [
|
|
53
|
+
Omit<FilterPrimitive<FieldOfSchema<TSchema>, Operator>, 'operator'>
|
|
54
|
+
] | readonly [
|
|
55
|
+
Omit<FilterPrimitive<FieldOfSchema<TSchema>, Operator>, 'operator'>,
|
|
56
|
+
Omit<FilterPrimitive<FieldOfSchema<TSchema>, Operator>, 'operator'>
|
|
57
|
+
], operator: Operator, order: OrderDirection): ICriteriaBase<TSchema, CurrentAlias>;
|
|
47
58
|
}
|
|
48
59
|
//# sourceMappingURL=criteria.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/criteria/criteria.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"criteria.d.ts","sourceRoot":"","sources":["../../src/criteria/criteria.ts"],"names":[],"mappings":"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"}
|
|
@@ -81,6 +81,15 @@ export class Criteria {
|
|
|
81
81
|
this._skip = amount;
|
|
82
82
|
return this;
|
|
83
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Asserts that a given field name is defined within the current criteria's schema.
|
|
86
|
+
* This is a protected utility method used internally to validate field names
|
|
87
|
+
* before they are used in filters, ordering, or selections.
|
|
88
|
+
*
|
|
89
|
+
* @protected
|
|
90
|
+
* @param {FieldOfSchema<TSchema>} field - The field name to validate.
|
|
91
|
+
* @throws {Error} If the field is not defined in the schema.
|
|
92
|
+
*/
|
|
84
93
|
assetFieldOnSchema(field) {
|
|
85
94
|
if (!this.schema.fields.includes(field))
|
|
86
95
|
throw new Error(`The field '${String(field)}' is not defined in the schema '${this.schema.source_name}'.`);
|
|
@@ -149,13 +158,14 @@ export class Criteria {
|
|
|
149
158
|
get cursor() {
|
|
150
159
|
return this._cursor;
|
|
151
160
|
}
|
|
152
|
-
setCursor(
|
|
153
|
-
if (
|
|
154
|
-
throw new Error(
|
|
155
|
-
|
|
161
|
+
setCursor(filterPrimitives, operator, order) {
|
|
162
|
+
if (filterPrimitives.length !== 1 && filterPrimitives.length !== 2) {
|
|
163
|
+
throw new Error('The cursor must have exactly 1 or 2 elements');
|
|
164
|
+
}
|
|
165
|
+
for (const filterPrimitive of filterPrimitives) {
|
|
156
166
|
this.assetFieldOnSchema(filterPrimitive.field);
|
|
157
167
|
}
|
|
158
|
-
this._cursor = new Cursor(
|
|
168
|
+
this._cursor = new Cursor(filterPrimitives, operator, order);
|
|
159
169
|
return this;
|
|
160
170
|
}
|
|
161
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/criteria/criteria.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"criteria.js","sourceRoot":"","sources":["../../src/criteria/criteria.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,40 @@ import { Filter } from './filter/filter.js';
|
|
|
2
2
|
import { OrderDirection } from './order/order.js';
|
|
3
3
|
import type { FilterPrimitive } from './filter/types/filter-primitive.types.js';
|
|
4
4
|
import { FilterOperator } from './types/operator.types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Represents the configuration for cursor-based pagination.
|
|
7
|
+
* A cursor defines a point in a sorted dataset from which to fetch
|
|
8
|
+
* the next or previous set of results.
|
|
9
|
+
*
|
|
10
|
+
* @template TFields - A string literal type representing valid field names for cursor filters.
|
|
11
|
+
* @template Operator - The specific comparison operator for the cursor (GREATER_THAN or LESS_THAN).
|
|
12
|
+
*/
|
|
5
13
|
export declare class Cursor<TFields extends string, Operator extends FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN> {
|
|
14
|
+
/**
|
|
15
|
+
* An array of one or two {@link Filter} instances that define the cursor's position.
|
|
16
|
+
* - A single filter is used for simple cursor pagination (e.g., based on `created_at`).
|
|
17
|
+
* - Two filters are used for composite cursor pagination (e.g., based on `created_at` and `uuid`).
|
|
18
|
+
* @readonly
|
|
19
|
+
*/
|
|
6
20
|
readonly filters: [Filter<TFields, Operator>, Filter<TFields, Operator>] | [Filter<TFields, Operator>];
|
|
21
|
+
/**
|
|
22
|
+
* The primary {@link OrderDirection} associated with the cursor.
|
|
23
|
+
* This should align with the main sort order of the query being paginated.
|
|
24
|
+
* @readonly
|
|
25
|
+
*/
|
|
7
26
|
readonly order: OrderDirection;
|
|
27
|
+
/**
|
|
28
|
+
* Creates an instance of Cursor.
|
|
29
|
+
* @param {readonly [Omit<FilterPrimitive<TFields, Operator>, 'operator'>] | readonly [Omit<FilterPrimitive<TFields, Operator>, 'operator'>, Omit<FilterPrimitive<TFields, Operator>, 'operator'>]} filterPrimitive -
|
|
30
|
+
* An array of one or two filter primitives (without the 'operator' property)
|
|
31
|
+
* that define the cursor's fields and values.
|
|
32
|
+
* @param {Operator} operator - The comparison operator (GREATER_THAN or LESS_THAN) to apply.
|
|
33
|
+
* @param {OrderDirection} order - The primary order direction for pagination.
|
|
34
|
+
* @throws {Error} If any cursor field is not defined.
|
|
35
|
+
* @throws {Error} If any cursor value is null or undefined.
|
|
36
|
+
* @throws {Error} If two cursor fields are provided and they are identical.
|
|
37
|
+
* @throws {Error} If no filter primitives are provided.
|
|
38
|
+
*/
|
|
8
39
|
constructor(filterPrimitive: readonly [
|
|
9
40
|
Omit<FilterPrimitive<TFields, Operator>, 'operator'>,
|
|
10
41
|
Omit<FilterPrimitive<TFields, Operator>, 'operator'>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/criteria/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/criteria/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D;;;;;;;GAOG;AACH,qBAAa,MAAM,CACjB,OAAO,SAAS,MAAM,EACtB,QAAQ,SAAS,cAAc,CAAC,YAAY,GAAG,cAAc,CAAC,SAAS;IAEvE;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EACZ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,GACtD,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B;;;;;;;;;;;OAWG;gBAED,eAAe,EACX,SAAS;QACP,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;QACpD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;KACrD,GACD,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,EACnE,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,cAAc;CA6BxB"}
|
package/dist/criteria/cursor.js
CHANGED
|
@@ -1,9 +1,40 @@
|
|
|
1
1
|
import { Filter } from './filter/filter.js';
|
|
2
2
|
import { OrderDirection } from './order/order.js';
|
|
3
3
|
import { FilterOperator } from './types/operator.types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Represents the configuration for cursor-based pagination.
|
|
6
|
+
* A cursor defines a point in a sorted dataset from which to fetch
|
|
7
|
+
* the next or previous set of results.
|
|
8
|
+
*
|
|
9
|
+
* @template TFields - A string literal type representing valid field names for cursor filters.
|
|
10
|
+
* @template Operator - The specific comparison operator for the cursor (GREATER_THAN or LESS_THAN).
|
|
11
|
+
*/
|
|
4
12
|
export class Cursor {
|
|
13
|
+
/**
|
|
14
|
+
* An array of one or two {@link Filter} instances that define the cursor's position.
|
|
15
|
+
* - A single filter is used for simple cursor pagination (e.g., based on `created_at`).
|
|
16
|
+
* - Two filters are used for composite cursor pagination (e.g., based on `created_at` and `uuid`).
|
|
17
|
+
* @readonly
|
|
18
|
+
*/
|
|
5
19
|
filters;
|
|
20
|
+
/**
|
|
21
|
+
* The primary {@link OrderDirection} associated with the cursor.
|
|
22
|
+
* This should align with the main sort order of the query being paginated.
|
|
23
|
+
* @readonly
|
|
24
|
+
*/
|
|
6
25
|
order;
|
|
26
|
+
/**
|
|
27
|
+
* Creates an instance of Cursor.
|
|
28
|
+
* @param {readonly [Omit<FilterPrimitive<TFields, Operator>, 'operator'>] | readonly [Omit<FilterPrimitive<TFields, Operator>, 'operator'>, Omit<FilterPrimitive<TFields, Operator>, 'operator'>]} filterPrimitive -
|
|
29
|
+
* An array of one or two filter primitives (without the 'operator' property)
|
|
30
|
+
* that define the cursor's fields and values.
|
|
31
|
+
* @param {Operator} operator - The comparison operator (GREATER_THAN or LESS_THAN) to apply.
|
|
32
|
+
* @param {OrderDirection} order - The primary order direction for pagination.
|
|
33
|
+
* @throws {Error} If any cursor field is not defined.
|
|
34
|
+
* @throws {Error} If any cursor value is null or undefined.
|
|
35
|
+
* @throws {Error} If two cursor fields are provided and they are identical.
|
|
36
|
+
* @throws {Error} If no filter primitives are provided.
|
|
37
|
+
*/
|
|
7
38
|
constructor(filterPrimitive, operator, order) {
|
|
8
39
|
for (const filter of filterPrimitive) {
|
|
9
40
|
if (!filter.field) {
|
|
@@ -21,10 +52,7 @@ export class Cursor {
|
|
|
21
52
|
if (!filterArray[0]) {
|
|
22
53
|
throw new Error('Cursor filters must be defined');
|
|
23
54
|
}
|
|
24
|
-
this.filters =
|
|
25
|
-
if (filterArray[1]) {
|
|
26
|
-
this.filters.push(filterArray[1]);
|
|
27
|
-
}
|
|
55
|
+
this.filters = filterArray;
|
|
28
56
|
this.order = order;
|
|
29
57
|
}
|
|
30
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/criteria/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/criteria/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D;;;;;;;GAOG;AACH,MAAM,OAAO,MAAM;IAIjB;;;;;OAKG;IACM,OAAO,CAEgB;IAChC;;;;OAIG;IACM,KAAK,CAAiB;IAC/B;;;;;;;;;;;OAWG;IACH,YACE,eAKmE,EACnE,QAAkB,EAClB,KAAqB;QAErB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBACxD,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,CAAC,KAAK,kBAAkB,CACzD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IACE,eAAe,CAAC,MAAM,KAAK,CAAC;YAC5B,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,EACtD,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CACrC,CAAC,eAAe,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,eAAe,EAAE,QAAQ,EAAE,CAAC,CAClE,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,WAAkC,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { FilterGroupPrimitive } from './types/filter-primitive.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Utility class for normalizing filter group structures.
|
|
4
|
+
* Normalization helps in simplifying complex filter groups by flattening
|
|
5
|
+
* redundant nested groups and removing empty ones, leading to a more
|
|
6
|
+
* canonical and easier-to-process filter structure.
|
|
7
|
+
*/
|
|
2
8
|
export declare class FilterNormalizer {
|
|
3
9
|
static normalizeGroup<T extends string = string>(group: FilterGroupPrimitive<T>): FilterGroupPrimitive<T>;
|
|
4
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-utils.d.ts","sourceRoot":"","sources":["../../../src/criteria/filter/filter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"filter-utils.d.ts","sourceRoot":"","sources":["../../../src/criteria/filter/filter-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,mCAAmC,CAAC;AAE3C;;;;;GAKG;AACH,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAC7C,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC7B,oBAAoB,CAAC,CAAC,CAAC;CAkG3B"}
|
|
@@ -1,20 +1,40 @@
|
|
|
1
1
|
import { FilterOperator, LogicalOperator } from '../types/operator.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Utility class for normalizing filter group structures.
|
|
4
|
+
* Normalization helps in simplifying complex filter groups by flattening
|
|
5
|
+
* redundant nested groups and removing empty ones, leading to a more
|
|
6
|
+
* canonical and easier-to-process filter structure.
|
|
7
|
+
*/
|
|
2
8
|
export class FilterNormalizer {
|
|
3
9
|
static normalizeGroup(group) {
|
|
4
10
|
const normalizeCache = new WeakMap();
|
|
5
|
-
|
|
6
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Normalizes a given filter group primitive.
|
|
13
|
+
* This process involves:
|
|
14
|
+
* - Recursively normalizing child filter groups.
|
|
15
|
+
* - Flattening nested groups if they use the same logical operator as their parent.
|
|
16
|
+
* - Removing empty child groups.
|
|
17
|
+
* - Simplifying groups that end up with a single item (either by lifting the item
|
|
18
|
+
* if it's a group, or by ensuring the single filter is wrapped in a group
|
|
19
|
+
* with the original logical operator).
|
|
20
|
+
*
|
|
21
|
+
* @template T - A string literal type representing valid field names. Defaults to `string`.
|
|
22
|
+
* @param {FilterGroupPrimitive<T>} group - The filter group primitive to normalize.
|
|
23
|
+
* @returns {FilterGroupPrimitive<T>} The normalized filter group primitive.
|
|
24
|
+
*/
|
|
25
|
+
const normalizeInternal = (group) => {
|
|
26
|
+
const cached = normalizeCache.get(group);
|
|
7
27
|
if (cached)
|
|
8
28
|
return cached;
|
|
9
|
-
if (!
|
|
29
|
+
if (!group.items?.length) {
|
|
10
30
|
const result = {
|
|
11
31
|
logicalOperator: LogicalOperator.AND, // Default to AND for empty groups
|
|
12
32
|
items: [],
|
|
13
33
|
};
|
|
14
|
-
normalizeCache.set(
|
|
34
|
+
normalizeCache.set(group, result);
|
|
15
35
|
return result;
|
|
16
36
|
}
|
|
17
|
-
const normalizedItems =
|
|
37
|
+
const normalizedItems = group.items.reduce((acc, item) => {
|
|
18
38
|
if (!('logicalOperator' in item)) {
|
|
19
39
|
acc.push(item);
|
|
20
40
|
return acc;
|
|
@@ -26,7 +46,7 @@ export class FilterNormalizer {
|
|
|
26
46
|
return acc;
|
|
27
47
|
}
|
|
28
48
|
// If child's operator is same as current's, flatten its items
|
|
29
|
-
if (normalizedChild.logicalOperator ===
|
|
49
|
+
if (normalizedChild.logicalOperator === group.logicalOperator) {
|
|
30
50
|
acc.push(...normalizedChild.items);
|
|
31
51
|
}
|
|
32
52
|
else {
|
|
@@ -53,7 +73,7 @@ export class FilterNormalizer {
|
|
|
53
73
|
else {
|
|
54
74
|
// If it's a single filter, wrap it in a group with the current operator
|
|
55
75
|
result = {
|
|
56
|
-
logicalOperator:
|
|
76
|
+
logicalOperator: group.logicalOperator,
|
|
57
77
|
items: [singleItem],
|
|
58
78
|
};
|
|
59
79
|
}
|
|
@@ -61,11 +81,11 @@ export class FilterNormalizer {
|
|
|
61
81
|
else {
|
|
62
82
|
// Multiple items remain, form a group with the current operator
|
|
63
83
|
result = {
|
|
64
|
-
logicalOperator:
|
|
84
|
+
logicalOperator: group.logicalOperator,
|
|
65
85
|
items: normalizedItems,
|
|
66
86
|
};
|
|
67
87
|
}
|
|
68
|
-
normalizeCache.set(
|
|
88
|
+
normalizeCache.set(group, result);
|
|
69
89
|
return result;
|
|
70
90
|
};
|
|
71
91
|
return normalizeInternal(group);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/criteria/filter/filter-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"filter-utils.js","sourceRoot":"","sources":["../../../src/criteria/filter/filter-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7E;;;;;GAKG;AACH,MAAM,OAAO,gBAAgB;IAC3B,MAAM,CAAC,cAAc,CACnB,KAA8B;QAE9B,MAAM,cAAc,GAAG,IAAI,OAAO,EAG/B,CAAC;QACJ;;;;;;;;;;;;;WAaG;QACH,MAAM,iBAAiB,GAAG,CACxB,KAA8B,EACL,EAAE;YAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE1B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG;oBACb,eAAe,EAAE,eAAe,CAAC,GAAG,EAAE,kCAAkC;oBACxE,KAAK,EAAE,EAAE;iBACV,CAAC;gBACF,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAClC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAExC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACd,IAAI,CAAC,CAAC,iBAAiB,IAAI,IAAI,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACf,OAAO,GAAG,CAAC;gBACb,CAAC;gBAED,wDAAwD;gBACxD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAEhD,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvC,0BAA0B;oBAC1B,OAAO,GAAG,CAAC;gBACb,CAAC;gBAED,8DAA8D;gBAC9D,IAAI,eAAe,CAAC,eAAe,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;oBAC9D,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,kDAAkD;oBAClD,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;gBAC5B,CAAC;gBAED,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;YAEP,IAAI,MAA+B,CAAC;YAEpC,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,GAAG;oBACP,mDAAmD;oBACnD,eAAe,EAAE,eAAe,CAAC,GAAG;oBACpC,KAAK,EAAE,EAAE;iBACV,CAAC;YACJ,CAAC;iBAAM,IACL,eAAe,CAAC,MAAM,KAAK,CAAC;gBAC5B,eAAe,CAAC,CAAC,CAAC,KAAK,SAAS,EAChC,CAAC;gBACD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBACtC,mFAAmF;gBACnF,IAAI,iBAAiB,IAAI,UAAU,EAAE,CAAC;oBACpC,MAAM,GAAG,UAAqC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,wEAAwE;oBACxE,MAAM,GAAG;wBACP,eAAe,EAAE,KAAK,CAAC,eAAe;wBACtC,KAAK,EAAE,CAAC,UAAU,CAAC;qBACpB,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,gEAAgE;gBAChE,MAAM,GAAG;oBACP,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,KAAK,EAAE,eAAe;iBACvB,CAAC;YACJ,CAAC;YAED,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;QAEF,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"}
|
|
@@ -13,7 +13,10 @@ export declare class Filter<T extends string, Operator extends FilterOperator> i
|
|
|
13
13
|
private isString;
|
|
14
14
|
private isNumber;
|
|
15
15
|
private isBoolean;
|
|
16
|
+
private isValidSingleKeyObjectWithValue;
|
|
17
|
+
private validatePrimitiveValueForOperator;
|
|
16
18
|
private isArrayOfPrimitives;
|
|
19
|
+
private isTupleOfTwoPrimitives;
|
|
17
20
|
private isObject;
|
|
18
21
|
private isNull;
|
|
19
22
|
private isUndefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/criteria/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAEZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,qBAAa,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,SAAS,cAAc,CACnE,YAAW,iBAAiB;IAEhB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../src/criteria/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAEZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E,qBAAa,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,SAAS,cAAc,CACnE,YAAW,iBAAiB;IAEhB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC;IAIpE,IAAI,KAAK,IAAI,CAAC,CAEb;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,KAAK,IAAI,WAAW,CAAC,QAAQ,CAAC,CAEjC;IAED,MAAM,CACJ,kBAAkB,EAClB,iBAAiB,GAAG,kBAAkB,EACtC,oBAAoB,SAAS,GAAG,GAAG,GAAG,EAEtC,OAAO,EAAE,gBAAgB,CACvB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,CACrB,EACD,YAAY,EAAE,MAAM,GACnB,oBAAoB;IAIvB,WAAW,IAAI,eAAe,CAAC,CAAC,EAAE,QAAQ,CAAC;IAG3C,OAAO,CAAC,QAAQ;IAGhB,OAAO,CAAC,QAAQ;IAGhB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,+BAA+B;IAWvC,OAAO,CAAC,iCAAiC;IAqGzC,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,QAAQ;CAQjB"}
|
|
@@ -3,7 +3,39 @@ export class Filter {
|
|
|
3
3
|
primitive;
|
|
4
4
|
constructor(primitive) {
|
|
5
5
|
this.primitive = primitive;
|
|
6
|
-
|
|
6
|
+
this.validatePrimitiveValueForOperator(primitive.operator);
|
|
7
|
+
}
|
|
8
|
+
get field() {
|
|
9
|
+
return this.primitive.field;
|
|
10
|
+
}
|
|
11
|
+
get operator() {
|
|
12
|
+
return this.primitive.operator;
|
|
13
|
+
}
|
|
14
|
+
get value() {
|
|
15
|
+
return this.primitive.value;
|
|
16
|
+
}
|
|
17
|
+
accept(visitor, currentAlias) {
|
|
18
|
+
return visitor.visitFilter(this, currentAlias);
|
|
19
|
+
}
|
|
20
|
+
toPrimitive() {
|
|
21
|
+
return this.primitive;
|
|
22
|
+
}
|
|
23
|
+
isString(value) {
|
|
24
|
+
return typeof value === 'string';
|
|
25
|
+
}
|
|
26
|
+
isNumber(value) {
|
|
27
|
+
return typeof value === 'number';
|
|
28
|
+
}
|
|
29
|
+
isBoolean(value) {
|
|
30
|
+
return typeof value === 'boolean';
|
|
31
|
+
}
|
|
32
|
+
isValidSingleKeyObjectWithValue(objectValue, valueValidator) {
|
|
33
|
+
return (this.isObject(objectValue) &&
|
|
34
|
+
Object.keys(objectValue).length === 1 &&
|
|
35
|
+
valueValidator(Object.values(objectValue)[0]));
|
|
36
|
+
}
|
|
37
|
+
validatePrimitiveValueForOperator(operator) {
|
|
38
|
+
switch (operator) {
|
|
7
39
|
case FilterOperator.LIKE:
|
|
8
40
|
case FilterOperator.NOT_LIKE:
|
|
9
41
|
case FilterOperator.CONTAINS:
|
|
@@ -12,8 +44,11 @@ export class Filter {
|
|
|
12
44
|
case FilterOperator.ENDS_WITH:
|
|
13
45
|
case FilterOperator.SET_CONTAINS:
|
|
14
46
|
case FilterOperator.SET_NOT_CONTAINS:
|
|
47
|
+
case FilterOperator.MATCHES_REGEX:
|
|
48
|
+
case FilterOperator.ILIKE:
|
|
49
|
+
case FilterOperator.NOT_ILIKE:
|
|
15
50
|
if (!this.isString(this.value)) {
|
|
16
|
-
throw new Error(
|
|
51
|
+
throw new Error(`Filter value for operator ${operator} must be a string type`);
|
|
17
52
|
}
|
|
18
53
|
break;
|
|
19
54
|
case FilterOperator.EQUALS:
|
|
@@ -23,13 +58,11 @@ export class Filter {
|
|
|
23
58
|
case FilterOperator.LESS_THAN:
|
|
24
59
|
case FilterOperator.LESS_THAN_OR_EQUALS:
|
|
25
60
|
if (!this.isPrimitiveFilterValue(this.value))
|
|
26
|
-
throw new Error(
|
|
61
|
+
throw new Error(`Filter value for operator ${operator} must be a string | number | boolean | Date | null type`);
|
|
27
62
|
break;
|
|
28
63
|
case FilterOperator.ARRAY_CONTAINS_ELEMENT:
|
|
29
64
|
if (!this.isPrimitiveFilterValue(this.value) &&
|
|
30
|
-
!
|
|
31
|
-
Object.keys(this.value).length === 1 &&
|
|
32
|
-
this.isPrimitiveFilterValue(Object.values(this.value)[0]))) {
|
|
65
|
+
!this.isValidSingleKeyObjectWithValue(this.value, (val) => this.isPrimitiveFilterValue(val))) {
|
|
33
66
|
throw new Error('For ARRAY_CONTAINS_ELEMENT, value must be a PrimitiveFilterValue or an object like { "path.to.array": elementValue }');
|
|
34
67
|
}
|
|
35
68
|
break;
|
|
@@ -37,21 +70,27 @@ export class Filter {
|
|
|
37
70
|
case FilterOperator.ARRAY_CONTAINS_ANY_ELEMENT:
|
|
38
71
|
case FilterOperator.ARRAY_EQUALS:
|
|
39
72
|
if (!this.isArrayOfPrimitives(this.value) &&
|
|
40
|
-
!
|
|
41
|
-
Object.keys(this.value).length === 1 &&
|
|
42
|
-
this.isArrayOfPrimitives(Object.values(this.value)[0]))) {
|
|
73
|
+
!this.isValidSingleKeyObjectWithValue(this.value, (val) => this.isArrayOfPrimitives(val))) {
|
|
43
74
|
throw new Error('For ARRAY_CONTAINS_ALL/ANY/EQUALS, value must be an Array<Primitive> or an object like { "path.to.array": [elements] }');
|
|
44
75
|
}
|
|
45
76
|
break;
|
|
46
77
|
case FilterOperator.IN:
|
|
47
78
|
case FilterOperator.NOT_IN:
|
|
79
|
+
case FilterOperator.SET_CONTAINS_ANY:
|
|
80
|
+
case FilterOperator.SET_CONTAINS_ALL:
|
|
48
81
|
if (!this.isArrayOfPrimitives(this.value))
|
|
49
|
-
throw new Error(
|
|
82
|
+
throw new Error(`Filter value for operator ${operator} must be an array of string, number, boolean, Date`);
|
|
83
|
+
break;
|
|
84
|
+
case FilterOperator.BETWEEN:
|
|
85
|
+
case FilterOperator.NOT_BETWEEN:
|
|
86
|
+
if (!this.isTupleOfTwoPrimitives(this.value)) {
|
|
87
|
+
throw new Error(`Filter value for operator ${operator} must be a tuple of two primitive values: [min, max]`);
|
|
88
|
+
}
|
|
50
89
|
break;
|
|
51
90
|
case FilterOperator.IS_NULL:
|
|
52
91
|
case FilterOperator.IS_NOT_NULL:
|
|
53
92
|
if (!this.isNull(this.value) && !this.isUndefined(this.value))
|
|
54
|
-
throw new Error(
|
|
93
|
+
throw new Error(`Filter value for operator ${operator} must be null or undefined`);
|
|
55
94
|
break;
|
|
56
95
|
case FilterOperator.JSON_CONTAINS:
|
|
57
96
|
case FilterOperator.JSON_NOT_CONTAINS:
|
|
@@ -62,32 +101,10 @@ export class Filter {
|
|
|
62
101
|
throw new Error('Filter value must be an object where each value is a string, number, boolean, Date, null, an Array, or a Record<string,any>');
|
|
63
102
|
}
|
|
64
103
|
break;
|
|
104
|
+
default:
|
|
105
|
+
throw new Error(`Unhandled filter operator: ${operator}`);
|
|
65
106
|
}
|
|
66
107
|
}
|
|
67
|
-
get field() {
|
|
68
|
-
return this.primitive.field;
|
|
69
|
-
}
|
|
70
|
-
get operator() {
|
|
71
|
-
return this.primitive.operator;
|
|
72
|
-
}
|
|
73
|
-
get value() {
|
|
74
|
-
return this.primitive.value;
|
|
75
|
-
}
|
|
76
|
-
accept(visitor, currentAlias) {
|
|
77
|
-
return visitor.visitFilter(this, currentAlias);
|
|
78
|
-
}
|
|
79
|
-
toPrimitive() {
|
|
80
|
-
return this.primitive;
|
|
81
|
-
}
|
|
82
|
-
isString(value) {
|
|
83
|
-
return typeof value === 'string';
|
|
84
|
-
}
|
|
85
|
-
isNumber(value) {
|
|
86
|
-
return typeof value === 'number';
|
|
87
|
-
}
|
|
88
|
-
isBoolean(value) {
|
|
89
|
-
return typeof value === 'boolean';
|
|
90
|
-
}
|
|
91
108
|
isArrayOfPrimitives(value) {
|
|
92
109
|
return (Array.isArray(value) &&
|
|
93
110
|
value.every((item) => {
|
|
@@ -97,6 +114,16 @@ export class Filter {
|
|
|
97
114
|
this.isBoolean(item));
|
|
98
115
|
}));
|
|
99
116
|
}
|
|
117
|
+
isTupleOfTwoPrimitives(value) {
|
|
118
|
+
return (Array.isArray(value) &&
|
|
119
|
+
value.length === 2 &&
|
|
120
|
+
this.isPrimitiveFilterValue(value[0]) &&
|
|
121
|
+
!this.isNull(value[0]) &&
|
|
122
|
+
!this.isUndefined(value[0]) &&
|
|
123
|
+
this.isPrimitiveFilterValue(value[1]) &&
|
|
124
|
+
!this.isNull(value[1]) &&
|
|
125
|
+
!this.isUndefined(value[1]));
|
|
126
|
+
}
|
|
100
127
|
isObject(value) {
|
|
101
128
|
return (typeof value === 'object' &&
|
|
102
129
|
!Array.isArray(value) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/criteria/filter/filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAS5D,MAAM,OAAO,MAAM;IAGY;IAA7B,YAA6B,SAAuC;QAAvC,cAAS,GAAT,SAAS,CAA8B;QAClE,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.js","sourceRoot":"","sources":["../../../src/criteria/filter/filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,25 +9,22 @@ export type PrimitiveFilterValue = string | number | boolean | Date | null;
|
|
|
9
9
|
* Represents the value associated with a filter, strongly typed based on the {@link FilterOperator}.
|
|
10
10
|
* @template Operator - The specific filter operator.
|
|
11
11
|
*/
|
|
12
|
-
export type FilterValue<Operator extends FilterOperator> = Operator extends FilterOperator.LIKE | FilterOperator.NOT_LIKE | FilterOperator.CONTAINS | FilterOperator.NOT_CONTAINS | FilterOperator.STARTS_WITH | FilterOperator.ENDS_WITH | FilterOperator.SET_CONTAINS | FilterOperator.SET_NOT_CONTAINS ? string : Operator extends FilterOperator.EQUALS | FilterOperator.NOT_EQUALS | FilterOperator.GREATER_THAN | FilterOperator.GREATER_THAN_OR_EQUALS | FilterOperator.LESS_THAN | FilterOperator.LESS_THAN_OR_EQUALS ? PrimitiveFilterValue : Operator extends FilterOperator.IN | FilterOperator.NOT_IN ? Array<Exclude<PrimitiveFilterValue, null | undefined>> : Operator extends FilterOperator.
|
|
12
|
+
export type FilterValue<Operator extends FilterOperator> = Operator extends FilterOperator.LIKE | FilterOperator.NOT_LIKE | FilterOperator.CONTAINS | FilterOperator.NOT_CONTAINS | FilterOperator.STARTS_WITH | FilterOperator.ENDS_WITH | FilterOperator.SET_CONTAINS | FilterOperator.SET_NOT_CONTAINS | FilterOperator.MATCHES_REGEX | FilterOperator.ILIKE | FilterOperator.NOT_ILIKE ? string : Operator extends FilterOperator.EQUALS | FilterOperator.NOT_EQUALS | FilterOperator.GREATER_THAN | FilterOperator.GREATER_THAN_OR_EQUALS | FilterOperator.LESS_THAN | FilterOperator.LESS_THAN_OR_EQUALS ? PrimitiveFilterValue : Operator extends FilterOperator.IN | FilterOperator.NOT_IN | FilterOperator.SET_CONTAINS_ANY | FilterOperator.SET_CONTAINS_ALL ? Array<Exclude<PrimitiveFilterValue, null | undefined>> : Operator extends FilterOperator.BETWEEN | FilterOperator.NOT_BETWEEN ? [
|
|
13
|
+
Exclude<PrimitiveFilterValue, null | undefined>,
|
|
14
|
+
Exclude<PrimitiveFilterValue, null | undefined>
|
|
15
|
+
] : Operator extends FilterOperator.ARRAY_CONTAINS_ELEMENT ? /**
|
|
13
16
|
* Expected value:
|
|
14
17
|
* 1. A primitive value for direct array column comparison.
|
|
15
18
|
* 2. An object `{ [jsonPath: string]: PrimitiveFilterValue }` for checking an element
|
|
16
19
|
* within an array at a specific path inside a JSON column.
|
|
17
|
-
* Example: `{ "tags": "admin" }` or `{ "$.tags": "admin" }`
|
|
18
|
-
* Only one path-element pair is expected.
|
|
19
20
|
*/ PrimitiveFilterValue | {
|
|
20
21
|
[key: string]: PrimitiveFilterValue;
|
|
21
22
|
} : Operator extends FilterOperator.ARRAY_CONTAINS_ALL_ELEMENTS | FilterOperator.ARRAY_CONTAINS_ANY_ELEMENT | FilterOperator.ARRAY_EQUALS ? Array<Exclude<PrimitiveFilterValue, null | undefined>> | {
|
|
22
23
|
[key: string]: Array<Exclude<PrimitiveFilterValue, null | undefined>>;
|
|
23
|
-
} : Operator extends FilterOperator.IS_NULL | FilterOperator.IS_NOT_NULL ? /** Expected value: `null` or `undefined`. The actual value is often ignored by the translator
|
|
24
|
-
[key: string]:
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* This should ideally not be reached if all operators are covered.
|
|
28
|
-
* A runtime error for unsupported operators should be handled by the translator.
|
|
29
|
-
*/
|
|
30
|
-
never;
|
|
24
|
+
} : Operator extends FilterOperator.IS_NULL | FilterOperator.IS_NOT_NULL ? /** Expected value: `null` or `undefined`. The actual value is often ignored by the translator. */ null | undefined : Operator extends FilterOperator.JSON_CONTAINS | FilterOperator.JSON_NOT_CONTAINS ? {
|
|
25
|
+
[key: string]: // JSON path
|
|
26
|
+
PrimitiveFilterValue | Array<any> | Record<string, any>;
|
|
27
|
+
} : never;
|
|
31
28
|
/**
|
|
32
29
|
* Defines the structure for a single filter condition.
|
|
33
30
|
* It specifies the field to filter on, the operator to use, and the value to compare against.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-primitive.types.d.ts","sourceRoot":"","sources":["../../../../src/criteria/filter/types/filter-primitive.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACd,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,cAAc,IAErD,QAAQ,SACJ,cAAc,CAAC,IAAI,GACnB,cAAc,CAAC,QAAQ,GACvB,cAAc,CAAC,QAAQ,GACvB,cAAc,CAAC,YAAY,GAC3B,cAAc,CAAC,WAAW,GAC1B,cAAc,CAAC,SAAS,GACxB,cAAc,CAAC,YAAY,GAC3B,cAAc,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"filter-primitive.types.d.ts","sourceRoot":"","sources":["../../../../src/criteria/filter/types/filter-primitive.types.ts"],"names":[],"mappings":"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"}
|
package/dist/criteria/index.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ export type { CriteriaSchema, FieldOfSchema, SelectedAliasOf, JoinRelationType,
|
|
|
13
13
|
export type { Cursor } from './cursor.js';
|
|
14
14
|
export type { FilterPrimitive, FilterGroupPrimitive, FilterValue, PrimitiveFilterValue, } from './filter/types/filter-primitive.types.js';
|
|
15
15
|
export type { IFilterExpression } from './types/filter-expression.interface.js';
|
|
16
|
-
export
|
|
17
|
-
export
|
|
16
|
+
export { Filter } from './filter/filter.js';
|
|
17
|
+
export { FilterGroup } from './filter/filter-group.js';
|
|
18
18
|
export type { OrderByPrimitive } from './order/order.js';
|
|
19
19
|
export type { Order } from './order/order.js';
|
|
20
20
|
export type { PivotJoinInput, SimpleJoinInput, } from './types/join-input.types.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/criteria/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/criteria/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAG3E,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EACV,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,WAAW,EACX,oBAAoB,GACrB,MAAM,0CAA0C,CAAC;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,YAAY,EACV,cAAc,EACd,eAAe,GAChB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC"}
|
package/dist/criteria/index.js
CHANGED
|
@@ -10,4 +10,6 @@ export { OrderDirection } from './order/order.js';
|
|
|
10
10
|
export { FilterOperator, LogicalOperator } from './types/operator.types.js';
|
|
11
11
|
// --- Schema Definition Types & Helpers ---
|
|
12
12
|
export { GetTypedCriteriaSchema } from './types/schema.types.js';
|
|
13
|
+
export { Filter } from './filter/filter.js';
|
|
14
|
+
export { FilterGroup } from './filter/filter-group.js';
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/criteria/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAMzE,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5E,4CAA4C;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/criteria/index.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAMzE,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5E,4CAA4C;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAiBjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,20 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the possible directions for ordering query results.
|
|
3
|
+
*/
|
|
1
4
|
export declare const OrderDirection: {
|
|
5
|
+
/** Sorts results in ascending order. */
|
|
2
6
|
readonly ASC: "ASC";
|
|
7
|
+
/** Sorts results in descending order. */
|
|
3
8
|
readonly DESC: "DESC";
|
|
4
9
|
};
|
|
10
|
+
/**
|
|
11
|
+
* Represents the direction of an order clause, either 'ASC' or 'DESC'.
|
|
12
|
+
*/
|
|
5
13
|
export type OrderDirection = keyof typeof OrderDirection;
|
|
14
|
+
/**
|
|
15
|
+
* Represents the primitive structure of an order by clause,
|
|
16
|
+
* specifying the field and direction.
|
|
17
|
+
* @template T - A string literal type representing valid field names for ordering. Defaults to `string`.
|
|
18
|
+
*/
|
|
6
19
|
export type OrderByPrimitive<T extends string = string> = {
|
|
20
|
+
/** The direction of the sort (ASC or DESC). */
|
|
7
21
|
direction: OrderDirection;
|
|
22
|
+
/** The name of the field to order by. */
|
|
8
23
|
field: T;
|
|
9
24
|
};
|
|
25
|
+
/**
|
|
26
|
+
* Represents a single ordering rule for a query.
|
|
27
|
+
* It includes the field to order by, the direction (ASC/DESC),
|
|
28
|
+
* and an internal sequence ID to maintain stable sorting when multiple
|
|
29
|
+
* order rules are applied.
|
|
30
|
+
* @template T - A string literal type representing valid field names for ordering. Defaults to `string`.
|
|
31
|
+
*/
|
|
10
32
|
export declare class Order<T extends string = string> {
|
|
11
33
|
protected readonly _direction: OrderDirection;
|
|
12
34
|
protected readonly _field: T;
|
|
35
|
+
/**
|
|
36
|
+
* A unique, globally incrementing ID to ensure stable sorting order
|
|
37
|
+
* when multiple Order instances are created.
|
|
38
|
+
* @protected
|
|
39
|
+
*/
|
|
13
40
|
protected _sequenceId: number;
|
|
41
|
+
/**
|
|
42
|
+
* Creates an instance of Order.
|
|
43
|
+
* @param {OrderDirection} _direction - The direction of the sort (ASC or DESC).
|
|
44
|
+
* @param {T} _field - The name of the field to order by.
|
|
45
|
+
*/
|
|
14
46
|
constructor(_direction: OrderDirection, _field: T);
|
|
47
|
+
/**
|
|
48
|
+
* Gets the unique sequence ID of this order rule.
|
|
49
|
+
* Used to maintain a stable sort order when multiple orders are applied.
|
|
50
|
+
* @returns {number} The sequence ID.
|
|
51
|
+
*/
|
|
15
52
|
get sequenceId(): number;
|
|
53
|
+
/**
|
|
54
|
+
* Gets the name of the field to order by.
|
|
55
|
+
* @returns {T} The field name.
|
|
56
|
+
*/
|
|
16
57
|
get field(): T;
|
|
58
|
+
/**
|
|
59
|
+
* Gets the direction of the sort.
|
|
60
|
+
* @returns {OrderDirection} The order direction (ASC or DESC).
|
|
61
|
+
*/
|
|
17
62
|
get direction(): OrderDirection;
|
|
63
|
+
/**
|
|
64
|
+
* Converts the Order instance to its primitive representation.
|
|
65
|
+
* @returns {OrderByPrimitive<T>} The primitive object representing this order rule.
|
|
66
|
+
*/
|
|
18
67
|
toPrimitive(): OrderByPrimitive<T>;
|
|
19
68
|
}
|
|
20
69
|
//# sourceMappingURL=order.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/criteria/order/order.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../../../src/criteria/order/order.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,wCAAwC;;IAExC,yCAAyC;;CAEjC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,cAAc,CAAC;AAIzD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACxD,+CAA+C;IAC/C,SAAS,EAAE,cAAc,CAAC;IAC1B,yCAAyC;IACzC,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAcxC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAd9B;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;gBAEkB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,CAAC;IAM9B;;;;OAIG;IACH,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,CAAC,CAEb;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,cAAc,CAE9B;IAED;;;OAGG;IACH,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC;CAMnC"}
|
|
@@ -1,27 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the possible directions for ordering query results.
|
|
3
|
+
*/
|
|
1
4
|
export const OrderDirection = {
|
|
5
|
+
/** Sorts results in ascending order. */
|
|
2
6
|
ASC: 'ASC',
|
|
7
|
+
/** Sorts results in descending order. */
|
|
3
8
|
DESC: 'DESC',
|
|
4
9
|
};
|
|
5
10
|
let globalOrderSequence = 0;
|
|
11
|
+
/**
|
|
12
|
+
* Represents a single ordering rule for a query.
|
|
13
|
+
* It includes the field to order by, the direction (ASC/DESC),
|
|
14
|
+
* and an internal sequence ID to maintain stable sorting when multiple
|
|
15
|
+
* order rules are applied.
|
|
16
|
+
* @template T - A string literal type representing valid field names for ordering. Defaults to `string`.
|
|
17
|
+
*/
|
|
6
18
|
export class Order {
|
|
7
19
|
_direction;
|
|
8
20
|
_field;
|
|
21
|
+
/**
|
|
22
|
+
* A unique, globally incrementing ID to ensure stable sorting order
|
|
23
|
+
* when multiple Order instances are created.
|
|
24
|
+
* @protected
|
|
25
|
+
*/
|
|
9
26
|
_sequenceId;
|
|
27
|
+
/**
|
|
28
|
+
* Creates an instance of Order.
|
|
29
|
+
* @param {OrderDirection} _direction - The direction of the sort (ASC or DESC).
|
|
30
|
+
* @param {T} _field - The name of the field to order by.
|
|
31
|
+
*/
|
|
10
32
|
constructor(_direction, _field) {
|
|
11
33
|
this._direction = _direction;
|
|
12
34
|
this._field = _field;
|
|
13
35
|
globalOrderSequence++;
|
|
14
36
|
this._sequenceId = globalOrderSequence;
|
|
15
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Gets the unique sequence ID of this order rule.
|
|
40
|
+
* Used to maintain a stable sort order when multiple orders are applied.
|
|
41
|
+
* @returns {number} The sequence ID.
|
|
42
|
+
*/
|
|
16
43
|
get sequenceId() {
|
|
17
44
|
return this._sequenceId;
|
|
18
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Gets the name of the field to order by.
|
|
48
|
+
* @returns {T} The field name.
|
|
49
|
+
*/
|
|
19
50
|
get field() {
|
|
20
51
|
return this._field;
|
|
21
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Gets the direction of the sort.
|
|
55
|
+
* @returns {OrderDirection} The order direction (ASC or DESC).
|
|
56
|
+
*/
|
|
22
57
|
get direction() {
|
|
23
58
|
return this._direction;
|
|
24
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Converts the Order instance to its primitive representation.
|
|
62
|
+
* @returns {OrderByPrimitive<T>} The primitive object representing this order rule.
|
|
63
|
+
*/
|
|
25
64
|
toPrimitive() {
|
|
26
65
|
return {
|
|
27
66
|
direction: this._direction,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/criteria/order/order.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;CACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"order.js","sourceRoot":"","sources":["../../../src/criteria/order/order.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,wCAAwC;IACxC,GAAG,EAAE,KAAK;IACV,yCAAyC;IACzC,IAAI,EAAE,MAAM;CACJ,CAAC;AAOX,IAAI,mBAAmB,GAAW,CAAC,CAAC;AAcpC;;;;;;GAMG;AACH,MAAM,OAAO,KAAK;IAcK;IACA;IAdrB;;;;OAIG;IACO,WAAW,CAAS;IAE9B;;;;OAIG;IACH,YACqB,UAA0B,EAC1B,MAAS;QADT,eAAU,GAAV,UAAU,CAAgB;QAC1B,WAAM,GAAN,MAAM,CAAG;QAE5B,mBAAmB,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,KAAK,EAAE,IAAI,CAAC,MAAM;SACnB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -25,8 +25,8 @@ export interface ICriteriaBase<TSchema extends CriteriaSchema, CurrentAlias exte
|
|
|
25
25
|
* the next or previous set of results. It typically uses a combination of
|
|
26
26
|
* unique and ordered fields.
|
|
27
27
|
*
|
|
28
|
-
* @param {Array<Omit<FilterPrimitive<FieldOfSchema<TSchema>>, 'operator'>>}
|
|
29
|
-
* An array of exactly two filter primitives (without the operator)
|
|
28
|
+
* @param {Array<Omit<FilterPrimitive<FieldOfSchema<TSchema>>, 'operator'>>} filterPrimitives -
|
|
29
|
+
* An array of exactly one or two filter primitives (without the operator)
|
|
30
30
|
* defining the fields and their values for the cursor.
|
|
31
31
|
* Example: `[{ field: 'created_at', value: '2023-10-26T10:00:00Z' }, { field: 'uuid', value: 'some-uuid' }]`
|
|
32
32
|
* @param {FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN} operator -
|
|
@@ -36,12 +36,14 @@ export interface ICriteriaBase<TSchema extends CriteriaSchema, CurrentAlias exte
|
|
|
36
36
|
* If operator is GREATER_THAN, order should typically be ASC.
|
|
37
37
|
* If operator is LESS_THAN, order should typically be DESC.
|
|
38
38
|
* @returns {ICriteriaBase<TSchema, CurrentAlias>} The current criteria instance for chaining.
|
|
39
|
-
* @throws {Error} If filterPrimitive does not contain exactly 2 elements.
|
|
39
|
+
* @throws {Error} If filterPrimitive does not contain exactly 1 or 2 elements.
|
|
40
40
|
* @throws {Error} If any cursor field is not defined in the schema.
|
|
41
41
|
* @throws {Error} If any cursor value is null or undefined.
|
|
42
42
|
* @throws {Error} If the two cursor fields are identical.
|
|
43
43
|
*/
|
|
44
|
-
setCursor<Operator extends FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN>(
|
|
44
|
+
setCursor<Operator extends FilterOperator.GREATER_THAN | FilterOperator.LESS_THAN>(filterPrimitives: readonly [
|
|
45
|
+
Omit<FilterPrimitive<FieldOfSchema<TSchema>, Operator>, 'operator'>
|
|
46
|
+
] | readonly [
|
|
45
47
|
Omit<FilterPrimitive<FieldOfSchema<TSchema>, Operator>, 'operator'>,
|
|
46
48
|
Omit<FilterPrimitive<FieldOfSchema<TSchema>, Operator>, 'operator'>
|
|
47
49
|
], operator: Operator, order: OrderDirection): ICriteriaBase<TSchema, CurrentAlias>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"criteria.interface.d.ts","sourceRoot":"","sources":["../../../src/criteria/types/criteria.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,cAAc,EAC9B,YAAY,SAAS,eAAe,CAAC,OAAO,CAAC;IAE7C;;;;;OAKG;IACH,WAAW,IAAI,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAEpD,IAAI,SAAS,IAAI,OAAO,CAAC;IACzB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CACP,QAAQ,SAAS,cAAc,CAAC,YAAY,GAAG,cAAc,CAAC,SAAS,EAEvE,eAAe,EAAE;
|
|
1
|
+
{"version":3,"file":"criteria.interface.d.ts","sourceRoot":"","sources":["../../../src/criteria/types/criteria.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import type { FilterGroupPrimitive, FilterPrimitive } from '../filter/types/filter-primitive.types.js';
|
|
2
2
|
import type { CriteriaSchema, FieldOfSchema } from './schema.types.js';
|
|
3
3
|
import type { FilterOperator } from './operator.types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Represents an expression that can be part of a filter query,
|
|
6
|
+
* such as an individual filter ({@link Filter}) or a group of filters ({@link FilterGroup}).
|
|
7
|
+
* This interface ensures that any filter expression can be converted
|
|
8
|
+
* to its primitive, serializable representation.
|
|
9
|
+
*/
|
|
4
10
|
export interface IFilterExpression {
|
|
11
|
+
/**
|
|
12
|
+
* Converts the filter expression instance to its primitive, serializable representation.
|
|
13
|
+
* This is useful for debugging, logging, or potentially storing criteria definitions.
|
|
14
|
+
* @returns {FilterPrimitive<FieldOfSchema<CriteriaSchema>, FilterOperator> | FilterGroupPrimitive}
|
|
15
|
+
* The primitive object representing this filter expression.
|
|
16
|
+
*/
|
|
5
17
|
toPrimitive(): FilterPrimitive<FieldOfSchema<CriteriaSchema>, FilterOperator> | FilterGroupPrimitive;
|
|
6
18
|
}
|
|
7
19
|
//# sourceMappingURL=filter-expression.interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-expression.interface.d.ts","sourceRoot":"","sources":["../../../src/criteria/types/filter-expression.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,WAAW,IACP,eAAe,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,GAC9D,oBAAoB,CAAC;CAC1B"}
|
|
1
|
+
{"version":3,"file":"filter-expression.interface.d.ts","sourceRoot":"","sources":["../../../src/criteria/types/filter-expression.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAChB,MAAM,2CAA2C,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,WAAW,IACP,eAAe,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,GAC9D,oBAAoB,CAAC;CAC1B"}
|
|
@@ -35,18 +35,55 @@ export declare enum FilterOperator {
|
|
|
35
35
|
/** Checks if a string value does not contain a specific substring. */
|
|
36
36
|
NOT_CONTAINS = "NOT_CONTAINS",
|
|
37
37
|
/**
|
|
38
|
-
* Checks if a field, representing a collection of
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* a text field with delimited values, or a JSON array).
|
|
38
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
39
|
+
* or a text field with comma-delimited values), contains a specific value.
|
|
40
|
+
* Expects a single value.
|
|
42
41
|
*/
|
|
43
42
|
SET_CONTAINS = "SET_CONTAINS",
|
|
44
43
|
/**
|
|
45
|
-
* Checks if a field, representing a collection of
|
|
46
|
-
*
|
|
47
|
-
*
|
|
44
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
45
|
+
* or a text field with comma-delimited values), does NOT contain a specific value.
|
|
46
|
+
* Expects a single value.
|
|
48
47
|
*/
|
|
49
48
|
SET_NOT_CONTAINS = "SET_NOT_CONTAINS",
|
|
49
|
+
/**
|
|
50
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
51
|
+
* or a text field with comma-delimited values), contains AT LEAST ONE of the specified values.
|
|
52
|
+
* Expects an array of values.
|
|
53
|
+
*/
|
|
54
|
+
SET_CONTAINS_ANY = "SET_CONTAINS_ANY",
|
|
55
|
+
/**
|
|
56
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
57
|
+
* or a text field with comma-delimited values), contains ALL of the specified values.
|
|
58
|
+
* Expects an array of values.
|
|
59
|
+
*/
|
|
60
|
+
SET_CONTAINS_ALL = "SET_CONTAINS_ALL",
|
|
61
|
+
/**
|
|
62
|
+
* Checks if a value is within a specified range (inclusive).
|
|
63
|
+
* Expects an array or tuple of two values: [min, max].
|
|
64
|
+
*/
|
|
65
|
+
BETWEEN = "BETWEEN",
|
|
66
|
+
/**
|
|
67
|
+
* Checks if a value is outside a specified range (inclusive).
|
|
68
|
+
* Expects an array or tuple of two values: [min, max].
|
|
69
|
+
*/
|
|
70
|
+
NOT_BETWEEN = "NOT_BETWEEN",
|
|
71
|
+
/**
|
|
72
|
+
* Checks if a string value matches a regular expression pattern.
|
|
73
|
+
* The specific regex syntax may depend on the database.
|
|
74
|
+
* Expects a string representing the regular expression.
|
|
75
|
+
*/
|
|
76
|
+
MATCHES_REGEX = "MATCHES_REGEX",
|
|
77
|
+
/**
|
|
78
|
+
* Checks if a string value matches a pattern (case-insensitive).
|
|
79
|
+
* Expects a string for the pattern.
|
|
80
|
+
*/
|
|
81
|
+
ILIKE = "ILIKE",
|
|
82
|
+
/**
|
|
83
|
+
* Checks if a string value does not match a pattern (case-insensitive).
|
|
84
|
+
* Expects a string for the pattern.
|
|
85
|
+
*/
|
|
86
|
+
NOT_ILIKE = "NOT_ILIKE",
|
|
50
87
|
/**
|
|
51
88
|
* Checks if a JSON column contains a specific value or path.
|
|
52
89
|
* The specific implementation depends on the database (e.g., JSON_CONTAINS in MySQL, @> in PostgreSQL for JSONB).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator.types.d.ts","sourceRoot":"","sources":["../../../src/criteria/types/operator.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,cAAc;IACxB,2BAA2B;IAC3B,MAAM,MAAM;IACZ,6BAA6B;IAC7B,UAAU,OAAO;IACjB,iDAAiD;IACjD,YAAY,MAAM;IAClB,6DAA6D;IAC7D,sBAAsB,OAAO;IAC7B,8CAA8C;IAC9C,SAAS,MAAM;IACf,0DAA0D;IAC1D,mBAAmB,OAAO;IAC1B,wFAAwF;IACxF,IAAI,SAAS;IACb,yDAAyD;IACzD,QAAQ,aAAa;IACrB,6DAA6D;IAC7D,EAAE,OAAO;IACT,iEAAiE;IACjE,MAAM,WAAW;IACjB,iCAAiC;IACjC,OAAO,YAAY;IACnB,qCAAqC;IACrC,WAAW,gBAAgB;IAC3B,sGAAsG;IACtG,QAAQ,aAAa;IACrB,iEAAiE;IACjE,WAAW,gBAAgB;IAC3B,+DAA+D;IAC/D,SAAS,cAAc;IACvB,sEAAsE;IACtE,YAAY,iBAAiB;IAC7B
|
|
1
|
+
{"version":3,"file":"operator.types.d.ts","sourceRoot":"","sources":["../../../src/criteria/types/operator.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,cAAc;IACxB,2BAA2B;IAC3B,MAAM,MAAM;IACZ,6BAA6B;IAC7B,UAAU,OAAO;IACjB,iDAAiD;IACjD,YAAY,MAAM;IAClB,6DAA6D;IAC7D,sBAAsB,OAAO;IAC7B,8CAA8C;IAC9C,SAAS,MAAM;IACf,0DAA0D;IAC1D,mBAAmB,OAAO;IAC1B,wFAAwF;IACxF,IAAI,SAAS;IACb,yDAAyD;IACzD,QAAQ,aAAa;IACrB,6DAA6D;IAC7D,EAAE,OAAO;IACT,iEAAiE;IACjE,MAAM,WAAW;IACjB,iCAAiC;IACjC,OAAO,YAAY;IACnB,qCAAqC;IACrC,WAAW,gBAAgB;IAC3B,sGAAsG;IACtG,QAAQ,aAAa;IACrB,iEAAiE;IACjE,WAAW,gBAAgB;IAC3B,+DAA+D;IAC/D,SAAS,cAAc;IACvB,sEAAsE;IACtE,YAAY,iBAAiB;IAC7B;;;;OAIG;IACH,YAAY,iBAAiB;IAC7B;;;;OAIG;IACH,gBAAgB,qBAAqB;IACrC;;;;OAIG;IACH,gBAAgB,qBAAqB;IACrC;;;;OAIG;IACH,gBAAgB,qBAAqB;IACrC;;;OAGG;IACH,OAAO,YAAY;IACnB;;;OAGG;IACH,WAAW,gBAAgB;IAC3B;;;;OAIG;IACH,aAAa,kBAAkB;IAC/B;;;OAGG;IACH,KAAK,UAAU;IACf;;;OAGG;IACH,SAAS,cAAc;IACvB;;;OAGG;IACH,aAAa,kBAAkB;IAC/B;;;OAGG;IACH,iBAAiB,sBAAsB;IACvC;;;;OAIG;IACH,sBAAsB,2BAA2B;IACjD;;;OAGG;IACH,2BAA2B,gCAAgC;IAC3D;;;OAGG;IACH,0BAA0B,+BAA+B;IACzD;;;;OAIG;IACH,YAAY,iBAAiB;CAC9B;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,2EAA2E;IAC3E,GAAG,QAAQ;IACX,kFAAkF;IAClF,EAAE,OAAO;CACV"}
|
|
@@ -36,18 +36,55 @@ export var FilterOperator;
|
|
|
36
36
|
/** Checks if a string value does not contain a specific substring. */
|
|
37
37
|
FilterOperator["NOT_CONTAINS"] = "NOT_CONTAINS";
|
|
38
38
|
/**
|
|
39
|
-
* Checks if a field, representing a collection of
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
* a text field with delimited values, or a JSON array).
|
|
39
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
40
|
+
* or a text field with comma-delimited values), contains a specific value.
|
|
41
|
+
* Expects a single value.
|
|
43
42
|
*/
|
|
44
43
|
FilterOperator["SET_CONTAINS"] = "SET_CONTAINS";
|
|
45
44
|
/**
|
|
46
|
-
* Checks if a field, representing a collection of
|
|
47
|
-
*
|
|
48
|
-
*
|
|
45
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
46
|
+
* or a text field with comma-delimited values), does NOT contain a specific value.
|
|
47
|
+
* Expects a single value.
|
|
49
48
|
*/
|
|
50
49
|
FilterOperator["SET_NOT_CONTAINS"] = "SET_NOT_CONTAINS";
|
|
50
|
+
/**
|
|
51
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
52
|
+
* or a text field with comma-delimited values), contains AT LEAST ONE of the specified values.
|
|
53
|
+
* Expects an array of values.
|
|
54
|
+
*/
|
|
55
|
+
FilterOperator["SET_CONTAINS_ANY"] = "SET_CONTAINS_ANY";
|
|
56
|
+
/**
|
|
57
|
+
* Checks if a field, representing a collection of values (e.g., MySQL SET type
|
|
58
|
+
* or a text field with comma-delimited values), contains ALL of the specified values.
|
|
59
|
+
* Expects an array of values.
|
|
60
|
+
*/
|
|
61
|
+
FilterOperator["SET_CONTAINS_ALL"] = "SET_CONTAINS_ALL";
|
|
62
|
+
/**
|
|
63
|
+
* Checks if a value is within a specified range (inclusive).
|
|
64
|
+
* Expects an array or tuple of two values: [min, max].
|
|
65
|
+
*/
|
|
66
|
+
FilterOperator["BETWEEN"] = "BETWEEN";
|
|
67
|
+
/**
|
|
68
|
+
* Checks if a value is outside a specified range (inclusive).
|
|
69
|
+
* Expects an array or tuple of two values: [min, max].
|
|
70
|
+
*/
|
|
71
|
+
FilterOperator["NOT_BETWEEN"] = "NOT_BETWEEN";
|
|
72
|
+
/**
|
|
73
|
+
* Checks if a string value matches a regular expression pattern.
|
|
74
|
+
* The specific regex syntax may depend on the database.
|
|
75
|
+
* Expects a string representing the regular expression.
|
|
76
|
+
*/
|
|
77
|
+
FilterOperator["MATCHES_REGEX"] = "MATCHES_REGEX";
|
|
78
|
+
/**
|
|
79
|
+
* Checks if a string value matches a pattern (case-insensitive).
|
|
80
|
+
* Expects a string for the pattern.
|
|
81
|
+
*/
|
|
82
|
+
FilterOperator["ILIKE"] = "ILIKE";
|
|
83
|
+
/**
|
|
84
|
+
* Checks if a string value does not match a pattern (case-insensitive).
|
|
85
|
+
* Expects a string for the pattern.
|
|
86
|
+
*/
|
|
87
|
+
FilterOperator["NOT_ILIKE"] = "NOT_ILIKE";
|
|
51
88
|
/**
|
|
52
89
|
* Checks if a JSON column contains a specific value or path.
|
|
53
90
|
* The specific implementation depends on the database (e.g., JSON_CONTAINS in MySQL, @> in PostgreSQL for JSONB).
|
|
@@ -58,7 +95,6 @@ export var FilterOperator;
|
|
|
58
95
|
* The specific implementation depends on the database.
|
|
59
96
|
*/
|
|
60
97
|
FilterOperator["JSON_NOT_CONTAINS"] = "JSON_NOT_CONTAINS";
|
|
61
|
-
// --- Array Operators ---
|
|
62
98
|
/**
|
|
63
99
|
* Checks if a column representing an array contains a specific element.
|
|
64
100
|
* The underlying column could be a native array type (e.g., PostgreSQL)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operator.types.js","sourceRoot":"","sources":["../../../src/criteria/types/operator.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"operator.types.js","sourceRoot":"","sources":["../../../src/criteria/types/operator.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,cAmHX;AAnHD,WAAY,cAAc;IACxB,2BAA2B;IAC3B,8BAAY,CAAA;IACZ,6BAA6B;IAC7B,mCAAiB,CAAA;IACjB,iDAAiD;IACjD,oCAAkB,CAAA;IAClB,6DAA6D;IAC7D,+CAA6B,CAAA;IAC7B,8CAA8C;IAC9C,iCAAe,CAAA;IACf,0DAA0D;IAC1D,4CAA0B,CAAA;IAC1B,wFAAwF;IACxF,+BAAa,CAAA;IACb,yDAAyD;IACzD,uCAAqB,CAAA;IACrB,6DAA6D;IAC7D,2BAAS,CAAA;IACT,iEAAiE;IACjE,mCAAiB,CAAA;IACjB,iCAAiC;IACjC,qCAAmB,CAAA;IACnB,qCAAqC;IACrC,6CAA2B,CAAA;IAC3B,sGAAsG;IACtG,uCAAqB,CAAA;IACrB,iEAAiE;IACjE,6CAA2B,CAAA;IAC3B,+DAA+D;IAC/D,yCAAuB,CAAA;IACvB,sEAAsE;IACtE,+CAA6B,CAAA;IAC7B;;;;OAIG;IACH,+CAA6B,CAAA;IAC7B;;;;OAIG;IACH,uDAAqC,CAAA;IACrC;;;;OAIG;IACH,uDAAqC,CAAA;IACrC;;;;OAIG;IACH,uDAAqC,CAAA;IACrC;;;OAGG;IACH,qCAAmB,CAAA;IACnB;;;OAGG;IACH,6CAA2B,CAAA;IAC3B;;;;OAIG;IACH,iDAA+B,CAAA;IAC/B;;;OAGG;IACH,iCAAe,CAAA;IACf;;;OAGG;IACH,yCAAuB,CAAA;IACvB;;;OAGG;IACH,iDAA+B,CAAA;IAC/B;;;OAGG;IACH,yDAAuC,CAAA;IACvC;;;;OAIG;IACH,mEAAiD,CAAA;IACjD;;;OAGG;IACH,6EAA2D,CAAA;IAC3D;;;OAGG;IACH,2EAAyD,CAAA;IACzD;;;;OAIG;IACH,+CAA6B,CAAA;AAC/B,CAAC,EAnHW,cAAc,KAAd,cAAc,QAmHzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACzB,2EAA2E;IAC3E,8BAAW,CAAA;IACX,kFAAkF;IAClF,4BAAS,CAAA;AACX,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nulledexp/translatable-criteria",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "A TypeScript library for building data-source agnostic, translatable query criteria. Define complex filtering, ordering, and join logic in a structured, type-safe way, then translate it to your specific data source using custom translators.",
|
|
6
6
|
"keywords": [
|