@graphitation/supermassive 3.0.0-alpha.1 → 3.0.0-alpha.3

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 (193) hide show
  1. package/.eslintcache +1 -1
  2. package/CHANGELOG.md +10 -2
  3. package/lib/__testUtils__/execute.d.ts +13 -0
  4. package/lib/__testUtils__/execute.d.ts.map +1 -0
  5. package/lib/__testUtils__/execute.js +196 -0
  6. package/lib/__testUtils__/execute.js.map +7 -0
  7. package/lib/__testUtils__/execute.mjs +174 -0
  8. package/lib/__testUtils__/execute.mjs.map +7 -0
  9. package/lib/benchmarks/index.js +10 -19
  10. package/lib/benchmarks/index.js.map +3 -3
  11. package/lib/benchmarks/index.mjs +11 -22
  12. package/lib/benchmarks/index.mjs.map +2 -2
  13. package/lib/collectFields.d.ts +4 -9
  14. package/lib/collectFields.d.ts.map +1 -1
  15. package/lib/collectFields.js +38 -99
  16. package/lib/collectFields.js.map +2 -2
  17. package/lib/collectFields.mjs +41 -100
  18. package/lib/collectFields.mjs.map +2 -2
  19. package/lib/executeWithSchema.d.ts +1 -1
  20. package/lib/executeWithSchema.d.ts.map +1 -1
  21. package/lib/executeWithSchema.js +7 -13
  22. package/lib/executeWithSchema.js.map +2 -2
  23. package/lib/executeWithSchema.mjs +9 -20
  24. package/lib/executeWithSchema.mjs.map +2 -2
  25. package/lib/executeWithoutSchema.d.ts +5 -5
  26. package/lib/executeWithoutSchema.d.ts.map +1 -1
  27. package/lib/executeWithoutSchema.js +175 -227
  28. package/lib/executeWithoutSchema.js.map +2 -2
  29. package/lib/executeWithoutSchema.mjs +176 -228
  30. package/lib/executeWithoutSchema.mjs.map +2 -2
  31. package/lib/index.d.ts +2 -9
  32. package/lib/index.d.ts.map +1 -1
  33. package/lib/index.js +0 -7
  34. package/lib/index.js.map +2 -2
  35. package/lib/index.mjs +0 -10
  36. package/lib/index.mjs.map +2 -2
  37. package/lib/schema/definition.d.ts +95 -0
  38. package/lib/schema/definition.d.ts.map +1 -0
  39. package/lib/schema/definition.js +77 -0
  40. package/lib/schema/definition.js.map +7 -0
  41. package/lib/schema/definition.mjs +58 -0
  42. package/lib/schema/definition.mjs.map +7 -0
  43. package/lib/schema/directives.d.ts +41 -0
  44. package/lib/schema/directives.d.ts.map +1 -0
  45. package/lib/schema/directives.js +82 -0
  46. package/lib/schema/directives.js.map +7 -0
  47. package/lib/schema/directives.mjs +65 -0
  48. package/lib/schema/directives.mjs.map +7 -0
  49. package/lib/schema/fragment.d.ts +41 -0
  50. package/lib/schema/fragment.d.ts.map +1 -0
  51. package/lib/schema/fragment.js +270 -0
  52. package/lib/schema/fragment.js.map +7 -0
  53. package/lib/schema/fragment.mjs +267 -0
  54. package/lib/schema/fragment.mjs.map +7 -0
  55. package/lib/schema/reference.d.ts +12 -0
  56. package/lib/schema/reference.d.ts.map +1 -0
  57. package/lib/schema/reference.js +137 -0
  58. package/lib/schema/reference.js.map +7 -0
  59. package/lib/schema/reference.mjs +118 -0
  60. package/lib/schema/reference.mjs.map +7 -0
  61. package/lib/schema/resolvers.d.ts +9 -0
  62. package/lib/schema/resolvers.d.ts.map +1 -0
  63. package/lib/schema/resolvers.js +47 -0
  64. package/lib/schema/resolvers.js.map +7 -0
  65. package/lib/schema/resolvers.mjs +35 -0
  66. package/lib/schema/resolvers.mjs.map +7 -0
  67. package/lib/subscribeWithSchema.d.ts +1 -1
  68. package/lib/subscribeWithSchema.d.ts.map +1 -1
  69. package/lib/subscribeWithSchema.js +7 -13
  70. package/lib/subscribeWithSchema.js.map +2 -2
  71. package/lib/subscribeWithSchema.mjs +9 -20
  72. package/lib/subscribeWithSchema.mjs.map +2 -2
  73. package/lib/types.d.ts +10 -24
  74. package/lib/types.d.ts.map +1 -1
  75. package/lib/types.js.map +2 -2
  76. package/lib/types.mjs.map +2 -2
  77. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts +9 -0
  78. package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts.map +1 -0
  79. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +303 -0
  80. package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +7 -0
  81. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +317 -0
  82. package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +7 -0
  83. package/lib/{supermassive-ast → utilities}/annotateDocumentGraphQLTransform.d.ts +1 -1
  84. package/lib/utilities/annotateDocumentGraphQLTransform.d.ts.map +1 -0
  85. package/lib/{supermassive-ast → utilities}/annotateDocumentGraphQLTransform.js +3 -3
  86. package/lib/utilities/annotateDocumentGraphQLTransform.js.map +7 -0
  87. package/lib/utilities/annotateDocumentGraphQLTransform.mjs +17 -0
  88. package/lib/utilities/annotateDocumentGraphQLTransform.mjs.map +7 -0
  89. package/lib/utilities/coerceInputValue.d.ts +10 -0
  90. package/lib/utilities/coerceInputValue.d.ts.map +1 -0
  91. package/lib/utilities/coerceInputValue.js +181 -0
  92. package/lib/utilities/coerceInputValue.js.map +7 -0
  93. package/lib/utilities/coerceInputValue.mjs +167 -0
  94. package/lib/utilities/coerceInputValue.mjs.map +7 -0
  95. package/lib/utilities/decodeASTSchema.d.ts +7 -0
  96. package/lib/utilities/decodeASTSchema.d.ts.map +1 -0
  97. package/lib/utilities/decodeASTSchema.js +243 -0
  98. package/lib/utilities/decodeASTSchema.js.map +7 -0
  99. package/lib/utilities/decodeASTSchema.mjs +242 -0
  100. package/lib/utilities/decodeASTSchema.mjs.map +7 -0
  101. package/lib/utilities/encodeASTSchema.d.ts +4 -0
  102. package/lib/utilities/encodeASTSchema.d.ts.map +1 -0
  103. package/lib/utilities/encodeASTSchema.js +122 -0
  104. package/lib/utilities/encodeASTSchema.js.map +7 -0
  105. package/lib/utilities/encodeASTSchema.mjs +105 -0
  106. package/lib/utilities/encodeASTSchema.mjs.map +7 -0
  107. package/lib/utilities/getSchemaFragment.d.ts +4 -0
  108. package/lib/utilities/getSchemaFragment.d.ts.map +1 -0
  109. package/lib/utilities/getSchemaFragment.js +38 -0
  110. package/lib/utilities/getSchemaFragment.js.map +7 -0
  111. package/lib/utilities/getSchemaFragment.mjs +22 -0
  112. package/lib/utilities/getSchemaFragment.mjs.map +7 -0
  113. package/lib/utilities/makeReadableErrorPath.d.ts +3 -0
  114. package/lib/utilities/makeReadableErrorPath.d.ts.map +1 -0
  115. package/lib/utilities/makeReadableErrorPath.js +47 -0
  116. package/lib/utilities/makeReadableErrorPath.js.map +7 -0
  117. package/lib/utilities/makeReadableErrorPath.mjs +28 -0
  118. package/lib/utilities/makeReadableErrorPath.mjs.map +7 -0
  119. package/lib/utilities/mergeDefinitions.d.ts +8 -0
  120. package/lib/utilities/mergeDefinitions.d.ts.map +1 -0
  121. package/lib/utilities/mergeDefinitions.js +126 -0
  122. package/lib/utilities/mergeDefinitions.js.map +7 -0
  123. package/lib/utilities/mergeDefinitions.mjs +114 -0
  124. package/lib/utilities/mergeDefinitions.mjs.map +7 -0
  125. package/lib/utilities/typeNameFromAST.d.ts +1 -1
  126. package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
  127. package/lib/utilities/typeNameFromAST.js.map +2 -2
  128. package/lib/utilities/typeNameFromAST.mjs.map +2 -2
  129. package/lib/utilities/valueFromAST.d.ts +27 -0
  130. package/lib/utilities/valueFromAST.d.ts.map +1 -0
  131. package/lib/utilities/valueFromAST.js +139 -0
  132. package/lib/utilities/valueFromAST.js.map +7 -0
  133. package/lib/utilities/valueFromAST.mjs +125 -0
  134. package/lib/utilities/valueFromAST.mjs.map +7 -0
  135. package/lib/utilities/valueFromASTUntyped.d.ts +21 -0
  136. package/lib/utilities/valueFromASTUntyped.d.ts.map +1 -0
  137. package/lib/utilities/valueFromASTUntyped.js +51 -0
  138. package/lib/utilities/valueFromASTUntyped.js.map +7 -0
  139. package/lib/utilities/valueFromASTUntyped.mjs +32 -0
  140. package/lib/utilities/valueFromASTUntyped.mjs.map +7 -0
  141. package/lib/values.d.ts +8 -12
  142. package/lib/values.d.ts.map +1 -1
  143. package/lib/values.js +75 -63
  144. package/lib/values.js.map +2 -2
  145. package/lib/values.mjs +77 -71
  146. package/lib/values.mjs.map +2 -2
  147. package/package.json +8 -6
  148. package/lib/definition.d.ts +0 -7
  149. package/lib/definition.d.ts.map +0 -1
  150. package/lib/definition.js +0 -59
  151. package/lib/definition.js.map +0 -7
  152. package/lib/definition.mjs +0 -40
  153. package/lib/definition.mjs.map +0 -7
  154. package/lib/directives.d.ts +0 -8
  155. package/lib/directives.d.ts.map +0 -1
  156. package/lib/directives.js +0 -47
  157. package/lib/directives.js.map +0 -7
  158. package/lib/directives.mjs +0 -37
  159. package/lib/directives.mjs.map +0 -7
  160. package/lib/extractImplicitTypesRuntime.d.ts +0 -4
  161. package/lib/extractImplicitTypesRuntime.d.ts.map +0 -1
  162. package/lib/extractImplicitTypesRuntime.js +0 -123
  163. package/lib/extractImplicitTypesRuntime.js.map +0 -7
  164. package/lib/extractImplicitTypesRuntime.mjs +0 -114
  165. package/lib/extractImplicitTypesRuntime.mjs.map +0 -7
  166. package/lib/supermassive-ast/TypedAST.d.ts +0 -370
  167. package/lib/supermassive-ast/TypedAST.d.ts.map +0 -1
  168. package/lib/supermassive-ast/TypedAST.js +0 -29
  169. package/lib/supermassive-ast/TypedAST.js.map +0 -7
  170. package/lib/supermassive-ast/TypedAST.mjs +0 -10
  171. package/lib/supermassive-ast/TypedAST.mjs.map +0 -7
  172. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts +0 -56
  173. package/lib/supermassive-ast/addTypesToRequestDocument.d.ts.map +0 -1
  174. package/lib/supermassive-ast/addTypesToRequestDocument.js +0 -473
  175. package/lib/supermassive-ast/addTypesToRequestDocument.js.map +0 -7
  176. package/lib/supermassive-ast/addTypesToRequestDocument.mjs +0 -463
  177. package/lib/supermassive-ast/addTypesToRequestDocument.mjs.map +0 -7
  178. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.d.ts.map +0 -1
  179. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.js.map +0 -7
  180. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs +0 -17
  181. package/lib/supermassive-ast/annotateDocumentGraphQLTransform.mjs.map +0 -7
  182. package/lib/supermassive-ast/directives.d.ts +0 -36
  183. package/lib/supermassive-ast/directives.d.ts.map +0 -1
  184. package/lib/supermassive-ast/directives.js +0 -165
  185. package/lib/supermassive-ast/directives.js.map +0 -7
  186. package/lib/supermassive-ast/directives.mjs +0 -153
  187. package/lib/supermassive-ast/directives.mjs.map +0 -7
  188. package/lib/supermassive-ast/index.d.ts +0 -6
  189. package/lib/supermassive-ast/index.d.ts.map +0 -1
  190. package/lib/supermassive-ast/index.js +0 -37
  191. package/lib/supermassive-ast/index.js.map +0 -7
  192. package/lib/supermassive-ast/index.mjs +0 -27
  193. package/lib/supermassive-ast/index.mjs.map +0 -7
@@ -0,0 +1,242 @@
1
+ // src/utilities/decodeASTSchema.ts
2
+ import {
3
+ Kind
4
+ } from "graphql";
5
+ import {
6
+ DirectiveKeys,
7
+ EnumKeys,
8
+ FieldKeys,
9
+ InputObjectKeys,
10
+ InputValueKeys,
11
+ InterfaceKeys,
12
+ ObjectKeys,
13
+ TypeKind,
14
+ UnionKeys
15
+ } from "../schema/definition.mjs";
16
+ import {
17
+ inspectTypeReference,
18
+ isListType,
19
+ isNonNullType,
20
+ typeNameFromReference,
21
+ unwrap
22
+ } from "../schema/reference.mjs";
23
+ import { invariant } from "../jsutils/invariant.mjs";
24
+ import { inspect } from "../jsutils/inspect.mjs";
25
+ function decodeSchema(encodedSchema) {
26
+ var _a;
27
+ const definitions = [];
28
+ const types = encodedSchema.types;
29
+ for (const typeName in types) {
30
+ const tuple = types[typeName];
31
+ switch (tuple[0]) {
32
+ case TypeKind.SCALAR:
33
+ definitions.push(decodeScalarType(typeName));
34
+ break;
35
+ case TypeKind.ENUM:
36
+ definitions.push(decodeEnumType(typeName, tuple));
37
+ break;
38
+ case TypeKind.OBJECT:
39
+ definitions.push(decodeObjectType(typeName, tuple, types));
40
+ break;
41
+ case TypeKind.INTERFACE:
42
+ definitions.push(decodeInterfaceType(typeName, tuple, types));
43
+ break;
44
+ case TypeKind.UNION:
45
+ definitions.push(decodeUnionType(typeName, tuple));
46
+ break;
47
+ case TypeKind.INPUT:
48
+ definitions.push(decodeInputObjectType(typeName, tuple, types));
49
+ break;
50
+ }
51
+ }
52
+ for (const directive of (_a = encodedSchema.directives) != null ? _a : []) {
53
+ definitions.push(decodeDirective(directive, types));
54
+ }
55
+ return { kind: Kind.DOCUMENT, definitions };
56
+ }
57
+ function nameNode(value) {
58
+ return { kind: Kind.NAME, value };
59
+ }
60
+ function decodeScalarType(typeName) {
61
+ return {
62
+ kind: Kind.SCALAR_TYPE_DEFINITION,
63
+ name: nameNode(typeName)
64
+ };
65
+ }
66
+ function decodeEnumType(typeName, tuple) {
67
+ return {
68
+ kind: Kind.ENUM_TYPE_DEFINITION,
69
+ name: nameNode(typeName),
70
+ values: tuple[EnumKeys.values].map((value) => ({
71
+ kind: Kind.ENUM_VALUE_DEFINITION,
72
+ name: nameNode(value)
73
+ }))
74
+ };
75
+ }
76
+ function decodeObjectType(typeName, tuple, types) {
77
+ return {
78
+ kind: Kind.OBJECT_TYPE_DEFINITION,
79
+ name: nameNode(typeName),
80
+ fields: decodeFields(tuple[ObjectKeys.fields], types),
81
+ interfaces: (tuple[ObjectKeys.interfaces] || []).map((name) => ({
82
+ kind: Kind.NAMED_TYPE,
83
+ name: nameNode(name)
84
+ }))
85
+ };
86
+ }
87
+ function decodeInterfaceType(typeName, tuple, types) {
88
+ return {
89
+ kind: Kind.INTERFACE_TYPE_DEFINITION,
90
+ name: nameNode(typeName),
91
+ fields: decodeFields(tuple[InterfaceKeys.fields], types),
92
+ interfaces: (tuple[InterfaceKeys.interfaces] || []).map((name) => ({
93
+ kind: Kind.NAMED_TYPE,
94
+ name: nameNode(name)
95
+ }))
96
+ };
97
+ }
98
+ function decodeUnionType(typeName, tuple) {
99
+ return {
100
+ kind: Kind.UNION_TYPE_DEFINITION,
101
+ name: nameNode(typeName),
102
+ types: tuple[UnionKeys.types].map((name) => ({
103
+ kind: Kind.NAMED_TYPE,
104
+ name: nameNode(name)
105
+ }))
106
+ };
107
+ }
108
+ function decodeInputObjectType(typeName, tuple, types) {
109
+ return {
110
+ kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,
111
+ name: nameNode(typeName),
112
+ fields: Object.entries(tuple[InputObjectKeys.fields]).map(
113
+ ([name, value]) => decodeInputValue(name, value, types)
114
+ )
115
+ };
116
+ }
117
+ function decodeFields(fields, types) {
118
+ return Object.entries(fields).map(([name, value]) => {
119
+ var _a;
120
+ const type = Array.isArray(value) ? decodeTypeReference(value[FieldKeys.type]) : decodeTypeReference(value);
121
+ return {
122
+ kind: Kind.FIELD_DEFINITION,
123
+ name: nameNode(name),
124
+ type,
125
+ arguments: decodeArguments(
126
+ Array.isArray(value) ? (_a = value[FieldKeys.arguments]) != null ? _a : {} : {},
127
+ types
128
+ )
129
+ };
130
+ });
131
+ }
132
+ function decodeInputValue(name, value, types) {
133
+ const type = Array.isArray(value) ? decodeTypeReference(value[InputValueKeys.type]) : decodeTypeReference(value);
134
+ return {
135
+ kind: Kind.INPUT_VALUE_DEFINITION,
136
+ name: nameNode(name),
137
+ type,
138
+ defaultValue: Array.isArray(value) ? valueToConstValueNode(
139
+ value[InputValueKeys.defaultValue],
140
+ value[InputValueKeys.type],
141
+ types
142
+ ) : void 0
143
+ };
144
+ }
145
+ function valueToConstValueNode(jsValue, typeRef, types) {
146
+ const typeName = typeNameFromReference(typeRef);
147
+ if (typeof jsValue === "string") {
148
+ return typeName === "String" ? { kind: Kind.STRING, value: jsValue } : { kind: Kind.ENUM, value: jsValue };
149
+ }
150
+ if (jsValue === null) {
151
+ invariant(!isNonNullType(typeRef), "Expecting nullable type");
152
+ return { kind: Kind.NULL };
153
+ }
154
+ if (Number.isInteger(jsValue)) {
155
+ return { kind: Kind.INT, value: String(jsValue) };
156
+ }
157
+ if (typeof jsValue === "number") {
158
+ return { kind: Kind.FLOAT, value: String(jsValue) };
159
+ }
160
+ if (Array.isArray(jsValue)) {
161
+ invariant(isListType(typeRef), "Expecting list type");
162
+ return {
163
+ kind: Kind.LIST,
164
+ values: jsValue.map(
165
+ (item) => valueToConstValueNode(item, unwrap(typeRef), types)
166
+ )
167
+ };
168
+ }
169
+ if (typeof jsValue === "object") {
170
+ const typeDef = types[typeName];
171
+ invariant(
172
+ Array.isArray(typeDef) && typeDef[0] === TypeKind.INPUT,
173
+ `Expecting input object type for ${typeName}, got ${typeDef == null ? void 0 : typeDef[0]}`
174
+ );
175
+ const fields = typeDef[InputObjectKeys.fields];
176
+ return {
177
+ kind: Kind.OBJECT,
178
+ fields: Object.entries(jsValue).map(([name, value]) => {
179
+ const fieldDef = fields[name];
180
+ const fieldTypeRef = Array.isArray(fieldDef) ? fieldDef[FieldKeys.type] : fieldDef;
181
+ invariant(
182
+ fieldTypeRef !== void 0,
183
+ `Could not find field definition for ${typeName}.${name}`
184
+ );
185
+ return {
186
+ kind: Kind.OBJECT_FIELD,
187
+ name: nameNode(name),
188
+ value: valueToConstValueNode(value, fieldTypeRef, types)
189
+ };
190
+ })
191
+ };
192
+ }
193
+ invariant(
194
+ false,
195
+ `Unexpected value for type ${inspectTypeReference(typeRef)}: ${inspect(
196
+ jsValue
197
+ )}`
198
+ );
199
+ }
200
+ function decodeArguments(args, types) {
201
+ return Object.entries(args).map(
202
+ ([name, value]) => decodeInputValue(name, value, types)
203
+ );
204
+ }
205
+ function decodeTypeReference(ref) {
206
+ if (isListType(ref)) {
207
+ return {
208
+ kind: Kind.LIST_TYPE,
209
+ type: decodeTypeReference(unwrap(ref))
210
+ };
211
+ }
212
+ if (isNonNullType(ref)) {
213
+ const unwrappedType = decodeTypeReference(unwrap(ref));
214
+ invariant(
215
+ unwrappedType.kind !== Kind.NON_NULL_TYPE,
216
+ "Non-null modifier cannot be nested"
217
+ );
218
+ return {
219
+ kind: Kind.NON_NULL_TYPE,
220
+ type: unwrappedType
221
+ };
222
+ }
223
+ return {
224
+ kind: Kind.NAMED_TYPE,
225
+ name: nameNode(typeNameFromReference(ref))
226
+ };
227
+ }
228
+ function decodeDirective(tuple, types) {
229
+ const name = tuple[DirectiveKeys.name];
230
+ const args = tuple[DirectiveKeys.arguments] ? decodeArguments(tuple[DirectiveKeys.arguments], types) : [];
231
+ return {
232
+ kind: Kind.DIRECTIVE_DEFINITION,
233
+ name: nameNode(name),
234
+ arguments: args,
235
+ // TODO? locations and repeatable are irrelevant for execution
236
+ repeatable: false,
237
+ locations: []
238
+ };
239
+ }
240
+ export {
241
+ decodeSchema
242
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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\";\n\nimport {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n SchemaFragmentDefinitions,\n EnumKeys,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n FieldKeys,\n InputObjectKeys,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InputValueKeys,\n InterfaceKeys,\n InterfaceTypeDefinitionTuple,\n ObjectKeys,\n ObjectTypeDefinitionTuple,\n TypeDefinitionsRecord,\n TypeKind,\n TypeReference,\n UnionKeys,\n UnionTypeDefinitionTuple,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n typeNameFromReference,\n unwrap,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { ConstValueNode } from \"graphql/language/ast\";\nimport { inspect } from \"../jsutils/inspect\";\n\n/**\n * Converts encoded schema to standard AST representation of the same schema\n */\nexport function decodeSchema(\n encodedSchema: SchemaFragmentDefinitions,\n): DocumentNode {\n const definitions = [];\n const types = encodedSchema.types;\n\n for (const typeName in types) {\n const tuple = types[typeName];\n switch (tuple[0]) {\n case TypeKind.SCALAR:\n definitions.push(decodeScalarType(typeName));\n break;\n case TypeKind.ENUM:\n definitions.push(decodeEnumType(typeName, tuple));\n break;\n case TypeKind.OBJECT:\n definitions.push(decodeObjectType(typeName, tuple, types));\n break;\n case TypeKind.INTERFACE:\n definitions.push(decodeInterfaceType(typeName, tuple, types));\n break;\n case TypeKind.UNION:\n definitions.push(decodeUnionType(typeName, tuple));\n break;\n case TypeKind.INPUT:\n definitions.push(decodeInputObjectType(typeName, tuple, types));\n break;\n }\n }\n\n for (const directive of encodedSchema.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: tuple[EnumKeys.values].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(tuple[ObjectKeys.fields], types),\n interfaces: (tuple[ObjectKeys.interfaces] || []).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(tuple[InterfaceKeys.fields], types),\n interfaces: (tuple[InterfaceKeys.interfaces] || []).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: tuple[UnionKeys.types].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(tuple[InputObjectKeys.fields]).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 = Array.isArray(value)\n ? decodeTypeReference(value[FieldKeys.type])\n : decodeTypeReference(value);\n return {\n kind: Kind.FIELD_DEFINITION,\n name: nameNode(name),\n type,\n arguments: decodeArguments(\n Array.isArray(value) ? value[FieldKeys.arguments] ?? {} : {},\n types,\n ),\n };\n });\n}\n\nfunction decodeInputValue(\n name: string,\n value: InputValueDefinition,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode {\n const type = Array.isArray(value)\n ? decodeTypeReference(value[InputValueKeys.type])\n : decodeTypeReference(value);\n\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n name: nameNode(name),\n type,\n defaultValue: Array.isArray(value)\n ? valueToConstValueNode(\n value[InputValueKeys.defaultValue],\n value[InputValueKeys.type],\n types,\n )\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 === \"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) && typeDef[0] === TypeKind.INPUT,\n `Expecting input object type for ${typeName}, got ${typeDef?.[0]}`,\n );\n const fields = typeDef[InputObjectKeys.fields];\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(jsValue).map(([name, value]) => {\n const fieldDef = fields[name];\n const fieldTypeRef = Array.isArray(fieldDef)\n ? fieldDef[FieldKeys.type]\n : 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 = tuple[DirectiveKeys.name];\n const args = tuple[DirectiveKeys.arguments]\n ? decodeArguments(tuple[DirectiveKeys.arguments], types)\n : [];\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n name: nameNode(name),\n arguments: args,\n // TODO? locations and repeatable are irrelevant for execution\n repeatable: false,\n locations: [],\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ import { DocumentNode } from "graphql";
2
+ import { SchemaFragmentDefinitions } from "../schema/definition";
3
+ export declare function encodeASTSchema(schemaFragment: DocumentNode): SchemaFragmentDefinitions;
4
+ //# sourceMappingURL=encodeASTSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encodeASTSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/encodeASTSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAWL,yBAAyB,EAG1B,MAAM,sBAAsB,CAAC;AAI9B,wBAAgB,eAAe,CAC7B,cAAc,EAAE,YAAY,GAC3B,yBAAyB,CAqB3B"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var encodeASTSchema_exports = {};
20
+ __export(encodeASTSchema_exports, {
21
+ encodeASTSchema: () => encodeASTSchema
22
+ });
23
+ module.exports = __toCommonJS(encodeASTSchema_exports);
24
+ var import_definition = require("../schema/definition");
25
+ var import_reference = require("../schema/reference");
26
+ var import_valueFromASTUntyped = require("./valueFromASTUntyped");
27
+ function encodeASTSchema(schemaFragment) {
28
+ const types = /* @__PURE__ */ Object.create(null);
29
+ const directives = [];
30
+ for (const definition of schemaFragment.definitions) {
31
+ if (definition.kind === "ObjectTypeDefinition") {
32
+ types[definition.name.value] = encodeObjectType(definition);
33
+ } else if (definition.kind === "InputObjectTypeDefinition") {
34
+ types[definition.name.value] = encodeInputObjectType(definition);
35
+ } else if (definition.kind === "EnumTypeDefinition") {
36
+ types[definition.name.value] = encodeEnumType(definition);
37
+ } else if (definition.kind === "UnionTypeDefinition") {
38
+ types[definition.name.value] = encodeUnionType(definition);
39
+ } else if (definition.kind === "InterfaceTypeDefinition") {
40
+ types[definition.name.value] = encodeInterfaceType(definition);
41
+ } else if (definition.kind === "ScalarTypeDefinition") {
42
+ types[definition.name.value] = encodeScalarType(definition);
43
+ } else if (definition.kind === "DirectiveDefinition") {
44
+ directives.push(encodeDirective(definition));
45
+ }
46
+ }
47
+ return !directives.length ? { types } : { types, directives };
48
+ }
49
+ function encodeScalarType(_type) {
50
+ return [import_definition.TypeKind.SCALAR];
51
+ }
52
+ function encodeEnumType(node) {
53
+ var _a;
54
+ return [import_definition.TypeKind.ENUM, ((_a = node.values) != null ? _a : []).map((value) => value.name.value)];
55
+ }
56
+ function encodeObjectType(node) {
57
+ var _a;
58
+ const fields = /* @__PURE__ */ Object.create(null);
59
+ for (const field of (_a = node.fields) != null ? _a : []) {
60
+ fields[field.name.value] = encodeField(field);
61
+ }
62
+ if (!node.interfaces) {
63
+ return [import_definition.TypeKind.OBJECT, fields];
64
+ }
65
+ return [
66
+ import_definition.TypeKind.OBJECT,
67
+ fields,
68
+ node.interfaces.map((iface) => iface.name.value)
69
+ ];
70
+ }
71
+ function encodeInterfaceType(node) {
72
+ var _a;
73
+ const fields = /* @__PURE__ */ Object.create(null);
74
+ for (const field of (_a = node.fields) != null ? _a : []) {
75
+ fields[field.name.value] = encodeField(field);
76
+ }
77
+ if (!node.interfaces) {
78
+ return [import_definition.TypeKind.INTERFACE, fields];
79
+ }
80
+ return [
81
+ import_definition.TypeKind.INTERFACE,
82
+ fields,
83
+ node.interfaces.map((iface) => iface.name.value)
84
+ ];
85
+ }
86
+ function encodeUnionType(node) {
87
+ var _a;
88
+ return [import_definition.TypeKind.UNION, ((_a = node.types) != null ? _a : []).map((type) => type.name.value)];
89
+ }
90
+ function encodeInputObjectType(node) {
91
+ var _a;
92
+ const fields = /* @__PURE__ */ Object.create(null);
93
+ for (const field of (_a = node.fields) != null ? _a : []) {
94
+ fields[field.name.value] = encodeInputValue(field);
95
+ }
96
+ return [import_definition.TypeKind.INPUT, fields];
97
+ }
98
+ function encodeField(node) {
99
+ var _a;
100
+ return !((_a = node.arguments) == null ? void 0 : _a.length) ? (0, import_reference.typeReferenceFromNode)(node.type) : [(0, import_reference.typeReferenceFromNode)(node.type), encodeArguments(node)];
101
+ }
102
+ function encodeArguments(node) {
103
+ var _a;
104
+ const args = /* @__PURE__ */ Object.create(null);
105
+ for (const argument of (_a = node.arguments) != null ? _a : []) {
106
+ args[argument.name.value] = encodeInputValue(argument);
107
+ }
108
+ return args;
109
+ }
110
+ function encodeInputValue(node) {
111
+ if (!node.defaultValue) {
112
+ return (0, import_reference.typeReferenceFromNode)(node.type);
113
+ }
114
+ return [
115
+ (0, import_reference.typeReferenceFromNode)(node.type),
116
+ (0, import_valueFromASTUntyped.valueFromASTUntyped)(node.defaultValue)
117
+ ];
118
+ }
119
+ function encodeDirective(node) {
120
+ var _a;
121
+ return !((_a = node.arguments) == null ? void 0 : _a.length) ? [node.name.value] : [node.name.value, encodeArguments(node)];
122
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utilities/encodeASTSchema.ts"],
4
+ "sourcesContent": ["import {\n DirectiveDefinitionNode,\n EnumTypeDefinitionNode,\n FieldDefinitionNode,\n InputObjectTypeDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n ObjectTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n UnionTypeDefinitionNode,\n DocumentNode,\n} from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n EnumTypeDefinitionTuple,\n FieldDefinitionTuple,\n InputObjectTypeDefinitionTuple,\n InputValueDefinitionRecord,\n InputValueDefinitionTuple,\n InterfaceTypeDefinitionTuple,\n ObjectTypeDefinitionTuple,\n ScalarTypeDefinitionTuple,\n UnionTypeDefinitionTuple,\n SchemaFragmentDefinitions,\n TypeKind,\n TypeReference,\n} from \"../schema/definition\";\nimport { typeReferenceFromNode } from \"../schema/reference\";\nimport { valueFromASTUntyped } from \"./valueFromASTUntyped\";\n\nexport function encodeASTSchema(\n schemaFragment: DocumentNode,\n): SchemaFragmentDefinitions {\n const types = Object.create(null);\n const directives = [];\n for (const definition of schemaFragment.definitions) {\n if (definition.kind === \"ObjectTypeDefinition\") {\n types[definition.name.value] = encodeObjectType(definition);\n } else if (definition.kind === \"InputObjectTypeDefinition\") {\n types[definition.name.value] = encodeInputObjectType(definition);\n } else if (definition.kind === \"EnumTypeDefinition\") {\n types[definition.name.value] = encodeEnumType(definition);\n } else if (definition.kind === \"UnionTypeDefinition\") {\n types[definition.name.value] = encodeUnionType(definition);\n } else if (definition.kind === \"InterfaceTypeDefinition\") {\n types[definition.name.value] = encodeInterfaceType(definition);\n } else if (definition.kind === \"ScalarTypeDefinition\") {\n types[definition.name.value] = encodeScalarType(definition);\n } else if (definition.kind === \"DirectiveDefinition\") {\n directives.push(encodeDirective(definition));\n }\n }\n return !directives.length ? { types } : { types, directives };\n}\n\nfunction encodeScalarType(\n _type: ScalarTypeDefinitionNode,\n): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nfunction encodeEnumType(node: EnumTypeDefinitionNode): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, (node.values ?? []).map((value) => value.name.value)];\n}\n\nfunction encodeObjectType(\n node: ObjectTypeDefinitionNode,\n): ObjectTypeDefinitionTuple {\n const fields = Object.create(null);\n for (const field of node.fields ?? []) {\n fields[field.name.value] = encodeField(field);\n }\n if (!node.interfaces) {\n return [TypeKind.OBJECT, fields];\n }\n return [\n TypeKind.OBJECT,\n fields,\n node.interfaces.map((iface) => iface.name.value),\n ];\n}\n\nfunction encodeInterfaceType(\n node: InterfaceTypeDefinitionNode,\n): InterfaceTypeDefinitionTuple {\n const fields = Object.create(null);\n for (const field of node.fields ?? []) {\n fields[field.name.value] = encodeField(field);\n }\n if (!node.interfaces) {\n return [TypeKind.INTERFACE, fields];\n }\n return [\n TypeKind.INTERFACE,\n fields,\n node.interfaces.map((iface) => iface.name.value),\n ];\n}\n\nfunction encodeUnionType(\n node: UnionTypeDefinitionNode,\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, (node.types ?? []).map((type) => type.name.value)];\n}\n\nfunction encodeInputObjectType(\n node: InputObjectTypeDefinitionNode,\n): InputObjectTypeDefinitionTuple {\n const fields = Object.create(null);\n for (const field of node.fields ?? []) {\n fields[field.name.value] = encodeInputValue(field);\n }\n return [TypeKind.INPUT, fields];\n}\n\nfunction encodeField(\n node: FieldDefinitionNode,\n): TypeReference | FieldDefinitionTuple {\n return !node.arguments?.length\n ? typeReferenceFromNode(node.type)\n : [typeReferenceFromNode(node.type), encodeArguments(node)];\n}\n\nfunction encodeArguments(\n node: FieldDefinitionNode | DirectiveDefinitionNode,\n): InputValueDefinitionRecord {\n const args = Object.create(null);\n for (const argument of node.arguments ?? []) {\n args[argument.name.value] = encodeInputValue(argument);\n }\n return args;\n}\n\nfunction encodeInputValue(\n node: InputValueDefinitionNode,\n): InputValueDefinitionTuple | TypeReference {\n if (!node.defaultValue) {\n return typeReferenceFromNode(node.type);\n }\n return [\n typeReferenceFromNode(node.type),\n valueFromASTUntyped(node.defaultValue),\n ];\n}\n\nfunction encodeDirective(\n node: DirectiveDefinitionNode,\n): DirectiveDefinitionTuple {\n return !node.arguments?.length\n ? [node.name.value]\n : [node.name.value, encodeArguments(node)];\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,105 @@
1
+ // src/utilities/encodeASTSchema.ts
2
+ import {
3
+ TypeKind
4
+ } from "../schema/definition.mjs";
5
+ import { typeReferenceFromNode } from "../schema/reference.mjs";
6
+ import { valueFromASTUntyped } from "./valueFromASTUntyped.mjs";
7
+ function encodeASTSchema(schemaFragment) {
8
+ const types = /* @__PURE__ */ Object.create(null);
9
+ const directives = [];
10
+ for (const definition of schemaFragment.definitions) {
11
+ if (definition.kind === "ObjectTypeDefinition") {
12
+ types[definition.name.value] = encodeObjectType(definition);
13
+ } else if (definition.kind === "InputObjectTypeDefinition") {
14
+ types[definition.name.value] = encodeInputObjectType(definition);
15
+ } else if (definition.kind === "EnumTypeDefinition") {
16
+ types[definition.name.value] = encodeEnumType(definition);
17
+ } else if (definition.kind === "UnionTypeDefinition") {
18
+ types[definition.name.value] = encodeUnionType(definition);
19
+ } else if (definition.kind === "InterfaceTypeDefinition") {
20
+ types[definition.name.value] = encodeInterfaceType(definition);
21
+ } else if (definition.kind === "ScalarTypeDefinition") {
22
+ types[definition.name.value] = encodeScalarType(definition);
23
+ } else if (definition.kind === "DirectiveDefinition") {
24
+ directives.push(encodeDirective(definition));
25
+ }
26
+ }
27
+ return !directives.length ? { types } : { types, directives };
28
+ }
29
+ function encodeScalarType(_type) {
30
+ return [TypeKind.SCALAR];
31
+ }
32
+ function encodeEnumType(node) {
33
+ var _a;
34
+ return [TypeKind.ENUM, ((_a = node.values) != null ? _a : []).map((value) => value.name.value)];
35
+ }
36
+ function encodeObjectType(node) {
37
+ var _a;
38
+ const fields = /* @__PURE__ */ Object.create(null);
39
+ for (const field of (_a = node.fields) != null ? _a : []) {
40
+ fields[field.name.value] = encodeField(field);
41
+ }
42
+ if (!node.interfaces) {
43
+ return [TypeKind.OBJECT, fields];
44
+ }
45
+ return [
46
+ TypeKind.OBJECT,
47
+ fields,
48
+ node.interfaces.map((iface) => iface.name.value)
49
+ ];
50
+ }
51
+ function encodeInterfaceType(node) {
52
+ var _a;
53
+ const fields = /* @__PURE__ */ Object.create(null);
54
+ for (const field of (_a = node.fields) != null ? _a : []) {
55
+ fields[field.name.value] = encodeField(field);
56
+ }
57
+ if (!node.interfaces) {
58
+ return [TypeKind.INTERFACE, fields];
59
+ }
60
+ return [
61
+ TypeKind.INTERFACE,
62
+ fields,
63
+ node.interfaces.map((iface) => iface.name.value)
64
+ ];
65
+ }
66
+ function encodeUnionType(node) {
67
+ var _a;
68
+ return [TypeKind.UNION, ((_a = node.types) != null ? _a : []).map((type) => type.name.value)];
69
+ }
70
+ function encodeInputObjectType(node) {
71
+ var _a;
72
+ const fields = /* @__PURE__ */ Object.create(null);
73
+ for (const field of (_a = node.fields) != null ? _a : []) {
74
+ fields[field.name.value] = encodeInputValue(field);
75
+ }
76
+ return [TypeKind.INPUT, fields];
77
+ }
78
+ function encodeField(node) {
79
+ var _a;
80
+ return !((_a = node.arguments) == null ? void 0 : _a.length) ? typeReferenceFromNode(node.type) : [typeReferenceFromNode(node.type), encodeArguments(node)];
81
+ }
82
+ function encodeArguments(node) {
83
+ var _a;
84
+ const args = /* @__PURE__ */ Object.create(null);
85
+ for (const argument of (_a = node.arguments) != null ? _a : []) {
86
+ args[argument.name.value] = encodeInputValue(argument);
87
+ }
88
+ return args;
89
+ }
90
+ function encodeInputValue(node) {
91
+ if (!node.defaultValue) {
92
+ return typeReferenceFromNode(node.type);
93
+ }
94
+ return [
95
+ typeReferenceFromNode(node.type),
96
+ valueFromASTUntyped(node.defaultValue)
97
+ ];
98
+ }
99
+ function encodeDirective(node) {
100
+ var _a;
101
+ return !((_a = node.arguments) == null ? void 0 : _a.length) ? [node.name.value] : [node.name.value, encodeArguments(node)];
102
+ }
103
+ export {
104
+ encodeASTSchema
105
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utilities/encodeASTSchema.ts"],
4
+ "sourcesContent": ["import {\n DirectiveDefinitionNode,\n EnumTypeDefinitionNode,\n FieldDefinitionNode,\n InputObjectTypeDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n ObjectTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n UnionTypeDefinitionNode,\n DocumentNode,\n} from \"graphql\";\nimport {\n DirectiveDefinitionTuple,\n EnumTypeDefinitionTuple,\n FieldDefinitionTuple,\n InputObjectTypeDefinitionTuple,\n InputValueDefinitionRecord,\n InputValueDefinitionTuple,\n InterfaceTypeDefinitionTuple,\n ObjectTypeDefinitionTuple,\n ScalarTypeDefinitionTuple,\n UnionTypeDefinitionTuple,\n SchemaFragmentDefinitions,\n TypeKind,\n TypeReference,\n} from \"../schema/definition\";\nimport { typeReferenceFromNode } from \"../schema/reference\";\nimport { valueFromASTUntyped } from \"./valueFromASTUntyped\";\n\nexport function encodeASTSchema(\n schemaFragment: DocumentNode,\n): SchemaFragmentDefinitions {\n const types = Object.create(null);\n const directives = [];\n for (const definition of schemaFragment.definitions) {\n if (definition.kind === \"ObjectTypeDefinition\") {\n types[definition.name.value] = encodeObjectType(definition);\n } else if (definition.kind === \"InputObjectTypeDefinition\") {\n types[definition.name.value] = encodeInputObjectType(definition);\n } else if (definition.kind === \"EnumTypeDefinition\") {\n types[definition.name.value] = encodeEnumType(definition);\n } else if (definition.kind === \"UnionTypeDefinition\") {\n types[definition.name.value] = encodeUnionType(definition);\n } else if (definition.kind === \"InterfaceTypeDefinition\") {\n types[definition.name.value] = encodeInterfaceType(definition);\n } else if (definition.kind === \"ScalarTypeDefinition\") {\n types[definition.name.value] = encodeScalarType(definition);\n } else if (definition.kind === \"DirectiveDefinition\") {\n directives.push(encodeDirective(definition));\n }\n }\n return !directives.length ? { types } : { types, directives };\n}\n\nfunction encodeScalarType(\n _type: ScalarTypeDefinitionNode,\n): ScalarTypeDefinitionTuple {\n return [TypeKind.SCALAR];\n}\n\nfunction encodeEnumType(node: EnumTypeDefinitionNode): EnumTypeDefinitionTuple {\n return [TypeKind.ENUM, (node.values ?? []).map((value) => value.name.value)];\n}\n\nfunction encodeObjectType(\n node: ObjectTypeDefinitionNode,\n): ObjectTypeDefinitionTuple {\n const fields = Object.create(null);\n for (const field of node.fields ?? []) {\n fields[field.name.value] = encodeField(field);\n }\n if (!node.interfaces) {\n return [TypeKind.OBJECT, fields];\n }\n return [\n TypeKind.OBJECT,\n fields,\n node.interfaces.map((iface) => iface.name.value),\n ];\n}\n\nfunction encodeInterfaceType(\n node: InterfaceTypeDefinitionNode,\n): InterfaceTypeDefinitionTuple {\n const fields = Object.create(null);\n for (const field of node.fields ?? []) {\n fields[field.name.value] = encodeField(field);\n }\n if (!node.interfaces) {\n return [TypeKind.INTERFACE, fields];\n }\n return [\n TypeKind.INTERFACE,\n fields,\n node.interfaces.map((iface) => iface.name.value),\n ];\n}\n\nfunction encodeUnionType(\n node: UnionTypeDefinitionNode,\n): UnionTypeDefinitionTuple {\n return [TypeKind.UNION, (node.types ?? []).map((type) => type.name.value)];\n}\n\nfunction encodeInputObjectType(\n node: InputObjectTypeDefinitionNode,\n): InputObjectTypeDefinitionTuple {\n const fields = Object.create(null);\n for (const field of node.fields ?? []) {\n fields[field.name.value] = encodeInputValue(field);\n }\n return [TypeKind.INPUT, fields];\n}\n\nfunction encodeField(\n node: FieldDefinitionNode,\n): TypeReference | FieldDefinitionTuple {\n return !node.arguments?.length\n ? typeReferenceFromNode(node.type)\n : [typeReferenceFromNode(node.type), encodeArguments(node)];\n}\n\nfunction encodeArguments(\n node: FieldDefinitionNode | DirectiveDefinitionNode,\n): InputValueDefinitionRecord {\n const args = Object.create(null);\n for (const argument of node.arguments ?? []) {\n args[argument.name.value] = encodeInputValue(argument);\n }\n return args;\n}\n\nfunction encodeInputValue(\n node: InputValueDefinitionNode,\n): InputValueDefinitionTuple | TypeReference {\n if (!node.defaultValue) {\n return typeReferenceFromNode(node.type);\n }\n return [\n typeReferenceFromNode(node.type),\n valueFromASTUntyped(node.defaultValue),\n ];\n}\n\nfunction encodeDirective(\n node: DirectiveDefinitionNode,\n): DirectiveDefinitionTuple {\n return !node.arguments?.length\n ? [node.name.value]\n : [node.name.value, encodeArguments(node)];\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ import { FragmentDefinitionNode, OperationDefinitionNode } from "graphql";
2
+ import { SchemaFragmentDefinitions } from "../schema/definition";
3
+ export declare function getSchemaFragment(definition: OperationDefinitionNode | FragmentDefinitionNode): SchemaFragmentDefinitions | undefined;
4
+ //# sourceMappingURL=getSchemaFragment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSchemaFragment.d.ts","sourceRoot":"","sources":["../../src/utilities/getSchemaFragment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAQ,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAKhF,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,uBAAuB,GAAG,sBAAsB,GAC3D,yBAAyB,GAAG,SAAS,CAYvC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var getSchemaFragment_exports = {};
20
+ __export(getSchemaFragment_exports, {
21
+ getSchemaFragment: () => getSchemaFragment
22
+ });
23
+ module.exports = __toCommonJS(getSchemaFragment_exports);
24
+ var import_graphql = require("graphql");
25
+ var import_directives = require("../schema/directives");
26
+ function getSchemaFragment(definition) {
27
+ var _a, _b;
28
+ const directive = (_a = definition.directives) == null ? void 0 : _a.find(
29
+ (directive2) => directive2.name.value === import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME
30
+ );
31
+ const arg = (_b = directive == null ? void 0 : directive.arguments) == null ? void 0 : _b.find(
32
+ (arg2) => arg2.name.value === import_directives.SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME
33
+ );
34
+ if ((arg == null ? void 0 : arg.value.kind) === import_graphql.Kind.STRING) {
35
+ return JSON.parse(arg.value.value);
36
+ }
37
+ return void 0;
38
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utilities/getSchemaFragment.ts"],
4
+ "sourcesContent": ["import { FragmentDefinitionNode, Kind, OperationDefinitionNode } from \"graphql\";\nimport {\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,\n} from \"../schema/directives\";\nimport { SchemaFragmentDefinitions } from \"../schema/definition\";\n\nexport function getSchemaFragment(\n definition: OperationDefinitionNode | FragmentDefinitionNode,\n): SchemaFragmentDefinitions | undefined {\n const directive = definition.directives?.find(\n (directive) => directive.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n );\n const arg = directive?.arguments?.find(\n (arg) =>\n arg.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,\n );\n if (arg?.value.kind === Kind.STRING) {\n return JSON.parse(arg.value.value);\n }\n return undefined;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAsE;AACtE,wBAGO;AAGA,SAAS,kBACd,YACuC;AATzC;AAUE,QAAM,aAAY,gBAAW,eAAX,mBAAuB;AAAA,IACvC,CAACA,eAAcA,WAAU,KAAK,UAAU;AAAA;AAE1C,QAAM,OAAM,4CAAW,cAAX,mBAAsB;AAAA,IAChC,CAACC,SACCA,KAAI,KAAK,UAAU;AAAA;AAEvB,OAAI,2BAAK,MAAM,UAAS,oBAAK,QAAQ;AACnC,WAAO,KAAK,MAAM,IAAI,MAAM,KAAK;AAAA,EACnC;AACA,SAAO;AACT;",
6
+ "names": ["directive", "arg"]
7
+ }
@@ -0,0 +1,22 @@
1
+ // src/utilities/getSchemaFragment.ts
2
+ import { Kind } from "graphql";
3
+ import {
4
+ SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,
5
+ SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME
6
+ } from "../schema/directives.mjs";
7
+ function getSchemaFragment(definition) {
8
+ var _a, _b;
9
+ const directive = (_a = definition.directives) == null ? void 0 : _a.find(
10
+ (directive2) => directive2.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME
11
+ );
12
+ const arg = (_b = directive == null ? void 0 : directive.arguments) == null ? void 0 : _b.find(
13
+ (arg2) => arg2.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME
14
+ );
15
+ if ((arg == null ? void 0 : arg.value.kind) === Kind.STRING) {
16
+ return JSON.parse(arg.value.value);
17
+ }
18
+ return void 0;
19
+ }
20
+ export {
21
+ getSchemaFragment
22
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/utilities/getSchemaFragment.ts"],
4
+ "sourcesContent": ["import { FragmentDefinitionNode, Kind, OperationDefinitionNode } from \"graphql\";\nimport {\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,\n} from \"../schema/directives\";\nimport { SchemaFragmentDefinitions } from \"../schema/definition\";\n\nexport function getSchemaFragment(\n definition: OperationDefinitionNode | FragmentDefinitionNode,\n): SchemaFragmentDefinitions | undefined {\n const directive = definition.directives?.find(\n (directive) => directive.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n );\n const arg = directive?.arguments?.find(\n (arg) =>\n arg.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_FRAGMENT_ARGUMENT_NAME,\n );\n if (arg?.value.kind === Kind.STRING) {\n return JSON.parse(arg.value.value);\n }\n return undefined;\n}\n"],
5
+ "mappings": ";AAAA,SAAiC,YAAqC;AACtE;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAGA,SAAS,kBACd,YACuC;AATzC;AAUE,QAAM,aAAY,gBAAW,eAAX,mBAAuB;AAAA,IACvC,CAACA,eAAcA,WAAU,KAAK,UAAU;AAAA;AAE1C,QAAM,OAAM,4CAAW,cAAX,mBAAsB;AAAA,IAChC,CAACC,SACCA,KAAI,KAAK,UAAU;AAAA;AAEvB,OAAI,2BAAK,MAAM,UAAS,KAAK,QAAQ;AACnC,WAAO,KAAK,MAAM,IAAI,MAAM,KAAK;AAAA,EACnC;AACA,SAAO;AACT;",
6
+ "names": ["directive", "arg"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import { ASTNode } from "graphql";
2
+ export declare function makeReadableErrorPath(ancestors: ReadonlyArray<readonly ASTNode[] | ASTNode>): string[];
3
+ //# sourceMappingURL=makeReadableErrorPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeReadableErrorPath.d.ts","sourceRoot":"","sources":["../../src/utilities/makeReadableErrorPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,aAAa,CAAC,SAAS,OAAO,EAAE,GAAG,OAAO,CAAC,GACrD,MAAM,EAAE,CAsBV"}