@m1212e/rumble 0.23.22 → 0.23.24

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/out/client.cjs CHANGED
@@ -233,8 +233,7 @@ function serializeArgValue({ arg, gqlArg, types }) {
233
233
  if (type.kind === "LIST") type = type.ofType;
234
234
  if (type.kind === "NON_NULL") type = type.ofType;
235
235
  const referenceInputObject = types.find((t) => t.name === type.name);
236
- if (!referenceInputObject) throw new Error(`Expected an INPUT_OBJECT hit in name based lookup for name ${type.name} with arg ${JSON.stringify(arg)}`);
237
- if (referenceInputObject.kind !== "INPUT_OBJECT") throw new Error("Expected an INPUT_OBJECT hit in named based lookup");
236
+ if (referenceInputObject?.kind !== "INPUT_OBJECT") return arg;
238
237
  const result = {};
239
238
  for (const [key, value] of Object.entries(arg)) {
240
239
  const subArgType = referenceInputObject.inputFields.find((t) => t.name === key);
@@ -1 +1 @@
1
- {"version":3,"file":"client.cjs","names":["lazy","share","toObservable","DateResolver","DateTimeISOResolver"],"sources":["../lib/client/request.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/helpers/deepMap.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"sourcesContent":["import type { Client } from \"@urql/core\";\nimport { capitalize } from \"es-toolkit\";\nimport type {\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\n\n// since svelte is optional, dub this in case the import is not available, but if it is, use the real one\nlet createSubscriber: typeof import(\"svelte/reactivity\").createSubscriber =\n () => () => {};\n\nconst svelteReactivityReady: Promise<void> = import(\"svelte/reactivity\")\n .then((m) => {\n createSubscriber = m.createSubscriber;\n })\n .catch(() => {});\n\nimport {\n fromValue,\n map,\n merge,\n pipe,\n type Source,\n share,\n subscribe,\n take,\n toObservable,\n} from \"wonka\";\nimport { lazy } from \"../helpers/lazy\";\n\n// TODO: this could use some refactoring and less type check disable (remove uses of any)\n// TODO: the client needs tests\n\nfunction typeToString(type: any): string {\n if (type.kind === \"NON_NULL\") return `${typeToString(type.ofType)}!`;\n if (type.kind === \"LIST\") return `[${typeToString(type.ofType)}]`;\n return type.name;\n}\n\nfunction unwrapNamedType(\n typeRef: any,\n types: readonly IntrospectionType[],\n): IntrospectionType | undefined {\n let t = typeRef;\n while (t && (t.kind === \"NON_NULL\" || t.kind === \"LIST\")) t = t.ofType;\n return types.find((x) => x.name === t?.name);\n}\n\nfunction isCompositeKind(kind: string | undefined) {\n return kind === \"OBJECT\" || kind === \"INTERFACE\" || kind === \"UNION\";\n}\n\ntype VarContext = {\n variables: Record<string, any>;\n declarations: string[];\n usedNames: Set<string>;\n};\n\nfunction allocateVarName(ctx: VarContext, baseName: string): string {\n if (!ctx.usedNames.has(baseName)) {\n ctx.usedNames.add(baseName);\n return baseName;\n }\n let i = 1;\n while (ctx.usedNames.has(`${baseName}${i}`)) i++;\n const name = `${baseName}${i}`;\n ctx.usedNames.add(name);\n return name;\n}\n\nexport const argsKey = \"__args\";\n\nfunction makeOperation({\n operationVerb,\n queryName,\n schema,\n input,\n autoIncludeIdField,\n}: {\n operationVerb: \"query\" | \"subscription\" | \"mutation\";\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n autoIncludeIdField?: string;\n}) {\n const otwQueryName = `${capitalize(queryName)}${capitalize(operationVerb)}`;\n const field = schema.__schema.types\n .filter((t) => t.kind === \"OBJECT\")\n .find((t) => t.name === schema.__schema[`${operationVerb}Type`]!.name)!\n .fields.find((f) => f.name === queryName)!;\n const types = schema.__schema.types;\n\n const varCtx: VarContext = {\n variables: {},\n declarations: [],\n usedNames: new Set(),\n };\n\n const returnTypeIsComposite = isCompositeKind(\n unwrapNamedType(field.type, types)?.kind,\n );\n\n const selectionString =\n input && returnTypeIsComposite\n ? stringifySelection({\n parentTypeName: unwrapNamedType(field.type, types)!.name,\n selection: input,\n types,\n autoIncludeIdField,\n varCtx,\n })\n : \"\";\n\n const argumentString = input?.[argsKey]\n ? serializeArguments({\n args: input[argsKey],\n fieldArgs: field.args,\n types,\n varCtx,\n })\n : \"\";\n\n const varDecl = varCtx.declarations.length\n ? `(${varCtx.declarations.join(\", \")})`\n : \"\";\n\n return {\n operationString: `${operationVerb} ${otwQueryName}${varDecl} { ${queryName}${argumentString} ${selectionString}}`,\n variables: varCtx.variables,\n };\n}\n\nexport function makeGraphQLQueryRequest({\n queryName,\n schema,\n input,\n client,\n enableSubscription = false,\n forceReactivity,\n autoIncludeIdField,\n}: {\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n client: Client;\n enableSubscription?: boolean;\n forceReactivity?: boolean;\n autoIncludeIdField?: string;\n}) {\n let currentData: any;\n const dataProxy = lazy(\n () =>\n new Proxy(currentData, {\n get(_target, prop, receiver) {\n svelteSubscriber();\n const val = Reflect.get(currentData, prop, receiver);\n if (typeof val === \"function\") {\n return val.bind(currentData);\n }\n return val;\n },\n }),\n );\n\n let svelteSubscriber: () => void = () => {};\n\n const { operationString, variables } = makeOperation({\n operationVerb: \"query\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observableSources: Source<any>[] = [\n client.query(operationString, variables),\n // client.read\n ];\n if (enableSubscription) {\n const { operationString: subOpString, variables: subVars } = makeOperation({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n observableSources.push(client.subscription(subOpString, subVars));\n }\n const observable = toObservable(\n pipe(\n merge(observableSources),\n share,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[queryName];\n if (typeof data === \"object\" && data !== null) {\n currentData = data;\n return dataProxy();\n }\n return data;\n }),\n ),\n );\n\n const subscriberReady = svelteReactivityReady.then(() => {\n svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((_d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\n });\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.query(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n const data = v.data?.[queryName];\n if (typeof data !== \"object\" || data === null) {\n resolve(data);\n return;\n }\n if (typeof forceReactivity === \"boolean\" && forceReactivity) {\n subscriberReady.then(() => resolve(observable));\n return;\n }\n\n currentData = data;\n observableSources.push(fromValue(data));\n\n subscriberReady.then(() => {\n try {\n const r = dataProxy();\n Object.assign(r, observable);\n resolve(r);\n } catch (err) {\n reject(err);\n }\n });\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLMutationRequest({\n mutationName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n mutationName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"mutation\",\n queryName: mutationName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observable = toObservable(\n pipe(\n pipe(client.mutation(operationString, variables) as any, share),\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[mutationName];\n return data;\n }),\n ),\n );\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.mutation(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n resolve(v.data?.[mutationName]);\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLSubscriptionRequest({\n subscriptionName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n subscriptionName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"subscription\",\n queryName: subscriptionName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n return pipe(\n client.subscription(operationString, variables) as any,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n return v.data?.[subscriptionName];\n }),\n toObservable,\n ) as any;\n}\n\nfunction stringifySelection({\n parentTypeName,\n selection,\n types,\n autoIncludeIdField,\n varCtx,\n}: {\n selection: Record<string, any>;\n parentTypeName: string;\n types: readonly IntrospectionType[];\n autoIncludeIdField?: string;\n varCtx: VarContext;\n}) {\n if (\n autoIncludeIdField &&\n typeof selection[autoIncludeIdField] === \"undefined\"\n ) {\n selection[autoIncludeIdField] = true;\n }\n\n const parentType = types.find((t) => t.name === parentTypeName);\n\n const ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n const subField =\n parentType && \"fields\" in parentType\n ? parentType.fields.find((f) => f.name === key)\n : undefined;\n\n let argsString = \"\";\n if (value[argsKey] && subField) {\n argsString = serializeArguments({\n args: value[argsKey],\n types,\n fieldArgs: subField.args,\n varCtx,\n });\n }\n\n const subNamedType = subField\n ? unwrapNamedType(subField.type, types)\n : undefined;\n\n if (isCompositeKind(subNamedType?.kind)) {\n acc += `${key}${argsString} ${stringifySelection({\n parentTypeName: subNamedType!.name,\n selection: value,\n types,\n varCtx,\n })}\n`;\n } else {\n acc += `${key}${argsString}\n`;\n }\n } else {\n if (typeof value === \"boolean\" && value) {\n acc += `${key}\n`;\n }\n }\n return acc;\n }, \"\");\n\n return `{\n${ret} }`;\n}\n\nfunction serializeArguments({\n args,\n fieldArgs,\n types,\n varCtx,\n}: {\n args: Record<any, any>;\n fieldArgs: readonly IntrospectionInputValue[];\n types: readonly IntrospectionType[];\n varCtx: VarContext;\n}) {\n const entries = Object.entries(args);\n\n if (entries.length > 0) {\n return `(${entries\n .map(([key, value]) => {\n const gqlArg = fieldArgs.find((a) => a.name === key);\n\n if (!gqlArg) {\n throw new Error(\n `Argument ${key} not found in field args list ${JSON.stringify(fieldArgs.map((a) => a.name))}`,\n );\n }\n\n const varName = allocateVarName(varCtx, key);\n varCtx.declarations.push(`$${varName}: ${typeToString(gqlArg.type)}`);\n varCtx.variables[varName] = serializeArgValue({\n arg: value,\n gqlArg,\n types,\n });\n\n return `${key}: $${varName}`;\n })\n .join(\", \")})`;\n }\n\n return \"\";\n}\n\nfunction serializeArgValue({\n arg,\n gqlArg,\n types,\n}: {\n arg: any;\n gqlArg: IntrospectionInputValue;\n types: readonly IntrospectionType[];\n}): any {\n if (arg === null) {\n return null;\n }\n\n if (Array.isArray(arg)) {\n return arg.map((v) => {\n return serializeArgValue({\n arg: v,\n types,\n gqlArg,\n });\n });\n }\n\n const argtype = typeof arg;\n\n if (argtype === \"object\" && !(arg instanceof Date)) {\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n if (type.kind === \"LIST\") {\n type = type.ofType;\n }\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n // if (type.kind !== \"INPUT_OBJECT\") {\n // throw new Error(\"Expected an INPUT_OBJECT type\");\n // }\n\n const referenceInputObject = types.find(\n (t) => t.name === (type as any).name,\n );\n\n if (!referenceInputObject) {\n throw new Error(\n `Expected an INPUT_OBJECT hit in name based lookup for name ${(type as any).name} with arg ${JSON.stringify(arg)}`,\n );\n }\n\n if (referenceInputObject.kind !== \"INPUT_OBJECT\") {\n throw new Error(\"Expected an INPUT_OBJECT hit in named based lookup\");\n }\n\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(arg)) {\n const subArgType = referenceInputObject.inputFields.find(\n (t) => t.name === key,\n );\n\n if (!subArgType) {\n throw new Error(\n `Expected an INPUT_OBJECT hit in named based lookup for name ${key} with arg ${referenceInputObject.inputFields.map((f) => f.name).join(\", \")}`,\n );\n }\n\n result[key] = serializeArgValue({\n arg: value,\n types,\n gqlArg: subArgType,\n });\n }\n return result;\n }\n\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n if (arg instanceof Date) {\n const name = (type as any).name;\n let value: string;\n switch (name) {\n case \"Date\":\n value = DateResolver.serialize(arg);\n break;\n case \"DateTime\":\n value = DateTimeISOResolver.serialize(arg);\n break;\n default:\n throw new Error(\n `Unrecognized date type ${name}, expected Date or DateTime`,\n );\n }\n return value;\n }\n\n switch (typeof arg) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n return arg;\n case \"symbol\":\n throw new Error(\"Cannot stringify a symbol to send as gql arg\");\n case \"undefined\":\n return null;\n case \"function\":\n throw new Error(\"Cannot stringify a function to send as gql arg\");\n }\n\n throw new Error(\"Cannot stringify an unknown type\");\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeLiveQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n availableSubscriptions,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n availableSubscriptions: Set<string>;\n forceReactivity?: ForceReactivity;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: availableSubscriptions.has(prop as string),\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLMutationRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeMutation<Mutation extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLMutationRequest({\n mutationName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Mutation, false>;\n}\n","/**\n * Recursively applies a mapping function to every value in a nested structure.\n *\n * This helper will traverse arrays and plain objects (objects with `constructor === Object`)\n * and apply the provided `fn` to any value that is not an array or a plain object.\n * - Arrays are mapped to new arrays (a fresh array is returned).\n * - Plain objects are traversed and their own enumerable properties are replaced in-place.\n * - Non-plain objects (e.g. Date, Map, Set, class instances, functions) are treated as leaves\n * and passed directly to `fn`.\n * - `null` and `undefined` are passed to `fn`.\n * - Circular references are detected using a `WeakSet`. When a circular reference is encountered,\n * the original reference is returned unchanged (it is not re-traversed or re-mapped).\n *\n * Note: Because plain objects are mutated in-place, callers who need immutability should first\n * clone the object graph or pass a deep-cloned input to avoid modifying the original.\n *\n * @param input - The value to traverse and map. May be any value (primitive, array, object, etc.).\n * @param fn - A function invoked for every non-array, non-plain-object value encountered.\n * Receives the current value and should return the mapped value.\n * @returns The transformed structure: arrays are returned as new arrays, plain objects are the\n * same object instances with their property values replaced, and other values are the\n * result of `fn`.\n *\n * @example\n * // Map all primitive values to their string representation:\n * // const result = mapValuesDeep({ a: 1, b: [2, { c: 3 }] }, v => String(v));\n * // result => { a: \"1\", b: [\"2\", { c: \"3\" }] }\n *\n * @remarks\n * - Only plain objects (constructed by `Object`) are recursively traversed. This avoids\n * unintentionally iterating internal structure of class instances or built-in collections.\n * - Circular structures are preserved by returning the original reference when detected.\n */\nexport function mapValuesDeep(input: any, fn: (value: any) => any) {\n const seen = new WeakSet();\n\n const recurse = (value: any): any => {\n if (Array.isArray(value)) {\n return value.map(recurse);\n }\n\n if (\n value !== null &&\n value !== undefined &&\n typeof value === \"object\" &&\n value.constructor === Object\n ) {\n if (seen.has(value)) return value;\n seen.add(value);\n for (const key of Object.keys(value)) {\n value[key] = recurse(value[key]);\n }\n return value;\n }\n\n return fn(value);\n };\n\n return recurse(input);\n}\n","import type { Exchange } from \"@urql/core\";\nimport { map, pipe } from \"wonka\";\nimport { mapValuesDeep } from \"../helpers/deepMap\";\n\nconst dateIsoRegex =\n /^\\d{4}-\\d{2}-\\d{2}(?:[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport const nativeDateExchange: Exchange = ({ client: _client, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$ as any,\n map((r: any) => {\n r.data = mapValuesDeep(r.data, (value) => {\n if (typeof value !== \"string\" || !dateIsoRegex.test(value)) {\n return value;\n }\n\n const date = Date.parse(value);\n if (!Number.isNaN(date)) {\n return new Date(date);\n }\n\n return value;\n });\n return r;\n }),\n ) as any;\n };\n};\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n forceReactivity?: ForceReactivity;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input?: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: false,\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { argsKey, makeGraphQLSubscriptionRequest } from \"./request\";\nimport type {\n ApplySelection,\n ObjectFieldSelection,\n Subscribeable,\n} from \"./types\";\nimport type { UnArray } from \"./utilTypes\";\n\nexport function makeSubscription<Subscription extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLSubscriptionRequest({\n subscriptionName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as SubscriptionObject<Subscription>;\n}\n\n// TODO use the query util types\n\nexport type SubscriptionObject<Q> = {\n [Key in keyof Q]: QueryableObjectField<Q[Key]>;\n};\n\ntype QueryableObjectField<T> = T extends (\n p: infer QueryArgs,\n) => infer QueryResponse\n ? <\n Selected extends QueryArgs extends Record<string, any>\n ? ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>> & {\n [argsKey]: QueryArgs;\n }\n : ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>>,\n >(\n s: Selected,\n ) => QueryResponse extends null\n ? Subscribeable<\n NonNullable<QueryResponse> extends Array<any>\n ? ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>[]\n : ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>\n > | null\n : Subscribeable<\n QueryResponse extends Array<any>\n ? ApplySelection<UnArray<QueryResponse>, Selected>[]\n : ApplySelection<UnArray<QueryResponse>, Selected>\n >\n : Subscribeable<T>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"client.cjs","names":["lazy","share","toObservable","DateResolver","DateTimeISOResolver"],"sources":["../lib/client/request.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/helpers/deepMap.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"sourcesContent":["import type { Client } from \"@urql/core\";\nimport { capitalize } from \"es-toolkit\";\nimport type {\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\n\n// since svelte is optional, dub this in case the import is not available, but if it is, use the real one\nlet createSubscriber: typeof import(\"svelte/reactivity\").createSubscriber =\n () => () => {};\n\nconst svelteReactivityReady: Promise<void> = import(\"svelte/reactivity\")\n .then((m) => {\n createSubscriber = m.createSubscriber;\n })\n .catch(() => {});\n\nimport {\n fromValue,\n map,\n merge,\n pipe,\n type Source,\n share,\n subscribe,\n take,\n toObservable,\n} from \"wonka\";\nimport { lazy } from \"../helpers/lazy\";\n\n// TODO: this could use some refactoring and less type check disable (remove uses of any)\n// TODO: the client needs tests\n\nfunction typeToString(type: any): string {\n if (type.kind === \"NON_NULL\") return `${typeToString(type.ofType)}!`;\n if (type.kind === \"LIST\") return `[${typeToString(type.ofType)}]`;\n return type.name;\n}\n\nfunction unwrapNamedType(\n typeRef: any,\n types: readonly IntrospectionType[],\n): IntrospectionType | undefined {\n let t = typeRef;\n while (t && (t.kind === \"NON_NULL\" || t.kind === \"LIST\")) t = t.ofType;\n return types.find((x) => x.name === t?.name);\n}\n\nfunction isCompositeKind(kind: string | undefined) {\n return kind === \"OBJECT\" || kind === \"INTERFACE\" || kind === \"UNION\";\n}\n\ntype VarContext = {\n variables: Record<string, any>;\n declarations: string[];\n usedNames: Set<string>;\n};\n\nfunction allocateVarName(ctx: VarContext, baseName: string): string {\n if (!ctx.usedNames.has(baseName)) {\n ctx.usedNames.add(baseName);\n return baseName;\n }\n let i = 1;\n while (ctx.usedNames.has(`${baseName}${i}`)) i++;\n const name = `${baseName}${i}`;\n ctx.usedNames.add(name);\n return name;\n}\n\nexport const argsKey = \"__args\";\n\nfunction makeOperation({\n operationVerb,\n queryName,\n schema,\n input,\n autoIncludeIdField,\n}: {\n operationVerb: \"query\" | \"subscription\" | \"mutation\";\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n autoIncludeIdField?: string;\n}) {\n const otwQueryName = `${capitalize(queryName)}${capitalize(operationVerb)}`;\n const field = schema.__schema.types\n .filter((t) => t.kind === \"OBJECT\")\n .find((t) => t.name === schema.__schema[`${operationVerb}Type`]!.name)!\n .fields.find((f) => f.name === queryName)!;\n const types = schema.__schema.types;\n\n const varCtx: VarContext = {\n variables: {},\n declarations: [],\n usedNames: new Set(),\n };\n\n const returnTypeIsComposite = isCompositeKind(\n unwrapNamedType(field.type, types)?.kind,\n );\n\n const selectionString =\n input && returnTypeIsComposite\n ? stringifySelection({\n parentTypeName: unwrapNamedType(field.type, types)!.name,\n selection: input,\n types,\n autoIncludeIdField,\n varCtx,\n })\n : \"\";\n\n const argumentString = input?.[argsKey]\n ? serializeArguments({\n args: input[argsKey],\n fieldArgs: field.args,\n types,\n varCtx,\n })\n : \"\";\n\n const varDecl = varCtx.declarations.length\n ? `(${varCtx.declarations.join(\", \")})`\n : \"\";\n\n return {\n operationString: `${operationVerb} ${otwQueryName}${varDecl} { ${queryName}${argumentString} ${selectionString}}`,\n variables: varCtx.variables,\n };\n}\n\nexport function makeGraphQLQueryRequest({\n queryName,\n schema,\n input,\n client,\n enableSubscription = false,\n forceReactivity,\n autoIncludeIdField,\n}: {\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n client: Client;\n enableSubscription?: boolean;\n forceReactivity?: boolean;\n autoIncludeIdField?: string;\n}) {\n let currentData: any;\n const dataProxy = lazy(\n () =>\n new Proxy(currentData, {\n get(_target, prop, receiver) {\n svelteSubscriber();\n const val = Reflect.get(currentData, prop, receiver);\n if (typeof val === \"function\") {\n return val.bind(currentData);\n }\n return val;\n },\n }),\n );\n\n let svelteSubscriber: () => void = () => {};\n\n const { operationString, variables } = makeOperation({\n operationVerb: \"query\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observableSources: Source<any>[] = [\n client.query(operationString, variables),\n // client.read\n ];\n if (enableSubscription) {\n const { operationString: subOpString, variables: subVars } = makeOperation({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n observableSources.push(client.subscription(subOpString, subVars));\n }\n const observable = toObservable(\n pipe(\n merge(observableSources),\n share,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[queryName];\n if (typeof data === \"object\" && data !== null) {\n currentData = data;\n return dataProxy();\n }\n return data;\n }),\n ),\n );\n\n const subscriberReady = svelteReactivityReady.then(() => {\n svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((_d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\n });\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.query(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n const data = v.data?.[queryName];\n if (typeof data !== \"object\" || data === null) {\n resolve(data);\n return;\n }\n if (typeof forceReactivity === \"boolean\" && forceReactivity) {\n subscriberReady.then(() => resolve(observable));\n return;\n }\n\n currentData = data;\n observableSources.push(fromValue(data));\n\n subscriberReady.then(() => {\n try {\n const r = dataProxy();\n Object.assign(r, observable);\n resolve(r);\n } catch (err) {\n reject(err);\n }\n });\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLMutationRequest({\n mutationName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n mutationName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"mutation\",\n queryName: mutationName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observable = toObservable(\n pipe(\n pipe(client.mutation(operationString, variables) as any, share),\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[mutationName];\n return data;\n }),\n ),\n );\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.mutation(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n resolve(v.data?.[mutationName]);\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLSubscriptionRequest({\n subscriptionName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n subscriptionName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"subscription\",\n queryName: subscriptionName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n return pipe(\n client.subscription(operationString, variables) as any,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n return v.data?.[subscriptionName];\n }),\n toObservable,\n ) as any;\n}\n\nfunction stringifySelection({\n parentTypeName,\n selection,\n types,\n autoIncludeIdField,\n varCtx,\n}: {\n selection: Record<string, any>;\n parentTypeName: string;\n types: readonly IntrospectionType[];\n autoIncludeIdField?: string;\n varCtx: VarContext;\n}) {\n if (\n autoIncludeIdField &&\n typeof selection[autoIncludeIdField] === \"undefined\"\n ) {\n selection[autoIncludeIdField] = true;\n }\n\n const parentType = types.find((t) => t.name === parentTypeName);\n\n const ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n const subField =\n parentType && \"fields\" in parentType\n ? parentType.fields.find((f) => f.name === key)\n : undefined;\n\n let argsString = \"\";\n if (value[argsKey] && subField) {\n argsString = serializeArguments({\n args: value[argsKey],\n types,\n fieldArgs: subField.args,\n varCtx,\n });\n }\n\n const subNamedType = subField\n ? unwrapNamedType(subField.type, types)\n : undefined;\n\n if (isCompositeKind(subNamedType?.kind)) {\n acc += `${key}${argsString} ${stringifySelection({\n parentTypeName: subNamedType!.name,\n selection: value,\n types,\n varCtx,\n })}\n`;\n } else {\n acc += `${key}${argsString}\n`;\n }\n } else {\n if (typeof value === \"boolean\" && value) {\n acc += `${key}\n`;\n }\n }\n return acc;\n }, \"\");\n\n return `{\n${ret} }`;\n}\n\nfunction serializeArguments({\n args,\n fieldArgs,\n types,\n varCtx,\n}: {\n args: Record<any, any>;\n fieldArgs: readonly IntrospectionInputValue[];\n types: readonly IntrospectionType[];\n varCtx: VarContext;\n}) {\n const entries = Object.entries(args);\n\n if (entries.length > 0) {\n return `(${entries\n .map(([key, value]) => {\n const gqlArg = fieldArgs.find((a) => a.name === key);\n\n if (!gqlArg) {\n throw new Error(\n `Argument ${key} not found in field args list ${JSON.stringify(fieldArgs.map((a) => a.name))}`,\n );\n }\n\n const varName = allocateVarName(varCtx, key);\n varCtx.declarations.push(`$${varName}: ${typeToString(gqlArg.type)}`);\n varCtx.variables[varName] = serializeArgValue({\n arg: value,\n gqlArg,\n types,\n });\n\n return `${key}: $${varName}`;\n })\n .join(\", \")})`;\n }\n\n return \"\";\n}\n\nfunction serializeArgValue({\n arg,\n gqlArg,\n types,\n}: {\n arg: any;\n gqlArg: IntrospectionInputValue;\n types: readonly IntrospectionType[];\n}): any {\n if (arg === null) {\n return null;\n }\n\n if (Array.isArray(arg)) {\n return arg.map((v) => {\n return serializeArgValue({\n arg: v,\n types,\n gqlArg,\n });\n });\n }\n\n const argtype = typeof arg;\n\n if (argtype === \"object\" && !(arg instanceof Date)) {\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n if (type.kind === \"LIST\") {\n type = type.ofType;\n }\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n const referenceInputObject = types.find(\n (t) => t.name === (type as any).name,\n );\n\n if (referenceInputObject?.kind !== \"INPUT_OBJECT\") {\n return arg;\n }\n\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(arg)) {\n const subArgType = referenceInputObject.inputFields.find(\n (t) => t.name === key,\n );\n\n if (!subArgType) {\n throw new Error(\n `Expected an INPUT_OBJECT hit in named based lookup for name ${key} with arg ${referenceInputObject.inputFields.map((f) => f.name).join(\", \")}`,\n );\n }\n\n result[key] = serializeArgValue({\n arg: value,\n types,\n gqlArg: subArgType,\n });\n }\n return result;\n }\n\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n if (arg instanceof Date) {\n const name = (type as any).name;\n let value: string;\n switch (name) {\n case \"Date\":\n value = DateResolver.serialize(arg);\n break;\n case \"DateTime\":\n value = DateTimeISOResolver.serialize(arg);\n break;\n default:\n throw new Error(\n `Unrecognized date type ${name}, expected Date or DateTime`,\n );\n }\n return value;\n }\n\n switch (typeof arg) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n return arg;\n case \"symbol\":\n throw new Error(\"Cannot stringify a symbol to send as gql arg\");\n case \"undefined\":\n return null;\n case \"function\":\n throw new Error(\"Cannot stringify a function to send as gql arg\");\n }\n\n throw new Error(\"Cannot stringify an unknown type\");\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeLiveQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n availableSubscriptions,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n availableSubscriptions: Set<string>;\n forceReactivity?: ForceReactivity;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: availableSubscriptions.has(prop as string),\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLMutationRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeMutation<Mutation extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLMutationRequest({\n mutationName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Mutation, false>;\n}\n","/**\n * Recursively applies a mapping function to every value in a nested structure.\n *\n * This helper will traverse arrays and plain objects (objects with `constructor === Object`)\n * and apply the provided `fn` to any value that is not an array or a plain object.\n * - Arrays are mapped to new arrays (a fresh array is returned).\n * - Plain objects are traversed and their own enumerable properties are replaced in-place.\n * - Non-plain objects (e.g. Date, Map, Set, class instances, functions) are treated as leaves\n * and passed directly to `fn`.\n * - `null` and `undefined` are passed to `fn`.\n * - Circular references are detected using a `WeakSet`. When a circular reference is encountered,\n * the original reference is returned unchanged (it is not re-traversed or re-mapped).\n *\n * Note: Because plain objects are mutated in-place, callers who need immutability should first\n * clone the object graph or pass a deep-cloned input to avoid modifying the original.\n *\n * @param input - The value to traverse and map. May be any value (primitive, array, object, etc.).\n * @param fn - A function invoked for every non-array, non-plain-object value encountered.\n * Receives the current value and should return the mapped value.\n * @returns The transformed structure: arrays are returned as new arrays, plain objects are the\n * same object instances with their property values replaced, and other values are the\n * result of `fn`.\n *\n * @example\n * // Map all primitive values to their string representation:\n * // const result = mapValuesDeep({ a: 1, b: [2, { c: 3 }] }, v => String(v));\n * // result => { a: \"1\", b: [\"2\", { c: \"3\" }] }\n *\n * @remarks\n * - Only plain objects (constructed by `Object`) are recursively traversed. This avoids\n * unintentionally iterating internal structure of class instances or built-in collections.\n * - Circular structures are preserved by returning the original reference when detected.\n */\nexport function mapValuesDeep(input: any, fn: (value: any) => any) {\n const seen = new WeakSet();\n\n const recurse = (value: any): any => {\n if (Array.isArray(value)) {\n return value.map(recurse);\n }\n\n if (\n value !== null &&\n value !== undefined &&\n typeof value === \"object\" &&\n value.constructor === Object\n ) {\n if (seen.has(value)) return value;\n seen.add(value);\n for (const key of Object.keys(value)) {\n value[key] = recurse(value[key]);\n }\n return value;\n }\n\n return fn(value);\n };\n\n return recurse(input);\n}\n","import type { Exchange } from \"@urql/core\";\nimport { map, pipe } from \"wonka\";\nimport { mapValuesDeep } from \"../helpers/deepMap\";\n\nconst dateIsoRegex =\n /^\\d{4}-\\d{2}-\\d{2}(?:[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport const nativeDateExchange: Exchange = ({ client: _client, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$ as any,\n map((r: any) => {\n r.data = mapValuesDeep(r.data, (value) => {\n if (typeof value !== \"string\" || !dateIsoRegex.test(value)) {\n return value;\n }\n\n const date = Date.parse(value);\n if (!Number.isNaN(date)) {\n return new Date(date);\n }\n\n return value;\n });\n return r;\n }),\n ) as any;\n };\n};\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n forceReactivity?: ForceReactivity;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input?: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: false,\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { argsKey, makeGraphQLSubscriptionRequest } from \"./request\";\nimport type {\n ApplySelection,\n ObjectFieldSelection,\n Subscribeable,\n} from \"./types\";\nimport type { UnArray } from \"./utilTypes\";\n\nexport function makeSubscription<Subscription extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLSubscriptionRequest({\n subscriptionName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as SubscriptionObject<Subscription>;\n}\n\n// TODO use the query util types\n\nexport type SubscriptionObject<Q> = {\n [Key in keyof Q]: QueryableObjectField<Q[Key]>;\n};\n\ntype QueryableObjectField<T> = T extends (\n p: infer QueryArgs,\n) => infer QueryResponse\n ? <\n Selected extends QueryArgs extends Record<string, any>\n ? ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>> & {\n [argsKey]: QueryArgs;\n }\n : ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>>,\n >(\n s: Selected,\n ) => QueryResponse extends null\n ? Subscribeable<\n NonNullable<QueryResponse> extends Array<any>\n ? ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>[]\n : ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>\n > | null\n : Subscribeable<\n QueryResponse extends Array<any>\n ? ApplySelection<UnArray<QueryResponse>, Selected>[]\n : ApplySelection<UnArray<QueryResponse>, Selected>\n >\n : Subscribeable<T>;\n"],"mappings":"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"}
package/out/client.mjs CHANGED
@@ -232,8 +232,7 @@ function serializeArgValue({ arg, gqlArg, types }) {
232
232
  if (type.kind === "LIST") type = type.ofType;
233
233
  if (type.kind === "NON_NULL") type = type.ofType;
234
234
  const referenceInputObject = types.find((t) => t.name === type.name);
235
- if (!referenceInputObject) throw new Error(`Expected an INPUT_OBJECT hit in name based lookup for name ${type.name} with arg ${JSON.stringify(arg)}`);
236
- if (referenceInputObject.kind !== "INPUT_OBJECT") throw new Error("Expected an INPUT_OBJECT hit in named based lookup");
235
+ if (referenceInputObject?.kind !== "INPUT_OBJECT") return arg;
237
236
  const result = {};
238
237
  for (const [key, value] of Object.entries(arg)) {
239
238
  const subArgType = referenceInputObject.inputFields.find((t) => t.name === key);
@@ -1 +1 @@
1
- {"version":3,"file":"client.mjs","names":["merge"],"sources":["../lib/client/request.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/helpers/deepMap.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"sourcesContent":["import type { Client } from \"@urql/core\";\nimport { capitalize } from \"es-toolkit\";\nimport type {\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\n\n// since svelte is optional, dub this in case the import is not available, but if it is, use the real one\nlet createSubscriber: typeof import(\"svelte/reactivity\").createSubscriber =\n () => () => {};\n\nconst svelteReactivityReady: Promise<void> = import(\"svelte/reactivity\")\n .then((m) => {\n createSubscriber = m.createSubscriber;\n })\n .catch(() => {});\n\nimport {\n fromValue,\n map,\n merge,\n pipe,\n type Source,\n share,\n subscribe,\n take,\n toObservable,\n} from \"wonka\";\nimport { lazy } from \"../helpers/lazy\";\n\n// TODO: this could use some refactoring and less type check disable (remove uses of any)\n// TODO: the client needs tests\n\nfunction typeToString(type: any): string {\n if (type.kind === \"NON_NULL\") return `${typeToString(type.ofType)}!`;\n if (type.kind === \"LIST\") return `[${typeToString(type.ofType)}]`;\n return type.name;\n}\n\nfunction unwrapNamedType(\n typeRef: any,\n types: readonly IntrospectionType[],\n): IntrospectionType | undefined {\n let t = typeRef;\n while (t && (t.kind === \"NON_NULL\" || t.kind === \"LIST\")) t = t.ofType;\n return types.find((x) => x.name === t?.name);\n}\n\nfunction isCompositeKind(kind: string | undefined) {\n return kind === \"OBJECT\" || kind === \"INTERFACE\" || kind === \"UNION\";\n}\n\ntype VarContext = {\n variables: Record<string, any>;\n declarations: string[];\n usedNames: Set<string>;\n};\n\nfunction allocateVarName(ctx: VarContext, baseName: string): string {\n if (!ctx.usedNames.has(baseName)) {\n ctx.usedNames.add(baseName);\n return baseName;\n }\n let i = 1;\n while (ctx.usedNames.has(`${baseName}${i}`)) i++;\n const name = `${baseName}${i}`;\n ctx.usedNames.add(name);\n return name;\n}\n\nexport const argsKey = \"__args\";\n\nfunction makeOperation({\n operationVerb,\n queryName,\n schema,\n input,\n autoIncludeIdField,\n}: {\n operationVerb: \"query\" | \"subscription\" | \"mutation\";\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n autoIncludeIdField?: string;\n}) {\n const otwQueryName = `${capitalize(queryName)}${capitalize(operationVerb)}`;\n const field = schema.__schema.types\n .filter((t) => t.kind === \"OBJECT\")\n .find((t) => t.name === schema.__schema[`${operationVerb}Type`]!.name)!\n .fields.find((f) => f.name === queryName)!;\n const types = schema.__schema.types;\n\n const varCtx: VarContext = {\n variables: {},\n declarations: [],\n usedNames: new Set(),\n };\n\n const returnTypeIsComposite = isCompositeKind(\n unwrapNamedType(field.type, types)?.kind,\n );\n\n const selectionString =\n input && returnTypeIsComposite\n ? stringifySelection({\n parentTypeName: unwrapNamedType(field.type, types)!.name,\n selection: input,\n types,\n autoIncludeIdField,\n varCtx,\n })\n : \"\";\n\n const argumentString = input?.[argsKey]\n ? serializeArguments({\n args: input[argsKey],\n fieldArgs: field.args,\n types,\n varCtx,\n })\n : \"\";\n\n const varDecl = varCtx.declarations.length\n ? `(${varCtx.declarations.join(\", \")})`\n : \"\";\n\n return {\n operationString: `${operationVerb} ${otwQueryName}${varDecl} { ${queryName}${argumentString} ${selectionString}}`,\n variables: varCtx.variables,\n };\n}\n\nexport function makeGraphQLQueryRequest({\n queryName,\n schema,\n input,\n client,\n enableSubscription = false,\n forceReactivity,\n autoIncludeIdField,\n}: {\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n client: Client;\n enableSubscription?: boolean;\n forceReactivity?: boolean;\n autoIncludeIdField?: string;\n}) {\n let currentData: any;\n const dataProxy = lazy(\n () =>\n new Proxy(currentData, {\n get(_target, prop, receiver) {\n svelteSubscriber();\n const val = Reflect.get(currentData, prop, receiver);\n if (typeof val === \"function\") {\n return val.bind(currentData);\n }\n return val;\n },\n }),\n );\n\n let svelteSubscriber: () => void = () => {};\n\n const { operationString, variables } = makeOperation({\n operationVerb: \"query\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observableSources: Source<any>[] = [\n client.query(operationString, variables),\n // client.read\n ];\n if (enableSubscription) {\n const { operationString: subOpString, variables: subVars } = makeOperation({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n observableSources.push(client.subscription(subOpString, subVars));\n }\n const observable = toObservable(\n pipe(\n merge(observableSources),\n share,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[queryName];\n if (typeof data === \"object\" && data !== null) {\n currentData = data;\n return dataProxy();\n }\n return data;\n }),\n ),\n );\n\n const subscriberReady = svelteReactivityReady.then(() => {\n svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((_d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\n });\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.query(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n const data = v.data?.[queryName];\n if (typeof data !== \"object\" || data === null) {\n resolve(data);\n return;\n }\n if (typeof forceReactivity === \"boolean\" && forceReactivity) {\n subscriberReady.then(() => resolve(observable));\n return;\n }\n\n currentData = data;\n observableSources.push(fromValue(data));\n\n subscriberReady.then(() => {\n try {\n const r = dataProxy();\n Object.assign(r, observable);\n resolve(r);\n } catch (err) {\n reject(err);\n }\n });\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLMutationRequest({\n mutationName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n mutationName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"mutation\",\n queryName: mutationName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observable = toObservable(\n pipe(\n pipe(client.mutation(operationString, variables) as any, share),\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[mutationName];\n return data;\n }),\n ),\n );\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.mutation(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n resolve(v.data?.[mutationName]);\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLSubscriptionRequest({\n subscriptionName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n subscriptionName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"subscription\",\n queryName: subscriptionName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n return pipe(\n client.subscription(operationString, variables) as any,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n return v.data?.[subscriptionName];\n }),\n toObservable,\n ) as any;\n}\n\nfunction stringifySelection({\n parentTypeName,\n selection,\n types,\n autoIncludeIdField,\n varCtx,\n}: {\n selection: Record<string, any>;\n parentTypeName: string;\n types: readonly IntrospectionType[];\n autoIncludeIdField?: string;\n varCtx: VarContext;\n}) {\n if (\n autoIncludeIdField &&\n typeof selection[autoIncludeIdField] === \"undefined\"\n ) {\n selection[autoIncludeIdField] = true;\n }\n\n const parentType = types.find((t) => t.name === parentTypeName);\n\n const ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n const subField =\n parentType && \"fields\" in parentType\n ? parentType.fields.find((f) => f.name === key)\n : undefined;\n\n let argsString = \"\";\n if (value[argsKey] && subField) {\n argsString = serializeArguments({\n args: value[argsKey],\n types,\n fieldArgs: subField.args,\n varCtx,\n });\n }\n\n const subNamedType = subField\n ? unwrapNamedType(subField.type, types)\n : undefined;\n\n if (isCompositeKind(subNamedType?.kind)) {\n acc += `${key}${argsString} ${stringifySelection({\n parentTypeName: subNamedType!.name,\n selection: value,\n types,\n varCtx,\n })}\n`;\n } else {\n acc += `${key}${argsString}\n`;\n }\n } else {\n if (typeof value === \"boolean\" && value) {\n acc += `${key}\n`;\n }\n }\n return acc;\n }, \"\");\n\n return `{\n${ret} }`;\n}\n\nfunction serializeArguments({\n args,\n fieldArgs,\n types,\n varCtx,\n}: {\n args: Record<any, any>;\n fieldArgs: readonly IntrospectionInputValue[];\n types: readonly IntrospectionType[];\n varCtx: VarContext;\n}) {\n const entries = Object.entries(args);\n\n if (entries.length > 0) {\n return `(${entries\n .map(([key, value]) => {\n const gqlArg = fieldArgs.find((a) => a.name === key);\n\n if (!gqlArg) {\n throw new Error(\n `Argument ${key} not found in field args list ${JSON.stringify(fieldArgs.map((a) => a.name))}`,\n );\n }\n\n const varName = allocateVarName(varCtx, key);\n varCtx.declarations.push(`$${varName}: ${typeToString(gqlArg.type)}`);\n varCtx.variables[varName] = serializeArgValue({\n arg: value,\n gqlArg,\n types,\n });\n\n return `${key}: $${varName}`;\n })\n .join(\", \")})`;\n }\n\n return \"\";\n}\n\nfunction serializeArgValue({\n arg,\n gqlArg,\n types,\n}: {\n arg: any;\n gqlArg: IntrospectionInputValue;\n types: readonly IntrospectionType[];\n}): any {\n if (arg === null) {\n return null;\n }\n\n if (Array.isArray(arg)) {\n return arg.map((v) => {\n return serializeArgValue({\n arg: v,\n types,\n gqlArg,\n });\n });\n }\n\n const argtype = typeof arg;\n\n if (argtype === \"object\" && !(arg instanceof Date)) {\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n if (type.kind === \"LIST\") {\n type = type.ofType;\n }\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n // if (type.kind !== \"INPUT_OBJECT\") {\n // throw new Error(\"Expected an INPUT_OBJECT type\");\n // }\n\n const referenceInputObject = types.find(\n (t) => t.name === (type as any).name,\n );\n\n if (!referenceInputObject) {\n throw new Error(\n `Expected an INPUT_OBJECT hit in name based lookup for name ${(type as any).name} with arg ${JSON.stringify(arg)}`,\n );\n }\n\n if (referenceInputObject.kind !== \"INPUT_OBJECT\") {\n throw new Error(\"Expected an INPUT_OBJECT hit in named based lookup\");\n }\n\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(arg)) {\n const subArgType = referenceInputObject.inputFields.find(\n (t) => t.name === key,\n );\n\n if (!subArgType) {\n throw new Error(\n `Expected an INPUT_OBJECT hit in named based lookup for name ${key} with arg ${referenceInputObject.inputFields.map((f) => f.name).join(\", \")}`,\n );\n }\n\n result[key] = serializeArgValue({\n arg: value,\n types,\n gqlArg: subArgType,\n });\n }\n return result;\n }\n\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n if (arg instanceof Date) {\n const name = (type as any).name;\n let value: string;\n switch (name) {\n case \"Date\":\n value = DateResolver.serialize(arg);\n break;\n case \"DateTime\":\n value = DateTimeISOResolver.serialize(arg);\n break;\n default:\n throw new Error(\n `Unrecognized date type ${name}, expected Date or DateTime`,\n );\n }\n return value;\n }\n\n switch (typeof arg) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n return arg;\n case \"symbol\":\n throw new Error(\"Cannot stringify a symbol to send as gql arg\");\n case \"undefined\":\n return null;\n case \"function\":\n throw new Error(\"Cannot stringify a function to send as gql arg\");\n }\n\n throw new Error(\"Cannot stringify an unknown type\");\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeLiveQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n availableSubscriptions,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n availableSubscriptions: Set<string>;\n forceReactivity?: ForceReactivity;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: availableSubscriptions.has(prop as string),\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLMutationRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeMutation<Mutation extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLMutationRequest({\n mutationName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Mutation, false>;\n}\n","/**\n * Recursively applies a mapping function to every value in a nested structure.\n *\n * This helper will traverse arrays and plain objects (objects with `constructor === Object`)\n * and apply the provided `fn` to any value that is not an array or a plain object.\n * - Arrays are mapped to new arrays (a fresh array is returned).\n * - Plain objects are traversed and their own enumerable properties are replaced in-place.\n * - Non-plain objects (e.g. Date, Map, Set, class instances, functions) are treated as leaves\n * and passed directly to `fn`.\n * - `null` and `undefined` are passed to `fn`.\n * - Circular references are detected using a `WeakSet`. When a circular reference is encountered,\n * the original reference is returned unchanged (it is not re-traversed or re-mapped).\n *\n * Note: Because plain objects are mutated in-place, callers who need immutability should first\n * clone the object graph or pass a deep-cloned input to avoid modifying the original.\n *\n * @param input - The value to traverse and map. May be any value (primitive, array, object, etc.).\n * @param fn - A function invoked for every non-array, non-plain-object value encountered.\n * Receives the current value and should return the mapped value.\n * @returns The transformed structure: arrays are returned as new arrays, plain objects are the\n * same object instances with their property values replaced, and other values are the\n * result of `fn`.\n *\n * @example\n * // Map all primitive values to their string representation:\n * // const result = mapValuesDeep({ a: 1, b: [2, { c: 3 }] }, v => String(v));\n * // result => { a: \"1\", b: [\"2\", { c: \"3\" }] }\n *\n * @remarks\n * - Only plain objects (constructed by `Object`) are recursively traversed. This avoids\n * unintentionally iterating internal structure of class instances or built-in collections.\n * - Circular structures are preserved by returning the original reference when detected.\n */\nexport function mapValuesDeep(input: any, fn: (value: any) => any) {\n const seen = new WeakSet();\n\n const recurse = (value: any): any => {\n if (Array.isArray(value)) {\n return value.map(recurse);\n }\n\n if (\n value !== null &&\n value !== undefined &&\n typeof value === \"object\" &&\n value.constructor === Object\n ) {\n if (seen.has(value)) return value;\n seen.add(value);\n for (const key of Object.keys(value)) {\n value[key] = recurse(value[key]);\n }\n return value;\n }\n\n return fn(value);\n };\n\n return recurse(input);\n}\n","import type { Exchange } from \"@urql/core\";\nimport { map, pipe } from \"wonka\";\nimport { mapValuesDeep } from \"../helpers/deepMap\";\n\nconst dateIsoRegex =\n /^\\d{4}-\\d{2}-\\d{2}(?:[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport const nativeDateExchange: Exchange = ({ client: _client, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$ as any,\n map((r: any) => {\n r.data = mapValuesDeep(r.data, (value) => {\n if (typeof value !== \"string\" || !dateIsoRegex.test(value)) {\n return value;\n }\n\n const date = Date.parse(value);\n if (!Number.isNaN(date)) {\n return new Date(date);\n }\n\n return value;\n });\n return r;\n }),\n ) as any;\n };\n};\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n forceReactivity?: ForceReactivity;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input?: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: false,\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { argsKey, makeGraphQLSubscriptionRequest } from \"./request\";\nimport type {\n ApplySelection,\n ObjectFieldSelection,\n Subscribeable,\n} from \"./types\";\nimport type { UnArray } from \"./utilTypes\";\n\nexport function makeSubscription<Subscription extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLSubscriptionRequest({\n subscriptionName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as SubscriptionObject<Subscription>;\n}\n\n// TODO use the query util types\n\nexport type SubscriptionObject<Q> = {\n [Key in keyof Q]: QueryableObjectField<Q[Key]>;\n};\n\ntype QueryableObjectField<T> = T extends (\n p: infer QueryArgs,\n) => infer QueryResponse\n ? <\n Selected extends QueryArgs extends Record<string, any>\n ? ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>> & {\n [argsKey]: QueryArgs;\n }\n : ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>>,\n >(\n s: Selected,\n ) => QueryResponse extends null\n ? Subscribeable<\n NonNullable<QueryResponse> extends Array<any>\n ? ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>[]\n : ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>\n > | null\n : Subscribeable<\n QueryResponse extends Array<any>\n ? ApplySelection<UnArray<QueryResponse>, Selected>[]\n : ApplySelection<UnArray<QueryResponse>, Selected>\n >\n : Subscribeable<T>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"client.mjs","names":["merge"],"sources":["../lib/client/request.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/helpers/deepMap.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"sourcesContent":["import type { Client } from \"@urql/core\";\nimport { capitalize } from \"es-toolkit\";\nimport type {\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\n\n// since svelte is optional, dub this in case the import is not available, but if it is, use the real one\nlet createSubscriber: typeof import(\"svelte/reactivity\").createSubscriber =\n () => () => {};\n\nconst svelteReactivityReady: Promise<void> = import(\"svelte/reactivity\")\n .then((m) => {\n createSubscriber = m.createSubscriber;\n })\n .catch(() => {});\n\nimport {\n fromValue,\n map,\n merge,\n pipe,\n type Source,\n share,\n subscribe,\n take,\n toObservable,\n} from \"wonka\";\nimport { lazy } from \"../helpers/lazy\";\n\n// TODO: this could use some refactoring and less type check disable (remove uses of any)\n// TODO: the client needs tests\n\nfunction typeToString(type: any): string {\n if (type.kind === \"NON_NULL\") return `${typeToString(type.ofType)}!`;\n if (type.kind === \"LIST\") return `[${typeToString(type.ofType)}]`;\n return type.name;\n}\n\nfunction unwrapNamedType(\n typeRef: any,\n types: readonly IntrospectionType[],\n): IntrospectionType | undefined {\n let t = typeRef;\n while (t && (t.kind === \"NON_NULL\" || t.kind === \"LIST\")) t = t.ofType;\n return types.find((x) => x.name === t?.name);\n}\n\nfunction isCompositeKind(kind: string | undefined) {\n return kind === \"OBJECT\" || kind === \"INTERFACE\" || kind === \"UNION\";\n}\n\ntype VarContext = {\n variables: Record<string, any>;\n declarations: string[];\n usedNames: Set<string>;\n};\n\nfunction allocateVarName(ctx: VarContext, baseName: string): string {\n if (!ctx.usedNames.has(baseName)) {\n ctx.usedNames.add(baseName);\n return baseName;\n }\n let i = 1;\n while (ctx.usedNames.has(`${baseName}${i}`)) i++;\n const name = `${baseName}${i}`;\n ctx.usedNames.add(name);\n return name;\n}\n\nexport const argsKey = \"__args\";\n\nfunction makeOperation({\n operationVerb,\n queryName,\n schema,\n input,\n autoIncludeIdField,\n}: {\n operationVerb: \"query\" | \"subscription\" | \"mutation\";\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n autoIncludeIdField?: string;\n}) {\n const otwQueryName = `${capitalize(queryName)}${capitalize(operationVerb)}`;\n const field = schema.__schema.types\n .filter((t) => t.kind === \"OBJECT\")\n .find((t) => t.name === schema.__schema[`${operationVerb}Type`]!.name)!\n .fields.find((f) => f.name === queryName)!;\n const types = schema.__schema.types;\n\n const varCtx: VarContext = {\n variables: {},\n declarations: [],\n usedNames: new Set(),\n };\n\n const returnTypeIsComposite = isCompositeKind(\n unwrapNamedType(field.type, types)?.kind,\n );\n\n const selectionString =\n input && returnTypeIsComposite\n ? stringifySelection({\n parentTypeName: unwrapNamedType(field.type, types)!.name,\n selection: input,\n types,\n autoIncludeIdField,\n varCtx,\n })\n : \"\";\n\n const argumentString = input?.[argsKey]\n ? serializeArguments({\n args: input[argsKey],\n fieldArgs: field.args,\n types,\n varCtx,\n })\n : \"\";\n\n const varDecl = varCtx.declarations.length\n ? `(${varCtx.declarations.join(\", \")})`\n : \"\";\n\n return {\n operationString: `${operationVerb} ${otwQueryName}${varDecl} { ${queryName}${argumentString} ${selectionString}}`,\n variables: varCtx.variables,\n };\n}\n\nexport function makeGraphQLQueryRequest({\n queryName,\n schema,\n input,\n client,\n enableSubscription = false,\n forceReactivity,\n autoIncludeIdField,\n}: {\n queryName: string;\n schema: IntrospectionQuery;\n input?: Record<string, any>;\n client: Client;\n enableSubscription?: boolean;\n forceReactivity?: boolean;\n autoIncludeIdField?: string;\n}) {\n let currentData: any;\n const dataProxy = lazy(\n () =>\n new Proxy(currentData, {\n get(_target, prop, receiver) {\n svelteSubscriber();\n const val = Reflect.get(currentData, prop, receiver);\n if (typeof val === \"function\") {\n return val.bind(currentData);\n }\n return val;\n },\n }),\n );\n\n let svelteSubscriber: () => void = () => {};\n\n const { operationString, variables } = makeOperation({\n operationVerb: \"query\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observableSources: Source<any>[] = [\n client.query(operationString, variables),\n // client.read\n ];\n if (enableSubscription) {\n const { operationString: subOpString, variables: subVars } = makeOperation({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n observableSources.push(client.subscription(subOpString, subVars));\n }\n const observable = toObservable(\n pipe(\n merge(observableSources),\n share,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[queryName];\n if (typeof data === \"object\" && data !== null) {\n currentData = data;\n return dataProxy();\n }\n return data;\n }),\n ),\n );\n\n const subscriberReady = svelteReactivityReady.then(() => {\n svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((_d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\n });\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.query(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n const data = v.data?.[queryName];\n if (typeof data !== \"object\" || data === null) {\n resolve(data);\n return;\n }\n if (typeof forceReactivity === \"boolean\" && forceReactivity) {\n subscriberReady.then(() => resolve(observable));\n return;\n }\n\n currentData = data;\n observableSources.push(fromValue(data));\n\n subscriberReady.then(() => {\n try {\n const r = dataProxy();\n Object.assign(r, observable);\n resolve(r);\n } catch (err) {\n reject(err);\n }\n });\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLMutationRequest({\n mutationName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n mutationName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"mutation\",\n queryName: mutationName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n const observable = toObservable(\n pipe(\n pipe(client.mutation(operationString, variables) as any, share),\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[mutationName];\n return data;\n }),\n ),\n );\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.mutation(operationString, variables) as any,\n take(1),\n subscribe((v: any) => {\n if (v.error) {\n reject(v.error);\n return;\n }\n\n resolve(v.data?.[mutationName]);\n }),\n );\n });\n\n Object.assign(promise, observable);\n return promise;\n}\n\nexport function makeGraphQLSubscriptionRequest({\n subscriptionName,\n input,\n client,\n schema,\n autoIncludeIdField,\n}: {\n subscriptionName: string;\n input: Record<string, any>;\n client: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n const { operationString, variables } = makeOperation({\n operationVerb: \"subscription\",\n queryName: subscriptionName,\n input,\n schema,\n autoIncludeIdField,\n });\n\n return pipe(\n client.subscription(operationString, variables) as any,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n return v.data?.[subscriptionName];\n }),\n toObservable,\n ) as any;\n}\n\nfunction stringifySelection({\n parentTypeName,\n selection,\n types,\n autoIncludeIdField,\n varCtx,\n}: {\n selection: Record<string, any>;\n parentTypeName: string;\n types: readonly IntrospectionType[];\n autoIncludeIdField?: string;\n varCtx: VarContext;\n}) {\n if (\n autoIncludeIdField &&\n typeof selection[autoIncludeIdField] === \"undefined\"\n ) {\n selection[autoIncludeIdField] = true;\n }\n\n const parentType = types.find((t) => t.name === parentTypeName);\n\n const ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n const subField =\n parentType && \"fields\" in parentType\n ? parentType.fields.find((f) => f.name === key)\n : undefined;\n\n let argsString = \"\";\n if (value[argsKey] && subField) {\n argsString = serializeArguments({\n args: value[argsKey],\n types,\n fieldArgs: subField.args,\n varCtx,\n });\n }\n\n const subNamedType = subField\n ? unwrapNamedType(subField.type, types)\n : undefined;\n\n if (isCompositeKind(subNamedType?.kind)) {\n acc += `${key}${argsString} ${stringifySelection({\n parentTypeName: subNamedType!.name,\n selection: value,\n types,\n varCtx,\n })}\n`;\n } else {\n acc += `${key}${argsString}\n`;\n }\n } else {\n if (typeof value === \"boolean\" && value) {\n acc += `${key}\n`;\n }\n }\n return acc;\n }, \"\");\n\n return `{\n${ret} }`;\n}\n\nfunction serializeArguments({\n args,\n fieldArgs,\n types,\n varCtx,\n}: {\n args: Record<any, any>;\n fieldArgs: readonly IntrospectionInputValue[];\n types: readonly IntrospectionType[];\n varCtx: VarContext;\n}) {\n const entries = Object.entries(args);\n\n if (entries.length > 0) {\n return `(${entries\n .map(([key, value]) => {\n const gqlArg = fieldArgs.find((a) => a.name === key);\n\n if (!gqlArg) {\n throw new Error(\n `Argument ${key} not found in field args list ${JSON.stringify(fieldArgs.map((a) => a.name))}`,\n );\n }\n\n const varName = allocateVarName(varCtx, key);\n varCtx.declarations.push(`$${varName}: ${typeToString(gqlArg.type)}`);\n varCtx.variables[varName] = serializeArgValue({\n arg: value,\n gqlArg,\n types,\n });\n\n return `${key}: $${varName}`;\n })\n .join(\", \")})`;\n }\n\n return \"\";\n}\n\nfunction serializeArgValue({\n arg,\n gqlArg,\n types,\n}: {\n arg: any;\n gqlArg: IntrospectionInputValue;\n types: readonly IntrospectionType[];\n}): any {\n if (arg === null) {\n return null;\n }\n\n if (Array.isArray(arg)) {\n return arg.map((v) => {\n return serializeArgValue({\n arg: v,\n types,\n gqlArg,\n });\n });\n }\n\n const argtype = typeof arg;\n\n if (argtype === \"object\" && !(arg instanceof Date)) {\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n if (type.kind === \"LIST\") {\n type = type.ofType;\n }\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n const referenceInputObject = types.find(\n (t) => t.name === (type as any).name,\n );\n\n if (referenceInputObject?.kind !== \"INPUT_OBJECT\") {\n return arg;\n }\n\n const result: Record<string, any> = {};\n for (const [key, value] of Object.entries(arg)) {\n const subArgType = referenceInputObject.inputFields.find(\n (t) => t.name === key,\n );\n\n if (!subArgType) {\n throw new Error(\n `Expected an INPUT_OBJECT hit in named based lookup for name ${key} with arg ${referenceInputObject.inputFields.map((f) => f.name).join(\", \")}`,\n );\n }\n\n result[key] = serializeArgValue({\n arg: value,\n types,\n gqlArg: subArgType,\n });\n }\n return result;\n }\n\n let type = gqlArg.type;\n\n if (type.kind === \"NON_NULL\") {\n type = type.ofType;\n }\n\n if (arg instanceof Date) {\n const name = (type as any).name;\n let value: string;\n switch (name) {\n case \"Date\":\n value = DateResolver.serialize(arg);\n break;\n case \"DateTime\":\n value = DateTimeISOResolver.serialize(arg);\n break;\n default:\n throw new Error(\n `Unrecognized date type ${name}, expected Date or DateTime`,\n );\n }\n return value;\n }\n\n switch (typeof arg) {\n case \"string\":\n case \"number\":\n case \"bigint\":\n case \"boolean\":\n return arg;\n case \"symbol\":\n throw new Error(\"Cannot stringify a symbol to send as gql arg\");\n case \"undefined\":\n return null;\n case \"function\":\n throw new Error(\"Cannot stringify a function to send as gql arg\");\n }\n\n throw new Error(\"Cannot stringify an unknown type\");\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeLiveQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n availableSubscriptions,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n availableSubscriptions: Set<string>;\n forceReactivity?: ForceReactivity;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: availableSubscriptions.has(prop as string),\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLMutationRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeMutation<Mutation extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLMutationRequest({\n mutationName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Mutation, false>;\n}\n","/**\n * Recursively applies a mapping function to every value in a nested structure.\n *\n * This helper will traverse arrays and plain objects (objects with `constructor === Object`)\n * and apply the provided `fn` to any value that is not an array or a plain object.\n * - Arrays are mapped to new arrays (a fresh array is returned).\n * - Plain objects are traversed and their own enumerable properties are replaced in-place.\n * - Non-plain objects (e.g. Date, Map, Set, class instances, functions) are treated as leaves\n * and passed directly to `fn`.\n * - `null` and `undefined` are passed to `fn`.\n * - Circular references are detected using a `WeakSet`. When a circular reference is encountered,\n * the original reference is returned unchanged (it is not re-traversed or re-mapped).\n *\n * Note: Because plain objects are mutated in-place, callers who need immutability should first\n * clone the object graph or pass a deep-cloned input to avoid modifying the original.\n *\n * @param input - The value to traverse and map. May be any value (primitive, array, object, etc.).\n * @param fn - A function invoked for every non-array, non-plain-object value encountered.\n * Receives the current value and should return the mapped value.\n * @returns The transformed structure: arrays are returned as new arrays, plain objects are the\n * same object instances with their property values replaced, and other values are the\n * result of `fn`.\n *\n * @example\n * // Map all primitive values to their string representation:\n * // const result = mapValuesDeep({ a: 1, b: [2, { c: 3 }] }, v => String(v));\n * // result => { a: \"1\", b: [\"2\", { c: \"3\" }] }\n *\n * @remarks\n * - Only plain objects (constructed by `Object`) are recursively traversed. This avoids\n * unintentionally iterating internal structure of class instances or built-in collections.\n * - Circular structures are preserved by returning the original reference when detected.\n */\nexport function mapValuesDeep(input: any, fn: (value: any) => any) {\n const seen = new WeakSet();\n\n const recurse = (value: any): any => {\n if (Array.isArray(value)) {\n return value.map(recurse);\n }\n\n if (\n value !== null &&\n value !== undefined &&\n typeof value === \"object\" &&\n value.constructor === Object\n ) {\n if (seen.has(value)) return value;\n seen.add(value);\n for (const key of Object.keys(value)) {\n value[key] = recurse(value[key]);\n }\n return value;\n }\n\n return fn(value);\n };\n\n return recurse(input);\n}\n","import type { Exchange } from \"@urql/core\";\nimport { map, pipe } from \"wonka\";\nimport { mapValuesDeep } from \"../helpers/deepMap\";\n\nconst dateIsoRegex =\n /^\\d{4}-\\d{2}-\\d{2}(?:[Tt ]\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?(?:[Zz]|[+-]\\d{2}:\\d{2})?)?$/;\n\nexport const nativeDateExchange: Exchange = ({ client: _client, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$ as any,\n map((r: any) => {\n r.data = mapValuesDeep(r.data, (value) => {\n if (typeof value !== \"string\" || !dateIsoRegex.test(value)) {\n return value;\n }\n\n const date = Date.parse(value);\n if (!Number.isNaN(date)) {\n return new Date(date);\n }\n\n return value;\n });\n return r;\n }),\n ) as any;\n };\n};\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { makeGraphQLQueryRequest } from \"./request\";\nimport type { QueryableObjectFromGeneratedTypes } from \"./types\";\n\nexport function makeQuery<\n Query extends Record<string, any>,\n ForceReactivity extends boolean = false,\n>({\n urqlClient,\n forceReactivity,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n forceReactivity?: ForceReactivity;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input?: Record<string, any>) => {\n return makeGraphQLQueryRequest({\n queryName: prop as string,\n input,\n client: urqlClient,\n enableSubscription: false,\n forceReactivity,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as QueryableObjectFromGeneratedTypes<Query, ForceReactivity>;\n}\n","import type { Client } from \"@urql/core\";\nimport type { IntrospectionQuery } from \"graphql\";\nimport { argsKey, makeGraphQLSubscriptionRequest } from \"./request\";\nimport type {\n ApplySelection,\n ObjectFieldSelection,\n Subscribeable,\n} from \"./types\";\nimport type { UnArray } from \"./utilTypes\";\n\nexport function makeSubscription<Subscription extends Record<string, any>>({\n urqlClient,\n schema,\n autoIncludeIdField,\n}: {\n urqlClient: Client;\n schema: IntrospectionQuery;\n autoIncludeIdField?: string;\n}) {\n return new Proxy(\n {},\n {\n get: (_target, prop) => {\n return (input: Record<string, any>) => {\n return makeGraphQLSubscriptionRequest({\n subscriptionName: prop as string,\n input,\n client: urqlClient,\n schema,\n autoIncludeIdField,\n });\n };\n },\n },\n ) as SubscriptionObject<Subscription>;\n}\n\n// TODO use the query util types\n\nexport type SubscriptionObject<Q> = {\n [Key in keyof Q]: QueryableObjectField<Q[Key]>;\n};\n\ntype QueryableObjectField<T> = T extends (\n p: infer QueryArgs,\n) => infer QueryResponse\n ? <\n Selected extends QueryArgs extends Record<string, any>\n ? ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>> & {\n [argsKey]: QueryArgs;\n }\n : ObjectFieldSelection<UnArray<NonNullable<QueryResponse>>>,\n >(\n s: Selected,\n ) => QueryResponse extends null\n ? Subscribeable<\n NonNullable<QueryResponse> extends Array<any>\n ? ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>[]\n : ApplySelection<UnArray<NonNullable<QueryResponse>>, Selected>\n > | null\n : Subscribeable<\n QueryResponse extends Array<any>\n ? ApplySelection<UnArray<QueryResponse>, Selected>[]\n : ApplySelection<UnArray<QueryResponse>, Selected>\n >\n : Subscribeable<T>;\n"],"mappings":"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"}
package/out/index.cjs CHANGED
@@ -51,7 +51,7 @@ _pothos_plugin_validation = __toESM(_pothos_plugin_validation, 1);
51
51
  let graphql_scalars = require("graphql-scalars");
52
52
  let dataloader = require("dataloader");
53
53
  dataloader = __toESM(dataloader, 1);
54
- let lib_address = require("lib-address");
54
+ let node_module = require("node:module");
55
55
  let zod = require("zod");
56
56
  let libphonenumber_js = require("libphonenumber-js");
57
57
  //#region lib/types/rumbleError.ts
@@ -216,7 +216,7 @@ function mapNullFieldsToUndefined(obj) {
216
216
  }
217
217
  //#endregion
218
218
  //#region package.json
219
- var version = "0.23.22";
219
+ var version = "0.23.24";
220
220
  //#endregion
221
221
  //#region lib/helpers/errorLogging.ts
222
222
  function hasMessage(error) {
@@ -2642,6 +2642,9 @@ function registerRuntimeFiltersPlugin() {
2642
2642
  }
2643
2643
  //#endregion
2644
2644
  //#region lib/scalars/addressValidation.ts
2645
+ const libAddress = (0, node_module.createRequire)(require("url").pathToFileURL(__filename).href)("lib-address");
2646
+ const { AddressValidationError, CountryMissingError, InvalidStateError, InvalidZipError, isValidCountryCode, MissingFieldError } = libAddress;
2647
+ const validateAddress = libAddress.validateAddress;
2645
2648
  const FIELD_PATH_MAP = {
2646
2649
  addressLine1: "streetAddress",
2647
2650
  addressLine2: "streetAddress",
@@ -2687,7 +2690,7 @@ const addressValidationSchema = zod.z.object({
2687
2690
  });
2688
2691
  return;
2689
2692
  }
2690
- if (!(0, lib_address.isValidCountryCode)(address.countryCode)) {
2693
+ if (!isValidCountryCode(address.countryCode)) {
2691
2694
  ctx.addIssue({
2692
2695
  code: "custom",
2693
2696
  path: ["countryCode"],
@@ -2697,7 +2700,7 @@ const addressValidationSchema = zod.z.object({
2697
2700
  }
2698
2701
  const [addressLine1, addressLine2, addressLine3] = address.streetAddress ? address.streetAddress.split("\n") : [];
2699
2702
  try {
2700
- (0, lib_address.validateAddress)({
2703
+ validateAddress({
2701
2704
  country: address.countryCode,
2702
2705
  addressLine1,
2703
2706
  addressLine2,
@@ -2707,7 +2710,7 @@ const addressValidationSchema = zod.z.object({
2707
2710
  zip: address.postalCode ?? void 0
2708
2711
  });
2709
2712
  } catch (error) {
2710
- if (error instanceof lib_address.CountryMissingError) {
2713
+ if (error instanceof CountryMissingError) {
2711
2714
  ctx.addIssue({
2712
2715
  code: "custom",
2713
2716
  path: ["countryCode"],
@@ -2715,8 +2718,8 @@ const addressValidationSchema = zod.z.object({
2715
2718
  });
2716
2719
  return;
2717
2720
  }
2718
- if (!(error instanceof lib_address.AddressValidationError)) throw error;
2719
- for (const subError of error.errors) if (subError instanceof lib_address.MissingFieldError) {
2721
+ if (!(error instanceof AddressValidationError)) throw error;
2722
+ for (const subError of error.errors) if (subError instanceof MissingFieldError) {
2720
2723
  const path = FIELD_PATH_MAP[subError.field];
2721
2724
  if (!path) continue;
2722
2725
  ctx.addIssue({
@@ -2724,12 +2727,12 @@ const addressValidationSchema = zod.z.object({
2724
2727
  path: [path],
2725
2728
  message: `${path} is required for country ${address.countryCode}.`
2726
2729
  });
2727
- } else if (subError instanceof lib_address.InvalidZipError) ctx.addIssue({
2730
+ } else if (subError instanceof InvalidZipError) ctx.addIssue({
2728
2731
  code: "custom",
2729
2732
  path: ["postalCode"],
2730
2733
  message: `Invalid postal code for country ${address.countryCode}.`
2731
2734
  });
2732
- else if (subError instanceof lib_address.InvalidStateError) ctx.addIssue({
2735
+ else if (subError instanceof InvalidStateError) ctx.addIssue({
2733
2736
  code: "custom",
2734
2737
  path: ["region"],
2735
2738
  message: `Invalid region for country ${address.countryCode}.`