graphql 16.14.0 → 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 +11 -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 +412 -54
  106. package/language/ast.js +95 -38
  107. package/language/ast.mjs +95 -38
  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 +28 -8
  112. package/language/directiveLocation.js +9 -6
  113. package/language/directiveLocation.mjs +9 -6
  114. package/language/index.d.ts +6 -0
  115. package/language/index.mjs +6 -0
  116. package/language/kinds.d.ts +57 -18
  117. package/language/kinds.js +9 -6
  118. package/language/kinds.mjs +9 -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 +236 -13
  126. package/language/parser.js +224 -0
  127. package/language/parser.mjs +224 -3
  128. package/language/predicates.d.ts +169 -0
  129. package/language/predicates.js +170 -0
  130. package/language/predicates.mjs +180 -0
  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 +19 -0
  139. package/language/printer.mjs +18 -0
  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 +193 -18
  162. package/type/directives.js +196 -19
  163. package/type/directives.mjs +196 -19
  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 +33 -0
  168. package/type/introspection.mjs +41 -0
  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 +65 -6
  189. package/utilities/buildASTSchema.mjs +65 -6
  190. package/utilities/buildClientSchema.d.ts +15 -0
  191. package/utilities/buildClientSchema.js +16 -0
  192. package/utilities/buildClientSchema.mjs +15 -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 +63 -3
  201. package/utilities/extendSchema.mjs +62 -3
  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 +132 -0
  206. package/utilities/getIntrospectionQuery.js +41 -0
  207. package/utilities/getIntrospectionQuery.mjs +41 -0
  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 +55 -0
  218. package/utilities/introspectionFromSchema.mjs +54 -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 +66 -0
  224. package/utilities/printSchema.mjs +67 -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 +39 -0
  243. package/utilities/valueFromAST.mjs +38 -0
  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 +29 -0
  266. package/validation/rules/KnownDirectivesRule.mjs +28 -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 +29 -0
  323. package/validation/rules/UniqueDirectivesPerLocationRule.mjs +28 -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 +6 -8
  371. package/version.mjs +5 -8
@@ -1,3 +1,10 @@
1
+ /**
2
+ * Utilities for building schemas, working with introspection, transforming ASTs,
3
+ * and comparing GraphQL types.
4
+ *
5
+ * These exports are also available from the root `graphql` package.
6
+ * @packageDocumentation
7
+ */
1
8
  // Produce the GraphQL query recommended for a full schema introspection.
2
9
  export { getIntrospectionQuery } from './getIntrospectionQuery.mjs';
3
10
  // Gets the target Operation from a Document.
@@ -1,3 +1,4 @@
1
+ /** @category Introspection */
1
2
  import type { GraphQLSchema } from '../type/schema';
2
3
  import type {
3
4
  IntrospectionOptions,
@@ -11,6 +12,59 @@ import type {
11
12
  *
12
13
  * This is the inverse of buildClientSchema. The primary use case is outside
13
14
  * of the server context, for instance when doing schema comparisons.
15
+ * @param schema - GraphQL schema to use.
16
+ * @param options - Optional configuration for this operation.
17
+ * @returns Introspection result data for the schema.
18
+ * @example
19
+ * ```ts
20
+ * // Include schema metadata using the default introspection options.
21
+ * import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
22
+ *
23
+ * const schema = buildSchema(`
24
+ * scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
25
+ *
26
+ * type Query {
27
+ * homepage: Url
28
+ * }
29
+ * `);
30
+ *
31
+ * const introspection = introspectionFromSchema(schema);
32
+ * const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
33
+ *
34
+ * urlType.specifiedByURL; // => 'https://url.spec.whatwg.org/'
35
+ * ```
36
+ * @example
37
+ * ```ts
38
+ * // This variant disables optional introspection metadata.
39
+ * import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
40
+ *
41
+ * const schema = buildSchema(`
42
+ * scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
43
+ *
44
+ * type Query {
45
+ * homepage: Url
46
+ * }
47
+ * `);
48
+ *
49
+ * const introspection = introspectionFromSchema(schema, {
50
+ * descriptions: false,
51
+ * specifiedByUrl: false,
52
+ * directiveIsRepeatable: false,
53
+ * schemaDescription: false,
54
+ * inputValueDeprecation: false,
55
+ * experimentalDirectiveDeprecation: false,
56
+ * oneOf: false,
57
+ * });
58
+ * const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
59
+ * const deprecatedDirective = introspection.__schema.directives.find(
60
+ * (directive) => directive.name === 'deprecated',
61
+ * );
62
+ *
63
+ * urlType.specifiedByURL; // => undefined
64
+ * urlType.description; // => undefined
65
+ * introspection.__schema.description; // => undefined
66
+ * deprecatedDirective.isRepeatable; // => undefined
67
+ * ```
14
68
  */
15
69
  export declare function introspectionFromSchema(
16
70
  schema: GraphQLSchema,
@@ -13,6 +13,8 @@ var _execute = require('../execution/execute.js');
13
13
 
14
14
  var _getIntrospectionQuery = require('./getIntrospectionQuery.js');
15
15
 
16
+ /** @category Introspection */
17
+
16
18
  /**
17
19
  * Build an IntrospectionQuery from a GraphQLSchema
18
20
  *
@@ -21,6 +23,59 @@ var _getIntrospectionQuery = require('./getIntrospectionQuery.js');
21
23
  *
22
24
  * This is the inverse of buildClientSchema. The primary use case is outside
23
25
  * of the server context, for instance when doing schema comparisons.
26
+ * @param schema - GraphQL schema to use.
27
+ * @param options - Optional configuration for this operation.
28
+ * @returns Introspection result data for the schema.
29
+ * @example
30
+ * ```ts
31
+ * // Include schema metadata using the default introspection options.
32
+ * import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
33
+ *
34
+ * const schema = buildSchema(`
35
+ * scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
36
+ *
37
+ * type Query {
38
+ * homepage: Url
39
+ * }
40
+ * `);
41
+ *
42
+ * const introspection = introspectionFromSchema(schema);
43
+ * const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
44
+ *
45
+ * urlType.specifiedByURL; // => 'https://url.spec.whatwg.org/'
46
+ * ```
47
+ * @example
48
+ * ```ts
49
+ * // This variant disables optional introspection metadata.
50
+ * import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
51
+ *
52
+ * const schema = buildSchema(`
53
+ * scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
54
+ *
55
+ * type Query {
56
+ * homepage: Url
57
+ * }
58
+ * `);
59
+ *
60
+ * const introspection = introspectionFromSchema(schema, {
61
+ * descriptions: false,
62
+ * specifiedByUrl: false,
63
+ * directiveIsRepeatable: false,
64
+ * schemaDescription: false,
65
+ * inputValueDeprecation: false,
66
+ * experimentalDirectiveDeprecation: false,
67
+ * oneOf: false,
68
+ * });
69
+ * const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
70
+ * const deprecatedDirective = introspection.__schema.directives.find(
71
+ * (directive) => directive.name === 'deprecated',
72
+ * );
73
+ *
74
+ * urlType.specifiedByURL; // => undefined
75
+ * urlType.description; // => undefined
76
+ * introspection.__schema.description; // => undefined
77
+ * deprecatedDirective.isRepeatable; // => undefined
78
+ * ```
24
79
  */
25
80
  function introspectionFromSchema(schema, options) {
26
81
  const optionsWithDefaults = {
@@ -1,3 +1,4 @@
1
+ /** @category Introspection */
1
2
  import { invariant } from '../jsutils/invariant.mjs';
2
3
  import { parse } from '../language/parser.mjs';
3
4
  import { executeSync } from '../execution/execute.mjs';
@@ -10,6 +11,59 @@ import { getIntrospectionQuery } from './getIntrospectionQuery.mjs';
10
11
  *
11
12
  * This is the inverse of buildClientSchema. The primary use case is outside
12
13
  * of the server context, for instance when doing schema comparisons.
14
+ * @param schema - GraphQL schema to use.
15
+ * @param options - Optional configuration for this operation.
16
+ * @returns Introspection result data for the schema.
17
+ * @example
18
+ * ```ts
19
+ * // Include schema metadata using the default introspection options.
20
+ * import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
21
+ *
22
+ * const schema = buildSchema(`
23
+ * scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
24
+ *
25
+ * type Query {
26
+ * homepage: Url
27
+ * }
28
+ * `);
29
+ *
30
+ * const introspection = introspectionFromSchema(schema);
31
+ * const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
32
+ *
33
+ * urlType.specifiedByURL; // => 'https://url.spec.whatwg.org/'
34
+ * ```
35
+ * @example
36
+ * ```ts
37
+ * // This variant disables optional introspection metadata.
38
+ * import { buildSchema, introspectionFromSchema } from 'graphql/utilities';
39
+ *
40
+ * const schema = buildSchema(`
41
+ * scalar Url @specifiedBy(url: "https://url.spec.whatwg.org/")
42
+ *
43
+ * type Query {
44
+ * homepage: Url
45
+ * }
46
+ * `);
47
+ *
48
+ * const introspection = introspectionFromSchema(schema, {
49
+ * descriptions: false,
50
+ * specifiedByUrl: false,
51
+ * directiveIsRepeatable: false,
52
+ * schemaDescription: false,
53
+ * inputValueDeprecation: false,
54
+ * experimentalDirectiveDeprecation: false,
55
+ * oneOf: false,
56
+ * });
57
+ * const urlType = introspection.__schema.types.find((type) => type.name === 'Url');
58
+ * const deprecatedDirective = introspection.__schema.directives.find(
59
+ * (directive) => directive.name === 'deprecated',
60
+ * );
61
+ *
62
+ * urlType.specifiedByURL; // => undefined
63
+ * urlType.description; // => undefined
64
+ * introspection.__schema.description; // => undefined
65
+ * deprecatedDirective.isRepeatable; // => undefined
66
+ * ```
13
67
  */
14
68
 
15
69
  export function introspectionFromSchema(schema, options) {
@@ -1,8 +1,43 @@
1
+ /** @category Schema Construction */
1
2
  import { GraphQLSchema } from '../type/schema';
2
3
  /**
3
4
  * Sort GraphQLSchema.
4
5
  *
5
6
  * This function returns a sorted copy of the given GraphQLSchema.
7
+ * @param schema - GraphQL schema to use.
8
+ * @returns A copy of the schema with types, fields, arguments, and values sorted lexicographically.
9
+ * @example
10
+ * ```ts
11
+ * import { buildSchema, lexicographicSortSchema, printSchema } from 'graphql/utilities';
12
+ *
13
+ * const schema = buildSchema(`
14
+ * type Query {
15
+ * zebra: String
16
+ * apple: String
17
+ * }
18
+ *
19
+ * enum Episode {
20
+ * JEDI
21
+ * NEW_HOPE
22
+ * EMPIRE
23
+ * }
24
+ * `);
25
+ *
26
+ * const sortedSchema = lexicographicSortSchema(schema);
27
+ *
28
+ * printSchema(sortedSchema);
29
+ * // =>
30
+ * // enum Episode {
31
+ * // EMPIRE
32
+ * // JEDI
33
+ * // NEW_HOPE
34
+ * // }
35
+ * //
36
+ * // type Query {
37
+ * // apple: String
38
+ * // zebra: String
39
+ * // }
40
+ * ```
6
41
  */
7
42
  export declare function lexicographicSortSchema(
8
43
  schema: GraphQLSchema,
@@ -21,10 +21,46 @@ var _introspection = require('../type/introspection.js');
21
21
 
22
22
  var _schema = require('../type/schema.js');
23
23
 
24
+ /** @category Schema Construction */
25
+
24
26
  /**
25
27
  * Sort GraphQLSchema.
26
28
  *
27
29
  * This function returns a sorted copy of the given GraphQLSchema.
30
+ * @param schema - GraphQL schema to use.
31
+ * @returns A copy of the schema with types, fields, arguments, and values sorted lexicographically.
32
+ * @example
33
+ * ```ts
34
+ * import { buildSchema, lexicographicSortSchema, printSchema } from 'graphql/utilities';
35
+ *
36
+ * const schema = buildSchema(`
37
+ * type Query {
38
+ * zebra: String
39
+ * apple: String
40
+ * }
41
+ *
42
+ * enum Episode {
43
+ * JEDI
44
+ * NEW_HOPE
45
+ * EMPIRE
46
+ * }
47
+ * `);
48
+ *
49
+ * const sortedSchema = lexicographicSortSchema(schema);
50
+ *
51
+ * printSchema(sortedSchema);
52
+ * // =>
53
+ * // enum Episode {
54
+ * // EMPIRE
55
+ * // JEDI
56
+ * // NEW_HOPE
57
+ * // }
58
+ * //
59
+ * // type Query {
60
+ * // apple: String
61
+ * // zebra: String
62
+ * // }
63
+ * ```
28
64
  */
29
65
  function lexicographicSortSchema(schema) {
30
66
  const schemaConfig = schema.toConfig();
@@ -1,3 +1,4 @@
1
+ /** @category Schema Construction */
1
2
  import { inspect } from '../jsutils/inspect.mjs';
2
3
  import { invariant } from '../jsutils/invariant.mjs';
3
4
  import { keyValMap } from '../jsutils/keyValMap.mjs';
@@ -26,6 +27,40 @@ import { GraphQLSchema } from '../type/schema.mjs';
26
27
  * Sort GraphQLSchema.
27
28
  *
28
29
  * This function returns a sorted copy of the given GraphQLSchema.
30
+ * @param schema - GraphQL schema to use.
31
+ * @returns A copy of the schema with types, fields, arguments, and values sorted lexicographically.
32
+ * @example
33
+ * ```ts
34
+ * import { buildSchema, lexicographicSortSchema, printSchema } from 'graphql/utilities';
35
+ *
36
+ * const schema = buildSchema(`
37
+ * type Query {
38
+ * zebra: String
39
+ * apple: String
40
+ * }
41
+ *
42
+ * enum Episode {
43
+ * JEDI
44
+ * NEW_HOPE
45
+ * EMPIRE
46
+ * }
47
+ * `);
48
+ *
49
+ * const sortedSchema = lexicographicSortSchema(schema);
50
+ *
51
+ * printSchema(sortedSchema);
52
+ * // =>
53
+ * // enum Episode {
54
+ * // EMPIRE
55
+ * // JEDI
56
+ * // NEW_HOPE
57
+ * // }
58
+ * //
59
+ * // type Query {
60
+ * // apple: String
61
+ * // zebra: String
62
+ * // }
63
+ * ```
29
64
  */
30
65
 
31
66
  export function lexicographicSortSchema(schema) {
@@ -1,5 +1,68 @@
1
+ /** @category Schema Printing */
1
2
  import type { GraphQLNamedType } from '../type/definition';
2
3
  import type { GraphQLSchema } from '../type/schema';
4
+ /**
5
+ * Prints the schema.
6
+ * @param schema - GraphQL schema to use.
7
+ * @returns The printed string representation.
8
+ * @example
9
+ * ```ts
10
+ * import { buildSchema, printSchema } from 'graphql/utilities';
11
+ *
12
+ * const schema = buildSchema(`
13
+ * directive @upper on FIELD_DEFINITION
14
+ *
15
+ * type Query {
16
+ * greeting: String @upper
17
+ * }
18
+ * `);
19
+ *
20
+ * printSchema(schema); // => ['directive @upper on FIELD_DEFINITION', '', 'type Query {', ' greeting: String', '}'].join('\n')
21
+ * ```
22
+ */
3
23
  export declare function printSchema(schema: GraphQLSchema): string;
24
+ /**
25
+ * Prints the introspection schema.
26
+ * @param schema - GraphQL schema to use.
27
+ * @returns The printed string representation.
28
+ * @example
29
+ * ```ts
30
+ * import { buildSchema, printIntrospectionSchema } from 'graphql/utilities';
31
+ *
32
+ * const schema = buildSchema(`
33
+ * type Query {
34
+ * greeting: String
35
+ * }
36
+ * `);
37
+ *
38
+ * const printed = printIntrospectionSchema(schema);
39
+ *
40
+ * printed; // matches /type __Schema/
41
+ * printed; // matches /enum __TypeKind/
42
+ * printed; // does not match /type Query/
43
+ * ```
44
+ */
4
45
  export declare function printIntrospectionSchema(schema: GraphQLSchema): string;
46
+ /**
47
+ * Prints the type.
48
+ * @param type - The GraphQL type to inspect.
49
+ * @returns The printed string representation.
50
+ * @example
51
+ * ```ts
52
+ * import { buildSchema, printType } from 'graphql/utilities';
53
+ *
54
+ * const schema = buildSchema(`
55
+ * type User {
56
+ * id: ID!
57
+ * name: String
58
+ * }
59
+ *
60
+ * type Query {
61
+ * viewer: User
62
+ * }
63
+ * `);
64
+ *
65
+ * printType(schema.getType('User')); // => ['type User {', ' id: ID!', ' name: String', '}'].join('\n')
66
+ * ```
67
+ */
5
68
  export declare function printType(type: GraphQLNamedType): string;
@@ -27,6 +27,27 @@ var _scalars = require('../type/scalars.js');
27
27
 
28
28
  var _astFromValue = require('./astFromValue.js');
29
29
 
30
+ /** @category Schema Printing */
31
+
32
+ /**
33
+ * Prints the schema.
34
+ * @param schema - GraphQL schema to use.
35
+ * @returns The printed string representation.
36
+ * @example
37
+ * ```ts
38
+ * import { buildSchema, printSchema } from 'graphql/utilities';
39
+ *
40
+ * const schema = buildSchema(`
41
+ * directive @upper on FIELD_DEFINITION
42
+ *
43
+ * type Query {
44
+ * greeting: String @upper
45
+ * }
46
+ * `);
47
+ *
48
+ * printSchema(schema); // => ['directive @upper on FIELD_DEFINITION', '', 'type Query {', ' greeting: String', '}'].join('\n')
49
+ * ```
50
+ */
30
51
  function printSchema(schema) {
31
52
  return printFilteredSchema(
32
53
  schema,
@@ -34,6 +55,27 @@ function printSchema(schema) {
34
55
  isDefinedType,
35
56
  );
36
57
  }
58
+ /**
59
+ * Prints the introspection schema.
60
+ * @param schema - GraphQL schema to use.
61
+ * @returns The printed string representation.
62
+ * @example
63
+ * ```ts
64
+ * import { buildSchema, printIntrospectionSchema } from 'graphql/utilities';
65
+ *
66
+ * const schema = buildSchema(`
67
+ * type Query {
68
+ * greeting: String
69
+ * }
70
+ * `);
71
+ *
72
+ * const printed = printIntrospectionSchema(schema);
73
+ *
74
+ * printed; // matches /type __Schema/
75
+ * printed; // matches /enum __TypeKind/
76
+ * printed; // does not match /type Query/
77
+ * ```
78
+ */
37
79
 
38
80
  function printIntrospectionSchema(schema) {
39
81
  return printFilteredSchema(
@@ -102,6 +144,8 @@ function printSchemaDefinition(schema) {
102
144
  * ```
103
145
  *
104
146
  * When using this naming convention, the schema description can be omitted.
147
+ *
148
+ * @internal
105
149
  */
106
150
 
107
151
  function isSchemaOfCommonNames(schema) {
@@ -125,6 +169,28 @@ function isSchemaOfCommonNames(schema) {
125
169
 
126
170
  return true;
127
171
  }
172
+ /**
173
+ * Prints the type.
174
+ * @param type - The GraphQL type to inspect.
175
+ * @returns The printed string representation.
176
+ * @example
177
+ * ```ts
178
+ * import { buildSchema, printType } from 'graphql/utilities';
179
+ *
180
+ * const schema = buildSchema(`
181
+ * type User {
182
+ * id: ID!
183
+ * name: String
184
+ * }
185
+ *
186
+ * type Query {
187
+ * viewer: User
188
+ * }
189
+ * `);
190
+ *
191
+ * printType(schema.getType('User')); // => ['type User {', ' id: ID!', ' name: String', '}'].join('\n')
192
+ * ```
193
+ */
128
194
 
129
195
  function printType(type) {
130
196
  if ((0, _definition.isScalarType)(type)) {
@@ -1,3 +1,4 @@
1
+ /** @category Schema Printing */
1
2
  import { inspect } from '../jsutils/inspect.mjs';
2
3
  import { invariant } from '../jsutils/invariant.mjs';
3
4
  import { isPrintableAsBlockString } from '../language/blockString.mjs';
@@ -18,6 +19,26 @@ import {
18
19
  import { isIntrospectionType } from '../type/introspection.mjs';
19
20
  import { isSpecifiedScalarType } from '../type/scalars.mjs';
20
21
  import { astFromValue } from './astFromValue.mjs';
22
+ /**
23
+ * Prints the schema.
24
+ * @param schema - GraphQL schema to use.
25
+ * @returns The printed string representation.
26
+ * @example
27
+ * ```ts
28
+ * import { buildSchema, printSchema } from 'graphql/utilities';
29
+ *
30
+ * const schema = buildSchema(`
31
+ * directive @upper on FIELD_DEFINITION
32
+ *
33
+ * type Query {
34
+ * greeting: String @upper
35
+ * }
36
+ * `);
37
+ *
38
+ * printSchema(schema); // => ['directive @upper on FIELD_DEFINITION', '', 'type Query {', ' greeting: String', '}'].join('\n')
39
+ * ```
40
+ */
41
+
21
42
  export function printSchema(schema) {
22
43
  return printFilteredSchema(
23
44
  schema,
@@ -25,6 +46,28 @@ export function printSchema(schema) {
25
46
  isDefinedType,
26
47
  );
27
48
  }
49
+ /**
50
+ * Prints the introspection schema.
51
+ * @param schema - GraphQL schema to use.
52
+ * @returns The printed string representation.
53
+ * @example
54
+ * ```ts
55
+ * import { buildSchema, printIntrospectionSchema } from 'graphql/utilities';
56
+ *
57
+ * const schema = buildSchema(`
58
+ * type Query {
59
+ * greeting: String
60
+ * }
61
+ * `);
62
+ *
63
+ * const printed = printIntrospectionSchema(schema);
64
+ *
65
+ * printed; // matches /type __Schema/
66
+ * printed; // matches /enum __TypeKind/
67
+ * printed; // does not match /type Query/
68
+ * ```
69
+ */
70
+
28
71
  export function printIntrospectionSchema(schema) {
29
72
  return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType);
30
73
  }
@@ -85,6 +128,8 @@ function printSchemaDefinition(schema) {
85
128
  * ```
86
129
  *
87
130
  * When using this naming convention, the schema description can be omitted.
131
+ *
132
+ * @internal
88
133
  */
89
134
 
90
135
  function isSchemaOfCommonNames(schema) {
@@ -108,6 +153,28 @@ function isSchemaOfCommonNames(schema) {
108
153
 
109
154
  return true;
110
155
  }
156
+ /**
157
+ * Prints the type.
158
+ * @param type - The GraphQL type to inspect.
159
+ * @returns The printed string representation.
160
+ * @example
161
+ * ```ts
162
+ * import { buildSchema, printType } from 'graphql/utilities';
163
+ *
164
+ * const schema = buildSchema(`
165
+ * type User {
166
+ * id: ID!
167
+ * name: String
168
+ * }
169
+ *
170
+ * type Query {
171
+ * viewer: User
172
+ * }
173
+ * `);
174
+ *
175
+ * printType(schema.getType('User')); // => ['type User {', ' id: ID!', ' name: String', '}'].join('\n')
176
+ * ```
177
+ */
111
178
 
112
179
  export function printType(type) {
113
180
  if (isScalarType(type)) {