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,83 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.NoFragmentCyclesRule = NoFragmentCyclesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * No fragment cycles
12
+ *
13
+ * The graph of fragment spreads must not form any cycles including spreading itself.
14
+ * Otherwise an operation could infinitely spread or infinitely execute on cycles in the underlying data.
15
+ *
16
+ * See https://spec.graphql.org/draft/#sec-Fragment-spreads-must-not-form-cycles
17
+ */
18
+ function NoFragmentCyclesRule(context) {
19
+ // Tracks already visited fragments to maintain O(N) and to ensure that cycles
20
+ // are not redundantly reported.
21
+ const visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors
22
+
23
+ const spreadPath = []; // Position in the spread path
24
+
25
+ const spreadPathIndexByName = Object.create(null);
26
+ return {
27
+ OperationDefinition: () => false,
28
+
29
+ FragmentDefinition(node) {
30
+ detectCycleRecursive(node);
31
+ return false;
32
+ },
33
+ }; // This does a straight-forward DFS to find cycles.
34
+ // It does not terminate when a cycle was found but continues to explore
35
+ // the graph to find all possible cycles.
36
+
37
+ function detectCycleRecursive(fragment) {
38
+ if (visitedFrags[fragment.name.value]) {
39
+ return;
40
+ }
41
+
42
+ const fragmentName = fragment.name.value;
43
+ visitedFrags[fragmentName] = true;
44
+ const spreadNodes = context.getFragmentSpreads(fragment.selectionSet);
45
+
46
+ if (spreadNodes.length === 0) {
47
+ return;
48
+ }
49
+
50
+ spreadPathIndexByName[fragmentName] = spreadPath.length;
51
+
52
+ for (const spreadNode of spreadNodes) {
53
+ const spreadName = spreadNode.name.value;
54
+ const cycleIndex = spreadPathIndexByName[spreadName];
55
+ spreadPath.push(spreadNode);
56
+
57
+ if (cycleIndex === undefined) {
58
+ const spreadFragment = context.getFragment(spreadName);
59
+
60
+ if (spreadFragment) {
61
+ detectCycleRecursive(spreadFragment);
62
+ }
63
+ } else {
64
+ const cyclePath = spreadPath.slice(cycleIndex);
65
+ const viaPath = cyclePath
66
+ .slice(0, -1)
67
+ .map((s) => '"' + s.name.value + '"')
68
+ .join(', ');
69
+ context.reportError(
70
+ new _GraphQLError.GraphQLError(
71
+ `Cannot spread fragment "${spreadName}" within itself` +
72
+ (viaPath !== '' ? ` via ${viaPath}.` : '.'),
73
+ cyclePath,
74
+ ),
75
+ );
76
+ }
77
+
78
+ spreadPath.pop();
79
+ }
80
+
81
+ spreadPathIndexByName[fragmentName] = undefined;
82
+ }
83
+ }
@@ -0,0 +1,76 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * No fragment cycles
5
+ *
6
+ * The graph of fragment spreads must not form any cycles including spreading itself.
7
+ * Otherwise an operation could infinitely spread or infinitely execute on cycles in the underlying data.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Fragment-spreads-must-not-form-cycles
10
+ */
11
+ export function NoFragmentCyclesRule(context) {
12
+ // Tracks already visited fragments to maintain O(N) and to ensure that cycles
13
+ // are not redundantly reported.
14
+ const visitedFrags = Object.create(null); // Array of AST nodes used to produce meaningful errors
15
+
16
+ const spreadPath = []; // Position in the spread path
17
+
18
+ const spreadPathIndexByName = Object.create(null);
19
+ return {
20
+ OperationDefinition: () => false,
21
+
22
+ FragmentDefinition(node) {
23
+ detectCycleRecursive(node);
24
+ return false;
25
+ },
26
+ }; // This does a straight-forward DFS to find cycles.
27
+ // It does not terminate when a cycle was found but continues to explore
28
+ // the graph to find all possible cycles.
29
+
30
+ function detectCycleRecursive(fragment) {
31
+ if (visitedFrags[fragment.name.value]) {
32
+ return;
33
+ }
34
+
35
+ const fragmentName = fragment.name.value;
36
+ visitedFrags[fragmentName] = true;
37
+ const spreadNodes = context.getFragmentSpreads(fragment.selectionSet);
38
+
39
+ if (spreadNodes.length === 0) {
40
+ return;
41
+ }
42
+
43
+ spreadPathIndexByName[fragmentName] = spreadPath.length;
44
+
45
+ for (const spreadNode of spreadNodes) {
46
+ const spreadName = spreadNode.name.value;
47
+ const cycleIndex = spreadPathIndexByName[spreadName];
48
+ spreadPath.push(spreadNode);
49
+
50
+ if (cycleIndex === undefined) {
51
+ const spreadFragment = context.getFragment(spreadName);
52
+
53
+ if (spreadFragment) {
54
+ detectCycleRecursive(spreadFragment);
55
+ }
56
+ } else {
57
+ const cyclePath = spreadPath.slice(cycleIndex);
58
+ const viaPath = cyclePath
59
+ .slice(0, -1)
60
+ .map((s) => '"' + s.name.value + '"')
61
+ .join(', ');
62
+ context.reportError(
63
+ new GraphQLError(
64
+ `Cannot spread fragment "${spreadName}" within itself` +
65
+ (viaPath !== '' ? ` via ${viaPath}.` : '.'),
66
+ cyclePath,
67
+ ),
68
+ );
69
+ }
70
+
71
+ spreadPath.pop();
72
+ }
73
+
74
+ spreadPathIndexByName[fragmentName] = undefined;
75
+ }
76
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * No undefined variables
5
+ *
6
+ * A GraphQL operation is only valid if all variables encountered, both directly
7
+ * and via fragment spreads, are defined by that operation.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-All-Variable-Uses-Defined
10
+ */
11
+ export declare function NoUndefinedVariablesRule(
12
+ context: ValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.NoUndefinedVariablesRule = NoUndefinedVariablesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * No undefined variables
12
+ *
13
+ * A GraphQL operation is only valid if all variables encountered, both directly
14
+ * and via fragment spreads, are defined by that operation.
15
+ *
16
+ * See https://spec.graphql.org/draft/#sec-All-Variable-Uses-Defined
17
+ */
18
+ function NoUndefinedVariablesRule(context) {
19
+ let variableNameDefined = Object.create(null);
20
+ return {
21
+ OperationDefinition: {
22
+ enter() {
23
+ variableNameDefined = Object.create(null);
24
+ },
25
+
26
+ leave(operation) {
27
+ const usages = context.getRecursiveVariableUsages(operation);
28
+
29
+ for (const { node } of usages) {
30
+ const varName = node.name.value;
31
+
32
+ if (variableNameDefined[varName] !== true) {
33
+ context.reportError(
34
+ new _GraphQLError.GraphQLError(
35
+ operation.name
36
+ ? `Variable "$${varName}" is not defined by operation "${operation.name.value}".`
37
+ : `Variable "$${varName}" is not defined.`,
38
+ [node, operation],
39
+ ),
40
+ );
41
+ }
42
+ }
43
+ },
44
+ },
45
+
46
+ VariableDefinition(node) {
47
+ variableNameDefined[node.variable.name.value] = true;
48
+ },
49
+ };
50
+ }
@@ -0,0 +1,43 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * No undefined variables
5
+ *
6
+ * A GraphQL operation is only valid if all variables encountered, both directly
7
+ * and via fragment spreads, are defined by that operation.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-All-Variable-Uses-Defined
10
+ */
11
+ export function NoUndefinedVariablesRule(context) {
12
+ let variableNameDefined = Object.create(null);
13
+ return {
14
+ OperationDefinition: {
15
+ enter() {
16
+ variableNameDefined = Object.create(null);
17
+ },
18
+
19
+ leave(operation) {
20
+ const usages = context.getRecursiveVariableUsages(operation);
21
+
22
+ for (const { node } of usages) {
23
+ const varName = node.name.value;
24
+
25
+ if (variableNameDefined[varName] !== true) {
26
+ context.reportError(
27
+ new GraphQLError(
28
+ operation.name
29
+ ? `Variable "$${varName}" is not defined by operation "${operation.name.value}".`
30
+ : `Variable "$${varName}" is not defined.`,
31
+ [node, operation],
32
+ ),
33
+ );
34
+ }
35
+ }
36
+ },
37
+ },
38
+
39
+ VariableDefinition(node) {
40
+ variableNameDefined[node.variable.name.value] = true;
41
+ },
42
+ };
43
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ASTValidationContext } from '../ValidationContext';
3
+ /**
4
+ * No unused fragments
5
+ *
6
+ * A GraphQL document is only valid if all fragment definitions are spread
7
+ * within operations, or spread within other fragments spread within operations.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Fragments-Must-Be-Used
10
+ */
11
+ export declare function NoUnusedFragmentsRule(
12
+ context: ASTValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,59 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.NoUnusedFragmentsRule = NoUnusedFragmentsRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * No unused fragments
12
+ *
13
+ * A GraphQL document is only valid if all fragment definitions are spread
14
+ * within operations, or spread within other fragments spread within operations.
15
+ *
16
+ * See https://spec.graphql.org/draft/#sec-Fragments-Must-Be-Used
17
+ */
18
+ function NoUnusedFragmentsRule(context) {
19
+ const operationDefs = [];
20
+ const fragmentDefs = [];
21
+ return {
22
+ OperationDefinition(node) {
23
+ operationDefs.push(node);
24
+ return false;
25
+ },
26
+
27
+ FragmentDefinition(node) {
28
+ fragmentDefs.push(node);
29
+ return false;
30
+ },
31
+
32
+ Document: {
33
+ leave() {
34
+ const fragmentNameUsed = Object.create(null);
35
+
36
+ for (const operation of operationDefs) {
37
+ for (const fragment of context.getRecursivelyReferencedFragments(
38
+ operation,
39
+ )) {
40
+ fragmentNameUsed[fragment.name.value] = true;
41
+ }
42
+ }
43
+
44
+ for (const fragmentDef of fragmentDefs) {
45
+ const fragName = fragmentDef.name.value;
46
+
47
+ if (fragmentNameUsed[fragName] !== true) {
48
+ context.reportError(
49
+ new _GraphQLError.GraphQLError(
50
+ `Fragment "${fragName}" is never used.`,
51
+ fragmentDef,
52
+ ),
53
+ );
54
+ }
55
+ }
56
+ },
57
+ },
58
+ };
59
+ }
@@ -0,0 +1,52 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * No unused fragments
5
+ *
6
+ * A GraphQL document is only valid if all fragment definitions are spread
7
+ * within operations, or spread within other fragments spread within operations.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Fragments-Must-Be-Used
10
+ */
11
+ export function NoUnusedFragmentsRule(context) {
12
+ const operationDefs = [];
13
+ const fragmentDefs = [];
14
+ return {
15
+ OperationDefinition(node) {
16
+ operationDefs.push(node);
17
+ return false;
18
+ },
19
+
20
+ FragmentDefinition(node) {
21
+ fragmentDefs.push(node);
22
+ return false;
23
+ },
24
+
25
+ Document: {
26
+ leave() {
27
+ const fragmentNameUsed = Object.create(null);
28
+
29
+ for (const operation of operationDefs) {
30
+ for (const fragment of context.getRecursivelyReferencedFragments(
31
+ operation,
32
+ )) {
33
+ fragmentNameUsed[fragment.name.value] = true;
34
+ }
35
+ }
36
+
37
+ for (const fragmentDef of fragmentDefs) {
38
+ const fragName = fragmentDef.name.value;
39
+
40
+ if (fragmentNameUsed[fragName] !== true) {
41
+ context.reportError(
42
+ new GraphQLError(
43
+ `Fragment "${fragName}" is never used.`,
44
+ fragmentDef,
45
+ ),
46
+ );
47
+ }
48
+ }
49
+ },
50
+ },
51
+ };
52
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * No unused variables
5
+ *
6
+ * A GraphQL operation is only valid if all variables defined by an operation
7
+ * are used, either directly or within a spread fragment.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-All-Variables-Used
10
+ */
11
+ export declare function NoUnusedVariablesRule(
12
+ context: ValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.NoUnusedVariablesRule = NoUnusedVariablesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * No unused variables
12
+ *
13
+ * A GraphQL operation is only valid if all variables defined by an operation
14
+ * are used, either directly or within a spread fragment.
15
+ *
16
+ * See https://spec.graphql.org/draft/#sec-All-Variables-Used
17
+ */
18
+ function NoUnusedVariablesRule(context) {
19
+ let variableDefs = [];
20
+ return {
21
+ OperationDefinition: {
22
+ enter() {
23
+ variableDefs = [];
24
+ },
25
+
26
+ leave(operation) {
27
+ const variableNameUsed = Object.create(null);
28
+ const usages = context.getRecursiveVariableUsages(operation);
29
+
30
+ for (const { node } of usages) {
31
+ variableNameUsed[node.name.value] = true;
32
+ }
33
+
34
+ for (const variableDef of variableDefs) {
35
+ const variableName = variableDef.variable.name.value;
36
+
37
+ if (variableNameUsed[variableName] !== true) {
38
+ context.reportError(
39
+ new _GraphQLError.GraphQLError(
40
+ operation.name
41
+ ? `Variable "$${variableName}" is never used in operation "${operation.name.value}".`
42
+ : `Variable "$${variableName}" is never used.`,
43
+ variableDef,
44
+ ),
45
+ );
46
+ }
47
+ }
48
+ },
49
+ },
50
+
51
+ VariableDefinition(def) {
52
+ variableDefs.push(def);
53
+ },
54
+ };
55
+ }
@@ -0,0 +1,48 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * No unused variables
5
+ *
6
+ * A GraphQL operation is only valid if all variables defined by an operation
7
+ * are used, either directly or within a spread fragment.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-All-Variables-Used
10
+ */
11
+ export function NoUnusedVariablesRule(context) {
12
+ let variableDefs = [];
13
+ return {
14
+ OperationDefinition: {
15
+ enter() {
16
+ variableDefs = [];
17
+ },
18
+
19
+ leave(operation) {
20
+ const variableNameUsed = Object.create(null);
21
+ const usages = context.getRecursiveVariableUsages(operation);
22
+
23
+ for (const { node } of usages) {
24
+ variableNameUsed[node.name.value] = true;
25
+ }
26
+
27
+ for (const variableDef of variableDefs) {
28
+ const variableName = variableDef.variable.name.value;
29
+
30
+ if (variableNameUsed[variableName] !== true) {
31
+ context.reportError(
32
+ new GraphQLError(
33
+ operation.name
34
+ ? `Variable "$${variableName}" is never used in operation "${operation.name.value}".`
35
+ : `Variable "$${variableName}" is never used.`,
36
+ variableDef,
37
+ ),
38
+ );
39
+ }
40
+ }
41
+ },
42
+ },
43
+
44
+ VariableDefinition(def) {
45
+ variableDefs.push(def);
46
+ },
47
+ };
48
+ }