@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
@@ -37,7 +37,7 @@ type FieldPath = {
37
37
  * ```typescript
38
38
  * import { getCurrentFieldPath } from '@soda-gql/core';
39
39
  *
40
- * // Inside a field builder or model embed:
40
+ * // Inside a field builder or model spread:
41
41
  * const path = getCurrentFieldPath();
42
42
  * console.log(path?.full); // "$.user.posts[].author"
43
43
  * ```
@@ -49,7 +49,7 @@ declare const getCurrentFieldPath: () => FieldPath | null;
49
49
  *
50
50
  * @internal
51
51
  */
52
- declare const withFieldPath: <T$1>(path: FieldPath, fn: () => T$1) => T$1;
52
+ declare const withFieldPath: <T>(path: FieldPath, fn: () => T) => T;
53
53
  /**
54
54
  * Append a new segment to the current path.
55
55
  *
@@ -79,41 +79,41 @@ type ConstValues = {
79
79
  //#region packages/core/src/types/type-foundation/type-modifier-core.generated.d.ts
80
80
  type TypeModifier = string;
81
81
  type ValidTypeModifier = "!" | "?" | "![]!" | "![]?" | "?[]!" | "?[]?" | "![]![]!" | "![]![]?" | "![]?[]!" | "![]?[]?" | "?[]![]!" | "?[]![]?" | "?[]?[]!" | "?[]?[]?" | "![]![]![]!" | "![]![]![]?" | "![]![]?[]!" | "![]![]?[]?" | "![]?[]![]!" | "![]?[]![]?" | "![]?[]?[]!" | "![]?[]?[]?" | "?[]![]![]!" | "?[]![]![]?" | "?[]![]?[]!" | "?[]![]?[]?" | "?[]?[]![]!" | "?[]?[]![]?" | "?[]?[]?[]!" | "?[]?[]?[]?";
82
- interface Op<T$1> {
83
- readonly 0: T$1[];
84
- readonly 1: T$1[] | null | undefined;
82
+ interface Op<T> {
83
+ readonly 0: T[];
84
+ readonly 1: T[] | null | undefined;
85
85
  }
86
- type Modified_0<T$1> = T$1;
87
- type Modified_1<T$1> = T$1 | null | undefined;
88
- type Modified_00<T$1> = Op<Modified_0<T$1>>[0];
89
- type Modified_01<T$1> = Op<Modified_0<T$1>>[1];
90
- type Modified_10<T$1> = Op<Modified_1<T$1>>[0];
91
- type Modified_11<T$1> = Op<Modified_1<T$1>>[1];
92
- type Modified_000<T$1> = Op<Modified_00<T$1>>[0];
93
- type Modified_001<T$1> = Op<Modified_00<T$1>>[1];
94
- type Modified_010<T$1> = Op<Modified_01<T$1>>[0];
95
- type Modified_011<T$1> = Op<Modified_01<T$1>>[1];
96
- type Modified_100<T$1> = Op<Modified_10<T$1>>[0];
97
- type Modified_101<T$1> = Op<Modified_10<T$1>>[1];
98
- type Modified_110<T$1> = Op<Modified_11<T$1>>[0];
99
- type Modified_111<T$1> = Op<Modified_11<T$1>>[1];
100
- type Modified_0000<T$1> = Op<Modified_000<T$1>>[0];
101
- type Modified_0001<T$1> = Op<Modified_000<T$1>>[1];
102
- type Modified_0010<T$1> = Op<Modified_001<T$1>>[0];
103
- type Modified_0011<T$1> = Op<Modified_001<T$1>>[1];
104
- type Modified_0100<T$1> = Op<Modified_010<T$1>>[0];
105
- type Modified_0101<T$1> = Op<Modified_010<T$1>>[1];
106
- type Modified_0110<T$1> = Op<Modified_011<T$1>>[0];
107
- type Modified_0111<T$1> = Op<Modified_011<T$1>>[1];
108
- type Modified_1000<T$1> = Op<Modified_100<T$1>>[0];
109
- type Modified_1001<T$1> = Op<Modified_100<T$1>>[1];
110
- type Modified_1010<T$1> = Op<Modified_101<T$1>>[0];
111
- type Modified_1011<T$1> = Op<Modified_101<T$1>>[1];
112
- type Modified_1100<T$1> = Op<Modified_110<T$1>>[0];
113
- type Modified_1101<T$1> = Op<Modified_110<T$1>>[1];
114
- type Modified_1110<T$1> = Op<Modified_111<T$1>>[0];
115
- type Modified_1111<T$1> = Op<Modified_111<T$1>>[1];
116
- type ApplyTypeModifier<T$1, M extends TypeModifier> = M extends "!" ? Modified_0<T$1> : M extends "?" ? Modified_1<T$1> : M extends "![]!" ? Modified_00<T$1> : M extends "![]?" ? Modified_01<T$1> : M extends "?[]!" ? Modified_10<T$1> : M extends "?[]?" ? Modified_11<T$1> : M extends "![]![]!" ? Modified_000<T$1> : M extends "![]![]?" ? Modified_001<T$1> : M extends "![]?[]!" ? Modified_010<T$1> : M extends "![]?[]?" ? Modified_011<T$1> : M extends "?[]![]!" ? Modified_100<T$1> : M extends "?[]![]?" ? Modified_101<T$1> : M extends "?[]?[]!" ? Modified_110<T$1> : M extends "?[]?[]?" ? Modified_111<T$1> : M extends "![]![]![]!" ? Modified_0000<T$1> : M extends "![]![]![]?" ? Modified_0001<T$1> : M extends "![]![]?[]!" ? Modified_0010<T$1> : M extends "![]![]?[]?" ? Modified_0011<T$1> : M extends "![]?[]![]!" ? Modified_0100<T$1> : M extends "![]?[]![]?" ? Modified_0101<T$1> : M extends "![]?[]?[]!" ? Modified_0110<T$1> : M extends "![]?[]?[]?" ? Modified_0111<T$1> : M extends "?[]![]![]!" ? Modified_1000<T$1> : M extends "?[]![]![]?" ? Modified_1001<T$1> : M extends "?[]![]?[]!" ? Modified_1010<T$1> : M extends "?[]![]?[]?" ? Modified_1011<T$1> : M extends "?[]?[]![]!" ? Modified_1100<T$1> : M extends "?[]?[]![]?" ? Modified_1101<T$1> : M extends "?[]?[]?[]!" ? Modified_1110<T$1> : M extends "?[]?[]?[]?" ? Modified_1111<T$1> : never;
86
+ type Modified_0<T> = T;
87
+ type Modified_1<T> = T | null | undefined;
88
+ type Modified_00<T> = Op<Modified_0<T>>[0];
89
+ type Modified_01<T> = Op<Modified_0<T>>[1];
90
+ type Modified_10<T> = Op<Modified_1<T>>[0];
91
+ type Modified_11<T> = Op<Modified_1<T>>[1];
92
+ type Modified_000<T> = Op<Modified_00<T>>[0];
93
+ type Modified_001<T> = Op<Modified_00<T>>[1];
94
+ type Modified_010<T> = Op<Modified_01<T>>[0];
95
+ type Modified_011<T> = Op<Modified_01<T>>[1];
96
+ type Modified_100<T> = Op<Modified_10<T>>[0];
97
+ type Modified_101<T> = Op<Modified_10<T>>[1];
98
+ type Modified_110<T> = Op<Modified_11<T>>[0];
99
+ type Modified_111<T> = Op<Modified_11<T>>[1];
100
+ type Modified_0000<T> = Op<Modified_000<T>>[0];
101
+ type Modified_0001<T> = Op<Modified_000<T>>[1];
102
+ type Modified_0010<T> = Op<Modified_001<T>>[0];
103
+ type Modified_0011<T> = Op<Modified_001<T>>[1];
104
+ type Modified_0100<T> = Op<Modified_010<T>>[0];
105
+ type Modified_0101<T> = Op<Modified_010<T>>[1];
106
+ type Modified_0110<T> = Op<Modified_011<T>>[0];
107
+ type Modified_0111<T> = Op<Modified_011<T>>[1];
108
+ type Modified_1000<T> = Op<Modified_100<T>>[0];
109
+ type Modified_1001<T> = Op<Modified_100<T>>[1];
110
+ type Modified_1010<T> = Op<Modified_101<T>>[0];
111
+ type Modified_1011<T> = Op<Modified_101<T>>[1];
112
+ type Modified_1100<T> = Op<Modified_110<T>>[0];
113
+ type Modified_1101<T> = Op<Modified_110<T>>[1];
114
+ type Modified_1110<T> = Op<Modified_111<T>>[0];
115
+ type Modified_1111<T> = Op<Modified_111<T>>[1];
116
+ type ApplyTypeModifier<T, M extends TypeModifier> = M extends "!" ? Modified_0<T> : M extends "?" ? Modified_1<T> : M extends "![]!" ? Modified_00<T> : M extends "![]?" ? Modified_01<T> : M extends "?[]!" ? Modified_10<T> : M extends "?[]?" ? Modified_11<T> : M extends "![]![]!" ? Modified_000<T> : M extends "![]![]?" ? Modified_001<T> : M extends "![]?[]!" ? Modified_010<T> : M extends "![]?[]?" ? Modified_011<T> : M extends "?[]![]!" ? Modified_100<T> : M extends "?[]![]?" ? Modified_101<T> : M extends "?[]?[]!" ? Modified_110<T> : M extends "?[]?[]?" ? Modified_111<T> : M extends "![]![]![]!" ? Modified_0000<T> : M extends "![]![]![]?" ? Modified_0001<T> : M extends "![]![]?[]!" ? Modified_0010<T> : M extends "![]![]?[]?" ? Modified_0011<T> : M extends "![]?[]![]!" ? Modified_0100<T> : M extends "![]?[]![]?" ? Modified_0101<T> : M extends "![]?[]?[]!" ? Modified_0110<T> : M extends "![]?[]?[]?" ? Modified_0111<T> : M extends "?[]![]![]!" ? Modified_1000<T> : M extends "?[]![]![]?" ? Modified_1001<T> : M extends "?[]![]?[]!" ? Modified_1010<T> : M extends "?[]![]?[]?" ? Modified_1011<T> : M extends "?[]?[]![]!" ? Modified_1100<T> : M extends "?[]?[]![]?" ? Modified_1101<T> : M extends "?[]?[]?[]!" ? Modified_1110<T> : M extends "?[]?[]?[]?" ? Modified_1111<T> : never;
117
117
  //#endregion
118
118
  //#region packages/core/src/types/type-foundation/type-profile.d.ts
119
119
  interface PrimitiveTypeProfile {
@@ -127,18 +127,36 @@ type TypeProfile = [PrimitiveTypeProfile] | {
127
127
  declare namespace TypeProfile {
128
128
  type WITH_DEFAULT_INPUT = "with_default_input";
129
129
  type WithMeta = [TypeProfile, TypeModifier, WITH_DEFAULT_INPUT?];
130
- type Type<TProfile extends TypeProfile.WithMeta> = (TProfile[0] extends [PrimitiveTypeProfile] ? ApplyTypeModifier<TProfile[0][0]["value"], TProfile[1]> : { readonly [K in keyof TProfile[0]]: TProfile[0][K] extends TypeProfile.WithMeta ? Type<TProfile[0][K]> : never }) | (TProfile[2] extends WITH_DEFAULT_INPUT ? undefined : never);
130
+ type IsOptionalProfile<TField extends WithMeta> = TField[1] extends `${string}?` ? true : TField[2] extends WITH_DEFAULT_INPUT ? true : false;
131
+ type OptionalProfileKeys<TProfileObject extends {
132
+ readonly [key: string]: WithMeta;
133
+ }> = { [K in keyof TProfileObject]: IsOptionalProfile<TProfileObject[K]> extends true ? K : never }[keyof TProfileObject];
134
+ type RequiredProfileKeys<TProfileObject extends {
135
+ readonly [key: string]: WithMeta;
136
+ }> = { [K in keyof TProfileObject]: IsOptionalProfile<TProfileObject[K]> extends false ? K : never }[keyof TProfileObject];
137
+ type Simplify<T> = { [K in keyof T]: T[K] } & {};
138
+ type ObjectTypeProfile<TProfileObject extends {
139
+ readonly [key: string]: WithMeta;
140
+ }> = Simplify<{ readonly [K in OptionalProfileKeys<TProfileObject>]+?: TProfileObject[K] extends WithMeta ? Type<TProfileObject[K]> : never } & { readonly [K in RequiredProfileKeys<TProfileObject>]-?: TProfileObject[K] extends WithMeta ? Type<TProfileObject[K]> : never }>;
141
+ type AssignableObjectTypeProfile<TProfileObject extends {
142
+ readonly [key: string]: WithMeta;
143
+ }> = Simplify<{ readonly [K in OptionalProfileKeys<TProfileObject>]+?: TProfileObject[K] extends WithMeta ? AssignableType<TProfileObject[K]> : never } & { readonly [K in RequiredProfileKeys<TProfileObject>]-?: TProfileObject[K] extends WithMeta ? AssignableType<TProfileObject[K]> : never }>;
144
+ type Type<TProfile extends TypeProfile.WithMeta> = (TProfile[0] extends [PrimitiveTypeProfile] ? ApplyTypeModifier<TProfile[0][0]["value"], TProfile[1]> : TProfile[0] extends {
145
+ readonly [key: string]: WithMeta;
146
+ } ? ObjectTypeProfile<TProfile[0]> : never) | (TProfile[2] extends WITH_DEFAULT_INPUT ? undefined : never);
131
147
  type AssignableSignature<TProfile extends TypeProfile.WithMeta> = ApplyTypeModifier<"[TYPE_SIGNATURE]", TProfile[1]> | (TProfile[2] extends WITH_DEFAULT_INPUT ? undefined : never);
132
148
  type Signature<TProfile extends TypeProfile.WithMeta> = ApplyTypeModifier<"[TYPE_SIGNATURE]", TProfile[1]> extends infer T ? TProfile[2] extends WITH_DEFAULT_INPUT ? Exclude<T, undefined> : T : never;
133
149
  type AssignableVarRefMeta<TProfile extends TypeProfile.WithMeta> = {
134
- profile: TProfile[0];
150
+ profile: [TProfile[0], any, any?];
135
151
  signature: AssignableSignature<TProfile>;
136
152
  };
137
153
  type AssigningVarRefMeta<TProfile extends TypeProfile.WithMeta> = {
138
- profile: TProfile[0];
154
+ profile: TProfile;
139
155
  signature: Signature<TProfile>;
140
156
  };
141
- type AssignableType<TProfile extends TypeProfile.WithMeta> = ApplyTypeModifier<TProfile[0] extends [PrimitiveTypeProfile] ? TProfile[0][0]["value"] : { readonly [K in keyof TProfile[0]]: TProfile[0][K] extends TypeProfile.WithMeta ? AssignableType<TProfile[0][K]> : never }, TProfile[1]> | VarRef<AssignableVarRefMeta<TProfile>>;
157
+ type AssignableType<TProfile extends TypeProfile.WithMeta> = ApplyTypeModifier<TProfile[0] extends [PrimitiveTypeProfile] ? TProfile[0][0]["value"] : TProfile[0] extends {
158
+ readonly [key: string]: WithMeta;
159
+ } ? AssignableObjectTypeProfile<TProfile[0]> : never, TProfile[1]> | VarRef<AssignableVarRefMeta<TProfile>>;
142
160
  type AssigningType<TProfile extends TypeProfile.WithMeta> = VarRef<AssigningVarRefMeta<TProfile>>;
143
161
  }
144
162
  type GetModifiedType<TProfile extends TypeProfile, TModifier extends TypeModifier> = TypeProfile.Type<[TProfile, TModifier]>;
@@ -147,15 +165,28 @@ type GetAssigningType<TProfile extends TypeProfile.WithMeta> = TypeProfile.Assig
147
165
  //#endregion
148
166
  //#region packages/core/src/types/type-foundation/var-ref.d.ts
149
167
  interface AnyVarRefMeta {
150
- readonly profile: TypeProfile;
168
+ readonly profile: TypeProfile.WithMeta;
151
169
  readonly signature: unknown;
152
170
  }
171
+ /**
172
+ * A nested value that can contain:
173
+ * - Primitive ConstValue (string, number, boolean, null, undefined)
174
+ * - VarRef at any nesting level
175
+ * - Objects with NestedValue fields
176
+ * - Arrays of NestedValue
177
+ */
178
+ type NestedValue = string | number | boolean | null | undefined | {
179
+ readonly [key: string]: NestedValueElement;
180
+ } | readonly NestedValueElement[];
181
+ type NestedValueElement = string | number | boolean | null | undefined | AnyVarRef | {
182
+ readonly [key: string]: NestedValueElement;
183
+ } | readonly NestedValueElement[];
153
184
  type VarRefInner = {
154
185
  type: "variable";
155
186
  name: string;
156
187
  } | {
157
- type: "const-value";
158
- value: ConstValue;
188
+ type: "nested-value";
189
+ value: NestedValue;
159
190
  };
160
191
  type AnyVarRef = VarRef<any>;
161
192
  declare const __VAR_REF_BRAND__: unique symbol;
@@ -166,19 +197,68 @@ declare class VarRef<TMeta extends AnyVarRefMeta> {
166
197
  static getInner(varRef: AnyVarRef): VarRefInner;
167
198
  }
168
199
  declare const isVarRef: (value: unknown) => value is AnyVarRef;
200
+ /**
201
+ * Recursively checks if a NestedValue contains any VarRef.
202
+ * Used by getVarRefValue to determine if it's safe to return as ConstValue.
203
+ */
204
+ declare const hasVarRefInside: (value: NestedValueElement) => boolean;
169
205
  declare const createVarRefFromVariable: <TProfile extends TypeProfile.WithMeta>(name: string) => VarRef<TypeProfile.AssigningVarRefMeta<TProfile>>;
170
- declare const createVarRefFromConstValue: <TProfile extends TypeProfile.WithMeta>(value: ConstValue) => VarRef<TypeProfile.AssigningVarRefMeta<TProfile>>;
206
+ declare const createVarRefFromNestedValue: <TProfile extends TypeProfile.WithMeta>(value: NestedValue) => VarRef<TypeProfile.AssigningVarRefMeta<TProfile>>;
171
207
  declare const getVarRefInner: (varRef: AnyVarRef) => VarRefInner;
172
208
  /**
173
209
  * Get the variable name from a VarRef.
174
- * Throws if the VarRef contains a const-value instead of a variable reference.
210
+ * Throws if the VarRef contains a nested-value instead of a variable reference.
175
211
  */
176
212
  declare const getVarRefName: (varRef: AnyVarRef) => string;
177
213
  /**
178
214
  * Get the const value from a VarRef.
179
- * Throws if the VarRef contains a variable reference instead of a const-value.
215
+ * Throws if the VarRef contains a variable reference instead of a nested-value,
216
+ * or if the nested-value contains any VarRef inside.
180
217
  */
181
218
  declare const getVarRefValue: (varRef: AnyVarRef) => ConstValue;
219
+ /**
220
+ * Path segment types for navigating nested values.
221
+ */
222
+ type PathSegment = string;
223
+ /**
224
+ * Proxy type that records property accesses.
225
+ */
226
+ type SelectableProxy<T> = T;
227
+ /**
228
+ * Type-safe path builder function.
229
+ * Used with getNameAt and getValueAt helpers.
230
+ */
231
+ type Selector<T, U> = (proxy: T) => U;
232
+ /**
233
+ * Get the variable name from a VarRef at a specific path.
234
+ *
235
+ * @param varRef - The VarRef containing a nested-value
236
+ * @param selector - Path builder function, e.g., p => p.user.age
237
+ * @returns The variable name at the specified path
238
+ * @throws If path doesn't lead to a VarRef with type "variable"
239
+ *
240
+ * @example
241
+ * const ref = createVarRefFromNestedValue({
242
+ * user: { age: someVariableRef }
243
+ * });
244
+ * getNameAt(ref, p => p.user.age); // returns the variable name
245
+ */
246
+ declare const getNameAt: <T extends AnyVarRefMeta, U>(varRef: VarRef<T>, selector: (proxy: TypeProfile.Type<T["profile"]>) => U) => string;
247
+ /**
248
+ * Get the const value from a nested-value VarRef at a specific path.
249
+ *
250
+ * @param varRef - The VarRef containing a nested-value
251
+ * @param pathFn - Path builder function, e.g., p => p.user.name
252
+ * @returns The const value at the specified path
253
+ * @throws If path leads to a VarRef or if value contains VarRef inside
254
+ *
255
+ * @example
256
+ * const ref = createVarRefFromNestedValue({
257
+ * user: { name: "Alice", age: someVariableRef }
258
+ * });
259
+ * getValueAt(ref, p => p.user.name); // returns "Alice"
260
+ */
261
+ declare const getValueAt: <T extends AnyVarRefMeta, U>(varRef: VarRef<T>, selector: (proxy: SelectableProxy<TypeProfile.Type<T["profile"]>>) => U) => U;
182
262
  //#endregion
183
263
  //#region packages/core/src/types/metadata/metadata.d.ts
184
264
  /**
@@ -205,7 +285,7 @@ type MetadataBuilderTools<TVarRefs extends Record<string, AnyVarRef>, TAggregate
205
285
  readonly $: TVarRefs;
206
286
  /** The GraphQL DocumentNode (AST) for this operation */
207
287
  readonly document: DocumentNode;
208
- /** Aggregated metadata from embedded fragments, evaluated before operation metadata */
288
+ /** Aggregated metadata from spread fragments, evaluated before operation metadata */
209
289
  readonly fragmentMetadata?: TAggregatedFragmentMetadata;
210
290
  /** Schema-level fixed values from the adapter */
211
291
  readonly schemaLevel?: TSchemaLevel$1;
@@ -223,7 +303,7 @@ type MetadataBuilder<TVarRefs extends Record<string, AnyVarRef>, TMetadata, TAgg
223
303
  /**
224
304
  * Utility type to extract the metadata type from an operation.
225
305
  */
226
- type ExtractMetadata<T$1> = T$1 extends {
306
+ type ExtractMetadata<T> = T extends {
227
307
  metadata: infer M;
228
308
  } ? M : OperationMetadata;
229
309
  /**
@@ -243,12 +323,12 @@ type FragmentMetadataBuilder<TVarRefs extends Record<string, AnyVarRef>, TMetada
243
323
  //#endregion
244
324
  //#region packages/core/src/types/metadata/adapter.d.ts
245
325
  /**
246
- * Information about a fragment's metadata when embedded in an operation.
326
+ * Information about a fragment's metadata when spread in an operation.
247
327
  */
248
328
  type FragmentMetaInfo<TFragmentMetadata> = {
249
329
  /** The evaluated metadata from the fragment, if defined */
250
330
  readonly metadata: TFragmentMetadata | undefined;
251
- /** Field path where the fragment was embedded */
331
+ /** Field path where the fragment was spread */
252
332
  readonly fieldPath: FieldPath | null;
253
333
  };
254
334
  /**
@@ -268,8 +348,8 @@ type FragmentMetaInfo<TFragmentMetadata> = {
268
348
  */
269
349
  type MetadataAdapter<TFragmentMetadata = unknown, TAggregatedFragmentMetadata = unknown, TSchemaLevel$1 = unknown> = {
270
350
  /**
271
- * Aggregates metadata from all embedded fragments in an operation.
272
- * Called with the metadata from each embedded fragment.
351
+ * Aggregates metadata from all spread fragments in an operation.
352
+ * Called with the metadata from each spread fragment.
273
353
  * The return type becomes the `fragmentMetadata` parameter in operation metadata builders.
274
354
  */
275
355
  readonly aggregateFragmentMetadata: (fragments: readonly FragmentMetaInfo<TFragmentMetadata>[]) => TAggregatedFragmentMetadata;
@@ -282,7 +362,7 @@ type MetadataAdapter<TFragmentMetadata = unknown, TAggregatedFragmentMetadata =
282
362
  /**
283
363
  * Extracts the type parameters from a MetadataAdapter.
284
364
  */
285
- type ExtractAdapterTypes<T$1> = T$1 extends MetadataAdapter<infer TFragment, infer TAggregated, infer TSchemaLevel> ? {
365
+ type ExtractAdapterTypes<T> = T extends MetadataAdapter<infer TFragment, infer TAggregated, infer TSchemaLevel> ? {
286
366
  fragmentMetadata: TFragment;
287
367
  aggregatedFragmentMetadata: TAggregated;
288
368
  schemaLevel: TSchemaLevel;
@@ -327,7 +407,7 @@ type AnyAdapter = Adapter<any, any, any, any>;
327
407
  /**
328
408
  * Extracts the type parameters from a unified Adapter.
329
409
  */
330
- type ExtractUnifiedAdapterTypes<T$1> = T$1 extends Adapter<infer THelpers, infer TFragment, infer TAggregated, infer TSchemaLevel> ? {
410
+ type ExtractUnifiedAdapterTypes<T> = T extends Adapter<infer THelpers, infer TFragment, infer TAggregated, infer TSchemaLevel> ? {
331
411
  helpers: THelpers;
332
412
  fragmentMetadata: TFragment;
333
413
  aggregatedFragmentMetadata: TAggregated;
@@ -397,8 +477,8 @@ type OutputUnionSpecifier = AbstractOutputTypeSpecifier<"union">;
397
477
  type OutputTypenameSpecifier = AbstractOutputTypeSpecifier<"typename">;
398
478
  //#endregion
399
479
  //#region packages/core/src/utils/type-meta.d.ts
400
- interface WithTypeMeta<T$1 extends object> {
401
- readonly $type: T$1;
480
+ interface WithTypeMeta<T extends object> {
481
+ readonly $type: T;
402
482
  }
403
483
  //#endregion
404
484
  //#region packages/core/src/types/schema/schema.d.ts
@@ -429,44 +509,44 @@ type OperationRoots = {
429
509
  readonly mutation: string | null;
430
510
  readonly subscription: string | null;
431
511
  };
432
- interface ScalarDefinition<T$1 extends {
512
+ interface ScalarDefinition<T extends {
433
513
  name: string;
434
514
  input: unknown;
435
515
  output: unknown;
436
516
  }> extends WithTypeMeta<{
437
- input: T$1["input"];
517
+ input: T["input"];
438
518
  inputProfile: {
439
519
  kind: "scalar";
440
- name: T$1["name"];
441
- value: T$1["input"];
520
+ name: T["name"];
521
+ value: T["input"];
442
522
  };
443
- output: T$1["output"];
523
+ output: T["output"];
444
524
  outputProfile: {
445
525
  kind: "scalar";
446
- name: T$1["name"];
447
- value: T$1["output"];
526
+ name: T["name"];
527
+ value: T["output"];
448
528
  };
449
529
  }> {
450
- readonly name: T$1["name"];
530
+ readonly name: T["name"];
451
531
  }
452
- interface EnumDefinition<T$1 extends {
532
+ interface EnumDefinition<T extends {
453
533
  name: string;
454
534
  values: string;
455
535
  }> extends WithTypeMeta<{
456
- name: T$1["name"];
536
+ name: T["name"];
457
537
  inputProfile: {
458
538
  kind: "enum";
459
- name: T$1["name"];
460
- value: T$1["values"];
539
+ name: T["name"];
540
+ value: T["values"];
461
541
  };
462
542
  outputProfile: {
463
543
  kind: "enum";
464
- name: T$1["name"];
465
- value: T$1["values"];
544
+ name: T["name"];
545
+ value: T["values"];
466
546
  };
467
547
  }> {
468
- readonly name: T$1["name"];
469
- readonly values: { readonly [_ in T$1["values"]]: true };
548
+ readonly name: T["name"];
549
+ readonly values: { readonly [_ in T["values"]]: true };
470
550
  }
471
551
  interface InputDefinition {
472
552
  readonly name: string;
@@ -489,6 +569,14 @@ type InputFieldRecord<TSchema extends AnyGraphqlSchema, TSpecifier extends Input
489
569
  type ObjectFieldRecord<TSchema extends AnyGraphqlSchema, TTypeName$1 extends keyof TSchema["object"]> = { readonly [TFieldName in keyof TSchema["object"][TTypeName$1]["fields"]]: TSchema["object"][TTypeName$1]["fields"][TFieldName] };
490
570
  type UnionTypeRecord<TSchema extends AnyGraphqlSchema, TSpecifier extends OutputUnionSpecifier> = { readonly [TTypeName in UnionMemberName<TSchema, TSpecifier>]: TSchema["object"][TTypeName] };
491
571
  type UnionMemberName<TSchema extends AnyGraphqlSchema, TSpecifier extends OutputUnionSpecifier> = Extract<keyof TSchema["object"], keyof TSchema["union"][TSpecifier["name"]]["types"]> & string;
572
+ /**
573
+ * Union of all input type names in a schema (scalars, enums, and input objects).
574
+ */
575
+ type AllInputTypeNames<TSchema extends AnyGraphqlSchema> = (keyof TSchema["scalar"] & string) | (keyof TSchema["enum"] & string) | (keyof TSchema["input"] & string);
576
+ /**
577
+ * Infers the input type kind from a type name.
578
+ */
579
+ type InferInputKind<TSchema extends AnyGraphqlSchema, TName extends AllInputTypeNames<TSchema>> = TName extends keyof TSchema["scalar"] ? "scalar" : TName extends keyof TSchema["enum"] ? "enum" : TName extends keyof TSchema["input"] ? "input" : never;
492
580
  //#endregion
493
- export { AnyVarRef as $, OutputScalarSpecifier as A, DefaultMetadataAdapter as B, InputScalarSpecifier as C, isListType as Ct, OutputEnumSpecifier as D, InputTypeSpecifiers as E, OutputUnionSpecifier as F, createDefaultAdapter as G, ExtractUnifiedAdapterTypes as H, Adapter as I, FragmentMetadataBuilder as J, defaultMetadataAdapter as K, AnyAdapter as L, OutputTypeSpecifier as M, OutputTypeSpecifiers as N, OutputInferrableTypeSpecifier as O, OutputTypenameSpecifier as P, OperationMetadata as Q, AnyMetadataAdapter as R, InputInputObjectSpecifier as S, getCurrentFieldPath as St, InputTypeSpecifier as T, FragmentMetaInfo as U, ExtractAdapterTypes as V, MetadataAdapter as W, MetadataBuilder as X, FragmentMetadataBuilderTools as Y, MetadataBuilderTools as Z, UnionTypeRecord as _, ConstValue as _t, InferInputProfile as a, getVarRefInner as at, InputEnumSpecifier as b, FieldPathSegment as bt, InputFieldRecord as c, isVarRef as ct, OperationRoots as d, GetModifiedType as dt, AnyVarRefMeta as et, OperationType as f, PrimitiveTypeProfile as ft, UnionMemberName as g, ValidTypeModifier as gt, UnionDefinition as h, TypeModifier as ht, EnumDefinition as i, createVarRefFromVariable as it, OutputTypeKind as j, OutputObjectSpecifier as k, ObjectDefinition as l, GetAssigningType as lt, ScalarDefinition as m, ApplyTypeModifier as mt, AnyGraphqlSchema as n, VarRefInner as nt, InferOutputProfile as o, getVarRefName as ot, PickTypeSpecifierByFieldName as p, TypeProfile as pt, ExtractMetadata as q, AnyTypeName as r, createVarRefFromConstValue as rt, InputDefinition as s, getVarRefValue as st, AnyFieldName as t, VarRef as tt, ObjectFieldRecord as u, GetConstAssignableType as ut, AnyDefaultValue as v, ConstValues as vt, InputTypeKind as w, withFieldPath as wt, InputInferrableTypeSpecifier as x, appendToPath as xt, AnyTypeSpecifier as y, FieldPath as yt, DefaultAdapter as z };
494
- //# sourceMappingURL=schema-BygZwEX8.d.ts.map
581
+ export { MetadataBuilderTools as $, OutputInferrableTypeSpecifier as A, appendToPath as At, AnyMetadataAdapter as B, InputInferrableTypeSpecifier as C, ApplyTypeModifier as Ct, InputTypeSpecifier as D, ConstValues as Dt, InputTypeKind as E, ConstValue as Et, OutputTypeSpecifiers as F, FragmentMetaInfo as G, DefaultMetadataAdapter as H, OutputTypenameSpecifier as I, defaultMetadataAdapter as J, MetadataAdapter as K, OutputUnionSpecifier as L, OutputScalarSpecifier as M, isListType as Mt, OutputTypeKind as N, withFieldPath as Nt, InputTypeSpecifiers as O, FieldPath as Ot, OutputTypeSpecifier as P, MetadataBuilder as Q, Adapter as R, InputEnumSpecifier as S, TypeProfile as St, InputScalarSpecifier as T, ValidTypeModifier as Tt, ExtractAdapterTypes as U, DefaultAdapter as V, ExtractUnifiedAdapterTypes as W, FragmentMetadataBuilder as X, ExtractMetadata as Y, FragmentMetadataBuilderTools as Z, UnionDefinition as _, isVarRef as _t, EnumDefinition as a, SelectableProxy as at, AnyDefaultValue as b, GetModifiedType as bt, InferOutputProfile as c, VarRefInner as ct, ObjectDefinition as d, getNameAt as dt, OperationMetadata as et, ObjectFieldRecord as f, getValueAt as ft, ScalarDefinition as g, hasVarRefInside as gt, PickTypeSpecifierByFieldName as h, getVarRefValue as ht, AnyTypeName as i, PathSegment as it, OutputObjectSpecifier as j, getCurrentFieldPath as jt, OutputEnumSpecifier as k, FieldPathSegment as kt, InputDefinition as l, createVarRefFromNestedValue as lt, OperationType as m, getVarRefName as mt, AnyFieldName as n, AnyVarRefMeta as nt, InferInputKind as o, Selector as ot, OperationRoots as p, getVarRefInner as pt, createDefaultAdapter as q, AnyGraphqlSchema as r, NestedValue as rt, InferInputProfile as s, VarRef as st, AllInputTypeNames as t, AnyVarRef as tt, InputFieldRecord as u, createVarRefFromVariable as ut, UnionMemberName as v, GetAssigningType as vt, InputInputObjectSpecifier as w, TypeModifier as wt, AnyTypeSpecifier as x, PrimitiveTypeProfile as xt, UnionTypeRecord as y, GetConstAssignableType as yt, AnyAdapter as z };
582
+ //# sourceMappingURL=schema-5Vfg289u.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-5Vfg289u.d.cts","names":[],"sources":["../src/composer/field-path-context.ts","../src/types/type-foundation/const-value.ts","../src/types/type-foundation/type-modifier-core.generated.ts","../src/types/type-foundation/type-profile.ts","../src/types/type-foundation/var-ref.ts","../src/types/metadata/metadata.ts","../src/types/metadata/adapter.ts","../src/types/type-foundation/type-specifier.ts","../src/utils/type-meta.ts","../src/types/schema/schema.ts"],"sourcesContent":[],"mappings":"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"}
@@ -82,5 +82,5 @@ const define = (name) => ({
82
82
  const defineOperationRoots = (operationRoots) => operationRoots;
83
83
 
84
84
  //#endregion
85
- export { unsafeOutputType as a, unsafeInputType as i, defineOperationRoots as n, parseModifiedTypeName as o, defineScalar as r, wrapByKey as s, define as t };
86
- //# sourceMappingURL=schema-D9wIW5Dl.js.map
85
+ export { unsafeOutputType as a, unsafeInputType as i, defineOperationRoots as n, wrapByKey as o, defineScalar as r, define as t };
86
+ //# sourceMappingURL=schema-BbCrsNkQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-D9wIW5Dl.js","names":[],"sources":["../src/utils/type-meta.ts","../src/utils/wrap-by-key.ts","../src/types/type-foundation/modified-type-name.ts","../src/schema/type-specifier-builder.ts","../src/schema/schema-builder.ts"],"sourcesContent":["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","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 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 } 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":";AAIA,MAAa,gBACX,WACY;AACZ,KAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,MAAK,OAAO,WAAW,YAAY,OAAO,WAAW,cAAe,WAAW,KAC7E,OAAM,IAAI,MAAM,0CAA0C;AAG5D,SAAO,eAAe,QAAQ,SAAS,EACrC,MAAM;AACJ,SAAM,IAAI,MAAM,kFAAkF;KAErG,CAAC;;AAGJ,QAAO;;;;;ACnBT,SAAgB,UAAwC,MAAa,OAAe;AAClF,QAAO,GACJ,OAAO,OACT;;;;;ACYH,SAAgB,sBACd,iBACA;AACA,KAAI,OAAO,oBAAoB,SAC7B,OAAM,IAAI,MAAM,+BAA+B,kBAAkB;CAGnE,MAAM,CAAC,MAAM,YAAY,gBAAgB,MAAM,IAAI;AACnD,QAAO;EAAE;EAAM;EAAU;;;;;ACX3B,MAAM,yCAA4E,SAAgB;AAchG,SAME,MACA,YAKC;EACC;EACA,GAAG,sBAAsB,KAAK;EAC9B,cAAc,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,EAAE,GAAG;EAChE;;AAGL,MAAa,kBAAkB;CAC7B,QAAQ,sCAAsC,SAAS;CACvD,MAAM,sCAAsC,OAAO;CACnD,OAAO,sCAAsC,QAAQ;CACtD;AAED,MAAM,0CAA8E,SAAgB;AAQlG,SACE,MACA,YAIC;EACC;EACA,GAAG,sBAAsB,KAAK;EAC9B,WAAW,OAAO,aAAc,EAAE;EACnC;;AAOL,MAAa,mBAAmB;CAC9B,QAAQ,uCAAuC,SAAS;CACxD,MAAM,uCAAuC,OAAO;CACpD,QAAQ,uCAAuC,SAAS;CACxD,OAAO,uCAAuC,QAAQ;CACtD,UAAU,uCAAuC,WAAW;CAC7D;;;;ACtED,MAAa,gBAA6D,SACxE,UACE,MACA,aAAa,EAAE,MAAM,CAAC,CAKvB;AAEH,MAAa,UAAsC,UAAiB;CAClE,OAAwF,WACtF,aAAa;EAAE;EAAM;EAAQ,CAAC;CAKhC,QAAmD,YAChD;EACC;EACA;EACD;CAEH,SAAqD,YAClD;EACC;EACA,QAAQ;GACN,YAAY,iBAAiB,SAAS,GAAG,KAAK,KAAK,EAAE,CAAC;GACtD,GAAG;GACJ;EACF;CAEH,QAAiD,WAC9C;EACC;EACA;EACD;CACJ;AAED,MAAa,wBAAsE,mBACjF"}
1
+ {"version":3,"file":"schema-BbCrsNkQ.js","names":[],"sources":["../src/utils/type-meta.ts","../src/utils/wrap-by-key.ts","../src/types/type-foundation/modified-type-name.ts","../src/schema/type-specifier-builder.ts","../src/schema/schema-builder.ts"],"sourcesContent":["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","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 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 } 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":";AAIA,MAAa,gBACX,WACY;AACZ,KAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,MAAK,OAAO,WAAW,YAAY,OAAO,WAAW,cAAe,WAAW,KAC7E,OAAM,IAAI,MAAM,0CAA0C;AAG5D,SAAO,eAAe,QAAQ,SAAS,EACrC,MAAM;AACJ,SAAM,IAAI,MAAM,kFAAkF;KAErG,CAAC;;AAGJ,QAAO;;;;;ACnBT,SAAgB,UAAwC,MAAa,OAAe;AAClF,QAAO,GACJ,OAAO,OACT;;;;;ACYH,SAAgB,sBACd,iBACA;AACA,KAAI,OAAO,oBAAoB,SAC7B,OAAM,IAAI,MAAM,+BAA+B,kBAAkB;CAGnE,MAAM,CAAC,MAAM,YAAY,gBAAgB,MAAM,IAAI;AACnD,QAAO;EAAE;EAAM;EAAU;;;;;ACX3B,MAAM,yCAA4E,SAAgB;AAchG,SAME,MACA,YAKC;EACC;EACA,GAAG,sBAAsB,KAAK;EAC9B,cAAc,OAAO,UAAU,EAAE,SAAS,OAAO,SAAS,EAAE,GAAG;EAChE;;AAGL,MAAa,kBAAkB;CAC7B,QAAQ,sCAAsC,SAAS;CACvD,MAAM,sCAAsC,OAAO;CACnD,OAAO,sCAAsC,QAAQ;CACtD;AAED,MAAM,0CAA8E,SAAgB;AAQlG,SACE,MACA,YAIC;EACC;EACA,GAAG,sBAAsB,KAAK;EAC9B,WAAW,OAAO,aAAc,EAAE;EACnC;;AAOL,MAAa,mBAAmB;CAC9B,QAAQ,uCAAuC,SAAS;CACxD,MAAM,uCAAuC,OAAO;CACpD,QAAQ,uCAAuC,SAAS;CACxD,OAAO,uCAAuC,QAAQ;CACtD,UAAU,uCAAuC,WAAW;CAC7D;;;;ACtED,MAAa,gBAA6D,SACxE,UACE,MACA,aAAa,EAAE,MAAM,CAAC,CAKvB;AAEH,MAAa,UAAsC,UAAiB;CAClE,OAAwF,WACtF,aAAa;EAAE;EAAM;EAAQ,CAAC;CAKhC,QAAmD,YAChD;EACC;EACA;EACD;CAEH,SAAqD,YAClD;EACC;EACA,QAAQ;GACN,YAAY,iBAAiB,SAAS,GAAG,KAAK,KAAK,EAAE,CAAC;GACtD,GAAG;GACJ;EACF;CAEH,QAAiD,WAC9C;EACC;EACA;EACD;CACJ;AAED,MAAa,wBAAsE,mBACjF"}