graphql 16.13.2 → 16.14.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 (371) hide show
  1. package/error/GraphQLError.d.ts +151 -15
  2. package/error/GraphQLError.js +143 -12
  3. package/error/GraphQLError.mjs +143 -12
  4. package/error/index.d.ts +6 -0
  5. package/error/index.mjs +6 -0
  6. package/error/locatedError.d.ts +20 -0
  7. package/error/locatedError.js +21 -0
  8. package/error/locatedError.mjs +20 -0
  9. package/error/syntaxError.d.ts +15 -0
  10. package/error/syntaxError.js +16 -0
  11. package/error/syntaxError.mjs +15 -0
  12. package/execution/collectFields.js +6 -0
  13. package/execution/collectFields.mjs +6 -0
  14. package/execution/execute.d.ts +211 -12
  15. package/execution/execute.js +214 -23
  16. package/execution/execute.mjs +213 -23
  17. package/execution/index.d.ts +6 -0
  18. package/execution/index.mjs +6 -0
  19. package/execution/mapAsyncIterator.d.ts +2 -0
  20. package/execution/mapAsyncIterator.js +2 -0
  21. package/execution/mapAsyncIterator.mjs +2 -0
  22. package/execution/subscribe.d.ts +195 -5
  23. package/execution/subscribe.js +154 -11
  24. package/execution/subscribe.mjs +153 -11
  25. package/execution/values.d.ts +167 -10
  26. package/execution/values.js +149 -5
  27. package/execution/values.mjs +148 -5
  28. package/graphql.d.ts +163 -41
  29. package/graphql.js +126 -4
  30. package/graphql.mjs +131 -41
  31. package/index.d.ts +12 -17
  32. package/index.mjs +13 -19
  33. package/jsutils/Maybe.d.ts +5 -1
  34. package/jsutils/ObjMap.d.ts +4 -0
  35. package/jsutils/Path.d.ts +30 -0
  36. package/jsutils/Path.js +29 -0
  37. package/jsutils/Path.mjs +29 -0
  38. package/jsutils/PromiseOrValue.d.ts +1 -0
  39. package/jsutils/devAssert.d.ts +1 -0
  40. package/jsutils/devAssert.js +1 -0
  41. package/jsutils/devAssert.mjs +1 -0
  42. package/jsutils/didYouMean.d.ts +4 -1
  43. package/jsutils/didYouMean.js +4 -1
  44. package/jsutils/didYouMean.mjs +4 -1
  45. package/jsutils/groupBy.d.ts +2 -0
  46. package/jsutils/groupBy.js +2 -0
  47. package/jsutils/groupBy.mjs +2 -0
  48. package/jsutils/identityFunc.d.ts +2 -0
  49. package/jsutils/identityFunc.js +2 -0
  50. package/jsutils/identityFunc.mjs +2 -0
  51. package/jsutils/inspect.d.ts +2 -0
  52. package/jsutils/inspect.js +2 -0
  53. package/jsutils/inspect.mjs +2 -0
  54. package/jsutils/instanceOf.d.ts +2 -0
  55. package/jsutils/instanceOf.js +2 -0
  56. package/jsutils/instanceOf.mjs +2 -0
  57. package/jsutils/invariant.d.ts +1 -0
  58. package/jsutils/invariant.js +1 -0
  59. package/jsutils/invariant.mjs +1 -0
  60. package/jsutils/isAsyncIterable.d.ts +2 -0
  61. package/jsutils/isAsyncIterable.js +2 -0
  62. package/jsutils/isAsyncIterable.mjs +2 -0
  63. package/jsutils/isIterableObject.d.ts +6 -5
  64. package/jsutils/isIterableObject.js +6 -5
  65. package/jsutils/isIterableObject.mjs +6 -5
  66. package/jsutils/isObjectLike.d.ts +2 -0
  67. package/jsutils/isObjectLike.js +2 -0
  68. package/jsutils/isObjectLike.mjs +2 -0
  69. package/jsutils/isPromise.d.ts +2 -0
  70. package/jsutils/isPromise.js +2 -0
  71. package/jsutils/isPromise.mjs +2 -0
  72. package/jsutils/keyMap.d.ts +7 -14
  73. package/jsutils/keyMap.js +7 -14
  74. package/jsutils/keyMap.mjs +7 -14
  75. package/jsutils/keyValMap.d.ts +9 -6
  76. package/jsutils/keyValMap.js +9 -6
  77. package/jsutils/keyValMap.mjs +9 -6
  78. package/jsutils/mapValue.d.ts +2 -0
  79. package/jsutils/mapValue.js +2 -0
  80. package/jsutils/mapValue.mjs +2 -0
  81. package/jsutils/memoize3.d.ts +2 -0
  82. package/jsutils/memoize3.js +2 -0
  83. package/jsutils/memoize3.mjs +2 -0
  84. package/jsutils/naturalCompare.d.ts +2 -0
  85. package/jsutils/naturalCompare.js +2 -0
  86. package/jsutils/naturalCompare.mjs +2 -0
  87. package/jsutils/printPathArray.d.ts +2 -0
  88. package/jsutils/printPathArray.js +2 -0
  89. package/jsutils/printPathArray.mjs +2 -0
  90. package/jsutils/promiseForObject.d.ts +2 -0
  91. package/jsutils/promiseForObject.js +2 -0
  92. package/jsutils/promiseForObject.mjs +2 -0
  93. package/jsutils/promiseReduce.d.ts +2 -0
  94. package/jsutils/promiseReduce.js +2 -0
  95. package/jsutils/promiseReduce.mjs +2 -0
  96. package/jsutils/suggestionList.d.ts +2 -0
  97. package/jsutils/suggestionList.js +4 -0
  98. package/jsutils/suggestionList.mjs +4 -0
  99. package/jsutils/toError.d.ts +2 -0
  100. package/jsutils/toError.js +2 -0
  101. package/jsutils/toError.mjs +2 -0
  102. package/jsutils/toObjMap.d.ts +1 -0
  103. package/jsutils/toObjMap.js +1 -0
  104. package/jsutils/toObjMap.mjs +1 -0
  105. package/language/ast.d.ts +422 -55
  106. package/language/ast.js +103 -39
  107. package/language/ast.mjs +103 -39
  108. package/language/blockString.d.ts +1 -3
  109. package/language/blockString.js +1 -3
  110. package/language/blockString.mjs +1 -3
  111. package/language/directiveLocation.d.ts +29 -8
  112. package/language/directiveLocation.js +10 -6
  113. package/language/directiveLocation.mjs +10 -6
  114. package/language/index.d.ts +7 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +58 -18
  117. package/language/kinds.js +10 -6
  118. package/language/kinds.mjs +10 -6
  119. package/language/lexer.d.ts +47 -14
  120. package/language/lexer.js +71 -13
  121. package/language/lexer.mjs +70 -13
  122. package/language/location.d.ts +16 -3
  123. package/language/location.js +14 -3
  124. package/language/location.mjs +14 -3
  125. package/language/parser.d.ts +248 -11
  126. package/language/parser.js +257 -0
  127. package/language/parser.mjs +257 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +173 -1
  130. package/language/predicates.mjs +185 -1
  131. package/language/printLocation.d.ts +28 -0
  132. package/language/printLocation.js +29 -0
  133. package/language/printLocation.mjs +28 -0
  134. package/language/printString.d.ts +2 -0
  135. package/language/printString.js +5 -1
  136. package/language/printString.mjs +5 -1
  137. package/language/printer.d.ts +12 -0
  138. package/language/printer.js +32 -1
  139. package/language/printer.mjs +31 -1
  140. package/language/schemaCoordinateLexer.d.ts +8 -6
  141. package/language/schemaCoordinateLexer.js +10 -6
  142. package/language/schemaCoordinateLexer.mjs +10 -6
  143. package/language/source.d.ts +28 -0
  144. package/language/source.js +32 -0
  145. package/language/source.mjs +31 -0
  146. package/language/tokenKind.d.ts +30 -3
  147. package/language/tokenKind.js +8 -3
  148. package/language/tokenKind.mjs +8 -3
  149. package/language/visitor.d.ts +200 -72
  150. package/language/visitor.js +122 -50
  151. package/language/visitor.mjs +122 -54
  152. package/package.json +1 -1
  153. package/subscription/index.d.ts +9 -3
  154. package/subscription/index.mjs +9 -3
  155. package/type/assertName.d.ts +18 -1
  156. package/type/assertName.js +19 -1
  157. package/type/assertName.mjs +18 -1
  158. package/type/definition.d.ts +2540 -79
  159. package/type/definition.js +2214 -61
  160. package/type/definition.mjs +2241 -60
  161. package/type/directives.d.ts +202 -19
  162. package/type/directives.js +206 -20
  163. package/type/directives.mjs +206 -20
  164. package/type/index.d.ts +6 -0
  165. package/type/index.mjs +6 -0
  166. package/type/introspection.d.ts +36 -0
  167. package/type/introspection.js +57 -1
  168. package/type/introspection.mjs +65 -1
  169. package/type/scalars.d.ts +29 -2
  170. package/type/scalars.js +37 -2
  171. package/type/scalars.mjs +36 -2
  172. package/type/schema.d.ts +490 -28
  173. package/type/schema.js +484 -26
  174. package/type/schema.mjs +484 -26
  175. package/type/validate.d.ts +31 -0
  176. package/type/validate.js +32 -0
  177. package/type/validate.mjs +31 -0
  178. package/utilities/TypeInfo.d.ts +441 -1
  179. package/utilities/TypeInfo.js +444 -1
  180. package/utilities/TypeInfo.mjs +443 -1
  181. package/utilities/assertValidName.d.ts +27 -2
  182. package/utilities/assertValidName.js +28 -2
  183. package/utilities/assertValidName.mjs +27 -2
  184. package/utilities/astFromValue.d.ts +33 -3
  185. package/utilities/astFromValue.js +36 -3
  186. package/utilities/astFromValue.mjs +35 -3
  187. package/utilities/buildASTSchema.d.ts +65 -6
  188. package/utilities/buildASTSchema.js +69 -6
  189. package/utilities/buildASTSchema.mjs +69 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +17 -0
  192. package/utilities/buildClientSchema.mjs +16 -0
  193. package/utilities/coerceInputValue.d.ts +46 -0
  194. package/utilities/coerceInputValue.js +47 -0
  195. package/utilities/coerceInputValue.mjs +46 -0
  196. package/utilities/concatAST.d.ts +12 -0
  197. package/utilities/concatAST.js +13 -0
  198. package/utilities/concatAST.mjs +12 -0
  199. package/utilities/extendSchema.d.ts +56 -3
  200. package/utilities/extendSchema.js +121 -6
  201. package/utilities/extendSchema.mjs +120 -6
  202. package/utilities/findBreakingChanges.d.ts +95 -0
  203. package/utilities/findBreakingChanges.js +68 -0
  204. package/utilities/findBreakingChanges.mjs +70 -0
  205. package/utilities/getIntrospectionQuery.d.ts +148 -0
  206. package/utilities/getIntrospectionQuery.js +72 -38
  207. package/utilities/getIntrospectionQuery.mjs +72 -38
  208. package/utilities/getOperationAST.d.ts +15 -0
  209. package/utilities/getOperationAST.js +16 -0
  210. package/utilities/getOperationAST.mjs +15 -0
  211. package/utilities/getOperationRootType.d.ts +18 -1
  212. package/utilities/getOperationRootType.js +19 -1
  213. package/utilities/getOperationRootType.mjs +18 -1
  214. package/utilities/index.d.ts +7 -0
  215. package/utilities/index.mjs +7 -0
  216. package/utilities/introspectionFromSchema.d.ts +54 -0
  217. package/utilities/introspectionFromSchema.js +56 -0
  218. package/utilities/introspectionFromSchema.mjs +55 -0
  219. package/utilities/lexicographicSortSchema.d.ts +35 -0
  220. package/utilities/lexicographicSortSchema.js +36 -0
  221. package/utilities/lexicographicSortSchema.mjs +35 -0
  222. package/utilities/printSchema.d.ts +63 -0
  223. package/utilities/printSchema.js +67 -0
  224. package/utilities/printSchema.mjs +68 -0
  225. package/utilities/resolveSchemaCoordinate.d.ts +62 -0
  226. package/utilities/resolveSchemaCoordinate.js +64 -0
  227. package/utilities/resolveSchemaCoordinate.mjs +63 -0
  228. package/utilities/separateOperations.d.ts +30 -0
  229. package/utilities/separateOperations.js +31 -0
  230. package/utilities/separateOperations.mjs +30 -0
  231. package/utilities/stripIgnoredCharacters.d.ts +13 -6
  232. package/utilities/stripIgnoredCharacters.js +16 -6
  233. package/utilities/stripIgnoredCharacters.mjs +15 -6
  234. package/utilities/typeComparators.d.ts +84 -0
  235. package/utilities/typeComparators.js +85 -0
  236. package/utilities/typeComparators.mjs +84 -0
  237. package/utilities/typeFromAST.d.ts +86 -0
  238. package/utilities/typeFromAST.js +3 -0
  239. package/utilities/typeFromAST.mjs +3 -0
  240. package/utilities/typedQueryDocumentNode.d.ts +4 -0
  241. package/utilities/valueFromAST.d.ts +38 -0
  242. package/utilities/valueFromAST.js +51 -2
  243. package/utilities/valueFromAST.mjs +50 -2
  244. package/utilities/valueFromASTUntyped.d.ts +15 -2
  245. package/utilities/valueFromASTUntyped.js +16 -2
  246. package/utilities/valueFromASTUntyped.mjs +15 -2
  247. package/validation/ValidationContext.d.ts +399 -0
  248. package/validation/ValidationContext.js +400 -0
  249. package/validation/ValidationContext.mjs +401 -0
  250. package/validation/index.d.ts +6 -0
  251. package/validation/index.mjs +6 -0
  252. package/validation/rules/ExecutableDefinitionsRule.d.ts +28 -0
  253. package/validation/rules/ExecutableDefinitionsRule.js +29 -0
  254. package/validation/rules/ExecutableDefinitionsRule.mjs +28 -0
  255. package/validation/rules/FieldsOnCorrectTypeRule.d.ts +28 -0
  256. package/validation/rules/FieldsOnCorrectTypeRule.js +33 -0
  257. package/validation/rules/FieldsOnCorrectTypeRule.mjs +32 -0
  258. package/validation/rules/FragmentsOnCompositeTypesRule.d.ts +28 -0
  259. package/validation/rules/FragmentsOnCompositeTypesRule.js +29 -0
  260. package/validation/rules/FragmentsOnCompositeTypesRule.mjs +28 -0
  261. package/validation/rules/KnownArgumentNamesRule.d.ts +29 -3
  262. package/validation/rules/KnownArgumentNamesRule.js +30 -3
  263. package/validation/rules/KnownArgumentNamesRule.mjs +29 -3
  264. package/validation/rules/KnownDirectivesRule.d.ts +28 -0
  265. package/validation/rules/KnownDirectivesRule.js +33 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +32 -0
  267. package/validation/rules/KnownFragmentNamesRule.d.ts +28 -0
  268. package/validation/rules/KnownFragmentNamesRule.js +29 -0
  269. package/validation/rules/KnownFragmentNamesRule.mjs +28 -0
  270. package/validation/rules/KnownTypeNamesRule.d.ts +28 -0
  271. package/validation/rules/KnownTypeNamesRule.js +29 -0
  272. package/validation/rules/KnownTypeNamesRule.mjs +28 -0
  273. package/validation/rules/LoneAnonymousOperationRule.d.ts +28 -0
  274. package/validation/rules/LoneAnonymousOperationRule.js +29 -0
  275. package/validation/rules/LoneAnonymousOperationRule.mjs +28 -0
  276. package/validation/rules/LoneSchemaDefinitionRule.d.ts +21 -0
  277. package/validation/rules/LoneSchemaDefinitionRule.js +22 -0
  278. package/validation/rules/LoneSchemaDefinitionRule.mjs +21 -0
  279. package/validation/rules/MaxIntrospectionDepthRule.d.ts +31 -0
  280. package/validation/rules/MaxIntrospectionDepthRule.js +33 -0
  281. package/validation/rules/MaxIntrospectionDepthRule.mjs +34 -0
  282. package/validation/rules/NoFragmentCyclesRule.d.ts +28 -0
  283. package/validation/rules/NoFragmentCyclesRule.js +29 -0
  284. package/validation/rules/NoFragmentCyclesRule.mjs +28 -0
  285. package/validation/rules/NoUndefinedVariablesRule.d.ts +28 -0
  286. package/validation/rules/NoUndefinedVariablesRule.js +29 -0
  287. package/validation/rules/NoUndefinedVariablesRule.mjs +28 -0
  288. package/validation/rules/NoUnusedFragmentsRule.d.ts +28 -0
  289. package/validation/rules/NoUnusedFragmentsRule.js +29 -0
  290. package/validation/rules/NoUnusedFragmentsRule.mjs +28 -0
  291. package/validation/rules/NoUnusedVariablesRule.d.ts +29 -0
  292. package/validation/rules/NoUnusedVariablesRule.js +30 -0
  293. package/validation/rules/NoUnusedVariablesRule.mjs +29 -0
  294. package/validation/rules/OverlappingFieldsCanBeMergedRule.d.ts +33 -0
  295. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +45 -6
  296. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +45 -6
  297. package/validation/rules/PossibleFragmentSpreadsRule.d.ts +36 -0
  298. package/validation/rules/PossibleFragmentSpreadsRule.js +37 -0
  299. package/validation/rules/PossibleFragmentSpreadsRule.mjs +36 -0
  300. package/validation/rules/PossibleTypeExtensionsRule.d.ts +21 -0
  301. package/validation/rules/PossibleTypeExtensionsRule.js +22 -0
  302. package/validation/rules/PossibleTypeExtensionsRule.mjs +21 -0
  303. package/validation/rules/ProvidedRequiredArgumentsRule.d.ts +29 -3
  304. package/validation/rules/ProvidedRequiredArgumentsRule.js +30 -3
  305. package/validation/rules/ProvidedRequiredArgumentsRule.mjs +29 -3
  306. package/validation/rules/ScalarLeafsRule.d.ts +28 -0
  307. package/validation/rules/ScalarLeafsRule.js +29 -0
  308. package/validation/rules/ScalarLeafsRule.mjs +28 -0
  309. package/validation/rules/SingleFieldSubscriptionsRule.d.ts +33 -0
  310. package/validation/rules/SingleFieldSubscriptionsRule.js +34 -0
  311. package/validation/rules/SingleFieldSubscriptionsRule.mjs +33 -0
  312. package/validation/rules/UniqueArgumentDefinitionNamesRule.d.ts +21 -0
  313. package/validation/rules/UniqueArgumentDefinitionNamesRule.js +22 -0
  314. package/validation/rules/UniqueArgumentDefinitionNamesRule.mjs +21 -0
  315. package/validation/rules/UniqueArgumentNamesRule.d.ts +28 -0
  316. package/validation/rules/UniqueArgumentNamesRule.js +29 -0
  317. package/validation/rules/UniqueArgumentNamesRule.mjs +28 -0
  318. package/validation/rules/UniqueDirectiveNamesRule.d.ts +21 -0
  319. package/validation/rules/UniqueDirectiveNamesRule.js +22 -0
  320. package/validation/rules/UniqueDirectiveNamesRule.mjs +21 -0
  321. package/validation/rules/UniqueDirectivesPerLocationRule.d.ts +28 -0
  322. package/validation/rules/UniqueDirectivesPerLocationRule.js +41 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +40 -0
  324. package/validation/rules/UniqueEnumValueNamesRule.d.ts +21 -0
  325. package/validation/rules/UniqueEnumValueNamesRule.js +22 -0
  326. package/validation/rules/UniqueEnumValueNamesRule.mjs +21 -0
  327. package/validation/rules/UniqueFieldDefinitionNamesRule.d.ts +21 -0
  328. package/validation/rules/UniqueFieldDefinitionNamesRule.js +22 -0
  329. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +21 -0
  330. package/validation/rules/UniqueFragmentNamesRule.d.ts +28 -0
  331. package/validation/rules/UniqueFragmentNamesRule.js +29 -0
  332. package/validation/rules/UniqueFragmentNamesRule.mjs +28 -0
  333. package/validation/rules/UniqueInputFieldNamesRule.d.ts +32 -0
  334. package/validation/rules/UniqueInputFieldNamesRule.js +33 -0
  335. package/validation/rules/UniqueInputFieldNamesRule.mjs +32 -0
  336. package/validation/rules/UniqueOperationNamesRule.d.ts +28 -0
  337. package/validation/rules/UniqueOperationNamesRule.js +29 -0
  338. package/validation/rules/UniqueOperationNamesRule.mjs +28 -0
  339. package/validation/rules/UniqueOperationTypesRule.d.ts +21 -0
  340. package/validation/rules/UniqueOperationTypesRule.js +22 -0
  341. package/validation/rules/UniqueOperationTypesRule.mjs +21 -0
  342. package/validation/rules/UniqueTypeNamesRule.d.ts +21 -0
  343. package/validation/rules/UniqueTypeNamesRule.js +22 -0
  344. package/validation/rules/UniqueTypeNamesRule.mjs +21 -0
  345. package/validation/rules/UniqueVariableNamesRule.d.ts +28 -0
  346. package/validation/rules/UniqueVariableNamesRule.js +29 -0
  347. package/validation/rules/UniqueVariableNamesRule.mjs +28 -0
  348. package/validation/rules/ValuesOfCorrectTypeRule.d.ts +28 -0
  349. package/validation/rules/ValuesOfCorrectTypeRule.js +31 -0
  350. package/validation/rules/ValuesOfCorrectTypeRule.mjs +30 -0
  351. package/validation/rules/VariablesAreInputTypesRule.d.ts +32 -0
  352. package/validation/rules/VariablesAreInputTypesRule.js +33 -0
  353. package/validation/rules/VariablesAreInputTypesRule.mjs +32 -0
  354. package/validation/rules/VariablesInAllowedPositionRule.d.ts +28 -0
  355. package/validation/rules/VariablesInAllowedPositionRule.js +35 -1
  356. package/validation/rules/VariablesInAllowedPositionRule.mjs +34 -1
  357. package/validation/rules/custom/NoDeprecatedCustomRule.d.ts +41 -0
  358. package/validation/rules/custom/NoDeprecatedCustomRule.js +42 -0
  359. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +41 -0
  360. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.d.ts +28 -0
  361. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +29 -0
  362. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs +28 -0
  363. package/validation/specifiedRules.d.ts +2 -3
  364. package/validation/specifiedRules.js +2 -3
  365. package/validation/specifiedRules.mjs +2 -3
  366. package/validation/validate.d.ts +70 -9
  367. package/validation/validate.js +63 -7
  368. package/validation/validate.mjs +63 -7
  369. package/version.d.ts +3 -6
  370. package/version.js +7 -9
  371. package/version.mjs +6 -9
@@ -1,12 +1,40 @@
1
+ /** @category Source */
1
2
  import type { Location } from './ast';
2
3
  import type { SourceLocation } from './location';
3
4
  import type { Source } from './source';
4
5
  /**
5
6
  * Render a helpful description of the location in the GraphQL Source document.
7
+ * @param location - The AST location to print.
8
+ * @returns A formatted source excerpt with line and column information.
9
+ * @example
10
+ * ```ts
11
+ * import { parse, printLocation } from 'graphql/language';
12
+ *
13
+ * const document = parse('type Query { hello: String }');
14
+ * const location = document.definitions[0].loc;
15
+ *
16
+ * if (location) {
17
+ * const printed = printLocation(location);
18
+ *
19
+ * printed; // => 'GraphQL request:1:1\n1 | type Query { hello: String }\n | ^'
20
+ * }
21
+ * ```
6
22
  */
7
23
  export declare function printLocation(location: Location): string;
8
24
  /**
9
25
  * Render a helpful description of the location in the GraphQL Source document.
26
+ * @param source - The source document that contains the location.
27
+ * @param sourceLocation - The 1-indexed line and column to print.
28
+ * @returns A formatted source excerpt with line and column information.
29
+ * @example
30
+ * ```ts
31
+ * import { Source, printSourceLocation } from 'graphql/language';
32
+ *
33
+ * const source = new Source('type Query { hello: String }');
34
+ * const printed = printSourceLocation(source, { line: 1, column: 14 });
35
+ *
36
+ * printed; // => 'GraphQL request:1:14\n1 | type Query { hello: String }\n | ^'
37
+ * ```
10
38
  */
11
39
  export declare function printSourceLocation(
12
40
  source: Source,
@@ -8,8 +8,25 @@ exports.printSourceLocation = printSourceLocation;
8
8
 
9
9
  var _location = require('./location.js');
10
10
 
11
+ /** @category Source */
12
+
11
13
  /**
12
14
  * Render a helpful description of the location in the GraphQL Source document.
15
+ * @param location - The AST location to print.
16
+ * @returns A formatted source excerpt with line and column information.
17
+ * @example
18
+ * ```ts
19
+ * import { parse, printLocation } from 'graphql/language';
20
+ *
21
+ * const document = parse('type Query { hello: String }');
22
+ * const location = document.definitions[0].loc;
23
+ *
24
+ * if (location) {
25
+ * const printed = printLocation(location);
26
+ *
27
+ * printed; // => 'GraphQL request:1:1\n1 | type Query { hello: String }\n | ^'
28
+ * }
29
+ * ```
13
30
  */
14
31
  function printLocation(location) {
15
32
  return printSourceLocation(
@@ -19,6 +36,18 @@ function printLocation(location) {
19
36
  }
20
37
  /**
21
38
  * Render a helpful description of the location in the GraphQL Source document.
39
+ * @param source - The source document that contains the location.
40
+ * @param sourceLocation - The 1-indexed line and column to print.
41
+ * @returns A formatted source excerpt with line and column information.
42
+ * @example
43
+ * ```ts
44
+ * import { Source, printSourceLocation } from 'graphql/language';
45
+ *
46
+ * const source = new Source('type Query { hello: String }');
47
+ * const printed = printSourceLocation(source, { line: 1, column: 14 });
48
+ *
49
+ * printed; // => 'GraphQL request:1:14\n1 | type Query { hello: String }\n | ^'
50
+ * ```
22
51
  */
23
52
 
24
53
  function printSourceLocation(source, sourceLocation) {
@@ -1,7 +1,23 @@
1
+ /** @category Source */
1
2
  import { getLocation } from './location.mjs';
2
3
 
3
4
  /**
4
5
  * Render a helpful description of the location in the GraphQL Source document.
6
+ * @param location - The AST location to print.
7
+ * @returns A formatted source excerpt with line and column information.
8
+ * @example
9
+ * ```ts
10
+ * import { parse, printLocation } from 'graphql/language';
11
+ *
12
+ * const document = parse('type Query { hello: String }');
13
+ * const location = document.definitions[0].loc;
14
+ *
15
+ * if (location) {
16
+ * const printed = printLocation(location);
17
+ *
18
+ * printed; // => 'GraphQL request:1:1\n1 | type Query { hello: String }\n | ^'
19
+ * }
20
+ * ```
5
21
  */
6
22
  export function printLocation(location) {
7
23
  return printSourceLocation(
@@ -11,6 +27,18 @@ export function printLocation(location) {
11
27
  }
12
28
  /**
13
29
  * Render a helpful description of the location in the GraphQL Source document.
30
+ * @param source - The source document that contains the location.
31
+ * @param sourceLocation - The 1-indexed line and column to print.
32
+ * @returns A formatted source excerpt with line and column information.
33
+ * @example
34
+ * ```ts
35
+ * import { Source, printSourceLocation } from 'graphql/language';
36
+ *
37
+ * const source = new Source('type Query { hello: String }');
38
+ * const printed = printSourceLocation(source, { line: 1, column: 14 });
39
+ *
40
+ * printed; // => 'GraphQL request:1:14\n1 | type Query { hello: String }\n | ^'
41
+ * ```
14
42
  */
15
43
 
16
44
  export function printSourceLocation(source, sourceLocation) {
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * Prints a string as a GraphQL StringValue literal. Replaces control characters
3
3
  * and excluded characters (" U+0022 and \\ U+005C) with escape sequences.
4
+ *
5
+ * @internal
4
6
  */
5
7
  export declare function printString(str: string): string;
@@ -8,10 +8,14 @@ exports.printString = printString;
8
8
  /**
9
9
  * Prints a string as a GraphQL StringValue literal. Replaces control characters
10
10
  * and excluded characters (" U+0022 and \\ U+005C) with escape sequences.
11
+ *
12
+ * @internal
11
13
  */
12
14
  function printString(str) {
13
15
  return `"${str.replace(escapedRegExp, escapedReplacer)}"`;
14
- } // eslint-disable-next-line no-control-regex
16
+ }
17
+ /** @internal */
18
+ // eslint-disable-next-line no-control-regex
15
19
 
16
20
  const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
17
21
 
@@ -1,10 +1,14 @@
1
1
  /**
2
2
  * Prints a string as a GraphQL StringValue literal. Replaces control characters
3
3
  * and excluded characters (" U+0022 and \\ U+005C) with escape sequences.
4
+ *
5
+ * @internal
4
6
  */
5
7
  export function printString(str) {
6
8
  return `"${str.replace(escapedRegExp, escapedReplacer)}"`;
7
- } // eslint-disable-next-line no-control-regex
9
+ }
10
+ /** @internal */
11
+ // eslint-disable-next-line no-control-regex
8
12
 
9
13
  const escapedRegExp = /[\x00-\x1f\x22\x5c\x7f-\x9f]/g;
10
14
 
@@ -1,6 +1,18 @@
1
+ /** @category Printing */
1
2
  import type { ASTNode } from './ast';
2
3
  /**
3
4
  * Converts an AST into a string, using one set of reasonable
4
5
  * formatting rules.
6
+ * @param ast - The GraphQL AST node to print.
7
+ * @returns A stable string representation of the AST.
8
+ * @example
9
+ * ```ts
10
+ * import { parse, print } from 'graphql';
11
+ *
12
+ * const ast = parse('{ hero { name } }');
13
+ * const text = print(ast);
14
+ *
15
+ * text; // => '{\n hero {\n name\n }\n}'
16
+ * ```
5
17
  */
6
18
  export declare function print(ast: ASTNode): string;
@@ -11,9 +11,22 @@ var _printString = require('./printString.js');
11
11
 
12
12
  var _visitor = require('./visitor.js');
13
13
 
14
+ /** @category Printing */
15
+
14
16
  /**
15
17
  * Converts an AST into a string, using one set of reasonable
16
18
  * formatting rules.
19
+ * @param ast - The GraphQL AST node to print.
20
+ * @returns A stable string representation of the AST.
21
+ * @example
22
+ * ```ts
23
+ * import { parse, print } from 'graphql';
24
+ *
25
+ * const ast = parse('{ hero { name } }');
26
+ * const text = print(ast);
27
+ *
28
+ * text; // => '{\n hero {\n name\n }\n}'
29
+ * ```
17
30
  */
18
31
  function print(ast) {
19
32
  return (0, _visitor.visit)(ast, printDocASTReducer);
@@ -240,13 +253,21 @@ const printDocASTReducer = {
240
253
  join(['input', name, join(directives, ' '), block(fields)], ' '),
241
254
  },
242
255
  DirectiveDefinition: {
243
- leave: ({ description, name, arguments: args, repeatable, locations }) =>
256
+ leave: ({
257
+ description,
258
+ name,
259
+ arguments: args,
260
+ directives,
261
+ repeatable,
262
+ locations,
263
+ }) =>
244
264
  wrap('', description, '\n') +
245
265
  'directive @' +
246
266
  name +
247
267
  (hasMultilineItems(args)
248
268
  ? wrap('(\n', indent(join(args, '\n')), '\n)')
249
269
  : wrap('(', join(args, ', '), ')')) +
270
+ wrap(' ', join(directives, ' ')) +
250
271
  (repeatable ? ' repeatable' : '') +
251
272
  ' on ' +
252
273
  join(locations, ' | '),
@@ -308,6 +329,10 @@ const printDocASTReducer = {
308
329
  leave: ({ name, directives, fields }) =>
309
330
  join(['extend input', name, join(directives, ' '), block(fields)], ' '),
310
331
  },
332
+ DirectiveExtension: {
333
+ leave: ({ name, directives }) =>
334
+ join(['extend directive @' + name, join(directives, ' ')], ' '),
335
+ },
311
336
  // Schema Coordinates
312
337
  TypeCoordinate: {
313
338
  leave: ({ name }) => name,
@@ -330,6 +355,8 @@ const printDocASTReducer = {
330
355
  /**
331
356
  * Given maybeArray, print an empty string if it is null or empty, otherwise
332
357
  * print all items together separated by separator if provided
358
+ *
359
+ * @internal
333
360
  */
334
361
 
335
362
  function join(maybeArray, separator = '') {
@@ -345,6 +372,8 @@ function join(maybeArray, separator = '') {
345
372
  }
346
373
  /**
347
374
  * Given array, print each item on its own line, wrapped in an indented `{ }` block.
375
+ *
376
+ * @internal
348
377
  */
349
378
 
350
379
  function block(array) {
@@ -352,6 +381,8 @@ function block(array) {
352
381
  }
353
382
  /**
354
383
  * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
384
+ *
385
+ * @internal
355
386
  */
356
387
 
357
388
  function wrap(start, maybeString, end = '') {
@@ -1,9 +1,21 @@
1
+ /** @category Printing */
1
2
  import { printBlockString } from './blockString.mjs';
2
3
  import { printString } from './printString.mjs';
3
4
  import { visit } from './visitor.mjs';
4
5
  /**
5
6
  * Converts an AST into a string, using one set of reasonable
6
7
  * formatting rules.
8
+ * @param ast - The GraphQL AST node to print.
9
+ * @returns A stable string representation of the AST.
10
+ * @example
11
+ * ```ts
12
+ * import { parse, print } from 'graphql';
13
+ *
14
+ * const ast = parse('{ hero { name } }');
15
+ * const text = print(ast);
16
+ *
17
+ * text; // => '{\n hero {\n name\n }\n}'
18
+ * ```
7
19
  */
8
20
 
9
21
  export function print(ast) {
@@ -228,13 +240,21 @@ const printDocASTReducer = {
228
240
  join(['input', name, join(directives, ' '), block(fields)], ' '),
229
241
  },
230
242
  DirectiveDefinition: {
231
- leave: ({ description, name, arguments: args, repeatable, locations }) =>
243
+ leave: ({
244
+ description,
245
+ name,
246
+ arguments: args,
247
+ directives,
248
+ repeatable,
249
+ locations,
250
+ }) =>
232
251
  wrap('', description, '\n') +
233
252
  'directive @' +
234
253
  name +
235
254
  (hasMultilineItems(args)
236
255
  ? wrap('(\n', indent(join(args, '\n')), '\n)')
237
256
  : wrap('(', join(args, ', '), ')')) +
257
+ wrap(' ', join(directives, ' ')) +
238
258
  (repeatable ? ' repeatable' : '') +
239
259
  ' on ' +
240
260
  join(locations, ' | '),
@@ -296,6 +316,10 @@ const printDocASTReducer = {
296
316
  leave: ({ name, directives, fields }) =>
297
317
  join(['extend input', name, join(directives, ' '), block(fields)], ' '),
298
318
  },
319
+ DirectiveExtension: {
320
+ leave: ({ name, directives }) =>
321
+ join(['extend directive @' + name, join(directives, ' ')], ' '),
322
+ },
299
323
  // Schema Coordinates
300
324
  TypeCoordinate: {
301
325
  leave: ({ name }) => name,
@@ -318,6 +342,8 @@ const printDocASTReducer = {
318
342
  /**
319
343
  * Given maybeArray, print an empty string if it is null or empty, otherwise
320
344
  * print all items together separated by separator if provided
345
+ *
346
+ * @internal
321
347
  */
322
348
 
323
349
  function join(maybeArray, separator = '') {
@@ -333,6 +359,8 @@ function join(maybeArray, separator = '') {
333
359
  }
334
360
  /**
335
361
  * Given array, print each item on its own line, wrapped in an indented `{ }` block.
362
+ *
363
+ * @internal
336
364
  */
337
365
 
338
366
  function block(array) {
@@ -340,6 +368,8 @@ function block(array) {
340
368
  }
341
369
  /**
342
370
  * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.
371
+ *
372
+ * @internal
343
373
  */
344
374
 
345
375
  function wrap(start, maybeString, end = '') {
@@ -8,16 +8,14 @@ import type { Source } from './source';
8
8
  * source lexes, the final Token emitted by the lexer will be of kind
9
9
  * EOF, after which the lexer will repeatedly return the same EOF token
10
10
  * whenever called.
11
+ *
12
+ * @internal
11
13
  */
12
14
  export declare class SchemaCoordinateLexer implements LexerInterface {
13
15
  source: Source;
14
- /**
15
- * The previously focused non-ignored token.
16
- */
16
+ /** The previously focused non-ignored token. */
17
17
  lastToken: Token;
18
- /**
19
- * The currently focused non-ignored token.
20
- */
18
+ /** The currently focused non-ignored token. */
21
19
  token: Token;
22
20
  /**
23
21
  * The (1-indexed) line containing the current token.
@@ -33,11 +31,15 @@ export declare class SchemaCoordinateLexer implements LexerInterface {
33
31
  get [Symbol.toStringTag](): string;
34
32
  /**
35
33
  * Advances the token stream to the next non-ignored token.
34
+ *
35
+ * @internal
36
36
  */
37
37
  advance(): Token;
38
38
  /**
39
39
  * Looks ahead and returns the next non-ignored token, but does not change
40
40
  * the current Lexer token.
41
+ *
42
+ * @internal
41
43
  */
42
44
  lookahead(): Token;
43
45
  }
@@ -22,15 +22,13 @@ var _tokenKind = require('./tokenKind.js');
22
22
  * source lexes, the final Token emitted by the lexer will be of kind
23
23
  * EOF, after which the lexer will repeatedly return the same EOF token
24
24
  * whenever called.
25
+ *
26
+ * @internal
25
27
  */
26
28
  class SchemaCoordinateLexer {
27
- /**
28
- * The previously focused non-ignored token.
29
- */
29
+ /** The previously focused non-ignored token. */
30
30
 
31
- /**
32
- * The currently focused non-ignored token.
33
- */
31
+ /** The currently focused non-ignored token. */
34
32
 
35
33
  /**
36
34
  * The (1-indexed) line containing the current token.
@@ -62,6 +60,8 @@ class SchemaCoordinateLexer {
62
60
  }
63
61
  /**
64
62
  * Advances the token stream to the next non-ignored token.
63
+ *
64
+ * @internal
65
65
  */
66
66
 
67
67
  advance() {
@@ -72,6 +72,8 @@ class SchemaCoordinateLexer {
72
72
  /**
73
73
  * Looks ahead and returns the next non-ignored token, but does not change
74
74
  * the current Lexer token.
75
+ *
76
+ * @internal
75
77
  */
76
78
 
77
79
  lookahead() {
@@ -92,6 +94,8 @@ class SchemaCoordinateLexer {
92
94
  }
93
95
  /**
94
96
  * Gets the next token from the source starting at the given position.
97
+ *
98
+ * @internal
95
99
  */
96
100
 
97
101
  exports.SchemaCoordinateLexer = SchemaCoordinateLexer;
@@ -10,16 +10,14 @@ import { TokenKind } from './tokenKind.mjs';
10
10
  * source lexes, the final Token emitted by the lexer will be of kind
11
11
  * EOF, after which the lexer will repeatedly return the same EOF token
12
12
  * whenever called.
13
+ *
14
+ * @internal
13
15
  */
14
16
 
15
17
  export class SchemaCoordinateLexer {
16
- /**
17
- * The previously focused non-ignored token.
18
- */
18
+ /** The previously focused non-ignored token. */
19
19
 
20
- /**
21
- * The currently focused non-ignored token.
22
- */
20
+ /** The currently focused non-ignored token. */
23
21
 
24
22
  /**
25
23
  * The (1-indexed) line containing the current token.
@@ -45,6 +43,8 @@ export class SchemaCoordinateLexer {
45
43
  }
46
44
  /**
47
45
  * Advances the token stream to the next non-ignored token.
46
+ *
47
+ * @internal
48
48
  */
49
49
 
50
50
  advance() {
@@ -55,6 +55,8 @@ export class SchemaCoordinateLexer {
55
55
  /**
56
56
  * Looks ahead and returns the next non-ignored token, but does not change
57
57
  * the current Lexer token.
58
+ *
59
+ * @internal
58
60
  */
59
61
 
60
62
  lookahead() {
@@ -75,6 +77,8 @@ export class SchemaCoordinateLexer {
75
77
  }
76
78
  /**
77
79
  * Gets the next token from the source starting at the given position.
80
+ *
81
+ * @internal
78
82
  */
79
83
 
80
84
  function readNextToken(lexer, start) {
@@ -1,3 +1,4 @@
1
+ /** @category Source */
1
2
  interface Location {
2
3
  line: number;
3
4
  column: number;
@@ -10,10 +11,37 @@ interface Location {
10
11
  * The `line` and `column` properties in `locationOffset` are 1-indexed.
11
12
  */
12
13
  export declare class Source {
14
+ /** The GraphQL source text. */
13
15
  body: string;
16
+ /** Name used in diagnostics for this source, such as a file path or request name. */
14
17
  name: string;
18
+ /** One-indexed line and column where this source begins. */
15
19
  locationOffset: Location;
20
+ /**
21
+ * Creates a Source instance.
22
+ * @param body - The GraphQL source text.
23
+ * @param name - Name used in diagnostics for this source.
24
+ * @param locationOffset - One-indexed line and column where this source begins.
25
+ * @example
26
+ * ```ts
27
+ * import { Source } from 'graphql/language';
28
+ *
29
+ * const source = new Source(
30
+ * 'type Query { greeting: String }',
31
+ * 'schema.graphql',
32
+ * { line: 10, column: 1 },
33
+ * );
34
+ *
35
+ * source.body; // => 'type Query { greeting: String }'
36
+ * source.name; // => 'schema.graphql'
37
+ * source.locationOffset; // => { line: 10, column: 1 }
38
+ * ```
39
+ */
16
40
  constructor(body: string, name?: string, locationOffset?: Location);
41
+ /**
42
+ * Returns the value used by `Object.prototype.toString`.
43
+ * @returns The built-in string tag for this object.
44
+ */
17
45
  get [Symbol.toStringTag](): string;
18
46
  }
19
47
  /**
@@ -12,6 +12,8 @@ var _inspect = require('../jsutils/inspect.js');
12
12
 
13
13
  var _instanceOf = require('../jsutils/instanceOf.js');
14
14
 
15
+ /** @category Source */
16
+
15
17
  /**
16
18
  * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are
17
19
  * optional, but they are useful for clients who store GraphQL documents in source files.
@@ -20,6 +22,32 @@ var _instanceOf = require('../jsutils/instanceOf.js');
20
22
  * The `line` and `column` properties in `locationOffset` are 1-indexed.
21
23
  */
22
24
  class Source {
25
+ /** The GraphQL source text. */
26
+
27
+ /** Name used in diagnostics for this source, such as a file path or request name. */
28
+
29
+ /** One-indexed line and column where this source begins. */
30
+
31
+ /**
32
+ * Creates a Source instance.
33
+ * @param body - The GraphQL source text.
34
+ * @param name - Name used in diagnostics for this source.
35
+ * @param locationOffset - One-indexed line and column where this source begins.
36
+ * @example
37
+ * ```ts
38
+ * import { Source } from 'graphql/language';
39
+ *
40
+ * const source = new Source(
41
+ * 'type Query { greeting: String }',
42
+ * 'schema.graphql',
43
+ * { line: 10, column: 1 },
44
+ * );
45
+ *
46
+ * source.body; // => 'type Query { greeting: String }'
47
+ * source.name; // => 'schema.graphql'
48
+ * source.locationOffset; // => { line: 10, column: 1 }
49
+ * ```
50
+ */
23
51
  constructor(
24
52
  body,
25
53
  name = 'GraphQL request',
@@ -47,6 +75,10 @@ class Source {
47
75
  'column in locationOffset is 1-indexed and must be positive.',
48
76
  );
49
77
  }
78
+ /**
79
+ * Returns the value used by `Object.prototype.toString`.
80
+ * @returns The built-in string tag for this object.
81
+ */
50
82
 
51
83
  get [Symbol.toStringTag]() {
52
84
  return 'Source';
@@ -1,3 +1,4 @@
1
+ /** @category Source */
1
2
  import { devAssert } from '../jsutils/devAssert.mjs';
2
3
  import { inspect } from '../jsutils/inspect.mjs';
3
4
  import { instanceOf } from '../jsutils/instanceOf.mjs';
@@ -10,6 +11,32 @@ import { instanceOf } from '../jsutils/instanceOf.mjs';
10
11
  * The `line` and `column` properties in `locationOffset` are 1-indexed.
11
12
  */
12
13
  export class Source {
14
+ /** The GraphQL source text. */
15
+
16
+ /** Name used in diagnostics for this source, such as a file path or request name. */
17
+
18
+ /** One-indexed line and column where this source begins. */
19
+
20
+ /**
21
+ * Creates a Source instance.
22
+ * @param body - The GraphQL source text.
23
+ * @param name - Name used in diagnostics for this source.
24
+ * @param locationOffset - One-indexed line and column where this source begins.
25
+ * @example
26
+ * ```ts
27
+ * import { Source } from 'graphql/language';
28
+ *
29
+ * const source = new Source(
30
+ * 'type Query { greeting: String }',
31
+ * 'schema.graphql',
32
+ * { line: 10, column: 1 },
33
+ * );
34
+ *
35
+ * source.body; // => 'type Query { greeting: String }'
36
+ * source.name; // => 'schema.graphql'
37
+ * source.locationOffset; // => { line: 10, column: 1 }
38
+ * ```
39
+ */
13
40
  constructor(
14
41
  body,
15
42
  name = 'GraphQL request',
@@ -34,6 +61,10 @@ export class Source {
34
61
  'column in locationOffset is 1-indexed and must be positive.',
35
62
  );
36
63
  }
64
+ /**
65
+ * Returns the value used by `Object.prototype.toString`.
66
+ * @returns The built-in string tag for this object.
67
+ */
37
68
 
38
69
  get [Symbol.toStringTag]() {
39
70
  return 'Source';