@nest-boot/graphql-connection 7.2.1 → 7.4.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 (157) hide show
  1. package/dist/connection-query-builder.d.ts +1 -0
  2. package/dist/connection-query-builder.js +24 -54
  3. package/dist/connection-query-builder.js.map +1 -1
  4. package/dist/connection.builder.d.ts +8 -7
  5. package/dist/connection.builder.js +19 -157
  6. package/dist/connection.builder.js.map +1 -1
  7. package/dist/enums/index.d.ts +0 -1
  8. package/dist/enums/index.js +0 -1
  9. package/dist/enums/index.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/interfaces/connection-args.interface.d.ts +2 -0
  14. package/dist/interfaces/connection-builder-options.interface.d.ts +4 -0
  15. package/dist/interfaces/{replacement-args.interface.js → connection-builder-options.interface.js} +1 -1
  16. package/dist/interfaces/connection-builder-options.interface.js.map +1 -0
  17. package/dist/interfaces/connection-metadata.interface.d.ts +5 -2
  18. package/dist/interfaces/field-options.interface.d.ts +7 -19
  19. package/dist/interfaces/index.d.ts +1 -1
  20. package/dist/interfaces/index.js +1 -1
  21. package/dist/interfaces/index.js.map +1 -1
  22. package/dist/tsconfig.build.tsbuildinfo +1 -1
  23. package/dist/utils/create-connection-args.d.ts +6 -0
  24. package/dist/utils/create-connection-args.js +80 -0
  25. package/dist/utils/create-connection-args.js.map +1 -0
  26. package/dist/utils/create-connection.d.ts +6 -0
  27. package/dist/utils/create-connection.js +55 -0
  28. package/dist/utils/create-connection.js.map +1 -0
  29. package/dist/utils/create-edge.d.ts +4 -0
  30. package/dist/utils/create-edge.js +37 -0
  31. package/dist/utils/create-edge.js.map +1 -0
  32. package/dist/utils/create-filter.d.ts +10 -0
  33. package/dist/utils/create-filter.js +69 -0
  34. package/dist/utils/create-filter.js.map +1 -0
  35. package/dist/utils/create-order.d.ts +8 -0
  36. package/dist/utils/create-order.js +50 -0
  37. package/dist/utils/create-order.js.map +1 -0
  38. package/dist/utils/index.d.ts +5 -1
  39. package/dist/utils/index.js +5 -1
  40. package/dist/utils/index.js.map +1 -1
  41. package/package.json +10 -8
  42. package/dist/enums/comparator-operator.enum.d.ts +0 -11
  43. package/dist/enums/comparator-operator.enum.js +0 -16
  44. package/dist/enums/comparator-operator.enum.js.map +0 -1
  45. package/dist/interfaces/replacement-args.interface.d.ts +0 -9
  46. package/dist/interfaces/replacement-args.interface.js.map +0 -1
  47. package/dist/interfaces/search-syntax-field-options.interface.d.ts +0 -12
  48. package/dist/interfaces/search-syntax-field-options.interface.js +0 -3
  49. package/dist/interfaces/search-syntax-field-options.interface.js.map +0 -1
  50. package/dist/scripts/generate-cst-dts.d.ts +0 -1
  51. package/dist/scripts/generate-cst-dts.js +0 -8
  52. package/dist/scripts/generate-cst-dts.js.map +0 -1
  53. package/dist/search-syntax.lexer.d.ts +0 -5
  54. package/dist/search-syntax.lexer.js +0 -13
  55. package/dist/search-syntax.lexer.js.map +0 -1
  56. package/dist/search-syntax.parser.d.ts +0 -6
  57. package/dist/search-syntax.parser.js +0 -91
  58. package/dist/search-syntax.parser.js.map +0 -1
  59. package/dist/search-syntax.visitor.d.ts +0 -24
  60. package/dist/search-syntax.visitor.js +0 -325
  61. package/dist/search-syntax.visitor.js.map +0 -1
  62. package/dist/tokens/Comma.d.ts +0 -1
  63. package/dist/tokens/Comma.js +0 -9
  64. package/dist/tokens/Comma.js.map +0 -1
  65. package/dist/tokens/Identifier.d.ts +0 -1
  66. package/dist/tokens/Identifier.js +0 -14
  67. package/dist/tokens/Identifier.js.map +0 -1
  68. package/dist/tokens/UnquotedLiteral.d.ts +0 -1
  69. package/dist/tokens/UnquotedLiteral.js +0 -11
  70. package/dist/tokens/UnquotedLiteral.js.map +0 -1
  71. package/dist/tokens/WhiteSpace.d.ts +0 -1
  72. package/dist/tokens/WhiteSpace.js +0 -12
  73. package/dist/tokens/WhiteSpace.js.map +0 -1
  74. package/dist/tokens/Wildcard.d.ts +0 -1
  75. package/dist/tokens/Wildcard.js +0 -9
  76. package/dist/tokens/Wildcard.js.map +0 -1
  77. package/dist/tokens/brackets/LeftBracket.d.ts +0 -1
  78. package/dist/tokens/brackets/LeftBracket.js +0 -9
  79. package/dist/tokens/brackets/LeftBracket.js.map +0 -1
  80. package/dist/tokens/brackets/RightBracket.d.ts +0 -1
  81. package/dist/tokens/brackets/RightBracket.js +0 -9
  82. package/dist/tokens/brackets/RightBracket.js.map +0 -1
  83. package/dist/tokens/brackets/index.d.ts +0 -3
  84. package/dist/tokens/brackets/index.js +0 -23
  85. package/dist/tokens/brackets/index.js.map +0 -1
  86. package/dist/tokens/comparators/Comparator.d.ts +0 -1
  87. package/dist/tokens/comparators/Comparator.js +0 -9
  88. package/dist/tokens/comparators/Comparator.js.map +0 -1
  89. package/dist/tokens/comparators/Equal.d.ts +0 -1
  90. package/dist/tokens/comparators/Equal.js +0 -11
  91. package/dist/tokens/comparators/Equal.js.map +0 -1
  92. package/dist/tokens/comparators/GreaterThan.d.ts +0 -1
  93. package/dist/tokens/comparators/GreaterThan.js +0 -11
  94. package/dist/tokens/comparators/GreaterThan.js.map +0 -1
  95. package/dist/tokens/comparators/GreaterThanOrEqual.d.ts +0 -1
  96. package/dist/tokens/comparators/GreaterThanOrEqual.js +0 -11
  97. package/dist/tokens/comparators/GreaterThanOrEqual.js.map +0 -1
  98. package/dist/tokens/comparators/LessThan.d.ts +0 -1
  99. package/dist/tokens/comparators/LessThan.js +0 -11
  100. package/dist/tokens/comparators/LessThan.js.map +0 -1
  101. package/dist/tokens/comparators/LessThanOrEqual.d.ts +0 -1
  102. package/dist/tokens/comparators/LessThanOrEqual.js +0 -11
  103. package/dist/tokens/comparators/LessThanOrEqual.js.map +0 -1
  104. package/dist/tokens/comparators/index.d.ts +0 -7
  105. package/dist/tokens/comparators/index.js +0 -38
  106. package/dist/tokens/comparators/index.js.map +0 -1
  107. package/dist/tokens/connectives/And.d.ts +0 -1
  108. package/dist/tokens/connectives/And.js +0 -11
  109. package/dist/tokens/connectives/And.js.map +0 -1
  110. package/dist/tokens/connectives/Not.d.ts +0 -1
  111. package/dist/tokens/connectives/Not.js +0 -11
  112. package/dist/tokens/connectives/Not.js.map +0 -1
  113. package/dist/tokens/connectives/Or.d.ts +0 -1
  114. package/dist/tokens/connectives/Or.js +0 -11
  115. package/dist/tokens/connectives/Or.js.map +0 -1
  116. package/dist/tokens/connectives/index.d.ts +0 -4
  117. package/dist/tokens/connectives/index.js +0 -25
  118. package/dist/tokens/connectives/index.js.map +0 -1
  119. package/dist/tokens/fields/Field.d.ts +0 -1
  120. package/dist/tokens/fields/Field.js +0 -9
  121. package/dist/tokens/fields/Field.js.map +0 -1
  122. package/dist/tokens/fields/NestedField.d.ts +0 -1
  123. package/dist/tokens/fields/NestedField.js +0 -13
  124. package/dist/tokens/fields/NestedField.js.map +0 -1
  125. package/dist/tokens/fields/index.d.ts +0 -3
  126. package/dist/tokens/fields/index.js +0 -23
  127. package/dist/tokens/fields/index.js.map +0 -1
  128. package/dist/tokens/index.d.ts +0 -1
  129. package/dist/tokens/index.js +0 -31
  130. package/dist/tokens/index.js.map +0 -1
  131. package/dist/tokens/values/Date.d.ts +0 -1
  132. package/dist/tokens/values/Date.js +0 -12
  133. package/dist/tokens/values/Date.js.map +0 -1
  134. package/dist/tokens/values/False.d.ts +0 -1
  135. package/dist/tokens/values/False.js +0 -13
  136. package/dist/tokens/values/False.js.map +0 -1
  137. package/dist/tokens/values/Null.d.ts +0 -1
  138. package/dist/tokens/values/Null.js +0 -13
  139. package/dist/tokens/values/Null.js.map +0 -1
  140. package/dist/tokens/values/Number.d.ts +0 -1
  141. package/dist/tokens/values/Number.js +0 -13
  142. package/dist/tokens/values/Number.js.map +0 -1
  143. package/dist/tokens/values/QuotedString.d.ts +0 -1
  144. package/dist/tokens/values/QuotedString.js +0 -11
  145. package/dist/tokens/values/QuotedString.js.map +0 -1
  146. package/dist/tokens/values/True.d.ts +0 -1
  147. package/dist/tokens/values/True.js +0 -13
  148. package/dist/tokens/values/True.js.map +0 -1
  149. package/dist/tokens/values/Value.d.ts +0 -1
  150. package/dist/tokens/values/Value.js +0 -9
  151. package/dist/tokens/values/Value.js.map +0 -1
  152. package/dist/tokens/values/index.d.ts +0 -7
  153. package/dist/tokens/values/index.js +0 -32
  154. package/dist/tokens/values/index.js.map +0 -1
  155. package/dist/utils/infer-type.d.ts +0 -1
  156. package/dist/utils/infer-type.js +0 -14
  157. package/dist/utils/infer-type.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ import type { FilterQuery } from "@mikro-orm/core";
2
+ import { type Type } from "@nestjs/common";
3
+ import { GraphQLScalarType } from "graphql";
4
+ import type { FieldType } from "mikro-orm-filter-query-schema";
5
+ import { ConnectionArgsInterface, FieldOptions, OrderInterface } from "../interfaces";
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>>;
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createConnectionArgs = createConnectionArgs;
13
+ const graphql_1 = require("@nest-boot/graphql");
14
+ const inflection_1 = require("inflection");
15
+ function createConnectionArgs(entityName, fieldOptionsMap, OrderClass, FilterScalar) {
16
+ const humanizeAndPluralizeEntityName = (0, inflection_1.pluralize)((0, inflection_1.humanize)(entityName, true));
17
+ const filterableFields = [...fieldOptionsMap.values()].filter((field) => field.filterable);
18
+ let ConnectionArgs = class ConnectionArgs {
19
+ };
20
+ __decorate([
21
+ (0, graphql_1.Field)(() => String, {
22
+ nullable: true,
23
+ ...(filterableFields.length > 0
24
+ ? {
25
+ description: `Apply one or multiple filters to the query.\nSupported filter parameters:\n${filterableFields
26
+ .map(({ field }) => `\`${field}\``)
27
+ .join(", ")}`,
28
+ }
29
+ : {}),
30
+ }),
31
+ __metadata("design:type", String)
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);
40
+ __decorate([
41
+ (0, graphql_1.Field)(() => graphql_1.Int, {
42
+ nullable: true,
43
+ description: "Returns up to the first `n` elements from the list.",
44
+ }),
45
+ __metadata("design:type", Number)
46
+ ], ConnectionArgs.prototype, "first", void 0);
47
+ __decorate([
48
+ (0, graphql_1.Field)(() => graphql_1.Int, {
49
+ nullable: true,
50
+ description: "Returns up to the last `n` elements from the list.",
51
+ }),
52
+ __metadata("design:type", Number)
53
+ ], ConnectionArgs.prototype, "last", void 0);
54
+ __decorate([
55
+ (0, graphql_1.Field)(() => String, {
56
+ description: `Returns the elements that come after the specified cursor.`,
57
+ nullable: true,
58
+ }),
59
+ __metadata("design:type", String)
60
+ ], ConnectionArgs.prototype, "after", void 0);
61
+ __decorate([
62
+ (0, graphql_1.Field)(() => String, {
63
+ description: `Returns the elements that come before the specified cursor.`,
64
+ nullable: true,
65
+ }),
66
+ __metadata("design:type", String)
67
+ ], ConnectionArgs.prototype, "before", void 0);
68
+ __decorate([
69
+ (0, graphql_1.Field)(() => OrderClass, {
70
+ nullable: true,
71
+ description: `Ordering options for the returned ${humanizeAndPluralizeEntityName}.`,
72
+ }),
73
+ __metadata("design:type", Object)
74
+ ], ConnectionArgs.prototype, "orderBy", void 0);
75
+ ConnectionArgs = __decorate([
76
+ (0, graphql_1.ArgsType)(`${entityName}ConnectionArgs`)
77
+ ], ConnectionArgs);
78
+ return ConnectionArgs;
79
+ }
80
+ //# sourceMappingURL=create-connection-args.js.map
@@ -0,0 +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,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"}
@@ -0,0 +1,6 @@
1
+ import type { EntityClass, FilterQuery } from "@mikro-orm/core";
2
+ import { type Type } from "@nestjs/common";
3
+ import type { FieldType } from "mikro-orm-filter-query-schema";
4
+ import type { ZodType } from "zod";
5
+ import { ConnectionInterface, EdgeInterface, FieldOptions } from "../interfaces";
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>>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createConnection = createConnection;
13
+ const graphql_1 = require("@nest-boot/graphql");
14
+ const inflection_1 = require("inflection");
15
+ const graphql_connection_constants_1 = require("../graphql-connection.constants");
16
+ const objects_1 = require("../objects");
17
+ function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap, filterQuerySchema) {
18
+ const pluralizeEntityName = (0, inflection_1.pluralize)(entityName);
19
+ let Connection = class Connection {
20
+ };
21
+ __decorate([
22
+ (0, graphql_1.Field)(() => [EdgeClass], {
23
+ complexity: 0,
24
+ description: `A list of edges.`,
25
+ }),
26
+ __metadata("design:type", Array)
27
+ ], Connection.prototype, "edges", void 0);
28
+ __decorate([
29
+ (0, graphql_1.Field)(() => objects_1.PageInfo, {
30
+ complexity: 0,
31
+ description: `Information to aid in pagination.`,
32
+ }),
33
+ __metadata("design:type", objects_1.PageInfo)
34
+ ], Connection.prototype, "pageInfo", void 0);
35
+ __decorate([
36
+ (0, graphql_1.Field)(() => graphql_1.Int, {
37
+ complexity: 0,
38
+ description: `Identifies the total count of items in the connection.`,
39
+ }),
40
+ __metadata("design:type", Number)
41
+ ], Connection.prototype, "totalCount", void 0);
42
+ Connection = __decorate([
43
+ Reflect.metadata(graphql_connection_constants_1.GRAPHQL_CONNECTION_METADATA, {
44
+ entityClass,
45
+ fieldOptionsMap,
46
+ filterQuerySchema,
47
+ }),
48
+ (0, graphql_1.ObjectType)(`${entityName}Connection`, {
49
+ isAbstract: true,
50
+ description: `An auto-generated type for paginating through multiple ${pluralizeEntityName}.`,
51
+ })
52
+ ], Connection);
53
+ return Connection;
54
+ }
55
+ //# sourceMappingURL=create-connection.js.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,4 @@
1
+ import type { EntityClass } from "@mikro-orm/core";
2
+ import { type Type } from "@nestjs/common";
3
+ import { EdgeInterface } from "../interfaces";
4
+ export declare function createEdge<Entity extends object>(entityClass: EntityClass<Entity>, entityName: string): Type<EdgeInterface<Entity>>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createEdge = createEdge;
13
+ const graphql_1 = require("@nest-boot/graphql");
14
+ function createEdge(entityClass, entityName) {
15
+ let Edge = class Edge {
16
+ };
17
+ __decorate([
18
+ (0, graphql_1.Field)(() => entityClass, {
19
+ description: `The item at the end of ${entityName}Edge.`,
20
+ }),
21
+ __metadata("design:type", Object)
22
+ ], Edge.prototype, "node", void 0);
23
+ __decorate([
24
+ (0, graphql_1.Field)(() => String, {
25
+ complexity: 0,
26
+ description: `A cursor for use in pagination.`,
27
+ }),
28
+ __metadata("design:type", String)
29
+ ], Edge.prototype, "cursor", void 0);
30
+ Edge = __decorate([
31
+ (0, graphql_1.ObjectType)(`${entityName}Edge`, {
32
+ description: `An auto-generated type which holds one ${entityName} and a cursor during pagination.`,
33
+ })
34
+ ], Edge);
35
+ return Edge;
36
+ }
37
+ //# sourceMappingURL=create-edge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-edge.js","sourceRoot":"","sources":["../../src/utils/create-edge.ts"],"names":[],"mappings":";;;;;;;;;;;AAMA,gCAsBC;AA3BD,gDAAuD;AAKvD,SAAgB,UAAU,CACxB,WAAgC,EAChC,UAAkB;IAKlB,IAAM,IAAI,GAAV,MAAM,IAAI;KAYT,CAAA;IAPC;QAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,WAAW,EAAE;YACxB,WAAW,EAAE,0BAA0B,UAAU,OAAO;SACzD,CAAC;;sCACY;IAMd;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,iCAAiC;SAC/C,CAAC;;wCACc;IAXZ,IAAI;QAHT,IAAA,oBAAU,EAAC,GAAG,UAAU,MAAM,EAAE;YAC/B,WAAW,EAAE,0CAA0C,UAAU,kCAAkC;SACpG,CAAC;OACI,IAAI,CAYT;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FilterQuery } from "@mikro-orm/core";
2
+ import { GraphQLScalarType } from "graphql";
3
+ import { FieldType, FilterOptions, FilterQuerySchemaBuilder } from "mikro-orm-filter-query-schema";
4
+ import { FieldOptions } from "../interfaces";
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>;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createFilter = createFilter;
4
+ const graphql_1 = require("graphql");
5
+ const mikro_orm_filter_query_schema_1 = require("mikro-orm-filter-query-schema");
6
+ function parseJson(value) {
7
+ if (typeof value === "string") {
8
+ try {
9
+ return JSON.parse(value);
10
+ }
11
+ catch {
12
+ throw new Error("Filter must be a valid JSON string");
13
+ }
14
+ }
15
+ return value;
16
+ }
17
+ function parseLiteralValue(ast) {
18
+ switch (ast.kind) {
19
+ case graphql_1.Kind.STRING:
20
+ case graphql_1.Kind.ENUM:
21
+ return ast.value;
22
+ case graphql_1.Kind.OBJECT: {
23
+ const obj = {};
24
+ for (const field of ast.fields) {
25
+ obj[field.name.value] = parseLiteralValue(field.value);
26
+ }
27
+ return obj;
28
+ }
29
+ case graphql_1.Kind.LIST:
30
+ return ast.values.map(parseLiteralValue);
31
+ case graphql_1.Kind.INT:
32
+ return parseInt(ast.value, 10);
33
+ case graphql_1.Kind.FLOAT:
34
+ return parseFloat(ast.value);
35
+ case graphql_1.Kind.BOOLEAN:
36
+ return ast.value;
37
+ case graphql_1.Kind.NULL:
38
+ return null;
39
+ default:
40
+ throw new Error(`Unexpected AST kind: ${ast.kind}`);
41
+ }
42
+ }
43
+ function createFilter(entityName, fieldOptionsMap, filterOptions) {
44
+ const filterableFields = [...fieldOptionsMap.values()]
45
+ .filter((field) => field.filterable !== false)
46
+ .map((field) => field.field);
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({
55
+ name: `${entityName}Filter`,
56
+ description: `A filter for ${entityName} that accepts MongoDB query syntax.\nSupported fields: ${filterableFields.join(", ")}`,
57
+ serialize: (value) => value,
58
+ parseValue: (value) => {
59
+ const parsed = parseJson(value);
60
+ return filterQuerySchema.parse(parsed);
61
+ },
62
+ parseLiteral: (ast) => {
63
+ const parsed = parseLiteralValue(ast);
64
+ return filterQuerySchema.parse(parsed);
65
+ },
66
+ });
67
+ return { Filter, filterQuerySchema };
68
+ }
69
+ //# sourceMappingURL=create-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-filter.js","sourceRoot":"","sources":["../../src/utils/create-filter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { type Type } from "@nestjs/common";
2
+ import type { FieldType } from "mikro-orm-filter-query-schema";
3
+ import { FieldOptions, OrderFieldType, OrderInterface } from "../interfaces";
4
+ export interface CreateOrderResult<Entity extends object> {
5
+ Order: Type<OrderInterface<Entity>>;
6
+ OrderField: OrderFieldType<Entity>;
7
+ }
8
+ export declare function createOrder<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>): CreateOrderResult<Entity>;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.createOrder = createOrder;
13
+ const graphql_1 = require("@nest-boot/graphql");
14
+ const inflection_1 = require("inflection");
15
+ const enums_1 = require("../enums");
16
+ function createOrder(entityName, fieldOptionsMap) {
17
+ const humanizeEntityName = (0, inflection_1.humanize)(entityName, true);
18
+ const humanizeAndPluralizeEntityName = (0, inflection_1.pluralize)((0, inflection_1.humanize)(entityName, true));
19
+ const sortableFields = [...fieldOptionsMap.values()].filter((field) => field?.sortable);
20
+ const OrderField = sortableFields.reduce((result, fieldOptions) => {
21
+ return {
22
+ ...result,
23
+ [(0, inflection_1.underscore)(fieldOptions.field).toUpperCase()]: fieldOptions.replacement ??
24
+ fieldOptions.field,
25
+ };
26
+ }, { ID: "id" });
27
+ (0, graphql_1.registerEnumType)(OrderField, {
28
+ name: `${entityName}OrderField`,
29
+ description: `Properties by which ${humanizeEntityName} connections can be ordered.`,
30
+ });
31
+ let Order = class Order {
32
+ };
33
+ __decorate([
34
+ (0, graphql_1.Field)(() => OrderField, {
35
+ description: `The field to order ${humanizeAndPluralizeEntityName} by.`,
36
+ }),
37
+ __metadata("design:type", String)
38
+ ], Order.prototype, "field", void 0);
39
+ __decorate([
40
+ (0, graphql_1.Field)(() => enums_1.OrderDirection, { description: `The ordering direction.` }),
41
+ __metadata("design:type", String)
42
+ ], Order.prototype, "direction", void 0);
43
+ Order = __decorate([
44
+ (0, graphql_1.InputType)(`${entityName}Order`, {
45
+ description: `Ordering options for ${humanizeEntityName} connections`,
46
+ })
47
+ ], Order);
48
+ return { Order, OrderField };
49
+ }
50
+ //# sourceMappingURL=create-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-order.js","sourceRoot":"","sources":["../../src/utils/create-order.ts"],"names":[],"mappings":";;;;;;;;;;;AAoBA,kCA2CC;AA/DD,gDAAwE;AAExE,2CAA6D;AAG7D,oCAA0C;AAe1C,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,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 +1,5 @@
1
- export * from "./infer-type";
1
+ export * from "./create-connection";
2
+ export * from "./create-connection-args";
3
+ export * from "./create-edge";
4
+ export * from "./create-filter";
5
+ export * from "./create-order";
@@ -14,5 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./infer-type"), exports);
17
+ __exportStar(require("./create-connection"), exports);
18
+ __exportStar(require("./create-connection-args"), exports);
19
+ __exportStar(require("./create-edge"), exports);
20
+ __exportStar(require("./create-filter"), exports);
21
+ __exportStar(require("./create-order"), exports);
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,2DAAyC;AACzC,gDAA8B;AAC9B,kDAAgC;AAChC,iDAA+B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nest-boot/graphql-connection",
3
- "version": "7.2.1",
3
+ "version": "7.4.0",
4
4
  "description": "",
5
5
  "author": "d4rkcr0w <me@d4rkcr0w.com>",
6
6
  "homepage": "",
@@ -14,17 +14,15 @@
14
14
  "dist"
15
15
  ],
16
16
  "dependencies": {
17
- "chevrotain": "10.5.0",
18
17
  "inflection": "^3.0.2",
19
- "lodash": "^4.17.21"
18
+ "lodash": "^4.17.21",
19
+ "mikro-orm-filter-query-schema": "^1.0.0",
20
+ "search-syntax": "^3.4.0",
21
+ "zod": "^4.1.13"
20
22
  },
21
23
  "devDependencies": {
22
24
  "@mikro-orm/core": "^6.5.8",
23
25
  "@mikro-orm/knex": "^6.5.8",
24
- "@nest-boot/eslint-config": "^7.0.0",
25
- "@nest-boot/eslint-plugin": "^7.0.0",
26
- "@nest-boot/graphql": "^7.1.1",
27
- "@nest-boot/tsconfig": "^7.0.0",
28
26
  "@nestjs/apollo": "^13.2.1",
29
27
  "@nestjs/common": "^11.1.9",
30
28
  "@nestjs/core": "^11.1.9",
@@ -41,7 +39,11 @@
41
39
  "reflect-metadata": "^0.2.2",
42
40
  "rxjs": "^7.8.2",
43
41
  "ts-jest": "^29.4.4",
44
- "typescript": "^5.9.3"
42
+ "typescript": "^5.9.3",
43
+ "@nest-boot/eslint-config": "^7.0.1",
44
+ "@nest-boot/tsconfig": "^7.0.0",
45
+ "@nest-boot/eslint-plugin": "^7.0.2",
46
+ "@nest-boot/graphql": "^7.1.1"
45
47
  },
46
48
  "peerDependencies": {
47
49
  "@mikro-orm/core": "^6.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,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;