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,172 @@
1
+ import { inspect } from '../jsutils/inspect.mjs';
2
+ import { invariant } from '../jsutils/invariant.mjs';
3
+ import { keyValMap } from '../jsutils/keyValMap.mjs';
4
+ import { naturalCompare } from '../jsutils/naturalCompare.mjs';
5
+ import {
6
+ GraphQLEnumType,
7
+ GraphQLInputObjectType,
8
+ GraphQLInterfaceType,
9
+ GraphQLList,
10
+ GraphQLNonNull,
11
+ GraphQLObjectType,
12
+ GraphQLUnionType,
13
+ isEnumType,
14
+ isInputObjectType,
15
+ isInterfaceType,
16
+ isListType,
17
+ isNonNullType,
18
+ isObjectType,
19
+ isScalarType,
20
+ isUnionType,
21
+ } from '../type/definition.mjs';
22
+ import { GraphQLDirective } from '../type/directives.mjs';
23
+ import { isIntrospectionType } from '../type/introspection.mjs';
24
+ import { GraphQLSchema } from '../type/schema.mjs';
25
+ /**
26
+ * Sort GraphQLSchema.
27
+ *
28
+ * This function returns a sorted copy of the given GraphQLSchema.
29
+ */
30
+
31
+ export function lexicographicSortSchema(schema) {
32
+ const schemaConfig = schema.toConfig();
33
+ const typeMap = keyValMap(
34
+ sortByName(schemaConfig.types),
35
+ (type) => type.name,
36
+ sortNamedType,
37
+ );
38
+ return new GraphQLSchema({
39
+ ...schemaConfig,
40
+ types: Object.values(typeMap),
41
+ directives: sortByName(schemaConfig.directives).map(sortDirective),
42
+ query: replaceMaybeType(schemaConfig.query),
43
+ mutation: replaceMaybeType(schemaConfig.mutation),
44
+ subscription: replaceMaybeType(schemaConfig.subscription),
45
+ });
46
+
47
+ function replaceType(type) {
48
+ if (isListType(type)) {
49
+ // @ts-expect-error
50
+ return new GraphQLList(replaceType(type.ofType));
51
+ } else if (isNonNullType(type)) {
52
+ // @ts-expect-error
53
+ return new GraphQLNonNull(replaceType(type.ofType));
54
+ } // @ts-expect-error FIXME: TS Conversion
55
+
56
+ return replaceNamedType(type);
57
+ }
58
+
59
+ function replaceNamedType(type) {
60
+ return typeMap[type.name];
61
+ }
62
+
63
+ function replaceMaybeType(maybeType) {
64
+ return maybeType && replaceNamedType(maybeType);
65
+ }
66
+
67
+ function sortDirective(directive) {
68
+ const config = directive.toConfig();
69
+ return new GraphQLDirective({
70
+ ...config,
71
+ locations: sortBy(config.locations, (x) => x),
72
+ args: sortArgs(config.args),
73
+ });
74
+ }
75
+
76
+ function sortArgs(args) {
77
+ return sortObjMap(args, (arg) => ({ ...arg, type: replaceType(arg.type) }));
78
+ }
79
+
80
+ function sortFields(fieldsMap) {
81
+ return sortObjMap(fieldsMap, (field) => ({
82
+ ...field,
83
+ type: replaceType(field.type),
84
+ args: field.args && sortArgs(field.args),
85
+ }));
86
+ }
87
+
88
+ function sortInputFields(fieldsMap) {
89
+ return sortObjMap(fieldsMap, (field) => ({
90
+ ...field,
91
+ type: replaceType(field.type),
92
+ }));
93
+ }
94
+
95
+ function sortTypes(array) {
96
+ return sortByName(array).map(replaceNamedType);
97
+ }
98
+
99
+ function sortNamedType(type) {
100
+ if (isScalarType(type) || isIntrospectionType(type)) {
101
+ return type;
102
+ }
103
+
104
+ if (isObjectType(type)) {
105
+ const config = type.toConfig();
106
+ return new GraphQLObjectType({
107
+ ...config,
108
+ interfaces: () => sortTypes(config.interfaces),
109
+ fields: () => sortFields(config.fields),
110
+ });
111
+ }
112
+
113
+ if (isInterfaceType(type)) {
114
+ const config = type.toConfig();
115
+ return new GraphQLInterfaceType({
116
+ ...config,
117
+ interfaces: () => sortTypes(config.interfaces),
118
+ fields: () => sortFields(config.fields),
119
+ });
120
+ }
121
+
122
+ if (isUnionType(type)) {
123
+ const config = type.toConfig();
124
+ return new GraphQLUnionType({
125
+ ...config,
126
+ types: () => sortTypes(config.types),
127
+ });
128
+ }
129
+
130
+ if (isEnumType(type)) {
131
+ const config = type.toConfig();
132
+ return new GraphQLEnumType({
133
+ ...config,
134
+ values: sortObjMap(config.values, (value) => value),
135
+ });
136
+ }
137
+
138
+ if (isInputObjectType(type)) {
139
+ const config = type.toConfig();
140
+ return new GraphQLInputObjectType({
141
+ ...config,
142
+ fields: () => sortInputFields(config.fields),
143
+ });
144
+ }
145
+ /* c8 ignore next 3 */
146
+ // Not reachable, all possible types have been considered.
147
+
148
+ false || invariant(false, 'Unexpected type: ' + inspect(type));
149
+ }
150
+ }
151
+
152
+ function sortObjMap(map, sortValueFn) {
153
+ const sortedMap = Object.create(null);
154
+
155
+ for (const key of Object.keys(map).sort(naturalCompare)) {
156
+ sortedMap[key] = sortValueFn(map[key]);
157
+ }
158
+
159
+ return sortedMap;
160
+ }
161
+
162
+ function sortByName(array) {
163
+ return sortBy(array, (obj) => obj.name);
164
+ }
165
+
166
+ function sortBy(array, mapToKey) {
167
+ return array.slice().sort((obj1, obj2) => {
168
+ const key1 = mapToKey(obj1);
169
+ const key2 = mapToKey(obj2);
170
+ return naturalCompare(key1, key2);
171
+ });
172
+ }
@@ -0,0 +1,5 @@
1
+ import type { GraphQLNamedType } from '../type/definition';
2
+ import type { GraphQLSchema } from '../type/schema';
3
+ export declare function printSchema(schema: GraphQLSchema): string;
4
+ export declare function printIntrospectionSchema(schema: GraphQLSchema): string;
5
+ export declare function printType(type: GraphQLNamedType): string;
@@ -0,0 +1,333 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.printIntrospectionSchema = printIntrospectionSchema;
7
+ exports.printSchema = printSchema;
8
+ exports.printType = printType;
9
+
10
+ var _inspect = require('../jsutils/inspect.js');
11
+
12
+ var _invariant = require('../jsutils/invariant.js');
13
+
14
+ var _blockString = require('../language/blockString.js');
15
+
16
+ var _kinds = require('../language/kinds.js');
17
+
18
+ var _printer = require('../language/printer.js');
19
+
20
+ var _definition = require('../type/definition.js');
21
+
22
+ var _directives = require('../type/directives.js');
23
+
24
+ var _introspection = require('../type/introspection.js');
25
+
26
+ var _scalars = require('../type/scalars.js');
27
+
28
+ var _astFromValue = require('./astFromValue.js');
29
+
30
+ function printSchema(schema) {
31
+ return printFilteredSchema(
32
+ schema,
33
+ (n) => !(0, _directives.isSpecifiedDirective)(n),
34
+ isDefinedType,
35
+ );
36
+ }
37
+
38
+ function printIntrospectionSchema(schema) {
39
+ return printFilteredSchema(
40
+ schema,
41
+ _directives.isSpecifiedDirective,
42
+ _introspection.isIntrospectionType,
43
+ );
44
+ }
45
+
46
+ function isDefinedType(type) {
47
+ return (
48
+ !(0, _scalars.isSpecifiedScalarType)(type) &&
49
+ !(0, _introspection.isIntrospectionType)(type)
50
+ );
51
+ }
52
+
53
+ function printFilteredSchema(schema, directiveFilter, typeFilter) {
54
+ const directives = schema.getDirectives().filter(directiveFilter);
55
+ const types = Object.values(schema.getTypeMap()).filter(typeFilter);
56
+ return [
57
+ printSchemaDefinition(schema),
58
+ ...directives.map((directive) => printDirective(directive)),
59
+ ...types.map((type) => printType(type)),
60
+ ]
61
+ .filter(Boolean)
62
+ .join('\n\n');
63
+ }
64
+
65
+ function printSchemaDefinition(schema) {
66
+ if (schema.description == null && isSchemaOfCommonNames(schema)) {
67
+ return;
68
+ }
69
+
70
+ const operationTypes = [];
71
+ const queryType = schema.getQueryType();
72
+
73
+ if (queryType) {
74
+ operationTypes.push(` query: ${queryType.name}`);
75
+ }
76
+
77
+ const mutationType = schema.getMutationType();
78
+
79
+ if (mutationType) {
80
+ operationTypes.push(` mutation: ${mutationType.name}`);
81
+ }
82
+
83
+ const subscriptionType = schema.getSubscriptionType();
84
+
85
+ if (subscriptionType) {
86
+ operationTypes.push(` subscription: ${subscriptionType.name}`);
87
+ }
88
+
89
+ return printDescription(schema) + `schema {\n${operationTypes.join('\n')}\n}`;
90
+ }
91
+ /**
92
+ * GraphQL schema define root types for each type of operation. These types are
93
+ * the same as any other type and can be named in any manner, however there is
94
+ * a common naming convention:
95
+ *
96
+ * ```graphql
97
+ * schema {
98
+ * query: Query
99
+ * mutation: Mutation
100
+ * subscription: Subscription
101
+ * }
102
+ * ```
103
+ *
104
+ * When using this naming convention, the schema description can be omitted.
105
+ */
106
+
107
+ function isSchemaOfCommonNames(schema) {
108
+ const queryType = schema.getQueryType();
109
+
110
+ if (queryType && queryType.name !== 'Query') {
111
+ return false;
112
+ }
113
+
114
+ const mutationType = schema.getMutationType();
115
+
116
+ if (mutationType && mutationType.name !== 'Mutation') {
117
+ return false;
118
+ }
119
+
120
+ const subscriptionType = schema.getSubscriptionType();
121
+
122
+ if (subscriptionType && subscriptionType.name !== 'Subscription') {
123
+ return false;
124
+ }
125
+
126
+ return true;
127
+ }
128
+
129
+ function printType(type) {
130
+ if ((0, _definition.isScalarType)(type)) {
131
+ return printScalar(type);
132
+ }
133
+
134
+ if ((0, _definition.isObjectType)(type)) {
135
+ return printObject(type);
136
+ }
137
+
138
+ if ((0, _definition.isInterfaceType)(type)) {
139
+ return printInterface(type);
140
+ }
141
+
142
+ if ((0, _definition.isUnionType)(type)) {
143
+ return printUnion(type);
144
+ }
145
+
146
+ if ((0, _definition.isEnumType)(type)) {
147
+ return printEnum(type);
148
+ }
149
+
150
+ if ((0, _definition.isInputObjectType)(type)) {
151
+ return printInputObject(type);
152
+ }
153
+ /* c8 ignore next 3 */
154
+ // Not reachable, all possible types have been considered.
155
+
156
+ false ||
157
+ (0, _invariant.invariant)(
158
+ false,
159
+ 'Unexpected type: ' + (0, _inspect.inspect)(type),
160
+ );
161
+ }
162
+
163
+ function printScalar(type) {
164
+ return (
165
+ printDescription(type) + `scalar ${type.name}` + printSpecifiedByURL(type)
166
+ );
167
+ }
168
+
169
+ function printImplementedInterfaces(type) {
170
+ const interfaces = type.getInterfaces();
171
+ return interfaces.length
172
+ ? ' implements ' + interfaces.map((i) => i.name).join(' & ')
173
+ : '';
174
+ }
175
+
176
+ function printObject(type) {
177
+ return (
178
+ printDescription(type) +
179
+ `type ${type.name}` +
180
+ printImplementedInterfaces(type) +
181
+ printFields(type)
182
+ );
183
+ }
184
+
185
+ function printInterface(type) {
186
+ return (
187
+ printDescription(type) +
188
+ `interface ${type.name}` +
189
+ printImplementedInterfaces(type) +
190
+ printFields(type)
191
+ );
192
+ }
193
+
194
+ function printUnion(type) {
195
+ const types = type.getTypes();
196
+ const possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
197
+ return printDescription(type) + 'union ' + type.name + possibleTypes;
198
+ }
199
+
200
+ function printEnum(type) {
201
+ const values = type
202
+ .getValues()
203
+ .map(
204
+ (value, i) =>
205
+ printDescription(value, ' ', !i) +
206
+ ' ' +
207
+ value.name +
208
+ printDeprecated(value.deprecationReason),
209
+ );
210
+ return printDescription(type) + `enum ${type.name}` + printBlock(values);
211
+ }
212
+
213
+ function printInputObject(type) {
214
+ const fields = Object.values(type.getFields()).map(
215
+ (f, i) => printDescription(f, ' ', !i) + ' ' + printInputValue(f),
216
+ );
217
+ return printDescription(type) + `input ${type.name}` + printBlock(fields);
218
+ }
219
+
220
+ function printFields(type) {
221
+ const fields = Object.values(type.getFields()).map(
222
+ (f, i) =>
223
+ printDescription(f, ' ', !i) +
224
+ ' ' +
225
+ f.name +
226
+ printArgs(f.args, ' ') +
227
+ ': ' +
228
+ String(f.type) +
229
+ printDeprecated(f.deprecationReason),
230
+ );
231
+ return printBlock(fields);
232
+ }
233
+
234
+ function printBlock(items) {
235
+ return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
236
+ }
237
+
238
+ function printArgs(args, indentation = '') {
239
+ if (args.length === 0) {
240
+ return '';
241
+ } // If every arg does not have a description, print them on one line.
242
+
243
+ if (args.every((arg) => !arg.description)) {
244
+ return '(' + args.map(printInputValue).join(', ') + ')';
245
+ }
246
+
247
+ return (
248
+ '(\n' +
249
+ args
250
+ .map(
251
+ (arg, i) =>
252
+ printDescription(arg, ' ' + indentation, !i) +
253
+ ' ' +
254
+ indentation +
255
+ printInputValue(arg),
256
+ )
257
+ .join('\n') +
258
+ '\n' +
259
+ indentation +
260
+ ')'
261
+ );
262
+ }
263
+
264
+ function printInputValue(arg) {
265
+ const defaultAST = (0, _astFromValue.astFromValue)(
266
+ arg.defaultValue,
267
+ arg.type,
268
+ );
269
+ let argDecl = arg.name + ': ' + String(arg.type);
270
+
271
+ if (defaultAST) {
272
+ argDecl += ` = ${(0, _printer.print)(defaultAST)}`;
273
+ }
274
+
275
+ return argDecl + printDeprecated(arg.deprecationReason);
276
+ }
277
+
278
+ function printDirective(directive) {
279
+ return (
280
+ printDescription(directive) +
281
+ 'directive @' +
282
+ directive.name +
283
+ printArgs(directive.args) +
284
+ (directive.isRepeatable ? ' repeatable' : '') +
285
+ ' on ' +
286
+ directive.locations.join(' | ')
287
+ );
288
+ }
289
+
290
+ function printDeprecated(reason) {
291
+ if (reason == null) {
292
+ return '';
293
+ }
294
+
295
+ if (reason !== _directives.DEFAULT_DEPRECATION_REASON) {
296
+ const astValue = (0, _printer.print)({
297
+ kind: _kinds.Kind.STRING,
298
+ value: reason,
299
+ });
300
+ return ` @deprecated(reason: ${astValue})`;
301
+ }
302
+
303
+ return ' @deprecated';
304
+ }
305
+
306
+ function printSpecifiedByURL(scalar) {
307
+ if (scalar.specifiedByURL == null) {
308
+ return '';
309
+ }
310
+
311
+ const astValue = (0, _printer.print)({
312
+ kind: _kinds.Kind.STRING,
313
+ value: scalar.specifiedByURL,
314
+ });
315
+ return ` @specifiedBy(url: ${astValue})`;
316
+ }
317
+
318
+ function printDescription(def, indentation = '', firstInBlock = true) {
319
+ const { description } = def;
320
+
321
+ if (description == null) {
322
+ return '';
323
+ }
324
+
325
+ const blockString = (0, _printer.print)({
326
+ kind: _kinds.Kind.STRING,
327
+ value: description,
328
+ block: (0, _blockString.isPrintableAsBlockString)(description),
329
+ });
330
+ const prefix =
331
+ indentation && !firstInBlock ? '\n' + indentation : indentation;
332
+ return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
333
+ }