@wundergraph/composition 0.18.4 → 0.18.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/ast/utils.d.ts +2 -9
  2. package/dist/ast/utils.js +2 -73
  3. package/dist/ast/utils.js.map +1 -1
  4. package/dist/errors/errors.d.ts +13 -19
  5. package/dist/errors/errors.js +50 -67
  6. package/dist/errors/errors.js.map +1 -1
  7. package/dist/federation/federation-factory.d.ts +17 -46
  8. package/dist/federation/federation-factory.js +391 -1002
  9. package/dist/federation/federation-factory.js.map +1 -1
  10. package/dist/federation/utils.d.ts +1 -115
  11. package/dist/federation/utils.js +0 -29
  12. package/dist/federation/utils.js.map +1 -1
  13. package/dist/federation/walkers.d.ts +3 -0
  14. package/dist/federation/walkers.js +120 -0
  15. package/dist/federation/walkers.js.map +1 -0
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/normalization/normalization-factory.d.ts +26 -18
  20. package/dist/normalization/normalization-factory.js +139 -141
  21. package/dist/normalization/normalization-factory.js.map +1 -1
  22. package/dist/normalization/utils.js +53 -54
  23. package/dist/normalization/utils.js.map +1 -1
  24. package/dist/normalization/walkers.js +156 -128
  25. package/dist/normalization/walkers.js.map +1 -1
  26. package/dist/router-configuration/router-configuration.d.ts +0 -1
  27. package/dist/schema-building/ast.d.ts +17 -5
  28. package/dist/schema-building/ast.js +32 -17
  29. package/dist/schema-building/ast.js.map +1 -1
  30. package/dist/schema-building/type-definition-data.d.ts +51 -25
  31. package/dist/schema-building/type-extension-data.d.ts +11 -7
  32. package/dist/schema-building/type-merging.d.ts +2 -4
  33. package/dist/schema-building/type-merging.js +8 -27
  34. package/dist/schema-building/type-merging.js.map +1 -1
  35. package/dist/schema-building/utils.d.ts +41 -18
  36. package/dist/schema-building/utils.js +855 -111
  37. package/dist/schema-building/utils.js.map +1 -1
  38. package/dist/subgraph/subgraph.d.ts +8 -10
  39. package/dist/subgraph/subgraph.js +1 -237
  40. package/dist/subgraph/subgraph.js.map +1 -1
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/dist/utils/constants.d.ts +7 -1
  43. package/dist/utils/constants.js +24 -19
  44. package/dist/utils/constants.js.map +1 -1
  45. package/dist/utils/string-constants.d.ts +10 -4
  46. package/dist/utils/string-constants.js +20 -6
  47. package/dist/utils/string-constants.js.map +1 -1
  48. package/dist/utils/utils.d.ts +4 -4
  49. package/dist/utils/utils.js +10 -4
  50. package/dist/utils/utils.js.map +1 -1
  51. package/package.json +4 -3
  52. package/dist/ast/ast.d.ts +0 -97
  53. package/dist/ast/ast.js +0 -168
  54. package/dist/ast/ast.js.map +0 -1
@@ -1,23 +1,28 @@
1
- import { ConstDirectiveNode, DirectiveDefinitionNode, DirectiveNode, DocumentNode, FieldDefinitionNode, GraphQLSchema, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, TypeNode } from 'graphql';
1
+ import { ConstDirectiveNode, DirectiveDefinitionNode, DirectiveNode, DocumentNode, FieldDefinitionNode, GraphQLSchema, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode } from 'graphql';
2
2
  import { EnumTypeNode, InterfaceTypeNode, ObjectTypeNode, ScalarTypeNode } from '../ast/utils';
3
3
  import { FieldSetContainer, InputValidationContainer } from './utils';
4
4
  import { AuthorizationData, EntityContainerByTypeName, EntityInterfaceSubgraphData, FieldAuthorizationData } from '../utils/utils';
5
- import { ConfigurationData, ConfigurationDataByTypeName, EventConfiguration } from '../router-configuration/router-configuration';
6
- import { MutableInputValueDefinitionNode, ObjectLikeTypeNode } from '../ast/ast';
5
+ import { ConfigurationData, EventConfiguration } from '../router-configuration/router-configuration';
7
6
  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';
7
+ import { FieldData, ParentDefinitionData, ParentWithFieldsData, PersistedDirectiveDefinitionData, SchemaData } from '../schema-building/type-definition-data';
8
+ import { ObjectExtensionData, ParentExtensionData } from '../schema-building/type-extension-data';
9
+ import { MultiGraph } from 'graphology';
10
+ import { ObjectLikeTypeNode } from '../schema-building/ast';
10
11
  export type NormalizationResult = {
11
12
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
12
- configurationDataMap: ConfigurationDataByTypeName;
13
+ concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
14
+ configurationDataByParentTypeName: Map<string, ConfigurationData>;
13
15
  entityInterfaces: Map<string, EntityInterfaceSubgraphData>;
14
16
  entityContainerByTypeName: EntityContainerByTypeName;
15
- parentExtensionDataByTypeName: Map<string, ParentExtensionData>;
17
+ parentDefinitionDataByTypeName: Map<string, ParentDefinitionData>;
18
+ parentExtensionDataByTypeName: Map<string, ObjectExtensionData>;
19
+ originalTypeNameByRenamedTypeName: Map<string, string>;
16
20
  isVersionTwo: boolean;
17
21
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
18
22
  operationTypes: Map<string, OperationTypeNode>;
19
23
  overridesByTargetSubgraphName: Map<string, Map<string, Set<string>>>;
20
24
  parentDataByTypeName: Map<string, ParentDefinitionData>;
25
+ persistedDirectiveDefinitionDataByDirectiveName: Map<string, PersistedDirectiveDefinitionData>;
21
26
  schema: GraphQLSchema;
22
27
  subgraphAST: DocumentNode;
23
28
  subgraphString: string;
@@ -28,24 +33,27 @@ export type NormalizationResultContainer = {
28
33
  };
29
34
  export type BatchNormalizationContainer = {
30
35
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
36
+ concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
31
37
  entityContainerByTypeName: EntityContainerByTypeName;
38
+ graph: MultiGraph;
32
39
  internalSubgraphBySubgraphName: Map<string, InternalSubgraph>;
33
40
  errors?: Error[];
34
41
  warnings?: string[];
35
42
  };
36
43
  export declare function normalizeSubgraphFromString(subgraphSDL: string): NormalizationResultContainer;
37
- export declare function normalizeSubgraph(document: DocumentNode, subgraphName?: string): NormalizationResultContainer;
44
+ export declare function normalizeSubgraph(document: DocumentNode, graph?: MultiGraph, subgraphName?: string): NormalizationResultContainer;
38
45
  export declare class NormalizationFactory {
39
- abstractToConcreteTypeNames: Map<string, Set<string>>;
40
- directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>;
41
46
  argumentName: string;
42
47
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
43
48
  childName: string;
44
- configurationDataMap: Map<string, ConfigurationData>;
49
+ concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
50
+ configurationDataByParentTypeName: Map<string, ConfigurationData>;
45
51
  customDirectiveDefinitions: Map<string, DirectiveDefinitionNode>;
52
+ directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>;
46
53
  errors: Error[];
47
54
  entityContainerByTypeName: EntityContainerByTypeName;
48
55
  entityInterfaces: Map<string, EntityInterfaceSubgraphData>;
56
+ graph: MultiGraph;
49
57
  parentExtensionDataByTypeName: Map<string, ParentExtensionData>;
50
58
  interfaceTypeNamesWithAuthorizationDirectives: Set<string>;
51
59
  isCurrentParentExtension: boolean;
@@ -57,9 +65,10 @@ export declare class NormalizationFactory {
57
65
  lastChildNodeKind: Kind;
58
66
  leafTypeNamesWithAuthorizationDirectives: Set<string>;
59
67
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
60
- operationTypeNames: Map<string, OperationTypeNode>;
68
+ operationTypeNodeByTypeName: Map<string, OperationTypeNode>;
69
+ originalTypeNameByRenamedTypeName: Map<string, string>;
61
70
  parentDefinitionDataByTypeName: Map<string, ParentDefinitionData>;
62
- parentTypeName: string;
71
+ originalParentTypeName: string;
63
72
  parentsWithChildArguments: Set<string>;
64
73
  eventsConfigurations: Map<string, EventConfiguration[]>;
65
74
  overridesByTargetSubgraphName: Map<string, Map<string, Set<string>>>;
@@ -67,18 +76,17 @@ export declare class NormalizationFactory {
67
76
  schemaDefinition: SchemaData;
68
77
  referencedDirectiveNames: Set<string>;
69
78
  referencedTypeNames: Set<string>;
79
+ renamedParentTypeName: string;
70
80
  warnings: string[];
71
- subgraphName?: string;
72
- constructor(subgraphName?: string);
81
+ subgraphName: string;
82
+ constructor(graph: MultiGraph, subgraphName?: string);
73
83
  validateInputNamedType(namedType: string): InputValidationContainer;
74
- extractArguments(node: FieldDefinitionNode, argumentDataByArgumentName: Map<string, MutableInputValueDefinitionNode>, fieldPath: string): Map<string, MutableInputValueDefinitionNode>;
75
84
  validateArguments(fieldData: FieldData, fieldPath: string): void;
76
85
  getAuthorizationData(node: InterfaceTypeNode | ObjectTypeNode): AuthorizationData | undefined;
77
86
  extractDirectivesAndAuthorization(node: EnumTypeNode | FieldDefinitionNode | ScalarTypeNode, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
78
87
  mergeUniqueInterfaces(extensionInterfaces: Set<string>, interfaces: Set<string>, typeName: string): void;
79
88
  handleInterfaceObject(node: ObjectTypeDefinitionNode): void;
80
- handleExtensionWithFields(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): false | void;
81
- isTypeValidImplementation(originalType: TypeNode, implementationType: TypeNode): boolean;
89
+ handleExtensionWithFields(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode, isRootType?: boolean): false | void;
82
90
  extractKeyFieldSets(node: ObjectLikeTypeNode, fieldSetContainer: FieldSetContainer): void;
83
91
  validateInterfaceImplementations(container: ParentWithFieldsData): void;
84
92
  handleOverrideDeclaration(node: DirectiveNode, hostPath: string, errorMessages: string[]): void;