@graphitation/supermassive 3.15.3 → 3.16.1-canary.1

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 (48) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +1 -9
  3. package/lib/executeWithoutSchema.d.ts.map +1 -1
  4. package/lib/executeWithoutSchema.js +41 -0
  5. package/lib/executeWithoutSchema.js.map +2 -2
  6. package/lib/executeWithoutSchema.mjs +41 -0
  7. package/lib/executeWithoutSchema.mjs.map +2 -2
  8. package/lib/schema/definition.d.ts +54 -19
  9. package/lib/schema/definition.d.ts.map +1 -1
  10. package/lib/schema/definition.js +127 -18
  11. package/lib/schema/definition.js.map +3 -3
  12. package/lib/schema/definition.mjs +109 -16
  13. package/lib/schema/definition.mjs.map +2 -2
  14. package/lib/schema/directives.d.ts.map +1 -1
  15. package/lib/schema/directives.js +9 -4
  16. package/lib/schema/directives.js.map +2 -2
  17. package/lib/schema/directives.mjs +10 -5
  18. package/lib/schema/directives.mjs.map +2 -2
  19. package/lib/utilities/decodeASTSchema.d.ts.map +1 -1
  20. package/lib/utilities/decodeASTSchema.js +185 -33
  21. package/lib/utilities/decodeASTSchema.js.map +2 -2
  22. package/lib/utilities/decodeASTSchema.mjs +196 -36
  23. package/lib/utilities/decodeASTSchema.mjs.map +2 -2
  24. package/lib/utilities/encodeASTSchema.d.ts +5 -1
  25. package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
  26. package/lib/utilities/encodeASTSchema.js +171 -38
  27. package/lib/utilities/encodeASTSchema.js.map +2 -2
  28. package/lib/utilities/encodeASTSchema.mjs +171 -38
  29. package/lib/utilities/encodeASTSchema.mjs.map +2 -2
  30. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +1 -1
  31. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +2 -2
  32. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +2 -2
  33. package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +2 -2
  34. package/lib/utilities/mergeSchemaDefinitions.d.ts +6 -2
  35. package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -1
  36. package/lib/utilities/mergeSchemaDefinitions.js +86 -5
  37. package/lib/utilities/mergeSchemaDefinitions.js.map +3 -3
  38. package/lib/utilities/mergeSchemaDefinitions.mjs +96 -7
  39. package/lib/utilities/mergeSchemaDefinitions.mjs.map +3 -3
  40. package/lib/utilities/subtractSchemaDefinitions.js +4 -4
  41. package/lib/utilities/subtractSchemaDefinitions.js.map +2 -2
  42. package/lib/utilities/subtractSchemaDefinitions.mjs +5 -5
  43. package/lib/utilities/subtractSchemaDefinitions.mjs.map +2 -2
  44. package/lib/values.js +2 -2
  45. package/lib/values.js.map +2 -2
  46. package/lib/values.mjs +4 -4
  47. package/lib/values.mjs.map +2 -2
  48. package/package.json +1 -1
@@ -32,98 +32,196 @@ function decodeASTSchema(encodedSchemaFragments) {
32
32
  }
33
33
  const definitions = [];
34
34
  const types = encodedSchemaFragments[0].types;
35
- const directives = encodedSchemaFragments[0].directives;
35
+ const directiveDefinitions = encodedSchemaFragments[0].directives;
36
36
  for (const typeName in types) {
37
37
  const tuple = types[typeName];
38
38
  if ((0, import_definition.isScalarTypeDefinition)(tuple)) {
39
- definitions.push(decodeScalarType(typeName));
39
+ definitions.push(
40
+ decodeScalarType(typeName, tuple, types, directiveDefinitions)
41
+ );
40
42
  } else if ((0, import_definition.isEnumTypeDefinition)(tuple)) {
41
- definitions.push(decodeEnumType(typeName, tuple));
43
+ definitions.push(
44
+ decodeEnumType(typeName, tuple, types, directiveDefinitions)
45
+ );
42
46
  } else if ((0, import_definition.isObjectTypeDefinition)(tuple)) {
43
- definitions.push(decodeObjectType(typeName, tuple, types));
47
+ definitions.push(
48
+ decodeObjectType(typeName, tuple, types, directiveDefinitions)
49
+ );
44
50
  } else if ((0, import_definition.isInterfaceTypeDefinition)(tuple)) {
45
- definitions.push(decodeInterfaceType(typeName, tuple, types));
51
+ definitions.push(
52
+ decodeInterfaceType(typeName, tuple, types, directiveDefinitions)
53
+ );
46
54
  } else if ((0, import_definition.isUnionTypeDefinition)(tuple)) {
47
- definitions.push(decodeUnionType(typeName, tuple));
55
+ definitions.push(
56
+ decodeUnionType(typeName, tuple, types, directiveDefinitions)
57
+ );
48
58
  } else if ((0, import_definition.isInputObjectTypeDefinition)(tuple)) {
49
- definitions.push(decodeInputObjectType(typeName, tuple, types));
59
+ definitions.push(
60
+ decodeInputObjectType(typeName, tuple, types, directiveDefinitions)
61
+ );
50
62
  }
51
63
  }
52
- for (const directive of directives != null ? directives : []) {
53
- definitions.push(decodeDirective(directive, types));
64
+ for (const directiveDefinition of directiveDefinitions != null ? directiveDefinitions : []) {
65
+ definitions.push(decodeDirectiveDefinition(directiveDefinition, types));
54
66
  }
55
67
  return { kind: import_graphql.Kind.DOCUMENT, definitions };
56
68
  }
57
69
  function nameNode(value) {
58
70
  return { kind: import_graphql.Kind.NAME, value };
59
71
  }
60
- function decodeScalarType(typeName) {
72
+ function decodeScalarType(typeName, tuple, types, directiveDefinitions) {
73
+ const { directives: metadataDirectives, description: metadataDescription } = (0, import_definition.getScalarTypeMetadata)(tuple) || {};
74
+ const decodedDescription = decodeDescription(metadataDescription);
75
+ const decodedDirectives = decodeDirective(
76
+ metadataDirectives,
77
+ types,
78
+ directiveDefinitions
79
+ );
61
80
  return {
62
81
  kind: import_graphql.Kind.SCALAR_TYPE_DEFINITION,
63
- name: nameNode(typeName)
82
+ name: nameNode(typeName),
83
+ ...decodedDirectives && { directives: decodedDirectives },
84
+ ...decodedDescription && { description: decodedDescription }
64
85
  };
65
86
  }
66
- function decodeEnumType(typeName, tuple) {
87
+ function decodeEnumType(typeName, tuple, types, directiveDefinitions) {
88
+ const {
89
+ directives: metadataDirectives,
90
+ description: metadataDescription,
91
+ values
92
+ } = (0, import_definition.getEnumMetadata)(tuple) || {};
93
+ const decodedDescription = decodeDescription(metadataDescription);
94
+ const decodedDirectives = decodeDirective(
95
+ metadataDirectives,
96
+ types,
97
+ directiveDefinitions
98
+ );
67
99
  return {
68
100
  kind: import_graphql.Kind.ENUM_TYPE_DEFINITION,
69
101
  name: nameNode(typeName),
70
- values: (0, import_definition.getEnumValues)(tuple).map((value) => ({
71
- kind: import_graphql.Kind.ENUM_VALUE_DEFINITION,
72
- name: nameNode(value)
73
- }))
102
+ values: (0, import_definition.getEnumValues)(tuple).map((value) => {
103
+ const valueMetadata = values == null ? void 0 : values[value];
104
+ const decodedValueDescription = decodeDescription(
105
+ valueMetadata == null ? void 0 : valueMetadata.description
106
+ );
107
+ const decodedValueDirectives = decodeDirective(
108
+ valueMetadata == null ? void 0 : valueMetadata.directives,
109
+ types,
110
+ directiveDefinitions
111
+ );
112
+ return {
113
+ kind: import_graphql.Kind.ENUM_VALUE_DEFINITION,
114
+ name: nameNode(value),
115
+ ...decodedValueDirectives && { directives: decodedValueDirectives },
116
+ ...decodedValueDescription && {
117
+ description: decodedValueDescription
118
+ }
119
+ };
120
+ }),
121
+ ...decodedDirectives && { directives: decodedDirectives },
122
+ ...decodedDescription && { description: decodedDescription }
74
123
  };
75
124
  }
76
- function decodeObjectType(typeName, tuple, types) {
125
+ function decodeObjectType(typeName, tuple, types, directiveDefinitions) {
77
126
  var _a;
127
+ const { directives: metadataDirectives, description: metadataDescription } = (0, import_definition.getObjectTypeMetadata)(tuple) || {};
128
+ const decodedDescription = decodeDescription(metadataDescription);
129
+ const decodedDirectives = decodeDirective(
130
+ metadataDirectives,
131
+ types,
132
+ directiveDefinitions
133
+ );
78
134
  return {
79
135
  kind: import_graphql.Kind.OBJECT_TYPE_DEFINITION,
80
136
  name: nameNode(typeName),
81
- fields: decodeFields((_a = (0, import_definition.getObjectFields)(tuple)) != null ? _a : {}, types),
137
+ fields: decodeFields(
138
+ (_a = (0, import_definition.getObjectFields)(tuple)) != null ? _a : {},
139
+ types,
140
+ directiveDefinitions
141
+ ),
82
142
  interfaces: (0, import_definition.getObjectTypeInterfaces)(tuple).map((name) => ({
83
143
  kind: import_graphql.Kind.NAMED_TYPE,
84
144
  name: nameNode(name)
85
- }))
145
+ })),
146
+ ...decodedDirectives && { directives: decodedDirectives },
147
+ ...decodedDescription && { description: decodedDescription }
86
148
  };
87
149
  }
88
- function decodeInterfaceType(typeName, tuple, types) {
150
+ function decodeInterfaceType(typeName, tuple, types, directiveDefinitions) {
151
+ const { directives: metadataDirectives, description: metadataDescription } = (0, import_definition.getInterfaceTypeMetadata)(tuple) || {};
152
+ const decodedDescription = decodeDescription(metadataDescription);
153
+ const decodedDirectives = decodeDirective(
154
+ metadataDirectives,
155
+ types,
156
+ directiveDefinitions
157
+ );
89
158
  return {
90
159
  kind: import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
91
160
  name: nameNode(typeName),
92
- fields: decodeFields((0, import_definition.getFields)(tuple), types),
161
+ fields: decodeFields((0, import_definition.getFields)(tuple), types, directiveDefinitions),
93
162
  interfaces: (0, import_definition.getInterfaceTypeInterfaces)(tuple).map((name) => ({
94
163
  kind: import_graphql.Kind.NAMED_TYPE,
95
164
  name: nameNode(name)
96
- }))
165
+ })),
166
+ ...decodedDirectives && { directives: decodedDirectives },
167
+ ...decodedDescription && { description: decodedDescription }
97
168
  };
98
169
  }
99
- function decodeUnionType(typeName, tuple) {
170
+ function decodeUnionType(typeName, tuple, types, directiveDefinitions) {
171
+ const { directives: metadataDirectives, description: metadataDescription } = (0, import_definition.getUnionTypeMetadata)(tuple) || {};
172
+ const decodedDescription = decodeDescription(metadataDescription);
173
+ const decodedDirectives = decodeDirective(
174
+ metadataDirectives,
175
+ types,
176
+ directiveDefinitions
177
+ );
100
178
  return {
101
179
  kind: import_graphql.Kind.UNION_TYPE_DEFINITION,
102
180
  name: nameNode(typeName),
103
181
  types: (0, import_definition.getUnionTypeMembers)(tuple).map((name) => ({
104
182
  kind: import_graphql.Kind.NAMED_TYPE,
105
183
  name: nameNode(name)
106
- }))
184
+ })),
185
+ ...decodedDirectives && { directives: decodedDirectives },
186
+ ...decodedDescription && { description: decodedDescription }
107
187
  };
108
188
  }
109
- function decodeInputObjectType(typeName, tuple, types) {
189
+ function decodeInputObjectType(typeName, tuple, types, directiveDefinitions) {
190
+ const { directives: metadataDirectives, description: metadataDescription } = (0, import_definition.getInputTypeMetadata)(tuple) || {};
191
+ const decodedDescription = decodeDescription(metadataDescription);
192
+ const decodedDirectives = decodeDirective(
193
+ metadataDirectives,
194
+ types,
195
+ directiveDefinitions
196
+ );
110
197
  return {
111
198
  kind: import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
112
199
  name: nameNode(typeName),
113
200
  fields: Object.entries((0, import_definition.getInputObjectFields)(tuple)).map(
114
201
  ([name, value]) => decodeInputValue(name, value, types)
115
- )
202
+ ),
203
+ ...decodedDirectives && { directives: decodedDirectives },
204
+ ...decodedDescription && { description: decodedDescription }
116
205
  };
117
206
  }
118
- function decodeFields(fields, types) {
207
+ function decodeFields(fields, types, directiveDefinitions) {
119
208
  return Object.entries(fields).map(([name, value]) => {
120
209
  var _a;
121
210
  const type = decodeTypeReference((0, import_definition.getFieldTypeReference)(value));
211
+ const { directives: metadataDirectives, description: metadataDescription } = (0, import_definition.getFieldMetadata)(value) || {};
212
+ const decodedDescription = decodeDescription(metadataDescription);
213
+ const decodedDirectives = decodeDirective(
214
+ metadataDirectives,
215
+ types,
216
+ directiveDefinitions
217
+ );
122
218
  return {
123
219
  kind: import_graphql.Kind.FIELD_DEFINITION,
124
220
  name: nameNode(name),
125
221
  type,
126
- arguments: decodeArguments((_a = (0, import_definition.getFieldArgs)(value)) != null ? _a : {}, types)
222
+ arguments: decodeArguments((_a = (0, import_definition.getFieldArgs)(value)) != null ? _a : {}, types),
223
+ ...decodedDirectives && { directives: decodedDirectives },
224
+ ...decodedDescription && { description: decodedDescription }
127
225
  };
128
226
  });
129
227
  }
@@ -227,10 +325,11 @@ function decodeTypeReference(ref) {
227
325
  name: nameNode((0, import_reference.typeNameFromReference)(ref))
228
326
  };
229
327
  }
230
- function decodeDirective(tuple, types) {
231
- const name = (0, import_definition.getDirectiveName)(tuple);
328
+ function decodeDirectiveDefinition(tuple, types) {
329
+ const name = (0, import_definition.getDirectiveDefinitionName)(tuple);
232
330
  const args = (0, import_definition.getDirectiveDefinitionArgs)(tuple);
233
- const locations = (0, import_definition.getDirectiveLocations)(tuple);
331
+ const locations = (0, import_definition.getDirectiveDefinitionLocations)(tuple);
332
+ const { repeatable, description } = (0, import_definition.getDirectiveDefinitionMetadata)(tuple) || {};
234
333
  return {
235
334
  kind: import_graphql.Kind.DIRECTIVE_DEFINITION,
236
335
  name: nameNode(name),
@@ -239,7 +338,60 @@ function decodeDirective(tuple, types) {
239
338
  kind: import_graphql.Kind.NAME,
240
339
  value: (0, import_definition.decodeDirectiveLocation)(loc)
241
340
  })),
242
- // TODO? repeatable are irrelevant for execution
243
- repeatable: false
341
+ description: decodeDescription(description),
342
+ repeatable: Boolean(repeatable)
343
+ };
344
+ }
345
+ function decodeDirective(directiveTuples, types, directiveDefinitions) {
346
+ if (!directiveTuples || !directiveDefinitions) {
347
+ return;
348
+ }
349
+ return directiveTuples.map(([directiveName, args]) => {
350
+ var _a, _b;
351
+ const directiveTuple = directiveDefinitions == null ? void 0 : directiveDefinitions.find(
352
+ (directiveDefinition) => (0, import_definition.getDirectiveDefinitionName)(directiveDefinition) === directiveName
353
+ );
354
+ (0, import_invariant.invariant)(
355
+ directiveTuple !== void 0,
356
+ `Could not find directive definition for "${directiveName}"`
357
+ );
358
+ const argumentDefinitions = (0, import_definition.getDirectiveDefinitionArgs)(directiveTuple);
359
+ const repeatable = Boolean(
360
+ (_a = (0, import_definition.getDirectiveDefinitionMetadata)(directiveTuple)) == null ? void 0 : _a.repeatable
361
+ );
362
+ return {
363
+ kind: import_graphql.Kind.DIRECTIVE,
364
+ name: nameNode(directiveName),
365
+ ...repeatable && { repeatable },
366
+ arguments: args && argumentDefinitions ? (_b = Object.entries(args)) == null ? void 0 : _b.map(([argName, argValue]) => {
367
+ (0, import_invariant.invariant)(
368
+ argumentDefinitions[argName] !== void 0,
369
+ `Could not find directive argument definition "${argName}"for "${directiveName}" directive`
370
+ );
371
+ const inputValueTypeRef = (0, import_definition.getInputValueTypeReference)(
372
+ argumentDefinitions[argName]
373
+ );
374
+ return {
375
+ kind: import_graphql.Kind.ARGUMENT,
376
+ name: nameNode(argName),
377
+ value: valueToConstValueNode(
378
+ argValue,
379
+ inputValueTypeRef,
380
+ types
381
+ )
382
+ };
383
+ }) : []
384
+ };
385
+ });
386
+ }
387
+ function decodeDescription(description) {
388
+ if (!description) {
389
+ return;
390
+ }
391
+ const { value, block } = description;
392
+ return {
393
+ kind: "StringValue",
394
+ value,
395
+ block
244
396
  };
245
397
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utilities/decodeASTSchema.ts"],
4
- "sourcesContent": ["import {\n DirectiveDefinitionNode,\n DocumentNode,\n EnumTypeDefinitionNode,\n FieldDefinitionNode,\n InputObjectTypeDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n Kind,\n ListTypeNode,\n NamedTypeNode,\n NameNode,\n NonNullTypeNode,\n ObjectTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n UnionTypeDefinitionNode,\n} from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n SchemaDefinitions,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InterfaceTypeDefinitionTuple,\n ObjectTypeDefinitionTuple,\n TypeDefinitionsRecord,\n UnionTypeDefinitionTuple,\n isScalarTypeDefinition,\n isEnumTypeDefinition,\n isObjectTypeDefinition,\n isInterfaceTypeDefinition,\n isUnionTypeDefinition,\n isInputObjectTypeDefinition,\n getEnumValues,\n getObjectFields,\n getObjectTypeInterfaces,\n getFields,\n getInterfaceTypeInterfaces,\n getUnionTypeMembers,\n getInputObjectFields,\n getFieldTypeReference,\n getFieldArgs,\n getInputValueTypeReference,\n getInputDefaultValue,\n getDirectiveName,\n getDirectiveDefinitionArgs,\n getDirectiveLocations,\n decodeDirectiveLocation,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n typeNameFromReference,\n TypeReference,\n unwrap,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { ValueNode as ConstValueNode } from \"graphql/language/ast\"; // TODO: use ConstValueNode in graphql@17\nimport { inspect } from \"../jsutils/inspect\";\n\n/**\n * Converts encoded schema to standard AST representation of the same schema\n */\nexport function decodeASTSchema(\n encodedSchemaFragments: SchemaDefinitions[],\n): DocumentNode {\n if (encodedSchemaFragments.length !== 1) {\n // TODO:\n throw new Error(\"decodeSchema does not support decoding extensions yet\");\n }\n const definitions = [];\n const types = encodedSchemaFragments[0].types;\n const directives = encodedSchemaFragments[0].directives;\n\n for (const typeName in types) {\n const tuple = types[typeName];\n if (isScalarTypeDefinition(tuple)) {\n definitions.push(decodeScalarType(typeName));\n } else if (isEnumTypeDefinition(tuple)) {\n definitions.push(decodeEnumType(typeName, tuple));\n } else if (isObjectTypeDefinition(tuple)) {\n definitions.push(decodeObjectType(typeName, tuple, types));\n } else if (isInterfaceTypeDefinition(tuple)) {\n definitions.push(decodeInterfaceType(typeName, tuple, types));\n } else if (isUnionTypeDefinition(tuple)) {\n definitions.push(decodeUnionType(typeName, tuple));\n } else if (isInputObjectTypeDefinition(tuple)) {\n definitions.push(decodeInputObjectType(typeName, tuple, types));\n }\n }\n\n for (const directive of directives ?? []) {\n definitions.push(decodeDirective(directive, types));\n }\n\n return { kind: Kind.DOCUMENT, definitions };\n}\n\nfunction nameNode(value: string): NameNode {\n return { kind: Kind.NAME, value };\n}\n\nfunction decodeScalarType(typeName: string): ScalarTypeDefinitionNode {\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n name: nameNode(typeName),\n };\n}\n\nfunction decodeEnumType(\n typeName: string,\n tuple: EnumTypeDefinitionTuple,\n): EnumTypeDefinitionNode {\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n name: nameNode(typeName),\n values: getEnumValues(tuple).map((value) => ({\n kind: Kind.ENUM_VALUE_DEFINITION,\n name: nameNode(value),\n })),\n };\n}\n\nfunction decodeObjectType(\n typeName: string,\n tuple: ObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n): ObjectTypeDefinitionNode {\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(getObjectFields(tuple) ?? {}, types),\n interfaces: getObjectTypeInterfaces(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n };\n}\n\nfunction decodeInterfaceType(\n typeName: string,\n tuple: InterfaceTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n): InterfaceTypeDefinitionNode {\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(getFields(tuple), types),\n interfaces: getInterfaceTypeInterfaces(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n };\n}\n\nfunction decodeUnionType(\n typeName: string,\n tuple: UnionTypeDefinitionTuple,\n): UnionTypeDefinitionNode {\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n name: nameNode(typeName),\n types: getUnionTypeMembers(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n };\n}\n\nfunction decodeInputObjectType(\n typeName: string,\n tuple: InputObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n): InputObjectTypeDefinitionNode {\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: Object.entries(getInputObjectFields(tuple)).map(([name, value]) =>\n decodeInputValue(name, value, types),\n ),\n };\n}\n\nfunction decodeFields(\n fields: Record<string, FieldDefinition>,\n types: TypeDefinitionsRecord,\n): FieldDefinitionNode[] {\n return Object.entries(fields).map(([name, value]) => {\n const type = decodeTypeReference(getFieldTypeReference(value));\n return {\n kind: Kind.FIELD_DEFINITION,\n name: nameNode(name),\n type,\n arguments: decodeArguments(getFieldArgs(value) ?? {}, types),\n };\n });\n}\n\nfunction decodeInputValue(\n name: string,\n value: InputValueDefinition,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode {\n const inputValueTypeRef = getInputValueTypeReference(value);\n const type = decodeTypeReference(inputValueTypeRef);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n name: nameNode(name),\n type,\n defaultValue: Array.isArray(value)\n ? (valueToConstValueNode(\n getInputDefaultValue(value),\n inputValueTypeRef,\n types,\n ) as any) // Note: \"any\" is necessary here for graphql15/graphql17 cross-compatibility\n : undefined,\n };\n}\n\nfunction valueToConstValueNode(\n jsValue: unknown,\n typeRef: TypeReference,\n types: TypeDefinitionsRecord,\n): ConstValueNode {\n const typeName = typeNameFromReference(typeRef);\n if (typeof jsValue === \"string\") {\n return typeName === \"String\"\n ? { kind: Kind.STRING, value: jsValue }\n : { kind: Kind.ENUM, value: jsValue };\n }\n if (jsValue === null) {\n invariant(!isNonNullType(typeRef), \"Expecting nullable type\");\n return { kind: Kind.NULL };\n }\n if (Number.isInteger(jsValue)) {\n return { kind: Kind.INT, value: String(jsValue) };\n }\n if (typeof jsValue === \"boolean\") {\n return { kind: Kind.BOOLEAN, value: jsValue };\n }\n if (typeof jsValue === \"number\") {\n return { kind: Kind.FLOAT, value: String(jsValue) };\n }\n if (Array.isArray(jsValue)) {\n invariant(isListType(typeRef), \"Expecting list type\");\n return {\n kind: Kind.LIST,\n values: jsValue.map((item) =>\n valueToConstValueNode(item, unwrap(typeRef), types),\n ),\n };\n }\n if (typeof jsValue === \"object\") {\n const typeDef = types[typeName];\n invariant(\n Array.isArray(typeDef) && isInputObjectTypeDefinition(typeDef),\n `Expecting input object type for ${typeName}, got ${typeDef?.[0]}`,\n );\n const fields = getInputObjectFields(typeDef);\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(jsValue).map(([name, value]) => {\n const fieldDef = fields[name];\n const fieldTypeRef = getInputValueTypeReference(fieldDef);\n invariant(\n fieldTypeRef !== undefined,\n `Could not find field definition for ${typeName}.${name}`,\n );\n return {\n kind: Kind.OBJECT_FIELD,\n name: nameNode(name),\n value: valueToConstValueNode(value, fieldTypeRef, types),\n };\n }),\n };\n }\n invariant(\n false,\n `Unexpected value for type ${inspectTypeReference(typeRef)}: ${inspect(\n jsValue,\n )}`,\n );\n}\n\nfunction decodeArguments(\n args: Record<string, InputValueDefinition>,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode[] {\n return Object.entries(args).map(([name, value]) =>\n decodeInputValue(name, value, types),\n );\n}\n\nfunction decodeTypeReference(\n ref: TypeReference,\n): NamedTypeNode | ListTypeNode | NonNullTypeNode {\n if (isListType(ref)) {\n return {\n kind: Kind.LIST_TYPE,\n type: decodeTypeReference(unwrap(ref)),\n };\n }\n if (isNonNullType(ref)) {\n const unwrappedType = decodeTypeReference(unwrap(ref));\n invariant(\n unwrappedType.kind !== Kind.NON_NULL_TYPE,\n \"Non-null modifier cannot be nested\",\n );\n return {\n kind: Kind.NON_NULL_TYPE,\n type: unwrappedType,\n };\n }\n return {\n kind: Kind.NAMED_TYPE,\n name: nameNode(typeNameFromReference(ref)),\n };\n}\n\nfunction decodeDirective(\n tuple: DirectiveDefinitionTuple,\n types: TypeDefinitionsRecord,\n): DirectiveDefinitionNode {\n const name = getDirectiveName(tuple);\n const args = getDirectiveDefinitionArgs(tuple);\n const locations = getDirectiveLocations(tuple);\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n name: nameNode(name),\n arguments: args ? decodeArguments(args, types) : [],\n locations: locations.map((loc) => ({\n kind: Kind.NAME,\n value: decodeDirectiveLocation(loc),\n })),\n // TODO? repeatable are irrelevant for execution\n repeatable: false,\n };\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n DirectiveDefinitionNode,\n DocumentNode,\n EnumTypeDefinitionNode,\n FieldDefinitionNode,\n InputObjectTypeDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n Kind,\n ListTypeNode,\n NamedTypeNode,\n NameNode,\n NonNullTypeNode,\n ObjectTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n UnionTypeDefinitionNode,\n} from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n SchemaDefinitions,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InterfaceTypeDefinitionTuple,\n ObjectTypeDefinitionTuple,\n TypeDefinitionsRecord,\n UnionTypeDefinitionTuple,\n isScalarTypeDefinition,\n isEnumTypeDefinition,\n isObjectTypeDefinition,\n isInterfaceTypeDefinition,\n isUnionTypeDefinition,\n isInputObjectTypeDefinition,\n getEnumValues,\n getObjectFields,\n getObjectTypeInterfaces,\n getFields,\n getInterfaceTypeInterfaces,\n getUnionTypeMembers,\n getInputObjectFields,\n getFieldTypeReference,\n getFieldArgs,\n getInputValueTypeReference,\n getInputDefaultValue,\n getDirectiveDefinitionName,\n getDirectiveDefinitionArgs,\n getDirectiveDefinitionLocations,\n decodeDirectiveLocation,\n getObjectTypeMetadata,\n getInterfaceTypeMetadata,\n getEnumMetadata,\n getUnionTypeMetadata,\n ScalarTypeDefinitionTuple,\n getScalarTypeMetadata,\n getInputTypeMetadata,\n DirectiveTuple,\n getDirectiveDefinitionMetadata,\n getFieldMetadata,\n Description,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n typeNameFromReference,\n TypeReference,\n unwrap,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport {\n ValueNode as ConstValueNode,\n DirectiveNode,\n StringValueNode,\n} from \"graphql/language/ast\"; // TODO: use ConstValueNode in graphql@17\nimport { inspect } from \"../jsutils/inspect\";\n\n/**\n * Converts encoded schema to standard AST representation of the same schema\n */\nexport function decodeASTSchema(\n encodedSchemaFragments: SchemaDefinitions[],\n): DocumentNode {\n if (encodedSchemaFragments.length !== 1) {\n // TODO:\n throw new Error(\"decodeSchema does not support decoding extensions yet\");\n }\n const definitions = [];\n const types = encodedSchemaFragments[0].types;\n const directiveDefinitions = encodedSchemaFragments[0].directives;\n\n for (const typeName in types) {\n const tuple = types[typeName];\n if (isScalarTypeDefinition(tuple)) {\n definitions.push(\n decodeScalarType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isEnumTypeDefinition(tuple)) {\n definitions.push(\n decodeEnumType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isObjectTypeDefinition(tuple)) {\n definitions.push(\n decodeObjectType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isInterfaceTypeDefinition(tuple)) {\n definitions.push(\n decodeInterfaceType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isUnionTypeDefinition(tuple)) {\n definitions.push(\n decodeUnionType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isInputObjectTypeDefinition(tuple)) {\n definitions.push(\n decodeInputObjectType(typeName, tuple, types, directiveDefinitions),\n );\n }\n }\n\n for (const directiveDefinition of directiveDefinitions ?? []) {\n definitions.push(decodeDirectiveDefinition(directiveDefinition, types));\n }\n\n return { kind: Kind.DOCUMENT, definitions };\n}\n\nfunction nameNode(value: string): NameNode {\n return { kind: Kind.NAME, value };\n}\n\nfunction decodeScalarType(\n typeName: string,\n tuple: ScalarTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): ScalarTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getScalarTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n name: nameNode(typeName),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeEnumType(\n typeName: string,\n tuple: EnumTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): EnumTypeDefinitionNode {\n const {\n directives: metadataDirectives,\n description: metadataDescription,\n values,\n } = getEnumMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n name: nameNode(typeName),\n values: getEnumValues(tuple).map((value) => {\n const valueMetadata = values?.[value];\n const decodedValueDescription = decodeDescription(\n valueMetadata?.description,\n );\n const decodedValueDirectives = decodeDirective(\n valueMetadata?.directives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n name: nameNode(value),\n ...(decodedValueDirectives && { directives: decodedValueDirectives }),\n ...(decodedValueDescription && {\n description: decodedValueDescription,\n }),\n };\n }),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeObjectType(\n typeName: string,\n tuple: ObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): ObjectTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getObjectTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(\n getObjectFields(tuple) ?? {},\n types,\n directiveDefinitions,\n ),\n interfaces: getObjectTypeInterfaces(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeInterfaceType(\n typeName: string,\n tuple: InterfaceTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): InterfaceTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getInterfaceTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(getFields(tuple), types, directiveDefinitions),\n interfaces: getInterfaceTypeInterfaces(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeUnionType(\n typeName: string,\n tuple: UnionTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): UnionTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getUnionTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n name: nameNode(typeName),\n types: getUnionTypeMembers(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeInputObjectType(\n typeName: string,\n tuple: InputObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): InputObjectTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getInputTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: Object.entries(getInputObjectFields(tuple)).map(([name, value]) =>\n decodeInputValue(name, value, types),\n ),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeFields(\n fields: Record<string, FieldDefinition>,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): FieldDefinitionNode[] {\n return Object.entries(fields).map(([name, value]) => {\n const type = decodeTypeReference(getFieldTypeReference(value));\n const { directives: metadataDirectives, description: metadataDescription } =\n getFieldMetadata(value) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n return {\n kind: Kind.FIELD_DEFINITION,\n name: nameNode(name),\n type,\n arguments: decodeArguments(getFieldArgs(value) ?? {}, types),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n });\n}\n\nfunction decodeInputValue(\n name: string,\n value: InputValueDefinition,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode {\n const inputValueTypeRef = getInputValueTypeReference(value);\n const type = decodeTypeReference(inputValueTypeRef);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n name: nameNode(name),\n type,\n defaultValue: Array.isArray(value)\n ? (valueToConstValueNode(\n getInputDefaultValue(value),\n inputValueTypeRef,\n types,\n ) as any) // Note: \"any\" is necessary here for graphql15/graphql17 cross-compatibility\n : undefined,\n };\n}\n\nfunction valueToConstValueNode(\n jsValue: unknown,\n typeRef: TypeReference,\n types: TypeDefinitionsRecord,\n): ConstValueNode {\n const typeName = typeNameFromReference(typeRef);\n if (typeof jsValue === \"string\") {\n return typeName === \"String\"\n ? { kind: Kind.STRING, value: jsValue }\n : { kind: Kind.ENUM, value: jsValue };\n }\n if (jsValue === null) {\n invariant(!isNonNullType(typeRef), \"Expecting nullable type\");\n return { kind: Kind.NULL };\n }\n if (Number.isInteger(jsValue)) {\n return { kind: Kind.INT, value: String(jsValue) };\n }\n if (typeof jsValue === \"boolean\") {\n return { kind: Kind.BOOLEAN, value: jsValue };\n }\n if (typeof jsValue === \"number\") {\n return { kind: Kind.FLOAT, value: String(jsValue) };\n }\n if (Array.isArray(jsValue)) {\n invariant(isListType(typeRef), \"Expecting list type\");\n return {\n kind: Kind.LIST,\n values: jsValue.map((item) =>\n valueToConstValueNode(item, unwrap(typeRef), types),\n ),\n };\n }\n if (typeof jsValue === \"object\") {\n const typeDef = types[typeName];\n invariant(\n Array.isArray(typeDef) && isInputObjectTypeDefinition(typeDef),\n `Expecting input object type for ${typeName}, got ${typeDef?.[0]}`,\n );\n const fields = getInputObjectFields(typeDef);\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(jsValue).map(([name, value]) => {\n const fieldDef = fields[name];\n const fieldTypeRef = getInputValueTypeReference(fieldDef);\n invariant(\n fieldTypeRef !== undefined,\n `Could not find field definition for ${typeName}.${name}`,\n );\n return {\n kind: Kind.OBJECT_FIELD,\n name: nameNode(name),\n value: valueToConstValueNode(value, fieldTypeRef, types),\n };\n }),\n };\n }\n invariant(\n false,\n `Unexpected value for type ${inspectTypeReference(typeRef)}: ${inspect(\n jsValue,\n )}`,\n );\n}\n\nfunction decodeArguments(\n args: Record<string, InputValueDefinition>,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode[] {\n return Object.entries(args).map(([name, value]) =>\n decodeInputValue(name, value, types),\n );\n}\n\nfunction decodeTypeReference(\n ref: TypeReference,\n): NamedTypeNode | ListTypeNode | NonNullTypeNode {\n if (isListType(ref)) {\n return {\n kind: Kind.LIST_TYPE,\n type: decodeTypeReference(unwrap(ref)),\n };\n }\n if (isNonNullType(ref)) {\n const unwrappedType = decodeTypeReference(unwrap(ref));\n invariant(\n unwrappedType.kind !== Kind.NON_NULL_TYPE,\n \"Non-null modifier cannot be nested\",\n );\n return {\n kind: Kind.NON_NULL_TYPE,\n type: unwrappedType,\n };\n }\n return {\n kind: Kind.NAMED_TYPE,\n name: nameNode(typeNameFromReference(ref)),\n };\n}\n\nfunction decodeDirectiveDefinition(\n tuple: DirectiveDefinitionTuple,\n types: TypeDefinitionsRecord,\n): DirectiveDefinitionNode {\n const name = getDirectiveDefinitionName(tuple);\n const args = getDirectiveDefinitionArgs(tuple);\n const locations = getDirectiveDefinitionLocations(tuple);\n const { repeatable, description } =\n getDirectiveDefinitionMetadata(tuple) || {};\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n name: nameNode(name),\n arguments: args ? decodeArguments(args, types) : [],\n locations: locations.map((loc) => ({\n kind: Kind.NAME,\n value: decodeDirectiveLocation(loc),\n })),\n description: decodeDescription(description),\n repeatable: Boolean(repeatable),\n };\n}\n\nfunction decodeDirective(\n directiveTuples: DirectiveTuple[] | undefined,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): ReadonlyArray<DirectiveNode> | undefined {\n if (!directiveTuples || !directiveDefinitions) {\n return;\n }\n\n return directiveTuples.map(([directiveName, args]) => {\n const directiveTuple = directiveDefinitions?.find(\n (directiveDefinition) =>\n getDirectiveDefinitionName(directiveDefinition) === directiveName,\n );\n\n invariant(\n directiveTuple !== undefined,\n `Could not find directive definition for \"${directiveName}\"`,\n );\n\n const argumentDefinitions = getDirectiveDefinitionArgs(directiveTuple);\n const repeatable = Boolean(\n getDirectiveDefinitionMetadata(directiveTuple)?.repeatable,\n );\n\n return {\n kind: Kind.DIRECTIVE,\n name: nameNode(directiveName),\n ...(repeatable && { repeatable }),\n arguments:\n args && argumentDefinitions\n ? Object.entries(args)?.map(([argName, argValue]) => {\n invariant(\n argumentDefinitions[argName] !== undefined,\n `Could not find directive argument definition \"${argName}\"for \"${directiveName}\" directive`,\n );\n\n const inputValueTypeRef = getInputValueTypeReference(\n argumentDefinitions[argName],\n );\n\n return {\n kind: Kind.ARGUMENT,\n name: nameNode(argName),\n value: valueToConstValueNode(\n argValue,\n inputValueTypeRef,\n types,\n ),\n };\n })\n : [],\n };\n });\n}\n\nfunction decodeDescription(\n description?: Description,\n): StringValueNode | undefined {\n if (!description) {\n return;\n }\n\n const { value, block } = description;\n return {\n kind: \"StringValue\",\n value,\n block,\n };\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }