@soda-gql/core 0.1.0 → 0.2.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.
- package/README.md +70 -135
- package/dist/adapter.cjs +35 -0
- package/dist/adapter.cjs.map +1 -0
- package/dist/adapter.d.cts +35 -0
- package/dist/adapter.d.cts.map +1 -0
- package/dist/adapter.d.ts +35 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +34 -0
- package/dist/adapter.js.map +1 -0
- package/dist/index-B-erotAZ.d.cts +657 -0
- package/dist/index-B-erotAZ.d.cts.map +1 -0
- package/dist/index-Djr9A4KL.d.ts +657 -0
- package/dist/index-Djr9A4KL.d.ts.map +1 -0
- package/dist/index.cjs +430 -416
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +88 -3
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +88 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +399 -386
- package/dist/index.js.map +1 -1
- package/dist/runtime.cjs +85 -0
- package/dist/runtime.cjs.map +1 -0
- package/dist/runtime.d.cts +40 -0
- package/dist/runtime.d.cts.map +1 -0
- package/dist/runtime.d.ts +40 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +82 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema-Bip7o0g3.cjs +128 -0
- package/dist/schema-Bip7o0g3.cjs.map +1 -0
- package/dist/{index-zGZ61WLt.d.cts → schema-BygZwEX8.d.ts} +246 -117
- package/dist/schema-BygZwEX8.d.ts.map +1 -0
- package/dist/schema-D9wIW5Dl.js +86 -0
- package/dist/schema-D9wIW5Dl.js.map +1 -0
- package/dist/{index-Db9ogofS.d.ts → schema-DRkKucYe.d.cts} +246 -117
- package/dist/schema-DRkKucYe.d.cts.map +1 -0
- package/dist/schema-builder-8zadflz-.d.cts +40 -0
- package/dist/schema-builder-8zadflz-.d.cts.map +1 -0
- package/dist/schema-builder-vwQtCGYI.d.ts +40 -0
- package/dist/schema-builder-vwQtCGYI.d.ts.map +1 -0
- package/package.json +34 -14
- package/dist/index-DYwkqPzd.d.ts +0 -1015
- package/dist/index-DYwkqPzd.d.ts.map +0 -1
- package/dist/index-Db9ogofS.d.ts.map +0 -1
- package/dist/index-Dth0NSJt.d.cts +0 -1015
- package/dist/index-Dth0NSJt.d.cts.map +0 -1
- package/dist/index-zGZ61WLt.d.cts.map +0 -1
- package/dist/merge-CeMx09is.js +0 -74
- package/dist/merge-CeMx09is.js.map +0 -1
- package/dist/merge-ZxKV1syS.cjs +0 -85
- package/dist/metadata/index.cjs +0 -62
- package/dist/metadata/index.d.cts +0 -71
- package/dist/metadata/index.d.cts.map +0 -1
- package/dist/metadata/index.d.ts +0 -71
- package/dist/metadata/index.d.ts.map +0 -1
- package/dist/metadata/index.js +0 -59
- package/dist/metadata/index.js.map +0 -1
- package/dist/runtime/index.cjs +0 -107
- package/dist/runtime/index.d.cts +0 -72
- package/dist/runtime/index.d.cts.map +0 -1
- package/dist/runtime/index.d.ts +0 -72
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -104
- package/dist/runtime/index.js.map +0 -1
- package/dist/slice-BuSNc8vw.js +0 -278
- package/dist/slice-BuSNc8vw.js.map +0 -1
- package/dist/slice-C-FIQK-f.cjs +0 -373
|
@@ -1,5 +1,73 @@
|
|
|
1
1
|
import { DocumentNode } from "graphql";
|
|
2
2
|
|
|
3
|
+
//#region packages/core/src/composer/field-path-context.d.ts
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Field path context using shared value container pattern.
|
|
7
|
+
*
|
|
8
|
+
* This module tracks the current field path during field building,
|
|
9
|
+
* similar to how React tracks the current fiber.
|
|
10
|
+
* No changes to field builder arguments are needed - use getCurrentFieldPath() to access.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* A segment in the field path.
|
|
14
|
+
*/
|
|
15
|
+
type FieldPathSegment = {
|
|
16
|
+
/** The field name */
|
|
17
|
+
readonly field: string;
|
|
18
|
+
/** The parent type name */
|
|
19
|
+
readonly parent: string;
|
|
20
|
+
/** Whether this field returns a list */
|
|
21
|
+
readonly isList: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Complete field path from root to current position.
|
|
25
|
+
*/
|
|
26
|
+
type FieldPath = {
|
|
27
|
+
/** Full path string (e.g., "$.user.posts[].author") */
|
|
28
|
+
readonly full: string;
|
|
29
|
+
/** Individual path segments */
|
|
30
|
+
readonly segments: readonly FieldPathSegment[];
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get the current field path.
|
|
34
|
+
* Returns null if not in a field building context.
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```typescript
|
|
38
|
+
* import { getCurrentFieldPath } from '@soda-gql/core';
|
|
39
|
+
*
|
|
40
|
+
* // Inside a field builder or model embed:
|
|
41
|
+
* const path = getCurrentFieldPath();
|
|
42
|
+
* console.log(path?.full); // "$.user.posts[].author"
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
declare const getCurrentFieldPath: () => FieldPath | null;
|
|
46
|
+
/**
|
|
47
|
+
* Run a function with a specific field path context.
|
|
48
|
+
* Restores the previous path after the function completes.
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
declare const withFieldPath: <T$1>(path: FieldPath, fn: () => T$1) => T$1;
|
|
53
|
+
/**
|
|
54
|
+
* Append a new segment to the current path.
|
|
55
|
+
*
|
|
56
|
+
* @internal
|
|
57
|
+
*/
|
|
58
|
+
declare const appendToPath: (parent: FieldPath | null, segment: {
|
|
59
|
+
field: string;
|
|
60
|
+
parentType: string;
|
|
61
|
+
isList: boolean;
|
|
62
|
+
}) => FieldPath;
|
|
63
|
+
/**
|
|
64
|
+
* Check if a type specifier represents a list type.
|
|
65
|
+
* Matches patterns like "Type:![]!", "Type:![]?", "Type:?[]!", etc.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
declare const isListType: (typeString: string) => boolean;
|
|
70
|
+
//#endregion
|
|
3
71
|
//#region packages/core/src/types/type-foundation/const-value.d.ts
|
|
4
72
|
type ConstValue = string | number | boolean | null | undefined | {
|
|
5
73
|
readonly [key: string]: ConstValue;
|
|
@@ -112,10 +180,177 @@ declare const getVarRefName: (varRef: AnyVarRef) => string;
|
|
|
112
180
|
*/
|
|
113
181
|
declare const getVarRefValue: (varRef: AnyVarRef) => ConstValue;
|
|
114
182
|
//#endregion
|
|
115
|
-
//#region packages/core/src/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
183
|
+
//#region packages/core/src/types/metadata/metadata.d.ts
|
|
184
|
+
/**
|
|
185
|
+
* Base metadata types that can be attached to operations.
|
|
186
|
+
* These are consumed at runtime by GraphQL clients for HTTP headers
|
|
187
|
+
* and custom application-specific values.
|
|
188
|
+
*/
|
|
189
|
+
type OperationMetadata = {
|
|
190
|
+
/** HTTP headers to include with the GraphQL request */
|
|
191
|
+
readonly headers?: Record<string, string>;
|
|
192
|
+
/** Custom arbitrary metadata values for application-specific use */
|
|
193
|
+
readonly custom?: Record<string, unknown>;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Tools available inside metadata builder callbacks.
|
|
197
|
+
* Access utilities via $var.getName(), $var.getValue(), $var.getInner().
|
|
198
|
+
*
|
|
199
|
+
* @template TVarRefs - Variable references from the operation
|
|
200
|
+
* @template TAggregatedFragmentMetadata - The aggregated fragment metadata type from the adapter
|
|
201
|
+
* @template TSchemaLevel - The schema-level configuration type from the adapter
|
|
202
|
+
*/
|
|
203
|
+
type MetadataBuilderTools<TVarRefs extends Record<string, AnyVarRef>, TAggregatedFragmentMetadata = readonly (OperationMetadata | undefined)[], TSchemaLevel$1 = unknown> = {
|
|
204
|
+
/** Variable references created from the operation's variable definitions */
|
|
205
|
+
readonly $: TVarRefs;
|
|
206
|
+
/** The GraphQL DocumentNode (AST) for this operation */
|
|
207
|
+
readonly document: DocumentNode;
|
|
208
|
+
/** Aggregated metadata from embedded fragments, evaluated before operation metadata */
|
|
209
|
+
readonly fragmentMetadata?: TAggregatedFragmentMetadata;
|
|
210
|
+
/** Schema-level fixed values from the adapter */
|
|
211
|
+
readonly schemaLevel?: TSchemaLevel$1;
|
|
212
|
+
};
|
|
213
|
+
/**
|
|
214
|
+
* Metadata builder callback that receives variable tools.
|
|
215
|
+
* Allows metadata to reference operation variables.
|
|
216
|
+
*
|
|
217
|
+
* @template TVarRefs - Variable references from the operation
|
|
218
|
+
* @template TMetadata - The metadata type returned by this builder
|
|
219
|
+
* @template TAggregatedFragmentMetadata - The aggregated fragment metadata type from the adapter
|
|
220
|
+
* @template TSchemaLevel - The schema-level configuration type from the adapter
|
|
221
|
+
*/
|
|
222
|
+
type MetadataBuilder<TVarRefs extends Record<string, AnyVarRef>, TMetadata, TAggregatedFragmentMetadata = readonly (OperationMetadata | undefined)[], TSchemaLevel$1 = unknown> = (tools: MetadataBuilderTools<TVarRefs, TAggregatedFragmentMetadata, TSchemaLevel$1>) => TMetadata | Promise<TMetadata>;
|
|
223
|
+
/**
|
|
224
|
+
* Utility type to extract the metadata type from an operation.
|
|
225
|
+
*/
|
|
226
|
+
type ExtractMetadata<T$1> = T$1 extends {
|
|
227
|
+
metadata: infer M;
|
|
228
|
+
} ? M : OperationMetadata;
|
|
229
|
+
/**
|
|
230
|
+
* Tools available inside fragment metadata builder callbacks.
|
|
231
|
+
* Unlike operation metadata, fragments don't have their own document.
|
|
232
|
+
*/
|
|
233
|
+
type FragmentMetadataBuilderTools<TVarRefs extends Record<string, AnyVarRef>> = {
|
|
234
|
+
/** Variable references created from the fragment's variable definitions */
|
|
235
|
+
readonly $: TVarRefs;
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* Metadata builder callback for fragments.
|
|
239
|
+
* Allows metadata to reference fragment variables.
|
|
240
|
+
* Supports both sync and async metadata generation.
|
|
241
|
+
*/
|
|
242
|
+
type FragmentMetadataBuilder<TVarRefs extends Record<string, AnyVarRef>, TMetadata = OperationMetadata> = (tools: FragmentMetadataBuilderTools<TVarRefs>) => TMetadata | Promise<TMetadata>;
|
|
243
|
+
//#endregion
|
|
244
|
+
//#region packages/core/src/types/metadata/adapter.d.ts
|
|
245
|
+
/**
|
|
246
|
+
* Information about a fragment's metadata when embedded in an operation.
|
|
247
|
+
*/
|
|
248
|
+
type FragmentMetaInfo<TFragmentMetadata> = {
|
|
249
|
+
/** The evaluated metadata from the fragment, if defined */
|
|
250
|
+
readonly metadata: TFragmentMetadata | undefined;
|
|
251
|
+
/** Field path where the fragment was embedded */
|
|
252
|
+
readonly fieldPath: FieldPath | null;
|
|
253
|
+
};
|
|
254
|
+
/**
|
|
255
|
+
* Metadata adapter that defines how fragment metadata is aggregated
|
|
256
|
+
* and provides schema-level configuration.
|
|
257
|
+
*
|
|
258
|
+
* This adapter allows complete customization of:
|
|
259
|
+
* - Fragment metadata type (TFragmentMetadata)
|
|
260
|
+
* - How fragment metadata is aggregated (aggregateFragmentMetadata)
|
|
261
|
+
* - Schema-level fixed values available to all operation metadata builders (schemaLevel)
|
|
262
|
+
*
|
|
263
|
+
* Note: Operation metadata type is inferred from the operation's metadata callback return type.
|
|
264
|
+
*
|
|
265
|
+
* @template TFragmentMetadata - The metadata type returned by fragment metadata builders
|
|
266
|
+
* @template TAggregatedFragmentMetadata - The type returned by aggregateFragmentMetadata
|
|
267
|
+
* @template TSchemaLevel - The type of schema-level configuration values
|
|
268
|
+
*/
|
|
269
|
+
type MetadataAdapter<TFragmentMetadata = unknown, TAggregatedFragmentMetadata = unknown, TSchemaLevel$1 = unknown> = {
|
|
270
|
+
/**
|
|
271
|
+
* Aggregates metadata from all embedded fragments in an operation.
|
|
272
|
+
* Called with the metadata from each embedded fragment.
|
|
273
|
+
* The return type becomes the `fragmentMetadata` parameter in operation metadata builders.
|
|
274
|
+
*/
|
|
275
|
+
readonly aggregateFragmentMetadata: (fragments: readonly FragmentMetaInfo<TFragmentMetadata>[]) => TAggregatedFragmentMetadata;
|
|
276
|
+
/**
|
|
277
|
+
* Schema-level fixed values that are passed to all operation metadata builders.
|
|
278
|
+
* Useful for configuration that should be consistent across all operations.
|
|
279
|
+
*/
|
|
280
|
+
readonly schemaLevel?: TSchemaLevel$1;
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* Extracts the type parameters from a MetadataAdapter.
|
|
284
|
+
*/
|
|
285
|
+
type ExtractAdapterTypes<T$1> = T$1 extends MetadataAdapter<infer TFragment, infer TAggregated, infer TSchemaLevel> ? {
|
|
286
|
+
fragmentMetadata: TFragment;
|
|
287
|
+
aggregatedFragmentMetadata: TAggregated;
|
|
288
|
+
schemaLevel: TSchemaLevel;
|
|
289
|
+
} : never;
|
|
290
|
+
/**
|
|
291
|
+
* Generic type for any metadata adapter.
|
|
292
|
+
*/
|
|
293
|
+
type AnyMetadataAdapter = MetadataAdapter<any, any, any>;
|
|
294
|
+
/**
|
|
295
|
+
* Unified adapter that combines helpers and metadata configuration.
|
|
296
|
+
*
|
|
297
|
+
* @template THelpers - Custom helper functions accessible in gql composer callbacks
|
|
298
|
+
* @template TFragmentMetadata - The metadata type returned by fragment metadata builders
|
|
299
|
+
* @template TAggregatedFragmentMetadata - The type returned by aggregateFragmentMetadata
|
|
300
|
+
* @template TSchemaLevel - The type of schema-level configuration values
|
|
301
|
+
*
|
|
302
|
+
* @example
|
|
303
|
+
* ```typescript
|
|
304
|
+
* const adapter = defineAdapter({
|
|
305
|
+
* helpers: {
|
|
306
|
+
* auth: {
|
|
307
|
+
* requiresLogin: () => ({ requiresAuth: true }),
|
|
308
|
+
* },
|
|
309
|
+
* },
|
|
310
|
+
* metadata: {
|
|
311
|
+
* aggregateFragmentMetadata: (fragments) => fragments.map((m) => m.metadata),
|
|
312
|
+
* schemaLevel: { apiVersion: "v2" },
|
|
313
|
+
* },
|
|
314
|
+
* });
|
|
315
|
+
* ```
|
|
316
|
+
*/
|
|
317
|
+
type Adapter<THelpers$1 extends object = object, TFragmentMetadata = unknown, TAggregatedFragmentMetadata = unknown, TSchemaLevel$1 = unknown> = {
|
|
318
|
+
/** Custom helper functions accessible in gql composer callbacks */
|
|
319
|
+
readonly helpers?: THelpers$1;
|
|
320
|
+
/** Metadata configuration for fragments and operations */
|
|
321
|
+
readonly metadata?: MetadataAdapter<TFragmentMetadata, TAggregatedFragmentMetadata, TSchemaLevel$1>;
|
|
322
|
+
};
|
|
323
|
+
/**
|
|
324
|
+
* Generic type for any unified adapter.
|
|
325
|
+
*/
|
|
326
|
+
type AnyAdapter = Adapter<any, any, any, any>;
|
|
327
|
+
/**
|
|
328
|
+
* Extracts the type parameters from a unified Adapter.
|
|
329
|
+
*/
|
|
330
|
+
type ExtractUnifiedAdapterTypes<T$1> = T$1 extends Adapter<infer THelpers, infer TFragment, infer TAggregated, infer TSchemaLevel> ? {
|
|
331
|
+
helpers: THelpers;
|
|
332
|
+
fragmentMetadata: TFragment;
|
|
333
|
+
aggregatedFragmentMetadata: TAggregated;
|
|
334
|
+
schemaLevel: TSchemaLevel;
|
|
335
|
+
} : never;
|
|
336
|
+
/**
|
|
337
|
+
* Default adapter that maintains backwards compatibility with the original behavior.
|
|
338
|
+
* Uses OperationMetadata for fragment metadata and aggregates by collecting metadata into a readonly array.
|
|
339
|
+
*/
|
|
340
|
+
type DefaultMetadataAdapter = MetadataAdapter<OperationMetadata, readonly (OperationMetadata | undefined)[]>;
|
|
341
|
+
/**
|
|
342
|
+
* Default unified adapter type.
|
|
343
|
+
*/
|
|
344
|
+
type DefaultAdapter = Adapter<object, OperationMetadata, readonly (OperationMetadata | undefined)[]>;
|
|
345
|
+
/**
|
|
346
|
+
* Creates the default adapter instance.
|
|
347
|
+
* @internal
|
|
348
|
+
*/
|
|
349
|
+
declare const createDefaultAdapter: () => DefaultMetadataAdapter;
|
|
350
|
+
/**
|
|
351
|
+
* The default adapter instance.
|
|
352
|
+
*/
|
|
353
|
+
declare const defaultMetadataAdapter: DefaultMetadataAdapter;
|
|
119
354
|
//#endregion
|
|
120
355
|
//#region packages/core/src/types/type-foundation/type-specifier.d.ts
|
|
121
356
|
type AnyDefaultValue = {
|
|
@@ -161,6 +396,11 @@ type OutputObjectSpecifier = AbstractOutputTypeSpecifier<"object">;
|
|
|
161
396
|
type OutputUnionSpecifier = AbstractOutputTypeSpecifier<"union">;
|
|
162
397
|
type OutputTypenameSpecifier = AbstractOutputTypeSpecifier<"typename">;
|
|
163
398
|
//#endregion
|
|
399
|
+
//#region packages/core/src/utils/type-meta.d.ts
|
|
400
|
+
interface WithTypeMeta<T$1 extends object> {
|
|
401
|
+
readonly $type: T$1;
|
|
402
|
+
}
|
|
403
|
+
//#endregion
|
|
164
404
|
//#region packages/core/src/types/schema/schema.d.ts
|
|
165
405
|
type OperationType = keyof OperationRoots;
|
|
166
406
|
type AnyTypeName = string;
|
|
@@ -250,116 +490,5 @@ type ObjectFieldRecord<TSchema extends AnyGraphqlSchema, TTypeName$1 extends key
|
|
|
250
490
|
type UnionTypeRecord<TSchema extends AnyGraphqlSchema, TSpecifier extends OutputUnionSpecifier> = { readonly [TTypeName in UnionMemberName<TSchema, TSpecifier>]: TSchema["object"][TTypeName] };
|
|
251
491
|
type UnionMemberName<TSchema extends AnyGraphqlSchema, TSpecifier extends OutputUnionSpecifier> = Extract<keyof TSchema["object"], keyof TSchema["union"][TSpecifier["name"]]["types"]> & string;
|
|
252
492
|
//#endregion
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
* Base metadata types that can be attached to operations.
|
|
256
|
-
* These are consumed at runtime by GraphQL clients for HTTP headers,
|
|
257
|
-
* extensions, and custom application-specific values.
|
|
258
|
-
*/
|
|
259
|
-
type OperationMetadata = {
|
|
260
|
-
/** HTTP headers to include with the GraphQL request */
|
|
261
|
-
readonly headers?: Record<string, string>;
|
|
262
|
-
/** GraphQL extensions to include in the request payload */
|
|
263
|
-
readonly extensions?: Record<string, unknown>;
|
|
264
|
-
/** Custom arbitrary metadata values for application-specific use */
|
|
265
|
-
readonly custom?: Record<string, unknown>;
|
|
266
|
-
};
|
|
267
|
-
/**
|
|
268
|
-
* Tools available inside metadata builder callbacks.
|
|
269
|
-
* Access utilities via $var.getName(), $var.getValue(), $var.getInner().
|
|
270
|
-
*/
|
|
271
|
-
type MetadataBuilderTools<TVarRefs extends Record<string, AnyVarRef>> = {
|
|
272
|
-
/** Variable references created from the operation's variable definitions */
|
|
273
|
-
readonly $: TVarRefs;
|
|
274
|
-
/** The GraphQL DocumentNode (AST) for this operation */
|
|
275
|
-
readonly document: DocumentNode;
|
|
276
|
-
};
|
|
277
|
-
/**
|
|
278
|
-
* Metadata builder callback that receives variable tools.
|
|
279
|
-
* Allows metadata to reference operation variables.
|
|
280
|
-
*/
|
|
281
|
-
type MetadataBuilder<TVarRefs extends Record<string, AnyVarRef>, TMetadata> = (tools: MetadataBuilderTools<TVarRefs>) => TMetadata | Promise<TMetadata>;
|
|
282
|
-
/**
|
|
283
|
-
* Slice-specific metadata that can contribute to operation metadata.
|
|
284
|
-
* Extends OperationMetadata with no additional fields - use the `custom`
|
|
285
|
-
* property for application-specific values like authentication requirements
|
|
286
|
-
* or cache settings.
|
|
287
|
-
*/
|
|
288
|
-
type SliceMetadata = OperationMetadata;
|
|
289
|
-
/**
|
|
290
|
-
* Tools available inside slice metadata builder callbacks.
|
|
291
|
-
* Only $ is available (no document, since slices don't have their own document).
|
|
292
|
-
*/
|
|
293
|
-
type SliceMetadataBuilderTools<TVarRefs extends Record<string, AnyVarRef>> = {
|
|
294
|
-
/** Variable references created from the slice's variable definitions */
|
|
295
|
-
readonly $: TVarRefs;
|
|
296
|
-
};
|
|
297
|
-
/**
|
|
298
|
-
* Slice metadata builder callback that receives variable tools.
|
|
299
|
-
* Allows slice metadata to reference slice variables.
|
|
300
|
-
*/
|
|
301
|
-
type SliceMetadataBuilder<TVarRefs extends Record<string, AnyVarRef>, TMetadata = SliceMetadata> = (tools: SliceMetadataBuilderTools<TVarRefs>) => TMetadata | Promise<TMetadata>;
|
|
302
|
-
/**
|
|
303
|
-
* Utility type to extract the metadata type from an operation or slice.
|
|
304
|
-
*/
|
|
305
|
-
type ExtractMetadata<T$1> = T$1 extends {
|
|
306
|
-
metadata: infer M;
|
|
307
|
-
} ? M : OperationMetadata;
|
|
308
|
-
//#endregion
|
|
309
|
-
//#region packages/core/src/types/metadata/adapter.d.ts
|
|
310
|
-
/**
|
|
311
|
-
* Input provided to the metadata adapter's transform function.
|
|
312
|
-
*/
|
|
313
|
-
type MetadataTransformInput<TMetadata extends OperationMetadata> = {
|
|
314
|
-
/** The type of GraphQL operation (query, mutation, subscription) */
|
|
315
|
-
readonly operationType: OperationType;
|
|
316
|
-
/** The name of the operation */
|
|
317
|
-
readonly operationName: string;
|
|
318
|
-
/** The merged metadata from operation and slices */
|
|
319
|
-
readonly metadata: TMetadata;
|
|
320
|
-
/** The GraphQL document string (useful for generating hashes) */
|
|
321
|
-
readonly document: string;
|
|
322
|
-
};
|
|
323
|
-
/**
|
|
324
|
-
* Adapter interface for processing metadata at build time.
|
|
325
|
-
* Allows schema-level configuration of default metadata, transformation,
|
|
326
|
-
* and custom merge strategies for slice metadata.
|
|
327
|
-
*
|
|
328
|
-
* @template TInputMetadata - The metadata type accepted by the adapter
|
|
329
|
-
* @template TOutputMetadata - The metadata type produced after transformation
|
|
330
|
-
*/
|
|
331
|
-
type MetadataAdapter<TInputMetadata extends OperationMetadata = OperationMetadata, TOutputMetadata extends OperationMetadata = TInputMetadata> = {
|
|
332
|
-
/** Schema-level default metadata applied to all operations */
|
|
333
|
-
readonly defaults: TInputMetadata;
|
|
334
|
-
/**
|
|
335
|
-
* Transform/process metadata at build time.
|
|
336
|
-
* Called for each operation with merged metadata from slices.
|
|
337
|
-
* Use this to add computed values like persisted query hashes.
|
|
338
|
-
*/
|
|
339
|
-
readonly transform?: (input: MetadataTransformInput<TInputMetadata>) => TOutputMetadata;
|
|
340
|
-
/**
|
|
341
|
-
* Custom merge strategy for combining slice metadata into operation metadata.
|
|
342
|
-
* If not provided, a default shallow merge is used where operation metadata
|
|
343
|
-
* takes precedence over slice metadata.
|
|
344
|
-
*
|
|
345
|
-
* @param operationMetadata - Metadata defined on the operation itself
|
|
346
|
-
* @param sliceMetadata - Array of metadata from all embedded slices
|
|
347
|
-
* @returns Merged metadata to be used for the operation
|
|
348
|
-
*/
|
|
349
|
-
readonly mergeSliceMetadata?: (operationMetadata: TInputMetadata, sliceMetadata: readonly SliceMetadata[]) => TInputMetadata;
|
|
350
|
-
};
|
|
351
|
-
/**
|
|
352
|
-
* Generic type for any metadata adapter.
|
|
353
|
-
*/
|
|
354
|
-
type AnyMetadataAdapter = MetadataAdapter<OperationMetadata, OperationMetadata>;
|
|
355
|
-
/**
|
|
356
|
-
* Extracts the input metadata type from an adapter.
|
|
357
|
-
*/
|
|
358
|
-
type AdapterInputMetadata<T$1 extends AnyMetadataAdapter> = T$1 extends MetadataAdapter<infer I, infer _O> ? I : OperationMetadata;
|
|
359
|
-
/**
|
|
360
|
-
* Extracts the output metadata type from an adapter.
|
|
361
|
-
*/
|
|
362
|
-
type AdapterOutputMetadata<T$1 extends AnyMetadataAdapter> = T$1 extends MetadataAdapter<infer _I, infer O> ? O : OperationMetadata;
|
|
363
|
-
//#endregion
|
|
364
|
-
export { createVarRefFromVariable as $, AnyDefaultValue as A, OutputInferrableTypeSpecifier as B, OperationRoots as C, UnionDefinition as D, ScalarDefinition as E, InputScalarSpecifier as F, OutputTypeSpecifiers as G, OutputScalarSpecifier as H, InputTypeKind as I, AnyVarRef as J, OutputTypenameSpecifier as K, InputTypeSpecifier as L, InputEnumSpecifier as M, InputInferrableTypeSpecifier as N, UnionMemberName as O, InputInputObjectSpecifier as P, createVarRefFromConstValue as Q, InputTypeSpecifiers as R, ObjectFieldRecord as S, PickTypeSpecifierByFieldName as T, OutputTypeKind as U, OutputObjectSpecifier as V, OutputTypeSpecifier as W, VarRef as X, AnyVarRefMeta as Y, VarRefInner as Z, InferInputProfile as _, MetadataTransformInput as a, GetConstAssignableType as at, InputFieldRecord as b, MetadataBuilderTools as c, TypeProfile as ct, SliceMetadataBuilder as d, ValidTypeModifier as dt, getVarRefInner as et, SliceMetadataBuilderTools as f, ConstValue as ft, EnumDefinition as g, AnyTypeName as h, MetadataAdapter as i, GetAssigningType as it, AnyTypeSpecifier as j, UnionTypeRecord as k, OperationMetadata as l, ApplyTypeModifier as lt, AnyGraphqlSchema as m, AdapterOutputMetadata as n, getVarRefValue as nt, ExtractMetadata as o, GetModifiedType as ot, AnyFieldName as p, ConstValues as pt, OutputUnionSpecifier as q, AnyMetadataAdapter as r, isVarRef as rt, MetadataBuilder as s, PrimitiveTypeProfile as st, AdapterInputMetadata as t, getVarRefName as tt, SliceMetadata as u, TypeModifier as ut, InferOutputProfile as v, OperationType as w, ObjectDefinition as x, InputDefinition as y, OutputEnumSpecifier as z };
|
|
365
|
-
//# sourceMappingURL=index-zGZ61WLt.d.cts.map
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-BygZwEX8.d.ts","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":";;;;;;;AAWA;AAYA;AA4BA;AAQA;;;;AAQC,KAxDW,gBAAA,GAwDX;EAOY;EA8BA,SAAA,KAEZ,EAAA,MAAA;;;;EC1GW,SAAA,MAAU,EAAA,OAAA;AAStB,CAAA;;;;ACTY,KFuBA,SAAA,GEvBY;EACZ;EAuCF,SAAE,IAAA,EAAA,MACE;EAMT;EACA,SAAA,QAAU,EAAA,SFrBe,gBEqBR,EAAA;AAAA,CAAA;;;;;AAGE;;;;;AACA;;;;AACA,cFFX,mBEEW,EAAA,GAAA,GFFe,SEEf,GAAA,IAAA;AAAA;;;;;AACA;AAGc,cFEzB,aEFyB,EAAA,CAAA,GAAA,CAAA,CAAA,IAAA,EFEC,SEFD,EAAA,EAAA,EAAA,GAAA,GFEsB,GEFtB,EAAA,GFE0B,GEF1B;;;;AAAb;;AACC,cFgBb,YEhBa,EAAA,CAAA,MAAA,EFiBhB,SEjBgB,GAAA,IAAA,EAAA,OAAA,EAAA;EAAH,KAAA,EAAA,MAAA;EAAE,UAAA,EAAA,MAAA;EACpB,MAAA,EAAA,OAAY;CAAqB,EAAA,GFkBnC,SElBmC;;;;AAAb;;;AACF,cF4CV,UE5CU,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,GAAA,OAAA;;;KD5DX,UAAA;0BAMkB;aACjB;ADID,KCFA,WAAA,GDEgB;EAYhB,UAAA,GAAS,EAAA,MAAA,CAAA,ECbK,UDiBI;AAwB9B,CAAA;;;KEnDY,YAAA;KACA,iBAAA;UAuCF;EF7BE,SAAA,CAAA,EE8BE,GF9BF,EAAA;EAYA,SAAA,CAAA,EEmBE,GFnBO,EAAA,GAAA,IAAA,GAIS,SAAA;AAwB9B;AAQA,KEZK,UFYQ,CAAA,GAAA,CAAA,GEZQ,GFoBpB;KEnBI,UFWkC,CAAA,GAAA,CAAA,GEXlB,GFWkB,GAAA,IAAA,GAAA,SAAA;KERlC,WFQuD,CAAA,GAAA,CAAA,GERtC,EFQsC,CERnC,UFQmC,CERxB,GFQwB,CAAA,CAAA,CAAA,CAAA,CAAA;KEPvD,WFO2D,CAAA,GAAA,CAAA,GEP1C,EFO0C,CEPvC,UFOuC,CEP5B,GFO4B,CAAA,CAAA,CAAA,CAAA,CAAA;KEN3D,WFcJ,CAAA,GAAA,CAAA,GEdqB,EFcrB,CEdwB,UFcxB,CEdmC,GFcnC,CAAA,CAAA,CAAA,CAAA,CAAA;AAOD,KEpBK,WFoBQ,CAAA,GAAA,CAsBZ,GE1CqB,EF0CrB,CE1CwB,UFqBf,CErB0B,GFqB1B,CAAA,CAAA,CAAA,CAAA,CAAA;AA6BV,KE/CK,YFiDJ,CAAA,GAAA,CAAA,GEjDsB,EFiDtB,CEjDyB,WFiDzB,CEjDqC,GFiDrC,CAAA,CAAA,CAAA,CAAA,CAAA;KEhDI,oBAAkB,GAAG,YAAY;KACjC,oBAAkB,GAAG,YAAY;KACjC,oBAAkB,GAAG,YAAY;AD5DtC,KC6DK,YD7DiB,CAAA,GAAA,CAAA,GC6DC,ED7DD,CC6DI,WDvDI,CCuDQ,GDvDR,CAAA,CACjB,CAAA,CAAA,CAAA;AAEb,KCqDK,YDrDO,CAAW,GAAA,CAAA,GCqDA,EDrDA,CCqDG,WDpDA,CCoDY,GDpDZ,CAAA,CAAU,CAAA,CAAA,CAAA;KCqD/B,oBAAkB,GAAG,YAAY;KACjC,oBAAkB,GAAG,YAAY;KAGjC,qBAAmB,GAAG,aAAa;AAnExC,KAoEK,aApEO,CAAY,GAAA,CAAA,GAoEA,EApEA,CAoEG,YApEH,CAoEgB,GApEhB,CAAA,CAAA,CAAA,CAAA,CAAA;AACxB,KAoEK,aApEO,CAAA,GAAA,CAAA,GAoEY,EApEK,CAoEF,YApEE,CAoEW,GApEX,CAAA,CAAA,CAAA,CAAA,CAAA;AAqCZ,KAgCZ,aA9BO,CAAA,GAAA,CAAA,GA8BY,EA7BV,CA6Ba,YA5BZ,CA4ByB,GA5BzB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KA6BV,aAxBU,CAAA,GAAA,CAAA,GAwBS,EAxBT,CAwBY,YAxBL,CAwBkB,GAxBlB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAyBjB,aAxBU,CAAA,GAAA,CAAA,GAwBS,EAxBT,CAwBY,YAxBL,CAwBkB,GAxBlB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KAyBjB,aAtBW,CAAA,GAAA,CAAA,GAsBQ,EAtBR,CAsBW,YAtBX,CAsBwB,GAtBxB,CAAA,CAAA,CAAA,CAAA,CAAA;KAuBX,aAvB+B,CAAA,GAAA,CAAA,GAuBZ,EAvBY,CAuBT,YAvBS,CAuBI,GAvBJ,CAAA,CAAA,CAAA,CAAA,CAAA;KAwB/B,aAxBoB,CAAA,GAAA,CAAA,GAwBD,EAxBC,CAwBE,YAxBF,CAwBe,GAxBf,CAAA,CAAA,CAAA,CAAA,CAAA;KAyBpB,aAzBiB,CAAA,GAAA,CAAA,GAyBE,EAzBF,CAyBK,YAzBL,CAyBkB,GAzBlB,CAAA,CAAA,CAAA,CAAA,CAAA;KA0BjB,aA1BmB,CAAA,GAAA,CAAA,GA0BA,EA1BA,CA0BG,YA1BH,CA0BgB,GA1BhB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KA2BnB,aA1BW,CAAA,GAAA,CAAA,GA0BQ,EA1BR,CA0BW,YA1BX,CA0BwB,GA1BxB,CAAA,CAAA,CAAA,CAAA,CAAA;KA2BX,aA3B+B,CAAA,GAAA,CAAA,GA2BZ,EA3BY,CA2BT,YA3BS,CA2BI,GA3BJ,CAAA,CAAA,CAAA,CAAA,CAAA;KA4B/B,aA5BoB,CAAA,GAAA,CAAA,GA4BD,EA5BC,CA4BE,YA5BF,CA4Be,GA5Bf,CAAA,CAAA,CAAA,CAAA,CAAA;KA6BpB,aA7BiB,CAAA,GAAA,CAAA,GA6BE,EA7BF,CA6BK,YA7BL,CA6BkB,GA7BlB,CAAA,CAAA,CAAA,CAAA,CAAA;KA8BjB,aA9BmB,CAAA,GAAA,CAAA,GA8BA,EA9BA,CA8BG,YA9BH,CA8BgB,GA9BhB,CAAA,CAAA,CAAA,CAAA,CAAA;AACnB,KA+BO,iBA/BI,CAAA,GAAA,EAAA,UA+B2B,YA/B3B,CAAA,GAiCd,CAjCc,SAAA,GAAA,GAiCE,UAjCF,CAiCa,GAjCb,CAAA,GAkCd,CAlCc,SAAA,GAAA,GAkCE,UAlCF,CAkCa,GAlCb,CAAA,GAqCd,CArCc,SAAA,MAAA,GAqCK,WArCL,CAqCiB,GArCjB,CAAA,GAsCd,CAtCc,SAAA,MAAA,GAsCK,WAtCL,CAsCiB,GAtCjB,CAAA,GAuCd,CAvCc,SAAA,MAAA,GAuCK,WAvCL,CAuCiB,GAvCjB,CAAA,GAwCd,CAxCc,SAAA,MAAA,GAwCK,WAxCL,CAwCiB,GAxCjB,CAAA,GA2Cd,CA3Cc,SAAA,SAAA,GA2CQ,YA3CR,CA2CqB,GA3CrB,CAAA,GA4Cd,CA5Cc,SAAA,SAAA,GA4CQ,YA5CR,CA4CqB,GA5CrB,CAAA,GA6Cd,CA7Cc,SAAA,SAAA,GA6CQ,YA7CR,CA6CqB,GA7CrB,CAAA,GA8Cd,CA9Cc,SAAA,SAAA,GA8CQ,YA9CR,CA8CqB,GA9CrB,CAAA,GA+Cd,CA/Cc,SAAA,SAAA,GA+CQ,YA/CR,CA+CqB,GA/CrB,CAAA,GAgDd,CAhDc,SAAA,SAAA,GAgDQ,YAhDR,CAgDqB,GAhDrB,CAAA,GAiDd,CAjDc,SAAA,SAAA,GAiDQ,YAjDR,CAiDqB,GAjDrB,CAAA,GAkDd,CAlDc,SAAA,SAAA,GAkDQ,YAlDR,CAkDqB,GAlDrB,CAAA,GAqDd,CArDc,SAAA,YAAA,GAqDW,aArDX,CAqDyB,GArDzB,CAAA,GAsDd,CAtDc,SAAA,YAAA,GAsDW,aAtDX,CAsDyB,GAtDzB,CAAA,GAuDd,CAvDc,SAAA,YAAA,GAuDW,aAvDX,CAuDyB,GAvDzB,CAAA,GAwDd,CAxDc,SAAA,YAAA,GAwDW,aAxDX,CAwDyB,GAxDzB,CAAA,GAyDd,CAzDc,SAAA,YAAA,GAyDW,aAzDX,CAyDyB,GAzDzB,CAAA,GA0Dd,CA1Dc,SAAA,YAAA,GA0DW,aA1DX,CA0DyB,GA1DzB,CAAA,GA2Dd,CA3Dc,SAAA,YAAA,GA2DW,aA3DX,CA2DyB,GA3DzB,CAAA,GA4Dd,CA5Dc,SAAA,YAAA,GA4DW,aA5DX,CA4DyB,GA5DzB,CAAA,GA6Dd,CA7Dc,SAAA,YAAA,GA6DW,aA7DX,CA6DyB,GA7DzB,CAAA,GA8Dd,CA9Dc,SAAA,YAAA,GA8DW,aA9DX,CA8DyB,GA9DzB,CAAA,GA+Dd,CA/Dc,SAAA,YAAA,GA+DW,aA/DX,CA+DyB,GA/DzB,CAAA,GAgEd,CAhEc,SAAA,YAAA,GAgEW,aAhEX,CAgEyB,GAhEzB,CAAA,GAiEd,CAjEc,SAAA,YAAA,GAiEW,aAjEX,CAiEyB,GAjEzB,CAAA,GAkEd,CAlEc,SAAA,YAAA,GAkEW,aAlEX,CAkEyB,GAlEzB,CAAA,GAmEd,CAnEc,SAAA,YAAA,GAmEW,aAnEX,CAmEyB,GAnEzB,CAAA,GAoEd,CApEc,SAAA,YAAA,GAoEW,aApEX,CAoEyB,GApEzB,CAAA,GAAA,KAAA;;;UClDC,oBAAA;EHQL,SAAA,IAAA,EAAA,QAAgB,GAAA,MAAA;EAYhB,SAAA,IAAS,EAAA,MAAA;EA4BR,SAAA,KAAA,EAAA,GAAA;AAQb;AAAuC,KGlD3B,WAAA,GHkD2B,CGlDZ,oBHkDY,CAAA,GAAA;EAAqB,UAAA,GAAA,EAAA,MAAA,CAAA,EGlDiB,WAAA,CAAY,QHkD7B;CAAI;AAQ/D,kBGxDwB,WAAA,CHwDxB;EAOY,KAAA,kBAsBZ,GAAA,oBAnBE;EA2BU,KAAA,QAEZ,GAAA,CG7FyB,WH6FzB,EG7FsC,YH6FtC,EG7FoD,kBH6FpD,CAAA,CAAA;6BG3FmC,WAAA,CAAY,aACzC,qBAAqB,wBAClB,kBAAkB,yBAAyB,sCACpB,cAAc,YAAY,WAAW,WAAA,CAAY,WAAW,KAAK,YAAY,kBACvG,oBAAoB;EFnBf,KAAA,mBAAU,CAMQ,iBEeqB,WAAA,CAAY,QFdxC,CAAA,GEejB,iBFfiB,CAAA,kBAAA,EEeqB,QFfrB,CAAA,CAAA,CAAA,CAAA,GAAA,CEgBhB,QFhBgB,CAAA,CAAA,CAAA,SEgBI,kBFhBJ,GAAA,SAAA,GAAA,KAAA,CAAA;EAEX,KAAA,SAAW,CAAA,iBEgBkB,WAAA,CAAY,QFfjB,CAAA,GEe6B,iBFf7B,CAAA,kBAAA,EEiBhC,QFjBgC,CAAA,CAAA,CAAA,CAAA,SAAA,KAAA,EAAA,GEmB9B,QFnB8B,CAAA,CAAA,CAAA,SEmBV,kBFnBU,GEoB5B,OFpB4B,CEoBpB,CFpBoB,EAAA,SAAA,CAAA,GAAA,CAAA,GAAA,KAAA;6CEwBgB,WAAA,CAAY;aACnD;eACE,oBAAoB;EDpCvB,CAAA;EACA,KAAA,mBAAiB,CAAA,iBCsCsB,WAAA,CAAY,QDtClC,CAAA,GAAA;IAuCnB,OAAE,ECAC,QDCC,CAAA,CAAA,CAAA;IAMT,SAAU,ECNA,SDMA,CCNU,QDMH,CAAA;EACjB,CAAA;EAGA,KAAA,cAAW,CAAA,iBCP8B,WAAA,CAAY,QDO1C,CAAA,GCNV,iBDMU,CCLR,QDKQ,CAAA,CAAA,CAAA,SAAA,CCLa,oBDKb,CAAA,GCJJ,QDII,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,GAAA,iBAAoB,MCFD,QDEC,CAAA,CAAA,CAAA,GCFa,QDEb,CAAA,CAAA,CAAA,CCFyB,CDEzB,CAAA,SCFoC,WAAA,CAAY,QDEhD,GCDlB,cDCkB,CCDH,QDCG,CAAA,CAAA,CAAA,CCDS,CDCT,CAAA,CAAA,GAAA,KAAA,EAAX,ECEjB,QDFiB,CAAA,CAAA,CAAA,CAAA,GCInB,MDJmB,CCIZ,oBDJY,CCIS,QDJT,CAAA,CAAA;EAAH,KAAA,aAAA,CAAA,iBCMuB,WAAA,CAAY,QDNnC,CAAA,GCM+C,MDN/C,CCMsD,mBDNtD,CCM0E,QDN1E,CAAA,CAAA;;AACjB,KCQO,eDRI,CAAA,iBCQ6B,WDR7B,EAAA,kBCQ4D,YDR5D,CAAA,GCQ4E,WAAA,CAAY,IDRxF,CAAA,CCSb,QDTiC,ECSvB,SDTY,CAAH,CAAA;AAAE,KCYZ,sBDZY,CAAA,iBCY4B,WAAA,CAAY,QDZxC,CAAA,GCYoD,WAAA,CAAY,IDZhE,CCYqE,QDZrE,CAAA;AACnB,KCaO,gBDbI,CAAA,iBCa8B,WAAA,CAAY,QDb1C,CAAA,GCasD,WAAA,CAAY,aDblE,CCagF,QDbhF,CAAA;;;UElDC,aAAA;EJQL,SAAA,OAAA,EIPQ,WJOQ;EAYhB,SAAA,SAAS,EAAA,OAIS;AAwB9B;AAQa,KInDD,WAAA,GJ2DX;EARsC,IAAA,EAAA,UAAA;EAAqB,IAAA,EAAA,MAAA;CAAI,GAAA;EAQ/D,IAAA,EAAA,aAAA;EAOY,KAAA,EI3DA,UJiFZ;AAQD,CAAA;KItFY,SAAA,GAAY;cAEV;cACD,qBAAqB;EHrBtB,iBAAU,KAAA;EASV,UGaQ,iBAAA,CHZM,EGYc,KHZd;qBGcY;0BAEZ,YAAY;;AF1B1B,cE+BC,QF/BW,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAAA,KAAA,IE+B2B,SF/B3B;AACZ,cEkCC,wBFlCgB,EAAA,CAAA,iBEkC6B,WAAA,CAAY,QFlCzC,CAAA,CAAA,IAAA,EAAA,MAAA,EAAA,GEkC+D,MFlC/D,CEkC+D,WAAA,CAAA,mBFlC/D,CEkC+D,QFlC/D,CAAA,CAAA;AAuCnB,cEDG,0BFGE,EAAA,CAAA,iBEH6C,WAAA,CAAY,QFGzD,CAAA,CAAA,KAAA,EEH0E,UFG1E,EAAA,GEHoF,MFGpF,CEHoF,WAAA,CAAA,mBFGpF,CEHoF,QFGpF,CAAA,CAAA;AAKV,cEJQ,cFIQ,EAAC,CAAA,MAAA,EEJiB,SFIjB,EAAA,GEJ6B,WFI7B;AAAA;AACA;;;AAGA,cEAT,aFAS,EAAA,CAAA,MAAA,EEAgB,SFAhB,EAAA,GAAA,MAAA;;AAAE;;;AACF,cEWT,cFXS,EAAA,CAAA,MAAA,EEWiB,SFXjB,EAAA,GEW6B,UFX7B;;;;AFzCtB;AAYA;AA4BA;AAQA;AAAuC,KKnD3B,iBAAA,GLmD2B;EAAqB;EAAI,SAAA,OAAA,CAAA,EKjD3C,MLiD2C,CAAA,MAAA,EAAA,MAAA,CAAA;EAQ/D;EAOY,SAAA,MAsBZ,CAAA,EKpFmB,MLoFnB,CAAA,MArBS,EAAA,OAEP,CAAA;AA2BH,CAAA;;;;ACxGA;AASA;;;;ACTY,KGuBA,oBHvBY,CAAA,iBGwBL,MHxBK,CAAA,MAAA,EGwBU,SHxBV,CAAA,EAAA,8BAAA,SAAA,CGyBkB,iBHzBlB,GAAA,SAAA,CAAA,EAAA,EAAA,iBAAA,OAAA,CAAA,GAAA;EACZ;EAuCF,SAAE,CAAA,EGXE,QHWF;EAOP;EACA,SAAA,QAAU,EGjBM,YHiBA;EAGhB;EAA+B,SAAA,gBAAA,CAAA,EGlBN,2BHkBM;EAAX;EAAH,SAAA,WAAA,CAAA,EGhBG,cHgBH;CAAE;AAAA;;;;;AACA;;;;AACA,KGNZ,eHMY,CAAA,iBGLL,MHKK,CAAA,MAAA,EGLU,SHKV,CAAA,EAAA,SAAA,EAAA,8BAAA,SAAA,CGHkB,iBHGlB,GAAA,SAAA,CAAA,EAAA,EAAA,iBAAA,OAAA,CAAA,GAAA,CAAA,KAAA,EGDZ,oBHCY,CGDS,QHCT,EGDmB,2BHCnB,EGDgD,cHChD,CAAA,EAAA,GGDkE,SHClE,GGD8E,OHC9E,CGDsF,SHCtF,CAAA;AAAA;;;AACF,KGGV,eHHU,CAAA,GAAA,CAAA,GGGW,GHHX,SAAA;EAAE,QAAA,EAAA,KAAA,EAAA;AAAA,CAAA,GAGnB,CAAA,GGAkE,iBHAtD;;;;;AACZ,KGKO,4BHLK,CAAA,iBGKyC,MHLzC,CAAA,MAAA,EGKwD,SHLxD,CAAA,CAAA,GAAA;EAAqB;EAAZ,SAAA,CAAA,EGOZ,QHPY;CAAH;;AAAE;;;;AACA,KGcb,uBHda,CAAA,iBGc4B,MHd5B,CAAA,MAAA,EGc2C,SHd3C,CAAA,EAAA,YGcmE,iBHdnE,CAAA,GAAA,CAAA,KAAA,EGehB,4BHfgB,CGea,QHfb,CAAA,EAAA,GGgBpB,SHhBoB,GGgBR,OHhBQ,CGgBA,SHhBA,CAAA;;;;AFhDzB;AAYA;AA4Ba,KM7CD,gBN6CuE,CAAA,iBAA5C,CAAA,GAAS;EAQnC;EAA0B,SAAA,QAAA,EMnDlB,iBNmDkB,GAAA,SAAA;EAAqB;EAAI,SAAA,SAAA,EMjD1C,SNiD0C,GAAA,IAAA;CAQ/D;AAOD;AA8BA;;;;ACxGA;AASA;;;;ACTA;AACA;AAqCiB;AAIF;AAKO;AAIjB,KIvBO,eJuBI,CAAA,oBAAA,OAAA,EAAA,8BAAA,OAAA,EAAA,iBAAA,OAAA,CAAA,GAAA;EAAoB;;;;AAAZ;EACY,SAAA,yBAAA,EAAA,CAAA,SAAA,EAAA,SIlBuB,gBJkBvB,CIlBwC,iBJkBxC,CAAA,EAAA,EAAA,GIlBiE,2BJkBjE;EAAX;;;AAAD;EACY,SAAA,WAAA,CAAA,EIdX,cJcW;CAAX;;;AAAD;AACY,KITxB,mBJSwB,CAAA,GAAA,CAAA,GITC,GJSD,SITW,eJSX,CAAA,KAAA,UAAA,EAAA,KAAA,YAAA,EAAA,KAAA,aAAA,CAAA,GAAA;EAAX,gBAAA,EIPD,SJOC;EAAH,0BAAA,EINY,WJMZ;EAAE,WAAA,EILL,YJKK;AAAA,CAAA,GAGnB,KAAA;;;;AAAoB,KIDb,kBAAA,GAAqB,eJCR,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;AAAA;;;;;AACA;;;;;AACA;;;;;AACA;;;;;AACA;;;AACF,KImBX,OJnBW,CAAA,mBAAA,MAAA,GAAA,MAAA,EAAA,oBAAA,OAAA,EAAA,8BAAA,OAAA,EAAA,iBAAA,OAAA,CAAA,GAAA;EAAE;EACpB,SAAA,OAAY,CAAA,EIyBI,UJzBJ;EAAqB;EAAZ,SAAA,QAAA,CAAA,EI2BJ,eJ3BI,CI2BY,iBJ3BZ,EI2B+B,2BJ3B/B,EI2B4D,cJ3B5D,CAAA;CAAH;;AAAE;;AACC,KIgCd,UAAA,GAAa,OJhCC,CAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA,GAAA,CAAA;;;AAAD;AAGe,KIkC5B,0BJlC4B,CAAA,GAAA,CAAA,GIkCI,GJlCJ,SIkCc,OJlCd,CAAA,KAAA,SAAA,EAAA,KAAA,UAAA,EAAA,KAAA,YAAA,EAAA,KAAA,aAAA,CAAA,GAAA;EAAb,OAAA,EIyCZ,QJzCY;EAAH,gBAAA,EI0CA,SJ1CA;EAAE,0BAAA,EI2CQ,WJ3CR;EACrB,WAAA,EI2Cc,YJ3CD;CAAsB,GAAA,KAAA;;;;AAAd;AACc,KIkD5B,sBAAA,GAAyB,eJlDG,CIkDa,iBJlDb,EAAA,SAAA,CIkD0C,iBJlD1C,GAAA,SAAA,CAAA,EAAA,CAAA;;;;AACnC,KIsDO,cAAA,GAAiB,OJtDX,CAAA,MAAA,EIsD2B,iBJtD3B,EAAA,SAAA,CIsDwD,iBJtDxD,GAAA,SAAA,CAAA,EAAA,CAAA;;;;;AACb,cI2DQ,oBJ3DK,EAAA,GAAA,GI2DsB,sBJ3DtB;;;;AAAQ,cIkEb,sBJlEa,EIkEW,sBJlEX;;;KKpEd,eAAA;EPQA,OAAA,EOR6B,UPQb;AAY5B,CAAA;AA4Ba,KO9CD,aAAA,GP8CuE,QAAA,GAA5C,MAAA,GAAA,OAAS;AAQnC,KOrDD,cAAA,GP6DX,QAAA,GAAA,MAAA,GAAA,QAAA,GAAA,OAAA,GAAA,UAAA;AARsC,KOnD3B,gBAAA,GPmD2B;EAAqB,SAAA,IAAA,EAAA,MAAA;EAAI,SAAA,IAAA,EAAA,MAAA;EAQ/D,SAAA,QAAA,EOxDoB,YPwDpB;EAOY,SAAA,YAsBZ,CAAA,EOnFyB,ePgEvB,GAAA,IAAA;EA2BU,SAAA,SAEZ,CAAA,EO5FsB,mBP4FtB;;KOzFI,yCAAyC;iBAC7B;ENlBL,SAAA,IAAU,EAAA,MAAA;EASV,SAAA,QAAW,EMWF,YNVK;yBMYD;;KAEb,mBAAA;ELxBA,CAAA,GAAA,EAAA,MAAA,CAAA,EKwBuC,kBLxB3B;AACxB,CAAA;AAuCU,KKfE,kBAAA,GAAqB,oBLiBlB,GKjByC,kBLiBzC,GKjB8D,yBLiB9D;AAKV,KKrBO,4BAAA,GAA+B,oBLqBrB,GKrB4C,kBLqB5C;AACjB,KKrBO,oBAAA,GAAuB,0BLqBb,CAAA,QAAA,CAAA;AAGjB,KKvBO,kBAAA,GAAqB,0BLuBjB,CAAA,MAAA,CAAA;AAAoB,KKtBxB,yBAAA,GAA4B,0BLsBJ,CAAA,OAAA,CAAA;KKpB/B,2BLoBoB,CAAA,cKpBsB,cLoBtB,CAAA,GAAA;EAAH,SAAA,IAAA,EKnBL,KLmBK;EAAE,SAAA,IAAA,EAAA,MAAA;EACnB,SAAA,QAAW,EKlBK,YLkBL;EAAoB,SAAA,SAAA,EKjBd,mBLiBc;CAAX;AAAH,KKfV,oBAAA,GLeU;EAAE,CAAA,GAAA,EAAA,MAAA,CAAA,EKf4B,mBLe5B;AAAA,CAAA;AACY,KKfxB,mBAAA,GACR,qBLcgC,GKbhC,mBLagC,GKZhC,qBLYgC,GKXhC,oBLWgC,GKVhC,uBLUgC;AAAX,KKTb,6BAAA,GAAgC,qBLSnB,GKT2C,mBLS3C,GKTiE,uBLSjE;AAAH,KKRV,qBAAA,GAAwB,2BLQd,CAAA,QAAA,CAAA;AAAE,KKPZ,mBAAA,GAAsB,2BLOV,CAAA,MAAA,CAAA;AACnB,KKPO,qBAAA,GAAwB,2BLOpB,CAAA,QAAA,CAAA;AAAoB,KKNxB,oBAAA,GAAuB,2BLMC,CAAA,OAAA,CAAA;AAAX,KKLb,uBAAA,GAA0B,2BLKb,CAAA,UAAA,CAAA;;;UMtDR;kBACC;;;;KCaN,aAAA,SAAsB;ATHtB,KSIA,WAAA,GTJgB,MAAA;AAYhB,KSPA,YAAA,GTOS,MAIS;AAwBjB,KSjCD,gBAAA,GTiCuE;EAQtE,SAAA,KAAA,EAQZ,MAAA;EARsC,SAAA,UAAA,ESvChB,cTuCgB;EAAqB,SAAA,MAAA,EAAA;IAAI,UAAA,IAAA,EAAA,MAAA,CAAA,EStClB,gBTsCkB,CAAA,GAAA,CAAA;EAQ/D,CAAA;EAOY,SAAA,IAAA,EAsBZ;IAQY,UAEZ,IAAA,EAAA,MAAA,CAAA,ESpF2C,cToF3C,CAAA,GAAA,CAAA;;;6BSnF4C;ERvBjC,CAAA;EASA,SAAA,MAAW,EAAA;6BQeuB;;;IPxBlC,UAAA,IAAY,EAAA,MAAA,CAAA,EOyBqB,ePzBrB;EACZ,CAAA;AAqCK,CAAA;AASZ,KObO,cAAA,GPaG;EACV,SAAA,KAAU,EAAA,MAAA,GAAA,IAAM;EAGhB,SAAA,QAAW,EAAA,MAAA,GAAA,IAAA;EAAoB,SAAA,YAAA,EAAA,MAAA,GAAA,IAAA;CAAX;AAAH,UOXL,gBPWK,CAAA,YAAA;EAAE,IAAA,EAAA,MAAA;EACnB,KAAA,EAAA,OAAW;EAAoB,MAAA,EAAA,OAAA;CAAX,CAAA,SOXf,YPWe,CAAA;EAAH,KAAA,EOVX,GPUW,CAAA,OAAA,CAAA;EAAE,YAAA,EAAA;IACnB,IAAA,EAAA,QAAW;IAAoB,IAAA,EORxB,GPQwB,CAAA,MAAA,CAAA;IAAX,KAAA,EOPZ,GPOY,CAAA,OAAA,CAAA;EAAH,CAAA;EAAE,MAAA,EOLZ,GPKY,CAAA,QAAA,CAAA;EACnB,aAAA,EAAW;IAAoB,IAAA,EAAA,QAAA;IAAX,IAAA,EOHb,GPGa,CAAA,MAAA,CAAA;IAAH,KAAA,EOFT,GPES,CAAA,QAAA,CAAA;EAAE,CAAA;AAAA,CAAA,CAAA,CAAA;EAGc,SAAA,IAAA,EOFrB,GPEqB,CAAA,MAAA,CAAA;;AAAf,UOCN,cPDM,CAAA,YAAA;EAAE,IAAA,EAAA,MAAA;EACpB,MAAA,EAAA,MAAA;CAAiC,CAAA,SOC5B,YPD4B,CAAA;EAAZ,IAAA,EOEhB,GPFgB,CAAA,MAAA,CAAA;EAAH,YAAA,EAAA;IAAE,IAAA,EAAA,MAAA;IACpB,IAAA,EOIO,GPJP,CAAA,MAAY,CAAA;IAAqB,KAAA,EOKzB,GPLyB,CAAA,QAAA,CAAA;EAAZ,CAAA;EAAH,aAAA,EAAA;IAAE,IAAA,EAAA,MAAA;IACpB,IAAA,EOQO,GPRP,CAAA,MAAY,CAAA;IAAqB,KAAA,EOSzB,GPTyB,CAAA,QAAA,CAAA;EAAZ,CAAA;CAAH,CAAA,CAAA;EAAE,SAAA,IAAA,EOYR,GPZQ,CAAA,MAAA,CAAA;EACpB,SAAA,MAAY,EAAA,iBOamB,GPbE,CAAA,QAAA,CAAA,GAAA,IAAA,EAAZ;;AAAD,UOgBR,eAAA,CPhBQ;EACpB,SAAA,IAAA,EAAY,MAAA;EAAqB,SAAA,MAAA,EOkBnB,mBPlBmB;;AAAf,KOwBX,gBAAA,GPxBW;EAAE,SAAA,IAAA,EAAA,MAAA;EACpB,SAAA,MAAY,EO0BE,oBP1BF;CAAqB;AAAZ,KO6Bd,eAAA,GP7Bc;EAAH,SAAA,IAAA,EAAA,MAAA;EAAE,SAAA,KAAA,EAAA;IACpB,CAAA,QAAA,EAAY,MAAA,CAAA,EAAA,IAAA;EAAqB,CAAA;CAAZ;AAAH,KOkCX,iBPlCW,CAAA,gBOkCuB,gBPlCvB,EAAA,mBOkC4D,kBPlC5D,CAAA,GAAA,QOmCf,OPnCiB,CAAA,OAAA,CAAA,GAAA,COoCrB,UPjCC,SOiCkB,oBPjCL,GAAA,COkCT,OPlCS,CAAA,QAAA,CAAA,COkCS,UPlCT,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,cAAA,CAAA,CAAA,GOmCV,UPnCU,SOmCS,kBPnCT,GAAA,COoCP,OPpCO,CAAA,MAAA,CAAA,COoCS,UPpCT,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,cAAA,CAAA,CAAA,GOqCR,OPrCQ,CAAA,OAAA,CAAA,COqCS,UPrCT,CAAA,MAAA,CAAA,CAAA,CAAA,QAAA,CAAA,SAAA,KAAA,QAAA,GAAA,QAAsB,MOuCd,OPvCc,GOuCJ,OPvCI,COuCI,CPvCJ,CAAA,SOuCe,kBPvCf,GOuCoC,iBPvCpC,COuCsD,OPvCtD,EOuC+D,OPvC/D,COuCuE,CPvCvE,CAAA,CAAA,GAAA,KAAA,EAAb,GAAA,KAAA,EO0CvB,UP1CoB,CAAA,UAAA,CAAA,EO2CpB,UP3CsB,CAAA,cAAA,CAAA,SO2Ca,eP3Cb,GO2C+B,WAAA,CAAY,kBP3C3C,GAAA,SAAA,CACrB,EAAmC,CO4CtC,OP5CsC,CAAA,OAAA,CAAA,CAAA;AAAb,KO8Cf,kBP9Ce,CAAA,gBO8CoB,gBP9CpB,EAAA,mBO8CyD,6BP9CzD,CAAA,GAAA,QO+CnB,OP/CgB,CAAA,OAAA,CAAA,GAAA,CAAE,COgDrB,UPhDqB,SOgDF,qBPhDE,GOiDlB,OPjDkB,CAAA,QAAA,CAAA,COiDA,UPjDA,CAAA,MAAA,CAAA,CAAA,GOkDlB,OPlDkB,CAAA,MAAA,CAAA,COkDF,UPlDE,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,eAAA,CAAA,CACrB,EAAmC,COmDtC,OPnDsC,CAAA,OAAA,CAAA,CAAA;AAAb,KOqDf,4BPrDe,CAAA,gBOsDT,gBPtDS,EAAA,oBAAA,MOuDD,OPvDC,CAAA,QAAA,CAAA,EAAA,qBAAA,MOwDA,OPxDA,CAAA,QAAA,CAAA,COwDkB,WPxDlB,CAAA,CAAA,QAAA,CAAA,CAAA,GOyDvB,OPzDuB,CAAA,QAAA,CAAA,COyDL,WPzDK,CAAA,CAAA,QAAA,CAAA,COyDgB,YPzDhB,CAAA;AAAH,KO2DZ,gBP3DY,CAAA,gBO4DN,gBP5DM,EAAA,mBO6DH,kBP7DG,CAAA,GO8DpB,OP9DoB,CAAA,OAAA,CAAA,CO8DH,UP9DG,CAAA,MAAA,CAAA,CAAA,CAAA,QAAA,CAAA;AAAE,KOgEd,iBPhEc,CAAA,gBOgEoB,gBPhEpB,EAAA,oBAAA,MOgE8D,OPhE9D,CAAA,QAAA,CAAA,CAAA,GAAA,0BACR,MOgEc,OPhEd,CAAA,QAAA,CAAA,COgEgC,WPhEhC,CAAA,CAAA,QAAA,CAAA,GOgEuD,OPhEvD,CAAA,QAAA,CAAA,COgEyE,WPhEzE,CAAA,CAAA,QAAA,CAAA,COgE8F,UPhE9F,CAAA,EAAsB;AAAb,KOmEf,ePnEe,CAAA,gBOmEiB,gBPnEjB,EAAA,mBOmEsD,oBPnEtD,CAAA,GAAA,yBOoEF,ePpED,COoEiB,OPpEjB,EOoE0B,UPpE1B,CAAA,GOoEwC,OPpExC,CAAA,QAAA,CAAA,COoE0D,SPpE1D,CAAA,EAAE;AACrB,KOsEO,ePtEM,CAAA,gBOsE0B,gBPtE1B,EAAA,mBOsE+D,oBPtE/D,CAAA,GOsEuF,OPtEvF,CAAA,MOuEV,OPvEU,CAAA,QAAA,CAAA,EAAA,MOwEV,OPxEU,CAAA,OAAA,CAAA,COwEO,UPxEP,CAAA,MAAA,CAAA,CAAA,CAAA,OAAA,CAAA,CAAA,GAAA,MAAA"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
//#region packages/core/src/utils/type-meta.ts
|
|
2
|
+
const withTypeMeta = (target) => {
|
|
3
|
+
if (process.env.NODE_ENV !== "production") {
|
|
4
|
+
if (typeof target !== "object" && typeof target !== "function" || target === null) throw new Error("Target must be an object or a function.");
|
|
5
|
+
Object.defineProperty(target, "$type", { get() {
|
|
6
|
+
throw new Error("This property is only for type inference. Do not access this property directly.");
|
|
7
|
+
} });
|
|
8
|
+
}
|
|
9
|
+
return target;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region packages/core/src/utils/wrap-by-key.ts
|
|
14
|
+
function wrapByKey(name, value) {
|
|
15
|
+
return { [name]: value };
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region packages/core/src/types/type-foundation/modified-type-name.ts
|
|
20
|
+
function parseModifiedTypeName(nameAndModifier) {
|
|
21
|
+
if (typeof nameAndModifier !== "string") throw new Error(`Invalid modified type name: ${nameAndModifier}`);
|
|
22
|
+
const [name, modifier] = nameAndModifier.split(":");
|
|
23
|
+
return {
|
|
24
|
+
name,
|
|
25
|
+
modifier
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region packages/core/src/schema/type-specifier-builder.ts
|
|
31
|
+
const createUnsafeInputTypeSpecifierFactory = (kind) => {
|
|
32
|
+
return (type, extras) => ({
|
|
33
|
+
kind,
|
|
34
|
+
...parseModifiedTypeName(type),
|
|
35
|
+
defaultValue: extras.default ? { default: extras.default() } : null
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
const unsafeInputType = {
|
|
39
|
+
scalar: createUnsafeInputTypeSpecifierFactory("scalar"),
|
|
40
|
+
enum: createUnsafeInputTypeSpecifierFactory("enum"),
|
|
41
|
+
input: createUnsafeInputTypeSpecifierFactory("input")
|
|
42
|
+
};
|
|
43
|
+
const createUnsafeOutputTypeSpecifierFactory = (kind) => {
|
|
44
|
+
return (type, extras) => ({
|
|
45
|
+
kind,
|
|
46
|
+
...parseModifiedTypeName(type),
|
|
47
|
+
arguments: extras.arguments ?? {}
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const unsafeOutputType = {
|
|
51
|
+
scalar: createUnsafeOutputTypeSpecifierFactory("scalar"),
|
|
52
|
+
enum: createUnsafeOutputTypeSpecifierFactory("enum"),
|
|
53
|
+
object: createUnsafeOutputTypeSpecifierFactory("object"),
|
|
54
|
+
union: createUnsafeOutputTypeSpecifierFactory("union"),
|
|
55
|
+
typename: createUnsafeOutputTypeSpecifierFactory("typename")
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region packages/core/src/schema/schema-builder.ts
|
|
60
|
+
const defineScalar = (name) => wrapByKey(name, withTypeMeta({ name }));
|
|
61
|
+
const define = (name) => ({
|
|
62
|
+
enum: (values) => withTypeMeta({
|
|
63
|
+
name,
|
|
64
|
+
values
|
|
65
|
+
}),
|
|
66
|
+
input: (fields) => ({
|
|
67
|
+
name,
|
|
68
|
+
fields
|
|
69
|
+
}),
|
|
70
|
+
object: (fields) => ({
|
|
71
|
+
name,
|
|
72
|
+
fields: {
|
|
73
|
+
__typename: unsafeOutputType.typename(`${name}:!`, {}),
|
|
74
|
+
...fields
|
|
75
|
+
}
|
|
76
|
+
}),
|
|
77
|
+
union: (types) => ({
|
|
78
|
+
name,
|
|
79
|
+
types
|
|
80
|
+
})
|
|
81
|
+
});
|
|
82
|
+
const defineOperationRoots = (operationRoots) => operationRoots;
|
|
83
|
+
|
|
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
|
|
@@ -0,0 +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"}
|