@wundergraph/composition 0.18.0 → 0.18.2

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 (56) hide show
  1. package/dist/ast/ast.d.ts +2 -9
  2. package/dist/ast/ast.js +4 -32
  3. package/dist/ast/ast.js.map +1 -1
  4. package/dist/ast/utils.d.ts +1 -2
  5. package/dist/ast/utils.js.map +1 -1
  6. package/dist/errors/errors.d.ts +6 -11
  7. package/dist/errors/errors.js +18 -29
  8. package/dist/errors/errors.js.map +1 -1
  9. package/dist/federation/federation-factory.d.ts +6 -6
  10. package/dist/federation/federation-factory.js +19 -18
  11. package/dist/federation/federation-factory.js.map +1 -1
  12. package/dist/federation/utils.d.ts +4 -4
  13. package/dist/federation/utils.js +2 -2
  14. package/dist/federation/utils.js.map +1 -1
  15. package/dist/index.d.ts +8 -1
  16. package/dist/index.js +8 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/normalization/normalization-factory.d.ts +19 -26
  19. package/dist/normalization/normalization-factory.js +179 -994
  20. package/dist/normalization/normalization-factory.js.map +1 -1
  21. package/dist/normalization/utils.d.ts +6 -126
  22. package/dist/normalization/utils.js +69 -158
  23. package/dist/normalization/utils.js.map +1 -1
  24. package/dist/normalization/walkers.d.ts +5 -0
  25. package/dist/normalization/walkers.js +593 -0
  26. package/dist/normalization/walkers.js.map +1 -0
  27. package/dist/schema-building/ast.d.ts +104 -0
  28. package/dist/schema-building/ast.js +156 -0
  29. package/dist/schema-building/ast.js.map +1 -0
  30. package/dist/schema-building/type-definition-data.d.ts +108 -0
  31. package/dist/schema-building/type-definition-data.js +3 -0
  32. package/dist/schema-building/type-definition-data.js.map +1 -0
  33. package/dist/schema-building/type-extension-data.d.ts +45 -0
  34. package/dist/schema-building/type-extension-data.js +3 -0
  35. package/dist/schema-building/type-extension-data.js.map +1 -0
  36. package/dist/{type-merging → schema-building}/type-merging.js +5 -4
  37. package/dist/schema-building/type-merging.js.map +1 -0
  38. package/dist/schema-building/utils.d.ts +42 -0
  39. package/dist/schema-building/utils.js +600 -0
  40. package/dist/schema-building/utils.js.map +1 -0
  41. package/dist/subgraph/subgraph.d.ts +4 -5
  42. package/dist/subgraph/subgraph.js +2 -91
  43. package/dist/subgraph/subgraph.js.map +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/dist/utils/constants.d.ts +4 -2
  46. package/dist/utils/constants.js +383 -359
  47. package/dist/utils/constants.js.map +1 -1
  48. package/dist/utils/string-constants.d.ts +4 -0
  49. package/dist/utils/string-constants.js +6 -2
  50. package/dist/utils/string-constants.js.map +1 -1
  51. package/dist/utils/utils.d.ts +2 -4
  52. package/dist/utils/utils.js +4 -6
  53. package/dist/utils/utils.js.map +1 -1
  54. package/package.json +2 -2
  55. package/dist/type-merging/type-merging.js.map +0 -1
  56. /package/dist/{type-merging → schema-building}/type-merging.d.ts +0 -0
@@ -6,7 +6,7 @@ const graphql_1 = require("graphql");
6
6
  const ast_1 = require("../ast/ast");
7
7
  const utils_1 = require("../ast/utils");
8
8
  const errors_1 = require("../errors/errors");
9
- const type_merging_1 = require("../type-merging/type-merging");
9
+ const type_merging_1 = require("../schema-building/type-merging");
10
10
  const utils_2 = require("./utils");
11
11
  const subgraph_1 = require("../subgraph/subgraph");
12
12
  const string_constants_1 = require("../utils/string-constants");
@@ -15,7 +15,6 @@ const merge_1 = require("@graphql-tools/merge");
15
15
  const constants_1 = require("../utils/constants");
16
16
  const normalization_factory_1 = require("../normalization/normalization-factory");
17
17
  const utils_4 = require("../normalization/utils");
18
- const index_1 = require("graphql/index");
19
18
  class FederationFactory {
20
19
  authorizationDataByParentTypeName;
21
20
  abstractToConcreteTypeNames = new Map();
@@ -756,7 +755,7 @@ class FederationFactory {
756
755
  return;
757
756
  }
758
757
  if (fieldAuthorizationData.requiresAuthentication) {
759
- fieldContainer.directives.directives.set(string_constants_1.AUTHENTICATED, [(0, utils_3.generateAuthenticatedDirective)()]);
758
+ fieldContainer.directives.directives.set(string_constants_1.AUTHENTICATED, [(0, utils_3.generateSimpleDirective)(string_constants_1.AUTHENTICATED)]);
760
759
  }
761
760
  if (fieldAuthorizationData.requiredScopes.length > 0) {
762
761
  fieldContainer.directives.directives.set(string_constants_1.REQUIRES_SCOPES, [
@@ -1032,8 +1031,8 @@ class FederationFactory {
1032
1031
  }
1033
1032
  validateKeyFieldSetsForImplicitEntity(entityContainer) {
1034
1033
  const internalSubgraph = (0, utils_3.getOrThrowError)(this.internalSubgraphBySubgraphName, this.currentSubgraphName, 'internalSubgraphBySubgraphName');
1035
- const parentContainerByTypeName = internalSubgraph.parentContainerByTypeName;
1036
- const extensionContainerByTypeName = internalSubgraph.extensionContainerByTypeName;
1034
+ const parentContainerByTypeName = internalSubgraph.parentDataByTypeName;
1035
+ const extensionContainerByTypeName = internalSubgraph.parentExtensionDataByTypeName;
1037
1036
  const implicitEntityContainer = parentContainerByTypeName.get(entityContainer.typeName) ||
1038
1037
  extensionContainerByTypeName.get(entityContainer.typeName);
1039
1038
  if (!implicitEntityContainer ||
@@ -1057,31 +1056,33 @@ class FederationFactory {
1057
1056
  let currentDepth = -1;
1058
1057
  let shouldDefineSelectionSet = true;
1059
1058
  let shouldAddKeyFieldSet = true;
1060
- (0, index_1.visit)(documentNode, {
1059
+ (0, graphql_1.visit)(documentNode, {
1061
1060
  Argument: {
1062
1061
  enter() {
1063
1062
  // Fields that define arguments are never allowed in a key FieldSet
1064
1063
  // However, at this stage, it actually means the argument is undefined on the field
1065
1064
  shouldAddKeyFieldSet = false;
1066
- return index_1.BREAK;
1065
+ return graphql_1.BREAK;
1067
1066
  },
1068
1067
  },
1069
1068
  Field: {
1070
1069
  enter(node) {
1071
1070
  const parentContainer = parentContainers[currentDepth];
1072
- const parentTypeName = parentContainer.name.value;
1071
+ const parentTypeName = parentContainer.typeName;
1073
1072
  // If an object-like was just visited, a selection set should have been entered
1074
1073
  if (shouldDefineSelectionSet) {
1075
1074
  shouldAddKeyFieldSet = false;
1076
- return index_1.BREAK;
1075
+ return graphql_1.BREAK;
1077
1076
  }
1078
1077
  const fieldName = node.name.value;
1079
1078
  const fieldPath = `${parentTypeName}.${fieldName}`;
1080
- const fieldContainer = parentContainer.fields.get(fieldName);
1079
+ const fieldContainer = parentContainer.fieldDataByFieldName.get(fieldName);
1081
1080
  // undefined if the field does not exist on the parent
1082
- if (!fieldContainer || fieldContainer.arguments.size || definedFields[currentDepth].has(fieldName)) {
1081
+ if (!fieldContainer ||
1082
+ fieldContainer.argumentDataByArgumentName.size ||
1083
+ definedFields[currentDepth].has(fieldName)) {
1083
1084
  shouldAddKeyFieldSet = false;
1084
- return index_1.BREAK;
1085
+ return graphql_1.BREAK;
1085
1086
  }
1086
1087
  definedFields[currentDepth].add(fieldName);
1087
1088
  // Depth 0 is the original parent type
@@ -1098,7 +1099,7 @@ class FederationFactory {
1098
1099
  const childContainer = parentContainerByTypeName.get(namedTypeName) || extensionContainerByTypeName.get(namedTypeName);
1099
1100
  if (!childContainer) {
1100
1101
  shouldAddKeyFieldSet = false;
1101
- return index_1.BREAK;
1102
+ return graphql_1.BREAK;
1102
1103
  }
1103
1104
  if (childContainer.kind === graphql_1.Kind.OBJECT_TYPE_DEFINITION ||
1104
1105
  childContainer.kind === graphql_1.Kind.OBJECT_TYPE_EXTENSION) {
@@ -1109,34 +1110,34 @@ class FederationFactory {
1109
1110
  // interfaces and unions are invalid in a key directive
1110
1111
  if ((0, utils_1.isKindAbstract)(childContainer.kind)) {
1111
1112
  shouldAddKeyFieldSet = false;
1112
- return index_1.BREAK;
1113
+ return graphql_1.BREAK;
1113
1114
  }
1114
1115
  },
1115
1116
  },
1116
1117
  InlineFragment: {
1117
1118
  enter() {
1118
1119
  shouldAddKeyFieldSet = false;
1119
- return index_1.BREAK;
1120
+ return graphql_1.BREAK;
1120
1121
  },
1121
1122
  },
1122
1123
  SelectionSet: {
1123
1124
  enter() {
1124
1125
  if (!shouldDefineSelectionSet) {
1125
1126
  shouldAddKeyFieldSet = false;
1126
- return index_1.BREAK;
1127
+ return graphql_1.BREAK;
1127
1128
  }
1128
1129
  currentDepth += 1;
1129
1130
  shouldDefineSelectionSet = false;
1130
1131
  if (currentDepth < 0 || currentDepth >= parentContainers.length) {
1131
1132
  shouldAddKeyFieldSet = false;
1132
- return index_1.BREAK;
1133
+ return graphql_1.BREAK;
1133
1134
  }
1134
1135
  definedFields.push(new Set());
1135
1136
  },
1136
1137
  leave() {
1137
1138
  if (shouldDefineSelectionSet) {
1138
1139
  shouldAddKeyFieldSet = false;
1139
- return index_1.BREAK;
1140
+ return graphql_1.BREAK;
1140
1141
  }
1141
1142
  // Empty selection sets would be a parse error, so it is unnecessary to handle them
1142
1143
  currentDepth -= 1;
@@ -1 +1 @@
1
- {"version":3,"file":"federation-factory.js","sourceRoot":"","sources":["../../src/federation/federation-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"federation-factory.js","sourceRoot":"","sources":["../../src/federation/federation-factory.ts"],"names":[],"mappings":"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"}
@@ -64,7 +64,7 @@ export type EnumValueContainer = {
64
64
  node: MutableEnumValueDefinitionNode;
65
65
  };
66
66
  export type EnumValueMap = Map<string, EnumValueContainer>;
67
- export type FieldContainer = {
67
+ export type FederationFieldData = {
68
68
  arguments: ArgumentMap;
69
69
  directives: PersistedDirectivesContainer;
70
70
  isShareable: boolean;
@@ -74,7 +74,7 @@ export type FieldContainer = {
74
74
  subgraphsByExternal: Map<String, boolean>;
75
75
  subgraphsByShareable: Map<string, boolean>;
76
76
  };
77
- export type FieldMap = Map<string, FieldContainer>;
77
+ export type FieldMap = Map<string, FederationFieldData>;
78
78
  export type InputValueContainer = {
79
79
  appearances: number;
80
80
  directives: PersistedDirectivesContainer;
@@ -126,10 +126,10 @@ export type UnionContainer = {
126
126
  members: Set<string>;
127
127
  node: MutableUnionTypeDefinitionNode;
128
128
  };
129
- export type ChildContainer = FieldContainer | InputValueContainer | EnumValueContainer;
129
+ export type ChildContainer = FederationFieldData | InputValueContainer | EnumValueContainer;
130
130
  export type ParentContainer = EnumContainer | InputObjectContainer | InterfaceContainer | ObjectContainer | UnionContainer | ScalarContainer;
131
131
  export type NodeContainer = ArgumentContainer | ChildContainer | ParentContainer;
132
132
  export type ExtensionContainer = ObjectExtensionContainer;
133
133
  export type ParentMap = Map<string, ParentContainer>;
134
134
  export type ObjectLikeContainer = ObjectContainer | InterfaceContainer;
135
- export declare function isFieldInaccessible(fieldContainer: FieldContainer): boolean;
135
+ export declare function isFieldInaccessible(fieldData: FederationFieldData): boolean;
@@ -25,8 +25,8 @@ function newPersistedDirectivesContainer() {
25
25
  };
26
26
  }
27
27
  exports.newPersistedDirectivesContainer = newPersistedDirectivesContainer;
28
- function isFieldInaccessible(fieldContainer) {
29
- return fieldContainer.directives.directives.has(string_constants_1.INACCESSIBLE);
28
+ function isFieldInaccessible(fieldData) {
29
+ return fieldData.directives.directives.has(string_constants_1.INACCESSIBLE);
30
30
  }
31
31
  exports.isFieldInaccessible = isFieldInaccessible;
32
32
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/federation/utils.ts"],"names":[],"mappings":";;;AAeA,gEASmC;AAyBtB,QAAA,8BAA8B,GAAG,IAAI,GAAG,CAAS;IAC5D,8BAAW;IACX,4CAAyB;IACzB,wCAAqB;IACrB,wCAAqB;IACrB,iCAAc;IACd,8BAAW;IACX,qCAAkB;CACnB,CAAC,CAAC;AAEH,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,+CAAK,CAAA;IACL,6DAAY,CAAA;IACZ,yDAAU,CAAA;AACZ,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAaD,SAAgB,+BAA+B;IAC7C,OAAO;QACL,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,IAAI,GAAG,EAAgC;QACnD,IAAI,EAAE,IAAI,GAAG,EAA8B;KAC5C,CAAC;AACJ,CAAC;AAND,0EAMC;AA4HD,SAAgB,mBAAmB,CAAC,cAA8B;IAChE,OAAO,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,+BAAY,CAAC,CAAC;AAChE,CAAC;AAFD,kDAEC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/federation/utils.ts"],"names":[],"mappings":";;;AAeA,gEASmC;AAwBtB,QAAA,8BAA8B,GAAG,IAAI,GAAG,CAAS;IAC5D,8BAAW;IACX,4CAAyB;IACzB,wCAAqB;IACrB,wCAAqB;IACrB,iCAAc;IACd,8BAAW;IACX,qCAAkB;CACnB,CAAC,CAAC;AAEH,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,+CAAK,CAAA;IACL,6DAAY,CAAA;IACZ,yDAAU,CAAA;AACZ,CAAC,EAJW,WAAW,2BAAX,WAAW,QAItB;AAaD,SAAgB,+BAA+B;IAC7C,OAAO;QACL,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,IAAI,GAAG,EAAgC;QACnD,IAAI,EAAE,IAAI,GAAG,EAA8B;KAC5C,CAAC;AACJ,CAAC;AAND,0EAMC;AA4HD,SAAgB,mBAAmB,CAAC,SAA8B;IAChE,OAAO,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,+BAAY,CAAC,CAAC;AAC3D,CAAC;AAFD,kDAEC"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,14 @@ export * from './errors/errors';
4
4
  export * from './federation/federation-factory';
5
5
  export * from './federation/utils';
6
6
  export * from './normalization/normalization-factory';
7
+ export * from './normalization/utils';
8
+ export * from './normalization/walkers';
7
9
  export * from './router-configuration/router-configuration';
10
+ export * from './schema-building/ast';
11
+ export * from './schema-building/type-definition-data';
12
+ export * from './schema-building/type-extension-data';
13
+ export * from './schema-building/type-merging';
14
+ export * from './schema-building/utils';
8
15
  export * from './subgraph/subgraph';
9
- export * from './type-merging/type-merging';
10
16
  export * from './utils/utils';
17
+ export * from './warnings/warnings';
package/dist/index.js CHANGED
@@ -20,8 +20,15 @@ __exportStar(require("./errors/errors"), exports);
20
20
  __exportStar(require("./federation/federation-factory"), exports);
21
21
  __exportStar(require("./federation/utils"), exports);
22
22
  __exportStar(require("./normalization/normalization-factory"), exports);
23
+ __exportStar(require("./normalization/utils"), exports);
24
+ __exportStar(require("./normalization/walkers"), exports);
23
25
  __exportStar(require("./router-configuration/router-configuration"), exports);
26
+ __exportStar(require("./schema-building/ast"), exports);
27
+ __exportStar(require("./schema-building/type-definition-data"), exports);
28
+ __exportStar(require("./schema-building/type-extension-data"), exports);
29
+ __exportStar(require("./schema-building/type-merging"), exports);
30
+ __exportStar(require("./schema-building/utils"), exports);
24
31
  __exportStar(require("./subgraph/subgraph"), exports);
25
- __exportStar(require("./type-merging/type-merging"), exports);
26
32
  __exportStar(require("./utils/utils"), exports);
33
+ __exportStar(require("./warnings/warnings"), exports);
27
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,kDAAgC;AAChC,kEAAgD;AAChD,qDAAmC;AACnC,wEAAsD;AACtD,8EAA4D;AAC5D,sDAAoC;AACpC,8DAA4C;AAC5C,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,8CAA4B;AAC5B,kDAAgC;AAChC,kEAAgD;AAChD,qDAAmC;AACnC,wEAAsD;AACtD,wDAAsC;AACtC,0DAAwC;AACxC,8EAA4D;AAC5D,wDAAsC;AACtC,yEAAuD;AACvD,wEAAsD;AACtD,iEAA+C;AAC/C,0DAAwC;AACxC,sDAAoC;AACpC,gDAA8B;AAC9B,sDAAoC"}
@@ -1,21 +1,23 @@
1
- import { ConstDirectiveNode, DirectiveDefinitionNode, DirectiveNode, DocumentNode, EnumValueDefinitionNode, FieldDefinitionNode, GraphQLSchema, InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, TypeNode } from 'graphql';
2
- import { EnumTypeNode, InputObjectTypeNode, InterfaceTypeNode, ObjectTypeNode, ScalarTypeNode, SchemaNode, UnionTypeNode } from '../ast/utils';
3
- import { ChildContainer, ExtensionContainer, ExtensionContainerByTypeName, FieldContainer, FieldSetContainer, InputValidationContainer, ObjectExtensionContainer, ObjectLikeContainer, ParentContainer, ParentContainerByTypeName, SchemaContainer, UnionContainer, UnionExtensionContainer } from './utils';
1
+ import { ConstDirectiveNode, DirectiveDefinitionNode, DirectiveNode, DocumentNode, FieldDefinitionNode, GraphQLSchema, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, TypeNode } from 'graphql';
2
+ import { EnumTypeNode, InterfaceTypeNode, ObjectTypeNode, ScalarTypeNode } from '../ast/utils';
3
+ import { FieldSetContainer, InputValidationContainer } from './utils';
4
4
  import { AuthorizationData, EntityContainerByTypeName, EntityInterfaceSubgraphData, FieldAuthorizationData } from '../utils/utils';
5
5
  import { ConfigurationData, ConfigurationDataByTypeName, EventConfiguration } from '../router-configuration/router-configuration';
6
6
  import { MutableInputValueDefinitionNode, ObjectLikeTypeNode } from '../ast/ast';
7
7
  import { InternalSubgraph, Subgraph } from '../subgraph/subgraph';
8
+ import { FieldData, ParentDefinitionData, ParentWithFieldsData, SchemaData } from '../schema-building/type-definition-data';
9
+ import { ParentExtensionData } from '../schema-building/type-extension-data';
8
10
  export type NormalizationResult = {
9
11
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
10
12
  configurationDataMap: ConfigurationDataByTypeName;
11
13
  entityInterfaces: Map<string, EntityInterfaceSubgraphData>;
12
14
  entityContainerByTypeName: EntityContainerByTypeName;
13
- extensionContainerByTypeName: ExtensionContainerByTypeName;
15
+ parentExtensionDataByTypeName: Map<string, ParentExtensionData>;
14
16
  isVersionTwo: boolean;
15
17
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
16
18
  operationTypes: Map<string, OperationTypeNode>;
17
19
  overridesByTargetSubgraphName: Map<string, Map<string, Set<string>>>;
18
- parentContainerByTypeName: ParentContainerByTypeName;
20
+ parentDataByTypeName: Map<string, ParentDefinitionData>;
19
21
  schema: GraphQLSchema;
20
22
  subgraphAST: DocumentNode;
21
23
  subgraphString: string;
@@ -35,7 +37,7 @@ export declare function normalizeSubgraphFromString(subgraphSDL: string): Normal
35
37
  export declare function normalizeSubgraph(document: DocumentNode, subgraphName?: string): NormalizationResultContainer;
36
38
  export declare class NormalizationFactory {
37
39
  abstractToConcreteTypeNames: Map<string, Set<string>>;
38
- allDirectiveDefinitions: Map<string, DirectiveDefinitionNode>;
40
+ directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>;
39
41
  argumentName: string;
40
42
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
41
43
  childName: string;
@@ -44,10 +46,9 @@ export declare class NormalizationFactory {
44
46
  errors: Error[];
45
47
  entityContainerByTypeName: EntityContainerByTypeName;
46
48
  entityInterfaces: Map<string, EntityInterfaceSubgraphData>;
47
- extensionContainerByTypeName: ExtensionContainerByTypeName;
49
+ parentExtensionDataByTypeName: Map<string, ParentExtensionData>;
48
50
  interfaceTypeNamesWithAuthorizationDirectives: Set<string>;
49
51
  isCurrentParentExtension: boolean;
50
- isCurrentParentRootType: boolean;
51
52
  isSubgraphVersionTwo: boolean;
52
53
  fieldSetContainerByTypeName: Map<string, FieldSetContainer>;
53
54
  heirFieldAuthorizationDataByTypeName: Map<string, FieldAuthorizationData[]>;
@@ -57,39 +58,31 @@ export declare class NormalizationFactory {
57
58
  leafTypeNamesWithAuthorizationDirectives: Set<string>;
58
59
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
59
60
  operationTypeNames: Map<string, OperationTypeNode>;
60
- parentContainerByTypeName: ParentContainerByTypeName;
61
+ parentDefinitionDataByTypeName: Map<string, ParentDefinitionData>;
61
62
  parentTypeName: string;
62
63
  parentsWithChildArguments: Set<string>;
63
64
  eventsConfigurations: Map<string, EventConfiguration[]>;
64
65
  overridesByTargetSubgraphName: Map<string, Map<string, Set<string>>>;
65
66
  invalidOrScopesHostPaths: Set<string>;
66
- schemaDefinition: SchemaContainer;
67
- referencedDirectives: Set<string>;
67
+ schemaDefinition: SchemaData;
68
+ referencedDirectiveNames: Set<string>;
68
69
  referencedTypeNames: Set<string>;
69
70
  warnings: string[];
70
71
  subgraphName?: string;
71
72
  constructor(subgraphName?: string);
72
73
  validateInputNamedType(namedType: string): InputValidationContainer;
73
- extractArguments(node: FieldDefinitionNode, argumentByName: Map<string, MutableInputValueDefinitionNode>, fieldPath: string): Map<string, MutableInputValueDefinitionNode>;
74
- validateArguments(fieldContainer: FieldContainer, fieldPath: string): void;
75
- extractDirectives(node: EnumValueDefinitionNode | InputObjectTypeNode | InputValueDefinitionNode | InterfaceTypeNode | ObjectTypeNode | SchemaNode | UnionTypeNode, map: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
74
+ extractArguments(node: FieldDefinitionNode, argumentDataByArgumentName: Map<string, MutableInputValueDefinitionNode>, fieldPath: string): Map<string, MutableInputValueDefinitionNode>;
75
+ validateArguments(fieldData: FieldData, fieldPath: string): void;
76
76
  getAuthorizationData(node: InterfaceTypeNode | ObjectTypeNode): AuthorizationData | undefined;
77
- extractDirectivesAndAuthorization(node: EnumTypeNode | FieldDefinitionNode | ScalarTypeNode, map: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
78
- extractUniqueUnionMembers(members: NamedTypeNode[], map: Map<string, NamedTypeNode>): Map<string, NamedTypeNode>;
77
+ extractDirectivesAndAuthorization(node: EnumTypeNode | FieldDefinitionNode | ScalarTypeNode, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
79
78
  mergeUniqueInterfaces(extensionInterfaces: Set<string>, interfaces: Set<string>, typeName: string): void;
80
- mergeUniqueUnionMembers(baseUnion: UnionContainer, extensionUnion?: UnionExtensionContainer): void;
81
- mergeDirectives(baseTypeDirectives: Map<string, ConstDirectiveNode[]>, extension?: ExtensionContainer): void;
82
- getValidatedAndNormalizedParentDirectives(parent: ParentContainer | SchemaContainer | ObjectExtensionContainer): ConstDirectiveNode[];
83
- convertKindForExtension(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): Kind.INTERFACE_TYPE_EXTENSION | Kind.OBJECT_TYPE_EXTENSION;
84
79
  handleInterfaceObject(node: ObjectTypeDefinitionNode): void;
85
- handleObjectLikeExtension(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): false | undefined;
86
- validateChildDirectives(child: ChildContainer, hostPath: string): void;
80
+ handleExtensionWithFields(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): false | void;
87
81
  isTypeValidImplementation(originalType: TypeNode, implementationType: TypeNode): boolean;
88
- canContainEventDirectives(): boolean;
89
82
  extractKeyFieldSets(node: ObjectLikeTypeNode, fieldSetContainer: FieldSetContainer): void;
90
- validateInterfaceImplementations(container: ObjectLikeContainer): void;
91
- handleOverride(node: DirectiveNode): void;
92
- extractEventDirectives(node: FieldDefinitionNode): void;
83
+ validateInterfaceImplementations(container: ParentWithFieldsData): void;
84
+ handleOverrideDeclaration(node: DirectiveNode, hostPath: string, errorMessages: string[]): void;
85
+ extractEventDirectivesToConfiguration(node: FieldDefinitionNode): void;
93
86
  normalize(document: DocumentNode): NormalizationResultContainer;
94
87
  }
95
88
  export declare function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationContainer;