@wundergraph/composition 0.36.1 → 0.37.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/README.md +41 -48
- package/dist/ast/utils.d.ts +0 -2
- package/dist/ast/utils.js +2 -33
- package/dist/ast/utils.js.map +1 -1
- package/dist/errors/errors.d.ts +10 -13
- package/dist/errors/errors.js +81 -74
- package/dist/errors/errors.js.map +1 -1
- package/dist/federation/federation.d.ts +6 -0
- package/dist/federation/federation.js +30 -0
- package/dist/federation/federation.js.map +1 -0
- package/dist/federation/types.d.ts +44 -0
- package/dist/federation/types.js +3 -0
- package/dist/federation/types.js.map +1 -0
- package/dist/index.d.ts +24 -14
- package/dist/index.js +25 -14
- package/dist/index.js.map +1 -1
- package/dist/normalization/normalization.d.ts +8 -0
- package/dist/normalization/normalization.js +29 -0
- package/dist/normalization/normalization.js.map +1 -0
- package/dist/normalization/types.d.ts +48 -0
- package/dist/normalization/types.js +3 -0
- package/dist/normalization/types.js.map +1 -0
- package/dist/resolvability-graph/graph-nodes.d.ts +1 -1
- package/dist/resolvability-graph/graph-nodes.js.map +1 -1
- package/dist/resolvability-graph/graph.d.ts +1 -2
- package/dist/resolvability-graph/graph.js +21 -21
- package/dist/resolvability-graph/graph.js.map +1 -1
- package/dist/resolvability-graph/utils.d.ts +1 -1
- package/dist/resolvability-graph/utils.js +2 -2
- package/dist/resolvability-graph/utils.js.map +1 -1
- package/dist/router-compatibility-version/router-compatibility-version.d.ts +4 -0
- package/dist/router-compatibility-version/router-compatibility-version.js +7 -0
- package/dist/router-compatibility-version/router-compatibility-version.js.map +1 -0
- package/dist/router-configuration/{router-configuration.d.ts → types.d.ts} +3 -4
- package/dist/router-configuration/types.js +3 -0
- package/dist/router-configuration/types.js.map +1 -0
- package/dist/router-configuration/utils.d.ts +3 -0
- package/dist/router-configuration/{router-configuration.js → utils.js} +9 -1
- package/dist/router-configuration/utils.js.map +1 -0
- package/dist/schema-building/ast.js.map +1 -1
- package/dist/schema-building/{type-definition-data.d.ts → types.d.ts} +52 -5
- package/dist/schema-building/{type-definition-data.js → types.js} +1 -1
- package/dist/schema-building/types.js.map +1 -0
- package/dist/schema-building/utils.d.ts +3 -11
- package/dist/schema-building/utils.js +16 -14
- package/dist/schema-building/utils.js.map +1 -1
- package/dist/subgraph/{subgraph.d.ts → types.d.ts} +6 -9
- package/dist/subgraph/types.js +3 -0
- package/dist/subgraph/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/composition-version.js +1 -1
- package/dist/utils/integer-constants.d.ts +0 -1
- package/dist/utils/integer-constants.js +1 -2
- package/dist/utils/integer-constants.js.map +1 -1
- package/dist/utils/string-constants.d.ts +5 -9
- package/dist/utils/string-constants.js +7 -33
- package/dist/utils/string-constants.js.map +1 -1
- package/dist/utils/types.d.ts +39 -0
- package/dist/utils/types.js +3 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/utils/utils.d.ts +2 -114
- package/dist/utils/utils.js +33 -396
- package/dist/utils/utils.js.map +1 -1
- package/dist/{federation → v1/federation}/federation-factory.d.ts +18 -17
- package/dist/{federation → v1/federation}/federation-factory.js +244 -230
- package/dist/v1/federation/federation-factory.js.map +1 -0
- package/dist/v1/federation/utils.d.ts +59 -0
- package/dist/{federation → v1/federation}/utils.js +25 -23
- package/dist/v1/federation/utils.js.map +1 -0
- package/dist/{federation → v1/federation}/walkers.d.ts +1 -1
- package/dist/{federation → v1/federation}/walkers.js +10 -10
- package/dist/v1/federation/walkers.js.map +1 -0
- package/dist/{normalization → v1/normalization}/directive-definition-data.d.ts +1 -1
- package/dist/{normalization → v1/normalization}/directive-definition-data.js +2 -2
- package/dist/v1/normalization/directive-definition-data.js.map +1 -0
- package/dist/{normalization → v1/normalization}/normalization-factory.d.ts +45 -73
- package/dist/{normalization → v1/normalization}/normalization-factory.js +763 -266
- package/dist/v1/normalization/normalization-factory.js.map +1 -0
- package/dist/v1/normalization/types.d.ts +49 -0
- package/dist/v1/normalization/types.js +3 -0
- package/dist/v1/normalization/types.js.map +1 -0
- package/dist/v1/normalization/utils.d.ts +14 -0
- package/dist/v1/normalization/utils.js +288 -0
- package/dist/v1/normalization/utils.js.map +1 -0
- package/dist/{normalization → v1/normalization}/walkers.js +69 -54
- package/dist/v1/normalization/walkers.js.map +1 -0
- package/dist/{schema-building → v1/schema-building}/type-merging.d.ts +1 -1
- package/dist/{schema-building → v1/schema-building}/type-merging.js +4 -4
- package/dist/v1/schema-building/type-merging.js.map +1 -0
- package/dist/v1/subgraph/subgraph.d.ts +1 -0
- package/dist/v1/subgraph/subgraph.js.map +1 -0
- package/dist/{utils → v1/utils}/constants.d.ts +1 -2
- package/dist/{utils → v1/utils}/constants.js +7 -8
- package/dist/v1/utils/constants.js.map +1 -0
- package/dist/v1/utils/integer-constants.d.ts +1 -0
- package/dist/v1/utils/integer-constants.js +5 -0
- package/dist/v1/utils/integer-constants.js.map +1 -0
- package/dist/v1/utils/string-constants.d.ts +5 -0
- package/dist/v1/utils/string-constants.js +32 -0
- package/dist/v1/utils/string-constants.js.map +1 -0
- package/dist/v1/utils/utils.d.ts +38 -0
- package/dist/v1/utils/utils.js +336 -0
- package/dist/v1/utils/utils.js.map +1 -0
- package/dist/{warnings → v1/warnings}/warnings.d.ts +4 -13
- package/dist/{warnings → v1/warnings}/warnings.js +48 -27
- package/dist/v1/warnings/warnings.js.map +1 -0
- package/dist/warnings/types.d.ts +11 -0
- package/dist/warnings/types.js +13 -0
- package/dist/warnings/types.js.map +1 -0
- package/package.json +2 -2
- package/dist/federation/federation-factory.js.map +0 -1
- package/dist/federation/utils.d.ts +0 -84
- package/dist/federation/utils.js.map +0 -1
- package/dist/federation/walkers.js.map +0 -1
- package/dist/normalization/directive-definition-data.js.map +0 -1
- package/dist/normalization/normalization-factory.js.map +0 -1
- package/dist/normalization/utils.d.ts +0 -49
- package/dist/normalization/utils.js +0 -612
- package/dist/normalization/utils.js.map +0 -1
- package/dist/normalization/walkers.js.map +0 -1
- package/dist/router-configuration/router-configuration.js.map +0 -1
- package/dist/schema-building/type-definition-data.js.map +0 -1
- package/dist/schema-building/type-merging.js.map +0 -1
- package/dist/subgraph/subgraph.js.map +0 -1
- package/dist/utils/constants.js.map +0 -1
- package/dist/warnings/warnings.js.map +0 -1
- /package/dist/{normalization → v1/normalization}/walkers.d.ts +0 -0
- /package/dist/{subgraph → v1/subgraph}/subgraph.js +0 -0
package/dist/utils/utils.js
CHANGED
|
@@ -1,44 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.maxOrScopes = void 0;
|
|
4
3
|
exports.areSetsEqual = areSetsEqual;
|
|
5
|
-
exports.getAllMutualEntries = getAllMutualEntries;
|
|
6
4
|
exports.getOrThrowError = getOrThrowError;
|
|
7
5
|
exports.getAllSetDisparities = getAllSetDisparities;
|
|
8
6
|
exports.getEntriesNotInHashSet = getEntriesNotInHashSet;
|
|
9
|
-
exports.doSetsIntersect = doSetsIntersect;
|
|
10
|
-
exports.subtractSourceSetFromTargetSet = subtractSourceSetFromTargetSet;
|
|
11
|
-
exports.mapToArrayOfValues = mapToArrayOfValues;
|
|
12
7
|
exports.numberToOrdinal = numberToOrdinal;
|
|
13
8
|
exports.addIterableValuesToSet = addIterableValuesToSet;
|
|
14
|
-
exports.addSetsAndReturnMutationBoolean = addSetsAndReturnMutationBoolean;
|
|
15
9
|
exports.kindToTypeString = kindToTypeString;
|
|
16
|
-
exports.kindToConvertedTypeString = kindToConvertedTypeString;
|
|
17
|
-
exports.fieldDatasToSimpleFieldDatas = fieldDatasToSimpleFieldDatas;
|
|
18
|
-
exports.isNodeLeaf = isNodeLeaf;
|
|
19
|
-
exports.newEntityInterfaceFederationData = newEntityInterfaceFederationData;
|
|
20
|
-
exports.upsertEntityInterfaceFederationData = upsertEntityInterfaceFederationData;
|
|
21
10
|
exports.getValueOrDefault = getValueOrDefault;
|
|
22
|
-
exports.
|
|
23
|
-
exports.upsertEntityDataProperties = upsertEntityDataProperties;
|
|
24
|
-
exports.upsertEntityData = upsertEntityData;
|
|
25
|
-
exports.newFieldAuthorizationData = newFieldAuthorizationData;
|
|
26
|
-
exports.resetAuthorizationData = resetAuthorizationData;
|
|
27
|
-
exports.getAuthorizationDataToUpdate = getAuthorizationDataToUpdate;
|
|
28
|
-
exports.newAuthorizationData = newAuthorizationData;
|
|
29
|
-
exports.mergeAuthorizationDataByAND = mergeAuthorizationDataByAND;
|
|
30
|
-
exports.upsertFieldAuthorizationData = upsertFieldAuthorizationData;
|
|
31
|
-
exports.upsertAuthorizationData = upsertAuthorizationData;
|
|
32
|
-
exports.upsertAuthorizationConfiguration = upsertAuthorizationConfiguration;
|
|
33
|
-
exports.setAndGetValue = setAndGetValue;
|
|
11
|
+
exports.add = add;
|
|
34
12
|
exports.generateSimpleDirective = generateSimpleDirective;
|
|
35
13
|
exports.generateRequiresScopesDirective = generateRequiresScopesDirective;
|
|
36
|
-
|
|
37
|
-
exports.isNodeKindObject = isNodeKindObject;
|
|
38
|
-
exports.addMapEntries = addMapEntries;
|
|
39
|
-
exports.getSingleSetEntry = getSingleSetEntry;
|
|
40
|
-
exports.add = add;
|
|
41
|
-
const graphql_1 = require("graphql");
|
|
14
|
+
const index_1 = require("graphql/index");
|
|
42
15
|
const string_constants_1 = require("./string-constants");
|
|
43
16
|
const errors_1 = require("../errors/errors");
|
|
44
17
|
const utils_1 = require("../ast/utils");
|
|
@@ -53,15 +26,6 @@ function areSetsEqual(set, other) {
|
|
|
53
26
|
}
|
|
54
27
|
return true;
|
|
55
28
|
}
|
|
56
|
-
function getAllMutualEntries(set, other) {
|
|
57
|
-
const mutualEntries = new Set();
|
|
58
|
-
for (const entry of set) {
|
|
59
|
-
if (other.has(entry)) {
|
|
60
|
-
mutualEntries.add(entry);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return mutualEntries;
|
|
64
|
-
}
|
|
65
29
|
function getOrThrowError(map, key, mapName) {
|
|
66
30
|
const value = map.get(key);
|
|
67
31
|
if (value === undefined) {
|
|
@@ -91,26 +55,6 @@ function getEntriesNotInHashSet(iterable, comparison) {
|
|
|
91
55
|
}
|
|
92
56
|
return disparities;
|
|
93
57
|
}
|
|
94
|
-
function doSetsIntersect(set, other) {
|
|
95
|
-
for (const entry of set) {
|
|
96
|
-
if (other.has(entry)) {
|
|
97
|
-
return true;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
function subtractSourceSetFromTargetSet(source, target) {
|
|
103
|
-
for (const entry of source) {
|
|
104
|
-
target.delete(entry);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
function mapToArrayOfValues(map) {
|
|
108
|
-
const output = [];
|
|
109
|
-
for (const value of map.values()) {
|
|
110
|
-
output.push(value);
|
|
111
|
-
}
|
|
112
|
-
return output;
|
|
113
|
-
}
|
|
114
58
|
function numberToOrdinal(num) {
|
|
115
59
|
const numString = num.toString();
|
|
116
60
|
const lastNumber = numString[numString.length - 1];
|
|
@@ -130,223 +74,76 @@ function addIterableValuesToSet(source, target) {
|
|
|
130
74
|
target.add(value);
|
|
131
75
|
}
|
|
132
76
|
}
|
|
133
|
-
function addSetsAndReturnMutationBoolean(source, target) {
|
|
134
|
-
let wasMutated = false;
|
|
135
|
-
for (const entry of source) {
|
|
136
|
-
if (target.has(entry)) {
|
|
137
|
-
continue;
|
|
138
|
-
}
|
|
139
|
-
wasMutated = true;
|
|
140
|
-
target.add(entry);
|
|
141
|
-
}
|
|
142
|
-
return wasMutated;
|
|
143
|
-
}
|
|
144
77
|
function kindToTypeString(kind) {
|
|
145
78
|
switch (kind) {
|
|
146
|
-
case
|
|
79
|
+
case index_1.Kind.BOOLEAN: {
|
|
147
80
|
return string_constants_1.BOOLEAN_SCALAR;
|
|
148
81
|
}
|
|
149
|
-
case
|
|
82
|
+
case index_1.Kind.ENUM:
|
|
150
83
|
// intentional fallthrough
|
|
151
|
-
case
|
|
84
|
+
case index_1.Kind.ENUM_TYPE_DEFINITION: {
|
|
152
85
|
return string_constants_1.ENUM;
|
|
153
86
|
}
|
|
154
|
-
case
|
|
87
|
+
case index_1.Kind.ENUM_TYPE_EXTENSION: {
|
|
155
88
|
return 'Enum extension';
|
|
156
89
|
}
|
|
157
|
-
case
|
|
90
|
+
case index_1.Kind.ENUM_VALUE_DEFINITION: {
|
|
158
91
|
return string_constants_1.ENUM_VALUE;
|
|
159
92
|
}
|
|
160
|
-
case
|
|
93
|
+
case index_1.Kind.FIELD_DEFINITION: {
|
|
161
94
|
return string_constants_1.FIELD;
|
|
162
95
|
}
|
|
163
|
-
case
|
|
96
|
+
case index_1.Kind.FLOAT: {
|
|
164
97
|
return string_constants_1.FLOAT_SCALAR;
|
|
165
98
|
}
|
|
166
|
-
case
|
|
99
|
+
case index_1.Kind.INPUT_OBJECT_TYPE_DEFINITION: {
|
|
167
100
|
return string_constants_1.INPUT_OBJECT;
|
|
168
101
|
}
|
|
169
|
-
case
|
|
102
|
+
case index_1.Kind.INPUT_OBJECT_TYPE_EXTENSION: {
|
|
170
103
|
return 'Input Object extension';
|
|
171
104
|
}
|
|
172
|
-
case
|
|
105
|
+
case index_1.Kind.INPUT_VALUE_DEFINITION: {
|
|
173
106
|
return string_constants_1.INPUT_VALUE;
|
|
174
107
|
}
|
|
175
|
-
case
|
|
108
|
+
case index_1.Kind.INT: {
|
|
176
109
|
return string_constants_1.INT_SCALAR;
|
|
177
110
|
}
|
|
178
|
-
case
|
|
111
|
+
case index_1.Kind.INTERFACE_TYPE_DEFINITION: {
|
|
179
112
|
return string_constants_1.INTERFACE;
|
|
180
113
|
}
|
|
181
|
-
case
|
|
114
|
+
case index_1.Kind.INTERFACE_TYPE_EXTENSION: {
|
|
182
115
|
return 'Interface extension';
|
|
183
116
|
}
|
|
184
|
-
case
|
|
117
|
+
case index_1.Kind.NULL: {
|
|
185
118
|
return string_constants_1.NULL;
|
|
186
119
|
}
|
|
187
|
-
case
|
|
120
|
+
case index_1.Kind.OBJECT:
|
|
188
121
|
// intentional fallthrough
|
|
189
|
-
case
|
|
122
|
+
case index_1.Kind.OBJECT_TYPE_DEFINITION: {
|
|
190
123
|
return string_constants_1.OBJECT;
|
|
191
124
|
}
|
|
192
|
-
case
|
|
125
|
+
case index_1.Kind.OBJECT_TYPE_EXTENSION: {
|
|
193
126
|
return 'Object extension';
|
|
194
127
|
}
|
|
195
|
-
case
|
|
128
|
+
case index_1.Kind.STRING: {
|
|
196
129
|
return string_constants_1.STRING_SCALAR;
|
|
197
130
|
}
|
|
198
|
-
case
|
|
131
|
+
case index_1.Kind.SCALAR_TYPE_DEFINITION: {
|
|
199
132
|
return string_constants_1.SCALAR;
|
|
200
133
|
}
|
|
201
|
-
case
|
|
134
|
+
case index_1.Kind.SCALAR_TYPE_EXTENSION: {
|
|
202
135
|
return 'Scalar extension';
|
|
203
136
|
}
|
|
204
|
-
case
|
|
137
|
+
case index_1.Kind.UNION_TYPE_DEFINITION: {
|
|
205
138
|
return string_constants_1.UNION;
|
|
206
139
|
}
|
|
207
|
-
case
|
|
140
|
+
case index_1.Kind.UNION_TYPE_EXTENSION: {
|
|
208
141
|
return 'Union extension';
|
|
209
142
|
}
|
|
210
143
|
default:
|
|
211
144
|
return kind;
|
|
212
145
|
}
|
|
213
146
|
}
|
|
214
|
-
function kindToConvertedTypeString(kind) {
|
|
215
|
-
switch (kind) {
|
|
216
|
-
case graphql_1.Kind.BOOLEAN: {
|
|
217
|
-
return string_constants_1.BOOLEAN_SCALAR;
|
|
218
|
-
}
|
|
219
|
-
case graphql_1.Kind.ENUM:
|
|
220
|
-
// intentional fallthrough
|
|
221
|
-
case graphql_1.Kind.ENUM_TYPE_DEFINITION:
|
|
222
|
-
// intentional fallthrough
|
|
223
|
-
case graphql_1.Kind.ENUM_TYPE_EXTENSION: {
|
|
224
|
-
return string_constants_1.ENUM;
|
|
225
|
-
}
|
|
226
|
-
case graphql_1.Kind.ENUM_VALUE_DEFINITION: {
|
|
227
|
-
return string_constants_1.ENUM_VALUE;
|
|
228
|
-
}
|
|
229
|
-
case graphql_1.Kind.FIELD_DEFINITION: {
|
|
230
|
-
return string_constants_1.FIELD;
|
|
231
|
-
}
|
|
232
|
-
case graphql_1.Kind.FLOAT: {
|
|
233
|
-
return string_constants_1.FLOAT_SCALAR;
|
|
234
|
-
}
|
|
235
|
-
case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
|
|
236
|
-
// intentional fallthrough
|
|
237
|
-
case graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION: {
|
|
238
|
-
return string_constants_1.INPUT_OBJECT;
|
|
239
|
-
}
|
|
240
|
-
case graphql_1.Kind.INPUT_VALUE_DEFINITION: {
|
|
241
|
-
return string_constants_1.INPUT_VALUE;
|
|
242
|
-
}
|
|
243
|
-
case graphql_1.Kind.INT: {
|
|
244
|
-
return string_constants_1.INT_SCALAR;
|
|
245
|
-
}
|
|
246
|
-
case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
247
|
-
// intentional fallthrough
|
|
248
|
-
case graphql_1.Kind.INTERFACE_TYPE_EXTENSION: {
|
|
249
|
-
return string_constants_1.INTERFACE;
|
|
250
|
-
}
|
|
251
|
-
case graphql_1.Kind.NULL: {
|
|
252
|
-
return string_constants_1.NULL;
|
|
253
|
-
}
|
|
254
|
-
case graphql_1.Kind.OBJECT:
|
|
255
|
-
// intentional fallthrough
|
|
256
|
-
case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
257
|
-
// intentional fallthrough
|
|
258
|
-
case graphql_1.Kind.OBJECT_TYPE_EXTENSION: {
|
|
259
|
-
return string_constants_1.OBJECT;
|
|
260
|
-
}
|
|
261
|
-
case graphql_1.Kind.STRING: {
|
|
262
|
-
return string_constants_1.STRING_SCALAR;
|
|
263
|
-
}
|
|
264
|
-
case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
|
|
265
|
-
// intentional fallthrough
|
|
266
|
-
case graphql_1.Kind.SCALAR_TYPE_EXTENSION: {
|
|
267
|
-
return string_constants_1.SCALAR;
|
|
268
|
-
}
|
|
269
|
-
case graphql_1.Kind.UNION_TYPE_DEFINITION:
|
|
270
|
-
// intentional fallthrough
|
|
271
|
-
case graphql_1.Kind.UNION_TYPE_EXTENSION: {
|
|
272
|
-
return string_constants_1.UNION;
|
|
273
|
-
}
|
|
274
|
-
default:
|
|
275
|
-
return kind;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
function fieldDatasToSimpleFieldDatas(fieldDatas) {
|
|
279
|
-
const simpleFieldDatas = [];
|
|
280
|
-
for (const { name, namedTypeName } of fieldDatas) {
|
|
281
|
-
simpleFieldDatas.push({ name, namedTypeName });
|
|
282
|
-
}
|
|
283
|
-
return simpleFieldDatas;
|
|
284
|
-
}
|
|
285
|
-
// Only used to assess the output type of field definitions for graph selection set rendering
|
|
286
|
-
function isNodeLeaf(kind) {
|
|
287
|
-
// Base scalars are not added to parent definition data
|
|
288
|
-
if (!kind) {
|
|
289
|
-
return true;
|
|
290
|
-
}
|
|
291
|
-
switch (kind) {
|
|
292
|
-
case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
|
|
293
|
-
case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
|
|
294
|
-
case graphql_1.Kind.UNION_TYPE_DEFINITION:
|
|
295
|
-
return false;
|
|
296
|
-
default:
|
|
297
|
-
return true;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
function newEntityInterfaceFederationData(entityInterfaceData, subgraphName) {
|
|
301
|
-
return {
|
|
302
|
-
fieldDatasBySubgraphName: new Map().set(subgraphName, entityInterfaceData.fieldDatas),
|
|
303
|
-
interfaceFieldNames: new Set(entityInterfaceData.interfaceFieldNames),
|
|
304
|
-
interfaceObjectFieldNames: new Set(entityInterfaceData.interfaceObjectFieldNames),
|
|
305
|
-
interfaceObjectSubgraphs: new Set(entityInterfaceData.isInterfaceObject ? [subgraphName] : []),
|
|
306
|
-
typeName: entityInterfaceData.typeName,
|
|
307
|
-
...(entityInterfaceData.isInterfaceObject
|
|
308
|
-
? {}
|
|
309
|
-
: { concreteTypeNames: new Set(entityInterfaceData.concreteTypeNames) }),
|
|
310
|
-
};
|
|
311
|
-
}
|
|
312
|
-
// Returns true if the federation data concrete types set was mutated and false otherwise
|
|
313
|
-
function upsertEntityInterfaceFederationData(federationData, subgraphData, subgraphName) {
|
|
314
|
-
federationData.fieldDatasBySubgraphName.set(subgraphName, subgraphData.fieldDatas);
|
|
315
|
-
addIterableValuesToSet(subgraphData.interfaceFieldNames, federationData.interfaceFieldNames);
|
|
316
|
-
addIterableValuesToSet(subgraphData.interfaceObjectFieldNames, federationData.interfaceObjectFieldNames);
|
|
317
|
-
// interface objects should not define any concrete types
|
|
318
|
-
if (subgraphData.isInterfaceObject) {
|
|
319
|
-
federationData.interfaceObjectSubgraphs.add(subgraphName);
|
|
320
|
-
return false;
|
|
321
|
-
}
|
|
322
|
-
// the concreteTypeNames set is null if only interfaceObjects have been encountered
|
|
323
|
-
if (!federationData.concreteTypeNames) {
|
|
324
|
-
federationData.concreteTypeNames = new Set(subgraphData.concreteTypeNames);
|
|
325
|
-
return false;
|
|
326
|
-
}
|
|
327
|
-
// entity interface concrete types should be consistent
|
|
328
|
-
return addSetsAndReturnMutationBoolean(subgraphData.concreteTypeNames || new Set(), federationData.concreteTypeNames);
|
|
329
|
-
}
|
|
330
|
-
class StackSet {
|
|
331
|
-
set = new Set();
|
|
332
|
-
stack = [];
|
|
333
|
-
constructor(value) {
|
|
334
|
-
this.push(value);
|
|
335
|
-
}
|
|
336
|
-
has(value) {
|
|
337
|
-
return this.set.has(value);
|
|
338
|
-
}
|
|
339
|
-
push(value) {
|
|
340
|
-
this.stack.push(value);
|
|
341
|
-
this.set.add(value);
|
|
342
|
-
}
|
|
343
|
-
pop() {
|
|
344
|
-
const value = this.stack.pop();
|
|
345
|
-
if (value) {
|
|
346
|
-
this.set.delete(value);
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
}
|
|
350
147
|
function getValueOrDefault(map, key, constructor) {
|
|
351
148
|
const existingValue = map.get(key);
|
|
352
149
|
if (existingValue) {
|
|
@@ -356,153 +153,16 @@ function getValueOrDefault(map, key, constructor) {
|
|
|
356
153
|
map.set(key, value);
|
|
357
154
|
return value;
|
|
358
155
|
}
|
|
359
|
-
function
|
|
360
|
-
|
|
361
|
-
fieldNames: new Set(params.fieldNames),
|
|
362
|
-
keyFieldSets: new Set(params.keyFieldSets),
|
|
363
|
-
subgraphNames: new Set(params.subgraphNames),
|
|
364
|
-
typeName: params.typeName,
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
function addEntityDataProperties(source, target) {
|
|
368
|
-
addIterableValuesToSet(source.fieldNames || [], target.fieldNames);
|
|
369
|
-
addIterableValuesToSet(source.keyFieldSets || [], target.keyFieldSets);
|
|
370
|
-
addIterableValuesToSet(source.subgraphNames || [], target.subgraphNames);
|
|
371
|
-
}
|
|
372
|
-
function upsertEntityDataProperties(entityDataByTypeName, params) {
|
|
373
|
-
const existingData = entityDataByTypeName.get(params.typeName);
|
|
374
|
-
existingData
|
|
375
|
-
? addEntityDataProperties(params, existingData)
|
|
376
|
-
: entityDataByTypeName.set(params.typeName, newEntityData(params));
|
|
377
|
-
}
|
|
378
|
-
function upsertEntityData(entityDataByTypeName, incomingData) {
|
|
379
|
-
const existingData = entityDataByTypeName.get(incomingData.typeName);
|
|
380
|
-
existingData
|
|
381
|
-
? addEntityDataProperties(incomingData, existingData)
|
|
382
|
-
: entityDataByTypeName.set(incomingData.typeName, incomingData);
|
|
383
|
-
}
|
|
384
|
-
function newFieldAuthorizationData(fieldName) {
|
|
385
|
-
return {
|
|
386
|
-
fieldName,
|
|
387
|
-
requiresAuthentication: false,
|
|
388
|
-
requiredScopes: [],
|
|
389
|
-
};
|
|
390
|
-
}
|
|
391
|
-
function resetAuthorizationData(authorizationData) {
|
|
392
|
-
if (!authorizationData) {
|
|
393
|
-
return;
|
|
394
|
-
}
|
|
395
|
-
authorizationData.requiresAuthentication = false;
|
|
396
|
-
authorizationData.requiredScopes = [];
|
|
397
|
-
authorizationData.hasParentLevelAuthorization = false;
|
|
398
|
-
}
|
|
399
|
-
function getAuthorizationDataToUpdate(authorizationContainer, node) {
|
|
400
|
-
if (node.kind === graphql_1.Kind.FIELD_DEFINITION) {
|
|
401
|
-
const name = node.name.value;
|
|
402
|
-
return getValueOrDefault(authorizationContainer.fieldAuthorizationDataByFieldName, name, () => newFieldAuthorizationData(name));
|
|
403
|
-
}
|
|
404
|
-
authorizationContainer.hasParentLevelAuthorization = true;
|
|
405
|
-
return authorizationContainer;
|
|
406
|
-
}
|
|
407
|
-
function newAuthorizationData(typeName) {
|
|
408
|
-
return {
|
|
409
|
-
fieldAuthorizationDataByFieldName: new Map(),
|
|
410
|
-
hasParentLevelAuthorization: false,
|
|
411
|
-
requiresAuthentication: false,
|
|
412
|
-
requiredScopes: [],
|
|
413
|
-
typeName,
|
|
414
|
-
};
|
|
415
|
-
}
|
|
416
|
-
exports.maxOrScopes = 16;
|
|
417
|
-
function mergeAuthorizationDataByAND(source, target) {
|
|
418
|
-
target.requiresAuthentication ||= source.requiresAuthentication;
|
|
419
|
-
const sourceScopesLength = source.requiredScopes.length;
|
|
420
|
-
if (sourceScopesLength < 1) {
|
|
421
|
-
return true;
|
|
422
|
-
}
|
|
423
|
-
const targetScopesLength = target.requiredScopes.length;
|
|
424
|
-
if (targetScopesLength < 1) {
|
|
425
|
-
if (sourceScopesLength > exports.maxOrScopes) {
|
|
426
|
-
return false;
|
|
427
|
-
}
|
|
428
|
-
for (const andScopes of source.requiredScopes) {
|
|
429
|
-
target.requiredScopes.push(new Set(andScopes));
|
|
430
|
-
}
|
|
431
|
-
return true;
|
|
432
|
-
}
|
|
433
|
-
if (sourceScopesLength * targetScopesLength > exports.maxOrScopes) {
|
|
156
|
+
function add(set, key) {
|
|
157
|
+
if (set.has(key)) {
|
|
434
158
|
return false;
|
|
435
159
|
}
|
|
436
|
-
|
|
437
|
-
for (const existingAndScopes of target.requiredScopes) {
|
|
438
|
-
for (const incomingAndScopes of source.requiredScopes) {
|
|
439
|
-
const newAndScopes = new Set(existingAndScopes);
|
|
440
|
-
addIterableValuesToSet(incomingAndScopes, newAndScopes);
|
|
441
|
-
mergedOrScopes.push(newAndScopes);
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
target.requiredScopes = mergedOrScopes;
|
|
160
|
+
set.add(key);
|
|
445
161
|
return true;
|
|
446
162
|
}
|
|
447
|
-
function upsertFieldAuthorizationData(fieldAuthorizationDataByFieldName, incomingFieldAuthorizationData) {
|
|
448
|
-
const fieldName = incomingFieldAuthorizationData.fieldName;
|
|
449
|
-
const existingFieldAuthorizationData = fieldAuthorizationDataByFieldName.get(fieldName);
|
|
450
|
-
if (!existingFieldAuthorizationData) {
|
|
451
|
-
if (incomingFieldAuthorizationData.requiredScopes.length > exports.maxOrScopes) {
|
|
452
|
-
return false;
|
|
453
|
-
}
|
|
454
|
-
const fieldAuthorizationData = newFieldAuthorizationData(fieldName);
|
|
455
|
-
fieldAuthorizationData.requiresAuthentication ||= incomingFieldAuthorizationData.requiresAuthentication;
|
|
456
|
-
for (const andScopes of incomingFieldAuthorizationData.requiredScopes) {
|
|
457
|
-
fieldAuthorizationData.requiredScopes.push(new Set(andScopes));
|
|
458
|
-
}
|
|
459
|
-
fieldAuthorizationDataByFieldName.set(fieldName, fieldAuthorizationData);
|
|
460
|
-
return true;
|
|
461
|
-
}
|
|
462
|
-
existingFieldAuthorizationData.requiresAuthentication ||= incomingFieldAuthorizationData.requiresAuthentication;
|
|
463
|
-
return mergeAuthorizationDataByAND(incomingFieldAuthorizationData, existingFieldAuthorizationData);
|
|
464
|
-
}
|
|
465
|
-
function upsertAuthorizationData(authorizationDataByParentTypeName, incomingAuthorizationData, invalidOrScopesFieldPaths) {
|
|
466
|
-
const existingAuthorizationData = authorizationDataByParentTypeName.get(incomingAuthorizationData.typeName);
|
|
467
|
-
if (!existingAuthorizationData) {
|
|
468
|
-
authorizationDataByParentTypeName.set(incomingAuthorizationData.typeName, incomingAuthorizationData);
|
|
469
|
-
return;
|
|
470
|
-
}
|
|
471
|
-
for (const [fieldName, fieldAuthorizationData] of incomingAuthorizationData.fieldAuthorizationDataByFieldName) {
|
|
472
|
-
if (!upsertFieldAuthorizationData(existingAuthorizationData.fieldAuthorizationDataByFieldName, fieldAuthorizationData)) {
|
|
473
|
-
invalidOrScopesFieldPaths.add(`${incomingAuthorizationData.typeName}.${fieldName}`);
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
function upsertAuthorizationConfiguration(fieldConfigurationByFieldPath, authorizationData) {
|
|
478
|
-
const typeName = authorizationData.typeName;
|
|
479
|
-
for (const [fieldName, fieldAuthorizationData] of authorizationData.fieldAuthorizationDataByFieldName) {
|
|
480
|
-
const fieldPath = `${typeName}.${fieldName}`;
|
|
481
|
-
const existingFieldConfiguration = fieldConfigurationByFieldPath.get(fieldPath);
|
|
482
|
-
if (existingFieldConfiguration) {
|
|
483
|
-
existingFieldConfiguration.requiresAuthentication = fieldAuthorizationData.requiresAuthentication;
|
|
484
|
-
existingFieldConfiguration.requiredScopes = fieldAuthorizationData.requiredScopes.map((orScopes) => [
|
|
485
|
-
...orScopes,
|
|
486
|
-
]);
|
|
487
|
-
}
|
|
488
|
-
else {
|
|
489
|
-
fieldConfigurationByFieldPath.set(fieldPath, {
|
|
490
|
-
argumentNames: [],
|
|
491
|
-
typeName,
|
|
492
|
-
fieldName,
|
|
493
|
-
requiresAuthentication: fieldAuthorizationData.requiresAuthentication,
|
|
494
|
-
requiredScopes: fieldAuthorizationData.requiredScopes.map((orScopes) => [...orScopes]),
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
function setAndGetValue(map, key, value) {
|
|
500
|
-
map.set(key, value);
|
|
501
|
-
return value;
|
|
502
|
-
}
|
|
503
163
|
function generateSimpleDirective(name) {
|
|
504
164
|
return {
|
|
505
|
-
kind:
|
|
165
|
+
kind: index_1.Kind.DIRECTIVE,
|
|
506
166
|
name: (0, utils_1.stringToNameNode)(name),
|
|
507
167
|
};
|
|
508
168
|
}
|
|
@@ -512,48 +172,25 @@ function generateRequiresScopesDirective(orScopes) {
|
|
|
512
172
|
const scopes = [];
|
|
513
173
|
for (const scope of andScopes) {
|
|
514
174
|
scopes.push({
|
|
515
|
-
kind:
|
|
175
|
+
kind: index_1.Kind.STRING,
|
|
516
176
|
value: scope,
|
|
517
177
|
});
|
|
518
178
|
}
|
|
519
|
-
values.push({ kind:
|
|
179
|
+
values.push({ kind: index_1.Kind.LIST, values: scopes });
|
|
520
180
|
}
|
|
521
181
|
return {
|
|
522
|
-
kind:
|
|
182
|
+
kind: index_1.Kind.DIRECTIVE,
|
|
523
183
|
name: (0, utils_1.stringToNameNode)(string_constants_1.REQUIRES_SCOPES),
|
|
524
184
|
arguments: [
|
|
525
185
|
{
|
|
526
|
-
kind:
|
|
186
|
+
kind: index_1.Kind.ARGUMENT,
|
|
527
187
|
name: (0, utils_1.stringToNameNode)(string_constants_1.SCOPES),
|
|
528
188
|
value: {
|
|
529
|
-
kind:
|
|
189
|
+
kind: index_1.Kind.LIST,
|
|
530
190
|
values,
|
|
531
191
|
},
|
|
532
192
|
},
|
|
533
193
|
],
|
|
534
194
|
};
|
|
535
195
|
}
|
|
536
|
-
function isNodeKindInterface(kind) {
|
|
537
|
-
return kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION || kind === graphql_1.Kind.INTERFACE_TYPE_EXTENSION;
|
|
538
|
-
}
|
|
539
|
-
function isNodeKindObject(kind) {
|
|
540
|
-
return kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION || kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION;
|
|
541
|
-
}
|
|
542
|
-
function addMapEntries(source, target) {
|
|
543
|
-
for (const [key, value] of source) {
|
|
544
|
-
target.set(key, value);
|
|
545
|
-
}
|
|
546
|
-
}
|
|
547
|
-
function getSingleSetEntry(set) {
|
|
548
|
-
for (const entry of set) {
|
|
549
|
-
return entry;
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
function add(set, key) {
|
|
553
|
-
if (set.has(key)) {
|
|
554
|
-
return false;
|
|
555
|
-
}
|
|
556
|
-
set.add(key);
|
|
557
|
-
return true;
|
|
558
|
-
}
|
|
559
196
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { DirectiveDefinitionNode, NamedTypeNode, StringValueNode } from 'graphql';
|
|
2
|
-
import { MutableFieldNode, MutableInputValueNode, MutableTypeDefinitionNode, MutableTypeNode } from '
|
|
3
|
-
import { ChildTagData,
|
|
4
|
-
import {
|
|
5
|
-
import { AuthorizationData, EntityData, EntityInterfaceFederationData,
|
|
6
|
-
import {
|
|
7
|
-
import { ChildData, CompositeOutputData, EnumValueData, FieldData, InputObjectDefinitionData, InputValueData, InterfaceDefinitionData, NodeData, ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, UnionDefinitionData } from '../schema-building/type-definition-data';
|
|
8
|
-
import { MergeMethod } from '../schema-building/utils';
|
|
2
|
+
import { MutableFieldNode, MutableInputValueNode, MutableTypeDefinitionNode, MutableTypeNode } from '../../schema-building/ast';
|
|
3
|
+
import { ChildTagData, FederationFactoryParams, InterfaceImplementationData, InterfaceObjectForInternalGraphOptions, ParentTagData, SubscriptionFilterData } from './utils';
|
|
4
|
+
import { FieldConfiguration, SubscriptionCondition, SubscriptionFieldCondition } from '../../router-configuration/types';
|
|
5
|
+
import { AuthorizationData, ChildData, CompositeOutputData, EntityData, EntityInterfaceFederationData, EnumValueData, FieldData, InputObjectDefinitionData, InputValueData, InterfaceDefinitionData, NodeData, ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, UnionDefinitionData } from '../../schema-building/types';
|
|
6
|
+
import { MergeMethod } from '../../schema-building/utils';
|
|
9
7
|
import { FederateTypeOptions, FederateTypeResult } from '../schema-building/type-merging';
|
|
10
8
|
import { ConstDirectiveNode, ConstObjectValueNode } from 'graphql/index';
|
|
11
|
-
import { Graph } from '
|
|
12
|
-
import { GraphNode } from '
|
|
13
|
-
import {
|
|
9
|
+
import { Graph } from '../../resolvability-graph/graph';
|
|
10
|
+
import { GraphNode } from '../../resolvability-graph/graph-nodes';
|
|
11
|
+
import { InternalSubgraph, Subgraph } from '../../subgraph/types';
|
|
12
|
+
import { Warning } from '../../warnings/types';
|
|
13
|
+
import { ContractTagOptions, FederationResult, FederationResultWithContracts } from '../../federation/types';
|
|
14
|
+
import { GraphFieldData } from '../../utils/types';
|
|
14
15
|
export declare class FederationFactory {
|
|
15
16
|
authorizationDataByParentTypeName: Map<string, AuthorizationData>;
|
|
16
17
|
concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
|
|
@@ -40,7 +41,7 @@ export declare class FederationFactory {
|
|
|
40
41
|
subscriptionFilterDataByFieldPath: Map<string, SubscriptionFilterData>;
|
|
41
42
|
tagNamesByPath: Map<string, Set<string>>;
|
|
42
43
|
warnings: Warning[];
|
|
43
|
-
constructor(
|
|
44
|
+
constructor(params: FederationFactoryParams);
|
|
44
45
|
getValidImplementedInterfaces(data: CompositeOutputData): NamedTypeNode[];
|
|
45
46
|
addValidPrimaryKeyTargetsToEntityData(typeName: string): void;
|
|
46
47
|
addValidPrimaryKeyTargetsFromInterfaceObject(internalSubgraph: InternalSubgraph, interfaceObjectTypeName: string, entityData: EntityData, graphNode: GraphNode): void;
|
|
@@ -85,7 +86,7 @@ export declare class FederationFactory {
|
|
|
85
86
|
validateSubscriptionFilterCondition(objectValueNode: ConstObjectValueNode, configuration: SubscriptionCondition, objectData: ObjectDefinitionData, depth: number, inputPath: string, directiveSubgraphName: string, errorMessages: string[]): boolean;
|
|
86
87
|
validateSubscriptionFilterAndGenerateConfiguration(directiveNode: ConstDirectiveNode, objectData: ObjectDefinitionData, fieldPath: string, fieldName: string, parentTypeName: string, directiveSubgraphName: string): void;
|
|
87
88
|
validateSubscriptionFiltersAndGenerateConfiguration(): void;
|
|
88
|
-
buildFederationResult():
|
|
89
|
+
buildFederationResult(): FederationResult;
|
|
89
90
|
getClientSchemaObjectBoolean(): {
|
|
90
91
|
shouldIncludeClientSchema?: undefined;
|
|
91
92
|
} | {
|
|
@@ -93,9 +94,9 @@ export declare class FederationFactory {
|
|
|
93
94
|
};
|
|
94
95
|
handleChildTagExclusions(parentDefinitionData: ParentDefinitionData, children: Map<string, ChildData>, childTagDataByChildName: Map<string, ChildTagData>, tagNames: Set<string>): void;
|
|
95
96
|
handleChildTagInclusions(parentDefinitionData: ParentDefinitionData, children: Map<string, ChildData>, childTagDataByChildName: Map<string, ChildTagData>, tagNames: Set<string>): void;
|
|
96
|
-
buildFederationContractResult(contractTagOptions: ContractTagOptions):
|
|
97
|
-
federateSubgraphsInternal():
|
|
97
|
+
buildFederationContractResult(contractTagOptions: ContractTagOptions): FederationResult;
|
|
98
|
+
federateSubgraphsInternal(): FederationResult;
|
|
98
99
|
}
|
|
99
|
-
export declare function federateSubgraphs(subgraphs: Subgraph[]):
|
|
100
|
-
export declare function federateSubgraphsWithContracts(subgraphs: Subgraph[], tagOptionsByContractName: Map<string, ContractTagOptions>):
|
|
101
|
-
export declare function federateSubgraphsContract(subgraphs: Subgraph[], contractTagOptions: ContractTagOptions):
|
|
100
|
+
export declare function federateSubgraphs(subgraphs: Subgraph[]): FederationResult;
|
|
101
|
+
export declare function federateSubgraphsWithContracts(subgraphs: Subgraph[], tagOptionsByContractName: Map<string, ContractTagOptions>): FederationResultWithContracts;
|
|
102
|
+
export declare function federateSubgraphsContract(subgraphs: Subgraph[], contractTagOptions: ContractTagOptions): FederationResult;
|