@apollo/federation-internals 2.9.0-connectors.9 → 2.9.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 (69) hide show
  1. package/dist/argumentCompositionStrategies.d.ts +17 -0
  2. package/dist/argumentCompositionStrategies.d.ts.map +1 -1
  3. package/dist/argumentCompositionStrategies.js +38 -0
  4. package/dist/argumentCompositionStrategies.js.map +1 -1
  5. package/dist/error.d.ts +19 -0
  6. package/dist/error.d.ts.map +1 -1
  7. package/dist/error.js +38 -0
  8. package/dist/error.js.map +1 -1
  9. package/dist/extractSubgraphsFromSupergraph.d.ts.map +1 -1
  10. package/dist/extractSubgraphsFromSupergraph.js +59 -8
  11. package/dist/extractSubgraphsFromSupergraph.js.map +1 -1
  12. package/dist/federation.d.ts +9 -2
  13. package/dist/federation.d.ts.map +1 -1
  14. package/dist/federation.js +42 -5
  15. package/dist/federation.js.map +1 -1
  16. package/dist/index.d.ts +2 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +2 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/knownCoreFeatures.d.ts +3 -0
  21. package/dist/knownCoreFeatures.d.ts.map +1 -1
  22. package/dist/knownCoreFeatures.js +12 -1
  23. package/dist/knownCoreFeatures.js.map +1 -1
  24. package/dist/operations.d.ts +3 -1
  25. package/dist/operations.d.ts.map +1 -1
  26. package/dist/operations.js +26 -5
  27. package/dist/operations.js.map +1 -1
  28. package/dist/schemaUpgrader.d.ts.map +1 -1
  29. package/dist/schemaUpgrader.js +50 -31
  30. package/dist/schemaUpgrader.js.map +1 -1
  31. package/dist/specs/coreSpec.d.ts +2 -0
  32. package/dist/specs/coreSpec.d.ts.map +1 -1
  33. package/dist/specs/coreSpec.js +21 -0
  34. package/dist/specs/coreSpec.js.map +1 -1
  35. package/dist/specs/costSpec.d.ts +17 -0
  36. package/dist/specs/costSpec.d.ts.map +1 -0
  37. package/dist/specs/costSpec.js +49 -0
  38. package/dist/specs/costSpec.js.map +1 -0
  39. package/dist/specs/federationSpec.d.ts +6 -1
  40. package/dist/specs/federationSpec.d.ts.map +1 -1
  41. package/dist/specs/federationSpec.js +15 -1
  42. package/dist/specs/federationSpec.js.map +1 -1
  43. package/dist/specs/sourceSpec.d.ts +69 -0
  44. package/dist/specs/sourceSpec.d.ts.map +1 -0
  45. package/dist/specs/sourceSpec.js +345 -0
  46. package/dist/specs/sourceSpec.js.map +1 -0
  47. package/dist/supergraphs.d.ts +1 -1
  48. package/dist/supergraphs.d.ts.map +1 -1
  49. package/dist/supergraphs.js +1 -0
  50. package/dist/supergraphs.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/argumentCompositionStrategies.ts +37 -0
  53. package/src/error.ts +137 -4
  54. package/src/extractSubgraphsFromSupergraph.ts +94 -7
  55. package/src/federation.ts +89 -33
  56. package/src/index.ts +2 -1
  57. package/src/knownCoreFeatures.ts +15 -0
  58. package/src/operations.ts +41 -4
  59. package/src/schemaUpgrader.ts +55 -31
  60. package/src/specs/coreSpec.ts +26 -0
  61. package/src/specs/costSpec.ts +60 -0
  62. package/src/specs/federationSpec.ts +17 -1
  63. package/src/specs/sourceSpec.ts +607 -0
  64. package/src/supergraphs.ts +2 -1
  65. package/dist/specs/connectSpec.d.ts +0 -42
  66. package/dist/specs/connectSpec.d.ts.map +0 -1
  67. package/dist/specs/connectSpec.js +0 -83
  68. package/dist/specs/connectSpec.js.map +0 -1
  69. package/src/specs/connectSpec.ts +0 -183
@@ -1 +1 @@
1
- {"version":3,"file":"federationSpec.js","sourceRoot":"","sources":["../../src/specs/federationSpec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federationSpec.js","sourceRoot":"","sources":["../../src/specs/federationSpec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { GraphQLError } from 'graphql';
2
+ import { FeatureDefinition, FeatureDefinitions, FeatureVersion } from "./coreSpec";
3
+ import { Schema, DirectiveDefinition } from '../definitions';
4
+ export declare const sourceIdentity = "https://specs.apollo.dev/source";
5
+ export declare class SourceSpecDefinition extends FeatureDefinition {
6
+ readonly minimumFederationVersion: FeatureVersion;
7
+ constructor(version: FeatureVersion, minimumFederationVersion: FeatureVersion);
8
+ addElementsToSchema(schema: Schema): GraphQLError[];
9
+ allElementNames(): string[];
10
+ sourceAPIDirective(schema: Schema): DirectiveDefinition<SourceAPIDirectiveArgs>;
11
+ sourceTypeDirective(schema: Schema): DirectiveDefinition<SourceTypeDirectiveArgs>;
12
+ sourceFieldDirective(schema: Schema): DirectiveDefinition<SourceFieldDirectiveArgs>;
13
+ private getSourceDirectives;
14
+ validateSubgraphSchema(schema: Schema): GraphQLError[];
15
+ private validateSourceAPI;
16
+ private validateSourceType;
17
+ private validateSourceField;
18
+ }
19
+ export type SourceAPIDirectiveArgs = {
20
+ name: string;
21
+ http?: HTTPSourceAPI;
22
+ };
23
+ export type HTTPSourceAPI = {
24
+ baseURL: string;
25
+ headers?: HTTPHeaderMapping[];
26
+ };
27
+ export type HTTPHeaderMapping = {
28
+ name: string;
29
+ as?: string;
30
+ value?: string;
31
+ };
32
+ export type SourceTypeDirectiveArgs = {
33
+ api: string;
34
+ http?: HTTPSourceType;
35
+ selection: JSONSelection;
36
+ keyTypeMap?: KeyTypeMap;
37
+ };
38
+ export type HTTPSourceType = {
39
+ GET?: URLPathTemplate;
40
+ POST?: URLPathTemplate;
41
+ headers?: HTTPHeaderMapping[];
42
+ body?: JSONSelection;
43
+ };
44
+ type URLPathTemplate = string;
45
+ type JSONSelection = string;
46
+ type KeyTypeMap = {
47
+ key: string;
48
+ typeMap: {
49
+ [__typename: string]: string;
50
+ };
51
+ };
52
+ export type SourceFieldDirectiveArgs = {
53
+ api: string;
54
+ http?: HTTPSourceField;
55
+ selection?: JSONSelection;
56
+ keyTypeMap?: KeyTypeMap;
57
+ };
58
+ export type HTTPSourceField = {
59
+ GET?: URLPathTemplate;
60
+ POST?: URLPathTemplate;
61
+ PUT?: URLPathTemplate;
62
+ PATCH?: URLPathTemplate;
63
+ DELETE?: URLPathTemplate;
64
+ body?: JSONSelection;
65
+ headers?: HTTPHeaderMapping[];
66
+ };
67
+ export declare const SOURCE_VERSIONS: FeatureDefinitions<SourceSpecDefinition>;
68
+ export {};
69
+ //# sourceMappingURL=sourceSpec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sourceSpec.d.ts","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAQ,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAc,cAAc,EAAqB,MAAM,YAAY,CAAC;AAClH,OAAO,EACL,MAAM,EAKN,mBAAmB,EAEpB,MAAM,gBAAgB,CAAC;AAKxB,eAAO,MAAM,cAAc,oCAAoC,CAAC;AAEhE,qBAAa,oBAAqB,SAAQ,iBAAiB;IACpB,QAAQ,CAAC,wBAAwB,EAAE,cAAc;gBAA1E,OAAO,EAAE,cAAc,EAAW,wBAAwB,EAAE,cAAc;IA4BtF,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA2EnD,eAAe,IAAI,MAAM,EAAE;IAgB3B,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIlC,oBAAoB,CAAC,MAAM,EAAE,MAAM;IAInC,OAAO,CAAC,mBAAmB;IA+BlB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE;IA+B/D,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,kBAAkB;IAiG1B,OAAO,CAAC,mBAAmB;CAiH5B;AA2DD,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,KAAK,eAAe,GAAG,MAAM,CAAC;AAC9B,KAAK,aAAa,GAAG,MAAM,CAAC;AAE5B,KAAK,UAAU,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QACP,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe,0CACwD,CAAC"}
@@ -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":"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"}
@@ -14,7 +14,7 @@ export declare class Supergraph {
14
14
  private _subgraphNameToGraphEnumValue?;
15
15
  constructor(schema: Schema, supportedFeatures?: Set<string> | null, shouldValidate?: boolean);
16
16
  static build(supergraphSdl: string | DocumentNode, options?: {
17
- supportedFeatures?: Set<string> | null;
17
+ supportedFeatures?: Set<string>;
18
18
  validateSupergraph?: boolean;
19
19
  }): Supergraph;
20
20
  static buildForTests(supergraphSdl: string | DocumentNode, validateSupergraph?: boolean): Supergraph;
@@ -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,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,GAAG,IAAI,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE;IASrI,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
+ {"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,aAmB/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"}
@@ -39,6 +39,7 @@ exports.ROUTER_SUPPORTED_SUPERGRAPH_FEATURES = new Set([
39
39
  'https://specs.apollo.dev/policy/v0.1',
40
40
  'https://specs.apollo.dev/source/v0.1',
41
41
  'https://specs.apollo.dev/context/v0.1',
42
+ 'https://specs.apollo.dev/cost/v0.1',
42
43
  ]);
43
44
  const coreVersionZeroDotOneUrl = coreSpec_1.FeatureUrl.parse('https://specs.apollo.dev/core/v0.1');
44
45
  function checkFeatureSupport(coreFeatures, supportedFeatures) {
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apollo/federation-internals",
3
- "version": "2.9.0-connectors.9",
3
+ "version": "2.9.0",
4
4
  "description": "Apollo Federation internal utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -59,4 +59,41 @@ export const ARGUMENT_COMPOSITION_STRATEGIES = {
59
59
  return acc.concat(newValues);
60
60
  }, []),
61
61
  },
62
+ NULLABLE_AND: {
63
+ name: 'NULLABLE_AND',
64
+ isTypeSupported: supportFixedTypes((schema: Schema) => [schema.booleanType()]),
65
+ mergeValues: (values: (boolean | null | undefined)[]) => values.reduce((acc, next) => {
66
+ if (acc === null || acc === undefined) {
67
+ return next;
68
+ } else if (next === null || next === undefined) {
69
+ return acc;
70
+ } else {
71
+ return acc && next;
72
+ }
73
+ }, undefined),
74
+ },
75
+ NULLABLE_MAX: {
76
+ name: 'NULLABLE_MAX',
77
+ isTypeSupported: supportFixedTypes((schema: Schema) => [schema.intType(), new NonNullType(schema.intType())]),
78
+ mergeValues: (values: any[]) => values.reduce((a: any, b: any) => a !== undefined && b !== undefined ? Math.max(a, b) : a ?? b, undefined),
79
+ },
80
+ NULLABLE_UNION: {
81
+ name: 'NULLABLE_UNION',
82
+ isTypeSupported: (_: Schema, type: InputType) => ({ valid: isListType(type) }),
83
+ mergeValues: (values: any[]) => {
84
+ if (values.every((v) => v === undefined)) {
85
+ return undefined;
86
+ }
87
+
88
+ const combined = new Set();
89
+ for (const subgraphValues of values) {
90
+ if (Array.isArray(subgraphValues)) {
91
+ for (const value of subgraphValues) {
92
+ combined.add(value);
93
+ }
94
+ }
95
+ }
96
+ return Array.from(combined);
97
+ }
98
+ }
62
99
  }