@wundergraph/composition 0.37.0 → 0.37.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 (70) hide show
  1. package/README.md +41 -48
  2. package/dist/ast/utils.js +2 -2
  3. package/dist/ast/utils.js.map +1 -1
  4. package/dist/errors/errors.d.ts +9 -12
  5. package/dist/errors/errors.js +71 -68
  6. package/dist/errors/errors.js.map +1 -1
  7. package/dist/federation/types.d.ts +2 -2
  8. package/dist/index.d.ts +4 -2
  9. package/dist/index.js +4 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/normalization/normalization.d.ts +3 -1
  12. package/dist/normalization/normalization.js +8 -0
  13. package/dist/normalization/normalization.js.map +1 -1
  14. package/dist/normalization/types.d.ts +2 -2
  15. package/dist/resolvability-graph/graph-nodes.d.ts +1 -1
  16. package/dist/resolvability-graph/graph-nodes.js.map +1 -1
  17. package/dist/resolvability-graph/graph.d.ts +1 -2
  18. package/dist/resolvability-graph/graph.js.map +1 -1
  19. package/dist/resolvability-graph/utils.d.ts +1 -1
  20. package/dist/resolvability-graph/utils.js.map +1 -1
  21. package/dist/router-configuration/{router-configuration.d.ts → types.d.ts} +3 -4
  22. package/dist/router-configuration/types.js +3 -0
  23. package/dist/router-configuration/types.js.map +1 -0
  24. package/dist/router-configuration/utils.d.ts +3 -0
  25. package/dist/router-configuration/{router-configuration.js → utils.js} +9 -1
  26. package/dist/router-configuration/utils.js.map +1 -0
  27. package/dist/schema-building/types.d.ts +23 -7
  28. package/dist/schema-building/types.js.map +1 -1
  29. package/dist/schema-building/utils.d.ts +3 -6
  30. package/dist/schema-building/utils.js +11 -8
  31. package/dist/schema-building/utils.js.map +1 -1
  32. package/dist/subgraph/types.d.ts +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/dist/utils/composition-version.js +1 -1
  35. package/dist/utils/string-constants.d.ts +3 -2
  36. package/dist/utils/string-constants.js +5 -4
  37. package/dist/utils/string-constants.js.map +1 -1
  38. package/dist/utils/types.d.ts +38 -0
  39. package/dist/utils/utils.d.ts +0 -48
  40. package/dist/utils/utils.js +0 -10
  41. package/dist/utils/utils.js.map +1 -1
  42. package/dist/v1/federation/federation-factory.d.ts +4 -4
  43. package/dist/v1/federation/federation-factory.js +46 -35
  44. package/dist/v1/federation/federation-factory.js.map +1 -1
  45. package/dist/v1/federation/utils.d.ts +7 -8
  46. package/dist/v1/federation/utils.js +22 -20
  47. package/dist/v1/federation/utils.js.map +1 -1
  48. package/dist/v1/normalization/normalization-factory.d.ts +19 -22
  49. package/dist/v1/normalization/normalization-factory.js +568 -70
  50. package/dist/v1/normalization/normalization-factory.js.map +1 -1
  51. package/dist/v1/normalization/types.d.ts +49 -0
  52. package/dist/v1/normalization/types.js +3 -0
  53. package/dist/v1/normalization/types.js.map +1 -0
  54. package/dist/v1/normalization/utils.d.ts +7 -42
  55. package/dist/v1/normalization/utils.js +59 -382
  56. package/dist/v1/normalization/utils.js.map +1 -1
  57. package/dist/v1/normalization/walkers.js +36 -23
  58. package/dist/v1/normalization/walkers.js.map +1 -1
  59. package/dist/v1/utils/utils.d.ts +15 -12
  60. package/dist/v1/utils/utils.js +53 -47
  61. package/dist/v1/utils/utils.js.map +1 -1
  62. package/dist/v1/warnings/warnings.d.ts +4 -3
  63. package/dist/v1/warnings/warnings.js +47 -17
  64. package/dist/v1/warnings/warnings.js.map +1 -1
  65. package/dist/warnings/{warnings.js → types.js} +1 -1
  66. package/dist/warnings/types.js.map +1 -0
  67. package/package.json +2 -2
  68. package/dist/router-configuration/router-configuration.js.map +0 -1
  69. package/dist/warnings/warnings.js.map +0 -1
  70. /package/dist/warnings/{warnings.d.ts → types.d.ts} +0 -0
@@ -1,23 +1,14 @@
1
1
  import { ConstDirectiveNode, ConstValueNode, DefinitionNode, DirectiveDefinitionNode, DocumentNode, EnumValueDefinitionNode, FieldDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, SchemaDefinitionNode, TypeDefinitionNode, TypeExtensionNode, TypeNode } from 'graphql';
2
2
  import { EnumTypeNode, InputObjectTypeNode, InterfaceTypeNode, ObjectTypeNode, ScalarTypeNode, SchemaNode, UnionTypeNode } from '../../ast/utils';
3
- import { ExtractArgumentDataResult, FieldSetData, HandleOverrideDirectiveParams, HandleRequiresScopesDirectiveParams, InputValidationContainer, KeyFieldSetData, ValidateDirectiveParams } from './utils';
4
- import { ConfigurationData, EventConfiguration, NatsEventType } from '../../router-configuration/router-configuration';
3
+ import { ConfigurationData, EventConfiguration, NatsEventType, RequiredFieldConfiguration } from '../../router-configuration/types';
5
4
  import { AuthorizationData, CompositeOutputData, ConditionalFieldData, EntityData, EntityInterfaceSubgraphData, EnumDefinitionData, ExtensionType, FieldAuthorizationData, FieldData, InputObjectDefinitionData, InputValueData, NodeData, ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, ScalarDefinitionData, SchemaData, UnionDefinitionData } from '../../schema-building/types';
6
5
  import { CompositeOutputNode } from '../../schema-building/ast';
7
6
  import { InvalidRootTypeFieldEventsDirectiveData } from '../../errors/utils';
8
7
  import { Graph } from '../../resolvability-graph/graph';
9
- import { InternalSubgraph, Subgraph } from '../../subgraph/types';
10
- import { Warning } from '../../warnings/warnings';
8
+ import { Subgraph } from '../../subgraph/types';
9
+ import { Warning } from '../../warnings/types';
11
10
  import { BatchNormalizationResult, NormalizationResult } from '../../normalization/types';
12
- export type BatchNormalizationContainer = {
13
- authorizationDataByParentTypeName: Map<string, AuthorizationData>;
14
- concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
15
- entityDataByTypeName: Map<string, EntityData>;
16
- internalSubgraphBySubgraphName: Map<string, InternalSubgraph>;
17
- internalGraph: Graph;
18
- warnings: Array<Warning>;
19
- errors?: Array<Error>;
20
- };
11
+ import { ConditionalFieldSetValidationResult, ExtractArgumentDataResult, FieldSetData, FieldSetParentResult, HandleOverrideDirectiveParams, HandleRequiresScopesDirectiveParams, InputValidationContainer, KeyFieldSetData, ValidateDirectiveParams } from './types';
21
12
  export declare function normalizeSubgraphFromString(subgraphSDL: string, noLocation?: boolean): NormalizationResult;
22
13
  export declare function normalizeSubgraph(document: DocumentNode, subgraphName?: string, internalGraph?: Graph): NormalizationResult;
23
14
  export declare class NormalizationFactory {
@@ -25,8 +16,8 @@ export declare class NormalizationFactory {
25
16
  authorizationDataByParentTypeName: Map<string, AuthorizationData>;
26
17
  childName: string;
27
18
  concreteTypeNamesByAbstractTypeName: Map<string, Set<string>>;
28
- conditionalFieldDataByCoordinates: Map<string, ConditionalFieldData>;
29
- configurationDataByParentTypeName: Map<string, ConfigurationData>;
19
+ conditionalFieldDataByCoords: Map<string, ConditionalFieldData>;
20
+ configurationDataByTypeName: Map<string, ConfigurationData>;
30
21
  customDirectiveDefinitions: Map<string, DirectiveDefinitionNode>;
31
22
  definedDirectiveNames: Set<string>;
32
23
  directiveDefinitionByDirectiveName: Map<string, DirectiveDefinitionNode>;
@@ -36,7 +27,8 @@ export declare class NormalizationFactory {
36
27
  entityDataByTypeName: Map<string, EntityData>;
37
28
  entityInterfaceDataByTypeName: Map<string, EntityInterfaceSubgraphData>;
38
29
  eventsConfigurations: Map<string, EventConfiguration[]>;
39
- unvalidatedExternalFieldCoords: Set<string>;
30
+ fieldSetDataByTypeName: Map<string, FieldSetData>;
31
+ heirFieldAuthorizationDataByTypeName: Map<string, FieldAuthorizationData[]>;
40
32
  interfaceTypeNamesWithAuthorizationDirectives: Set<string>;
41
33
  internalGraph: Graph;
42
34
  invalidConfigureDescriptionNodeDatas: Array<NodeData>;
@@ -46,8 +38,7 @@ export declare class NormalizationFactory {
46
38
  isParentObjectShareable: boolean;
47
39
  isSubgraphEventDrivenGraph: boolean;
48
40
  isSubgraphVersionTwo: boolean;
49
- fieldSetDataByTypeName: Map<string, FieldSetData>;
50
- heirFieldAuthorizationDataByTypeName: Map<string, FieldAuthorizationData[]>;
41
+ keyFieldSetDatasByTypeName: Map<string, Map<string, KeyFieldSetData>>;
51
42
  lastParentNodeKind: Kind;
52
43
  lastChildNodeKind: Kind;
53
44
  leafTypeNamesWithAuthorizationDirectives: Set<string>;
@@ -65,6 +56,7 @@ export declare class NormalizationFactory {
65
56
  referencedTypeNames: Set<string>;
66
57
  renamedParentTypeName: string;
67
58
  subgraphName: string;
59
+ unvalidatedExternalFieldCoords: Set<string>;
68
60
  usesEdfsNatsStreamConfiguration: boolean;
69
61
  warnings: Warning[];
70
62
  constructor(internalGraph: Graph, subgraphName?: string);
@@ -100,7 +92,10 @@ export declare class NormalizationFactory {
100
92
  upsertScalarByNode(node: ScalarTypeNode, isRealExtension?: boolean): void;
101
93
  extractUnionMembers(node: UnionTypeNode, membersByMemberTypeName: Map<string, NamedTypeNode>): Map<string, NamedTypeNode>;
102
94
  upsertUnionByNode(node: UnionTypeNode, isRealExtension?: boolean): void;
103
- extractKeyFieldSets(node: CompositeOutputNode, keyFieldSetData: KeyFieldSetData): void;
95
+ extractKeyFieldSets(node: CompositeOutputNode, keyFieldSetDataByFieldSet: Map<string, KeyFieldSetData>): void;
96
+ getFieldSetParent(isProvides: boolean, parentData: CompositeOutputData, fieldName: string, parentTypeName: string): FieldSetParentResult;
97
+ validateConditionalFieldSet(selectionSetParentData: CompositeOutputData, fieldSet: string, directiveFieldName: string, isProvides: boolean, directiveParentTypeName: string): ConditionalFieldSetValidationResult;
98
+ validateProvidesOrRequires(parentData: CompositeOutputData, fieldSetByFieldName: Map<string, string>, isProvides: boolean): RequiredFieldConfiguration[] | undefined;
104
99
  validateInterfaceImplementations(data: CompositeOutputData): void;
105
100
  handleAuthenticatedDirective(data: NodeData | SchemaData, parentTypeName: string): void;
106
101
  handleOverrideDirective({ data, directiveCoords, errorMessages, targetSubgraphName }: HandleOverrideDirectiveParams): void;
@@ -114,15 +109,14 @@ export declare class NormalizationFactory {
114
109
  getValidEventsDirectiveNamesForOperationTypeNode(operationTypeNode: OperationTypeNode): Set<string>;
115
110
  getOperationTypeNodeForRootTypeName(parentTypeName: string): OperationTypeNode | undefined;
116
111
  validateEventDrivenRootType(data: ObjectDefinitionData, invalidEventsDirectiveDataByRootFieldPath: Map<string, InvalidRootTypeFieldEventsDirectiveData>, invalidResponseTypeStringByRootFieldPath: Map<string, string>, invalidResponseTypeNameByMutationPath: Map<string, string>): void;
117
- validateEventDrivenKeyDefinition(typeName: string, invalidKeyFieldSetsByEntityTypeName: Map<string, string[]>): void;
112
+ validateEventDrivenKeyDefinition(typeName: string, invalidKeyFieldSetsByEntityTypeName: Map<string, Array<string>>): void;
118
113
  validateEventDrivenObjectFields(fieldDataByFieldName: Map<string, FieldData>, keyFieldNames: Set<string>, nonExternalKeyFieldNameByFieldPath: Map<string, string>, nonKeyFieldNameByFieldPath: Map<string, string>): void;
119
114
  isEdfsPublishResultValid(): boolean;
120
115
  isNatsStreamConfigurationInputObjectValid(streamConfigurationInputData: ParentDefinitionData): boolean;
121
116
  validateEventDrivenSubgraph(definitions: Array<DefinitionNode>): void;
122
117
  validateUnionMembers(data: UnionDefinitionData): void;
123
118
  addConcreteTypeNamesForUnion(node: UnionTypeNode): void;
124
- validateAndAddKeyToConfiguration(parentData: CompositeOutputData, keyFieldSetData: KeyFieldSetData): void;
125
- validateAndAddKeysToConfiguration(): void;
119
+ addValidKeyFieldSetConfigurations(): void;
126
120
  getValidFlattenedDirectiveArray(directivesByDirectiveName: Map<string, ConstDirectiveNode[]>, directiveCoords: string): ConstDirectiveNode[];
127
121
  getEnumNodeByData(enumDefinitionData: EnumDefinitionData): import("../../schema-building/ast").MutableEnumNode;
128
122
  getInputObjectNodeByData(inputObjectDefinitionData: InputObjectDefinitionData): import("../../schema-building/ast").MutableInputObjectNode;
@@ -130,6 +124,9 @@ export declare class NormalizationFactory {
130
124
  getScalarNodeByData(scalarDefinitionData: ScalarDefinitionData): import("../../schema-building/ast").MutableScalarNode;
131
125
  getSchemaNodeByData(schemaData: SchemaData): SchemaDefinitionNode;
132
126
  getUnionNodeByData(unionDefinitionData: UnionDefinitionData): import("../../schema-building/ast").MutableUnionNode;
127
+ evaluateExternalKeyFields(): void;
128
+ addValidConditionalFieldSetConfigurations(): void;
129
+ addFieldNamesToConfigurationData(fieldDataByFieldName: Map<string, FieldData>, configurationData: ConfigurationData): void;
133
130
  normalize(document: DocumentNode): NormalizationResult;
134
131
  }
135
132
  export declare function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationResult;