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,177 @@
1
+ import { inspect } from '../jsutils/inspect.mjs';
2
+ import { invariant } from '../jsutils/invariant.mjs';
3
+ import { isIterableObject } from '../jsutils/isIterableObject.mjs';
4
+ import { isObjectLike } from '../jsutils/isObjectLike.mjs';
5
+ import { Kind } from '../language/kinds.mjs';
6
+ import {
7
+ isEnumType,
8
+ isInputObjectType,
9
+ isLeafType,
10
+ isListType,
11
+ isNonNullType,
12
+ } from '../type/definition.mjs';
13
+ import { GraphQLID } from '../type/scalars.mjs';
14
+ /**
15
+ * Produces a GraphQL Value AST given a JavaScript object.
16
+ * Function will match JavaScript/JSON values to GraphQL AST schema format
17
+ * by using suggested GraphQLInputType. For example:
18
+ *
19
+ * astFromValue("value", GraphQLString)
20
+ *
21
+ * A GraphQL type must be provided, which will be used to interpret different
22
+ * JavaScript values.
23
+ *
24
+ * | JSON Value | GraphQL Value |
25
+ * | ------------- | -------------------- |
26
+ * | Object | Input Object |
27
+ * | Array | List |
28
+ * | Boolean | Boolean |
29
+ * | String | String / Enum Value |
30
+ * | Number | Int / Float |
31
+ * | Unknown | Enum Value |
32
+ * | null | NullValue |
33
+ *
34
+ */
35
+
36
+ export function astFromValue(value, type) {
37
+ if (isNonNullType(type)) {
38
+ const astValue = astFromValue(value, type.ofType);
39
+
40
+ if (
41
+ (astValue === null || astValue === void 0 ? void 0 : astValue.kind) ===
42
+ Kind.NULL
43
+ ) {
44
+ return null;
45
+ }
46
+
47
+ return astValue;
48
+ } // only explicit null, not undefined, NaN
49
+
50
+ if (value === null) {
51
+ return {
52
+ kind: Kind.NULL,
53
+ };
54
+ } // undefined
55
+
56
+ if (value === undefined) {
57
+ return null;
58
+ } // Convert JavaScript array to GraphQL list. If the GraphQLType is a list, but
59
+ // the value is not an array, convert the value using the list's item type.
60
+
61
+ if (isListType(type)) {
62
+ const itemType = type.ofType;
63
+
64
+ if (isIterableObject(value)) {
65
+ const valuesNodes = [];
66
+
67
+ for (const item of value) {
68
+ const itemNode = astFromValue(item, itemType);
69
+
70
+ if (itemNode != null) {
71
+ valuesNodes.push(itemNode);
72
+ }
73
+ }
74
+
75
+ return {
76
+ kind: Kind.LIST,
77
+ values: valuesNodes,
78
+ };
79
+ }
80
+
81
+ return astFromValue(value, itemType);
82
+ } // Populate the fields of the input object by creating ASTs from each value
83
+ // in the JavaScript object according to the fields in the input type.
84
+
85
+ if (isInputObjectType(type)) {
86
+ if (!isObjectLike(value)) {
87
+ return null;
88
+ }
89
+
90
+ const fieldNodes = [];
91
+
92
+ for (const field of Object.values(type.getFields())) {
93
+ const fieldValue = astFromValue(value[field.name], field.type);
94
+
95
+ if (fieldValue) {
96
+ fieldNodes.push({
97
+ kind: Kind.OBJECT_FIELD,
98
+ name: {
99
+ kind: Kind.NAME,
100
+ value: field.name,
101
+ },
102
+ value: fieldValue,
103
+ });
104
+ }
105
+ }
106
+
107
+ return {
108
+ kind: Kind.OBJECT,
109
+ fields: fieldNodes,
110
+ };
111
+ }
112
+
113
+ if (isLeafType(type)) {
114
+ // Since value is an internally represented value, it must be serialized
115
+ // to an externally represented value before converting into an AST.
116
+ const serialized = type.serialize(value);
117
+
118
+ if (serialized == null) {
119
+ return null;
120
+ } // Others serialize based on their corresponding JavaScript scalar types.
121
+
122
+ if (typeof serialized === 'boolean') {
123
+ return {
124
+ kind: Kind.BOOLEAN,
125
+ value: serialized,
126
+ };
127
+ } // JavaScript numbers can be Int or Float values.
128
+
129
+ if (typeof serialized === 'number' && Number.isFinite(serialized)) {
130
+ const stringNum = String(serialized);
131
+ return integerStringRegExp.test(stringNum)
132
+ ? {
133
+ kind: Kind.INT,
134
+ value: stringNum,
135
+ }
136
+ : {
137
+ kind: Kind.FLOAT,
138
+ value: stringNum,
139
+ };
140
+ }
141
+
142
+ if (typeof serialized === 'string') {
143
+ // Enum types use Enum literals.
144
+ if (isEnumType(type)) {
145
+ return {
146
+ kind: Kind.ENUM,
147
+ value: serialized,
148
+ };
149
+ } // ID types can use Int literals.
150
+
151
+ if (type === GraphQLID && integerStringRegExp.test(serialized)) {
152
+ return {
153
+ kind: Kind.INT,
154
+ value: serialized,
155
+ };
156
+ }
157
+
158
+ return {
159
+ kind: Kind.STRING,
160
+ value: serialized,
161
+ };
162
+ }
163
+
164
+ throw new TypeError(`Cannot convert value to AST: ${inspect(serialized)}.`);
165
+ }
166
+ /* c8 ignore next 3 */
167
+ // Not reachable, all possible types have been considered.
168
+
169
+ false || invariant(false, 'Unexpected input type: ' + inspect(type));
170
+ }
171
+ /**
172
+ * IntValue:
173
+ * - NegativeSign? 0
174
+ * - NegativeSign? NonZeroDigit ( Digit+ )?
175
+ */
176
+
177
+ const integerStringRegExp = /^-?(?:0|[1-9][0-9]*)$/;
@@ -0,0 +1,35 @@
1
+ import type { DocumentNode } from '../language/ast';
2
+ import type { ParseOptions } from '../language/parser';
3
+ import type { Source } from '../language/source';
4
+ import type { GraphQLSchemaValidationOptions } from '../type/schema';
5
+ import { GraphQLSchema } from '../type/schema';
6
+ export interface BuildSchemaOptions extends GraphQLSchemaValidationOptions {
7
+ /**
8
+ * Set to true to assume the SDL is valid.
9
+ *
10
+ * Default: false
11
+ */
12
+ assumeValidSDL?: boolean;
13
+ }
14
+ /**
15
+ * This takes the ast of a schema document produced by the parse function in
16
+ * src/language/parser.js.
17
+ *
18
+ * If no schema definition is provided, then it will look for types named Query,
19
+ * Mutation and Subscription.
20
+ *
21
+ * Given that AST it constructs a GraphQLSchema. The resulting schema
22
+ * has no resolve methods, so execution will use default resolvers.
23
+ */
24
+ export declare function buildASTSchema(
25
+ documentAST: DocumentNode,
26
+ options?: BuildSchemaOptions,
27
+ ): GraphQLSchema;
28
+ /**
29
+ * A helper function to build a GraphQLSchema directly from a source
30
+ * document.
31
+ */
32
+ export declare function buildSchema(
33
+ source: string | Source,
34
+ options?: BuildSchemaOptions & ParseOptions,
35
+ ): GraphQLSchema;
@@ -0,0 +1,115 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.buildASTSchema = buildASTSchema;
7
+ exports.buildSchema = buildSchema;
8
+
9
+ var _devAssert = require('../jsutils/devAssert.js');
10
+
11
+ var _kinds = require('../language/kinds.js');
12
+
13
+ var _parser = require('../language/parser.js');
14
+
15
+ var _directives = require('../type/directives.js');
16
+
17
+ var _schema = require('../type/schema.js');
18
+
19
+ var _validate = require('../validation/validate.js');
20
+
21
+ var _extendSchema = require('./extendSchema.js');
22
+
23
+ /**
24
+ * This takes the ast of a schema document produced by the parse function in
25
+ * src/language/parser.js.
26
+ *
27
+ * If no schema definition is provided, then it will look for types named Query,
28
+ * Mutation and Subscription.
29
+ *
30
+ * Given that AST it constructs a GraphQLSchema. The resulting schema
31
+ * has no resolve methods, so execution will use default resolvers.
32
+ */
33
+ function buildASTSchema(documentAST, options) {
34
+ (documentAST != null && documentAST.kind === _kinds.Kind.DOCUMENT) ||
35
+ (0, _devAssert.devAssert)(false, 'Must provide valid Document AST.');
36
+
37
+ if (
38
+ (options === null || options === void 0 ? void 0 : options.assumeValid) !==
39
+ true &&
40
+ (options === null || options === void 0
41
+ ? void 0
42
+ : options.assumeValidSDL) !== true
43
+ ) {
44
+ (0, _validate.assertValidSDL)(documentAST);
45
+ }
46
+
47
+ const emptySchemaConfig = {
48
+ description: undefined,
49
+ types: [],
50
+ directives: [],
51
+ extensions: Object.create(null),
52
+ extensionASTNodes: [],
53
+ assumeValid: false,
54
+ };
55
+ const config = (0, _extendSchema.extendSchemaImpl)(
56
+ emptySchemaConfig,
57
+ documentAST,
58
+ options,
59
+ );
60
+
61
+ if (config.astNode == null) {
62
+ for (const type of config.types) {
63
+ switch (type.name) {
64
+ // Note: While this could make early assertions to get the correctly
65
+ // typed values below, that would throw immediately while type system
66
+ // validation with validateSchema() will produce more actionable results.
67
+ case 'Query':
68
+ // @ts-expect-error validated in `validateSchema`
69
+ config.query = type;
70
+ break;
71
+
72
+ case 'Mutation':
73
+ // @ts-expect-error validated in `validateSchema`
74
+ config.mutation = type;
75
+ break;
76
+
77
+ case 'Subscription':
78
+ // @ts-expect-error validated in `validateSchema`
79
+ config.subscription = type;
80
+ break;
81
+ }
82
+ }
83
+ }
84
+
85
+ const directives = [
86
+ ...config.directives, // If specified directives were not explicitly declared, add them.
87
+ ..._directives.specifiedDirectives.filter((stdDirective) =>
88
+ config.directives.every(
89
+ (directive) => directive.name !== stdDirective.name,
90
+ ),
91
+ ),
92
+ ];
93
+ return new _schema.GraphQLSchema({ ...config, directives });
94
+ }
95
+ /**
96
+ * A helper function to build a GraphQLSchema directly from a source
97
+ * document.
98
+ */
99
+
100
+ function buildSchema(source, options) {
101
+ const document = (0, _parser.parse)(source, {
102
+ noLocation:
103
+ options === null || options === void 0 ? void 0 : options.noLocation,
104
+ allowLegacyFragmentVariables:
105
+ options === null || options === void 0
106
+ ? void 0
107
+ : options.allowLegacyFragmentVariables,
108
+ });
109
+ return buildASTSchema(document, {
110
+ assumeValidSDL:
111
+ options === null || options === void 0 ? void 0 : options.assumeValidSDL,
112
+ assumeValid:
113
+ options === null || options === void 0 ? void 0 : options.assumeValid,
114
+ });
115
+ }
@@ -0,0 +1,97 @@
1
+ import { devAssert } from '../jsutils/devAssert.mjs';
2
+ import { Kind } from '../language/kinds.mjs';
3
+ import { parse } from '../language/parser.mjs';
4
+ import { specifiedDirectives } from '../type/directives.mjs';
5
+ import { GraphQLSchema } from '../type/schema.mjs';
6
+ import { assertValidSDL } from '../validation/validate.mjs';
7
+ import { extendSchemaImpl } from './extendSchema.mjs';
8
+
9
+ /**
10
+ * This takes the ast of a schema document produced by the parse function in
11
+ * src/language/parser.js.
12
+ *
13
+ * If no schema definition is provided, then it will look for types named Query,
14
+ * Mutation and Subscription.
15
+ *
16
+ * Given that AST it constructs a GraphQLSchema. The resulting schema
17
+ * has no resolve methods, so execution will use default resolvers.
18
+ */
19
+ export function buildASTSchema(documentAST, options) {
20
+ (documentAST != null && documentAST.kind === Kind.DOCUMENT) ||
21
+ devAssert(false, 'Must provide valid Document AST.');
22
+
23
+ if (
24
+ (options === null || options === void 0 ? void 0 : options.assumeValid) !==
25
+ true &&
26
+ (options === null || options === void 0
27
+ ? void 0
28
+ : options.assumeValidSDL) !== true
29
+ ) {
30
+ assertValidSDL(documentAST);
31
+ }
32
+
33
+ const emptySchemaConfig = {
34
+ description: undefined,
35
+ types: [],
36
+ directives: [],
37
+ extensions: Object.create(null),
38
+ extensionASTNodes: [],
39
+ assumeValid: false,
40
+ };
41
+ const config = extendSchemaImpl(emptySchemaConfig, documentAST, options);
42
+
43
+ if (config.astNode == null) {
44
+ for (const type of config.types) {
45
+ switch (type.name) {
46
+ // Note: While this could make early assertions to get the correctly
47
+ // typed values below, that would throw immediately while type system
48
+ // validation with validateSchema() will produce more actionable results.
49
+ case 'Query':
50
+ // @ts-expect-error validated in `validateSchema`
51
+ config.query = type;
52
+ break;
53
+
54
+ case 'Mutation':
55
+ // @ts-expect-error validated in `validateSchema`
56
+ config.mutation = type;
57
+ break;
58
+
59
+ case 'Subscription':
60
+ // @ts-expect-error validated in `validateSchema`
61
+ config.subscription = type;
62
+ break;
63
+ }
64
+ }
65
+ }
66
+
67
+ const directives = [
68
+ ...config.directives, // If specified directives were not explicitly declared, add them.
69
+ ...specifiedDirectives.filter((stdDirective) =>
70
+ config.directives.every(
71
+ (directive) => directive.name !== stdDirective.name,
72
+ ),
73
+ ),
74
+ ];
75
+ return new GraphQLSchema({ ...config, directives });
76
+ }
77
+ /**
78
+ * A helper function to build a GraphQLSchema directly from a source
79
+ * document.
80
+ */
81
+
82
+ export function buildSchema(source, options) {
83
+ const document = parse(source, {
84
+ noLocation:
85
+ options === null || options === void 0 ? void 0 : options.noLocation,
86
+ allowLegacyFragmentVariables:
87
+ options === null || options === void 0
88
+ ? void 0
89
+ : options.allowLegacyFragmentVariables,
90
+ });
91
+ return buildASTSchema(document, {
92
+ assumeValidSDL:
93
+ options === null || options === void 0 ? void 0 : options.assumeValidSDL,
94
+ assumeValid:
95
+ options === null || options === void 0 ? void 0 : options.assumeValid,
96
+ });
97
+ }
@@ -0,0 +1,19 @@
1
+ import type { GraphQLSchemaValidationOptions } from '../type/schema';
2
+ import { GraphQLSchema } from '../type/schema';
3
+ import type { IntrospectionQuery } from './getIntrospectionQuery';
4
+ /**
5
+ * Build a GraphQLSchema for use by client tools.
6
+ *
7
+ * Given the result of a client running the introspection query, creates and
8
+ * returns a GraphQLSchema instance which can be then used with all graphql-js
9
+ * tools, but cannot be used to execute a query, as introspection does not
10
+ * represent the "resolver", "parse" or "serialize" functions or any other
11
+ * server-internal mechanisms.
12
+ *
13
+ * This function expects a complete introspection result. Don't forget to check
14
+ * the "errors" field of a server response before calling this function.
15
+ */
16
+ export declare function buildClientSchema(
17
+ introspection: IntrospectionQuery,
18
+ options?: GraphQLSchemaValidationOptions,
19
+ ): GraphQLSchema;