@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.
Files changed (128) hide show
  1. package/README.md +41 -48
  2. package/dist/ast/utils.d.ts +0 -2
  3. package/dist/ast/utils.js +2 -33
  4. package/dist/ast/utils.js.map +1 -1
  5. package/dist/errors/errors.d.ts +10 -13
  6. package/dist/errors/errors.js +81 -74
  7. package/dist/errors/errors.js.map +1 -1
  8. package/dist/federation/federation.d.ts +6 -0
  9. package/dist/federation/federation.js +30 -0
  10. package/dist/federation/federation.js.map +1 -0
  11. package/dist/federation/types.d.ts +44 -0
  12. package/dist/federation/types.js +3 -0
  13. package/dist/federation/types.js.map +1 -0
  14. package/dist/index.d.ts +24 -14
  15. package/dist/index.js +25 -14
  16. package/dist/index.js.map +1 -1
  17. package/dist/normalization/normalization.d.ts +8 -0
  18. package/dist/normalization/normalization.js +29 -0
  19. package/dist/normalization/normalization.js.map +1 -0
  20. package/dist/normalization/types.d.ts +48 -0
  21. package/dist/normalization/types.js +3 -0
  22. package/dist/normalization/types.js.map +1 -0
  23. package/dist/resolvability-graph/graph-nodes.d.ts +1 -1
  24. package/dist/resolvability-graph/graph-nodes.js.map +1 -1
  25. package/dist/resolvability-graph/graph.d.ts +1 -2
  26. package/dist/resolvability-graph/graph.js +21 -21
  27. package/dist/resolvability-graph/graph.js.map +1 -1
  28. package/dist/resolvability-graph/utils.d.ts +1 -1
  29. package/dist/resolvability-graph/utils.js +2 -2
  30. package/dist/resolvability-graph/utils.js.map +1 -1
  31. package/dist/router-compatibility-version/router-compatibility-version.d.ts +4 -0
  32. package/dist/router-compatibility-version/router-compatibility-version.js +7 -0
  33. package/dist/router-compatibility-version/router-compatibility-version.js.map +1 -0
  34. package/dist/router-configuration/{router-configuration.d.ts → types.d.ts} +3 -4
  35. package/dist/router-configuration/types.js +3 -0
  36. package/dist/router-configuration/types.js.map +1 -0
  37. package/dist/router-configuration/utils.d.ts +3 -0
  38. package/dist/router-configuration/{router-configuration.js → utils.js} +9 -1
  39. package/dist/router-configuration/utils.js.map +1 -0
  40. package/dist/schema-building/ast.js.map +1 -1
  41. package/dist/schema-building/{type-definition-data.d.ts → types.d.ts} +52 -5
  42. package/dist/schema-building/{type-definition-data.js → types.js} +1 -1
  43. package/dist/schema-building/types.js.map +1 -0
  44. package/dist/schema-building/utils.d.ts +3 -11
  45. package/dist/schema-building/utils.js +16 -14
  46. package/dist/schema-building/utils.js.map +1 -1
  47. package/dist/subgraph/{subgraph.d.ts → types.d.ts} +6 -9
  48. package/dist/subgraph/types.js +3 -0
  49. package/dist/subgraph/types.js.map +1 -0
  50. package/dist/tsconfig.tsbuildinfo +1 -1
  51. package/dist/utils/composition-version.js +1 -1
  52. package/dist/utils/integer-constants.d.ts +0 -1
  53. package/dist/utils/integer-constants.js +1 -2
  54. package/dist/utils/integer-constants.js.map +1 -1
  55. package/dist/utils/string-constants.d.ts +5 -9
  56. package/dist/utils/string-constants.js +7 -33
  57. package/dist/utils/string-constants.js.map +1 -1
  58. package/dist/utils/types.d.ts +39 -0
  59. package/dist/utils/types.js +3 -0
  60. package/dist/utils/types.js.map +1 -0
  61. package/dist/utils/utils.d.ts +2 -114
  62. package/dist/utils/utils.js +33 -396
  63. package/dist/utils/utils.js.map +1 -1
  64. package/dist/{federation → v1/federation}/federation-factory.d.ts +18 -17
  65. package/dist/{federation → v1/federation}/federation-factory.js +244 -230
  66. package/dist/v1/federation/federation-factory.js.map +1 -0
  67. package/dist/v1/federation/utils.d.ts +59 -0
  68. package/dist/{federation → v1/federation}/utils.js +25 -23
  69. package/dist/v1/federation/utils.js.map +1 -0
  70. package/dist/{federation → v1/federation}/walkers.d.ts +1 -1
  71. package/dist/{federation → v1/federation}/walkers.js +10 -10
  72. package/dist/v1/federation/walkers.js.map +1 -0
  73. package/dist/{normalization → v1/normalization}/directive-definition-data.d.ts +1 -1
  74. package/dist/{normalization → v1/normalization}/directive-definition-data.js +2 -2
  75. package/dist/v1/normalization/directive-definition-data.js.map +1 -0
  76. package/dist/{normalization → v1/normalization}/normalization-factory.d.ts +45 -73
  77. package/dist/{normalization → v1/normalization}/normalization-factory.js +763 -266
  78. package/dist/v1/normalization/normalization-factory.js.map +1 -0
  79. package/dist/v1/normalization/types.d.ts +49 -0
  80. package/dist/v1/normalization/types.js +3 -0
  81. package/dist/v1/normalization/types.js.map +1 -0
  82. package/dist/v1/normalization/utils.d.ts +14 -0
  83. package/dist/v1/normalization/utils.js +288 -0
  84. package/dist/v1/normalization/utils.js.map +1 -0
  85. package/dist/{normalization → v1/normalization}/walkers.js +69 -54
  86. package/dist/v1/normalization/walkers.js.map +1 -0
  87. package/dist/{schema-building → v1/schema-building}/type-merging.d.ts +1 -1
  88. package/dist/{schema-building → v1/schema-building}/type-merging.js +4 -4
  89. package/dist/v1/schema-building/type-merging.js.map +1 -0
  90. package/dist/v1/subgraph/subgraph.d.ts +1 -0
  91. package/dist/v1/subgraph/subgraph.js.map +1 -0
  92. package/dist/{utils → v1/utils}/constants.d.ts +1 -2
  93. package/dist/{utils → v1/utils}/constants.js +7 -8
  94. package/dist/v1/utils/constants.js.map +1 -0
  95. package/dist/v1/utils/integer-constants.d.ts +1 -0
  96. package/dist/v1/utils/integer-constants.js +5 -0
  97. package/dist/v1/utils/integer-constants.js.map +1 -0
  98. package/dist/v1/utils/string-constants.d.ts +5 -0
  99. package/dist/v1/utils/string-constants.js +32 -0
  100. package/dist/v1/utils/string-constants.js.map +1 -0
  101. package/dist/v1/utils/utils.d.ts +38 -0
  102. package/dist/v1/utils/utils.js +336 -0
  103. package/dist/v1/utils/utils.js.map +1 -0
  104. package/dist/{warnings → v1/warnings}/warnings.d.ts +4 -13
  105. package/dist/{warnings → v1/warnings}/warnings.js +48 -27
  106. package/dist/v1/warnings/warnings.js.map +1 -0
  107. package/dist/warnings/types.d.ts +11 -0
  108. package/dist/warnings/types.js +13 -0
  109. package/dist/warnings/types.js.map +1 -0
  110. package/package.json +2 -2
  111. package/dist/federation/federation-factory.js.map +0 -1
  112. package/dist/federation/utils.d.ts +0 -84
  113. package/dist/federation/utils.js.map +0 -1
  114. package/dist/federation/walkers.js.map +0 -1
  115. package/dist/normalization/directive-definition-data.js.map +0 -1
  116. package/dist/normalization/normalization-factory.js.map +0 -1
  117. package/dist/normalization/utils.d.ts +0 -49
  118. package/dist/normalization/utils.js +0 -612
  119. package/dist/normalization/utils.js.map +0 -1
  120. package/dist/normalization/walkers.js.map +0 -1
  121. package/dist/router-configuration/router-configuration.js.map +0 -1
  122. package/dist/schema-building/type-definition-data.js.map +0 -1
  123. package/dist/schema-building/type-merging.js.map +0 -1
  124. package/dist/subgraph/subgraph.js.map +0 -1
  125. package/dist/utils/constants.js.map +0 -1
  126. package/dist/warnings/warnings.js.map +0 -1
  127. /package/dist/{normalization → v1/normalization}/walkers.d.ts +0 -0
  128. /package/dist/{subgraph → v1/subgraph}/subgraph.js +0 -0
@@ -0,0 +1,336 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.maxOrScopes = void 0;
4
+ exports.subtractSourceSetFromTargetSet = subtractSourceSetFromTargetSet;
5
+ exports.mapToArrayOfValues = mapToArrayOfValues;
6
+ exports.kindToConvertedTypeString = kindToConvertedTypeString;
7
+ exports.fieldDatasToSimpleFieldDatas = fieldDatasToSimpleFieldDatas;
8
+ exports.isNodeLeaf = isNodeLeaf;
9
+ exports.newEntityInterfaceFederationData = newEntityInterfaceFederationData;
10
+ exports.upsertEntityInterfaceFederationData = upsertEntityInterfaceFederationData;
11
+ exports.upsertEntityData = upsertEntityData;
12
+ exports.updateEntityData = updateEntityData;
13
+ exports.newFieldAuthorizationData = newFieldAuthorizationData;
14
+ exports.resetAuthorizationData = resetAuthorizationData;
15
+ exports.getAuthorizationDataToUpdate = getAuthorizationDataToUpdate;
16
+ exports.newAuthorizationData = newAuthorizationData;
17
+ exports.mergeAuthorizationDataByAND = mergeAuthorizationDataByAND;
18
+ exports.upsertFieldAuthorizationData = upsertFieldAuthorizationData;
19
+ exports.upsertAuthorizationData = upsertAuthorizationData;
20
+ exports.upsertAuthorizationConfiguration = upsertAuthorizationConfiguration;
21
+ exports.setAndGetValue = setAndGetValue;
22
+ exports.isNodeKindInterface = isNodeKindInterface;
23
+ exports.isNodeKindObject = isNodeKindObject;
24
+ exports.addMapEntries = addMapEntries;
25
+ exports.getSingleSetEntry = getSingleSetEntry;
26
+ const graphql_1 = require("graphql");
27
+ const string_constants_1 = require("../../utils/string-constants");
28
+ const utils_1 = require("../../utils/utils");
29
+ function subtractSourceSetFromTargetSet(source, target) {
30
+ for (const entry of source) {
31
+ target.delete(entry);
32
+ }
33
+ }
34
+ function mapToArrayOfValues(map) {
35
+ const output = [];
36
+ for (const value of map.values()) {
37
+ output.push(value);
38
+ }
39
+ return output;
40
+ }
41
+ function kindToConvertedTypeString(kind) {
42
+ switch (kind) {
43
+ case graphql_1.Kind.BOOLEAN: {
44
+ return string_constants_1.BOOLEAN_SCALAR;
45
+ }
46
+ case graphql_1.Kind.ENUM:
47
+ // intentional fallthrough
48
+ case graphql_1.Kind.ENUM_TYPE_DEFINITION:
49
+ // intentional fallthrough
50
+ case graphql_1.Kind.ENUM_TYPE_EXTENSION: {
51
+ return string_constants_1.ENUM;
52
+ }
53
+ case graphql_1.Kind.ENUM_VALUE_DEFINITION: {
54
+ return string_constants_1.ENUM_VALUE;
55
+ }
56
+ case graphql_1.Kind.FIELD_DEFINITION: {
57
+ return string_constants_1.FIELD;
58
+ }
59
+ case graphql_1.Kind.FLOAT: {
60
+ return string_constants_1.FLOAT_SCALAR;
61
+ }
62
+ case graphql_1.Kind.INPUT_OBJECT_TYPE_DEFINITION:
63
+ // intentional fallthrough
64
+ case graphql_1.Kind.INPUT_OBJECT_TYPE_EXTENSION: {
65
+ return string_constants_1.INPUT_OBJECT;
66
+ }
67
+ case graphql_1.Kind.INPUT_VALUE_DEFINITION: {
68
+ return string_constants_1.INPUT_VALUE;
69
+ }
70
+ case graphql_1.Kind.INT: {
71
+ return string_constants_1.INT_SCALAR;
72
+ }
73
+ case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
74
+ // intentional fallthrough
75
+ case graphql_1.Kind.INTERFACE_TYPE_EXTENSION: {
76
+ return string_constants_1.INTERFACE;
77
+ }
78
+ case graphql_1.Kind.NULL: {
79
+ return string_constants_1.NULL;
80
+ }
81
+ case graphql_1.Kind.OBJECT:
82
+ // intentional fallthrough
83
+ case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
84
+ // intentional fallthrough
85
+ case graphql_1.Kind.OBJECT_TYPE_EXTENSION: {
86
+ return string_constants_1.OBJECT;
87
+ }
88
+ case graphql_1.Kind.STRING: {
89
+ return string_constants_1.STRING_SCALAR;
90
+ }
91
+ case graphql_1.Kind.SCALAR_TYPE_DEFINITION:
92
+ // intentional fallthrough
93
+ case graphql_1.Kind.SCALAR_TYPE_EXTENSION: {
94
+ return string_constants_1.SCALAR;
95
+ }
96
+ case graphql_1.Kind.UNION_TYPE_DEFINITION:
97
+ // intentional fallthrough
98
+ case graphql_1.Kind.UNION_TYPE_EXTENSION: {
99
+ return string_constants_1.UNION;
100
+ }
101
+ default:
102
+ return kind;
103
+ }
104
+ }
105
+ function fieldDatasToSimpleFieldDatas(fieldDatas) {
106
+ const simpleFieldDatas = [];
107
+ for (const { name, namedTypeName } of fieldDatas) {
108
+ simpleFieldDatas.push({ name, namedTypeName });
109
+ }
110
+ return simpleFieldDatas;
111
+ }
112
+ // Only used to assess the output type of field definitions for graph selection set rendering
113
+ function isNodeLeaf(kind) {
114
+ // Base scalars are not added to parent definition data
115
+ if (!kind) {
116
+ return true;
117
+ }
118
+ switch (kind) {
119
+ case graphql_1.Kind.OBJECT_TYPE_DEFINITION:
120
+ case graphql_1.Kind.INTERFACE_TYPE_DEFINITION:
121
+ case graphql_1.Kind.UNION_TYPE_DEFINITION:
122
+ return false;
123
+ default:
124
+ return true;
125
+ }
126
+ }
127
+ function newEntityInterfaceFederationData(entityInterfaceData, subgraphName) {
128
+ return {
129
+ concreteTypeNames: new Set(entityInterfaceData.concreteTypeNames),
130
+ fieldDatasBySubgraphName: new Map([[subgraphName, entityInterfaceData.fieldDatas]]),
131
+ interfaceFieldNames: new Set(entityInterfaceData.interfaceFieldNames),
132
+ interfaceObjectFieldNames: new Set(entityInterfaceData.interfaceObjectFieldNames),
133
+ interfaceObjectSubgraphs: new Set(entityInterfaceData.isInterfaceObject ? [subgraphName] : []),
134
+ subgraphDataByTypeName: new Map([[subgraphName, entityInterfaceData]]),
135
+ typeName: entityInterfaceData.typeName,
136
+ };
137
+ }
138
+ function upsertEntityInterfaceFederationData(federationData, subgraphData, subgraphName) {
139
+ (0, utils_1.addIterableValuesToSet)(subgraphData.concreteTypeNames, federationData.concreteTypeNames);
140
+ federationData.subgraphDataByTypeName.set(subgraphName, subgraphData);
141
+ federationData.fieldDatasBySubgraphName.set(subgraphName, subgraphData.fieldDatas);
142
+ (0, utils_1.addIterableValuesToSet)(subgraphData.interfaceFieldNames, federationData.interfaceFieldNames);
143
+ (0, utils_1.addIterableValuesToSet)(subgraphData.interfaceObjectFieldNames, federationData.interfaceObjectFieldNames);
144
+ if (subgraphData.isInterfaceObject) {
145
+ federationData.interfaceObjectSubgraphs.add(subgraphName);
146
+ }
147
+ }
148
+ function newEntityData({ keyFieldSetDataByFieldSet, subgraphName, typeName }) {
149
+ const keyFieldSetDatasBySubgraphName = new Map([
150
+ [subgraphName, keyFieldSetDataByFieldSet],
151
+ ]);
152
+ const documentNodeByKeyFieldSet = new Map();
153
+ for (const [keyFieldSet, { documentNode, isUnresolvable }] of keyFieldSetDataByFieldSet) {
154
+ // Do not propagate invalid key targets
155
+ if (isUnresolvable) {
156
+ continue;
157
+ }
158
+ documentNodeByKeyFieldSet.set(keyFieldSet, documentNode);
159
+ }
160
+ return {
161
+ keyFieldSetDatasBySubgraphName,
162
+ documentNodeByKeyFieldSet,
163
+ keyFieldSets: new Set(),
164
+ subgraphNames: new Set([subgraphName]),
165
+ typeName,
166
+ };
167
+ }
168
+ function upsertEntityData({ entityDataByTypeName, keyFieldSetDataByFieldSet, subgraphName, typeName, }) {
169
+ const existingData = entityDataByTypeName.get(typeName);
170
+ existingData
171
+ ? updateEntityData({ entityData: existingData, keyFieldSetDataByFieldSet, subgraphName })
172
+ : entityDataByTypeName.set(typeName, newEntityData({ keyFieldSetDataByFieldSet, subgraphName, typeName }));
173
+ }
174
+ function updateEntityData({ entityData, keyFieldSetDataByFieldSet, subgraphName }) {
175
+ entityData.subgraphNames.add(subgraphName);
176
+ const existingKeyFieldSetDataByFieldSet = entityData.keyFieldSetDatasBySubgraphName.get(subgraphName);
177
+ if (!existingKeyFieldSetDataByFieldSet) {
178
+ entityData.keyFieldSetDatasBySubgraphName.set(subgraphName, keyFieldSetDataByFieldSet);
179
+ for (const [keyFieldSet, { documentNode, isUnresolvable }] of keyFieldSetDataByFieldSet) {
180
+ // Do not propagate invalid key targets
181
+ if (isUnresolvable) {
182
+ continue;
183
+ }
184
+ entityData.documentNodeByKeyFieldSet.set(keyFieldSet, documentNode);
185
+ }
186
+ return;
187
+ }
188
+ for (const [keyFieldSet, keyFieldSetData] of keyFieldSetDataByFieldSet) {
189
+ // Do not propagate invalid key targets
190
+ if (!keyFieldSetData.isUnresolvable) {
191
+ entityData.documentNodeByKeyFieldSet.set(keyFieldSet, keyFieldSetData.documentNode);
192
+ }
193
+ const existingKeyFieldSetData = existingKeyFieldSetDataByFieldSet.get(keyFieldSet);
194
+ if (existingKeyFieldSetData) {
195
+ existingKeyFieldSetData.isUnresolvable ||= keyFieldSetData.isUnresolvable;
196
+ continue;
197
+ }
198
+ existingKeyFieldSetDataByFieldSet.set(keyFieldSet, keyFieldSetData);
199
+ }
200
+ }
201
+ function newFieldAuthorizationData(fieldName) {
202
+ return {
203
+ fieldName,
204
+ requiresAuthentication: false,
205
+ requiredScopes: [],
206
+ };
207
+ }
208
+ function resetAuthorizationData(authorizationData) {
209
+ if (!authorizationData) {
210
+ return;
211
+ }
212
+ authorizationData.requiresAuthentication = false;
213
+ authorizationData.requiredScopes = [];
214
+ authorizationData.hasParentLevelAuthorization = false;
215
+ }
216
+ function getAuthorizationDataToUpdate(authorizationContainer, node) {
217
+ if (node.kind === graphql_1.Kind.FIELD_DEFINITION) {
218
+ const name = node.name.value;
219
+ return (0, utils_1.getValueOrDefault)(authorizationContainer.fieldAuthorizationDataByFieldName, name, () => newFieldAuthorizationData(name));
220
+ }
221
+ authorizationContainer.hasParentLevelAuthorization = true;
222
+ return authorizationContainer;
223
+ }
224
+ function newAuthorizationData(typeName) {
225
+ return {
226
+ fieldAuthorizationDataByFieldName: new Map(),
227
+ hasParentLevelAuthorization: false,
228
+ requiresAuthentication: false,
229
+ requiredScopes: [],
230
+ typeName,
231
+ };
232
+ }
233
+ exports.maxOrScopes = 16;
234
+ function mergeAuthorizationDataByAND(source, target) {
235
+ target.requiresAuthentication ||= source.requiresAuthentication;
236
+ const sourceScopesLength = source.requiredScopes.length;
237
+ if (sourceScopesLength < 1) {
238
+ return true;
239
+ }
240
+ const targetScopesLength = target.requiredScopes.length;
241
+ if (targetScopesLength < 1) {
242
+ if (sourceScopesLength > exports.maxOrScopes) {
243
+ return false;
244
+ }
245
+ for (const andScopes of source.requiredScopes) {
246
+ target.requiredScopes.push(new Set(andScopes));
247
+ }
248
+ return true;
249
+ }
250
+ if (sourceScopesLength * targetScopesLength > exports.maxOrScopes) {
251
+ return false;
252
+ }
253
+ const mergedOrScopes = [];
254
+ for (const existingAndScopes of target.requiredScopes) {
255
+ for (const incomingAndScopes of source.requiredScopes) {
256
+ const newAndScopes = new Set(existingAndScopes);
257
+ (0, utils_1.addIterableValuesToSet)(incomingAndScopes, newAndScopes);
258
+ mergedOrScopes.push(newAndScopes);
259
+ }
260
+ }
261
+ target.requiredScopes = mergedOrScopes;
262
+ return true;
263
+ }
264
+ function upsertFieldAuthorizationData(fieldAuthorizationDataByFieldName, incomingFieldAuthorizationData) {
265
+ const fieldName = incomingFieldAuthorizationData.fieldName;
266
+ const existingFieldAuthorizationData = fieldAuthorizationDataByFieldName.get(fieldName);
267
+ if (!existingFieldAuthorizationData) {
268
+ if (incomingFieldAuthorizationData.requiredScopes.length > exports.maxOrScopes) {
269
+ return false;
270
+ }
271
+ const fieldAuthorizationData = newFieldAuthorizationData(fieldName);
272
+ fieldAuthorizationData.requiresAuthentication ||= incomingFieldAuthorizationData.requiresAuthentication;
273
+ for (const andScopes of incomingFieldAuthorizationData.requiredScopes) {
274
+ fieldAuthorizationData.requiredScopes.push(new Set(andScopes));
275
+ }
276
+ fieldAuthorizationDataByFieldName.set(fieldName, fieldAuthorizationData);
277
+ return true;
278
+ }
279
+ existingFieldAuthorizationData.requiresAuthentication ||= incomingFieldAuthorizationData.requiresAuthentication;
280
+ return mergeAuthorizationDataByAND(incomingFieldAuthorizationData, existingFieldAuthorizationData);
281
+ }
282
+ function upsertAuthorizationData(authorizationDataByParentTypeName, incomingAuthorizationData, invalidOrScopesFieldPaths) {
283
+ const existingAuthorizationData = authorizationDataByParentTypeName.get(incomingAuthorizationData.typeName);
284
+ if (!existingAuthorizationData) {
285
+ authorizationDataByParentTypeName.set(incomingAuthorizationData.typeName, incomingAuthorizationData);
286
+ return;
287
+ }
288
+ for (const [fieldName, fieldAuthorizationData] of incomingAuthorizationData.fieldAuthorizationDataByFieldName) {
289
+ if (!upsertFieldAuthorizationData(existingAuthorizationData.fieldAuthorizationDataByFieldName, fieldAuthorizationData)) {
290
+ invalidOrScopesFieldPaths.add(`${incomingAuthorizationData.typeName}.${fieldName}`);
291
+ }
292
+ }
293
+ }
294
+ function upsertAuthorizationConfiguration(fieldConfigurationByFieldPath, authorizationData) {
295
+ const typeName = authorizationData.typeName;
296
+ for (const [fieldName, fieldAuthorizationData] of authorizationData.fieldAuthorizationDataByFieldName) {
297
+ const fieldPath = `${typeName}.${fieldName}`;
298
+ const existingFieldConfiguration = fieldConfigurationByFieldPath.get(fieldPath);
299
+ if (existingFieldConfiguration) {
300
+ existingFieldConfiguration.requiresAuthentication = fieldAuthorizationData.requiresAuthentication;
301
+ existingFieldConfiguration.requiredScopes = fieldAuthorizationData.requiredScopes.map((orScopes) => [
302
+ ...orScopes,
303
+ ]);
304
+ }
305
+ else {
306
+ fieldConfigurationByFieldPath.set(fieldPath, {
307
+ argumentNames: [],
308
+ typeName,
309
+ fieldName,
310
+ requiresAuthentication: fieldAuthorizationData.requiresAuthentication,
311
+ requiredScopes: fieldAuthorizationData.requiredScopes.map((orScopes) => [...orScopes]),
312
+ });
313
+ }
314
+ }
315
+ }
316
+ function setAndGetValue(map, key, value) {
317
+ map.set(key, value);
318
+ return value;
319
+ }
320
+ function isNodeKindInterface(kind) {
321
+ return kind === graphql_1.Kind.INTERFACE_TYPE_DEFINITION || kind === graphql_1.Kind.INTERFACE_TYPE_EXTENSION;
322
+ }
323
+ function isNodeKindObject(kind) {
324
+ return kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION || kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION;
325
+ }
326
+ function addMapEntries(source, target) {
327
+ for (const [key, value] of source) {
328
+ target.set(key, value);
329
+ }
330
+ }
331
+ function getSingleSetEntry(set) {
332
+ for (const entry of set) {
333
+ return entry;
334
+ }
335
+ }
336
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/v1/utils/utils.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,10 @@
1
- import { FieldSetDirective } from '../schema-building/utils';
2
- export type WarningSubgraphData = {
3
- name: string;
4
- };
5
- export type WarningOptions = {
6
- message: string;
7
- subgraph: WarningSubgraphData;
8
- };
9
- export declare class Warning extends Error {
10
- subgraph: WarningSubgraphData;
11
- constructor(options: WarningOptions);
12
- }
1
+ import { Warning } from '../../warnings/types';
13
2
  export declare function invalidOverrideTargetSubgraphNameWarning(targetSubgraphName: string, parentTypeName: string, fieldNames: string[], originSubgraphName: string): Warning;
14
3
  export declare function externalInterfaceFieldsWarning(subgraphName: string, typeName: string, fieldNames: Array<string>): Warning;
15
- export declare function nonExternalConditionalFieldWarning(originCoords: string, subgraphName: string, targetCoords: string, fieldSet: string, fieldSetDirective: FieldSetDirective): Warning;
4
+ export declare function nonExternalConditionalFieldWarning(directiveCoords: string, subgraphName: string, targetCoords: string, fieldSet: string, fieldSetDirectiveName: string): Warning;
16
5
  export declare function unimplementedInterfaceOutputTypeWarning(subgraphName: string, interfaceTypeName: string): Warning;
17
6
  export declare function invalidExternalFieldWarning(fieldCoords: string, subgraphName: string): Warning;
18
7
  export declare function requiresDefinedOnNonEntityFieldWarning(fieldCoords: string, subgraphName: string): Warning;
19
8
  export declare function consumerInactiveThresholdInvalidValueWarning(subgraphName: string, additionalMsg?: string): Warning;
9
+ export declare function externalEntityExtensionKeyFieldWarning(entityName: string, fieldSet: string, externalFieldCoordinates: Array<string>, subgraphName: string): Warning;
10
+ export declare function fieldAlreadyProvidedWarning(fieldCoords: string, directiveName: string, directiveCoords: string, subgraphName: string): Warning;
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Warning = void 0;
4
3
  exports.invalidOverrideTargetSubgraphNameWarning = invalidOverrideTargetSubgraphNameWarning;
5
4
  exports.externalInterfaceFieldsWarning = externalInterfaceFieldsWarning;
6
5
  exports.nonExternalConditionalFieldWarning = nonExternalConditionalFieldWarning;
@@ -8,18 +7,12 @@ exports.unimplementedInterfaceOutputTypeWarning = unimplementedInterfaceOutputTy
8
7
  exports.invalidExternalFieldWarning = invalidExternalFieldWarning;
9
8
  exports.requiresDefinedOnNonEntityFieldWarning = requiresDefinedOnNonEntityFieldWarning;
10
9
  exports.consumerInactiveThresholdInvalidValueWarning = consumerInactiveThresholdInvalidValueWarning;
11
- const string_constants_1 = require("../utils/string-constants");
12
- class Warning extends Error {
13
- subgraph;
14
- constructor(options) {
15
- super(options.message);
16
- this.name = 'Warning';
17
- this.subgraph = options.subgraph;
18
- }
19
- }
20
- exports.Warning = Warning;
10
+ exports.externalEntityExtensionKeyFieldWarning = externalEntityExtensionKeyFieldWarning;
11
+ exports.fieldAlreadyProvidedWarning = fieldAlreadyProvidedWarning;
12
+ const types_1 = require("../../warnings/types");
13
+ const string_constants_1 = require("../../utils/string-constants");
21
14
  function invalidOverrideTargetSubgraphNameWarning(targetSubgraphName, parentTypeName, fieldNames, originSubgraphName) {
22
- return new Warning({
15
+ return new types_1.Warning({
23
16
  message: `The Object type "${parentTypeName}" defines the directive "@override(from: "${targetSubgraphName}")" on the following field` +
24
17
  (fieldNames.length > 1 ? 's' : '') +
25
18
  `: "` +
@@ -39,14 +32,14 @@ function versionOneWarningPropagationMessage(subgraphName) {
39
32
  ` propagate as an error:\n`);
40
33
  }
41
34
  function externalInterfaceFieldsWarning(subgraphName, typeName, fieldNames) {
42
- return new Warning({
35
+ return new types_1.Warning({
43
36
  message: versionOneWarningPropagationMessage(subgraphName) +
44
- `The Interface "${typeName}" is invalid because the following Field definition` +
37
+ `The Interface "${typeName}" is invalid because the following field definition` +
45
38
  (fieldNames.length > 1 ? 's are' : ' is') +
46
39
  ` declared "@external":\n "` +
47
40
  fieldNames.join(string_constants_1.QUOTATION_JOIN) +
48
41
  `"\n` +
49
- `Interface Fields should not be declared "@external". This is because Interface Fields do not resolve directly,` +
42
+ `Interface fields should not be declared "@external". This is because Interface fields do not resolve directly,` +
50
43
  ` but the "@external" directive relates to whether a Field instance can be resolved` +
51
44
  ` by the subgraph in which it is defined.`,
52
45
  subgraph: {
@@ -54,14 +47,14 @@ function externalInterfaceFieldsWarning(subgraphName, typeName, fieldNames) {
54
47
  },
55
48
  });
56
49
  }
57
- function nonExternalConditionalFieldWarning(originCoords, subgraphName, targetCoords, fieldSet, fieldSetDirective) {
58
- return new Warning({
50
+ function nonExternalConditionalFieldWarning(directiveCoords, subgraphName, targetCoords, fieldSet, fieldSetDirectiveName) {
51
+ return new types_1.Warning({
59
52
  message: versionOneWarningPropagationMessage(subgraphName) +
60
- `The Field "${originCoords}" in subgraph "${subgraphName}" defines a "@${fieldSetDirective}" directive with the following` +
61
- ` field set:\n "${fieldSet}".` +
62
- `\nHowever, neither the Field "${targetCoords}" nor any of its field set ancestors are declared @external.` +
53
+ `The Field "${directiveCoords}" in subgraph "${subgraphName}" defines a "@${fieldSetDirectiveName}" directive with` +
54
+ ` the following field set:\n "${fieldSet}".` +
55
+ `\nHowever, neither the field "${targetCoords}" nor any of its field set ancestors are declared @external.` +
63
56
  `\nConsequently, "${targetCoords}" is already provided by subgraph "${subgraphName}" and should not form part of` +
64
- ` a "@${fieldSetDirective}" directive field set.`,
57
+ ` a "@${fieldSetDirectiveName}" directive field set.`,
65
58
  subgraph: {
66
59
  name: subgraphName,
67
60
  },
@@ -69,7 +62,7 @@ function nonExternalConditionalFieldWarning(originCoords, subgraphName, targetCo
69
62
  }
70
63
  // TODO Temporarily only used as a warning
71
64
  function unimplementedInterfaceOutputTypeWarning(subgraphName, interfaceTypeName) {
72
- return new Warning({
65
+ return new types_1.Warning({
73
66
  message: `Subgraph "${subgraphName}": The Interface "${interfaceTypeName}" is used as an output type` +
74
67
  ` without at least one Object type implementation defined in the schema.`,
75
68
  subgraph: {
@@ -78,10 +71,10 @@ function unimplementedInterfaceOutputTypeWarning(subgraphName, interfaceTypeName
78
71
  });
79
72
  }
80
73
  function invalidExternalFieldWarning(fieldCoords, subgraphName) {
81
- return new Warning({
74
+ return new types_1.Warning({
82
75
  message: versionOneWarningPropagationMessage(subgraphName) +
83
- ` The Object Field "${fieldCoords}" is invalidly declared "@external". An Object Field should only` +
84
- ` be declared "@external" if it is part of a "@key", "@provides", or "@requires" FieldSet, or the Field is` +
76
+ ` The Object Field "${fieldCoords}" is invalidly declared "@external". An Object field should only` +
77
+ ` be declared "@external" if it is part of a "@key", "@provides", or "@requires" filed set, or the field is` +
85
78
  ` necessary to satisfy an Interface implementation. In the case that none of these conditions is true, the` +
86
79
  ` "@external" directive should be removed.`,
87
80
  subgraph: {
@@ -90,7 +83,7 @@ function invalidExternalFieldWarning(fieldCoords, subgraphName) {
90
83
  });
91
84
  }
92
85
  function requiresDefinedOnNonEntityFieldWarning(fieldCoords, subgraphName) {
93
- return new Warning({
86
+ return new types_1.Warning({
94
87
  message: ` The Object Field "${fieldCoords}" defines a "@requires" directive, but the Object is not an entity.` +
95
88
  ' Consequently, the "@requires" FieldSet cannot be satisfied because there is no entity resolver with which to' +
96
89
  ' provide the required Fields.',
@@ -100,7 +93,7 @@ function requiresDefinedOnNonEntityFieldWarning(fieldCoords, subgraphName) {
100
93
  });
101
94
  }
102
95
  function consumerInactiveThresholdInvalidValueWarning(subgraphName, additionalMsg = '') {
103
- return new Warning({
96
+ return new types_1.Warning({
104
97
  message: `The "consumerInactiveThreshold" argument of type "Int" should be positive and smaller than 2,147,483,648.` +
105
98
  +additionalMsg
106
99
  ? `\n${additionalMsg}`
@@ -110,4 +103,32 @@ function consumerInactiveThresholdInvalidValueWarning(subgraphName, additionalMs
110
103
  },
111
104
  });
112
105
  }
106
+ function externalEntityExtensionKeyFieldWarning(entityName, fieldSet, externalFieldCoordinates, subgraphName) {
107
+ return new types_1.Warning({
108
+ message: `The entity extension "${entityName}" defined in subgraph "${subgraphName}" defines a "@key" directive` +
109
+ ` with the field set "${fieldSet}".\nThe following field coordinates that form part of that field set are` +
110
+ ` declared "@external":\n "` +
111
+ externalFieldCoordinates.join(string_constants_1.QUOTATION_JOIN) +
112
+ `"\nPlease note fields that form part of` +
113
+ ` entity extension "@key" field sets are always provided in that subgraph. Any such "@external" declarations` +
114
+ ` are unnecessary relics of Federation Version 1 syntax and are effectively ignored.`,
115
+ subgraph: {
116
+ name: subgraphName,
117
+ },
118
+ });
119
+ }
120
+ function fieldAlreadyProvidedWarning(fieldCoords, directiveName, directiveCoords, subgraphName) {
121
+ return new types_1.Warning({
122
+ message: versionOneWarningPropagationMessage(subgraphName) +
123
+ `The field "${fieldCoords}" is unconditionally provided by subgraph "${subgraphName}" and should not form` +
124
+ ` part of any "@${directiveName}" field set.` +
125
+ `\nHowever, "${fieldCoords}" forms part of the "@${directiveName}" field set defined "${directiveCoords}".` +
126
+ `\nAlthough "${fieldCoords}" is declared "@external", it is part of` +
127
+ ` a "@key" directive on an extension type. Such fields are only declared "@external" for legacy syntactical` +
128
+ ` reasons and are not internally considered "@external".`,
129
+ subgraph: {
130
+ name: subgraphName,
131
+ },
132
+ });
133
+ }
113
134
  //# sourceMappingURL=warnings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"warnings.js","sourceRoot":"","sources":["../../../src/v1/warnings/warnings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export type WarningSubgraphData = {
2
+ name: string;
3
+ };
4
+ export type WarningOptions = {
5
+ message: string;
6
+ subgraph: WarningSubgraphData;
7
+ };
8
+ export declare class Warning extends Error {
9
+ subgraph: WarningSubgraphData;
10
+ constructor(options: WarningOptions);
11
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Warning = void 0;
4
+ class Warning extends Error {
5
+ subgraph;
6
+ constructor(options) {
7
+ super(options.message);
8
+ this.name = 'Warning';
9
+ this.subgraph = options.subgraph;
10
+ }
11
+ }
12
+ exports.Warning = Warning;
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/warnings/types.ts"],"names":[],"mappings":";;;AAQA,MAAa,OAAQ,SAAQ,KAAK;IAChC,QAAQ,CAAsB;IAE9B,YAAY,OAAuB;QACjC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;CACF;AARD,0BAQC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wundergraph/composition",
3
- "version": "0.36.1",
3
+ "version": "0.37.1",
4
4
  "author": {
5
5
  "name": "WunderGraph Maintainers",
6
6
  "email": "info@wundergraph.com"
@@ -41,5 +41,5 @@
41
41
  "typescript": "5.5.2",
42
42
  "vitest": "^2.1.8"
43
43
  },
44
- "gitHead": "1a9ec1459419816b4718464b5fa4605e4f6b9950"
44
+ "gitHead": "79ff27fe3a26d48e1c04da9429ebb64b8bf2b6f5"
45
45
  }