@graphitation/supermassive 3.0.0-alpha.6 → 3.0.0-alpha.7

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 (90) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +10 -2
  3. package/lib/benchmarks/index.js.map +2 -2
  4. package/lib/benchmarks/index.mjs.map +2 -2
  5. package/lib/collectFields.d.ts.map +1 -1
  6. package/lib/collectFields.js +6 -5
  7. package/lib/collectFields.js.map +2 -2
  8. package/lib/collectFields.mjs +6 -5
  9. package/lib/collectFields.mjs.map +2 -2
  10. package/lib/executeWithoutSchema.d.ts +1 -3
  11. package/lib/executeWithoutSchema.d.ts.map +1 -1
  12. package/lib/executeWithoutSchema.js +153 -69
  13. package/lib/executeWithoutSchema.js.map +2 -2
  14. package/lib/executeWithoutSchema.mjs +143 -71
  15. package/lib/executeWithoutSchema.mjs.map +2 -2
  16. package/lib/index.d.ts +4 -4
  17. package/lib/index.d.ts.map +1 -1
  18. package/lib/index.js +5 -1
  19. package/lib/index.js.map +2 -2
  20. package/lib/index.mjs +10 -2
  21. package/lib/index.mjs.map +2 -2
  22. package/lib/schema/definition.d.ts +43 -33
  23. package/lib/schema/definition.d.ts.map +1 -1
  24. package/lib/schema/definition.js +284 -9
  25. package/lib/schema/definition.js.map +2 -2
  26. package/lib/schema/definition.mjs +284 -55
  27. package/lib/schema/definition.mjs.map +3 -3
  28. package/lib/schema/directives.d.ts.map +1 -1
  29. package/lib/schema/directives.js +3 -3
  30. package/lib/schema/directives.js.map +2 -2
  31. package/lib/schema/directives.mjs +4 -4
  32. package/lib/schema/directives.mjs.map +2 -2
  33. package/lib/schema/reference.d.ts +3 -1
  34. package/lib/schema/reference.d.ts.map +1 -1
  35. package/lib/schema/reference.js.map +2 -2
  36. package/lib/schema/reference.mjs.map +2 -2
  37. package/lib/schema/resolvers.d.ts +10 -4
  38. package/lib/schema/resolvers.d.ts.map +1 -1
  39. package/lib/schema/resolvers.js +92 -9
  40. package/lib/schema/resolvers.js.map +2 -2
  41. package/lib/schema/resolvers.mjs +99 -9
  42. package/lib/schema/resolvers.mjs.map +2 -2
  43. package/lib/types.d.ts +25 -2
  44. package/lib/types.d.ts.map +1 -1
  45. package/lib/types.js.map +1 -1
  46. package/lib/utilities/coerceInputValue.d.ts +3 -3
  47. package/lib/utilities/coerceInputValue.d.ts.map +1 -1
  48. package/lib/utilities/coerceInputValue.js +17 -12
  49. package/lib/utilities/coerceInputValue.js.map +2 -2
  50. package/lib/utilities/coerceInputValue.mjs +22 -12
  51. package/lib/utilities/coerceInputValue.mjs.map +2 -2
  52. package/lib/utilities/decodeASTSchema.d.ts.map +1 -1
  53. package/lib/utilities/decodeASTSchema.js +32 -40
  54. package/lib/utilities/decodeASTSchema.js.map +2 -2
  55. package/lib/utilities/decodeASTSchema.mjs +51 -49
  56. package/lib/utilities/decodeASTSchema.mjs.map +2 -2
  57. package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
  58. package/lib/utilities/encodeASTSchema.js +16 -20
  59. package/lib/utilities/encodeASTSchema.js.map +2 -2
  60. package/lib/utilities/encodeASTSchema.mjs +22 -21
  61. package/lib/utilities/encodeASTSchema.mjs.map +2 -2
  62. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts.map +1 -1
  63. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +20 -22
  64. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +2 -2
  65. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +35 -29
  66. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +2 -2
  67. package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -1
  68. package/lib/utilities/mergeSchemaDefinitions.js +18 -28
  69. package/lib/utilities/mergeSchemaDefinitions.js.map +2 -2
  70. package/lib/utilities/mergeSchemaDefinitions.mjs +28 -34
  71. package/lib/utilities/mergeSchemaDefinitions.mjs.map +2 -2
  72. package/lib/utilities/valueFromAST.d.ts +3 -3
  73. package/lib/utilities/valueFromAST.d.ts.map +1 -1
  74. package/lib/utilities/valueFromAST.js +23 -10
  75. package/lib/utilities/valueFromAST.js.map +2 -2
  76. package/lib/utilities/valueFromAST.mjs +13 -10
  77. package/lib/utilities/valueFromAST.mjs.map +2 -2
  78. package/lib/values.d.ts +2 -2
  79. package/lib/values.d.ts.map +1 -1
  80. package/lib/values.js +14 -14
  81. package/lib/values.js.map +2 -2
  82. package/lib/values.mjs +21 -14
  83. package/lib/values.mjs.map +2 -2
  84. package/package.json +1 -1
  85. package/lib/schema/fragment.d.ts +0 -63
  86. package/lib/schema/fragment.d.ts.map +0 -1
  87. package/lib/schema/fragment.js +0 -295
  88. package/lib/schema/fragment.js.map +0 -7
  89. package/lib/schema/fragment.mjs +0 -292
  90. package/lib/schema/fragment.mjs.map +0 -7
@@ -1,58 +1,287 @@
1
1
  // src/schema/definition.ts
2
- var TypeKind = /* @__PURE__ */ ((TypeKind2) => {
3
- TypeKind2[TypeKind2["SCALAR"] = 1] = "SCALAR";
4
- TypeKind2[TypeKind2["OBJECT"] = 2] = "OBJECT";
5
- TypeKind2[TypeKind2["INTERFACE"] = 3] = "INTERFACE";
6
- TypeKind2[TypeKind2["UNION"] = 4] = "UNION";
7
- TypeKind2[TypeKind2["ENUM"] = 5] = "ENUM";
8
- TypeKind2[TypeKind2["INPUT"] = 6] = "INPUT";
9
- return TypeKind2;
10
- })(TypeKind || {});
11
- var ObjectKeys = /* @__PURE__ */ ((ObjectKeys2) => {
12
- ObjectKeys2[ObjectKeys2["fields"] = 1] = "fields";
13
- ObjectKeys2[ObjectKeys2["interfaces"] = 2] = "interfaces";
14
- return ObjectKeys2;
15
- })(ObjectKeys || {});
16
- var InterfaceKeys = /* @__PURE__ */ ((InterfaceKeys2) => {
17
- InterfaceKeys2[InterfaceKeys2["fields"] = 1] = "fields";
18
- InterfaceKeys2[InterfaceKeys2["interfaces"] = 2] = "interfaces";
19
- return InterfaceKeys2;
20
- })(InterfaceKeys || {});
21
- var UnionKeys = /* @__PURE__ */ ((UnionKeys2) => {
22
- UnionKeys2[UnionKeys2["types"] = 1] = "types";
23
- return UnionKeys2;
24
- })(UnionKeys || {});
25
- var EnumKeys = /* @__PURE__ */ ((EnumKeys2) => {
26
- EnumKeys2[EnumKeys2["values"] = 1] = "values";
27
- return EnumKeys2;
28
- })(EnumKeys || {});
29
- var InputObjectKeys = /* @__PURE__ */ ((InputObjectKeys2) => {
30
- InputObjectKeys2[InputObjectKeys2["fields"] = 1] = "fields";
31
- return InputObjectKeys2;
32
- })(InputObjectKeys || {});
33
- var FieldKeys = /* @__PURE__ */ ((FieldKeys2) => {
34
- FieldKeys2[FieldKeys2["type"] = 0] = "type";
35
- FieldKeys2[FieldKeys2["arguments"] = 1] = "arguments";
36
- return FieldKeys2;
37
- })(FieldKeys || {});
38
- var InputValueKeys = /* @__PURE__ */ ((InputValueKeys2) => {
39
- InputValueKeys2[InputValueKeys2["type"] = 0] = "type";
40
- InputValueKeys2[InputValueKeys2["defaultValue"] = 1] = "defaultValue";
41
- return InputValueKeys2;
42
- })(InputValueKeys || {});
43
- var DirectiveKeys = /* @__PURE__ */ ((DirectiveKeys2) => {
44
- DirectiveKeys2[DirectiveKeys2["name"] = 0] = "name";
45
- DirectiveKeys2[DirectiveKeys2["arguments"] = 1] = "arguments";
46
- return DirectiveKeys2;
47
- })(DirectiveKeys || {});
2
+ import { isSpecifiedScalarType } from "./resolvers.mjs";
3
+ import { typeNameFromReference } from "./reference.mjs";
4
+ var typeNameMetaFieldDef = "String";
5
+ var specifiedScalarDefinition = [1 /* SCALAR */];
6
+ function findObjectType(defs, typeName) {
7
+ const type = defs.types[typeName];
8
+ return (type == null ? void 0 : type[0]) === 2 /* OBJECT */ ? type : void 0;
9
+ }
10
+ function getObjectFields(def) {
11
+ return def[1 /* fields */];
12
+ }
13
+ function addInterfaceImplementation(defs, interfaceType, objectType) {
14
+ const iface = getInterfaceType(defs, interfaceType);
15
+ const type = defs.types[objectType];
16
+ if (!iface) {
17
+ throw new Error(
18
+ `Type ${interfaceType} either doesn't exist or is not an interface`
19
+ );
20
+ }
21
+ if (type && !isObjectTypeDefinition(type)) {
22
+ throw new Error(`Type ${objectType} is not an object type`);
23
+ }
24
+ if (!type) {
25
+ defs.types[objectType] = [
26
+ 2 /* OBJECT */,
27
+ /* @__PURE__ */ Object.create(null),
28
+ [interfaceType]
29
+ ];
30
+ return;
31
+ }
32
+ let knownInterfaces = type[2 /* interfaces */];
33
+ if (!knownInterfaces) {
34
+ knownInterfaces = [];
35
+ type[2 /* interfaces */] = knownInterfaces;
36
+ }
37
+ if (!knownInterfaces.includes(interfaceType)) {
38
+ knownInterfaces.push(interfaceType);
39
+ }
40
+ }
41
+ function getField(defs, typeName, fieldName) {
42
+ var _a;
43
+ if (fieldName === "__typename") {
44
+ return typeNameMetaFieldDef;
45
+ }
46
+ return (_a = getOwnField(defs, typeName, fieldName)) != null ? _a : findInterfaceField(defs, typeName, fieldName);
47
+ }
48
+ function getOwnField(defs, typeName, fieldName) {
49
+ var _a, _b;
50
+ const type = defs.types[typeName];
51
+ if (!type) {
52
+ return void 0;
53
+ }
54
+ if (type[0] === 2 /* OBJECT */) {
55
+ return (_a = type[1 /* fields */]) == null ? void 0 : _a[fieldName];
56
+ }
57
+ if (type[0] === 3 /* INTERFACE */) {
58
+ return (_b = type[1 /* fields */]) == null ? void 0 : _b[fieldName];
59
+ }
60
+ return void 0;
61
+ }
62
+ function findInterfaceField(defs, typeName, fieldName) {
63
+ const type = defs.types[typeName];
64
+ if (!type) {
65
+ return void 0;
66
+ }
67
+ if (type[0] === 2 /* OBJECT */ && type[2 /* interfaces */]) {
68
+ return findField(defs, type[2 /* interfaces */], fieldName);
69
+ }
70
+ if (type[0] === 3 /* INTERFACE */ && type[2 /* interfaces */]) {
71
+ return findField(defs, type[2 /* interfaces */], fieldName);
72
+ }
73
+ return void 0;
74
+ }
75
+ function findField(defs, interfaceTypes, fieldName) {
76
+ for (const interfaceName of interfaceTypes) {
77
+ const ownField = getOwnField(defs, interfaceName, fieldName);
78
+ if (ownField !== void 0) {
79
+ return ownField;
80
+ }
81
+ }
82
+ return void 0;
83
+ }
84
+ function getInputObjectType(defs, typeRef) {
85
+ const type = defs.types[typeNameFromReference(typeRef)];
86
+ return (type == null ? void 0 : type[0]) === 6 /* INPUT */ ? type : void 0;
87
+ }
88
+ function getLeafType(defs, typeRef) {
89
+ const typeName = typeNameFromReference(typeRef);
90
+ if (isSpecifiedScalarType(typeName)) {
91
+ return specifiedScalarDefinition;
92
+ }
93
+ const type = defs.types[typeName];
94
+ if ((type == null ? void 0 : type[0]) !== 5 /* ENUM */ && (type == null ? void 0 : type[0]) !== 1 /* SCALAR */) {
95
+ return void 0;
96
+ }
97
+ return type;
98
+ }
99
+ function isDefined(defs, typeRef) {
100
+ if (typeof typeRef === "number") {
101
+ return true;
102
+ }
103
+ const types = defs.types;
104
+ const typeName = typeNameFromReference(typeRef);
105
+ return !!types[typeName] || isSpecifiedScalarType(typeName);
106
+ }
107
+ function isInputType(defs, typeRef) {
108
+ var _a;
109
+ if (typeof typeRef === "number") {
110
+ return true;
111
+ }
112
+ const typeName = typeNameFromReference(typeRef);
113
+ const kind = (_a = defs.types[typeName]) == null ? void 0 : _a[0];
114
+ return isSpecifiedScalarType(typeName) || kind === 5 /* ENUM */ || kind === 6 /* INPUT */ || kind === 1 /* SCALAR */;
115
+ }
116
+ function isObjectType(defs, typeRef) {
117
+ var _a;
118
+ if (typeof typeRef === "number") {
119
+ return false;
120
+ }
121
+ const types = defs.types;
122
+ const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
123
+ return (type == null ? void 0 : type[0]) === 2 /* OBJECT */;
124
+ }
125
+ function isAbstractType(defs, typeRef) {
126
+ var _a;
127
+ if (typeof typeRef === "number") {
128
+ return false;
129
+ }
130
+ const type = (_a = defs.types[typeRef]) != null ? _a : defs.types[typeNameFromReference(typeRef)];
131
+ return (type == null ? void 0 : type[0]) === 4 /* UNION */ || (type == null ? void 0 : type[0]) === 3 /* INTERFACE */;
132
+ }
133
+ function getUnionType(defs, typeRef) {
134
+ var _a;
135
+ const types = defs.types;
136
+ const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
137
+ return (type == null ? void 0 : type[0]) === 4 /* UNION */ ? type : void 0;
138
+ }
139
+ function getInterfaceType(defs, typeRef) {
140
+ var _a;
141
+ const types = defs.types;
142
+ const type = (_a = types[typeRef]) != null ? _a : types[typeNameFromReference(typeRef)];
143
+ return (type == null ? void 0 : type[0]) === 3 /* INTERFACE */ ? type : void 0;
144
+ }
145
+ function isSubType(defs, abstractTypeName, maybeSubTypeName) {
146
+ var _a, _b;
147
+ const union = getUnionType(defs, abstractTypeName);
148
+ if (union) {
149
+ return union[1 /* types */].includes(maybeSubTypeName);
150
+ }
151
+ const object = findObjectType(defs, maybeSubTypeName);
152
+ if (object) {
153
+ return !!((_a = object[2 /* interfaces */]) == null ? void 0 : _a.includes(abstractTypeName));
154
+ }
155
+ const iface = getInterfaceType(defs, maybeSubTypeName);
156
+ if (iface) {
157
+ return !!((_b = iface[2 /* interfaces */]) == null ? void 0 : _b.includes(abstractTypeName));
158
+ }
159
+ return false;
160
+ }
161
+ function getDirectiveName(tuple) {
162
+ return tuple[0 /* name */];
163
+ }
164
+ function isObjectTypeDefinition(type) {
165
+ return type[0] === 2 /* OBJECT */;
166
+ }
167
+ function isUnionTypeDefinition(type) {
168
+ return type[0] === 4 /* UNION */;
169
+ }
170
+ function isInterfaceTypeDefinition(type) {
171
+ return type[0] === 3 /* INTERFACE */;
172
+ }
173
+ function isEnumTypeDefinition(type) {
174
+ return type[0] === 5 /* ENUM */;
175
+ }
176
+ function isScalarTypeDefinition(type) {
177
+ return type[0] === 1 /* SCALAR */;
178
+ }
179
+ function isInputObjectTypeDefinition(type) {
180
+ return type[0] === 6 /* INPUT */;
181
+ }
182
+ function getInputValueTypeReference(inputValue) {
183
+ return Array.isArray(inputValue) ? inputValue[0 /* type */] : inputValue;
184
+ }
185
+ function getInputObjectFields(obj) {
186
+ return obj[1 /* fields */];
187
+ }
188
+ function getInputDefaultValue(inputValue) {
189
+ return Array.isArray(inputValue) ? inputValue[1 /* defaultValue */] : void 0;
190
+ }
191
+ function getFields(def) {
192
+ return def[0] === 2 /* OBJECT */ ? def[1 /* fields */] : def[1 /* fields */];
193
+ }
194
+ function getFieldTypeReference(field) {
195
+ return Array.isArray(field) ? field[0 /* type */] : field;
196
+ }
197
+ function getFieldArgs(field) {
198
+ return Array.isArray(field) ? field[1 /* arguments */] : void 0;
199
+ }
200
+ function setFieldArgs(field, args) {
201
+ field[1 /* arguments */] = args;
202
+ return args;
203
+ }
204
+ function getEnumValues(tuple) {
205
+ return tuple[1 /* values */];
206
+ }
207
+ function getDirectiveDefinitionArgs(directive) {
208
+ return directive[1 /* arguments */];
209
+ }
210
+ function setDirectiveDefinitionArgs(directive, args) {
211
+ directive[1 /* arguments */] = args;
212
+ return args;
213
+ }
214
+ function createUnionTypeDefinition(types) {
215
+ return [4 /* UNION */, types];
216
+ }
217
+ function createInterfaceTypeDefinition(fields, interfaces) {
218
+ return (interfaces == null ? void 0 : interfaces.length) ? [3 /* INTERFACE */, fields, interfaces] : [3 /* INTERFACE */, fields];
219
+ }
220
+ function createObjectTypeDefinition(fields, interfaces) {
221
+ return (interfaces == null ? void 0 : interfaces.length) ? [2 /* OBJECT */, fields, interfaces] : [2 /* OBJECT */, fields];
222
+ }
223
+ function createInputObjectTypeDefinition(fields) {
224
+ return [6 /* INPUT */, fields];
225
+ }
226
+ function createEnumTypeDefinition(values) {
227
+ return [5 /* ENUM */, values];
228
+ }
229
+ function createScalarTypeDefinition() {
230
+ return [1 /* SCALAR */];
231
+ }
232
+ function getObjectTypeInterfaces(def) {
233
+ var _a;
234
+ return (_a = def[2 /* interfaces */]) != null ? _a : [];
235
+ }
236
+ function getInterfaceTypeInterfaces(def) {
237
+ var _a;
238
+ return (_a = def[2 /* interfaces */]) != null ? _a : [];
239
+ }
240
+ function getUnionTypeMembers(tuple) {
241
+ return tuple[1 /* types */];
242
+ }
243
+ function getDefinitionArguments(def) {
244
+ return Array.isArray(def) ? def[1 /* arguments */] : void 0;
245
+ }
48
246
  export {
49
- DirectiveKeys,
50
- EnumKeys,
51
- FieldKeys,
52
- InputObjectKeys,
53
- InputValueKeys,
54
- InterfaceKeys,
55
- ObjectKeys,
56
- TypeKind,
57
- UnionKeys
247
+ addInterfaceImplementation,
248
+ createEnumTypeDefinition,
249
+ createInputObjectTypeDefinition,
250
+ createInterfaceTypeDefinition,
251
+ createObjectTypeDefinition,
252
+ createScalarTypeDefinition,
253
+ createUnionTypeDefinition,
254
+ findObjectType,
255
+ getDefinitionArguments,
256
+ getDirectiveDefinitionArgs,
257
+ getDirectiveName,
258
+ getEnumValues,
259
+ getField,
260
+ getFieldArgs,
261
+ getFieldTypeReference,
262
+ getFields,
263
+ getInputDefaultValue,
264
+ getInputObjectFields,
265
+ getInputObjectType,
266
+ getInputValueTypeReference,
267
+ getInterfaceType,
268
+ getInterfaceTypeInterfaces,
269
+ getLeafType,
270
+ getObjectFields,
271
+ getObjectTypeInterfaces,
272
+ getUnionType,
273
+ getUnionTypeMembers,
274
+ isAbstractType,
275
+ isDefined,
276
+ isEnumTypeDefinition,
277
+ isInputObjectTypeDefinition,
278
+ isInputType,
279
+ isInterfaceTypeDefinition,
280
+ isObjectType,
281
+ isObjectTypeDefinition,
282
+ isScalarTypeDefinition,
283
+ isSubType,
284
+ isUnionTypeDefinition,
285
+ setDirectiveDefinitionArgs,
286
+ setFieldArgs
58
287
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/schema/definition.ts"],
4
- "sourcesContent": ["export type TypeName = string; // name without wrappers, i.e. \"MyType\", but not \"[MyType]\"\nexport type SpecTypeIndex = number;\nexport type TypeReference = string | SpecTypeIndex; // e.g. \"ComplexType\" | \"ComplexType!\" | \"[ComplexType!]\" | 4 (i.e. \"ID\")\n\n// Perf: const enums are inlined in the build (+small integers are stored on the stack in v8)\nexport const enum TypeKind {\n SCALAR = 1,\n OBJECT = 2,\n INTERFACE = 3,\n UNION = 4,\n ENUM = 5,\n INPUT = 6,\n}\n\nexport type ScalarTypeDefinitionTuple = [\n kind: TypeKind.SCALAR,\n // directives?: DirectiveTuple[], // TODO ?\n];\n\nexport type ObjectTypeDefinitionTuple = [\n kind: TypeKind.OBJECT,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nexport const enum ObjectKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type InterfaceTypeDefinitionTuple = [\n kind: TypeKind.INTERFACE,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nexport const enum InterfaceKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type UnionTypeDefinitionTuple = [\n kind: TypeKind.UNION,\n types: TypeName[],\n // directives?: DirectiveTuple[],\n];\nexport const enum UnionKeys {\n types = 1,\n}\n\nexport type EnumTypeDefinitionTuple = [\n kind: TypeKind.ENUM,\n values: string[],\n // directives?: DirectiveTuple[],\n];\nexport const enum EnumKeys {\n values = 1,\n}\n\nexport type InputObjectTypeDefinitionTuple = [\n kind: TypeKind.INPUT,\n fields: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nexport const enum InputObjectKeys {\n fields = 1,\n}\n\nexport type TypeDefinitionTuple =\n | ScalarTypeDefinitionTuple\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple\n | EnumTypeDefinitionTuple\n | InputObjectTypeDefinitionTuple;\n\nexport type CompositeTypeTuple =\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple;\n\nexport type FieldDefinitionTuple = [\n type: TypeReference,\n arguments: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nexport const enum FieldKeys {\n type = 0,\n arguments = 1,\n}\nexport type FieldDefinition = TypeReference | FieldDefinitionTuple;\nexport type FieldDefinitionRecord = Record<string, FieldDefinition>;\n\nexport type InputValueDefinitionTuple = [\n type: TypeReference,\n defaultValue: unknown,\n // directives?: DirectiveTuple[],\n];\nexport const enum InputValueKeys {\n type = 0,\n defaultValue = 1,\n}\nexport type InputValueDefinition = TypeReference | InputValueDefinitionTuple;\nexport type InputValueDefinitionRecord = Record<string, InputValueDefinition>;\n\nexport type DirectiveName = string;\nexport type DirectiveTuple = [\n name: DirectiveName,\n arguments?: Record<string, unknown>, // JS values (cannot be a variable inside schema definition, so it is fine)\n];\nexport type DirectiveDefinitionTuple = [\n name: DirectiveName,\n arguments?: InputValueDefinitionRecord,\n];\nexport const enum DirectiveKeys {\n name = 0,\n arguments = 1,\n}\n\nexport type TypeDefinitionsRecord = Record<TypeName, TypeDefinitionTuple>;\nexport type InterfaceImplementationsRecord = Record<TypeName, TypeName[]>;\n\nexport type OperationTypes = {\n query?: TypeName;\n mutation?: TypeName;\n subscription?: TypeName;\n};\n\nexport type SchemaDefinitions = {\n types: TypeDefinitionsRecord;\n directives?: DirectiveDefinitionTuple[];\n // implementations?: InterfaceImplementationsRecord; // TODO?\n};\n"],
5
- "mappings": ";AAKO,IAAW,WAAX,kBAAWA,cAAX;AACL,EAAAA,oBAAA,YAAS,KAAT;AACA,EAAAA,oBAAA,YAAS,KAAT;AACA,EAAAA,oBAAA,eAAY,KAAZ;AACA,EAAAA,oBAAA,WAAQ,KAAR;AACA,EAAAA,oBAAA,UAAO,KAAP;AACA,EAAAA,oBAAA,WAAQ,KAAR;AANgB,SAAAA;AAAA,GAAA;AAoBX,IAAW,aAAX,kBAAWC,gBAAX;AACL,EAAAA,wBAAA,YAAS,KAAT;AACA,EAAAA,wBAAA,gBAAa,KAAb;AAFgB,SAAAA;AAAA,GAAA;AAWX,IAAW,gBAAX,kBAAWC,mBAAX;AACL,EAAAA,8BAAA,YAAS,KAAT;AACA,EAAAA,8BAAA,gBAAa,KAAb;AAFgB,SAAAA;AAAA,GAAA;AAUX,IAAW,YAAX,kBAAWC,eAAX;AACL,EAAAA,sBAAA,WAAQ,KAAR;AADgB,SAAAA;AAAA,GAAA;AASX,IAAW,WAAX,kBAAWC,cAAX;AACL,EAAAA,oBAAA,YAAS,KAAT;AADgB,SAAAA;AAAA,GAAA;AASX,IAAW,kBAAX,kBAAWC,qBAAX;AACL,EAAAA,kCAAA,YAAS,KAAT;AADgB,SAAAA;AAAA,GAAA;AAsBX,IAAW,YAAX,kBAAWC,eAAX;AACL,EAAAA,sBAAA,UAAO,KAAP;AACA,EAAAA,sBAAA,eAAY,KAAZ;AAFgB,SAAAA;AAAA,GAAA;AAYX,IAAW,iBAAX,kBAAWC,oBAAX;AACL,EAAAA,gCAAA,UAAO,KAAP;AACA,EAAAA,gCAAA,kBAAe,KAAf;AAFgB,SAAAA;AAAA,GAAA;AAgBX,IAAW,gBAAX,kBAAWC,mBAAX;AACL,EAAAA,8BAAA,UAAO,KAAP;AACA,EAAAA,8BAAA,eAAY,KAAZ;AAFgB,SAAAA;AAAA,GAAA;",
6
- "names": ["TypeKind", "ObjectKeys", "InterfaceKeys", "UnionKeys", "EnumKeys", "InputObjectKeys", "FieldKeys", "InputValueKeys", "DirectiveKeys"]
4
+ "sourcesContent": ["import { isSpecifiedScalarType } from \"./resolvers\";\nimport { TypeName, TypeReference, typeNameFromReference } from \"./reference\";\n\n// Perf: const enums are inlined in the build (+small integers are stored on the stack in v8)\n// IMPORTANT: const enums MUST NOT be exported, otherwise esbuild struggles to inline them: use exported functions\nconst enum TypeKind {\n SCALAR = 1,\n OBJECT = 2,\n INTERFACE = 3,\n UNION = 4,\n ENUM = 5,\n INPUT = 6,\n}\n\nexport type ScalarTypeDefinitionTuple = [\n kind: TypeKind.SCALAR,\n // directives?: DirectiveTuple[], // TODO ?\n];\n\nexport type ObjectTypeDefinitionTuple = [\n kind: TypeKind.OBJECT,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum ObjectKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type InterfaceTypeDefinitionTuple = [\n kind: TypeKind.INTERFACE,\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum InterfaceKeys {\n fields = 1,\n interfaces = 2,\n}\n\nexport type UnionTypeDefinitionTuple = [\n kind: TypeKind.UNION,\n types: TypeName[],\n // directives?: DirectiveTuple[],\n];\nconst enum UnionKeys {\n types = 1,\n}\n\nexport type EnumTypeDefinitionTuple = [\n kind: TypeKind.ENUM,\n values: string[],\n // directives?: DirectiveTuple[],\n];\nconst enum EnumKeys {\n values = 1,\n}\n\nexport type InputObjectTypeDefinitionTuple = [\n kind: TypeKind.INPUT,\n fields: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum InputObjectKeys {\n fields = 1,\n}\n\nexport type TypeDefinitionTuple =\n | ScalarTypeDefinitionTuple\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple\n | EnumTypeDefinitionTuple\n | InputObjectTypeDefinitionTuple;\n\nexport type CompositeTypeTuple =\n | ObjectTypeDefinitionTuple\n | InterfaceTypeDefinitionTuple\n | UnionTypeDefinitionTuple;\n\nexport type FieldDefinitionTuple = [\n type: TypeReference,\n arguments: InputValueDefinitionRecord,\n // directives?: DirectiveTuple[],\n];\nconst enum FieldKeys {\n type = 0,\n arguments = 1,\n}\nexport type FieldDefinition = TypeReference | FieldDefinitionTuple;\nexport type FieldDefinitionRecord = Record<string, FieldDefinition>;\n\nexport type InputValueDefinitionTuple = [\n type: TypeReference,\n defaultValue: unknown,\n // directives?: DirectiveTuple[],\n];\nconst enum InputValueKeys {\n type = 0,\n defaultValue = 1,\n}\nexport type InputValueDefinition = TypeReference | InputValueDefinitionTuple;\nexport type InputValueDefinitionRecord = Record<string, InputValueDefinition>;\n\nexport type DirectiveName = string;\nexport type DirectiveTuple = [\n name: DirectiveName,\n arguments?: Record<string, unknown>, // JS values (cannot be a variable inside schema definition, so it is fine)\n];\nexport type DirectiveDefinitionTuple = [\n name: DirectiveName,\n arguments?: InputValueDefinitionRecord,\n];\nconst enum DirectiveKeys {\n name = 0,\n arguments = 1,\n}\n\nexport type TypeDefinitionsRecord = Record<TypeName, TypeDefinitionTuple>;\nexport type InterfaceImplementationsRecord = Record<TypeName, TypeName[]>;\n\nexport type OperationTypes = {\n query?: TypeName;\n mutation?: TypeName;\n subscription?: TypeName;\n};\n\nexport type SchemaDefinitions = {\n types: TypeDefinitionsRecord;\n directives?: DirectiveDefinitionTuple[];\n // implementations?: InterfaceImplementationsRecord; // TODO?\n};\n\nconst typeNameMetaFieldDef: FieldDefinition = \"String\";\nconst specifiedScalarDefinition: ScalarTypeDefinitionTuple = [TypeKind.SCALAR];\n\nexport function findObjectType(\n defs: SchemaDefinitions,\n typeName: TypeName,\n): ObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeName];\n return type?.[0] === TypeKind.OBJECT ? type : undefined;\n}\n\nexport function getObjectFields(\n def: ObjectTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[ObjectKeys.fields];\n}\n\nexport function addInterfaceImplementation(\n defs: SchemaDefinitions,\n interfaceType: TypeName,\n objectType: TypeName,\n) {\n const iface = getInterfaceType(defs, interfaceType);\n const type = defs.types[objectType];\n\n if (!iface) {\n throw new Error(\n `Type ${interfaceType} either doesn't exist or is not an interface`,\n );\n }\n if (type && !isObjectTypeDefinition(type)) {\n throw new Error(`Type ${objectType} is not an object type`);\n }\n if (!type) {\n defs.types[objectType] = [\n TypeKind.OBJECT,\n Object.create(null),\n [interfaceType],\n ];\n return;\n }\n let knownInterfaces = type[ObjectKeys.interfaces];\n if (!knownInterfaces) {\n knownInterfaces = [];\n type[ObjectKeys.interfaces] = knownInterfaces;\n }\n if (!knownInterfaces.includes(interfaceType)) {\n knownInterfaces.push(interfaceType);\n }\n}\n\nexport function getField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n if (fieldName === \"__typename\") {\n return typeNameMetaFieldDef;\n }\n return (\n getOwnField(defs, typeName, fieldName) ??\n findInterfaceField(defs, typeName, fieldName)\n );\n}\n\nfunction getOwnField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n): FieldDefinition | undefined {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT) {\n return type[ObjectKeys.fields]?.[fieldName];\n }\n if (type[0] === TypeKind.INTERFACE) {\n return type[InterfaceKeys.fields]?.[fieldName];\n }\n return undefined;\n}\n\nfunction findInterfaceField(\n defs: SchemaDefinitions,\n typeName: TypeName,\n fieldName: string,\n) {\n const type = defs.types[typeName];\n if (!type) {\n return undefined;\n }\n if (type[0] === TypeKind.OBJECT && type[ObjectKeys.interfaces]) {\n return findField(defs, type[ObjectKeys.interfaces], fieldName);\n }\n if (type[0] === TypeKind.INTERFACE && type[InterfaceKeys.interfaces]) {\n return findField(defs, type[InterfaceKeys.interfaces], fieldName);\n }\n return undefined;\n}\n\nfunction findField(\n defs: SchemaDefinitions,\n interfaceTypes: TypeName[],\n fieldName: string,\n) {\n // TODO: merge field definition from all interface types to ensure all necessary arguments are present\n // (or maybe instead always encode all arguments in the schema fragment for simplicity?)\n for (const interfaceName of interfaceTypes) {\n const ownField = getOwnField(defs, interfaceName, fieldName);\n if (ownField !== undefined) {\n return ownField;\n }\n }\n return undefined;\n}\n\nexport function getInputObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InputObjectTypeDefinitionTuple | undefined {\n const type = defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INPUT ? type : undefined;\n}\n\nexport function getLeafType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): EnumTypeDefinitionTuple | ScalarTypeDefinitionTuple | undefined {\n const typeName = typeNameFromReference(typeRef);\n\n if (isSpecifiedScalarType(typeName)) {\n return specifiedScalarDefinition;\n }\n const type = defs.types[typeName];\n if (type?.[0] !== TypeKind.ENUM && type?.[0] !== TypeKind.SCALAR) {\n return undefined;\n }\n return type;\n}\n\nexport function isDefined(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: spec type\n return true;\n }\n const types = defs.types;\n const typeName = typeNameFromReference(typeRef);\n return !!types[typeName] || isSpecifiedScalarType(typeName);\n}\n\nexport function isInputType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are input types\n return true;\n }\n const typeName = typeNameFromReference(typeRef);\n const kind = defs.types[typeName]?.[0];\n return (\n isSpecifiedScalarType(typeName) ||\n kind === TypeKind.ENUM ||\n kind === TypeKind.INPUT ||\n kind === TypeKind.SCALAR\n );\n}\n\nexport function isObjectType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.OBJECT;\n}\n\nexport function isAbstractType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): boolean {\n if (typeof typeRef === \"number\") {\n // Fast-path: all spec types are scalars\n return false;\n }\n const type =\n defs.types[typeRef] ?? defs.types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION || type?.[0] === TypeKind.INTERFACE;\n}\n\nexport function getUnionType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): UnionTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.UNION ? type : undefined;\n}\n\nexport function getInterfaceType(\n defs: SchemaDefinitions,\n typeRef: TypeReference,\n): InterfaceTypeDefinitionTuple | undefined {\n const types = defs.types;\n const type = types[typeRef] ?? types[typeNameFromReference(typeRef)];\n return type?.[0] === TypeKind.INTERFACE ? type : undefined;\n}\n\nexport function isSubType(\n defs: SchemaDefinitions,\n abstractTypeName: TypeName,\n maybeSubTypeName: TypeName,\n): boolean {\n const union = getUnionType(defs, abstractTypeName);\n if (union) {\n return union[UnionKeys.types].includes(maybeSubTypeName);\n }\n const object = findObjectType(defs, maybeSubTypeName);\n if (object) {\n return !!object[ObjectKeys.interfaces]?.includes(abstractTypeName);\n }\n const iface = getInterfaceType(defs, maybeSubTypeName);\n if (iface) {\n return !!iface[InterfaceKeys.interfaces]?.includes(abstractTypeName);\n }\n return false;\n}\n\nexport function getDirectiveName(tuple: DirectiveDefinitionTuple): string {\n return tuple[DirectiveKeys.name];\n}\n\nexport function isObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ObjectTypeDefinitionTuple {\n return type[0] === TypeKind.OBJECT;\n}\n\nexport function isUnionTypeDefinition(\n type: TypeDefinitionTuple,\n): type is UnionTypeDefinitionTuple {\n return type[0] === TypeKind.UNION;\n}\n\nexport function isInterfaceTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InterfaceTypeDefinitionTuple {\n return type[0] === TypeKind.INTERFACE;\n}\n\nexport function isEnumTypeDefinition(\n type: TypeDefinitionTuple,\n): type is EnumTypeDefinitionTuple {\n return type[0] === TypeKind.ENUM;\n}\n\nexport function isScalarTypeDefinition(\n type: TypeDefinitionTuple,\n): type is ScalarTypeDefinitionTuple {\n return type[0] === TypeKind.SCALAR;\n}\n\nexport function isInputObjectTypeDefinition(\n type: TypeDefinitionTuple,\n): type is InputObjectTypeDefinitionTuple {\n return type[0] === TypeKind.INPUT;\n}\n\nexport function getInputValueTypeReference(\n inputValue: InputValueDefinition,\n): TypeReference {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.type]\n : inputValue;\n}\n\nexport function getInputObjectFields(\n obj: InputObjectTypeDefinitionTuple,\n): InputValueDefinitionRecord {\n return obj[InputObjectKeys.fields];\n}\n\nexport function getInputDefaultValue(\n inputValue: InputValueDefinition,\n): unknown | undefined {\n return Array.isArray(inputValue)\n ? inputValue[InputValueKeys.defaultValue]\n : undefined;\n}\n\nexport function getFields(\n def: ObjectTypeDefinitionTuple | InterfaceTypeDefinitionTuple,\n): FieldDefinitionRecord {\n return def[0] === TypeKind.OBJECT\n ? def[ObjectKeys.fields]\n : def[InterfaceKeys.fields];\n}\n\nexport function getFieldTypeReference(field: FieldDefinition): TypeReference {\n return Array.isArray(field) ? field[FieldKeys.type] : field;\n}\n\nexport function getFieldArgs(\n field: FieldDefinition,\n): InputValueDefinitionRecord | undefined {\n return Array.isArray(field) ? field[FieldKeys.arguments] : undefined;\n}\n\nexport function setFieldArgs(\n field: FieldDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n field[FieldKeys.arguments] = args;\n return args;\n}\n\nexport function getEnumValues(tuple: EnumTypeDefinitionTuple): string[] {\n return tuple[EnumKeys.values];\n}\n\nexport function getDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n return directive[DirectiveKeys.arguments];\n}\n\nexport function setDirectiveDefinitionArgs(\n directive: DirectiveDefinitionTuple,\n args: InputValueDefinitionRecord,\n): InputValueDefinitionRecord {\n directive[DirectiveKeys.arguments] = args;\n return args;\n}\n\nexport function createUnionTypeDefinition(\n types: TypeName[],\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, types];\n}\n\nexport function createInterfaceTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): InterfaceTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.INTERFACE, fields, interfaces]\n : [TypeKind.INTERFACE, fields];\n}\n\nexport function createObjectTypeDefinition(\n fields: FieldDefinitionRecord,\n interfaces?: TypeName[],\n): ObjectTypeDefinitionTuple {\n return interfaces?.length\n ? [TypeKind.OBJECT, fields, interfaces]\n : [TypeKind.OBJECT, fields];\n}\n\nexport function createInputObjectTypeDefinition(\n fields: InputValueDefinitionRecord,\n): InputObjectTypeDefinitionTuple {\n return [TypeKind.INPUT, fields];\n}\n\nexport function createEnumTypeDefinition(\n values: string[],\n): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, values];\n}\n\nexport function createScalarTypeDefinition(): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nexport function getObjectTypeInterfaces(\n def: ObjectTypeDefinitionTuple,\n): TypeName[] {\n return def[ObjectKeys.interfaces] ?? [];\n}\n\nexport function getInterfaceTypeInterfaces(\n def: InterfaceTypeDefinitionTuple,\n): TypeName[] {\n return def[InterfaceKeys.interfaces] ?? [];\n}\n\nexport function getUnionTypeMembers(\n tuple: UnionTypeDefinitionTuple,\n): TypeName[] {\n return tuple[UnionKeys.types];\n}\n\nexport function getDefinitionArguments(\n def: FieldDefinition | DirectiveDefinitionTuple,\n): InputValueDefinitionRecord | undefined {\n // Note: both FieldDefinition and DirectiveDefinition store arguments at the same position\n return Array.isArray(def) ? def[FieldKeys.arguments] : undefined;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/schema/directives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,aAAa,EACd,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,wBAIrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,wBAGlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,wBAGxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,wBAGnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,wBAGpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,CAQpE,CAAC;AAEL,eAAO,MAAM,kCAAkC,WAAW,CAAC;AAC3D,eAAO,MAAM,uDAAuD,gBACrD,CAAC;AAEhB;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAGzC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,GAAG,wBAAwB,GAClD,OAAO,CAOT;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,GAAG,wBAAwB,GAClD,OAAO,CAMT"}
1
+ {"version":3,"file":"directives.d.ts","sourceRoot":"","sources":["../../src/schema/directives.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,aAAa,EAEd,MAAM,cAAc,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,wBAIrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,wBAGlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,wBAAwB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,wBAGxC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAGzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,wBAGnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,wBAGpC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,wBAAwB,CAQpE,CAAC;AAEL,eAAO,MAAM,kCAAkC,WAAW,CAAC;AAC3D,eAAO,MAAM,uDAAuD,gBACrD,CAAC;AAEhB;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,wBAGzC,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,GAAG,wBAAwB,GAClD,OAAO,CAOT;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,aAAa,GAAG,wBAAwB,GAClD,OAAO,CAMT"}
@@ -76,12 +76,12 @@ const SupermassiveSchemaDirective = [
76
76
  // Essentially JSON
77
77
  ];
78
78
  function isKnownDirective(directive) {
79
- const name = typeof directive === "string" ? directive : directive[import_definition.DirectiveKeys.name];
79
+ const name = typeof directive === "string" ? directive : (0, import_definition.getDirectiveName)(directive);
80
80
  return isSpecifiedDirective(directive) || name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME;
81
81
  }
82
82
  function isSpecifiedDirective(directive) {
83
- const name = typeof directive === "string" ? directive : directive[import_definition.DirectiveKeys.name];
83
+ const name = typeof directive === "string" ? directive : (0, import_definition.getDirectiveName)(directive);
84
84
  return specifiedDirectives.some(
85
- (specDirective) => specDirective[import_definition.DirectiveKeys.name] === name
85
+ (specDirective) => (0, import_definition.getDirectiveName)(specDirective) === name
86
86
  );
87
87
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/schema/directives.ts"],
4
- "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n DirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n { if: \"Boolean!\" },\n // TODO: locations for all directives (maybe not - they are irrelevant for runtime)?\n];\n\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\nexport const GraphQLSkipDirective: DirectiveDefinitionTuple = [\n \"skip\",\n { if: \"Boolean!\" },\n];\n\n/**\n * Constant string used for default reason for a deprecation.\n */\nexport const DEFAULT_DEPRECATION_REASON = \"No longer supported\";\n\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\nexport const GraphQLDeprecatedDirective: DirectiveDefinitionTuple = [\n \"deprecated\",\n { reason: [\"String\", DEFAULT_DEPRECATION_REASON] },\n];\n\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\nexport const GraphQLSpecifiedByDirective: DirectiveDefinitionTuple = [\n \"specifiedBy\",\n { url: \"String!\" },\n];\n\n/**\n * Used to conditionally defer fragments.\n */\nexport const GraphQLDeferDirective: DirectiveDefinitionTuple = [\n \"defer\",\n { if: [\"Boolean!\", true], label: \"String\" },\n];\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const GraphQLStreamDirective: DirectiveDefinitionTuple = [\n \"stream\",\n { if: [\"Boolean!\", true], label: \"String\", initialCount: [\"Int\", 0] },\n];\n\n/**\n * The full list of specified directives.\n */\nexport const specifiedDirectives: ReadonlyArray<DirectiveDefinitionTuple> =\n Object.freeze([\n GraphQLIncludeDirective,\n GraphQLSkipDirective,\n GraphQLDeprecatedDirective,\n GraphQLSpecifiedByDirective,\n GraphQLDeferDirective,\n GraphQLStreamDirective,\n ]);\n\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = \"schema\";\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME =\n \"definitions\";\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const SupermassiveSchemaDirective: DirectiveDefinitionTuple = [\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n { [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: \"String!\" }, // Essentially JSON\n];\n\nexport function isKnownDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : directive[DirectiveKeys.name];\n return (\n isSpecifiedDirective(directive) ||\n name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME\n );\n}\n\nexport function isSpecifiedDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : directive[DirectiveKeys.name];\n return specifiedDirectives.some(\n (specDirective) => specDirective[DirectiveKeys.name] === name,\n );\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAIO;AAKA,MAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA,EAAE,IAAI,WAAW;AAAA;AAEnB;AAKO,MAAM,uBAAiD;AAAA,EAC5D;AAAA,EACA,EAAE,IAAI,WAAW;AACnB;AAKO,MAAM,6BAA6B;AAKnC,MAAM,6BAAuD;AAAA,EAClE;AAAA,EACA,EAAE,QAAQ,CAAC,UAAU,0BAA0B,EAAE;AACnD;AAKO,MAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,KAAK,UAAU;AACnB;AAKO,MAAM,wBAAkD;AAAA,EAC7D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,SAAS;AAC5C;AAKO,MAAM,yBAAmD;AAAA,EAC9D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AAKO,MAAM,sBACX,OAAO,OAAO;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEI,MAAM,qCAAqC;AAC3C,MAAM,0DACX;AAKK,MAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,CAAC,uDAAuD,GAAG,UAAU;AAAA;AACzE;AAEO,SAAS,iBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,UAAU,gCAAc,IAAI;AAC1E,SACE,qBAAqB,SAAS,KAC9B,SAAS;AAEb;AAEO,SAAS,qBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,UAAU,gCAAc,IAAI;AAC1E,SAAO,oBAAoB;AAAA,IACzB,CAAC,kBAAkB,cAAc,gCAAc,IAAI,MAAM;AAAA,EAC3D;AACF;",
4
+ "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveName,\n getDirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n { if: \"Boolean!\" },\n // TODO: locations for all directives (maybe not - they are irrelevant for runtime)?\n];\n\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\nexport const GraphQLSkipDirective: DirectiveDefinitionTuple = [\n \"skip\",\n { if: \"Boolean!\" },\n];\n\n/**\n * Constant string used for default reason for a deprecation.\n */\nexport const DEFAULT_DEPRECATION_REASON = \"No longer supported\";\n\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\nexport const GraphQLDeprecatedDirective: DirectiveDefinitionTuple = [\n \"deprecated\",\n { reason: [\"String\", DEFAULT_DEPRECATION_REASON] },\n];\n\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\nexport const GraphQLSpecifiedByDirective: DirectiveDefinitionTuple = [\n \"specifiedBy\",\n { url: \"String!\" },\n];\n\n/**\n * Used to conditionally defer fragments.\n */\nexport const GraphQLDeferDirective: DirectiveDefinitionTuple = [\n \"defer\",\n { if: [\"Boolean!\", true], label: \"String\" },\n];\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const GraphQLStreamDirective: DirectiveDefinitionTuple = [\n \"stream\",\n { if: [\"Boolean!\", true], label: \"String\", initialCount: [\"Int\", 0] },\n];\n\n/**\n * The full list of specified directives.\n */\nexport const specifiedDirectives: ReadonlyArray<DirectiveDefinitionTuple> =\n Object.freeze([\n GraphQLIncludeDirective,\n GraphQLSkipDirective,\n GraphQLDeprecatedDirective,\n GraphQLSpecifiedByDirective,\n GraphQLDeferDirective,\n GraphQLStreamDirective,\n ]);\n\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = \"schema\";\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME =\n \"definitions\";\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const SupermassiveSchemaDirective: DirectiveDefinitionTuple = [\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n { [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: \"String!\" }, // Essentially JSON\n];\n\nexport function isKnownDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return (\n isSpecifiedDirective(directive) ||\n name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME\n );\n}\n\nexport function isSpecifiedDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return specifiedDirectives.some(\n (specDirective) => getDirectiveName(specDirective) === name,\n );\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAIO;AAKA,MAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA,EAAE,IAAI,WAAW;AAAA;AAEnB;AAKO,MAAM,uBAAiD;AAAA,EAC5D;AAAA,EACA,EAAE,IAAI,WAAW;AACnB;AAKO,MAAM,6BAA6B;AAKnC,MAAM,6BAAuD;AAAA,EAClE;AAAA,EACA,EAAE,QAAQ,CAAC,UAAU,0BAA0B,EAAE;AACnD;AAKO,MAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,KAAK,UAAU;AACnB;AAKO,MAAM,wBAAkD;AAAA,EAC7D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,SAAS;AAC5C;AAKO,MAAM,yBAAmD;AAAA,EAC9D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AAKO,MAAM,sBACX,OAAO,OAAO;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEI,MAAM,qCAAqC;AAC3C,MAAM,0DACX;AAKK,MAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,CAAC,uDAAuD,GAAG,UAAU;AAAA;AACzE;AAEO,SAAS,iBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,gBAAY,oCAAiB,SAAS;AACxE,SACE,qBAAqB,SAAS,KAC9B,SAAS;AAEb;AAEO,SAAS,qBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,gBAAY,oCAAiB,SAAS;AACxE,SAAO,oBAAoB;AAAA,IACzB,CAAC,sBAAkB,oCAAiB,aAAa,MAAM;AAAA,EACzD;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  // src/schema/directives.ts
2
2
  import {
3
- DirectiveKeys
3
+ getDirectiveName
4
4
  } from "./definition.mjs";
5
5
  var GraphQLIncludeDirective = [
6
6
  "include",
@@ -44,13 +44,13 @@ var SupermassiveSchemaDirective = [
44
44
  // Essentially JSON
45
45
  ];
46
46
  function isKnownDirective(directive) {
47
- const name = typeof directive === "string" ? directive : directive[DirectiveKeys.name];
47
+ const name = typeof directive === "string" ? directive : getDirectiveName(directive);
48
48
  return isSpecifiedDirective(directive) || name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME;
49
49
  }
50
50
  function isSpecifiedDirective(directive) {
51
- const name = typeof directive === "string" ? directive : directive[DirectiveKeys.name];
51
+ const name = typeof directive === "string" ? directive : getDirectiveName(directive);
52
52
  return specifiedDirectives.some(
53
- (specDirective) => specDirective[DirectiveKeys.name] === name
53
+ (specDirective) => getDirectiveName(specDirective) === name
54
54
  );
55
55
  }
56
56
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/schema/directives.ts"],
4
- "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n DirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n { if: \"Boolean!\" },\n // TODO: locations for all directives (maybe not - they are irrelevant for runtime)?\n];\n\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\nexport const GraphQLSkipDirective: DirectiveDefinitionTuple = [\n \"skip\",\n { if: \"Boolean!\" },\n];\n\n/**\n * Constant string used for default reason for a deprecation.\n */\nexport const DEFAULT_DEPRECATION_REASON = \"No longer supported\";\n\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\nexport const GraphQLDeprecatedDirective: DirectiveDefinitionTuple = [\n \"deprecated\",\n { reason: [\"String\", DEFAULT_DEPRECATION_REASON] },\n];\n\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\nexport const GraphQLSpecifiedByDirective: DirectiveDefinitionTuple = [\n \"specifiedBy\",\n { url: \"String!\" },\n];\n\n/**\n * Used to conditionally defer fragments.\n */\nexport const GraphQLDeferDirective: DirectiveDefinitionTuple = [\n \"defer\",\n { if: [\"Boolean!\", true], label: \"String\" },\n];\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const GraphQLStreamDirective: DirectiveDefinitionTuple = [\n \"stream\",\n { if: [\"Boolean!\", true], label: \"String\", initialCount: [\"Int\", 0] },\n];\n\n/**\n * The full list of specified directives.\n */\nexport const specifiedDirectives: ReadonlyArray<DirectiveDefinitionTuple> =\n Object.freeze([\n GraphQLIncludeDirective,\n GraphQLSkipDirective,\n GraphQLDeprecatedDirective,\n GraphQLSpecifiedByDirective,\n GraphQLDeferDirective,\n GraphQLStreamDirective,\n ]);\n\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = \"schema\";\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME =\n \"definitions\";\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const SupermassiveSchemaDirective: DirectiveDefinitionTuple = [\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n { [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: \"String!\" }, // Essentially JSON\n];\n\nexport function isKnownDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : directive[DirectiveKeys.name];\n return (\n isSpecifiedDirective(directive) ||\n name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME\n );\n}\n\nexport function isSpecifiedDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : directive[DirectiveKeys.name];\n return specifiedDirectives.some(\n (specDirective) => specDirective[DirectiveKeys.name] === name,\n );\n}\n"],
5
- "mappings": ";AAAA;AAAA,EAEE;AAAA,OAEK;AAKA,IAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA,EAAE,IAAI,WAAW;AAAA;AAEnB;AAKO,IAAM,uBAAiD;AAAA,EAC5D;AAAA,EACA,EAAE,IAAI,WAAW;AACnB;AAKO,IAAM,6BAA6B;AAKnC,IAAM,6BAAuD;AAAA,EAClE;AAAA,EACA,EAAE,QAAQ,CAAC,UAAU,0BAA0B,EAAE;AACnD;AAKO,IAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,KAAK,UAAU;AACnB;AAKO,IAAM,wBAAkD;AAAA,EAC7D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,SAAS;AAC5C;AAKO,IAAM,yBAAmD;AAAA,EAC9D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AAKO,IAAM,sBACX,OAAO,OAAO;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEI,IAAM,qCAAqC;AAC3C,IAAM,0DACX;AAKK,IAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,CAAC,uDAAuD,GAAG,UAAU;AAAA;AACzE;AAEO,SAAS,iBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,UAAU,cAAc,IAAI;AAC1E,SACE,qBAAqB,SAAS,KAC9B,SAAS;AAEb;AAEO,SAAS,qBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,UAAU,cAAc,IAAI;AAC1E,SAAO,oBAAoB;AAAA,IACzB,CAAC,kBAAkB,cAAc,cAAc,IAAI,MAAM;AAAA,EAC3D;AACF;",
4
+ "sourcesContent": ["import {\n DirectiveDefinitionTuple,\n DirectiveName,\n getDirectiveName,\n} from \"./definition\";\n\n/**\n * Used to conditionally include fields or fragments.\n */\nexport const GraphQLIncludeDirective: DirectiveDefinitionTuple = [\n \"include\",\n { if: \"Boolean!\" },\n // TODO: locations for all directives (maybe not - they are irrelevant for runtime)?\n];\n\n/**\n * Used to conditionally skip (exclude) fields or fragments.\n */\nexport const GraphQLSkipDirective: DirectiveDefinitionTuple = [\n \"skip\",\n { if: \"Boolean!\" },\n];\n\n/**\n * Constant string used for default reason for a deprecation.\n */\nexport const DEFAULT_DEPRECATION_REASON = \"No longer supported\";\n\n/**\n * Used to declare element of a GraphQL schema as deprecated.\n */\nexport const GraphQLDeprecatedDirective: DirectiveDefinitionTuple = [\n \"deprecated\",\n { reason: [\"String\", DEFAULT_DEPRECATION_REASON] },\n];\n\n/**\n * Used to provide a URL for specifying the behaviour of custom scalar definitions.\n */\nexport const GraphQLSpecifiedByDirective: DirectiveDefinitionTuple = [\n \"specifiedBy\",\n { url: \"String!\" },\n];\n\n/**\n * Used to conditionally defer fragments.\n */\nexport const GraphQLDeferDirective: DirectiveDefinitionTuple = [\n \"defer\",\n { if: [\"Boolean!\", true], label: \"String\" },\n];\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const GraphQLStreamDirective: DirectiveDefinitionTuple = [\n \"stream\",\n { if: [\"Boolean!\", true], label: \"String\", initialCount: [\"Int\", 0] },\n];\n\n/**\n * The full list of specified directives.\n */\nexport const specifiedDirectives: ReadonlyArray<DirectiveDefinitionTuple> =\n Object.freeze([\n GraphQLIncludeDirective,\n GraphQLSkipDirective,\n GraphQLDeprecatedDirective,\n GraphQLSpecifiedByDirective,\n GraphQLDeferDirective,\n GraphQLStreamDirective,\n ]);\n\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME = \"schema\";\nexport const SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME =\n \"definitions\";\n\n/**\n * Used to conditionally stream list fields.\n */\nexport const SupermassiveSchemaDirective: DirectiveDefinitionTuple = [\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n { [SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME]: \"String!\" }, // Essentially JSON\n];\n\nexport function isKnownDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return (\n isSpecifiedDirective(directive) ||\n name === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME\n );\n}\n\nexport function isSpecifiedDirective(\n directive: DirectiveName | DirectiveDefinitionTuple,\n): boolean {\n const name =\n typeof directive === \"string\" ? directive : getDirectiveName(directive);\n return specifiedDirectives.some(\n (specDirective) => getDirectiveName(specDirective) === name,\n );\n}\n"],
5
+ "mappings": ";AAAA;AAAA,EAGE;AAAA,OACK;AAKA,IAAM,0BAAoD;AAAA,EAC/D;AAAA,EACA,EAAE,IAAI,WAAW;AAAA;AAEnB;AAKO,IAAM,uBAAiD;AAAA,EAC5D;AAAA,EACA,EAAE,IAAI,WAAW;AACnB;AAKO,IAAM,6BAA6B;AAKnC,IAAM,6BAAuD;AAAA,EAClE;AAAA,EACA,EAAE,QAAQ,CAAC,UAAU,0BAA0B,EAAE;AACnD;AAKO,IAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,KAAK,UAAU;AACnB;AAKO,IAAM,wBAAkD;AAAA,EAC7D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,SAAS;AAC5C;AAKO,IAAM,yBAAmD;AAAA,EAC9D;AAAA,EACA,EAAE,IAAI,CAAC,YAAY,IAAI,GAAG,OAAO,UAAU,cAAc,CAAC,OAAO,CAAC,EAAE;AACtE;AAKO,IAAM,sBACX,OAAO,OAAO;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEI,IAAM,qCAAqC;AAC3C,IAAM,0DACX;AAKK,IAAM,8BAAwD;AAAA,EACnE;AAAA,EACA,EAAE,CAAC,uDAAuD,GAAG,UAAU;AAAA;AACzE;AAEO,SAAS,iBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,iBAAiB,SAAS;AACxE,SACE,qBAAqB,SAAS,KAC9B,SAAS;AAEb;AAEO,SAAS,qBACd,WACS;AACT,QAAM,OACJ,OAAO,cAAc,WAAW,YAAY,iBAAiB,SAAS;AACxE,SAAO,oBAAoB;AAAA,IACzB,CAAC,kBAAkB,iBAAiB,aAAa,MAAM;AAAA,EACzD;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,7 @@
1
- import { TypeReference } from "./definition";
2
1
  import { TypeNode } from "graphql";
2
+ export type TypeName = string;
3
+ export type SpecTypeIndex = number;
4
+ export type TypeReference = string | SpecTypeIndex;
3
5
  export declare function isNonNullType(typeRef: TypeReference): boolean;
4
6
  export declare function isListType(typeRef: TypeReference): boolean;
5
7
  export declare function isWrapperType(typeRef: TypeReference): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/schema/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAS,QAAQ,EAAE,MAAM,SAAS,CAAC;AA+C1C,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAG7D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAG1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAE7D;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAW5D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAG/D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAiBpE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAEvE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAEjE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAInE"}
1
+ {"version":3,"file":"reference.d.ts","sourceRoot":"","sources":["../../src/schema/reference.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AA+CnD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAG7D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAG1D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAE7D;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAW5D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAG/D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAiBpE;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,CAEvE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CAEjE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAInE"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/schema/reference.ts"],
4
- "sourcesContent": ["import { TypeReference } from \"./definition\";\nimport { print, TypeNode } from \"graphql\";\n\n// Assumes strict reference format (i.e. no whitespaces, comments, etc)\n// Note: the actual type id is shifted by 1, so String=1, Boolean=2, etc. There is no type with id 0 for sanity.\nconst EncodedSpecTypes = [\n \"String\",\n \"Boolean\",\n \"Int\",\n \"Float\",\n \"ID\",\n\n \"String!\",\n \"Boolean!\",\n \"Int!\",\n \"Float!\",\n \"ID!\",\n\n \"[String]\",\n \"[Boolean]\",\n \"[Int]\",\n \"[Float]\",\n \"[ID]\",\n\n \"[String!]\",\n \"[Boolean!]\",\n \"[Int!]\",\n \"[Float!]\",\n \"[ID!]\",\n\n \"[String]!\",\n \"[Boolean]!\",\n \"[Int]!\",\n \"[Float]!\",\n \"[ID]!\",\n\n \"[String!]!\",\n \"[Boolean!]!\",\n \"[Int!]!\",\n \"[Float!]!\",\n \"[ID!]!\",\n];\nconst NamedTypeMod = 5;\n\nconst NON_NULL_TOKEN = \"!\";\nconst LIST_START_TOKEN = \"[\";\nconst LIST_END_TOKEN = \"]\";\n\nexport function isNonNullType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === NON_NULL_TOKEN;\n}\n\nexport function isListType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === LIST_END_TOKEN;\n}\n\nexport function isWrapperType(typeRef: TypeReference): boolean {\n return isNonNullType(typeRef) || isListType(typeRef);\n}\n\nexport function unwrap(typeRef: TypeReference): TypeReference {\n const ref = decodeRef(typeRef);\n if (isListType(ref)) {\n return encodeRef(ref.slice(1, ref.length - 1));\n }\n if (isNonNullType(ref)) {\n return encodeRef(ref.slice(0, ref.length - 1));\n }\n throw new Error(\n `Can not unwrap type \"${ref}\": it is a nullable type and is not a list`,\n );\n}\n\nexport function unwrapAll(typeRef: TypeReference): TypeReference {\n const typeName = typeNameFromReference(typeRef);\n return encodeRef(typeName);\n}\n\nexport function typeNameFromReference(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n // Fast path for spec types\n return typeNameFromSpecReference(typeRef);\n }\n const ref = decodeRef(typeRef);\n let startIndex = 0;\n let endIndex = ref.length - 1;\n while (ref[startIndex] === LIST_START_TOKEN) {\n startIndex++;\n }\n while (ref[endIndex] === LIST_END_TOKEN || ref[endIndex] === NON_NULL_TOKEN) {\n endIndex--;\n }\n return startIndex === 0 && endIndex === ref.length - 1\n ? ref\n : ref.slice(startIndex, endIndex + 1);\n}\n\nexport function typeReferenceFromNode(typeNode: TypeNode): TypeReference {\n return encodeRef(print(typeNode));\n}\n\nexport function typeReferenceFromName(name: string): TypeReference {\n return encodeRef(name);\n}\n\nexport function inspectTypeReference(typeRef: TypeReference): string {\n return typeof typeRef === \"number\"\n ? EncodedSpecTypes[typeRef - 1] ?? \"(UnknownType)\"\n : typeRef;\n}\n\nfunction decodeRef(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n const stringRef = EncodedSpecTypes[typeRef - 1];\n if (!stringRef) {\n const rangeEnd = EncodedSpecTypes.length;\n throw new Error(\n `Unexpected type reference: ${typeRef} ` +\n `(expecting string or numeric id in the range 1:${rangeEnd})`,\n );\n }\n return stringRef;\n }\n return typeRef;\n}\n\nfunction encodeRef(typeRef: string): TypeReference {\n const index = EncodedSpecTypes.indexOf(typeRef);\n return index === -1 ? typeRef : index + 1;\n}\n\nfunction typeNameFromSpecReference(typeRef: number): string {\n return decodeRef(((typeRef - 1) % NamedTypeMod) + 1);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { print, TypeNode } from \"graphql\";\n\nexport type TypeName = string; // name without wrappers, i.e. \"MyType\", but not \"[MyType]\"\nexport type SpecTypeIndex = number;\nexport type TypeReference = string | SpecTypeIndex; // e.g. \"ComplexType\" | \"ComplexType!\" | \"[ComplexType!]\" | 4 (i.e. \"ID\")\n\n// Assumes strict reference format (i.e. no whitespaces, comments, etc)\n// Note: the actual type id is shifted by 1, so String=1, Boolean=2, etc. There is no type with id 0 for sanity.\nconst EncodedSpecTypes = [\n \"String\",\n \"Boolean\",\n \"Int\",\n \"Float\",\n \"ID\",\n\n \"String!\",\n \"Boolean!\",\n \"Int!\",\n \"Float!\",\n \"ID!\",\n\n \"[String]\",\n \"[Boolean]\",\n \"[Int]\",\n \"[Float]\",\n \"[ID]\",\n\n \"[String!]\",\n \"[Boolean!]\",\n \"[Int!]\",\n \"[Float!]\",\n \"[ID!]\",\n\n \"[String]!\",\n \"[Boolean]!\",\n \"[Int]!\",\n \"[Float]!\",\n \"[ID]!\",\n\n \"[String!]!\",\n \"[Boolean!]!\",\n \"[Int!]!\",\n \"[Float!]!\",\n \"[ID!]!\",\n];\nconst NamedTypeMod = 5;\n\nconst NON_NULL_TOKEN = \"!\";\nconst LIST_START_TOKEN = \"[\";\nconst LIST_END_TOKEN = \"]\";\n\nexport function isNonNullType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === NON_NULL_TOKEN;\n}\n\nexport function isListType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === LIST_END_TOKEN;\n}\n\nexport function isWrapperType(typeRef: TypeReference): boolean {\n return isNonNullType(typeRef) || isListType(typeRef);\n}\n\nexport function unwrap(typeRef: TypeReference): TypeReference {\n const ref = decodeRef(typeRef);\n if (isListType(ref)) {\n return encodeRef(ref.slice(1, ref.length - 1));\n }\n if (isNonNullType(ref)) {\n return encodeRef(ref.slice(0, ref.length - 1));\n }\n throw new Error(\n `Can not unwrap type \"${ref}\": it is a nullable type and is not a list`,\n );\n}\n\nexport function unwrapAll(typeRef: TypeReference): TypeReference {\n const typeName = typeNameFromReference(typeRef);\n return encodeRef(typeName);\n}\n\nexport function typeNameFromReference(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n // Fast path for spec types\n return typeNameFromSpecReference(typeRef);\n }\n const ref = decodeRef(typeRef);\n let startIndex = 0;\n let endIndex = ref.length - 1;\n while (ref[startIndex] === LIST_START_TOKEN) {\n startIndex++;\n }\n while (ref[endIndex] === LIST_END_TOKEN || ref[endIndex] === NON_NULL_TOKEN) {\n endIndex--;\n }\n return startIndex === 0 && endIndex === ref.length - 1\n ? ref\n : ref.slice(startIndex, endIndex + 1);\n}\n\nexport function typeReferenceFromNode(typeNode: TypeNode): TypeReference {\n return encodeRef(print(typeNode));\n}\n\nexport function typeReferenceFromName(name: string): TypeReference {\n return encodeRef(name);\n}\n\nexport function inspectTypeReference(typeRef: TypeReference): string {\n return typeof typeRef === \"number\"\n ? EncodedSpecTypes[typeRef - 1] ?? \"(UnknownType)\"\n : typeRef;\n}\n\nfunction decodeRef(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n const stringRef = EncodedSpecTypes[typeRef - 1];\n if (!stringRef) {\n const rangeEnd = EncodedSpecTypes.length;\n throw new Error(\n `Unexpected type reference: ${typeRef} ` +\n `(expecting string or numeric id in the range 1:${rangeEnd})`,\n );\n }\n return stringRef;\n }\n return typeRef;\n}\n\nfunction encodeRef(typeRef: string): TypeReference {\n const index = EncodedSpecTypes.indexOf(typeRef);\n return index === -1 ? typeRef : index + 1;\n}\n\nfunction typeNameFromSpecReference(typeRef: number): string {\n return decodeRef(((typeRef - 1) % NamedTypeMod) + 1);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/schema/reference.ts"],
4
- "sourcesContent": ["import { TypeReference } from \"./definition\";\nimport { print, TypeNode } from \"graphql\";\n\n// Assumes strict reference format (i.e. no whitespaces, comments, etc)\n// Note: the actual type id is shifted by 1, so String=1, Boolean=2, etc. There is no type with id 0 for sanity.\nconst EncodedSpecTypes = [\n \"String\",\n \"Boolean\",\n \"Int\",\n \"Float\",\n \"ID\",\n\n \"String!\",\n \"Boolean!\",\n \"Int!\",\n \"Float!\",\n \"ID!\",\n\n \"[String]\",\n \"[Boolean]\",\n \"[Int]\",\n \"[Float]\",\n \"[ID]\",\n\n \"[String!]\",\n \"[Boolean!]\",\n \"[Int!]\",\n \"[Float!]\",\n \"[ID!]\",\n\n \"[String]!\",\n \"[Boolean]!\",\n \"[Int]!\",\n \"[Float]!\",\n \"[ID]!\",\n\n \"[String!]!\",\n \"[Boolean!]!\",\n \"[Int!]!\",\n \"[Float!]!\",\n \"[ID!]!\",\n];\nconst NamedTypeMod = 5;\n\nconst NON_NULL_TOKEN = \"!\";\nconst LIST_START_TOKEN = \"[\";\nconst LIST_END_TOKEN = \"]\";\n\nexport function isNonNullType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === NON_NULL_TOKEN;\n}\n\nexport function isListType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === LIST_END_TOKEN;\n}\n\nexport function isWrapperType(typeRef: TypeReference): boolean {\n return isNonNullType(typeRef) || isListType(typeRef);\n}\n\nexport function unwrap(typeRef: TypeReference): TypeReference {\n const ref = decodeRef(typeRef);\n if (isListType(ref)) {\n return encodeRef(ref.slice(1, ref.length - 1));\n }\n if (isNonNullType(ref)) {\n return encodeRef(ref.slice(0, ref.length - 1));\n }\n throw new Error(\n `Can not unwrap type \"${ref}\": it is a nullable type and is not a list`,\n );\n}\n\nexport function unwrapAll(typeRef: TypeReference): TypeReference {\n const typeName = typeNameFromReference(typeRef);\n return encodeRef(typeName);\n}\n\nexport function typeNameFromReference(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n // Fast path for spec types\n return typeNameFromSpecReference(typeRef);\n }\n const ref = decodeRef(typeRef);\n let startIndex = 0;\n let endIndex = ref.length - 1;\n while (ref[startIndex] === LIST_START_TOKEN) {\n startIndex++;\n }\n while (ref[endIndex] === LIST_END_TOKEN || ref[endIndex] === NON_NULL_TOKEN) {\n endIndex--;\n }\n return startIndex === 0 && endIndex === ref.length - 1\n ? ref\n : ref.slice(startIndex, endIndex + 1);\n}\n\nexport function typeReferenceFromNode(typeNode: TypeNode): TypeReference {\n return encodeRef(print(typeNode));\n}\n\nexport function typeReferenceFromName(name: string): TypeReference {\n return encodeRef(name);\n}\n\nexport function inspectTypeReference(typeRef: TypeReference): string {\n return typeof typeRef === \"number\"\n ? EncodedSpecTypes[typeRef - 1] ?? \"(UnknownType)\"\n : typeRef;\n}\n\nfunction decodeRef(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n const stringRef = EncodedSpecTypes[typeRef - 1];\n if (!stringRef) {\n const rangeEnd = EncodedSpecTypes.length;\n throw new Error(\n `Unexpected type reference: ${typeRef} ` +\n `(expecting string or numeric id in the range 1:${rangeEnd})`,\n );\n }\n return stringRef;\n }\n return typeRef;\n}\n\nfunction encodeRef(typeRef: string): TypeReference {\n const index = EncodedSpecTypes.indexOf(typeRef);\n return index === -1 ? typeRef : index + 1;\n}\n\nfunction typeNameFromSpecReference(typeRef: number): string {\n return decodeRef(((typeRef - 1) % NamedTypeMod) + 1);\n}\n"],
5
- "mappings": ";AACA,SAAS,aAAuB;AAIhC,IAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,eAAe;AAErB,IAAM,iBAAiB;AACvB,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AAEhB,SAAS,cAAc,SAAiC;AAC7D,QAAM,MAAM,UAAU,OAAO;AAC7B,SAAO,IAAI,IAAI,SAAS,CAAC,MAAM;AACjC;AAEO,SAAS,WAAW,SAAiC;AAC1D,QAAM,MAAM,UAAU,OAAO;AAC7B,SAAO,IAAI,IAAI,SAAS,CAAC,MAAM;AACjC;AAEO,SAAS,cAAc,SAAiC;AAC7D,SAAO,cAAc,OAAO,KAAK,WAAW,OAAO;AACrD;AAEO,SAAS,OAAO,SAAuC;AAC5D,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,WAAW,GAAG,GAAG;AACnB,WAAO,UAAU,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC;AAAA,EAC/C;AACA,MAAI,cAAc,GAAG,GAAG;AACtB,WAAO,UAAU,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC;AAAA,EAC/C;AACA,QAAM,IAAI;AAAA,IACR,wBAAwB;AAAA,EAC1B;AACF;AAEO,SAAS,UAAU,SAAuC;AAC/D,QAAM,WAAW,sBAAsB,OAAO;AAC9C,SAAO,UAAU,QAAQ;AAC3B;AAEO,SAAS,sBAAsB,SAAgC;AACpE,MAAI,OAAO,YAAY,UAAU;AAE/B,WAAO,0BAA0B,OAAO;AAAA,EAC1C;AACA,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,aAAa;AACjB,MAAI,WAAW,IAAI,SAAS;AAC5B,SAAO,IAAI,UAAU,MAAM,kBAAkB;AAC3C;AAAA,EACF;AACA,SAAO,IAAI,QAAQ,MAAM,kBAAkB,IAAI,QAAQ,MAAM,gBAAgB;AAC3E;AAAA,EACF;AACA,SAAO,eAAe,KAAK,aAAa,IAAI,SAAS,IACjD,MACA,IAAI,MAAM,YAAY,WAAW,CAAC;AACxC;AAEO,SAAS,sBAAsB,UAAmC;AACvE,SAAO,UAAU,MAAM,QAAQ,CAAC;AAClC;AAEO,SAAS,sBAAsB,MAA6B;AACjE,SAAO,UAAU,IAAI;AACvB;AAEO,SAAS,qBAAqB,SAAgC;AA3GrE;AA4GE,SAAO,OAAO,YAAY,YACtB,sBAAiB,UAAU,CAAC,MAA5B,YAAiC,kBACjC;AACN;AAEA,SAAS,UAAU,SAAgC;AACjD,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,YAAY,iBAAiB,UAAU,CAAC;AAC9C,QAAI,CAAC,WAAW;AACd,YAAM,WAAW,iBAAiB;AAClC,YAAM,IAAI;AAAA,QACR,8BAA8B,0DACsB;AAAA,MACtD;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,UAAU,SAAgC;AACjD,QAAM,QAAQ,iBAAiB,QAAQ,OAAO;AAC9C,SAAO,UAAU,KAAK,UAAU,QAAQ;AAC1C;AAEA,SAAS,0BAA0B,SAAyB;AAC1D,SAAO,WAAY,UAAU,KAAK,eAAgB,CAAC;AACrD;",
4
+ "sourcesContent": ["import { print, TypeNode } from \"graphql\";\n\nexport type TypeName = string; // name without wrappers, i.e. \"MyType\", but not \"[MyType]\"\nexport type SpecTypeIndex = number;\nexport type TypeReference = string | SpecTypeIndex; // e.g. \"ComplexType\" | \"ComplexType!\" | \"[ComplexType!]\" | 4 (i.e. \"ID\")\n\n// Assumes strict reference format (i.e. no whitespaces, comments, etc)\n// Note: the actual type id is shifted by 1, so String=1, Boolean=2, etc. There is no type with id 0 for sanity.\nconst EncodedSpecTypes = [\n \"String\",\n \"Boolean\",\n \"Int\",\n \"Float\",\n \"ID\",\n\n \"String!\",\n \"Boolean!\",\n \"Int!\",\n \"Float!\",\n \"ID!\",\n\n \"[String]\",\n \"[Boolean]\",\n \"[Int]\",\n \"[Float]\",\n \"[ID]\",\n\n \"[String!]\",\n \"[Boolean!]\",\n \"[Int!]\",\n \"[Float!]\",\n \"[ID!]\",\n\n \"[String]!\",\n \"[Boolean]!\",\n \"[Int]!\",\n \"[Float]!\",\n \"[ID]!\",\n\n \"[String!]!\",\n \"[Boolean!]!\",\n \"[Int!]!\",\n \"[Float!]!\",\n \"[ID!]!\",\n];\nconst NamedTypeMod = 5;\n\nconst NON_NULL_TOKEN = \"!\";\nconst LIST_START_TOKEN = \"[\";\nconst LIST_END_TOKEN = \"]\";\n\nexport function isNonNullType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === NON_NULL_TOKEN;\n}\n\nexport function isListType(typeRef: TypeReference): boolean {\n const ref = decodeRef(typeRef);\n return ref[ref.length - 1] === LIST_END_TOKEN;\n}\n\nexport function isWrapperType(typeRef: TypeReference): boolean {\n return isNonNullType(typeRef) || isListType(typeRef);\n}\n\nexport function unwrap(typeRef: TypeReference): TypeReference {\n const ref = decodeRef(typeRef);\n if (isListType(ref)) {\n return encodeRef(ref.slice(1, ref.length - 1));\n }\n if (isNonNullType(ref)) {\n return encodeRef(ref.slice(0, ref.length - 1));\n }\n throw new Error(\n `Can not unwrap type \"${ref}\": it is a nullable type and is not a list`,\n );\n}\n\nexport function unwrapAll(typeRef: TypeReference): TypeReference {\n const typeName = typeNameFromReference(typeRef);\n return encodeRef(typeName);\n}\n\nexport function typeNameFromReference(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n // Fast path for spec types\n return typeNameFromSpecReference(typeRef);\n }\n const ref = decodeRef(typeRef);\n let startIndex = 0;\n let endIndex = ref.length - 1;\n while (ref[startIndex] === LIST_START_TOKEN) {\n startIndex++;\n }\n while (ref[endIndex] === LIST_END_TOKEN || ref[endIndex] === NON_NULL_TOKEN) {\n endIndex--;\n }\n return startIndex === 0 && endIndex === ref.length - 1\n ? ref\n : ref.slice(startIndex, endIndex + 1);\n}\n\nexport function typeReferenceFromNode(typeNode: TypeNode): TypeReference {\n return encodeRef(print(typeNode));\n}\n\nexport function typeReferenceFromName(name: string): TypeReference {\n return encodeRef(name);\n}\n\nexport function inspectTypeReference(typeRef: TypeReference): string {\n return typeof typeRef === \"number\"\n ? EncodedSpecTypes[typeRef - 1] ?? \"(UnknownType)\"\n : typeRef;\n}\n\nfunction decodeRef(typeRef: TypeReference): string {\n if (typeof typeRef === \"number\") {\n const stringRef = EncodedSpecTypes[typeRef - 1];\n if (!stringRef) {\n const rangeEnd = EncodedSpecTypes.length;\n throw new Error(\n `Unexpected type reference: ${typeRef} ` +\n `(expecting string or numeric id in the range 1:${rangeEnd})`,\n );\n }\n return stringRef;\n }\n return typeRef;\n}\n\nfunction encodeRef(typeRef: string): TypeReference {\n const index = EncodedSpecTypes.indexOf(typeRef);\n return index === -1 ? typeRef : index + 1;\n}\n\nfunction typeNameFromSpecReference(typeRef: number): string {\n return decodeRef(((typeRef - 1) % NamedTypeMod) + 1);\n}\n"],
5
+ "mappings": ";AAAA,SAAS,aAAuB;AAQhC,IAAM,mBAAmB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AACA,IAAM,eAAe;AAErB,IAAM,iBAAiB;AACvB,IAAM,mBAAmB;AACzB,IAAM,iBAAiB;AAEhB,SAAS,cAAc,SAAiC;AAC7D,QAAM,MAAM,UAAU,OAAO;AAC7B,SAAO,IAAI,IAAI,SAAS,CAAC,MAAM;AACjC;AAEO,SAAS,WAAW,SAAiC;AAC1D,QAAM,MAAM,UAAU,OAAO;AAC7B,SAAO,IAAI,IAAI,SAAS,CAAC,MAAM;AACjC;AAEO,SAAS,cAAc,SAAiC;AAC7D,SAAO,cAAc,OAAO,KAAK,WAAW,OAAO;AACrD;AAEO,SAAS,OAAO,SAAuC;AAC5D,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,WAAW,GAAG,GAAG;AACnB,WAAO,UAAU,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC;AAAA,EAC/C;AACA,MAAI,cAAc,GAAG,GAAG;AACtB,WAAO,UAAU,IAAI,MAAM,GAAG,IAAI,SAAS,CAAC,CAAC;AAAA,EAC/C;AACA,QAAM,IAAI;AAAA,IACR,wBAAwB;AAAA,EAC1B;AACF;AAEO,SAAS,UAAU,SAAuC;AAC/D,QAAM,WAAW,sBAAsB,OAAO;AAC9C,SAAO,UAAU,QAAQ;AAC3B;AAEO,SAAS,sBAAsB,SAAgC;AACpE,MAAI,OAAO,YAAY,UAAU;AAE/B,WAAO,0BAA0B,OAAO;AAAA,EAC1C;AACA,QAAM,MAAM,UAAU,OAAO;AAC7B,MAAI,aAAa;AACjB,MAAI,WAAW,IAAI,SAAS;AAC5B,SAAO,IAAI,UAAU,MAAM,kBAAkB;AAC3C;AAAA,EACF;AACA,SAAO,IAAI,QAAQ,MAAM,kBAAkB,IAAI,QAAQ,MAAM,gBAAgB;AAC3E;AAAA,EACF;AACA,SAAO,eAAe,KAAK,aAAa,IAAI,SAAS,IACjD,MACA,IAAI,MAAM,YAAY,WAAW,CAAC;AACxC;AAEO,SAAS,sBAAsB,UAAmC;AACvE,SAAO,UAAU,MAAM,QAAQ,CAAC;AAClC;AAEO,SAAS,sBAAsB,MAA6B;AACjE,SAAO,UAAU,IAAI;AACvB;AAEO,SAAS,qBAAqB,SAAgC;AA9GrE;AA+GE,SAAO,OAAO,YAAY,YACtB,sBAAiB,UAAU,CAAC,MAA5B,YAAiC,kBACjC;AACN;AAEA,SAAS,UAAU,SAAgC;AACjD,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,YAAY,iBAAiB,UAAU,CAAC;AAC9C,QAAI,CAAC,WAAW;AACd,YAAM,WAAW,iBAAiB;AAClC,YAAM,IAAI;AAAA,QACR,8BAA8B,0DACsB;AAAA,MACtD;AAAA,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,SAAS,UAAU,SAAgC;AACjD,QAAM,QAAQ,iBAAiB,QAAQ,OAAO;AAC9C,SAAO,UAAU,KAAK,UAAU,QAAQ;AAC1C;AAEA,SAAS,0BAA0B,SAAyB;AAC1D,SAAO,WAAY,UAAU,KAAK,eAAgB,CAAC;AACrD;",
6
6
  "names": []
7
7
  }