@soda-gql/core 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +67 -55
  2. package/dist/adapter.cjs +1 -1
  3. package/dist/adapter.d.cts +2 -2
  4. package/dist/adapter.d.ts +2 -2
  5. package/dist/adapter.js +1 -1
  6. package/dist/{index-Djr9A4KL.d.ts → index-CVmfSjJv.d.ts} +160 -231
  7. package/dist/index-CVmfSjJv.d.ts.map +1 -0
  8. package/dist/{index-B-erotAZ.d.cts → index-eFR-ZKOA.d.cts} +160 -231
  9. package/dist/index-eFR-ZKOA.d.cts.map +1 -0
  10. package/dist/index.cjs +260 -147
  11. package/dist/index.cjs.map +1 -1
  12. package/dist/index.d.cts +13 -4
  13. package/dist/index.d.cts.map +1 -1
  14. package/dist/index.d.ts +13 -4
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +259 -146
  17. package/dist/index.js.map +1 -1
  18. package/dist/runtime.cjs +1 -1
  19. package/dist/runtime.cjs.map +1 -1
  20. package/dist/runtime.d.cts +2 -2
  21. package/dist/runtime.d.ts +2 -2
  22. package/dist/runtime.js +1 -1
  23. package/dist/runtime.js.map +1 -1
  24. package/dist/{schema-BygZwEX8.d.ts → schema-5Vfg289u.d.cts} +162 -74
  25. package/dist/schema-5Vfg289u.d.cts.map +1 -0
  26. package/dist/{schema-D9wIW5Dl.js → schema-BbCrsNkQ.js} +2 -2
  27. package/dist/{schema-D9wIW5Dl.js.map → schema-BbCrsNkQ.js.map} +1 -1
  28. package/dist/{schema-DRkKucYe.d.cts → schema-DnlCvCK4.d.ts} +162 -74
  29. package/dist/schema-DnlCvCK4.d.ts.map +1 -0
  30. package/dist/{schema-Bip7o0g3.cjs → schema-DuWaRhdp.cjs} +1 -7
  31. package/dist/{schema-Bip7o0g3.cjs.map → schema-DuWaRhdp.cjs.map} +1 -1
  32. package/dist/{schema-builder-vwQtCGYI.d.ts → schema-builder-D_K9ESSn.d.ts} +2 -2
  33. package/dist/{schema-builder-vwQtCGYI.d.ts.map → schema-builder-D_K9ESSn.d.ts.map} +1 -1
  34. package/dist/{schema-builder-8zadflz-.d.cts → schema-builder-cy5uLVP1.d.cts} +2 -2
  35. package/dist/{schema-builder-8zadflz-.d.cts.map → schema-builder-cy5uLVP1.d.cts.map} +1 -1
  36. package/package.json +1 -1
  37. package/dist/index-B-erotAZ.d.cts.map +0 -1
  38. package/dist/index-Djr9A4KL.d.ts.map +0 -1
  39. package/dist/schema-BygZwEX8.d.ts.map +0 -1
  40. package/dist/schema-DRkKucYe.d.cts.map +0 -1
@@ -1,16 +1,7 @@
1
- import { $ as AnyVarRef, A as OutputScalarSpecifier, B as DefaultMetadataAdapter, D as OutputEnumSpecifier, E as InputTypeSpecifiers, F as OutputUnionSpecifier, I as Adapter, J as FragmentMetadataBuilder, L as AnyAdapter, M as OutputTypeSpecifier, O as OutputInferrableTypeSpecifier, P as OutputTypenameSpecifier, R as AnyMetadataAdapter, T as InputTypeSpecifier, V as ExtractAdapterTypes, X as MetadataBuilder, _t as ConstValue, a as InferInputProfile, dt as GetModifiedType, f as OperationType, g as UnionMemberName, gt as ValidTypeModifier, ht as TypeModifier, k as OutputObjectSpecifier, lt as GetAssigningType, mt as ApplyTypeModifier, n as AnyGraphqlSchema, nt as VarRefInner, o as InferOutputProfile, p as PickTypeSpecifierByFieldName, pt as TypeProfile, r as AnyTypeName, t as AnyFieldName, tt as VarRef, u as ObjectFieldRecord, ut as GetConstAssignableType, v as AnyDefaultValue, yt as FieldPath, z as DefaultAdapter } from "./schema-BygZwEX8.js";
1
+ import { A as OutputInferrableTypeSpecifier, B as AnyMetadataAdapter, Ct as ApplyTypeModifier, D as InputTypeSpecifier, E as InputTypeKind, Et as ConstValue, H as DefaultMetadataAdapter, I as OutputTypenameSpecifier, L as OutputUnionSpecifier, M as OutputScalarSpecifier, O as InputTypeSpecifiers, Ot as FieldPath, P as OutputTypeSpecifier, Q as MetadataBuilder, R as Adapter, St as TypeProfile, U as ExtractAdapterTypes, V as DefaultAdapter, X as FragmentMetadataBuilder, b as AnyDefaultValue, bt as GetModifiedType, c as InferOutputProfile, dt as getNameAt, f as ObjectFieldRecord, ft as getValueAt, h as PickTypeSpecifierByFieldName, ht as getVarRefValue, i as AnyTypeName, j as OutputObjectSpecifier, k as OutputEnumSpecifier, m as OperationType, mt as getVarRefName, n as AnyFieldName, o as InferInputKind, pt as getVarRefInner, r as AnyGraphqlSchema, s as InferInputProfile, st as VarRef, t as AllInputTypeNames, tt as AnyVarRef, v as UnionMemberName, vt as GetAssigningType, wt as TypeModifier, yt as GetConstAssignableType, z as AnyAdapter } from "./schema-DnlCvCK4.js";
2
2
  import { ConstValueNode, NamedTypeNode, OperationTypeNode, TypeNode, ValueNode } from "graphql";
3
3
  import { TypedDocumentNode } from "@graphql-typed-document-node/core";
4
4
 
5
- //#region packages/core/src/types/type-foundation/modified-type-name.d.ts
6
- type ModifiedTypeName<TNameCandidate extends [string], TName extends TNameCandidate[0], TModifier extends TypeModifier> = [string] extends TNameCandidate ? `${TName}:${TModifier}` : TNameCandidate extends [TName] ?
7
- // First, user inputs TName based on TNameCandidate
8
- NoInfer<`${TNameCandidate[0]}`> | (TName & NoInfer<TypeModifier extends TModifier ? never : string>) : `${TName}:${TModifier & ValidTypeModifier}`;
9
- declare function parseModifiedTypeName<TNameCandidate extends [string], TName extends string, TModifier extends TypeModifier>(nameAndModifier: ModifiedTypeName<TNameCandidate, TName, TModifier>): {
10
- name: TName;
11
- modifier: TModifier;
12
- };
13
- //#endregion
14
5
  //#region packages/core/src/types/type-foundation/type-modifier-extension.generated.d.ts
15
6
  interface Op<T> {
16
7
  readonly 0: T[];
@@ -189,12 +180,13 @@ type ColocatedFields<TEntries extends ColocatedEntries> = UnionToIntersection<{
189
180
  * @example
190
181
  * ```typescript
191
182
  * // In operation definition
192
- * query.operation({ name: "GetData" }, ({ f, $ }) => [
193
- * $colocate({
194
- * userCard: userCardFragment.embed({ userId: $.userId }),
195
- * posts: postsFragment.embed({ userId: $.userId }),
183
+ * query.operation({
184
+ * name: "GetData",
185
+ * fields: ({ $ }) => $colocate({
186
+ * userCard: userCardFragment.spread({ userId: $.userId }),
187
+ * posts: postsFragment.spread({ userId: $.userId }),
196
188
  * }),
197
- * ]);
189
+ * });
198
190
  *
199
191
  * // In parser definition (same labels)
200
192
  * createExecutionResultParser({
@@ -217,24 +209,22 @@ type SwitchIfEmpty<TTarget, TTrue, TFalse> = IsEmptyObject<TTarget> extends true
217
209
  declare const empty: () => EmptyObject;
218
210
  //#endregion
219
211
  //#region packages/core/src/types/element/fields-builder.d.ts
220
- declare const mergeFields: <TFieldEntries extends AnyFields[]>(fields: TFieldEntries) => MergeFields<TFieldEntries>;
221
- type MergeFields<TFieldEntries extends AnyFields[]> = UnionToIntersection<TFieldEntries[number]> extends infer TFieldsIntersection ? { [TFieldName in keyof TFieldsIntersection]: TFieldsIntersection[TFieldName] extends AnyFieldSelection ? TFieldsIntersection[TFieldName] : never } & {} : never;
222
212
  /**
223
213
  * Builder signature exposed to userland `model` and `slice` helpers. The
224
214
  * tooling `f`/`fields`/`_` aliases provide ergonomic access to GraphQL fields
225
215
  * while preserving the original schema information for inference.
226
216
  */
227
- type FieldsBuilder<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string, TVariableDefinitions extends InputTypeSpecifiers, TFields extends AnyFields[]> = (tools: NoInfer<FieldsBuilderTools<TSchema, TTypeName$1, TVariableDefinitions>>) => TFields;
217
+ type FieldsBuilder<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string, TVariableDefinitions extends InputTypeSpecifiers, TFields extends AnyFields> = (tools: NoInfer<FieldsBuilderTools<TSchema, TTypeName$1, TVariableDefinitions>>) => TFields;
228
218
  type FieldsBuilderTools<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string, TVariableDefinitions extends InputTypeSpecifiers> = {
229
219
  f: FieldSelectionFactories<TSchema, TTypeName$1>;
230
220
  $: AssigningInput<TSchema, TVariableDefinitions>;
231
221
  };
232
222
  /** Narrow builder used when a field resolves to an object and we need nested selections. */
233
- type NestedObjectFieldsBuilder<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string, TFields extends AnyNestedObject[]> = (tools: NoInfer<NestedObjectFieldsBuilderTools<TSchema, TTypeName$1>>) => TFields;
223
+ type NestedObjectFieldsBuilder<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string, TFields extends AnyNestedObject> = (tools: NoInfer<NestedObjectFieldsBuilderTools<TSchema, TTypeName$1>>) => TFields;
234
224
  type NestedObjectFieldsBuilderTools<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string> = {
235
225
  f: FieldSelectionFactories<TSchema, TTypeName$1>;
236
226
  };
237
- type NestedUnionFieldsBuilder<TSchema extends AnyGraphqlSchema, TMemberName extends string, TUnionFields extends AnyNestedUnion> = { [TTypename in keyof TUnionFields & TMemberName]?: NestedObjectFieldsBuilder<TSchema, TTypename, NonNullable<TUnionFields[TTypename]>[]> };
227
+ type NestedUnionFieldsBuilder<TSchema extends AnyGraphqlSchema, TMemberName extends string, TUnionFields extends AnyNestedUnion> = { [TTypename in keyof TUnionFields & TMemberName]?: NestedObjectFieldsBuilder<TSchema, TTypename, NonNullable<TUnionFields[TTypename]>> };
238
228
  /** Map each field to a factory capable of emitting fully-typed references. */
239
229
  type FieldSelectionFactories<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string> = { [TFieldName in keyof ObjectFieldRecord<TSchema, TTypeName$1>]: TFieldName extends string ? FieldSelectionFactory<TSchema, FieldSelectionTemplateOf<TSchema, TTypeName$1, TFieldName>> : never };
240
230
  type AnyFieldSelectionFactory = <TAlias extends string | null = null>(fieldArgs: AnyAssignableInput | void, extras?: {
@@ -261,8 +251,8 @@ type FieldSelectionFactoryReturn<TSchema extends AnyGraphqlSchema, TSelection ex
261
251
  } ? FieldSelectionFactoryPrimitiveReturn<TSelection, TAlias> : never;
262
252
  type FieldSelectionFactoryObjectReturn<TSchema extends AnyGraphqlSchema, TSelection extends AnyFieldSelection & {
263
253
  type: OutputObjectSpecifier;
264
- }, TAlias extends string | null> = <TNested$1 extends AnyNestedObject[]>(nest: NestedObjectFieldsBuilder<TSchema, TSelection["type"]["name"], TNested$1>) => { [_ in TAlias extends null ? TSelection["field"] : TAlias]: AbstractFieldSelection<TSelection["parent"], TSelection["field"], TSelection["type"], TSelection["args"], TSelection["directives"], {
265
- object: MergeFields<TNested$1>;
254
+ }, TAlias extends string | null> = <TNested$1 extends AnyNestedObject>(nest: NestedObjectFieldsBuilder<TSchema, TSelection["type"]["name"], TNested$1>) => { [_ in TAlias extends null ? TSelection["field"] : TAlias]: AbstractFieldSelection<TSelection["parent"], TSelection["field"], TSelection["type"], TSelection["args"], TSelection["directives"], {
255
+ object: TNested$1;
266
256
  }> };
267
257
  type FieldSelectionFactoryUnionReturn<TSchema extends AnyGraphqlSchema, TSelection extends AnyFieldSelection & {
268
258
  type: OutputUnionSpecifier;
@@ -287,8 +277,8 @@ declare const GQL_ELEMENT_FACTORY: unique symbol;
287
277
  declare const GQL_ELEMENT_CONTEXT: unique symbol;
288
278
  type GqlElementContext = LazyEvaluatorContext;
289
279
  type GqlElementDefinitionFactory<T> = (context: GqlElementContext | null) => T | Promise<T>;
290
- type GqlElementAttachment<TElement extends object, TName extends string, TValue extends object> = {
291
- name: TName;
280
+ type GqlElementAttachment<TElement extends object, TName$1 extends string, TValue extends object> = {
281
+ name: TName$1;
292
282
  createValue: (element: TElement) => TValue;
293
283
  };
294
284
  declare abstract class GqlElement<TDefinition extends object, TInfer extends object> {
@@ -296,7 +286,7 @@ declare abstract class GqlElement<TDefinition extends object, TInfer extends obj
296
286
  private [GQL_ELEMENT_FACTORY];
297
287
  private [GQL_ELEMENT_CONTEXT];
298
288
  protected constructor(define: GqlElementDefinitionFactory<TDefinition>, getDeps?: () => GqlElement<any, any>[]);
299
- attach<TName extends string, TValue extends object>(attachment: GqlElementAttachment<this, TName, TValue>): this & { [_ in TName]: TValue };
289
+ attach<TName$1 extends string, TValue extends object>(attachment: GqlElementAttachment<this, TName$1, TValue>): this & { [_ in TName$1]: TValue };
300
290
  static setContext<TElement extends GqlElement<any, any>>(element: TElement, context: GqlElementContext): void;
301
291
  static createEvaluationGenerator(element: GqlElement<any, any>): Generator<Promise<void>, void, void>;
302
292
  private static evaluateInstantly;
@@ -312,17 +302,17 @@ type FragmentInferMeta<TVariables, TOutput extends object> = {
312
302
  };
313
303
  interface FragmentArtifact<TTypeName$1 extends string, TVariables extends Partial<AnyAssignableInput> | void, TFields extends Partial<AnyFields>> {
314
304
  readonly typename: TTypeName$1;
315
- readonly embed: (variables: TVariables) => TFields;
305
+ readonly spread: (variables: TVariables) => TFields;
316
306
  }
317
307
  declare const __FRAGMENT_BRAND__: unique symbol;
318
308
  declare class Fragment<TTypeName$1 extends string, TVariables extends Partial<AnyAssignableInput> | void, TFields extends Partial<AnyFields>, TOutput extends object> extends GqlElement<FragmentArtifact<TTypeName$1, TVariables, TFields>, FragmentInferMeta<TVariables, TOutput>> implements FragmentArtifact<TTypeName$1, TVariables, TFields> {
319
309
  private readonly [__FRAGMENT_BRAND__];
320
310
  private constructor();
321
311
  get typename(): TTypeName$1;
322
- get embed(): (variables: TVariables) => TFields;
312
+ get spread(): (variables: TVariables) => TFields;
323
313
  static create<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string, TVariableDefinitions extends InputTypeSpecifiers, TFields extends AnyFields>(define: () => {
324
314
  typename: TTypeName$1;
325
- embed: (variables: SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>) => TFields;
315
+ spread: (variables: SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>) => TFields;
326
316
  }): Fragment<TTypeName$1, SwitchIfEmpty<TVariableDefinitions, void, AssignableInput<TSchema, TVariableDefinitions>>, TFields & {
327
317
  [key: symbol]: never;
328
318
  }, InferFields<TSchema, TFields> & {
@@ -375,25 +365,20 @@ declare class Operation<TOperationType extends OperationType, TOperationName ext
375
365
  //#region packages/core/src/composer/fields-builder.d.ts
376
366
  declare const createFieldFactories: <TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"] & string>(schema: TSchema, typeName: TTypeName$1) => FieldSelectionFactories<TSchema, TTypeName$1>;
377
367
  //#endregion
378
- //#region packages/core/src/composer/input.d.ts
379
- declare const mergeVarDefinitions: <TVarDefinitions extends InputTypeSpecifiers[]>(definitions: TVarDefinitions) => MergeVarDefinitions<TVarDefinitions>;
380
- type MergeVarDefinitions<TVarDefinitions extends InputTypeSpecifiers[]> = UnionToIntersection<TVarDefinitions[number]> extends infer TDefinitions ? { readonly [K in keyof TDefinitions]: TDefinitions[K] } : never;
381
- declare const createVarAssignments: <TSchema extends AnyGraphqlSchema, TVariableDefinitions extends InputTypeSpecifiers>(definitions: TVariableDefinitions, providedValues: AnyAssignableInput | void) => AssigningInput<TSchema, TVariableDefinitions>;
382
- declare const createVarRefs: <TSchema extends AnyGraphqlSchema, TVarDefinitions extends InputTypeSpecifiers>(definitions: TVarDefinitions) => AssigningInput<TSchema, TVarDefinitions>;
383
- //#endregion
384
368
  //#region packages/core/src/composer/fragment.d.ts
385
- declare const createGqlFragmentComposers: <TSchema extends AnyGraphqlSchema, TAdapter extends AnyMetadataAdapter = DefaultMetadataAdapter>(schema: NoInfer<TSchema>, _adapter?: TAdapter) => { readonly [TTypeName in keyof TSchema["object"]]: TTypeName extends string ? <TFieldEntries extends AnyFields[], TVarDefinitions extends InputTypeSpecifiers[] = [{}]>(options: {
369
+ declare const createGqlFragmentComposers: <TSchema extends AnyGraphqlSchema, TAdapter extends AnyMetadataAdapter = DefaultMetadataAdapter>(schema: NoInfer<TSchema>, _adapter?: TAdapter) => { readonly [TTypeName in keyof TSchema["object"]]: TTypeName extends string ? <TFields extends AnyFields, TVarDefinitions extends InputTypeSpecifiers = {}>(options: {
386
370
  variables?: TVarDefinitions | undefined;
387
- metadata?: FragmentMetadataBuilder<AssigningInput<TSchema, MergeVarDefinitions<TVarDefinitions>>, ExtractAdapterTypes<TAdapter>["fragmentMetadata"]> | undefined;
388
- }, builder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>) => Fragment<TTypeName, SwitchIfEmpty<MergeVarDefinitions<TVarDefinitions>, void, AssignableInput<TSchema, MergeVarDefinitions<TVarDefinitions>>>, MergeFields<TFieldEntries> & {
371
+ metadata?: FragmentMetadataBuilder<AssigningInput<TSchema, TVarDefinitions>, ExtractAdapterTypes<TAdapter>["fragmentMetadata"]> | undefined;
372
+ fields: FieldsBuilder<TSchema, TTypeName, TVarDefinitions, TFields>;
373
+ }) => Fragment<TTypeName, SwitchIfEmpty<TVarDefinitions, void, AssignableInput<TSchema, TVarDefinitions>>, TFields & {
389
374
  [key: symbol]: never;
390
- }, InferFields<TSchema, MergeFields<TFieldEntries>> & {
375
+ }, InferFields<TSchema, TFields> & {
391
376
  [key: symbol]: never;
392
377
  }> : never };
393
378
  //#endregion
394
379
  //#region packages/core/src/composer/fragment-usage-context.d.ts
395
380
  /**
396
- * Record of a fragment being embedded in an operation.
381
+ * Record of a fragment being spread in an operation.
397
382
  * Stores metadata builder (not fragment reference) since fragment cannot reference itself.
398
383
  *
399
384
  * @template TFragmentMetadata - The type of metadata produced by the fragment's metadata builder
@@ -401,7 +386,7 @@ declare const createGqlFragmentComposers: <TSchema extends AnyGraphqlSchema, TAd
401
386
  type FragmentUsageRecord<TFragmentMetadata = unknown> = {
402
387
  /** Metadata builder factory from the fragment, if defined */
403
388
  readonly metadataBuilder: (() => TFragmentMetadata | Promise<TFragmentMetadata>) | null;
404
- /** Field path where the fragment was embedded */
389
+ /** Field path where the fragment was spread */
405
390
  readonly path: FieldPath | null;
406
391
  };
407
392
  /**
@@ -415,15 +400,116 @@ declare const withFragmentUsageCollection: <T>(fn: () => T) => {
415
400
  usages: FragmentUsageRecord[];
416
401
  };
417
402
  /**
418
- * Record a fragment usage. Called when fragment.embed() is invoked.
403
+ * Record a fragment usage. Called when fragment.spread() is invoked.
419
404
  * No-op if not in a collection context.
420
405
  *
421
406
  * @internal
422
407
  */
423
408
  declare const recordFragmentUsage: (record: FragmentUsageRecord) => void;
424
409
  //#endregion
410
+ //#region packages/core/src/composer/var-builder.d.ts
411
+ /**
412
+ * Type for the default value function for a variable.
413
+ */
414
+ type AssignableDefaultValue<TSchema extends AnyGraphqlSchema, TKind extends InputTypeKind, TName$1 extends string, TModifier extends TypeModifier> = ConstAssignableInputValue<TSchema, {
415
+ scalar: {
416
+ kind: "scalar";
417
+ name: TName$1;
418
+ modifier: TModifier;
419
+ directives: {};
420
+ defaultValue: null;
421
+ };
422
+ enum: {
423
+ kind: "enum";
424
+ name: TName$1;
425
+ modifier: TModifier;
426
+ directives: {};
427
+ defaultValue: null;
428
+ };
429
+ input: {
430
+ kind: "input";
431
+ name: TName$1;
432
+ modifier: TModifier;
433
+ directives: {};
434
+ defaultValue: null;
435
+ };
436
+ }[TKind]>;
437
+ /**
438
+ * Variable specifier type.
439
+ */
440
+ type VarSpecifier<TKind extends InputTypeKind, TTypeName$1 extends string, TModifier extends TypeModifier, TDefaultFn extends (() => unknown) | null, TDirectives extends AnyConstDirectiveAttachments> = {
441
+ kind: TKind;
442
+ name: TTypeName$1;
443
+ modifier: TModifier;
444
+ defaultValue: TDefaultFn extends null ? null : {
445
+ default: ReturnType<NonNullable<TDefaultFn>>;
446
+ };
447
+ directives: TDirectives;
448
+ };
449
+ /**
450
+ * Creates a variable method for a specific input type.
451
+ * This is used by codegen to generate type-specific variable methods.
452
+ *
453
+ * @deprecated Use createVarMethodFactory instead for proper type inference with nested input objects.
454
+ */
455
+ declare const createVarMethod: <TKind extends InputTypeKind, TTypeName$1 extends string>(kind: TKind, typeName: TTypeName$1) => <TSchema extends AnyGraphqlSchema, const TModifier extends TypeModifier, const TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName$1, TModifier>) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(modifier: TModifier, extras?: {
456
+ default?: TDefaultFn & (() => AssignableDefaultValue<TSchema, TKind, TTypeName$1, TModifier>);
457
+ directives?: TDirectives;
458
+ }) => VarSpecifier<TKind, TTypeName$1, TModifier, TDefaultFn, TDirectives>;
459
+ /**
460
+ * Creates a factory function for generating schema-scoped variable methods.
461
+ * This ensures proper type inference for nested input objects by binding the schema type upfront.
462
+ *
463
+ * @example
464
+ * ```typescript
465
+ * const createMethod = createVarMethodFactory<typeof schema>();
466
+ * const inputTypeMethods = {
467
+ * Boolean: createMethod("scalar", "Boolean"),
468
+ * user_bool_exp: createMethod("input", "user_bool_exp"),
469
+ * } satisfies InputTypeMethods<typeof schema>;
470
+ * ```
471
+ */
472
+ declare const createVarMethodFactory: <TSchema extends AnyGraphqlSchema>() => <TKind extends InputTypeKind, TTypeName$1 extends AllInputTypeNames<TSchema>>(kind: TKind, typeName: TTypeName$1) => InputTypeMethod<TSchema, TKind, TTypeName$1>;
473
+ /**
474
+ * Type for a single input type method.
475
+ */
476
+ type InputTypeMethod<TSchema extends AnyGraphqlSchema, TKind extends InputTypeKind, TTypeName$1 extends string> = <const TModifier extends TypeModifier, const TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName$1, TModifier>) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(modifier: TModifier, extras?: {
477
+ default?: TDefaultFn & (() => AssignableDefaultValue<TSchema, TKind, TTypeName$1, TModifier>);
478
+ directives?: TDirectives;
479
+ }) => VarSpecifier<TKind, TTypeName$1, TModifier, TDefaultFn, TDirectives>;
480
+ /**
481
+ * Type for all input type methods in a schema.
482
+ */
483
+ type InputTypeMethods<TSchema extends AnyGraphqlSchema> = { [TName in AllInputTypeNames<TSchema>]: InputTypeMethod<TSchema, InferInputKind<TSchema, TName>, TName> };
484
+ /**
485
+ * Type for a wrapped variable method that includes the variable name in the result.
486
+ */
487
+ type WrappedVarMethod<TVarName extends string, TSchema extends AnyGraphqlSchema, TKind extends InputTypeKind, TTypeName$1 extends string> = <const TModifier extends TypeModifier, const TDefaultFn extends (() => AssignableDefaultValue<TSchema, TKind, TTypeName$1, TModifier>) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(modifier: TModifier, extras?: {
488
+ default?: TDefaultFn & (() => AssignableDefaultValue<TSchema, TKind, TTypeName$1, TModifier>);
489
+ directives?: TDirectives;
490
+ }) => { [K in TVarName]: VarSpecifier<TKind, TTypeName$1, TModifier, TDefaultFn, TDirectives> };
491
+ /**
492
+ * Type for the variable builder methods for a specific variable name.
493
+ */
494
+ type VarBuilderMethods<TVarName extends string, TSchema extends AnyGraphqlSchema> = { [TName in AllInputTypeNames<TSchema>]: WrappedVarMethod<TVarName, TSchema, InferInputKind<TSchema, TName>, TName> };
495
+ /**
496
+ * Type for the variable builder function.
497
+ */
498
+ type VarBuilder<TSchema extends AnyGraphqlSchema> = {
499
+ <TVarName extends string>(varName: TVarName): VarBuilderMethods<TVarName, TSchema>;
500
+ getName: typeof getVarRefName;
501
+ getValue: typeof getVarRefValue;
502
+ getInner: typeof getVarRefInner;
503
+ getNameAt: typeof getNameAt;
504
+ getValueAt: typeof getValueAt;
505
+ };
506
+ /**
507
+ * Creates a variable builder that uses injected input type methods.
508
+ */
509
+ declare const createVarBuilder: <TSchema extends AnyGraphqlSchema>(inputTypeMethods: InputTypeMethods<TSchema>) => VarBuilder<TSchema>;
510
+ //#endregion
425
511
  //#region packages/core/src/composer/gql-composer.d.ts
426
- type GqlElementComposer<TComposers, THelper> = <TResult extends AnyFragment | AnyOperation>(composeElement: (composers: TComposers, helper: THelper) => TResult) => TResult;
512
+ type GqlElementComposer<TContext> = <TResult extends AnyFragment | AnyOperation>(composeElement: (context: TContext) => TResult) => TResult;
427
513
  /**
428
514
  * Extracts the helpers type from an adapter.
429
515
  */
@@ -435,223 +521,66 @@ type ExtractHelpers<TAdapter extends AnyAdapter> = TAdapter extends Adapter<infe
435
521
  type ExtractMetadataAdapter<TAdapter extends AnyAdapter> = TAdapter extends {
436
522
  metadata?: infer M;
437
523
  } ? NonNullable<M> extends AnyMetadataAdapter ? NonNullable<M> : DefaultMetadataAdapter : DefaultMetadataAdapter;
438
- type GqlElementComposerOptions<TAdapter extends AnyAdapter = DefaultAdapter> = {
524
+ type GqlElementComposerOptions<TSchema extends AnyGraphqlSchema, TAdapter extends AnyAdapter = DefaultAdapter> = {
439
525
  adapter?: TAdapter;
526
+ inputTypeMethods: InputTypeMethods<TSchema>;
440
527
  };
441
- declare const createGqlElementComposer: <TSchema extends AnyGraphqlSchema, TAdapter extends AnyAdapter = DefaultAdapter>(schema: NoInfer<TSchema>, options?: GqlElementComposerOptions<NoInfer<TAdapter>>) => GqlElementComposer<{
442
- fragment: { readonly [TTypeName in keyof TSchema["object"]]: TTypeName extends string ? <TFieldEntries extends AnyFields[], TVarDefinitions extends InputTypeSpecifiers[] = [{}]>(options: {
528
+ declare const createGqlElementComposer: <TSchema extends AnyGraphqlSchema, TAdapter extends AnyAdapter = DefaultAdapter>(schema: NoInfer<TSchema>, options: GqlElementComposerOptions<NoInfer<TSchema>, NoInfer<TAdapter>>) => GqlElementComposer<{
529
+ fragment: { readonly [TTypeName in keyof TSchema["object"]]: TTypeName extends string ? <TFields extends AnyFields, TVarDefinitions extends InputTypeSpecifiers = {}>(options: {
443
530
  variables?: TVarDefinitions | undefined;
444
- metadata?: FragmentMetadataBuilder<AssigningInput<TSchema, MergeVarDefinitions<TVarDefinitions>>, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["fragmentMetadata"]> | undefined;
445
- }, builder: FieldsBuilder<TSchema, TTypeName, MergeVarDefinitions<TVarDefinitions>, TFieldEntries>) => Fragment<TTypeName, SwitchIfEmpty<MergeVarDefinitions<TVarDefinitions>, void, AssignableInput<TSchema, MergeVarDefinitions<TVarDefinitions>>>, MergeFields<TFieldEntries> & {
531
+ metadata?: FragmentMetadataBuilder<AssigningInput<TSchema, TVarDefinitions>, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["fragmentMetadata"]> | undefined;
532
+ fields: FieldsBuilder<TSchema, TTypeName, TVarDefinitions, TFields>;
533
+ }) => Fragment<TTypeName, SwitchIfEmpty<TVarDefinitions, void, AssignableInput<TSchema, TVarDefinitions>>, TFields & {
446
534
  [key: symbol]: never;
447
- }, InferFields<TSchema, MergeFields<TFieldEntries>> & {
535
+ }, InferFields<TSchema, TFields> & {
448
536
  [key: symbol]: never;
449
537
  }> : never };
450
538
  query: {
451
- operation: <TOperationName extends string, TFields extends AnyFields[], TVarDefinitions_1 extends InputTypeSpecifiers[] = [{}], TOperationMetadata = unknown>(options: {
539
+ operation: <TOperationName extends string, TFields extends AnyFields, TVarDefinitions_1 extends InputTypeSpecifiers = {}, TOperationMetadata = unknown>(options: {
452
540
  name: TOperationName;
453
541
  variables?: TVarDefinitions_1 | undefined;
454
- metadata?: MetadataBuilder<AssigningInput<TSchema, MergeVarDefinitions<TVarDefinitions_1>>, TOperationMetadata, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["aggregatedFragmentMetadata"], ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["schemaLevel"]> | undefined;
455
- }, fieldBuilder: FieldsBuilder<TSchema, TSchema["operations"]["query"] & keyof TSchema["object"] & string, MergeVarDefinitions<TVarDefinitions_1>, TFields>) => Operation<"query", TOperationName, (keyof MergeVarDefinitions<TVarDefinitions_1> & string)[], ConstAssignableInput<TSchema, MergeVarDefinitions<TVarDefinitions_1>>, MergeFields<TFields>, InferFields<TSchema, MergeFields<TFields>>>;
542
+ metadata?: MetadataBuilder<AssigningInput<TSchema, TVarDefinitions_1>, TOperationMetadata, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["aggregatedFragmentMetadata"], ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["schemaLevel"]> | undefined;
543
+ fields: FieldsBuilder<TSchema, TSchema["operations"]["query"] & keyof TSchema["object"] & string, TVarDefinitions_1, TFields>;
544
+ }) => Operation<"query", TOperationName, (keyof TVarDefinitions_1 & string)[], ConstAssignableInput<TSchema, TVarDefinitions_1>, TFields, InferFields<TSchema, TFields>>;
456
545
  };
457
546
  mutation: {
458
- operation: <TOperationName extends string, TFields extends AnyFields[], TVarDefinitions_1 extends InputTypeSpecifiers[] = [{}], TOperationMetadata = unknown>(options: {
547
+ operation: <TOperationName extends string, TFields extends AnyFields, TVarDefinitions_1 extends InputTypeSpecifiers = {}, TOperationMetadata = unknown>(options: {
459
548
  name: TOperationName;
460
549
  variables?: TVarDefinitions_1 | undefined;
461
- metadata?: MetadataBuilder<AssigningInput<TSchema, MergeVarDefinitions<TVarDefinitions_1>>, TOperationMetadata, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["aggregatedFragmentMetadata"], ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["schemaLevel"]> | undefined;
462
- }, fieldBuilder: FieldsBuilder<TSchema, TSchema["operations"]["mutation"] & keyof TSchema["object"] & string, MergeVarDefinitions<TVarDefinitions_1>, TFields>) => Operation<"mutation", TOperationName, (keyof MergeVarDefinitions<TVarDefinitions_1> & string)[], ConstAssignableInput<TSchema, MergeVarDefinitions<TVarDefinitions_1>>, MergeFields<TFields>, InferFields<TSchema, MergeFields<TFields>>>;
550
+ metadata?: MetadataBuilder<AssigningInput<TSchema, TVarDefinitions_1>, TOperationMetadata, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["aggregatedFragmentMetadata"], ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["schemaLevel"]> | undefined;
551
+ fields: FieldsBuilder<TSchema, TSchema["operations"]["mutation"] & keyof TSchema["object"] & string, TVarDefinitions_1, TFields>;
552
+ }) => Operation<"mutation", TOperationName, (keyof TVarDefinitions_1 & string)[], ConstAssignableInput<TSchema, TVarDefinitions_1>, TFields, InferFields<TSchema, TFields>>;
463
553
  };
464
554
  subscription: {
465
- operation: <TOperationName extends string, TFields extends AnyFields[], TVarDefinitions_1 extends InputTypeSpecifiers[] = [{}], TOperationMetadata = unknown>(options: {
555
+ operation: <TOperationName extends string, TFields extends AnyFields, TVarDefinitions_1 extends InputTypeSpecifiers = {}, TOperationMetadata = unknown>(options: {
466
556
  name: TOperationName;
467
557
  variables?: TVarDefinitions_1 | undefined;
468
- metadata?: MetadataBuilder<AssigningInput<TSchema, MergeVarDefinitions<TVarDefinitions_1>>, TOperationMetadata, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["aggregatedFragmentMetadata"], ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["schemaLevel"]> | undefined;
469
- }, fieldBuilder: FieldsBuilder<TSchema, TSchema["operations"]["subscription"] & keyof TSchema["object"] & string, MergeVarDefinitions<TVarDefinitions_1>, TFields>) => Operation<"subscription", TOperationName, (keyof MergeVarDefinitions<TVarDefinitions_1> & string)[], ConstAssignableInput<TSchema, MergeVarDefinitions<TVarDefinitions_1>>, MergeFields<TFields>, InferFields<TSchema, MergeFields<TFields>>>;
470
- };
471
- }, {
472
- $var: {
473
- <TVarName extends string>(varName: TVarName): {
474
- scalar: <const TTypeName_1 extends keyof TSchema["scalar"] & string, const TModifier extends TypeModifier, const TDefaultFn extends (() => GetConstAssignableType<InferInputProfile<TSchema, {
475
- kind: "scalar";
476
- name: TTypeName_1;
477
- modifier: TModifier;
478
- directives: {};
479
- defaultValue: null;
480
- }>> & {}) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(type: ModifiedTypeName<[keyof TSchema["scalar"] & string], TTypeName_1, TModifier>, extras?: {
481
- default?: (TDefaultFn & (() => GetConstAssignableType<InferInputProfile<TSchema, {
482
- kind: "scalar";
483
- name: TTypeName_1;
484
- modifier: TModifier;
485
- directives: {};
486
- defaultValue: null;
487
- }>> & {})) | (NoInfer<TDefaultFn> extends null ? () => GetConstAssignableType<InferInputProfile<TSchema, {
488
- kind: "scalar";
489
- name: TTypeName_1;
490
- modifier: TModifier;
491
- directives: {};
492
- defaultValue: null;
493
- }>> & {} : never) | undefined;
494
- directives?: TDirectives | undefined;
495
- } | undefined) => { [K in TVarName]: {
496
- kind: "scalar";
497
- name: TTypeName_1;
498
- modifier: TModifier;
499
- defaultValue: TDefaultFn extends null ? null : {
500
- default: ReturnType<NonNullable<TDefaultFn>>;
501
- };
502
- directives: TDirectives;
503
- } };
504
- enum: <const TTypeName_1 extends keyof TSchema["enum"] & string, const TModifier extends TypeModifier, const TDefaultFn extends (() => GetConstAssignableType<InferInputProfile<TSchema, {
505
- kind: "enum";
506
- name: TTypeName_1;
507
- modifier: TModifier;
508
- directives: {};
509
- defaultValue: null;
510
- }>> & {}) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(type: ModifiedTypeName<[keyof TSchema["enum"] & string], TTypeName_1, TModifier>, extras?: {
511
- default?: (TDefaultFn & (() => GetConstAssignableType<InferInputProfile<TSchema, {
512
- kind: "enum";
513
- name: TTypeName_1;
514
- modifier: TModifier;
515
- directives: {};
516
- defaultValue: null;
517
- }>> & {})) | (NoInfer<TDefaultFn> extends null ? () => GetConstAssignableType<InferInputProfile<TSchema, {
518
- kind: "enum";
519
- name: TTypeName_1;
520
- modifier: TModifier;
521
- directives: {};
522
- defaultValue: null;
523
- }>> & {} : never) | undefined;
524
- directives?: TDirectives | undefined;
525
- } | undefined) => { [K in TVarName]: {
526
- kind: "enum";
527
- name: TTypeName_1;
528
- modifier: TModifier;
529
- defaultValue: TDefaultFn extends null ? null : {
530
- default: ReturnType<NonNullable<TDefaultFn>>;
531
- };
532
- directives: TDirectives;
533
- } };
534
- input: <const TTypeName_1 extends keyof TSchema["input"] & string, const TModifier extends TypeModifier, const TDefaultFn extends (() => GetConstAssignableType<InferInputProfile<TSchema, {
535
- kind: "input";
536
- name: TTypeName_1;
537
- modifier: TModifier;
538
- directives: {};
539
- defaultValue: null;
540
- }>> & {}) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(type: ModifiedTypeName<[keyof TSchema["input"] & string], TTypeName_1, TModifier>, extras?: {
541
- default?: (TDefaultFn & (() => GetConstAssignableType<InferInputProfile<TSchema, {
542
- kind: "input";
543
- name: TTypeName_1;
544
- modifier: TModifier;
545
- directives: {};
546
- defaultValue: null;
547
- }>> & {})) | (NoInfer<TDefaultFn> extends null ? () => GetConstAssignableType<InferInputProfile<TSchema, {
548
- kind: "input";
549
- name: TTypeName_1;
550
- modifier: TModifier;
551
- directives: {};
552
- defaultValue: null;
553
- }>> & {} : never) | undefined;
554
- directives?: TDirectives | undefined;
555
- } | undefined) => { [K in TVarName]: {
556
- kind: "input";
557
- name: TTypeName_1;
558
- modifier: TModifier;
559
- defaultValue: TDefaultFn extends null ? null : {
560
- default: ReturnType<NonNullable<TDefaultFn>>;
561
- };
562
- directives: TDirectives;
563
- } };
564
- byField: <const TTypeName_1 extends keyof TSchema["object"] & string, const TFieldName$1 extends keyof TSchema["object"][TTypeName_1]["fields"] & string, const TArgName extends keyof TSchema["object"][TTypeName_1]["fields"][TFieldName$1]["arguments"] & string>(typeName: TTypeName_1, fieldName: TFieldName$1, argName: TArgName) => TSchema["object"][TTypeName_1]["fields"][TFieldName$1]["arguments"][TArgName];
565
- };
566
- getName: (varRef: AnyVarRef) => string;
567
- getValue: (varRef: AnyVarRef) => ConstValue;
568
- getInner: (varRef: AnyVarRef) => VarRefInner;
558
+ metadata?: MetadataBuilder<AssigningInput<TSchema, TVarDefinitions_1>, TOperationMetadata, ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["aggregatedFragmentMetadata"], ExtractAdapterTypes<ExtractMetadataAdapter<TAdapter>>["schemaLevel"]> | undefined;
559
+ fields: FieldsBuilder<TSchema, TSchema["operations"]["subscription"] & keyof TSchema["object"] & string, TVarDefinitions_1, TFields>;
560
+ }) => Operation<"subscription", TOperationName, (keyof TVarDefinitions_1 & string)[], ConstAssignableInput<TSchema, TVarDefinitions_1>, TFields, InferFields<TSchema, TFields>>;
569
561
  };
562
+ $var: VarBuilder<TSchema>;
570
563
  $colocate: <TEntries extends ColocatedEntries>(entries: TEntries) => ColocatedFields<TEntries>;
571
564
  } & ExtractHelpers<TAdapter>>;
572
565
  //#endregion
566
+ //#region packages/core/src/composer/input.d.ts
567
+ declare const createVarAssignments: <TSchema extends AnyGraphqlSchema, TVariableDefinitions extends InputTypeSpecifiers>(definitions: TVariableDefinitions, providedValues: AnyAssignableInput | void) => AssigningInput<TSchema, TVariableDefinitions>;
568
+ declare const createVarRefs: <TSchema extends AnyGraphqlSchema, TVarDefinitions extends InputTypeSpecifiers>(definitions: TVarDefinitions) => AssigningInput<TSchema, TVarDefinitions>;
569
+ //#endregion
573
570
  //#region packages/core/src/composer/operation.d.ts
574
- declare const createOperationComposerFactory: <TSchema extends AnyGraphqlSchema, TAdapter extends AnyMetadataAdapter = DefaultMetadataAdapter>(schema: NoInfer<TSchema>, adapter?: TAdapter) => <TOperationType extends OperationType>(operationType: TOperationType) => <TOperationName extends string, TFields extends AnyFields[], TVarDefinitions extends InputTypeSpecifiers[] = [{}], TOperationMetadata = unknown>(options: {
571
+ declare const createOperationComposerFactory: <TSchema extends AnyGraphqlSchema, TAdapter extends AnyMetadataAdapter = DefaultMetadataAdapter>(schema: NoInfer<TSchema>, adapter?: TAdapter) => <TOperationType extends OperationType>(operationType: TOperationType) => <TOperationName extends string, TFields extends AnyFields, TVarDefinitions extends InputTypeSpecifiers = {}, TOperationMetadata = unknown>(options: {
575
572
  name: TOperationName;
576
573
  variables?: TVarDefinitions;
577
- metadata?: MetadataBuilder<ReturnType<typeof createVarRefs<TSchema, MergeVarDefinitions<TVarDefinitions>>>, TOperationMetadata, ExtractAdapterTypes<TAdapter>["aggregatedFragmentMetadata"], ExtractAdapterTypes<TAdapter>["schemaLevel"]>;
578
- }, fieldBuilder: FieldsBuilder<TSchema, TSchema["operations"][TOperationType] & keyof TSchema["object"] & string, MergeVarDefinitions<TVarDefinitions>, TFields>) => Operation<TOperationType, TOperationName, (keyof MergeVarDefinitions<TVarDefinitions> & string)[], ConstAssignableInput<TSchema, MergeVarDefinitions<TVarDefinitions>>, MergeFields<TFields>, InferFields<TSchema, MergeFields<TFields>>>;
579
- //#endregion
580
- //#region packages/core/src/composer/var-builder.d.ts
581
- type AssignableDefaultValue<TSchema extends AnyGraphqlSchema, TKind extends "scalar" | "enum" | "input", TName extends keyof TSchema[TKind] & string, TModifier extends TypeModifier> = ConstAssignableInputValue<TSchema, {
582
- scalar: {
583
- kind: "scalar";
584
- name: TName;
585
- modifier: TModifier;
586
- directives: {};
587
- defaultValue: null;
588
- };
589
- enum: {
590
- kind: "enum";
591
- name: TName;
592
- modifier: TModifier;
593
- directives: {};
594
- defaultValue: null;
595
- };
596
- input: {
597
- kind: "input";
598
- name: TName;
599
- modifier: TModifier;
600
- directives: {};
601
- defaultValue: null;
602
- };
603
- }[TKind]>;
604
- declare const createVarBuilder: <TSchema extends AnyGraphqlSchema>(schema: TSchema) => {
605
- <TVarName extends string>(varName: TVarName): {
606
- scalar: <const TTypeName$1 extends keyof TSchema["scalar"] & string, const TModifier extends TypeModifier, const TDefaultFn extends (() => AssignableDefaultValue<TSchema, "scalar", TTypeName$1, TModifier>) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(type: ModifiedTypeName<[keyof TSchema["scalar"] & string], TTypeName$1, TModifier>, extras?: {
607
- default?: (TDefaultFn & (() => AssignableDefaultValue<TSchema, "scalar", TTypeName$1, TModifier>)) | (NoInfer<TDefaultFn> extends null ? () => AssignableDefaultValue<TSchema, "scalar", TTypeName$1, TModifier> : never) | undefined;
608
- directives?: TDirectives | undefined;
609
- } | undefined) => { [K in TVarName]: {
610
- kind: "scalar";
611
- name: TTypeName$1;
612
- modifier: TModifier;
613
- defaultValue: TDefaultFn extends null ? null : {
614
- default: ReturnType<NonNullable<TDefaultFn>>;
615
- };
616
- directives: TDirectives;
617
- } };
618
- enum: <const TTypeName$1 extends keyof TSchema["enum"] & string, const TModifier extends TypeModifier, const TDefaultFn extends (() => AssignableDefaultValue<TSchema, "enum", TTypeName$1, TModifier>) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(type: ModifiedTypeName<[keyof TSchema["enum"] & string], TTypeName$1, TModifier>, extras?: {
619
- default?: (TDefaultFn & (() => AssignableDefaultValue<TSchema, "enum", TTypeName$1, TModifier>)) | (NoInfer<TDefaultFn> extends null ? () => AssignableDefaultValue<TSchema, "enum", TTypeName$1, TModifier> : never) | undefined;
620
- directives?: TDirectives | undefined;
621
- } | undefined) => { [K in TVarName]: {
622
- kind: "enum";
623
- name: TTypeName$1;
624
- modifier: TModifier;
625
- defaultValue: TDefaultFn extends null ? null : {
626
- default: ReturnType<NonNullable<TDefaultFn>>;
627
- };
628
- directives: TDirectives;
629
- } };
630
- input: <const TTypeName$1 extends keyof TSchema["input"] & string, const TModifier extends TypeModifier, const TDefaultFn extends (() => AssignableDefaultValue<TSchema, "input", TTypeName$1, TModifier>) | null = null, const TDirectives extends AnyConstDirectiveAttachments = {}>(type: ModifiedTypeName<[keyof TSchema["input"] & string], TTypeName$1, TModifier>, extras?: {
631
- default?: (TDefaultFn & (() => AssignableDefaultValue<TSchema, "input", TTypeName$1, TModifier>)) | (NoInfer<TDefaultFn> extends null ? () => AssignableDefaultValue<TSchema, "input", TTypeName$1, TModifier> : never) | undefined;
632
- directives?: TDirectives | undefined;
633
- } | undefined) => { [K in TVarName]: {
634
- kind: "input";
635
- name: TTypeName$1;
636
- modifier: TModifier;
637
- defaultValue: TDefaultFn extends null ? null : {
638
- default: ReturnType<NonNullable<TDefaultFn>>;
639
- };
640
- directives: TDirectives;
641
- } };
642
- byField: <const TTypeName$1 extends keyof TSchema["object"] & string, const TFieldName$1 extends keyof TSchema["object"][TTypeName$1]["fields"] & string, const TArgName extends keyof TSchema["object"][TTypeName$1]["fields"][TFieldName$1]["arguments"] & string>(typeName: TTypeName$1, fieldName: TFieldName$1, argName: TArgName) => TSchema["object"][TTypeName$1]["fields"][TFieldName$1]["arguments"][TArgName];
643
- };
644
- getName: (varRef: AnyVarRef) => string;
645
- getValue: (varRef: AnyVarRef) => ConstValue;
646
- getInner: (varRef: AnyVarRef) => VarRefInner;
647
- };
574
+ metadata?: MetadataBuilder<ReturnType<typeof createVarRefs<TSchema, TVarDefinitions>>, TOperationMetadata, ExtractAdapterTypes<TAdapter>["aggregatedFragmentMetadata"], ExtractAdapterTypes<TAdapter>["schemaLevel"]>;
575
+ fields: FieldsBuilder<TSchema, TSchema["operations"][TOperationType] & keyof TSchema["object"] & string, TVarDefinitions, TFields>;
576
+ }) => Operation<TOperationType, TOperationName, (keyof TVarDefinitions & string)[], ConstAssignableInput<TSchema, TVarDefinitions>, TFields, InferFields<TSchema, TFields>>;
648
577
  //#endregion
649
578
  //#region packages/core/src/utils/hidden.d.ts
650
579
  declare const hidden: <T>() => (() => T);
651
580
  type Hidden<T> = () => T;
652
581
  //#endregion
653
582
  //#region packages/core/src/utils/wrap-by-key.d.ts
654
- declare function wrapByKey<TName extends string, TValue>(name: TName, value: TValue): { [K in TName]: TValue };
583
+ declare function wrapByKey<TName$1 extends string, TValue>(name: TName$1, value: TValue): { [K in TName$1]: TValue };
655
584
  //#endregion
656
- export { StripFunctions as $, AnyFieldSelectionFactoryReturn as A, ModifiedTypeName as At, MergeFields as B, Fragment as C, AssigningInput as Ct, GqlElementContext as D, ConstAssignableInput as Dt, GqlElementAttachment as E, AnyConstAssignableInputValue as Et, FieldSelectionFactoryPrimitiveReturn as F, EmptyObject as G, NestedObjectFieldsBuilderTools as H, FieldSelectionFactoryReturn as I, empty as J, IfEmpty as K, FieldSelectionFactoryUnionReturn as L, FieldSelectionFactory as M, FieldSelectionFactoryFieldArguments as N, GqlElementDefinitionFactory as O, ConstAssignableInputValue as Ot, FieldSelectionFactoryObjectReturn as P, createColocateHelper as Q, FieldsBuilder as R, AnyFragment as S, AssignableInputValue as St, GqlElement as T, AnyConstAssignableInput as Tt, NestedUnionFieldsBuilder as U, NestedObjectFieldsBuilder as V, mergeFields as W, ColocatedEntries as X, ColocateHelper as Y, ColocatedFields as Z, createFieldFactories as _, AnyAssignableInput as _t, createOperationComposerFactory as a, buildDocument as at, Operation as b, AssignableInput as bt, createGqlElementComposer as c, AbstractFieldSelection as ct, withFragmentUsageCollection as d, AnyNestedObject as dt, StripSymbols as et, createGqlFragmentComposers as f, AnyNestedUnion as ft, mergeVarDefinitions as g, AnyDirectiveAttachments as gt, createVarRefs as h, InferFields as ht, createVarBuilder as i, buildConstValueNode as it, FieldSelectionFactories as j, parseModifiedTypeName as jt, AnyFieldSelectionFactory as k, GetAssignableType as kt, FragmentUsageRecord as l, AnyFieldSelection as lt, createVarAssignments as m, InferField as mt, Hidden as n, UnionToIntersection as nt, GqlElementComposer as o, buildOperationTypeNode as ot, MergeVarDefinitions as p, FieldSelectionTemplateOf as pt, SwitchIfEmpty as q, hidden as r, buildArgumentValue as rt, GqlElementComposerOptions as s, buildWithTypeModifier as st, wrapByKey as t, Tuple as tt, recordFragmentUsage as u, AnyFields as ut, AnyOperation as v, AnyAssignableInputValue as vt, FragmentInferMeta as w, AnyConstDirectiveAttachments as wt, OperationInferMeta as x, AssignableInputByFieldName as xt, AnyOperationOf as y, AnyAssigningInput as yt, FieldsBuilderTools as z };
657
- //# sourceMappingURL=index-Djr9A4KL.d.ts.map
585
+ export { ColocatedEntries as $, GqlElement as A, ConstAssignableInput as At, FieldSelectionFactoryPrimitiveReturn as B, AnyOperation as C, AssignableInput as Ct, AnyFragment as D, AnyConstDirectiveAttachments as Dt, OperationInferMeta as E, AssigningInput as Et, AnyFieldSelectionFactoryReturn as F, NestedObjectFieldsBuilder as G, FieldSelectionFactoryUnionReturn as H, FieldSelectionFactories as I, EmptyObject as J, NestedObjectFieldsBuilderTools as K, FieldSelectionFactory as L, GqlElementContext as M, GetAssignableType as Mt, GqlElementDefinitionFactory as N, Fragment as O, AnyConstAssignableInput as Ot, AnyFieldSelectionFactory as P, ColocateHelper as Q, FieldSelectionFactoryFieldArguments as R, createFieldFactories as S, AnyAssigningInput as St, Operation as T, AssignableInputValue as Tt, FieldsBuilder as U, FieldSelectionFactoryReturn as V, FieldsBuilderTools as W, SwitchIfEmpty as X, IfEmpty as Y, empty as Z, createVarMethodFactory as _, InferField as _t, createVarAssignments as a, UnionToIntersection as at, withFragmentUsageCollection as b, AnyAssignableInput as bt, GqlElementComposerOptions as c, buildDocument as ct, InputTypeMethods as d, AbstractFieldSelection as dt, ColocatedFields as et, VarBuilder as f, AnyFieldSelection as ft, createVarMethod as g, FieldSelectionTemplateOf as gt, createVarBuilder as h, AnyNestedUnion as ht, createOperationComposerFactory as i, Tuple as it, GqlElementAttachment as j, ConstAssignableInputValue as jt, FragmentInferMeta as k, AnyConstAssignableInputValue as kt, createGqlElementComposer as l, buildOperationTypeNode as lt, VarSpecifier as m, AnyNestedObject as mt, Hidden as n, StripFunctions as nt, createVarRefs as o, buildArgumentValue as ot, VarBuilderMethods as p, AnyFields as pt, NestedUnionFieldsBuilder as q, hidden as r, StripSymbols as rt, GqlElementComposer as s, buildConstValueNode as st, wrapByKey as t, createColocateHelper as tt, InputTypeMethod as u, buildWithTypeModifier as ut, FragmentUsageRecord as v, InferFields as vt, AnyOperationOf as w, AssignableInputByFieldName as wt, createGqlFragmentComposers as x, AnyAssignableInputValue as xt, recordFragmentUsage as y, AnyDirectiveAttachments as yt, FieldSelectionFactoryObjectReturn as z };
586
+ //# sourceMappingURL=index-CVmfSjJv.d.ts.map