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,146 @@
1
+ import { inspect } from '../../jsutils/inspect.mjs';
2
+ import { invariant } from '../../jsutils/invariant.mjs';
3
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
4
+ import { OperationTypeNode } from '../../language/ast.mjs';
5
+ import { DirectiveLocation } from '../../language/directiveLocation.mjs';
6
+ import { Kind } from '../../language/kinds.mjs';
7
+ import { specifiedDirectives } from '../../type/directives.mjs';
8
+
9
+ /**
10
+ * Known directives
11
+ *
12
+ * A GraphQL document is only valid if all `@directives` are known by the
13
+ * schema and legally positioned.
14
+ *
15
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-Defined
16
+ */
17
+ export function KnownDirectivesRule(context) {
18
+ const locationsMap = Object.create(null);
19
+ const schema = context.getSchema();
20
+ const definedDirectives = schema
21
+ ? schema.getDirectives()
22
+ : specifiedDirectives;
23
+
24
+ for (const directive of definedDirectives) {
25
+ locationsMap[directive.name] = directive.locations;
26
+ }
27
+
28
+ const astDefinitions = context.getDocument().definitions;
29
+
30
+ for (const def of astDefinitions) {
31
+ if (def.kind === Kind.DIRECTIVE_DEFINITION) {
32
+ locationsMap[def.name.value] = def.locations.map((name) => name.value);
33
+ }
34
+ }
35
+
36
+ return {
37
+ Directive(node, _key, _parent, _path, ancestors) {
38
+ const name = node.name.value;
39
+ const locations = locationsMap[name];
40
+
41
+ if (!locations) {
42
+ context.reportError(
43
+ new GraphQLError(`Unknown directive "@${name}".`, node),
44
+ );
45
+ return;
46
+ }
47
+
48
+ const candidateLocation = getDirectiveLocationForASTPath(ancestors);
49
+
50
+ if (candidateLocation && !locations.includes(candidateLocation)) {
51
+ context.reportError(
52
+ new GraphQLError(
53
+ `Directive "@${name}" may not be used on ${candidateLocation}.`,
54
+ node,
55
+ ),
56
+ );
57
+ }
58
+ },
59
+ };
60
+ }
61
+
62
+ function getDirectiveLocationForASTPath(ancestors) {
63
+ const appliedTo = ancestors[ancestors.length - 1];
64
+ 'kind' in appliedTo || invariant(false);
65
+
66
+ switch (appliedTo.kind) {
67
+ case Kind.OPERATION_DEFINITION:
68
+ return getDirectiveLocationForOperation(appliedTo.operation);
69
+
70
+ case Kind.FIELD:
71
+ return DirectiveLocation.FIELD;
72
+
73
+ case Kind.FRAGMENT_SPREAD:
74
+ return DirectiveLocation.FRAGMENT_SPREAD;
75
+
76
+ case Kind.INLINE_FRAGMENT:
77
+ return DirectiveLocation.INLINE_FRAGMENT;
78
+
79
+ case Kind.FRAGMENT_DEFINITION:
80
+ return DirectiveLocation.FRAGMENT_DEFINITION;
81
+
82
+ case Kind.VARIABLE_DEFINITION:
83
+ return DirectiveLocation.VARIABLE_DEFINITION;
84
+
85
+ case Kind.SCHEMA_DEFINITION:
86
+ case Kind.SCHEMA_EXTENSION:
87
+ return DirectiveLocation.SCHEMA;
88
+
89
+ case Kind.SCALAR_TYPE_DEFINITION:
90
+ case Kind.SCALAR_TYPE_EXTENSION:
91
+ return DirectiveLocation.SCALAR;
92
+
93
+ case Kind.OBJECT_TYPE_DEFINITION:
94
+ case Kind.OBJECT_TYPE_EXTENSION:
95
+ return DirectiveLocation.OBJECT;
96
+
97
+ case Kind.FIELD_DEFINITION:
98
+ return DirectiveLocation.FIELD_DEFINITION;
99
+
100
+ case Kind.INTERFACE_TYPE_DEFINITION:
101
+ case Kind.INTERFACE_TYPE_EXTENSION:
102
+ return DirectiveLocation.INTERFACE;
103
+
104
+ case Kind.UNION_TYPE_DEFINITION:
105
+ case Kind.UNION_TYPE_EXTENSION:
106
+ return DirectiveLocation.UNION;
107
+
108
+ case Kind.ENUM_TYPE_DEFINITION:
109
+ case Kind.ENUM_TYPE_EXTENSION:
110
+ return DirectiveLocation.ENUM;
111
+
112
+ case Kind.ENUM_VALUE_DEFINITION:
113
+ return DirectiveLocation.ENUM_VALUE;
114
+
115
+ case Kind.INPUT_OBJECT_TYPE_DEFINITION:
116
+ case Kind.INPUT_OBJECT_TYPE_EXTENSION:
117
+ return DirectiveLocation.INPUT_OBJECT;
118
+
119
+ case Kind.INPUT_VALUE_DEFINITION: {
120
+ const parentNode = ancestors[ancestors.length - 3];
121
+ 'kind' in parentNode || invariant(false);
122
+ return parentNode.kind === Kind.INPUT_OBJECT_TYPE_DEFINITION
123
+ ? DirectiveLocation.INPUT_FIELD_DEFINITION
124
+ : DirectiveLocation.ARGUMENT_DEFINITION;
125
+ }
126
+ // Not reachable, all possible types have been considered.
127
+
128
+ /* c8 ignore next */
129
+
130
+ default:
131
+ false || invariant(false, 'Unexpected kind: ' + inspect(appliedTo.kind));
132
+ }
133
+ }
134
+
135
+ function getDirectiveLocationForOperation(operation) {
136
+ switch (operation) {
137
+ case OperationTypeNode.QUERY:
138
+ return DirectiveLocation.QUERY;
139
+
140
+ case OperationTypeNode.MUTATION:
141
+ return DirectiveLocation.MUTATION;
142
+
143
+ case OperationTypeNode.SUBSCRIPTION:
144
+ return DirectiveLocation.SUBSCRIPTION;
145
+ }
146
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Known fragment names
5
+ *
6
+ * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
7
+ * to fragments defined in the same document.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
10
+ */
11
+ export declare function KnownFragmentNamesRule(
12
+ context: ValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.KnownFragmentNamesRule = KnownFragmentNamesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * Known fragment names
12
+ *
13
+ * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
14
+ * to fragments defined in the same document.
15
+ *
16
+ * See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
17
+ */
18
+ function KnownFragmentNamesRule(context) {
19
+ return {
20
+ FragmentSpread(node) {
21
+ const fragmentName = node.name.value;
22
+ const fragment = context.getFragment(fragmentName);
23
+
24
+ if (!fragment) {
25
+ context.reportError(
26
+ new _GraphQLError.GraphQLError(
27
+ `Unknown fragment "${fragmentName}".`,
28
+ node.name,
29
+ ),
30
+ );
31
+ }
32
+ },
33
+ };
34
+ }
@@ -0,0 +1,24 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * Known fragment names
5
+ *
6
+ * A GraphQL document is only valid if all `...Fragment` fragment spreads refer
7
+ * to fragments defined in the same document.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Fragment-spread-target-defined
10
+ */
11
+ export function KnownFragmentNamesRule(context) {
12
+ return {
13
+ FragmentSpread(node) {
14
+ const fragmentName = node.name.value;
15
+ const fragment = context.getFragment(fragmentName);
16
+
17
+ if (!fragment) {
18
+ context.reportError(
19
+ new GraphQLError(`Unknown fragment "${fragmentName}".`, node.name),
20
+ );
21
+ }
22
+ },
23
+ };
24
+ }
@@ -0,0 +1,16 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type {
3
+ SDLValidationContext,
4
+ ValidationContext,
5
+ } from '../ValidationContext';
6
+ /**
7
+ * Known type names
8
+ *
9
+ * A GraphQL document is only valid if referenced types (specifically
10
+ * variable definitions and fragment conditions) are defined by the type schema.
11
+ *
12
+ * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence
13
+ */
14
+ export declare function KnownTypeNamesRule(
15
+ context: ValidationContext | SDLValidationContext,
16
+ ): ASTVisitor;
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.KnownTypeNamesRule = KnownTypeNamesRule;
7
+
8
+ var _didYouMean = require('../../jsutils/didYouMean.js');
9
+
10
+ var _suggestionList = require('../../jsutils/suggestionList.js');
11
+
12
+ var _GraphQLError = require('../../error/GraphQLError.js');
13
+
14
+ var _predicates = require('../../language/predicates.js');
15
+
16
+ var _introspection = require('../../type/introspection.js');
17
+
18
+ var _scalars = require('../../type/scalars.js');
19
+
20
+ /**
21
+ * Known type names
22
+ *
23
+ * A GraphQL document is only valid if referenced types (specifically
24
+ * variable definitions and fragment conditions) are defined by the type schema.
25
+ *
26
+ * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence
27
+ */
28
+ function KnownTypeNamesRule(context) {
29
+ const schema = context.getSchema();
30
+ const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
31
+ const definedTypes = Object.create(null);
32
+
33
+ for (const def of context.getDocument().definitions) {
34
+ if ((0, _predicates.isTypeDefinitionNode)(def)) {
35
+ definedTypes[def.name.value] = true;
36
+ }
37
+ }
38
+
39
+ const typeNames = [
40
+ ...Object.keys(existingTypesMap),
41
+ ...Object.keys(definedTypes),
42
+ ];
43
+ return {
44
+ NamedType(node, _1, parent, _2, ancestors) {
45
+ const typeName = node.name.value;
46
+
47
+ if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
48
+ var _ancestors$;
49
+
50
+ const definitionNode =
51
+ (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0
52
+ ? _ancestors$
53
+ : parent;
54
+ const isSDL = definitionNode != null && isSDLNode(definitionNode);
55
+
56
+ if (isSDL && standardTypeNames.includes(typeName)) {
57
+ return;
58
+ }
59
+
60
+ const suggestedTypes = (0, _suggestionList.suggestionList)(
61
+ typeName,
62
+ isSDL ? standardTypeNames.concat(typeNames) : typeNames,
63
+ );
64
+ context.reportError(
65
+ new _GraphQLError.GraphQLError(
66
+ `Unknown type "${typeName}".` +
67
+ (0, _didYouMean.didYouMean)(suggestedTypes),
68
+ node,
69
+ ),
70
+ );
71
+ }
72
+ },
73
+ };
74
+ }
75
+
76
+ const standardTypeNames = [
77
+ ..._scalars.specifiedScalarTypes,
78
+ ..._introspection.introspectionTypes,
79
+ ].map((type) => type.name);
80
+
81
+ function isSDLNode(value) {
82
+ return (
83
+ 'kind' in value &&
84
+ ((0, _predicates.isTypeSystemDefinitionNode)(value) ||
85
+ (0, _predicates.isTypeSystemExtensionNode)(value))
86
+ );
87
+ }
@@ -0,0 +1,75 @@
1
+ import { didYouMean } from '../../jsutils/didYouMean.mjs';
2
+ import { suggestionList } from '../../jsutils/suggestionList.mjs';
3
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
4
+ import {
5
+ isTypeDefinitionNode,
6
+ isTypeSystemDefinitionNode,
7
+ isTypeSystemExtensionNode,
8
+ } from '../../language/predicates.mjs';
9
+ import { introspectionTypes } from '../../type/introspection.mjs';
10
+ import { specifiedScalarTypes } from '../../type/scalars.mjs';
11
+
12
+ /**
13
+ * Known type names
14
+ *
15
+ * A GraphQL document is only valid if referenced types (specifically
16
+ * variable definitions and fragment conditions) are defined by the type schema.
17
+ *
18
+ * See https://spec.graphql.org/draft/#sec-Fragment-Spread-Type-Existence
19
+ */
20
+ export function KnownTypeNamesRule(context) {
21
+ const schema = context.getSchema();
22
+ const existingTypesMap = schema ? schema.getTypeMap() : Object.create(null);
23
+ const definedTypes = Object.create(null);
24
+
25
+ for (const def of context.getDocument().definitions) {
26
+ if (isTypeDefinitionNode(def)) {
27
+ definedTypes[def.name.value] = true;
28
+ }
29
+ }
30
+
31
+ const typeNames = [
32
+ ...Object.keys(existingTypesMap),
33
+ ...Object.keys(definedTypes),
34
+ ];
35
+ return {
36
+ NamedType(node, _1, parent, _2, ancestors) {
37
+ const typeName = node.name.value;
38
+
39
+ if (!existingTypesMap[typeName] && !definedTypes[typeName]) {
40
+ var _ancestors$;
41
+
42
+ const definitionNode =
43
+ (_ancestors$ = ancestors[2]) !== null && _ancestors$ !== void 0
44
+ ? _ancestors$
45
+ : parent;
46
+ const isSDL = definitionNode != null && isSDLNode(definitionNode);
47
+
48
+ if (isSDL && standardTypeNames.includes(typeName)) {
49
+ return;
50
+ }
51
+
52
+ const suggestedTypes = suggestionList(
53
+ typeName,
54
+ isSDL ? standardTypeNames.concat(typeNames) : typeNames,
55
+ );
56
+ context.reportError(
57
+ new GraphQLError(
58
+ `Unknown type "${typeName}".` + didYouMean(suggestedTypes),
59
+ node,
60
+ ),
61
+ );
62
+ }
63
+ },
64
+ };
65
+ }
66
+ const standardTypeNames = [...specifiedScalarTypes, ...introspectionTypes].map(
67
+ (type) => type.name,
68
+ );
69
+
70
+ function isSDLNode(value) {
71
+ return (
72
+ 'kind' in value &&
73
+ (isTypeSystemDefinitionNode(value) || isTypeSystemExtensionNode(value))
74
+ );
75
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ASTValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Lone anonymous operation
5
+ *
6
+ * A GraphQL document is only valid if when it contains an anonymous operation
7
+ * (the query short-hand) that it contains only that one operation definition.
8
+ *
9
+ * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
10
+ */
11
+ export declare function LoneAnonymousOperationRule(
12
+ context: ASTValidationContext,
13
+ ): ASTVisitor;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.LoneAnonymousOperationRule = LoneAnonymousOperationRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ var _kinds = require('../../language/kinds.js');
11
+
12
+ /**
13
+ * Lone anonymous operation
14
+ *
15
+ * A GraphQL document is only valid if when it contains an anonymous operation
16
+ * (the query short-hand) that it contains only that one operation definition.
17
+ *
18
+ * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
19
+ */
20
+ function LoneAnonymousOperationRule(context) {
21
+ let operationCount = 0;
22
+ return {
23
+ Document(node) {
24
+ operationCount = node.definitions.filter(
25
+ (definition) => definition.kind === _kinds.Kind.OPERATION_DEFINITION,
26
+ ).length;
27
+ },
28
+
29
+ OperationDefinition(node) {
30
+ if (!node.name && operationCount > 1) {
31
+ context.reportError(
32
+ new _GraphQLError.GraphQLError(
33
+ 'This anonymous operation must be the only defined operation.',
34
+ node,
35
+ ),
36
+ );
37
+ }
38
+ },
39
+ };
40
+ }
@@ -0,0 +1,32 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import { Kind } from '../../language/kinds.mjs';
3
+
4
+ /**
5
+ * Lone anonymous operation
6
+ *
7
+ * A GraphQL document is only valid if when it contains an anonymous operation
8
+ * (the query short-hand) that it contains only that one operation definition.
9
+ *
10
+ * See https://spec.graphql.org/draft/#sec-Lone-Anonymous-Operation
11
+ */
12
+ export function LoneAnonymousOperationRule(context) {
13
+ let operationCount = 0;
14
+ return {
15
+ Document(node) {
16
+ operationCount = node.definitions.filter(
17
+ (definition) => definition.kind === Kind.OPERATION_DEFINITION,
18
+ ).length;
19
+ },
20
+
21
+ OperationDefinition(node) {
22
+ if (!node.name && operationCount > 1) {
23
+ context.reportError(
24
+ new GraphQLError(
25
+ 'This anonymous operation must be the only defined operation.',
26
+ node,
27
+ ),
28
+ );
29
+ }
30
+ },
31
+ };
32
+ }
@@ -0,0 +1,10 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { SDLValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Lone Schema definition
5
+ *
6
+ * A GraphQL document is only valid if it contains only one schema definition.
7
+ */
8
+ export declare function LoneSchemaDefinitionRule(
9
+ context: SDLValidationContext,
10
+ ): ASTVisitor;
@@ -0,0 +1,63 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.LoneSchemaDefinitionRule = LoneSchemaDefinitionRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * Lone Schema definition
12
+ *
13
+ * A GraphQL document is only valid if it contains only one schema definition.
14
+ */
15
+ function LoneSchemaDefinitionRule(context) {
16
+ var _ref, _ref2, _oldSchema$astNode;
17
+
18
+ const oldSchema = context.getSchema();
19
+ const alreadyDefined =
20
+ (_ref =
21
+ (_ref2 =
22
+ (_oldSchema$astNode =
23
+ oldSchema === null || oldSchema === void 0
24
+ ? void 0
25
+ : oldSchema.astNode) !== null && _oldSchema$astNode !== void 0
26
+ ? _oldSchema$astNode
27
+ : oldSchema === null || oldSchema === void 0
28
+ ? void 0
29
+ : oldSchema.getQueryType()) !== null && _ref2 !== void 0
30
+ ? _ref2
31
+ : oldSchema === null || oldSchema === void 0
32
+ ? void 0
33
+ : oldSchema.getMutationType()) !== null && _ref !== void 0
34
+ ? _ref
35
+ : oldSchema === null || oldSchema === void 0
36
+ ? void 0
37
+ : oldSchema.getSubscriptionType();
38
+ let schemaDefinitionsCount = 0;
39
+ return {
40
+ SchemaDefinition(node) {
41
+ if (alreadyDefined) {
42
+ context.reportError(
43
+ new _GraphQLError.GraphQLError(
44
+ 'Cannot define a new schema within a schema extension.',
45
+ node,
46
+ ),
47
+ );
48
+ return;
49
+ }
50
+
51
+ if (schemaDefinitionsCount > 0) {
52
+ context.reportError(
53
+ new _GraphQLError.GraphQLError(
54
+ 'Must provide only one schema definition.',
55
+ node,
56
+ ),
57
+ );
58
+ }
59
+
60
+ ++schemaDefinitionsCount;
61
+ },
62
+ };
63
+ }
@@ -0,0 +1,53 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * Lone Schema definition
5
+ *
6
+ * A GraphQL document is only valid if it contains only one schema definition.
7
+ */
8
+ export function LoneSchemaDefinitionRule(context) {
9
+ var _ref, _ref2, _oldSchema$astNode;
10
+
11
+ const oldSchema = context.getSchema();
12
+ const alreadyDefined =
13
+ (_ref =
14
+ (_ref2 =
15
+ (_oldSchema$astNode =
16
+ oldSchema === null || oldSchema === void 0
17
+ ? void 0
18
+ : oldSchema.astNode) !== null && _oldSchema$astNode !== void 0
19
+ ? _oldSchema$astNode
20
+ : oldSchema === null || oldSchema === void 0
21
+ ? void 0
22
+ : oldSchema.getQueryType()) !== null && _ref2 !== void 0
23
+ ? _ref2
24
+ : oldSchema === null || oldSchema === void 0
25
+ ? void 0
26
+ : oldSchema.getMutationType()) !== null && _ref !== void 0
27
+ ? _ref
28
+ : oldSchema === null || oldSchema === void 0
29
+ ? void 0
30
+ : oldSchema.getSubscriptionType();
31
+ let schemaDefinitionsCount = 0;
32
+ return {
33
+ SchemaDefinition(node) {
34
+ if (alreadyDefined) {
35
+ context.reportError(
36
+ new GraphQLError(
37
+ 'Cannot define a new schema within a schema extension.',
38
+ node,
39
+ ),
40
+ );
41
+ return;
42
+ }
43
+
44
+ if (schemaDefinitionsCount > 0) {
45
+ context.reportError(
46
+ new GraphQLError('Must provide only one schema definition.', node),
47
+ );
48
+ }
49
+
50
+ ++schemaDefinitionsCount;
51
+ },
52
+ };
53
+ }
@@ -0,0 +1,13 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ASTValidationContext } from '../ValidationContext';
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 declare function NoFragmentCyclesRule(
12
+ context: ASTValidationContext,
13
+ ): ASTVisitor;