@apollo/federation-internals 2.9.0 → 2.10.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/error.d.ts +0 -19
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +0 -38
- package/dist/error.js.map +1 -1
- package/dist/federation.d.ts +2 -6
- package/dist/federation.d.ts.map +1 -1
- package/dist/federation.js +2 -24
- package/dist/federation.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/knownCoreFeatures.d.ts +0 -3
- package/dist/knownCoreFeatures.d.ts.map +1 -1
- package/dist/knownCoreFeatures.js +1 -12
- package/dist/knownCoreFeatures.js.map +1 -1
- package/dist/specs/connectSpec.d.ts +12 -0
- package/dist/specs/connectSpec.d.ts.map +1 -0
- package/dist/specs/connectSpec.js +83 -0
- package/dist/specs/connectSpec.js.map +1 -0
- package/dist/specs/coreSpec.d.ts +0 -1
- package/dist/specs/coreSpec.d.ts.map +1 -1
- package/dist/specs/coreSpec.js +2 -5
- package/dist/specs/coreSpec.js.map +1 -1
- package/dist/specs/federationSpec.d.ts +0 -3
- package/dist/specs/federationSpec.d.ts.map +1 -1
- package/dist/specs/federationSpec.js +3 -9
- package/dist/specs/federationSpec.js.map +1 -1
- package/dist/supergraphs.d.ts +1 -1
- package/dist/supergraphs.d.ts.map +1 -1
- package/dist/supergraphs.js +1 -0
- package/dist/supergraphs.js.map +1 -1
- package/package.json +1 -1
- package/src/error.ts +4 -137
- package/src/federation.ts +24 -59
- package/src/index.ts +1 -1
- package/src/knownCoreFeatures.ts +0 -15
- package/src/specs/connectSpec.ts +148 -0
- package/src/specs/coreSpec.ts +2 -7
- package/src/specs/federationSpec.ts +3 -10
- package/src/supergraphs.ts +2 -1
- package/dist/specs/sourceSpec.d.ts +0 -69
- package/dist/specs/sourceSpec.d.ts.map +0 -1
- package/dist/specs/sourceSpec.js +0 -345
- package/dist/specs/sourceSpec.js.map +0 -1
- package/src/specs/sourceSpec.ts +0 -607
package/dist/specs/sourceSpec.js
DELETED
|
@@ -1,345 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sourceSpec.js","sourceRoot":"","sources":["../../src/specs/sourceSpec.ts"],"names":[],"mappings":"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"}
|