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