@soda-gql/core 0.0.2 → 0.0.4
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/dist/{index-AuafI3MM.d.ts → index-B0eMtGow.d.ts} +384 -335
- package/dist/index-B0eMtGow.d.ts.map +1 -0
- package/dist/{index-xC3mD3EI.d.cts → index-DsMrzee1.d.cts} +384 -335
- package/dist/index-DsMrzee1.d.cts.map +1 -0
- package/dist/index.cjs +74 -66
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +74 -42
- package/dist/index.js.map +1 -1
- package/dist/runtime/index.cjs +1 -1
- package/dist/runtime/index.d.cts +1 -1
- package/dist/runtime/index.d.cts.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/{slice-DhwBAhCw.cjs → slice-DlVY4UJG.cjs} +32 -13
- package/dist/{slice-B0ZSKvG2.js → slice-ua5mSfhV.js} +34 -15
- package/dist/slice-ua5mSfhV.js.map +1 -0
- package/package.json +7 -7
- package/dist/index-AuafI3MM.d.ts.map +0 -1
- package/dist/index-xC3mD3EI.d.cts.map +0 -1
- package/dist/slice-B0ZSKvG2.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as createVarRefs, c as createExecutionResultParser, d as SlicedExecutionResultSuccess, f as Projection, i as createVarAssignments, l as SlicedExecutionResultEmpty, n as handleProjectionBuilder, o as mergeVarDefinitions, p as VarRef, s as mapValues, u as SlicedExecutionResultError } from "./slice-ua5mSfhV.js";
|
|
2
2
|
import { Kind, OperationTypeNode } from "graphql";
|
|
3
3
|
|
|
4
4
|
//#region packages/core/src/composer/build-document.ts
|
|
5
5
|
const buildArgumentValue = (value) => {
|
|
6
6
|
if (value === void 0) return null;
|
|
7
7
|
if (value === null) return { kind: Kind.NULL };
|
|
8
|
-
if (value instanceof VarRef)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
kind: Kind.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
if (value instanceof VarRef) {
|
|
9
|
+
const inner = VarRef.getInner(value);
|
|
10
|
+
if (inner.type === "variable") return {
|
|
11
|
+
kind: Kind.VARIABLE,
|
|
12
|
+
name: {
|
|
13
|
+
kind: Kind.NAME,
|
|
14
|
+
value: inner.name
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
if (inner.type === "const-value") return buildConstValueNode(inner.value);
|
|
18
|
+
throw new Error(`Unknown var ref type: ${inner}`);
|
|
19
|
+
}
|
|
15
20
|
if (Array.isArray(value)) return {
|
|
16
21
|
kind: Kind.LIST,
|
|
17
22
|
values: value.map((item) => buildArgumentValue(item)).filter((item) => item !== null)
|
|
@@ -128,11 +133,23 @@ const buildConstValueNode = (value) => {
|
|
|
128
133
|
const buildWithTypeModifier = (modifier, buildType) => {
|
|
129
134
|
const baseType = buildType();
|
|
130
135
|
if (modifier === "?") return baseType;
|
|
136
|
+
if (modifier === "!") return {
|
|
137
|
+
kind: Kind.NON_NULL_TYPE,
|
|
138
|
+
type: baseType
|
|
139
|
+
};
|
|
140
|
+
if (!/^[?!](\[\][?!])*$/.test(modifier)) throw new Error(`Unknown modifier: ${modifier}`);
|
|
131
141
|
let curr = {
|
|
132
142
|
modifier,
|
|
133
143
|
type: baseType
|
|
134
144
|
};
|
|
135
145
|
while (curr.modifier.length > 0) {
|
|
146
|
+
if (curr.modifier.startsWith("?")) {
|
|
147
|
+
curr = {
|
|
148
|
+
modifier: curr.modifier.slice(1),
|
|
149
|
+
type: curr.type
|
|
150
|
+
};
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
136
153
|
if (curr.modifier.startsWith("!")) {
|
|
137
154
|
curr = {
|
|
138
155
|
modifier: curr.modifier.slice(1),
|
|
@@ -143,9 +160,9 @@ const buildWithTypeModifier = (modifier, buildType) => {
|
|
|
143
160
|
};
|
|
144
161
|
continue;
|
|
145
162
|
}
|
|
146
|
-
if (curr.modifier.startsWith("[]")) {
|
|
163
|
+
if (curr.modifier.startsWith("[]?")) {
|
|
147
164
|
curr = {
|
|
148
|
-
modifier: curr.modifier.slice(
|
|
165
|
+
modifier: curr.modifier.slice(3),
|
|
149
166
|
type: {
|
|
150
167
|
kind: Kind.LIST_TYPE,
|
|
151
168
|
type: curr.type
|
|
@@ -153,6 +170,19 @@ const buildWithTypeModifier = (modifier, buildType) => {
|
|
|
153
170
|
};
|
|
154
171
|
continue;
|
|
155
172
|
}
|
|
173
|
+
if (curr.modifier.startsWith("[]!")) {
|
|
174
|
+
curr = {
|
|
175
|
+
modifier: curr.modifier.slice(3),
|
|
176
|
+
type: {
|
|
177
|
+
kind: Kind.NON_NULL_TYPE,
|
|
178
|
+
type: {
|
|
179
|
+
kind: Kind.LIST_TYPE,
|
|
180
|
+
type: curr.type
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
156
186
|
throw new Error(`Unknown modifier: ${curr.modifier}`);
|
|
157
187
|
}
|
|
158
188
|
return curr.type;
|
|
@@ -394,7 +424,9 @@ const createComposedOperationComposerFactory = () => {
|
|
|
394
424
|
|
|
395
425
|
//#endregion
|
|
396
426
|
//#region packages/core/src/utils/wrap-by-key.ts
|
|
397
|
-
|
|
427
|
+
function wrapByKey(name, value) {
|
|
428
|
+
return { [name]: value };
|
|
429
|
+
}
|
|
398
430
|
|
|
399
431
|
//#endregion
|
|
400
432
|
//#region packages/core/src/composer/fields-builder.ts
|
|
@@ -544,32 +576,31 @@ const createSliceComposerFactory = (schema) => {
|
|
|
544
576
|
};
|
|
545
577
|
|
|
546
578
|
//#endregion
|
|
547
|
-
//#region packages/core/src/types/
|
|
548
|
-
|
|
579
|
+
//#region packages/core/src/types/type-foundation/modified-type-name.ts
|
|
580
|
+
function parseModifiedTypeName(nameAndModifier) {
|
|
549
581
|
if (typeof nameAndModifier !== "string") throw new Error(`Invalid modified type name: ${nameAndModifier}`);
|
|
550
582
|
const [name, modifier] = nameAndModifier.split(":");
|
|
551
583
|
return {
|
|
552
584
|
name,
|
|
553
585
|
modifier
|
|
554
586
|
};
|
|
555
|
-
}
|
|
587
|
+
}
|
|
556
588
|
|
|
557
589
|
//#endregion
|
|
558
590
|
//#region packages/core/src/composer/var-builder.ts
|
|
559
591
|
const createVarBuilder = (schema) => {
|
|
560
592
|
const $ = (varName) => {
|
|
561
|
-
const
|
|
593
|
+
const createVarSpecifierBuilder = (kind) => {
|
|
562
594
|
return (type, extras) => wrapByKey(varName, {
|
|
563
595
|
kind,
|
|
564
596
|
...parseModifiedTypeName(type),
|
|
565
|
-
defaultValue: extras?.default ? { default: extras.default() } : null
|
|
566
|
-
directives: extras?.directives ?? {}
|
|
597
|
+
defaultValue: extras?.default ? { default: extras.default() } : null
|
|
567
598
|
});
|
|
568
599
|
};
|
|
569
600
|
return {
|
|
570
|
-
scalar:
|
|
571
|
-
enum:
|
|
572
|
-
input:
|
|
601
|
+
scalar: createVarSpecifierBuilder("scalar"),
|
|
602
|
+
enum: createVarSpecifierBuilder("enum"),
|
|
603
|
+
input: createVarSpecifierBuilder("input"),
|
|
573
604
|
byField: (typeName, fieldName, argName) => {
|
|
574
605
|
const argTypeRef = schema.object[typeName]?.fields[fieldName]?.arguments[argName];
|
|
575
606
|
if (!argTypeRef) throw new Error(`Argument ${argName} not found in field ${fieldName} of type ${typeName}`);
|
|
@@ -610,14 +641,25 @@ const createGqlElementComposer = (schema) => {
|
|
|
610
641
|
return elementComposer;
|
|
611
642
|
};
|
|
612
643
|
|
|
644
|
+
//#endregion
|
|
645
|
+
//#region packages/core/src/utils/type-meta.ts
|
|
646
|
+
const withTypeMeta = (target) => {
|
|
647
|
+
if (process.env.NODE_ENV !== "production") {
|
|
648
|
+
if (typeof target !== "object" && typeof target !== "function" || target === null) throw new Error("Target must be an object or a function.");
|
|
649
|
+
Object.defineProperty(target, "$type", { get() {
|
|
650
|
+
throw new Error("This property is only for type inference. Do not access this property directly.");
|
|
651
|
+
} });
|
|
652
|
+
}
|
|
653
|
+
return target;
|
|
654
|
+
};
|
|
655
|
+
|
|
613
656
|
//#endregion
|
|
614
657
|
//#region packages/core/src/schema/type-specifier-builder.ts
|
|
615
658
|
const createUnsafeInputTypeSpecifierFactory = (kind) => {
|
|
616
659
|
return (type, extras) => ({
|
|
617
660
|
kind,
|
|
618
661
|
...parseModifiedTypeName(type),
|
|
619
|
-
defaultValue: extras.default ? { default: extras.default() } : null
|
|
620
|
-
directives: extras.directives ?? {}
|
|
662
|
+
defaultValue: extras.default ? { default: extras.default() } : null
|
|
621
663
|
});
|
|
622
664
|
};
|
|
623
665
|
const unsafeInputType = {
|
|
@@ -629,8 +671,7 @@ const createUnsafeOutputTypeSpecifierFactory = (kind) => {
|
|
|
629
671
|
return (type, extras) => ({
|
|
630
672
|
kind,
|
|
631
673
|
...parseModifiedTypeName(type),
|
|
632
|
-
arguments: extras.arguments ?? {}
|
|
633
|
-
directives: extras.directives ?? {}
|
|
674
|
+
arguments: extras.arguments ?? {}
|
|
634
675
|
});
|
|
635
676
|
};
|
|
636
677
|
const unsafeOutputType = {
|
|
@@ -643,35 +684,26 @@ const unsafeOutputType = {
|
|
|
643
684
|
|
|
644
685
|
//#endregion
|
|
645
686
|
//#region packages/core/src/schema/schema-builder.ts
|
|
646
|
-
const defineScalar = (name
|
|
647
|
-
_type: hidden(),
|
|
648
|
-
name,
|
|
649
|
-
directives: definition({ type: hidden }).directives
|
|
650
|
-
});
|
|
687
|
+
const defineScalar = (name) => wrapByKey(name, withTypeMeta({ name }));
|
|
651
688
|
const define = (name) => ({
|
|
652
|
-
enum: (values
|
|
653
|
-
_type: hidden(),
|
|
689
|
+
enum: (values) => withTypeMeta({
|
|
654
690
|
name,
|
|
655
|
-
values
|
|
656
|
-
directives
|
|
691
|
+
values
|
|
657
692
|
}),
|
|
658
|
-
input: (fields
|
|
693
|
+
input: (fields) => ({
|
|
659
694
|
name,
|
|
660
|
-
fields
|
|
661
|
-
directives
|
|
695
|
+
fields
|
|
662
696
|
}),
|
|
663
|
-
object: (fields
|
|
697
|
+
object: (fields) => ({
|
|
664
698
|
name,
|
|
665
699
|
fields: {
|
|
666
700
|
__typename: unsafeOutputType.typename(`${name}:!`, {}),
|
|
667
701
|
...fields
|
|
668
|
-
}
|
|
669
|
-
directives
|
|
702
|
+
}
|
|
670
703
|
}),
|
|
671
|
-
union: (types
|
|
704
|
+
union: (types) => ({
|
|
672
705
|
name,
|
|
673
|
-
types
|
|
674
|
-
directives
|
|
706
|
+
types
|
|
675
707
|
})
|
|
676
708
|
});
|
|
677
709
|
const defineOperationRoots = (operationRoots) => operationRoots;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["value","field","curr: Readonly<{ modifier: TypeModifier | \"\"; type: TypeNode }>","cache: { value: TDefinition } | null","define","define","define","define","define","paths","fields","cacheMap: CacheMap","factory: AnyFieldSelectionFactory","factoryReturn: AnyFieldSelectionFactoryReturn<TAlias>","operationTypeName: TTypeName | null","operationTypeName: TTypeName | null","elementComposer: GqlElementComposer<typeof composers, typeof helper>"],"sources":["../src/composer/build-document.ts","../src/types/element/gql-element.ts","../src/types/element/composed-operation.ts","../src/types/element/fields-builder.ts","../src/types/element/inline-operation.ts","../src/types/element/model.ts","../src/types/element/slice.ts","../src/composer/projection-path-graph.ts","../src/composer/composed-operation.ts","../src/utils/wrap-by-key.ts","../src/composer/fields-builder.ts","../src/composer/inline-operation.ts","../src/composer/model.ts","../src/composer/slice.ts","../src/types/schema/type-modifier.ts","../src/composer/var-builder.ts","../src/composer/gql-composer.ts","../src/schema/type-specifier-builder.ts","../src/schema/schema-builder.ts"],"sourcesContent":["import type { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport {\n type ArgumentNode,\n type ConstObjectFieldNode,\n type ConstValueNode,\n type DocumentNode,\n type FieldNode,\n type InlineFragmentNode,\n Kind,\n type NamedTypeNode,\n type ObjectFieldNode,\n OperationTypeNode,\n type TypeNode,\n type ValueNode,\n type VariableDefinitionNode,\n} from \"graphql\";\nimport {\n type AnyAssignableInput,\n type AnyAssignableInputValue,\n type AnyFields,\n type AnyNestedUnion,\n type InferFields,\n VarRef,\n} from \"../types/fragment\";\nimport type { AnyGraphqlSchema, ConstAssignableInput, InputTypeSpecifiers, OperationType, TypeModifier } from \"../types/schema\";\nimport type { ConstValue } from \"../types/schema/const-value\";\n\nexport const buildArgumentValue = (value: AnyAssignableInputValue): ValueNode | null => {\n if (value === undefined) {\n return null;\n }\n\n if (value === null) {\n return {\n kind: Kind.NULL,\n };\n }\n\n if (value instanceof VarRef) {\n return {\n kind: Kind.VARIABLE,\n name: { kind: Kind.NAME, value: value.name },\n };\n }\n\n if (Array.isArray(value)) {\n return {\n kind: Kind.LIST,\n values: value.map((item) => buildArgumentValue(item)).filter((item) => item !== null),\n };\n }\n\n if (typeof value === \"object\") {\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(value)\n .map(([key, value]): ObjectFieldNode | null => {\n const valueNode = buildArgumentValue(value);\n return valueNode\n ? {\n kind: Kind.OBJECT_FIELD,\n name: { kind: Kind.NAME, value: key },\n value: valueNode,\n }\n : null;\n })\n .filter((item) => item !== null),\n };\n }\n\n if (typeof value === \"string\") {\n return {\n kind: Kind.STRING,\n value,\n };\n }\n\n if (typeof value === \"number\") {\n // Distinguish between INT and FLOAT\n const isFloat = !Number.isInteger(value) || value.toString().includes(\".\");\n return {\n kind: isFloat ? Kind.FLOAT : Kind.INT,\n value: value.toString(),\n };\n }\n\n if (typeof value === \"boolean\") {\n return {\n kind: Kind.BOOLEAN,\n value,\n };\n }\n\n throw new Error(`Unknown value type: ${typeof (value satisfies never)}`);\n};\n\nconst buildArguments = (args: AnyAssignableInput): ArgumentNode[] =>\n Object.entries(args ?? {})\n .map(([name, value]): ArgumentNode | null => {\n const valueNode = buildArgumentValue(value);\n return valueNode ? { kind: Kind.ARGUMENT, name: { kind: Kind.NAME, value: name }, value: valueNode } : null;\n })\n .filter((item) => item !== null);\n\nconst buildUnionSelection = (union: AnyNestedUnion): InlineFragmentNode[] =>\n Object.entries(union)\n .map(([typeName, object]): InlineFragmentNode | null => {\n return object\n ? {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: { kind: Kind.NAMED_TYPE, name: { kind: Kind.NAME, value: typeName } },\n selectionSet: { kind: Kind.SELECTION_SET, selections: buildField(object) },\n }\n : null;\n })\n .filter((item) => item !== null);\n\nconst buildField = (field: AnyFields): FieldNode[] =>\n Object.entries(field).map(\n ([alias, { args, field, object, union }]): FieldNode => ({\n kind: Kind.FIELD,\n name: { kind: Kind.NAME, value: field },\n alias: alias !== field ? { kind: Kind.NAME, value: alias } : undefined,\n arguments: buildArguments(args),\n selectionSet: object\n ? {\n kind: Kind.SELECTION_SET,\n selections: buildField(object),\n }\n : union\n ? {\n kind: Kind.SELECTION_SET,\n selections: buildUnionSelection(union),\n }\n : undefined,\n }),\n );\n\nexport const buildConstValueNode = (value: ConstValue): ConstValueNode | null => {\n if (value === undefined) {\n return null;\n }\n\n if (value === null) {\n return { kind: Kind.NULL };\n }\n\n if (typeof value === \"string\") {\n return { kind: Kind.STRING, value };\n }\n\n if (typeof value === \"boolean\") {\n return { kind: Kind.BOOLEAN, value };\n }\n\n if (typeof value === \"number\") {\n // Distinguish between INT and FLOAT\n const isFloat = !Number.isInteger(value) || value.toString().includes(\".\");\n return { kind: isFloat ? Kind.FLOAT : Kind.INT, value: value.toString() };\n }\n\n if (Array.isArray(value)) {\n return { kind: Kind.LIST, values: value.map((item) => buildConstValueNode(item)).filter((item) => item !== null) };\n }\n\n if (typeof value === \"object\") {\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(value)\n .map(([key, value]): ConstObjectFieldNode | null => {\n const valueNode = buildConstValueNode(value);\n return valueNode\n ? {\n kind: Kind.OBJECT_FIELD,\n name: { kind: Kind.NAME, value: key },\n value: valueNode,\n }\n : null;\n })\n .filter((item) => item !== null),\n };\n }\n\n throw new Error(`Unknown value type: ${typeof (value satisfies never)}`);\n};\n\nexport const buildWithTypeModifier = (modifier: TypeModifier, buildType: () => NamedTypeNode): TypeNode => {\n const baseType = buildType();\n\n if (modifier === \"?\") {\n return baseType;\n }\n\n let curr: Readonly<{ modifier: TypeModifier | \"\"; type: TypeNode }> = { modifier, type: baseType };\n\n while (curr.modifier.length > 0) {\n if (curr.modifier.startsWith(\"!\")) {\n curr = {\n modifier: curr.modifier.slice(1) as TypeModifier,\n type: curr.type.kind === Kind.NON_NULL_TYPE ? curr.type : { kind: Kind.NON_NULL_TYPE, type: curr.type },\n };\n continue;\n }\n\n if (curr.modifier.startsWith(\"[]\")) {\n curr = {\n modifier: curr.modifier.slice(2) as TypeModifier,\n type: { kind: Kind.LIST_TYPE, type: curr.type },\n };\n continue;\n }\n\n throw new Error(`Unknown modifier: ${curr.modifier}`);\n }\n\n return curr.type;\n};\n\nconst buildVariables = (variables: InputTypeSpecifiers): VariableDefinitionNode[] => {\n return Object.entries(variables).map(\n ([name, ref]): VariableDefinitionNode => ({\n kind: Kind.VARIABLE_DEFINITION,\n variable: { kind: Kind.VARIABLE, name: { kind: Kind.NAME, value: name } },\n defaultValue: (ref.defaultValue && buildConstValueNode(ref.defaultValue.default)) || undefined,\n type: buildWithTypeModifier(ref.modifier, () => ({ kind: Kind.NAMED_TYPE, name: { kind: Kind.NAME, value: ref.name } })),\n }),\n );\n};\n\nexport const buildOperationTypeNode = (operation: OperationType): OperationTypeNode => {\n switch (operation) {\n case \"query\":\n return OperationTypeNode.QUERY;\n case \"mutation\":\n return OperationTypeNode.MUTATION;\n case \"subscription\":\n return OperationTypeNode.SUBSCRIPTION;\n default:\n throw new Error(`Unknown operation type: ${operation}`);\n }\n};\n\n// Overloaded function signatures for flexible usage\nexport const buildDocument = <\n TSchema extends AnyGraphqlSchema,\n TFields extends AnyFields,\n TVarDefinitions extends InputTypeSpecifiers,\n>(options: {\n operationName: string;\n operationType: OperationType;\n variables: TVarDefinitions;\n fields: TFields;\n}): TypedDocumentNode<InferFields<TSchema, TFields>, ConstAssignableInput<TSchema, TVarDefinitions>> => {\n const { operationName, operationType, variables, fields } = options;\n return {\n kind: Kind.DOCUMENT,\n definitions: [\n {\n kind: Kind.OPERATION_DEFINITION,\n operation: buildOperationTypeNode(operationType),\n name: { kind: Kind.NAME, value: operationName },\n variableDefinitions: buildVariables(variables),\n // directives: directives || [],\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: buildField(fields),\n },\n },\n ],\n } satisfies DocumentNode as TypedDocumentNode<InferFields<TSchema, TFields>, ConstAssignableInput<TSchema, TVarDefinitions>>;\n};\n","const GQL_ELEMENT_FACTORY = Symbol(\"GQL_ELEMENT_FACTORY\");\nconst GQL_ELEMENT_CONTEXT = Symbol(\"GQL_ELEMENT_CONTEXT\");\n\nexport type GqlElementContext = {\n canonicalId: string;\n};\n\nexport type GqlElementDefinitionFactory<T> = (context: GqlElementContext | null) => T;\n\nexport abstract class GqlElement<TDefinition> {\n private [GQL_ELEMENT_FACTORY]: GqlElementDefinitionFactory<TDefinition>;\n private [GQL_ELEMENT_CONTEXT]: GqlElementContext | null = null;\n\n protected constructor(define: GqlElementDefinitionFactory<TDefinition>) {\n let cache: { value: TDefinition } | null = null;\n\n this[GQL_ELEMENT_FACTORY] = (context) => {\n if (cache) {\n return cache.value;\n }\n const value = define(context);\n cache = { value };\n return value;\n };\n }\n\n static setContext<TElement extends GqlElement<any>>(element: TElement, context: GqlElementContext): void {\n element[GQL_ELEMENT_CONTEXT] = context;\n }\n\n static evaluate(element: GqlElement<any>): void {\n void GqlElement.get(element);\n }\n\n static get<TValue>(element: GqlElement<TValue>): TValue {\n const context = element[GQL_ELEMENT_CONTEXT];\n return element[GQL_ELEMENT_FACTORY](context);\n }\n}\n","/** Operation composition helpers (`gql.query`, `gql.mutation`, `gql.subscription`). */\n\nimport type { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { Prettify } from \"../../utils/prettify\";\nimport type { UnionToIntersection } from \"../../utils/type-utils\";\nimport type { AnyFields, AssignableInput, InferFields } from \"../fragment\";\nimport type { AnyGraphqlRuntimeAdapter, InferExecutionResultProjection, NormalizedExecutionResult } from \"../runtime\";\nimport type {\n AnyConstAssignableInput,\n AnyGraphqlSchema,\n ConstAssignableInput,\n InputTypeSpecifiers,\n OperationType,\n} from \"../schema\";\nimport { GqlElement, type GqlElementContext } from \"./gql-element\";\nimport type { AnySlicePayloads } from \"./slice\";\n\nexport type AnyComposedOperation =\n | AnyComposedOperationOf<\"query\">\n | AnyComposedOperationOf<\"mutation\">\n | AnyComposedOperationOf<\"subscription\">;\nexport type AnyComposedOperationOf<TOperationType extends OperationType> = ComposedOperation<\n AnyGraphqlRuntimeAdapter,\n TOperationType,\n string,\n string[],\n any,\n any,\n any\n>;\n\ndeclare const __COMPOSED_OPERATION_BRAND__: unique symbol;\n\ntype ComposedOperationDefinition<\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TRawData extends object,\n TProjectedData extends object,\n> = {\n readonly operationType: TOperationType;\n readonly operationName: TOperationName;\n readonly variableNames: TVariableNames;\n readonly projectionPathGraph: ProjectionPathGraphNode;\n readonly document: TypedDocumentNode<TRawData, TVariables>;\n readonly parse: (result: NormalizedExecutionResult<TRuntimeAdapter, TRawData, any>) => TProjectedData;\n};\n\nexport class ComposedOperation<\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TRawData extends object,\n TProjectedData extends object,\n >\n extends GqlElement<\n ComposedOperationDefinition<\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n TVariableNames,\n TVariables,\n TRawData,\n TProjectedData\n >\n >\n implements\n ComposedOperationDefinition<\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n TVariableNames,\n TVariables,\n TRawData,\n TProjectedData\n >\n{\n declare readonly [__COMPOSED_OPERATION_BRAND__]: Hidden<{\n operationType: TOperationType;\n }>;\n\n private constructor(\n define: (\n context: GqlElementContext | null,\n ) => ComposedOperationDefinition<\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n TVariableNames,\n TVariables,\n TRawData,\n TProjectedData\n >,\n ) {\n super(define);\n }\n\n public get operationType() {\n return GqlElement.get(this).operationType;\n }\n public get operationName() {\n return GqlElement.get(this).operationName;\n }\n public get variableNames() {\n return GqlElement.get(this).variableNames;\n }\n public get projectionPathGraph() {\n return GqlElement.get(this).projectionPathGraph;\n }\n public get document() {\n return GqlElement.get(this).document;\n }\n public get parse() {\n return GqlElement.get(this).parse;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TSliceFragments extends AnySlicePayloads,\n >(\n define: (context: import(\"./gql-element\").GqlElementContext | null) => {\n operationType: TOperationType;\n operationName: TOperationName;\n variableNames: (keyof TVariableDefinitions & string)[];\n projectionPathGraph: ProjectionPathGraphNode;\n document: TypedDocumentNode<\n InferComposedOperationRawData<TSchema, TSliceFragments>,\n ConstAssignableInput<TSchema, TVariableDefinitions>\n >;\n parse: (\n result: NormalizedExecutionResult<TRuntimeAdapter, InferComposedOperationRawData<TSchema, TSliceFragments>, any>,\n ) => {\n [K in keyof TSliceFragments]: InferExecutionResultProjection<TSliceFragments[K][\"projection\"]>;\n };\n },\n ) {\n return new ComposedOperation(define);\n }\n}\n\nexport type ProjectionPathGraphNode = {\n readonly matches: { label: string; path: string; exact: boolean }[];\n readonly children: { readonly [segment: string]: ProjectionPathGraphNode };\n};\n\nexport type ConcatSlicePayloads<TSlicePayloads extends AnySlicePayloads> = Prettify<\n UnionToIntersection<\n {\n [TLabel in keyof TSlicePayloads & string]: TSlicePayloads[TLabel] extends { getFields: () => infer TFields }\n ? { [K in keyof TFields & string as `${TLabel}_${K}`]: TFields[K] }\n : {};\n }[keyof TSlicePayloads & string]\n >\n> &\n AnyFields;\n\nexport type InferComposedOperationRawData<TSchema extends AnyGraphqlSchema, TSlicePayloads extends AnySlicePayloads> = Prettify<\n InferFields<TSchema, ConcatSlicePayloads<TSlicePayloads>>\n>;\n\nexport type ComposedOperationDefinitionBuilder<\n TSchema extends AnyGraphqlSchema,\n TVarDefinitions extends InputTypeSpecifiers,\n TSliceContents extends AnySlicePayloads,\n> = (tools: { $: NoInfer<AssignableInput<TSchema, TVarDefinitions>> }) => TSliceContents;\n","/** Field builder factories shared by model and slice helpers. */\n\nimport type { IfEmpty } from \"../../utils/empty-object\";\nimport type { UnionToIntersection } from \"../../utils/type-utils\";\nimport type {\n AbstractFieldSelection,\n AnyAssignableInput,\n AnyDirectiveAttachments,\n AnyFieldSelection,\n AnyFields,\n AnyNestedObject,\n AnyNestedUnion,\n AssignableInput,\n FieldSelectionTemplateOf,\n} from \"../fragment\";\nimport type {\n AnyGraphqlSchema,\n InputTypeSpecifiers,\n ObjectFieldRecord,\n OutputEnumSpecifier,\n OutputObjectSpecifier,\n OutputScalarSpecifier,\n OutputTypenameSpecifier,\n OutputUnionSpecifier,\n UnionMemberName,\n} from \"../schema\";\n\nexport const mergeFields = <TFieldEntries extends AnyFields[]>(fields: TFieldEntries) =>\n Object.assign({}, ...fields) as MergeFields<TFieldEntries>;\n\nexport type MergeFields<TFieldEntries extends AnyFields[]> = UnionToIntersection<\n TFieldEntries[number]\n> extends infer TFieldsIntersection\n ? {\n [TFieldName in keyof TFieldsIntersection]: TFieldsIntersection[TFieldName] extends AnyFieldSelection\n ? TFieldsIntersection[TFieldName]\n : never;\n } & {}\n : never;\n\n/**\n * Builder signature exposed to userland `model` and `slice` helpers. The\n * tooling `f`/`fields`/`_` aliases provide ergonomic access to GraphQL fields\n * while preserving the original schema information for inference.\n */\nexport type FieldsBuilder<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields[],\n> = (tools: NoInfer<FieldsBuilderTools<TSchema, TTypeName, TVariableDefinitions>>) => TFields;\n\nexport type FieldsBuilderTools<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TVariableDefinitions extends InputTypeSpecifiers,\n> = {\n f: FieldSelectionFactories<TSchema, TTypeName>;\n $: AssignableInput<TSchema, TVariableDefinitions>;\n};\n\n/** Narrow builder used when a field resolves to an object and we need nested selections. */\nexport type NestedObjectFieldsBuilder<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TFields extends AnyNestedObject[],\n> = (tools: NoInfer<NestedObjectFieldsBuilderTools<TSchema, TTypeName>>) => TFields;\n\nexport type NestedObjectFieldsBuilderTools<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n> = {\n f: FieldSelectionFactories<TSchema, TTypeName>;\n};\n\nexport type NestedUnionFieldsBuilder<\n TSchema extends AnyGraphqlSchema,\n TMemberName extends string,\n TUnionFields extends AnyNestedUnion,\n> = {\n [TTypename in keyof TUnionFields & TMemberName]?: NestedObjectFieldsBuilder<\n TSchema,\n TTypename,\n NonNullable<TUnionFields[TTypename]>[]\n >;\n};\n\n/** Map each field to a factory capable of emitting fully-typed references. */\nexport type FieldSelectionFactories<TSchema extends AnyGraphqlSchema, TTypeName extends keyof TSchema[\"object\"] & string> = {\n [TFieldName in keyof ObjectFieldRecord<TSchema, TTypeName>]: TFieldName extends string\n ? FieldSelectionFactory<TSchema, FieldSelectionTemplateOf<TSchema, TTypeName, TFieldName>>\n : never;\n};\n\nexport type AnyFieldSelectionFactory = <TAlias extends string | null = null>(\n fieldArgs: AnyAssignableInput | void,\n extras?: { alias?: TAlias; directives?: AnyDirectiveAttachments },\n) => AnyFieldSelectionFactoryReturn<TAlias>;\n\nexport type FieldSelectionFactory<TSchema extends AnyGraphqlSchema, TSelection extends AnyFieldSelection> = <\n TAlias extends string | null = null,\n>(\n fieldArgs: TSelection[\"args\"] | IfEmpty<TSelection[\"args\"], void | null>,\n extras?: { alias?: TAlias; directives?: TSelection[\"directives\"] },\n) => FieldSelectionFactoryReturn<TSchema, TSelection, TAlias>;\n\nexport type AnyFieldSelectionFactoryReturn<TAlias extends string | null> =\n | FieldSelectionFactoryReturn<AnyGraphqlSchema, AnyFieldSelection & { type: OutputObjectSpecifier }, TAlias>\n | FieldSelectionFactoryReturn<AnyGraphqlSchema, AnyFieldSelection & { type: OutputUnionSpecifier }, TAlias>\n | FieldSelectionFactoryReturn<\n AnyGraphqlSchema,\n AnyFieldSelection & { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier },\n TAlias\n >;\n\nexport type FieldSelectionFactoryReturn<\n TSchema extends AnyGraphqlSchema,\n TSelection extends AnyFieldSelection,\n TAlias extends string | null,\n> = TSelection extends { type: OutputObjectSpecifier }\n ? FieldSelectionFactoryObjectReturn<TSchema, TSelection, TAlias>\n : TSelection extends { type: OutputUnionSpecifier }\n ? FieldSelectionFactoryUnionReturn<TSchema, TSelection, TAlias>\n : TSelection extends { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier }\n ? FieldSelectionFactoryPrimitiveReturn<TSelection, TAlias>\n : never;\n\nexport type FieldSelectionFactoryObjectReturn<\n TSchema extends AnyGraphqlSchema,\n TSelection extends AnyFieldSelection & { type: OutputObjectSpecifier },\n TAlias extends string | null,\n> = <TNested extends AnyNestedObject[]>(\n nest: NestedObjectFieldsBuilder<TSchema, TSelection[\"type\"][\"name\"], TNested>,\n) => {\n [_ in TAlias extends null ? TSelection[\"field\"] : TAlias]: AbstractFieldSelection<\n TSelection[\"parent\"],\n TSelection[\"field\"],\n TSelection[\"type\"],\n TSelection[\"args\"],\n TSelection[\"directives\"],\n { object: MergeFields<TNested> }\n >;\n};\n\nexport type FieldSelectionFactoryUnionReturn<\n TSchema extends AnyGraphqlSchema,\n TSelection extends AnyFieldSelection & { type: OutputUnionSpecifier },\n TAlias extends string | null,\n> = <TNested extends AnyNestedUnion>(\n nest: NestedUnionFieldsBuilder<TSchema, UnionMemberName<TSchema, TSelection[\"type\"]>, TNested>,\n) => {\n [_ in TAlias extends null ? TSelection[\"field\"] : TAlias]: AbstractFieldSelection<\n TSelection[\"parent\"],\n TSelection[\"field\"],\n TSelection[\"type\"],\n TSelection[\"args\"],\n TSelection[\"directives\"],\n { union: TNested }\n >;\n};\n\nexport type FieldSelectionFactoryPrimitiveReturn<\n TSelection extends AnyFieldSelection & { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier },\n TAlias extends string | null,\n> = {\n [_ in TAlias extends null ? TSelection[\"field\"] : TAlias]: AbstractFieldSelection<\n TSelection[\"parent\"],\n TSelection[\"field\"],\n TSelection[\"type\"],\n TSelection[\"args\"],\n TSelection[\"directives\"],\n {}\n >;\n};\n\nexport type FieldSelectionFactoryFieldArguments<TFieldSelectionTemplate extends AnyFieldSelection> =\n | TFieldSelectionTemplate[\"args\"]\n | IfEmpty<TFieldSelectionTemplate[\"args\"], void | null>;\n","import type { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { AnyFields, InferFields } from \"../fragment\";\nimport type {\n AnyConstAssignableInput,\n AnyGraphqlSchema,\n ConstAssignableInput,\n InputTypeSpecifiers,\n OperationType,\n} from \"../schema\";\nimport { GqlElement, type GqlElementContext } from \"./gql-element\";\n\nexport type AnyInlineOperation =\n | AnyInlineOperationOf<\"query\">\n | AnyInlineOperationOf<\"mutation\">\n | AnyInlineOperationOf<\"subscription\">;\nexport type AnyInlineOperationOf<TOperationType extends OperationType> = InlineOperation<\n TOperationType,\n string,\n string[],\n any,\n AnyFields,\n any\n>;\n\ndeclare const __INLINE_OPERATION_BRAND__: unique symbol;\n\ntype InlineOperationArtifact<\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TFields extends Partial<AnyFields>,\n TData extends object,\n> = {\n readonly operationType: TOperationType;\n readonly operationName: TOperationName;\n readonly variableNames: TVariableNames;\n readonly documentSource: () => TFields;\n readonly document: TypedDocumentNode<TData, TVariables>;\n};\n\nexport class InlineOperation<\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TFields extends Partial<AnyFields>,\n TData extends object,\n >\n extends GqlElement<InlineOperationArtifact<TOperationType, TOperationName, TVariableNames, TVariables, TFields, TData>>\n implements InlineOperationArtifact<TOperationType, TOperationName, TVariableNames, TVariables, TFields, TData>\n{\n declare readonly [__INLINE_OPERATION_BRAND__]: Hidden<{\n operationType: TOperationType;\n }>;\n\n private constructor(\n define: (\n context: GqlElementContext | null,\n ) => InlineOperationArtifact<TOperationType, TOperationName, TVariableNames, TVariables, TFields, TData>,\n ) {\n super(define);\n }\n\n public get operationType() {\n return GqlElement.get(this).operationType;\n }\n public get operationName() {\n return GqlElement.get(this).operationName;\n }\n public get variableNames() {\n return GqlElement.get(this).variableNames;\n }\n public get documentSource() {\n return GqlElement.get(this).documentSource;\n }\n public get document() {\n return GqlElement.get(this).document;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields,\n >(\n define: (context: GqlElementContext | null) => {\n operationType: TOperationType;\n operationName: TOperationName;\n variableNames: (keyof TVariableDefinitions & string)[];\n documentSource: () => TFields;\n document: TypedDocumentNode<InferFields<TSchema, TFields>, ConstAssignableInput<TSchema, TVariableDefinitions>>;\n },\n ) {\n return new InlineOperation(define);\n }\n}\n","/** Model helper types mirroring the `gql.model` API. */\n\nimport type { SwitchIfEmpty } from \"../../utils/empty-object\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { AnyAssignableInput, AnyFields, AssignableInput, InferFields } from \"../fragment\";\nimport type { AnyGraphqlSchema, InputTypeSpecifiers } from \"../schema\";\nimport { GqlElement } from \"./gql-element\";\n\nexport type AnyModel = Model<string, any, AnyFields, any, any>;\n\ntype ModelArtifact<\n TTypeName extends string,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TRaw extends object,\n TNormalized extends object,\n> = {\n readonly typename: TTypeName;\n readonly fragment: (variables: TVariables) => TFields;\n readonly normalize: (raw: TRaw) => TNormalized;\n};\n\ndeclare const __MODEL_BRAND__: unique symbol;\nexport class Model<\n TTypeName extends string,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TRaw extends object,\n TNormalized extends object,\n >\n extends GqlElement<ModelArtifact<TTypeName, TVariables, TFields, TRaw, TNormalized>>\n implements ModelArtifact<TTypeName, TVariables, TFields, TRaw, TNormalized>\n{\n declare readonly [__MODEL_BRAND__]: Hidden<{\n input: TVariables;\n output: TNormalized;\n }>;\n\n private constructor(define: () => ModelArtifact<TTypeName, TVariables, TFields, TRaw, TNormalized>) {\n super(define);\n }\n\n public get typename() {\n return GqlElement.get(this).typename;\n }\n public get fragment() {\n return GqlElement.get(this).fragment;\n }\n public get normalize() {\n return GqlElement.get(this).normalize;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields,\n TNormalized extends object,\n >(\n define: () => {\n typename: TTypeName;\n fragment: (variables: SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>) => TFields;\n normalize: (raw: NoInfer<InferFields<TSchema, TFields>>) => TNormalized;\n },\n ) {\n type Fields = TFields & { [key: symbol]: never };\n type Raw = InferFields<TSchema, TFields> & { [key: symbol]: never };\n\n return new Model(\n define as () => ModelArtifact<\n TTypeName,\n SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>,\n Fields,\n Raw,\n TNormalized\n >,\n );\n }\n}\n","import type { SwitchIfEmpty } from \"../../utils/empty-object\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { AnyAssignableInput, AnyFields, AssignableInput } from \"../fragment\";\nimport type { AnyProjection, InferExecutionResultProjection } from \"../runtime\";\nimport type { AnyGraphqlSchema, InputTypeSpecifiers, OperationType } from \"../schema\";\nimport { GqlElement } from \"./gql-element\";\n\nexport type AnySlice = AnySliceOf<\"query\"> | AnySliceOf<\"mutation\"> | AnySliceOf<\"subscription\">;\nexport type AnySliceOf<TOperationType extends OperationType> = Slice<TOperationType, any, AnyFields, AnyProjection>;\n\ntype SliceDefinition<\n TOperationType extends OperationType,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TProjection extends AnyProjection,\n> = {\n readonly operationType: TOperationType;\n readonly embed: (variables: TVariables) => SlicePayload<TVariables, TFields, TProjection>;\n};\n\ndeclare const __OPERATION_SLICE_BRAND__: unique symbol;\nexport class Slice<\n TOperationType extends OperationType,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TProjection extends AnyProjection,\n >\n extends GqlElement<SliceDefinition<TOperationType, TVariables, TFields, TProjection>>\n implements SliceDefinition<TOperationType, TVariables, TFields, TProjection>\n{\n declare readonly [__OPERATION_SLICE_BRAND__]: Hidden<{\n operationType: TOperationType;\n output: InferExecutionResultProjection<TProjection>;\n }>;\n\n private constructor(define: () => SliceDefinition<TOperationType, TVariables, TFields, TProjection>) {\n super(define);\n }\n\n public get operationType() {\n return GqlElement.get(this).operationType;\n }\n public get embed() {\n return GqlElement.get(this).embed;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TOperationType extends OperationType,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields,\n TProjection extends AnyProjection,\n >(\n define: () => {\n operationType: TOperationType;\n embed: (\n variables: SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>,\n ) => SlicePayload<\n SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>,\n TFields,\n TProjection\n >;\n },\n ) {\n type Fields = TFields & { [key: symbol]: never };\n type Variables = SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>;\n\n return new Slice(define as () => SliceDefinition<TOperationType, Variables, Fields, TProjection>);\n }\n}\n\nexport type AnySlicePayloads = { [key: string]: AnySlicePayload };\n\nexport type AnySlicePayload = SlicePayload<AnyAssignableInput | void, AnyFields, AnyProjection>;\nexport type SlicePayload<\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TProjection extends AnyProjection,\n> = {\n variables: TVariables;\n getFields: () => TFields;\n projection: TProjection;\n};\n\nexport type InferOutputOfSlice<TSlice extends AnySliceOf<any>> = ReturnType<TSlice[typeof __OPERATION_SLICE_BRAND__]>[\"output\"];\n","import type { AnySlicePayload, ProjectionPathGraphNode } from \"../types/element\";\nimport { mapValues } from \"../utils/map-values\";\n\ntype ExecutionResultProjectionPathGraphIntermediate = {\n [segment: string]: { label: string; raw: string; segments: string[] }[];\n};\n\nfunction createPathGraph(paths: ExecutionResultProjectionPathGraphIntermediate[string]): ProjectionPathGraphNode {\n const intermediate = paths.reduce(\n (acc: ExecutionResultProjectionPathGraphIntermediate, { label, raw, segments: [segment, ...segments] }) => {\n if (segment) {\n (acc[segment] || (acc[segment] = [])).push({ label, raw, segments });\n }\n return acc;\n },\n {},\n );\n\n return {\n matches: paths.map(({ label, raw, segments }) => ({ label, path: raw, exact: segments.length === 0 })),\n children: mapValues(intermediate, (paths) => createPathGraph(paths)),\n } satisfies ProjectionPathGraphNode;\n}\n\nexport function createPathGraphFromSliceEntries(fragments: { [key: string]: AnySlicePayload }) {\n const paths = Object.entries(fragments).flatMap(([label, slice]) =>\n Array.from(\n new Map(\n slice.projection.paths.map(({ full: raw, segments }) => {\n const [first, ...rest] = segments;\n return [raw, { label, raw, segments: [`${label}_${first}`, ...rest] }];\n }),\n ).values(),\n ),\n );\n\n return createPathGraph(paths);\n}\n","import { createExecutionResultParser } from \"../runtime/parse-execution-result\";\nimport {\n type AnySlicePayloads,\n ComposedOperation,\n type ComposedOperationDefinitionBuilder,\n type ConcatSlicePayloads,\n} from \"../types/element\";\nimport type { AnyGraphqlRuntimeAdapter } from \"../types/runtime\";\nimport type { AnyGraphqlSchema, InputTypeSpecifiers, OperationType } from \"../types/schema\";\n\nimport { buildDocument } from \"./build-document\";\nimport { createVarRefs, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\nimport { createPathGraphFromSliceEntries } from \"./projection-path-graph\";\n\nexport const createComposedOperationComposerFactory = <\n TSchema extends AnyGraphqlSchema,\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n>() => {\n return <TOperationType extends OperationType>(operationType: TOperationType) => {\n return <\n TOperationName extends string,\n TSliceFragments extends AnySlicePayloads,\n TVarDefinitions extends InputTypeSpecifiers[] = [{}],\n >(\n options: {\n operationName: TOperationName;\n variables?: TVarDefinitions;\n },\n builder: ComposedOperationDefinitionBuilder<TSchema, MergeVarDefinitions<TVarDefinitions>, TSliceFragments>,\n ) => {\n return ComposedOperation.create<\n TSchema,\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n MergeVarDefinitions<TVarDefinitions>,\n TSliceFragments\n >(() => {\n const { operationName } = options;\n const variables = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n const $ = createVarRefs(variables);\n const fragments = builder({ $ });\n\n const fields = Object.fromEntries(\n Object.entries(fragments).flatMap(([label, { getFields: fields }]) =>\n Object.entries(fields).map(([key, reference]) => [`${label}_${key}`, reference]),\n ),\n ) as ConcatSlicePayloads<TSliceFragments>;\n const projectionPathGraph = createPathGraphFromSliceEntries(fragments);\n\n return {\n operationType,\n operationName,\n variableNames: Object.keys(variables) as (keyof MergeVarDefinitions<TVarDefinitions> & string)[],\n projectionPathGraph,\n document: buildDocument({\n operationName,\n operationType,\n variables,\n fields,\n }),\n parse: createExecutionResultParser({ fragments, projectionPathGraph }),\n };\n });\n };\n };\n};\n","export const wrapByKey = <TName extends string, TValue>(name: TName, value: TValue) =>\n ({\n [name]: value,\n }) as {\n [K in TName]: TValue;\n };\n","import {\n type AnyFieldSelectionFactory,\n type AnyFieldSelectionFactoryReturn,\n type FieldSelectionFactories,\n type FieldSelectionFactoryObjectReturn,\n type FieldSelectionFactoryPrimitiveReturn,\n type FieldSelectionFactoryUnionReturn,\n mergeFields,\n type NestedObjectFieldsBuilder,\n type NestedUnionFieldsBuilder,\n} from \"../types/element\";\nimport type { AnyFieldSelection, AnyNestedObject, AnyNestedUnion } from \"../types/fragment\";\nimport type {\n AnyGraphqlSchema,\n OutputEnumSpecifier,\n OutputObjectSpecifier,\n OutputScalarSpecifier,\n OutputTypenameSpecifier,\n OutputUnionSpecifier,\n UnionMemberName,\n} from \"../types/schema\";\nimport { mapValues } from \"../utils/map-values\";\nimport { wrapByKey } from \"../utils/wrap-by-key\";\n\n// Cache is schema-scoped to avoid cross-schema contamination when multiple schemas share type names\ntype CacheMap = Map<string, Record<string, AnyFieldSelectionFactory>>;\n\nconst cacheMapBySchema = new WeakMap<AnyGraphqlSchema, CacheMap>();\nconst ensureCacheMapBySchema = (schema: AnyGraphqlSchema) => {\n const cachedCacheMap = cacheMapBySchema.get(schema);\n if (cachedCacheMap) {\n return cachedCacheMap;\n }\n\n const cacheMap: CacheMap = new Map();\n cacheMapBySchema.set(schema, cacheMap);\n return cacheMap;\n};\n\nexport const createFieldFactories = <TSchema extends AnyGraphqlSchema, TTypeName extends keyof TSchema[\"object\"] & string>(\n schema: TSchema,\n typeName: TTypeName,\n): FieldSelectionFactories<TSchema, TTypeName> => {\n const cacheMap = ensureCacheMapBySchema(schema);\n const cached = cacheMap.get(typeName);\n if (cached) {\n return cached as unknown as FieldSelectionFactories<TSchema, TTypeName>;\n }\n\n const factories = createFieldFactoriesInner(schema, typeName);\n cacheMap.set(typeName, factories as unknown as Record<string, AnyFieldSelectionFactory>);\n\n return factories;\n};\n\nconst createFieldFactoriesInner = <TSchema extends AnyGraphqlSchema, TTypeName extends keyof TSchema[\"object\"] & string>(\n schema: TSchema,\n typeName: TTypeName,\n): FieldSelectionFactories<TSchema, TTypeName> => {\n const typeDef = schema.object[typeName];\n if (!typeDef) {\n throw new Error(`Type ${typeName} is not defined in schema objects`);\n }\n\n const entries = Object.entries(typeDef.fields).map(([fieldName, type]): [string, AnyFieldSelectionFactory] => {\n const factory: AnyFieldSelectionFactory = <TAlias extends string | null = null>(\n fieldArgs: AnyFieldSelection[\"args\"] | null | void,\n extras?: { alias?: TAlias; directives?: AnyFieldSelection[\"directives\"] },\n ) => {\n const wrap = <T>(value: T) => wrapByKey((extras?.alias ?? fieldName) as TAlias extends null ? string : TAlias, value);\n\n if (type.kind === \"object\") {\n type TSelection = AnyFieldSelection & { type: OutputObjectSpecifier };\n const factoryReturn: AnyFieldSelectionFactoryReturn<TAlias> = (<TNested extends AnyNestedObject[]>(\n nest: NestedObjectFieldsBuilder<TSchema, TSelection[\"type\"][\"name\"], TNested>,\n ) =>\n wrap({\n parent: typeName,\n field: fieldName,\n type: type,\n args: fieldArgs ?? {},\n directives: extras?.directives ?? {},\n object: mergeFields(nest({ f: createFieldFactories(schema, type.name) })),\n union: null,\n } satisfies AnyFieldSelection)) satisfies FieldSelectionFactoryObjectReturn<TSchema, TSelection, TAlias>;\n\n return factoryReturn;\n }\n\n if (type.kind === \"union\") {\n type TSelection = AnyFieldSelection & { type: OutputUnionSpecifier };\n const factoryReturn: AnyFieldSelectionFactoryReturn<TAlias> = (<TNested extends AnyNestedUnion>(\n nest: NestedUnionFieldsBuilder<TSchema, UnionMemberName<TSchema, TSelection[\"type\"]>, TNested>,\n ) =>\n wrap({\n parent: typeName,\n field: fieldName,\n type: type,\n args: fieldArgs ?? {},\n directives: extras?.directives ?? {},\n object: null,\n union: mapValues(\n nest as Record<string, NestedObjectFieldsBuilder<TSchema, string, AnyNestedObject[]> | undefined>,\n (builder, memberName) => {\n if (!builder) {\n throw new Error(`Builder is undefined for member name: ${memberName}`);\n }\n return mergeFields(builder({ f: createFieldFactories(schema, memberName) }));\n },\n ) as TNested,\n } satisfies AnyFieldSelection)) satisfies FieldSelectionFactoryUnionReturn<TSchema, TSelection, TAlias>;\n\n return factoryReturn;\n }\n\n if (type.kind === \"scalar\" || type.kind === \"enum\" || type.kind === \"typename\") {\n type TSelection = AnyFieldSelection & { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier };\n const factoryReturn: AnyFieldSelectionFactoryReturn<TAlias> = wrap({\n parent: typeName,\n field: fieldName,\n type,\n args: fieldArgs ?? {},\n directives: extras?.directives ?? {},\n object: null,\n union: null,\n } satisfies AnyFieldSelection) satisfies FieldSelectionFactoryPrimitiveReturn<TSelection, TAlias>;\n return factoryReturn;\n }\n\n throw new Error(`Unsupported field type: ${type satisfies never}`);\n };\n\n return [fieldName, factory] as const;\n });\n\n const factories: Record<string, AnyFieldSelectionFactory> = Object.fromEntries(entries);\n\n return factories as unknown as FieldSelectionFactories<TSchema, TTypeName>;\n};\n","import { type FieldsBuilder, InlineOperation, type MergeFields, mergeFields } from \"../types/element\";\nimport type { AnyFields } from \"../types/fragment\";\nimport type { AnyGraphqlRuntimeAdapter } from \"../types/runtime\";\nimport type { AnyGraphqlSchema, InputTypeSpecifiers, OperationType } from \"../types/schema\";\n\nimport { buildDocument } from \"./build-document\";\nimport { createFieldFactories } from \"./fields-builder\";\nimport { createVarRefs, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\n\nexport const createInlineOperationComposerFactory = <\n TSchema extends AnyGraphqlSchema,\n _TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n>(\n schema: NoInfer<TSchema>,\n) => {\n return <TOperationType extends OperationType>(operationType: TOperationType) => {\n type TTypeName = TSchema[\"operations\"][TOperationType] & keyof TSchema[\"object\"] & string;\n const operationTypeName: TTypeName | null = schema.operations[operationType];\n if (operationTypeName === null) {\n throw new Error(`Operation type ${operationType} is not defined in schema roots`);\n }\n\n return <TOperationName extends string, TFields extends AnyFields[], TVarDefinitions extends InputTypeSpecifiers[] = [{}]>(\n options: {\n operationName: TOperationName;\n variables?: TVarDefinitions;\n },\n fieldBuilder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFields>,\n ) => {\n return InlineOperation.create<\n TSchema,\n TOperationType,\n TOperationName,\n MergeVarDefinitions<TVarDefinitions>,\n MergeFields<TFields>\n >(() => {\n const { operationName } = options;\n const variables = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n const $ = createVarRefs(variables);\n const f = createFieldFactories(schema, operationTypeName);\n const fields = mergeFields(fieldBuilder({ f, $ }));\n\n return {\n operationType,\n operationName,\n variableNames: Object.keys(variables) as (keyof MergeVarDefinitions<TVarDefinitions> & string)[],\n documentSource: () => fields,\n document: buildDocument({\n operationName,\n operationType,\n variables,\n fields,\n }),\n };\n });\n };\n };\n};\n","import { type FieldsBuilder, type MergeFields, Model, mergeFields } from \"../types/element\";\nimport type { AnyFields, InferFields } from \"../types/fragment\";\nimport type { AnyGraphqlSchema, InputTypeSpecifiers, OperationType } from \"../types/schema\";\nimport { mapValues } from \"../utils/map-values\";\nimport { createFieldFactories } from \"./fields-builder\";\nimport { createVarAssignments, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\n\nexport const createGqlModelComposers = <TSchema extends AnyGraphqlSchema>(schema: NoInfer<TSchema>) => {\n type ModelBuilder<TTypeName extends keyof TSchema[\"object\"] & string> = <\n TFieldEntries extends AnyFields[],\n TNormalized extends object,\n TVarDefinitions extends InputTypeSpecifiers[] = [{}],\n >(\n options: {\n variables?: TVarDefinitions;\n },\n builder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>,\n normalize: (raw: NoInfer<InferFields<TSchema, MergeFields<TFieldEntries>>>) => TNormalized,\n ) => ReturnType<\n typeof Model.create<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, MergeFields<TFieldEntries>, TNormalized>\n >;\n\n const createModelComposer = <TTypeName extends keyof TSchema[\"object\"] & string>(\n typename: TTypeName,\n ): ModelBuilder<TTypeName> => {\n return <TFieldEntries extends AnyFields[], TNormalized extends object, TVarDefinitions extends InputTypeSpecifiers[] = [{}]>(\n options: {\n variables?: TVarDefinitions;\n },\n builder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>,\n normalize: (raw: NoInfer<InferFields<TSchema, MergeFields<TFieldEntries>>>) => TNormalized,\n ) =>\n Model.create<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, MergeFields<TFieldEntries>, TNormalized>(() => {\n const varDefinitions = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n return {\n typename,\n fragment: (variables) => {\n const f = createFieldFactories(schema, typename);\n const $ = createVarAssignments(varDefinitions, variables);\n return mergeFields(builder({ f, $ }));\n },\n normalize,\n };\n });\n };\n\n type ModelBuildersAll = {\n readonly [TTypeName in keyof TSchema[\"object\"]]: TTypeName extends string ? ModelBuilder<TTypeName> : never;\n };\n type ModelBuilders = Omit<ModelBuildersAll, TSchema[\"operations\"][OperationType] & keyof ModelBuildersAll>;\n\n return mapValues(schema.object, (_, typename) => createModelComposer(typename)) as ModelBuilders;\n};\n","import { handleProjectionBuilder } from \"../runtime/slice\";\nimport {\n type ExecutionResultProjectionsBuilder,\n type FieldsBuilder,\n type MergeFields,\n mergeFields,\n Slice,\n} from \"../types/element\";\nimport type { AnyFields } from \"../types/fragment\";\nimport type { AnyGraphqlRuntimeAdapter, AnyProjection } from \"../types/runtime\";\nimport type { AnyGraphqlSchema, InputTypeSpecifiers, OperationType } from \"../types/schema\";\n\nimport { createFieldFactories } from \"./fields-builder\";\nimport { createVarAssignments, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\n\nexport const createSliceComposerFactory = <TSchema extends AnyGraphqlSchema, TRuntimeAdapter extends AnyGraphqlRuntimeAdapter>(\n schema: NoInfer<TSchema>,\n) => {\n return <TOperationType extends OperationType>(operationType: TOperationType) => {\n type TTypeName = TSchema[\"operations\"][TOperationType] & keyof TSchema[\"object\"] & string;\n const operationTypeName: TTypeName | null = schema.operations[operationType];\n if (operationTypeName === null) {\n throw new Error(`Operation type ${operationType} is not defined in schema roots`);\n }\n\n return <\n TFieldEntries extends AnyFields[],\n TProjection extends AnyProjection,\n TVarDefinitions extends InputTypeSpecifiers[] = [{}],\n >(\n options: {\n variables?: TVarDefinitions;\n },\n fieldBuilder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>,\n projectionBuilder: ExecutionResultProjectionsBuilder<TSchema, TRuntimeAdapter, MergeFields<TFieldEntries>, TProjection>,\n ) =>\n Slice.create<TSchema, TOperationType, MergeVarDefinitions<TVarDefinitions>, MergeFields<TFieldEntries>, TProjection>(() => {\n const varDefinitions = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n const projection = handleProjectionBuilder(projectionBuilder);\n\n return {\n operationType,\n embed: (variables) => {\n const f = createFieldFactories(schema, operationTypeName);\n const $ = createVarAssignments(varDefinitions, variables);\n const fields = mergeFields(fieldBuilder({ f, $ }));\n return { variables, getFields: () => fields, projection };\n },\n };\n });\n };\n};\n","export type AnyTypeModifier = string;\n\nexport type TypeModifier = \"?\" | `!${string}` | `[]${string}`;\n\nexport type ListTypeModifierSuffix = \"[]\" | \"[]!\";\nexport type StripTailingListFromTypeModifier<TModifier extends TypeModifier> =\n TModifier extends `${infer TInner extends TypeModifier}${ListTypeModifierSuffix}` ? TInner : TModifier;\n\nexport type ApplyTypeModifier<TModifier extends TypeModifier, TInner> = TModifier extends \"!\"\n ? TInner\n : TModifier extends \"?\" | \"\"\n ? TInner | null | undefined\n : TModifier extends `![]${infer TNext extends TypeModifier}`\n ? ApplyTypeModifier<TNext, TInner[]>\n : TModifier extends `[]${infer TNext extends TypeModifier}`\n ? ApplyTypeModifier<TNext, (TInner | null | undefined)[]>\n : never;\n\nexport type ApplyTypeModifierToKeys<T extends { [key: string]: { modifier: TypeModifier } }> = {\n readonly [K in keyof T as T[K][\"modifier\"] extends `${string}!` ? K : never]-?: T[K];\n} & {\n readonly [K in keyof T as T[K][\"modifier\"] extends `${string}!` ? never : K]+?: T[K];\n};\n\nexport type ModifiedTypeName<TNameCandidate extends string, TName extends TNameCandidate, TModifier extends AnyTypeModifier> =\n | (`${TName}:${TModifier}` & NoInfer<TypeModifierValidation<TModifier>>)\n | NoInfer<`${TName}:${TypeModifierSuggestion<TModifier>}`>;\n\ntype TypeModifierSuggestion<TModifier extends AnyTypeModifier> = [TModifier, TypeModifier] extends [TypeModifier, TModifier]\n ? \"?\" | \"!\" | \"[]\"\n : TModifier extends \"?\"\n ? \"?\"\n : TModifier extends `${string}!`\n ? `${TModifier}[]`\n : TModifier extends `${string}[]`\n ? `${TModifier}[]` | `${TModifier}!`\n : never;\n\ntype TypeModifierValidation<TModifier extends AnyTypeModifier> = TModifier extends \"?\" | \"!\"\n ? string\n : TModifier extends `${\"!\" | \"\"}[]${infer TNext extends TypeModifier | \"\"}`\n ? TNext extends \"\"\n ? string\n : TypeModifierValidation<TNext>\n : { _: \"If you see this message on type error, modifier format is wrong.\" };\n\nexport const parseModifiedTypeName = <TName extends string, TModifier extends AnyTypeModifier>(\n nameAndModifier: ModifiedTypeName<string, TName, TModifier>,\n) => {\n if (typeof nameAndModifier !== \"string\") {\n throw new Error(`Invalid modified type name: ${nameAndModifier}`);\n }\n\n const [name, modifier] = nameAndModifier.split(\":\") as [TName, TModifier];\n return { name, modifier };\n};\n","import {\n type AnyConstDirectiveAttachments,\n type AnyGraphqlSchema,\n type AnyTypeSpecifier,\n type ConstAssignableInputValue,\n type ModifiedTypeName,\n parseModifiedTypeName,\n type TypeModifier,\n} from \"../types/schema\";\nimport { wrapByKey } from \"../utils/wrap-by-key\";\n\ntype AssignableDefaultValue<\n TSchema extends AnyGraphqlSchema,\n TKind extends \"scalar\" | \"enum\" | \"input\",\n TName extends keyof TSchema[TKind] & string,\n TModifier extends TypeModifier,\n> = ConstAssignableInputValue<\n TSchema,\n {\n scalar: { kind: \"scalar\"; name: TName; modifier: TModifier; directives: {}; defaultValue: null };\n enum: { kind: \"enum\"; name: TName; modifier: TModifier; directives: {}; defaultValue: null };\n input: { kind: \"input\"; name: TName; modifier: TModifier; directives: {}; defaultValue: null };\n }[TKind]\n>;\n\nexport const createVarBuilder = <TSchema extends AnyGraphqlSchema>(schema: TSchema) => {\n const $ = <TVarName extends string>(varName: TVarName) => {\n const createRefBuilder = <TKind extends \"scalar\" | \"enum\" | \"input\">(kind: TKind) => {\n type InputRef<\n TTypeName extends keyof TSchema[TKind] & string,\n TModifier extends TypeModifier,\n TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier>) | null,\n TDirectives extends AnyConstDirectiveAttachments,\n > = {\n kind: TKind;\n name: TTypeName;\n modifier: TModifier;\n defaultValue: TDefaultFn extends null\n ? null\n : {\n default: ReturnType<NonNullable<TDefaultFn>>;\n };\n directives: TDirectives;\n };\n\n return <\n const TTypeName extends keyof TSchema[TKind] & string,\n const TModifier extends TypeModifier,\n const TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier>) | null = null,\n const TDirectives extends AnyConstDirectiveAttachments = {},\n >(\n type: ModifiedTypeName<string, TTypeName, TModifier>,\n extras?: {\n default?:\n | (TDefaultFn & (() => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier>))\n | (NoInfer<TDefaultFn> extends null ? () => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier> : never);\n directives?: TDirectives;\n },\n ) =>\n wrapByKey(varName, {\n kind,\n ...parseModifiedTypeName(type),\n defaultValue: extras?.default ? { default: extras.default() } : null,\n directives: extras?.directives ?? ({} as TDirectives),\n } satisfies AnyTypeSpecifier as InputRef<TTypeName, TModifier, TDefaultFn, TDirectives>);\n };\n\n return {\n scalar: createRefBuilder(\"scalar\"),\n enum: createRefBuilder(\"enum\"),\n input: createRefBuilder(\"input\"),\n\n byField: <\n const TTypeName extends keyof TSchema[\"object\"] & string,\n const TFieldName extends keyof TSchema[\"object\"][TTypeName][\"fields\"] & string,\n const TArgName extends keyof TSchema[\"object\"][TTypeName][\"fields\"][TFieldName][\"arguments\"] & string,\n >(\n typeName: TTypeName,\n fieldName: TFieldName,\n argName: TArgName,\n ) => {\n const argTypeRef = schema.object[typeName]?.fields[fieldName]?.arguments[argName];\n\n if (!argTypeRef) {\n throw new Error(`Argument ${argName} not found in field ${fieldName} of type ${typeName}`);\n }\n\n // TODO: clone\n return { ...argTypeRef } as TSchema[\"object\"][TTypeName][\"fields\"][TFieldName][\"arguments\"][TArgName];\n },\n };\n };\n\n return { $ };\n};\n","import type { AnyComposedOperation, AnyInlineOperation, AnyModel, AnySlice } from \"../types/element\";\nimport type { AnyGraphqlRuntimeAdapter } from \"../types/runtime\";\nimport type { AnyGraphqlSchema } from \"../types/schema\";\nimport { createComposedOperationComposerFactory } from \"./composed-operation\";\nimport { createInlineOperationComposerFactory } from \"./inline-operation\";\nimport { createGqlModelComposers } from \"./model\";\nimport { createSliceComposerFactory } from \"./slice\";\nimport { createVarBuilder } from \"./var-builder\";\n\nexport type GqlElementComposer<TComposers, THelper> = <\n TResult extends AnyModel | AnySlice | AnyComposedOperation | AnyInlineOperation,\n>(\n composeElement: (composers: TComposers, helper: THelper) => TResult,\n) => TResult;\n\nexport const createGqlElementComposer = <TSchema extends AnyGraphqlSchema, TRuntimeAdapter extends AnyGraphqlRuntimeAdapter>(\n schema: NoInfer<TSchema>,\n) => {\n const model = createGqlModelComposers<TSchema>(schema);\n const createSliceComposer = createSliceComposerFactory<TSchema, TRuntimeAdapter>(schema);\n const createComposedOperationFactory = createComposedOperationComposerFactory<TSchema, TRuntimeAdapter>();\n const createInlineOperationComposer = createInlineOperationComposerFactory<TSchema, TRuntimeAdapter>(schema);\n const composers = {\n model,\n query: {\n slice: createSliceComposer(\"query\"),\n composed: createComposedOperationFactory(\"query\"),\n inline: createInlineOperationComposer(\"query\"),\n },\n mutation: {\n slice: createSliceComposer(\"mutation\"),\n composed: createComposedOperationFactory(\"mutation\"),\n inline: createInlineOperationComposer(\"mutation\"),\n },\n subscription: {\n slice: createSliceComposer(\"subscription\"),\n composed: createComposedOperationFactory(\"subscription\"),\n inline: createInlineOperationComposer(\"subscription\"),\n },\n };\n\n const helper = {\n ...createVarBuilder(schema),\n };\n\n const elementComposer: GqlElementComposer<typeof composers, typeof helper> = (composeElement) =>\n composeElement(composers, helper);\n\n return elementComposer;\n};\n","import {\n type AnyConstDirectiveAttachments,\n type AnyTypeSpecifier,\n type InputTypeKind,\n type InputTypeSpecifiers,\n type ModifiedTypeName,\n type OutputTypeKind,\n parseModifiedTypeName,\n type TypeModifier,\n} from \"../types/schema\";\nimport type { ConstValue } from \"../types/schema/const-value\";\n\nconst createUnsafeInputTypeSpecifierFactory = <const TKind extends InputTypeKind>(kind: TKind) => {\n type UnsafeInputTypeSpecifier<\n TName extends string,\n TModifier extends TypeModifier,\n TDefaultFactory extends (() => ConstValue) | null,\n TDirectives extends AnyConstDirectiveAttachments,\n > = {\n kind: TKind;\n name: TName;\n modifier: TModifier;\n defaultValue: TDefaultFactory extends null ? null : { default: ReturnType<NonNullable<TDefaultFactory>> };\n directives: TDirectives;\n };\n\n return <\n const TName extends string,\n const TModifier extends TypeModifier,\n const TDefaultFactory extends (() => ConstValue) | null = null,\n const TDirectives extends AnyConstDirectiveAttachments = {},\n >(\n type: ModifiedTypeName<string, TName, TModifier>,\n extras: {\n default?: TDefaultFactory;\n directives?: TDirectives;\n },\n ): UnsafeInputTypeSpecifier<TName, TModifier, TDefaultFactory, TDirectives> =>\n ({\n kind,\n ...parseModifiedTypeName(type),\n defaultValue: extras.default ? { default: extras.default() } : null,\n directives: extras.directives ?? ({} as TDirectives),\n }) satisfies AnyTypeSpecifier as UnsafeInputTypeSpecifier<TName, TModifier, TDefaultFactory, TDirectives>;\n};\n\nexport const unsafeInputType = {\n scalar: createUnsafeInputTypeSpecifierFactory(\"scalar\"),\n enum: createUnsafeInputTypeSpecifierFactory(\"enum\"),\n input: createUnsafeInputTypeSpecifierFactory(\"input\"),\n};\n\nconst createUnsafeOutputTypeSpecifierFactory = <const TKind extends OutputTypeKind>(kind: TKind) => {\n type UnsafeOutputTypeSpecifier<\n TName extends string,\n TModifier extends TypeModifier,\n TArguments extends InputTypeSpecifiers,\n TDirectives extends AnyConstDirectiveAttachments,\n > = {\n kind: TKind;\n name: TName;\n modifier: TModifier;\n arguments: TArguments;\n directives: TDirectives;\n };\n\n return <\n const TName extends string,\n const TModifier extends TypeModifier,\n const TArguments extends InputTypeSpecifiers = {},\n const TDirectives extends AnyConstDirectiveAttachments = {},\n >(\n type: ModifiedTypeName<string, TName, TModifier>,\n extras: {\n arguments?: TArguments;\n directives?: TDirectives;\n },\n ): UnsafeOutputTypeSpecifier<TName, TModifier, InputTypeSpecifiers extends TArguments ? {} : TArguments, TDirectives> =>\n ({\n kind,\n ...parseModifiedTypeName(type),\n arguments: extras.arguments ?? ({} as TArguments),\n directives: extras.directives ?? ({} as TDirectives),\n }) satisfies AnyTypeSpecifier as UnsafeOutputTypeSpecifier<\n TName,\n TModifier,\n InputTypeSpecifiers extends TArguments ? {} : TArguments,\n TDirectives\n >;\n};\n\nexport const unsafeOutputType = {\n scalar: createUnsafeOutputTypeSpecifierFactory(\"scalar\"),\n enum: createUnsafeOutputTypeSpecifierFactory(\"enum\"),\n object: createUnsafeOutputTypeSpecifierFactory(\"object\"),\n union: createUnsafeOutputTypeSpecifierFactory(\"union\"),\n typename: createUnsafeOutputTypeSpecifierFactory(\"typename\"),\n};\n","import type {\n AnyConstDirectiveAttachments,\n EnumDefinition,\n InputDefinition,\n ObjectDefinition,\n OperationRoots,\n ScalarDefinition,\n UnionDefinition,\n} from \"../types/schema\";\nimport { type Hidden, hidden } from \"../utils/hidden\";\nimport { wrapByKey } from \"../utils/wrap-by-key\";\nimport { unsafeOutputType } from \"./type-specifier-builder\";\n\nexport const defineScalar = <const TName extends string, TInput, TOutput, TDirectives extends AnyConstDirectiveAttachments>(\n name: TName,\n definition: (tool: { type: typeof hidden }) => {\n input: Hidden<TInput>;\n output: Hidden<TOutput>;\n directives: TDirectives;\n },\n) =>\n wrapByKey(name, {\n _type: hidden() as Hidden<{ input: TInput; output: TOutput }>,\n name,\n directives: definition({ type: hidden }).directives,\n } satisfies ScalarDefinition<{ input: TInput; output: TOutput }>);\n\nexport const define = <const TName extends string>(name: TName) => ({\n enum: <const TValues extends EnumDefinition<string>[\"values\"], TDirectives extends AnyConstDirectiveAttachments>(\n values: TValues,\n directives: TDirectives,\n ) =>\n ({\n _type: hidden(),\n name,\n values,\n directives,\n }) satisfies EnumDefinition<keyof TValues & string>,\n\n input: <TFields extends InputDefinition[\"fields\"], TDirectives extends AnyConstDirectiveAttachments>(\n fields: TFields,\n directives: TDirectives,\n ) =>\n ({\n name,\n fields,\n directives,\n }) satisfies InputDefinition,\n\n object: <TFields extends ObjectDefinition[\"fields\"], TDirectives extends AnyConstDirectiveAttachments>(\n fields: TFields,\n directives: TDirectives,\n ) =>\n ({\n name,\n fields: {\n __typename: unsafeOutputType.typename(`${name}:!`, {}),\n ...fields,\n },\n directives,\n }) satisfies ObjectDefinition,\n\n union: <TTypes extends UnionDefinition[\"types\"], TDirectives extends AnyConstDirectiveAttachments>(\n types: TTypes,\n directives: TDirectives,\n ) =>\n ({\n name,\n types,\n directives,\n }) satisfies UnionDefinition,\n});\n\nexport const defineOperationRoots = <const TOperationRoots extends OperationRoots>(operationRoots: TOperationRoots) =>\n operationRoots;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["value","field","curr: Readonly<{ modifier: string; type: TypeNode }>","cache: { value: TDefinition } | null","define","define","define","define","define","paths","fields","cacheMap: CacheMap","factory: AnyFieldSelectionFactory","factoryReturn: AnyFieldSelectionFactoryReturn<TAlias>","operationTypeName: TTypeName | null","operationTypeName: TTypeName | null","elementComposer: GqlElementComposer<typeof composers, typeof helper>"],"sources":["../src/composer/build-document.ts","../src/types/element/gql-element.ts","../src/types/element/composed-operation.ts","../src/types/element/fields-builder.ts","../src/types/element/inline-operation.ts","../src/types/element/model.ts","../src/types/element/slice.ts","../src/composer/projection-path-graph.ts","../src/composer/composed-operation.ts","../src/utils/wrap-by-key.ts","../src/composer/fields-builder.ts","../src/composer/inline-operation.ts","../src/composer/model.ts","../src/composer/slice.ts","../src/types/type-foundation/modified-type-name.ts","../src/composer/var-builder.ts","../src/composer/gql-composer.ts","../src/utils/type-meta.ts","../src/schema/type-specifier-builder.ts","../src/schema/schema-builder.ts"],"sourcesContent":["import type { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport {\n type ArgumentNode,\n type ConstObjectFieldNode,\n type ConstValueNode,\n type DocumentNode,\n type FieldNode,\n type InlineFragmentNode,\n Kind,\n type NamedTypeNode,\n type ObjectFieldNode,\n OperationTypeNode,\n type TypeNode,\n type ValueNode,\n type VariableDefinitionNode,\n} from \"graphql\";\nimport {\n type AnyAssignableInput,\n type AnyAssignableInputValue,\n type AnyFields,\n type AnyNestedUnion,\n type InferFields,\n VarRef,\n} from \"../types/fragment\";\nimport type { AnyGraphqlSchema, ConstAssignableInput, OperationType } from \"../types/schema\";\nimport type { ConstValue, InputTypeSpecifiers, TypeModifier } from \"../types/type-foundation\";\n\nexport const buildArgumentValue = (value: AnyAssignableInputValue): ValueNode | null => {\n if (value === undefined) {\n return null;\n }\n\n if (value === null) {\n return {\n kind: Kind.NULL,\n };\n }\n\n if (value instanceof VarRef) {\n const inner = VarRef.getInner(value);\n if (inner.type === \"variable\") {\n return {\n kind: Kind.VARIABLE,\n name: { kind: Kind.NAME, value: inner.name },\n };\n }\n\n if (inner.type === \"const-value\") {\n return buildConstValueNode(inner.value);\n }\n\n throw new Error(`Unknown var ref type: ${inner satisfies never}`);\n }\n\n if (Array.isArray(value)) {\n return {\n kind: Kind.LIST,\n values: value.map((item) => buildArgumentValue(item)).filter((item) => item !== null),\n };\n }\n\n if (typeof value === \"object\") {\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(value)\n .map(([key, value]): ObjectFieldNode | null => {\n const valueNode = buildArgumentValue(value);\n return valueNode\n ? {\n kind: Kind.OBJECT_FIELD,\n name: { kind: Kind.NAME, value: key },\n value: valueNode,\n }\n : null;\n })\n .filter((item) => item !== null),\n };\n }\n\n if (typeof value === \"string\") {\n return {\n kind: Kind.STRING,\n value,\n };\n }\n\n if (typeof value === \"number\") {\n // Distinguish between INT and FLOAT\n const isFloat = !Number.isInteger(value) || value.toString().includes(\".\");\n return {\n kind: isFloat ? Kind.FLOAT : Kind.INT,\n value: value.toString(),\n };\n }\n\n if (typeof value === \"boolean\") {\n return {\n kind: Kind.BOOLEAN,\n value,\n };\n }\n\n throw new Error(`Unknown value type: ${typeof (value satisfies never)}`);\n};\n\nconst buildArguments = (args: AnyAssignableInput): ArgumentNode[] =>\n Object.entries(args ?? {})\n .map(([name, value]): ArgumentNode | null => {\n const valueNode = buildArgumentValue(value);\n return valueNode ? { kind: Kind.ARGUMENT, name: { kind: Kind.NAME, value: name }, value: valueNode } : null;\n })\n .filter((item) => item !== null);\n\nconst buildUnionSelection = (union: AnyNestedUnion): InlineFragmentNode[] =>\n Object.entries(union)\n .map(([typeName, object]): InlineFragmentNode | null => {\n return object\n ? {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: { kind: Kind.NAMED_TYPE, name: { kind: Kind.NAME, value: typeName } },\n selectionSet: { kind: Kind.SELECTION_SET, selections: buildField(object) },\n }\n : null;\n })\n .filter((item) => item !== null);\n\nconst buildField = (field: AnyFields): FieldNode[] =>\n Object.entries(field).map(\n ([alias, { args, field, object, union }]): FieldNode => ({\n kind: Kind.FIELD,\n name: { kind: Kind.NAME, value: field },\n alias: alias !== field ? { kind: Kind.NAME, value: alias } : undefined,\n arguments: buildArguments(args),\n selectionSet: object\n ? {\n kind: Kind.SELECTION_SET,\n selections: buildField(object),\n }\n : union\n ? {\n kind: Kind.SELECTION_SET,\n selections: buildUnionSelection(union),\n }\n : undefined,\n }),\n );\n\nexport const buildConstValueNode = (value: ConstValue): ConstValueNode | null => {\n if (value === undefined) {\n return null;\n }\n\n if (value === null) {\n return { kind: Kind.NULL };\n }\n\n if (typeof value === \"string\") {\n return { kind: Kind.STRING, value };\n }\n\n if (typeof value === \"boolean\") {\n return { kind: Kind.BOOLEAN, value };\n }\n\n if (typeof value === \"number\") {\n // Distinguish between INT and FLOAT\n const isFloat = !Number.isInteger(value) || value.toString().includes(\".\");\n return { kind: isFloat ? Kind.FLOAT : Kind.INT, value: value.toString() };\n }\n\n if (Array.isArray(value)) {\n return { kind: Kind.LIST, values: value.map((item) => buildConstValueNode(item)).filter((item) => item !== null) };\n }\n\n if (typeof value === \"object\") {\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(value)\n .map(([key, value]): ConstObjectFieldNode | null => {\n const valueNode = buildConstValueNode(value);\n return valueNode\n ? {\n kind: Kind.OBJECT_FIELD,\n name: { kind: Kind.NAME, value: key },\n value: valueNode,\n }\n : null;\n })\n .filter((item) => item !== null),\n };\n }\n\n throw new Error(`Unknown value type: ${typeof (value satisfies never)}`);\n};\n\nexport const buildWithTypeModifier = (modifier: TypeModifier, buildType: () => NamedTypeNode): TypeNode => {\n const baseType = buildType();\n\n if (modifier === \"?\") {\n return baseType;\n }\n\n if (modifier === \"!\") {\n return { kind: Kind.NON_NULL_TYPE, type: baseType };\n }\n\n // Validate modifier format: must start with ? or !, followed by []? or []! pairs\n // Valid patterns: \"?\", \"!\", \"?[]?\", \"?[]!\", \"![]?\", \"![]!\", \"?[]?[]?\", etc.\n const validModifierPattern = /^[?!](\\[\\][?!])*$/;\n if (!validModifierPattern.test(modifier)) {\n throw new Error(`Unknown modifier: ${modifier}`);\n }\n\n // New format: starts with inner type modifier (? or !), then []? or []! pairs\n // e.g., \"?[]?\" = nullable list of nullable, \"![]!\" = non-null list of non-null\n let curr: Readonly<{ modifier: string; type: TypeNode }> = { modifier, type: baseType };\n\n while (curr.modifier.length > 0) {\n // Handle inner type modifier (? or !)\n if (curr.modifier.startsWith(\"?\")) {\n // Nullable inner type - type stays as-is\n curr = {\n modifier: curr.modifier.slice(1),\n type: curr.type,\n };\n continue;\n }\n\n if (curr.modifier.startsWith(\"!\")) {\n // Non-null inner type\n curr = {\n modifier: curr.modifier.slice(1),\n type: curr.type.kind === Kind.NON_NULL_TYPE ? curr.type : { kind: Kind.NON_NULL_TYPE, type: curr.type },\n };\n continue;\n }\n\n // Handle list modifiers ([]? or []!)\n if (curr.modifier.startsWith(\"[]?\")) {\n // Nullable list\n curr = {\n modifier: curr.modifier.slice(3),\n type: { kind: Kind.LIST_TYPE, type: curr.type },\n };\n continue;\n }\n\n if (curr.modifier.startsWith(\"[]!\")) {\n // Non-null list\n curr = {\n modifier: curr.modifier.slice(3),\n type: { kind: Kind.NON_NULL_TYPE, type: { kind: Kind.LIST_TYPE, type: curr.type } },\n };\n continue;\n }\n\n throw new Error(`Unknown modifier: ${curr.modifier}`);\n }\n\n return curr.type;\n};\n\nconst buildVariables = (variables: InputTypeSpecifiers): VariableDefinitionNode[] => {\n return Object.entries(variables).map(\n ([name, ref]): VariableDefinitionNode => ({\n kind: Kind.VARIABLE_DEFINITION,\n variable: { kind: Kind.VARIABLE, name: { kind: Kind.NAME, value: name } },\n defaultValue: (ref.defaultValue && buildConstValueNode(ref.defaultValue.default)) || undefined,\n type: buildWithTypeModifier(ref.modifier, () => ({ kind: Kind.NAMED_TYPE, name: { kind: Kind.NAME, value: ref.name } })),\n }),\n );\n};\n\nexport const buildOperationTypeNode = (operation: OperationType): OperationTypeNode => {\n switch (operation) {\n case \"query\":\n return OperationTypeNode.QUERY;\n case \"mutation\":\n return OperationTypeNode.MUTATION;\n case \"subscription\":\n return OperationTypeNode.SUBSCRIPTION;\n default:\n throw new Error(`Unknown operation type: ${operation}`);\n }\n};\n\n// Overloaded function signatures for flexible usage\nexport const buildDocument = <\n TSchema extends AnyGraphqlSchema,\n TFields extends AnyFields,\n TVarDefinitions extends InputTypeSpecifiers,\n>(options: {\n operationName: string;\n operationType: OperationType;\n variables: TVarDefinitions;\n fields: TFields;\n}): TypedDocumentNode<InferFields<TSchema, TFields>, ConstAssignableInput<TSchema, TVarDefinitions>> => {\n const { operationName, operationType, variables, fields } = options;\n return {\n kind: Kind.DOCUMENT,\n definitions: [\n {\n kind: Kind.OPERATION_DEFINITION,\n operation: buildOperationTypeNode(operationType),\n name: { kind: Kind.NAME, value: operationName },\n variableDefinitions: buildVariables(variables),\n // directives: directives || [],\n selectionSet: {\n kind: Kind.SELECTION_SET,\n selections: buildField(fields),\n },\n },\n ],\n } satisfies DocumentNode as TypedDocumentNode<InferFields<TSchema, TFields>, ConstAssignableInput<TSchema, TVarDefinitions>>;\n};\n","const GQL_ELEMENT_FACTORY = Symbol(\"GQL_ELEMENT_FACTORY\");\nconst GQL_ELEMENT_CONTEXT = Symbol(\"GQL_ELEMENT_CONTEXT\");\n\nexport type GqlElementContext = {\n canonicalId: string;\n};\n\nexport type GqlElementDefinitionFactory<T> = (context: GqlElementContext | null) => T;\n\nexport abstract class GqlElement<TDefinition> {\n private [GQL_ELEMENT_FACTORY]: GqlElementDefinitionFactory<TDefinition>;\n private [GQL_ELEMENT_CONTEXT]: GqlElementContext | null = null;\n\n protected constructor(define: GqlElementDefinitionFactory<TDefinition>) {\n let cache: { value: TDefinition } | null = null;\n\n this[GQL_ELEMENT_FACTORY] = (context) => {\n if (cache) {\n return cache.value;\n }\n const value = define(context);\n cache = { value };\n return value;\n };\n }\n\n static setContext<TElement extends GqlElement<any>>(element: TElement, context: GqlElementContext): void {\n element[GQL_ELEMENT_CONTEXT] = context;\n }\n\n static evaluate(element: GqlElement<any>): void {\n void GqlElement.get(element);\n }\n\n static get<TValue>(element: GqlElement<TValue>): TValue {\n const context = element[GQL_ELEMENT_CONTEXT];\n return element[GQL_ELEMENT_FACTORY](context);\n }\n}\n","/** Operation composition helpers (`gql.query`, `gql.mutation`, `gql.subscription`). */\n\nimport type { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { UnionToIntersection } from \"../../utils/type-utils\";\nimport type { AnyFields, AssigningInput, InferFields } from \"../fragment\";\nimport type { AnyGraphqlRuntimeAdapter, InferExecutionResultProjection, NormalizedExecutionResult } from \"../runtime\";\nimport type { AnyConstAssignableInput, AnyGraphqlSchema, ConstAssignableInput, OperationType } from \"../schema\";\nimport type { InputTypeSpecifiers } from \"../type-foundation\";\nimport { GqlElement, type GqlElementContext } from \"./gql-element\";\nimport type { AnySlicePayloads } from \"./slice\";\n\nexport type AnyComposedOperation =\n | AnyComposedOperationOf<\"query\">\n | AnyComposedOperationOf<\"mutation\">\n | AnyComposedOperationOf<\"subscription\">;\nexport type AnyComposedOperationOf<TOperationType extends OperationType> = ComposedOperation<\n AnyGraphqlRuntimeAdapter,\n TOperationType,\n string,\n string[],\n any,\n any,\n any\n>;\n\ndeclare const __COMPOSED_OPERATION_BRAND__: unique symbol;\n\ntype ComposedOperationDefinition<\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TRawData extends object,\n TProjectedData extends object,\n> = {\n readonly operationType: TOperationType;\n readonly operationName: TOperationName;\n readonly variableNames: TVariableNames;\n readonly projectionPathGraph: ProjectionPathGraphNode;\n readonly document: TypedDocumentNode<TRawData, TVariables>;\n readonly parse: (result: NormalizedExecutionResult<TRuntimeAdapter, TRawData, any>) => TProjectedData;\n};\n\nexport class ComposedOperation<\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TRawData extends object,\n TProjectedData extends object,\n >\n extends GqlElement<\n ComposedOperationDefinition<\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n TVariableNames,\n TVariables,\n TRawData,\n TProjectedData\n >\n >\n implements\n ComposedOperationDefinition<\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n TVariableNames,\n TVariables,\n TRawData,\n TProjectedData\n >\n{\n declare readonly [__COMPOSED_OPERATION_BRAND__]: Hidden<{\n operationType: TOperationType;\n }>;\n\n private constructor(\n define: (\n context: GqlElementContext | null,\n ) => ComposedOperationDefinition<\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n TVariableNames,\n TVariables,\n TRawData,\n TProjectedData\n >,\n ) {\n super(define);\n }\n\n public get operationType() {\n return GqlElement.get(this).operationType;\n }\n public get operationName() {\n return GqlElement.get(this).operationName;\n }\n public get variableNames() {\n return GqlElement.get(this).variableNames;\n }\n public get projectionPathGraph() {\n return GqlElement.get(this).projectionPathGraph;\n }\n public get document() {\n return GqlElement.get(this).document;\n }\n public get parse() {\n return GqlElement.get(this).parse;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TSliceFragments extends AnySlicePayloads,\n >(\n define: (context: import(\"./gql-element\").GqlElementContext | null) => {\n operationType: TOperationType;\n operationName: TOperationName;\n variableNames: (keyof TVariableDefinitions & string)[];\n projectionPathGraph: ProjectionPathGraphNode;\n document: TypedDocumentNode<\n InferComposedOperationRawData<TSchema, TSliceFragments>,\n ConstAssignableInput<TSchema, TVariableDefinitions>\n >;\n parse: (\n result: NormalizedExecutionResult<TRuntimeAdapter, InferComposedOperationRawData<TSchema, TSliceFragments>, any>,\n ) => {\n [K in keyof TSliceFragments]: InferExecutionResultProjection<TSliceFragments[K][\"projection\"]>;\n };\n },\n ) {\n return new ComposedOperation(define);\n }\n}\n\nexport type ProjectionPathGraphNode = {\n readonly matches: { label: string; path: string; exact: boolean }[];\n readonly children: { readonly [segment: string]: ProjectionPathGraphNode };\n};\n\nexport type ConcatSlicePayloads<TSlicePayloads extends AnySlicePayloads> = UnionToIntersection<\n {\n [TLabel in keyof TSlicePayloads & string]: TSlicePayloads[TLabel] extends { getFields: () => infer TFields }\n ? { [K in keyof TFields & string as `${TLabel}_${K}`]: TFields[K] }\n : {};\n }[keyof TSlicePayloads & string]\n> &\n AnyFields;\n\nexport type InferComposedOperationRawData<\n TSchema extends AnyGraphqlSchema,\n TSlicePayloads extends AnySlicePayloads,\n> = InferFields<TSchema, ConcatSlicePayloads<TSlicePayloads>>;\n\nexport type ComposedOperationDefinitionBuilder<\n TSchema extends AnyGraphqlSchema,\n TVarDefinitions extends InputTypeSpecifiers,\n TSliceContents extends AnySlicePayloads,\n> = (tools: { $: NoInfer<AssigningInput<TSchema, TVarDefinitions>> }) => TSliceContents;\n","/** Field builder factories shared by model and slice helpers. */\n\nimport type { IfEmpty } from \"../../utils/empty-object\";\nimport type { UnionToIntersection } from \"../../utils/type-utils\";\nimport type {\n AbstractFieldSelection,\n AnyAssignableInput,\n AnyDirectiveAttachments,\n AnyFieldSelection,\n AnyFields,\n AnyNestedObject,\n AnyNestedUnion,\n AssigningInput,\n FieldSelectionTemplateOf,\n} from \"../fragment\";\nimport type { AnyGraphqlSchema, ObjectFieldRecord, UnionMemberName } from \"../schema\";\nimport type {\n InputTypeSpecifiers,\n OutputEnumSpecifier,\n OutputObjectSpecifier,\n OutputScalarSpecifier,\n OutputTypenameSpecifier,\n OutputUnionSpecifier,\n} from \"../type-foundation\";\n\nexport const mergeFields = <TFieldEntries extends AnyFields[]>(fields: TFieldEntries) =>\n Object.assign({}, ...fields) as MergeFields<TFieldEntries>;\n\nexport type MergeFields<TFieldEntries extends AnyFields[]> = UnionToIntersection<\n TFieldEntries[number]\n> extends infer TFieldsIntersection\n ? {\n [TFieldName in keyof TFieldsIntersection]: TFieldsIntersection[TFieldName] extends AnyFieldSelection\n ? TFieldsIntersection[TFieldName]\n : never;\n } & {}\n : never;\n\n/**\n * Builder signature exposed to userland `model` and `slice` helpers. The\n * tooling `f`/`fields`/`_` aliases provide ergonomic access to GraphQL fields\n * while preserving the original schema information for inference.\n */\nexport type FieldsBuilder<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields[],\n> = (tools: NoInfer<FieldsBuilderTools<TSchema, TTypeName, TVariableDefinitions>>) => TFields;\n\nexport type FieldsBuilderTools<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TVariableDefinitions extends InputTypeSpecifiers,\n> = {\n f: FieldSelectionFactories<TSchema, TTypeName>;\n $: AssigningInput<TSchema, TVariableDefinitions>;\n};\n\n/** Narrow builder used when a field resolves to an object and we need nested selections. */\nexport type NestedObjectFieldsBuilder<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TFields extends AnyNestedObject[],\n> = (tools: NoInfer<NestedObjectFieldsBuilderTools<TSchema, TTypeName>>) => TFields;\n\nexport type NestedObjectFieldsBuilderTools<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n> = {\n f: FieldSelectionFactories<TSchema, TTypeName>;\n};\n\nexport type NestedUnionFieldsBuilder<\n TSchema extends AnyGraphqlSchema,\n TMemberName extends string,\n TUnionFields extends AnyNestedUnion,\n> = {\n [TTypename in keyof TUnionFields & TMemberName]?: NestedObjectFieldsBuilder<\n TSchema,\n TTypename,\n NonNullable<TUnionFields[TTypename]>[]\n >;\n};\n\n/** Map each field to a factory capable of emitting fully-typed references. */\nexport type FieldSelectionFactories<TSchema extends AnyGraphqlSchema, TTypeName extends keyof TSchema[\"object\"] & string> = {\n [TFieldName in keyof ObjectFieldRecord<TSchema, TTypeName>]: TFieldName extends string\n ? FieldSelectionFactory<TSchema, FieldSelectionTemplateOf<TSchema, TTypeName, TFieldName>>\n : never;\n};\n\nexport type AnyFieldSelectionFactory = <TAlias extends string | null = null>(\n fieldArgs: AnyAssignableInput | void,\n extras?: { alias?: TAlias; directives?: AnyDirectiveAttachments },\n) => AnyFieldSelectionFactoryReturn<TAlias>;\n\nexport type FieldSelectionFactory<TSchema extends AnyGraphqlSchema, TSelection extends AnyFieldSelection> = <\n TAlias extends string | null = null,\n>(\n fieldArgs: TSelection[\"args\"] | IfEmpty<TSelection[\"args\"], void | null>,\n extras?: { alias?: TAlias; directives?: TSelection[\"directives\"] },\n) => FieldSelectionFactoryReturn<TSchema, TSelection, TAlias>;\n\nexport type AnyFieldSelectionFactoryReturn<TAlias extends string | null> =\n | FieldSelectionFactoryReturn<AnyGraphqlSchema, AnyFieldSelection & { type: OutputObjectSpecifier }, TAlias>\n | FieldSelectionFactoryReturn<AnyGraphqlSchema, AnyFieldSelection & { type: OutputUnionSpecifier }, TAlias>\n | FieldSelectionFactoryReturn<\n AnyGraphqlSchema,\n AnyFieldSelection & { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier },\n TAlias\n >;\n\nexport type FieldSelectionFactoryReturn<\n TSchema extends AnyGraphqlSchema,\n TSelection extends AnyFieldSelection,\n TAlias extends string | null,\n> = TSelection extends { type: OutputObjectSpecifier }\n ? FieldSelectionFactoryObjectReturn<TSchema, TSelection, TAlias>\n : TSelection extends { type: OutputUnionSpecifier }\n ? FieldSelectionFactoryUnionReturn<TSchema, TSelection, TAlias>\n : TSelection extends { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier }\n ? FieldSelectionFactoryPrimitiveReturn<TSelection, TAlias>\n : never;\n\nexport type FieldSelectionFactoryObjectReturn<\n TSchema extends AnyGraphqlSchema,\n TSelection extends AnyFieldSelection & { type: OutputObjectSpecifier },\n TAlias extends string | null,\n> = <TNested extends AnyNestedObject[]>(\n nest: NestedObjectFieldsBuilder<TSchema, TSelection[\"type\"][\"name\"], TNested>,\n) => {\n [_ in TAlias extends null ? TSelection[\"field\"] : TAlias]: AbstractFieldSelection<\n TSelection[\"parent\"],\n TSelection[\"field\"],\n TSelection[\"type\"],\n TSelection[\"args\"],\n TSelection[\"directives\"],\n { object: MergeFields<TNested> }\n >;\n};\n\nexport type FieldSelectionFactoryUnionReturn<\n TSchema extends AnyGraphqlSchema,\n TSelection extends AnyFieldSelection & { type: OutputUnionSpecifier },\n TAlias extends string | null,\n> = <TNested extends AnyNestedUnion>(\n nest: NestedUnionFieldsBuilder<TSchema, UnionMemberName<TSchema, TSelection[\"type\"]>, TNested>,\n) => {\n [_ in TAlias extends null ? TSelection[\"field\"] : TAlias]: AbstractFieldSelection<\n TSelection[\"parent\"],\n TSelection[\"field\"],\n TSelection[\"type\"],\n TSelection[\"args\"],\n TSelection[\"directives\"],\n { union: TNested }\n >;\n};\n\nexport type FieldSelectionFactoryPrimitiveReturn<\n TSelection extends AnyFieldSelection & { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier },\n TAlias extends string | null,\n> = {\n [_ in TAlias extends null ? TSelection[\"field\"] : TAlias]: AbstractFieldSelection<\n TSelection[\"parent\"],\n TSelection[\"field\"],\n TSelection[\"type\"],\n TSelection[\"args\"],\n TSelection[\"directives\"],\n {}\n >;\n};\n\nexport type FieldSelectionFactoryFieldArguments<TFieldSelectionTemplate extends AnyFieldSelection> =\n | TFieldSelectionTemplate[\"args\"]\n | IfEmpty<TFieldSelectionTemplate[\"args\"], void | null>;\n","import type { TypedDocumentNode } from \"@graphql-typed-document-node/core\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { AnyFields, InferFields } from \"../fragment\";\nimport type { AnyConstAssignableInput, AnyGraphqlSchema, ConstAssignableInput, OperationType } from \"../schema\";\nimport type { InputTypeSpecifiers } from \"../type-foundation\";\nimport { GqlElement, type GqlElementContext } from \"./gql-element\";\n\nexport type AnyInlineOperation =\n | AnyInlineOperationOf<\"query\">\n | AnyInlineOperationOf<\"mutation\">\n | AnyInlineOperationOf<\"subscription\">;\nexport type AnyInlineOperationOf<TOperationType extends OperationType> = InlineOperation<\n TOperationType,\n string,\n string[],\n any,\n AnyFields,\n any\n>;\n\ndeclare const __INLINE_OPERATION_BRAND__: unique symbol;\n\ntype InlineOperationArtifact<\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TFields extends Partial<AnyFields>,\n TData extends object,\n> = {\n readonly operationType: TOperationType;\n readonly operationName: TOperationName;\n readonly variableNames: TVariableNames;\n readonly documentSource: () => TFields;\n readonly document: TypedDocumentNode<TData, TVariables>;\n};\n\nexport class InlineOperation<\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableNames extends string[],\n TVariables extends AnyConstAssignableInput,\n TFields extends Partial<AnyFields>,\n TData extends object,\n >\n extends GqlElement<InlineOperationArtifact<TOperationType, TOperationName, TVariableNames, TVariables, TFields, TData>>\n implements InlineOperationArtifact<TOperationType, TOperationName, TVariableNames, TVariables, TFields, TData>\n{\n declare readonly [__INLINE_OPERATION_BRAND__]: Hidden<{\n operationType: TOperationType;\n }>;\n\n private constructor(\n define: (\n context: GqlElementContext | null,\n ) => InlineOperationArtifact<TOperationType, TOperationName, TVariableNames, TVariables, TFields, TData>,\n ) {\n super(define);\n }\n\n public get operationType() {\n return GqlElement.get(this).operationType;\n }\n public get operationName() {\n return GqlElement.get(this).operationName;\n }\n public get variableNames() {\n return GqlElement.get(this).variableNames;\n }\n public get documentSource() {\n return GqlElement.get(this).documentSource;\n }\n public get document() {\n return GqlElement.get(this).document;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TOperationType extends OperationType,\n TOperationName extends string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields,\n >(\n define: (context: GqlElementContext | null) => {\n operationType: TOperationType;\n operationName: TOperationName;\n variableNames: (keyof TVariableDefinitions & string)[];\n documentSource: () => TFields;\n document: TypedDocumentNode<InferFields<TSchema, TFields>, ConstAssignableInput<TSchema, TVariableDefinitions>>;\n },\n ) {\n return new InlineOperation(define);\n }\n}\n","/** Model helper types mirroring the `gql.model` API. */\n\nimport type { SwitchIfEmpty } from \"../../utils/empty-object\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { AnyAssignableInput, AnyFields, AssignableInput, InferFields } from \"../fragment\";\nimport type { AnyGraphqlSchema } from \"../schema\";\nimport type { InputTypeSpecifiers } from \"../type-foundation\";\nimport { GqlElement } from \"./gql-element\";\n\nexport type AnyModel = Model<string, any, AnyFields, any, any>;\n\ninterface ModelArtifact<\n TTypeName extends string,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TRaw extends object,\n TNormalized extends object,\n> {\n readonly typename: TTypeName;\n readonly fragment: (variables: TVariables) => TFields;\n readonly normalize: (raw: TRaw) => TNormalized;\n}\n\ndeclare const __MODEL_BRAND__: unique symbol;\nexport class Model<\n TTypeName extends string,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TRaw extends object,\n TNormalized extends object,\n >\n extends GqlElement<ModelArtifact<TTypeName, TVariables, TFields, TRaw, TNormalized>>\n implements ModelArtifact<TTypeName, TVariables, TFields, TRaw, TNormalized>\n{\n declare readonly [__MODEL_BRAND__]: Hidden<{\n input: TVariables;\n output: TNormalized;\n }>;\n\n private constructor(define: () => ModelArtifact<TTypeName, TVariables, TFields, TRaw, TNormalized>) {\n super(define);\n }\n\n public get typename() {\n return GqlElement.get(this).typename;\n }\n public get fragment() {\n return GqlElement.get(this).fragment;\n }\n public get normalize() {\n return GqlElement.get(this).normalize;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TTypeName extends keyof TSchema[\"object\"] & string,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields,\n TNormalized extends object,\n >(\n define: () => {\n typename: TTypeName;\n fragment: (variables: SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>) => TFields;\n normalize: (raw: NoInfer<InferFields<TSchema, TFields>>) => TNormalized;\n },\n ) {\n type Fields = TFields & { [key: symbol]: never };\n type Raw = InferFields<TSchema, TFields> & { [key: symbol]: never };\n\n return new Model(\n define as () => ModelArtifact<\n TTypeName,\n SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>,\n Fields,\n Raw,\n TNormalized\n >,\n );\n }\n}\n","import type { SwitchIfEmpty } from \"../../utils/empty-object\";\nimport type { Hidden } from \"../../utils/hidden\";\nimport type { AnyAssignableInput, AnyFields, AssignableInput } from \"../fragment\";\nimport type { AnyProjection, InferExecutionResultProjection } from \"../runtime\";\nimport type { AnyGraphqlSchema, OperationType } from \"../schema\";\nimport type { InputTypeSpecifiers } from \"../type-foundation\";\nimport { GqlElement } from \"./gql-element\";\n\nexport type AnySlice = AnySliceOf<\"query\"> | AnySliceOf<\"mutation\"> | AnySliceOf<\"subscription\">;\nexport type AnySliceOf<TOperationType extends OperationType> = Slice<TOperationType, any, AnyFields, AnyProjection>;\n\ntype SliceDefinition<\n TOperationType extends OperationType,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TProjection extends AnyProjection,\n> = {\n readonly operationType: TOperationType;\n readonly embed: (variables: TVariables) => SlicePayload<TVariables, TFields, TProjection>;\n};\n\ndeclare const __OPERATION_SLICE_BRAND__: unique symbol;\nexport class Slice<\n TOperationType extends OperationType,\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TProjection extends AnyProjection,\n >\n extends GqlElement<SliceDefinition<TOperationType, TVariables, TFields, TProjection>>\n implements SliceDefinition<TOperationType, TVariables, TFields, TProjection>\n{\n declare readonly [__OPERATION_SLICE_BRAND__]: Hidden<{\n operationType: TOperationType;\n output: InferExecutionResultProjection<TProjection>;\n }>;\n\n private constructor(define: () => SliceDefinition<TOperationType, TVariables, TFields, TProjection>) {\n super(define);\n }\n\n public get operationType() {\n return GqlElement.get(this).operationType;\n }\n public get embed() {\n return GqlElement.get(this).embed;\n }\n\n static create<\n TSchema extends AnyGraphqlSchema,\n TOperationType extends OperationType,\n TVariableDefinitions extends InputTypeSpecifiers,\n TFields extends AnyFields,\n TProjection extends AnyProjection,\n >(\n define: () => {\n operationType: TOperationType;\n embed: (\n variables: SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>,\n ) => SlicePayload<\n SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>,\n TFields,\n TProjection\n >;\n },\n ) {\n type Fields = TFields & { [key: symbol]: never };\n type Variables = SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>;\n\n return new Slice(define as () => SliceDefinition<TOperationType, Variables, Fields, TProjection>);\n }\n}\n\nexport type AnySlicePayloads = { [key: string]: AnySlicePayload };\n\nexport type AnySlicePayload = SlicePayload<AnyAssignableInput | void, AnyFields, AnyProjection>;\nexport type SlicePayload<\n TVariables extends Partial<AnyAssignableInput> | void,\n TFields extends Partial<AnyFields>,\n TProjection extends AnyProjection,\n> = {\n variables: TVariables;\n getFields: () => TFields;\n projection: TProjection;\n};\n\nexport type InferOutputOfSlice<TSlice extends AnySliceOf<any>> = ReturnType<TSlice[typeof __OPERATION_SLICE_BRAND__]>[\"output\"];\n","import type { AnySlicePayload, ProjectionPathGraphNode } from \"../types/element\";\nimport { mapValues } from \"../utils/map-values\";\n\ntype ExecutionResultProjectionPathGraphIntermediate = {\n [segment: string]: { label: string; raw: string; segments: string[] }[];\n};\n\nfunction createPathGraph(paths: ExecutionResultProjectionPathGraphIntermediate[string]): ProjectionPathGraphNode {\n const intermediate = paths.reduce(\n (acc: ExecutionResultProjectionPathGraphIntermediate, { label, raw, segments: [segment, ...segments] }) => {\n if (segment) {\n (acc[segment] || (acc[segment] = [])).push({ label, raw, segments });\n }\n return acc;\n },\n {},\n );\n\n return {\n matches: paths.map(({ label, raw, segments }) => ({ label, path: raw, exact: segments.length === 0 })),\n children: mapValues(intermediate, (paths) => createPathGraph(paths)),\n } satisfies ProjectionPathGraphNode;\n}\n\nexport function createPathGraphFromSliceEntries(fragments: { [key: string]: AnySlicePayload }) {\n const paths = Object.entries(fragments).flatMap(([label, slice]) =>\n Array.from(\n new Map(\n slice.projection.paths.map(({ full: raw, segments }) => {\n const [first, ...rest] = segments;\n return [raw, { label, raw, segments: [`${label}_${first}`, ...rest] }];\n }),\n ).values(),\n ),\n );\n\n return createPathGraph(paths);\n}\n","import { createExecutionResultParser } from \"../runtime/parse-execution-result\";\nimport {\n type AnySlicePayloads,\n ComposedOperation,\n type ComposedOperationDefinitionBuilder,\n type ConcatSlicePayloads,\n} from \"../types/element\";\nimport type { AnyGraphqlRuntimeAdapter } from \"../types/runtime\";\nimport type { AnyGraphqlSchema, OperationType } from \"../types/schema\";\nimport type { InputTypeSpecifiers } from \"../types/type-foundation\";\n\nimport { buildDocument } from \"./build-document\";\nimport { createVarRefs, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\nimport { createPathGraphFromSliceEntries } from \"./projection-path-graph\";\n\nexport const createComposedOperationComposerFactory = <\n TSchema extends AnyGraphqlSchema,\n TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n>() => {\n return <TOperationType extends OperationType>(operationType: TOperationType) => {\n return <\n TOperationName extends string,\n TSliceFragments extends AnySlicePayloads,\n TVarDefinitions extends InputTypeSpecifiers[] = [{}],\n >(\n options: {\n operationName: TOperationName;\n variables?: TVarDefinitions;\n },\n builder: ComposedOperationDefinitionBuilder<TSchema, MergeVarDefinitions<TVarDefinitions>, TSliceFragments>,\n ) => {\n return ComposedOperation.create<\n TSchema,\n TRuntimeAdapter,\n TOperationType,\n TOperationName,\n MergeVarDefinitions<TVarDefinitions>,\n TSliceFragments\n >(() => {\n const { operationName } = options;\n const variables = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n const $ = createVarRefs<TSchema, typeof variables>(variables);\n const fragments = builder({ $ });\n\n const fields = Object.fromEntries(\n Object.entries(fragments).flatMap(([label, { getFields: fields }]) =>\n Object.entries(fields).map(([key, reference]) => [`${label}_${key}`, reference]),\n ),\n ) as ConcatSlicePayloads<TSliceFragments>;\n const projectionPathGraph = createPathGraphFromSliceEntries(fragments);\n\n return {\n operationType,\n operationName,\n variableNames: Object.keys(variables) as (keyof MergeVarDefinitions<TVarDefinitions> & string)[],\n projectionPathGraph,\n document: buildDocument({\n operationName,\n operationType,\n variables,\n fields,\n }),\n parse: createExecutionResultParser({ fragments, projectionPathGraph }),\n };\n });\n };\n };\n};\n","export function wrapByKey<TName extends string, TValue>(name: TName, value: TValue) {\n return {\n [name]: value,\n } as {\n [K in TName]: TValue;\n };\n}\n","import {\n type AnyFieldSelectionFactory,\n type AnyFieldSelectionFactoryReturn,\n type FieldSelectionFactories,\n type FieldSelectionFactoryObjectReturn,\n type FieldSelectionFactoryPrimitiveReturn,\n type FieldSelectionFactoryUnionReturn,\n mergeFields,\n type NestedObjectFieldsBuilder,\n type NestedUnionFieldsBuilder,\n} from \"../types/element\";\nimport type { AnyFieldSelection, AnyNestedObject, AnyNestedUnion } from \"../types/fragment\";\nimport type { AnyGraphqlSchema, UnionMemberName } from \"../types/schema\";\nimport type {\n OutputEnumSpecifier,\n OutputObjectSpecifier,\n OutputScalarSpecifier,\n OutputTypenameSpecifier,\n OutputUnionSpecifier,\n} from \"../types/type-foundation\";\nimport { mapValues } from \"../utils/map-values\";\nimport { wrapByKey } from \"../utils/wrap-by-key\";\n\n// Cache is schema-scoped to avoid cross-schema contamination when multiple schemas share type names\ntype CacheMap = Map<string, Record<string, AnyFieldSelectionFactory>>;\n\nconst cacheMapBySchema = new WeakMap<AnyGraphqlSchema, CacheMap>();\nconst ensureCacheMapBySchema = (schema: AnyGraphqlSchema) => {\n const cachedCacheMap = cacheMapBySchema.get(schema);\n if (cachedCacheMap) {\n return cachedCacheMap;\n }\n\n const cacheMap: CacheMap = new Map();\n cacheMapBySchema.set(schema, cacheMap);\n return cacheMap;\n};\n\nexport const createFieldFactories = <TSchema extends AnyGraphqlSchema, TTypeName extends keyof TSchema[\"object\"] & string>(\n schema: TSchema,\n typeName: TTypeName,\n): FieldSelectionFactories<TSchema, TTypeName> => {\n const cacheMap = ensureCacheMapBySchema(schema);\n const cached = cacheMap.get(typeName);\n if (cached) {\n return cached as unknown as FieldSelectionFactories<TSchema, TTypeName>;\n }\n\n const factories = createFieldFactoriesInner(schema, typeName);\n cacheMap.set(typeName, factories as unknown as Record<string, AnyFieldSelectionFactory>);\n\n return factories;\n};\n\nconst createFieldFactoriesInner = <TSchema extends AnyGraphqlSchema, TTypeName extends keyof TSchema[\"object\"] & string>(\n schema: TSchema,\n typeName: TTypeName,\n): FieldSelectionFactories<TSchema, TTypeName> => {\n const typeDef = schema.object[typeName];\n if (!typeDef) {\n throw new Error(`Type ${typeName} is not defined in schema objects`);\n }\n\n const entries = Object.entries(typeDef.fields).map(([fieldName, type]): [string, AnyFieldSelectionFactory] => {\n const factory: AnyFieldSelectionFactory = <TAlias extends string | null = null>(\n fieldArgs: AnyFieldSelection[\"args\"] | null | void,\n extras?: { alias?: TAlias; directives?: AnyFieldSelection[\"directives\"] },\n ) => {\n const wrap = <T>(value: T) => wrapByKey((extras?.alias ?? fieldName) as TAlias extends null ? string : TAlias, value);\n\n if (type.kind === \"object\") {\n type TSelection = AnyFieldSelection & { type: OutputObjectSpecifier };\n const factoryReturn: AnyFieldSelectionFactoryReturn<TAlias> = (<TNested extends AnyNestedObject[]>(\n nest: NestedObjectFieldsBuilder<TSchema, TSelection[\"type\"][\"name\"], TNested>,\n ) =>\n wrap({\n parent: typeName,\n field: fieldName,\n type: type,\n args: fieldArgs ?? {},\n directives: extras?.directives ?? {},\n object: mergeFields(nest({ f: createFieldFactories(schema, type.name) })),\n union: null,\n } satisfies AnyFieldSelection)) satisfies FieldSelectionFactoryObjectReturn<TSchema, TSelection, TAlias>;\n\n return factoryReturn;\n }\n\n if (type.kind === \"union\") {\n type TSelection = AnyFieldSelection & { type: OutputUnionSpecifier };\n const factoryReturn: AnyFieldSelectionFactoryReturn<TAlias> = (<TNested extends AnyNestedUnion>(\n nest: NestedUnionFieldsBuilder<TSchema, UnionMemberName<TSchema, TSelection[\"type\"]>, TNested>,\n ) =>\n wrap({\n parent: typeName,\n field: fieldName,\n type: type,\n args: fieldArgs ?? {},\n directives: extras?.directives ?? {},\n object: null,\n union: mapValues(\n nest as Record<string, NestedObjectFieldsBuilder<TSchema, string, AnyNestedObject[]> | undefined>,\n (builder, memberName) => {\n if (!builder) {\n throw new Error(`Builder is undefined for member name: ${memberName}`);\n }\n return mergeFields(builder({ f: createFieldFactories(schema, memberName) }));\n },\n ) as TNested,\n } satisfies AnyFieldSelection)) satisfies FieldSelectionFactoryUnionReturn<TSchema, TSelection, TAlias>;\n\n return factoryReturn;\n }\n\n if (type.kind === \"scalar\" || type.kind === \"enum\" || type.kind === \"typename\") {\n type TSelection = AnyFieldSelection & { type: OutputTypenameSpecifier | OutputScalarSpecifier | OutputEnumSpecifier };\n const factoryReturn: AnyFieldSelectionFactoryReturn<TAlias> = wrap({\n parent: typeName,\n field: fieldName,\n type,\n args: fieldArgs ?? {},\n directives: extras?.directives ?? {},\n object: null,\n union: null,\n } satisfies AnyFieldSelection) satisfies FieldSelectionFactoryPrimitiveReturn<TSelection, TAlias>;\n return factoryReturn;\n }\n\n throw new Error(`Unsupported field type: ${type satisfies never}`);\n };\n\n return [fieldName, factory] as const;\n });\n\n const factories: Record<string, AnyFieldSelectionFactory> = Object.fromEntries(entries);\n\n return factories as unknown as FieldSelectionFactories<TSchema, TTypeName>;\n};\n","import { type FieldsBuilder, InlineOperation, type MergeFields, mergeFields } from \"../types/element\";\nimport type { AnyFields } from \"../types/fragment\";\nimport type { AnyGraphqlRuntimeAdapter } from \"../types/runtime\";\nimport type { AnyGraphqlSchema, OperationType } from \"../types/schema\";\nimport type { InputTypeSpecifiers } from \"../types/type-foundation\";\n\nimport { buildDocument } from \"./build-document\";\nimport { createFieldFactories } from \"./fields-builder\";\nimport { createVarRefs, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\n\nexport const createInlineOperationComposerFactory = <\n TSchema extends AnyGraphqlSchema,\n _TRuntimeAdapter extends AnyGraphqlRuntimeAdapter,\n>(\n schema: NoInfer<TSchema>,\n) => {\n return <TOperationType extends OperationType>(operationType: TOperationType) => {\n type TTypeName = TSchema[\"operations\"][TOperationType] & keyof TSchema[\"object\"] & string;\n const operationTypeName: TTypeName | null = schema.operations[operationType];\n if (operationTypeName === null) {\n throw new Error(`Operation type ${operationType} is not defined in schema roots`);\n }\n\n return <TOperationName extends string, TFields extends AnyFields[], TVarDefinitions extends InputTypeSpecifiers[] = [{}]>(\n options: {\n operationName: TOperationName;\n variables?: TVarDefinitions;\n },\n fieldBuilder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFields>,\n ) => {\n return InlineOperation.create<\n TSchema,\n TOperationType,\n TOperationName,\n MergeVarDefinitions<TVarDefinitions>,\n MergeFields<TFields>\n >(() => {\n const { operationName } = options;\n const variables = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n const $ = createVarRefs<TSchema, MergeVarDefinitions<TVarDefinitions>>(variables);\n const f = createFieldFactories(schema, operationTypeName);\n const fields = mergeFields(fieldBuilder({ f, $ }));\n\n return {\n operationType,\n operationName,\n variableNames: Object.keys(variables) as (keyof MergeVarDefinitions<TVarDefinitions> & string)[],\n documentSource: () => fields,\n document: buildDocument({\n operationName,\n operationType,\n variables,\n fields,\n }),\n };\n });\n };\n };\n};\n","import { type FieldsBuilder, type MergeFields, Model, mergeFields } from \"../types/element\";\nimport type { AnyFields, InferFields } from \"../types/fragment\";\nimport type { AnyGraphqlSchema, OperationType } from \"../types/schema\";\nimport type { InputTypeSpecifiers } from \"../types/type-foundation\";\nimport { mapValues } from \"../utils/map-values\";\nimport { createFieldFactories } from \"./fields-builder\";\nimport { createVarAssignments, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\n\nexport const createGqlModelComposers = <TSchema extends AnyGraphqlSchema>(schema: NoInfer<TSchema>) => {\n type ModelBuilder<TTypeName extends keyof TSchema[\"object\"] & string> = <\n TFieldEntries extends AnyFields[],\n TNormalized extends object,\n TVarDefinitions extends InputTypeSpecifiers[] = [{}],\n >(\n options: {\n variables?: TVarDefinitions;\n },\n builder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>,\n normalize: (raw: NoInfer<InferFields<TSchema, MergeFields<TFieldEntries>>>) => TNormalized,\n ) => ReturnType<\n typeof Model.create<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, MergeFields<TFieldEntries>, TNormalized>\n >;\n\n const createModelComposer = <TTypeName extends keyof TSchema[\"object\"] & string>(\n typename: TTypeName,\n ): ModelBuilder<TTypeName> => {\n return <TFieldEntries extends AnyFields[], TNormalized extends object, TVarDefinitions extends InputTypeSpecifiers[] = [{}]>(\n options: {\n variables?: TVarDefinitions;\n },\n builder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>,\n normalize: (raw: NoInfer<InferFields<TSchema, MergeFields<TFieldEntries>>>) => TNormalized,\n ) =>\n Model.create<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, MergeFields<TFieldEntries>, TNormalized>(() => {\n const varDefinitions = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n return {\n typename,\n fragment: (variables) => {\n const f = createFieldFactories(schema, typename);\n const $ = createVarAssignments<TSchema, MergeVarDefinitions<TVarDefinitions>>(varDefinitions, variables);\n return mergeFields(builder({ f, $ }));\n },\n normalize,\n };\n });\n };\n\n type ModelBuildersAll = {\n readonly [TTypeName in keyof TSchema[\"object\"]]: TTypeName extends string ? ModelBuilder<TTypeName> : never;\n };\n type ModelBuilders = Omit<ModelBuildersAll, TSchema[\"operations\"][OperationType] & keyof ModelBuildersAll>;\n\n return mapValues(schema.object, (_, typename) => createModelComposer(typename)) as ModelBuilders;\n};\n","import { handleProjectionBuilder } from \"../runtime/slice\";\nimport {\n type ExecutionResultProjectionsBuilder,\n type FieldsBuilder,\n type MergeFields,\n mergeFields,\n Slice,\n} from \"../types/element\";\nimport type { AnyFields } from \"../types/fragment\";\nimport type { AnyGraphqlRuntimeAdapter, AnyProjection } from \"../types/runtime\";\nimport type { AnyGraphqlSchema, OperationType } from \"../types/schema\";\nimport type { InputTypeSpecifiers } from \"../types/type-foundation\";\n\nimport { createFieldFactories } from \"./fields-builder\";\nimport { createVarAssignments, type MergeVarDefinitions, mergeVarDefinitions } from \"./input\";\n\nexport const createSliceComposerFactory = <TSchema extends AnyGraphqlSchema, TRuntimeAdapter extends AnyGraphqlRuntimeAdapter>(\n schema: NoInfer<TSchema>,\n) => {\n return <TOperationType extends OperationType>(operationType: TOperationType) => {\n type TTypeName = TSchema[\"operations\"][TOperationType] & keyof TSchema[\"object\"] & string;\n const operationTypeName: TTypeName | null = schema.operations[operationType];\n if (operationTypeName === null) {\n throw new Error(`Operation type ${operationType} is not defined in schema roots`);\n }\n\n return <\n TFieldEntries extends AnyFields[],\n TProjection extends AnyProjection,\n TVarDefinitions extends InputTypeSpecifiers[] = [{}],\n >(\n options: {\n variables?: TVarDefinitions;\n },\n fieldBuilder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>,\n projectionBuilder: ExecutionResultProjectionsBuilder<TSchema, TRuntimeAdapter, MergeFields<TFieldEntries>, TProjection>,\n ) =>\n Slice.create<TSchema, TOperationType, MergeVarDefinitions<TVarDefinitions>, MergeFields<TFieldEntries>, TProjection>(() => {\n const varDefinitions = mergeVarDefinitions((options.variables ?? []) as TVarDefinitions);\n const projection = handleProjectionBuilder(projectionBuilder);\n\n return {\n operationType,\n embed: (variables) => {\n const f = createFieldFactories(schema, operationTypeName);\n const $ = createVarAssignments<TSchema, typeof varDefinitions>(varDefinitions, variables);\n const fields = mergeFields(fieldBuilder({ f, $ }));\n return { variables, getFields: () => fields, projection };\n },\n };\n });\n };\n};\n","import type { TypeModifier, ValidTypeModifier } from \"./type-modifier-core.generated\";\n\nexport type ModifiedTypeName<\n // Wrapping by array to avoid type distribution\n TNameCandidate extends [string],\n TName extends TNameCandidate[0],\n TModifier extends TypeModifier,\n> = [string] extends TNameCandidate // For abstract implementation\n ? `${TName}:${TModifier}`\n : TNameCandidate extends [TName]\n ? // First, user inputs TName based on TNameCandidate\n NoInfer<`${TNameCandidate[0]}`> | (TName & NoInfer<TypeModifier extends TModifier ? never : string>)\n : // With valid TName, user can input TModifier based on TypeModifierNS.ValidTypeModifier\n `${TName}:${TModifier & ValidTypeModifier}`;\n\nexport function parseModifiedTypeName<TNameCandidate extends [string], TName extends string, TModifier extends TypeModifier>(\n nameAndModifier: ModifiedTypeName<TNameCandidate, TName, TModifier>,\n) {\n if (typeof nameAndModifier !== \"string\") {\n throw new Error(`Invalid modified type name: ${nameAndModifier}`);\n }\n\n const [name, modifier] = nameAndModifier.split(\":\") as [TName, TModifier];\n return { name, modifier };\n}\n","import type { AnyConstDirectiveAttachments, AnyGraphqlSchema, ConstAssignableInputValue } from \"../types/schema\";\nimport { type AnyTypeSpecifier, type ModifiedTypeName, parseModifiedTypeName, type TypeModifier } from \"../types/type-foundation\";\nimport { wrapByKey } from \"../utils/wrap-by-key\";\n\ntype AssignableDefaultValue<\n TSchema extends AnyGraphqlSchema,\n TKind extends \"scalar\" | \"enum\" | \"input\",\n TName extends keyof TSchema[TKind] & string,\n TModifier extends TypeModifier,\n> = ConstAssignableInputValue<\n TSchema,\n {\n scalar: { kind: \"scalar\"; name: TName; modifier: TModifier; directives: {}; defaultValue: null };\n enum: { kind: \"enum\"; name: TName; modifier: TModifier; directives: {}; defaultValue: null };\n input: { kind: \"input\"; name: TName; modifier: TModifier; directives: {}; defaultValue: null };\n }[TKind]\n>;\n\nexport const createVarBuilder = <TSchema extends AnyGraphqlSchema>(schema: TSchema) => {\n const $ = <TVarName extends string>(varName: TVarName) => {\n const createVarSpecifierBuilder = <TKind extends \"scalar\" | \"enum\" | \"input\">(kind: TKind) => {\n type VarSpecifier<\n TTypeName extends keyof TSchema[TKind] & string,\n TModifier extends TypeModifier,\n TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier>) | null,\n TDirectives extends AnyConstDirectiveAttachments,\n > = {\n kind: TKind;\n name: TTypeName;\n modifier: TModifier;\n defaultValue: TDefaultFn extends null\n ? null\n : {\n default: ReturnType<NonNullable<TDefaultFn>>;\n };\n directives: TDirectives;\n };\n\n return <\n const TTypeName extends keyof TSchema[TKind] & string,\n const TModifier extends TypeModifier,\n const TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier>) | null = null,\n const TDirectives extends AnyConstDirectiveAttachments = {},\n >(\n type: ModifiedTypeName<[keyof TSchema[TKind] & string], TTypeName, TModifier>,\n extras?: {\n default?:\n | (TDefaultFn & (() => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier>))\n | (NoInfer<TDefaultFn> extends null ? () => AssignableDefaultValue<TSchema, TKind, TTypeName, TModifier> : never);\n directives?: TDirectives;\n },\n ) =>\n wrapByKey(varName, {\n kind,\n ...parseModifiedTypeName(type),\n defaultValue: extras?.default ? { default: extras.default() } : null,\n } satisfies AnyTypeSpecifier as VarSpecifier<TTypeName, TModifier, TDefaultFn, TDirectives>);\n };\n\n return {\n scalar: createVarSpecifierBuilder(\"scalar\"),\n enum: createVarSpecifierBuilder(\"enum\"),\n input: createVarSpecifierBuilder(\"input\"),\n\n byField: <\n const TTypeName extends keyof TSchema[\"object\"] & string,\n const TFieldName extends keyof TSchema[\"object\"][TTypeName][\"fields\"] & string,\n const TArgName extends keyof TSchema[\"object\"][TTypeName][\"fields\"][TFieldName][\"arguments\"] & string,\n >(\n typeName: TTypeName,\n fieldName: TFieldName,\n argName: TArgName,\n ) => {\n const argTypeRef = schema.object[typeName]?.fields[fieldName]?.arguments[argName];\n\n if (!argTypeRef) {\n throw new Error(`Argument ${argName} not found in field ${fieldName} of type ${typeName}`);\n }\n\n // TODO: clone\n return { ...argTypeRef } as TSchema[\"object\"][TTypeName][\"fields\"][TFieldName][\"arguments\"][TArgName];\n },\n };\n };\n\n return { $ };\n};\n","import type { AnyComposedOperation, AnyInlineOperation, AnyModel, AnySlice } from \"../types/element\";\nimport type { AnyGraphqlRuntimeAdapter } from \"../types/runtime\";\nimport type { AnyGraphqlSchema } from \"../types/schema\";\nimport { createComposedOperationComposerFactory } from \"./composed-operation\";\nimport { createInlineOperationComposerFactory } from \"./inline-operation\";\nimport { createGqlModelComposers } from \"./model\";\nimport { createSliceComposerFactory } from \"./slice\";\nimport { createVarBuilder } from \"./var-builder\";\n\nexport type GqlElementComposer<TComposers, THelper> = <\n TResult extends AnyModel | AnySlice | AnyComposedOperation | AnyInlineOperation,\n>(\n composeElement: (composers: TComposers, helper: THelper) => TResult,\n) => TResult;\n\nexport const createGqlElementComposer = <TSchema extends AnyGraphqlSchema, TRuntimeAdapter extends AnyGraphqlRuntimeAdapter>(\n schema: NoInfer<TSchema>,\n) => {\n const model = createGqlModelComposers<TSchema>(schema);\n const createSliceComposer = createSliceComposerFactory<TSchema, TRuntimeAdapter>(schema);\n const createComposedOperationFactory = createComposedOperationComposerFactory<TSchema, TRuntimeAdapter>();\n const createInlineOperationComposer = createInlineOperationComposerFactory<TSchema, TRuntimeAdapter>(schema);\n const composers = {\n model,\n query: {\n slice: createSliceComposer(\"query\"),\n composed: createComposedOperationFactory(\"query\"),\n inline: createInlineOperationComposer(\"query\"),\n },\n mutation: {\n slice: createSliceComposer(\"mutation\"),\n composed: createComposedOperationFactory(\"mutation\"),\n inline: createInlineOperationComposer(\"mutation\"),\n },\n subscription: {\n slice: createSliceComposer(\"subscription\"),\n composed: createComposedOperationFactory(\"subscription\"),\n inline: createInlineOperationComposer(\"subscription\"),\n },\n };\n\n const helper = {\n ...createVarBuilder(schema),\n };\n\n const elementComposer: GqlElementComposer<typeof composers, typeof helper> = (composeElement) =>\n composeElement(composers, helper);\n\n return elementComposer;\n};\n","export interface WithTypeMeta<T extends object> {\n readonly $type: T;\n}\n\nexport const withTypeMeta = <TTarget extends WithTypeMeta<TTypeMeta>, TTypeMeta extends object>(\n target: Omit<NoInfer<TTarget>, \"$type\">,\n): TTarget => {\n if (process.env.NODE_ENV !== \"production\") {\n if ((typeof target !== \"object\" && typeof target !== \"function\") || target === null) {\n throw new Error(\"Target must be an object or a function.\");\n }\n\n Object.defineProperty(target, \"$type\", {\n get() {\n throw new Error(\"This property is only for type inference. Do not access this property directly.\");\n },\n });\n }\n\n return target as TTarget;\n};\n","import type { AnyConstDirectiveAttachments } from \"../types/schema\";\nimport {\n type AnyTypeSpecifier,\n type InputTypeKind,\n type InputTypeSpecifiers,\n type ModifiedTypeName,\n type OutputTypeKind,\n parseModifiedTypeName,\n type TypeModifier,\n} from \"../types/type-foundation\";\nimport type { ConstValue } from \"../types/type-foundation/const-value\";\n\nconst createUnsafeInputTypeSpecifierFactory = <const TKind extends InputTypeKind>(kind: TKind) => {\n type UnsafeInputTypeSpecifier<\n TName extends string,\n TModifier extends TypeModifier,\n TDefaultFactory extends (() => ConstValue) | null,\n TDirectives extends AnyConstDirectiveAttachments,\n > = {\n kind: TKind;\n name: TName;\n modifier: TModifier;\n defaultValue: TDefaultFactory extends null ? null : { default: ReturnType<NonNullable<TDefaultFactory>> };\n directives: TDirectives;\n };\n\n return <\n const TName extends string,\n const TModifier extends TypeModifier,\n const TDefaultFactory extends (() => ConstValue) | null = null,\n const TDirectives extends AnyConstDirectiveAttachments = {},\n >(\n type: ModifiedTypeName<[string], TName, TModifier>,\n extras: {\n default?: TDefaultFactory;\n directives?: TDirectives;\n },\n ): UnsafeInputTypeSpecifier<TName, TModifier, TDefaultFactory, TDirectives> =>\n ({\n kind,\n ...parseModifiedTypeName(type),\n defaultValue: extras.default ? { default: extras.default() } : null,\n }) satisfies AnyTypeSpecifier as UnsafeInputTypeSpecifier<TName, TModifier, TDefaultFactory, TDirectives>;\n};\n\nexport const unsafeInputType = {\n scalar: createUnsafeInputTypeSpecifierFactory(\"scalar\"),\n enum: createUnsafeInputTypeSpecifierFactory(\"enum\"),\n input: createUnsafeInputTypeSpecifierFactory(\"input\"),\n};\n\nconst createUnsafeOutputTypeSpecifierFactory = <const TKind extends OutputTypeKind>(kind: TKind) => {\n type UnsafeOutputTypeSpecifier<TName extends string, TModifier extends TypeModifier, TArguments extends InputTypeSpecifiers> = {\n kind: TKind;\n name: TName;\n modifier: TModifier;\n arguments: TArguments;\n };\n\n return <const TName extends string, const TModifier extends TypeModifier, const TArguments extends InputTypeSpecifiers = {}>(\n type: ModifiedTypeName<[string], TName, TModifier>,\n extras: {\n arguments?: TArguments;\n },\n ): UnsafeOutputTypeSpecifier<TName, TModifier, InputTypeSpecifiers extends TArguments ? {} : TArguments> =>\n ({\n kind,\n ...parseModifiedTypeName(type),\n arguments: extras.arguments ?? ({} as TArguments),\n }) satisfies AnyTypeSpecifier as UnsafeOutputTypeSpecifier<\n TName,\n TModifier,\n InputTypeSpecifiers extends TArguments ? {} : TArguments\n >;\n};\n\nexport const unsafeOutputType = {\n scalar: createUnsafeOutputTypeSpecifierFactory(\"scalar\"),\n enum: createUnsafeOutputTypeSpecifierFactory(\"enum\"),\n object: createUnsafeOutputTypeSpecifierFactory(\"object\"),\n union: createUnsafeOutputTypeSpecifierFactory(\"union\"),\n typename: createUnsafeOutputTypeSpecifierFactory(\"typename\"),\n};\n","import type {\n EnumDefinition,\n InputDefinition,\n ObjectDefinition,\n OperationRoots,\n ScalarDefinition,\n UnionDefinition,\n} from \"../types/schema\";\nimport { withTypeMeta } from \"../utils/type-meta\";\nimport { wrapByKey } from \"../utils/wrap-by-key\";\nimport { unsafeOutputType } from \"./type-specifier-builder\";\n\nexport const defineScalar = <const TName extends string, TInput, TOutput>(name: NoInfer<TName>) =>\n wrapByKey(\n name,\n withTypeMeta({ name }) satisfies ScalarDefinition<{\n name: TName;\n input: TInput;\n output: TOutput;\n }>,\n );\n\nexport const define = <const TName extends string>(name: TName) => ({\n enum: <const TValues extends EnumDefinition<{ name: TName; values: string }>[\"values\"]>(values: TValues) =>\n withTypeMeta({ name, values }) satisfies EnumDefinition<{\n name: TName;\n values: Extract<keyof TValues, string>;\n }>,\n\n input: <TFields extends InputDefinition[\"fields\"]>(fields: TFields) =>\n ({\n name,\n fields,\n }) satisfies InputDefinition,\n\n object: <TFields extends ObjectDefinition[\"fields\"]>(fields: TFields) =>\n ({\n name,\n fields: {\n __typename: unsafeOutputType.typename(`${name}:!`, {}),\n ...fields,\n },\n }) satisfies ObjectDefinition,\n\n union: <TTypes extends UnionDefinition[\"types\"]>(types: TTypes) =>\n ({\n name,\n types,\n }) satisfies UnionDefinition,\n});\n\nexport const defineOperationRoots = <const TOperationRoots extends OperationRoots>(operationRoots: TOperationRoots) =>\n operationRoots;\n"],"mappings":"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"}
|
package/dist/runtime/index.cjs
CHANGED
package/dist/runtime/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { B as AnyExecutionResultProjectionsBuilder, Ct as StripFunctions, Dt as Hidden, S as AnyInlineOperationOf, St as AnyGraphqlRuntimeAdapter, U as AnyComposedOperationOf, X as AnySliceOf, Z as AnySlicePayload, _n as OperationRoots, en as AnyAssignableInput, vn as OperationType, y as AnyModel } from "../index-DsMrzee1.cjs";
|
|
2
2
|
|
|
3
3
|
//#region packages/core/src/runtime/model.d.ts
|
|
4
4
|
type RuntimeModelInput = {
|