@nest-boot/graphql-connection 7.3.0 → 7.5.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 (158) hide show
  1. package/dist/connection-query-builder.js +16 -53
  2. package/dist/connection-query-builder.js.map +1 -1
  3. package/dist/connection.builder.d.ts +4 -3
  4. package/dist/connection.builder.js +13 -3
  5. package/dist/connection.builder.js.map +1 -1
  6. package/dist/enums/index.d.ts +0 -1
  7. package/dist/enums/index.js +0 -1
  8. package/dist/enums/index.js.map +1 -1
  9. package/dist/index.d.ts +0 -1
  10. package/dist/index.js +0 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/interfaces/connection-builder-options.interface.d.ts +4 -0
  13. package/dist/interfaces/{replacement-args.interface.js → connection-builder-options.interface.js} +1 -1
  14. package/dist/interfaces/connection-builder-options.interface.js.map +1 -0
  15. package/dist/interfaces/connection-metadata.interface.d.ts +6 -3
  16. package/dist/interfaces/index.d.ts +2 -2
  17. package/dist/interfaces/index.js +2 -2
  18. package/dist/interfaces/index.js.map +1 -1
  19. package/dist/tsconfig.build.tsbuildinfo +1 -1
  20. package/dist/types/field-options.type.d.ts +12 -0
  21. package/dist/{interfaces/field-options.interface.js → types/field-options.type.js} +1 -1
  22. package/dist/types/field-options.type.js.map +1 -0
  23. package/dist/types/index.d.ts +1 -0
  24. package/dist/types/index.js +1 -0
  25. package/dist/types/index.js.map +1 -1
  26. package/dist/utils/create-connection-args.d.ts +2 -2
  27. package/dist/utils/create-connection-args.js +7 -7
  28. package/dist/utils/create-connection-args.js.map +1 -1
  29. package/dist/utils/create-connection.d.ts +4 -2
  30. package/dist/utils/create-connection.js +2 -1
  31. package/dist/utils/create-connection.js.map +1 -1
  32. package/dist/utils/create-filter.d.ts +7 -2
  33. package/dist/utils/create-filter.js +14 -154
  34. package/dist/utils/create-filter.js.map +1 -1
  35. package/dist/utils/create-order.d.ts +2 -1
  36. package/dist/utils/create-order.js.map +1 -1
  37. package/package.json +5 -4
  38. package/dist/enums/comparator-operator.enum.d.ts +0 -11
  39. package/dist/enums/comparator-operator.enum.js +0 -16
  40. package/dist/enums/comparator-operator.enum.js.map +0 -1
  41. package/dist/errors/index.d.ts +0 -1
  42. package/dist/errors/index.js +0 -18
  43. package/dist/errors/index.js.map +0 -1
  44. package/dist/errors/unknown-field.error.d.ts +0 -4
  45. package/dist/errors/unknown-field.error.js +0 -12
  46. package/dist/errors/unknown-field.error.js.map +0 -1
  47. package/dist/interfaces/field-options.interface.d.ts +0 -24
  48. package/dist/interfaces/field-options.interface.js.map +0 -1
  49. package/dist/interfaces/replacement-args.interface.d.ts +0 -9
  50. package/dist/interfaces/replacement-args.interface.js.map +0 -1
  51. package/dist/interfaces/search-syntax-field-options.interface.d.ts +0 -12
  52. package/dist/interfaces/search-syntax-field-options.interface.js +0 -3
  53. package/dist/interfaces/search-syntax-field-options.interface.js.map +0 -1
  54. package/dist/scripts/generate-cst-dts.d.ts +0 -1
  55. package/dist/scripts/generate-cst-dts.js +0 -8
  56. package/dist/scripts/generate-cst-dts.js.map +0 -1
  57. package/dist/search-syntax.lexer.d.ts +0 -5
  58. package/dist/search-syntax.lexer.js +0 -13
  59. package/dist/search-syntax.lexer.js.map +0 -1
  60. package/dist/search-syntax.parser.d.ts +0 -6
  61. package/dist/search-syntax.parser.js +0 -91
  62. package/dist/search-syntax.parser.js.map +0 -1
  63. package/dist/search-syntax.visitor.d.ts +0 -24
  64. package/dist/search-syntax.visitor.js +0 -319
  65. package/dist/search-syntax.visitor.js.map +0 -1
  66. package/dist/tokens/Comma.d.ts +0 -1
  67. package/dist/tokens/Comma.js +0 -9
  68. package/dist/tokens/Comma.js.map +0 -1
  69. package/dist/tokens/Identifier.d.ts +0 -1
  70. package/dist/tokens/Identifier.js +0 -14
  71. package/dist/tokens/Identifier.js.map +0 -1
  72. package/dist/tokens/UnquotedLiteral.d.ts +0 -1
  73. package/dist/tokens/UnquotedLiteral.js +0 -11
  74. package/dist/tokens/UnquotedLiteral.js.map +0 -1
  75. package/dist/tokens/WhiteSpace.d.ts +0 -1
  76. package/dist/tokens/WhiteSpace.js +0 -12
  77. package/dist/tokens/WhiteSpace.js.map +0 -1
  78. package/dist/tokens/Wildcard.d.ts +0 -1
  79. package/dist/tokens/Wildcard.js +0 -9
  80. package/dist/tokens/Wildcard.js.map +0 -1
  81. package/dist/tokens/brackets/LeftBracket.d.ts +0 -1
  82. package/dist/tokens/brackets/LeftBracket.js +0 -9
  83. package/dist/tokens/brackets/LeftBracket.js.map +0 -1
  84. package/dist/tokens/brackets/RightBracket.d.ts +0 -1
  85. package/dist/tokens/brackets/RightBracket.js +0 -9
  86. package/dist/tokens/brackets/RightBracket.js.map +0 -1
  87. package/dist/tokens/brackets/index.d.ts +0 -3
  88. package/dist/tokens/brackets/index.js +0 -23
  89. package/dist/tokens/brackets/index.js.map +0 -1
  90. package/dist/tokens/comparators/Comparator.d.ts +0 -1
  91. package/dist/tokens/comparators/Comparator.js +0 -9
  92. package/dist/tokens/comparators/Comparator.js.map +0 -1
  93. package/dist/tokens/comparators/Equal.d.ts +0 -1
  94. package/dist/tokens/comparators/Equal.js +0 -11
  95. package/dist/tokens/comparators/Equal.js.map +0 -1
  96. package/dist/tokens/comparators/GreaterThan.d.ts +0 -1
  97. package/dist/tokens/comparators/GreaterThan.js +0 -11
  98. package/dist/tokens/comparators/GreaterThan.js.map +0 -1
  99. package/dist/tokens/comparators/GreaterThanOrEqual.d.ts +0 -1
  100. package/dist/tokens/comparators/GreaterThanOrEqual.js +0 -11
  101. package/dist/tokens/comparators/GreaterThanOrEqual.js.map +0 -1
  102. package/dist/tokens/comparators/LessThan.d.ts +0 -1
  103. package/dist/tokens/comparators/LessThan.js +0 -11
  104. package/dist/tokens/comparators/LessThan.js.map +0 -1
  105. package/dist/tokens/comparators/LessThanOrEqual.d.ts +0 -1
  106. package/dist/tokens/comparators/LessThanOrEqual.js +0 -11
  107. package/dist/tokens/comparators/LessThanOrEqual.js.map +0 -1
  108. package/dist/tokens/comparators/index.d.ts +0 -7
  109. package/dist/tokens/comparators/index.js +0 -38
  110. package/dist/tokens/comparators/index.js.map +0 -1
  111. package/dist/tokens/connectives/And.d.ts +0 -1
  112. package/dist/tokens/connectives/And.js +0 -11
  113. package/dist/tokens/connectives/And.js.map +0 -1
  114. package/dist/tokens/connectives/Not.d.ts +0 -1
  115. package/dist/tokens/connectives/Not.js +0 -11
  116. package/dist/tokens/connectives/Not.js.map +0 -1
  117. package/dist/tokens/connectives/Or.d.ts +0 -1
  118. package/dist/tokens/connectives/Or.js +0 -11
  119. package/dist/tokens/connectives/Or.js.map +0 -1
  120. package/dist/tokens/connectives/index.d.ts +0 -4
  121. package/dist/tokens/connectives/index.js +0 -25
  122. package/dist/tokens/connectives/index.js.map +0 -1
  123. package/dist/tokens/fields/Field.d.ts +0 -1
  124. package/dist/tokens/fields/Field.js +0 -9
  125. package/dist/tokens/fields/Field.js.map +0 -1
  126. package/dist/tokens/fields/NestedField.d.ts +0 -1
  127. package/dist/tokens/fields/NestedField.js +0 -13
  128. package/dist/tokens/fields/NestedField.js.map +0 -1
  129. package/dist/tokens/fields/index.d.ts +0 -3
  130. package/dist/tokens/fields/index.js +0 -23
  131. package/dist/tokens/fields/index.js.map +0 -1
  132. package/dist/tokens/index.d.ts +0 -1
  133. package/dist/tokens/index.js +0 -31
  134. package/dist/tokens/index.js.map +0 -1
  135. package/dist/tokens/values/Date.d.ts +0 -1
  136. package/dist/tokens/values/Date.js +0 -12
  137. package/dist/tokens/values/Date.js.map +0 -1
  138. package/dist/tokens/values/False.d.ts +0 -1
  139. package/dist/tokens/values/False.js +0 -13
  140. package/dist/tokens/values/False.js.map +0 -1
  141. package/dist/tokens/values/Null.d.ts +0 -1
  142. package/dist/tokens/values/Null.js +0 -13
  143. package/dist/tokens/values/Null.js.map +0 -1
  144. package/dist/tokens/values/Number.d.ts +0 -1
  145. package/dist/tokens/values/Number.js +0 -13
  146. package/dist/tokens/values/Number.js.map +0 -1
  147. package/dist/tokens/values/QuotedString.d.ts +0 -1
  148. package/dist/tokens/values/QuotedString.js +0 -11
  149. package/dist/tokens/values/QuotedString.js.map +0 -1
  150. package/dist/tokens/values/True.d.ts +0 -1
  151. package/dist/tokens/values/True.js +0 -13
  152. package/dist/tokens/values/True.js.map +0 -1
  153. package/dist/tokens/values/Value.d.ts +0 -1
  154. package/dist/tokens/values/Value.js +0 -9
  155. package/dist/tokens/values/Value.js.map +0 -1
  156. package/dist/tokens/values/index.d.ts +0 -7
  157. package/dist/tokens/values/index.js +0 -32
  158. package/dist/tokens/values/index.js.map +0 -1
@@ -0,0 +1,12 @@
1
+ import type { FieldType, ReplacementCallbackFieldOptions as FilterReplacementCallbackFieldOptions, ReplacementFieldOptions as FilterReplacementFieldOptions, SimpleFieldOptions as FilterSimpleFieldOptions } from "mikro-orm-filter-query-schema";
2
+ export interface BaseFieldOptions {
3
+ filterable?: boolean;
4
+ searchable?: boolean;
5
+ }
6
+ export interface SortableFieldOptions {
7
+ sortable?: boolean;
8
+ }
9
+ export type SimpleFieldOptions<Entity extends object, Type extends FieldType = never> = FilterSimpleFieldOptions<Entity, Type> & BaseFieldOptions & SortableFieldOptions;
10
+ export type ReplacementFieldOptions<Entity extends object, Type extends FieldType = never, Field extends string = never> = FilterReplacementFieldOptions<Entity, Type, Field> & BaseFieldOptions & SortableFieldOptions;
11
+ export type ReplacementFunctionFieldOptions<Entity extends object, Type extends FieldType = never> = FilterReplacementCallbackFieldOptions<Entity, Type> & BaseFieldOptions & SortableFieldOptions;
12
+ export type FieldOptions<Entity extends object, Type extends FieldType = never, Field extends string = never> = SimpleFieldOptions<Entity, Type> | ReplacementFieldOptions<Entity, Type, Field> | ReplacementFunctionFieldOptions<Entity, Type>;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=field-options.interface.js.map
3
+ //# sourceMappingURL=field-options.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-options.type.js","sourceRoot":"","sources":["../../src/types/field-options.type.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export * from "./connection-class.type";
2
+ export * from "./field-options.type";
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./connection-class.type"), exports);
18
+ __exportStar(require("./field-options.type"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,uDAAqC"}
@@ -1,6 +1,6 @@
1
1
  import type { FilterQuery } from "@mikro-orm/core";
2
2
  import { type Type } from "@nestjs/common";
3
3
  import { GraphQLScalarType } from "graphql";
4
+ import type { FieldType } from "mikro-orm-filter-query-schema";
4
5
  import { ConnectionArgsInterface, FieldOptions, OrderInterface } from "../interfaces";
5
- import { FilterValue } from "./create-filter";
6
- export declare function createConnectionArgs<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, any, any>>, OrderClass: Type<OrderInterface<Entity>>, FilterScalar: GraphQLScalarType<FilterQuery<Entity>, FilterValue>): Type<ConnectionArgsInterface<Entity>>;
6
+ export declare function createConnectionArgs<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>, OrderClass: Type<OrderInterface<Entity>>, FilterScalar: GraphQLScalarType<FilterQuery<Entity>>): Type<ConnectionArgsInterface<Entity>>;
@@ -30,6 +30,13 @@ function createConnectionArgs(entityName, fieldOptionsMap, OrderClass, FilterSca
30
30
  }),
31
31
  __metadata("design:type", String)
32
32
  ], ConnectionArgs.prototype, "query", void 0);
33
+ __decorate([
34
+ (0, graphql_1.Field)(() => FilterScalar, {
35
+ nullable: true,
36
+ description: `Filter ${humanizeAndPluralizeEntityName} using MongoDB query syntax.`,
37
+ }),
38
+ __metadata("design:type", Object)
39
+ ], ConnectionArgs.prototype, "filter", void 0);
33
40
  __decorate([
34
41
  (0, graphql_1.Field)(() => graphql_1.Int, {
35
42
  nullable: true,
@@ -65,13 +72,6 @@ function createConnectionArgs(entityName, fieldOptionsMap, OrderClass, FilterSca
65
72
  }),
66
73
  __metadata("design:type", Object)
67
74
  ], ConnectionArgs.prototype, "orderBy", void 0);
68
- __decorate([
69
- (0, graphql_1.Field)(() => FilterScalar, {
70
- nullable: true,
71
- description: `Filter ${humanizeAndPluralizeEntityName} using MongoDB query syntax.`,
72
- }),
73
- __metadata("design:type", Object)
74
- ], ConnectionArgs.prototype, "filter", void 0);
75
75
  ConnectionArgs = __decorate([
76
76
  (0, graphql_1.ArgsType)(`${entityName}ConnectionArgs`)
77
77
  ], ConnectionArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"create-connection-args.js","sourceRoot":"","sources":["../../src/utils/create-connection-args.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,oDAkEC;AA9ED,gDAA0D;AAG1D,2CAAiD;AASjD,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,eAA4D,EAC5D,UAAwC,EACxC,YAAiE;IAEjE,MAAM,8BAA8B,GAAG,IAAA,sBAAS,EAAC,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,gBAAgB,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAC5B,CAAC;IAGF,IAAM,cAAc,GAApB,MAAM,cAAc;KAkDnB,CAAA;IAvCC;QAVC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,IAAI;YACd,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC;oBACE,WAAW,EAAE,8EAA8E,gBAAgB;yBACxG,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;yBAClC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAChB;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qDAAqD;SACnE,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oDAAoD;SAClE,CAAC;;gDACY;IAMd;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,6DAA6D;YAC1E,QAAQ,EAAE,IAAI;SACf,CAAC;;kDACc;IAOhB;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAU,EAAE;YACvB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qCAAqC,8BAA8B,GAAG;SACpF,CAAC;;mDAC+B;IAOjC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAY,EAAE;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,UAAU,8BAA8B,8BAA8B;SACpF,CAAC;;kDAC2B;IAjDzB,cAAc;QADnB,IAAA,kBAAQ,EAAC,GAAG,UAAU,gBAAgB,CAAC;OAClC,cAAc,CAkDnB;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"create-connection-args.js","sourceRoot":"","sources":["../../src/utils/create-connection-args.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,oDAkEC;AA9ED,gDAA0D;AAG1D,2CAAiD;AASjD,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,eAAqE,EACrE,UAAwC,EACxC,YAAoD;IAEpD,MAAM,8BAA8B,GAAG,IAAA,sBAAS,EAAC,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,gBAAgB,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAC5B,CAAC;IAGF,IAAM,cAAc,GAApB,MAAM,cAAc;KAkDnB,CAAA;IAvCC;QAVC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,IAAI;YACd,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC;oBACE,WAAW,EAAE,8EAA8E,gBAAgB;yBACxG,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;yBAClC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAChB;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;;iDACa;IAOf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAY,EAAE;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,UAAU,8BAA8B,8BAA8B;SACpF,CAAC;;kDAC2B;IAM7B;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qDAAqD;SACnE,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oDAAoD;SAClE,CAAC;;gDACY;IAMd;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,6DAA6D;YAC1E,QAAQ,EAAE,IAAI;SACf,CAAC;;kDACc;IAOhB;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAU,EAAE;YACvB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qCAAqC,8BAA8B,GAAG;SACpF,CAAC;;mDAC+B;IAjD7B,cAAc;QADnB,IAAA,kBAAQ,EAAC,GAAG,UAAU,gBAAgB,CAAC;OAClC,cAAc,CAkDnB;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -1,4 +1,6 @@
1
- import type { EntityClass } from "@mikro-orm/core";
1
+ import type { EntityClass, FilterQuery } from "@mikro-orm/core";
2
2
  import { type Type } from "@nestjs/common";
3
+ import type { FieldType } from "mikro-orm-filter-query-schema";
4
+ import type { ZodType } from "zod";
3
5
  import { ConnectionInterface, EdgeInterface, FieldOptions } from "../interfaces";
4
- export declare function createConnection<Entity extends object>(entityClass: EntityClass<Entity>, entityName: string, EdgeClass: Type<EdgeInterface<Entity>>, fieldOptionsMap: Map<string, FieldOptions<Entity, any, any>>): Type<ConnectionInterface<Entity>>;
6
+ export declare function createConnection<Entity extends object>(entityClass: EntityClass<Entity>, entityName: string, EdgeClass: Type<EdgeInterface<Entity>>, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>, filterQuerySchema: ZodType<FilterQuery<Entity>>): Type<ConnectionInterface<Entity>>;
@@ -14,7 +14,7 @@ const graphql_1 = require("@nest-boot/graphql");
14
14
  const inflection_1 = require("inflection");
15
15
  const graphql_connection_constants_1 = require("../graphql-connection.constants");
16
16
  const objects_1 = require("../objects");
17
- function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap) {
17
+ function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap, filterQuerySchema) {
18
18
  const pluralizeEntityName = (0, inflection_1.pluralize)(entityName);
19
19
  let Connection = class Connection {
20
20
  };
@@ -43,6 +43,7 @@ function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap) {
43
43
  Reflect.metadata(graphql_connection_constants_1.GRAPHQL_CONNECTION_METADATA, {
44
44
  entityClass,
45
45
  fieldOptionsMap,
46
+ filterQuerySchema,
46
47
  }),
47
48
  (0, graphql_1.ObjectType)(`${entityName}Connection`, {
48
49
  isAbstract: true,
@@ -1 +1 @@
1
- {"version":3,"file":"create-connection.js","sourceRoot":"","sources":["../../src/utils/create-connection.ts"],"names":[],"mappings":";;;;;;;;;;;AAcA,4CAsCC;AAnDD,gDAA4D;AAE5D,2CAAuC;AAEvC,kFAA8E;AAO9E,wCAAsC;AAEtC,SAAgB,gBAAgB,CAC9B,WAAgC,EAChC,UAAkB,EAClB,SAAsC,EACtC,eAA4D;IAE5D,MAAM,mBAAmB,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;IAUlD,IAAM,UAAU,GAAhB,MAAM,UAAU;KAmBf,CAAA;IAbC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,kBAAkB;SAChC,CAAC;;6CAC8B;IAMhC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,kBAAQ,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,mCAAmC;SACjD,CAAC;kCACS,kBAAQ;gDAAC;IAMpB;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,wDAAwD;SACtE,CAAC;;kDACkB;IAlBhB,UAAU;QARf,OAAO,CAAC,QAAQ,CAAC,0DAA2B,EAAE;YAC7C,WAAW;YACX,eAAe;SACqB,CAAC;QACtC,IAAA,oBAAU,EAAC,GAAG,UAAU,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,0DAA0D,mBAAmB,GAAG;SAC9F,CAAC;OACI,UAAU,CAmBf;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"create-connection.js","sourceRoot":"","sources":["../../src/utils/create-connection.ts"],"names":[],"mappings":";;;;;;;;;;;AAgBA,4CAwCC;AAvDD,gDAA4D;AAE5D,2CAAuC;AAIvC,kFAA8E;AAO9E,wCAAsC;AAEtC,SAAgB,gBAAgB,CAC9B,WAAgC,EAChC,UAAkB,EAClB,SAAsC,EACtC,eAAqE,EACrE,iBAA+C;IAE/C,MAAM,mBAAmB,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;IAWlD,IAAM,UAAU,GAAhB,MAAM,UAAU;KAmBf,CAAA;IAbC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,kBAAkB;SAChC,CAAC;;6CAC8B;IAMhC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,kBAAQ,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,mCAAmC;SACjD,CAAC;kCACS,kBAAQ;gDAAC;IAMpB;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,wDAAwD;SACtE,CAAC;;kDACkB;IAlBhB,UAAU;QATf,OAAO,CAAC,QAAQ,CAAC,0DAA2B,EAAE;YAC7C,WAAW;YACX,eAAe;YACf,iBAAiB;SACmB,CAAC;QACtC,IAAA,oBAAU,EAAC,GAAG,UAAU,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,0DAA0D,mBAAmB,GAAG;SAC9F,CAAC;OACI,UAAU,CAmBf;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import { FilterQuery } from "@mikro-orm/core";
2
2
  import { GraphQLScalarType } from "graphql";
3
+ import { FieldType, FilterOptions, FilterQuerySchemaBuilder } from "mikro-orm-filter-query-schema";
3
4
  import { FieldOptions } from "../interfaces";
4
- export type FilterValue = Record<string, unknown>;
5
- export declare function createFilter<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, any, any>>): GraphQLScalarType<FilterQuery<Entity>, FilterValue>;
5
+ export type FilterQuerySchema<Entity extends object> = ReturnType<FilterQuerySchemaBuilder<Entity>["build"]>;
6
+ export interface CreateFilterResult<Entity extends object> {
7
+ Filter: GraphQLScalarType<FilterQuery<Entity>>;
8
+ filterQuerySchema: FilterQuerySchema<Entity>;
9
+ }
10
+ export declare function createFilter<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>, filterOptions?: FilterOptions): CreateFilterResult<Entity>;
@@ -2,67 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createFilter = createFilter;
4
4
  const graphql_1 = require("graphql");
5
- const zod_1 = require("zod");
6
- const errors_1 = require("../errors");
7
- const comparisonOperators = [
8
- "$eq",
9
- "$ne",
10
- "$gt",
11
- "$gte",
12
- "$lt",
13
- "$lte",
14
- "$in",
15
- "$nin",
16
- "$like",
17
- "$ilike",
18
- "$re",
19
- "$fulltext",
20
- "$contains",
21
- "$overlap",
22
- ];
23
- const logicalOperators = ["$and", "$or", "$not"];
24
- function createComparisonSchema() {
25
- const primitiveSchema = zod_1.z.union([
26
- zod_1.z.string(),
27
- zod_1.z.number(),
28
- zod_1.z.boolean(),
29
- zod_1.z.null(),
30
- ]);
31
- const comparisonObjectSchema = zod_1.z
32
- .object({
33
- $eq: primitiveSchema.optional(),
34
- $ne: primitiveSchema.optional(),
35
- $gt: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
36
- $gte: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
37
- $lt: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
38
- $lte: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
39
- $in: zod_1.z.array(primitiveSchema).optional(),
40
- $nin: zod_1.z.array(primitiveSchema).optional(),
41
- $like: zod_1.z.string().optional(),
42
- $ilike: zod_1.z.string().optional(),
43
- $re: zod_1.z.string().optional(),
44
- $fulltext: zod_1.z.string().optional(),
45
- $contains: zod_1.z.array(primitiveSchema).optional(),
46
- $overlap: zod_1.z.array(primitiveSchema).optional(),
47
- })
48
- .strict();
49
- return zod_1.z.union([primitiveSchema, comparisonObjectSchema]);
50
- }
51
- function createFilterSchema() {
52
- const comparisonSchema = createComparisonSchema();
53
- const baseFilterSchema = zod_1.z.lazy(() => zod_1.z.union([
54
- zod_1.z
55
- .object({
56
- $and: zod_1.z.array(baseFilterSchema).optional(),
57
- $or: zod_1.z.array(baseFilterSchema).optional(),
58
- $not: baseFilterSchema.optional(),
59
- })
60
- .catchall(comparisonSchema),
61
- zod_1.z.record(zod_1.z.string(), comparisonSchema),
62
- ]));
63
- return baseFilterSchema;
64
- }
65
- const filterSchema = createFilterSchema();
5
+ const mikro_orm_filter_query_schema_1 = require("mikro-orm-filter-query-schema");
66
6
  function parseJson(value) {
67
7
  if (typeof value === "string") {
68
8
  try {
@@ -74,13 +14,6 @@ function parseJson(value) {
74
14
  }
75
15
  return value;
76
16
  }
77
- function validateSchema(value) {
78
- const result = filterSchema.safeParse(value);
79
- if (!result.success) {
80
- throw new Error(`Invalid filter: ${result.error.message}`);
81
- }
82
- return result.data;
83
- }
84
17
  function parseLiteralValue(ast) {
85
18
  switch (ast.kind) {
86
19
  case graphql_1.Kind.STRING:
@@ -107,103 +40,30 @@ function parseLiteralValue(ast) {
107
40
  throw new Error(`Unexpected AST kind: ${ast.kind}`);
108
41
  }
109
42
  }
110
- function validateFilterFields(filter, fieldOptionsMap, inFieldComparison = false) {
111
- if (filter === null || typeof filter !== "object") {
112
- return;
113
- }
114
- for (const key of Object.keys(filter)) {
115
- if (logicalOperators.includes(key)) {
116
- const value = filter[key];
117
- if (key === "$not" && value !== null && typeof value === "object") {
118
- validateFilterFields(value, fieldOptionsMap, false);
119
- }
120
- else if (Array.isArray(value)) {
121
- for (const item of value) {
122
- validateFilterFields(item, fieldOptionsMap, false);
123
- }
124
- }
125
- continue;
126
- }
127
- if (comparisonOperators.includes(key)) {
128
- if (!inFieldComparison) {
129
- throw new Error(`Comparison operator '${key}' is not allowed at root level. Use it inside a field object, e.g., { "fieldName": { "${key}": value } }`);
130
- }
131
- continue;
132
- }
133
- const fieldOptions = fieldOptionsMap.get(key);
134
- if (typeof fieldOptions === "undefined") {
135
- throw new errors_1.UnknownFieldError(key);
136
- }
137
- if (fieldOptions.filterable === false) {
138
- throw new Error(`Field '${key}' is not filterable`);
139
- }
140
- const fieldValue = filter[key];
141
- if (fieldValue !== null &&
142
- typeof fieldValue === "object" &&
143
- !Array.isArray(fieldValue)) {
144
- validateFilterFields(fieldValue, fieldOptionsMap, true);
145
- }
146
- }
147
- }
148
- function applyReplacement(filter, fieldOptionsMap) {
149
- if (filter === null || typeof filter !== "object") {
150
- return filter;
151
- }
152
- const result = {};
153
- for (const key of Object.keys(filter)) {
154
- const value = filter[key];
155
- if (logicalOperators.includes(key)) {
156
- if (key === "$not" && value !== null && typeof value === "object") {
157
- result[key] = applyReplacement(value, fieldOptionsMap);
158
- }
159
- else if (Array.isArray(value)) {
160
- result[key] = value.map((item) => applyReplacement(item, fieldOptionsMap));
161
- }
162
- else {
163
- result[key] = value;
164
- }
165
- continue;
166
- }
167
- const fieldOptions = fieldOptionsMap.get(key);
168
- if (typeof fieldOptions !== "undefined") {
169
- const replacement = fieldOptions
170
- .replacement;
171
- const targetKey = typeof replacement === "string" ? replacement : fieldOptions.field;
172
- if (value !== null &&
173
- typeof value === "object" &&
174
- !Array.isArray(value)) {
175
- result[targetKey] = applyReplacement(value, fieldOptionsMap);
176
- }
177
- else {
178
- result[targetKey] = value;
179
- }
180
- }
181
- else {
182
- result[key] = value;
183
- }
184
- }
185
- return result;
186
- }
187
- function createFilter(entityName, fieldOptionsMap) {
43
+ function createFilter(entityName, fieldOptionsMap, filterOptions) {
188
44
  const filterableFields = [...fieldOptionsMap.values()]
189
- .filter((field) => field.filterable)
45
+ .filter((field) => field.filterable !== false)
190
46
  .map((field) => field.field);
191
- return new graphql_1.GraphQLScalarType({
47
+ const builder = new mikro_orm_filter_query_schema_1.FilterQuerySchemaBuilder(filterOptions);
48
+ for (const [, options] of fieldOptionsMap) {
49
+ if (options.filterable !== false) {
50
+ builder.addField(options);
51
+ }
52
+ }
53
+ const filterQuerySchema = builder.build();
54
+ const Filter = new graphql_1.GraphQLScalarType({
192
55
  name: `${entityName}Filter`,
193
56
  description: `A filter for ${entityName} that accepts MongoDB query syntax.\nSupported fields: ${filterableFields.join(", ")}`,
194
57
  serialize: (value) => value,
195
58
  parseValue: (value) => {
196
59
  const parsed = parseJson(value);
197
- const validated = validateSchema(parsed);
198
- validateFilterFields(validated, fieldOptionsMap);
199
- return applyReplacement(validated, fieldOptionsMap);
60
+ return filterQuerySchema.parse(parsed);
200
61
  },
201
62
  parseLiteral: (ast) => {
202
63
  const parsed = parseLiteralValue(ast);
203
- const validated = validateSchema(parsed);
204
- validateFilterFields(validated, fieldOptionsMap);
205
- return applyReplacement(validated, fieldOptionsMap);
64
+ return filterQuerySchema.parse(parsed);
206
65
  },
207
66
  });
67
+ return { Filter, filterQuerySchema };
208
68
  }
209
69
  //# sourceMappingURL=create-filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-filter.js","sourceRoot":"","sources":["../../src/utils/create-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-filter.js","sourceRoot":"","sources":["../../src/utils/create-filter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { type Type } from "@nestjs/common";
2
+ import type { FieldType } from "mikro-orm-filter-query-schema";
2
3
  import { FieldOptions, OrderFieldType, OrderInterface } from "../interfaces";
3
4
  export interface CreateOrderResult<Entity extends object> {
4
5
  Order: Type<OrderInterface<Entity>>;
5
6
  OrderField: OrderFieldType<Entity>;
6
7
  }
7
- export declare function createOrder<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, any, any>>): CreateOrderResult<Entity>;
8
+ export declare function createOrder<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>): CreateOrderResult<Entity>;
@@ -1 +1 @@
1
- {"version":3,"file":"create-order.js","sourceRoot":"","sources":["../../src/utils/create-order.ts"],"names":[],"mappings":";;;;;;;;;;;AAmBA,kCA2CC;AA9DD,gDAAwE;AAExE,2CAA6D;AAE7D,oCAA0C;AAe1C,SAAgB,WAAW,CACzB,UAAkB,EAClB,eAA4D;IAE5D,MAAM,kBAAkB,GAAG,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,8BAA8B,GAAG,IAAA,sBAAS,EAAC,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,KAAK,EAAE,EAAE,CAAE,KAA8B,EAAE,QAAQ,CACrD,CAAC;IAEF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CACtC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QACvB,OAAO;YACL,GAAG,MAAM;YACT,CAAC,IAAA,uBAAU,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAC3C,YAAgD,CAAC,WAAW;gBAC7D,YAAY,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC,EACD,EAAE,EAAE,EAAE,IAAI,EAAuC,CAClD,CAAC;IAEF,IAAA,0BAAgB,EAAC,UAAU,EAAE;QAC3B,IAAI,EAAE,GAAG,UAAU,YAAY;QAC/B,WAAW,EAAE,uBAAuB,kBAAkB,8BAA8B;KACrF,CAAC,CAAC;IAKH,IAAM,KAAK,GAAX,MAAM,KAAK;KASV,CAAA;IAJC;QAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAoB,EAAE;YACjC,WAAW,EAAE,sBAAsB,8BAA8B,MAAM;SACxE,CAAC;;wCAC4B;IAG9B;QADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,sBAAc,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;;4CAC7C;IARvB,KAAK;QAHV,IAAA,mBAAS,EAAC,GAAG,UAAU,OAAO,EAAE;YAC/B,WAAW,EAAE,wBAAwB,kBAAkB,cAAc;SACtE,CAAC;OACI,KAAK,CASV;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"create-order.js","sourceRoot":"","sources":["../../src/utils/create-order.ts"],"names":[],"mappings":";;;;;;;;;;;AAmBA,kCA2CC;AA9DD,gDAAwE;AAExE,2CAA6D;AAG7D,oCAA0C;AAc1C,SAAgB,WAAW,CACzB,UAAkB,EAClB,eAAqE;IAErE,MAAM,kBAAkB,GAAG,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,8BAA8B,GAAG,IAAA,sBAAS,EAAC,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,KAAK,EAAE,EAAE,CAAE,KAA8B,EAAE,QAAQ,CACrD,CAAC;IAEF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CACtC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QACvB,OAAO;YACL,GAAG,MAAM;YACT,CAAC,IAAA,uBAAU,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAC3C,YAAyC,CAAC,WAAW;gBACtD,YAAY,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC,EACD,EAAE,EAAE,EAAE,IAAI,EAAuC,CAClD,CAAC;IAEF,IAAA,0BAAgB,EAAC,UAAU,EAAE;QAC3B,IAAI,EAAE,GAAG,UAAU,YAAY;QAC/B,WAAW,EAAE,uBAAuB,kBAAkB,8BAA8B;KACrF,CAAC,CAAC;IAKH,IAAM,KAAK,GAAX,MAAM,KAAK;KASV,CAAA;IAJC;QAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAoB,EAAE;YACjC,WAAW,EAAE,sBAAsB,8BAA8B,MAAM;SACxE,CAAC;;wCAC4B;IAG9B;QADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,sBAAc,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;;4CAC7C;IARvB,KAAK;QAHV,IAAA,mBAAS,EAAC,GAAG,UAAU,OAAO,EAAE;YAC/B,WAAW,EAAE,wBAAwB,kBAAkB,cAAc;SACtE,CAAC;OACI,KAAK,CASV;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nest-boot/graphql-connection",
3
- "version": "7.3.0",
3
+ "version": "7.5.0",
4
4
  "description": "",
5
5
  "author": "d4rkcr0w <me@d4rkcr0w.com>",
6
6
  "homepage": "",
@@ -14,10 +14,11 @@
14
14
  "dist"
15
15
  ],
16
16
  "dependencies": {
17
- "chevrotain": "10.5.0",
18
17
  "inflection": "^3.0.2",
19
18
  "lodash": "^4.17.21",
20
- "zod": "^3.25.67"
19
+ "mikro-orm-filter-query-schema": "^1.1.0",
20
+ "search-syntax": "^3.5.0",
21
+ "zod": "^4.1.13"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@mikro-orm/core": "^6.5.8",
@@ -39,7 +40,7 @@
39
40
  "rxjs": "^7.8.2",
40
41
  "ts-jest": "^29.4.4",
41
42
  "typescript": "^5.9.3",
42
- "@nest-boot/eslint-config": "^7.0.1",
43
+ "@nest-boot/eslint-config": "^7.0.2",
43
44
  "@nest-boot/eslint-plugin": "^7.0.2",
44
45
  "@nest-boot/graphql": "^7.1.1",
45
46
  "@nest-boot/tsconfig": "^7.0.0"
@@ -1,11 +0,0 @@
1
- export declare enum ComparatorOperator {
2
- EQ = "$eq",
3
- LT = "$lt",
4
- GT = "$gt",
5
- LTE = "$lte",
6
- GTE = "$gte",
7
- IN = "$in",
8
- CONTAINS = "$contains",
9
- FULLTEXT = "$fulltext",
10
- LIKE = "$like"
11
- }
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ComparatorOperator = void 0;
4
- var ComparatorOperator;
5
- (function (ComparatorOperator) {
6
- ComparatorOperator["EQ"] = "$eq";
7
- ComparatorOperator["LT"] = "$lt";
8
- ComparatorOperator["GT"] = "$gt";
9
- ComparatorOperator["LTE"] = "$lte";
10
- ComparatorOperator["GTE"] = "$gte";
11
- ComparatorOperator["IN"] = "$in";
12
- ComparatorOperator["CONTAINS"] = "$contains";
13
- ComparatorOperator["FULLTEXT"] = "$fulltext";
14
- ComparatorOperator["LIKE"] = "$like";
15
- })(ComparatorOperator || (exports.ComparatorOperator = ComparatorOperator = {}));
16
- //# sourceMappingURL=comparator-operator.enum.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"comparator-operator.enum.js","sourceRoot":"","sources":["../../src/enums/comparator-operator.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,gCAAU,CAAA;IACV,gCAAU,CAAA;IACV,gCAAU,CAAA;IACV,kCAAY,CAAA;IACZ,kCAAY,CAAA;IACZ,gCAAU,CAAA;IACV,4CAAsB,CAAA;IACtB,4CAAsB,CAAA;IACtB,oCAAc,CAAA;AAChB,CAAC,EAVW,kBAAkB,kCAAlB,kBAAkB,QAU7B"}
@@ -1 +0,0 @@
1
- export * from "./unknown-field.error";
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./unknown-field.error"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
@@ -1,4 +0,0 @@
1
- export declare class UnknownFieldError extends Error {
2
- readonly field: string;
3
- constructor(field: string);
4
- }
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnknownFieldError = void 0;
4
- class UnknownFieldError extends Error {
5
- constructor(field) {
6
- super(`Unknown field: ${field}`);
7
- this.field = field;
8
- this.name = "UnknownFieldError";
9
- }
10
- }
11
- exports.UnknownFieldError = UnknownFieldError;
12
- //# sourceMappingURL=unknown-field.error.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unknown-field.error.js","sourceRoot":"","sources":["../../src/errors/unknown-field.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAA4B,KAAa;QACvC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QADP,UAAK,GAAL,KAAK,CAAQ;QAEvC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC"}
@@ -1,24 +0,0 @@
1
- import type { FilterQuery } from "@mikro-orm/core";
2
- import { AutoPath } from "@mikro-orm/core/typings";
3
- import { ReplacementArgs } from "./replacement-args.interface";
4
- export interface BaseFieldOptions<Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> {
5
- type: Type;
6
- field: string;
7
- array?: boolean;
8
- fulltext?: boolean;
9
- searchable?: boolean;
10
- filterable?: boolean;
11
- }
12
- export interface SortableFieldOptions<Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends BaseFieldOptions<Type> {
13
- sortable?: boolean;
14
- }
15
- export interface SimpleFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends SortableFieldOptions<Type> {
16
- field: Extract<keyof Entity, string>;
17
- }
18
- export interface ReplacementFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never, Field extends string = never> extends SortableFieldOptions<Type> {
19
- replacement: Extract<AutoPath<Entity, Field>, string>;
20
- }
21
- export interface ReplacementFunctionFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends BaseFieldOptions<Type> {
22
- replacement?: (args: ReplacementArgs<Type>) => FilterQuery<Entity>;
23
- }
24
- export type FieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never, Field extends string = never> = SimpleFieldOptions<Entity, Type> | ReplacementFieldOptions<Entity, Type, Field> | ReplacementFunctionFieldOptions<Entity, Type>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/field-options.interface.ts"],"names":[],"mappings":""}
@@ -1,9 +0,0 @@
1
- import { EntityManager } from "@mikro-orm/core";
2
- import { type ComparatorOperator } from "../enums";
3
- export interface ReplacementArgs<Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> {
4
- entityManager: EntityManager;
5
- type: Type;
6
- field: string;
7
- operator: ComparatorOperator;
8
- value: (Type extends "string" ? string : Type extends "number" ? number : Type extends "bigint" ? bigint : Type extends "boolean" ? boolean : Date) | (Type extends "string" ? string : Type extends "number" ? number : Type extends "bigint" ? bigint : Type extends "boolean" ? boolean : Date)[];
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"replacement-args.interface.js","sourceRoot":"","sources":["../../src/interfaces/replacement-args.interface.ts"],"names":[],"mappings":""}
@@ -1,12 +0,0 @@
1
- import type { FilterQuery } from "@mikro-orm/core";
2
- import { AutoPath } from "@mikro-orm/core/typings";
3
- import { ReplacementArgs } from "./replacement-args.interface";
4
- export interface SearchSyntaxFieldOptions<Entity extends object, Fields extends string = never, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> {
5
- field: string;
6
- type: Type;
7
- replacement?: AutoPath<Entity, Fields> | ((args: ReplacementArgs<Type>) => FilterQuery<Entity>);
8
- array?: boolean;
9
- fulltext?: boolean;
10
- searchable?: boolean;
11
- filterable?: boolean;
12
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=search-syntax-field-options.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-syntax-field-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/search-syntax-field-options.interface.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export {};
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const chevrotain_1 = require("chevrotain");
4
- const fs_1 = require("fs");
5
- const path_1 = require("path");
6
- const search_syntax_parser_1 = require("../search-syntax.parser");
7
- (0, fs_1.writeFileSync)((0, path_1.resolve)(__dirname, "./cst.d.ts"), `/* eslint-disable */\n${(0, chevrotain_1.generateCstDts)(search_syntax_parser_1.searchSyntaxParser.getGAstProductions())}`);
8
- //# sourceMappingURL=generate-cst-dts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-cst-dts.js","sourceRoot":"","sources":["../../src/scripts/generate-cst-dts.ts"],"names":[],"mappings":";;AAAA,2CAA4C;AAC5C,2BAAmC;AACnC,+BAA+B;AAE/B,kEAA6D;AAE7D,IAAA,kBAAa,EACX,IAAA,cAAO,EAAC,SAAS,EAAE,YAAY,CAAC,EAChC,yBAAyB,IAAA,2BAAc,EAAC,yCAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CACnF,CAAC"}
@@ -1,5 +0,0 @@
1
- import { Lexer } from "chevrotain";
2
- export declare class SearchSyntaxLexer extends Lexer {
3
- constructor();
4
- }
5
- export declare const searchSyntaxLexer: SearchSyntaxLexer;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.searchSyntaxLexer = exports.SearchSyntaxLexer = void 0;
4
- const chevrotain_1 = require("chevrotain");
5
- const tokens_1 = require("./tokens");
6
- class SearchSyntaxLexer extends chevrotain_1.Lexer {
7
- constructor() {
8
- super(tokens_1.tokens);
9
- }
10
- }
11
- exports.SearchSyntaxLexer = SearchSyntaxLexer;
12
- exports.searchSyntaxLexer = new SearchSyntaxLexer();
13
- //# sourceMappingURL=search-syntax.lexer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search-syntax.lexer.js","sourceRoot":"","sources":["../src/search-syntax.lexer.ts"],"names":[],"mappings":";;;AAAA,2CAAmC;AAEnC,qCAAkC;AAElC,MAAa,iBAAkB,SAAQ,kBAAK;IAC1C;QACE,KAAK,CAAC,eAAM,CAAC,CAAC;IAChB,CAAC;CACF;AAJD,8CAIC;AAEY,QAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { CstParser } from "chevrotain";
2
- export declare class SearchSyntaxParser extends CstParser {
3
- [key: string]: any;
4
- constructor();
5
- }
6
- export declare const searchSyntaxParser: SearchSyntaxParser;