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,381 @@
1
+ import { devAssert } from '../jsutils/devAssert.mjs';
2
+ import { inspect } from '../jsutils/inspect.mjs';
3
+ import { instanceOf } from '../jsutils/instanceOf.mjs';
4
+ import { isObjectLike } from '../jsutils/isObjectLike.mjs';
5
+ import { toObjMap } from '../jsutils/toObjMap.mjs';
6
+ import { OperationTypeNode } from '../language/ast.mjs';
7
+ import {
8
+ getNamedType,
9
+ isInputObjectType,
10
+ isInterfaceType,
11
+ isObjectType,
12
+ isUnionType,
13
+ } from './definition.mjs';
14
+ import { isDirective, specifiedDirectives } from './directives.mjs';
15
+ import { __Schema } from './introspection.mjs';
16
+ /**
17
+ * Test if the given value is a GraphQL schema.
18
+ */
19
+
20
+ export function isSchema(schema) {
21
+ return instanceOf(schema, GraphQLSchema);
22
+ }
23
+ export function assertSchema(schema) {
24
+ if (!isSchema(schema)) {
25
+ throw new Error(`Expected ${inspect(schema)} to be a GraphQL schema.`);
26
+ }
27
+
28
+ return schema;
29
+ }
30
+ /**
31
+ * Custom extensions
32
+ *
33
+ * @remarks
34
+ * Use a unique identifier name for your extension, for example the name of
35
+ * your library or project. Do not use a shortened identifier as this increases
36
+ * the risk of conflicts. We recommend you add at most one extension field,
37
+ * an object which can contain all the values you need.
38
+ */
39
+
40
+ /**
41
+ * Schema Definition
42
+ *
43
+ * A Schema is created by supplying the root types of each type of operation,
44
+ * query and mutation (optional). A schema definition is then supplied to the
45
+ * validator and executor.
46
+ *
47
+ * Example:
48
+ *
49
+ * ```ts
50
+ * const MyAppSchema = new GraphQLSchema({
51
+ * query: MyAppQueryRootType,
52
+ * mutation: MyAppMutationRootType,
53
+ * })
54
+ * ```
55
+ *
56
+ * Note: When the schema is constructed, by default only the types that are
57
+ * reachable by traversing the root types are included, other types must be
58
+ * explicitly referenced.
59
+ *
60
+ * Example:
61
+ *
62
+ * ```ts
63
+ * const characterInterface = new GraphQLInterfaceType({
64
+ * name: 'Character',
65
+ * ...
66
+ * });
67
+ *
68
+ * const humanType = new GraphQLObjectType({
69
+ * name: 'Human',
70
+ * interfaces: [characterInterface],
71
+ * ...
72
+ * });
73
+ *
74
+ * const droidType = new GraphQLObjectType({
75
+ * name: 'Droid',
76
+ * interfaces: [characterInterface],
77
+ * ...
78
+ * });
79
+ *
80
+ * const schema = new GraphQLSchema({
81
+ * query: new GraphQLObjectType({
82
+ * name: 'Query',
83
+ * fields: {
84
+ * hero: { type: characterInterface, ... },
85
+ * }
86
+ * }),
87
+ * ...
88
+ * // Since this schema references only the `Character` interface it's
89
+ * // necessary to explicitly list the types that implement it if
90
+ * // you want them to be included in the final schema.
91
+ * types: [humanType, droidType],
92
+ * })
93
+ * ```
94
+ *
95
+ * Note: If an array of `directives` are provided to GraphQLSchema, that will be
96
+ * the exact list of directives represented and allowed. If `directives` is not
97
+ * provided then a default set of the specified directives (e.g. `@include` and
98
+ * `@skip`) will be used. If you wish to provide *additional* directives to these
99
+ * specified directives, you must explicitly declare them. Example:
100
+ *
101
+ * ```ts
102
+ * const MyAppSchema = new GraphQLSchema({
103
+ * ...
104
+ * directives: specifiedDirectives.concat([ myCustomDirective ]),
105
+ * })
106
+ * ```
107
+ */
108
+ export class GraphQLSchema {
109
+ // Used as a cache for validateSchema().
110
+ constructor(config) {
111
+ var _config$extensionASTN, _config$directives;
112
+
113
+ // If this schema was built from a source known to be valid, then it may be
114
+ // marked with assumeValid to avoid an additional type system validation.
115
+ this.__validationErrors = config.assumeValid === true ? [] : undefined; // Check for common mistakes during construction to produce early errors.
116
+
117
+ isObjectLike(config) ||
118
+ devAssert(false, 'Must provide configuration object.');
119
+ !config.types ||
120
+ Array.isArray(config.types) ||
121
+ devAssert(
122
+ false,
123
+ `"types" must be Array if provided but got: ${inspect(config.types)}.`,
124
+ );
125
+ !config.directives ||
126
+ Array.isArray(config.directives) ||
127
+ devAssert(
128
+ false,
129
+ '"directives" must be Array if provided but got: ' +
130
+ `${inspect(config.directives)}.`,
131
+ );
132
+ this.description = config.description;
133
+ this.extensions = toObjMap(config.extensions);
134
+ this.astNode = config.astNode;
135
+ this.extensionASTNodes =
136
+ (_config$extensionASTN = config.extensionASTNodes) !== null &&
137
+ _config$extensionASTN !== void 0
138
+ ? _config$extensionASTN
139
+ : [];
140
+ this._queryType = config.query;
141
+ this._mutationType = config.mutation;
142
+ this._subscriptionType = config.subscription; // Provide specified directives (e.g. @include and @skip) by default.
143
+
144
+ this._directives =
145
+ (_config$directives = config.directives) !== null &&
146
+ _config$directives !== void 0
147
+ ? _config$directives
148
+ : specifiedDirectives; // To preserve order of user-provided types, we add first to add them to
149
+ // the set of "collected" types, so `collectReferencedTypes` ignore them.
150
+
151
+ const allReferencedTypes = new Set(config.types);
152
+
153
+ if (config.types != null) {
154
+ for (const type of config.types) {
155
+ // When we ready to process this type, we remove it from "collected" types
156
+ // and then add it together with all dependent types in the correct position.
157
+ allReferencedTypes.delete(type);
158
+ collectReferencedTypes(type, allReferencedTypes);
159
+ }
160
+ }
161
+
162
+ if (this._queryType != null) {
163
+ collectReferencedTypes(this._queryType, allReferencedTypes);
164
+ }
165
+
166
+ if (this._mutationType != null) {
167
+ collectReferencedTypes(this._mutationType, allReferencedTypes);
168
+ }
169
+
170
+ if (this._subscriptionType != null) {
171
+ collectReferencedTypes(this._subscriptionType, allReferencedTypes);
172
+ }
173
+
174
+ for (const directive of this._directives) {
175
+ // Directives are not validated until validateSchema() is called.
176
+ if (isDirective(directive)) {
177
+ for (const arg of directive.args) {
178
+ collectReferencedTypes(arg.type, allReferencedTypes);
179
+ }
180
+ }
181
+ }
182
+
183
+ collectReferencedTypes(__Schema, allReferencedTypes); // Storing the resulting map for reference by the schema.
184
+
185
+ this._typeMap = Object.create(null);
186
+ this._subTypeMap = Object.create(null); // Keep track of all implementations by interface name.
187
+
188
+ this._implementationsMap = Object.create(null);
189
+
190
+ for (const namedType of allReferencedTypes) {
191
+ if (namedType == null) {
192
+ continue;
193
+ }
194
+
195
+ const typeName = namedType.name;
196
+ typeName ||
197
+ devAssert(
198
+ false,
199
+ 'One of the provided types for building the Schema is missing a name.',
200
+ );
201
+
202
+ if (this._typeMap[typeName] !== undefined) {
203
+ throw new Error(
204
+ `Schema must contain uniquely named types but contains multiple types named "${typeName}".`,
205
+ );
206
+ }
207
+
208
+ this._typeMap[typeName] = namedType;
209
+
210
+ if (isInterfaceType(namedType)) {
211
+ // Store implementations by interface.
212
+ for (const iface of namedType.getInterfaces()) {
213
+ if (isInterfaceType(iface)) {
214
+ let implementations = this._implementationsMap[iface.name];
215
+
216
+ if (implementations === undefined) {
217
+ implementations = this._implementationsMap[iface.name] = {
218
+ objects: [],
219
+ interfaces: [],
220
+ };
221
+ }
222
+
223
+ implementations.interfaces.push(namedType);
224
+ }
225
+ }
226
+ } else if (isObjectType(namedType)) {
227
+ // Store implementations by objects.
228
+ for (const iface of namedType.getInterfaces()) {
229
+ if (isInterfaceType(iface)) {
230
+ let implementations = this._implementationsMap[iface.name];
231
+
232
+ if (implementations === undefined) {
233
+ implementations = this._implementationsMap[iface.name] = {
234
+ objects: [],
235
+ interfaces: [],
236
+ };
237
+ }
238
+
239
+ implementations.objects.push(namedType);
240
+ }
241
+ }
242
+ }
243
+ }
244
+ }
245
+
246
+ get [Symbol.toStringTag]() {
247
+ return 'GraphQLSchema';
248
+ }
249
+
250
+ getQueryType() {
251
+ return this._queryType;
252
+ }
253
+
254
+ getMutationType() {
255
+ return this._mutationType;
256
+ }
257
+
258
+ getSubscriptionType() {
259
+ return this._subscriptionType;
260
+ }
261
+
262
+ getRootType(operation) {
263
+ switch (operation) {
264
+ case OperationTypeNode.QUERY:
265
+ return this.getQueryType();
266
+
267
+ case OperationTypeNode.MUTATION:
268
+ return this.getMutationType();
269
+
270
+ case OperationTypeNode.SUBSCRIPTION:
271
+ return this.getSubscriptionType();
272
+ }
273
+ }
274
+
275
+ getTypeMap() {
276
+ return this._typeMap;
277
+ }
278
+
279
+ getType(name) {
280
+ return this.getTypeMap()[name];
281
+ }
282
+
283
+ getPossibleTypes(abstractType) {
284
+ return isUnionType(abstractType)
285
+ ? abstractType.getTypes()
286
+ : this.getImplementations(abstractType).objects;
287
+ }
288
+
289
+ getImplementations(interfaceType) {
290
+ const implementations = this._implementationsMap[interfaceType.name];
291
+ return implementations !== null && implementations !== void 0
292
+ ? implementations
293
+ : {
294
+ objects: [],
295
+ interfaces: [],
296
+ };
297
+ }
298
+
299
+ isSubType(abstractType, maybeSubType) {
300
+ let map = this._subTypeMap[abstractType.name];
301
+
302
+ if (map === undefined) {
303
+ map = Object.create(null);
304
+
305
+ if (isUnionType(abstractType)) {
306
+ for (const type of abstractType.getTypes()) {
307
+ map[type.name] = true;
308
+ }
309
+ } else {
310
+ const implementations = this.getImplementations(abstractType);
311
+
312
+ for (const type of implementations.objects) {
313
+ map[type.name] = true;
314
+ }
315
+
316
+ for (const type of implementations.interfaces) {
317
+ map[type.name] = true;
318
+ }
319
+ }
320
+
321
+ this._subTypeMap[abstractType.name] = map;
322
+ }
323
+
324
+ return map[maybeSubType.name] !== undefined;
325
+ }
326
+
327
+ getDirectives() {
328
+ return this._directives;
329
+ }
330
+
331
+ getDirective(name) {
332
+ return this.getDirectives().find((directive) => directive.name === name);
333
+ }
334
+
335
+ toConfig() {
336
+ return {
337
+ description: this.description,
338
+ query: this.getQueryType(),
339
+ mutation: this.getMutationType(),
340
+ subscription: this.getSubscriptionType(),
341
+ types: Object.values(this.getTypeMap()),
342
+ directives: this.getDirectives(),
343
+ extensions: this.extensions,
344
+ astNode: this.astNode,
345
+ extensionASTNodes: this.extensionASTNodes,
346
+ assumeValid: this.__validationErrors !== undefined,
347
+ };
348
+ }
349
+ }
350
+
351
+ function collectReferencedTypes(type, typeSet) {
352
+ const namedType = getNamedType(type);
353
+
354
+ if (!typeSet.has(namedType)) {
355
+ typeSet.add(namedType);
356
+
357
+ if (isUnionType(namedType)) {
358
+ for (const memberType of namedType.getTypes()) {
359
+ collectReferencedTypes(memberType, typeSet);
360
+ }
361
+ } else if (isObjectType(namedType) || isInterfaceType(namedType)) {
362
+ for (const interfaceType of namedType.getInterfaces()) {
363
+ collectReferencedTypes(interfaceType, typeSet);
364
+ }
365
+
366
+ for (const field of Object.values(namedType.getFields())) {
367
+ collectReferencedTypes(field.type, typeSet);
368
+
369
+ for (const arg of field.args) {
370
+ collectReferencedTypes(arg.type, typeSet);
371
+ }
372
+ }
373
+ } else if (isInputObjectType(namedType)) {
374
+ for (const field of Object.values(namedType.getFields())) {
375
+ collectReferencedTypes(field.type, typeSet);
376
+ }
377
+ }
378
+ }
379
+
380
+ return typeSet;
381
+ }
@@ -0,0 +1,17 @@
1
+ import { GraphQLError } from '../error/GraphQLError';
2
+ import type { GraphQLSchema } from './schema';
3
+ /**
4
+ * Implements the "Type Validation" sub-sections of the specification's
5
+ * "Type System" section.
6
+ *
7
+ * Validation runs synchronously, returning an array of encountered errors, or
8
+ * an empty array if no errors were encountered and the Schema is valid.
9
+ */
10
+ export declare function validateSchema(
11
+ schema: GraphQLSchema,
12
+ ): ReadonlyArray<GraphQLError>;
13
+ /**
14
+ * Utility function which asserts a schema is valid by throwing an error if
15
+ * it is invalid.
16
+ */
17
+ export declare function assertValidSchema(schema: GraphQLSchema): void;