@effect-gql/core 1.4.5 → 1.4.7

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.
package/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as FieldComplexityMap, G as GraphQLExtension, E as ExtensionsService } from './schema-builder-DKvkzU_M.cjs';
2
- export { y as CacheControlConfig, J as CacheControlConfigFromEnv, h as CacheControlScope, C as CacheHint, w as CacheHintMap, x as CachePolicy, z as CachePolicyAnalysisInfo, q as ComplexityAnalysisError, l as ComplexityAnalysisInfo, n as ComplexityCalculator, j as ComplexityConfig, u as ComplexityConfigFromEnv, m as ComplexityExceededInfo, p as ComplexityLimitExceededError, k as ComplexityResult, D as DirectiveApplication, d as DirectiveRegistration, b as EnumRegistration, K as ExecutionArgs, o as FieldComplexity, a as FieldRegistration, f as GraphQLEffectContext, i as GraphQLSchemaBuilder, c as InputTypeRegistration, I as InterfaceRegistration, M as MiddlewareContext, e as MiddlewareRegistration, O as ObjectFieldRegistration, S as SubscriptionFieldRegistration, T as TypeRegistration, g as TypeRegistries, U as UnionRegistration, t as combineCalculators, A as computeCachePolicy, B as computeCachePolicyFromQuery, r as defaultComplexityCalculator, s as depthOnlyCalculator, L as makeExtensionsService, R as runExecuteEndHooks, Q as runExecuteStartHooks, N as runParseHooks, P as runValidateHooks, H as toCacheControlHeader, v as validateComplexity } from './schema-builder-DKvkzU_M.cjs';
1
+ import { F as FieldComplexityMap, G as GraphQLExtension, E as ExtensionsService } from './schema-builder-CAij36fD.cjs';
2
+ export { y as CacheControlConfig, J as CacheControlConfigFromEnv, h as CacheControlScope, C as CacheHint, w as CacheHintMap, x as CachePolicy, z as CachePolicyAnalysisInfo, q as ComplexityAnalysisError, l as ComplexityAnalysisInfo, n as ComplexityCalculator, j as ComplexityConfig, u as ComplexityConfigFromEnv, m as ComplexityExceededInfo, p as ComplexityLimitExceededError, k as ComplexityResult, D as DirectiveApplication, d as DirectiveRegistration, b as EnumRegistration, K as ExecutionArgs, o as FieldComplexity, a as FieldRegistration, f as GraphQLEffectContext, i as GraphQLSchemaBuilder, c as InputTypeRegistration, I as InterfaceRegistration, M as MiddlewareContext, e as MiddlewareRegistration, O as ObjectFieldRegistration, S as SubscriptionFieldRegistration, T as TypeRegistration, g as TypeRegistries, U as UnionRegistration, t as combineCalculators, A as computeCachePolicy, B as computeCachePolicyFromQuery, r as defaultComplexityCalculator, s as depthOnlyCalculator, L as makeExtensionsService, R as runExecuteEndHooks, Q as runExecuteStartHooks, N as runParseHooks, P as runValidateHooks, H as toCacheControlHeader, v as validateComplexity } from './schema-builder-CAij36fD.cjs';
3
3
  import { GraphQLOutputType, GraphQLInputType, GraphQLFieldConfigArgumentMap, GraphQLObjectType } from 'graphql';
4
4
  export { DirectiveLocation, GraphQLBoolean, GraphQLEnumType, GraphQLFieldConfigMap, GraphQLFloat, GraphQLID, GraphQLInputObjectType, GraphQLInt, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLScalarType, GraphQLSchema, GraphQLString, GraphQLUnionType, Kind, ValueNode, graphql, lexicographicSortSchema, printSchema } from 'graphql';
5
5
  export { compose, directive, enumType, execute, extension, field, getSchemaName, inputType, interfaceType, middleware, mutation, objectType, query, subscription, unionType } from './builder/index.cjs';
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { F as FieldComplexityMap, G as GraphQLExtension, E as ExtensionsService } from './schema-builder-DKvkzU_M.js';
2
- export { y as CacheControlConfig, J as CacheControlConfigFromEnv, h as CacheControlScope, C as CacheHint, w as CacheHintMap, x as CachePolicy, z as CachePolicyAnalysisInfo, q as ComplexityAnalysisError, l as ComplexityAnalysisInfo, n as ComplexityCalculator, j as ComplexityConfig, u as ComplexityConfigFromEnv, m as ComplexityExceededInfo, p as ComplexityLimitExceededError, k as ComplexityResult, D as DirectiveApplication, d as DirectiveRegistration, b as EnumRegistration, K as ExecutionArgs, o as FieldComplexity, a as FieldRegistration, f as GraphQLEffectContext, i as GraphQLSchemaBuilder, c as InputTypeRegistration, I as InterfaceRegistration, M as MiddlewareContext, e as MiddlewareRegistration, O as ObjectFieldRegistration, S as SubscriptionFieldRegistration, T as TypeRegistration, g as TypeRegistries, U as UnionRegistration, t as combineCalculators, A as computeCachePolicy, B as computeCachePolicyFromQuery, r as defaultComplexityCalculator, s as depthOnlyCalculator, L as makeExtensionsService, R as runExecuteEndHooks, Q as runExecuteStartHooks, N as runParseHooks, P as runValidateHooks, H as toCacheControlHeader, v as validateComplexity } from './schema-builder-DKvkzU_M.js';
1
+ import { F as FieldComplexityMap, G as GraphQLExtension, E as ExtensionsService } from './schema-builder-CAij36fD.js';
2
+ export { y as CacheControlConfig, J as CacheControlConfigFromEnv, h as CacheControlScope, C as CacheHint, w as CacheHintMap, x as CachePolicy, z as CachePolicyAnalysisInfo, q as ComplexityAnalysisError, l as ComplexityAnalysisInfo, n as ComplexityCalculator, j as ComplexityConfig, u as ComplexityConfigFromEnv, m as ComplexityExceededInfo, p as ComplexityLimitExceededError, k as ComplexityResult, D as DirectiveApplication, d as DirectiveRegistration, b as EnumRegistration, K as ExecutionArgs, o as FieldComplexity, a as FieldRegistration, f as GraphQLEffectContext, i as GraphQLSchemaBuilder, c as InputTypeRegistration, I as InterfaceRegistration, M as MiddlewareContext, e as MiddlewareRegistration, O as ObjectFieldRegistration, S as SubscriptionFieldRegistration, T as TypeRegistration, g as TypeRegistries, U as UnionRegistration, t as combineCalculators, A as computeCachePolicy, B as computeCachePolicyFromQuery, r as defaultComplexityCalculator, s as depthOnlyCalculator, L as makeExtensionsService, R as runExecuteEndHooks, Q as runExecuteStartHooks, N as runParseHooks, P as runValidateHooks, H as toCacheControlHeader, v as validateComplexity } from './schema-builder-CAij36fD.js';
3
3
  import { GraphQLOutputType, GraphQLInputType, GraphQLFieldConfigArgumentMap, GraphQLObjectType } from 'graphql';
4
4
  export { DirectiveLocation, GraphQLBoolean, GraphQLEnumType, GraphQLFieldConfigMap, GraphQLFloat, GraphQLID, GraphQLInputObjectType, GraphQLInt, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLScalarType, GraphQLSchema, GraphQLString, GraphQLUnionType, Kind, ValueNode, graphql, lexicographicSortSchema, printSchema } from 'graphql';
5
5
  export { compose, directive, enumType, execute, extension, field, getSchemaName, inputType, interfaceType, middleware, mutation, objectType, query, subscription, unionType } from './builder/index.js';
package/index.js CHANGED
@@ -746,26 +746,56 @@ function toGraphQLInputTypeWithRegistry(schema, enumRegistry, inputRegistry, inp
746
746
  if (memberAst._tag === "UndefinedKeyword") continue;
747
747
  const inputName = cache?.astToInputName?.get(memberAst);
748
748
  if (inputName) {
749
- const result = inputRegistry.get(inputName);
750
- if (result) return result;
749
+ const inputReg = inputs.get(inputName);
750
+ if (inputReg) {
751
+ return toGraphQLInputTypeWithRegistry(
752
+ inputReg.schema,
753
+ enumRegistry,
754
+ inputRegistry,
755
+ inputs,
756
+ enums,
757
+ cache
758
+ );
759
+ }
751
760
  }
752
- for (const [regInputName, inputReg] of inputs) {
761
+ for (const [, inputReg] of inputs) {
753
762
  if (inputReg.schema.ast === memberAst) {
754
- const result = inputRegistry.get(regInputName);
755
- if (result) return result;
763
+ return toGraphQLInputTypeWithRegistry(
764
+ inputReg.schema,
765
+ enumRegistry,
766
+ inputRegistry,
767
+ inputs,
768
+ enums,
769
+ cache
770
+ );
756
771
  }
757
772
  }
758
773
  if (memberAst._tag === "Transformation") {
759
774
  const innerToAst = memberAst.to;
760
775
  const transformedInputName = cache?.astToInputName?.get(innerToAst);
761
776
  if (transformedInputName) {
762
- const result = inputRegistry.get(transformedInputName);
763
- if (result) return result;
777
+ const inputReg = inputs.get(transformedInputName);
778
+ if (inputReg) {
779
+ return toGraphQLInputTypeWithRegistry(
780
+ inputReg.schema,
781
+ enumRegistry,
782
+ inputRegistry,
783
+ inputs,
784
+ enums,
785
+ cache
786
+ );
787
+ }
764
788
  }
765
- for (const [regInputName, inputReg] of inputs) {
789
+ for (const [, inputReg] of inputs) {
766
790
  if (inputReg.schema.ast === innerToAst) {
767
- const result = inputRegistry.get(regInputName);
768
- if (result) return result;
791
+ return toGraphQLInputTypeWithRegistry(
792
+ inputReg.schema,
793
+ enumRegistry,
794
+ inputRegistry,
795
+ inputs,
796
+ enums,
797
+ cache
798
+ );
769
799
  }
770
800
  }
771
801
  }
@@ -777,25 +807,52 @@ function toGraphQLInputTypeWithRegistry(schema, enumRegistry, inputRegistry, inp
777
807
  const valueType = valueField.type;
778
808
  const valueInputName = cache?.astToInputName?.get(valueType);
779
809
  if (valueInputName) {
780
- const result = inputRegistry.get(valueInputName);
781
- if (result) return result;
810
+ const inputReg = inputs.get(valueInputName);
811
+ if (inputReg) {
812
+ return toGraphQLInputTypeWithRegistry(
813
+ inputReg.schema,
814
+ enumRegistry,
815
+ inputRegistry,
816
+ inputs,
817
+ enums,
818
+ cache
819
+ );
820
+ }
782
821
  }
783
- for (const [regInputName, inputReg] of inputs) {
822
+ for (const [, inputReg] of inputs) {
784
823
  if (inputReg.schema.ast === valueType) {
785
- const result = inputRegistry.get(regInputName);
786
- if (result) return result;
824
+ return toGraphQLInputTypeWithRegistry(
825
+ inputReg.schema,
826
+ enumRegistry,
827
+ inputRegistry,
828
+ inputs,
829
+ enums,
830
+ cache
831
+ );
787
832
  }
788
833
  let regAst = inputReg.schema.ast;
789
834
  while (regAst._tag === "Transformation") {
790
835
  regAst = regAst.to;
791
836
  if (regAst === valueType) {
792
- const result = inputRegistry.get(regInputName);
793
- if (result) return result;
837
+ return toGraphQLInputTypeWithRegistry(
838
+ inputReg.schema,
839
+ enumRegistry,
840
+ inputRegistry,
841
+ inputs,
842
+ enums,
843
+ cache
844
+ );
794
845
  }
795
846
  }
796
847
  if (regAst._tag === "Declaration" && regAst.typeParameters?.[0] === valueType) {
797
- const result = inputRegistry.get(regInputName);
798
- if (result) return result;
848
+ return toGraphQLInputTypeWithRegistry(
849
+ inputReg.schema,
850
+ enumRegistry,
851
+ inputRegistry,
852
+ inputs,
853
+ enums,
854
+ cache
855
+ );
799
856
  }
800
857
  }
801
858
  const innerResult = toGraphQLInputTypeWithRegistry(
@@ -848,26 +905,56 @@ function toGraphQLInputTypeWithRegistry(schema, enumRegistry, inputRegistry, inp
848
905
  for (const memberAst of unionAst.types) {
849
906
  const inputName = cache?.astToInputName?.get(memberAst);
850
907
  if (inputName) {
851
- const result = inputRegistry.get(inputName);
852
- if (result) return result;
908
+ const inputReg = inputs.get(inputName);
909
+ if (inputReg) {
910
+ return toGraphQLInputTypeWithRegistry(
911
+ inputReg.schema,
912
+ enumRegistry,
913
+ inputRegistry,
914
+ inputs,
915
+ enums,
916
+ cache
917
+ );
918
+ }
853
919
  }
854
- for (const [regInputName, inputReg] of inputs) {
920
+ for (const [, inputReg] of inputs) {
855
921
  if (inputReg.schema.ast === memberAst) {
856
- const result = inputRegistry.get(regInputName);
857
- if (result) return result;
922
+ return toGraphQLInputTypeWithRegistry(
923
+ inputReg.schema,
924
+ enumRegistry,
925
+ inputRegistry,
926
+ inputs,
927
+ enums,
928
+ cache
929
+ );
858
930
  }
859
931
  }
860
932
  if (memberAst._tag === "Transformation") {
861
933
  const toAst = memberAst.to;
862
934
  const transformedInputName = cache?.astToInputName?.get(toAst);
863
935
  if (transformedInputName) {
864
- const result = inputRegistry.get(transformedInputName);
865
- if (result) return result;
936
+ const inputReg = inputs.get(transformedInputName);
937
+ if (inputReg) {
938
+ return toGraphQLInputTypeWithRegistry(
939
+ inputReg.schema,
940
+ enumRegistry,
941
+ inputRegistry,
942
+ inputs,
943
+ enums,
944
+ cache
945
+ );
946
+ }
866
947
  }
867
- for (const [regInputName, inputReg] of inputs) {
948
+ for (const [, inputReg] of inputs) {
868
949
  if (inputReg.schema.ast === toAst) {
869
- const result = inputRegistry.get(regInputName);
870
- if (result) return result;
950
+ return toGraphQLInputTypeWithRegistry(
951
+ inputReg.schema,
952
+ enumRegistry,
953
+ inputRegistry,
954
+ inputs,
955
+ enums,
956
+ cache
957
+ );
871
958
  }
872
959
  }
873
960
  }
@@ -879,25 +966,52 @@ function toGraphQLInputTypeWithRegistry(schema, enumRegistry, inputRegistry, inp
879
966
  const valueType = valueField.type;
880
967
  const valueInputName = cache?.astToInputName?.get(valueType);
881
968
  if (valueInputName) {
882
- const result = inputRegistry.get(valueInputName);
883
- if (result) return result;
969
+ const inputReg = inputs.get(valueInputName);
970
+ if (inputReg) {
971
+ return toGraphQLInputTypeWithRegistry(
972
+ inputReg.schema,
973
+ enumRegistry,
974
+ inputRegistry,
975
+ inputs,
976
+ enums,
977
+ cache
978
+ );
979
+ }
884
980
  }
885
- for (const [regInputName, inputReg] of inputs) {
981
+ for (const [, inputReg] of inputs) {
886
982
  if (inputReg.schema.ast === valueType) {
887
- const result = inputRegistry.get(regInputName);
888
- if (result) return result;
983
+ return toGraphQLInputTypeWithRegistry(
984
+ inputReg.schema,
985
+ enumRegistry,
986
+ inputRegistry,
987
+ inputs,
988
+ enums,
989
+ cache
990
+ );
889
991
  }
890
992
  let regAst = inputReg.schema.ast;
891
993
  while (regAst._tag === "Transformation") {
892
994
  regAst = regAst.to;
893
995
  if (regAst === valueType) {
894
- const result = inputRegistry.get(regInputName);
895
- if (result) return result;
996
+ return toGraphQLInputTypeWithRegistry(
997
+ inputReg.schema,
998
+ enumRegistry,
999
+ inputRegistry,
1000
+ inputs,
1001
+ enums,
1002
+ cache
1003
+ );
896
1004
  }
897
1005
  }
898
1006
  if (regAst._tag === "Declaration" && regAst.typeParameters?.[0] === valueType) {
899
- const result = inputRegistry.get(regInputName);
900
- if (result) return result;
1007
+ return toGraphQLInputTypeWithRegistry(
1008
+ inputReg.schema,
1009
+ enumRegistry,
1010
+ inputRegistry,
1011
+ inputs,
1012
+ enums,
1013
+ cache
1014
+ );
901
1015
  }
902
1016
  }
903
1017
  const innerResult = toGraphQLInputTypeWithRegistry(
@@ -1512,15 +1626,25 @@ var GraphQLSchemaBuilder = class _GraphQLSchemaBuilder {
1512
1626
  }
1513
1627
  /**
1514
1628
  * Build the GraphQL schema (no services required)
1629
+ *
1630
+ * Uses a two-phase approach:
1631
+ * 1. Phase 1: Build enum and input registries first (these may be referenced by other types)
1632
+ * 2. Phase 2: Build interface, object, and union types (which may reference inputs in args)
1633
+ *
1634
+ * This ensures that when object type fields with args are processed,
1635
+ * all registered input types are already available in the inputRegistry.
1515
1636
  */
1516
1637
  buildSchema() {
1517
- const directiveRegistry = this.buildDirectiveRegistry();
1518
1638
  const enumRegistry = this.buildEnumRegistry();
1519
1639
  const inputRegistry = this.buildInputRegistry(enumRegistry);
1520
- const interfaceRegistry = this.buildInterfaceRegistry(enumRegistry);
1640
+ const inputTypeLookupCache = buildInputTypeLookupCache(this.state.inputs, this.state.enums);
1641
+ const directiveRegistry = this.buildDirectiveRegistry(enumRegistry, inputRegistry, inputTypeLookupCache);
1642
+ const interfaceRegistry = this.buildInterfaceRegistry(enumRegistry, inputRegistry, inputTypeLookupCache);
1521
1643
  const { typeRegistry, unionRegistry } = this.buildTypeAndUnionRegistries(
1522
1644
  enumRegistry,
1523
- interfaceRegistry
1645
+ interfaceRegistry,
1646
+ inputRegistry,
1647
+ inputTypeLookupCache
1524
1648
  );
1525
1649
  const fieldCtx = this.createFieldBuilderContext(
1526
1650
  typeRegistry,
@@ -1544,9 +1668,8 @@ var GraphQLSchemaBuilder = class _GraphQLSchemaBuilder {
1544
1668
  subscriptionFields
1545
1669
  });
1546
1670
  }
1547
- buildDirectiveRegistry() {
1671
+ buildDirectiveRegistry(enumRegistry, inputRegistry, cache) {
1548
1672
  const registry = /* @__PURE__ */ new Map();
1549
- const cache = buildInputTypeLookupCache(this.state.inputs, this.state.enums);
1550
1673
  for (const [name, reg] of this.state.directives) {
1551
1674
  const graphqlDirective = new GraphQLDirective({
1552
1675
  name,
@@ -1554,8 +1677,8 @@ var GraphQLSchemaBuilder = class _GraphQLSchemaBuilder {
1554
1677
  locations: [...reg.locations],
1555
1678
  args: reg.args ? toGraphQLArgsWithRegistry(
1556
1679
  reg.args,
1557
- /* @__PURE__ */ new Map(),
1558
- /* @__PURE__ */ new Map(),
1680
+ enumRegistry,
1681
+ inputRegistry,
1559
1682
  this.state.inputs,
1560
1683
  this.state.enums,
1561
1684
  cache
@@ -1605,7 +1728,7 @@ var GraphQLSchemaBuilder = class _GraphQLSchemaBuilder {
1605
1728
  }
1606
1729
  return registry;
1607
1730
  }
1608
- buildInterfaceRegistry(enumRegistry) {
1731
+ buildInterfaceRegistry(enumRegistry, inputRegistry, _cache) {
1609
1732
  const registry = /* @__PURE__ */ new Map();
1610
1733
  const typeRegistry = /* @__PURE__ */ new Map();
1611
1734
  const unionRegistry = /* @__PURE__ */ new Map();
@@ -1631,7 +1754,7 @@ var GraphQLSchemaBuilder = class _GraphQLSchemaBuilder {
1631
1754
  }
1632
1755
  return registry;
1633
1756
  }
1634
- buildTypeAndUnionRegistries(enumRegistry, interfaceRegistry) {
1757
+ buildTypeAndUnionRegistries(enumRegistry, interfaceRegistry, inputRegistry, inputTypeLookupCache) {
1635
1758
  const typeRegistry = /* @__PURE__ */ new Map();
1636
1759
  const unionRegistry = /* @__PURE__ */ new Map();
1637
1760
  const sharedCtx = {
@@ -1640,18 +1763,19 @@ var GraphQLSchemaBuilder = class _GraphQLSchemaBuilder {
1640
1763
  enums: this.state.enums,
1641
1764
  unions: this.state.unions,
1642
1765
  inputs: this.state.inputs,
1643
- typeRegistry,
1644
- interfaceRegistry,
1645
- enumRegistry,
1646
- unionRegistry};
1647
- buildReverseLookups(sharedCtx);
1648
- const sharedFieldCtx = this.createFieldBuilderContext(
1649
1766
  typeRegistry,
1650
1767
  interfaceRegistry,
1651
1768
  enumRegistry,
1652
1769
  unionRegistry,
1653
- /* @__PURE__ */ new Map()
1654
- );
1770
+ inputRegistry
1771
+ };
1772
+ buildReverseLookups(sharedCtx);
1773
+ const sharedFieldCtx = {
1774
+ ...sharedCtx,
1775
+ directiveRegistrations: this.state.directives,
1776
+ middlewares: this.state.middlewares,
1777
+ inputTypeLookupCache
1778
+ };
1655
1779
  for (const [typeName, typeReg] of this.state.types) {
1656
1780
  const implementedInterfaces = typeReg.implements?.map((name) => interfaceRegistry.get(name)).filter(Boolean) ?? [];
1657
1781
  const graphqlType = new GraphQLObjectType({