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,42 @@
1
+ import { groupBy } from '../../jsutils/groupBy.mjs';
2
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
3
+
4
+ /**
5
+ * Unique argument names
6
+ *
7
+ * A GraphQL field or directive is only valid if all supplied arguments are
8
+ * uniquely named.
9
+ *
10
+ * See https://spec.graphql.org/draft/#sec-Argument-Names
11
+ */
12
+ export function UniqueArgumentNamesRule(context) {
13
+ return {
14
+ Field: checkArgUniqueness,
15
+ Directive: checkArgUniqueness,
16
+ };
17
+
18
+ function checkArgUniqueness(parentNode) {
19
+ var _parentNode$arguments;
20
+
21
+ // FIXME: https://github.com/graphql/graphql-js/issues/2203
22
+
23
+ /* c8 ignore next */
24
+ const argumentNodes =
25
+ (_parentNode$arguments = parentNode.arguments) !== null &&
26
+ _parentNode$arguments !== void 0
27
+ ? _parentNode$arguments
28
+ : [];
29
+ const seenArgs = groupBy(argumentNodes, (arg) => arg.name.value);
30
+
31
+ for (const [argName, argNodes] of seenArgs) {
32
+ if (argNodes.length > 1) {
33
+ context.reportError(
34
+ new GraphQLError(
35
+ `There can be only one argument named "${argName}".`,
36
+ argNodes.map((node) => node.name),
37
+ ),
38
+ );
39
+ }
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,10 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { SDLValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Unique directive names
5
+ *
6
+ * A GraphQL document is only valid if all defined directives have unique names.
7
+ */
8
+ export declare function UniqueDirectiveNamesRule(
9
+ context: SDLValidationContext,
10
+ ): ASTVisitor;
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.UniqueDirectiveNamesRule = UniqueDirectiveNamesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ /**
11
+ * Unique directive names
12
+ *
13
+ * A GraphQL document is only valid if all defined directives have unique names.
14
+ */
15
+ function UniqueDirectiveNamesRule(context) {
16
+ const knownDirectiveNames = Object.create(null);
17
+ const schema = context.getSchema();
18
+ return {
19
+ DirectiveDefinition(node) {
20
+ const directiveName = node.name.value;
21
+
22
+ if (
23
+ schema !== null &&
24
+ schema !== void 0 &&
25
+ schema.getDirective(directiveName)
26
+ ) {
27
+ context.reportError(
28
+ new _GraphQLError.GraphQLError(
29
+ `Directive "@${directiveName}" already exists in the schema. It cannot be redefined.`,
30
+ node.name,
31
+ ),
32
+ );
33
+ return;
34
+ }
35
+
36
+ if (knownDirectiveNames[directiveName]) {
37
+ context.reportError(
38
+ new _GraphQLError.GraphQLError(
39
+ `There can be only one directive named "@${directiveName}".`,
40
+ [knownDirectiveNames[directiveName], node.name],
41
+ ),
42
+ );
43
+ } else {
44
+ knownDirectiveNames[directiveName] = node.name;
45
+ }
46
+
47
+ return false;
48
+ },
49
+ };
50
+ }
@@ -0,0 +1,43 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+
3
+ /**
4
+ * Unique directive names
5
+ *
6
+ * A GraphQL document is only valid if all defined directives have unique names.
7
+ */
8
+ export function UniqueDirectiveNamesRule(context) {
9
+ const knownDirectiveNames = Object.create(null);
10
+ const schema = context.getSchema();
11
+ return {
12
+ DirectiveDefinition(node) {
13
+ const directiveName = node.name.value;
14
+
15
+ if (
16
+ schema !== null &&
17
+ schema !== void 0 &&
18
+ schema.getDirective(directiveName)
19
+ ) {
20
+ context.reportError(
21
+ new GraphQLError(
22
+ `Directive "@${directiveName}" already exists in the schema. It cannot be redefined.`,
23
+ node.name,
24
+ ),
25
+ );
26
+ return;
27
+ }
28
+
29
+ if (knownDirectiveNames[directiveName]) {
30
+ context.reportError(
31
+ new GraphQLError(
32
+ `There can be only one directive named "@${directiveName}".`,
33
+ [knownDirectiveNames[directiveName], node.name],
34
+ ),
35
+ );
36
+ } else {
37
+ knownDirectiveNames[directiveName] = node.name;
38
+ }
39
+
40
+ return false;
41
+ },
42
+ };
43
+ }
@@ -0,0 +1,16 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type {
3
+ SDLValidationContext,
4
+ ValidationContext,
5
+ } from '../ValidationContext';
6
+ /**
7
+ * Unique directive names per location
8
+ *
9
+ * A GraphQL document is only valid if all non-repeatable directives at
10
+ * a given location are uniquely named.
11
+ *
12
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location
13
+ */
14
+ export declare function UniqueDirectivesPerLocationRule(
15
+ context: ValidationContext | SDLValidationContext,
16
+ ): ASTVisitor;
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.UniqueDirectivesPerLocationRule = UniqueDirectivesPerLocationRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ var _kinds = require('../../language/kinds.js');
11
+
12
+ var _predicates = require('../../language/predicates.js');
13
+
14
+ var _directives = require('../../type/directives.js');
15
+
16
+ /**
17
+ * Unique directive names per location
18
+ *
19
+ * A GraphQL document is only valid if all non-repeatable directives at
20
+ * a given location are uniquely named.
21
+ *
22
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location
23
+ */
24
+ function UniqueDirectivesPerLocationRule(context) {
25
+ const uniqueDirectiveMap = Object.create(null);
26
+ const schema = context.getSchema();
27
+ const definedDirectives = schema
28
+ ? schema.getDirectives()
29
+ : _directives.specifiedDirectives;
30
+
31
+ for (const directive of definedDirectives) {
32
+ uniqueDirectiveMap[directive.name] = !directive.isRepeatable;
33
+ }
34
+
35
+ const astDefinitions = context.getDocument().definitions;
36
+
37
+ for (const def of astDefinitions) {
38
+ if (def.kind === _kinds.Kind.DIRECTIVE_DEFINITION) {
39
+ uniqueDirectiveMap[def.name.value] = !def.repeatable;
40
+ }
41
+ }
42
+
43
+ const schemaDirectives = Object.create(null);
44
+ const typeDirectivesMap = Object.create(null);
45
+ return {
46
+ // Many different AST nodes may contain directives. Rather than listing
47
+ // them all, just listen for entering any node, and check to see if it
48
+ // defines any directives.
49
+ enter(node) {
50
+ if (!('directives' in node) || !node.directives) {
51
+ return;
52
+ }
53
+
54
+ let seenDirectives;
55
+
56
+ if (
57
+ node.kind === _kinds.Kind.SCHEMA_DEFINITION ||
58
+ node.kind === _kinds.Kind.SCHEMA_EXTENSION
59
+ ) {
60
+ seenDirectives = schemaDirectives;
61
+ } else if (
62
+ (0, _predicates.isTypeDefinitionNode)(node) ||
63
+ (0, _predicates.isTypeExtensionNode)(node)
64
+ ) {
65
+ const typeName = node.name.value;
66
+ seenDirectives = typeDirectivesMap[typeName];
67
+
68
+ if (seenDirectives === undefined) {
69
+ typeDirectivesMap[typeName] = seenDirectives = Object.create(null);
70
+ }
71
+ } else {
72
+ seenDirectives = Object.create(null);
73
+ }
74
+
75
+ for (const directive of node.directives) {
76
+ const directiveName = directive.name.value;
77
+
78
+ if (uniqueDirectiveMap[directiveName]) {
79
+ if (seenDirectives[directiveName]) {
80
+ context.reportError(
81
+ new _GraphQLError.GraphQLError(
82
+ `The directive "@${directiveName}" can only be used once at this location.`,
83
+ [seenDirectives[directiveName], directive],
84
+ ),
85
+ );
86
+ } else {
87
+ seenDirectives[directiveName] = directive;
88
+ }
89
+ }
90
+ }
91
+ },
92
+ };
93
+ }
@@ -0,0 +1,83 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import { Kind } from '../../language/kinds.mjs';
3
+ import {
4
+ isTypeDefinitionNode,
5
+ isTypeExtensionNode,
6
+ } from '../../language/predicates.mjs';
7
+ import { specifiedDirectives } from '../../type/directives.mjs';
8
+
9
+ /**
10
+ * Unique directive names per location
11
+ *
12
+ * A GraphQL document is only valid if all non-repeatable directives at
13
+ * a given location are uniquely named.
14
+ *
15
+ * See https://spec.graphql.org/draft/#sec-Directives-Are-Unique-Per-Location
16
+ */
17
+ export function UniqueDirectivesPerLocationRule(context) {
18
+ const uniqueDirectiveMap = 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
+ uniqueDirectiveMap[directive.name] = !directive.isRepeatable;
26
+ }
27
+
28
+ const astDefinitions = context.getDocument().definitions;
29
+
30
+ for (const def of astDefinitions) {
31
+ if (def.kind === Kind.DIRECTIVE_DEFINITION) {
32
+ uniqueDirectiveMap[def.name.value] = !def.repeatable;
33
+ }
34
+ }
35
+
36
+ const schemaDirectives = Object.create(null);
37
+ const typeDirectivesMap = Object.create(null);
38
+ return {
39
+ // Many different AST nodes may contain directives. Rather than listing
40
+ // them all, just listen for entering any node, and check to see if it
41
+ // defines any directives.
42
+ enter(node) {
43
+ if (!('directives' in node) || !node.directives) {
44
+ return;
45
+ }
46
+
47
+ let seenDirectives;
48
+
49
+ if (
50
+ node.kind === Kind.SCHEMA_DEFINITION ||
51
+ node.kind === Kind.SCHEMA_EXTENSION
52
+ ) {
53
+ seenDirectives = schemaDirectives;
54
+ } else if (isTypeDefinitionNode(node) || isTypeExtensionNode(node)) {
55
+ const typeName = node.name.value;
56
+ seenDirectives = typeDirectivesMap[typeName];
57
+
58
+ if (seenDirectives === undefined) {
59
+ typeDirectivesMap[typeName] = seenDirectives = Object.create(null);
60
+ }
61
+ } else {
62
+ seenDirectives = Object.create(null);
63
+ }
64
+
65
+ for (const directive of node.directives) {
66
+ const directiveName = directive.name.value;
67
+
68
+ if (uniqueDirectiveMap[directiveName]) {
69
+ if (seenDirectives[directiveName]) {
70
+ context.reportError(
71
+ new GraphQLError(
72
+ `The directive "@${directiveName}" can only be used once at this location.`,
73
+ [seenDirectives[directiveName], directive],
74
+ ),
75
+ );
76
+ } else {
77
+ seenDirectives[directiveName] = directive;
78
+ }
79
+ }
80
+ }
81
+ },
82
+ };
83
+ }
@@ -0,0 +1,10 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { SDLValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Unique enum value names
5
+ *
6
+ * A GraphQL enum type is only valid if all its values are uniquely named.
7
+ */
8
+ export declare function UniqueEnumValueNamesRule(
9
+ context: SDLValidationContext,
10
+ ): ASTVisitor;
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.UniqueEnumValueNamesRule = UniqueEnumValueNamesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ var _definition = require('../../type/definition.js');
11
+
12
+ /**
13
+ * Unique enum value names
14
+ *
15
+ * A GraphQL enum type is only valid if all its values are uniquely named.
16
+ */
17
+ function UniqueEnumValueNamesRule(context) {
18
+ const schema = context.getSchema();
19
+ const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
20
+ const knownValueNames = Object.create(null);
21
+ return {
22
+ EnumTypeDefinition: checkValueUniqueness,
23
+ EnumTypeExtension: checkValueUniqueness,
24
+ };
25
+
26
+ function checkValueUniqueness(node) {
27
+ var _node$values;
28
+
29
+ const typeName = node.name.value;
30
+
31
+ if (!knownValueNames[typeName]) {
32
+ knownValueNames[typeName] = Object.create(null);
33
+ } // FIXME: https://github.com/graphql/graphql-js/issues/2203
34
+
35
+ /* c8 ignore next */
36
+
37
+ const valueNodes =
38
+ (_node$values = node.values) !== null && _node$values !== void 0
39
+ ? _node$values
40
+ : [];
41
+ const valueNames = knownValueNames[typeName];
42
+
43
+ for (const valueDef of valueNodes) {
44
+ const valueName = valueDef.name.value;
45
+ const existingType = existingTypeMap[typeName];
46
+
47
+ if (
48
+ (0, _definition.isEnumType)(existingType) &&
49
+ existingType.getValue(valueName)
50
+ ) {
51
+ context.reportError(
52
+ new _GraphQLError.GraphQLError(
53
+ `Enum value "${typeName}.${valueName}" already exists in the schema. It cannot also be defined in this type extension.`,
54
+ valueDef.name,
55
+ ),
56
+ );
57
+ } else if (valueNames[valueName]) {
58
+ context.reportError(
59
+ new _GraphQLError.GraphQLError(
60
+ `Enum value "${typeName}.${valueName}" can only be defined once.`,
61
+ [valueNames[valueName], valueDef.name],
62
+ ),
63
+ );
64
+ } else {
65
+ valueNames[valueName] = valueDef.name;
66
+ }
67
+ }
68
+
69
+ return false;
70
+ }
71
+ }
@@ -0,0 +1,60 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import { isEnumType } from '../../type/definition.mjs';
3
+
4
+ /**
5
+ * Unique enum value names
6
+ *
7
+ * A GraphQL enum type is only valid if all its values are uniquely named.
8
+ */
9
+ export function UniqueEnumValueNamesRule(context) {
10
+ const schema = context.getSchema();
11
+ const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
12
+ const knownValueNames = Object.create(null);
13
+ return {
14
+ EnumTypeDefinition: checkValueUniqueness,
15
+ EnumTypeExtension: checkValueUniqueness,
16
+ };
17
+
18
+ function checkValueUniqueness(node) {
19
+ var _node$values;
20
+
21
+ const typeName = node.name.value;
22
+
23
+ if (!knownValueNames[typeName]) {
24
+ knownValueNames[typeName] = Object.create(null);
25
+ } // FIXME: https://github.com/graphql/graphql-js/issues/2203
26
+
27
+ /* c8 ignore next */
28
+
29
+ const valueNodes =
30
+ (_node$values = node.values) !== null && _node$values !== void 0
31
+ ? _node$values
32
+ : [];
33
+ const valueNames = knownValueNames[typeName];
34
+
35
+ for (const valueDef of valueNodes) {
36
+ const valueName = valueDef.name.value;
37
+ const existingType = existingTypeMap[typeName];
38
+
39
+ if (isEnumType(existingType) && existingType.getValue(valueName)) {
40
+ context.reportError(
41
+ new GraphQLError(
42
+ `Enum value "${typeName}.${valueName}" already exists in the schema. It cannot also be defined in this type extension.`,
43
+ valueDef.name,
44
+ ),
45
+ );
46
+ } else if (valueNames[valueName]) {
47
+ context.reportError(
48
+ new GraphQLError(
49
+ `Enum value "${typeName}.${valueName}" can only be defined once.`,
50
+ [valueNames[valueName], valueDef.name],
51
+ ),
52
+ );
53
+ } else {
54
+ valueNames[valueName] = valueDef.name;
55
+ }
56
+ }
57
+
58
+ return false;
59
+ }
60
+ }
@@ -0,0 +1,10 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { SDLValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Unique field definition names
5
+ *
6
+ * A GraphQL complex type is only valid if all its fields are uniquely named.
7
+ */
8
+ export declare function UniqueFieldDefinitionNamesRule(
9
+ context: SDLValidationContext,
10
+ ): ASTVisitor;
@@ -0,0 +1,83 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.UniqueFieldDefinitionNamesRule = UniqueFieldDefinitionNamesRule;
7
+
8
+ var _GraphQLError = require('../../error/GraphQLError.js');
9
+
10
+ var _definition = require('../../type/definition.js');
11
+
12
+ /**
13
+ * Unique field definition names
14
+ *
15
+ * A GraphQL complex type is only valid if all its fields are uniquely named.
16
+ */
17
+ function UniqueFieldDefinitionNamesRule(context) {
18
+ const schema = context.getSchema();
19
+ const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
20
+ const knownFieldNames = Object.create(null);
21
+ return {
22
+ InputObjectTypeDefinition: checkFieldUniqueness,
23
+ InputObjectTypeExtension: checkFieldUniqueness,
24
+ InterfaceTypeDefinition: checkFieldUniqueness,
25
+ InterfaceTypeExtension: checkFieldUniqueness,
26
+ ObjectTypeDefinition: checkFieldUniqueness,
27
+ ObjectTypeExtension: checkFieldUniqueness,
28
+ };
29
+
30
+ function checkFieldUniqueness(node) {
31
+ var _node$fields;
32
+
33
+ const typeName = node.name.value;
34
+
35
+ if (!knownFieldNames[typeName]) {
36
+ knownFieldNames[typeName] = Object.create(null);
37
+ } // FIXME: https://github.com/graphql/graphql-js/issues/2203
38
+
39
+ /* c8 ignore next */
40
+
41
+ const fieldNodes =
42
+ (_node$fields = node.fields) !== null && _node$fields !== void 0
43
+ ? _node$fields
44
+ : [];
45
+ const fieldNames = knownFieldNames[typeName];
46
+
47
+ for (const fieldDef of fieldNodes) {
48
+ const fieldName = fieldDef.name.value;
49
+
50
+ if (hasField(existingTypeMap[typeName], fieldName)) {
51
+ context.reportError(
52
+ new _GraphQLError.GraphQLError(
53
+ `Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension.`,
54
+ fieldDef.name,
55
+ ),
56
+ );
57
+ } else if (fieldNames[fieldName]) {
58
+ context.reportError(
59
+ new _GraphQLError.GraphQLError(
60
+ `Field "${typeName}.${fieldName}" can only be defined once.`,
61
+ [fieldNames[fieldName], fieldDef.name],
62
+ ),
63
+ );
64
+ } else {
65
+ fieldNames[fieldName] = fieldDef.name;
66
+ }
67
+ }
68
+
69
+ return false;
70
+ }
71
+ }
72
+
73
+ function hasField(type, fieldName) {
74
+ if (
75
+ (0, _definition.isObjectType)(type) ||
76
+ (0, _definition.isInterfaceType)(type) ||
77
+ (0, _definition.isInputObjectType)(type)
78
+ ) {
79
+ return type.getFields()[fieldName] != null;
80
+ }
81
+
82
+ return false;
83
+ }
@@ -0,0 +1,75 @@
1
+ import { GraphQLError } from '../../error/GraphQLError.mjs';
2
+ import {
3
+ isInputObjectType,
4
+ isInterfaceType,
5
+ isObjectType,
6
+ } from '../../type/definition.mjs';
7
+
8
+ /**
9
+ * Unique field definition names
10
+ *
11
+ * A GraphQL complex type is only valid if all its fields are uniquely named.
12
+ */
13
+ export function UniqueFieldDefinitionNamesRule(context) {
14
+ const schema = context.getSchema();
15
+ const existingTypeMap = schema ? schema.getTypeMap() : Object.create(null);
16
+ const knownFieldNames = Object.create(null);
17
+ return {
18
+ InputObjectTypeDefinition: checkFieldUniqueness,
19
+ InputObjectTypeExtension: checkFieldUniqueness,
20
+ InterfaceTypeDefinition: checkFieldUniqueness,
21
+ InterfaceTypeExtension: checkFieldUniqueness,
22
+ ObjectTypeDefinition: checkFieldUniqueness,
23
+ ObjectTypeExtension: checkFieldUniqueness,
24
+ };
25
+
26
+ function checkFieldUniqueness(node) {
27
+ var _node$fields;
28
+
29
+ const typeName = node.name.value;
30
+
31
+ if (!knownFieldNames[typeName]) {
32
+ knownFieldNames[typeName] = Object.create(null);
33
+ } // FIXME: https://github.com/graphql/graphql-js/issues/2203
34
+
35
+ /* c8 ignore next */
36
+
37
+ const fieldNodes =
38
+ (_node$fields = node.fields) !== null && _node$fields !== void 0
39
+ ? _node$fields
40
+ : [];
41
+ const fieldNames = knownFieldNames[typeName];
42
+
43
+ for (const fieldDef of fieldNodes) {
44
+ const fieldName = fieldDef.name.value;
45
+
46
+ if (hasField(existingTypeMap[typeName], fieldName)) {
47
+ context.reportError(
48
+ new GraphQLError(
49
+ `Field "${typeName}.${fieldName}" already exists in the schema. It cannot also be defined in this type extension.`,
50
+ fieldDef.name,
51
+ ),
52
+ );
53
+ } else if (fieldNames[fieldName]) {
54
+ context.reportError(
55
+ new GraphQLError(
56
+ `Field "${typeName}.${fieldName}" can only be defined once.`,
57
+ [fieldNames[fieldName], fieldDef.name],
58
+ ),
59
+ );
60
+ } else {
61
+ fieldNames[fieldName] = fieldDef.name;
62
+ }
63
+ }
64
+
65
+ return false;
66
+ }
67
+ }
68
+
69
+ function hasField(type, fieldName) {
70
+ if (isObjectType(type) || isInterfaceType(type) || isInputObjectType(type)) {
71
+ return type.getFields()[fieldName] != null;
72
+ }
73
+
74
+ return false;
75
+ }
@@ -0,0 +1,12 @@
1
+ import type { ASTVisitor } from '../../language/visitor';
2
+ import type { ASTValidationContext } from '../ValidationContext';
3
+ /**
4
+ * Unique fragment names
5
+ *
6
+ * A GraphQL document is only valid if all defined fragments have unique names.
7
+ *
8
+ * See https://spec.graphql.org/draft/#sec-Fragment-Name-Uniqueness
9
+ */
10
+ export declare function UniqueFragmentNamesRule(
11
+ context: ASTValidationContext,
12
+ ): ASTVisitor;