@wundergraph/composition 0.51.2 → 0.53.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 (92) hide show
  1. package/README.md +18 -13
  2. package/dist/ast/utils.d.ts +2 -2
  3. package/dist/buildASTSchema/buildASTSchema.d.ts +2 -2
  4. package/dist/buildASTSchema/buildASTSchema.js.map +1 -1
  5. package/dist/buildASTSchema/extendSchema.d.ts +3 -3
  6. package/dist/errors/errors.d.ts +6 -6
  7. package/dist/errors/errors.js.map +1 -1
  8. package/dist/errors/types.d.ts +2 -2
  9. package/dist/federation/federation.d.ts +5 -4
  10. package/dist/federation/federation.js +6 -6
  11. package/dist/federation/federation.js.map +1 -1
  12. package/dist/federation/params.d.ts +22 -0
  13. package/dist/{v1/federation/types.js → federation/params.js} +1 -1
  14. package/dist/federation/params.js.map +1 -0
  15. package/dist/federation/types.d.ts +6 -24
  16. package/dist/index.d.ts +4 -1
  17. package/dist/index.js +4 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/normalization/normalization.d.ts +5 -8
  20. package/dist/normalization/normalization.js +6 -6
  21. package/dist/normalization/normalization.js.map +1 -1
  22. package/dist/normalization/params.d.ts +24 -0
  23. package/dist/normalization/params.js +3 -0
  24. package/dist/normalization/params.js.map +1 -0
  25. package/dist/normalization/types.d.ts +7 -7
  26. package/dist/resolvability-graph/graph-nodes.d.ts +2 -2
  27. package/dist/resolvability-graph/graph.d.ts +6 -6
  28. package/dist/resolvability-graph/graph.js.map +1 -1
  29. package/dist/resolvability-graph/node-resolution-data/node-resolution-data.d.ts +3 -3
  30. package/dist/resolvability-graph/node-resolution-data/types/params.d.ts +2 -2
  31. package/dist/resolvability-graph/types/params.d.ts +2 -2
  32. package/dist/resolvability-graph/utils/types/params.d.ts +4 -4
  33. package/dist/resolvability-graph/utils/types/types.d.ts +1 -1
  34. package/dist/resolvability-graph/utils/utils.d.ts +4 -4
  35. package/dist/resolvability-graph/utils/utils.js.map +1 -1
  36. package/dist/resolvability-graph/walker/entity-walker/entity-walker.d.ts +1 -1
  37. package/dist/resolvability-graph/walker/entity-walker/types/params.d.ts +3 -3
  38. package/dist/resolvability-graph/walker/root-field-walkers/root-field-walker.d.ts +2 -2
  39. package/dist/resolvability-graph/walker/root-field-walkers/types/params.d.ts +3 -3
  40. package/dist/router-configuration/types.d.ts +1 -1
  41. package/dist/router-configuration/utils.d.ts +1 -1
  42. package/dist/schema-building/ast.d.ts +1 -1
  43. package/dist/schema-building/types.d.ts +6 -6
  44. package/dist/schema-building/utils.d.ts +7 -7
  45. package/dist/schema-building/utils.js +1 -2
  46. package/dist/schema-building/utils.js.map +1 -1
  47. package/dist/subgraph/types.d.ts +4 -4
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/dist/types/params.d.ts +4 -0
  50. package/dist/types/params.js +3 -0
  51. package/dist/types/params.js.map +1 -0
  52. package/dist/utils/composition-version.js +1 -1
  53. package/dist/utils/types.d.ts +2 -2
  54. package/dist/utils/utils.d.ts +2 -2
  55. package/dist/utils/utils.js.map +1 -1
  56. package/dist/v1/constants/constants.d.ts +2 -2
  57. package/dist/v1/constants/directive-definitions.d.ts +1 -1
  58. package/dist/v1/constants/directive-definitions.js.map +1 -1
  59. package/dist/v1/constants/non-directive-definitions.d.ts +1 -1
  60. package/dist/v1/constants/non-directive-definitions.js.map +1 -1
  61. package/dist/v1/constants/strings.d.ts +2 -2
  62. package/dist/v1/constants/strings.js.map +1 -1
  63. package/dist/v1/constants/type-nodes.d.ts +1 -1
  64. package/dist/v1/constants/type-nodes.js.map +1 -1
  65. package/dist/v1/federation/federation-factory.d.ts +20 -20
  66. package/dist/v1/federation/federation-factory.js +13 -13
  67. package/dist/v1/federation/federation-factory.js.map +1 -1
  68. package/dist/v1/federation/params.d.ts +33 -3
  69. package/dist/v1/federation/utils.d.ts +8 -21
  70. package/dist/v1/federation/utils.js.map +1 -1
  71. package/dist/v1/federation/walkers.d.ts +2 -2
  72. package/dist/v1/federation/walkers.js.map +1 -1
  73. package/dist/v1/normalization/directive-definition-data.d.ts +1 -1
  74. package/dist/v1/normalization/normalization-factory.d.ts +17 -16
  75. package/dist/v1/normalization/normalization-factory.js +20 -9
  76. package/dist/v1/normalization/normalization-factory.js.map +1 -1
  77. package/dist/v1/normalization/params.d.ts +25 -2
  78. package/dist/v1/normalization/types.d.ts +4 -4
  79. package/dist/v1/normalization/utils.d.ts +5 -5
  80. package/dist/v1/normalization/utils.js +1 -1
  81. package/dist/v1/normalization/utils.js.map +1 -1
  82. package/dist/v1/normalization/walkers.d.ts +2 -2
  83. package/dist/v1/normalization/walkers.js.map +1 -1
  84. package/dist/v1/schema-building/type-merging.d.ts +2 -2
  85. package/dist/v1/schema-building/type-merging.js.map +1 -1
  86. package/dist/v1/utils/utils.d.ts +1 -1
  87. package/dist/v1/warnings/params.d.ts +1 -1
  88. package/dist/v1/warnings/warnings.d.ts +1 -1
  89. package/dist/v1/warnings/warnings.js.map +1 -1
  90. package/package.json +5 -4
  91. package/dist/v1/federation/types.d.ts +0 -17
  92. package/dist/v1/federation/types.js.map +0 -1
@@ -1,18 +1,18 @@
1
- import { ConstDirectiveNode, ConstValueNode, DirectiveDefinitionNode, DocumentNode, EnumValueDefinitionNode, FieldDefinitionNode, InputValueDefinitionNode, InterfaceTypeDefinitionNode, InterfaceTypeExtensionNode, Kind, NamedTypeNode, ObjectTypeDefinitionNode, ObjectTypeExtensionNode, OperationTypeNode, SchemaDefinitionNode, SchemaExtensionNode, TypeDefinitionNode, TypeExtensionNode, TypeNode } from 'graphql';
2
- import { EnumTypeNode, InputObjectTypeNode, InterfaceTypeNode, ObjectTypeNode, ScalarTypeNode, SchemaNode, UnionTypeNode } from '../../ast/utils';
3
- import { ConfigurationData, EventConfiguration, NatsEventType, RequiredFieldConfiguration } from '../../router-configuration/types';
4
- import { AuthorizationData, CompositeOutputData, ConditionalFieldData, EntityData, EntityInterfaceSubgraphData, EnumDefinitionData, ExtensionType, FieldData, InputObjectDefinitionData, InputValueData, NodeData, ObjectDefinitionData, ParentDefinitionData, PersistedDirectiveDefinitionData, ScalarDefinitionData, SchemaData, UnionDefinitionData } from '../../schema-building/types';
5
- import { CompositeOutputNode } from '../../schema-building/ast';
6
- import { InvalidRootTypeFieldEventsDirectiveData } from '../../errors/types';
1
+ import { type ConstDirectiveNode, type ConstValueNode, type DirectiveDefinitionNode, type DocumentNode, type EnumValueDefinitionNode, type FieldDefinitionNode, type InputValueDefinitionNode, type InterfaceTypeDefinitionNode, type InterfaceTypeExtensionNode, Kind, type NamedTypeNode, type ObjectTypeDefinitionNode, type ObjectTypeExtensionNode, OperationTypeNode, type SchemaDefinitionNode, type SchemaExtensionNode, type TypeDefinitionNode, type TypeExtensionNode, type TypeNode } from 'graphql';
2
+ import { type EnumTypeNode, type InputObjectTypeNode, type InterfaceTypeNode, type ObjectTypeNode, type ScalarTypeNode, type SchemaNode, type UnionTypeNode } from '../../ast/utils';
3
+ import { type ConfigurationData, type EventConfiguration, type NatsEventType, type RequiredFieldConfiguration } from '../../router-configuration/types';
4
+ import { type AuthorizationData, type CompositeOutputData, type ConditionalFieldData, type EntityData, type EntityInterfaceSubgraphData, type EnumDefinitionData, ExtensionType, type FieldData, type InputObjectDefinitionData, type InputValueData, type NodeData, type ObjectDefinitionData, type ParentDefinitionData, type PersistedDirectiveDefinitionData, type ScalarDefinitionData, type SchemaData, type UnionDefinitionData } from '../../schema-building/types';
5
+ import { type CompositeOutputNode } from '../../schema-building/ast';
6
+ import { type InvalidRootTypeFieldEventsDirectiveData } from '../../errors/types';
7
7
  import { Graph } from '../../resolvability-graph/graph';
8
- import { Subgraph } from '../../subgraph/types';
9
- import { Warning } from '../../warnings/types';
10
- import { BatchNormalizationResult, NormalizationResult } from '../../normalization/types';
11
- import { AddInputValueDataByNodeParams, ConditionalFieldSetValidationResult, ExtractArgumentDataResult, FieldSetData, FieldSetParentResult, HandleOverrideDirectiveParams, HandleRequiresScopesDirectiveParams, HandleSemanticNonNullDirectiveParams, KeyFieldSetData, UpsertInputObjectResult, ValidateDirectiveParams } from './types';
12
- import { SubgraphName } from '../../types/types';
13
- import { HandleFieldInheritableDirectivesParams, ValidateOneOfDirectiveParams } from './params';
14
- export declare function normalizeSubgraphFromString(subgraphSDL: string, noLocation?: boolean): NormalizationResult;
15
- export declare function normalizeSubgraph(document: DocumentNode, subgraphName?: string, internalGraph?: Graph): NormalizationResult;
8
+ import { type Warning } from '../../warnings/types';
9
+ import { type BatchNormalizationResult, type NormalizationResult } from '../../normalization/types';
10
+ import { type AddInputValueDataByNodeParams, type ConditionalFieldSetValidationResult, type ExtractArgumentDataResult, type FieldSetData, type FieldSetParentResult, type HandleOverrideDirectiveParams, type HandleRequiresScopesDirectiveParams, type HandleSemanticNonNullDirectiveParams, type KeyFieldSetData, type UpsertInputObjectResult, type ValidateDirectiveParams } from './types';
11
+ import { type SubgraphName } from '../../types/types';
12
+ import { type BatchNormalizeParams, type HandleFieldInheritableDirectivesParams, type NormalizationFactoryParams, type NormalizeSubgraphFromStringParams, type NormalizeSubgraphParams, type ValidateOneOfDirectiveParams } from './params';
13
+ import type { CompositionOptions } from '../../types/params';
14
+ export declare function normalizeSubgraphFromString({ noLocation, options, sdlString, }: NormalizeSubgraphFromStringParams): NormalizationResult;
15
+ export declare function normalizeSubgraph({ document, internalGraph, options, subgraphName, }: NormalizeSubgraphParams): NormalizationResult;
16
16
  export declare class NormalizationFactory {
17
17
  #private;
18
18
  argumentName: string;
@@ -42,6 +42,7 @@ export declare class NormalizationFactory {
42
42
  keyFieldSetDatasByTypeName: Map<string, Map<string, KeyFieldSetData>>;
43
43
  lastParentNodeKind: Kind;
44
44
  lastChildNodeKind: Kind;
45
+ options: CompositionOptions;
45
46
  parentTypeNamesWithAuthDirectives: Set<string>;
46
47
  keyFieldSetsByEntityTypeNameByFieldCoords: Map<string, Map<string, Set<string>>>;
47
48
  keyFieldNamesByParentTypeName: Map<string, Set<string>>;
@@ -59,7 +60,7 @@ export declare class NormalizationFactory {
59
60
  unvalidatedExternalFieldCoords: Set<string>;
60
61
  usesEdfsNatsStreamConfiguration: boolean;
61
62
  warnings: Array<Warning>;
62
- constructor(internalGraph: Graph, subgraphName?: SubgraphName);
63
+ constructor({ internalGraph, options, subgraphName }: NormalizationFactoryParams);
63
64
  validateArguments(fieldData: FieldData, parentKind: Kind): void;
64
65
  isTypeNameRootType(typeName: string): boolean;
65
66
  isArgumentValueValid(typeNode: TypeNode, argumentValue: ConstValueNode): boolean;
@@ -131,4 +132,4 @@ export declare class NormalizationFactory {
131
132
  validateOneOfDirective({ data, requiredFieldNames }: ValidateOneOfDirectiveParams): boolean;
132
133
  normalize(document: DocumentNode): NormalizationResult;
133
134
  }
134
- export declare function batchNormalize(subgraphs: Subgraph[]): BatchNormalizationResult;
135
+ export declare function batchNormalize({ options, subgraphs }: BatchNormalizeParams): BatchNormalizationResult;
@@ -26,16 +26,20 @@ const integer_constants_1 = require("../../utils/integer-constants");
26
26
  const utils_5 = require("../../utils/utils");
27
27
  const utils_6 = require("../../router-configuration/utils");
28
28
  const non_directive_definitions_1 = require("../constants/non-directive-definitions");
29
- function normalizeSubgraphFromString(subgraphSDL, noLocation = true) {
30
- const { error, documentNode } = (0, utils_1.safeParse)(subgraphSDL, noLocation);
29
+ function normalizeSubgraphFromString({ noLocation, options, sdlString, }) {
30
+ const { error, documentNode } = (0, utils_1.safeParse)(sdlString, noLocation);
31
31
  if (error || !documentNode) {
32
32
  return { errors: [(0, errors_1.subgraphInvalidSyntaxError)(error)], success: false, warnings: [] };
33
33
  }
34
- const normalizationFactory = new NormalizationFactory(new graph_1.Graph());
34
+ const normalizationFactory = new NormalizationFactory({ internalGraph: new graph_1.Graph(), options });
35
35
  return normalizationFactory.normalize(documentNode);
36
36
  }
37
- function normalizeSubgraph(document, subgraphName, internalGraph) {
38
- const normalizationFactory = new NormalizationFactory(internalGraph || new graph_1.Graph(), subgraphName);
37
+ function normalizeSubgraph({ document, internalGraph, options, subgraphName, }) {
38
+ const normalizationFactory = new NormalizationFactory({
39
+ internalGraph: internalGraph || new graph_1.Graph(),
40
+ options,
41
+ subgraphName,
42
+ });
39
43
  return normalizationFactory.normalize(document);
40
44
  }
41
45
  class NormalizationFactory {
@@ -66,6 +70,7 @@ class NormalizationFactory {
66
70
  keyFieldSetDatasByTypeName = new Map();
67
71
  lastParentNodeKind = graphql_1.Kind.NULL;
68
72
  lastChildNodeKind = graphql_1.Kind.NULL;
73
+ options;
69
74
  parentTypeNamesWithAuthDirectives = new Set();
70
75
  keyFieldSetsByEntityTypeNameByFieldCoords = new Map();
71
76
  keyFieldNamesByParentTypeName = new Map();
@@ -83,7 +88,8 @@ class NormalizationFactory {
83
88
  unvalidatedExternalFieldCoords = new Set();
84
89
  usesEdfsNatsStreamConfiguration = false;
85
90
  warnings = [];
86
- constructor(internalGraph, subgraphName) {
91
+ constructor({ internalGraph, options, subgraphName }) {
92
+ this.options = options ?? {};
87
93
  this.subgraphName = subgraphName || string_constants_1.NOT_APPLICABLE;
88
94
  this.internalGraph = internalGraph;
89
95
  this.internalGraph.setSubgraphName(this.subgraphName);
@@ -2639,7 +2645,7 @@ class NormalizationFactory {
2639
2645
  this.validateDirectives(this.schemaData, string_constants_1.SCHEMA);
2640
2646
  const schemaNode = this.getSchemaNodeByData(this.schemaData);
2641
2647
  /* Schema extension orphans are not supported on old routers.
2642
- * Consequently, it is a breaking change that requires a new composition version, and hat composition version
2648
+ * Consequently, it is a breaking change that requires a new composition version, and that composition version
2643
2649
  * would only be compatible with newer routers that support schema extension orphans.
2644
2650
  * For now, only a valid schema definition node is pushed.
2645
2651
  */
@@ -2926,7 +2932,7 @@ class NormalizationFactory {
2926
2932
  }
2927
2933
  }
2928
2934
  exports.NormalizationFactory = NormalizationFactory;
2929
- function batchNormalize(subgraphs) {
2935
+ function batchNormalize({ options, subgraphs }) {
2930
2936
  const authorizationDataByParentTypeName = new Map();
2931
2937
  const concreteTypeNamesByAbstractTypeName = new Map();
2932
2938
  const entityDataByTypeName = new Map();
@@ -2955,7 +2961,12 @@ function batchNormalize(subgraphs) {
2955
2961
  if (!subgraph.name) {
2956
2962
  invalidNameErrorMessages.push((0, errors_1.invalidSubgraphNameErrorMessage)(i, subgraphName));
2957
2963
  }
2958
- const normalizationResult = normalizeSubgraph(subgraph.definitions, subgraph.name, internalGraph);
2964
+ const normalizationResult = normalizeSubgraph({
2965
+ document: subgraph.definitions,
2966
+ internalGraph,
2967
+ options,
2968
+ subgraphName,
2969
+ });
2959
2970
  if (normalizationResult.warnings.length > 0) {
2960
2971
  warnings.push(...normalizationResult.warnings);
2961
2972
  }