graphql 0.0.1-test.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 (390) hide show
  1. package/LICENSE +21 -0
  2. package/NotSupportedTSVersion.d.ts +1 -0
  3. package/README.md +158 -0
  4. package/error/GraphQLError.d.ts +142 -0
  5. package/error/GraphQLError.js +267 -0
  6. package/error/GraphQLError.mjs +253 -0
  7. package/error/index.d.ts +7 -0
  8. package/error/index.js +41 -0
  9. package/error/index.mjs +3 -0
  10. package/error/locatedError.d.ts +13 -0
  11. package/error/locatedError.js +40 -0
  12. package/error/locatedError.mjs +32 -0
  13. package/error/syntaxError.d.ts +11 -0
  14. package/error/syntaxError.js +21 -0
  15. package/error/syntaxError.mjs +11 -0
  16. package/execution/collectFields.d.ts +45 -0
  17. package/execution/collectFields.js +229 -0
  18. package/execution/collectFields.mjs +213 -0
  19. package/execution/execute.d.ts +185 -0
  20. package/execution/execute.js +1016 -0
  21. package/execution/execute.mjs +988 -0
  22. package/execution/index.d.ts +14 -0
  23. package/execution/index.js +67 -0
  24. package/execution/index.mjs +9 -0
  25. package/execution/mapAsyncIterator.d.ts +9 -0
  26. package/execution/mapAsyncIterator.js +68 -0
  27. package/execution/mapAsyncIterator.mjs +61 -0
  28. package/execution/subscribe.d.ts +68 -0
  29. package/execution/subscribe.js +261 -0
  30. package/execution/subscribe.mjs +239 -0
  31. package/execution/values.d.ts +81 -0
  32. package/execution/values.js +292 -0
  33. package/execution/values.mjs +255 -0
  34. package/graphql.d.ts +67 -0
  35. package/graphql.js +96 -0
  36. package/graphql.mjs +122 -0
  37. package/index.d.ts +411 -0
  38. package/index.js +1263 -0
  39. package/index.mjs +254 -0
  40. package/jsutils/Maybe.d.ts +2 -0
  41. package/jsutils/Maybe.js +5 -0
  42. package/jsutils/Maybe.mjs +1 -0
  43. package/jsutils/ObjMap.d.ts +16 -0
  44. package/jsutils/ObjMap.js +5 -0
  45. package/jsutils/ObjMap.mjs +1 -0
  46. package/jsutils/Path.d.ts +20 -0
  47. package/jsutils/Path.js +33 -0
  48. package/jsutils/Path.mjs +25 -0
  49. package/jsutils/PromiseOrValue.d.ts +1 -0
  50. package/jsutils/PromiseOrValue.js +5 -0
  51. package/jsutils/PromiseOrValue.mjs +1 -0
  52. package/jsutils/devAssert.d.ts +1 -0
  53. package/jsutils/devAssert.js +14 -0
  54. package/jsutils/devAssert.mjs +7 -0
  55. package/jsutils/didYouMean.d.ts +8 -0
  56. package/jsutils/didYouMean.js +38 -0
  57. package/jsutils/didYouMean.mjs +32 -0
  58. package/jsutils/groupBy.d.ts +7 -0
  59. package/jsutils/groupBy.js +26 -0
  60. package/jsutils/groupBy.mjs +19 -0
  61. package/jsutils/identityFunc.d.ts +4 -0
  62. package/jsutils/identityFunc.js +13 -0
  63. package/jsutils/identityFunc.mjs +6 -0
  64. package/jsutils/inspect.d.ts +4 -0
  65. package/jsutils/inspect.js +121 -0
  66. package/jsutils/inspect.mjs +115 -0
  67. package/jsutils/instanceOf.d.ts +16 -0
  68. package/jsutils/instanceOf.js +60 -0
  69. package/jsutils/instanceOf.mjs +52 -0
  70. package/jsutils/invariant.d.ts +4 -0
  71. package/jsutils/invariant.js +16 -0
  72. package/jsutils/invariant.mjs +9 -0
  73. package/jsutils/isAsyncIterable.d.ts +7 -0
  74. package/jsutils/isAsyncIterable.js +18 -0
  75. package/jsutils/isAsyncIterable.mjs +11 -0
  76. package/jsutils/isIterableObject.d.ts +20 -0
  77. package/jsutils/isIterableObject.js +32 -0
  78. package/jsutils/isIterableObject.mjs +25 -0
  79. package/jsutils/isObjectLike.d.ts +7 -0
  80. package/jsutils/isObjectLike.js +14 -0
  81. package/jsutils/isObjectLike.mjs +7 -0
  82. package/jsutils/isPromise.d.ts +5 -0
  83. package/jsutils/isPromise.js +17 -0
  84. package/jsutils/isPromise.mjs +10 -0
  85. package/jsutils/keyMap.d.ts +32 -0
  86. package/jsutils/keyMap.js +43 -0
  87. package/jsutils/keyMap.mjs +36 -0
  88. package/jsutils/keyValMap.d.ts +23 -0
  89. package/jsutils/keyValMap.js +33 -0
  90. package/jsutils/keyValMap.mjs +26 -0
  91. package/jsutils/mapValue.d.ts +9 -0
  92. package/jsutils/mapValue.js +20 -0
  93. package/jsutils/mapValue.mjs +13 -0
  94. package/jsutils/memoize3.d.ts +9 -0
  95. package/jsutils/memoize3.js +41 -0
  96. package/jsutils/memoize3.mjs +34 -0
  97. package/jsutils/naturalCompare.d.ts +8 -0
  98. package/jsutils/naturalCompare.js +69 -0
  99. package/jsutils/naturalCompare.mjs +61 -0
  100. package/jsutils/printPathArray.d.ts +6 -0
  101. package/jsutils/printPathArray.js +17 -0
  102. package/jsutils/printPathArray.mjs +10 -0
  103. package/jsutils/promiseForObject.d.ts +11 -0
  104. package/jsutils/promiseForObject.js +25 -0
  105. package/jsutils/promiseForObject.mjs +18 -0
  106. package/jsutils/promiseReduce.d.ts +13 -0
  107. package/jsutils/promiseReduce.js +27 -0
  108. package/jsutils/promiseReduce.mjs +20 -0
  109. package/jsutils/suggestionList.d.ts +8 -0
  110. package/jsutils/suggestionList.js +139 -0
  111. package/jsutils/suggestionList.mjs +130 -0
  112. package/jsutils/toError.d.ts +4 -0
  113. package/jsutils/toError.js +25 -0
  114. package/jsutils/toError.mjs +18 -0
  115. package/jsutils/toObjMap.d.ts +5 -0
  116. package/jsutils/toObjMap.js +24 -0
  117. package/jsutils/toObjMap.mjs +17 -0
  118. package/language/ast.d.ts +536 -0
  119. package/language/ast.js +224 -0
  120. package/language/ast.mjs +206 -0
  121. package/language/blockString.d.ts +28 -0
  122. package/language/blockString.js +195 -0
  123. package/language/blockString.mjs +178 -0
  124. package/language/characterClasses.d.ts +47 -0
  125. package/language/characterClasses.js +75 -0
  126. package/language/characterClasses.mjs +64 -0
  127. package/language/directiveLocation.d.ts +32 -0
  128. package/language/directiveLocation.js +40 -0
  129. package/language/directiveLocation.mjs +31 -0
  130. package/language/index.d.ts +97 -0
  131. package/language/index.js +215 -0
  132. package/language/index.mjs +29 -0
  133. package/language/kinds.d.ts +65 -0
  134. package/language/kinds.js +64 -0
  135. package/language/kinds.mjs +55 -0
  136. package/language/lexer.d.ts +45 -0
  137. package/language/lexer.js +1006 -0
  138. package/language/lexer.mjs +902 -0
  139. package/language/location.d.ts +16 -0
  140. package/language/location.js +38 -0
  141. package/language/location.mjs +30 -0
  142. package/language/parser.d.ts +554 -0
  143. package/language/parser.js +1567 -0
  144. package/language/parser.mjs +1524 -0
  145. package/language/predicates.d.ts +33 -0
  146. package/language/predicates.js +109 -0
  147. package/language/predicates.mjs +81 -0
  148. package/language/printLocation.d.ts +14 -0
  149. package/language/printLocation.js +74 -0
  150. package/language/printLocation.mjs +66 -0
  151. package/language/printString.d.ts +5 -0
  152. package/language/printString.js +183 -0
  153. package/language/printString.mjs +176 -0
  154. package/language/printer.d.ts +6 -0
  155. package/language/printer.js +351 -0
  156. package/language/printer.mjs +339 -0
  157. package/language/source.d.ts +25 -0
  158. package/language/source.js +65 -0
  159. package/language/source.mjs +50 -0
  160. package/language/tokenKind.d.ts +34 -0
  161. package/language/tokenKind.js +44 -0
  162. package/language/tokenKind.mjs +35 -0
  163. package/language/visitor.d.ts +194 -0
  164. package/language/visitor.js +377 -0
  165. package/language/visitor.mjs +361 -0
  166. package/package.json +40 -0
  167. package/subscription/index.d.ts +19 -0
  168. package/subscription/index.js +19 -0
  169. package/subscription/index.mjs +19 -0
  170. package/type/assertName.d.ts +10 -0
  171. package/type/assertName.js +59 -0
  172. package/type/assertName.mjs +44 -0
  173. package/type/definition.d.ts +917 -0
  174. package/type/definition.js +1329 -0
  175. package/type/definition.mjs +1167 -0
  176. package/type/directives.d.ts +86 -0
  177. package/type/directives.js +224 -0
  178. package/type/directives.mjs +190 -0
  179. package/type/index.d.ts +150 -0
  180. package/type/index.js +547 -0
  181. package/type/index.mjs +103 -0
  182. package/type/introspection.d.ts +29 -0
  183. package/type/introspection.js +617 -0
  184. package/type/introspection.mjs +550 -0
  185. package/type/scalars.d.ts +19 -0
  186. package/type/scalars.js +359 -0
  187. package/type/scalars.mjs +299 -0
  188. package/type/schema.d.ts +170 -0
  189. package/type/schema.js +402 -0
  190. package/type/schema.mjs +381 -0
  191. package/type/validate.d.ts +17 -0
  192. package/type/validate.js +672 -0
  193. package/type/validate.mjs +647 -0
  194. package/utilities/TypeInfo.d.ts +67 -0
  195. package/utilities/TypeInfo.js +418 -0
  196. package/utilities/TypeInfo.mjs +395 -0
  197. package/utilities/assertValidName.d.ts +13 -0
  198. package/utilities/assertValidName.js +51 -0
  199. package/utilities/assertValidName.mjs +40 -0
  200. package/utilities/astFromValue.d.ts +28 -0
  201. package/utilities/astFromValue.js +190 -0
  202. package/utilities/astFromValue.mjs +177 -0
  203. package/utilities/buildASTSchema.d.ts +35 -0
  204. package/utilities/buildASTSchema.js +115 -0
  205. package/utilities/buildASTSchema.mjs +97 -0
  206. package/utilities/buildClientSchema.d.ts +19 -0
  207. package/utilities/buildClientSchema.js +386 -0
  208. package/utilities/buildClientSchema.mjs +363 -0
  209. package/utilities/coerceInputValue.d.ts +16 -0
  210. package/utilities/coerceInputValue.js +191 -0
  211. package/utilities/coerceInputValue.mjs +172 -0
  212. package/utilities/concatAST.d.ts +9 -0
  213. package/utilities/concatAST.js +26 -0
  214. package/utilities/concatAST.mjs +19 -0
  215. package/utilities/extendSchema.d.ts +40 -0
  216. package/utilities/extendSchema.js +798 -0
  217. package/utilities/extendSchema.mjs +789 -0
  218. package/utilities/findBreakingChanges.d.ts +51 -0
  219. package/utilities/findBreakingChanges.js +547 -0
  220. package/utilities/findBreakingChanges.mjs +516 -0
  221. package/utilities/getIntrospectionQuery.d.ts +182 -0
  222. package/utilities/getIntrospectionQuery.js +134 -0
  223. package/utilities/getIntrospectionQuery.mjs +127 -0
  224. package/utilities/getOperationAST.d.ts +11 -0
  225. package/utilities/getOperationAST.js +43 -0
  226. package/utilities/getOperationAST.mjs +36 -0
  227. package/utilities/getOperationRootType.d.ts +15 -0
  228. package/utilities/getOperationRootType.js +59 -0
  229. package/utilities/getOperationRootType.mjs +52 -0
  230. package/utilities/index.d.ts +61 -0
  231. package/utilities/index.js +233 -0
  232. package/utilities/index.mjs +55 -0
  233. package/utilities/introspectionFromSchema.d.ts +18 -0
  234. package/utilities/introspectionFromSchema.js +42 -0
  235. package/utilities/introspectionFromSchema.mjs +30 -0
  236. package/utilities/lexicographicSortSchema.d.ts +9 -0
  237. package/utilities/lexicographicSortSchema.js +177 -0
  238. package/utilities/lexicographicSortSchema.mjs +172 -0
  239. package/utilities/printSchema.d.ts +5 -0
  240. package/utilities/printSchema.js +333 -0
  241. package/utilities/printSchema.mjs +309 -0
  242. package/utilities/separateOperations.d.ts +11 -0
  243. package/utilities/separateOperations.js +88 -0
  244. package/utilities/separateOperations.mjs +80 -0
  245. package/utilities/sortValueNode.d.ts +9 -0
  246. package/utilities/sortValueNode.js +47 -0
  247. package/utilities/sortValueNode.mjs +39 -0
  248. package/utilities/stripIgnoredCharacters.d.ts +62 -0
  249. package/utilities/stripIgnoredCharacters.js +121 -0
  250. package/utilities/stripIgnoredCharacters.mjs +104 -0
  251. package/utilities/typeComparators.d.ts +32 -0
  252. package/utilities/typeComparators.js +116 -0
  253. package/utilities/typeComparators.mjs +106 -0
  254. package/utilities/typeFromAST.d.ts +32 -0
  255. package/utilities/typeFromAST.js +27 -0
  256. package/utilities/typeFromAST.mjs +18 -0
  257. package/utilities/typedQueryDocumentNode.d.ts +22 -0
  258. package/utilities/typedQueryDocumentNode.js +5 -0
  259. package/utilities/typedQueryDocumentNode.mjs +1 -0
  260. package/utilities/valueFromAST.d.ts +29 -0
  261. package/utilities/valueFromAST.js +185 -0
  262. package/utilities/valueFromAST.mjs +172 -0
  263. package/utilities/valueFromASTUntyped.d.ts +23 -0
  264. package/utilities/valueFromASTUntyped.js +61 -0
  265. package/utilities/valueFromASTUntyped.mjs +53 -0
  266. package/validation/ValidationContext.d.ts +95 -0
  267. package/validation/ValidationContext.js +232 -0
  268. package/validation/ValidationContext.mjs +212 -0
  269. package/validation/index.d.ts +40 -0
  270. package/validation/index.js +317 -0
  271. package/validation/index.mjs +68 -0
  272. package/validation/rules/ExecutableDefinitionsRule.d.ts +13 -0
  273. package/validation/rules/ExecutableDefinitionsRule.js +44 -0
  274. package/validation/rules/ExecutableDefinitionsRule.mjs +35 -0
  275. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +13 -0
  276. package/validation/rules/FieldsOnCorrectTypeRule.js +143 -0
  277. package/validation/rules/FieldsOnCorrectTypeRule.mjs +125 -0
  278. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +14 -0
  279. package/validation/rules/FragmentsOnCompositeTypesRule.js +65 -0
  280. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +49 -0
  281. package/validation/rules/KnownArgumentNamesRule.d.ts +23 -0
  282. package/validation/rules/KnownArgumentNamesRule.js +116 -0
  283. package/validation/rules/KnownArgumentNamesRule.mjs +98 -0
  284. package/validation/rules/KnownDirectivesRule.d.ts +16 -0
  285. package/validation/rules/KnownDirectivesRule.js +163 -0
  286. package/validation/rules/KnownDirectivesRule.mjs +146 -0
  287. package/validation/rules/KnownFragmentNamesRule.d.ts +13 -0
  288. package/validation/rules/KnownFragmentNamesRule.js +34 -0
  289. package/validation/rules/KnownFragmentNamesRule.mjs +24 -0
  290. package/validation/rules/KnownTypeNamesRule.d.ts +16 -0
  291. package/validation/rules/KnownTypeNamesRule.js +87 -0
  292. package/validation/rules/KnownTypeNamesRule.mjs +75 -0
  293. package/validation/rules/LoneAnonymousOperationRule.d.ts +13 -0
  294. package/validation/rules/LoneAnonymousOperationRule.js +40 -0
  295. package/validation/rules/LoneAnonymousOperationRule.mjs +32 -0
  296. package/validation/rules/LoneSchemaDefinitionRule.d.ts +10 -0
  297. package/validation/rules/LoneSchemaDefinitionRule.js +63 -0
  298. package/validation/rules/LoneSchemaDefinitionRule.mjs +53 -0
  299. package/validation/rules/NoFragmentCyclesRule.d.ts +13 -0
  300. package/validation/rules/NoFragmentCyclesRule.js +83 -0
  301. package/validation/rules/NoFragmentCyclesRule.mjs +76 -0
  302. package/validation/rules/NoUndefinedVariablesRule.d.ts +13 -0
  303. package/validation/rules/NoUndefinedVariablesRule.js +50 -0
  304. package/validation/rules/NoUndefinedVariablesRule.mjs +43 -0
  305. package/validation/rules/NoUnusedFragmentsRule.d.ts +13 -0
  306. package/validation/rules/NoUnusedFragmentsRule.js +59 -0
  307. package/validation/rules/NoUnusedFragmentsRule.mjs +52 -0
  308. package/validation/rules/NoUnusedVariablesRule.d.ts +13 -0
  309. package/validation/rules/NoUnusedVariablesRule.js +55 -0
  310. package/validation/rules/NoUnusedVariablesRule.mjs +48 -0
  311. package/validation/rules/OverlappingFieldsCanBeMergedRule-old.js +805 -0
  312. package/validation/rules/OverlappingFieldsCanBeMergedRule-old.mjs +788 -0
  313. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +14 -0
  314. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +805 -0
  315. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +788 -0
  316. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +12 -0
  317. package/validation/rules/PossibleFragmentSpreadsRule.js +91 -0
  318. package/validation/rules/PossibleFragmentSpreadsRule.mjs +69 -0
  319. package/validation/rules/PossibleTypeExtensionsRule.d.ts +10 -0
  320. package/validation/rules/PossibleTypeExtensionsRule.js +167 -0
  321. package/validation/rules/PossibleTypeExtensionsRule.mjs +147 -0
  322. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +20 -0
  323. package/validation/rules/ProvidedRequiredArgumentsRule.js +158 -0
  324. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +138 -0
  325. package/validation/rules/ScalarLeafsRule.d.ts +9 -0
  326. package/validation/rules/ScalarLeafsRule.js +51 -0
  327. package/validation/rules/ScalarLeafsRule.mjs +42 -0
  328. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +13 -0
  329. package/validation/rules/SingleFieldSubscriptionsRule.js +82 -0
  330. package/validation/rules/SingleFieldSubscriptionsRule.mjs +73 -0
  331. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +11 -0
  332. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +90 -0
  333. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +79 -0
  334. package/validation/rules/UniqueArgumentNamesRule.d.ts +13 -0
  335. package/validation/rules/UniqueArgumentNamesRule.js +53 -0
  336. package/validation/rules/UniqueArgumentNamesRule.mjs +42 -0
  337. package/validation/rules/UniqueDirectiveNamesRule.d.ts +10 -0
  338. package/validation/rules/UniqueDirectiveNamesRule.js +50 -0
  339. package/validation/rules/UniqueDirectiveNamesRule.mjs +43 -0
  340. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +16 -0
  341. package/validation/rules/UniqueDirectivesPerLocationRule.js +93 -0
  342. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +83 -0
  343. package/validation/rules/UniqueEnumValueNamesRule.d.ts +10 -0
  344. package/validation/rules/UniqueEnumValueNamesRule.js +71 -0
  345. package/validation/rules/UniqueEnumValueNamesRule.mjs +60 -0
  346. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +10 -0
  347. package/validation/rules/UniqueFieldDefinitionNamesRule.js +83 -0
  348. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +75 -0
  349. package/validation/rules/UniqueFragmentNamesRule.d.ts +12 -0
  350. package/validation/rules/UniqueFragmentNamesRule.js +39 -0
  351. package/validation/rules/UniqueFragmentNamesRule.mjs +32 -0
  352. package/validation/rules/UniqueInputFieldNamesRule.d.ts +13 -0
  353. package/validation/rules/UniqueInputFieldNamesRule.js +52 -0
  354. package/validation/rules/UniqueInputFieldNamesRule.mjs +44 -0
  355. package/validation/rules/UniqueOperationNamesRule.d.ts +12 -0
  356. package/validation/rules/UniqueOperationNamesRule.js +41 -0
  357. package/validation/rules/UniqueOperationNamesRule.mjs +34 -0
  358. package/validation/rules/UniqueOperationTypesRule.d.ts +10 -0
  359. package/validation/rules/UniqueOperationTypesRule.js +67 -0
  360. package/validation/rules/UniqueOperationTypesRule.mjs +60 -0
  361. package/validation/rules/UniqueTypeNamesRule.d.ts +10 -0
  362. package/validation/rules/UniqueTypeNamesRule.js +53 -0
  363. package/validation/rules/UniqueTypeNamesRule.mjs +46 -0
  364. package/validation/rules/UniqueVariableNamesRule.d.ts +10 -0
  365. package/validation/rules/UniqueVariableNamesRule.js +47 -0
  366. package/validation/rules/UniqueVariableNamesRule.mjs +39 -0
  367. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +13 -0
  368. package/validation/rules/ValuesOfCorrectTypeRule.js +183 -0
  369. package/validation/rules/ValuesOfCorrectTypeRule.mjs +164 -0
  370. package/validation/rules/VariablesAreInputTypesRule.d.ts +13 -0
  371. package/validation/rules/VariablesAreInputTypesRule.js +44 -0
  372. package/validation/rules/VariablesAreInputTypesRule.mjs +31 -0
  373. package/validation/rules/VariablesInAllowedPositionRule.d.ts +12 -0
  374. package/validation/rules/VariablesInAllowedPositionRule.js +114 -0
  375. package/validation/rules/VariablesInAllowedPositionRule.mjs +95 -0
  376. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +15 -0
  377. package/validation/rules/custom/NoDeprecatedCustomRule.js +121 -0
  378. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +107 -0
  379. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +15 -0
  380. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +39 -0
  381. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +30 -0
  382. package/validation/specifiedRules.d.ts +12 -0
  383. package/validation/specifiedRules.js +160 -0
  384. package/validation/specifiedRules.mjs +123 -0
  385. package/validation/validate.d.ts +61 -0
  386. package/validation/validate.js +151 -0
  387. package/validation/validate.mjs +133 -0
  388. package/version.d.ts +13 -0
  389. package/version.js +25 -0
  390. package/version.mjs +17 -0
@@ -0,0 +1,789 @@
1
+ import { devAssert } from '../jsutils/devAssert.mjs';
2
+ import { inspect } from '../jsutils/inspect.mjs';
3
+ import { invariant } from '../jsutils/invariant.mjs';
4
+ import { keyMap } from '../jsutils/keyMap.mjs';
5
+ import { mapValue } from '../jsutils/mapValue.mjs';
6
+ import { Kind } from '../language/kinds.mjs';
7
+ import {
8
+ isTypeDefinitionNode,
9
+ isTypeExtensionNode,
10
+ } from '../language/predicates.mjs';
11
+ import {
12
+ GraphQLEnumType,
13
+ GraphQLInputObjectType,
14
+ GraphQLInterfaceType,
15
+ GraphQLList,
16
+ GraphQLNonNull,
17
+ GraphQLObjectType,
18
+ GraphQLScalarType,
19
+ GraphQLUnionType,
20
+ isEnumType,
21
+ isInputObjectType,
22
+ isInterfaceType,
23
+ isListType,
24
+ isNonNullType,
25
+ isObjectType,
26
+ isScalarType,
27
+ isUnionType,
28
+ } from '../type/definition.mjs';
29
+ import {
30
+ GraphQLDeprecatedDirective,
31
+ GraphQLDirective,
32
+ GraphQLSpecifiedByDirective,
33
+ } from '../type/directives.mjs';
34
+ import {
35
+ introspectionTypes,
36
+ isIntrospectionType,
37
+ } from '../type/introspection.mjs';
38
+ import {
39
+ isSpecifiedScalarType,
40
+ specifiedScalarTypes,
41
+ } from '../type/scalars.mjs';
42
+ import { assertSchema, GraphQLSchema } from '../type/schema.mjs';
43
+ import { assertValidSDLExtension } from '../validation/validate.mjs';
44
+ import { getDirectiveValues } from '../execution/values.mjs';
45
+ import { valueFromAST } from './valueFromAST.mjs';
46
+
47
+ /**
48
+ * Produces a new schema given an existing schema and a document which may
49
+ * contain GraphQL type extensions and definitions. The original schema will
50
+ * remain unaltered.
51
+ *
52
+ * Because a schema represents a graph of references, a schema cannot be
53
+ * extended without effectively making an entire copy. We do not know until it's
54
+ * too late if subgraphs remain unchanged.
55
+ *
56
+ * This algorithm copies the provided schema, applying extensions while
57
+ * producing the copy. The original schema remains unaltered.
58
+ */
59
+ export function extendSchema(schema, documentAST, options) {
60
+ assertSchema(schema);
61
+ (documentAST != null && documentAST.kind === Kind.DOCUMENT) ||
62
+ devAssert(false, 'Must provide valid Document AST.');
63
+
64
+ if (
65
+ (options === null || options === void 0 ? void 0 : options.assumeValid) !==
66
+ true &&
67
+ (options === null || options === void 0
68
+ ? void 0
69
+ : options.assumeValidSDL) !== true
70
+ ) {
71
+ assertValidSDLExtension(documentAST, schema);
72
+ }
73
+
74
+ const schemaConfig = schema.toConfig();
75
+ const extendedConfig = extendSchemaImpl(schemaConfig, documentAST, options);
76
+ return schemaConfig === extendedConfig
77
+ ? schema
78
+ : new GraphQLSchema(extendedConfig);
79
+ }
80
+ /**
81
+ * @internal
82
+ */
83
+
84
+ export function extendSchemaImpl(schemaConfig, documentAST, options) {
85
+ var _schemaDef, _schemaDef$descriptio, _schemaDef2, _options$assumeValid;
86
+
87
+ // Collect the type definitions and extensions found in the document.
88
+ const typeDefs = [];
89
+ const typeExtensionsMap = Object.create(null); // New directives and types are separate because a directives and types can
90
+ // have the same name. For example, a type named "skip".
91
+
92
+ const directiveDefs = [];
93
+ let schemaDef; // Schema extensions are collected which may add additional operation types.
94
+
95
+ const schemaExtensions = [];
96
+
97
+ for (const def of documentAST.definitions) {
98
+ if (def.kind === Kind.SCHEMA_DEFINITION) {
99
+ schemaDef = def;
100
+ } else if (def.kind === Kind.SCHEMA_EXTENSION) {
101
+ schemaExtensions.push(def);
102
+ } else if (isTypeDefinitionNode(def)) {
103
+ typeDefs.push(def);
104
+ } else if (isTypeExtensionNode(def)) {
105
+ const extendedTypeName = def.name.value;
106
+ const existingTypeExtensions = typeExtensionsMap[extendedTypeName];
107
+ typeExtensionsMap[extendedTypeName] = existingTypeExtensions
108
+ ? existingTypeExtensions.concat([def])
109
+ : [def];
110
+ } else if (def.kind === Kind.DIRECTIVE_DEFINITION) {
111
+ directiveDefs.push(def);
112
+ }
113
+ } // If this document contains no new types, extensions, or directives then
114
+ // return the same unmodified GraphQLSchema instance.
115
+
116
+ if (
117
+ Object.keys(typeExtensionsMap).length === 0 &&
118
+ typeDefs.length === 0 &&
119
+ directiveDefs.length === 0 &&
120
+ schemaExtensions.length === 0 &&
121
+ schemaDef == null
122
+ ) {
123
+ return schemaConfig;
124
+ }
125
+
126
+ const typeMap = Object.create(null);
127
+
128
+ for (const existingType of schemaConfig.types) {
129
+ typeMap[existingType.name] = extendNamedType(existingType);
130
+ }
131
+
132
+ for (const typeNode of typeDefs) {
133
+ var _stdTypeMap$name;
134
+
135
+ const name = typeNode.name.value;
136
+ typeMap[name] =
137
+ (_stdTypeMap$name = stdTypeMap[name]) !== null &&
138
+ _stdTypeMap$name !== void 0
139
+ ? _stdTypeMap$name
140
+ : buildType(typeNode);
141
+ }
142
+
143
+ const operationTypes = {
144
+ // Get the extended root operation types.
145
+ query: schemaConfig.query && replaceNamedType(schemaConfig.query),
146
+ mutation: schemaConfig.mutation && replaceNamedType(schemaConfig.mutation),
147
+ subscription:
148
+ schemaConfig.subscription && replaceNamedType(schemaConfig.subscription),
149
+ // Then, incorporate schema definition and all schema extensions.
150
+ ...(schemaDef && getOperationTypes([schemaDef])),
151
+ ...getOperationTypes(schemaExtensions),
152
+ }; // Then produce and return a Schema config with these types.
153
+
154
+ return {
155
+ description:
156
+ (_schemaDef = schemaDef) === null || _schemaDef === void 0
157
+ ? void 0
158
+ : (_schemaDef$descriptio = _schemaDef.description) === null ||
159
+ _schemaDef$descriptio === void 0
160
+ ? void 0
161
+ : _schemaDef$descriptio.value,
162
+ ...operationTypes,
163
+ types: Object.values(typeMap),
164
+ directives: [
165
+ ...schemaConfig.directives.map(replaceDirective),
166
+ ...directiveDefs.map(buildDirective),
167
+ ],
168
+ extensions: Object.create(null),
169
+ astNode:
170
+ (_schemaDef2 = schemaDef) !== null && _schemaDef2 !== void 0
171
+ ? _schemaDef2
172
+ : schemaConfig.astNode,
173
+ extensionASTNodes: schemaConfig.extensionASTNodes.concat(schemaExtensions),
174
+ assumeValid:
175
+ (_options$assumeValid =
176
+ options === null || options === void 0
177
+ ? void 0
178
+ : options.assumeValid) !== null && _options$assumeValid !== void 0
179
+ ? _options$assumeValid
180
+ : false,
181
+ }; // Below are functions used for producing this schema that have closed over
182
+ // this scope and have access to the schema, cache, and newly defined types.
183
+
184
+ function replaceType(type) {
185
+ if (isListType(type)) {
186
+ // @ts-expect-error
187
+ return new GraphQLList(replaceType(type.ofType));
188
+ }
189
+
190
+ if (isNonNullType(type)) {
191
+ // @ts-expect-error
192
+ return new GraphQLNonNull(replaceType(type.ofType));
193
+ } // @ts-expect-error FIXME
194
+
195
+ return replaceNamedType(type);
196
+ }
197
+
198
+ function replaceNamedType(type) {
199
+ // Note: While this could make early assertions to get the correctly
200
+ // typed values, that would throw immediately while type system
201
+ // validation with validateSchema() will produce more actionable results.
202
+ return typeMap[type.name];
203
+ }
204
+
205
+ function replaceDirective(directive) {
206
+ const config = directive.toConfig();
207
+ return new GraphQLDirective({
208
+ ...config,
209
+ args: mapValue(config.args, extendArg),
210
+ });
211
+ }
212
+
213
+ function extendNamedType(type) {
214
+ if (isIntrospectionType(type) || isSpecifiedScalarType(type)) {
215
+ // Builtin types are not extended.
216
+ return type;
217
+ }
218
+
219
+ if (isScalarType(type)) {
220
+ return extendScalarType(type);
221
+ }
222
+
223
+ if (isObjectType(type)) {
224
+ return extendObjectType(type);
225
+ }
226
+
227
+ if (isInterfaceType(type)) {
228
+ return extendInterfaceType(type);
229
+ }
230
+
231
+ if (isUnionType(type)) {
232
+ return extendUnionType(type);
233
+ }
234
+
235
+ if (isEnumType(type)) {
236
+ return extendEnumType(type);
237
+ }
238
+
239
+ if (isInputObjectType(type)) {
240
+ return extendInputObjectType(type);
241
+ }
242
+ /* c8 ignore next 3 */
243
+ // Not reachable, all possible type definition nodes have been considered.
244
+
245
+ false || invariant(false, 'Unexpected type: ' + inspect(type));
246
+ }
247
+
248
+ function extendInputObjectType(type) {
249
+ var _typeExtensionsMap$co;
250
+
251
+ const config = type.toConfig();
252
+ const extensions =
253
+ (_typeExtensionsMap$co = typeExtensionsMap[config.name]) !== null &&
254
+ _typeExtensionsMap$co !== void 0
255
+ ? _typeExtensionsMap$co
256
+ : [];
257
+ return new GraphQLInputObjectType({
258
+ ...config,
259
+ fields: () => ({
260
+ ...mapValue(config.fields, (field) => ({
261
+ ...field,
262
+ type: replaceType(field.type),
263
+ })),
264
+ ...buildInputFieldMap(extensions),
265
+ }),
266
+ extensionASTNodes: config.extensionASTNodes.concat(extensions),
267
+ });
268
+ }
269
+
270
+ function extendEnumType(type) {
271
+ var _typeExtensionsMap$ty;
272
+
273
+ const config = type.toConfig();
274
+ const extensions =
275
+ (_typeExtensionsMap$ty = typeExtensionsMap[type.name]) !== null &&
276
+ _typeExtensionsMap$ty !== void 0
277
+ ? _typeExtensionsMap$ty
278
+ : [];
279
+ return new GraphQLEnumType({
280
+ ...config,
281
+ values: { ...config.values, ...buildEnumValueMap(extensions) },
282
+ extensionASTNodes: config.extensionASTNodes.concat(extensions),
283
+ });
284
+ }
285
+
286
+ function extendScalarType(type) {
287
+ var _typeExtensionsMap$co2;
288
+
289
+ const config = type.toConfig();
290
+ const extensions =
291
+ (_typeExtensionsMap$co2 = typeExtensionsMap[config.name]) !== null &&
292
+ _typeExtensionsMap$co2 !== void 0
293
+ ? _typeExtensionsMap$co2
294
+ : [];
295
+ let specifiedByURL = config.specifiedByURL;
296
+
297
+ for (const extensionNode of extensions) {
298
+ var _getSpecifiedByURL;
299
+
300
+ specifiedByURL =
301
+ (_getSpecifiedByURL = getSpecifiedByURL(extensionNode)) !== null &&
302
+ _getSpecifiedByURL !== void 0
303
+ ? _getSpecifiedByURL
304
+ : specifiedByURL;
305
+ }
306
+
307
+ return new GraphQLScalarType({
308
+ ...config,
309
+ specifiedByURL,
310
+ extensionASTNodes: config.extensionASTNodes.concat(extensions),
311
+ });
312
+ }
313
+
314
+ function extendObjectType(type) {
315
+ var _typeExtensionsMap$co3;
316
+
317
+ const config = type.toConfig();
318
+ const extensions =
319
+ (_typeExtensionsMap$co3 = typeExtensionsMap[config.name]) !== null &&
320
+ _typeExtensionsMap$co3 !== void 0
321
+ ? _typeExtensionsMap$co3
322
+ : [];
323
+ return new GraphQLObjectType({
324
+ ...config,
325
+ interfaces: () => [
326
+ ...type.getInterfaces().map(replaceNamedType),
327
+ ...buildInterfaces(extensions),
328
+ ],
329
+ fields: () => ({
330
+ ...mapValue(config.fields, extendField),
331
+ ...buildFieldMap(extensions),
332
+ }),
333
+ extensionASTNodes: config.extensionASTNodes.concat(extensions),
334
+ });
335
+ }
336
+
337
+ function extendInterfaceType(type) {
338
+ var _typeExtensionsMap$co4;
339
+
340
+ const config = type.toConfig();
341
+ const extensions =
342
+ (_typeExtensionsMap$co4 = typeExtensionsMap[config.name]) !== null &&
343
+ _typeExtensionsMap$co4 !== void 0
344
+ ? _typeExtensionsMap$co4
345
+ : [];
346
+ return new GraphQLInterfaceType({
347
+ ...config,
348
+ interfaces: () => [
349
+ ...type.getInterfaces().map(replaceNamedType),
350
+ ...buildInterfaces(extensions),
351
+ ],
352
+ fields: () => ({
353
+ ...mapValue(config.fields, extendField),
354
+ ...buildFieldMap(extensions),
355
+ }),
356
+ extensionASTNodes: config.extensionASTNodes.concat(extensions),
357
+ });
358
+ }
359
+
360
+ function extendUnionType(type) {
361
+ var _typeExtensionsMap$co5;
362
+
363
+ const config = type.toConfig();
364
+ const extensions =
365
+ (_typeExtensionsMap$co5 = typeExtensionsMap[config.name]) !== null &&
366
+ _typeExtensionsMap$co5 !== void 0
367
+ ? _typeExtensionsMap$co5
368
+ : [];
369
+ return new GraphQLUnionType({
370
+ ...config,
371
+ types: () => [
372
+ ...type.getTypes().map(replaceNamedType),
373
+ ...buildUnionTypes(extensions),
374
+ ],
375
+ extensionASTNodes: config.extensionASTNodes.concat(extensions),
376
+ });
377
+ }
378
+
379
+ function extendField(field) {
380
+ return {
381
+ ...field,
382
+ type: replaceType(field.type),
383
+ args: field.args && mapValue(field.args, extendArg),
384
+ };
385
+ }
386
+
387
+ function extendArg(arg) {
388
+ return { ...arg, type: replaceType(arg.type) };
389
+ }
390
+
391
+ function getOperationTypes(nodes) {
392
+ const opTypes = {};
393
+
394
+ for (const node of nodes) {
395
+ var _node$operationTypes;
396
+
397
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
398
+ const operationTypesNodes =
399
+ /* c8 ignore next */
400
+ (_node$operationTypes = node.operationTypes) !== null &&
401
+ _node$operationTypes !== void 0
402
+ ? _node$operationTypes
403
+ : [];
404
+
405
+ for (const operationType of operationTypesNodes) {
406
+ // Note: While this could make early assertions to get the correctly
407
+ // typed values below, that would throw immediately while type system
408
+ // validation with validateSchema() will produce more actionable results.
409
+ // @ts-expect-error
410
+ opTypes[operationType.operation] = getNamedType(operationType.type);
411
+ }
412
+ }
413
+
414
+ return opTypes;
415
+ }
416
+
417
+ function getNamedType(node) {
418
+ var _stdTypeMap$name2;
419
+
420
+ const name = node.name.value;
421
+ const type =
422
+ (_stdTypeMap$name2 = stdTypeMap[name]) !== null &&
423
+ _stdTypeMap$name2 !== void 0
424
+ ? _stdTypeMap$name2
425
+ : typeMap[name];
426
+
427
+ if (type === undefined) {
428
+ throw new Error(`Unknown type: "${name}".`);
429
+ }
430
+
431
+ return type;
432
+ }
433
+
434
+ function getWrappedType(node) {
435
+ if (node.kind === Kind.LIST_TYPE) {
436
+ return new GraphQLList(getWrappedType(node.type));
437
+ }
438
+
439
+ if (node.kind === Kind.NON_NULL_TYPE) {
440
+ return new GraphQLNonNull(getWrappedType(node.type));
441
+ }
442
+
443
+ return getNamedType(node);
444
+ }
445
+
446
+ function buildDirective(node) {
447
+ var _node$description;
448
+
449
+ return new GraphQLDirective({
450
+ name: node.name.value,
451
+ description:
452
+ (_node$description = node.description) === null ||
453
+ _node$description === void 0
454
+ ? void 0
455
+ : _node$description.value,
456
+ // @ts-expect-error
457
+ locations: node.locations.map(({ value }) => value),
458
+ isRepeatable: node.repeatable,
459
+ args: buildArgumentMap(node.arguments),
460
+ astNode: node,
461
+ });
462
+ }
463
+
464
+ function buildFieldMap(nodes) {
465
+ const fieldConfigMap = Object.create(null);
466
+
467
+ for (const node of nodes) {
468
+ var _node$fields;
469
+
470
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
471
+ const nodeFields =
472
+ /* c8 ignore next */
473
+ (_node$fields = node.fields) !== null && _node$fields !== void 0
474
+ ? _node$fields
475
+ : [];
476
+
477
+ for (const field of nodeFields) {
478
+ var _field$description;
479
+
480
+ fieldConfigMap[field.name.value] = {
481
+ // Note: While this could make assertions to get the correctly typed
482
+ // value, that would throw immediately while type system validation
483
+ // with validateSchema() will produce more actionable results.
484
+ type: getWrappedType(field.type),
485
+ description:
486
+ (_field$description = field.description) === null ||
487
+ _field$description === void 0
488
+ ? void 0
489
+ : _field$description.value,
490
+ args: buildArgumentMap(field.arguments),
491
+ deprecationReason: getDeprecationReason(field),
492
+ astNode: field,
493
+ };
494
+ }
495
+ }
496
+
497
+ return fieldConfigMap;
498
+ }
499
+
500
+ function buildArgumentMap(args) {
501
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
502
+ const argsNodes =
503
+ /* c8 ignore next */
504
+ args !== null && args !== void 0 ? args : [];
505
+ const argConfigMap = Object.create(null);
506
+
507
+ for (const arg of argsNodes) {
508
+ var _arg$description;
509
+
510
+ // Note: While this could make assertions to get the correctly typed
511
+ // value, that would throw immediately while type system validation
512
+ // with validateSchema() will produce more actionable results.
513
+ const type = getWrappedType(arg.type);
514
+ argConfigMap[arg.name.value] = {
515
+ type,
516
+ description:
517
+ (_arg$description = arg.description) === null ||
518
+ _arg$description === void 0
519
+ ? void 0
520
+ : _arg$description.value,
521
+ defaultValue: valueFromAST(arg.defaultValue, type),
522
+ deprecationReason: getDeprecationReason(arg),
523
+ astNode: arg,
524
+ };
525
+ }
526
+
527
+ return argConfigMap;
528
+ }
529
+
530
+ function buildInputFieldMap(nodes) {
531
+ const inputFieldMap = Object.create(null);
532
+
533
+ for (const node of nodes) {
534
+ var _node$fields2;
535
+
536
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
537
+ const fieldsNodes =
538
+ /* c8 ignore next */
539
+ (_node$fields2 = node.fields) !== null && _node$fields2 !== void 0
540
+ ? _node$fields2
541
+ : [];
542
+
543
+ for (const field of fieldsNodes) {
544
+ var _field$description2;
545
+
546
+ // Note: While this could make assertions to get the correctly typed
547
+ // value, that would throw immediately while type system validation
548
+ // with validateSchema() will produce more actionable results.
549
+ const type = getWrappedType(field.type);
550
+ inputFieldMap[field.name.value] = {
551
+ type,
552
+ description:
553
+ (_field$description2 = field.description) === null ||
554
+ _field$description2 === void 0
555
+ ? void 0
556
+ : _field$description2.value,
557
+ defaultValue: valueFromAST(field.defaultValue, type),
558
+ deprecationReason: getDeprecationReason(field),
559
+ astNode: field,
560
+ };
561
+ }
562
+ }
563
+
564
+ return inputFieldMap;
565
+ }
566
+
567
+ function buildEnumValueMap(nodes) {
568
+ const enumValueMap = Object.create(null);
569
+
570
+ for (const node of nodes) {
571
+ var _node$values;
572
+
573
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
574
+ const valuesNodes =
575
+ /* c8 ignore next */
576
+ (_node$values = node.values) !== null && _node$values !== void 0
577
+ ? _node$values
578
+ : [];
579
+
580
+ for (const value of valuesNodes) {
581
+ var _value$description;
582
+
583
+ enumValueMap[value.name.value] = {
584
+ description:
585
+ (_value$description = value.description) === null ||
586
+ _value$description === void 0
587
+ ? void 0
588
+ : _value$description.value,
589
+ deprecationReason: getDeprecationReason(value),
590
+ astNode: value,
591
+ };
592
+ }
593
+ }
594
+
595
+ return enumValueMap;
596
+ }
597
+
598
+ function buildInterfaces(nodes) {
599
+ // Note: While this could make assertions to get the correctly typed
600
+ // values below, that would throw immediately while type system
601
+ // validation with validateSchema() will produce more actionable results.
602
+ // @ts-expect-error
603
+ return nodes.flatMap(
604
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
605
+ (node) => {
606
+ var _node$interfaces$map, _node$interfaces;
607
+
608
+ return (
609
+ /* c8 ignore next */
610
+ (_node$interfaces$map =
611
+ (_node$interfaces = node.interfaces) === null ||
612
+ _node$interfaces === void 0
613
+ ? void 0
614
+ : _node$interfaces.map(getNamedType)) !== null &&
615
+ _node$interfaces$map !== void 0
616
+ ? _node$interfaces$map
617
+ : []
618
+ );
619
+ },
620
+ );
621
+ }
622
+
623
+ function buildUnionTypes(nodes) {
624
+ // Note: While this could make assertions to get the correctly typed
625
+ // values below, that would throw immediately while type system
626
+ // validation with validateSchema() will produce more actionable results.
627
+ // @ts-expect-error
628
+ return nodes.flatMap(
629
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
630
+ (node) => {
631
+ var _node$types$map, _node$types;
632
+
633
+ return (
634
+ /* c8 ignore next */
635
+ (_node$types$map =
636
+ (_node$types = node.types) === null || _node$types === void 0
637
+ ? void 0
638
+ : _node$types.map(getNamedType)) !== null &&
639
+ _node$types$map !== void 0
640
+ ? _node$types$map
641
+ : []
642
+ );
643
+ },
644
+ );
645
+ }
646
+
647
+ function buildType(astNode) {
648
+ var _typeExtensionsMap$na;
649
+
650
+ const name = astNode.name.value;
651
+ const extensionASTNodes =
652
+ (_typeExtensionsMap$na = typeExtensionsMap[name]) !== null &&
653
+ _typeExtensionsMap$na !== void 0
654
+ ? _typeExtensionsMap$na
655
+ : [];
656
+
657
+ switch (astNode.kind) {
658
+ case Kind.OBJECT_TYPE_DEFINITION: {
659
+ var _astNode$description;
660
+
661
+ const allNodes = [astNode, ...extensionASTNodes];
662
+ return new GraphQLObjectType({
663
+ name,
664
+ description:
665
+ (_astNode$description = astNode.description) === null ||
666
+ _astNode$description === void 0
667
+ ? void 0
668
+ : _astNode$description.value,
669
+ interfaces: () => buildInterfaces(allNodes),
670
+ fields: () => buildFieldMap(allNodes),
671
+ astNode,
672
+ extensionASTNodes,
673
+ });
674
+ }
675
+
676
+ case Kind.INTERFACE_TYPE_DEFINITION: {
677
+ var _astNode$description2;
678
+
679
+ const allNodes = [astNode, ...extensionASTNodes];
680
+ return new GraphQLInterfaceType({
681
+ name,
682
+ description:
683
+ (_astNode$description2 = astNode.description) === null ||
684
+ _astNode$description2 === void 0
685
+ ? void 0
686
+ : _astNode$description2.value,
687
+ interfaces: () => buildInterfaces(allNodes),
688
+ fields: () => buildFieldMap(allNodes),
689
+ astNode,
690
+ extensionASTNodes,
691
+ });
692
+ }
693
+
694
+ case Kind.ENUM_TYPE_DEFINITION: {
695
+ var _astNode$description3;
696
+
697
+ const allNodes = [astNode, ...extensionASTNodes];
698
+ return new GraphQLEnumType({
699
+ name,
700
+ description:
701
+ (_astNode$description3 = astNode.description) === null ||
702
+ _astNode$description3 === void 0
703
+ ? void 0
704
+ : _astNode$description3.value,
705
+ values: buildEnumValueMap(allNodes),
706
+ astNode,
707
+ extensionASTNodes,
708
+ });
709
+ }
710
+
711
+ case Kind.UNION_TYPE_DEFINITION: {
712
+ var _astNode$description4;
713
+
714
+ const allNodes = [astNode, ...extensionASTNodes];
715
+ return new GraphQLUnionType({
716
+ name,
717
+ description:
718
+ (_astNode$description4 = astNode.description) === null ||
719
+ _astNode$description4 === void 0
720
+ ? void 0
721
+ : _astNode$description4.value,
722
+ types: () => buildUnionTypes(allNodes),
723
+ astNode,
724
+ extensionASTNodes,
725
+ });
726
+ }
727
+
728
+ case Kind.SCALAR_TYPE_DEFINITION: {
729
+ var _astNode$description5;
730
+
731
+ return new GraphQLScalarType({
732
+ name,
733
+ description:
734
+ (_astNode$description5 = astNode.description) === null ||
735
+ _astNode$description5 === void 0
736
+ ? void 0
737
+ : _astNode$description5.value,
738
+ specifiedByURL: getSpecifiedByURL(astNode),
739
+ astNode,
740
+ extensionASTNodes,
741
+ });
742
+ }
743
+
744
+ case Kind.INPUT_OBJECT_TYPE_DEFINITION: {
745
+ var _astNode$description6;
746
+
747
+ const allNodes = [astNode, ...extensionASTNodes];
748
+ return new GraphQLInputObjectType({
749
+ name,
750
+ description:
751
+ (_astNode$description6 = astNode.description) === null ||
752
+ _astNode$description6 === void 0
753
+ ? void 0
754
+ : _astNode$description6.value,
755
+ fields: () => buildInputFieldMap(allNodes),
756
+ astNode,
757
+ extensionASTNodes,
758
+ });
759
+ }
760
+ }
761
+ }
762
+ }
763
+ const stdTypeMap = keyMap(
764
+ [...specifiedScalarTypes, ...introspectionTypes],
765
+ (type) => type.name,
766
+ );
767
+ /**
768
+ * Given a field or enum value node, returns the string value for the
769
+ * deprecation reason.
770
+ */
771
+
772
+ function getDeprecationReason(node) {
773
+ const deprecated = getDirectiveValues(GraphQLDeprecatedDirective, node); // @ts-expect-error validated by `getDirectiveValues`
774
+
775
+ return deprecated === null || deprecated === void 0
776
+ ? void 0
777
+ : deprecated.reason;
778
+ }
779
+ /**
780
+ * Given a scalar node, returns the string value for the specifiedByURL.
781
+ */
782
+
783
+ function getSpecifiedByURL(node) {
784
+ const specifiedBy = getDirectiveValues(GraphQLSpecifiedByDirective, node); // @ts-expect-error validated by `getDirectiveValues`
785
+
786
+ return specifiedBy === null || specifiedBy === void 0
787
+ ? void 0
788
+ : specifiedBy.url;
789
+ }