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,516 @@
1
+ import { inspect } from '../jsutils/inspect.mjs';
2
+ import { invariant } from '../jsutils/invariant.mjs';
3
+ import { keyMap } from '../jsutils/keyMap.mjs';
4
+ import { print } from '../language/printer.mjs';
5
+ import {
6
+ isEnumType,
7
+ isInputObjectType,
8
+ isInterfaceType,
9
+ isListType,
10
+ isNamedType,
11
+ isNonNullType,
12
+ isObjectType,
13
+ isRequiredArgument,
14
+ isRequiredInputField,
15
+ isScalarType,
16
+ isUnionType,
17
+ } from '../type/definition.mjs';
18
+ import { isSpecifiedScalarType } from '../type/scalars.mjs';
19
+ import { astFromValue } from './astFromValue.mjs';
20
+ import { sortValueNode } from './sortValueNode.mjs';
21
+ export let BreakingChangeType;
22
+
23
+ (function (BreakingChangeType) {
24
+ BreakingChangeType['TYPE_REMOVED'] = 'TYPE_REMOVED';
25
+ BreakingChangeType['TYPE_CHANGED_KIND'] = 'TYPE_CHANGED_KIND';
26
+ BreakingChangeType['TYPE_REMOVED_FROM_UNION'] = 'TYPE_REMOVED_FROM_UNION';
27
+ BreakingChangeType['VALUE_REMOVED_FROM_ENUM'] = 'VALUE_REMOVED_FROM_ENUM';
28
+ BreakingChangeType['REQUIRED_INPUT_FIELD_ADDED'] =
29
+ 'REQUIRED_INPUT_FIELD_ADDED';
30
+ BreakingChangeType['IMPLEMENTED_INTERFACE_REMOVED'] =
31
+ 'IMPLEMENTED_INTERFACE_REMOVED';
32
+ BreakingChangeType['FIELD_REMOVED'] = 'FIELD_REMOVED';
33
+ BreakingChangeType['FIELD_CHANGED_KIND'] = 'FIELD_CHANGED_KIND';
34
+ BreakingChangeType['REQUIRED_ARG_ADDED'] = 'REQUIRED_ARG_ADDED';
35
+ BreakingChangeType['ARG_REMOVED'] = 'ARG_REMOVED';
36
+ BreakingChangeType['ARG_CHANGED_KIND'] = 'ARG_CHANGED_KIND';
37
+ BreakingChangeType['DIRECTIVE_REMOVED'] = 'DIRECTIVE_REMOVED';
38
+ BreakingChangeType['DIRECTIVE_ARG_REMOVED'] = 'DIRECTIVE_ARG_REMOVED';
39
+ BreakingChangeType['REQUIRED_DIRECTIVE_ARG_ADDED'] =
40
+ 'REQUIRED_DIRECTIVE_ARG_ADDED';
41
+ BreakingChangeType['DIRECTIVE_REPEATABLE_REMOVED'] =
42
+ 'DIRECTIVE_REPEATABLE_REMOVED';
43
+ BreakingChangeType['DIRECTIVE_LOCATION_REMOVED'] =
44
+ 'DIRECTIVE_LOCATION_REMOVED';
45
+ })(BreakingChangeType || (BreakingChangeType = {}));
46
+
47
+ export let DangerousChangeType;
48
+
49
+ (function (DangerousChangeType) {
50
+ DangerousChangeType['VALUE_ADDED_TO_ENUM'] = 'VALUE_ADDED_TO_ENUM';
51
+ DangerousChangeType['TYPE_ADDED_TO_UNION'] = 'TYPE_ADDED_TO_UNION';
52
+ DangerousChangeType['OPTIONAL_INPUT_FIELD_ADDED'] =
53
+ 'OPTIONAL_INPUT_FIELD_ADDED';
54
+ DangerousChangeType['OPTIONAL_ARG_ADDED'] = 'OPTIONAL_ARG_ADDED';
55
+ DangerousChangeType['IMPLEMENTED_INTERFACE_ADDED'] =
56
+ 'IMPLEMENTED_INTERFACE_ADDED';
57
+ DangerousChangeType['ARG_DEFAULT_VALUE_CHANGE'] = 'ARG_DEFAULT_VALUE_CHANGE';
58
+ })(DangerousChangeType || (DangerousChangeType = {}));
59
+
60
+ /**
61
+ * Given two schemas, returns an Array containing descriptions of all the types
62
+ * of breaking changes covered by the other functions down below.
63
+ */
64
+ export function findBreakingChanges(oldSchema, newSchema) {
65
+ // @ts-expect-error
66
+ return findSchemaChanges(oldSchema, newSchema).filter(
67
+ (change) => change.type in BreakingChangeType,
68
+ );
69
+ }
70
+ /**
71
+ * Given two schemas, returns an Array containing descriptions of all the types
72
+ * of potentially dangerous changes covered by the other functions down below.
73
+ */
74
+
75
+ export function findDangerousChanges(oldSchema, newSchema) {
76
+ // @ts-expect-error
77
+ return findSchemaChanges(oldSchema, newSchema).filter(
78
+ (change) => change.type in DangerousChangeType,
79
+ );
80
+ }
81
+
82
+ function findSchemaChanges(oldSchema, newSchema) {
83
+ return [
84
+ ...findTypeChanges(oldSchema, newSchema),
85
+ ...findDirectiveChanges(oldSchema, newSchema),
86
+ ];
87
+ }
88
+
89
+ function findDirectiveChanges(oldSchema, newSchema) {
90
+ const schemaChanges = [];
91
+ const directivesDiff = diff(
92
+ oldSchema.getDirectives(),
93
+ newSchema.getDirectives(),
94
+ );
95
+
96
+ for (const oldDirective of directivesDiff.removed) {
97
+ schemaChanges.push({
98
+ type: BreakingChangeType.DIRECTIVE_REMOVED,
99
+ description: `${oldDirective.name} was removed.`,
100
+ });
101
+ }
102
+
103
+ for (const [oldDirective, newDirective] of directivesDiff.persisted) {
104
+ const argsDiff = diff(oldDirective.args, newDirective.args);
105
+
106
+ for (const newArg of argsDiff.added) {
107
+ if (isRequiredArgument(newArg)) {
108
+ schemaChanges.push({
109
+ type: BreakingChangeType.REQUIRED_DIRECTIVE_ARG_ADDED,
110
+ description: `A required arg ${newArg.name} on directive ${oldDirective.name} was added.`,
111
+ });
112
+ }
113
+ }
114
+
115
+ for (const oldArg of argsDiff.removed) {
116
+ schemaChanges.push({
117
+ type: BreakingChangeType.DIRECTIVE_ARG_REMOVED,
118
+ description: `${oldArg.name} was removed from ${oldDirective.name}.`,
119
+ });
120
+ }
121
+
122
+ if (oldDirective.isRepeatable && !newDirective.isRepeatable) {
123
+ schemaChanges.push({
124
+ type: BreakingChangeType.DIRECTIVE_REPEATABLE_REMOVED,
125
+ description: `Repeatable flag was removed from ${oldDirective.name}.`,
126
+ });
127
+ }
128
+
129
+ for (const location of oldDirective.locations) {
130
+ if (!newDirective.locations.includes(location)) {
131
+ schemaChanges.push({
132
+ type: BreakingChangeType.DIRECTIVE_LOCATION_REMOVED,
133
+ description: `${location} was removed from ${oldDirective.name}.`,
134
+ });
135
+ }
136
+ }
137
+ }
138
+
139
+ return schemaChanges;
140
+ }
141
+
142
+ function findTypeChanges(oldSchema, newSchema) {
143
+ const schemaChanges = [];
144
+ const typesDiff = diff(
145
+ Object.values(oldSchema.getTypeMap()),
146
+ Object.values(newSchema.getTypeMap()),
147
+ );
148
+
149
+ for (const oldType of typesDiff.removed) {
150
+ schemaChanges.push({
151
+ type: BreakingChangeType.TYPE_REMOVED,
152
+ description: isSpecifiedScalarType(oldType)
153
+ ? `Standard scalar ${oldType.name} was removed because it is not referenced anymore.`
154
+ : `${oldType.name} was removed.`,
155
+ });
156
+ }
157
+
158
+ for (const [oldType, newType] of typesDiff.persisted) {
159
+ if (isEnumType(oldType) && isEnumType(newType)) {
160
+ schemaChanges.push(...findEnumTypeChanges(oldType, newType));
161
+ } else if (isUnionType(oldType) && isUnionType(newType)) {
162
+ schemaChanges.push(...findUnionTypeChanges(oldType, newType));
163
+ } else if (isInputObjectType(oldType) && isInputObjectType(newType)) {
164
+ schemaChanges.push(...findInputObjectTypeChanges(oldType, newType));
165
+ } else if (isObjectType(oldType) && isObjectType(newType)) {
166
+ schemaChanges.push(
167
+ ...findFieldChanges(oldType, newType),
168
+ ...findImplementedInterfacesChanges(oldType, newType),
169
+ );
170
+ } else if (isInterfaceType(oldType) && isInterfaceType(newType)) {
171
+ schemaChanges.push(
172
+ ...findFieldChanges(oldType, newType),
173
+ ...findImplementedInterfacesChanges(oldType, newType),
174
+ );
175
+ } else if (oldType.constructor !== newType.constructor) {
176
+ schemaChanges.push({
177
+ type: BreakingChangeType.TYPE_CHANGED_KIND,
178
+ description:
179
+ `${oldType.name} changed from ` +
180
+ `${typeKindName(oldType)} to ${typeKindName(newType)}.`,
181
+ });
182
+ }
183
+ }
184
+
185
+ return schemaChanges;
186
+ }
187
+
188
+ function findInputObjectTypeChanges(oldType, newType) {
189
+ const schemaChanges = [];
190
+ const fieldsDiff = diff(
191
+ Object.values(oldType.getFields()),
192
+ Object.values(newType.getFields()),
193
+ );
194
+
195
+ for (const newField of fieldsDiff.added) {
196
+ if (isRequiredInputField(newField)) {
197
+ schemaChanges.push({
198
+ type: BreakingChangeType.REQUIRED_INPUT_FIELD_ADDED,
199
+ description: `A required field ${newField.name} on input type ${oldType.name} was added.`,
200
+ });
201
+ } else {
202
+ schemaChanges.push({
203
+ type: DangerousChangeType.OPTIONAL_INPUT_FIELD_ADDED,
204
+ description: `An optional field ${newField.name} on input type ${oldType.name} was added.`,
205
+ });
206
+ }
207
+ }
208
+
209
+ for (const oldField of fieldsDiff.removed) {
210
+ schemaChanges.push({
211
+ type: BreakingChangeType.FIELD_REMOVED,
212
+ description: `${oldType.name}.${oldField.name} was removed.`,
213
+ });
214
+ }
215
+
216
+ for (const [oldField, newField] of fieldsDiff.persisted) {
217
+ const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(
218
+ oldField.type,
219
+ newField.type,
220
+ );
221
+
222
+ if (!isSafe) {
223
+ schemaChanges.push({
224
+ type: BreakingChangeType.FIELD_CHANGED_KIND,
225
+ description:
226
+ `${oldType.name}.${oldField.name} changed type from ` +
227
+ `${String(oldField.type)} to ${String(newField.type)}.`,
228
+ });
229
+ }
230
+ }
231
+
232
+ return schemaChanges;
233
+ }
234
+
235
+ function findUnionTypeChanges(oldType, newType) {
236
+ const schemaChanges = [];
237
+ const possibleTypesDiff = diff(oldType.getTypes(), newType.getTypes());
238
+
239
+ for (const newPossibleType of possibleTypesDiff.added) {
240
+ schemaChanges.push({
241
+ type: DangerousChangeType.TYPE_ADDED_TO_UNION,
242
+ description: `${newPossibleType.name} was added to union type ${oldType.name}.`,
243
+ });
244
+ }
245
+
246
+ for (const oldPossibleType of possibleTypesDiff.removed) {
247
+ schemaChanges.push({
248
+ type: BreakingChangeType.TYPE_REMOVED_FROM_UNION,
249
+ description: `${oldPossibleType.name} was removed from union type ${oldType.name}.`,
250
+ });
251
+ }
252
+
253
+ return schemaChanges;
254
+ }
255
+
256
+ function findEnumTypeChanges(oldType, newType) {
257
+ const schemaChanges = [];
258
+ const valuesDiff = diff(oldType.getValues(), newType.getValues());
259
+
260
+ for (const newValue of valuesDiff.added) {
261
+ schemaChanges.push({
262
+ type: DangerousChangeType.VALUE_ADDED_TO_ENUM,
263
+ description: `${newValue.name} was added to enum type ${oldType.name}.`,
264
+ });
265
+ }
266
+
267
+ for (const oldValue of valuesDiff.removed) {
268
+ schemaChanges.push({
269
+ type: BreakingChangeType.VALUE_REMOVED_FROM_ENUM,
270
+ description: `${oldValue.name} was removed from enum type ${oldType.name}.`,
271
+ });
272
+ }
273
+
274
+ return schemaChanges;
275
+ }
276
+
277
+ function findImplementedInterfacesChanges(oldType, newType) {
278
+ const schemaChanges = [];
279
+ const interfacesDiff = diff(oldType.getInterfaces(), newType.getInterfaces());
280
+
281
+ for (const newInterface of interfacesDiff.added) {
282
+ schemaChanges.push({
283
+ type: DangerousChangeType.IMPLEMENTED_INTERFACE_ADDED,
284
+ description: `${newInterface.name} added to interfaces implemented by ${oldType.name}.`,
285
+ });
286
+ }
287
+
288
+ for (const oldInterface of interfacesDiff.removed) {
289
+ schemaChanges.push({
290
+ type: BreakingChangeType.IMPLEMENTED_INTERFACE_REMOVED,
291
+ description: `${oldType.name} no longer implements interface ${oldInterface.name}.`,
292
+ });
293
+ }
294
+
295
+ return schemaChanges;
296
+ }
297
+
298
+ function findFieldChanges(oldType, newType) {
299
+ const schemaChanges = [];
300
+ const fieldsDiff = diff(
301
+ Object.values(oldType.getFields()),
302
+ Object.values(newType.getFields()),
303
+ );
304
+
305
+ for (const oldField of fieldsDiff.removed) {
306
+ schemaChanges.push({
307
+ type: BreakingChangeType.FIELD_REMOVED,
308
+ description: `${oldType.name}.${oldField.name} was removed.`,
309
+ });
310
+ }
311
+
312
+ for (const [oldField, newField] of fieldsDiff.persisted) {
313
+ schemaChanges.push(...findArgChanges(oldType, oldField, newField));
314
+ const isSafe = isChangeSafeForObjectOrInterfaceField(
315
+ oldField.type,
316
+ newField.type,
317
+ );
318
+
319
+ if (!isSafe) {
320
+ schemaChanges.push({
321
+ type: BreakingChangeType.FIELD_CHANGED_KIND,
322
+ description:
323
+ `${oldType.name}.${oldField.name} changed type from ` +
324
+ `${String(oldField.type)} to ${String(newField.type)}.`,
325
+ });
326
+ }
327
+ }
328
+
329
+ return schemaChanges;
330
+ }
331
+
332
+ function findArgChanges(oldType, oldField, newField) {
333
+ const schemaChanges = [];
334
+ const argsDiff = diff(oldField.args, newField.args);
335
+
336
+ for (const oldArg of argsDiff.removed) {
337
+ schemaChanges.push({
338
+ type: BreakingChangeType.ARG_REMOVED,
339
+ description: `${oldType.name}.${oldField.name} arg ${oldArg.name} was removed.`,
340
+ });
341
+ }
342
+
343
+ for (const [oldArg, newArg] of argsDiff.persisted) {
344
+ const isSafe = isChangeSafeForInputObjectFieldOrFieldArg(
345
+ oldArg.type,
346
+ newArg.type,
347
+ );
348
+
349
+ if (!isSafe) {
350
+ schemaChanges.push({
351
+ type: BreakingChangeType.ARG_CHANGED_KIND,
352
+ description:
353
+ `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed type from ` +
354
+ `${String(oldArg.type)} to ${String(newArg.type)}.`,
355
+ });
356
+ } else if (oldArg.defaultValue !== undefined) {
357
+ if (newArg.defaultValue === undefined) {
358
+ schemaChanges.push({
359
+ type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
360
+ description: `${oldType.name}.${oldField.name} arg ${oldArg.name} defaultValue was removed.`,
361
+ });
362
+ } else {
363
+ // Since we looking only for client's observable changes we should
364
+ // compare default values in the same representation as they are
365
+ // represented inside introspection.
366
+ const oldValueStr = stringifyValue(oldArg.defaultValue, oldArg.type);
367
+ const newValueStr = stringifyValue(newArg.defaultValue, newArg.type);
368
+
369
+ if (oldValueStr !== newValueStr) {
370
+ schemaChanges.push({
371
+ type: DangerousChangeType.ARG_DEFAULT_VALUE_CHANGE,
372
+ description: `${oldType.name}.${oldField.name} arg ${oldArg.name} has changed defaultValue from ${oldValueStr} to ${newValueStr}.`,
373
+ });
374
+ }
375
+ }
376
+ }
377
+ }
378
+
379
+ for (const newArg of argsDiff.added) {
380
+ if (isRequiredArgument(newArg)) {
381
+ schemaChanges.push({
382
+ type: BreakingChangeType.REQUIRED_ARG_ADDED,
383
+ description: `A required arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`,
384
+ });
385
+ } else {
386
+ schemaChanges.push({
387
+ type: DangerousChangeType.OPTIONAL_ARG_ADDED,
388
+ description: `An optional arg ${newArg.name} on ${oldType.name}.${oldField.name} was added.`,
389
+ });
390
+ }
391
+ }
392
+
393
+ return schemaChanges;
394
+ }
395
+
396
+ function isChangeSafeForObjectOrInterfaceField(oldType, newType) {
397
+ if (isListType(oldType)) {
398
+ return (
399
+ // if they're both lists, make sure the underlying types are compatible
400
+ (isListType(newType) &&
401
+ isChangeSafeForObjectOrInterfaceField(
402
+ oldType.ofType,
403
+ newType.ofType,
404
+ )) || // moving from nullable to non-null of the same underlying type is safe
405
+ (isNonNullType(newType) &&
406
+ isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))
407
+ );
408
+ }
409
+
410
+ if (isNonNullType(oldType)) {
411
+ // if they're both non-null, make sure the underlying types are compatible
412
+ return (
413
+ isNonNullType(newType) &&
414
+ isChangeSafeForObjectOrInterfaceField(oldType.ofType, newType.ofType)
415
+ );
416
+ }
417
+
418
+ return (
419
+ // if they're both named types, see if their names are equivalent
420
+ (isNamedType(newType) && oldType.name === newType.name) || // moving from nullable to non-null of the same underlying type is safe
421
+ (isNonNullType(newType) &&
422
+ isChangeSafeForObjectOrInterfaceField(oldType, newType.ofType))
423
+ );
424
+ }
425
+
426
+ function isChangeSafeForInputObjectFieldOrFieldArg(oldType, newType) {
427
+ if (isListType(oldType)) {
428
+ // if they're both lists, make sure the underlying types are compatible
429
+ return (
430
+ isListType(newType) &&
431
+ isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType.ofType)
432
+ );
433
+ }
434
+
435
+ if (isNonNullType(oldType)) {
436
+ return (
437
+ // if they're both non-null, make sure the underlying types are
438
+ // compatible
439
+ (isNonNullType(newType) &&
440
+ isChangeSafeForInputObjectFieldOrFieldArg(
441
+ oldType.ofType,
442
+ newType.ofType,
443
+ )) || // moving from non-null to nullable of the same underlying type is safe
444
+ (!isNonNullType(newType) &&
445
+ isChangeSafeForInputObjectFieldOrFieldArg(oldType.ofType, newType))
446
+ );
447
+ } // if they're both named types, see if their names are equivalent
448
+
449
+ return isNamedType(newType) && oldType.name === newType.name;
450
+ }
451
+
452
+ function typeKindName(type) {
453
+ if (isScalarType(type)) {
454
+ return 'a Scalar type';
455
+ }
456
+
457
+ if (isObjectType(type)) {
458
+ return 'an Object type';
459
+ }
460
+
461
+ if (isInterfaceType(type)) {
462
+ return 'an Interface type';
463
+ }
464
+
465
+ if (isUnionType(type)) {
466
+ return 'a Union type';
467
+ }
468
+
469
+ if (isEnumType(type)) {
470
+ return 'an Enum type';
471
+ }
472
+
473
+ if (isInputObjectType(type)) {
474
+ return 'an Input type';
475
+ }
476
+ /* c8 ignore next 3 */
477
+ // Not reachable, all possible types have been considered.
478
+
479
+ false || invariant(false, 'Unexpected type: ' + inspect(type));
480
+ }
481
+
482
+ function stringifyValue(value, type) {
483
+ const ast = astFromValue(value, type);
484
+ ast != null || invariant(false);
485
+ return print(sortValueNode(ast));
486
+ }
487
+
488
+ function diff(oldArray, newArray) {
489
+ const added = [];
490
+ const removed = [];
491
+ const persisted = [];
492
+ const oldMap = keyMap(oldArray, ({ name }) => name);
493
+ const newMap = keyMap(newArray, ({ name }) => name);
494
+
495
+ for (const oldItem of oldArray) {
496
+ const newItem = newMap[oldItem.name];
497
+
498
+ if (newItem === undefined) {
499
+ removed.push(oldItem);
500
+ } else {
501
+ persisted.push([oldItem, newItem]);
502
+ }
503
+ }
504
+
505
+ for (const newItem of newArray) {
506
+ if (oldMap[newItem.name] === undefined) {
507
+ added.push(newItem);
508
+ }
509
+ }
510
+
511
+ return {
512
+ added,
513
+ persisted,
514
+ removed,
515
+ };
516
+ }
@@ -0,0 +1,182 @@
1
+ import type { Maybe } from '../jsutils/Maybe';
2
+ import type { DirectiveLocation } from '../language/directiveLocation';
3
+ export interface IntrospectionOptions {
4
+ /**
5
+ * Whether to include descriptions in the introspection result.
6
+ * Default: true
7
+ */
8
+ descriptions?: boolean;
9
+ /**
10
+ * Whether to include `specifiedByURL` in the introspection result.
11
+ * Default: false
12
+ */
13
+ specifiedByUrl?: boolean;
14
+ /**
15
+ * Whether to include `isRepeatable` flag on directives.
16
+ * Default: false
17
+ */
18
+ directiveIsRepeatable?: boolean;
19
+ /**
20
+ * Whether to include `description` field on schema.
21
+ * Default: false
22
+ */
23
+ schemaDescription?: boolean;
24
+ /**
25
+ * Whether target GraphQL server support deprecation of input values.
26
+ * Default: false
27
+ */
28
+ inputValueDeprecation?: boolean;
29
+ }
30
+ /**
31
+ * Produce the GraphQL query recommended for a full schema introspection.
32
+ * Accepts optional IntrospectionOptions.
33
+ */
34
+ export declare function getIntrospectionQuery(
35
+ options?: IntrospectionOptions,
36
+ ): string;
37
+ export interface IntrospectionQuery {
38
+ readonly __schema: IntrospectionSchema;
39
+ }
40
+ export interface IntrospectionSchema {
41
+ readonly description?: Maybe<string>;
42
+ readonly queryType: IntrospectionNamedTypeRef<IntrospectionObjectType>;
43
+ readonly mutationType: Maybe<
44
+ IntrospectionNamedTypeRef<IntrospectionObjectType>
45
+ >;
46
+ readonly subscriptionType: Maybe<
47
+ IntrospectionNamedTypeRef<IntrospectionObjectType>
48
+ >;
49
+ readonly types: ReadonlyArray<IntrospectionType>;
50
+ readonly directives: ReadonlyArray<IntrospectionDirective>;
51
+ }
52
+ export declare type IntrospectionType =
53
+ | IntrospectionScalarType
54
+ | IntrospectionObjectType
55
+ | IntrospectionInterfaceType
56
+ | IntrospectionUnionType
57
+ | IntrospectionEnumType
58
+ | IntrospectionInputObjectType;
59
+ export declare type IntrospectionOutputType =
60
+ | IntrospectionScalarType
61
+ | IntrospectionObjectType
62
+ | IntrospectionInterfaceType
63
+ | IntrospectionUnionType
64
+ | IntrospectionEnumType;
65
+ export declare type IntrospectionInputType =
66
+ | IntrospectionScalarType
67
+ | IntrospectionEnumType
68
+ | IntrospectionInputObjectType;
69
+ export interface IntrospectionScalarType {
70
+ readonly kind: 'SCALAR';
71
+ readonly name: string;
72
+ readonly description?: Maybe<string>;
73
+ readonly specifiedByURL?: Maybe<string>;
74
+ }
75
+ export interface IntrospectionObjectType {
76
+ readonly kind: 'OBJECT';
77
+ readonly name: string;
78
+ readonly description?: Maybe<string>;
79
+ readonly fields: ReadonlyArray<IntrospectionField>;
80
+ readonly interfaces: ReadonlyArray<
81
+ IntrospectionNamedTypeRef<IntrospectionInterfaceType>
82
+ >;
83
+ }
84
+ export interface IntrospectionInterfaceType {
85
+ readonly kind: 'INTERFACE';
86
+ readonly name: string;
87
+ readonly description?: Maybe<string>;
88
+ readonly fields: ReadonlyArray<IntrospectionField>;
89
+ readonly interfaces: ReadonlyArray<
90
+ IntrospectionNamedTypeRef<IntrospectionInterfaceType>
91
+ >;
92
+ readonly possibleTypes: ReadonlyArray<
93
+ IntrospectionNamedTypeRef<IntrospectionObjectType>
94
+ >;
95
+ }
96
+ export interface IntrospectionUnionType {
97
+ readonly kind: 'UNION';
98
+ readonly name: string;
99
+ readonly description?: Maybe<string>;
100
+ readonly possibleTypes: ReadonlyArray<
101
+ IntrospectionNamedTypeRef<IntrospectionObjectType>
102
+ >;
103
+ }
104
+ export interface IntrospectionEnumType {
105
+ readonly kind: 'ENUM';
106
+ readonly name: string;
107
+ readonly description?: Maybe<string>;
108
+ readonly enumValues: ReadonlyArray<IntrospectionEnumValue>;
109
+ }
110
+ export interface IntrospectionInputObjectType {
111
+ readonly kind: 'INPUT_OBJECT';
112
+ readonly name: string;
113
+ readonly description?: Maybe<string>;
114
+ readonly inputFields: ReadonlyArray<IntrospectionInputValue>;
115
+ }
116
+ export interface IntrospectionListTypeRef<
117
+ T extends IntrospectionTypeRef = IntrospectionTypeRef,
118
+ > {
119
+ readonly kind: 'LIST';
120
+ readonly ofType: T;
121
+ }
122
+ export interface IntrospectionNonNullTypeRef<
123
+ T extends IntrospectionTypeRef = IntrospectionTypeRef,
124
+ > {
125
+ readonly kind: 'NON_NULL';
126
+ readonly ofType: T;
127
+ }
128
+ export declare type IntrospectionTypeRef =
129
+ | IntrospectionNamedTypeRef
130
+ | IntrospectionListTypeRef
131
+ | IntrospectionNonNullTypeRef<
132
+ IntrospectionNamedTypeRef | IntrospectionListTypeRef
133
+ >;
134
+ export declare type IntrospectionOutputTypeRef =
135
+ | IntrospectionNamedTypeRef<IntrospectionOutputType>
136
+ | IntrospectionListTypeRef<IntrospectionOutputTypeRef>
137
+ | IntrospectionNonNullTypeRef<
138
+ | IntrospectionNamedTypeRef<IntrospectionOutputType>
139
+ | IntrospectionListTypeRef<IntrospectionOutputTypeRef>
140
+ >;
141
+ export declare type IntrospectionInputTypeRef =
142
+ | IntrospectionNamedTypeRef<IntrospectionInputType>
143
+ | IntrospectionListTypeRef<IntrospectionInputTypeRef>
144
+ | IntrospectionNonNullTypeRef<
145
+ | IntrospectionNamedTypeRef<IntrospectionInputType>
146
+ | IntrospectionListTypeRef<IntrospectionInputTypeRef>
147
+ >;
148
+ export interface IntrospectionNamedTypeRef<
149
+ T extends IntrospectionType = IntrospectionType,
150
+ > {
151
+ readonly kind: T['kind'];
152
+ readonly name: string;
153
+ }
154
+ export interface IntrospectionField {
155
+ readonly name: string;
156
+ readonly description?: Maybe<string>;
157
+ readonly args: ReadonlyArray<IntrospectionInputValue>;
158
+ readonly type: IntrospectionOutputTypeRef;
159
+ readonly isDeprecated: boolean;
160
+ readonly deprecationReason: Maybe<string>;
161
+ }
162
+ export interface IntrospectionInputValue {
163
+ readonly name: string;
164
+ readonly description?: Maybe<string>;
165
+ readonly type: IntrospectionInputTypeRef;
166
+ readonly defaultValue: Maybe<string>;
167
+ readonly isDeprecated?: boolean;
168
+ readonly deprecationReason?: Maybe<string>;
169
+ }
170
+ export interface IntrospectionEnumValue {
171
+ readonly name: string;
172
+ readonly description?: Maybe<string>;
173
+ readonly isDeprecated: boolean;
174
+ readonly deprecationReason: Maybe<string>;
175
+ }
176
+ export interface IntrospectionDirective {
177
+ readonly name: string;
178
+ readonly description?: Maybe<string>;
179
+ readonly isRepeatable?: boolean;
180
+ readonly locations: ReadonlyArray<DirectiveLocation>;
181
+ readonly args: ReadonlyArray<IntrospectionInputValue>;
182
+ }