graphql 15.3.0 → 15.5.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 (337) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +10 -0
  3. package/error/GraphQLError.js +8 -8
  4. package/error/GraphQLError.js.flow +2 -3
  5. package/error/GraphQLError.mjs +2 -2
  6. package/error/formatError.js +1 -1
  7. package/error/formatError.js.flow +0 -1
  8. package/error/index.js +4 -4
  9. package/error/index.js.flow +0 -1
  10. package/error/locatedError.d.ts +2 -2
  11. package/error/locatedError.js +10 -5
  12. package/error/locatedError.js.flow +10 -4
  13. package/error/locatedError.mjs +6 -4
  14. package/error/syntaxError.js +1 -1
  15. package/error/syntaxError.js.flow +0 -1
  16. package/execution/execute.d.ts +0 -15
  17. package/execution/execute.js +104 -104
  18. package/execution/execute.js.flow +119 -133
  19. package/execution/execute.mjs +86 -82
  20. package/execution/index.js +3 -3
  21. package/execution/index.js.flow +0 -1
  22. package/execution/values.js +11 -11
  23. package/execution/values.js.flow +0 -1
  24. package/graphql.js +5 -5
  25. package/graphql.js.flow +0 -1
  26. package/index.d.ts +1 -0
  27. package/index.js +9 -9
  28. package/index.js.flow +0 -1
  29. package/jsutils/ObjMap.js.flow +0 -1
  30. package/jsutils/Path.js.flow +0 -1
  31. package/jsutils/PromiseOrValue.js.flow +0 -1
  32. package/jsutils/defineInspect.js +2 -2
  33. package/jsutils/defineInspect.js.flow +0 -1
  34. package/jsutils/devAssert.js.flow +0 -1
  35. package/jsutils/didYouMean.js.flow +0 -1
  36. package/jsutils/identityFunc.js.flow +0 -1
  37. package/jsutils/inspect.js +1 -2
  38. package/jsutils/inspect.js.flow +10 -8
  39. package/jsutils/inspect.mjs +1 -1
  40. package/jsutils/instanceOf.js +15 -9
  41. package/jsutils/instanceOf.js.flow +13 -7
  42. package/jsutils/instanceOf.mjs +13 -5
  43. package/jsutils/invariant.js.flow +0 -1
  44. package/jsutils/isAsyncIterable.js +13 -0
  45. package/jsutils/isAsyncIterable.js.flow +14 -0
  46. package/jsutils/isAsyncIterable.mjs +10 -0
  47. package/jsutils/isObjectLike.js.flow +0 -1
  48. package/jsutils/isPromise.js.flow +0 -1
  49. package/jsutils/keyMap.js.flow +0 -1
  50. package/jsutils/keyValMap.js.flow +0 -1
  51. package/jsutils/mapValue.js +1 -1
  52. package/jsutils/mapValue.js.flow +0 -1
  53. package/jsutils/memoize3.js +2 -5
  54. package/jsutils/memoize3.js.flow +2 -5
  55. package/jsutils/memoize3.mjs +2 -5
  56. package/jsutils/naturalCompare.js +69 -0
  57. package/jsutils/naturalCompare.js.flow +59 -0
  58. package/jsutils/naturalCompare.mjs +61 -0
  59. package/jsutils/nodejsCustomInspectSymbol.js.flow +0 -1
  60. package/jsutils/printPathArray.js.flow +0 -1
  61. package/jsutils/promiseForObject.js.flow +0 -1
  62. package/jsutils/promiseReduce.js +1 -1
  63. package/jsutils/promiseReduce.js.flow +0 -1
  64. package/jsutils/safeArrayFrom.js +73 -0
  65. package/jsutils/safeArrayFrom.js.flow +59 -0
  66. package/jsutils/safeArrayFrom.mjs +66 -0
  67. package/jsutils/suggestionList.js +5 -1
  68. package/jsutils/suggestionList.js.flow +3 -2
  69. package/jsutils/suggestionList.mjs +3 -1
  70. package/jsutils/toObjMap.js +1 -1
  71. package/jsutils/toObjMap.js.flow +0 -1
  72. package/language/ast.js +1 -1
  73. package/language/ast.js.flow +0 -1
  74. package/language/blockString.d.ts +1 -1
  75. package/language/blockString.js +53 -32
  76. package/language/blockString.js.flow +51 -36
  77. package/language/blockString.mjs +54 -33
  78. package/language/directiveLocation.js.flow +0 -1
  79. package/language/experimentalOnlineParser/grammar.d.ts +1006 -0
  80. package/language/experimentalOnlineParser/grammar.js +987 -0
  81. package/language/experimentalOnlineParser/grammar.js.flow +1000 -0
  82. package/language/experimentalOnlineParser/grammar.mjs +980 -0
  83. package/language/experimentalOnlineParser/index.d.ts +6 -0
  84. package/language/experimentalOnlineParser/index.js +31 -0
  85. package/language/experimentalOnlineParser/index.js.flow +7 -0
  86. package/language/experimentalOnlineParser/index.mjs +1 -0
  87. package/language/experimentalOnlineParser/onlineParser.d.ts +125 -0
  88. package/language/experimentalOnlineParser/onlineParser.js +604 -0
  89. package/language/experimentalOnlineParser/onlineParser.js.flow +723 -0
  90. package/language/experimentalOnlineParser/onlineParser.mjs +587 -0
  91. package/language/index.js +12 -12
  92. package/language/index.js.flow +0 -1
  93. package/language/kinds.js.flow +0 -1
  94. package/language/lexer.js +242 -183
  95. package/language/lexer.js.flow +188 -184
  96. package/language/lexer.mjs +238 -179
  97. package/language/location.js.flow +0 -1
  98. package/language/parser.js +73 -68
  99. package/language/parser.js.flow +62 -57
  100. package/language/parser.mjs +64 -60
  101. package/language/predicates.js +1 -1
  102. package/language/predicates.js.flow +0 -1
  103. package/language/printLocation.js +1 -1
  104. package/language/printLocation.js.flow +0 -1
  105. package/language/printer.js +20 -13
  106. package/language/printer.js.flow +26 -25
  107. package/language/printer.mjs +18 -11
  108. package/language/source.d.ts +7 -0
  109. package/language/source.js +20 -3
  110. package/language/source.js.flow +21 -3
  111. package/language/source.mjs +14 -1
  112. package/language/tokenKind.js.flow +0 -1
  113. package/language/visitor.js +2 -2
  114. package/language/visitor.js.flow +0 -1
  115. package/package.json +2 -3
  116. package/polyfills/arrayFrom.js +2 -2
  117. package/polyfills/arrayFrom.js.flow +1 -2
  118. package/polyfills/arrayFrom.mjs +1 -1
  119. package/polyfills/find.js +1 -1
  120. package/polyfills/find.js.flow +1 -2
  121. package/polyfills/find.mjs +1 -1
  122. package/polyfills/isFinite.js +1 -1
  123. package/polyfills/isFinite.js.flow +1 -2
  124. package/polyfills/isFinite.mjs +1 -1
  125. package/polyfills/isInteger.js +1 -1
  126. package/polyfills/isInteger.js.flow +1 -2
  127. package/polyfills/isInteger.mjs +1 -1
  128. package/polyfills/objectEntries.js +1 -1
  129. package/polyfills/objectEntries.js.flow +1 -2
  130. package/polyfills/objectEntries.mjs +1 -1
  131. package/polyfills/objectValues.js +1 -1
  132. package/polyfills/objectValues.js.flow +1 -2
  133. package/polyfills/objectValues.mjs +1 -1
  134. package/polyfills/symbols.js +3 -5
  135. package/polyfills/symbols.js.flow +9 -6
  136. package/polyfills/symbols.mjs +3 -5
  137. package/subscription/index.js +1 -1
  138. package/subscription/index.js.flow +0 -1
  139. package/subscription/mapAsyncIterator.js +2 -2
  140. package/subscription/mapAsyncIterator.js.flow +8 -9
  141. package/subscription/mapAsyncIterator.mjs +1 -1
  142. package/subscription/subscribe.js +61 -73
  143. package/subscription/subscribe.js.flow +71 -85
  144. package/subscription/subscribe.mjs +53 -65
  145. package/type/definition.d.ts +16 -6
  146. package/type/definition.js +37 -32
  147. package/type/definition.js.flow +93 -63
  148. package/type/definition.mjs +19 -14
  149. package/type/directives.js +17 -16
  150. package/type/directives.js.flow +20 -13
  151. package/type/directives.mjs +6 -5
  152. package/type/index.js +6 -6
  153. package/type/index.js.flow +0 -1
  154. package/type/introspection.js +86 -65
  155. package/type/introspection.js.flow +75 -43
  156. package/type/introspection.mjs +79 -58
  157. package/type/scalars.js +9 -9
  158. package/type/scalars.js.flow +1 -2
  159. package/type/scalars.mjs +1 -1
  160. package/type/schema.js +13 -13
  161. package/type/schema.js.flow +2 -3
  162. package/type/schema.mjs +1 -1
  163. package/type/validate.js +52 -19
  164. package/type/validate.js.flow +54 -8
  165. package/type/validate.mjs +43 -9
  166. package/utilities/TypeInfo.js +7 -7
  167. package/utilities/TypeInfo.js.flow +1 -2
  168. package/utilities/assertValidName.js +2 -2
  169. package/utilities/assertValidName.js.flow +0 -1
  170. package/utilities/astFromValue.js +14 -16
  171. package/utilities/astFromValue.js.flow +6 -7
  172. package/utilities/astFromValue.mjs +6 -7
  173. package/utilities/buildASTSchema.js +17 -27
  174. package/utilities/buildASTSchema.js.flow +5 -21
  175. package/utilities/buildASTSchema.mjs +11 -21
  176. package/utilities/buildClientSchema.js +16 -15
  177. package/utilities/buildClientSchema.js.flow +28 -12
  178. package/utilities/buildClientSchema.mjs +5 -4
  179. package/utilities/coerceInputValue.js +17 -18
  180. package/utilities/coerceInputValue.js.flow +12 -10
  181. package/utilities/coerceInputValue.mjs +7 -7
  182. package/utilities/concatAST.js +9 -8
  183. package/utilities/concatAST.js.flow +8 -8
  184. package/utilities/concatAST.mjs +9 -6
  185. package/utilities/extendSchema.js +26 -19
  186. package/utilities/extendSchema.js.flow +19 -7
  187. package/utilities/extendSchema.mjs +8 -1
  188. package/utilities/findBreakingChanges.js +15 -11
  189. package/utilities/findBreakingChanges.js.flow +6 -3
  190. package/utilities/findBreakingChanges.mjs +5 -2
  191. package/utilities/findDeprecatedUsages.js +2 -2
  192. package/utilities/findDeprecatedUsages.js.flow +0 -1
  193. package/utilities/getIntrospectionQuery.d.ts +6 -0
  194. package/utilities/getIntrospectionQuery.js +8 -2
  195. package/utilities/getIntrospectionQuery.js.flow +17 -5
  196. package/utilities/getIntrospectionQuery.mjs +8 -2
  197. package/utilities/getOperationAST.js +1 -1
  198. package/utilities/getOperationAST.js.flow +0 -1
  199. package/utilities/getOperationRootType.js +1 -1
  200. package/utilities/getOperationRootType.js.flow +0 -1
  201. package/utilities/index.d.ts +3 -0
  202. package/utilities/index.js +22 -22
  203. package/utilities/index.js.flow +0 -1
  204. package/utilities/introspectionFromSchema.js +7 -5
  205. package/utilities/introspectionFromSchema.js.flow +2 -1
  206. package/utilities/introspectionFromSchema.mjs +3 -1
  207. package/utilities/lexicographicSortSchema.js +13 -9
  208. package/utilities/lexicographicSortSchema.js.flow +21 -13
  209. package/utilities/lexicographicSortSchema.mjs +5 -2
  210. package/utilities/printSchema.js +15 -16
  211. package/utilities/printSchema.js.flow +23 -16
  212. package/utilities/printSchema.mjs +5 -6
  213. package/utilities/separateOperations.js +46 -42
  214. package/utilities/separateOperations.js.flow +46 -37
  215. package/utilities/separateOperations.mjs +44 -40
  216. package/utilities/stripIgnoredCharacters.js +6 -16
  217. package/utilities/stripIgnoredCharacters.js.flow +4 -13
  218. package/utilities/stripIgnoredCharacters.mjs +3 -10
  219. package/utilities/typeComparators.js +1 -1
  220. package/utilities/typeComparators.js.flow +0 -1
  221. package/utilities/typeFromAST.js +6 -6
  222. package/utilities/typeFromAST.js.flow +2 -3
  223. package/utilities/typeFromAST.mjs +2 -2
  224. package/utilities/typedQueryDocumentNode.d.ts +20 -0
  225. package/utilities/valueFromAST.js +6 -6
  226. package/utilities/valueFromAST.js.flow +4 -2
  227. package/utilities/valueFromASTUntyped.js +4 -4
  228. package/utilities/valueFromASTUntyped.js.flow +0 -1
  229. package/validation/ValidationContext.js +3 -3
  230. package/validation/ValidationContext.js.flow +3 -4
  231. package/validation/index.js +38 -38
  232. package/validation/index.js.flow +0 -1
  233. package/validation/rules/ExecutableDefinitions.js +1 -1
  234. package/validation/rules/ExecutableDefinitions.js.flow +0 -1
  235. package/validation/rules/ExecutableDefinitionsRule.js +3 -3
  236. package/validation/rules/ExecutableDefinitionsRule.js.flow +0 -1
  237. package/validation/rules/FieldsOnCorrectTypeRule.js +8 -6
  238. package/validation/rules/FieldsOnCorrectTypeRule.js.flow +2 -2
  239. package/validation/rules/FieldsOnCorrectTypeRule.mjs +2 -1
  240. package/validation/rules/FragmentsOnCompositeTypesRule.js +4 -4
  241. package/validation/rules/FragmentsOnCompositeTypesRule.js.flow +0 -1
  242. package/validation/rules/KnownArgumentNamesRule.js +5 -5
  243. package/validation/rules/KnownArgumentNamesRule.js.flow +1 -1
  244. package/validation/rules/KnownDirectivesRule.js +6 -6
  245. package/validation/rules/KnownDirectivesRule.js.flow +4 -3
  246. package/validation/rules/KnownFragmentNamesRule.js +1 -1
  247. package/validation/rules/KnownFragmentNamesRule.js.flow +0 -1
  248. package/validation/rules/KnownTypeNamesRule.js +6 -6
  249. package/validation/rules/KnownTypeNamesRule.js.flow +1 -2
  250. package/validation/rules/LoneAnonymousOperationRule.js +2 -2
  251. package/validation/rules/LoneAnonymousOperationRule.js.flow +0 -1
  252. package/validation/rules/LoneSchemaDefinition.js +1 -1
  253. package/validation/rules/LoneSchemaDefinition.js.flow +0 -1
  254. package/validation/rules/LoneSchemaDefinitionRule.js +1 -1
  255. package/validation/rules/LoneSchemaDefinitionRule.js.flow +0 -1
  256. package/validation/rules/NoFragmentCyclesRule.js +1 -1
  257. package/validation/rules/NoFragmentCyclesRule.js.flow +1 -2
  258. package/validation/rules/NoUndefinedVariablesRule.js +1 -1
  259. package/validation/rules/NoUndefinedVariablesRule.js.flow +0 -1
  260. package/validation/rules/NoUnusedFragmentsRule.js +1 -1
  261. package/validation/rules/NoUnusedFragmentsRule.js.flow +0 -1
  262. package/validation/rules/NoUnusedVariablesRule.js +1 -1
  263. package/validation/rules/NoUnusedVariablesRule.js.flow +0 -1
  264. package/validation/rules/OverlappingFieldsCanBeMergedRule.js +20 -20
  265. package/validation/rules/OverlappingFieldsCanBeMergedRule.js.flow +14 -14
  266. package/validation/rules/OverlappingFieldsCanBeMergedRule.mjs +12 -12
  267. package/validation/rules/PossibleFragmentSpreadsRule.js +5 -5
  268. package/validation/rules/PossibleFragmentSpreadsRule.js.flow +5 -2
  269. package/validation/rules/PossibleTypeExtensions.js +1 -1
  270. package/validation/rules/PossibleTypeExtensions.js.flow +0 -1
  271. package/validation/rules/PossibleTypeExtensionsRule.js +8 -8
  272. package/validation/rules/PossibleTypeExtensionsRule.js.flow +6 -4
  273. package/validation/rules/ProvidedRequiredArgumentsRule.js +7 -7
  274. package/validation/rules/ProvidedRequiredArgumentsRule.js.flow +4 -3
  275. package/validation/rules/ScalarLeafsRule.js +3 -3
  276. package/validation/rules/ScalarLeafsRule.js.flow +0 -1
  277. package/validation/rules/SingleFieldSubscriptionsRule.js +1 -1
  278. package/validation/rules/SingleFieldSubscriptionsRule.js.flow +0 -1
  279. package/validation/rules/UniqueArgumentNamesRule.js +1 -1
  280. package/validation/rules/UniqueArgumentNamesRule.js.flow +0 -1
  281. package/validation/rules/UniqueDirectiveNames.js +1 -1
  282. package/validation/rules/UniqueDirectiveNames.js.flow +0 -1
  283. package/validation/rules/UniqueDirectiveNamesRule.js +2 -2
  284. package/validation/rules/UniqueDirectiveNamesRule.js.flow +0 -1
  285. package/validation/rules/UniqueDirectiveNamesRule.mjs +1 -1
  286. package/validation/rules/UniqueDirectivesPerLocationRule.js +4 -4
  287. package/validation/rules/UniqueDirectivesPerLocationRule.js.flow +0 -1
  288. package/validation/rules/UniqueEnumValueNames.js +1 -1
  289. package/validation/rules/UniqueEnumValueNames.js.flow +0 -1
  290. package/validation/rules/UniqueEnumValueNamesRule.js +2 -2
  291. package/validation/rules/UniqueEnumValueNamesRule.js.flow +7 -2
  292. package/validation/rules/UniqueFieldDefinitionNames.js +1 -1
  293. package/validation/rules/UniqueFieldDefinitionNames.js.flow +0 -1
  294. package/validation/rules/UniqueFieldDefinitionNamesRule.js +3 -3
  295. package/validation/rules/UniqueFieldDefinitionNamesRule.js.flow +13 -4
  296. package/validation/rules/UniqueFieldDefinitionNamesRule.mjs +1 -1
  297. package/validation/rules/UniqueFragmentNamesRule.js +1 -1
  298. package/validation/rules/UniqueFragmentNamesRule.js.flow +0 -1
  299. package/validation/rules/UniqueInputFieldNamesRule.js +1 -1
  300. package/validation/rules/UniqueInputFieldNamesRule.js.flow +0 -1
  301. package/validation/rules/UniqueOperationNamesRule.js +1 -1
  302. package/validation/rules/UniqueOperationNamesRule.js.flow +0 -1
  303. package/validation/rules/UniqueOperationTypes.js +1 -1
  304. package/validation/rules/UniqueOperationTypes.js.flow +0 -1
  305. package/validation/rules/UniqueOperationTypesRule.js +1 -1
  306. package/validation/rules/UniqueOperationTypesRule.js.flow +7 -2
  307. package/validation/rules/UniqueTypeNames.js +1 -1
  308. package/validation/rules/UniqueTypeNames.js.flow +0 -1
  309. package/validation/rules/UniqueTypeNamesRule.js +2 -2
  310. package/validation/rules/UniqueTypeNamesRule.js.flow +0 -1
  311. package/validation/rules/UniqueTypeNamesRule.mjs +1 -1
  312. package/validation/rules/UniqueVariableNamesRule.js +1 -1
  313. package/validation/rules/UniqueVariableNamesRule.js.flow +0 -1
  314. package/validation/rules/ValuesOfCorrectTypeRule.js +8 -8
  315. package/validation/rules/ValuesOfCorrectTypeRule.js.flow +0 -1
  316. package/validation/rules/VariablesAreInputTypesRule.js +4 -4
  317. package/validation/rules/VariablesAreInputTypesRule.js.flow +0 -1
  318. package/validation/rules/VariablesInAllowedPositionRule.js +6 -6
  319. package/validation/rules/VariablesInAllowedPositionRule.js.flow +0 -1
  320. package/validation/rules/custom/NoDeprecatedCustomRule.js +47 -9
  321. package/validation/rules/custom/NoDeprecatedCustomRule.js.flow +56 -13
  322. package/validation/rules/custom/NoDeprecatedCustomRule.mjs +43 -8
  323. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js +3 -3
  324. package/validation/rules/custom/NoSchemaIntrospectionCustomRule.js.flow +0 -1
  325. package/validation/specifiedRules.js +33 -33
  326. package/validation/specifiedRules.js.flow +0 -1
  327. package/validation/validate.js +7 -7
  328. package/validation/validate.js.flow +4 -5
  329. package/version.js +3 -3
  330. package/version.js.flow +3 -4
  331. package/version.mjs +3 -3
  332. package/jsutils/isCollection.js +0 -47
  333. package/jsutils/isCollection.js.flow +0 -39
  334. package/jsutils/isCollection.mjs +0 -40
  335. package/polyfills/flatMap.js +0 -30
  336. package/polyfills/flatMap.js.flow +0 -28
  337. package/polyfills/flatMap.mjs +0 -23
@@ -6,19 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.buildASTSchema = buildASTSchema;
7
7
  exports.buildSchema = buildSchema;
8
8
 
9
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
9
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
10
10
 
11
- var _kinds = require("../language/kinds");
11
+ var _kinds = require("../language/kinds.js");
12
12
 
13
- var _parser = require("../language/parser");
13
+ var _parser = require("../language/parser.js");
14
14
 
15
- var _validate = require("../validation/validate");
15
+ var _validate = require("../validation/validate.js");
16
16
 
17
- var _schema = require("../type/schema");
17
+ var _schema = require("../type/schema.js");
18
18
 
19
- var _directives = require("../type/directives");
19
+ var _directives = require("../type/directives.js");
20
20
 
21
- var _extendSchema = require("./extendSchema");
21
+ var _extendSchema = require("./extendSchema.js");
22
22
 
23
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
24
 
@@ -80,28 +80,18 @@ function buildASTSchema(documentAST, options) {
80
80
 
81
81
  var directives = config.directives; // If specified directives were not explicitly declared, add them.
82
82
 
83
- if (!directives.some(function (directive) {
84
- return directive.name === 'skip';
85
- })) {
86
- directives.push(_directives.GraphQLSkipDirective);
87
- }
88
-
89
- if (!directives.some(function (directive) {
90
- return directive.name === 'include';
91
- })) {
92
- directives.push(_directives.GraphQLIncludeDirective);
93
- }
83
+ var _loop = function _loop(_i4) {
84
+ var stdDirective = _directives.specifiedDirectives[_i4];
94
85
 
95
- if (!directives.some(function (directive) {
96
- return directive.name === 'deprecated';
97
- })) {
98
- directives.push(_directives.GraphQLDeprecatedDirective);
99
- }
86
+ if (directives.every(function (directive) {
87
+ return directive.name !== stdDirective.name;
88
+ })) {
89
+ directives.push(stdDirective);
90
+ }
91
+ };
100
92
 
101
- if (!directives.some(function (directive) {
102
- return directive.name === 'specifiedBy';
103
- })) {
104
- directives.push(_directives.GraphQLSpecifiedByDirective);
93
+ for (var _i4 = 0; _i4 < _directives.specifiedDirectives.length; _i4++) {
94
+ _loop(_i4);
105
95
  }
106
96
 
107
97
  return new _schema.GraphQLSchema(config);
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import devAssert from '../jsutils/devAssert';
4
3
 
5
4
  import type { Source } from '../language/source';
@@ -12,12 +11,7 @@ import { assertValidSDL } from '../validation/validate';
12
11
 
13
12
  import type { GraphQLSchemaValidationOptions } from '../type/schema';
14
13
  import { GraphQLSchema } from '../type/schema';
15
- import {
16
- GraphQLSkipDirective,
17
- GraphQLIncludeDirective,
18
- GraphQLDeprecatedDirective,
19
- GraphQLSpecifiedByDirective,
20
- } from '../type/directives';
14
+ import { specifiedDirectives } from '../type/directives';
21
15
 
22
16
  import { extendSchemaImpl } from './extendSchema';
23
17
 
@@ -102,20 +96,10 @@ export function buildASTSchema(
102
96
 
103
97
  const { directives } = config;
104
98
  // If specified directives were not explicitly declared, add them.
105
- if (!directives.some((directive) => directive.name === 'skip')) {
106
- directives.push(GraphQLSkipDirective);
107
- }
108
-
109
- if (!directives.some((directive) => directive.name === 'include')) {
110
- directives.push(GraphQLIncludeDirective);
111
- }
112
-
113
- if (!directives.some((directive) => directive.name === 'deprecated')) {
114
- directives.push(GraphQLDeprecatedDirective);
115
- }
116
-
117
- if (!directives.some((directive) => directive.name === 'specifiedBy')) {
118
- directives.push(GraphQLSpecifiedByDirective);
99
+ for (const stdDirective of specifiedDirectives) {
100
+ if (directives.every((directive) => directive.name !== stdDirective.name)) {
101
+ directives.push(stdDirective);
102
+ }
119
103
  }
120
104
 
121
105
  return new GraphQLSchema(config);
@@ -3,7 +3,7 @@ import { Kind } from "../language/kinds.mjs";
3
3
  import { parse } from "../language/parser.mjs";
4
4
  import { assertValidSDL } from "../validation/validate.mjs";
5
5
  import { GraphQLSchema } from "../type/schema.mjs";
6
- import { GraphQLSkipDirective, GraphQLIncludeDirective, GraphQLDeprecatedDirective, GraphQLSpecifiedByDirective } from "../type/directives.mjs";
6
+ import { specifiedDirectives } from "../type/directives.mjs";
7
7
  import { extendSchemaImpl } from "./extendSchema.mjs";
8
8
 
9
9
  /**
@@ -64,28 +64,18 @@ export function buildASTSchema(documentAST, options) {
64
64
 
65
65
  var directives = config.directives; // If specified directives were not explicitly declared, add them.
66
66
 
67
- if (!directives.some(function (directive) {
68
- return directive.name === 'skip';
69
- })) {
70
- directives.push(GraphQLSkipDirective);
71
- }
72
-
73
- if (!directives.some(function (directive) {
74
- return directive.name === 'include';
75
- })) {
76
- directives.push(GraphQLIncludeDirective);
77
- }
67
+ var _loop = function _loop(_i4) {
68
+ var stdDirective = specifiedDirectives[_i4];
78
69
 
79
- if (!directives.some(function (directive) {
80
- return directive.name === 'deprecated';
81
- })) {
82
- directives.push(GraphQLDeprecatedDirective);
83
- }
70
+ if (directives.every(function (directive) {
71
+ return directive.name !== stdDirective.name;
72
+ })) {
73
+ directives.push(stdDirective);
74
+ }
75
+ };
84
76
 
85
- if (!directives.some(function (directive) {
86
- return directive.name === 'specifiedBy';
87
- })) {
88
- directives.push(GraphQLSpecifiedByDirective);
77
+ for (var _i4 = 0; _i4 < specifiedDirectives.length; _i4++) {
78
+ _loop(_i4);
89
79
  }
90
80
 
91
81
  return new GraphQLSchema(config);
@@ -5,29 +5,29 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.buildClientSchema = buildClientSchema;
7
7
 
8
- var _objectValues = _interopRequireDefault(require("../polyfills/objectValues"));
8
+ var _objectValues = _interopRequireDefault(require("../polyfills/objectValues.js"));
9
9
 
10
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
10
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
11
11
 
12
- var _devAssert = _interopRequireDefault(require("../jsutils/devAssert"));
12
+ var _devAssert = _interopRequireDefault(require("../jsutils/devAssert.js"));
13
13
 
14
- var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap"));
14
+ var _keyValMap = _interopRequireDefault(require("../jsutils/keyValMap.js"));
15
15
 
16
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
16
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
17
17
 
18
- var _parser = require("../language/parser");
18
+ var _parser = require("../language/parser.js");
19
19
 
20
- var _schema = require("../type/schema");
20
+ var _schema = require("../type/schema.js");
21
21
 
22
- var _directives = require("../type/directives");
22
+ var _directives = require("../type/directives.js");
23
23
 
24
- var _scalars = require("../type/scalars");
24
+ var _scalars = require("../type/scalars.js");
25
25
 
26
- var _introspection = require("../type/introspection");
26
+ var _introspection = require("../type/introspection.js");
27
27
 
28
- var _definition = require("../type/definition");
28
+ var _definition = require("../type/definition.js");
29
29
 
30
- var _valueFromAST = require("./valueFromAST");
30
+ var _valueFromAST = require("./valueFromAST.js");
31
31
 
32
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
33
 
@@ -89,7 +89,7 @@ function buildClientSchema(introspection, options) {
89
89
  throw new Error('Decorated type deeper than introspection query.');
90
90
  }
91
91
 
92
- return (0, _definition.GraphQLList)(getType(itemRef));
92
+ return new _definition.GraphQLList(getType(itemRef));
93
93
  }
94
94
 
95
95
  if (typeRef.kind === _introspection.TypeKind.NON_NULL) {
@@ -100,7 +100,7 @@ function buildClientSchema(introspection, options) {
100
100
  }
101
101
 
102
102
  var nullableType = getType(nullableRef);
103
- return (0, _definition.GraphQLNonNull)((0, _definition.assertNullableType)(nullableType));
103
+ return new _definition.GraphQLNonNull((0, _definition.assertNullableType)(nullableType));
104
104
  }
105
105
 
106
106
  return getNamedType(typeRef);
@@ -307,7 +307,8 @@ function buildClientSchema(introspection, options) {
307
307
  return {
308
308
  description: inputValueIntrospection.description,
309
309
  type: type,
310
- defaultValue: defaultValue
310
+ defaultValue: defaultValue,
311
+ deprecationReason: inputValueIntrospection.deprecationReason
311
312
  };
312
313
  }
313
314
 
@@ -1,5 +1,4 @@
1
1
  // @flow strict
2
-
3
2
  import objectValues from '../polyfills/objectValues';
4
3
 
5
4
  import inspect from '../jsutils/inspect';
@@ -10,7 +9,12 @@ import isObjectLike from '../jsutils/isObjectLike';
10
9
  import { parseValue } from '../language/parser';
11
10
 
12
11
  import type { GraphQLSchemaValidationOptions } from '../type/schema';
13
- import type { GraphQLType, GraphQLNamedType } from '../type/definition';
12
+ import type {
13
+ GraphQLType,
14
+ GraphQLNamedType,
15
+ GraphQLFieldConfig,
16
+ GraphQLFieldConfigMap,
17
+ } from '../type/definition';
14
18
  import { GraphQLSchema } from '../type/schema';
15
19
  import { GraphQLDirective } from '../type/directives';
16
20
  import { specifiedScalarTypes } from '../type/scalars';
@@ -18,14 +22,14 @@ import { introspectionTypes, TypeKind } from '../type/introspection';
18
22
  import {
19
23
  isInputType,
20
24
  isOutputType,
25
+ GraphQLList,
26
+ GraphQLNonNull,
21
27
  GraphQLScalarType,
22
28
  GraphQLObjectType,
23
29
  GraphQLInterfaceType,
24
30
  GraphQLUnionType,
25
31
  GraphQLEnumType,
26
32
  GraphQLInputObjectType,
27
- GraphQLList,
28
- GraphQLNonNull,
29
33
  assertNullableType,
30
34
  assertObjectType,
31
35
  assertInterfaceType,
@@ -33,6 +37,9 @@ import {
33
37
 
34
38
  import type {
35
39
  IntrospectionQuery,
40
+ IntrospectionDirective,
41
+ IntrospectionField,
42
+ IntrospectionInputValue,
36
43
  IntrospectionType,
37
44
  IntrospectionScalarType,
38
45
  IntrospectionObjectType,
@@ -123,7 +130,7 @@ export function buildClientSchema(
123
130
  if (!itemRef) {
124
131
  throw new Error('Decorated type deeper than introspection query.');
125
132
  }
126
- return GraphQLList(getType(itemRef));
133
+ return new GraphQLList(getType(itemRef));
127
134
  }
128
135
  if (typeRef.kind === TypeKind.NON_NULL) {
129
136
  const nullableRef = typeRef.ofType;
@@ -131,7 +138,7 @@ export function buildClientSchema(
131
138
  throw new Error('Decorated type deeper than introspection query.');
132
139
  }
133
140
  const nullableType = getType(nullableRef);
134
- return GraphQLNonNull(assertNullableType(nullableType));
141
+ return new GraphQLNonNull(assertNullableType(nullableType));
135
142
  }
136
143
  return getNamedType(typeRef);
137
144
  }
@@ -205,7 +212,7 @@ export function buildClientSchema(
205
212
  implementingIntrospection:
206
213
  | IntrospectionObjectType
207
214
  | IntrospectionInterfaceType,
208
- ) {
215
+ ): Array<GraphQLInterfaceType> {
209
216
  // TODO: Temporary workaround until GraphQL ecosystem will fully support
210
217
  // 'interfaces' on interface types.
211
218
  if (
@@ -302,7 +309,9 @@ export function buildClientSchema(
302
309
  });
303
310
  }
304
311
 
305
- function buildFieldDefMap(typeIntrospection) {
312
+ function buildFieldDefMap(
313
+ typeIntrospection: IntrospectionObjectType | IntrospectionInterfaceType,
314
+ ): GraphQLFieldConfigMap<mixed, mixed> {
306
315
  if (!typeIntrospection.fields) {
307
316
  throw new Error(
308
317
  `Introspection result missing fields: ${inspect(typeIntrospection)}.`,
@@ -316,7 +325,9 @@ export function buildClientSchema(
316
325
  );
317
326
  }
318
327
 
319
- function buildField(fieldIntrospection) {
328
+ function buildField(
329
+ fieldIntrospection: IntrospectionField,
330
+ ): GraphQLFieldConfig<mixed, mixed> {
320
331
  const type = getType(fieldIntrospection.type);
321
332
  if (!isOutputType(type)) {
322
333
  const typeStr = inspect(type);
@@ -340,7 +351,9 @@ export function buildClientSchema(
340
351
  };
341
352
  }
342
353
 
343
- function buildInputValueDefMap(inputValueIntrospections) {
354
+ function buildInputValueDefMap(
355
+ inputValueIntrospections: $ReadOnlyArray<IntrospectionInputValue>,
356
+ ) {
344
357
  return keyValMap(
345
358
  inputValueIntrospections,
346
359
  (inputValue) => inputValue.name,
@@ -348,7 +361,7 @@ export function buildClientSchema(
348
361
  );
349
362
  }
350
363
 
351
- function buildInputValue(inputValueIntrospection) {
364
+ function buildInputValue(inputValueIntrospection: IntrospectionInputValue) {
352
365
  const type = getType(inputValueIntrospection.type);
353
366
  if (!isInputType(type)) {
354
367
  const typeStr = inspect(type);
@@ -365,10 +378,13 @@ export function buildClientSchema(
365
378
  description: inputValueIntrospection.description,
366
379
  type,
367
380
  defaultValue,
381
+ deprecationReason: inputValueIntrospection.deprecationReason,
368
382
  };
369
383
  }
370
384
 
371
- function buildDirective(directiveIntrospection) {
385
+ function buildDirective(
386
+ directiveIntrospection: IntrospectionDirective,
387
+ ): GraphQLDirective {
372
388
  if (!directiveIntrospection.args) {
373
389
  const directiveIntrospectionStr = inspect(directiveIntrospection);
374
390
  throw new Error(
@@ -8,7 +8,7 @@ import { GraphQLSchema } from "../type/schema.mjs";
8
8
  import { GraphQLDirective } from "../type/directives.mjs";
9
9
  import { specifiedScalarTypes } from "../type/scalars.mjs";
10
10
  import { introspectionTypes, TypeKind } from "../type/introspection.mjs";
11
- import { isInputType, isOutputType, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, GraphQLList, GraphQLNonNull, assertNullableType, assertObjectType, assertInterfaceType } from "../type/definition.mjs";
11
+ import { isInputType, isOutputType, GraphQLList, GraphQLNonNull, GraphQLScalarType, GraphQLObjectType, GraphQLInterfaceType, GraphQLUnionType, GraphQLEnumType, GraphQLInputObjectType, assertNullableType, assertObjectType, assertInterfaceType } from "../type/definition.mjs";
12
12
  import { valueFromAST } from "./valueFromAST.mjs";
13
13
  /**
14
14
  * Build a GraphQLSchema for use by client tools.
@@ -69,7 +69,7 @@ export function buildClientSchema(introspection, options) {
69
69
  throw new Error('Decorated type deeper than introspection query.');
70
70
  }
71
71
 
72
- return GraphQLList(getType(itemRef));
72
+ return new GraphQLList(getType(itemRef));
73
73
  }
74
74
 
75
75
  if (typeRef.kind === TypeKind.NON_NULL) {
@@ -80,7 +80,7 @@ export function buildClientSchema(introspection, options) {
80
80
  }
81
81
 
82
82
  var nullableType = getType(nullableRef);
83
- return GraphQLNonNull(assertNullableType(nullableType));
83
+ return new GraphQLNonNull(assertNullableType(nullableType));
84
84
  }
85
85
 
86
86
  return getNamedType(typeRef);
@@ -287,7 +287,8 @@ export function buildClientSchema(introspection, options) {
287
287
  return {
288
288
  description: inputValueIntrospection.description,
289
289
  type: type,
290
- defaultValue: defaultValue
290
+ defaultValue: defaultValue,
291
+ deprecationReason: inputValueIntrospection.deprecationReason
291
292
  };
292
293
  }
293
294
 
@@ -5,29 +5,27 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.coerceInputValue = coerceInputValue;
7
7
 
8
- var _arrayFrom = _interopRequireDefault(require("../polyfills/arrayFrom"));
8
+ var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues.js"));
9
9
 
10
- var _objectValues3 = _interopRequireDefault(require("../polyfills/objectValues"));
10
+ var _inspect = _interopRequireDefault(require("../jsutils/inspect.js"));
11
11
 
12
- var _inspect = _interopRequireDefault(require("../jsutils/inspect"));
12
+ var _invariant = _interopRequireDefault(require("../jsutils/invariant.js"));
13
13
 
14
- var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
14
+ var _didYouMean = _interopRequireDefault(require("../jsutils/didYouMean.js"));
15
15
 
16
- var _didYouMean = _interopRequireDefault(require("../jsutils/didYouMean"));
16
+ var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike.js"));
17
17
 
18
- var _isObjectLike = _interopRequireDefault(require("../jsutils/isObjectLike"));
18
+ var _safeArrayFrom = _interopRequireDefault(require("../jsutils/safeArrayFrom.js"));
19
19
 
20
- var _isCollection = _interopRequireDefault(require("../jsutils/isCollection"));
20
+ var _suggestionList = _interopRequireDefault(require("../jsutils/suggestionList.js"));
21
21
 
22
- var _suggestionList = _interopRequireDefault(require("../jsutils/suggestionList"));
22
+ var _printPathArray = _interopRequireDefault(require("../jsutils/printPathArray.js"));
23
23
 
24
- var _printPathArray = _interopRequireDefault(require("../jsutils/printPathArray"));
24
+ var _Path = require("../jsutils/Path.js");
25
25
 
26
- var _Path = require("../jsutils/Path");
26
+ var _GraphQLError = require("../error/GraphQLError.js");
27
27
 
28
- var _GraphQLError = require("../error/GraphQLError");
29
-
30
- var _definition = require("../type/definition");
28
+ var _definition = require("../type/definition.js");
31
29
 
32
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33
31
 
@@ -67,12 +65,13 @@ function coerceInputValueImpl(inputValue, type, onError, path) {
67
65
 
68
66
  if ((0, _definition.isListType)(type)) {
69
67
  var itemType = type.ofType;
68
+ var coercedList = (0, _safeArrayFrom.default)(inputValue, function (itemValue, index) {
69
+ var itemPath = (0, _Path.addPath)(path, index, undefined);
70
+ return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
71
+ });
70
72
 
71
- if ((0, _isCollection.default)(inputValue)) {
72
- return (0, _arrayFrom.default)(inputValue, function (itemValue, index) {
73
- var itemPath = (0, _Path.addPath)(path, index, undefined);
74
- return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
75
- });
73
+ if (coercedList != null) {
74
+ return coercedList;
76
75
  } // Lists accept a non-list value as a list of one.
77
76
 
78
77
 
@@ -1,6 +1,4 @@
1
1
  // @flow strict
2
-
3
- import arrayFrom from '../polyfills/arrayFrom';
4
2
  import objectValues from '../polyfills/objectValues';
5
3
 
6
4
  import type { Path } from '../jsutils/Path';
@@ -8,7 +6,7 @@ import inspect from '../jsutils/inspect';
8
6
  import invariant from '../jsutils/invariant';
9
7
  import didYouMean from '../jsutils/didYouMean';
10
8
  import isObjectLike from '../jsutils/isObjectLike';
11
- import isCollection from '../jsutils/isCollection';
9
+ import safeArrayFrom from '../jsutils/safeArrayFrom';
12
10
  import suggestionList from '../jsutils/suggestionList';
13
11
  import printPathArray from '../jsutils/printPathArray';
14
12
  import { addPath, pathToArray } from '../jsutils/Path';
@@ -35,7 +33,7 @@ type OnErrorCB = (
35
33
  export function coerceInputValue(
36
34
  inputValue: mixed,
37
35
  type: GraphQLInputType,
38
- onError?: OnErrorCB = defaultOnError,
36
+ onError: OnErrorCB = defaultOnError,
39
37
  ): mixed {
40
38
  return coerceInputValueImpl(inputValue, type, onError);
41
39
  }
@@ -44,7 +42,7 @@ function defaultOnError(
44
42
  path: $ReadOnlyArray<string | number>,
45
43
  invalidValue: mixed,
46
44
  error: GraphQLError,
47
- ) {
45
+ ): void {
48
46
  let errorPrefix = 'Invalid value ' + inspect(invalidValue);
49
47
  if (path.length > 0) {
50
48
  errorPrefix += ` at "value${printPathArray(path)}"`;
@@ -80,12 +78,16 @@ function coerceInputValueImpl(
80
78
 
81
79
  if (isListType(type)) {
82
80
  const itemType = type.ofType;
83
- if (isCollection(inputValue)) {
84
- return arrayFrom(inputValue, (itemValue, index) => {
85
- const itemPath = addPath(path, index, undefined);
86
- return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
87
- });
81
+
82
+ const coercedList = safeArrayFrom(inputValue, (itemValue, index) => {
83
+ const itemPath = addPath(path, index, undefined);
84
+ return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
85
+ });
86
+
87
+ if (coercedList != null) {
88
+ return coercedList;
88
89
  }
90
+
89
91
  // Lists accept a non-list value as a list of one.
90
92
  return [coerceInputValueImpl(inputValue, itemType, onError, path)];
91
93
  }
@@ -1,10 +1,9 @@
1
- import arrayFrom from "../polyfills/arrayFrom.mjs";
2
1
  import objectValues from "../polyfills/objectValues.mjs";
3
2
  import inspect from "../jsutils/inspect.mjs";
4
3
  import invariant from "../jsutils/invariant.mjs";
5
4
  import didYouMean from "../jsutils/didYouMean.mjs";
6
5
  import isObjectLike from "../jsutils/isObjectLike.mjs";
7
- import isCollection from "../jsutils/isCollection.mjs";
6
+ import safeArrayFrom from "../jsutils/safeArrayFrom.mjs";
8
7
  import suggestionList from "../jsutils/suggestionList.mjs";
9
8
  import printPathArray from "../jsutils/printPathArray.mjs";
10
9
  import { addPath, pathToArray } from "../jsutils/Path.mjs";
@@ -47,12 +46,13 @@ function coerceInputValueImpl(inputValue, type, onError, path) {
47
46
 
48
47
  if (isListType(type)) {
49
48
  var itemType = type.ofType;
49
+ var coercedList = safeArrayFrom(inputValue, function (itemValue, index) {
50
+ var itemPath = addPath(path, index, undefined);
51
+ return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
52
+ });
50
53
 
51
- if (isCollection(inputValue)) {
52
- return arrayFrom(inputValue, function (itemValue, index) {
53
- var itemPath = addPath(path, index, undefined);
54
- return coerceInputValueImpl(itemValue, itemType, onError, itemPath);
55
- });
54
+ if (coercedList != null) {
55
+ return coercedList;
56
56
  } // Lists accept a non-list value as a list of one.
57
57
 
58
58
 
@@ -5,20 +5,21 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.concatAST = concatAST;
7
7
 
8
- var _flatMap = _interopRequireDefault(require("../polyfills/flatMap"));
9
-
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
-
12
8
  /**
13
9
  * Provided a collection of ASTs, presumably each from different files,
14
10
  * concatenate the ASTs together into batched AST, useful for validating many
15
11
  * GraphQL source files which together represent one conceptual application.
16
12
  */
17
- function concatAST(asts) {
13
+ function concatAST(documents) {
14
+ var definitions = [];
15
+
16
+ for (var _i2 = 0; _i2 < documents.length; _i2++) {
17
+ var doc = documents[_i2];
18
+ definitions = definitions.concat(doc.definitions);
19
+ }
20
+
18
21
  return {
19
22
  kind: 'Document',
20
- definitions: (0, _flatMap.default)(asts, function (ast) {
21
- return ast.definitions;
22
- })
23
+ definitions: definitions
23
24
  };
24
25
  }
@@ -1,7 +1,4 @@
1
1
  // @flow strict
2
-
3
- import flatMap from '../polyfills/flatMap';
4
-
5
2
  import type { DocumentNode } from '../language/ast';
6
3
 
7
4
  /**
@@ -9,9 +6,12 @@ import type { DocumentNode } from '../language/ast';
9
6
  * concatenate the ASTs together into batched AST, useful for validating many
10
7
  * GraphQL source files which together represent one conceptual application.
11
8
  */
12
- export function concatAST(asts: $ReadOnlyArray<DocumentNode>): DocumentNode {
13
- return {
14
- kind: 'Document',
15
- definitions: flatMap(asts, (ast) => ast.definitions),
16
- };
9
+ export function concatAST(
10
+ documents: $ReadOnlyArray<DocumentNode>,
11
+ ): DocumentNode {
12
+ let definitions = [];
13
+ for (const doc of documents) {
14
+ definitions = definitions.concat(doc.definitions);
15
+ }
16
+ return { kind: 'Document', definitions };
17
17
  }
@@ -1,15 +1,18 @@
1
- import flatMap from "../polyfills/flatMap.mjs";
2
-
3
1
  /**
4
2
  * Provided a collection of ASTs, presumably each from different files,
5
3
  * concatenate the ASTs together into batched AST, useful for validating many
6
4
  * GraphQL source files which together represent one conceptual application.
7
5
  */
8
- export function concatAST(asts) {
6
+ export function concatAST(documents) {
7
+ var definitions = [];
8
+
9
+ for (var _i2 = 0; _i2 < documents.length; _i2++) {
10
+ var doc = documents[_i2];
11
+ definitions = definitions.concat(doc.definitions);
12
+ }
13
+
9
14
  return {
10
15
  kind: 'Document',
11
- definitions: flatMap(asts, function (ast) {
12
- return ast.definitions;
13
- })
16
+ definitions: definitions
14
17
  };
15
18
  }