@wundergraph/composition 0.35.0 → 0.36.0

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 (44) hide show
  1. package/dist/ast/utils.js.map +1 -1
  2. package/dist/errors/errors.d.ts +16 -16
  3. package/dist/errors/errors.js +81 -82
  4. package/dist/errors/errors.js.map +1 -1
  5. package/dist/federation/federation-factory.d.ts +11 -3
  6. package/dist/federation/federation-factory.js +137 -10
  7. package/dist/federation/federation-factory.js.map +1 -1
  8. package/dist/federation/utils.d.ts +2 -1
  9. package/dist/federation/utils.js +11 -0
  10. package/dist/federation/utils.js.map +1 -1
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +1 -0
  13. package/dist/index.js.map +1 -1
  14. package/dist/normalization/directive-definition-data.d.ts +25 -0
  15. package/dist/normalization/directive-definition-data.js +559 -0
  16. package/dist/normalization/directive-definition-data.js.map +1 -0
  17. package/dist/normalization/normalization-factory.d.ts +36 -11
  18. package/dist/normalization/normalization-factory.js +678 -124
  19. package/dist/normalization/normalization-factory.js.map +1 -1
  20. package/dist/normalization/utils.d.ts +27 -4
  21. package/dist/normalization/utils.js +31 -114
  22. package/dist/normalization/utils.js.map +1 -1
  23. package/dist/normalization/walkers.js +71 -68
  24. package/dist/normalization/walkers.js.map +1 -1
  25. package/dist/schema-building/ast.d.ts +1 -0
  26. package/dist/schema-building/ast.js +9 -0
  27. package/dist/schema-building/ast.js.map +1 -1
  28. package/dist/schema-building/type-definition-data.d.ts +36 -2
  29. package/dist/schema-building/type-definition-data.js.map +1 -1
  30. package/dist/schema-building/utils.d.ts +10 -20
  31. package/dist/schema-building/utils.js +54 -333
  32. package/dist/schema-building/utils.js.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/dist/utils/composition-version.js +1 -1
  35. package/dist/utils/constants.d.ts +25 -3
  36. package/dist/utils/constants.js +200 -134
  37. package/dist/utils/constants.js.map +1 -1
  38. package/dist/utils/string-constants.d.ts +14 -0
  39. package/dist/utils/string-constants.js +30 -3
  40. package/dist/utils/string-constants.js.map +1 -1
  41. package/dist/utils/utils.d.ts +2 -1
  42. package/dist/utils/utils.js +7 -2
  43. package/dist/utils/utils.js.map +1 -1
  44. package/package.json +3 -2
@@ -1,16 +1,15 @@
1
- import { ConstDirectiveNode, DefinitionNode, DirectiveDefinitionNode, DirectiveNode, DocumentNode, EnumTypeDefinitionNode, EnumTypeExtensionNode, FieldDefinitionNode, GraphQLSchema, InputObjectTypeExtensionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, ScalarTypeDefinitionNode, ScalarTypeExtensionNode, TypeDefinitionNode, TypeExtensionNode } from 'graphql';
2
- import { EnumTypeNode, InputObjectTypeNode, InterfaceTypeNode, ObjectTypeNode, ScalarTypeNode } from '../ast/utils';
3
- import { FieldSetData, InputValidationContainer, KeyFieldSetData } from './utils';
1
+ import { ConstDirectiveNode, ConstValueNode, DefinitionNode, DirectiveDefinitionNode, DocumentNode, EnumTypeDefinitionNode, EnumTypeExtensionNode, EnumValueDefinitionNode, FieldDefinitionNode, GraphQLSchema, InputObjectTypeExtensionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, ScalarTypeDefinitionNode, ScalarTypeExtensionNode, SchemaDefinitionNode, TypeDefinitionNode, TypeExtensionNode, TypeNode, UnionTypeDefinitionNode, UnionTypeExtensionNode } from 'graphql';
2
+ import { InputObjectTypeNode, InterfaceTypeNode, ObjectTypeNode, SchemaNode } from '../ast/utils';
3
+ import { ExtractArgumentDataResult, FieldSetData, HandleOverrideDirectiveParams, HandleRequiresScopesDirectiveParams, InputValidationContainer, KeyFieldSetData, ValidateDirectiveParams } from './utils';
4
4
  import { AuthorizationData, EntityData, EntityInterfaceSubgraphData, FieldAuthorizationData } from '../utils/utils';
5
5
  import { ConfigurationData, EventConfiguration, NatsEventType } from '../router-configuration/router-configuration';
6
6
  import { InternalSubgraph, Subgraph } from '../subgraph/subgraph';
7
7
  import { Warning } from '../warnings/warnings';
8
- import { CompositeOutputData, ExtensionType, FieldData, InputValueData, ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, SchemaData, UnionDefinitionData } from '../schema-building/type-definition-data';
8
+ import { CompositeOutputData, EnumDefinitionData, ExtensionType, FieldData, InputObjectDefinitionData, InputValueData, NodeData, ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, ScalarDefinitionData, SchemaData, UnionDefinitionData } from '../schema-building/type-definition-data';
9
9
  import { ConditionalFieldData } from '../schema-building/utils';
10
10
  import { CompositeOutputNode } from '../schema-building/ast';
11
11
  import { InvalidRootTypeFieldEventsDirectiveData } from '../errors/utils';
12
12
  import { Graph } from '../resolvability-graph/graph';
13
- import { NamedTypeNode, UnionTypeDefinitionNode, UnionTypeExtensionNode } from 'graphql/index';
14
13
  export type NormalizationResult = {
15
14
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
16
15
  concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
@@ -54,7 +53,9 @@ export declare class NormalizationFactory {
54
53
  conditionalFieldDataByCoordinates: Map<string, ConditionalFieldData>;
55
54
  configurationDataByParentTypeName: Map<string, ConfigurationData>;
56
55
  customDirectiveDefinitions: Map<string, DirectiveDefinitionNode>;
56
+ definedDirectiveNames: Set<string>;
57
57
  directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>;
58
+ directiveDefinitionDataByDirectiveName: Map<string, import("../schema-building/type-definition-data").DirectiveDefinitionData>;
58
59
  edfsDirectiveReferences: Set<string>;
59
60
  errors: Error[];
60
61
  entityDataByTypeName: Map<string, EntityData>;
@@ -63,12 +64,15 @@ export declare class NormalizationFactory {
63
64
  unvalidatedExternalFieldCoords: Set<string>;
64
65
  interfaceTypeNamesWithAuthorizationDirectives: Set<string>;
65
66
  internalGraph: Graph;
67
+ invalidConfigureDescriptionNodeDatas: Array<NodeData>;
68
+ invalidRepeatedDirectiveNameByCoords: Map<string, Set<string>>;
66
69
  isCurrentParentExtension: boolean;
70
+ isParentObjectExternal: boolean;
71
+ isParentObjectShareable: boolean;
67
72
  isSubgraphEventDrivenGraph: boolean;
68
73
  isSubgraphVersionTwo: boolean;
69
74
  fieldSetDataByTypeName: Map<string, FieldSetData>;
70
75
  heirFieldAuthorizationDataByTypeName: Map<string, FieldAuthorizationData[]>;
71
- handledRepeatedDirectivesByHostPath: Map<string, Set<string>>;
72
76
  lastParentNodeKind: Kind;
73
77
  lastChildNodeKind: Kind;
74
78
  leafTypeNamesWithAuthorizationDirectives: Set<string>;
@@ -81,7 +85,7 @@ export declare class NormalizationFactory {
81
85
  parentsWithChildArguments: Set<string>;
82
86
  overridesByTargetSubgraphName: Map<string, Map<string, Set<string>>>;
83
87
  invalidOrScopesHostPaths: Set<string>;
84
- schemaDefinition: SchemaData;
88
+ schemaData: SchemaData;
85
89
  referencedDirectiveNames: Set<string>;
86
90
  referencedTypeNames: Set<string>;
87
91
  renamedParentTypeName: string;
@@ -92,14 +96,26 @@ export declare class NormalizationFactory {
92
96
  validateInputNamedType(namedType: string): InputValidationContainer;
93
97
  validateArguments(fieldData: FieldData, fieldPath: string): void;
94
98
  getAuthorizationData(node: InterfaceTypeNode | ObjectTypeNode): AuthorizationData | undefined;
95
- extractDirectivesAndAuthorization(node: EnumTypeNode | FieldDefinitionNode | ScalarTypeNode, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
96
99
  isTypeNameRootType(typeName: string): boolean;
97
- extractDirectives(node: TypeDefinitionNode | TypeExtensionNode, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, hostPath: string, isArgument?: boolean): Map<string, ConstDirectiveNode[]>;
100
+ isArgumentValueValid(typeNode: TypeNode, argumentValue: ConstValueNode): boolean;
101
+ addInheritedDirectivesToFieldData(fieldDirectivesByDirectiveName: Map<string, Array<ConstDirectiveNode>>): Map<string, ConstDirectiveNode[]>;
102
+ extractDirectives(node: TypeDefinitionNode | TypeExtensionNode | FieldDefinitionNode | InputValueDefinitionNode | EnumValueDefinitionNode | SchemaNode, directivesByDirectiveName: Map<string, Array<ConstDirectiveNode>>): Map<string, ConstDirectiveNode[]>;
103
+ validateDirective({ data, definitionData, directiveCoords, directiveNode, errorMessages, requiredArgumentNames, }: ValidateDirectiveParams): Array<string>;
104
+ validateDirectives(data: NodeData | SchemaData, directiveCoords: string): void;
98
105
  getNodeExtensionType(isRealExtension: boolean, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, isRootType?: boolean): ExtensionType;
99
106
  setParentDataExtensionType(parentData: ParentDefinitionData, incomingExtensionType: ExtensionType): void;
107
+ extractConfigureDescriptionData(data: NodeData, directiveNode: ConstDirectiveNode): void;
108
+ extractConfigureDescriptionsData(data: NodeData): void;
100
109
  extractImplementedInterfaceTypeNames(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode | ObjectTypeDefinitionNode | ObjectTypeExtensionNode, implementedInterfaceTypeNames: Set<string>): Set<string>;
101
- updateCompositeOutputDataByNode(node: CompositeOutputNode, parentData: CompositeOutputData, directivesByDirectiveName: Map<string, Array<ConstDirectiveNode>>, extensionType: ExtensionType): void;
110
+ updateCompositeOutputDataByNode(node: CompositeOutputNode, data: CompositeOutputData, extensionType: ExtensionType): void;
102
111
  addConcreteTypeNamesForImplementedInterfaces(interfaceTypeNames: Set<string>, concreteTypeName: string): void;
112
+ extractArguments(argumentDataByArgumentName: Map<string, InputValueData>, node: FieldDefinitionNode): Map<string, InputValueData>;
113
+ addPersistedDirectiveDefinitionDataByNode(persistedDirectiveDefinitionDataByDirectiveName: Map<string, PersistedDirectiveDefinitionData>, node: DirectiveDefinitionNode, executableLocations: Set<string>): void;
114
+ extractDirectiveLocations(node: DirectiveDefinitionNode, errorMessages: Array<string>): Set<string>;
115
+ extractArgumentData(argumentNodes: ReadonlyArray<InputValueDefinitionNode> | Array<InputValueDefinitionNode> | undefined, errorMessages: Array<string>): ExtractArgumentDataResult;
116
+ addDirectiveDefinitionDataByNode(node: DirectiveDefinitionNode): boolean;
117
+ addFieldDataByNode(fieldDataByFieldName: Map<string, FieldData>, node: FieldDefinitionNode, argumentDataByArgumentName: Map<string, InputValueData>, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>): FieldData;
118
+ addInputValueDataByNode(inputValueDataByValueName: Map<string, InputValueData>, node: InputValueDefinitionNode, originalPath: string, renamedPath?: string): void;
103
119
  upsertInterfaceDataByNode(node: InterfaceTypeDefinitionNode | InterfaceTypeExtensionNode, isRealExtension?: boolean): void;
104
120
  getRenamedRootTypeName(typeName: string): string;
105
121
  addInterfaceObjectFieldsByNode(node: ObjectTypeDefinitionNode | ObjectTypeExtensionNode): void;
@@ -111,7 +127,9 @@ export declare class NormalizationFactory {
111
127
  upsertUnionByNode(node: UnionTypeDefinitionNode | UnionTypeExtensionNode, isRealExtension?: boolean): void;
112
128
  extractKeyFieldSets(node: CompositeOutputNode, keyFieldSetData: KeyFieldSetData): void;
113
129
  validateInterfaceImplementations(data: CompositeOutputData): void;
114
- handleOverrideDeclaration(node: DirectiveNode, hostPath: string, errorMessages: string[]): void;
130
+ handleAuthenticatedDirective(data: NodeData | SchemaData, parentTypeName: string): void;
131
+ handleOverrideDirective({ data, directiveCoords, errorMessages, targetSubgraphName }: HandleOverrideDirectiveParams): void;
132
+ handleRequiresScopesDirective({ directiveCoords, orScopes, requiredScopes }: HandleRequiresScopesDirectiveParams): void;
115
133
  getKafkaPublishConfiguration(directive: ConstDirectiveNode, argumentDataByArgumentName: Map<string, InputValueData>, errorMessages: string[]): EventConfiguration | undefined;
116
134
  getKafkaSubscribeConfiguration(directive: ConstDirectiveNode, argumentDataByArgumentName: Map<string, InputValueData>, errorMessages: string[]): EventConfiguration | undefined;
117
135
  getNatsPublishAndRequestConfiguration(eventType: NatsEventType, directive: ConstDirectiveNode, argumentDataByArgumentName: Map<string, InputValueData>, errorMessages: string[]): EventConfiguration | undefined;
@@ -130,6 +148,13 @@ export declare class NormalizationFactory {
130
148
  addConcreteTypeNamesForUnion(node: UnionTypeDefinitionNode | UnionTypeExtensionNode): void;
131
149
  validateAndAddKeyToConfiguration(parentData: CompositeOutputData, keyFieldSetData: KeyFieldSetData): void;
132
150
  validateAndAddKeysToConfiguration(): void;
151
+ getValidFlattenedDirectiveArray(directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, directiveCoords: string): ConstDirectiveNode[];
152
+ getEnumNodeByData(enumDefinitionData: EnumDefinitionData): import("../schema-building/ast").MutableEnumNode;
153
+ getInputObjectNodeByData(inputObjectDefinitionData: InputObjectDefinitionData): import("../schema-building/ast").MutableInputObjectNode;
154
+ getCompositeOutputNodeByData(compositeOutputData: CompositeOutputData): ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | ObjectTypeExtensionNode;
155
+ getScalarNodeByData(scalarDefinitionData: ScalarDefinitionData): import("../schema-building/ast").MutableScalarNode;
156
+ getSchemaNodeByData(schemaData: SchemaData): SchemaDefinitionNode;
157
+ getUnionNodeByData(unionDefinitionData: UnionDefinitionData): import("../schema-building/ast").MutableUnionNode;
133
158
  normalize(document: DocumentNode): NormalizationResultContainer;
134
159
  }
135
160
  export declare function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationContainer;