@apollo/federation-internals 2.8.0-connectors.4 → 2.8.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 (88) hide show
  1. package/dist/directiveAndTypeSpecification.d.ts +13 -1
  2. package/dist/directiveAndTypeSpecification.d.ts.map +1 -1
  3. package/dist/directiveAndTypeSpecification.js +2 -2
  4. package/dist/directiveAndTypeSpecification.js.map +1 -1
  5. package/dist/error.d.ts +25 -0
  6. package/dist/error.d.ts.map +1 -1
  7. package/dist/error.js +50 -0
  8. package/dist/error.js.map +1 -1
  9. package/dist/extractSubgraphsFromSupergraph.d.ts +1 -1
  10. package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
  11. package/dist/extractSubgraphsFromSupergraph.js +62 -7
  12. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  13. package/dist/federation.d.ts +19 -2
  14. package/dist/federation.d.ts.map +1 -1
  15. package/dist/federation.js +420 -9
  16. package/dist/federation.js.map +1 -1
  17. package/dist/index.d.ts +2 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +2 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/knownCoreFeatures.d.ts +3 -0
  22. package/dist/knownCoreFeatures.d.ts.map +1 -1
  23. package/dist/knownCoreFeatures.js +12 -1
  24. package/dist/knownCoreFeatures.js.map +1 -1
  25. package/dist/operations.d.ts +10 -8
  26. package/dist/operations.d.ts.map +1 -1
  27. package/dist/operations.js +48 -16
  28. package/dist/operations.js.map +1 -1
  29. package/dist/specs/contextSpec.d.ts +20 -0
  30. package/dist/specs/contextSpec.d.ts.map +1 -0
  31. package/dist/specs/contextSpec.js +62 -0
  32. package/dist/specs/contextSpec.js.map +1 -0
  33. package/dist/specs/coreSpec.d.ts +1 -0
  34. package/dist/specs/coreSpec.d.ts.map +1 -1
  35. package/dist/specs/coreSpec.js +3 -0
  36. package/dist/specs/coreSpec.js.map +1 -1
  37. package/dist/specs/federationSpec.d.ts +8 -2
  38. package/dist/specs/federationSpec.d.ts.map +1 -1
  39. package/dist/specs/federationSpec.js +16 -1
  40. package/dist/specs/federationSpec.js.map +1 -1
  41. package/dist/specs/joinSpec.d.ts +6 -0
  42. package/dist/specs/joinSpec.d.ts.map +1 -1
  43. package/dist/specs/joinSpec.js +11 -1
  44. package/dist/specs/joinSpec.js.map +1 -1
  45. package/dist/specs/sourceSpec.d.ts +69 -0
  46. package/dist/specs/sourceSpec.d.ts.map +1 -0
  47. package/dist/specs/sourceSpec.js +345 -0
  48. package/dist/specs/sourceSpec.js.map +1 -0
  49. package/dist/supergraphs.d.ts +4 -0
  50. package/dist/supergraphs.d.ts.map +1 -1
  51. package/dist/supergraphs.js +35 -2
  52. package/dist/supergraphs.js.map +1 -1
  53. package/dist/utils.d.ts +3 -0
  54. package/dist/utils.d.ts.map +1 -1
  55. package/dist/utils.js +39 -1
  56. package/dist/utils.js.map +1 -1
  57. package/package.json +1 -1
  58. package/src/directiveAndTypeSpecification.ts +8 -1
  59. package/src/error.ts +175 -0
  60. package/src/extractSubgraphsFromSupergraph.ts +76 -14
  61. package/src/federation.ts +636 -17
  62. package/src/index.ts +2 -1
  63. package/src/knownCoreFeatures.ts +15 -0
  64. package/src/operations.ts +63 -23
  65. package/src/specs/contextSpec.ts +87 -0
  66. package/src/specs/coreSpec.ts +5 -0
  67. package/src/specs/federationSpec.ts +18 -1
  68. package/src/specs/joinSpec.ts +27 -3
  69. package/src/specs/sourceSpec.ts +607 -0
  70. package/src/supergraphs.ts +37 -1
  71. package/src/utils.ts +38 -0
  72. package/dist/specs/connectSpec.d.ts +0 -42
  73. package/dist/specs/connectSpec.d.ts.map +0 -1
  74. package/dist/specs/connectSpec.js +0 -82
  75. package/dist/specs/connectSpec.js.map +0 -1
  76. package/dist/wasm.d.ts +0 -4
  77. package/dist/wasm.d.ts.map +0 -1
  78. package/dist/wasm.js +0 -83
  79. package/dist/wasm.js.map +0 -1
  80. package/src/specs/connectSpec.ts +0 -181
  81. package/src/wasm.ts +0 -111
  82. package/wasm/node/.gitignore +0 -1
  83. package/wasm/node/.npmignore +0 -2
  84. package/wasm/node/federation_internals_wasm.d.ts +0 -49
  85. package/wasm/node/federation_internals_wasm.js +0 -367
  86. package/wasm/node/federation_internals_wasm_bg.wasm +0 -0
  87. package/wasm/node/federation_internals_wasm_bg.wasm.d.ts +0 -19
  88. package/wasm/node/package.json +0 -15
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SOURCE_VERSIONS = exports.SourceSpecDefinition = exports.sourceIdentity = void 0;
4
+ const graphql_1 = require("graphql");
5
+ const coreSpec_1 = require("./coreSpec");
6
+ const definitions_1 = require("../definitions");
7
+ const knownCoreFeatures_1 = require("../knownCoreFeatures");
8
+ const directiveAndTypeSpecification_1 = require("../directiveAndTypeSpecification");
9
+ const error_1 = require("../error");
10
+ exports.sourceIdentity = 'https://specs.apollo.dev/source';
11
+ class SourceSpecDefinition extends coreSpec_1.FeatureDefinition {
12
+ constructor(version, minimumFederationVersion) {
13
+ super(new coreSpec_1.FeatureUrl(exports.sourceIdentity, 'source', version), minimumFederationVersion);
14
+ this.minimumFederationVersion = minimumFederationVersion;
15
+ this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
16
+ name: 'sourceAPI',
17
+ locations: [graphql_1.DirectiveLocation.SCHEMA],
18
+ repeatable: true,
19
+ composes: false,
20
+ }));
21
+ this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
22
+ name: 'sourceType',
23
+ locations: [graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE],
24
+ repeatable: true,
25
+ composes: false,
26
+ }));
27
+ this.registerDirective((0, directiveAndTypeSpecification_1.createDirectiveSpecification)({
28
+ name: 'sourceField',
29
+ locations: [graphql_1.DirectiveLocation.FIELD_DEFINITION],
30
+ repeatable: true,
31
+ composes: false,
32
+ }));
33
+ }
34
+ addElementsToSchema(schema) {
35
+ const sourceAPI = this.addDirective(schema, 'sourceAPI').addLocations(graphql_1.DirectiveLocation.SCHEMA);
36
+ sourceAPI.repeatable = true;
37
+ sourceAPI.addArgument('name', new definitions_1.NonNullType(schema.stringType()));
38
+ const HTTPHeaderMapping = schema.addType(new definitions_1.InputObjectType('HTTPHeaderMapping'));
39
+ HTTPHeaderMapping.addField(new definitions_1.InputFieldDefinition('name')).type =
40
+ new definitions_1.NonNullType(schema.stringType());
41
+ HTTPHeaderMapping.addField(new definitions_1.InputFieldDefinition('as')).type =
42
+ schema.stringType();
43
+ HTTPHeaderMapping.addField(new definitions_1.InputFieldDefinition('value')).type =
44
+ schema.stringType();
45
+ const HTTPSourceAPI = schema.addType(new definitions_1.InputObjectType('HTTPSourceAPI'));
46
+ HTTPSourceAPI.addField(new definitions_1.InputFieldDefinition('baseURL')).type =
47
+ new definitions_1.NonNullType(schema.stringType());
48
+ HTTPSourceAPI.addField(new definitions_1.InputFieldDefinition('headers')).type =
49
+ new definitions_1.ListType(new definitions_1.NonNullType(HTTPHeaderMapping));
50
+ sourceAPI.addArgument('http', HTTPSourceAPI);
51
+ const sourceType = this.addDirective(schema, 'sourceType').addLocations(graphql_1.DirectiveLocation.OBJECT, graphql_1.DirectiveLocation.INTERFACE);
52
+ sourceType.repeatable = true;
53
+ sourceType.addArgument('api', new definitions_1.NonNullType(schema.stringType()));
54
+ const URLPathTemplate = this.addScalarType(schema, 'URLPathTemplate');
55
+ const JSONSelection = this.addScalarType(schema, 'JSONSelection');
56
+ const HTTPSourceType = schema.addType(new definitions_1.InputObjectType('HTTPSourceType'));
57
+ HTTPSourceType.addField(new definitions_1.InputFieldDefinition('GET')).type = URLPathTemplate;
58
+ HTTPSourceType.addField(new definitions_1.InputFieldDefinition('POST')).type = URLPathTemplate;
59
+ HTTPSourceType.addField(new definitions_1.InputFieldDefinition('headers')).type =
60
+ new definitions_1.ListType(new definitions_1.NonNullType(HTTPHeaderMapping));
61
+ HTTPSourceType.addField(new definitions_1.InputFieldDefinition('body')).type = JSONSelection;
62
+ sourceType.addArgument('http', HTTPSourceType);
63
+ sourceType.addArgument('selection', new definitions_1.NonNullType(JSONSelection));
64
+ const KeyTypeMap = schema.addType(new definitions_1.InputObjectType('KeyTypeMap'));
65
+ KeyTypeMap.addField(new definitions_1.InputFieldDefinition('key')).type = new definitions_1.NonNullType(schema.stringType());
66
+ KeyTypeMap.addField(new definitions_1.InputFieldDefinition('typeMap')).type =
67
+ this.addScalarType(schema, 'TypenameKeyMap');
68
+ sourceType.addArgument('keyTypeMap', KeyTypeMap);
69
+ const sourceField = this.addDirective(schema, 'sourceField').addLocations(graphql_1.DirectiveLocation.FIELD_DEFINITION);
70
+ sourceField.repeatable = true;
71
+ sourceField.addArgument('api', new definitions_1.NonNullType(schema.stringType()));
72
+ sourceField.addArgument('selection', JSONSelection);
73
+ sourceField.addArgument('keyTypeMap', KeyTypeMap);
74
+ const HTTPSourceField = schema.addType(new definitions_1.InputObjectType('HTTPSourceField'));
75
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('GET')).type = URLPathTemplate;
76
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('POST')).type = URLPathTemplate;
77
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('PUT')).type = URLPathTemplate;
78
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('PATCH')).type = URLPathTemplate;
79
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('DELETE')).type = URLPathTemplate;
80
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('body')).type = JSONSelection;
81
+ HTTPSourceField.addField(new definitions_1.InputFieldDefinition('headers')).type =
82
+ new definitions_1.ListType(new definitions_1.NonNullType(HTTPHeaderMapping));
83
+ sourceField.addArgument('http', HTTPSourceField);
84
+ return [];
85
+ }
86
+ allElementNames() {
87
+ return [
88
+ '@sourceAPI',
89
+ '@sourceType',
90
+ '@sourceField',
91
+ ];
92
+ }
93
+ sourceAPIDirective(schema) {
94
+ return this.directive(schema, 'sourceAPI');
95
+ }
96
+ sourceTypeDirective(schema) {
97
+ return this.directive(schema, 'sourceType');
98
+ }
99
+ sourceFieldDirective(schema) {
100
+ return this.directive(schema, 'sourceField');
101
+ }
102
+ getSourceDirectives(schema) {
103
+ const result = {};
104
+ schema.schemaDefinition.appliedDirectivesOf('link')
105
+ .forEach(linkDirective => {
106
+ const { url, import: imports } = linkDirective.arguments();
107
+ const featureUrl = coreSpec_1.FeatureUrl.maybeParse(url);
108
+ if (imports && featureUrl && featureUrl.identity === exports.sourceIdentity) {
109
+ imports.forEach(nameOrRename => {
110
+ const originalName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.name;
111
+ const importedName = typeof nameOrRename === 'string' ? nameOrRename : nameOrRename.as || originalName;
112
+ const importedNameWithoutAt = importedName.replace(/^@/, '');
113
+ if (originalName === '@sourceAPI') {
114
+ result.sourceAPI = schema.directive(importedNameWithoutAt);
115
+ }
116
+ else if (originalName === '@sourceType') {
117
+ result.sourceType = schema.directive(importedNameWithoutAt);
118
+ }
119
+ else if (originalName === '@sourceField') {
120
+ result.sourceField = schema.directive(importedNameWithoutAt);
121
+ }
122
+ });
123
+ }
124
+ });
125
+ return result;
126
+ }
127
+ validateSubgraphSchema(schema) {
128
+ const errors = super.validateSubgraphSchema(schema);
129
+ const { sourceAPI, sourceType, sourceField, } = this.getSourceDirectives(schema);
130
+ if (!(sourceAPI || sourceType || sourceField)) {
131
+ return [];
132
+ }
133
+ const apiNameToProtocol = new Map();
134
+ if (sourceAPI) {
135
+ this.validateSourceAPI(sourceAPI, apiNameToProtocol, errors);
136
+ }
137
+ if (sourceType) {
138
+ this.validateSourceType(sourceType, apiNameToProtocol, errors);
139
+ }
140
+ if (sourceField) {
141
+ this.validateSourceField(sourceField, apiNameToProtocol, errors);
142
+ }
143
+ return errors;
144
+ }
145
+ validateSourceAPI(sourceAPI, apiNameToProtocol, errors) {
146
+ sourceAPI.applications().forEach(application => {
147
+ const { name, ...rest } = application.arguments();
148
+ if (!isValidSourceAPIName(name)) {
149
+ errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI}(name: ${JSON.stringify(name)}) must specify name using only [a-zA-Z0-9-_] characters`, { nodes: application.sourceAST }));
150
+ }
151
+ if (apiNameToProtocol.has(name)) {
152
+ errors.push(error_1.ERRORS.SOURCE_API_NAME_INVALID.err(`${sourceAPI} must specify unique name (${JSON.stringify(name)} reused)`, { nodes: application.sourceAST }));
153
+ }
154
+ let protocol;
155
+ KNOWN_SOURCE_PROTOCOLS.forEach(knownProtocol => {
156
+ if (rest[knownProtocol]) {
157
+ if (protocol) {
158
+ errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify only one of ${KNOWN_SOURCE_PROTOCOLS.join(', ')} but specified both ${protocol} and ${knownProtocol}`, { nodes: application.sourceAST }));
159
+ }
160
+ protocol = knownProtocol;
161
+ }
162
+ });
163
+ if (protocol) {
164
+ apiNameToProtocol.set(name, protocol);
165
+ const protocolValue = rest[protocol];
166
+ if (protocolValue && protocol === HTTP_PROTOCOL) {
167
+ const { baseURL, headers } = protocolValue;
168
+ try {
169
+ new URL(baseURL);
170
+ }
171
+ catch (e) {
172
+ errors.push(error_1.ERRORS.SOURCE_API_HTTP_BASE_URL_INVALID.err(`${sourceAPI} http.baseURL ${JSON.stringify(baseURL)} must be valid URL (error: ${e.message})`, { nodes: application.sourceAST }));
173
+ }
174
+ validateHTTPHeaders(headers, errors, sourceAPI.name);
175
+ }
176
+ }
177
+ else {
178
+ errors.push(error_1.ERRORS.SOURCE_API_PROTOCOL_INVALID.err(`${sourceAPI} must specify one protocol from the set {${KNOWN_SOURCE_PROTOCOLS.join(',')}}`, { nodes: application.sourceAST }));
179
+ }
180
+ });
181
+ }
182
+ validateSourceType(sourceType, apiNameToProtocol, errors) {
183
+ sourceType.applications().forEach(application => {
184
+ var _a;
185
+ const { api, selection, ...rest } = application.arguments();
186
+ if (!api || !apiNameToProtocol.has(api)) {
187
+ errors.push(error_1.ERRORS.SOURCE_TYPE_API_ERROR.err(`${sourceType} specifies unknown api ${api}`, { nodes: application.sourceAST }));
188
+ }
189
+ const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
190
+ const protocolValue = expectedProtocol && rest[expectedProtocol];
191
+ if (expectedProtocol && !protocolValue) {
192
+ errors.push(error_1.ERRORS.SOURCE_TYPE_PROTOCOL_INVALID.err(`${sourceType} must specify same ${expectedProtocol} argument as corresponding @sourceAPI for api ${api}`, { nodes: application.sourceAST }));
193
+ }
194
+ if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
195
+ const { GET, POST, headers, body } = protocolValue;
196
+ if ([GET, POST].filter(Boolean).length !== 1) {
197
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_METHOD_INVALID.err(`${sourceType} must specify exactly one of http.GET or http.POST`, { nodes: application.sourceAST }));
198
+ }
199
+ else {
200
+ const urlPathTemplate = (GET || POST);
201
+ try {
202
+ parseURLPathTemplate(urlPathTemplate);
203
+ }
204
+ catch (e) {
205
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_PATH_INVALID.err(`${sourceType} http.GET or http.POST must be valid URL path template (error: ${e.message})`));
206
+ }
207
+ }
208
+ validateHTTPHeaders(headers, errors, sourceType.name);
209
+ if (body) {
210
+ if (GET) {
211
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
212
+ }
213
+ try {
214
+ parseJSONSelection(body);
215
+ }
216
+ catch (e) {
217
+ errors.push(error_1.ERRORS.SOURCE_TYPE_HTTP_BODY_INVALID.err(`${sourceType} http.body not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
218
+ }
219
+ }
220
+ }
221
+ const ast = application.parent.sourceAST;
222
+ switch (ast === null || ast === void 0 ? void 0 : ast.kind) {
223
+ case "ObjectTypeDefinition":
224
+ case "InterfaceTypeDefinition":
225
+ if (!((_a = ast.directives) === null || _a === void 0 ? void 0 : _a.some(directive => directive.name.value === "key"))) {
226
+ errors.push(error_1.ERRORS.SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY.err(`${sourceType} must be applied to an entity type that also has a @key directive`, { nodes: application.sourceAST }));
227
+ }
228
+ try {
229
+ parseJSONSelection(selection);
230
+ }
231
+ catch (e) {
232
+ errors.push(error_1.ERRORS.SOURCE_TYPE_SELECTION_INVALID.err(`${sourceType} selection not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
233
+ }
234
+ break;
235
+ default:
236
+ errors.push(error_1.ERRORS.SOURCE_TYPE_ON_NON_OBJECT_OR_NON_ENTITY.err(`${sourceType} must be applied to object or interface type`, { nodes: application.sourceAST }));
237
+ }
238
+ });
239
+ }
240
+ validateSourceField(sourceField, apiNameToProtocol, errors) {
241
+ sourceField.applications().forEach(application => {
242
+ var _a, _b, _c;
243
+ const { api, selection, ...rest } = application.arguments();
244
+ if (!api || !apiNameToProtocol.has(api)) {
245
+ errors.push(error_1.ERRORS.SOURCE_FIELD_API_ERROR.err(`${sourceField} specifies unknown api ${api}`, { nodes: application.sourceAST }));
246
+ }
247
+ const expectedProtocol = apiNameToProtocol.get(api) || HTTP_PROTOCOL;
248
+ const protocolValue = expectedProtocol && rest[expectedProtocol];
249
+ if (protocolValue && expectedProtocol === HTTP_PROTOCOL) {
250
+ const { GET, POST, PUT, PATCH, DELETE, headers, body, } = protocolValue;
251
+ const usedMethods = [GET, POST, PUT, PATCH, DELETE].filter(Boolean);
252
+ if (usedMethods.length > 1) {
253
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_METHOD_INVALID.err(`${sourceField} allows at most one of http.{GET,POST,PUT,PATCH,DELETE}`));
254
+ }
255
+ else if (usedMethods.length === 1) {
256
+ const urlPathTemplate = usedMethods[0];
257
+ try {
258
+ parseURLPathTemplate(urlPathTemplate);
259
+ }
260
+ catch (e) {
261
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_PATH_INVALID.err(`${sourceField} http.{GET,POST,PUT,PATCH,DELETE} must be valid URL path template (error: ${e.message})`));
262
+ }
263
+ }
264
+ validateHTTPHeaders(headers, errors, sourceField.name);
265
+ if (body) {
266
+ if (GET) {
267
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.GET cannot specify http.body`, { nodes: application.sourceAST }));
268
+ }
269
+ else if (DELETE) {
270
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.DELETE cannot specify http.body`, { nodes: application.sourceAST }));
271
+ }
272
+ try {
273
+ parseJSONSelection(body);
274
+ }
275
+ catch (e) {
276
+ errors.push(error_1.ERRORS.SOURCE_FIELD_HTTP_BODY_INVALID.err(`${sourceField} http.body not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
277
+ }
278
+ }
279
+ }
280
+ if (selection) {
281
+ try {
282
+ parseJSONSelection(selection);
283
+ }
284
+ catch (e) {
285
+ errors.push(error_1.ERRORS.SOURCE_FIELD_SELECTION_INVALID.err(`${sourceField} selection not valid JSONSelection (error: ${e.message})`, { nodes: application.sourceAST }));
286
+ }
287
+ }
288
+ const fieldParent = application.parent;
289
+ if (((_a = fieldParent.sourceAST) === null || _a === void 0 ? void 0 : _a.kind) !== graphql_1.Kind.FIELD_DEFINITION) {
290
+ errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to field`, { nodes: application.sourceAST }));
291
+ }
292
+ else {
293
+ const typeGrandparent = fieldParent.parent;
294
+ if (((_b = typeGrandparent.sourceAST) === null || _b === void 0 ? void 0 : _b.kind) !== graphql_1.Kind.OBJECT_TYPE_DEFINITION) {
295
+ errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to field of object type`, { nodes: application.sourceAST }));
296
+ }
297
+ else {
298
+ const typeGrandparentName = (_c = typeGrandparent.sourceAST) === null || _c === void 0 ? void 0 : _c.name.value;
299
+ if (typeGrandparentName !== "Query" &&
300
+ typeGrandparentName !== "Mutation" &&
301
+ typeGrandparent.appliedDirectivesOf("key").length === 0) {
302
+ errors.push(error_1.ERRORS.SOURCE_FIELD_NOT_ON_ROOT_OR_ENTITY_FIELD.err(`${sourceField} must be applied to root Query or Mutation field or field of entity type`, { nodes: application.sourceAST }));
303
+ }
304
+ }
305
+ }
306
+ });
307
+ }
308
+ }
309
+ exports.SourceSpecDefinition = SourceSpecDefinition;
310
+ function isValidSourceAPIName(name) {
311
+ return /^[a-z-_][a-z0-9-_]*$/i.test(name);
312
+ }
313
+ function isValidHTTPHeaderName(name) {
314
+ return /^[a-zA-Z0-9-_]+$/.test(name);
315
+ }
316
+ function validateHTTPHeaders(headers, errors, directiveName) {
317
+ if (!directiveName.startsWith('@')) {
318
+ directiveName = '@' + directiveName;
319
+ }
320
+ if (headers) {
321
+ headers.forEach(({ name, as, value }, i) => {
322
+ if (!isValidHTTPHeaderName(name)) {
323
+ errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} specifies invalid name`));
324
+ }
325
+ if (as && !isValidHTTPHeaderName(as)) {
326
+ errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} specifies invalid 'as' name`));
327
+ }
328
+ if (as && value) {
329
+ errors.push(error_1.ERRORS.SOURCE_HTTP_HEADERS_INVALID.err(`${directiveName} header ${JSON.stringify(headers[i])} should specify at most one of 'as' or 'value'`));
330
+ }
331
+ });
332
+ }
333
+ }
334
+ function parseJSONSelection(_selection) {
335
+ }
336
+ function parseURLPathTemplate(_template) {
337
+ }
338
+ const HTTP_PROTOCOL = "http";
339
+ const KNOWN_SOURCE_PROTOCOLS = [
340
+ HTTP_PROTOCOL,
341
+ ];
342
+ exports.SOURCE_VERSIONS = new coreSpec_1.FeatureDefinitions(exports.sourceIdentity)
343
+ .add(new SourceSpecDefinition(new coreSpec_1.FeatureVersion(0, 1), new coreSpec_1.FeatureVersion(2, 7)));
344
+ (0, knownCoreFeatures_1.registerKnownFeature)(exports.SOURCE_VERSIONS);
345
+ //# sourceMappingURL=sourceSpec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceSpec.js","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":";;;AAAA,qCAAgE;AAChE,yCAAkH;AAClH,gDAQwB;AACxB,4DAA4D;AAC5D,oFAAgF;AAChF,oCAAkC;AAErB,QAAA,cAAc,GAAG,iCAAiC,CAAC;AAEhE,MAAa,oBAAqB,SAAQ,4BAAiB;IACzD,YAAY,OAAuB,EAAW,wBAAwC;QACpF,KAAK,CAAC,IAAI,qBAAU,CAAC,sBAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,wBAAwB,CAAC,CAAC;QADvC,6BAAwB,GAAxB,wBAAwB,CAAgB;QAGpF,IAAI,CAAC,iBAAiB,CAAC,IAAA,4DAA4B,EAAC;YAClD,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,CAAC;YACrC,UAAU,EAAE,IAAI;YAIhB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,iBAAiB,CAAC,IAAA,4DAA4B,EAAC;YAClD,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,CAAC,2BAAiB,CAAC,MAAM,EAAE,2BAAiB,CAAC,SAAS,CAAC;YAClE,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,iBAAiB,CAAC,IAAA,4DAA4B,EAAC;YAClD,IAAI,EAAE,aAAa;YACnB,SAAS,EAAE,CAAC,2BAAiB,CAAC,gBAAgB,CAAC;YAC/C,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,YAAY,CAAC,2BAAiB,CAAC,MAAM,CAAC,CAAC;QAChG,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;QAE5B,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,6BAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACnF,iBAAiB,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAC/D,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAC7D,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,iBAAiB,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAChE,MAAM,CAAC,UAAU,EAAE,CAAC;QAEtB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,6BAAe,CAAC,eAAe,CAAC,CAAC,CAAC;QAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC9D,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACvC,aAAa,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC9D,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,YAAY,CACrE,2BAAiB,CAAC,MAAM,EACxB,2BAAiB,CAAC,SAAS,CAG5B,CAAC;QACF,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;QAC7B,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAEpE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAElE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,6BAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC7E,cAAc,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QAChF,cAAc,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QACjF,cAAc,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAC/D,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAGnD,cAAc,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC;QAC/E,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAE/C,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,yBAAW,CAAC,aAAa,CAAC,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,6BAAe,CAAC,YAAY,CAAC,CAAC,CAAC;QACrE,UAAU,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjG,UAAU,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAG3D,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAC/C,UAAU,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,YAAY,CACvE,2BAAiB,CAAC,gBAAgB,CACnC,CAAC;QACF,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC;QAC9B,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,yBAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACrE,WAAW,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACpD,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAElD,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,6BAAe,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/E,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QACjF,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QAClF,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QACjF,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QACnF,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,eAAe,CAAC;QACpF,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC;QAChF,eAAe,CAAC,QAAQ,CAAC,IAAI,kCAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAChE,IAAI,sBAAQ,CAAC,IAAI,yBAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACnD,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe;QACb,OAAO;YACL,YAAY;YACZ,aAAa;YACb,cAAc;SASf,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAyB,MAAM,EAAE,WAAW,CAAE,CAAC;IACtE,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,SAAS,CAA0B,MAAM,EAAE,YAAY,CAAE,CAAC;IACxE,CAAC;IAED,oBAAoB,CAAC,MAAc;QACjC,OAAO,IAAI,CAAC,SAAS,CAA2B,MAAM,EAAE,aAAa,CAAE,CAAC;IAC1E,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,MAAM,MAAM,GAIR,EAAE,CAAC;QAEP,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAoB,MAAM,CAAC;aACnE,OAAO,CAAC,aAAa,CAAC,EAAE;YACvB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,qBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,OAAO,IAAI,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,sBAAc,EAAE,CAAC;gBACpE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;oBAC7B,MAAM,YAAY,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;oBACzF,MAAM,YAAY,GAAG,OAAO,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC;oBACvG,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAE7D,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;wBAClC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAgD,CAAC;oBAC5G,CAAC;yBAAM,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;wBAC1C,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAiD,CAAC;oBAC9G,CAAC;yBAAM,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;wBAC3C,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAkD,CAAC;oBAChH,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,OAAO,MAAM,CAAC;IAChB,CAAC;IAEQ,sBAAsB,CAAC,MAAc;QAC5C,MAAM,MAAM,GAAG,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,EACJ,SAAS,EACT,UAAU,EACV,WAAW,GACZ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAErC,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,IAAI,WAAW,CAAC,EAAE,CAAC;YAG9C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAwB,CAAC;QAE1D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,iBAAiB,CACvB,SAAsD,EACtD,iBAA4C,EAC5C,MAAsB;QAEtB,SAAS,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC7C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YAElD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,uBAAuB,CAAC,GAAG,CAC5C,GAAG,SAAS,UACV,IAAI,CAAC,SAAS,CAAC,IAAI,CACrB,yDAAyD,EACzD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,uBAAuB,CAAC,GAAG,CAC5C,GAAG,SAAS,8BAA8B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EACxE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,QAAkC,CAAC;YACvC,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;gBAC7C,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;oBACxB,IAAI,QAAQ,EAAE,CAAC;wBACb,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,2BAA2B,CAAC,GAAG,CAChD,GAAG,SAAS,6BACV,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAClC,uBAAuB,QAAQ,QAAQ,aAAa,EAAE,EACtD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;oBACD,QAAQ,GAAG,aAAa,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,EAAE,CAAC;gBACb,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAEtC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrC,IAAI,aAAa,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAChD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,aAA8B,CAAC;oBAE5D,IAAI,CAAC;wBACH,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,gCAAgC,CAAC,GAAG,CACrD,GAAG,SAAS,iBAAiB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,OAAO,GAAG,EAC9F,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;oBAED,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,2BAA2B,CAAC,GAAG,CAChD,GAAG,SAAS,4CAA4C,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAC3F,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,kBAAkB,CACxB,UAAwD,EACxD,iBAA4C,EAC5C,MAAsB;QAEtB,UAAU,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;;YAC9C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,qBAAqB,CAAC,GAAG,CAC1C,GAAG,UAAU,0BAA0B,GAAG,EAAE,EAC5C,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC;YACrE,MAAM,aAAa,GAAG,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,IAAI,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,4BAA4B,CAAC,GAAG,CACjD,GAAG,UAAU,sBACX,gBACF,iDAAiD,GAAG,EAAE,EACtD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,aAAa,IAAI,gBAAgB,KAAK,aAAa,EAAE,CAAC;gBACxD,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,aAA+B,CAAC;gBAErE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC7C,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,+BAA+B,CAAC,GAAG,CACpD,GAAG,UAAU,oDAAoD,EACjE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,IAAI,CAAE,CAAC;oBACvC,IAAI,CAAC;wBAGH,oBAAoB,CAAC,eAAe,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAClD,GAAG,UAAU,kEAAkE,CAAC,CAAC,OAAO,GAAG,CAC5F,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAEtD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAClD,GAAG,UAAU,oCAAoC,EACjD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC;wBACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAE3B,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAClD,GAAG,UAAU,8CAA8C,CAAC,CAAC,OAAO,GAAG,EACvE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;YACzC,QAAQ,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,EAAE,CAAC;gBAClB,KAAK,sBAAsB,CAAC;gBAC5B,KAAK,yBAAyB;oBAC5B,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,UAAU,0CAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAA,EAAE,CAAC;wBACvE,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,uCAAuC,CAAC,GAAG,CAC5D,GAAG,UAAU,mEAAmE,EAChF,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC;wBACH,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAEhC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAClD,GAAG,UAAU,8CAA8C,CAAC,CAAC,OAAO,GAAG,EACvE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM;gBACR;oBACE,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,uCAAuC,CAAC,GAAG,CAC5D,GAAG,UAAU,8CAA8C,EAC3D,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACP,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CACzB,WAA0D,EAC1D,iBAA4C,EAC5C,MAAsB;QAEtB,WAAW,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;;YAC/C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;YAC5D,IAAI,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,sBAAsB,CAAC,GAAG,CAC3C,GAAG,WAAW,0BAA0B,GAAG,EAAE,EAC7C,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC;YACrE,MAAM,aAAa,GAAG,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjE,IAAI,aAAa,IAAI,gBAAgB,KAAK,aAAa,EAAE,CAAC;gBACxD,MAAM,EACJ,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAC7B,OAAO,EACP,IAAI,GACL,GAAG,aAAgC,CAAC;gBAErC,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACpE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,gCAAgC,CAAC,GAAG,CACrD,GAAG,WAAW,yDAAyD,CACxE,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpC,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;oBACxC,IAAI,CAAC;wBAGH,oBAAoB,CAAC,eAAe,CAAC,CAAC;oBACxC,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,8BAA8B,CAAC,GAAG,CACnD,GAAG,WAAW,6EAA6E,CAAC,CAAC,OAAO,GAAG,CACxG,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;gBAEvD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,8BAA8B,CAAC,GAAG,CACnD,GAAG,WAAW,oCAAoC,EAClD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,MAAM,EAAE,CAAC;wBAClB,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,8BAA8B,CAAC,GAAG,CACnD,GAAG,WAAW,uCAAuC,EACrD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,CAAC;wBACH,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAG3B,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,8BAA8B,CAAC,GAAG,CACnD,GAAG,WAAW,8CAA8C,CAAC,CAAC,OAAO,GAAG,EACxE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAGhC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,8BAA8B,CAAC,GAAG,CACnD,GAAG,WAAW,8CAA8C,CAAC,CAAC,OAAO,GAAG,EACxE,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAID,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;YACvC,IAAI,CAAA,MAAA,WAAW,CAAC,SAAS,0CAAE,IAAI,MAAK,cAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,wCAAwC,CAAC,GAAG,CAC7D,GAAG,WAAW,2BAA2B,EACzC,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,GAAG,WAAW,CAAC,MAAiC,CAAC;gBACtE,IAAI,CAAA,MAAA,eAAe,CAAC,SAAS,0CAAE,IAAI,MAAK,cAAI,CAAC,sBAAsB,EAAE,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,wCAAwC,CAAC,GAAG,CAC7D,GAAG,WAAW,0CAA0C,EACxD,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,mBAAmB,GAAG,MAAA,eAAe,CAAC,SAAS,0CAAE,IAAI,CAAC,KAAK,CAAC;oBAClE,IACE,mBAAmB,KAAK,OAAO;wBAC/B,mBAAmB,KAAK,UAAU;wBAClC,eAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EACvD,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,wCAAwC,CAAC,GAAG,CAC7D,GAAG,WAAW,0EAA0E,EACxF,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,EAAE,CACjC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAtdD,oDAsdC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAY;IAEzC,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,mBAAmB,CAC1B,OAAwC,EACxC,MAAsB,EACtB,aAAqB;IAErB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,aAAa,GAAG,GAAG,GAAG,aAAa,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;YAEzC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,2BAA2B,CAAC,GAAG,CAChD,GAAG,aAAa,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAC/E,CAAC,CAAC;YACL,CAAC;YAED,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,2BAA2B,CAAC,GAAG,CAChD,GAAG,aAAa,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,8BAA8B,CACpF,CAAC,CAAC;YACL,CAAC;YAED,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;gBAChB,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,2BAA2B,CAAC,GAAG,CAChD,GAAG,aAAa,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,gDAAgD,CACtG,CAAC,CAAC;YACL,CAAC;QAGH,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAkB;AAE9C,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;AAE/C,CAAC;AAED,MAAM,aAAa,GAAG,MAAM,CAAC;AAC7B,MAAM,sBAAsB,GAAG;IAC7B,aAAa;CACL,CAAC;AA4DE,QAAA,eAAe,GAAG,IAAI,6BAAkB,CAAuB,sBAAc,CAAC;KACxF,GAAG,CAAC,IAAI,oBAAoB,CAAC,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAErF,IAAA,wCAAoB,EAAC,uBAAe,CAAC,CAAC"}
@@ -3,6 +3,7 @@ import { CoreFeatures, Schema } from "./definitions";
3
3
  import { JoinSpecDefinition } from "./specs/joinSpec";
4
4
  import { Subgraphs } from ".";
5
5
  export declare const DEFAULT_SUPPORTED_SUPERGRAPH_FEATURES: Set<string>;
6
+ export declare const ROUTER_SUPPORTED_SUPERGRAPH_FEATURES: Set<string>;
6
7
  export declare function validateSupergraph(supergraph: Schema): [CoreFeatures, JoinSpecDefinition];
7
8
  export declare function isFed1Supergraph(supergraph: Schema): boolean;
8
9
  export declare class Supergraph {
@@ -10,16 +11,19 @@ export declare class Supergraph {
10
11
  private readonly shouldValidate;
11
12
  private readonly containedSubgraphs;
12
13
  private _subgraphs?;
14
+ private _subgraphNameToGraphEnumValue?;
13
15
  constructor(schema: Schema, supportedFeatures?: Set<string> | null, shouldValidate?: boolean);
14
16
  static build(supergraphSdl: string | DocumentNode, options?: {
15
17
  supportedFeatures?: Set<string>;
16
18
  validateSupergraph?: boolean;
17
19
  }): Supergraph;
20
+ static buildForTests(supergraphSdl: string | DocumentNode, validateSupergraph?: boolean): Supergraph;
18
21
  subgraphsMetadata(): readonly {
19
22
  name: string;
20
23
  url: string;
21
24
  }[];
22
25
  subgraphs(): Subgraphs;
26
+ subgraphNameToGraphEnumValue(): Map<string, string>;
23
27
  apiSchema(): Schema;
24
28
  }
25
29
  //# sourceMappingURL=supergraphs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supergraphs.d.ts","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAInF,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,eAAO,MAAM,qCAAqC,aAYhD,CAAC;AAwCH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAezF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,qBAAa,UAAU;IAMnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAPjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAE5E,OAAO,CAAC,UAAU,CAAC,CAAY;gBAGpB,MAAM,EAAE,MAAM,EACvB,iBAAiB,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAA4C,EAC5D,cAAc,GAAE,OAAc;IAiBjD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;IAe9H,iBAAiB,IAAI,SAAS;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE;IAI3D,SAAS,IAAI,SAAS;IAUtB,SAAS,IAAI,MAAM;CAGpB"}
1
+ {"version":3,"file":"supergraphs.d.ts","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAgB,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,YAAY,EAAE,MAAM,EAAc,MAAM,eAAe,CAAC;AACjE,OAAO,EAAgB,kBAAkB,EAAiB,MAAM,kBAAkB,CAAC;AAInF,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,eAAO,MAAM,qCAAqC,aAahD,CAAC;AAEH,eAAO,MAAM,oCAAoC,aAkB/C,CAAC;AAwCH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAezF;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,qBAAa,UAAU;IAOnB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IARjC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAE5E,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,OAAO,CAAC,6BAA6B,CAAC,CAAsB;gBAGjD,MAAM,EAAE,MAAM,EACvB,iBAAiB,GAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAA4C,EAC5D,cAAc,GAAE,OAAc;IAiBjD,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,OAAO,CAAC,EAAE;QAAE,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;IAS9H,MAAM,CAAC,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY,EAAE,kBAAkB,CAAC,EAAE,OAAO;IASvF,iBAAiB,IAAI,SAAS;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE;IAI3D,SAAS,IAAI,SAAS;IAYtB,4BAA4B,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IASnD,SAAS,IAAI,MAAM;CAGpB"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Supergraph = exports.isFed1Supergraph = exports.validateSupergraph = exports.DEFAULT_SUPPORTED_SUPERGRAPH_FEATURES = void 0;
3
+ exports.Supergraph = exports.isFed1Supergraph = exports.validateSupergraph = exports.ROUTER_SUPPORTED_SUPERGRAPH_FEATURES = exports.DEFAULT_SUPPORTED_SUPERGRAPH_FEATURES = void 0;
4
4
  const coreSpec_1 = require("./specs/coreSpec");
5
5
  const definitions_1 = require("./definitions");
6
6
  const joinSpec_1 = require("./specs/joinSpec");
@@ -14,12 +14,32 @@ exports.DEFAULT_SUPPORTED_SUPERGRAPH_FEATURES = new Set([
14
14
  'https://specs.apollo.dev/join/v0.2',
15
15
  'https://specs.apollo.dev/join/v0.3',
16
16
  'https://specs.apollo.dev/join/v0.4',
17
+ 'https://specs.apollo.dev/join/v0.5',
17
18
  'https://specs.apollo.dev/tag/v0.1',
18
19
  'https://specs.apollo.dev/tag/v0.2',
19
20
  'https://specs.apollo.dev/tag/v0.3',
20
21
  'https://specs.apollo.dev/inaccessible/v0.1',
21
22
  'https://specs.apollo.dev/inaccessible/v0.2',
22
23
  ]);
24
+ exports.ROUTER_SUPPORTED_SUPERGRAPH_FEATURES = new Set([
25
+ 'https://specs.apollo.dev/core/v0.1',
26
+ 'https://specs.apollo.dev/core/v0.2',
27
+ 'https://specs.apollo.dev/join/v0.1',
28
+ 'https://specs.apollo.dev/join/v0.2',
29
+ 'https://specs.apollo.dev/join/v0.3',
30
+ 'https://specs.apollo.dev/join/v0.4',
31
+ 'https://specs.apollo.dev/join/v0.5',
32
+ 'https://specs.apollo.dev/tag/v0.1',
33
+ 'https://specs.apollo.dev/tag/v0.2',
34
+ 'https://specs.apollo.dev/tag/v0.3',
35
+ 'https://specs.apollo.dev/inaccessible/v0.1',
36
+ 'https://specs.apollo.dev/inaccessible/v0.2',
37
+ 'https://specs.apollo.dev/authenticated/v0.1',
38
+ 'https://specs.apollo.dev/requiresScopes/v0.1',
39
+ 'https://specs.apollo.dev/policy/v0.1',
40
+ 'https://specs.apollo.dev/source/v0.1',
41
+ 'https://specs.apollo.dev/context/v0.1',
42
+ ]);
23
43
  const coreVersionZeroDotOneUrl = coreSpec_1.FeatureUrl.parse('https://specs.apollo.dev/core/v0.1');
24
44
  function checkFeatureSupport(coreFeatures, supportedFeatures) {
25
45
  const errors = [];
@@ -86,15 +106,28 @@ class Supergraph {
86
106
  : (0, buildSchema_1.buildSchemaFromAST)(supergraphSdl, { validate: false });
87
107
  return new Supergraph(schema, options === null || options === void 0 ? void 0 : options.supportedFeatures, options === null || options === void 0 ? void 0 : options.validateSupergraph);
88
108
  }
109
+ static buildForTests(supergraphSdl, validateSupergraph) {
110
+ return Supergraph.build(supergraphSdl, { supportedFeatures: exports.ROUTER_SUPPORTED_SUPERGRAPH_FEATURES, validateSupergraph });
111
+ }
89
112
  subgraphsMetadata() {
90
113
  return this.containedSubgraphs;
91
114
  }
92
115
  subgraphs() {
93
116
  if (!this._subgraphs) {
94
- this._subgraphs = (0, extractSubgraphsFromSupergraph_1.extractSubgraphsFromSupergraph)(this.schema, this.shouldValidate);
117
+ const extractionResults = (0, extractSubgraphsFromSupergraph_1.extractSubgraphsFromSupergraph)(this.schema, this.shouldValidate);
118
+ this._subgraphs = extractionResults[0];
119
+ this._subgraphNameToGraphEnumValue = extractionResults[1];
95
120
  }
96
121
  return this._subgraphs;
97
122
  }
123
+ subgraphNameToGraphEnumValue() {
124
+ if (!this._subgraphNameToGraphEnumValue) {
125
+ const extractionResults = (0, extractSubgraphsFromSupergraph_1.extractSubgraphsFromSupergraph)(this.schema, this.shouldValidate);
126
+ this._subgraphs = extractionResults[0];
127
+ this._subgraphNameToGraphEnumValue = extractionResults[1];
128
+ }
129
+ return new Map([...this._subgraphNameToGraphEnumValue]);
130
+ }
98
131
  apiSchema() {
99
132
  return this.schema.toAPISchema();
100
133
  }
@@ -1 +1 @@
1
- {"version":3,"file":"supergraphs.js","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supergraphs.js","sourceRoot":"","sources":["../src/supergraphs.ts"],"names":[],"mappings":";;;AACA,+CAAkF;AAClF,+CAAiE;AACjE,+CAAmF;AACnF,+CAAgE;AAChE,qFAA8H;AAC9H,mCAAiC;AAGpB,QAAA,qCAAqC,GAAG,IAAI,GAAG,CAAC;IAC3D,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC,CAAC;AAEU,QAAA,oCAAoC,GAAG,IAAI,GAAG,CAAC;IAC1D,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,mCAAmC;IACnC,4CAA4C;IAC5C,4CAA4C;IAC5C,6CAA6C;IAC7C,8CAA8C;IAC9C,sCAAsC;IACtC,sCAAsC;IACtC,uCAAuC;CACxC,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,qBAAU,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAOxF,SAAS,mBAAmB,CAAC,YAA0B,EAAE,iBAA8B;IACrF,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;IAC3C,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACpD,MAAM,kBAAkB,GAAG,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;QACjF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,0BAA0B,CAAC,GAAG,CAC/C,mDAAmD,UAAU,CAAC,GAAG,CAAC,OAAO,GAAG;gBAC5E,+FAA+F,EAC/F;gBACE,KAAK,EAAE,IAAA,wBAAU,EAAC,UAAU,CAAC,SAAS,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACrF,CACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;YACtH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,cAAM,CAAC,0BAA0B,CAAC,GAAG,CAC/C,WAAW,OAAO,CAAC,GAAG,YAAY,OAAO,CAAC,OAAO,qBAAqB,EACtE,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,EAAE,CACvC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAA,6BAAkB,EAAC,MAAM,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,wBAAa,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,cAAM,CAAC,6BAA6B,CAAC,GAAG,CAC5C,0DAA0D,WAAW,CAAC,GAAG,CAAC,OAAO,yBAAyB,wBAAa,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtJ,CAAC;IACD,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAfD,gDAeC;AAED,SAAgB,gBAAgB,CAAC,UAAkB;IACjD,OAAO,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,yBAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAFD,4CAEC;AAED,MAAa,UAAU;IAMrB,YACW,MAAc,EACvB,oBAAwC,6CAAqC,EAC5D,iBAA0B,IAAI;QAFtC,WAAM,GAAN,MAAM,CAAQ;QAEN,mBAAc,GAAd,cAAc,CAAgB;QAE/C,MAAM,CAAC,YAAY,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAElD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,mBAAmB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAA,2EAA0C,EAAC,MAAM,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAoC,EAAE,OAA2E;QAE5H,MAAM,MAAM,GAAG,OAAO,aAAa,KAAK,QAAQ;YAC9C,CAAC,CAAC,IAAA,yBAAW,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YACjD,CAAC,CAAC,IAAA,gCAAkB,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAE3D,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,aAAoC,EAAE,kBAA4B;QACrF,OAAO,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,iBAAiB,EAAE,4CAAoC,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1H,CAAC;IAOD,iBAAiB;QACf,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAIrB,MAAM,iBAAiB,GAAG,IAAA,+DAA8B,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3F,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,6BAA6B,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,4BAA4B;QAC1B,IAAI,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACxC,MAAM,iBAAiB,GAAG,IAAA,+DAA8B,EAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3F,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,6BAA6B,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;CACF;AAxED,gCAwEC"}
package/dist/utils.d.ts CHANGED
@@ -62,4 +62,7 @@ export declare function removeArrayElement<T>(element: T, array: T[]): boolean;
62
62
  export type NonEmptyArray<T> = [T, ...T[]];
63
63
  export declare function isNonEmptyArray<T>(array: T[]): array is NonEmptyArray<T>;
64
64
  export declare function findLast<T>(array: T[], predicate: (t: T) => boolean): T | undefined;
65
+ export declare function mergeMapOrNull<K, V>(m1: Map<K, V> | null, m2: Map<K, V> | null): Map<K, V> | null;
66
+ export declare function composeSets<T>(s1: Set<T> | null, s2: Set<T> | null): Set<T> | null;
67
+ export declare function setsEqual<T>(s1: Set<T> | null, s2: Set<T> | null): boolean;
65
68
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/dist/utils.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findLast = exports.isNonEmptyArray = exports.removeArrayElement = exports.isDefined = exports.printHumanReadableList = exports.joinStrings = exports.validateStringContainsBoolean = exports.copyWitNewLength = exports.MapWithCachedArrays = exports.setValues = exports.mapEntries = exports.mapKeys = exports.mapValues = exports.firstOf = exports.isSubset = exports.arrayEquals = exports.OrderedMap = exports.SetMultiMap = exports.MultiMap = exports.assertUnreachable = exports.assert = void 0;
3
+ exports.setsEqual = exports.composeSets = exports.mergeMapOrNull = exports.findLast = exports.isNonEmptyArray = exports.removeArrayElement = exports.isDefined = exports.printHumanReadableList = exports.joinStrings = exports.validateStringContainsBoolean = exports.copyWitNewLength = exports.MapWithCachedArrays = exports.setValues = exports.mapEntries = exports.mapKeys = exports.mapValues = exports.firstOf = exports.isSubset = exports.arrayEquals = exports.OrderedMap = exports.SetMultiMap = exports.MultiMap = exports.assertUnreachable = exports.assert = void 0;
4
4
  function assert(condition, message) {
5
5
  if (!condition) {
6
6
  throw new Error(typeof message === 'string' ? message : message());
@@ -333,4 +333,42 @@ function findLast(array, predicate) {
333
333
  return undefined;
334
334
  }
335
335
  exports.findLast = findLast;
336
+ function mergeMapOrNull(m1, m2) {
337
+ if (!m1) {
338
+ return m2;
339
+ }
340
+ if (!m2) {
341
+ return m1;
342
+ }
343
+ return new Map([...m1, ...m2]);
344
+ }
345
+ exports.mergeMapOrNull = mergeMapOrNull;
346
+ function composeSets(s1, s2) {
347
+ if (!s1 && !s2) {
348
+ return null;
349
+ }
350
+ const result = new Set();
351
+ s1 === null || s1 === void 0 ? void 0 : s1.forEach(v => result.add(v));
352
+ s2 === null || s2 === void 0 ? void 0 : s2.forEach(v => result.add(v));
353
+ return result;
354
+ }
355
+ exports.composeSets = composeSets;
356
+ function setsEqual(s1, s2) {
357
+ if (s1 === s2) {
358
+ return true;
359
+ }
360
+ if (!s1 && !s2) {
361
+ return true;
362
+ }
363
+ if (!s1 || !s2 || s1.size !== s2.size) {
364
+ return false;
365
+ }
366
+ for (const key of s1) {
367
+ if (!s2.has(key)) {
368
+ return false;
369
+ }
370
+ }
371
+ return true;
372
+ }
373
+ exports.setsEqual = setsEqual;
336
374
  //# sourceMappingURL=utils.js.map