@m1212e/rumble 0.16.40 → 0.16.41

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
@@ -3,25 +3,53 @@ const require_lazy = require("./lazy-DT--QoPa.cjs");
3
3
  require("./index.cjs");
4
4
  let es_toolkit = require("es-toolkit");
5
5
  let graphql_scalars = require("graphql-scalars");
6
+ require("@urql/core");
6
7
  let svelte_reactivity = require("svelte/reactivity");
7
8
  let wonka = require("wonka");
8
9
  //#region lib/client/request.ts
10
+ function typeToString(type) {
11
+ if (type.kind === "NON_NULL") return `${typeToString(type.ofType)}!`;
12
+ if (type.kind === "LIST") return `[${typeToString(type.ofType)}]`;
13
+ return type.name;
14
+ }
15
+ function allocateVarName(ctx, baseName) {
16
+ if (!ctx.usedNames.has(baseName)) {
17
+ ctx.usedNames.add(baseName);
18
+ return baseName;
19
+ }
20
+ let i = 1;
21
+ while (ctx.usedNames.has(`${baseName}${i}`)) i++;
22
+ const name = `${baseName}${i}`;
23
+ ctx.usedNames.add(name);
24
+ return name;
25
+ }
9
26
  const argsKey = "__args";
10
- function makeOperationString({ operationVerb, queryName, schema, input, autoIncludeIdField }) {
27
+ function makeOperation({ operationVerb, queryName, schema, input, autoIncludeIdField }) {
11
28
  const otwQueryName = `${(0, es_toolkit.capitalize)(queryName)}${(0, es_toolkit.capitalize)(operationVerb)}`;
12
29
  const field = schema.__schema.types.filter((t) => t.kind === "OBJECT").find((t) => t.name === schema.__schema[`${operationVerb}Type`].name).fields.find((f) => f.name === queryName);
13
30
  const types = schema.__schema.types;
31
+ const varCtx = {
32
+ variables: {},
33
+ declarations: [],
34
+ usedNames: /* @__PURE__ */ new Set()
35
+ };
14
36
  const selectionString = input ? stringifySelection({
15
37
  field,
16
38
  selection: input,
17
39
  types,
18
- autoIncludeIdField
40
+ autoIncludeIdField,
41
+ varCtx
19
42
  }) : "";
20
- return `${operationVerb} ${otwQueryName} { ${queryName}${input?.["__args"] ? stringifyArgumentObjectToGraphql({
43
+ const argumentString = input?.["__args"] ? serializeArguments({
21
44
  args: input[argsKey],
22
45
  fieldArgs: field.args,
23
- types
24
- }) : ""} ${selectionString}}`;
46
+ types,
47
+ varCtx
48
+ }) : "";
49
+ return {
50
+ operationString: `${operationVerb} ${otwQueryName}${varCtx.declarations.length ? `(${varCtx.declarations.join(", ")})` : ""} { ${queryName}${argumentString} ${selectionString}}`,
51
+ variables: varCtx.variables
52
+ };
25
53
  }
26
54
  function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubscription = false, forceReactivity, autoIncludeIdField }) {
27
55
  let currentData;
@@ -37,34 +65,40 @@ function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubsc
37
65
  });
38
66
  return () => unsub.unsubscribe();
39
67
  });
40
- const sharedSource = (0, wonka.pipe)((0, wonka.merge)([client.query(makeOperationString({
68
+ const { operationString, variables } = makeOperation({
41
69
  operationVerb: "query",
42
70
  queryName,
43
71
  input,
44
72
  schema,
45
73
  autoIncludeIdField
46
- }), {}), enableSubscription ? client.subscription(makeOperationString({
47
- operationVerb: "subscription",
48
- queryName,
49
- input,
50
- schema,
51
- autoIncludeIdField
52
- }), {}) : wonka.empty]), wonka.share);
53
- const observable = (0, wonka.toObservable)((0, wonka.pipe)(sharedSource, (0, wonka.map)((v) => {
74
+ });
75
+ const observableSources = [client.query(operationString, variables)];
76
+ if (enableSubscription) observableSources.push((() => {
77
+ const { operationString: subOpString, variables: subVars } = makeOperation({
78
+ operationVerb: "subscription",
79
+ queryName,
80
+ input,
81
+ schema,
82
+ autoIncludeIdField
83
+ });
84
+ return client.subscription(subOpString, subVars);
85
+ })());
86
+ const observable = (0, wonka.toObservable)((0, wonka.pipe)((0, wonka.merge)(observableSources), wonka.share, (0, wonka.map)((v) => {
54
87
  if (v.error) throw v.error;
55
88
  const data = v.data?.[queryName];
56
- currentData = data;
57
- if (typeof data === "object" && data !== null) return dataProxy();
89
+ if (typeof data === "object" && data !== null) {
90
+ currentData = data;
91
+ return dataProxy();
92
+ }
58
93
  return data;
59
94
  })));
60
95
  const promise = new Promise((resolve, reject) => {
61
- (0, wonka.pipe)(sharedSource, (0, wonka.take)(1), (0, wonka.subscribe)((v) => {
96
+ (0, wonka.pipe)(client.query(operationString, variables), (0, wonka.take)(1), (0, wonka.subscribe)((v) => {
62
97
  if (v.error) {
63
98
  reject(v.error);
64
99
  return;
65
100
  }
66
101
  const data = v.data?.[queryName];
67
- currentData = data;
68
102
  if (typeof data !== "object" || data === null) {
69
103
  resolve(data);
70
104
  return;
@@ -73,6 +107,8 @@ function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubsc
73
107
  resolve(observable);
74
108
  return;
75
109
  }
110
+ currentData = data;
111
+ observableSources.push((0, wonka.fromValue)(data));
76
112
  try {
77
113
  const r = dataProxy();
78
114
  Object.assign(r, observable);
@@ -86,19 +122,19 @@ function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubsc
86
122
  return promise;
87
123
  }
88
124
  function makeGraphQLMutationRequest({ mutationName, input, client, schema, autoIncludeIdField }) {
89
- const sharedSource = (0, wonka.pipe)(client.mutation(makeOperationString({
125
+ const { operationString, variables } = makeOperation({
90
126
  operationVerb: "mutation",
91
127
  queryName: mutationName,
92
128
  input,
93
129
  schema,
94
130
  autoIncludeIdField
95
- }), {}), wonka.share);
96
- const observable = (0, wonka.toObservable)((0, wonka.pipe)(sharedSource, (0, wonka.map)((v) => {
131
+ });
132
+ const observable = (0, wonka.toObservable)((0, wonka.pipe)((0, wonka.pipe)(client.mutation(operationString, variables), wonka.share), (0, wonka.map)((v) => {
97
133
  if (v.error) throw v.error;
98
134
  return v.data?.[mutationName];
99
135
  })));
100
136
  const promise = new Promise((resolve, reject) => {
101
- (0, wonka.pipe)(sharedSource, (0, wonka.take)(1), (0, wonka.subscribe)((v) => {
137
+ (0, wonka.pipe)(client.mutation(operationString, variables), (0, wonka.take)(1), (0, wonka.subscribe)((v) => {
102
138
  if (v.error) {
103
139
  reject(v.error);
104
140
  return;
@@ -110,18 +146,19 @@ function makeGraphQLMutationRequest({ mutationName, input, client, schema, autoI
110
146
  return promise;
111
147
  }
112
148
  function makeGraphQLSubscriptionRequest({ subscriptionName, input, client, schema, autoIncludeIdField }) {
113
- return (0, wonka.pipe)(client.subscription(makeOperationString({
149
+ const { operationString, variables } = makeOperation({
114
150
  operationVerb: "subscription",
115
151
  queryName: subscriptionName,
116
152
  input,
117
153
  schema,
118
154
  autoIncludeIdField
119
- }), {}), (0, wonka.map)((v) => {
155
+ });
156
+ return (0, wonka.pipe)(client.subscription(operationString, variables), (0, wonka.map)((v) => {
120
157
  if (v.error) throw v.error;
121
158
  return v.data?.[subscriptionName];
122
159
  }), wonka.toObservable);
123
160
  }
124
- function stringifySelection({ field, selection, types, autoIncludeIdField }) {
161
+ function stringifySelection({ field, selection, types, autoIncludeIdField, varCtx }) {
125
162
  if (autoIncludeIdField && typeof selection[autoIncludeIdField] === "undefined") selection[autoIncludeIdField] = true;
126
163
  return `{
127
164
  ${Object.entries(selection).filter(([key]) => key !== argsKey).reduce((acc, [key, value]) => {
@@ -133,16 +170,18 @@ ${Object.entries(selection).filter(([key]) => key !== argsKey).reduce((acc, [key
133
170
  if (type.kind === "LIST") type = type.ofType;
134
171
  if (type.kind === "NON_NULL") type = type.ofType;
135
172
  const referenceObject = types.find((t) => t.name === type.name).fields.find((f) => f.name === key);
136
- argsString = stringifyArgumentObjectToGraphql({
173
+ argsString = serializeArguments({
137
174
  args: value[argsKey],
138
175
  types,
139
- fieldArgs: referenceObject.args
176
+ fieldArgs: referenceObject.args,
177
+ varCtx
140
178
  });
141
179
  }
142
180
  acc += `${key}${argsString} ${stringifySelection({
143
181
  field,
144
182
  selection: value,
145
- types
183
+ types,
184
+ varCtx
146
185
  })}
147
186
  `;
148
187
  } else if (typeof value === "boolean" && value) acc += `${key}
@@ -150,28 +189,31 @@ ${Object.entries(selection).filter(([key]) => key !== argsKey).reduce((acc, [key
150
189
  return acc;
151
190
  }, "")} }`;
152
191
  }
153
- function stringifyArgumentObjectToGraphql({ args, fieldArgs, types }) {
192
+ function serializeArguments({ args, fieldArgs, types, varCtx }) {
154
193
  const entries = Object.entries(args);
155
194
  if (entries.length > 0) return `(${entries.map(([key, value]) => {
156
195
  const gqlArg = fieldArgs.find((a) => a.name === key);
157
196
  if (!gqlArg) throw new Error(`Argument ${key} not found in field args list ${JSON.stringify(fieldArgs.map((a) => a.name))}`);
158
- return `${key}: ${stringifyArgumentValue({
197
+ const varName = allocateVarName(varCtx, key);
198
+ varCtx.declarations.push(`$${varName}: ${typeToString(gqlArg.type)}`);
199
+ varCtx.variables[varName] = serializeArgValue({
159
200
  arg: value,
160
201
  gqlArg,
161
202
  types
162
- })}`;
203
+ });
204
+ return `${key}: $${varName}`;
163
205
  }).join(", ")})`;
164
206
  return "";
165
207
  }
166
- function stringifyArgumentValue({ arg, gqlArg, types }) {
167
- if (arg === null) return "null";
168
- if (Array.isArray(arg)) return `[${arg.map((v) => {
169
- return stringifyArgumentValue({
208
+ function serializeArgValue({ arg, gqlArg, types }) {
209
+ if (arg === null) return null;
210
+ if (Array.isArray(arg)) return arg.map((v) => {
211
+ return serializeArgValue({
170
212
  arg: v,
171
213
  types,
172
214
  gqlArg
173
215
  });
174
- }).join(", ")}]`;
216
+ });
175
217
  if (typeof arg === "object" && !(arg instanceof Date)) {
176
218
  let type = gqlArg.type;
177
219
  if (type.kind === "NON_NULL") type = type.ofType;
@@ -180,15 +222,17 @@ function stringifyArgumentValue({ arg, gqlArg, types }) {
180
222
  const referenceInputObject = types.find((t) => t.name === type.name);
181
223
  if (!referenceInputObject) throw new Error(`Expected an INPUT_OBJECT hit in name based lookup for name ${type.name} with arg ${JSON.stringify(arg)}`);
182
224
  if (referenceInputObject.kind !== "INPUT_OBJECT") throw new Error("Expected an INPUT_OBJECT hit in named based lookup");
183
- return `{ ${Object.entries(arg).map(([key, value]) => {
225
+ const result = {};
226
+ for (const [key, value] of Object.entries(arg)) {
184
227
  const subArgType = referenceInputObject.inputFields.find((t) => t.name === key);
185
228
  if (!subArgType) throw new Error(`Expected an INPUT_OBJECT hit in named based lookup for name ${key} with arg ${referenceInputObject.inputFields.map((f) => f.name).join(", ")}`);
186
- return `${key}: ${stringifyArgumentValue({
229
+ result[key] = serializeArgValue({
187
230
  arg: value,
188
231
  types,
189
232
  gqlArg: subArgType
190
- })}`;
191
- }).join(", ")} }`;
233
+ });
234
+ }
235
+ return result;
192
236
  }
193
237
  let type = gqlArg.type;
194
238
  if (type.kind === "NON_NULL") type = type.ofType;
@@ -204,15 +248,15 @@ function stringifyArgumentValue({ arg, gqlArg, types }) {
204
248
  break;
205
249
  default: throw new Error(`Unrecognized date type ${name}, expected Date or DateTime`);
206
250
  }
207
- return `"${value}"`;
251
+ return value;
208
252
  }
209
253
  switch (typeof arg) {
210
- case "string": return type.kind === "ENUM" ? arg : `"${arg}"`;
211
- case "number": return `${arg}`;
212
- case "bigint": return `${arg}`;
213
- case "boolean": return `${arg}`;
254
+ case "string":
255
+ case "number":
256
+ case "bigint":
257
+ case "boolean": return arg;
214
258
  case "symbol": throw new Error("Cannot stringify a symbol to send as gql arg");
215
- case "undefined": return "null";
259
+ case "undefined": return null;
216
260
  case "function": throw new Error("Cannot stringify a function to send as gql arg");
217
261
  }
218
262
  throw new Error("Cannot stringify an unknown type");
@@ -1 +1 @@
1
- {"version":3,"file":"client.cjs","names":["lazy","empty","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 IntrospectionField,\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\nimport { createSubscriber } from \"svelte/reactivity\";\n\nimport {\n empty,\n map,\n merge,\n pipe,\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\nexport const argsKey = \"__args\";\n\nfunction makeOperationString({\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 selectionString = input\n ? stringifySelection({ field, selection: input, types, autoIncludeIdField })\n : \"\";\n\n const argumentString = input?.[argsKey]\n ? stringifyArgumentObjectToGraphql({\n args: input[argsKey],\n fieldArgs: field.args,\n types,\n })\n : \"\";\n\n return `${operationVerb} ${otwQueryName} { ${queryName}${argumentString} ${selectionString}}`;\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 const svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\n\n const sharedSource = pipe(\n merge([\n client.query(\n makeOperationString({\n operationVerb: \"query\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n ),\n enableSubscription\n ? client.subscription(\n makeOperationString({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n )\n : empty,\n ]),\n share,\n );\n\n const observable = toObservable(\n pipe(\n sharedSource,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[queryName];\n currentData = data;\n if (typeof data === \"object\" && data !== null) {\n return dataProxy();\n }\n return data;\n }),\n ),\n );\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n sharedSource,\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 currentData = data;\n if (typeof data !== \"object\" || data === null) {\n resolve(data);\n return;\n }\n if (typeof forceReactivity === \"boolean\" && forceReactivity) {\n resolve(observable);\n return;\n }\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 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 sharedSource = pipe(\n client.mutation(\n makeOperationString({\n operationVerb: \"mutation\",\n queryName: mutationName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n ),\n share,\n );\n\n const observable = toObservable(\n pipe(\n sharedSource,\n map((v) => {\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 sharedSource,\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 return pipe(\n client.subscription(\n makeOperationString({\n operationVerb: \"subscription\",\n queryName: subscriptionName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n ),\n map((v) => {\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 field,\n selection,\n types,\n autoIncludeIdField,\n}: {\n selection: Record<string, any>;\n field: IntrospectionField;\n types: readonly IntrospectionType[];\n autoIncludeIdField?: string;\n}) {\n if (\n autoIncludeIdField &&\n typeof selection[autoIncludeIdField] === \"undefined\"\n ) {\n selection[autoIncludeIdField] = true;\n }\n\n const ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n let argsString = \"\";\n if (value[argsKey]) {\n let type = field.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 referenceObject = (types as any)\n .find((t: any) => t.name === (type as any).name)\n .fields.find((f: any) => f.name === key);\n\n argsString = stringifyArgumentObjectToGraphql({\n args: value[argsKey],\n types,\n fieldArgs: referenceObject.args,\n });\n }\n\n acc += `${key}${argsString} ${stringifySelection({\n field,\n selection: value,\n types,\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 stringifyArgumentObjectToGraphql({\n args,\n fieldArgs,\n types,\n}: {\n args: Record<any, any>;\n fieldArgs: readonly IntrospectionInputValue[];\n types: readonly IntrospectionType[];\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 return `${key}: ${stringifyArgumentValue({ arg: value, gqlArg, types })}`;\n })\n .join(\", \")})`;\n }\n\n return \"\";\n}\n\nfunction stringifyArgumentValue({\n arg,\n gqlArg,\n types,\n}: {\n arg: any;\n gqlArg: IntrospectionInputValue;\n types: readonly IntrospectionType[];\n}): string {\n if (arg === null) {\n return \"null\";\n }\n\n if (Array.isArray(arg)) {\n return `[${arg\n .map((v) => {\n return stringifyArgumentValue({\n arg: v,\n types,\n gqlArg,\n });\n })\n .join(\", \")}]`;\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 return `{ ${Object.entries(arg)\n .map(([key, value]) => {\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 return `${key}: ${stringifyArgumentValue({ arg: value, types, gqlArg: subArgType })}`;\n })\n .join(\", \")} }`;\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 return type.kind === \"ENUM\" ? arg : `\"${arg}\"`;\n case \"number\":\n return `${arg}`;\n case \"bigint\":\n return `${arg}`;\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, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$,\n map((r) => {\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 );\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, createRequest } from \"@urql/core\";\nimport { capitalize } from \"es-toolkit\";\nimport type {\n IntrospectionField,\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\nimport { createSubscriber } from \"svelte/reactivity\";\n\nimport {\n empty,\n fromValue,\n map,\n merge,\n onEnd,\n onStart,\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\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 selectionString = input\n ? stringifySelection({\n field,\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 const svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\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 ];\n if (enableSubscription) {\n observableSources.push(\n (() => {\n const { operationString: subOpString, variables: subVars } =\n makeOperation({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n return client.subscription(subOpString, subVars);\n })(),\n );\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 promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.query(operationString, variables),\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 resolve(observable);\n return;\n }\n\n currentData = data;\n observableSources.push(fromValue(data));\n\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 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), share),\n map((v) => {\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),\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),\n map((v) => {\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 field,\n selection,\n types,\n autoIncludeIdField,\n varCtx,\n}: {\n selection: Record<string, any>;\n field: IntrospectionField;\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 ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n let argsString = \"\";\n if (value[argsKey]) {\n let type = field.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 referenceObject = (types as any)\n .find((t: any) => t.name === (type as any).name)\n .fields.find((f: any) => f.name === key);\n\n argsString = serializeArguments({\n args: value[argsKey],\n types,\n fieldArgs: referenceObject.args,\n varCtx,\n });\n }\n\n acc += `${key}${argsString} ${stringifySelection({\n field,\n selection: value,\n types,\n varCtx,\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, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$,\n map((r) => {\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 );\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 +1 @@
1
- {"version":3,"file":"client.d.cts","names":[],"sources":["../lib/client/request.ts","../lib/client/utilTypes.ts","../lib/client/types.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"mappings":"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"}
1
+ {"version":3,"file":"client.d.cts","names":[],"sources":["../lib/client/request.ts","../lib/client/utilTypes.ts","../lib/client/types.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.mts","names":[],"sources":["../lib/client/request.ts","../lib/client/utilTypes.ts","../lib/client/types.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"mappings":"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"}
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../lib/client/request.ts","../lib/client/utilTypes.ts","../lib/client/types.ts","../lib/client/liveQuery.ts","../lib/client/mutation.ts","../lib/client/nativeDateExchange.ts","../lib/client/query.ts","../lib/client/subscription.ts"],"mappings":"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"}
package/out/client.mjs CHANGED
@@ -1,25 +1,53 @@
1
1
  import { t as lazy } from "./lazy-BgeBy3-B.mjs";
2
2
  import { capitalize } from "es-toolkit";
3
3
  import { DateResolver, DateTimeISOResolver } from "graphql-scalars";
4
+ import "@urql/core";
4
5
  import { createSubscriber } from "svelte/reactivity";
5
- import { empty, map, merge as merge$1, pipe, share, subscribe, take, toObservable } from "wonka";
6
+ import { fromValue, map, merge as merge$1, pipe, share, subscribe, take, toObservable } from "wonka";
6
7
  //#region lib/client/request.ts
8
+ function typeToString(type) {
9
+ if (type.kind === "NON_NULL") return `${typeToString(type.ofType)}!`;
10
+ if (type.kind === "LIST") return `[${typeToString(type.ofType)}]`;
11
+ return type.name;
12
+ }
13
+ function allocateVarName(ctx, baseName) {
14
+ if (!ctx.usedNames.has(baseName)) {
15
+ ctx.usedNames.add(baseName);
16
+ return baseName;
17
+ }
18
+ let i = 1;
19
+ while (ctx.usedNames.has(`${baseName}${i}`)) i++;
20
+ const name = `${baseName}${i}`;
21
+ ctx.usedNames.add(name);
22
+ return name;
23
+ }
7
24
  const argsKey = "__args";
8
- function makeOperationString({ operationVerb, queryName, schema, input, autoIncludeIdField }) {
25
+ function makeOperation({ operationVerb, queryName, schema, input, autoIncludeIdField }) {
9
26
  const otwQueryName = `${capitalize(queryName)}${capitalize(operationVerb)}`;
10
27
  const field = schema.__schema.types.filter((t) => t.kind === "OBJECT").find((t) => t.name === schema.__schema[`${operationVerb}Type`].name).fields.find((f) => f.name === queryName);
11
28
  const types = schema.__schema.types;
29
+ const varCtx = {
30
+ variables: {},
31
+ declarations: [],
32
+ usedNames: /* @__PURE__ */ new Set()
33
+ };
12
34
  const selectionString = input ? stringifySelection({
13
35
  field,
14
36
  selection: input,
15
37
  types,
16
- autoIncludeIdField
38
+ autoIncludeIdField,
39
+ varCtx
17
40
  }) : "";
18
- return `${operationVerb} ${otwQueryName} { ${queryName}${input?.["__args"] ? stringifyArgumentObjectToGraphql({
41
+ const argumentString = input?.["__args"] ? serializeArguments({
19
42
  args: input[argsKey],
20
43
  fieldArgs: field.args,
21
- types
22
- }) : ""} ${selectionString}}`;
44
+ types,
45
+ varCtx
46
+ }) : "";
47
+ return {
48
+ operationString: `${operationVerb} ${otwQueryName}${varCtx.declarations.length ? `(${varCtx.declarations.join(", ")})` : ""} { ${queryName}${argumentString} ${selectionString}}`,
49
+ variables: varCtx.variables
50
+ };
23
51
  }
24
52
  function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubscription = false, forceReactivity, autoIncludeIdField }) {
25
53
  let currentData;
@@ -35,34 +63,40 @@ function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubsc
35
63
  });
36
64
  return () => unsub.unsubscribe();
37
65
  });
38
- const sharedSource = pipe(merge$1([client.query(makeOperationString({
66
+ const { operationString, variables } = makeOperation({
39
67
  operationVerb: "query",
40
68
  queryName,
41
69
  input,
42
70
  schema,
43
71
  autoIncludeIdField
44
- }), {}), enableSubscription ? client.subscription(makeOperationString({
45
- operationVerb: "subscription",
46
- queryName,
47
- input,
48
- schema,
49
- autoIncludeIdField
50
- }), {}) : empty]), share);
51
- const observable = toObservable(pipe(sharedSource, map((v) => {
72
+ });
73
+ const observableSources = [client.query(operationString, variables)];
74
+ if (enableSubscription) observableSources.push((() => {
75
+ const { operationString: subOpString, variables: subVars } = makeOperation({
76
+ operationVerb: "subscription",
77
+ queryName,
78
+ input,
79
+ schema,
80
+ autoIncludeIdField
81
+ });
82
+ return client.subscription(subOpString, subVars);
83
+ })());
84
+ const observable = toObservable(pipe(merge$1(observableSources), share, map((v) => {
52
85
  if (v.error) throw v.error;
53
86
  const data = v.data?.[queryName];
54
- currentData = data;
55
- if (typeof data === "object" && data !== null) return dataProxy();
87
+ if (typeof data === "object" && data !== null) {
88
+ currentData = data;
89
+ return dataProxy();
90
+ }
56
91
  return data;
57
92
  })));
58
93
  const promise = new Promise((resolve, reject) => {
59
- pipe(sharedSource, take(1), subscribe((v) => {
94
+ pipe(client.query(operationString, variables), take(1), subscribe((v) => {
60
95
  if (v.error) {
61
96
  reject(v.error);
62
97
  return;
63
98
  }
64
99
  const data = v.data?.[queryName];
65
- currentData = data;
66
100
  if (typeof data !== "object" || data === null) {
67
101
  resolve(data);
68
102
  return;
@@ -71,6 +105,8 @@ function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubsc
71
105
  resolve(observable);
72
106
  return;
73
107
  }
108
+ currentData = data;
109
+ observableSources.push(fromValue(data));
74
110
  try {
75
111
  const r = dataProxy();
76
112
  Object.assign(r, observable);
@@ -84,19 +120,19 @@ function makeGraphQLQueryRequest({ queryName, schema, input, client, enableSubsc
84
120
  return promise;
85
121
  }
86
122
  function makeGraphQLMutationRequest({ mutationName, input, client, schema, autoIncludeIdField }) {
87
- const sharedSource = pipe(client.mutation(makeOperationString({
123
+ const { operationString, variables } = makeOperation({
88
124
  operationVerb: "mutation",
89
125
  queryName: mutationName,
90
126
  input,
91
127
  schema,
92
128
  autoIncludeIdField
93
- }), {}), share);
94
- const observable = toObservable(pipe(sharedSource, map((v) => {
129
+ });
130
+ const observable = toObservable(pipe(pipe(client.mutation(operationString, variables), share), map((v) => {
95
131
  if (v.error) throw v.error;
96
132
  return v.data?.[mutationName];
97
133
  })));
98
134
  const promise = new Promise((resolve, reject) => {
99
- pipe(sharedSource, take(1), subscribe((v) => {
135
+ pipe(client.mutation(operationString, variables), take(1), subscribe((v) => {
100
136
  if (v.error) {
101
137
  reject(v.error);
102
138
  return;
@@ -108,18 +144,19 @@ function makeGraphQLMutationRequest({ mutationName, input, client, schema, autoI
108
144
  return promise;
109
145
  }
110
146
  function makeGraphQLSubscriptionRequest({ subscriptionName, input, client, schema, autoIncludeIdField }) {
111
- return pipe(client.subscription(makeOperationString({
147
+ const { operationString, variables } = makeOperation({
112
148
  operationVerb: "subscription",
113
149
  queryName: subscriptionName,
114
150
  input,
115
151
  schema,
116
152
  autoIncludeIdField
117
- }), {}), map((v) => {
153
+ });
154
+ return pipe(client.subscription(operationString, variables), map((v) => {
118
155
  if (v.error) throw v.error;
119
156
  return v.data?.[subscriptionName];
120
157
  }), toObservable);
121
158
  }
122
- function stringifySelection({ field, selection, types, autoIncludeIdField }) {
159
+ function stringifySelection({ field, selection, types, autoIncludeIdField, varCtx }) {
123
160
  if (autoIncludeIdField && typeof selection[autoIncludeIdField] === "undefined") selection[autoIncludeIdField] = true;
124
161
  return `{
125
162
  ${Object.entries(selection).filter(([key]) => key !== argsKey).reduce((acc, [key, value]) => {
@@ -131,16 +168,18 @@ ${Object.entries(selection).filter(([key]) => key !== argsKey).reduce((acc, [key
131
168
  if (type.kind === "LIST") type = type.ofType;
132
169
  if (type.kind === "NON_NULL") type = type.ofType;
133
170
  const referenceObject = types.find((t) => t.name === type.name).fields.find((f) => f.name === key);
134
- argsString = stringifyArgumentObjectToGraphql({
171
+ argsString = serializeArguments({
135
172
  args: value[argsKey],
136
173
  types,
137
- fieldArgs: referenceObject.args
174
+ fieldArgs: referenceObject.args,
175
+ varCtx
138
176
  });
139
177
  }
140
178
  acc += `${key}${argsString} ${stringifySelection({
141
179
  field,
142
180
  selection: value,
143
- types
181
+ types,
182
+ varCtx
144
183
  })}
145
184
  `;
146
185
  } else if (typeof value === "boolean" && value) acc += `${key}
@@ -148,28 +187,31 @@ ${Object.entries(selection).filter(([key]) => key !== argsKey).reduce((acc, [key
148
187
  return acc;
149
188
  }, "")} }`;
150
189
  }
151
- function stringifyArgumentObjectToGraphql({ args, fieldArgs, types }) {
190
+ function serializeArguments({ args, fieldArgs, types, varCtx }) {
152
191
  const entries = Object.entries(args);
153
192
  if (entries.length > 0) return `(${entries.map(([key, value]) => {
154
193
  const gqlArg = fieldArgs.find((a) => a.name === key);
155
194
  if (!gqlArg) throw new Error(`Argument ${key} not found in field args list ${JSON.stringify(fieldArgs.map((a) => a.name))}`);
156
- return `${key}: ${stringifyArgumentValue({
195
+ const varName = allocateVarName(varCtx, key);
196
+ varCtx.declarations.push(`$${varName}: ${typeToString(gqlArg.type)}`);
197
+ varCtx.variables[varName] = serializeArgValue({
157
198
  arg: value,
158
199
  gqlArg,
159
200
  types
160
- })}`;
201
+ });
202
+ return `${key}: $${varName}`;
161
203
  }).join(", ")})`;
162
204
  return "";
163
205
  }
164
- function stringifyArgumentValue({ arg, gqlArg, types }) {
165
- if (arg === null) return "null";
166
- if (Array.isArray(arg)) return `[${arg.map((v) => {
167
- return stringifyArgumentValue({
206
+ function serializeArgValue({ arg, gqlArg, types }) {
207
+ if (arg === null) return null;
208
+ if (Array.isArray(arg)) return arg.map((v) => {
209
+ return serializeArgValue({
168
210
  arg: v,
169
211
  types,
170
212
  gqlArg
171
213
  });
172
- }).join(", ")}]`;
214
+ });
173
215
  if (typeof arg === "object" && !(arg instanceof Date)) {
174
216
  let type = gqlArg.type;
175
217
  if (type.kind === "NON_NULL") type = type.ofType;
@@ -178,15 +220,17 @@ function stringifyArgumentValue({ arg, gqlArg, types }) {
178
220
  const referenceInputObject = types.find((t) => t.name === type.name);
179
221
  if (!referenceInputObject) throw new Error(`Expected an INPUT_OBJECT hit in name based lookup for name ${type.name} with arg ${JSON.stringify(arg)}`);
180
222
  if (referenceInputObject.kind !== "INPUT_OBJECT") throw new Error("Expected an INPUT_OBJECT hit in named based lookup");
181
- return `{ ${Object.entries(arg).map(([key, value]) => {
223
+ const result = {};
224
+ for (const [key, value] of Object.entries(arg)) {
182
225
  const subArgType = referenceInputObject.inputFields.find((t) => t.name === key);
183
226
  if (!subArgType) throw new Error(`Expected an INPUT_OBJECT hit in named based lookup for name ${key} with arg ${referenceInputObject.inputFields.map((f) => f.name).join(", ")}`);
184
- return `${key}: ${stringifyArgumentValue({
227
+ result[key] = serializeArgValue({
185
228
  arg: value,
186
229
  types,
187
230
  gqlArg: subArgType
188
- })}`;
189
- }).join(", ")} }`;
231
+ });
232
+ }
233
+ return result;
190
234
  }
191
235
  let type = gqlArg.type;
192
236
  if (type.kind === "NON_NULL") type = type.ofType;
@@ -202,15 +246,15 @@ function stringifyArgumentValue({ arg, gqlArg, types }) {
202
246
  break;
203
247
  default: throw new Error(`Unrecognized date type ${name}, expected Date or DateTime`);
204
248
  }
205
- return `"${value}"`;
249
+ return value;
206
250
  }
207
251
  switch (typeof arg) {
208
- case "string": return type.kind === "ENUM" ? arg : `"${arg}"`;
209
- case "number": return `${arg}`;
210
- case "bigint": return `${arg}`;
211
- case "boolean": return `${arg}`;
252
+ case "string":
253
+ case "number":
254
+ case "bigint":
255
+ case "boolean": return arg;
212
256
  case "symbol": throw new Error("Cannot stringify a symbol to send as gql arg");
213
- case "undefined": return "null";
257
+ case "undefined": return null;
214
258
  case "function": throw new Error("Cannot stringify a function to send as gql arg");
215
259
  }
216
260
  throw new Error("Cannot stringify an unknown type");
@@ -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 IntrospectionField,\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\nimport { createSubscriber } from \"svelte/reactivity\";\n\nimport {\n empty,\n map,\n merge,\n pipe,\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\nexport const argsKey = \"__args\";\n\nfunction makeOperationString({\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 selectionString = input\n ? stringifySelection({ field, selection: input, types, autoIncludeIdField })\n : \"\";\n\n const argumentString = input?.[argsKey]\n ? stringifyArgumentObjectToGraphql({\n args: input[argsKey],\n fieldArgs: field.args,\n types,\n })\n : \"\";\n\n return `${operationVerb} ${otwQueryName} { ${queryName}${argumentString} ${selectionString}}`;\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 const svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\n\n const sharedSource = pipe(\n merge([\n client.query(\n makeOperationString({\n operationVerb: \"query\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n ),\n enableSubscription\n ? client.subscription(\n makeOperationString({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n )\n : empty,\n ]),\n share,\n );\n\n const observable = toObservable(\n pipe(\n sharedSource,\n map((v: any) => {\n if (v.error) {\n throw v.error;\n }\n\n const data = v.data?.[queryName];\n currentData = data;\n if (typeof data === \"object\" && data !== null) {\n return dataProxy();\n }\n return data;\n }),\n ),\n );\n\n const promise = new Promise<any>((resolve, reject) => {\n pipe(\n sharedSource,\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 currentData = data;\n if (typeof data !== \"object\" || data === null) {\n resolve(data);\n return;\n }\n if (typeof forceReactivity === \"boolean\" && forceReactivity) {\n resolve(observable);\n return;\n }\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 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 sharedSource = pipe(\n client.mutation(\n makeOperationString({\n operationVerb: \"mutation\",\n queryName: mutationName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n ),\n share,\n );\n\n const observable = toObservable(\n pipe(\n sharedSource,\n map((v) => {\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 sharedSource,\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 return pipe(\n client.subscription(\n makeOperationString({\n operationVerb: \"subscription\",\n queryName: subscriptionName,\n input,\n schema,\n autoIncludeIdField,\n }),\n {},\n ),\n map((v) => {\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 field,\n selection,\n types,\n autoIncludeIdField,\n}: {\n selection: Record<string, any>;\n field: IntrospectionField;\n types: readonly IntrospectionType[];\n autoIncludeIdField?: string;\n}) {\n if (\n autoIncludeIdField &&\n typeof selection[autoIncludeIdField] === \"undefined\"\n ) {\n selection[autoIncludeIdField] = true;\n }\n\n const ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n let argsString = \"\";\n if (value[argsKey]) {\n let type = field.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 referenceObject = (types as any)\n .find((t: any) => t.name === (type as any).name)\n .fields.find((f: any) => f.name === key);\n\n argsString = stringifyArgumentObjectToGraphql({\n args: value[argsKey],\n types,\n fieldArgs: referenceObject.args,\n });\n }\n\n acc += `${key}${argsString} ${stringifySelection({\n field,\n selection: value,\n types,\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 stringifyArgumentObjectToGraphql({\n args,\n fieldArgs,\n types,\n}: {\n args: Record<any, any>;\n fieldArgs: readonly IntrospectionInputValue[];\n types: readonly IntrospectionType[];\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 return `${key}: ${stringifyArgumentValue({ arg: value, gqlArg, types })}`;\n })\n .join(\", \")})`;\n }\n\n return \"\";\n}\n\nfunction stringifyArgumentValue({\n arg,\n gqlArg,\n types,\n}: {\n arg: any;\n gqlArg: IntrospectionInputValue;\n types: readonly IntrospectionType[];\n}): string {\n if (arg === null) {\n return \"null\";\n }\n\n if (Array.isArray(arg)) {\n return `[${arg\n .map((v) => {\n return stringifyArgumentValue({\n arg: v,\n types,\n gqlArg,\n });\n })\n .join(\", \")}]`;\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 return `{ ${Object.entries(arg)\n .map(([key, value]) => {\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 return `${key}: ${stringifyArgumentValue({ arg: value, types, gqlArg: subArgType })}`;\n })\n .join(\", \")} }`;\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 return type.kind === \"ENUM\" ? arg : `\"${arg}\"`;\n case \"number\":\n return `${arg}`;\n case \"bigint\":\n return `${arg}`;\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, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$,\n map((r) => {\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 );\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, createRequest } from \"@urql/core\";\nimport { capitalize } from \"es-toolkit\";\nimport type {\n IntrospectionField,\n IntrospectionInputValue,\n IntrospectionQuery,\n IntrospectionType,\n} from \"graphql\";\nimport { DateResolver, DateTimeISOResolver } from \"graphql-scalars\";\nimport { createSubscriber } from \"svelte/reactivity\";\n\nimport {\n empty,\n fromValue,\n map,\n merge,\n onEnd,\n onStart,\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\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 selectionString = input\n ? stringifySelection({\n field,\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 const svelteSubscriber = createSubscriber((update) => {\n const unsub = observable.subscribe((d) => {\n update();\n });\n return () => unsub.unsubscribe();\n });\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 ];\n if (enableSubscription) {\n observableSources.push(\n (() => {\n const { operationString: subOpString, variables: subVars } =\n makeOperation({\n operationVerb: \"subscription\",\n queryName,\n input,\n schema,\n autoIncludeIdField,\n });\n return client.subscription(subOpString, subVars);\n })(),\n );\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 promise = new Promise<any>((resolve, reject) => {\n pipe(\n client.query(operationString, variables),\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 resolve(observable);\n return;\n }\n\n currentData = data;\n observableSources.push(fromValue(data));\n\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 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), share),\n map((v) => {\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),\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),\n map((v) => {\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 field,\n selection,\n types,\n autoIncludeIdField,\n varCtx,\n}: {\n selection: Record<string, any>;\n field: IntrospectionField;\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 ret = Object.entries(selection)\n .filter(([key]) => key !== argsKey)\n .reduce((acc, [key, value]) => {\n if (typeof value === \"object\") {\n let argsString = \"\";\n if (value[argsKey]) {\n let type = field.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 referenceObject = (types as any)\n .find((t: any) => t.name === (type as any).name)\n .fields.find((f: any) => f.name === key);\n\n argsString = serializeArguments({\n args: value[argsKey],\n types,\n fieldArgs: referenceObject.args,\n varCtx,\n });\n }\n\n acc += `${key}${argsString} ${stringifySelection({\n field,\n selection: value,\n types,\n varCtx,\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, forward }) => {\n return (operations$) => {\n const operationResult$ = forward(operations$);\n\n return pipe(\n operationResult$,\n map((r) => {\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 );\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":";;;;;;;AA8BA,SAAS,aAAa,MAAmB;AACvC,KAAI,KAAK,SAAS,WAAY,QAAO,GAAG,aAAa,KAAK,OAAO,CAAC;AAClE,KAAI,KAAK,SAAS,OAAQ,QAAO,IAAI,aAAa,KAAK,OAAO,CAAC;AAC/D,QAAO,KAAK;;AASd,SAAS,gBAAgB,KAAiB,UAA0B;AAClE,KAAI,CAAC,IAAI,UAAU,IAAI,SAAS,EAAE;AAChC,MAAI,UAAU,IAAI,SAAS;AAC3B,SAAO;;CAET,IAAI,IAAI;AACR,QAAO,IAAI,UAAU,IAAI,GAAG,WAAW,IAAI,CAAE;CAC7C,MAAM,OAAO,GAAG,WAAW;AAC3B,KAAI,UAAU,IAAI,KAAK;AACvB,QAAO;;AAGT,MAAa,UAAU;AAEvB,SAAS,cAAc,EACrB,eACA,WACA,QACA,OACA,sBAOC;CACD,MAAM,eAAe,GAAG,WAAW,UAAU,GAAG,WAAW,cAAc;CACzE,MAAM,QAAQ,OAAO,SAAS,MAC3B,QAAQ,MAAM,EAAE,SAAS,SAAS,CAClC,MAAM,MAAM,EAAE,SAAS,OAAO,SAAS,GAAG,cAAc,OAAQ,KAAK,CACrE,OAAO,MAAM,MAAM,EAAE,SAAS,UAAU;CAC3C,MAAM,QAAQ,OAAO,SAAS;CAE9B,MAAM,SAAqB;EACzB,WAAW,EAAE;EACb,cAAc,EAAE;EAChB,2BAAW,IAAI,KAAK;EACrB;CAED,MAAM,kBAAkB,QACpB,mBAAmB;EACjB;EACA,WAAW;EACX;EACA;EACA;EACD,CAAC,GACF;CAEJ,MAAM,iBAAiB,QAAA,YACnB,mBAAmB;EACjB,MAAM,MAAM;EACZ,WAAW,MAAM;EACjB;EACA;EACD,CAAC,GACF;AAMJ,QAAO;EACL,iBAAiB,GAAG,cAAc,GAAG,eALvB,OAAO,aAAa,SAChC,IAAI,OAAO,aAAa,KAAK,KAAK,CAAC,KACnC,GAG0D,KAAK,YAAY,eAAe,GAAG,gBAAgB;EAC/G,WAAW,OAAO;EACnB;;AAGH,SAAgB,wBAAwB,EACtC,WACA,QACA,OACA,QACA,qBAAqB,OACrB,iBACA,sBASC;CACD,IAAI;CACJ,MAAM,YAAY,WAEd,IAAI,MAAM,aAAa,EACrB,IAAI,QAAQ,MAAM,UAAU;AAC1B,oBAAkB;EAClB,MAAM,MAAM,QAAQ,IAAI,aAAa,MAAM,SAAS;AACpD,MAAI,OAAO,QAAQ,WACjB,QAAO,IAAI,KAAK,YAAY;AAE9B,SAAO;IAEV,CAAC,CACL;CAED,MAAM,mBAAmB,kBAAkB,WAAW;EACpD,MAAM,QAAQ,WAAW,WAAW,MAAM;AACxC,WAAQ;IACR;AACF,eAAa,MAAM,aAAa;GAChC;CAEF,MAAM,EAAE,iBAAiB,cAAc,cAAc;EACnD,eAAe;EACf;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAM,oBAAmC,CACvC,OAAO,MAAM,iBAAiB,UAAU,CACzC;AACD,KAAI,mBACF,mBAAkB,YACT;EACL,MAAM,EAAE,iBAAiB,aAAa,WAAW,YAC/C,cAAc;GACZ,eAAe;GACf;GACA;GACA;GACA;GACD,CAAC;AACJ,SAAO,OAAO,aAAa,aAAa,QAAQ;KAC9C,CACL;CAEH,MAAM,aAAa,aACjB,KACEA,QAAM,kBAAkB,EACxB,OACA,KAAK,MAAW;AACd,MAAI,EAAE,MACJ,OAAM,EAAE;EAGV,MAAM,OAAO,EAAE,OAAO;AACtB,MAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,iBAAc;AACd,UAAO,WAAW;;AAEpB,SAAO;GACP,CACH,CACF;CAED,MAAM,UAAU,IAAI,SAAc,SAAS,WAAW;AACpD,OACE,OAAO,MAAM,iBAAiB,UAAU,EACxC,KAAK,EAAE,EACP,WAAW,MAAW;AACpB,OAAI,EAAE,OAAO;AACX,WAAO,EAAE,MAAM;AACf;;GAGF,MAAM,OAAO,EAAE,OAAO;AACtB,OAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAC7C,YAAQ,KAAK;AACb;;AAEF,OAAI,OAAO,oBAAoB,aAAa,iBAAiB;AAC3D,YAAQ,WAAW;AACnB;;AAGF,iBAAc;AACd,qBAAkB,KAAK,UAAU,KAAK,CAAC;AAEvC,OAAI;IACF,MAAM,IAAI,WAAW;AACrB,WAAO,OAAO,GAAG,WAAW;AAC5B,YAAQ,EAAE;YACH,KAAK;AACZ,WAAO,IAAI;;IAEb,CACH;GACD;AAEF,QAAO,OAAO,SAAS,WAAW;AAClC,QAAO;;AAGT,SAAgB,2BAA2B,EACzC,cACA,OACA,QACA,QACA,sBAOC;CACD,MAAM,EAAE,iBAAiB,cAAc,cAAc;EACnD,eAAe;EACf,WAAW;EACX;EACA;EACA;EACD,CAAC;CAEF,MAAM,aAAa,aACjB,KACE,KAAK,OAAO,SAAS,iBAAiB,UAAU,EAAE,MAAM,EACxD,KAAK,MAAM;AACT,MAAI,EAAE,MACJ,OAAM,EAAE;AAIV,SADa,EAAE,OAAO;GAEtB,CACH,CACF;CAED,MAAM,UAAU,IAAI,SAAc,SAAS,WAAW;AACpD,OACE,OAAO,SAAS,iBAAiB,UAAU,EAC3C,KAAK,EAAE,EACP,WAAW,MAAW;AACpB,OAAI,EAAE,OAAO;AACX,WAAO,EAAE,MAAM;AACf;;AAGF,WAAQ,EAAE,OAAO,cAAc;IAC/B,CACH;GACD;AAEF,QAAO,OAAO,SAAS,WAAW;AAClC,QAAO;;AAGT,SAAgB,+BAA+B,EAC7C,kBACA,OACA,QACA,QACA,sBAOC;CACD,MAAM,EAAE,iBAAiB,cAAc,cAAc;EACnD,eAAe;EACf,WAAW;EACX;EACA;EACA;EACD,CAAC;AAEF,QAAO,KACL,OAAO,aAAa,iBAAiB,UAAU,EAC/C,KAAK,MAAM;AACT,MAAI,EAAE,MACJ,OAAM,EAAE;AAGV,SAAO,EAAE,OAAO;GAChB,EACF,aACD;;AAGH,SAAS,mBAAmB,EAC1B,OACA,WACA,OACA,oBACA,UAOC;AACD,KACE,sBACA,OAAO,UAAU,wBAAwB,YAEzC,WAAU,sBAAsB;AAiDlC,QAAO;EA9CK,OAAO,QAAQ,UAAU,CAClC,QAAQ,CAAC,SAAS,QAAQ,QAAQ,CAClC,QAAQ,KAAK,CAAC,KAAK,WAAW;AAC7B,MAAI,OAAO,UAAU,UAAU;GAC7B,IAAI,aAAa;AACjB,OAAI,MAAA,WAAgB;IAClB,IAAI,OAAO,MAAM;AAEjB,QAAI,KAAK,SAAS,WAChB,QAAO,KAAK;AAEd,QAAI,KAAK,SAAS,OAChB,QAAO,KAAK;AAEd,QAAI,KAAK,SAAS,WAChB,QAAO,KAAK;IAGd,MAAM,kBAAmB,MACtB,MAAM,MAAW,EAAE,SAAU,KAAa,KAAK,CAC/C,OAAO,MAAM,MAAW,EAAE,SAAS,IAAI;AAE1C,iBAAa,mBAAmB;KAC9B,MAAM,MAAM;KACZ;KACA,WAAW,gBAAgB;KAC3B;KACD,CAAC;;AAGJ,UAAO,GAAG,MAAM,WAAW,GAAG,mBAAmB;IAC/C;IACA,WAAW;IACX;IACA;IACD,CAAC,CAAC;;aAGC,OAAO,UAAU,aAAa,MAChC,QAAO,GAAG,IAAI;;AAIlB,SAAO;IACN,GAAG,CAGJ;;AAGN,SAAS,mBAAmB,EAC1B,MACA,WACA,OACA,UAMC;CACD,MAAM,UAAU,OAAO,QAAQ,KAAK;AAEpC,KAAI,QAAQ,SAAS,EACnB,QAAO,IAAI,QACR,KAAK,CAAC,KAAK,WAAW;EACrB,MAAM,SAAS,UAAU,MAAM,MAAM,EAAE,SAAS,IAAI;AAEpD,MAAI,CAAC,OACH,OAAM,IAAI,MACR,YAAY,IAAI,gCAAgC,KAAK,UAAU,UAAU,KAAK,MAAM,EAAE,KAAK,CAAC,GAC7F;EAGH,MAAM,UAAU,gBAAgB,QAAQ,IAAI;AAC5C,SAAO,aAAa,KAAK,IAAI,QAAQ,IAAI,aAAa,OAAO,KAAK,GAAG;AACrE,SAAO,UAAU,WAAW,kBAAkB;GAC5C,KAAK;GACL;GACA;GACD,CAAC;AAEF,SAAO,GAAG,IAAI,KAAK;GACnB,CACD,KAAK,KAAK,CAAC;AAGhB,QAAO;;AAGT,SAAS,kBAAkB,EACzB,KACA,QACA,SAKM;AACN,KAAI,QAAQ,KACV,QAAO;AAGT,KAAI,MAAM,QAAQ,IAAI,CACpB,QAAO,IAAI,KAAK,MAAM;AACpB,SAAO,kBAAkB;GACvB,KAAK;GACL;GACA;GACD,CAAC;GACF;AAKJ,KAFgB,OAAO,QAEP,YAAY,EAAE,eAAe,OAAO;EAClD,IAAI,OAAO,OAAO;AAElB,MAAI,KAAK,SAAS,WAChB,QAAO,KAAK;AAEd,MAAI,KAAK,SAAS,OAChB,QAAO,KAAK;AAEd,MAAI,KAAK,SAAS,WAChB,QAAO,KAAK;EAOd,MAAM,uBAAuB,MAAM,MAChC,MAAM,EAAE,SAAU,KAAa,KACjC;AAED,MAAI,CAAC,qBACH,OAAM,IAAI,MACR,8DAA+D,KAAa,KAAK,YAAY,KAAK,UAAU,IAAI,GACjH;AAGH,MAAI,qBAAqB,SAAS,eAChC,OAAM,IAAI,MAAM,qDAAqD;EAGvE,MAAM,SAA8B,EAAE;AACtC,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,EAAE;GAC9C,MAAM,aAAa,qBAAqB,YAAY,MACjD,MAAM,EAAE,SAAS,IACnB;AAED,OAAI,CAAC,WACH,OAAM,IAAI,MACR,+DAA+D,IAAI,YAAY,qBAAqB,YAAY,KAAK,MAAM,EAAE,KAAK,CAAC,KAAK,KAAK,GAC9I;AAGH,UAAO,OAAO,kBAAkB;IAC9B,KAAK;IACL;IACA,QAAQ;IACT,CAAC;;AAEJ,SAAO;;CAGT,IAAI,OAAO,OAAO;AAElB,KAAI,KAAK,SAAS,WAChB,QAAO,KAAK;AAGd,KAAI,eAAe,MAAM;EACvB,MAAM,OAAQ,KAAa;EAC3B,IAAI;AACJ,UAAQ,MAAR;GACE,KAAK;AACH,YAAQ,aAAa,UAAU,IAAI;AACnC;GACF,KAAK;AACH,YAAQ,oBAAoB,UAAU,IAAI;AAC1C;GACF,QACE,OAAM,IAAI,MACR,0BAA0B,KAAK,6BAChC;;AAEL,SAAO;;AAGT,SAAQ,OAAO,KAAf;EACE,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK,UACH,QAAO;EACT,KAAK,SACH,OAAM,IAAI,MAAM,+CAA+C;EACjE,KAAK,YACH,QAAO;EACT,KAAK,WACH,OAAM,IAAI,MAAM,iDAAiD;;AAGrE,OAAM,IAAI,MAAM,mCAAmC;;;;AC7hBrD,SAAgB,cAGd,EACA,YACA,wBACA,iBACA,QACA,sBAOC;AACD,QAAO,IAAI,MACT,EAAE,EACF,EACE,MAAM,SAAS,SAAS;AACtB,UAAQ,UAA+B;AACrC,UAAO,wBAAwB;IAC7B,WAAW;IACX;IACA,QAAQ;IACR,oBAAoB,uBAAuB,IAAI,KAAe;IAC9D;IACA;IACA;IACD,CAAC;;IAGP,CACF;;;;ACjCH,SAAgB,aAAmD,EACjE,YACA,QACA,sBAKC;AACD,QAAO,IAAI,MACT,EAAE,EACF,EACE,MAAM,SAAS,SAAS;AACtB,UAAQ,UAA+B;AACrC,UAAO,2BAA2B;IAChC,cAAc;IACd;IACA,QAAQ;IACR;IACA;IACD,CAAC;;IAGP,CACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACIH,SAAgB,cAAc,OAAY,IAAyB;CACjE,MAAM,uBAAO,IAAI,SAAS;CAE1B,MAAM,WAAW,UAAoB;AACnC,MAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,MAAM,IAAI,QAAQ;AAG3B,MACE,UAAU,QACV,UAAU,KAAA,KACV,OAAO,UAAU,YACjB,MAAM,gBAAgB,QACtB;AACA,OAAI,KAAK,IAAI,MAAM,CAAE,QAAO;AAC5B,QAAK,IAAI,MAAM;AACf,QAAK,MAAM,OAAO,OAAO,KAAK,MAAM,CAClC,OAAM,OAAO,QAAQ,MAAM,KAAK;AAElC,UAAO;;AAGT,SAAO,GAAG,MAAM;;AAGlB,QAAO,QAAQ,MAAM;;;;ACtDvB,MAAM,eACJ;AAEF,MAAa,sBAAgC,EAAE,QAAQ,cAAc;AACnE,SAAQ,gBAAgB;AAGtB,SAAO,KAFkB,QAAQ,YAAY,EAI3C,KAAK,MAAM;AACT,KAAE,OAAO,cAAc,EAAE,OAAO,UAAU;AACxC,QAAI,OAAO,UAAU,YAAY,CAAC,aAAa,KAAK,MAAM,CACxD,QAAO;IAGT,MAAM,OAAO,KAAK,MAAM,MAAM;AAC9B,QAAI,CAAC,OAAO,MAAM,KAAK,CACrB,QAAO,IAAI,KAAK,KAAK;AAGvB,WAAO;KACP;AACF,UAAO;IACP,CACH;;;;;ACvBL,SAAgB,UAGd,EACA,YACA,iBACA,QACA,sBAMC;AACD,QAAO,IAAI,MACT,EAAE,EACF,EACE,MAAM,SAAS,SAAS;AACtB,UAAQ,UAAgC;AACtC,UAAO,wBAAwB;IAC7B,WAAW;IACX;IACA,QAAQ;IACR,oBAAoB;IACpB;IACA;IACA;IACD,CAAC;;IAGP,CACF;;;;AC1BH,SAAgB,iBAA2D,EACzE,YACA,QACA,sBAKC;AACD,QAAO,IAAI,MACT,EAAE,EACF,EACE,MAAM,SAAS,SAAS;AACtB,UAAQ,UAA+B;AACrC,UAAO,+BAA+B;IACpC,kBAAkB;IAClB;IACA,QAAQ;IACR;IACA;IACD,CAAC;;IAGP,CACF"}
package/out/index.cjs CHANGED
@@ -209,7 +209,7 @@ function mapNullFieldsToUndefined(obj) {
209
209
  }
210
210
  //#endregion
211
211
  //#region package.json
212
- var version = "0.16.40";
212
+ var version = "0.16.41";
213
213
  //#endregion
214
214
  //#region lib/helpers/mergeFilters.ts
215
215
  function mergeFilters(filterA, filterB) {
package/out/index.mjs CHANGED
@@ -181,7 +181,7 @@ function mapNullFieldsToUndefined(obj) {
181
181
  }
182
182
  //#endregion
183
183
  //#region package.json
184
- var version = "0.16.40";
184
+ var version = "0.16.41";
185
185
  //#endregion
186
186
  //#region lib/helpers/mergeFilters.ts
187
187
  function mergeFilters(filterA, filterB) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@m1212e/rumble",
3
3
  "module": "./out/index.mjs",
4
- "version": "0.16.40",
4
+ "version": "0.16.41",
5
5
  "type": "module",
6
6
  "repository": "https://github.com/m1212e/rumble",
7
7
  "engines": {