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,418 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.TypeInfo = void 0;
7
+ exports.visitWithTypeInfo = visitWithTypeInfo;
8
+
9
+ var _ast = require('../language/ast.js');
10
+
11
+ var _kinds = require('../language/kinds.js');
12
+
13
+ var _visitor = require('../language/visitor.js');
14
+
15
+ var _definition = require('../type/definition.js');
16
+
17
+ var _introspection = require('../type/introspection.js');
18
+
19
+ var _typeFromAST = require('./typeFromAST.js');
20
+
21
+ /**
22
+ * TypeInfo is a utility class which, given a GraphQL schema, can keep track
23
+ * of the current field and type definitions at any point in a GraphQL document
24
+ * AST during a recursive descent by calling `enter(node)` and `leave(node)`.
25
+ */
26
+ class TypeInfo {
27
+ constructor(
28
+ schema,
29
+ /**
30
+ * Initial type may be provided in rare cases to facilitate traversals
31
+ * beginning somewhere other than documents.
32
+ */
33
+ initialType,
34
+ /** @deprecated will be removed in 17.0.0 */
35
+ getFieldDefFn,
36
+ ) {
37
+ this._schema = schema;
38
+ this._typeStack = [];
39
+ this._parentTypeStack = [];
40
+ this._inputTypeStack = [];
41
+ this._fieldDefStack = [];
42
+ this._defaultValueStack = [];
43
+ this._directive = null;
44
+ this._argument = null;
45
+ this._enumValue = null;
46
+ this._getFieldDef =
47
+ getFieldDefFn !== null && getFieldDefFn !== void 0
48
+ ? getFieldDefFn
49
+ : getFieldDef;
50
+
51
+ if (initialType) {
52
+ if ((0, _definition.isInputType)(initialType)) {
53
+ this._inputTypeStack.push(initialType);
54
+ }
55
+
56
+ if ((0, _definition.isCompositeType)(initialType)) {
57
+ this._parentTypeStack.push(initialType);
58
+ }
59
+
60
+ if ((0, _definition.isOutputType)(initialType)) {
61
+ this._typeStack.push(initialType);
62
+ }
63
+ }
64
+ }
65
+
66
+ get [Symbol.toStringTag]() {
67
+ return 'TypeInfo';
68
+ }
69
+
70
+ getType() {
71
+ if (this._typeStack.length > 0) {
72
+ return this._typeStack[this._typeStack.length - 1];
73
+ }
74
+ }
75
+
76
+ getParentType() {
77
+ if (this._parentTypeStack.length > 0) {
78
+ return this._parentTypeStack[this._parentTypeStack.length - 1];
79
+ }
80
+ }
81
+
82
+ getInputType() {
83
+ if (this._inputTypeStack.length > 0) {
84
+ return this._inputTypeStack[this._inputTypeStack.length - 1];
85
+ }
86
+ }
87
+
88
+ getParentInputType() {
89
+ if (this._inputTypeStack.length > 1) {
90
+ return this._inputTypeStack[this._inputTypeStack.length - 2];
91
+ }
92
+ }
93
+
94
+ getFieldDef() {
95
+ if (this._fieldDefStack.length > 0) {
96
+ return this._fieldDefStack[this._fieldDefStack.length - 1];
97
+ }
98
+ }
99
+
100
+ getDefaultValue() {
101
+ if (this._defaultValueStack.length > 0) {
102
+ return this._defaultValueStack[this._defaultValueStack.length - 1];
103
+ }
104
+ }
105
+
106
+ getDirective() {
107
+ return this._directive;
108
+ }
109
+
110
+ getArgument() {
111
+ return this._argument;
112
+ }
113
+
114
+ getEnumValue() {
115
+ return this._enumValue;
116
+ }
117
+
118
+ enter(node) {
119
+ const schema = this._schema; // Note: many of the types below are explicitly typed as "unknown" to drop
120
+ // any assumptions of a valid schema to ensure runtime types are properly
121
+ // checked before continuing since TypeInfo is used as part of validation
122
+ // which occurs before guarantees of schema and document validity.
123
+
124
+ switch (node.kind) {
125
+ case _kinds.Kind.SELECTION_SET: {
126
+ const namedType = (0, _definition.getNamedType)(this.getType());
127
+
128
+ this._parentTypeStack.push(
129
+ (0, _definition.isCompositeType)(namedType) ? namedType : undefined,
130
+ );
131
+
132
+ break;
133
+ }
134
+
135
+ case _kinds.Kind.FIELD: {
136
+ const parentType = this.getParentType();
137
+ let fieldDef;
138
+ let fieldType;
139
+
140
+ if (parentType) {
141
+ fieldDef = this._getFieldDef(schema, parentType, node);
142
+
143
+ if (fieldDef) {
144
+ fieldType = fieldDef.type;
145
+ }
146
+ }
147
+
148
+ this._fieldDefStack.push(fieldDef);
149
+
150
+ this._typeStack.push(
151
+ (0, _definition.isOutputType)(fieldType) ? fieldType : undefined,
152
+ );
153
+
154
+ break;
155
+ }
156
+
157
+ case _kinds.Kind.DIRECTIVE:
158
+ this._directive = schema.getDirective(node.name.value);
159
+ break;
160
+
161
+ case _kinds.Kind.OPERATION_DEFINITION: {
162
+ const rootType = schema.getRootType(node.operation);
163
+
164
+ this._typeStack.push(
165
+ (0, _definition.isObjectType)(rootType) ? rootType : undefined,
166
+ );
167
+
168
+ break;
169
+ }
170
+
171
+ case _kinds.Kind.INLINE_FRAGMENT:
172
+ case _kinds.Kind.FRAGMENT_DEFINITION: {
173
+ const typeConditionAST = node.typeCondition;
174
+ const outputType = typeConditionAST
175
+ ? (0, _typeFromAST.typeFromAST)(schema, typeConditionAST)
176
+ : (0, _definition.getNamedType)(this.getType());
177
+
178
+ this._typeStack.push(
179
+ (0, _definition.isOutputType)(outputType) ? outputType : undefined,
180
+ );
181
+
182
+ break;
183
+ }
184
+
185
+ case _kinds.Kind.VARIABLE_DEFINITION: {
186
+ const inputType = (0, _typeFromAST.typeFromAST)(schema, node.type);
187
+
188
+ this._inputTypeStack.push(
189
+ (0, _definition.isInputType)(inputType) ? inputType : undefined,
190
+ );
191
+
192
+ break;
193
+ }
194
+
195
+ case _kinds.Kind.ARGUMENT: {
196
+ var _this$getDirective;
197
+
198
+ let argDef;
199
+ let argType;
200
+ const fieldOrDirective =
201
+ (_this$getDirective = this.getDirective()) !== null &&
202
+ _this$getDirective !== void 0
203
+ ? _this$getDirective
204
+ : this.getFieldDef();
205
+
206
+ if (fieldOrDirective) {
207
+ argDef = fieldOrDirective.args.find(
208
+ (arg) => arg.name === node.name.value,
209
+ );
210
+
211
+ if (argDef) {
212
+ argType = argDef.type;
213
+ }
214
+ }
215
+
216
+ this._argument = argDef;
217
+
218
+ this._defaultValueStack.push(argDef ? argDef.defaultValue : undefined);
219
+
220
+ this._inputTypeStack.push(
221
+ (0, _definition.isInputType)(argType) ? argType : undefined,
222
+ );
223
+
224
+ break;
225
+ }
226
+
227
+ case _kinds.Kind.LIST: {
228
+ const listType = (0, _definition.getNullableType)(this.getInputType());
229
+ const itemType = (0, _definition.isListType)(listType)
230
+ ? listType.ofType
231
+ : listType; // List positions never have a default value.
232
+
233
+ this._defaultValueStack.push(undefined);
234
+
235
+ this._inputTypeStack.push(
236
+ (0, _definition.isInputType)(itemType) ? itemType : undefined,
237
+ );
238
+
239
+ break;
240
+ }
241
+
242
+ case _kinds.Kind.OBJECT_FIELD: {
243
+ const objectType = (0, _definition.getNamedType)(this.getInputType());
244
+ let inputFieldType;
245
+ let inputField;
246
+
247
+ if ((0, _definition.isInputObjectType)(objectType)) {
248
+ inputField = objectType.getFields()[node.name.value];
249
+
250
+ if (inputField) {
251
+ inputFieldType = inputField.type;
252
+ }
253
+ }
254
+
255
+ this._defaultValueStack.push(
256
+ inputField ? inputField.defaultValue : undefined,
257
+ );
258
+
259
+ this._inputTypeStack.push(
260
+ (0, _definition.isInputType)(inputFieldType)
261
+ ? inputFieldType
262
+ : undefined,
263
+ );
264
+
265
+ break;
266
+ }
267
+
268
+ case _kinds.Kind.ENUM: {
269
+ const enumType = (0, _definition.getNamedType)(this.getInputType());
270
+ let enumValue;
271
+
272
+ if ((0, _definition.isEnumType)(enumType)) {
273
+ enumValue = enumType.getValue(node.value);
274
+ }
275
+
276
+ this._enumValue = enumValue;
277
+ break;
278
+ }
279
+
280
+ default: // Ignore other nodes
281
+ }
282
+ }
283
+
284
+ leave(node) {
285
+ switch (node.kind) {
286
+ case _kinds.Kind.SELECTION_SET:
287
+ this._parentTypeStack.pop();
288
+
289
+ break;
290
+
291
+ case _kinds.Kind.FIELD:
292
+ this._fieldDefStack.pop();
293
+
294
+ this._typeStack.pop();
295
+
296
+ break;
297
+
298
+ case _kinds.Kind.DIRECTIVE:
299
+ this._directive = null;
300
+ break;
301
+
302
+ case _kinds.Kind.OPERATION_DEFINITION:
303
+ case _kinds.Kind.INLINE_FRAGMENT:
304
+ case _kinds.Kind.FRAGMENT_DEFINITION:
305
+ this._typeStack.pop();
306
+
307
+ break;
308
+
309
+ case _kinds.Kind.VARIABLE_DEFINITION:
310
+ this._inputTypeStack.pop();
311
+
312
+ break;
313
+
314
+ case _kinds.Kind.ARGUMENT:
315
+ this._argument = null;
316
+
317
+ this._defaultValueStack.pop();
318
+
319
+ this._inputTypeStack.pop();
320
+
321
+ break;
322
+
323
+ case _kinds.Kind.LIST:
324
+ case _kinds.Kind.OBJECT_FIELD:
325
+ this._defaultValueStack.pop();
326
+
327
+ this._inputTypeStack.pop();
328
+
329
+ break;
330
+
331
+ case _kinds.Kind.ENUM:
332
+ this._enumValue = null;
333
+ break;
334
+
335
+ default: // Ignore other nodes
336
+ }
337
+ }
338
+ }
339
+
340
+ exports.TypeInfo = TypeInfo;
341
+
342
+ /**
343
+ * Not exactly the same as the executor's definition of getFieldDef, in this
344
+ * statically evaluated environment we do not always have an Object type,
345
+ * and need to handle Interface and Union types.
346
+ */
347
+ function getFieldDef(schema, parentType, fieldNode) {
348
+ const name = fieldNode.name.value;
349
+
350
+ if (
351
+ name === _introspection.SchemaMetaFieldDef.name &&
352
+ schema.getQueryType() === parentType
353
+ ) {
354
+ return _introspection.SchemaMetaFieldDef;
355
+ }
356
+
357
+ if (
358
+ name === _introspection.TypeMetaFieldDef.name &&
359
+ schema.getQueryType() === parentType
360
+ ) {
361
+ return _introspection.TypeMetaFieldDef;
362
+ }
363
+
364
+ if (
365
+ name === _introspection.TypeNameMetaFieldDef.name &&
366
+ (0, _definition.isCompositeType)(parentType)
367
+ ) {
368
+ return _introspection.TypeNameMetaFieldDef;
369
+ }
370
+
371
+ if (
372
+ (0, _definition.isObjectType)(parentType) ||
373
+ (0, _definition.isInterfaceType)(parentType)
374
+ ) {
375
+ return parentType.getFields()[name];
376
+ }
377
+ }
378
+ /**
379
+ * Creates a new visitor instance which maintains a provided TypeInfo instance
380
+ * along with visiting visitor.
381
+ */
382
+
383
+ function visitWithTypeInfo(typeInfo, visitor) {
384
+ return {
385
+ enter(...args) {
386
+ const node = args[0];
387
+ typeInfo.enter(node);
388
+ const fn = (0, _visitor.getEnterLeaveForKind)(visitor, node.kind).enter;
389
+
390
+ if (fn) {
391
+ const result = fn.apply(visitor, args);
392
+
393
+ if (result !== undefined) {
394
+ typeInfo.leave(node);
395
+
396
+ if ((0, _ast.isNode)(result)) {
397
+ typeInfo.enter(result);
398
+ }
399
+ }
400
+
401
+ return result;
402
+ }
403
+ },
404
+
405
+ leave(...args) {
406
+ const node = args[0];
407
+ const fn = (0, _visitor.getEnterLeaveForKind)(visitor, node.kind).leave;
408
+ let result;
409
+
410
+ if (fn) {
411
+ result = fn.apply(visitor, args);
412
+ }
413
+
414
+ typeInfo.leave(node);
415
+ return result;
416
+ },
417
+ };
418
+ }