@wundergraph/composition 0.18.4 → 0.18.5
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/ast/utils.d.ts +2 -9
- package/dist/ast/utils.js +2 -73
- package/dist/ast/utils.js.map +1 -1
- package/dist/errors/errors.d.ts +13 -19
- package/dist/errors/errors.js +50 -67
- package/dist/errors/errors.js.map +1 -1
- package/dist/federation/federation-factory.d.ts +17 -46
- package/dist/federation/federation-factory.js +391 -1002
- package/dist/federation/federation-factory.js.map +1 -1
- package/dist/federation/utils.d.ts +1 -115
- package/dist/federation/utils.js +0 -29
- package/dist/federation/utils.js.map +1 -1
- package/dist/federation/walkers.d.ts +3 -0
- package/dist/federation/walkers.js +120 -0
- package/dist/federation/walkers.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/normalization/normalization-factory.d.ts +26 -18
- package/dist/normalization/normalization-factory.js +139 -141
- package/dist/normalization/normalization-factory.js.map +1 -1
- package/dist/normalization/utils.js +53 -54
- package/dist/normalization/utils.js.map +1 -1
- package/dist/normalization/walkers.js +156 -128
- package/dist/normalization/walkers.js.map +1 -1
- package/dist/router-configuration/router-configuration.d.ts +0 -1
- package/dist/schema-building/ast.d.ts +17 -5
- package/dist/schema-building/ast.js +32 -17
- package/dist/schema-building/ast.js.map +1 -1
- package/dist/schema-building/type-definition-data.d.ts +51 -25
- package/dist/schema-building/type-extension-data.d.ts +11 -7
- package/dist/schema-building/type-merging.d.ts +2 -4
- package/dist/schema-building/type-merging.js +8 -27
- package/dist/schema-building/type-merging.js.map +1 -1
- package/dist/schema-building/utils.d.ts +41 -18
- package/dist/schema-building/utils.js +855 -111
- package/dist/schema-building/utils.js.map +1 -1
- package/dist/subgraph/subgraph.d.ts +8 -10
- package/dist/subgraph/subgraph.js +1 -237
- package/dist/subgraph/subgraph.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/constants.d.ts +7 -1
- package/dist/utils/constants.js +24 -19
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/string-constants.d.ts +10 -4
- package/dist/utils/string-constants.js +20 -6
- package/dist/utils/string-constants.js.map +1 -1
- package/dist/utils/utils.d.ts +4 -4
- package/dist/utils/utils.js +10 -4
- package/dist/utils/utils.js.map +1 -1
- package/package.json +4 -3
- package/dist/ast/ast.d.ts +0 -97
- package/dist/ast/ast.js +0 -168
- package/dist/ast/ast.js.map +0 -1
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.consolidateAuthorizationDirectives = exports.upsertParentsAndChildren = exports.upsertDirectiveAndSchemaDefinitions = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
|
-
const type_merging_1 = require("../schema-building/type-merging");
|
|
6
5
|
const errors_1 = require("../errors/errors");
|
|
7
6
|
const constants_1 = require("../utils/constants");
|
|
8
7
|
const utils_1 = require("../utils/utils");
|
|
@@ -10,11 +9,25 @@ const utils_2 = require("../ast/utils");
|
|
|
10
9
|
const utils_3 = require("./utils");
|
|
11
10
|
const string_constants_1 = require("../utils/string-constants");
|
|
12
11
|
const utils_4 = require("../schema-building/utils");
|
|
12
|
+
const ast_1 = require("../schema-building/ast");
|
|
13
13
|
// Walker to collect schema definition and directive definitions
|
|
14
14
|
function upsertDirectiveAndSchemaDefinitions(nf, document) {
|
|
15
15
|
const definedDirectives = new Set();
|
|
16
16
|
const schemaNodes = [];
|
|
17
17
|
(0, graphql_1.visit)(document, {
|
|
18
|
+
Directive: {
|
|
19
|
+
enter(node) {
|
|
20
|
+
const name = node.name.value;
|
|
21
|
+
if (constants_1.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) {
|
|
22
|
+
nf.isSubgraphVersionTwo = true;
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
if (constants_1.BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
nf.referencedDirectiveNames.add(name);
|
|
29
|
+
},
|
|
30
|
+
},
|
|
18
31
|
DirectiveDefinition: {
|
|
19
32
|
enter(node) {
|
|
20
33
|
const name = node.name.value;
|
|
@@ -40,19 +53,18 @@ function upsertDirectiveAndSchemaDefinitions(nf, document) {
|
|
|
40
53
|
OperationTypeDefinition: {
|
|
41
54
|
enter(node) {
|
|
42
55
|
const operationType = node.operation;
|
|
43
|
-
const operationPath = `${nf.parentTypeName}.${operationType}`;
|
|
44
56
|
const definitionNode = nf.schemaDefinition.operationTypes.get(operationType);
|
|
45
|
-
const
|
|
57
|
+
const namedTypeName = (0, ast_1.getTypeNodeNamedTypeName)(node.type);
|
|
46
58
|
if (definitionNode) {
|
|
47
|
-
(0, errors_1.duplicateOperationTypeDefinitionError)(operationType,
|
|
59
|
+
(0, errors_1.duplicateOperationTypeDefinitionError)(operationType, namedTypeName, (0, ast_1.getTypeNodeNamedTypeName)(definitionNode.type));
|
|
48
60
|
return false;
|
|
49
61
|
}
|
|
50
|
-
const existingOperationType = nf.
|
|
62
|
+
const existingOperationType = nf.operationTypeNodeByTypeName.get(namedTypeName);
|
|
51
63
|
if (existingOperationType) {
|
|
52
|
-
nf.errors.push((0, errors_1.invalidOperationTypeDefinitionError)(existingOperationType,
|
|
64
|
+
nf.errors.push((0, errors_1.invalidOperationTypeDefinitionError)(existingOperationType, namedTypeName, operationType));
|
|
53
65
|
return false;
|
|
54
66
|
}
|
|
55
|
-
nf.
|
|
67
|
+
nf.operationTypeNodeByTypeName.set(namedTypeName, operationType);
|
|
56
68
|
nf.schemaDefinition.operationTypes.set(operationType, node);
|
|
57
69
|
return false;
|
|
58
70
|
},
|
|
@@ -80,41 +92,28 @@ exports.upsertDirectiveAndSchemaDefinitions = upsertDirectiveAndSchemaDefinition
|
|
|
80
92
|
function upsertParentsAndChildren(nf, document) {
|
|
81
93
|
let isParentRootType = false;
|
|
82
94
|
(0, graphql_1.visit)(document, {
|
|
83
|
-
Directive: {
|
|
84
|
-
enter(node) {
|
|
85
|
-
const name = node.name.value;
|
|
86
|
-
if (constants_1.V2_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) {
|
|
87
|
-
nf.isSubgraphVersionTwo = true;
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
if (constants_1.BASE_DIRECTIVE_DEFINITION_BY_DIRECTIVE_NAME.has(name)) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
nf.referencedDirectiveNames.add(name);
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
95
|
EnumTypeDefinition: {
|
|
97
96
|
enter(node) {
|
|
98
|
-
nf.
|
|
99
|
-
if (nf.parentDefinitionDataByTypeName.has(nf.
|
|
100
|
-
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.
|
|
97
|
+
nf.originalParentTypeName = node.name.value;
|
|
98
|
+
if (nf.parentDefinitionDataByTypeName.has(nf.originalParentTypeName)) {
|
|
99
|
+
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
|
|
101
100
|
return false;
|
|
102
101
|
}
|
|
103
102
|
nf.lastParentNodeKind = node.kind;
|
|
104
103
|
const directivesByDirectiveName = nf.extractDirectivesAndAuthorization(node, new Map());
|
|
105
|
-
(0, utils_4.
|
|
104
|
+
(0, utils_4.addEnumDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, directivesByDirectiveName);
|
|
106
105
|
},
|
|
107
106
|
leave() {
|
|
108
|
-
nf.
|
|
107
|
+
nf.originalParentTypeName = '';
|
|
109
108
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
110
109
|
},
|
|
111
110
|
},
|
|
112
111
|
EnumTypeExtension: {
|
|
113
112
|
enter(node) {
|
|
114
|
-
nf.
|
|
113
|
+
nf.originalParentTypeName = node.name.value;
|
|
115
114
|
nf.lastParentNodeKind = node.kind;
|
|
116
115
|
nf.isCurrentParentExtension = true;
|
|
117
|
-
const extension = nf.parentExtensionDataByTypeName.get(nf.
|
|
116
|
+
const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
|
|
118
117
|
if (extension) {
|
|
119
118
|
if (extension.kind !== graphql_1.Kind.ENUM_TYPE_EXTENSION) {
|
|
120
119
|
nf.errors.push((0, errors_1.incompatibleExtensionKindsError)(node, extension.kind));
|
|
@@ -124,10 +123,10 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
124
123
|
return;
|
|
125
124
|
}
|
|
126
125
|
const directivesByDirectiveName = nf.extractDirectivesAndAuthorization(node, new Map());
|
|
127
|
-
(0, utils_4.
|
|
126
|
+
(0, utils_4.addEnumExtensionDataByNode)(nf.parentExtensionDataByTypeName, node, directivesByDirectiveName);
|
|
128
127
|
},
|
|
129
128
|
leave() {
|
|
130
|
-
nf.
|
|
129
|
+
nf.originalParentTypeName = '';
|
|
131
130
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
132
131
|
nf.isCurrentParentExtension = false;
|
|
133
132
|
},
|
|
@@ -137,19 +136,19 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
137
136
|
nf.childName = node.name.value;
|
|
138
137
|
nf.lastChildNodeKind = node.kind;
|
|
139
138
|
const parent = nf.isCurrentParentExtension
|
|
140
|
-
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
141
|
-
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.
|
|
139
|
+
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.EXTENSIONS)
|
|
140
|
+
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENTS);
|
|
142
141
|
if (parent.kind !== graphql_1.Kind.ENUM_TYPE_DEFINITION && parent.kind !== graphql_1.Kind.ENUM_TYPE_EXTENSION) {
|
|
143
142
|
throw (0, errors_1.unexpectedKindFatalError)(nf.childName);
|
|
144
143
|
}
|
|
145
144
|
if (parent.enumValueDataByValueName.has(nf.childName)) {
|
|
146
145
|
const error = nf.isCurrentParentExtension
|
|
147
|
-
? (0, errors_1.duplicateValueExtensionError)('enum', nf.
|
|
148
|
-
: (0, errors_1.duplicateEnumValueDefinitionError)(nf.childName, nf.
|
|
146
|
+
? (0, errors_1.duplicateValueExtensionError)('enum', nf.originalParentTypeName, nf.childName)
|
|
147
|
+
: (0, errors_1.duplicateEnumValueDefinitionError)(nf.childName, nf.originalParentTypeName);
|
|
149
148
|
nf.errors.push(error);
|
|
150
149
|
return;
|
|
151
150
|
}
|
|
152
|
-
(0, utils_4.
|
|
151
|
+
(0, utils_4.addEnumValueDataByNode)(parent.enumValueDataByValueName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.originalParentTypeName);
|
|
153
152
|
},
|
|
154
153
|
leave() {
|
|
155
154
|
nf.childName = '';
|
|
@@ -166,33 +165,32 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
166
165
|
}
|
|
167
166
|
}
|
|
168
167
|
nf.lastChildNodeKind = node.kind;
|
|
169
|
-
const fieldPath = `${nf.parentTypeName}.${nf.childName}`;
|
|
170
168
|
nf.lastChildNodeKind = node.kind;
|
|
171
|
-
const fieldNamedTypeName = (0,
|
|
169
|
+
const fieldNamedTypeName = (0, ast_1.getTypeNodeNamedTypeName)(node.type);
|
|
172
170
|
if (!constants_1.BASE_SCALARS.has(fieldNamedTypeName)) {
|
|
173
171
|
nf.referencedTypeNames.add(fieldNamedTypeName);
|
|
174
172
|
}
|
|
175
173
|
const parentData = nf.isCurrentParentExtension
|
|
176
|
-
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
177
|
-
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.
|
|
174
|
+
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.EXTENSIONS)
|
|
175
|
+
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENTS);
|
|
178
176
|
if (parentData.kind !== graphql_1.Kind.OBJECT_TYPE_DEFINITION &&
|
|
179
177
|
parentData.kind !== graphql_1.Kind.OBJECT_TYPE_EXTENSION &&
|
|
180
178
|
parentData.kind !== graphql_1.Kind.INTERFACE_TYPE_DEFINITION &&
|
|
181
179
|
parentData.kind !== graphql_1.Kind.INTERFACE_TYPE_EXTENSION) {
|
|
182
|
-
throw (0, errors_1.unexpectedKindFatalError)(nf.
|
|
180
|
+
throw (0, errors_1.unexpectedKindFatalError)(nf.originalParentTypeName);
|
|
183
181
|
}
|
|
184
182
|
if (parentData.fieldDataByFieldName.has(nf.childName)) {
|
|
185
|
-
nf.errors.push((0, errors_1.duplicateFieldDefinitionError)(nf.childName, nf.
|
|
183
|
+
nf.errors.push((0, errors_1.duplicateFieldDefinitionError)(nf.childName, nf.originalParentTypeName));
|
|
186
184
|
return;
|
|
187
185
|
}
|
|
188
|
-
const argumentDataByArgumentName = (0, utils_4.extractArguments)(new Map(), node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.parentsWithChildArguments, nf.
|
|
186
|
+
const argumentDataByArgumentName = (0, utils_4.extractArguments)(new Map(), node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.parentsWithChildArguments, nf.originalParentTypeName, nf.renamedParentTypeName || nf.originalParentTypeName, nf.subgraphName);
|
|
189
187
|
const directivesByDirectiveName = nf.extractDirectivesAndAuthorization(node, (0, utils_4.addInheritedDirectivesToFieldData)(parentData.directivesByDirectiveName, new Map()));
|
|
190
|
-
const fieldData = (0, utils_4.
|
|
191
|
-
const entityContainer = nf.entityContainerByTypeName.get(nf.
|
|
188
|
+
const fieldData = (0, utils_4.addFieldDataByNode)(parentData.fieldDataByFieldName, node, nf.errors, argumentDataByArgumentName, directivesByDirectiveName, nf.originalParentTypeName, nf.renamedParentTypeName || nf.originalParentTypeName, nf.subgraphName, nf.isSubgraphVersionTwo);
|
|
189
|
+
const entityContainer = nf.entityContainerByTypeName.get(nf.originalParentTypeName);
|
|
192
190
|
if (entityContainer) {
|
|
193
191
|
entityContainer.fieldNames.add(nf.childName);
|
|
194
192
|
// Only entities will have an existing FieldSet
|
|
195
|
-
const existingFieldSet = nf.fieldSetContainerByTypeName.get(nf.
|
|
193
|
+
const existingFieldSet = nf.fieldSetContainerByTypeName.get(nf.originalParentTypeName);
|
|
196
194
|
if (existingFieldSet) {
|
|
197
195
|
// @requires should only be defined on a field whose parent is an entity
|
|
198
196
|
// If there is existingFieldSet, it's an entity
|
|
@@ -208,7 +206,7 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
208
206
|
if (!providesDirectives) {
|
|
209
207
|
return;
|
|
210
208
|
}
|
|
211
|
-
const fieldSetContainer = (0, utils_1.getValueOrDefault)(nf.fieldSetContainerByTypeName, nf.
|
|
209
|
+
const fieldSetContainer = (0, utils_1.getValueOrDefault)(nf.fieldSetContainerByTypeName, nf.originalParentTypeName, utils_3.newFieldSetContainer);
|
|
212
210
|
// @provides only makes sense on entities, but the field can be encountered before the type definition
|
|
213
211
|
// When the FieldSet is evaluated, it will be checked whether the field is an entity.
|
|
214
212
|
(0, utils_3.extractFieldSetValue)(nf.childName, fieldSetContainer.provides, providesDirectives);
|
|
@@ -220,37 +218,37 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
220
218
|
},
|
|
221
219
|
InputObjectTypeDefinition: {
|
|
222
220
|
enter(node) {
|
|
223
|
-
nf.
|
|
224
|
-
if (nf.parentDefinitionDataByTypeName.has(nf.
|
|
225
|
-
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.
|
|
221
|
+
nf.originalParentTypeName = node.name.value;
|
|
222
|
+
if (nf.parentDefinitionDataByTypeName.has(nf.originalParentTypeName)) {
|
|
223
|
+
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
|
|
226
224
|
return false;
|
|
227
225
|
}
|
|
228
226
|
nf.lastParentNodeKind = node.kind;
|
|
229
|
-
(0, utils_4.
|
|
227
|
+
(0, utils_4.addInputObjectDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.subgraphName, nf.errors);
|
|
230
228
|
},
|
|
231
229
|
leave() {
|
|
232
230
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
233
|
-
nf.
|
|
231
|
+
nf.originalParentTypeName = '';
|
|
234
232
|
},
|
|
235
233
|
},
|
|
236
234
|
InputObjectTypeExtension: {
|
|
237
235
|
enter(node) {
|
|
238
|
-
nf.
|
|
236
|
+
nf.originalParentTypeName = node.name.value;
|
|
239
237
|
nf.lastParentNodeKind = node.kind;
|
|
240
238
|
nf.isCurrentParentExtension = true;
|
|
241
|
-
const extension = nf.parentExtensionDataByTypeName.get(nf.
|
|
239
|
+
const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
|
|
242
240
|
if (extension) {
|
|
243
241
|
if (extension.kind !== graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION) {
|
|
244
242
|
nf.errors.push((0, errors_1.incompatibleExtensionKindsError)(node, extension.kind));
|
|
245
243
|
return false;
|
|
246
244
|
}
|
|
247
|
-
(0, utils_4.extractDirectives)(node, extension.directivesByDirectiveName, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.
|
|
245
|
+
(0, utils_4.extractDirectives)(node, extension.directivesByDirectiveName, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.originalParentTypeName);
|
|
248
246
|
return;
|
|
249
247
|
}
|
|
250
|
-
(0, utils_4.
|
|
248
|
+
(0, utils_4.addInputObjectExtensionDataByNode)(nf.parentExtensionDataByTypeName, node, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.errors);
|
|
251
249
|
},
|
|
252
250
|
leave() {
|
|
253
|
-
nf.
|
|
251
|
+
nf.originalParentTypeName = '';
|
|
254
252
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
255
253
|
nf.isCurrentParentExtension = false;
|
|
256
254
|
},
|
|
@@ -266,21 +264,22 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
266
264
|
}
|
|
267
265
|
nf.childName = name;
|
|
268
266
|
nf.lastChildNodeKind = node.kind;
|
|
269
|
-
const
|
|
270
|
-
|
|
271
|
-
|
|
267
|
+
const valuePath = `${nf.originalParentTypeName}.${name}`;
|
|
268
|
+
const namedInputValueTypeName = (0, ast_1.getTypeNodeNamedTypeName)(node.type);
|
|
269
|
+
if (!constants_1.BASE_SCALARS.has(namedInputValueTypeName)) {
|
|
270
|
+
nf.referencedTypeNames.add(namedInputValueTypeName);
|
|
272
271
|
}
|
|
273
272
|
const parent = nf.isCurrentParentExtension
|
|
274
|
-
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
275
|
-
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.
|
|
273
|
+
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.EXTENSIONS)
|
|
274
|
+
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENTS);
|
|
276
275
|
if (parent.kind !== graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION && parent.kind !== graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION) {
|
|
277
|
-
throw (0, errors_1.unexpectedKindFatalError)(nf.
|
|
276
|
+
throw (0, errors_1.unexpectedKindFatalError)(nf.originalParentTypeName);
|
|
278
277
|
}
|
|
279
278
|
if (parent.inputValueDataByValueName.has(name)) {
|
|
280
|
-
nf.errors.push((0, errors_1.duplicateValueExtensionError)('input', nf.
|
|
279
|
+
nf.errors.push((0, errors_1.duplicateValueExtensionError)('input', nf.originalParentTypeName, name));
|
|
281
280
|
return;
|
|
282
281
|
}
|
|
283
|
-
(0, utils_4.
|
|
282
|
+
(0, utils_4.addInputValueDataByNode)(parent.inputValueDataByValueName, node, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, valuePath, nf.subgraphName, nf.errors);
|
|
284
283
|
},
|
|
285
284
|
leave() {
|
|
286
285
|
nf.argumentName = '';
|
|
@@ -294,7 +293,7 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
294
293
|
InterfaceTypeDefinition: {
|
|
295
294
|
enter(node) {
|
|
296
295
|
const typeName = node.name.value;
|
|
297
|
-
nf.
|
|
296
|
+
nf.originalParentTypeName = typeName;
|
|
298
297
|
nf.lastParentNodeKind = node.kind;
|
|
299
298
|
if ((0, utils_2.isNodeExtension)(node)) {
|
|
300
299
|
return nf.handleExtensionWithFields(node);
|
|
@@ -304,7 +303,10 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
304
303
|
return false;
|
|
305
304
|
}
|
|
306
305
|
const isEntity = (0, utils_2.isObjectLikeNodeEntity)(node);
|
|
307
|
-
|
|
306
|
+
if (isEntity && !nf.graph.hasNode(typeName)) {
|
|
307
|
+
nf.graph.addNode(typeName);
|
|
308
|
+
}
|
|
309
|
+
(0, utils_4.addInterfaceDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, isEntity, nf.subgraphName);
|
|
308
310
|
if (!isEntity) {
|
|
309
311
|
return;
|
|
310
312
|
}
|
|
@@ -316,7 +318,7 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
316
318
|
typeName: typeName,
|
|
317
319
|
});
|
|
318
320
|
(0, utils_1.upsertEntityContainerProperties)(nf.entityContainerByTypeName, {
|
|
319
|
-
typeName: nf.
|
|
321
|
+
typeName: nf.originalParentTypeName,
|
|
320
322
|
...(nf.subgraphName ? { subgraphNames: [nf.subgraphName] } : {}),
|
|
321
323
|
});
|
|
322
324
|
const fieldSetContainer = (0, utils_1.getValueOrDefault)(nf.fieldSetContainerByTypeName, typeName, utils_3.newFieldSetContainer);
|
|
@@ -325,55 +327,59 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
325
327
|
leave() {
|
|
326
328
|
// @extends treats the node as an extension, so fetch the correct data
|
|
327
329
|
const parentData = nf.isCurrentParentExtension
|
|
328
|
-
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
329
|
-
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.
|
|
330
|
+
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_EXTENSION_DATA_MAP)
|
|
331
|
+
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_DEFINITION_DATA_MAP);
|
|
330
332
|
(0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)(parentData);
|
|
331
333
|
nf.isCurrentParentExtension = false;
|
|
332
|
-
nf.
|
|
334
|
+
nf.originalParentTypeName = '';
|
|
333
335
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
334
336
|
},
|
|
335
337
|
},
|
|
336
338
|
InterfaceTypeExtension: {
|
|
337
339
|
enter(node) {
|
|
338
|
-
nf.
|
|
340
|
+
nf.originalParentTypeName = node.name.value;
|
|
339
341
|
nf.lastParentNodeKind = node.kind;
|
|
340
342
|
return nf.handleExtensionWithFields(node);
|
|
341
343
|
},
|
|
342
344
|
leave() {
|
|
343
|
-
(0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)((0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
345
|
+
(0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)((0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_EXTENSION_DATA_MAP));
|
|
344
346
|
nf.isCurrentParentExtension = false;
|
|
345
|
-
nf.
|
|
347
|
+
nf.originalParentTypeName = '';
|
|
346
348
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
347
349
|
},
|
|
348
350
|
},
|
|
349
351
|
ObjectTypeDefinition: {
|
|
350
352
|
enter(node) {
|
|
351
|
-
|
|
352
|
-
if (
|
|
353
|
+
nf.originalParentTypeName = node.name.value;
|
|
354
|
+
if (nf.originalParentTypeName === string_constants_1.SERVICE_OBJECT) {
|
|
353
355
|
return false;
|
|
354
356
|
}
|
|
355
|
-
isParentRootType = (0, utils_4.isTypeNameRootType)(
|
|
356
|
-
nf.
|
|
357
|
+
isParentRootType = (0, utils_4.isTypeNameRootType)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
|
|
358
|
+
nf.renamedParentTypeName = (0, utils_4.getRenamedRootTypeName)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
|
|
359
|
+
nf.originalTypeNameByRenamedTypeName.set(nf.renamedParentTypeName, nf.originalParentTypeName);
|
|
360
|
+
if (!nf.graph.hasNode(nf.renamedParentTypeName)) {
|
|
361
|
+
nf.graph.addNode(nf.renamedParentTypeName);
|
|
362
|
+
}
|
|
357
363
|
nf.lastParentNodeKind = node.kind;
|
|
358
|
-
(0, utils_2.addConcreteTypesForImplementedInterfaces)(node, nf.
|
|
364
|
+
(0, utils_2.addConcreteTypesForImplementedInterfaces)(node, nf.concreteTypeNamesByAbstractTypeName);
|
|
359
365
|
nf.handleInterfaceObject(node);
|
|
360
366
|
// handling for @extends directive
|
|
361
367
|
if ((0, utils_2.isNodeExtension)(node)) {
|
|
362
|
-
return nf.handleExtensionWithFields(node);
|
|
368
|
+
return nf.handleExtensionWithFields(node, isParentRootType);
|
|
363
369
|
}
|
|
364
|
-
if (nf.parentDefinitionDataByTypeName.has(
|
|
365
|
-
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind),
|
|
370
|
+
if (nf.parentDefinitionDataByTypeName.has(nf.originalParentTypeName)) {
|
|
371
|
+
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
|
|
366
372
|
return false;
|
|
367
373
|
}
|
|
368
374
|
const isEntity = (0, utils_2.isObjectLikeNodeEntity)(node);
|
|
369
|
-
(0, utils_4.
|
|
375
|
+
(0, utils_4.addObjectDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, isEntity, isParentRootType, nf.subgraphName || 'N/A', nf.renamedParentTypeName);
|
|
370
376
|
if (!isEntity) {
|
|
371
377
|
return;
|
|
372
378
|
}
|
|
373
|
-
const fieldSetContainer = (0, utils_1.getValueOrDefault)(nf.fieldSetContainerByTypeName,
|
|
379
|
+
const fieldSetContainer = (0, utils_1.getValueOrDefault)(nf.fieldSetContainerByTypeName, nf.originalParentTypeName, utils_3.newFieldSetContainer);
|
|
374
380
|
nf.extractKeyFieldSets(node, fieldSetContainer);
|
|
375
381
|
(0, utils_1.upsertEntityContainerProperties)(nf.entityContainerByTypeName, {
|
|
376
|
-
typeName: nf.
|
|
382
|
+
typeName: nf.originalParentTypeName,
|
|
377
383
|
keyFieldSets: fieldSetContainer.keys,
|
|
378
384
|
...(nf.subgraphName ? { subgraphNames: [nf.subgraphName] } : {}),
|
|
379
385
|
});
|
|
@@ -381,31 +387,38 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
381
387
|
leave() {
|
|
382
388
|
// @extends treats the node as an extension, so fetch the correct data
|
|
383
389
|
const parentData = nf.isCurrentParentExtension
|
|
384
|
-
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
385
|
-
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.
|
|
390
|
+
? (0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_EXTENSION_DATA_MAP)
|
|
391
|
+
: (0, utils_1.getOrThrowError)(nf.parentDefinitionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_DEFINITION_DATA_MAP);
|
|
386
392
|
(0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)(parentData);
|
|
387
393
|
isParentRootType = false;
|
|
388
394
|
nf.isCurrentParentExtension = false;
|
|
389
|
-
nf.
|
|
395
|
+
nf.originalParentTypeName = '';
|
|
396
|
+
nf.renamedParentTypeName = '';
|
|
390
397
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
391
398
|
},
|
|
392
399
|
},
|
|
393
400
|
ObjectTypeExtension: {
|
|
394
401
|
enter(node) {
|
|
395
|
-
nf.
|
|
396
|
-
if (nf.
|
|
402
|
+
nf.originalParentTypeName = node.name.value;
|
|
403
|
+
if (nf.originalParentTypeName === string_constants_1.SERVICE_OBJECT) {
|
|
397
404
|
return false;
|
|
398
405
|
}
|
|
399
|
-
isParentRootType = (0, utils_4.isTypeNameRootType)(nf.
|
|
406
|
+
isParentRootType = (0, utils_4.isTypeNameRootType)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
|
|
407
|
+
nf.renamedParentTypeName = (0, utils_4.getRenamedRootTypeName)(nf.originalParentTypeName, nf.operationTypeNodeByTypeName);
|
|
408
|
+
nf.originalTypeNameByRenamedTypeName.set(nf.renamedParentTypeName, nf.originalParentTypeName);
|
|
409
|
+
if (!nf.graph.hasNode(nf.renamedParentTypeName)) {
|
|
410
|
+
nf.graph.addNode(nf.renamedParentTypeName);
|
|
411
|
+
}
|
|
400
412
|
nf.lastParentNodeKind = node.kind;
|
|
401
|
-
(0, utils_2.addConcreteTypesForImplementedInterfaces)(node, nf.
|
|
402
|
-
return nf.handleExtensionWithFields(node);
|
|
413
|
+
(0, utils_2.addConcreteTypesForImplementedInterfaces)(node, nf.concreteTypeNamesByAbstractTypeName);
|
|
414
|
+
return nf.handleExtensionWithFields(node, isParentRootType);
|
|
403
415
|
},
|
|
404
416
|
leave() {
|
|
405
|
-
(0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)((0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.
|
|
417
|
+
(0, utils_4.removeInheritableDirectivesFromParentWithFieldsData)((0, utils_1.getOrThrowError)(nf.parentExtensionDataByTypeName, nf.originalParentTypeName, string_constants_1.PARENT_EXTENSION_DATA_MAP));
|
|
406
418
|
isParentRootType = false;
|
|
407
419
|
nf.isCurrentParentExtension = false;
|
|
408
|
-
nf.
|
|
420
|
+
nf.originalParentTypeName = '';
|
|
421
|
+
nf.renamedParentTypeName = '';
|
|
409
422
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
410
423
|
},
|
|
411
424
|
},
|
|
@@ -420,24 +433,24 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
420
433
|
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), name));
|
|
421
434
|
return false;
|
|
422
435
|
}
|
|
423
|
-
nf.
|
|
436
|
+
nf.originalParentTypeName = name;
|
|
424
437
|
nf.lastParentNodeKind = node.kind;
|
|
425
438
|
const directivesByDirectiveName = nf.extractDirectivesAndAuthorization(node, new Map());
|
|
426
|
-
(0, utils_4.
|
|
439
|
+
(0, utils_4.addScalarDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, directivesByDirectiveName);
|
|
427
440
|
},
|
|
428
441
|
leave() {
|
|
429
|
-
nf.
|
|
442
|
+
nf.originalParentTypeName = '';
|
|
430
443
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
431
444
|
},
|
|
432
445
|
},
|
|
433
446
|
ScalarTypeExtension: {
|
|
434
447
|
enter(node) {
|
|
435
|
-
nf.
|
|
436
|
-
if (nf.
|
|
448
|
+
nf.originalParentTypeName = node.name.value;
|
|
449
|
+
if (nf.originalParentTypeName === string_constants_1.ANY_SCALAR) {
|
|
437
450
|
return false;
|
|
438
451
|
}
|
|
439
452
|
nf.lastParentNodeKind = node.kind;
|
|
440
|
-
const extension = nf.parentExtensionDataByTypeName.get(nf.
|
|
453
|
+
const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
|
|
441
454
|
if (extension) {
|
|
442
455
|
if (extension.kind !== graphql_1.Kind.SCALAR_TYPE_EXTENSION) {
|
|
443
456
|
nf.errors.push((0, errors_1.incompatibleExtensionKindsError)(node, extension.kind));
|
|
@@ -447,60 +460,60 @@ function upsertParentsAndChildren(nf, document) {
|
|
|
447
460
|
return false;
|
|
448
461
|
}
|
|
449
462
|
const directivesByDirectiveName = nf.extractDirectivesAndAuthorization(node, new Map());
|
|
450
|
-
(0, utils_4.
|
|
463
|
+
(0, utils_4.addScalarExtensionDataByNode)(nf.parentExtensionDataByTypeName, node, directivesByDirectiveName);
|
|
451
464
|
return false;
|
|
452
465
|
},
|
|
453
466
|
leave() {
|
|
454
|
-
nf.
|
|
467
|
+
nf.originalParentTypeName = '';
|
|
455
468
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
456
469
|
},
|
|
457
470
|
},
|
|
458
471
|
UnionTypeDefinition: {
|
|
459
472
|
enter(node) {
|
|
460
|
-
nf.
|
|
461
|
-
if (nf.
|
|
473
|
+
nf.originalParentTypeName = node.name.value;
|
|
474
|
+
if (nf.originalParentTypeName === string_constants_1.ENTITY_UNION) {
|
|
462
475
|
return false;
|
|
463
476
|
}
|
|
464
|
-
const parent = nf.parentDefinitionDataByTypeName.get(nf.
|
|
477
|
+
const parent = nf.parentDefinitionDataByTypeName.get(nf.originalParentTypeName);
|
|
465
478
|
if (parent) {
|
|
466
|
-
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.
|
|
479
|
+
nf.errors.push((0, errors_1.duplicateTypeDefinitionError)((0, utils_1.kindToTypeString)(node.kind), nf.originalParentTypeName));
|
|
467
480
|
return false;
|
|
468
481
|
}
|
|
469
482
|
nf.lastParentNodeKind = node.kind;
|
|
470
|
-
(0, utils_4.
|
|
483
|
+
(0, utils_4.addUnionDefinitionDataByNode)(nf.parentDefinitionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
|
|
471
484
|
},
|
|
472
485
|
leave() {
|
|
473
|
-
nf.
|
|
486
|
+
nf.originalParentTypeName = '';
|
|
474
487
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
475
488
|
},
|
|
476
489
|
},
|
|
477
490
|
UnionTypeExtension: {
|
|
478
491
|
enter(node) {
|
|
479
|
-
nf.
|
|
480
|
-
if (nf.
|
|
492
|
+
nf.originalParentTypeName = node.name.value;
|
|
493
|
+
if (nf.originalParentTypeName === string_constants_1.ENTITY_UNION) {
|
|
481
494
|
return false;
|
|
482
495
|
}
|
|
483
|
-
const extension = nf.parentExtensionDataByTypeName.get(nf.
|
|
496
|
+
const extension = nf.parentExtensionDataByTypeName.get(nf.originalParentTypeName);
|
|
484
497
|
if (!node.types?.length) {
|
|
485
|
-
nf.errors.push((0, errors_1.noDefinedUnionMembersError)(nf.
|
|
498
|
+
nf.errors.push((0, errors_1.noDefinedUnionMembersError)(nf.originalParentTypeName, true));
|
|
486
499
|
return false;
|
|
487
500
|
}
|
|
488
501
|
nf.lastParentNodeKind = node.kind;
|
|
489
|
-
(0, utils_2.addConcreteTypesForUnion)(node, nf.
|
|
502
|
+
(0, utils_2.addConcreteTypesForUnion)(node, nf.concreteTypeNamesByAbstractTypeName);
|
|
490
503
|
if (extension) {
|
|
491
504
|
if (extension.kind !== graphql_1.Kind.UNION_TYPE_EXTENSION) {
|
|
492
505
|
nf.errors.push((0, errors_1.incompatibleExtensionKindsError)(node, extension.kind));
|
|
493
506
|
return false;
|
|
494
507
|
}
|
|
495
|
-
(0, utils_4.extractDirectives)(node, extension.directivesByDirectiveName, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.
|
|
496
|
-
(0, utils_4.extractUniqueUnionMembers)(node.types, extension.memberByMemberTypeName, nf.errors, nf.
|
|
508
|
+
(0, utils_4.extractDirectives)(node, extension.directivesByDirectiveName, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.originalParentTypeName);
|
|
509
|
+
(0, utils_4.extractUniqueUnionMembers)(node.types, extension.memberByMemberTypeName, nf.errors, nf.originalParentTypeName, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
|
|
497
510
|
return false;
|
|
498
511
|
}
|
|
499
|
-
(0, utils_4.
|
|
512
|
+
(0, utils_4.addUnionExtensionDataByNode)(nf.parentExtensionDataByTypeName, node, nf.errors, nf.directiveDefinitionByDirectiveName, nf.handledRepeatedDirectivesByHostPath, nf.concreteTypeNamesByAbstractTypeName, nf.referencedTypeNames);
|
|
500
513
|
return false;
|
|
501
514
|
},
|
|
502
515
|
leave() {
|
|
503
|
-
nf.
|
|
516
|
+
nf.originalParentTypeName = '';
|
|
504
517
|
nf.lastParentNodeKind = graphql_1.Kind.NULL;
|
|
505
518
|
},
|
|
506
519
|
},
|
|
@@ -515,18 +528,19 @@ function consolidateAuthorizationDirectives(nf, definitions) {
|
|
|
515
528
|
FieldDefinition: {
|
|
516
529
|
enter(node) {
|
|
517
530
|
nf.childName = node.name.value;
|
|
518
|
-
const typeName = (0,
|
|
531
|
+
const typeName = (0, ast_1.getTypeNodeNamedTypeName)(node.type);
|
|
519
532
|
const inheritsAuthorization = nf.leafTypeNamesWithAuthorizationDirectives.has(typeName);
|
|
520
533
|
if ((!parentAuthorizationData || !parentAuthorizationData.hasParentLevelAuthorization) &&
|
|
521
534
|
!inheritsAuthorization) {
|
|
522
535
|
return false;
|
|
523
536
|
}
|
|
537
|
+
const parentTypeName = nf.renamedParentTypeName || nf.originalParentTypeName;
|
|
524
538
|
if (!parentAuthorizationData) {
|
|
525
|
-
parentAuthorizationData = (0, utils_1.setAndGetValue)(nf.authorizationDataByParentTypeName,
|
|
539
|
+
parentAuthorizationData = (0, utils_1.setAndGetValue)(nf.authorizationDataByParentTypeName, parentTypeName, (0, utils_1.newAuthorizationData)(parentTypeName));
|
|
526
540
|
}
|
|
527
541
|
const fieldAuthorizationData = (0, utils_1.getValueOrDefault)(parentAuthorizationData.fieldAuthorizationDataByFieldName, nf.childName, () => (0, utils_1.newFieldAuthorizationData)(nf.childName));
|
|
528
542
|
if (!(0, utils_1.mergeAuthorizationDataByAND)(parentAuthorizationData, fieldAuthorizationData)) {
|
|
529
|
-
nf.invalidOrScopesHostPaths.add(`${nf.
|
|
543
|
+
nf.invalidOrScopesHostPaths.add(`${nf.originalParentTypeName}.${nf.childName}`);
|
|
530
544
|
return false;
|
|
531
545
|
}
|
|
532
546
|
if (!inheritsAuthorization) {
|
|
@@ -542,7 +556,7 @@ function consolidateAuthorizationDirectives(nf, definitions) {
|
|
|
542
556
|
if (definitionAuthorizationData &&
|
|
543
557
|
definitionAuthorizationData.hasParentLevelAuthorization &&
|
|
544
558
|
!(0, utils_1.mergeAuthorizationDataByAND)(definitionAuthorizationData, fieldAuthorizationData)) {
|
|
545
|
-
nf.invalidOrScopesHostPaths.add(`${nf.
|
|
559
|
+
nf.invalidOrScopesHostPaths.add(`${nf.originalParentTypeName}.${nf.childName}`);
|
|
546
560
|
}
|
|
547
561
|
return false;
|
|
548
562
|
},
|
|
@@ -552,45 +566,59 @@ function consolidateAuthorizationDirectives(nf, definitions) {
|
|
|
552
566
|
},
|
|
553
567
|
InterfaceTypeDefinition: {
|
|
554
568
|
enter(node) {
|
|
555
|
-
nf.
|
|
569
|
+
nf.originalParentTypeName = node.name.value;
|
|
556
570
|
parentAuthorizationData = nf.getAuthorizationData(node);
|
|
557
571
|
isInterfaceKind = true;
|
|
558
572
|
},
|
|
559
573
|
leave() {
|
|
560
|
-
nf.
|
|
574
|
+
nf.originalParentTypeName = '';
|
|
561
575
|
parentAuthorizationData = undefined;
|
|
562
576
|
isInterfaceKind = false;
|
|
563
577
|
},
|
|
564
578
|
},
|
|
565
579
|
InterfaceTypeExtension: {
|
|
566
580
|
enter(node) {
|
|
567
|
-
nf.
|
|
581
|
+
nf.originalParentTypeName = node.name.value;
|
|
568
582
|
parentAuthorizationData = nf.getAuthorizationData(node);
|
|
569
583
|
isInterfaceKind = true;
|
|
570
584
|
},
|
|
571
585
|
leave() {
|
|
572
|
-
nf.
|
|
586
|
+
nf.originalParentTypeName = '';
|
|
573
587
|
parentAuthorizationData = undefined;
|
|
574
588
|
isInterfaceKind = false;
|
|
575
589
|
},
|
|
576
590
|
},
|
|
577
591
|
ObjectTypeDefinition: {
|
|
578
592
|
enter(node) {
|
|
579
|
-
|
|
593
|
+
const parentData = nf.parentDefinitionDataByTypeName.get(node.name.value) ||
|
|
594
|
+
nf.parentExtensionDataByTypeName.get(node.name.value);
|
|
595
|
+
if (!parentData) {
|
|
596
|
+
return false;
|
|
597
|
+
}
|
|
598
|
+
nf.originalParentTypeName = parentData.name;
|
|
599
|
+
nf.renamedParentTypeName = parentData.renamedTypeName;
|
|
580
600
|
parentAuthorizationData = nf.getAuthorizationData(node);
|
|
581
601
|
},
|
|
582
602
|
leave() {
|
|
583
|
-
nf.
|
|
603
|
+
nf.originalParentTypeName = '';
|
|
604
|
+
nf.renamedParentTypeName = '';
|
|
584
605
|
parentAuthorizationData = undefined;
|
|
585
606
|
},
|
|
586
607
|
},
|
|
587
608
|
ObjectTypeExtension: {
|
|
588
609
|
enter(node) {
|
|
589
|
-
|
|
610
|
+
const parentData = nf.parentDefinitionDataByTypeName.get(node.name.value) ||
|
|
611
|
+
nf.parentExtensionDataByTypeName.get(node.name.value);
|
|
612
|
+
if (!parentData) {
|
|
613
|
+
return false;
|
|
614
|
+
}
|
|
615
|
+
nf.originalParentTypeName = parentData.name;
|
|
616
|
+
nf.renamedParentTypeName = parentData.renamedTypeName;
|
|
590
617
|
parentAuthorizationData = nf.getAuthorizationData(node);
|
|
591
618
|
},
|
|
592
619
|
leave() {
|
|
593
|
-
nf.
|
|
620
|
+
nf.originalParentTypeName = '';
|
|
621
|
+
nf.renamedParentTypeName = '';
|
|
594
622
|
parentAuthorizationData = undefined;
|
|
595
623
|
},
|
|
596
624
|
},
|