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,309 @@
1
+ import { inspect } from '../jsutils/inspect.mjs';
2
+ import { invariant } from '../jsutils/invariant.mjs';
3
+ import { isPrintableAsBlockString } from '../language/blockString.mjs';
4
+ import { Kind } from '../language/kinds.mjs';
5
+ import { print } from '../language/printer.mjs';
6
+ import {
7
+ isEnumType,
8
+ isInputObjectType,
9
+ isInterfaceType,
10
+ isObjectType,
11
+ isScalarType,
12
+ isUnionType,
13
+ } from '../type/definition.mjs';
14
+ import {
15
+ DEFAULT_DEPRECATION_REASON,
16
+ isSpecifiedDirective,
17
+ } from '../type/directives.mjs';
18
+ import { isIntrospectionType } from '../type/introspection.mjs';
19
+ import { isSpecifiedScalarType } from '../type/scalars.mjs';
20
+ import { astFromValue } from './astFromValue.mjs';
21
+ export function printSchema(schema) {
22
+ return printFilteredSchema(
23
+ schema,
24
+ (n) => !isSpecifiedDirective(n),
25
+ isDefinedType,
26
+ );
27
+ }
28
+ export function printIntrospectionSchema(schema) {
29
+ return printFilteredSchema(schema, isSpecifiedDirective, isIntrospectionType);
30
+ }
31
+
32
+ function isDefinedType(type) {
33
+ return !isSpecifiedScalarType(type) && !isIntrospectionType(type);
34
+ }
35
+
36
+ function printFilteredSchema(schema, directiveFilter, typeFilter) {
37
+ const directives = schema.getDirectives().filter(directiveFilter);
38
+ const types = Object.values(schema.getTypeMap()).filter(typeFilter);
39
+ return [
40
+ printSchemaDefinition(schema),
41
+ ...directives.map((directive) => printDirective(directive)),
42
+ ...types.map((type) => printType(type)),
43
+ ]
44
+ .filter(Boolean)
45
+ .join('\n\n');
46
+ }
47
+
48
+ function printSchemaDefinition(schema) {
49
+ if (schema.description == null && isSchemaOfCommonNames(schema)) {
50
+ return;
51
+ }
52
+
53
+ const operationTypes = [];
54
+ const queryType = schema.getQueryType();
55
+
56
+ if (queryType) {
57
+ operationTypes.push(` query: ${queryType.name}`);
58
+ }
59
+
60
+ const mutationType = schema.getMutationType();
61
+
62
+ if (mutationType) {
63
+ operationTypes.push(` mutation: ${mutationType.name}`);
64
+ }
65
+
66
+ const subscriptionType = schema.getSubscriptionType();
67
+
68
+ if (subscriptionType) {
69
+ operationTypes.push(` subscription: ${subscriptionType.name}`);
70
+ }
71
+
72
+ return printDescription(schema) + `schema {\n${operationTypes.join('\n')}\n}`;
73
+ }
74
+ /**
75
+ * GraphQL schema define root types for each type of operation. These types are
76
+ * the same as any other type and can be named in any manner, however there is
77
+ * a common naming convention:
78
+ *
79
+ * ```graphql
80
+ * schema {
81
+ * query: Query
82
+ * mutation: Mutation
83
+ * subscription: Subscription
84
+ * }
85
+ * ```
86
+ *
87
+ * When using this naming convention, the schema description can be omitted.
88
+ */
89
+
90
+ function isSchemaOfCommonNames(schema) {
91
+ const queryType = schema.getQueryType();
92
+
93
+ if (queryType && queryType.name !== 'Query') {
94
+ return false;
95
+ }
96
+
97
+ const mutationType = schema.getMutationType();
98
+
99
+ if (mutationType && mutationType.name !== 'Mutation') {
100
+ return false;
101
+ }
102
+
103
+ const subscriptionType = schema.getSubscriptionType();
104
+
105
+ if (subscriptionType && subscriptionType.name !== 'Subscription') {
106
+ return false;
107
+ }
108
+
109
+ return true;
110
+ }
111
+
112
+ export function printType(type) {
113
+ if (isScalarType(type)) {
114
+ return printScalar(type);
115
+ }
116
+
117
+ if (isObjectType(type)) {
118
+ return printObject(type);
119
+ }
120
+
121
+ if (isInterfaceType(type)) {
122
+ return printInterface(type);
123
+ }
124
+
125
+ if (isUnionType(type)) {
126
+ return printUnion(type);
127
+ }
128
+
129
+ if (isEnumType(type)) {
130
+ return printEnum(type);
131
+ }
132
+
133
+ if (isInputObjectType(type)) {
134
+ return printInputObject(type);
135
+ }
136
+ /* c8 ignore next 3 */
137
+ // Not reachable, all possible types have been considered.
138
+
139
+ false || invariant(false, 'Unexpected type: ' + inspect(type));
140
+ }
141
+
142
+ function printScalar(type) {
143
+ return (
144
+ printDescription(type) + `scalar ${type.name}` + printSpecifiedByURL(type)
145
+ );
146
+ }
147
+
148
+ function printImplementedInterfaces(type) {
149
+ const interfaces = type.getInterfaces();
150
+ return interfaces.length
151
+ ? ' implements ' + interfaces.map((i) => i.name).join(' & ')
152
+ : '';
153
+ }
154
+
155
+ function printObject(type) {
156
+ return (
157
+ printDescription(type) +
158
+ `type ${type.name}` +
159
+ printImplementedInterfaces(type) +
160
+ printFields(type)
161
+ );
162
+ }
163
+
164
+ function printInterface(type) {
165
+ return (
166
+ printDescription(type) +
167
+ `interface ${type.name}` +
168
+ printImplementedInterfaces(type) +
169
+ printFields(type)
170
+ );
171
+ }
172
+
173
+ function printUnion(type) {
174
+ const types = type.getTypes();
175
+ const possibleTypes = types.length ? ' = ' + types.join(' | ') : '';
176
+ return printDescription(type) + 'union ' + type.name + possibleTypes;
177
+ }
178
+
179
+ function printEnum(type) {
180
+ const values = type
181
+ .getValues()
182
+ .map(
183
+ (value, i) =>
184
+ printDescription(value, ' ', !i) +
185
+ ' ' +
186
+ value.name +
187
+ printDeprecated(value.deprecationReason),
188
+ );
189
+ return printDescription(type) + `enum ${type.name}` + printBlock(values);
190
+ }
191
+
192
+ function printInputObject(type) {
193
+ const fields = Object.values(type.getFields()).map(
194
+ (f, i) => printDescription(f, ' ', !i) + ' ' + printInputValue(f),
195
+ );
196
+ return printDescription(type) + `input ${type.name}` + printBlock(fields);
197
+ }
198
+
199
+ function printFields(type) {
200
+ const fields = Object.values(type.getFields()).map(
201
+ (f, i) =>
202
+ printDescription(f, ' ', !i) +
203
+ ' ' +
204
+ f.name +
205
+ printArgs(f.args, ' ') +
206
+ ': ' +
207
+ String(f.type) +
208
+ printDeprecated(f.deprecationReason),
209
+ );
210
+ return printBlock(fields);
211
+ }
212
+
213
+ function printBlock(items) {
214
+ return items.length !== 0 ? ' {\n' + items.join('\n') + '\n}' : '';
215
+ }
216
+
217
+ function printArgs(args, indentation = '') {
218
+ if (args.length === 0) {
219
+ return '';
220
+ } // If every arg does not have a description, print them on one line.
221
+
222
+ if (args.every((arg) => !arg.description)) {
223
+ return '(' + args.map(printInputValue).join(', ') + ')';
224
+ }
225
+
226
+ return (
227
+ '(\n' +
228
+ args
229
+ .map(
230
+ (arg, i) =>
231
+ printDescription(arg, ' ' + indentation, !i) +
232
+ ' ' +
233
+ indentation +
234
+ printInputValue(arg),
235
+ )
236
+ .join('\n') +
237
+ '\n' +
238
+ indentation +
239
+ ')'
240
+ );
241
+ }
242
+
243
+ function printInputValue(arg) {
244
+ const defaultAST = astFromValue(arg.defaultValue, arg.type);
245
+ let argDecl = arg.name + ': ' + String(arg.type);
246
+
247
+ if (defaultAST) {
248
+ argDecl += ` = ${print(defaultAST)}`;
249
+ }
250
+
251
+ return argDecl + printDeprecated(arg.deprecationReason);
252
+ }
253
+
254
+ function printDirective(directive) {
255
+ return (
256
+ printDescription(directive) +
257
+ 'directive @' +
258
+ directive.name +
259
+ printArgs(directive.args) +
260
+ (directive.isRepeatable ? ' repeatable' : '') +
261
+ ' on ' +
262
+ directive.locations.join(' | ')
263
+ );
264
+ }
265
+
266
+ function printDeprecated(reason) {
267
+ if (reason == null) {
268
+ return '';
269
+ }
270
+
271
+ if (reason !== DEFAULT_DEPRECATION_REASON) {
272
+ const astValue = print({
273
+ kind: Kind.STRING,
274
+ value: reason,
275
+ });
276
+ return ` @deprecated(reason: ${astValue})`;
277
+ }
278
+
279
+ return ' @deprecated';
280
+ }
281
+
282
+ function printSpecifiedByURL(scalar) {
283
+ if (scalar.specifiedByURL == null) {
284
+ return '';
285
+ }
286
+
287
+ const astValue = print({
288
+ kind: Kind.STRING,
289
+ value: scalar.specifiedByURL,
290
+ });
291
+ return ` @specifiedBy(url: ${astValue})`;
292
+ }
293
+
294
+ function printDescription(def, indentation = '', firstInBlock = true) {
295
+ const { description } = def;
296
+
297
+ if (description == null) {
298
+ return '';
299
+ }
300
+
301
+ const blockString = print({
302
+ kind: Kind.STRING,
303
+ value: description,
304
+ block: isPrintableAsBlockString(description),
305
+ });
306
+ const prefix =
307
+ indentation && !firstInBlock ? '\n' + indentation : indentation;
308
+ return prefix + blockString.replace(/\n/g, '\n' + indentation) + '\n';
309
+ }
@@ -0,0 +1,11 @@
1
+ import type { ObjMap } from '../jsutils/ObjMap';
2
+ import type { DocumentNode } from '../language/ast';
3
+ /**
4
+ * separateOperations accepts a single AST document which may contain many
5
+ * operations and fragments and returns a collection of AST documents each of
6
+ * which contains a single operation as well the fragment definitions it
7
+ * refers to.
8
+ */
9
+ export declare function separateOperations(
10
+ documentAST: DocumentNode,
11
+ ): ObjMap<DocumentNode>;
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.separateOperations = separateOperations;
7
+
8
+ var _kinds = require('../language/kinds.js');
9
+
10
+ var _visitor = require('../language/visitor.js');
11
+
12
+ /**
13
+ * separateOperations accepts a single AST document which may contain many
14
+ * operations and fragments and returns a collection of AST documents each of
15
+ * which contains a single operation as well the fragment definitions it
16
+ * refers to.
17
+ */
18
+ function separateOperations(documentAST) {
19
+ const operations = [];
20
+ const depGraph = Object.create(null); // Populate metadata and build a dependency graph.
21
+
22
+ for (const definitionNode of documentAST.definitions) {
23
+ switch (definitionNode.kind) {
24
+ case _kinds.Kind.OPERATION_DEFINITION:
25
+ operations.push(definitionNode);
26
+ break;
27
+
28
+ case _kinds.Kind.FRAGMENT_DEFINITION:
29
+ depGraph[definitionNode.name.value] = collectDependencies(
30
+ definitionNode.selectionSet,
31
+ );
32
+ break;
33
+
34
+ default: // ignore non-executable definitions
35
+ }
36
+ } // For each operation, produce a new synthesized AST which includes only what
37
+ // is necessary for completing that operation.
38
+
39
+ const separatedDocumentASTs = Object.create(null);
40
+
41
+ for (const operation of operations) {
42
+ const dependencies = new Set();
43
+
44
+ for (const fragmentName of collectDependencies(operation.selectionSet)) {
45
+ collectTransitiveDependencies(dependencies, depGraph, fragmentName);
46
+ } // Provides the empty string for anonymous operations.
47
+
48
+ const operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted
49
+ // to retain the same order as the original document.
50
+
51
+ separatedDocumentASTs[operationName] = {
52
+ kind: _kinds.Kind.DOCUMENT,
53
+ definitions: documentAST.definitions.filter(
54
+ (node) =>
55
+ node === operation ||
56
+ (node.kind === _kinds.Kind.FRAGMENT_DEFINITION &&
57
+ dependencies.has(node.name.value)),
58
+ ),
59
+ };
60
+ }
61
+
62
+ return separatedDocumentASTs;
63
+ }
64
+
65
+ // From a dependency graph, collects a list of transitive dependencies by
66
+ // recursing through a dependency graph.
67
+ function collectTransitiveDependencies(collected, depGraph, fromName) {
68
+ if (!collected.has(fromName)) {
69
+ collected.add(fromName);
70
+ const immediateDeps = depGraph[fromName];
71
+
72
+ if (immediateDeps !== undefined) {
73
+ for (const toName of immediateDeps) {
74
+ collectTransitiveDependencies(collected, depGraph, toName);
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
+ function collectDependencies(selectionSet) {
81
+ const dependencies = [];
82
+ (0, _visitor.visit)(selectionSet, {
83
+ FragmentSpread(node) {
84
+ dependencies.push(node.name.value);
85
+ },
86
+ });
87
+ return dependencies;
88
+ }
@@ -0,0 +1,80 @@
1
+ import { Kind } from '../language/kinds.mjs';
2
+ import { visit } from '../language/visitor.mjs';
3
+ /**
4
+ * separateOperations accepts a single AST document which may contain many
5
+ * operations and fragments and returns a collection of AST documents each of
6
+ * which contains a single operation as well the fragment definitions it
7
+ * refers to.
8
+ */
9
+
10
+ export function separateOperations(documentAST) {
11
+ const operations = [];
12
+ const depGraph = Object.create(null); // Populate metadata and build a dependency graph.
13
+
14
+ for (const definitionNode of documentAST.definitions) {
15
+ switch (definitionNode.kind) {
16
+ case Kind.OPERATION_DEFINITION:
17
+ operations.push(definitionNode);
18
+ break;
19
+
20
+ case Kind.FRAGMENT_DEFINITION:
21
+ depGraph[definitionNode.name.value] = collectDependencies(
22
+ definitionNode.selectionSet,
23
+ );
24
+ break;
25
+
26
+ default: // ignore non-executable definitions
27
+ }
28
+ } // For each operation, produce a new synthesized AST which includes only what
29
+ // is necessary for completing that operation.
30
+
31
+ const separatedDocumentASTs = Object.create(null);
32
+
33
+ for (const operation of operations) {
34
+ const dependencies = new Set();
35
+
36
+ for (const fragmentName of collectDependencies(operation.selectionSet)) {
37
+ collectTransitiveDependencies(dependencies, depGraph, fragmentName);
38
+ } // Provides the empty string for anonymous operations.
39
+
40
+ const operationName = operation.name ? operation.name.value : ''; // The list of definition nodes to be included for this operation, sorted
41
+ // to retain the same order as the original document.
42
+
43
+ separatedDocumentASTs[operationName] = {
44
+ kind: Kind.DOCUMENT,
45
+ definitions: documentAST.definitions.filter(
46
+ (node) =>
47
+ node === operation ||
48
+ (node.kind === Kind.FRAGMENT_DEFINITION &&
49
+ dependencies.has(node.name.value)),
50
+ ),
51
+ };
52
+ }
53
+
54
+ return separatedDocumentASTs;
55
+ }
56
+
57
+ // From a dependency graph, collects a list of transitive dependencies by
58
+ // recursing through a dependency graph.
59
+ function collectTransitiveDependencies(collected, depGraph, fromName) {
60
+ if (!collected.has(fromName)) {
61
+ collected.add(fromName);
62
+ const immediateDeps = depGraph[fromName];
63
+
64
+ if (immediateDeps !== undefined) {
65
+ for (const toName of immediateDeps) {
66
+ collectTransitiveDependencies(collected, depGraph, toName);
67
+ }
68
+ }
69
+ }
70
+ }
71
+
72
+ function collectDependencies(selectionSet) {
73
+ const dependencies = [];
74
+ visit(selectionSet, {
75
+ FragmentSpread(node) {
76
+ dependencies.push(node.name.value);
77
+ },
78
+ });
79
+ return dependencies;
80
+ }
@@ -0,0 +1,9 @@
1
+ import type { ValueNode } from '../language/ast';
2
+ /**
3
+ * Sort ValueNode.
4
+ *
5
+ * This function returns a sorted copy of the given ValueNode.
6
+ *
7
+ * @internal
8
+ */
9
+ export declare function sortValueNode(valueNode: ValueNode): ValueNode;
@@ -0,0 +1,47 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', {
4
+ value: true,
5
+ });
6
+ exports.sortValueNode = sortValueNode;
7
+
8
+ var _naturalCompare = require('../jsutils/naturalCompare.js');
9
+
10
+ var _kinds = require('../language/kinds.js');
11
+
12
+ /**
13
+ * Sort ValueNode.
14
+ *
15
+ * This function returns a sorted copy of the given ValueNode.
16
+ *
17
+ * @internal
18
+ */
19
+ function sortValueNode(valueNode) {
20
+ switch (valueNode.kind) {
21
+ case _kinds.Kind.OBJECT:
22
+ return { ...valueNode, fields: sortFields(valueNode.fields) };
23
+
24
+ case _kinds.Kind.LIST:
25
+ return { ...valueNode, values: valueNode.values.map(sortValueNode) };
26
+
27
+ case _kinds.Kind.INT:
28
+ case _kinds.Kind.FLOAT:
29
+ case _kinds.Kind.STRING:
30
+ case _kinds.Kind.BOOLEAN:
31
+ case _kinds.Kind.NULL:
32
+ case _kinds.Kind.ENUM:
33
+ case _kinds.Kind.VARIABLE:
34
+ return valueNode;
35
+ }
36
+ }
37
+
38
+ function sortFields(fields) {
39
+ return fields
40
+ .map((fieldNode) => ({
41
+ ...fieldNode,
42
+ value: sortValueNode(fieldNode.value),
43
+ }))
44
+ .sort((fieldA, fieldB) =>
45
+ (0, _naturalCompare.naturalCompare)(fieldA.name.value, fieldB.name.value),
46
+ );
47
+ }
@@ -0,0 +1,39 @@
1
+ import { naturalCompare } from '../jsutils/naturalCompare.mjs';
2
+ import { Kind } from '../language/kinds.mjs';
3
+ /**
4
+ * Sort ValueNode.
5
+ *
6
+ * This function returns a sorted copy of the given ValueNode.
7
+ *
8
+ * @internal
9
+ */
10
+
11
+ export function sortValueNode(valueNode) {
12
+ switch (valueNode.kind) {
13
+ case Kind.OBJECT:
14
+ return { ...valueNode, fields: sortFields(valueNode.fields) };
15
+
16
+ case Kind.LIST:
17
+ return { ...valueNode, values: valueNode.values.map(sortValueNode) };
18
+
19
+ case Kind.INT:
20
+ case Kind.FLOAT:
21
+ case Kind.STRING:
22
+ case Kind.BOOLEAN:
23
+ case Kind.NULL:
24
+ case Kind.ENUM:
25
+ case Kind.VARIABLE:
26
+ return valueNode;
27
+ }
28
+ }
29
+
30
+ function sortFields(fields) {
31
+ return fields
32
+ .map((fieldNode) => ({
33
+ ...fieldNode,
34
+ value: sortValueNode(fieldNode.value),
35
+ }))
36
+ .sort((fieldA, fieldB) =>
37
+ naturalCompare(fieldA.name.value, fieldB.name.value),
38
+ );
39
+ }
@@ -0,0 +1,62 @@
1
+ import { Source } from '../language/source';
2
+ /**
3
+ * Strips characters that are not significant to the validity or execution
4
+ * of a GraphQL document:
5
+ * - UnicodeBOM
6
+ * - WhiteSpace
7
+ * - LineTerminator
8
+ * - Comment
9
+ * - Comma
10
+ * - BlockString indentation
11
+ *
12
+ * Note: It is required to have a delimiter character between neighboring
13
+ * non-punctuator tokens and this function always uses single space as delimiter.
14
+ *
15
+ * It is guaranteed that both input and output documents if parsed would result
16
+ * in the exact same AST except for nodes location.
17
+ *
18
+ * Warning: It is guaranteed that this function will always produce stable results.
19
+ * However, it's not guaranteed that it will stay the same between different
20
+ * releases due to bugfixes or changes in the GraphQL specification.
21
+ *
22
+ * Query example:
23
+ *
24
+ * ```graphql
25
+ * query SomeQuery($foo: String!, $bar: String) {
26
+ * someField(foo: $foo, bar: $bar) {
27
+ * a
28
+ * b {
29
+ * c
30
+ * d
31
+ * }
32
+ * }
33
+ * }
34
+ * ```
35
+ *
36
+ * Becomes:
37
+ *
38
+ * ```graphql
39
+ * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}
40
+ * ```
41
+ *
42
+ * SDL example:
43
+ *
44
+ * ```graphql
45
+ * """
46
+ * Type description
47
+ * """
48
+ * type Foo {
49
+ * """
50
+ * Field description
51
+ * """
52
+ * bar: String
53
+ * }
54
+ * ```
55
+ *
56
+ * Becomes:
57
+ *
58
+ * ```graphql
59
+ * """Type description""" type Foo{"""Field description""" bar:String}
60
+ * ```
61
+ */
62
+ export declare function stripIgnoredCharacters(source: string | Source): string;