@wundergraph/composition 0.34.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 (46) 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 +3 -1
  12. package/dist/index.js +3 -1
  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.d.ts +1 -0
  35. package/dist/utils/composition-version.js +5 -0
  36. package/dist/utils/composition-version.js.map +1 -0
  37. package/dist/utils/constants.d.ts +25 -3
  38. package/dist/utils/constants.js +200 -134
  39. package/dist/utils/constants.js.map +1 -1
  40. package/dist/utils/string-constants.d.ts +14 -0
  41. package/dist/utils/string-constants.js +30 -3
  42. package/dist/utils/string-constants.js.map +1 -1
  43. package/dist/utils/utils.d.ts +2 -1
  44. package/dist/utils/utils.js +7 -2
  45. package/dist/utils/utils.js.map +1 -1
  46. package/package.json +5 -3
@@ -1,5 +1,23 @@
1
- import { ConstDirectiveNode, ConstValueNode, Kind, NamedTypeNode, OperationTypeDefinitionNode, OperationTypeNode, StringValueNode } from 'graphql';
1
+ import { ConstDirectiveNode, ConstValueNode, DirectiveDefinitionNode, Kind, NamedTypeNode, OperationTypeDefinitionNode, OperationTypeNode, StringValueNode, TypeNode } from 'graphql';
2
2
  import { MutableEnumNode, MutableEnumValueNode, MutableFieldNode, MutableInputObjectNode, MutableInputValueNode, MutableInterfaceNode, MutableObjectNode, MutableScalarNode, MutableTypeNode, MutableUnionNode } from './ast';
3
+ export type ArgumentData = {
4
+ name: string;
5
+ typeNode: TypeNode;
6
+ defaultValue?: ConstValueNode;
7
+ };
8
+ export type ConfigureDescriptionData = {
9
+ propagate: boolean;
10
+ description: string;
11
+ };
12
+ export type DirectiveDefinitionData = {
13
+ argumentTypeNodeByArgumentName: Map<string, ArgumentData>;
14
+ isRepeatable: boolean;
15
+ locations: Set<string>;
16
+ name: string;
17
+ node: DirectiveDefinitionNode;
18
+ optionalArgumentNames: Set<string>;
19
+ requiredArgumentNames: Set<string>;
20
+ };
3
21
  export declare enum ExtensionType {
4
22
  EXTENDS = 0,
5
23
  NONE = 1,
@@ -7,6 +25,7 @@ export declare enum ExtensionType {
7
25
  }
8
26
  export type EnumDefinitionData = {
9
27
  appearances: number;
28
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
10
29
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
11
30
  enumValueDataByValueName: Map<string, EnumValueData>;
12
31
  extensionType: ExtensionType;
@@ -19,7 +38,9 @@ export type EnumDefinitionData = {
19
38
  };
20
39
  export type EnumValueData = {
21
40
  appearances: number;
41
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
22
42
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
43
+ kind: Kind.ENUM_VALUE_DEFINITION;
23
44
  name: string;
24
45
  node: MutableEnumValueNode;
25
46
  parentTypeName: string;
@@ -29,10 +50,12 @@ export type EnumValueData = {
29
50
  };
30
51
  export type FieldData = {
31
52
  argumentDataByArgumentName: Map<string, InputValueData>;
53
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
32
54
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
33
55
  isExternalBySubgraphName: Map<string, boolean>;
34
56
  isInaccessible: boolean;
35
57
  isShareableBySubgraphName: Map<string, boolean>;
58
+ kind: Kind.FIELD_DEFINITION;
36
59
  name: string;
37
60
  namedTypeName: string;
38
61
  node: MutableFieldNode;
@@ -44,6 +67,7 @@ export type FieldData = {
44
67
  description?: StringValueNode;
45
68
  };
46
69
  export type InputObjectDefinitionData = {
70
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
47
71
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
48
72
  extensionType: ExtensionType;
49
73
  inputValueDataByValueName: Map<string, InputValueData>;
@@ -56,9 +80,11 @@ export type InputObjectDefinitionData = {
56
80
  description?: StringValueNode;
57
81
  };
58
82
  export type InputValueData = {
83
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
59
84
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
60
85
  includeDefaultValue: boolean;
61
86
  isArgument: boolean;
87
+ kind: Kind.ARGUMENT | Kind.INPUT_VALUE_DEFINITION;
62
88
  name: string;
63
89
  node: MutableInputValueNode;
64
90
  originalPath: string;
@@ -71,6 +97,7 @@ export type InputValueData = {
71
97
  description?: StringValueNode;
72
98
  };
73
99
  export type InterfaceDefinitionData = {
100
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
74
101
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
75
102
  extensionType: ExtensionType;
76
103
  fieldDataByFieldName: Map<string, FieldData>;
@@ -85,6 +112,7 @@ export type InterfaceDefinitionData = {
85
112
  description?: StringValueNode;
86
113
  };
87
114
  export type ObjectDefinitionData = {
115
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
88
116
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
89
117
  extensionType: ExtensionType;
90
118
  fieldDataByFieldName: Map<string, FieldData>;
@@ -115,6 +143,7 @@ export type PersistedDirectivesData = {
115
143
  tags: Map<string, ConstDirectiveNode>;
116
144
  };
117
145
  export type ScalarDefinitionData = {
146
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
118
147
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
119
148
  extensionType: ExtensionType;
120
149
  kind: Kind.SCALAR_TYPE_DEFINITION;
@@ -126,11 +155,12 @@ export type ScalarDefinitionData = {
126
155
  export type SchemaData = {
127
156
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
128
157
  kind: Kind.SCHEMA_DEFINITION;
129
- typeName: string;
158
+ name: string;
130
159
  operationTypes: Map<OperationTypeNode, OperationTypeDefinitionNode>;
131
160
  description?: StringValueNode;
132
161
  };
133
162
  export type UnionDefinitionData = {
163
+ configureDescriptionDataBySubgraphName: Map<string, ConfigureDescriptionData>;
134
164
  directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
135
165
  extensionType: ExtensionType;
136
166
  kind: Kind.UNION_TYPE_DEFINITION;
@@ -145,3 +175,7 @@ export type ChildData = EnumValueData | FieldData | InputValueData;
145
175
  export type CompositeOutputData = InterfaceDefinitionData | ObjectDefinitionData;
146
176
  export type DefinitionData = EnumDefinitionData | EnumValueData | FieldData | InputObjectDefinitionData | InputValueData | InterfaceDefinitionData | ObjectDefinitionData | PersistedDirectiveDefinitionData | ScalarDefinitionData | UnionDefinitionData;
147
177
  export type NodeData = ParentDefinitionData | ChildData;
178
+ export interface X {
179
+ directivesByDirectiveName: Map<string, ConstDirectiveNode[]>;
180
+ name: string;
181
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"type-definition-data.js","sourceRoot":"","sources":["../../src/schema-building/type-definition-data.ts"],"names":[],"mappings":";;;AAsBA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,iDAAI,CAAA;IACJ,iDAAI,CAAA;AACN,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
1
+ {"version":3,"file":"type-definition-data.js","sourceRoot":"","sources":["../../src/schema-building/type-definition-data.ts"],"names":[],"mappings":";;;AA8CA,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,uDAAO,CAAA;IACP,iDAAI,CAAA;IACJ,iDAAI,CAAA;AACN,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB"}
@@ -1,7 +1,7 @@
1
- import { BooleanValueNode, ConstDirectiveNode, DirectiveDefinitionNode, EnumValueDefinitionNode, EnumValueNode, FieldDefinitionNode, FloatValueNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, IntValueNode, Kind, NullValueNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, SchemaDefinitionNode, StringValueNode, TypeNode } from 'graphql';
2
- import { CompositeOutputData, DefinitionData, EnumDefinitionData, EnumValueData, FieldData, InputObjectDefinitionData, InputValueData, NodeData, ParentDefinitionData, PersistedDirectiveDefinitionData, PersistedDirectivesData, ScalarDefinitionData, SchemaData, UnionDefinitionData } from './type-definition-data';
1
+ import { BooleanValueNode, ConstDirectiveNode, ConstValueNode, DirectiveDefinitionNode, EnumValueDefinitionNode, EnumValueNode, FieldDefinitionNode, FloatValueNode, InputValueDefinitionNode, IntValueNode, Kind, NullValueNode, OperationTypeNode, StringValueNode, TypeNode } from 'graphql';
2
+ import { ChildData, CompositeOutputData, DefinitionData, EnumDefinitionData, EnumValueData, FieldData, InputValueData, NodeData, ParentDefinitionData, PersistedDirectiveDefinitionData, PersistedDirectivesData, ScalarDefinitionData } from './type-definition-data';
3
3
  import { MutableFieldNode, MutableInputValueNode, MutableTypeDefinitionNode } from './ast';
4
- import { InputObjectTypeNode, InterfaceTypeNode, ObjectTypeNode, SchemaNode, UnionTypeNode } from '../ast/utils';
4
+ import { ObjectTypeNode } from '../ast/utils';
5
5
  import { AuthorizationData } from '../utils/utils';
6
6
  import { FieldConfiguration, FieldSetCondition, SubscriptionFilterValue } from '../router-configuration/router-configuration';
7
7
  export declare function newPersistedDirectivesData(): PersistedDirectivesData;
@@ -10,36 +10,25 @@ type IsNodeExternalOrShareableResult = {
10
10
  isShareable: boolean;
11
11
  };
12
12
  export declare function isNodeExternalOrShareable(node: ObjectTypeNode | FieldDefinitionNode, areAllFieldsShareable: boolean, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>): IsNodeExternalOrShareableResult;
13
- export declare function getDefinedArgumentsForDirective(directiveNode: ConstDirectiveNode, argumentTypeNodeByArgumentName: Map<string, TypeNode>, requiredArguments: Set<string>, hostPath: string, errorMessages: string[]): Set<string>;
14
- export declare function getDirectiveValidationErrors(directiveNode: ConstDirectiveNode, hostKind: Kind, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, handledRepeatedDirectivesByHostPath: Map<string, Set<string>>, hostPath: string, isArgument?: boolean): string[];
15
- export declare function extractDirectives(node: EnumValueDefinitionNode | InputObjectTypeNode | InputValueDefinitionNode | InterfaceTypeNode | ObjectTypeNode | SchemaNode | UnionTypeNode, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, handledRepeatedDirectivesByHostPath: Map<string, Set<string>>, hostPath: string, isArgument?: boolean): Map<string, ConstDirectiveNode[]>;
16
- export declare function extractArguments(argumentDataByArgumentName: Map<string, InputValueData>, node: FieldDefinitionNode, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, handledRepeatedDirectivesByHostPath: Map<string, Set<string>>, parentsWithChildArguments: Set<string>, originalParentTypeName: string, renamedParentTypeName: string, subgraphName: string): Map<string, InputValueData>;
17
13
  export declare function isTypeRequired(node: TypeNode): boolean;
14
+ export declare function areDefaultValuesCompatible(typeNode: TypeNode, incomingDefaultValue: ConstValueNode): boolean;
18
15
  export declare function compareAndValidateInputValueDefaultValues(existingData: InputValueData, incomingData: InputValueData, errors: Error[]): void;
19
- export declare function addEnumValueDataByNode(enumValueDataByValueName: Map<string, EnumValueData>, node: EnumValueDefinitionNode, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, handledRepeatedDirectivesByHostPath: Map<string, Set<string>>, parentTypeName: string, subgraphName: string): void;
20
- export declare function addInheritedDirectivesToFieldData(parentDirectivesByDirectiveName: Map<string, ConstDirectiveNode[]>, fieldDirectivesByDirectiveName: Map<string, ConstDirectiveNode[]>): Map<string, ConstDirectiveNode[]>;
21
- export declare function addFieldDataByNode(fieldDataByFieldName: Map<string, FieldData>, node: FieldDefinitionNode, argumentDataByArgumentName: Map<string, InputValueData>, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, originalParentTypeName: string, renamedParentTypeName: string, subgraphName: string, isSubgraphVersionTwo: boolean, errors: Error[]): FieldData;
22
- export declare function addInputValueDataByNode(inputValueDataByValueName: Map<string, InputValueData>, node: InputValueDefinitionNode, directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, handledRepeatedDirectivesByHostPath: Map<string, Set<string>>, originalPath: string, subgraphName: string, errors: Error[], renamedPath?: string): void;
23
- export declare function addPersistedDirectiveDefinitionDataByNode(persistedDirectiveDefinitionDataByDirectiveName: Map<string, PersistedDirectiveDefinitionData>, node: DirectiveDefinitionNode, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, handledRepeatedDirectivesByHostPath: Map<string, Set<string>>, executableLocations: Set<string>, subgraphName: string): void;
24
16
  export declare function setMutualExecutableLocations(persistedDirectiveDefinitionData: PersistedDirectiveDefinitionData, incomingExecutableLocations: Set<string>): void;
25
17
  export declare function isTypeNameRootType(typeName: string, operationByTypeName: Map<string, OperationTypeNode>): boolean;
26
18
  export declare function getRenamedRootTypeName(typeName: string, operationByTypeName: Map<string, OperationTypeNode>): string;
27
- export declare function getEnumNodeByData(enumDefinitionData: EnumDefinitionData, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, authorizationDataByParentTypeName: Map<string, AuthorizationData>): import("./ast").MutableEnumNode;
28
- export declare function getInputObjectNodeByData(inputObjectDefinitionData: InputObjectDefinitionData, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, authorizationDataByParentTypeName: Map<string, AuthorizationData>): import("./ast").MutableInputObjectNode;
29
- export declare function getCompositeOutputNodeByData(compositeOutputData: CompositeOutputData, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, authorizationDataByParentTypeName: Map<string, AuthorizationData>): ObjectTypeDefinitionNode | InterfaceTypeDefinitionNode | ObjectTypeExtensionNode;
30
- export declare function getScalarNodeByData(scalarDefinitionData: ScalarDefinitionData, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>): import("./ast").MutableScalarNode;
31
- export declare function getSchemaNodeByData(schemaData: SchemaData, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>): SchemaDefinitionNode;
32
- export declare function getUnionNodeByData(unionDefinitionData: UnionDefinitionData, errors: Error[], directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>): import("./ast").MutableUnionNode;
33
- export declare function removeInheritableDirectivesFromParentWithFieldsData(parentData: ParentDefinitionData): void;
19
+ type ChildDefinitionNode = EnumValueDefinitionNode | FieldDefinitionNode | InputValueDefinitionNode;
20
+ export declare function childMapToValueArray<V extends ChildData, N extends ChildDefinitionNode = V['node']>(map: Map<string, V>, authorizationDataByParentTypeName: Map<string, AuthorizationData>): N[];
21
+ export declare function removeInheritableDirectivesFromObjectParent(parentData: ParentDefinitionData): void;
22
+ export declare function removeIgnoredDirectives(data: CompositeOutputData | EnumDefinitionData | ScalarDefinitionData): void;
34
23
  export declare function setLongestDescription(existingData: DefinitionData, incomingData: DefinitionData): void;
35
24
  export declare function isParentDataRootType(parentData: ParentDefinitionData): boolean;
36
25
  export declare function isParentDataInterfaceType(parentData: ParentDefinitionData): boolean;
37
26
  export declare function setParentDataExtensionType(existingData: ParentDefinitionData, incomingData: ParentDefinitionData): void;
38
27
  export declare function extractPersistedDirectives(persistedDirectivesData: PersistedDirectivesData, directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, persistedDirectiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>): PersistedDirectivesData;
39
28
  export declare function pushAuthorizationDirectives(fieldData: FieldData, authorizationData?: AuthorizationData): void;
29
+ export declare function generateDeprecatedDirective(reason: string): ConstDirectiveNode;
40
30
  export declare function getClientPersistedDirectiveNodes<T extends NodeData>(nodeData: T): ConstDirectiveNode[];
41
31
  export declare function getNodeForRouterSchemaByData<T extends ParentDefinitionData | EnumValueData>(data: T, persistedDirectiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, errors: Error[]): T['node'];
42
- export declare function getNodeWithPersistedDirectivesByFieldData(fieldData: FieldData, persistedDirectiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, argumentNodes: MutableInputValueNode[], errors: Error[]): MutableFieldNode;
43
32
  export declare function getClientSchemaFieldNodeByFieldData(fieldData: FieldData): MutableFieldNode;
44
33
  export declare function getNodeWithPersistedDirectivesByInputValueData(inputValueData: InputValueData, persistedDirectiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, errors: Error[]): MutableInputValueNode;
45
34
  export declare function getValidFieldArgumentNodes(fieldData: FieldData, persistedDirectiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>, fieldConfigurationByFieldPath: Map<string, FieldConfiguration>, errors: Error[]): MutableInputValueNode[];
@@ -72,4 +61,5 @@ export type ConditionalFieldData = {
72
61
  requiredBy: Array<FieldSetCondition>;
73
62
  };
74
63
  export declare function newConditionalFieldData(): ConditionalFieldData;
64
+ export declare function getDefinitionDataCoords(data: NodeData, useRenamedPath: boolean): string;
75
65
  export {};