graphql 14.0.0 → 14.1.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 (285) hide show
  1. package/README.md +4 -4
  2. package/error/GraphQLError.js +1 -1
  3. package/error/GraphQLError.js.flow +3 -3
  4. package/error/GraphQLError.mjs +1 -1
  5. package/error/formatError.js +1 -1
  6. package/error/formatError.mjs +1 -1
  7. package/error/index.mjs +1 -1
  8. package/error/locatedError.js +1 -1
  9. package/error/locatedError.mjs +1 -1
  10. package/error/printError.js +1 -1
  11. package/error/printError.mjs +1 -1
  12. package/error/syntaxError.js +1 -1
  13. package/error/syntaxError.mjs +1 -1
  14. package/execution/execute.js +4 -4
  15. package/execution/execute.js.flow +4 -6
  16. package/execution/execute.mjs +5 -5
  17. package/execution/index.mjs +1 -1
  18. package/execution/values.js +4 -4
  19. package/execution/values.js.flow +3 -3
  20. package/execution/values.mjs +3 -3
  21. package/graphql.js +1 -1
  22. package/graphql.mjs +1 -1
  23. package/index.js +12 -0
  24. package/index.js.flow +4 -0
  25. package/index.mjs +4 -4
  26. package/jsutils/dedent.js +2 -2
  27. package/jsutils/dedent.js.flow +1 -1
  28. package/jsutils/dedent.mjs +2 -2
  29. package/jsutils/defineToJSON.js +17 -6
  30. package/jsutils/defineToJSON.js.flow +14 -5
  31. package/jsutils/defineToJSON.mjs +14 -6
  32. package/jsutils/defineToStringTag.js +5 -5
  33. package/jsutils/defineToStringTag.js.flow +3 -3
  34. package/jsutils/defineToStringTag.mjs +4 -4
  35. package/jsutils/inspect.js +46 -12
  36. package/jsutils/inspect.js.flow +42 -15
  37. package/jsutils/inspect.mjs +45 -5
  38. package/jsutils/instanceOf.js +1 -1
  39. package/jsutils/instanceOf.mjs +1 -1
  40. package/jsutils/invariant.js +1 -1
  41. package/jsutils/invariant.mjs +1 -1
  42. package/jsutils/isInvalid.js +1 -1
  43. package/jsutils/isInvalid.mjs +1 -1
  44. package/jsutils/isNullish.js +1 -1
  45. package/jsutils/isNullish.mjs +1 -1
  46. package/jsutils/isPromise.js +1 -1
  47. package/jsutils/isPromise.mjs +1 -1
  48. package/jsutils/keyMap.js +1 -1
  49. package/jsutils/keyMap.mjs +1 -1
  50. package/jsutils/keyValMap.js +1 -1
  51. package/jsutils/keyValMap.mjs +1 -1
  52. package/jsutils/mapValue.js +54 -0
  53. package/jsutils/mapValue.js.flow +27 -0
  54. package/jsutils/mapValue.mjs +44 -0
  55. package/jsutils/memoize3.js +1 -1
  56. package/jsutils/memoize3.mjs +1 -1
  57. package/jsutils/nodejsCustomInspectSymbol.js +18 -0
  58. package/jsutils/nodejsCustomInspectSymbol.js.flow +15 -0
  59. package/jsutils/nodejsCustomInspectSymbol.mjs +10 -0
  60. package/jsutils/orList.js +17 -4
  61. package/jsutils/orList.js.flow +13 -7
  62. package/jsutils/orList.mjs +14 -4
  63. package/jsutils/promiseForObject.js +1 -1
  64. package/jsutils/promiseForObject.mjs +1 -1
  65. package/jsutils/promiseReduce.js +1 -1
  66. package/jsutils/promiseReduce.mjs +1 -1
  67. package/jsutils/quotedOrList.js +1 -1
  68. package/jsutils/quotedOrList.mjs +1 -1
  69. package/jsutils/suggestionList.js +1 -1
  70. package/jsutils/suggestionList.mjs +1 -1
  71. package/language/blockStringValue.js +2 -2
  72. package/language/blockStringValue.js.flow +1 -1
  73. package/language/blockStringValue.mjs +2 -2
  74. package/language/directiveLocation.js +1 -1
  75. package/language/directiveLocation.mjs +1 -1
  76. package/language/index.mjs +1 -1
  77. package/language/kinds.js +1 -1
  78. package/language/kinds.mjs +1 -1
  79. package/language/lexer.js +29 -13
  80. package/language/lexer.js.flow +34 -20
  81. package/language/lexer.mjs +28 -13
  82. package/language/location.js +1 -1
  83. package/language/location.mjs +1 -1
  84. package/language/parser.js +31 -38
  85. package/language/parser.js.flow +32 -48
  86. package/language/parser.mjs +30 -38
  87. package/language/predicates.js +1 -1
  88. package/language/predicates.mjs +1 -1
  89. package/language/printer.js +13 -7
  90. package/language/printer.js.flow +19 -9
  91. package/language/printer.mjs +13 -7
  92. package/language/source.js +8 -7
  93. package/language/source.mjs +1 -9
  94. package/language/visitor.js +11 -20
  95. package/language/visitor.js.flow +4 -5
  96. package/language/visitor.mjs +8 -20
  97. package/package.json +10 -3
  98. package/polyfills/find.js +31 -0
  99. package/polyfills/find.js.flow +29 -0
  100. package/polyfills/find.mjs +23 -0
  101. package/{jsutils → polyfills}/isFinite.js +1 -1
  102. package/{jsutils → polyfills}/isFinite.js.flow +0 -0
  103. package/{jsutils → polyfills}/isFinite.mjs +1 -1
  104. package/{jsutils → polyfills}/isInteger.js +1 -1
  105. package/{jsutils → polyfills}/isInteger.js.flow +0 -0
  106. package/{jsutils → polyfills}/isInteger.mjs +1 -1
  107. package/polyfills/objectEntries.js +26 -0
  108. package/polyfills/objectEntries.js.flow +19 -0
  109. package/polyfills/objectEntries.mjs +18 -0
  110. package/{jsutils → polyfills}/objectValues.js +1 -1
  111. package/{jsutils → polyfills}/objectValues.js.flow +1 -1
  112. package/{jsutils → polyfills}/objectValues.mjs +1 -1
  113. package/subscription/asyncIteratorReject.mjs +1 -1
  114. package/subscription/index.mjs +1 -1
  115. package/subscription/mapAsyncIterator.mjs +1 -1
  116. package/subscription/subscribe.js +1 -1
  117. package/subscription/subscribe.js.flow +1 -1
  118. package/subscription/subscribe.mjs +2 -2
  119. package/type/definition.js +31 -130
  120. package/type/definition.js.flow +35 -47
  121. package/type/definition.mjs +30 -131
  122. package/type/directives.js +25 -29
  123. package/type/directives.js.flow +24 -20
  124. package/type/directives.mjs +22 -30
  125. package/type/index.js +12 -0
  126. package/type/index.js.flow +4 -0
  127. package/type/index.mjs +5 -3
  128. package/type/introspection.js +3 -3
  129. package/type/introspection.js.flow +1 -1
  130. package/type/introspection.mjs +2 -2
  131. package/type/scalars.js +45 -34
  132. package/type/scalars.js.flow +40 -26
  133. package/type/scalars.mjs +44 -26
  134. package/type/schema.js +82 -87
  135. package/type/schema.js.flow +17 -9
  136. package/type/schema.mjs +79 -86
  137. package/type/validate.js +168 -175
  138. package/type/validate.js.flow +8 -49
  139. package/type/validate.mjs +159 -175
  140. package/utilities/TypeInfo.js +10 -23
  141. package/utilities/TypeInfo.js.flow +1 -1
  142. package/utilities/TypeInfo.mjs +2 -24
  143. package/utilities/assertValidName.js +1 -1
  144. package/utilities/assertValidName.mjs +1 -1
  145. package/utilities/astFromValue.js +2 -2
  146. package/utilities/astFromValue.js.flow +1 -1
  147. package/utilities/astFromValue.mjs +2 -2
  148. package/utilities/buildASTSchema.js +169 -152
  149. package/utilities/buildASTSchema.js.flow +117 -113
  150. package/utilities/buildASTSchema.mjs +160 -152
  151. package/utilities/buildClientSchema.js +24 -14
  152. package/utilities/buildClientSchema.js.flow +24 -14
  153. package/utilities/buildClientSchema.mjs +23 -14
  154. package/utilities/coerceValue.js +38 -19
  155. package/utilities/coerceValue.js.flow +41 -47
  156. package/utilities/coerceValue.mjs +38 -20
  157. package/utilities/concatAST.js +1 -1
  158. package/utilities/concatAST.mjs +1 -1
  159. package/utilities/extendSchema.js +228 -312
  160. package/utilities/extendSchema.js.flow +27 -152
  161. package/utilities/extendSchema.mjs +229 -312
  162. package/utilities/findBreakingChanges.js +7 -5
  163. package/utilities/findBreakingChanges.js.flow +3 -2
  164. package/utilities/findBreakingChanges.mjs +6 -5
  165. package/utilities/findDeprecatedUsages.js +1 -1
  166. package/utilities/findDeprecatedUsages.mjs +1 -1
  167. package/utilities/getOperationAST.js +1 -1
  168. package/utilities/getOperationAST.mjs +1 -1
  169. package/utilities/getOperationRootType.js +1 -1
  170. package/utilities/getOperationRootType.mjs +1 -1
  171. package/utilities/index.mjs +1 -1
  172. package/utilities/introspectionFromSchema.js +1 -1
  173. package/utilities/introspectionFromSchema.mjs +1 -1
  174. package/utilities/introspectionQuery.js +1 -1
  175. package/utilities/introspectionQuery.mjs +1 -1
  176. package/utilities/isValidJSValue.js +1 -1
  177. package/utilities/isValidJSValue.mjs +1 -1
  178. package/utilities/isValidLiteralValue.js +1 -1
  179. package/utilities/isValidLiteralValue.mjs +1 -1
  180. package/utilities/lexicographicSortSchema.js +2 -2
  181. package/utilities/lexicographicSortSchema.js.flow +1 -1
  182. package/utilities/lexicographicSortSchema.mjs +2 -2
  183. package/utilities/schemaPrinter.js +3 -3
  184. package/utilities/schemaPrinter.js.flow +1 -1
  185. package/utilities/schemaPrinter.mjs +2 -2
  186. package/utilities/separateOperations.js +1 -1
  187. package/utilities/separateOperations.mjs +1 -1
  188. package/utilities/typeComparators.js +1 -1
  189. package/utilities/typeComparators.mjs +1 -1
  190. package/utilities/typeFromAST.js +1 -1
  191. package/utilities/typeFromAST.mjs +1 -1
  192. package/utilities/valueFromAST.js +3 -3
  193. package/utilities/valueFromAST.js.flow +1 -1
  194. package/utilities/valueFromAST.mjs +2 -2
  195. package/utilities/valueFromASTUntyped.js +1 -1
  196. package/utilities/valueFromASTUntyped.mjs +1 -1
  197. package/validation/ValidationContext.js +57 -82
  198. package/validation/ValidationContext.js.flow +52 -49
  199. package/validation/ValidationContext.mjs +52 -77
  200. package/validation/index.js.flow +1 -0
  201. package/validation/index.mjs +1 -1
  202. package/validation/rules/ExecutableDefinitions.js +1 -1
  203. package/validation/rules/ExecutableDefinitions.js.flow +1 -1
  204. package/validation/rules/ExecutableDefinitions.mjs +1 -1
  205. package/validation/rules/FieldsOnCorrectType.js +1 -1
  206. package/validation/rules/FieldsOnCorrectType.mjs +1 -1
  207. package/validation/rules/FragmentsOnCompositeTypes.js +1 -1
  208. package/validation/rules/FragmentsOnCompositeTypes.mjs +1 -1
  209. package/validation/rules/KnownArgumentNames.mjs +1 -1
  210. package/validation/rules/KnownDirectives.js +1 -1
  211. package/validation/rules/KnownDirectives.mjs +1 -1
  212. package/validation/rules/KnownFragmentNames.js +1 -1
  213. package/validation/rules/KnownFragmentNames.mjs +1 -1
  214. package/validation/rules/KnownTypeNames.js +59 -21
  215. package/validation/rules/KnownTypeNames.js.flow +54 -20
  216. package/validation/rules/KnownTypeNames.mjs +56 -21
  217. package/validation/rules/LoneAnonymousOperation.js +1 -1
  218. package/validation/rules/LoneAnonymousOperation.mjs +1 -1
  219. package/validation/rules/LoneSchemaDefinition.js +1 -1
  220. package/validation/rules/LoneSchemaDefinition.mjs +1 -1
  221. package/validation/rules/NoFragmentCycles.js +1 -1
  222. package/validation/rules/NoFragmentCycles.js.flow +2 -2
  223. package/validation/rules/NoFragmentCycles.mjs +1 -1
  224. package/validation/rules/NoUndefinedVariables.js +1 -1
  225. package/validation/rules/NoUndefinedVariables.mjs +1 -1
  226. package/validation/rules/NoUnusedFragments.js +1 -1
  227. package/validation/rules/NoUnusedFragments.js.flow +2 -2
  228. package/validation/rules/NoUnusedFragments.mjs +1 -1
  229. package/validation/rules/NoUnusedVariables.js +1 -1
  230. package/validation/rules/NoUnusedVariables.mjs +1 -1
  231. package/validation/rules/OverlappingFieldsCanBeMerged.js +57 -33
  232. package/validation/rules/OverlappingFieldsCanBeMerged.js.flow +5 -6
  233. package/validation/rules/OverlappingFieldsCanBeMerged.mjs +48 -33
  234. package/validation/rules/PossibleFragmentSpreads.js +1 -1
  235. package/validation/rules/PossibleFragmentSpreads.mjs +1 -1
  236. package/validation/rules/PossibleTypeExtensions.js +158 -0
  237. package/validation/rules/PossibleTypeExtensions.js.flow +160 -0
  238. package/validation/rules/PossibleTypeExtensions.mjs +146 -0
  239. package/validation/rules/ProvidedRequiredArguments.mjs +1 -1
  240. package/validation/rules/ScalarLeafs.js +1 -1
  241. package/validation/rules/ScalarLeafs.mjs +1 -1
  242. package/validation/rules/SingleFieldSubscriptions.js +1 -1
  243. package/validation/rules/SingleFieldSubscriptions.mjs +1 -1
  244. package/validation/rules/UniqueArgumentNames.js +1 -1
  245. package/validation/rules/UniqueArgumentNames.mjs +1 -1
  246. package/validation/rules/UniqueDirectiveNames.js +55 -0
  247. package/validation/rules/UniqueDirectiveNames.js.flow +64 -0
  248. package/validation/rules/UniqueDirectiveNames.mjs +43 -0
  249. package/validation/rules/UniqueDirectivesPerLocation.js +1 -1
  250. package/validation/rules/UniqueDirectivesPerLocation.mjs +1 -1
  251. package/validation/rules/UniqueEnumValueNames.js +94 -0
  252. package/validation/rules/UniqueEnumValueNames.js.flow +87 -0
  253. package/validation/rules/UniqueEnumValueNames.mjs +81 -0
  254. package/validation/rules/UniqueFieldDefinitionNames.js +105 -0
  255. package/validation/rules/UniqueFieldDefinitionNames.js.flow +101 -0
  256. package/validation/rules/UniqueFieldDefinitionNames.mjs +92 -0
  257. package/validation/rules/UniqueFragmentNames.js +1 -1
  258. package/validation/rules/UniqueFragmentNames.mjs +1 -1
  259. package/validation/rules/UniqueInputFieldNames.js +1 -1
  260. package/validation/rules/UniqueInputFieldNames.mjs +1 -1
  261. package/validation/rules/UniqueOperationNames.js +1 -1
  262. package/validation/rules/UniqueOperationNames.mjs +1 -1
  263. package/validation/rules/UniqueOperationTypes.js +85 -0
  264. package/validation/rules/UniqueOperationTypes.js.flow +76 -0
  265. package/validation/rules/UniqueOperationTypes.mjs +73 -0
  266. package/validation/rules/UniqueTypeNames.js +62 -0
  267. package/validation/rules/UniqueTypeNames.js.flow +67 -0
  268. package/validation/rules/UniqueTypeNames.mjs +50 -0
  269. package/validation/rules/UniqueVariableNames.js +1 -1
  270. package/validation/rules/UniqueVariableNames.mjs +1 -1
  271. package/validation/rules/ValuesOfCorrectType.js +29 -13
  272. package/validation/rules/ValuesOfCorrectType.js.flow +4 -5
  273. package/validation/rules/ValuesOfCorrectType.mjs +28 -13
  274. package/validation/rules/VariablesAreInputTypes.js +1 -1
  275. package/validation/rules/VariablesAreInputTypes.mjs +1 -1
  276. package/validation/rules/VariablesInAllowedPosition.js +4 -4
  277. package/validation/rules/VariablesInAllowedPosition.mjs +4 -4
  278. package/validation/specifiedRules.js +14 -2
  279. package/validation/specifiedRules.js.flow +13 -0
  280. package/validation/specifiedRules.mjs +8 -2
  281. package/validation/validate.js +1 -1
  282. package/validation/validate.mjs +1 -1
  283. package/jsutils/find.js +0 -22
  284. package/jsutils/find.js.flow +0 -19
  285. package/jsutils/find.mjs +0 -15
@@ -13,10 +13,6 @@ var _TypeInfo = require("../utilities/TypeInfo");
13
13
 
14
14
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
15
15
 
16
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17
-
18
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19
-
20
16
  /**
21
17
  * An instance of this class is passed as the "this" context to all validators,
22
18
  * allowing access to commonly useful contextual information from within a
@@ -26,12 +22,11 @@ var ASTValidationContext =
26
22
  /*#__PURE__*/
27
23
  function () {
28
24
  function ASTValidationContext(ast) {
29
- _defineProperty(this, "_ast", void 0);
30
-
31
- _defineProperty(this, "_errors", void 0);
32
-
33
25
  this._ast = ast;
34
26
  this._errors = [];
27
+ this._fragments = undefined;
28
+ this._fragmentSpreads = new Map();
29
+ this._recursivelyReferencedFragments = new Map();
35
30
  }
36
31
 
37
32
  var _proto = ASTValidationContext.prototype;
@@ -48,78 +43,7 @@ function () {
48
43
  return this._ast;
49
44
  };
50
45
 
51
- return ASTValidationContext;
52
- }();
53
-
54
- exports.ASTValidationContext = ASTValidationContext;
55
-
56
- var SDLValidationContext =
57
- /*#__PURE__*/
58
- function (_ASTValidationContext) {
59
- _inheritsLoose(SDLValidationContext, _ASTValidationContext);
60
-
61
- function SDLValidationContext(ast, schema) {
62
- var _this;
63
-
64
- _this = _ASTValidationContext.call(this, ast) || this;
65
-
66
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "_schema", void 0);
67
-
68
- _this._schema = schema;
69
- return _this;
70
- }
71
-
72
- var _proto2 = SDLValidationContext.prototype;
73
-
74
- _proto2.getSchema = function getSchema() {
75
- return this._schema;
76
- };
77
-
78
- return SDLValidationContext;
79
- }(ASTValidationContext);
80
-
81
- exports.SDLValidationContext = SDLValidationContext;
82
-
83
- var ValidationContext =
84
- /*#__PURE__*/
85
- function (_ASTValidationContext2) {
86
- _inheritsLoose(ValidationContext, _ASTValidationContext2);
87
-
88
- function ValidationContext(schema, ast, typeInfo) {
89
- var _this2;
90
-
91
- _this2 = _ASTValidationContext2.call(this, ast) || this;
92
-
93
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_schema", void 0);
94
-
95
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_typeInfo", void 0);
96
-
97
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_fragments", void 0);
98
-
99
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_fragmentSpreads", void 0);
100
-
101
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_recursivelyReferencedFragments", void 0);
102
-
103
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_variableUsages", void 0);
104
-
105
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_recursiveVariableUsages", void 0);
106
-
107
- _this2._schema = schema;
108
- _this2._typeInfo = typeInfo;
109
- _this2._fragmentSpreads = new Map();
110
- _this2._recursivelyReferencedFragments = new Map();
111
- _this2._variableUsages = new Map();
112
- _this2._recursiveVariableUsages = new Map();
113
- return _this2;
114
- }
115
-
116
- var _proto3 = ValidationContext.prototype;
117
-
118
- _proto3.getSchema = function getSchema() {
119
- return this._schema;
120
- };
121
-
122
- _proto3.getFragment = function getFragment(name) {
46
+ _proto.getFragment = function getFragment(name) {
123
47
  var fragments = this._fragments;
124
48
 
125
49
  if (!fragments) {
@@ -135,7 +59,7 @@ function (_ASTValidationContext2) {
135
59
  return fragments[name];
136
60
  };
137
61
 
138
- _proto3.getFragmentSpreads = function getFragmentSpreads(node) {
62
+ _proto.getFragmentSpreads = function getFragmentSpreads(node) {
139
63
  var spreads = this._fragmentSpreads.get(node);
140
64
 
141
65
  if (!spreads) {
@@ -162,7 +86,7 @@ function (_ASTValidationContext2) {
162
86
  return spreads;
163
87
  };
164
88
 
165
- _proto3.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
89
+ _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
166
90
  var fragments = this._recursivelyReferencedFragments.get(operation);
167
91
 
168
92
  if (!fragments) {
@@ -195,6 +119,57 @@ function (_ASTValidationContext2) {
195
119
  return fragments;
196
120
  };
197
121
 
122
+ return ASTValidationContext;
123
+ }();
124
+
125
+ exports.ASTValidationContext = ASTValidationContext;
126
+
127
+ var SDLValidationContext =
128
+ /*#__PURE__*/
129
+ function (_ASTValidationContext) {
130
+ _inheritsLoose(SDLValidationContext, _ASTValidationContext);
131
+
132
+ function SDLValidationContext(ast, schema) {
133
+ var _this;
134
+
135
+ _this = _ASTValidationContext.call(this, ast) || this;
136
+ _this._schema = schema;
137
+ return _this;
138
+ }
139
+
140
+ var _proto2 = SDLValidationContext.prototype;
141
+
142
+ _proto2.getSchema = function getSchema() {
143
+ return this._schema;
144
+ };
145
+
146
+ return SDLValidationContext;
147
+ }(ASTValidationContext);
148
+
149
+ exports.SDLValidationContext = SDLValidationContext;
150
+
151
+ var ValidationContext =
152
+ /*#__PURE__*/
153
+ function (_ASTValidationContext2) {
154
+ _inheritsLoose(ValidationContext, _ASTValidationContext2);
155
+
156
+ function ValidationContext(schema, ast, typeInfo) {
157
+ var _this2;
158
+
159
+ _this2 = _ASTValidationContext2.call(this, ast) || this;
160
+ _this2._schema = schema;
161
+ _this2._typeInfo = typeInfo;
162
+ _this2._variableUsages = new Map();
163
+ _this2._recursiveVariableUsages = new Map();
164
+ return _this2;
165
+ }
166
+
167
+ var _proto3 = ValidationContext.prototype;
168
+
169
+ _proto3.getSchema = function getSchema() {
170
+ return this._schema;
171
+ };
172
+
198
173
  _proto3.getVariableUsages = function getVariableUsages(node) {
199
174
  var usages = this._variableUsages.get(node);
200
175
 
@@ -46,10 +46,19 @@ type VariableUsage = {|
46
46
  export class ASTValidationContext {
47
47
  _ast: DocumentNode;
48
48
  _errors: Array<GraphQLError>;
49
+ _fragments: ?ObjMap<FragmentDefinitionNode>;
50
+ _fragmentSpreads: Map<SelectionSetNode, $ReadOnlyArray<FragmentSpreadNode>>;
51
+ _recursivelyReferencedFragments: Map<
52
+ OperationDefinitionNode,
53
+ $ReadOnlyArray<FragmentDefinitionNode>,
54
+ >;
49
55
 
50
56
  constructor(ast: DocumentNode): void {
51
57
  this._ast = ast;
52
58
  this._errors = [];
59
+ this._fragments = undefined;
60
+ this._fragmentSpreads = new Map();
61
+ this._recursivelyReferencedFragments = new Map();
53
62
  }
54
63
 
55
64
  reportError(error: GraphQLError): void {
@@ -63,55 +72,6 @@ export class ASTValidationContext {
63
72
  getDocument(): DocumentNode {
64
73
  return this._ast;
65
74
  }
66
- }
67
-
68
- export class SDLValidationContext extends ASTValidationContext {
69
- _schema: ?GraphQLSchema;
70
-
71
- constructor(ast: DocumentNode, schema?: ?GraphQLSchema): void {
72
- super(ast);
73
- this._schema = schema;
74
- }
75
-
76
- getSchema(): ?GraphQLSchema {
77
- return this._schema;
78
- }
79
- }
80
-
81
- export type SDLValidationRule = SDLValidationContext => ASTVisitor;
82
-
83
- export class ValidationContext extends ASTValidationContext {
84
- _schema: GraphQLSchema;
85
- _typeInfo: TypeInfo;
86
- _fragments: ObjMap<FragmentDefinitionNode>;
87
- _fragmentSpreads: Map<SelectionSetNode, $ReadOnlyArray<FragmentSpreadNode>>;
88
- _recursivelyReferencedFragments: Map<
89
- OperationDefinitionNode,
90
- $ReadOnlyArray<FragmentDefinitionNode>,
91
- >;
92
- _variableUsages: Map<NodeWithSelectionSet, $ReadOnlyArray<VariableUsage>>;
93
- _recursiveVariableUsages: Map<
94
- OperationDefinitionNode,
95
- $ReadOnlyArray<VariableUsage>,
96
- >;
97
-
98
- constructor(
99
- schema: GraphQLSchema,
100
- ast: DocumentNode,
101
- typeInfo: TypeInfo,
102
- ): void {
103
- super(ast);
104
- this._schema = schema;
105
- this._typeInfo = typeInfo;
106
- this._fragmentSpreads = new Map();
107
- this._recursivelyReferencedFragments = new Map();
108
- this._variableUsages = new Map();
109
- this._recursiveVariableUsages = new Map();
110
- }
111
-
112
- getSchema(): GraphQLSchema {
113
- return this._schema;
114
- }
115
75
 
116
76
  getFragment(name: string): ?FragmentDefinitionNode {
117
77
  let fragments = this._fragments;
@@ -179,6 +139,49 @@ export class ValidationContext extends ASTValidationContext {
179
139
  }
180
140
  return fragments;
181
141
  }
142
+ }
143
+
144
+ export type ASTValidationRule = ASTValidationContext => ASTVisitor;
145
+
146
+ export class SDLValidationContext extends ASTValidationContext {
147
+ _schema: ?GraphQLSchema;
148
+
149
+ constructor(ast: DocumentNode, schema?: ?GraphQLSchema): void {
150
+ super(ast);
151
+ this._schema = schema;
152
+ }
153
+
154
+ getSchema(): ?GraphQLSchema {
155
+ return this._schema;
156
+ }
157
+ }
158
+
159
+ export type SDLValidationRule = SDLValidationContext => ASTVisitor;
160
+
161
+ export class ValidationContext extends ASTValidationContext {
162
+ _schema: GraphQLSchema;
163
+ _typeInfo: TypeInfo;
164
+ _variableUsages: Map<NodeWithSelectionSet, $ReadOnlyArray<VariableUsage>>;
165
+ _recursiveVariableUsages: Map<
166
+ OperationDefinitionNode,
167
+ $ReadOnlyArray<VariableUsage>,
168
+ >;
169
+
170
+ constructor(
171
+ schema: GraphQLSchema,
172
+ ast: DocumentNode,
173
+ typeInfo: TypeInfo,
174
+ ): void {
175
+ super(ast);
176
+ this._schema = schema;
177
+ this._typeInfo = typeInfo;
178
+ this._variableUsages = new Map();
179
+ this._recursiveVariableUsages = new Map();
180
+ }
181
+
182
+ getSchema(): GraphQLSchema {
183
+ return this._schema;
184
+ }
182
185
 
183
186
  getVariableUsages(node: NodeWithSelectionSet): $ReadOnlyArray<VariableUsage> {
184
187
  let usages = this._variableUsages.get(node);
@@ -1,16 +1,12 @@
1
1
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
2
2
 
3
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
4
-
5
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
3
  /**
8
4
  * Copyright (c) 2015-present, Facebook, Inc.
9
5
  *
10
6
  * This source code is licensed under the MIT license found in the
11
7
  * LICENSE file in the root directory of this source tree.
12
8
  *
13
- * strict
9
+ *
14
10
  */
15
11
  import { visit, visitWithTypeInfo } from '../language/visitor';
16
12
  import { Kind } from '../language/kinds';
@@ -25,12 +21,11 @@ export var ASTValidationContext =
25
21
  /*#__PURE__*/
26
22
  function () {
27
23
  function ASTValidationContext(ast) {
28
- _defineProperty(this, "_ast", void 0);
29
-
30
- _defineProperty(this, "_errors", void 0);
31
-
32
24
  this._ast = ast;
33
25
  this._errors = [];
26
+ this._fragments = undefined;
27
+ this._fragmentSpreads = new Map();
28
+ this._recursivelyReferencedFragments = new Map();
34
29
  }
35
30
 
36
31
  var _proto = ASTValidationContext.prototype;
@@ -47,72 +42,7 @@ function () {
47
42
  return this._ast;
48
43
  };
49
44
 
50
- return ASTValidationContext;
51
- }();
52
- export var SDLValidationContext =
53
- /*#__PURE__*/
54
- function (_ASTValidationContext) {
55
- _inheritsLoose(SDLValidationContext, _ASTValidationContext);
56
-
57
- function SDLValidationContext(ast, schema) {
58
- var _this;
59
-
60
- _this = _ASTValidationContext.call(this, ast) || this;
61
-
62
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), "_schema", void 0);
63
-
64
- _this._schema = schema;
65
- return _this;
66
- }
67
-
68
- var _proto2 = SDLValidationContext.prototype;
69
-
70
- _proto2.getSchema = function getSchema() {
71
- return this._schema;
72
- };
73
-
74
- return SDLValidationContext;
75
- }(ASTValidationContext);
76
- export var ValidationContext =
77
- /*#__PURE__*/
78
- function (_ASTValidationContext2) {
79
- _inheritsLoose(ValidationContext, _ASTValidationContext2);
80
-
81
- function ValidationContext(schema, ast, typeInfo) {
82
- var _this2;
83
-
84
- _this2 = _ASTValidationContext2.call(this, ast) || this;
85
-
86
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_schema", void 0);
87
-
88
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_typeInfo", void 0);
89
-
90
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_fragments", void 0);
91
-
92
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_fragmentSpreads", void 0);
93
-
94
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_recursivelyReferencedFragments", void 0);
95
-
96
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_variableUsages", void 0);
97
-
98
- _defineProperty(_assertThisInitialized(_assertThisInitialized(_this2)), "_recursiveVariableUsages", void 0);
99
-
100
- _this2._schema = schema;
101
- _this2._typeInfo = typeInfo;
102
- _this2._fragmentSpreads = new Map();
103
- _this2._recursivelyReferencedFragments = new Map();
104
- _this2._variableUsages = new Map();
105
- _this2._recursiveVariableUsages = new Map();
106
- return _this2;
107
- }
108
-
109
- var _proto3 = ValidationContext.prototype;
110
-
111
- _proto3.getSchema = function getSchema() {
112
- return this._schema;
113
- };
114
-
115
- _proto3.getFragment = function getFragment(name) {
45
+ _proto.getFragment = function getFragment(name) {
116
46
  var fragments = this._fragments;
117
47
 
118
48
  if (!fragments) {
@@ -128,7 +58,7 @@ function (_ASTValidationContext2) {
128
58
  return fragments[name];
129
59
  };
130
60
 
131
- _proto3.getFragmentSpreads = function getFragmentSpreads(node) {
61
+ _proto.getFragmentSpreads = function getFragmentSpreads(node) {
132
62
  var spreads = this._fragmentSpreads.get(node);
133
63
 
134
64
  if (!spreads) {
@@ -155,7 +85,7 @@ function (_ASTValidationContext2) {
155
85
  return spreads;
156
86
  };
157
87
 
158
- _proto3.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
88
+ _proto.getRecursivelyReferencedFragments = function getRecursivelyReferencedFragments(operation) {
159
89
  var fragments = this._recursivelyReferencedFragments.get(operation);
160
90
 
161
91
  if (!fragments) {
@@ -188,6 +118,51 @@ function (_ASTValidationContext2) {
188
118
  return fragments;
189
119
  };
190
120
 
121
+ return ASTValidationContext;
122
+ }();
123
+ export var SDLValidationContext =
124
+ /*#__PURE__*/
125
+ function (_ASTValidationContext) {
126
+ _inheritsLoose(SDLValidationContext, _ASTValidationContext);
127
+
128
+ function SDLValidationContext(ast, schema) {
129
+ var _this;
130
+
131
+ _this = _ASTValidationContext.call(this, ast) || this;
132
+ _this._schema = schema;
133
+ return _this;
134
+ }
135
+
136
+ var _proto2 = SDLValidationContext.prototype;
137
+
138
+ _proto2.getSchema = function getSchema() {
139
+ return this._schema;
140
+ };
141
+
142
+ return SDLValidationContext;
143
+ }(ASTValidationContext);
144
+ export var ValidationContext =
145
+ /*#__PURE__*/
146
+ function (_ASTValidationContext2) {
147
+ _inheritsLoose(ValidationContext, _ASTValidationContext2);
148
+
149
+ function ValidationContext(schema, ast, typeInfo) {
150
+ var _this2;
151
+
152
+ _this2 = _ASTValidationContext2.call(this, ast) || this;
153
+ _this2._schema = schema;
154
+ _this2._typeInfo = typeInfo;
155
+ _this2._variableUsages = new Map();
156
+ _this2._recursiveVariableUsages = new Map();
157
+ return _this2;
158
+ }
159
+
160
+ var _proto3 = ValidationContext.prototype;
161
+
162
+ _proto3.getSchema = function getSchema() {
163
+ return this._schema;
164
+ };
165
+
191
166
  _proto3.getVariableUsages = function getVariableUsages(node) {
192
167
  var usages = this._variableUsages.get(node);
193
168
 
@@ -10,6 +10,7 @@
10
10
  export { validate } from './validate';
11
11
 
12
12
  export { ValidationContext } from './ValidationContext';
13
+ export type { ValidationRule } from './ValidationContext';
13
14
 
14
15
  export { specifiedRules } from './specifiedRules';
15
16
 
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  export { validate } from './validate';
10
10
  export { ValidationContext } from './ValidationContext';
@@ -18,7 +18,7 @@ var _predicates = require("../../language/predicates");
18
18
  * This source code is licensed under the MIT license found in the
19
19
  * LICENSE file in the root directory of this source tree.
20
20
  *
21
- * strict
21
+ *
22
22
  */
23
23
  function nonExecutableDefinitionMessage(defName) {
24
24
  return "The ".concat(defName, " definition is not executable.");
@@ -34,7 +34,7 @@ export function ExecutableDefinitions(
34
34
  new GraphQLError(
35
35
  nonExecutableDefinitionMessage(
36
36
  definition.kind === Kind.SCHEMA_DEFINITION ||
37
- definition.kind === Kind.SCHEMA_EXTENSION
37
+ definition.kind === Kind.SCHEMA_EXTENSION
38
38
  ? 'schema'
39
39
  : definition.name.value,
40
40
  ),
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from '../../error/GraphQLError';
10
10
  import { Kind } from '../../language/kinds';
@@ -22,7 +22,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
22
22
  * This source code is licensed under the MIT license found in the
23
23
  * LICENSE file in the root directory of this source tree.
24
24
  *
25
- * strict
25
+ *
26
26
  */
27
27
  function undefinedFieldMessage(fieldName, type, suggestedTypeNames, suggestedFieldNames) {
28
28
  var message = "Cannot query field \"".concat(fieldName, "\" on type \"").concat(type, "\".");
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from '../../error/GraphQLError';
10
10
  import suggestionList from '../../jsutils/suggestionList';
@@ -21,7 +21,7 @@ var _typeFromAST = require("../../utilities/typeFromAST");
21
21
  * This source code is licensed under the MIT license found in the
22
22
  * LICENSE file in the root directory of this source tree.
23
23
  *
24
- * strict
24
+ *
25
25
  */
26
26
  function inlineFragmentOnNonCompositeErrorMessage(type) {
27
27
  return "Fragment cannot condition on non composite type \"".concat(type, "\".");
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from '../../error/GraphQLError';
10
10
  import { print } from '../../language/printer';
@@ -8,7 +8,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
10
  *
11
- * strict
11
+ *
12
12
  */
13
13
  import { GraphQLError } from '../../error/GraphQLError';
14
14
  import suggestionList from '../../jsutils/suggestionList';
@@ -21,7 +21,7 @@ var _directives = require("../../type/directives");
21
21
  * This source code is licensed under the MIT license found in the
22
22
  * LICENSE file in the root directory of this source tree.
23
23
  *
24
- * strict
24
+ *
25
25
  */
26
26
  function unknownDirectiveMessage(directiveName) {
27
27
  return "Unknown directive \"".concat(directiveName, "\".");
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from '../../error/GraphQLError';
10
10
  import { Kind } from '../../language/kinds';
@@ -14,7 +14,7 @@ var _GraphQLError = require("../../error/GraphQLError");
14
14
  * This source code is licensed under the MIT license found in the
15
15
  * LICENSE file in the root directory of this source tree.
16
16
  *
17
- * strict
17
+ *
18
18
  */
19
19
  function unknownFragmentMessage(fragName) {
20
20
  return "Unknown fragment \"".concat(fragName, "\".");
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * strict
7
+ *
8
8
  */
9
9
  import { GraphQLError } from '../../error/GraphQLError';
10
10
  export function unknownFragmentMessage(fragName) {