@nulledexp/translatable-criteria 1.2.0 → 3.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.
Files changed (74) hide show
  1. package/README.md +91 -86
  2. package/dist/criteria/criteria-factory.d.ts +6 -5
  3. package/dist/criteria/criteria-factory.d.ts.map +1 -1
  4. package/dist/criteria/criteria-factory.js +8 -8
  5. package/dist/criteria/criteria-factory.js.map +1 -1
  6. package/dist/criteria/criteria-filter-manager.d.ts.map +1 -1
  7. package/dist/criteria/criteria-join-manager.d.ts +2 -2
  8. package/dist/criteria/criteria-join-manager.d.ts.map +1 -1
  9. package/dist/criteria/criteria-join-manager.js.map +1 -1
  10. package/dist/criteria/criteria.d.ts +45 -35
  11. package/dist/criteria/criteria.d.ts.map +1 -1
  12. package/dist/criteria/criteria.js +82 -69
  13. package/dist/criteria/criteria.js.map +1 -1
  14. package/dist/criteria/cursor.d.ts +15 -0
  15. package/dist/criteria/cursor.d.ts.map +1 -1
  16. package/dist/criteria/cursor.js +22 -0
  17. package/dist/criteria/cursor.js.map +1 -1
  18. package/dist/criteria/filter/filter-group.d.ts +7 -1
  19. package/dist/criteria/filter/filter-group.d.ts.map +1 -1
  20. package/dist/criteria/filter/filter-group.js +12 -3
  21. package/dist/criteria/filter/filter-group.js.map +1 -1
  22. package/dist/criteria/filter/filter.d.ts +3 -3
  23. package/dist/criteria/filter/filter.d.ts.map +1 -1
  24. package/dist/criteria/filter/filter.js +37 -14
  25. package/dist/criteria/filter/filter.js.map +1 -1
  26. package/dist/criteria/filter/types/filter-primitive.types.d.ts +21 -11
  27. package/dist/criteria/filter/types/filter-primitive.types.d.ts.map +1 -1
  28. package/dist/criteria/index.d.ts +2 -2
  29. package/dist/criteria/index.d.ts.map +1 -1
  30. package/dist/criteria/index.js.map +1 -1
  31. package/dist/criteria/join/inner.join-criteria.d.ts +10 -17
  32. package/dist/criteria/join/inner.join-criteria.d.ts.map +1 -1
  33. package/dist/criteria/join/inner.join-criteria.js +11 -18
  34. package/dist/criteria/join/inner.join-criteria.js.map +1 -1
  35. package/dist/criteria/join/left.join-criteria.d.ts +4 -4
  36. package/dist/criteria/join/left.join-criteria.d.ts.map +1 -1
  37. package/dist/criteria/join/left.join-criteria.js +5 -5
  38. package/dist/criteria/join/left.join-criteria.js.map +1 -1
  39. package/dist/criteria/join/outer.join-criteria.d.ts +13 -16
  40. package/dist/criteria/join/outer.join-criteria.d.ts.map +1 -1
  41. package/dist/criteria/join/outer.join-criteria.js +14 -17
  42. package/dist/criteria/join/outer.join-criteria.js.map +1 -1
  43. package/dist/criteria/order/order.d.ts +18 -1
  44. package/dist/criteria/order/order.d.ts.map +1 -1
  45. package/dist/criteria/order/order.js +21 -1
  46. package/dist/criteria/order/order.js.map +1 -1
  47. package/dist/criteria/root.criteria.d.ts +6 -16
  48. package/dist/criteria/root.criteria.d.ts.map +1 -1
  49. package/dist/criteria/root.criteria.js +4 -14
  50. package/dist/criteria/root.criteria.js.map +1 -1
  51. package/dist/criteria/translator/criteria-translator.d.ts +23 -32
  52. package/dist/criteria/translator/criteria-translator.d.ts.map +1 -1
  53. package/dist/criteria/translator/criteria-translator.js +5 -24
  54. package/dist/criteria/translator/criteria-translator.js.map +1 -1
  55. package/dist/criteria/types/criteria.interface.d.ts +35 -22
  56. package/dist/criteria/types/criteria.interface.d.ts.map +1 -1
  57. package/dist/criteria/types/criteria.interface.js.map +1 -1
  58. package/dist/criteria/types/join-parameter.types.d.ts +27 -9
  59. package/dist/criteria/types/join-parameter.types.d.ts.map +1 -1
  60. package/dist/criteria/types/join-utility.types.d.ts +26 -32
  61. package/dist/criteria/types/join-utility.types.d.ts.map +1 -1
  62. package/dist/criteria/types/manager.interface.d.ts +3 -3
  63. package/dist/criteria/types/manager.interface.d.ts.map +1 -1
  64. package/dist/criteria/types/operator.types.d.ts +92 -86
  65. package/dist/criteria/types/operator.types.d.ts.map +1 -1
  66. package/dist/criteria/types/operator.types.js +91 -85
  67. package/dist/criteria/types/operator.types.js.map +1 -1
  68. package/dist/criteria/types/schema.types.d.ts +109 -41
  69. package/dist/criteria/types/schema.types.d.ts.map +1 -1
  70. package/dist/criteria/types/schema.types.js +38 -11
  71. package/dist/criteria/types/schema.types.js.map +1 -1
  72. package/dist/criteria/types/visitor-interface.types.d.ts +33 -12
  73. package/dist/criteria/types/visitor-interface.types.d.ts.map +1 -1
  74. package/package.json +11 -11
@@ -5,25 +5,35 @@ import type { CriteriaSchema, FieldOfSchema } from '../../types/schema.types.js'
5
5
  * It can be a string, number, boolean, Date, or null.
6
6
  */
7
7
  export type PrimitiveFilterValue = string | number | boolean | Date | null;
8
+ /**
9
+ * Represents any valid JSON value that can be stored in a JSON column.
10
+ * This type is recursive to allow for nested objects and arrays.
11
+ */
12
+ type JsonValue = PrimitiveFilterValue | {
13
+ [key: string]: JsonValue;
14
+ } | Array<JsonValue>;
8
15
  /**
9
16
  * Represents the value associated with a filter, strongly typed based on the {@link FilterOperator}.
10
17
  * @template Operator - The specific filter operator.
11
18
  */
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 ? [
19
+ 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 | FilterOperator.SET_NOT_CONTAINS_ANY | FilterOperator.SET_NOT_CONTAINS_ALL ? Array<Exclude<PrimitiveFilterValue, null | undefined>> : Operator extends FilterOperator.BETWEEN | FilterOperator.NOT_BETWEEN ? [
13
20
  Exclude<PrimitiveFilterValue, null | undefined>,
14
21
  Exclude<PrimitiveFilterValue, null | undefined>
15
- ] : Operator extends FilterOperator.ARRAY_CONTAINS_ELEMENT ? /**
16
- * Expected value:
17
- * 1. A primitive value for direct array column comparison.
18
- * 2. An object `{ [jsonPath: string]: PrimitiveFilterValue }` for checking an element
19
- * within an array at a specific path inside a JSON column.
20
- */ PrimitiveFilterValue | {
22
+ ] : Operator extends FilterOperator.ARRAY_CONTAINS_ELEMENT | FilterOperator.ARRAY_NOT_CONTAINS_ELEMENT ? /**
23
+ * Expected value:
24
+ * 1. A primitive value for direct array column comparison.
25
+ * 2. An object `{ [jsonPath: string]: PrimitiveFilterValue }` for checking an element
26
+ * within an array at a specific path inside a JSON column.
27
+ */ PrimitiveFilterValue | {
21
28
  [key: string]: PrimitiveFilterValue;
22
- } : Operator extends FilterOperator.ARRAY_CONTAINS_ALL_ELEMENTS | FilterOperator.ARRAY_CONTAINS_ANY_ELEMENT | FilterOperator.ARRAY_EQUALS ? Array<Exclude<PrimitiveFilterValue, null | undefined>> | {
29
+ } : Operator extends FilterOperator.ARRAY_CONTAINS_ALL_ELEMENTS | FilterOperator.ARRAY_CONTAINS_ANY_ELEMENT | FilterOperator.ARRAY_EQUALS | FilterOperator.ARRAY_NOT_EQUALS | FilterOperator.ARRAY_EQUALS_STRICT | FilterOperator.ARRAY_NOT_EQUALS_STRICT | FilterOperator.ARRAY_NOT_CONTAINS_ALL_ELEMENTS | FilterOperator.ARRAY_NOT_CONTAINS_ANY_ELEMENT ? Array<Exclude<PrimitiveFilterValue, null | undefined>> | {
23
30
  [key: string]: Array<Exclude<PrimitiveFilterValue, null | undefined>>;
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>;
31
+ } : 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_PATH_VALUE_EQUALS | FilterOperator.JSON_PATH_VALUE_NOT_EQUALS ? {
32
+ [key: string]: JsonValue;
33
+ } : Operator extends FilterOperator.JSON_CONTAINS | FilterOperator.JSON_NOT_CONTAINS ? {
34
+ [key: string]: JsonValue;
35
+ } : Operator extends FilterOperator.JSON_CONTAINS_ANY | FilterOperator.JSON_CONTAINS_ALL | FilterOperator.JSON_NOT_CONTAINS_ANY | FilterOperator.JSON_NOT_CONTAINS_ALL ? {
36
+ [key: string]: Array<JsonValue>;
27
37
  } : never;
28
38
  /**
29
39
  * Defines the structure for a single filter condition.
@@ -1 +1 @@
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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"}
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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"}
@@ -9,7 +9,7 @@ export type { ICriteriaVisitor } from './types/visitor-interface.types.js';
9
9
  export { OrderDirection } from './order/order.js';
10
10
  export { FilterOperator, LogicalOperator } from './types/operator.types.js';
11
11
  export { GetTypedCriteriaSchema } from './types/schema.types.js';
12
- export type { CriteriaSchema, FieldOfSchema, SelectedAliasOf, JoinRelationType, SchemaJoins, } from './types/schema.types.js';
12
+ export type { CriteriaSchema, FieldOfSchema, JoinRelationType, SchemaJoins, } from './types/schema.types.js';
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';
@@ -19,5 +19,5 @@ 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';
21
21
  export type { PivotJoin, SimpleJoin } from './types/join-parameter.types.js';
22
- export type { StoredJoinDetails, AnyJoinCriteria, JoinCriteriaParameterType, JoinParameterType, SpecificMatchingJoinConfig, } from './types/join-utility.types.js';
22
+ export type { StoredJoinDetails, AnyJoinCriteria, JoinCriteriaType, SpecificMatchingJoinConfig, } from './types/join-utility.types.js';
23
23
  //# sourceMappingURL=index.d.ts.map
@@ -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,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"}
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,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,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,+BAA+B,CAAC"}
@@ -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;AAiBjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,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;AAgBjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,32 +1,25 @@
1
- import type { CriteriaSchema, JoinRelationType, SelectedAliasOf } from '../types/schema.types.js';
1
+ import type { CriteriaSchema } from '../types/schema.types.js';
2
2
  import type { PivotJoin, SimpleJoin } from '../types/join-parameter.types.js';
3
3
  import { Criteria } from '../criteria.js';
4
4
  import type { ICriteriaVisitor } from '../types/visitor-interface.types.js';
5
5
  /**
6
6
  * Represents an INNER JOIN criteria.
7
- * It extends the base {@link Criteria} and defines how it's visited by a {@link ICriteriaVisitor}.
8
7
  * @template CSchema - The {@link CriteriaSchema} of the entity being joined.
9
8
  * @template Alias - The selected alias for the joined entity from its schema.
10
9
  */
11
- export declare class InnerJoinCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema> = SelectedAliasOf<CSchema>> extends Criteria<CSchema, Alias> {
10
+ export declare class InnerJoinCriteria<CSchema extends CriteriaSchema> extends Criteria<CSchema> {
12
11
  /**
13
12
  * Accepts a criteria visitor to process this inner join criteria.
14
- * It first validates the join field against the schema before dispatching to the visitor.
15
- * @template TranslationContext - The type of the context object passed during traversal.
16
- * @template TranslationOutput - The type of the result returned by visitor methods.
17
- * @param {ICriteriaVisitor<TranslationContext, TranslationOutput>} visitor - The visitor instance.
18
- * @param {PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema,
19
- * JoinRelationType>} parameters - The fully resolved parameters for this join, including parent and join field
20
- * details.
21
- * @param {TranslationContext} context - The context object to be passed to the visitor.
22
- * @returns {TranslationOutput} The result of the visitor processing this join.
13
+ * @param visitor The visitor instance.
14
+ * @param parameters The fully resolved parameters for this join.
15
+ * @param context The context object to be passed to the visitor.
23
16
  */
24
- accept<TranslationContext, TranslationOutput>(visitor: ICriteriaVisitor<TranslationContext, TranslationOutput>, parameters: PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema, JoinRelationType>, context: TranslationContext): TranslationOutput;
17
+ accept<TranslationContext>(visitor: ICriteriaVisitor<TranslationContext>, parameters: PivotJoin<CriteriaSchema, CSchema> | SimpleJoin<CriteriaSchema, CSchema>, context: TranslationContext): void;
25
18
  /**
26
- * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
27
- * but with all other states (filters, joins, ordering, pagination, selection) reset to their defaults.
28
- * @returns {InnerJoinCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
19
+ * Returns a new instance of `InnerJoinCriteria` with the same schema and alias configuration,
20
+ * but with all other states reset to their defaults.
21
+ * @returns {InnerJoinCriteria<CSchema, Alias>} A new, reset `InnerJoinCriteria` instance.
29
22
  */
30
- resetCriteria(): InnerJoinCriteria<CSchema, Alias>;
23
+ resetCriteria(): InnerJoinCriteria<CSchema>;
31
24
  }
32
25
  //# sourceMappingURL=inner.join-criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inner.join-criteria.d.ts","sourceRoot":"","sources":["../../../src/criteria/join/inner.join-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;GAKG;AACH,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CACjE,SAAQ,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAChC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAC1C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,UAAU,EACN,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,GACpD,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACzD,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;IAOpB;;;;OAIG;IACH,aAAa,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;CAGnD"}
1
+ {"version":3,"file":"inner.join-criteria.d.ts","sourceRoot":"","sources":["../../../src/criteria/join/inner.join-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,cAAc,CAC9B,SAAQ,QAAQ,CAAC,OAAO,CAAC;IACzB;;;;;OAKG;IACI,MAAM,CAAC,kBAAkB,EAC9B,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAC7C,UAAU,EACN,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,GAClC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,kBAAkB,GAC1B,IAAI;IAQP;;;;OAIG;IACI,aAAa,IAAI,iBAAiB,CAAC,OAAO,CAAC;CAGnD"}
@@ -1,36 +1,29 @@
1
1
  import { Criteria } from '../criteria.js';
2
2
  /**
3
3
  * Represents an INNER JOIN criteria.
4
- * It extends the base {@link Criteria} and defines how it's visited by a {@link ICriteriaVisitor}.
5
4
  * @template CSchema - The {@link CriteriaSchema} of the entity being joined.
6
5
  * @template Alias - The selected alias for the joined entity from its schema.
7
6
  */
8
7
  export class InnerJoinCriteria extends Criteria {
9
8
  /**
10
9
  * Accepts a criteria visitor to process this inner join criteria.
11
- * It first validates the join field against the schema before dispatching to the visitor.
12
- * @template TranslationContext - The type of the context object passed during traversal.
13
- * @template TranslationOutput - The type of the result returned by visitor methods.
14
- * @param {ICriteriaVisitor<TranslationContext, TranslationOutput>} visitor - The visitor instance.
15
- * @param {PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema,
16
- * JoinRelationType>} parameters - The fully resolved parameters for this join, including parent and join field
17
- * details.
18
- * @param {TranslationContext} context - The context object to be passed to the visitor.
19
- * @returns {TranslationOutput} The result of the visitor processing this join.
10
+ * @param visitor The visitor instance.
11
+ * @param parameters The fully resolved parameters for this join.
12
+ * @param context The context object to be passed to the visitor.
20
13
  */
21
14
  accept(visitor, parameters, context) {
22
- typeof parameters.join_field === 'object'
23
- ? this.assetFieldOnSchema(parameters.join_field.reference)
24
- : this.assetFieldOnSchema(parameters.join_field);
25
- return visitor.visitInnerJoin(this, parameters, context);
15
+ typeof parameters.relation_field === 'object'
16
+ ? this.assetFieldOnSchema(parameters.relation_field.reference)
17
+ : this.assetFieldOnSchema(parameters.relation_field);
18
+ visitor.visitInnerJoin(this, parameters, context);
26
19
  }
27
20
  /**
28
- * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
29
- * but with all other states (filters, joins, ordering, pagination, selection) reset to their defaults.
30
- * @returns {InnerJoinCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
21
+ * Returns a new instance of `InnerJoinCriteria` with the same schema and alias configuration,
22
+ * but with all other states reset to their defaults.
23
+ * @returns {InnerJoinCriteria<CSchema, Alias>} A new, reset `InnerJoinCriteria` instance.
31
24
  */
32
25
  resetCriteria() {
33
- return new InnerJoinCriteria(this.schema, this._alias);
26
+ return new InnerJoinCriteria(this.schema);
34
27
  }
35
28
  }
36
29
  //# sourceMappingURL=inner.join-criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inner.join-criteria.js","sourceRoot":"","sources":["../../../src/criteria/join/inner.join-criteria.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;;;;GAKG;AACH,MAAM,OAAO,iBAGX,SAAQ,QAAwB;IAChC;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,OAAgE,EAChE,UAEyD,EACzD,OAA2B;QAE3B,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IACD;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CACF"}
1
+ {"version":3,"file":"inner.join-criteria.js","sourceRoot":"","sources":["../../../src/criteria/join/inner.join-criteria.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,OAAO,iBAEX,SAAQ,QAAiB;IACzB;;;;;OAKG;IACI,MAAM,CACX,OAA6C,EAC7C,UAEuC,EACvC,OAA2B;QAE3B,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ;YAC3C,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEvD,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,aAAa;QAClB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAA8B,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { CriteriaSchema, JoinRelationType, SelectedAliasOf } from '../types/schema.types.js';
1
+ import type { CriteriaSchema } from '../types/schema.types.js';
2
2
  import type { PivotJoin, SimpleJoin } from '../types/join-parameter.types.js';
3
3
  import { Criteria } from '../criteria.js';
4
4
  import type { ICriteriaVisitor } from '../types/visitor-interface.types.js';
@@ -8,7 +8,7 @@ import type { ICriteriaVisitor } from '../types/visitor-interface.types.js';
8
8
  * @template CSchema - The {@link CriteriaSchema} of the entity being joined.
9
9
  * @template Alias - The selected alias for the joined entity from its schema.
10
10
  */
11
- export declare class LeftJoinCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema> = SelectedAliasOf<CSchema>> extends Criteria<CSchema, Alias> {
11
+ export declare class LeftJoinCriteria<CSchema extends CriteriaSchema> extends Criteria<CSchema> {
12
12
  /**
13
13
  * Accepts a criteria visitor to process this left join criteria.
14
14
  * It first validates the join field against the schema before dispatching to the visitor.
@@ -20,12 +20,12 @@ export declare class LeftJoinCriteria<CSchema extends CriteriaSchema, Alias exte
20
20
  * @param {TranslationContext} context - The context object to be passed to the visitor.
21
21
  * @returns {TranslationOutput} The result of the visitor processing this join.
22
22
  */
23
- accept<TranslationContext, TranslationOutput>(visitor: ICriteriaVisitor<TranslationContext, TranslationOutput>, parameters: PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema, JoinRelationType>, context: TranslationContext): TranslationOutput;
23
+ accept<TranslationContext>(visitor: ICriteriaVisitor<TranslationContext>, parameters: PivotJoin<CriteriaSchema, CSchema> | SimpleJoin<CriteriaSchema, CSchema>, context: TranslationContext): void;
24
24
  /**
25
25
  * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
26
26
  * but with all other states (filters, joins, ordering, pagination, selection) reset to their defaults.
27
27
  * @returns {LeftJoinCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
28
28
  */
29
- resetCriteria(): LeftJoinCriteria<CSchema, Alias>;
29
+ resetCriteria(): LeftJoinCriteria<CSchema>;
30
30
  }
31
31
  //# sourceMappingURL=left.join-criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"left.join-criteria.d.ts","sourceRoot":"","sources":["../../../src/criteria/join/left.join-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;GAKG;AACH,qBAAa,gBAAgB,CAC3B,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CACjE,SAAQ,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAChC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAC1C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,UAAU,EACN,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,GACpD,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACzD,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;IAOpB;;;;OAIG;IACH,aAAa,IAAI,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;CAGlD"}
1
+ {"version":3,"file":"left.join-criteria.d.ts","sourceRoot":"","sources":["../../../src/criteria/join/left.join-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;GAKG;AACH,qBAAa,gBAAgB,CAC3B,OAAO,SAAS,cAAc,CAC9B,SAAQ,QAAQ,CAAC,OAAO,CAAC;IACzB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,kBAAkB,EACvB,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAC7C,UAAU,EACN,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,GAClC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,kBAAkB,GAC1B,IAAI;IAOP;;;;OAIG;IACH,aAAa,IAAI,gBAAgB,CAAC,OAAO,CAAC;CAG3C"}
@@ -18,10 +18,10 @@ export class LeftJoinCriteria extends Criteria {
18
18
  * @returns {TranslationOutput} The result of the visitor processing this join.
19
19
  */
20
20
  accept(visitor, parameters, context) {
21
- typeof parameters.join_field === 'object'
22
- ? this.assetFieldOnSchema(parameters.join_field.reference)
23
- : this.assetFieldOnSchema(parameters.join_field);
24
- return visitor.visitLeftJoin(this, parameters, context);
21
+ typeof parameters.relation_field === 'object'
22
+ ? this.assetFieldOnSchema(parameters.relation_field.reference)
23
+ : this.assetFieldOnSchema(parameters.relation_field);
24
+ visitor.visitLeftJoin(this, parameters, context);
25
25
  }
26
26
  /**
27
27
  * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
@@ -29,7 +29,7 @@ export class LeftJoinCriteria extends Criteria {
29
29
  * @returns {LeftJoinCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
30
30
  */
31
31
  resetCriteria() {
32
- return new LeftJoinCriteria(this.schema, this._alias);
32
+ return new LeftJoinCriteria(this.schema);
33
33
  }
34
34
  }
35
35
  //# sourceMappingURL=left.join-criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"left.join-criteria.js","sourceRoot":"","sources":["../../../src/criteria/join/left.join-criteria.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;;;;GAKG;AACH,MAAM,OAAO,gBAGX,SAAQ,QAAwB;IAChC;;;;;;;;;;OAUG;IACH,MAAM,CACJ,OAAgE,EAChE,UAEyD,EACzD,OAA2B;QAE3B,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;CACF"}
1
+ {"version":3,"file":"left.join-criteria.js","sourceRoot":"","sources":["../../../src/criteria/join/left.join-criteria.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,OAAO,gBAEX,SAAQ,QAAiB;IACzB;;;;;;;;;;OAUG;IACH,MAAM,CACJ,OAA6C,EAC7C,UAEuC,EACvC,OAA2B;QAE3B,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ;YAC3C,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAEvD,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAA8B,CAAC,CAAC;IACnE,CAAC;CACF"}
@@ -1,32 +1,29 @@
1
- import type { CriteriaSchema, JoinRelationType, SelectedAliasOf } from '../types/schema.types.js';
1
+ import type { CriteriaSchema } from '../types/schema.types.js';
2
2
  import type { PivotJoin, SimpleJoin } from '../types/join-parameter.types.js';
3
3
  import { Criteria } from '../criteria.js';
4
4
  import type { ICriteriaVisitor } from '../types/visitor-interface.types.js';
5
5
  /**
6
6
  * Represents an OUTER JOIN (typically FULL OUTER JOIN) criteria.
7
7
  * It extends the base {@link Criteria} and defines how it's visited by a {@link ICriteriaVisitor}.
8
- * Note: Full OUTER JOIN support can vary between database systems.
9
8
  * @template CSchema - The {@link CriteriaSchema} of the entity being joined.
10
9
  * @template Alias - The selected alias for the joined entity from its schema.
11
10
  */
12
- export declare class OuterJoinCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema> = SelectedAliasOf<CSchema>> extends Criteria<CSchema, Alias> {
11
+ export declare class OuterJoinCriteria<CSchema extends CriteriaSchema> extends Criteria<CSchema> {
13
12
  /**
14
13
  * Accepts a criteria visitor to process this outer join criteria.
15
- * It first validates the join field against the schema before dispatching to the visitor.
16
- * @template TranslationContext - The type of the context object passed during traversal.
17
- * @template TranslationOutput - The type of the result returned by visitor methods.
18
- * @param {ICriteriaVisitor<TranslationContext, TranslationOutput>} visitor - The visitor instance.
19
- * @param {PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema, JoinRelationType>} parameters -
20
- * The fully resolved parameters for this join, including parent and join field details.
21
- * @param {TranslationContext} context - The context object to be passed to the visitor.
22
- * @returns {TranslationOutput} The result of the visitor processing this join.
14
+ * @template TranslationContext The type of the context object passed during traversal.
15
+ * @template TOuterJoinVisitorOutput The specific return type expected from the visitor's `visitOuterJoin` method.
16
+ * @param visitor The visitor instance.
17
+ * @param parameters The fully resolved parameters for this join.
18
+ * @param context The context object to be passed to the visitor.
19
+ * @returns The result of the visitor processing this join.
23
20
  */
24
- accept<TranslationContext, TranslationOutput>(visitor: ICriteriaVisitor<TranslationContext, TranslationOutput>, parameters: PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema, JoinRelationType>, context: TranslationContext): TranslationOutput;
21
+ accept<TranslationContext>(visitor: ICriteriaVisitor<TranslationContext>, parameters: PivotJoin<CriteriaSchema, CSchema> | SimpleJoin<CriteriaSchema, CSchema>, context: TranslationContext): void;
25
22
  /**
26
- * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
27
- * but with all other states (filters, joins, ordering, pagination, selection) reset to their defaults.
28
- * @returns {OuterJoinCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
23
+ * Returns a new instance of `OuterJoinCriteria` with the same schema and alias configuration,
24
+ * but with all other states reset to their defaults.
25
+ * @returns {OuterJoinCriteria<CSchema, Alias>} A new, reset `OuterJoinCriteria` instance.
29
26
  */
30
- resetCriteria(): OuterJoinCriteria<CSchema, Alias>;
27
+ resetCriteria(): OuterJoinCriteria<CSchema>;
31
28
  }
32
29
  //# sourceMappingURL=outer.join-criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"outer.join-criteria.d.ts","sourceRoot":"","sources":["../../../src/criteria/join/outer.join-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;;GAMG;AACH,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CACjE,SAAQ,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAChC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAC1C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,UAAU,EACN,SAAS,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,GACpD,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,EACzD,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;IAMpB;;;;OAIG;IACH,aAAa,IAAI,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC;CAGnD"}
1
+ {"version":3,"file":"outer.join-criteria.d.ts","sourceRoot":"","sources":["../../../src/criteria/join/outer.join-criteria.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAE5E;;;;;GAKG;AACH,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,cAAc,CAC9B,SAAQ,QAAQ,CAAC,OAAO,CAAC;IACzB;;;;;;;;OAQG;IACI,MAAM,CAAC,kBAAkB,EAC9B,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAC7C,UAAU,EACN,SAAS,CAAC,cAAc,EAAE,OAAO,CAAC,GAClC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,EACvC,OAAO,EAAE,kBAAkB,GAC1B,IAAI;IAMP;;;;OAIG;IACI,aAAa,IAAI,iBAAiB,CAAC,OAAO,CAAC;CAGnD"}
@@ -2,35 +2,32 @@ import { Criteria } from '../criteria.js';
2
2
  /**
3
3
  * Represents an OUTER JOIN (typically FULL OUTER JOIN) criteria.
4
4
  * It extends the base {@link Criteria} and defines how it's visited by a {@link ICriteriaVisitor}.
5
- * Note: Full OUTER JOIN support can vary between database systems.
6
5
  * @template CSchema - The {@link CriteriaSchema} of the entity being joined.
7
6
  * @template Alias - The selected alias for the joined entity from its schema.
8
7
  */
9
8
  export class OuterJoinCriteria extends Criteria {
10
9
  /**
11
10
  * Accepts a criteria visitor to process this outer join criteria.
12
- * It first validates the join field against the schema before dispatching to the visitor.
13
- * @template TranslationContext - The type of the context object passed during traversal.
14
- * @template TranslationOutput - The type of the result returned by visitor methods.
15
- * @param {ICriteriaVisitor<TranslationContext, TranslationOutput>} visitor - The visitor instance.
16
- * @param {PivotJoin<CriteriaSchema, CSchema, JoinRelationType> | SimpleJoin<CriteriaSchema, CSchema, JoinRelationType>} parameters -
17
- * The fully resolved parameters for this join, including parent and join field details.
18
- * @param {TranslationContext} context - The context object to be passed to the visitor.
19
- * @returns {TranslationOutput} The result of the visitor processing this join.
11
+ * @template TranslationContext The type of the context object passed during traversal.
12
+ * @template TOuterJoinVisitorOutput The specific return type expected from the visitor's `visitOuterJoin` method.
13
+ * @param visitor The visitor instance.
14
+ * @param parameters The fully resolved parameters for this join.
15
+ * @param context The context object to be passed to the visitor.
16
+ * @returns The result of the visitor processing this join.
20
17
  */
21
18
  accept(visitor, parameters, context) {
22
- typeof parameters.join_field === 'object'
23
- ? this.assetFieldOnSchema(parameters.join_field.reference)
24
- : this.assetFieldOnSchema(parameters.join_field);
25
- return visitor.visitOuterJoin(this, parameters, context);
19
+ typeof parameters.relation_field === 'object'
20
+ ? this.assetFieldOnSchema(parameters.relation_field.reference)
21
+ : this.assetFieldOnSchema(parameters.relation_field);
22
+ visitor.visitOuterJoin(this, parameters, context);
26
23
  }
27
24
  /**
28
- * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
29
- * but with all other states (filters, joins, ordering, pagination, selection) reset to their defaults.
30
- * @returns {OuterJoinCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
25
+ * Returns a new instance of `OuterJoinCriteria` with the same schema and alias configuration,
26
+ * but with all other states reset to their defaults.
27
+ * @returns {OuterJoinCriteria<CSchema, Alias>} A new, reset `OuterJoinCriteria` instance.
31
28
  */
32
29
  resetCriteria() {
33
- return new OuterJoinCriteria(this.schema, this._alias);
30
+ return new OuterJoinCriteria(this.schema);
34
31
  }
35
32
  }
36
33
  //# sourceMappingURL=outer.join-criteria.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"outer.join-criteria.js","sourceRoot":"","sources":["../../../src/criteria/join/outer.join-criteria.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C;;;;;;GAMG;AACH,MAAM,OAAO,iBAGX,SAAQ,QAAwB;IAChC;;;;;;;;;;OAUG;IACH,MAAM,CACJ,OAAgE,EAChE,UAEyD,EACzD,OAA2B;QAE3B,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ;YACvC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IACD;;;;OAIG;IACH,aAAa;QACX,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CACF"}
1
+ {"version":3,"file":"outer.join-criteria.js","sourceRoot":"","sources":["../../../src/criteria/join/outer.join-criteria.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAoB,MAAM,gBAAgB,CAAC;AAG5D;;;;;GAKG;AACH,MAAM,OAAO,iBAEX,SAAQ,QAAiB;IACzB;;;;;;;;OAQG;IACI,MAAM,CACX,OAA6C,EAC7C,UAEuC,EACvC,OAA2B;QAE3B,OAAO,UAAU,CAAC,cAAc,KAAK,QAAQ;YAC3C,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACvD,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IACD;;;;OAIG;IACI,aAAa;QAClB,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,MAA8B,CAAC,CAAC;IACpE,CAAC;CACF"}
@@ -11,6 +11,12 @@ export declare const OrderDirection: {
11
11
  * Represents the direction of an order clause, either 'ASC' or 'DESC'.
12
12
  */
13
13
  export type OrderDirection = keyof typeof OrderDirection;
14
+ /**
15
+ * Resets the global order sequence counter.
16
+ * This function is intended for testing purposes to ensure predictable sequence IDs.
17
+ * @internal
18
+ */
19
+ export declare function _resetOrderSequenceForTesting(): void;
14
20
  /**
15
21
  * Represents the primitive structure of an order by clause,
16
22
  * specifying the field and direction.
@@ -21,6 +27,10 @@ export type OrderByPrimitive<T extends string = string> = {
21
27
  direction: OrderDirection;
22
28
  /** The name of the field to order by. */
23
29
  field: T;
30
+ /** A unique ID to ensure stable sorting order. */
31
+ sequence_id: number;
32
+ /** If true, null values will be ordered first. Otherwise, they will be ordered last. */
33
+ nulls_first: boolean;
24
34
  };
25
35
  /**
26
36
  * Represents a single ordering rule for a query.
@@ -32,6 +42,7 @@ export type OrderByPrimitive<T extends string = string> = {
32
42
  export declare class Order<T extends string = string> {
33
43
  protected readonly _direction: OrderDirection;
34
44
  protected readonly _field: T;
45
+ protected readonly _nullsFirst: boolean;
35
46
  /**
36
47
  * A unique, globally incrementing ID to ensure stable sorting order
37
48
  * when multiple Order instances are created.
@@ -42,8 +53,14 @@ export declare class Order<T extends string = string> {
42
53
  * Creates an instance of Order.
43
54
  * @param {OrderDirection} _direction - The direction of the sort (ASC or DESC).
44
55
  * @param {T} _field - The name of the field to order by.
56
+ * @param {boolean} [_nullsFirst=false] - If true, null values will be ordered first.
57
+ */
58
+ constructor(_direction: OrderDirection, _field: T, _nullsFirst?: boolean);
59
+ /**
60
+ * Gets whether null values should be ordered first.
61
+ * @returns {boolean} True if nulls are first, otherwise false.
45
62
  */
46
- constructor(_direction: OrderDirection, _field: T);
63
+ get nullsFirst(): boolean;
47
64
  /**
48
65
  * Gets the unique sequence ID of this order rule.
49
66
  * Used to maintain a stable sort order when multiple orders are applied.
@@ -1 +1 @@
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
+ {"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,wBAAgB,6BAA6B,SAE5C;AAED;;;;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;IACT,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IAexC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc;IAC7C,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO;IAhBzC;;;;OAIG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAE9B;;;;;OAKG;gBAEkB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,CAAC,EACT,WAAW,GAAE,OAAe;IAMjD;;;OAGG;IACH,IAAI,UAAU,YAEb;IAED;;;;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;CAQnC"}
@@ -8,6 +8,14 @@ export const OrderDirection = {
8
8
  DESC: 'DESC',
9
9
  };
10
10
  let globalOrderSequence = 0;
11
+ /**
12
+ * Resets the global order sequence counter.
13
+ * This function is intended for testing purposes to ensure predictable sequence IDs.
14
+ * @internal
15
+ */
16
+ export function _resetOrderSequenceForTesting() {
17
+ globalOrderSequence = 0;
18
+ }
11
19
  /**
12
20
  * Represents a single ordering rule for a query.
13
21
  * It includes the field to order by, the direction (ASC/DESC),
@@ -18,6 +26,7 @@ let globalOrderSequence = 0;
18
26
  export class Order {
19
27
  _direction;
20
28
  _field;
29
+ _nullsFirst;
21
30
  /**
22
31
  * A unique, globally incrementing ID to ensure stable sorting order
23
32
  * when multiple Order instances are created.
@@ -28,13 +37,22 @@ export class Order {
28
37
  * Creates an instance of Order.
29
38
  * @param {OrderDirection} _direction - The direction of the sort (ASC or DESC).
30
39
  * @param {T} _field - The name of the field to order by.
40
+ * @param {boolean} [_nullsFirst=false] - If true, null values will be ordered first.
31
41
  */
32
- constructor(_direction, _field) {
42
+ constructor(_direction, _field, _nullsFirst = false) {
33
43
  this._direction = _direction;
34
44
  this._field = _field;
45
+ this._nullsFirst = _nullsFirst;
35
46
  globalOrderSequence++;
36
47
  this._sequenceId = globalOrderSequence;
37
48
  }
49
+ /**
50
+ * Gets whether null values should be ordered first.
51
+ * @returns {boolean} True if nulls are first, otherwise false.
52
+ */
53
+ get nullsFirst() {
54
+ return this._nullsFirst;
55
+ }
38
56
  /**
39
57
  * Gets the unique sequence ID of this order rule.
40
58
  * Used to maintain a stable sort order when multiple orders are applied.
@@ -65,6 +83,8 @@ export class Order {
65
83
  return {
66
84
  direction: this._direction,
67
85
  field: this._field,
86
+ nulls_first: this._nullsFirst,
87
+ sequence_id: this.sequenceId,
68
88
  };
69
89
  }
70
90
  }
@@ -1 +1 @@
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"}
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;AAEpC;;;;GAIG;AACH,MAAM,UAAU,6BAA6B;IAC3C,mBAAmB,GAAG,CAAC,CAAC;AAC1B,CAAC;AAkBD;;;;;;GAMG;AACH,MAAM,OAAO,KAAK;IAeK;IACA;IACA;IAhBrB;;;;OAIG;IACO,WAAW,CAAS;IAE9B;;;;;OAKG;IACH,YACqB,UAA0B,EAC1B,MAAS,EACT,cAAuB,KAAK;QAF5B,eAAU,GAAV,UAAU,CAAgB;QAC1B,WAAM,GAAN,MAAM,CAAG;QACT,gBAAW,GAAX,WAAW,CAAiB;QAE/C,mBAAmB,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,mBAAmB,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,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;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;CACF"}
@@ -1,33 +1,23 @@
1
1
  import { Criteria } from './criteria.js';
2
- import type { CriteriaSchema, SelectedAliasOf } from './types/schema.types.js';
2
+ import type { CriteriaSchema } from './types/schema.types.js';
3
3
  import type { ICriteriaVisitor } from './types/visitor-interface.types.js';
4
4
  /**
5
5
  * Represents the root criteria for a query.
6
- * This is the main entry point for building a query and defines the primary entity being queried.
7
- * It extends the base {@link Criteria} and defines how it's visited by a {@link ICriteriaVisitor}.
8
6
  * @template CSchema - The {@link CriteriaSchema} of the root entity.
9
7
  * @template Alias - The selected alias for the root entity from its schema.
10
8
  */
11
- export declare class RootCriteria<CSchema extends CriteriaSchema, Alias extends SelectedAliasOf<CSchema>> extends Criteria<CSchema, Alias> {
9
+ export declare class RootCriteria<CSchema extends CriteriaSchema> extends Criteria<CSchema> {
12
10
  /**
13
11
  * Accepts a criteria visitor to process this root criteria.
14
- * This method is the entry point for the visitor pattern to traverse the criteria tree.
15
- * @template TranslationContext - The type of the context object passed during traversal (e.g., a query builder
16
- * instance).
17
- * @template TranslationOutput - The type of the result returned by visitor methods (e.g., the modified query builder
18
- * or a query string).
19
- * @param {ICriteriaVisitor<TranslationContext, TranslationOutput>} visitor - The visitor instance responsible for
20
- * translating criteria parts.
21
- * @param {TranslationContext} context - The context object to be passed to the visitor (e.g., an initial query
22
- * builder or an empty string for SQL).
23
- * @returns {TranslationOutput} The result of the visitor processing this root criteria and its components.
12
+ * @param visitor The visitor instance responsible for translating criteria parts.
13
+ * @param context The context object to be passed to the visitor.
24
14
  */
25
- accept<TranslationContext, TranslationOutput>(visitor: ICriteriaVisitor<TranslationContext, TranslationOutput>, context: TranslationContext): TranslationOutput;
15
+ accept<TranslationContext>(visitor: ICriteriaVisitor<TranslationContext>, context: TranslationContext): void;
26
16
  /**
27
17
  * Returns a new instance of `RootCriteria` with the same schema and alias configuration,
28
18
  * but with all other states (filters, joins, ordering, pagination, selection) reset to their defaults.
29
19
  * @returns {RootCriteria<CSchema, Alias>} A new, reset `RootCriteria` instance.
30
20
  */
31
- resetCriteria(): RootCriteria<CSchema, Alias>;
21
+ resetCriteria(): RootCriteria<CSchema>;
32
22
  }
33
23
  //# sourceMappingURL=root.criteria.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.criteria.d.ts","sourceRoot":"","sources":["../../src/criteria/root.criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,OAAO,SAAS,cAAc,EAC9B,KAAK,SAAS,eAAe,CAAC,OAAO,CAAC,CACtC,SAAQ,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IAChC;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,EAC1C,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EAChE,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB;IAGpB;;;;OAIG;IACH,aAAa,IAAI,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC;CAG9C"}
1
+ {"version":3,"file":"root.criteria.d.ts","sourceRoot":"","sources":["../../src/criteria/root.criteria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;;;GAIG;AACH,qBAAa,YAAY,CACvB,OAAO,SAAS,cAAc,CAC9B,SAAQ,QAAQ,CAAC,OAAO,CAAC;IACzB;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,EAC9B,OAAO,EAAE,gBAAgB,CAAC,kBAAkB,CAAC,EAC7C,OAAO,EAAE,kBAAkB,GAC1B,IAAI;IAIP;;;;OAIG;IACI,aAAa,IAAI,YAAY,CAAC,OAAO,CAAC;CAG9C"}