@wundergraph/composition 0.17.1 → 0.18.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 (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 +8 -12
  7. package/dist/errors/errors.js +27 -29
  8. package/dist/errors/errors.js.map +1 -1
  9. package/dist/federation/federation-factory.d.ts +7 -6
  10. package/dist/federation/federation-factory.js +38 -20
  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 +24 -27
  19. package/dist/normalization/normalization-factory.js +256 -961
  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 +71 -166
  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 -65
  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 +8 -6
  52. package/dist/utils/utils.js +72 -30
  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
@@ -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';
4
- import { AuthorizationData, EntityContainerByTypeName, EntityInterfaceSubgraphData } from '../utils/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
+ 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,48 +46,43 @@ 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>;
50
+ interfaceTypeNamesWithAuthorizationDirectives: Set<string>;
48
51
  isCurrentParentExtension: boolean;
49
- isCurrentParentRootType: boolean;
50
52
  isSubgraphVersionTwo: boolean;
51
53
  fieldSetContainerByTypeName: Map<string, FieldSetContainer>;
54
+ heirFieldAuthorizationDataByTypeName: Map<string, FieldAuthorizationData[]>;
52
55
  handledRepeatedDirectivesByHostPath: Map<string, Set<string>>;
53
56
  lastParentNodeKind: Kind;
54
57
  lastChildNodeKind: Kind;
55
58
  leafTypeNamesWithAuthorizationDirectives: Set<string>;
56
59
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
57
60
  operationTypeNames: Map<string, OperationTypeNode>;
58
- parentContainerByTypeName: ParentContainerByTypeName;
61
+ parentDefinitionDataByTypeName: Map<string, ParentDefinitionData>;
59
62
  parentTypeName: string;
60
63
  parentsWithChildArguments: Set<string>;
61
64
  eventsConfigurations: Map<string, EventConfiguration[]>;
62
65
  overridesByTargetSubgraphName: Map<string, Map<string, Set<string>>>;
63
- schemaDefinition: SchemaContainer;
64
- referencedDirectives: Set<string>;
66
+ invalidOrScopesHostPaths: Set<string>;
67
+ schemaDefinition: SchemaData;
68
+ referencedDirectiveNames: Set<string>;
65
69
  referencedTypeNames: Set<string>;
66
70
  warnings: string[];
67
71
  subgraphName?: string;
68
72
  constructor(subgraphName?: string);
69
73
  validateInputNamedType(namedType: string): InputValidationContainer;
70
- extractArguments(node: FieldDefinitionNode, argumentByName: Map<string, MutableInputValueDefinitionNode>, fieldPath: string): Map<string, MutableInputValueDefinitionNode>;
71
- validateArguments(fieldContainer: FieldContainer, fieldPath: string): void;
72
- extractDirectives(node: EnumValueDefinitionNode | InputObjectTypeNode | InputValueDefinitionNode | SchemaNode | UnionTypeNode, map: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
73
- extractDirectivesAndAuthorization(node: EnumTypeNode | FieldDefinitionNode | InterfaceTypeNode | ObjectTypeNode | ScalarTypeNode, map: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
74
- extractUniqueUnionMembers(members: NamedTypeNode[], map: Map<string, NamedTypeNode>): Map<string, NamedTypeNode>;
74
+ extractArguments(node: FieldDefinitionNode, argumentDataByArgumentName: Map<string, MutableInputValueDefinitionNode>, fieldPath: string): Map<string, MutableInputValueDefinitionNode>;
75
+ validateArguments(fieldData: FieldData, fieldPath: string): void;
76
+ getAuthorizationData(node: InterfaceTypeNode | ObjectTypeNode): AuthorizationData | undefined;
77
+ extractDirectivesAndAuthorization(node: EnumTypeNode | FieldDefinitionNode | ScalarTypeNode, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
75
78
  mergeUniqueInterfaces(extensionInterfaces: Set<string>, interfaces: Set<string>, typeName: string): void;
76
- mergeUniqueUnionMembers(baseUnion: UnionContainer, extensionUnion?: UnionExtensionContainer): void;
77
- mergeDirectives(baseTypeDirectives: Map<string, ConstDirectiveNode[]>, extension?: ExtensionContainer): void;
78
- getValidatedAndNormalizedParentDirectives(parent: ParentContainer | SchemaContainer | ObjectExtensionContainer): ConstDirectiveNode[];
79
- convertKindForExtension(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): Kind.INTERFACE_TYPE_EXTENSION | Kind.OBJECT_TYPE_EXTENSION;
80
79
  handleInterfaceObject(node: ObjectTypeDefinitionNode): void;
81
- handleObjectLikeExtension(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): false | undefined;
82
- validateChildDirectives(child: ChildContainer, hostPath: string): void;
80
+ handleExtensionWithFields(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode): false | void;
83
81
  isTypeValidImplementation(originalType: TypeNode, implementationType: TypeNode): boolean;
84
- canContainEventDirectives(): boolean;
85
82
  extractKeyFieldSets(node: ObjectLikeTypeNode, fieldSetContainer: FieldSetContainer): void;
86
- validateInterfaceImplementations(container: ObjectLikeContainer): void;
87
- handleOverride(node: DirectiveNode): void;
88
- extractEventDirectives(node: FieldDefinitionNode): void;
83
+ validateInterfaceImplementations(container: ParentWithFieldsData): void;
84
+ handleOverrideDeclaration(node: DirectiveNode, hostPath: string, errorMessages: string[]): void;
85
+ extractEventDirectivesToConfiguration(node: FieldDefinitionNode): void;
89
86
  normalize(document: DocumentNode): NormalizationResultContainer;
90
87
  }
91
88
  export declare function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationContainer;