@apollo/federation-internals 2.0.0-preview.7 → 2.0.0

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 (109) hide show
  1. package/CHANGELOG.md +32 -3
  2. package/dist/buildSchema.d.ts.map +1 -1
  3. package/dist/buildSchema.js +51 -41
  4. package/dist/buildSchema.js.map +1 -1
  5. package/dist/coreSpec.d.ts +16 -8
  6. package/dist/coreSpec.d.ts.map +1 -1
  7. package/dist/coreSpec.js +205 -53
  8. package/dist/coreSpec.js.map +1 -1
  9. package/dist/definitions.d.ts +28 -11
  10. package/dist/definitions.d.ts.map +1 -1
  11. package/dist/definitions.js +185 -67
  12. package/dist/definitions.js.map +1 -1
  13. package/dist/directiveAndTypeSpecification.d.ts +11 -1
  14. package/dist/directiveAndTypeSpecification.d.ts.map +1 -1
  15. package/dist/directiveAndTypeSpecification.js +77 -20
  16. package/dist/directiveAndTypeSpecification.js.map +1 -1
  17. package/dist/error.d.ts +17 -0
  18. package/dist/error.d.ts.map +1 -1
  19. package/dist/error.js +54 -2
  20. package/dist/error.js.map +1 -1
  21. package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
  22. package/dist/extractSubgraphsFromSupergraph.js +7 -1
  23. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  24. package/dist/federation.d.ts +22 -5
  25. package/dist/federation.d.ts.map +1 -1
  26. package/dist/federation.js +143 -86
  27. package/dist/federation.js.map +1 -1
  28. package/dist/federationSpec.d.ts +6 -2
  29. package/dist/federationSpec.d.ts.map +1 -1
  30. package/dist/federationSpec.js +47 -22
  31. package/dist/federationSpec.js.map +1 -1
  32. package/dist/inaccessibleSpec.d.ts +10 -2
  33. package/dist/inaccessibleSpec.d.ts.map +1 -1
  34. package/dist/inaccessibleSpec.js +634 -16
  35. package/dist/inaccessibleSpec.js.map +1 -1
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/introspection.d.ts.map +1 -1
  41. package/dist/introspection.js +8 -3
  42. package/dist/introspection.js.map +1 -1
  43. package/dist/joinSpec.d.ts +5 -1
  44. package/dist/joinSpec.d.ts.map +1 -1
  45. package/dist/joinSpec.js +21 -0
  46. package/dist/joinSpec.js.map +1 -1
  47. package/dist/knownCoreFeatures.d.ts +4 -0
  48. package/dist/knownCoreFeatures.d.ts.map +1 -0
  49. package/dist/knownCoreFeatures.js +16 -0
  50. package/dist/knownCoreFeatures.js.map +1 -0
  51. package/dist/operations.d.ts +1 -0
  52. package/dist/operations.d.ts.map +1 -1
  53. package/dist/operations.js +16 -1
  54. package/dist/operations.js.map +1 -1
  55. package/dist/{sharing.d.ts → precompute.d.ts} +1 -1
  56. package/dist/precompute.d.ts.map +1 -0
  57. package/dist/{sharing.js → precompute.js} +3 -3
  58. package/dist/precompute.js.map +1 -0
  59. package/dist/schemaUpgrader.d.ts.map +1 -1
  60. package/dist/schemaUpgrader.js +17 -7
  61. package/dist/schemaUpgrader.js.map +1 -1
  62. package/dist/suggestions.d.ts +1 -1
  63. package/dist/suggestions.d.ts.map +1 -1
  64. package/dist/suggestions.js.map +1 -1
  65. package/dist/supergraphs.d.ts.map +1 -1
  66. package/dist/supergraphs.js +2 -0
  67. package/dist/supergraphs.js.map +1 -1
  68. package/dist/tagSpec.d.ts +7 -2
  69. package/dist/tagSpec.d.ts.map +1 -1
  70. package/dist/tagSpec.js +35 -14
  71. package/dist/tagSpec.js.map +1 -1
  72. package/dist/validate.js +13 -7
  73. package/dist/validate.js.map +1 -1
  74. package/dist/values.d.ts +2 -2
  75. package/dist/values.d.ts.map +1 -1
  76. package/dist/values.js +13 -11
  77. package/dist/values.js.map +1 -1
  78. package/package.json +4 -4
  79. package/src/__tests__/coreSpec.test.ts +212 -0
  80. package/src/__tests__/definitions.test.ts +75 -0
  81. package/src/__tests__/removeInaccessibleElements.test.ts +2229 -137
  82. package/src/__tests__/schemaUpgrader.test.ts +3 -2
  83. package/src/__tests__/subgraphValidation.test.ts +419 -4
  84. package/src/__tests__/values.test.ts +315 -3
  85. package/src/buildSchema.ts +98 -51
  86. package/src/coreSpec.ts +277 -65
  87. package/src/definitions.ts +317 -92
  88. package/src/directiveAndTypeSpecification.ts +98 -21
  89. package/src/error.ts +119 -1
  90. package/src/extractSubgraphsFromSupergraph.ts +7 -1
  91. package/src/federation.ts +184 -102
  92. package/src/federationSpec.ts +56 -24
  93. package/src/inaccessibleSpec.ts +985 -39
  94. package/src/index.ts +2 -0
  95. package/src/introspection.ts +8 -3
  96. package/src/joinSpec.ts +33 -3
  97. package/src/knownCoreFeatures.ts +13 -0
  98. package/src/operations.ts +15 -0
  99. package/src/{sharing.ts → precompute.ts} +3 -6
  100. package/src/schemaUpgrader.ts +29 -13
  101. package/src/suggestions.ts +1 -1
  102. package/src/supergraphs.ts +2 -0
  103. package/src/tagSpec.ts +49 -16
  104. package/src/validate.ts +20 -9
  105. package/src/values.ts +39 -12
  106. package/tsconfig.test.tsbuildinfo +1 -1
  107. package/tsconfig.tsbuildinfo +1 -1
  108. package/dist/sharing.d.ts.map +0 -1
  109. package/dist/sharing.js.map +0 -1
package/dist/coreSpec.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.removeFeatureElements = exports.LINK_VERSIONS = exports.CORE_VERSIONS = exports.findCoreSpecVersion = exports.FeatureUrl = exports.FeatureVersion = exports.FeatureDefinitions = exports.CoreSpecDefinition = exports.isCoreSpecDirectiveApplication = exports.extractCoreFeatureImports = exports.FeatureDefinition = exports.corePurposes = exports.ErrCoreCheckFailed = exports.linkDirectiveDefaultName = exports.linkIdentity = exports.coreIdentity = void 0;
3
+ exports.removeAllCoreFeatures = exports.LINK_VERSIONS = exports.CORE_VERSIONS = exports.findCoreSpecVersion = exports.FeatureUrl = exports.FeatureVersion = exports.FeatureDefinitions = exports.CoreSpecDefinition = exports.isCoreSpecDirectiveApplication = exports.extractCoreFeatureImports = exports.FeatureDefinition = exports.corePurposes = exports.ErrCoreCheckFailed = exports.linkDirectiveDefaultName = exports.linkIdentity = exports.coreIdentity = void 0;
4
4
  const graphql_1 = require("graphql");
5
5
  const url_1 = require("url");
6
6
  const definitions_1 = require("./definitions");
@@ -8,6 +8,10 @@ const types_1 = require("./types");
8
8
  const core_schema_1 = require("@apollo/core-schema");
9
9
  const utils_1 = require("./utils");
10
10
  const error_1 = require("./error");
11
+ const values_1 = require("./values");
12
+ const knownCoreFeatures_1 = require("./knownCoreFeatures");
13
+ const suggestions_1 = require("./suggestions");
14
+ const directiveAndTypeSpecification_1 = require("./directiveAndTypeSpecification");
11
15
  exports.coreIdentity = 'https://specs.apollo.dev/core';
12
16
  exports.linkIdentity = 'https://specs.apollo.dev/link';
13
17
  exports.linkDirectiveDefaultName = 'link';
@@ -55,9 +59,9 @@ class FeatureDefinition {
55
59
  const feature = this.featureInSchema(schema);
56
60
  return feature ? feature.directiveNameInSchema(directiveName) : undefined;
57
61
  }
58
- typeNameInSchema(schema, directiveName) {
62
+ typeNameInSchema(schema, typeName) {
59
63
  const feature = this.featureInSchema(schema);
60
- return feature ? feature.typeNameInSchema(directiveName) : undefined;
64
+ return feature ? feature.typeNameInSchema(typeName) : undefined;
61
65
  }
62
66
  rootDirective(schema) {
63
67
  const name = this.nameInSchema(schema);
@@ -77,6 +81,12 @@ class FeatureDefinition {
77
81
  addDirective(schema, name) {
78
82
  return schema.addDirectiveDefinition(this.directiveNameInSchema(schema, name));
79
83
  }
84
+ addDirectiveSpec(schema, spec) {
85
+ return spec.checkOrAdd(schema, this.directiveNameInSchema(schema, spec.name));
86
+ }
87
+ addTypeSpec(schema, spec) {
88
+ return spec.checkOrAdd(schema, this.typeNameInSchema(schema, spec.name));
89
+ }
80
90
  addScalarType(schema, name) {
81
91
  return schema.addType(new definitions_1.ScalarType(this.typeNameInSchema(schema, name)));
82
92
  }
@@ -95,33 +105,109 @@ class FeatureDefinition {
95
105
  }
96
106
  }
97
107
  exports.FeatureDefinition = FeatureDefinition;
98
- function extractCoreFeatureImports(directive) {
108
+ function extractCoreFeatureImports(url, directive) {
99
109
  const args = directive.arguments();
100
- if (!('import' in args)) {
110
+ if (!('import' in args) || !args.import) {
101
111
  return [];
102
112
  }
103
- const importArg = args.import;
104
- const imports = importArg ? importArg.map((a) => typeof a === 'string' ? { name: a } : a) : [];
105
- for (const i of imports) {
106
- if (!i.as) {
113
+ const importArgValue = args.import;
114
+ const definition = (0, knownCoreFeatures_1.coreFeatureDefinitionIfKnown)(url);
115
+ const knownElements = definition === null || definition === void 0 ? void 0 : definition.allElementNames();
116
+ const errors = [];
117
+ const imports = [];
118
+ importArgLoop: for (const elt of importArgValue) {
119
+ if (typeof elt === 'string') {
120
+ imports.push({ name: elt });
121
+ validateImportedName(elt, knownElements, errors, directive);
107
122
  continue;
108
123
  }
109
- if (i.name.charAt(0) === '@' && i.as.charAt(0) !== '@') {
110
- throw error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
111
- message: `Invalid @link import renaming: directive ${i.name} imported name should starts with a '@' character, but got "${i.as}"`,
124
+ if (typeof elt !== 'object') {
125
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
126
+ message: `Invalid sub-value ${(0, values_1.valueToString)(elt)} for @link(import:) argument: values should be either strings or input object values of the form { name: "<importedElement>", as: "<alias>" }.`,
112
127
  nodes: directive.sourceAST
113
- });
128
+ }));
129
+ continue;
114
130
  }
115
- if (i.name.charAt(0) !== '@' && i.as.charAt(0) === '@') {
116
- throw error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
117
- message: `Invalid @link import renaming: type ${i.name} imported name should not starts with a '@' character, but got "${i.as}" (or, if @${i.name} is a directive, then it should be refered to with a '@')`,
131
+ let name;
132
+ for (const [key, value] of Object.entries(elt)) {
133
+ switch (key) {
134
+ case 'name':
135
+ if (typeof value !== 'string') {
136
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
137
+ message: `Invalid value for the "name" field for sub-value ${(0, values_1.valueToString)(elt)} of @link(import:) argument: must be a string.`,
138
+ nodes: directive.sourceAST
139
+ }));
140
+ continue importArgLoop;
141
+ }
142
+ name = value;
143
+ break;
144
+ case 'as':
145
+ if (typeof value !== 'string') {
146
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
147
+ message: `Invalid value for the "as" field for sub-value ${(0, values_1.valueToString)(elt)} of @link(import:) argument: must be a string.`,
148
+ nodes: directive.sourceAST
149
+ }));
150
+ continue importArgLoop;
151
+ }
152
+ break;
153
+ default:
154
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
155
+ message: `Unknown field "${key}" for sub-value ${(0, values_1.valueToString)(elt)} of @link(import:) argument.`,
156
+ nodes: directive.sourceAST
157
+ }));
158
+ continue importArgLoop;
159
+ }
160
+ }
161
+ if (name) {
162
+ const i = elt;
163
+ imports.push(i);
164
+ if (i.as) {
165
+ if (i.name.charAt(0) === '@' && i.as.charAt(0) !== '@') {
166
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
167
+ message: `Invalid @link import renaming: directive "${i.name}" imported name should start with a '@' character, but got "${i.as}".`,
168
+ nodes: directive.sourceAST
169
+ }));
170
+ }
171
+ else if (i.name.charAt(0) !== '@' && i.as.charAt(0) === '@') {
172
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
173
+ message: `Invalid @link import renaming: type "${i.name}" imported name should not start with a '@' character, but got "${i.as}" (or, if @${i.name} is a directive, then it should be referred to with a '@').`,
174
+ nodes: directive.sourceAST
175
+ }));
176
+ }
177
+ }
178
+ validateImportedName(name, knownElements, errors, directive);
179
+ }
180
+ else {
181
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
182
+ message: `Invalid sub-value ${(0, values_1.valueToString)(elt)} for @link(import:) argument: missing mandatory "name" field.`,
118
183
  nodes: directive.sourceAST
119
- });
184
+ }));
120
185
  }
121
186
  }
187
+ if (errors.length > 0) {
188
+ throw (0, definitions_1.ErrGraphQLValidationFailed)(errors);
189
+ }
122
190
  return imports;
123
191
  }
124
192
  exports.extractCoreFeatureImports = extractCoreFeatureImports;
193
+ function validateImportedName(name, knownElements, errors, directive) {
194
+ if (knownElements && !knownElements.includes(name)) {
195
+ let details = '';
196
+ if (!name.startsWith('@') && knownElements.includes('@' + name)) {
197
+ details = ` Did you mean directive "@${name}"?`;
198
+ }
199
+ else {
200
+ const suggestions = (0, suggestions_1.suggestionList)(name, knownElements);
201
+ if (suggestions) {
202
+ details = (0, suggestions_1.didYouMean)(suggestions);
203
+ }
204
+ }
205
+ errors.push(error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
206
+ message: `Cannot import unknown element "${name}".${details}`,
207
+ nodes: directive.sourceAST
208
+ }));
209
+ }
210
+ }
125
211
  function isCoreSpecDirectiveApplication(directive) {
126
212
  var _a, _b, _c;
127
213
  const definition = directive.definition;
@@ -136,7 +222,7 @@ function isCoreSpecDirectiveApplication(directive) {
136
222
  return false;
137
223
  }
138
224
  const urlArg = (_a = definition.argument('url')) !== null && _a !== void 0 ? _a : definition.argument('feature');
139
- if (!urlArg || !(0, types_1.sameType)(urlArg.type, new definitions_1.NonNullType(directive.schema().stringType()))) {
225
+ if (!urlArg || !isValidUrlArgumentType(urlArg.type, directive.schema())) {
140
226
  return false;
141
227
  }
142
228
  const args = directive.arguments();
@@ -154,46 +240,87 @@ function isCoreSpecDirectiveApplication(directive) {
154
240
  }
155
241
  }
156
242
  exports.isCoreSpecDirectiveApplication = isCoreSpecDirectiveApplication;
243
+ function isValidUrlArgumentType(type, schema) {
244
+ return (0, types_1.sameType)(type, schema.stringType())
245
+ || (0, types_1.sameType)(type, new definitions_1.NonNullType(schema.stringType()));
246
+ }
247
+ const linkPurposeTypeSpec = (0, directiveAndTypeSpecification_1.createEnumTypeSpecification)({
248
+ name: 'Purpose',
249
+ values: exports.corePurposes.map((name) => ({ name, description: purposesDescription(name) }))
250
+ });
251
+ const linkImportTypeSpec = (0, directiveAndTypeSpecification_1.createScalarTypeSpecification)({ name: 'Import' });
157
252
  class CoreSpecDefinition extends FeatureDefinition {
158
253
  constructor(version, identity = exports.linkIdentity, name = exports.linkDirectiveDefaultName) {
159
254
  super(new FeatureUrl(identity, name, version));
255
+ this.directiveDefinitionSpec = (0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
256
+ name,
257
+ locations: [graphql_1.DirectiveLocation.SCHEMA],
258
+ repeatable: true,
259
+ argumentFct: (schema, nameInSchema) => this.createDefinitionArgumentSpecifications(schema, nameInSchema),
260
+ });
261
+ }
262
+ createDefinitionArgumentSpecifications(schema, nameInSchema) {
263
+ const args = [
264
+ { name: this.urlArgName(), type: schema.stringType() },
265
+ { name: 'as', type: schema.stringType() },
266
+ ];
267
+ if (this.supportPurposes()) {
268
+ const purposeName = `${nameInSchema !== null && nameInSchema !== void 0 ? nameInSchema : this.url.name}__${linkPurposeTypeSpec.name}`;
269
+ const errors = linkPurposeTypeSpec.checkOrAdd(schema, purposeName);
270
+ if (errors.length > 0) {
271
+ return { args, errors };
272
+ }
273
+ args.push({ name: 'for', type: schema.type(purposeName) });
274
+ }
275
+ if (this.supportImport()) {
276
+ const importName = `${nameInSchema !== null && nameInSchema !== void 0 ? nameInSchema : this.url.name}__${linkImportTypeSpec.name}`;
277
+ const errors = linkImportTypeSpec.checkOrAdd(schema, importName);
278
+ if (errors.length > 0) {
279
+ return { args, errors };
280
+ }
281
+ args.push({ name: 'import', type: new definitions_1.ListType(schema.type(importName)) });
282
+ }
283
+ return { args, errors: [] };
160
284
  }
161
285
  addElementsToSchema(_) {
286
+ return [];
162
287
  }
163
288
  addToSchema(schema, as) {
164
- const existing = schema.coreFeatures;
165
- if (existing) {
166
- if (existing.coreItself.url.identity === this.identity) {
167
- return;
289
+ const errors = this.addDefinitionsToSchema(schema, as);
290
+ if (errors.length > 0) {
291
+ return errors;
292
+ }
293
+ const args = { [this.urlArgName()]: this.toString() };
294
+ if (as) {
295
+ args.as = as;
296
+ }
297
+ schema.schemaDefinition.applyDirective(as !== null && as !== void 0 ? as : this.url.name, args, true);
298
+ return [];
299
+ }
300
+ addDefinitionsToSchema(schema, as) {
301
+ const existingCore = schema.coreFeatures;
302
+ if (existingCore) {
303
+ if (existingCore.coreItself.url.identity === this.identity) {
304
+ return [];
168
305
  }
169
306
  else {
170
- throw buildError(`Cannot add feature ${this} to the schema, it already uses ${existing.coreItself.url}`);
307
+ return [error_1.ERRORS.INVALID_LINK_DIRECTIVE_USAGE.err({
308
+ message: `Cannot add feature ${this} to the schema, it already uses ${existingCore.coreItself.url}`
309
+ })];
171
310
  }
172
311
  }
173
312
  const nameInSchema = as !== null && as !== void 0 ? as : this.url.name;
174
- const core = schema.addDirectiveDefinition(nameInSchema).addLocations(graphql_1.DirectiveLocation.SCHEMA);
175
- core.repeatable = true;
176
- core.addArgument(this.urlArgName(), new definitions_1.NonNullType(schema.stringType()));
177
- core.addArgument('as', schema.stringType());
313
+ return this.directiveDefinitionSpec.checkOrAdd(schema, nameInSchema);
314
+ }
315
+ allElementNames() {
316
+ const names = [`@${this.url.name}`];
178
317
  if (this.supportPurposes()) {
179
- const purposeEnum = schema.addType(new definitions_1.EnumType(`${nameInSchema}__Purpose`));
180
- for (const purpose of exports.corePurposes) {
181
- purposeEnum.addValue(purpose).description = purposesDescription(purpose);
182
- }
183
- core.addArgument('for', purposeEnum);
318
+ names.push('Purpose');
184
319
  }
185
320
  if (this.supportImport()) {
186
- if (schema.type(`${nameInSchema}__Import`)) {
187
- console.trace();
188
- }
189
- const importType = schema.addType(new definitions_1.ScalarType(`${nameInSchema}__Import`));
190
- core.addArgument('import', new definitions_1.ListType(importType));
191
- }
192
- const args = { [this.urlArgName()]: this.toString() };
193
- if (as) {
194
- args.as = as;
321
+ names.push('Import');
195
322
  }
196
- schema.schemaDefinition.applyDirective(nameInSchema, args);
323
+ return names;
197
324
  }
198
325
  supportPurposes() {
199
326
  return this.version.strictlyGreaterThan(new FeatureVersion(0, 1));
@@ -230,7 +357,7 @@ class CoreSpecDefinition extends FeatureDefinition {
230
357
  args.for = purpose;
231
358
  }
232
359
  schema.schemaDefinition.applyDirective(coreDirective, args);
233
- feature.addElementsToSchema(schema);
360
+ return feature.addElementsToSchema(schema);
234
361
  }
235
362
  extractFeatureUrl(args) {
236
363
  return FeatureUrl.parse(args[this.urlArgName()]);
@@ -393,16 +520,41 @@ exports.CORE_VERSIONS = new FeatureDefinitions(exports.coreIdentity)
393
520
  .add(new CoreSpecDefinition(new FeatureVersion(0, 2), exports.coreIdentity, 'core'));
394
521
  exports.LINK_VERSIONS = new FeatureDefinitions(exports.linkIdentity)
395
522
  .add(new CoreSpecDefinition(new FeatureVersion(1, 0)));
396
- function removeFeatureElements(schema, feature) {
397
- const featureDirectives = schema.directives().filter(d => feature.isFeatureDefinition(d));
398
- featureDirectives.forEach(d => d.remove().forEach(application => application.remove()));
399
- const featureTypes = schema.types().filter(t => feature.isFeatureDefinition(t));
400
- featureTypes.forEach(type => {
401
- const references = type.remove();
402
- if (references.length > 0) {
403
- throw new graphql_1.GraphQLError(`Cannot remove elements of feature ${feature} as feature type ${type} is referenced by elements: ${references.join(', ')}`, references.map(r => r.sourceAST).filter(n => n !== undefined));
523
+ (0, knownCoreFeatures_1.registerKnownFeature)(exports.CORE_VERSIONS);
524
+ (0, knownCoreFeatures_1.registerKnownFeature)(exports.LINK_VERSIONS);
525
+ function removeAllCoreFeatures(schema) {
526
+ var _a, _b;
527
+ const coreFeatures = [...((_b = (_a = schema.coreFeatures) === null || _a === void 0 ? void 0 : _a.allFeatures()) !== null && _b !== void 0 ? _b : [])];
528
+ const typeReferences = [];
529
+ for (const feature of coreFeatures) {
530
+ const featureDirectiveDefs = schema.directives()
531
+ .filter(d => feature.isFeatureDefinition(d));
532
+ featureDirectiveDefs.forEach(def => def.remove().forEach(application => application.remove()));
533
+ const featureTypes = schema.types()
534
+ .filter(t => feature.isFeatureDefinition(t));
535
+ featureTypes.forEach(type => {
536
+ const references = type.remove();
537
+ if (references.length > 0) {
538
+ typeReferences.push({
539
+ feature,
540
+ type,
541
+ references,
542
+ });
543
+ }
544
+ });
545
+ }
546
+ const errors = [];
547
+ for (const { feature, type, references } of typeReferences) {
548
+ const referencesInSchema = references.filter(r => r.isAttached());
549
+ if (referencesInSchema.length > 0) {
550
+ errors.push(new graphql_1.GraphQLError(`Cannot remove elements of feature ${feature} as feature type ${type}` +
551
+ ` is referenced by elements: ${referencesInSchema.join(', ')}`, references.map(r => r.sourceAST)
552
+ .filter(n => n !== undefined)));
404
553
  }
405
- });
554
+ }
555
+ if (errors.length > 0) {
556
+ throw (0, definitions_1.ErrGraphQLAPISchemaValidationFailed)(errors);
557
+ }
406
558
  }
407
- exports.removeFeatureElements = removeFeatureElements;
559
+ exports.removeAllCoreFeatures = removeAllCoreFeatures;
408
560
  //# sourceMappingURL=coreSpec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coreSpec.js","sourceRoot":"","sources":["../src/coreSpec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coreSpec.js","sourceRoot":"","sources":["../src/coreSpec.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,11 @@ import { CoreImport, CoreSpecDefinition, FeatureUrl } from "./coreSpec";
3
3
  import { MapWithCachedArrays } from "./utils";
4
4
  import { GraphQLErrorExt } from "@apollo/core-schema/dist/error";
5
5
  import { SDLValidationRule } from "graphql/validation/ValidationContext";
6
- export declare const ErrGraphQLValidationFailed: (causes: GraphQLError[]) => GraphQLErrorExt<"GraphQLValidationFailed"> & {
6
+ export declare const ErrGraphQLValidationFailed: (causes: GraphQLError[], message?: string) => GraphQLErrorExt<"GraphQLValidationFailed"> & {
7
+ message: string;
8
+ causes: GraphQLError[];
9
+ };
10
+ export declare const ErrGraphQLAPISchemaValidationFailed: (causes: GraphQLError[]) => GraphQLErrorExt<"GraphQLAPISchemaValidationFailed"> & {
7
11
  message: string;
8
12
  causes: GraphQLError[];
9
13
  };
@@ -49,6 +53,8 @@ export declare function isUnionType(type: Type): type is UnionType;
49
53
  export declare function isInputObjectType(type: Type): type is InputObjectType;
50
54
  export declare function isOutputType(type: Type): type is OutputType;
51
55
  export declare function isInputType(type: Type): type is InputType;
56
+ export declare function isTypeOfKind<T extends Type>(type: Type, kind: T['kind']): type is T;
57
+ export declare function filterTypesOfKind<T extends Type>(types: readonly Type[], kind: T['kind']): T[];
52
58
  export declare function baseType(type: Type): NamedType;
53
59
  export declare function isNullableType(type: Type): boolean;
54
60
  export declare function isAbstractType(type: Type): type is AbstractType;
@@ -85,9 +91,9 @@ export declare class DirectiveTargetElement<T extends DirectiveTargetElement<T>>
85
91
  appliedDirectivesToString(): string;
86
92
  variablesInAppliedDirectives(): Variables;
87
93
  }
88
- export declare function sourceASTs(...elts: ({
89
- sourceAST?: ASTNode;
90
- } | undefined)[]): ASTNode[];
94
+ export declare function sourceASTs<TNode extends ASTNode = ASTNode>(...elts: ({
95
+ sourceAST?: TNode;
96
+ } | undefined)[]): TNode[];
91
97
  declare abstract class Element<TParent extends SchemaElement<any, any> | Schema | DirectiveTargetElement<any>> {
92
98
  protected _parent?: TParent;
93
99
  sourceAST?: ASTNode;
@@ -119,7 +125,7 @@ export declare abstract class SchemaElement<TOwnType extends SchemaElement<any,
119
125
  [key: string]: any;
120
126
  } = {
121
127
  [key: string]: any;
122
- }>(nameOrDefOrDirective: Directive<TOwnType, TApplicationArgs> | DirectiveDefinition<TApplicationArgs> | string, args?: TApplicationArgs): Directive<TOwnType, TApplicationArgs>;
128
+ }>(nameOrDef: DirectiveDefinition<TApplicationArgs> | string, args?: TApplicationArgs, asFirstDirective?: boolean): Directive<TOwnType, TApplicationArgs>;
123
129
  protected removeAppliedDirectives(): void;
124
130
  protected onModification(): void;
125
131
  protected isElementBuiltIn(): boolean;
@@ -181,14 +187,18 @@ declare abstract class BaseExtensionMember<TExtended extends ExtendableElement>
181
187
  protected abstract removeInner(): void;
182
188
  }
183
189
  export declare class SchemaBlueprint {
184
- onMissingDirectiveDefinition(_schema: Schema, _name: string): DirectiveDefinition | undefined;
185
- onDirectiveDefinitionAndSchemaParsed(_: Schema): void;
190
+ onMissingDirectiveDefinition(_schema: Schema, _name: string, _args?: {
191
+ [key: string]: any;
192
+ }): DirectiveDefinition | GraphQLError[] | undefined;
193
+ onDirectiveDefinitionAndSchemaParsed(_: Schema): GraphQLError[];
186
194
  ignoreParsedField(_type: NamedType, _fieldName: string): boolean;
187
195
  onConstructed(_: Schema): void;
188
196
  onAddedCoreFeature(_schema: Schema, _feature: CoreFeature): void;
189
197
  onInvalidation(_: Schema): void;
190
198
  onValidation(_schema: Schema): GraphQLError[];
191
199
  validationRules(): readonly SDLValidationRule[];
200
+ onGraphQLJSValidationError(schema: Schema, error: GraphQLError): GraphQLError;
201
+ onUnknownDirectiveValidationError(_schema: Schema, _unknownDirectiveName: string, error: GraphQLError): GraphQLError;
192
202
  }
193
203
  export declare const defaultSchemaBlueprint: SchemaBlueprint;
194
204
  export declare class CoreFeature {
@@ -243,10 +253,16 @@ export declare class Schema {
243
253
  toAPISchema(): Schema;
244
254
  toGraphQLJSSchema(isSubgraph?: boolean): GraphQLSchema;
245
255
  get schemaDefinition(): SchemaDefinition;
246
- types<T extends NamedType>(kind?: T['kind']): readonly T[];
247
- builtInTypes<T extends NamedType>(kind?: T['kind'], includeShadowed?: boolean): readonly T[];
256
+ types(): readonly NamedType[];
257
+ interfaceTypes(): readonly InterfaceType[];
258
+ objectTypes(): readonly ObjectType[];
259
+ unionTypes(): readonly UnionType[];
260
+ scalarTypes(): readonly ScalarType[];
261
+ inputTypes(): readonly InputObjectType[];
262
+ enumTypes(): readonly EnumType[];
263
+ builtInTypes(includeShadowed?: boolean): readonly NamedType[];
248
264
  private isShadowedBuiltInType;
249
- allTypes<T extends NamedType>(kind?: T['kind']): readonly T[];
265
+ allTypes(): readonly NamedType[];
250
266
  type(name: string): NamedType | undefined;
251
267
  typeOfKind<T extends NamedType>(name: string, kind: T['kind']): T | undefined;
252
268
  intType(): ScalarType;
@@ -281,6 +297,7 @@ export declare class Schema {
281
297
  specifiedByDirective(schema: Schema): DirectiveDefinition<{
282
298
  url: string;
283
299
  }>;
300
+ elementByCoordinate(coordinate: string): NamedSchemaElement<any, any, any> | undefined;
284
301
  }
285
302
  export declare class RootType extends BaseExtensionMember<SchemaDefinition> {
286
303
  readonly rootKind: SchemaRootKind;
@@ -298,7 +315,7 @@ export declare class SchemaDefinition extends SchemaElement<SchemaDefinition, Sc
298
315
  [key: string]: any;
299
316
  } = {
300
317
  [key: string]: any;
301
- }>(nameOrDefOrDirective: Directive<SchemaDefinition, TApplicationArgs> | DirectiveDefinition<TApplicationArgs> | string, args?: TApplicationArgs): Directive<SchemaDefinition, TApplicationArgs>;
318
+ }>(nameOrDef: DirectiveDefinition<TApplicationArgs> | string, args?: TApplicationArgs, asFirstDirective?: boolean): Directive<SchemaDefinition, TApplicationArgs>;
302
319
  root(rootKind: SchemaRootKind): RootType | undefined;
303
320
  rootType(rootKind: SchemaRootKind): ObjectType | undefined;
304
321
  setRoot(rootKind: SchemaRootKind, nameOrType: ObjectType | string): RootType;