@camstack/addon-pipeline-orchestrator 0.1.15 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/@mf-types/compiled-types/widgets/motion-zones/MotionZonesTab.d.ts.map +1 -1
  2. package/dist/@mf-types.zip +0 -0
  3. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.mjs-Dn6pffG6.mjs +14 -0
  4. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.mjs-DrteYOPu.mjs +22 -0
  5. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.mjs-DfNJpPfu.mjs +36 -0
  6. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-CaQq3kr4.mjs +112 -0
  7. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_trpc_mf_1_client__loadShare__.mjs-DhUh9Qzt.mjs +93 -0
  8. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-DOHfklLX.mjs +70 -0
  9. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs-BX5snCRm.mjs +96 -0
  10. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs_commonjs-proxy-Bg2N8TAe.mjs +34 -0
  11. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.mjs-CO0PugXp.mjs +44 -0
  12. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom__loadShare__.mjs-Cqpb8kvp.mjs +53 -0
  13. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-DnIwYUrp.mjs +6 -0
  14. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-Iv-aGQ4k.mjs +42 -0
  15. package/dist/_stub.js +16040 -10522
  16. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-sOGV7J8L.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_pipeline_orchestrator_widgets-D4U9-5a3.mjs} +66 -45
  17. package/dist/client-TtgJQfbd.mjs +11569 -0
  18. package/dist/getErrorShape-BPSzUA7W-D5KpHcIj.mjs +244 -0
  19. package/dist/hostInit-C89SX6z4.mjs +198 -0
  20. package/dist/index-0-mfXOlq.mjs +899 -0
  21. package/dist/index-BKVjF_OI.mjs +14804 -0
  22. package/dist/index-BN2rV_KJ.mjs +463 -0
  23. package/dist/index-BepH9mzJ.mjs +3536 -0
  24. package/dist/index-BxLvm_gu.mjs +267 -0
  25. package/dist/index-CVOLs7Aq.mjs +24402 -0
  26. package/dist/index-Cfo7sGh_.mjs +2054 -0
  27. package/dist/index-CrGKNQoE.mjs +3260 -0
  28. package/dist/index-sCAUpX2M.mjs +197 -0
  29. package/dist/jsx-runtime-D2w1zDMK.mjs +67 -0
  30. package/dist/remoteEntry.js +3351 -2327
  31. package/dist/schemas-DihhZLrP.mjs +5087 -0
  32. package/dist/virtualExposes-D_9EJnra.mjs +59 -0
  33. package/package.json +1 -1
  34. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.mjs-h5aXOPSA.mjs +0 -12
  35. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.mjs-UNj4rttw.mjs +0 -20
  36. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.mjs-Ue-jHwF0.mjs +0 -35
  37. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.mjs-DoWbefqS.mjs +0 -104
  38. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_trpc_mf_1_client__loadShare__.mjs-D4eEXltm.mjs +0 -85
  39. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.mjs-CVrnrGED.mjs +0 -62
  40. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs-B848Fc_m.mjs +0 -88
  41. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react__loadShare__.mjs_commonjs-proxy-B-q1guKT.mjs +0 -29
  42. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.mjs-Cg6QsnjR.mjs +0 -36
  43. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom__loadShare__.mjs-Dp8hqYOB.mjs +0 -45
  44. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-CeGb2_QF.mjs +0 -6
  45. package/dist/__mfe_internal__addon_pipeline_orchestrator_widgets__loadShare__react_mf_2_dom_mf_1_client__loadShare__.mjs-BBmNf5hf.mjs +0 -34
  46. package/dist/client-BkQItW6e.mjs +0 -9836
  47. package/dist/getErrorShape-BPSzUA7W-TlK8ipWe.mjs +0 -211
  48. package/dist/hostInit-DMdjwivI.mjs +0 -168
  49. package/dist/index-BI-_eQhe.mjs +0 -185
  50. package/dist/index-BIlr4dIX.mjs +0 -1655
  51. package/dist/index-BJzn4K_R.mjs +0 -2603
  52. package/dist/index-BK5-EWzN.mjs +0 -13426
  53. package/dist/index-BUn7hM0v.mjs +0 -20965
  54. package/dist/index-Bj470a3A.mjs +0 -725
  55. package/dist/index-CWkKuNLr.mjs +0 -232
  56. package/dist/index-Cj-UePAd.mjs +0 -435
  57. package/dist/index-xncRG7-x.mjs +0 -2713
  58. package/dist/jsx-runtime-CJ4xYF4l.mjs +0 -55
  59. package/dist/schemas-ChN4Ih0h.mjs +0 -3584
  60. package/dist/virtualExposes-8FzWTdq3.mjs +0 -42
@@ -0,0 +1,3260 @@
1
+ import { i as isObject, _ as __toESM$1, r as require_objectSpread2$1, a as require_defineProperty$1, b as run, e as emptyObject, c as __commonJS$1, s as sleep, d as createRecursiveProxy, f as createFlatProxy, g as retryableRpcCodes, h as isAsyncIterable, T as TRPC_ERROR_CODES_BY_KEY, j as getErrorShape } from "./getErrorShape-BPSzUA7W-D5KpHcIj.mjs";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
13
+ key = keys[i];
14
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(__defProp(target, "default", {
22
+ value: mod,
23
+ enumerable: true
24
+ }), mod));
25
+ var require_typeof = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/typeof.js"(exports, module) {
26
+ function _typeof$2(o) {
27
+ "@babel/helpers - typeof";
28
+ return module.exports = _typeof$2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
29
+ return typeof o$1;
30
+ } : function(o$1) {
31
+ return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
32
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof$2(o);
33
+ }
34
+ module.exports = _typeof$2, module.exports.__esModule = true, module.exports["default"] = module.exports;
35
+ } });
36
+ var require_toPrimitive = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPrimitive.js"(exports, module) {
37
+ var _typeof$1 = require_typeof()["default"];
38
+ function toPrimitive$1(t, r) {
39
+ if ("object" != _typeof$1(t) || !t) return t;
40
+ var e = t[Symbol.toPrimitive];
41
+ if (void 0 !== e) {
42
+ var i = e.call(t, r || "default");
43
+ if ("object" != _typeof$1(i)) return i;
44
+ throw new TypeError("@@toPrimitive must return a primitive value.");
45
+ }
46
+ return ("string" === r ? String : Number)(t);
47
+ }
48
+ module.exports = toPrimitive$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
49
+ } });
50
+ var require_toPropertyKey = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/toPropertyKey.js"(exports, module) {
51
+ var _typeof = require_typeof()["default"];
52
+ var toPrimitive = require_toPrimitive();
53
+ function toPropertyKey$1(t) {
54
+ var i = toPrimitive(t, "string");
55
+ return "symbol" == _typeof(i) ? i : i + "";
56
+ }
57
+ module.exports = toPropertyKey$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
58
+ } });
59
+ var require_defineProperty = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/defineProperty.js"(exports, module) {
60
+ var toPropertyKey = require_toPropertyKey();
61
+ function _defineProperty(e, r, t) {
62
+ return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
63
+ value: t,
64
+ enumerable: true,
65
+ configurable: true,
66
+ writable: true
67
+ }) : e[r] = t, e;
68
+ }
69
+ module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
70
+ } });
71
+ var require_objectSpread2 = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectSpread2.js"(exports, module) {
72
+ var defineProperty = require_defineProperty();
73
+ function ownKeys(e, r) {
74
+ var t = Object.keys(e);
75
+ if (Object.getOwnPropertySymbols) {
76
+ var o = Object.getOwnPropertySymbols(e);
77
+ r && (o = o.filter(function(r$1) {
78
+ return Object.getOwnPropertyDescriptor(e, r$1).enumerable;
79
+ })), t.push.apply(t, o);
80
+ }
81
+ return t;
82
+ }
83
+ function _objectSpread2(e) {
84
+ for (var r = 1; r < arguments.length; r++) {
85
+ var t = null != arguments[r] ? arguments[r] : {};
86
+ r % 2 ? ownKeys(Object(t), true).forEach(function(r$1) {
87
+ defineProperty(e, r$1, t[r$1]);
88
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r$1) {
89
+ Object.defineProperty(e, r$1, Object.getOwnPropertyDescriptor(t, r$1));
90
+ });
91
+ }
92
+ return e;
93
+ }
94
+ module.exports = _objectSpread2, module.exports.__esModule = true, module.exports["default"] = module.exports;
95
+ } });
96
+ function observable(subscribe) {
97
+ const self = {
98
+ subscribe(observer) {
99
+ let teardownRef = null;
100
+ let isDone = false;
101
+ let unsubscribed = false;
102
+ let teardownImmediately = false;
103
+ function unsubscribe() {
104
+ if (teardownRef === null) {
105
+ teardownImmediately = true;
106
+ return;
107
+ }
108
+ if (unsubscribed) return;
109
+ unsubscribed = true;
110
+ if (typeof teardownRef === "function") teardownRef();
111
+ else if (teardownRef) teardownRef.unsubscribe();
112
+ }
113
+ teardownRef = subscribe({
114
+ next(value) {
115
+ var _observer$next;
116
+ if (isDone) return;
117
+ (_observer$next = observer.next) === null || _observer$next === void 0 || _observer$next.call(observer, value);
118
+ },
119
+ error(err) {
120
+ var _observer$error;
121
+ if (isDone) return;
122
+ isDone = true;
123
+ (_observer$error = observer.error) === null || _observer$error === void 0 || _observer$error.call(observer, err);
124
+ unsubscribe();
125
+ },
126
+ complete() {
127
+ var _observer$complete;
128
+ if (isDone) return;
129
+ isDone = true;
130
+ (_observer$complete = observer.complete) === null || _observer$complete === void 0 || _observer$complete.call(observer);
131
+ unsubscribe();
132
+ }
133
+ });
134
+ if (teardownImmediately) unsubscribe();
135
+ return { unsubscribe };
136
+ },
137
+ pipe(...operations) {
138
+ return operations.reduce(pipeReducer, self);
139
+ }
140
+ };
141
+ return self;
142
+ }
143
+ function pipeReducer(prev, fn) {
144
+ return fn(prev);
145
+ }
146
+ function observableToPromise(observable$1) {
147
+ const ac = new AbortController();
148
+ const promise = new Promise((resolve, reject) => {
149
+ let isDone = false;
150
+ function onDone() {
151
+ if (isDone) return;
152
+ isDone = true;
153
+ obs$.unsubscribe();
154
+ }
155
+ ac.signal.addEventListener("abort", () => {
156
+ reject(ac.signal.reason);
157
+ });
158
+ const obs$ = observable$1.subscribe({
159
+ next(data) {
160
+ isDone = true;
161
+ resolve(data);
162
+ onDone();
163
+ },
164
+ error(data) {
165
+ reject(data);
166
+ },
167
+ complete() {
168
+ ac.abort();
169
+ onDone();
170
+ }
171
+ });
172
+ });
173
+ return promise;
174
+ }
175
+ function share(_opts) {
176
+ return (source) => {
177
+ let refCount = 0;
178
+ let subscription = null;
179
+ const observers = [];
180
+ function startIfNeeded() {
181
+ if (subscription) return;
182
+ subscription = source.subscribe({
183
+ next(value) {
184
+ for (const observer of observers) {
185
+ var _observer$next;
186
+ (_observer$next = observer.next) === null || _observer$next === void 0 || _observer$next.call(observer, value);
187
+ }
188
+ },
189
+ error(error) {
190
+ for (const observer of observers) {
191
+ var _observer$error;
192
+ (_observer$error = observer.error) === null || _observer$error === void 0 || _observer$error.call(observer, error);
193
+ }
194
+ },
195
+ complete() {
196
+ for (const observer of observers) {
197
+ var _observer$complete;
198
+ (_observer$complete = observer.complete) === null || _observer$complete === void 0 || _observer$complete.call(observer);
199
+ }
200
+ }
201
+ });
202
+ }
203
+ function resetIfNeeded() {
204
+ if (refCount === 0 && subscription) {
205
+ const _sub = subscription;
206
+ subscription = null;
207
+ _sub.unsubscribe();
208
+ }
209
+ }
210
+ return observable((subscriber) => {
211
+ refCount++;
212
+ observers.push(subscriber);
213
+ startIfNeeded();
214
+ return { unsubscribe() {
215
+ refCount--;
216
+ resetIfNeeded();
217
+ const index = observers.findIndex((v) => v === subscriber);
218
+ if (index > -1) observers.splice(index, 1);
219
+ } };
220
+ });
221
+ };
222
+ }
223
+ function tap(observer) {
224
+ return (source) => {
225
+ return observable((destination) => {
226
+ return source.subscribe({
227
+ next(value) {
228
+ var _observer$next2;
229
+ (_observer$next2 = observer.next) === null || _observer$next2 === void 0 || _observer$next2.call(observer, value);
230
+ destination.next(value);
231
+ },
232
+ error(error) {
233
+ var _observer$error2;
234
+ (_observer$error2 = observer.error) === null || _observer$error2 === void 0 || _observer$error2.call(observer, error);
235
+ destination.error(error);
236
+ },
237
+ complete() {
238
+ var _observer$complete2;
239
+ (_observer$complete2 = observer.complete) === null || _observer$complete2 === void 0 || _observer$complete2.call(observer);
240
+ destination.complete();
241
+ }
242
+ });
243
+ });
244
+ };
245
+ }
246
+ function behaviorSubject(initialValue) {
247
+ let value = initialValue;
248
+ const observerList = [];
249
+ const addObserver = (observer) => {
250
+ if (value !== void 0) observer.next(value);
251
+ observerList.push(observer);
252
+ };
253
+ const removeObserver = (observer) => {
254
+ observerList.splice(observerList.indexOf(observer), 1);
255
+ };
256
+ const obs = observable((observer) => {
257
+ addObserver(observer);
258
+ return () => {
259
+ removeObserver(observer);
260
+ };
261
+ });
262
+ obs.next = (nextValue) => {
263
+ if (value === nextValue) return;
264
+ value = nextValue;
265
+ for (const observer of observerList) observer.next(nextValue);
266
+ };
267
+ obs.get = () => value;
268
+ return obs;
269
+ }
270
+ function createChain(opts) {
271
+ return observable((observer) => {
272
+ function execute(index = 0, op = opts.op) {
273
+ const next = opts.links[index];
274
+ if (!next) throw new Error("No more links to execute - did you forget to add an ending link?");
275
+ const subscription = next({
276
+ op,
277
+ next(nextOp) {
278
+ const nextObserver = execute(index + 1, nextOp);
279
+ return nextObserver;
280
+ }
281
+ });
282
+ return subscription;
283
+ }
284
+ const obs$ = execute();
285
+ return obs$.subscribe(observer);
286
+ });
287
+ }
288
+ function asArray(value) {
289
+ return Array.isArray(value) ? value : [value];
290
+ }
291
+ function splitLink(opts) {
292
+ return (runtime) => {
293
+ const yes = asArray(opts.true).map((link) => link(runtime));
294
+ const no = asArray(opts.false).map((link) => link(runtime));
295
+ return (props) => {
296
+ return observable((observer) => {
297
+ const links = opts.condition(props.op) ? yes : no;
298
+ return createChain({
299
+ op: props.op,
300
+ links
301
+ }).subscribe(observer);
302
+ });
303
+ };
304
+ };
305
+ }
306
+ var import_defineProperty$7 = __toESM$1(require_defineProperty$1());
307
+ var UnknownCauseError = class extends Error {
308
+ constructor(cause) {
309
+ super(getMessage(cause));
310
+ Object.assign(this, cause);
311
+ }
312
+ };
313
+ function getMessage(cause) {
314
+ if ("message" in cause) return String(cause.message);
315
+ return void 0;
316
+ }
317
+ function getCauseFromUnknown(cause) {
318
+ if (cause instanceof Error) return cause;
319
+ const type = typeof cause;
320
+ if (type === "undefined" || type === "function" || cause === null) return void 0;
321
+ if (type !== "object") return new Error(String(cause));
322
+ if (isObject(cause)) return new UnknownCauseError(cause);
323
+ return void 0;
324
+ }
325
+ function getTRPCErrorFromUnknown(cause) {
326
+ if (cause instanceof TRPCError) return cause;
327
+ if (cause instanceof Error && cause.name === "TRPCError") return cause;
328
+ const trpcError = new TRPCError({
329
+ code: "INTERNAL_SERVER_ERROR",
330
+ cause
331
+ });
332
+ if (cause instanceof Error && cause.stack) trpcError.stack = cause.stack;
333
+ return trpcError;
334
+ }
335
+ var TRPCError = class extends Error {
336
+ constructor(opts) {
337
+ var _ref, _opts$message, _this$cause;
338
+ const cause = getCauseFromUnknown(opts.cause);
339
+ const message = (_ref = (_opts$message = opts.message) !== null && _opts$message !== void 0 ? _opts$message : cause === null || cause === void 0 ? void 0 : cause.message) !== null && _ref !== void 0 ? _ref : opts.code;
340
+ super(message, { cause });
341
+ (0, import_defineProperty$7.default)(this, "cause", void 0);
342
+ (0, import_defineProperty$7.default)(this, "code", void 0);
343
+ this.code = opts.code;
344
+ this.name = "TRPCError";
345
+ (_this$cause = this.cause) !== null && _this$cause !== void 0 || (this.cause = cause);
346
+ }
347
+ };
348
+ var import_objectSpread2$1$1 = __toESM$1(require_objectSpread2$1());
349
+ function transformResultInner(response, transformer) {
350
+ if ("error" in response) {
351
+ const error = transformer.deserialize(response.error);
352
+ return {
353
+ ok: false,
354
+ error: (0, import_objectSpread2$1$1.default)((0, import_objectSpread2$1$1.default)({}, response), {}, { error })
355
+ };
356
+ }
357
+ const result = (0, import_objectSpread2$1$1.default)((0, import_objectSpread2$1$1.default)({}, response.result), (!response.result.type || response.result.type === "data") && {
358
+ type: "data",
359
+ data: transformer.deserialize(response.result.data)
360
+ });
361
+ return {
362
+ ok: true,
363
+ result
364
+ };
365
+ }
366
+ var TransformResultError = class extends Error {
367
+ constructor() {
368
+ super("Unable to transform response from server");
369
+ }
370
+ };
371
+ function transformResult(response, transformer) {
372
+ let result;
373
+ try {
374
+ result = transformResultInner(response, transformer);
375
+ } catch (_unused) {
376
+ throw new TransformResultError();
377
+ }
378
+ if (!result.ok && (!isObject(result.error.error) || typeof result.error.error["code"] !== "number")) throw new TransformResultError();
379
+ if (result.ok && !isObject(result.result)) throw new TransformResultError();
380
+ return result;
381
+ }
382
+ __toESM$1(require_objectSpread2$1());
383
+ function isProcedure(procedureOrRouter) {
384
+ return typeof procedureOrRouter === "function";
385
+ }
386
+ async function getProcedureAtPath(router, path) {
387
+ const { _def } = router;
388
+ let procedure = _def.procedures[path];
389
+ while (!procedure) {
390
+ const key = Object.keys(_def.lazy).find((key$1) => path.startsWith(key$1));
391
+ if (!key) return null;
392
+ const lazyRouter = _def.lazy[key];
393
+ await lazyRouter.load();
394
+ procedure = _def.procedures[path];
395
+ }
396
+ return procedure;
397
+ }
398
+ async function callProcedure(opts) {
399
+ const { type, path } = opts;
400
+ const proc = await getProcedureAtPath(opts.router, path);
401
+ if (!proc || !isProcedure(proc) || proc._def.type !== type && !opts.allowMethodOverride) throw new TRPCError({
402
+ code: "NOT_FOUND",
403
+ message: `No "${type}"-procedure on path "${path}"`
404
+ });
405
+ /* istanbul ignore if -- @preserve */
406
+ if (proc._def.type !== type && opts.allowMethodOverride && proc._def.type === "subscription") throw new TRPCError({
407
+ code: "METHOD_NOT_SUPPORTED",
408
+ message: `Method override is not supported for subscriptions`
409
+ });
410
+ return proc(opts);
411
+ }
412
+ const trackedSymbol = Symbol();
413
+ function isTrackedEnvelope(value) {
414
+ return Array.isArray(value) && value[2] === trackedSymbol;
415
+ }
416
+ __toESM$1(require_objectSpread2$1());
417
+ function isAbortError(error) {
418
+ return isObject(error) && error["name"] === "AbortError";
419
+ }
420
+ var import_defineProperty$6 = __toESM$1(require_defineProperty$1());
421
+ let _Symbol$toStringTag;
422
+ const subscribableCache = /* @__PURE__ */ new WeakMap();
423
+ const NOOP = () => {
424
+ };
425
+ _Symbol$toStringTag = Symbol.toStringTag;
426
+ var Unpromise = class Unpromise2 {
427
+ constructor(arg) {
428
+ (0, import_defineProperty$6.default)(this, "promise", void 0);
429
+ (0, import_defineProperty$6.default)(this, "subscribers", []);
430
+ (0, import_defineProperty$6.default)(this, "settlement", null);
431
+ (0, import_defineProperty$6.default)(this, _Symbol$toStringTag, "Unpromise");
432
+ if (typeof arg === "function") this.promise = new Promise(arg);
433
+ else this.promise = arg;
434
+ const thenReturn = this.promise.then((value) => {
435
+ const { subscribers } = this;
436
+ this.subscribers = null;
437
+ this.settlement = {
438
+ status: "fulfilled",
439
+ value
440
+ };
441
+ subscribers === null || subscribers === void 0 || subscribers.forEach(({ resolve }) => {
442
+ resolve(value);
443
+ });
444
+ });
445
+ if ("catch" in thenReturn) thenReturn.catch((reason) => {
446
+ const { subscribers } = this;
447
+ this.subscribers = null;
448
+ this.settlement = {
449
+ status: "rejected",
450
+ reason
451
+ };
452
+ subscribers === null || subscribers === void 0 || subscribers.forEach(({ reject }) => {
453
+ reject(reason);
454
+ });
455
+ });
456
+ }
457
+ /** Create a promise that mitigates uncontrolled subscription to a long-lived
458
+ * Promise via .then() and .catch() - otherwise a source of memory leaks.
459
+ *
460
+ * The returned promise has an `unsubscribe()` method which can be called when
461
+ * the Promise is no longer being tracked by application logic, and which
462
+ * ensures that there is no reference chain from the original promise to the
463
+ * new one, and therefore no memory leak.
464
+ *
465
+ * If original promise has not yet settled, this adds a new unique promise
466
+ * that listens to then/catch events, along with an `unsubscribe()` method to
467
+ * detach it.
468
+ *
469
+ * If original promise has settled, then creates a new Promise.resolve() or
470
+ * Promise.reject() and provided unsubscribe is a noop.
471
+ *
472
+ * If you call `unsubscribe()` before the returned Promise has settled, it
473
+ * will never settle.
474
+ */
475
+ subscribe() {
476
+ let promise;
477
+ let unsubscribe;
478
+ const { settlement } = this;
479
+ if (settlement === null) {
480
+ if (this.subscribers === null) throw new Error("Unpromise settled but still has subscribers");
481
+ const subscriber = withResolvers$1();
482
+ this.subscribers = listWithMember(this.subscribers, subscriber);
483
+ promise = subscriber.promise;
484
+ unsubscribe = () => {
485
+ if (this.subscribers !== null) this.subscribers = listWithoutMember(this.subscribers, subscriber);
486
+ };
487
+ } else {
488
+ const { status } = settlement;
489
+ if (status === "fulfilled") promise = Promise.resolve(settlement.value);
490
+ else promise = Promise.reject(settlement.reason);
491
+ unsubscribe = NOOP;
492
+ }
493
+ return Object.assign(promise, { unsubscribe });
494
+ }
495
+ /** STANDARD PROMISE METHODS (but returning a SubscribedPromise) */
496
+ then(onfulfilled, onrejected) {
497
+ const subscribed = this.subscribe();
498
+ const { unsubscribe } = subscribed;
499
+ return Object.assign(subscribed.then(onfulfilled, onrejected), { unsubscribe });
500
+ }
501
+ catch(onrejected) {
502
+ const subscribed = this.subscribe();
503
+ const { unsubscribe } = subscribed;
504
+ return Object.assign(subscribed.catch(onrejected), { unsubscribe });
505
+ }
506
+ finally(onfinally) {
507
+ const subscribed = this.subscribe();
508
+ const { unsubscribe } = subscribed;
509
+ return Object.assign(subscribed.finally(onfinally), { unsubscribe });
510
+ }
511
+ /** Unpromise STATIC METHODS */
512
+ /** Create or Retrieve the proxy Unpromise (a re-used Unpromise for the VM lifetime
513
+ * of the provided Promise reference) */
514
+ static proxy(promise) {
515
+ const cached = Unpromise2.getSubscribablePromise(promise);
516
+ return typeof cached !== "undefined" ? cached : Unpromise2.createSubscribablePromise(promise);
517
+ }
518
+ /** Create and store an Unpromise keyed by an original Promise. */
519
+ static createSubscribablePromise(promise) {
520
+ const created = new Unpromise2(promise);
521
+ subscribableCache.set(promise, created);
522
+ subscribableCache.set(created, created);
523
+ return created;
524
+ }
525
+ /** Retrieve a previously-created Unpromise keyed by an original Promise. */
526
+ static getSubscribablePromise(promise) {
527
+ return subscribableCache.get(promise);
528
+ }
529
+ /** Promise STATIC METHODS */
530
+ /** Lookup the Unpromise for this promise, and derive a SubscribedPromise from
531
+ * it (that can be later unsubscribed to eliminate Memory leaks) */
532
+ static resolve(value) {
533
+ const promise = typeof value === "object" && value !== null && "then" in value && typeof value.then === "function" ? value : Promise.resolve(value);
534
+ return Unpromise2.proxy(promise).subscribe();
535
+ }
536
+ static async any(values) {
537
+ const valuesArray = Array.isArray(values) ? values : [...values];
538
+ const subscribedPromises = valuesArray.map(Unpromise2.resolve);
539
+ try {
540
+ return await Promise.any(subscribedPromises);
541
+ } finally {
542
+ subscribedPromises.forEach(({ unsubscribe }) => {
543
+ unsubscribe();
544
+ });
545
+ }
546
+ }
547
+ static async race(values) {
548
+ const valuesArray = Array.isArray(values) ? values : [...values];
549
+ const subscribedPromises = valuesArray.map(Unpromise2.resolve);
550
+ try {
551
+ return await Promise.race(subscribedPromises);
552
+ } finally {
553
+ subscribedPromises.forEach(({ unsubscribe }) => {
554
+ unsubscribe();
555
+ });
556
+ }
557
+ }
558
+ /** Create a race of SubscribedPromises that will fulfil to a single winning
559
+ * Promise (in a 1-Tuple). Eliminates memory leaks from long-lived promises
560
+ * accumulating .then() and .catch() subscribers. Allows simple logic to
561
+ * consume the result, like...
562
+ * ```ts
563
+ * const [ winner ] = await Unpromise.race([ promiseA, promiseB ]);
564
+ * if(winner === promiseB){
565
+ * const result = await promiseB;
566
+ * // do the thing
567
+ * }
568
+ * ```
569
+ * */
570
+ static async raceReferences(promises) {
571
+ const selfPromises = promises.map(resolveSelfTuple);
572
+ try {
573
+ return await Promise.race(selfPromises);
574
+ } finally {
575
+ for (const promise of selfPromises) promise.unsubscribe();
576
+ }
577
+ }
578
+ };
579
+ function resolveSelfTuple(promise) {
580
+ return Unpromise.proxy(promise).then(() => [promise]);
581
+ }
582
+ function withResolvers$1() {
583
+ let resolve;
584
+ let reject;
585
+ const promise = new Promise((_resolve, _reject) => {
586
+ resolve = _resolve;
587
+ reject = _reject;
588
+ });
589
+ return {
590
+ promise,
591
+ resolve,
592
+ reject
593
+ };
594
+ }
595
+ function listWithMember(arr, member) {
596
+ return [...arr, member];
597
+ }
598
+ function listWithoutIndex(arr, index) {
599
+ return [...arr.slice(0, index), ...arr.slice(index + 1)];
600
+ }
601
+ function listWithoutMember(arr, member) {
602
+ const index = arr.indexOf(member);
603
+ if (index !== -1) return listWithoutIndex(arr, index);
604
+ return arr;
605
+ }
606
+ var _Symbol, _Symbol$dispose, _Symbol2, _Symbol2$asyncDispose;
607
+ (_Symbol$dispose = (_Symbol = Symbol).dispose) !== null && _Symbol$dispose !== void 0 || (_Symbol.dispose = Symbol());
608
+ (_Symbol2$asyncDispose = (_Symbol2 = Symbol).asyncDispose) !== null && _Symbol2$asyncDispose !== void 0 || (_Symbol2.asyncDispose = Symbol());
609
+ function makeResource(thing, dispose) {
610
+ const it = thing;
611
+ const existing = it[Symbol.dispose];
612
+ it[Symbol.dispose] = () => {
613
+ dispose();
614
+ existing === null || existing === void 0 || existing();
615
+ };
616
+ return it;
617
+ }
618
+ function makeAsyncResource(thing, dispose) {
619
+ const it = thing;
620
+ const existing = it[Symbol.asyncDispose];
621
+ it[Symbol.asyncDispose] = async () => {
622
+ await dispose();
623
+ await (existing === null || existing === void 0 ? void 0 : existing());
624
+ };
625
+ return it;
626
+ }
627
+ const disposablePromiseTimerResult = Symbol();
628
+ function timerResource(ms) {
629
+ let timer = null;
630
+ return makeResource({ start() {
631
+ if (timer) throw new Error("Timer already started");
632
+ const promise = new Promise((resolve) => {
633
+ timer = setTimeout(() => resolve(disposablePromiseTimerResult), ms);
634
+ });
635
+ return promise;
636
+ } }, () => {
637
+ if (timer) clearTimeout(timer);
638
+ });
639
+ }
640
+ var require_usingCtx$1 = __commonJS$1({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(exports, module) {
641
+ function _usingCtx() {
642
+ var r = "function" == typeof SuppressedError ? SuppressedError : function(r$1, e$1) {
643
+ var n$1 = Error();
644
+ return n$1.name = "SuppressedError", n$1.error = r$1, n$1.suppressed = e$1, n$1;
645
+ }, e = {}, n = [];
646
+ function using(r$1, e$1) {
647
+ if (null != e$1) {
648
+ if (Object(e$1) !== e$1) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
649
+ if (r$1) var o = e$1[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")];
650
+ if (void 0 === o && (o = e$1[Symbol.dispose || Symbol["for"]("Symbol.dispose")], r$1)) var t = o;
651
+ if ("function" != typeof o) throw new TypeError("Object is not disposable.");
652
+ t && (o = function o$1() {
653
+ try {
654
+ t.call(e$1);
655
+ } catch (r$2) {
656
+ return Promise.reject(r$2);
657
+ }
658
+ }), n.push({
659
+ v: e$1,
660
+ d: o,
661
+ a: r$1
662
+ });
663
+ } else r$1 && n.push({
664
+ d: e$1,
665
+ a: r$1
666
+ });
667
+ return e$1;
668
+ }
669
+ return {
670
+ e,
671
+ u: using.bind(null, false),
672
+ a: using.bind(null, true),
673
+ d: function d() {
674
+ var o, t = this.e, s = 0;
675
+ function next() {
676
+ for (; o = n.pop(); ) try {
677
+ if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);
678
+ if (o.d) {
679
+ var r$1 = o.d.call(o.v);
680
+ if (o.a) return s |= 2, Promise.resolve(r$1).then(next, err);
681
+ } else s |= 1;
682
+ } catch (r$2) {
683
+ return err(r$2);
684
+ }
685
+ if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();
686
+ if (t !== e) throw t;
687
+ }
688
+ function err(n$1) {
689
+ return t = t !== e ? new r(n$1, t) : n$1, next();
690
+ }
691
+ return next();
692
+ }
693
+ };
694
+ }
695
+ module.exports = _usingCtx, module.exports.__esModule = true, module.exports["default"] = module.exports;
696
+ } });
697
+ var require_OverloadYield$1 = __commonJS$1({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(exports, module) {
698
+ function _OverloadYield(e, d) {
699
+ this.v = e, this.k = d;
700
+ }
701
+ module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
702
+ } });
703
+ var require_awaitAsyncGenerator$1 = __commonJS$1({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(exports, module) {
704
+ var OverloadYield$2 = require_OverloadYield$1();
705
+ function _awaitAsyncGenerator$5(e) {
706
+ return new OverloadYield$2(e, 0);
707
+ }
708
+ module.exports = _awaitAsyncGenerator$5, module.exports.__esModule = true, module.exports["default"] = module.exports;
709
+ } });
710
+ var require_wrapAsyncGenerator$1 = __commonJS$1({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(exports, module) {
711
+ var OverloadYield$1 = require_OverloadYield$1();
712
+ function _wrapAsyncGenerator$6(e) {
713
+ return function() {
714
+ return new AsyncGenerator(e.apply(this, arguments));
715
+ };
716
+ }
717
+ function AsyncGenerator(e) {
718
+ var r, t;
719
+ function resume(r$1, t$1) {
720
+ try {
721
+ var n = e[r$1](t$1), o = n.value, u = o instanceof OverloadYield$1;
722
+ Promise.resolve(u ? o.v : o).then(function(t$2) {
723
+ if (u) {
724
+ var i = "return" === r$1 ? "return" : "next";
725
+ if (!o.k || t$2.done) return resume(i, t$2);
726
+ t$2 = e[i](t$2).value;
727
+ }
728
+ settle(n.done ? "return" : "normal", t$2);
729
+ }, function(e$1) {
730
+ resume("throw", e$1);
731
+ });
732
+ } catch (e$1) {
733
+ settle("throw", e$1);
734
+ }
735
+ }
736
+ function settle(e$1, n) {
737
+ switch (e$1) {
738
+ case "return":
739
+ r.resolve({
740
+ value: n,
741
+ done: true
742
+ });
743
+ break;
744
+ case "throw":
745
+ r.reject(n);
746
+ break;
747
+ default:
748
+ r.resolve({
749
+ value: n,
750
+ done: false
751
+ });
752
+ }
753
+ (r = r.next) ? resume(r.key, r.arg) : t = null;
754
+ }
755
+ this._invoke = function(e$1, n) {
756
+ return new Promise(function(o, u) {
757
+ var i = {
758
+ key: e$1,
759
+ arg: n,
760
+ resolve: o,
761
+ reject: u,
762
+ next: null
763
+ };
764
+ t ? t = t.next = i : (r = t = i, resume(e$1, n));
765
+ });
766
+ }, "function" != typeof e["return"] && (this["return"] = void 0);
767
+ }
768
+ AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
769
+ return this;
770
+ }, AsyncGenerator.prototype.next = function(e) {
771
+ return this._invoke("next", e);
772
+ }, AsyncGenerator.prototype["throw"] = function(e) {
773
+ return this._invoke("throw", e);
774
+ }, AsyncGenerator.prototype["return"] = function(e) {
775
+ return this._invoke("return", e);
776
+ };
777
+ module.exports = _wrapAsyncGenerator$6, module.exports.__esModule = true, module.exports["default"] = module.exports;
778
+ } });
779
+ __toESM$1(require_usingCtx$1());
780
+ __toESM$1(require_awaitAsyncGenerator$1());
781
+ __toESM$1(require_wrapAsyncGenerator$1());
782
+ function iteratorResource(iterable) {
783
+ const iterator = iterable[Symbol.asyncIterator]();
784
+ if (iterator[Symbol.asyncDispose]) return iterator;
785
+ return makeAsyncResource(iterator, async () => {
786
+ var _iterator$return;
787
+ await ((_iterator$return = iterator.return) === null || _iterator$return === void 0 ? void 0 : _iterator$return.call(iterator));
788
+ });
789
+ }
790
+ function createDeferred() {
791
+ let resolve;
792
+ let reject;
793
+ const promise = new Promise((res, rej) => {
794
+ resolve = res;
795
+ reject = rej;
796
+ });
797
+ return {
798
+ promise,
799
+ resolve,
800
+ reject
801
+ };
802
+ }
803
+ __toESM$1(require_usingCtx$1());
804
+ __toESM$1(require_awaitAsyncGenerator$1());
805
+ __toESM$1(require_wrapAsyncGenerator$1());
806
+ __toESM$1(require_usingCtx$1());
807
+ __toESM$1(require_awaitAsyncGenerator$1());
808
+ __toESM$1(require_wrapAsyncGenerator$1());
809
+ var require_asyncIterator$1 = __commonJS$1({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(exports, module) {
810
+ function _asyncIterator$2(r) {
811
+ var n, t, o, e = 2;
812
+ for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--; ) {
813
+ if (t && null != (n = r[t])) return n.call(r);
814
+ if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));
815
+ t = "@@asyncIterator", o = "@@iterator";
816
+ }
817
+ throw new TypeError("Object is not async iterable");
818
+ }
819
+ function AsyncFromSyncIterator(r) {
820
+ function AsyncFromSyncIteratorContinuation(r$1) {
821
+ if (Object(r$1) !== r$1) return Promise.reject(new TypeError(r$1 + " is not an object."));
822
+ var n = r$1.done;
823
+ return Promise.resolve(r$1.value).then(function(r$2) {
824
+ return {
825
+ value: r$2,
826
+ done: n
827
+ };
828
+ });
829
+ }
830
+ return AsyncFromSyncIterator = function AsyncFromSyncIterator$1(r$1) {
831
+ this.s = r$1, this.n = r$1.next;
832
+ }, AsyncFromSyncIterator.prototype = {
833
+ s: null,
834
+ n: null,
835
+ next: function next() {
836
+ return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
837
+ },
838
+ "return": function _return(r$1) {
839
+ var n = this.s["return"];
840
+ return void 0 === n ? Promise.resolve({
841
+ value: r$1,
842
+ done: true
843
+ }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
844
+ },
845
+ "throw": function _throw(r$1) {
846
+ var n = this.s["return"];
847
+ return void 0 === n ? Promise.reject(r$1) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
848
+ }
849
+ }, new AsyncFromSyncIterator(r);
850
+ }
851
+ module.exports = _asyncIterator$2, module.exports.__esModule = true, module.exports["default"] = module.exports;
852
+ } });
853
+ var import_awaitAsyncGenerator$1 = __toESM$1(require_awaitAsyncGenerator$1());
854
+ var import_wrapAsyncGenerator$2 = __toESM$1(require_wrapAsyncGenerator$1());
855
+ var import_usingCtx$1 = __toESM$1(require_usingCtx$1());
856
+ __toESM$1(require_asyncIterator$1());
857
+ const CHUNK_VALUE_TYPE_PROMISE = 0;
858
+ const CHUNK_VALUE_TYPE_ASYNC_ITERABLE = 1;
859
+ const PROMISE_STATUS_FULFILLED = 0;
860
+ const PROMISE_STATUS_REJECTED = 1;
861
+ const ASYNC_ITERABLE_STATUS_RETURN = 0;
862
+ const ASYNC_ITERABLE_STATUS_YIELD = 1;
863
+ const ASYNC_ITERABLE_STATUS_ERROR = 2;
864
+ var AsyncError = class extends Error {
865
+ constructor(data) {
866
+ super("Received error from server");
867
+ this.data = data;
868
+ }
869
+ };
870
+ const nodeJsStreamToReaderEsque = (source) => {
871
+ return { getReader() {
872
+ const stream = new ReadableStream({ start(controller) {
873
+ source.on("data", (chunk) => {
874
+ controller.enqueue(chunk);
875
+ });
876
+ source.on("end", () => {
877
+ controller.close();
878
+ });
879
+ source.on("error", (error) => {
880
+ controller.error(error);
881
+ });
882
+ } });
883
+ return stream.getReader();
884
+ } };
885
+ };
886
+ function createLineAccumulator(from) {
887
+ const reader = "getReader" in from ? from.getReader() : nodeJsStreamToReaderEsque(from).getReader();
888
+ let lineAggregate = "";
889
+ return new ReadableStream({
890
+ async pull(controller) {
891
+ const { done, value } = await reader.read();
892
+ if (done) controller.close();
893
+ else controller.enqueue(value);
894
+ },
895
+ cancel() {
896
+ return reader.cancel();
897
+ }
898
+ }).pipeThrough(new TextDecoderStream()).pipeThrough(new TransformStream({ transform(chunk, controller) {
899
+ var _parts$pop;
900
+ lineAggregate += chunk;
901
+ const parts = lineAggregate.split("\n");
902
+ lineAggregate = (_parts$pop = parts.pop()) !== null && _parts$pop !== void 0 ? _parts$pop : "";
903
+ for (const part of parts) controller.enqueue(part);
904
+ } }));
905
+ }
906
+ function createConsumerStream(from) {
907
+ const stream = createLineAccumulator(from);
908
+ let sentHead = false;
909
+ return stream.pipeThrough(new TransformStream({ transform(line, controller) {
910
+ if (!sentHead) {
911
+ const head = JSON.parse(line);
912
+ controller.enqueue(head);
913
+ sentHead = true;
914
+ } else {
915
+ const chunk = JSON.parse(line);
916
+ controller.enqueue(chunk);
917
+ }
918
+ } }));
919
+ }
920
+ function createStreamsManager(abortController) {
921
+ const controllerMap = /* @__PURE__ */ new Map();
922
+ function isEmpty() {
923
+ return Array.from(controllerMap.values()).every((c) => c.closed);
924
+ }
925
+ function createStreamController() {
926
+ let originalController;
927
+ const stream = new ReadableStream({ start(controller) {
928
+ originalController = controller;
929
+ } });
930
+ const streamController = {
931
+ enqueue: (v) => originalController.enqueue(v),
932
+ close: () => {
933
+ originalController.close();
934
+ clear();
935
+ if (isEmpty()) abortController.abort();
936
+ },
937
+ closed: false,
938
+ getReaderResource: () => {
939
+ const reader = stream.getReader();
940
+ return makeResource(reader, () => {
941
+ streamController.close();
942
+ reader.releaseLock();
943
+ });
944
+ },
945
+ error: (reason) => {
946
+ originalController.error(reason);
947
+ clear();
948
+ }
949
+ };
950
+ function clear() {
951
+ Object.assign(streamController, {
952
+ closed: true,
953
+ close: () => {
954
+ },
955
+ enqueue: () => {
956
+ },
957
+ getReaderResource: null,
958
+ error: () => {
959
+ }
960
+ });
961
+ }
962
+ return streamController;
963
+ }
964
+ function getOrCreate(chunkId) {
965
+ let c = controllerMap.get(chunkId);
966
+ if (!c) {
967
+ c = createStreamController();
968
+ controllerMap.set(chunkId, c);
969
+ }
970
+ return c;
971
+ }
972
+ function cancelAll(reason) {
973
+ for (const controller of controllerMap.values()) controller.error(reason);
974
+ }
975
+ function closeAll() {
976
+ for (const controller of controllerMap.values()) controller.close();
977
+ }
978
+ return {
979
+ getOrCreate,
980
+ cancelAll,
981
+ closeAll
982
+ };
983
+ }
984
+ async function jsonlStreamConsumer(opts) {
985
+ const { deserialize = (v) => v } = opts;
986
+ let source = createConsumerStream(opts.from);
987
+ if (deserialize) source = source.pipeThrough(new TransformStream({ transform(chunk, controller) {
988
+ controller.enqueue(deserialize(chunk));
989
+ } }));
990
+ let headDeferred = createDeferred();
991
+ const streamManager = createStreamsManager(opts.abortController);
992
+ function decodeChunkDefinition(value) {
993
+ const [_path, type, chunkId] = value;
994
+ const controller = streamManager.getOrCreate(chunkId);
995
+ switch (type) {
996
+ case CHUNK_VALUE_TYPE_PROMISE:
997
+ return run(async () => {
998
+ try {
999
+ var _usingCtx3 = (0, import_usingCtx$1.default)();
1000
+ const reader = _usingCtx3.u(controller.getReaderResource());
1001
+ const { value: value$1 } = await reader.read();
1002
+ const [_chunkId, status, data] = value$1;
1003
+ switch (status) {
1004
+ case PROMISE_STATUS_FULFILLED:
1005
+ return decode(data);
1006
+ case PROMISE_STATUS_REJECTED:
1007
+ var _opts$formatError3, _opts$formatError4;
1008
+ throw (_opts$formatError3 = (_opts$formatError4 = opts.formatError) === null || _opts$formatError4 === void 0 ? void 0 : _opts$formatError4.call(opts, { error: data })) !== null && _opts$formatError3 !== void 0 ? _opts$formatError3 : new AsyncError(data);
1009
+ }
1010
+ } catch (_) {
1011
+ _usingCtx3.e = _;
1012
+ } finally {
1013
+ _usingCtx3.d();
1014
+ }
1015
+ });
1016
+ case CHUNK_VALUE_TYPE_ASYNC_ITERABLE:
1017
+ return run((0, import_wrapAsyncGenerator$2.default)(function* () {
1018
+ try {
1019
+ var _usingCtx4 = (0, import_usingCtx$1.default)();
1020
+ const reader = _usingCtx4.u(controller.getReaderResource());
1021
+ while (true) {
1022
+ const { value: value$1 } = yield (0, import_awaitAsyncGenerator$1.default)(reader.read());
1023
+ const [_chunkId, status, data] = value$1;
1024
+ switch (status) {
1025
+ case ASYNC_ITERABLE_STATUS_YIELD:
1026
+ yield decode(data);
1027
+ break;
1028
+ case ASYNC_ITERABLE_STATUS_RETURN:
1029
+ return decode(data);
1030
+ case ASYNC_ITERABLE_STATUS_ERROR:
1031
+ var _opts$formatError5, _opts$formatError6;
1032
+ throw (_opts$formatError5 = (_opts$formatError6 = opts.formatError) === null || _opts$formatError6 === void 0 ? void 0 : _opts$formatError6.call(opts, { error: data })) !== null && _opts$formatError5 !== void 0 ? _opts$formatError5 : new AsyncError(data);
1033
+ }
1034
+ }
1035
+ } catch (_) {
1036
+ _usingCtx4.e = _;
1037
+ } finally {
1038
+ _usingCtx4.d();
1039
+ }
1040
+ }));
1041
+ }
1042
+ }
1043
+ function decode(value) {
1044
+ const [[data], ...asyncProps] = value;
1045
+ for (const value$1 of asyncProps) {
1046
+ const [key] = value$1;
1047
+ const decoded = decodeChunkDefinition(value$1);
1048
+ if (key === null) return decoded;
1049
+ data[key] = decoded;
1050
+ }
1051
+ return data;
1052
+ }
1053
+ const handleClose = () => {
1054
+ if (headDeferred) {
1055
+ headDeferred.reject(new Error("Stream closed before head was received"));
1056
+ headDeferred = null;
1057
+ }
1058
+ streamManager.closeAll();
1059
+ };
1060
+ const handleAbort = (reason) => {
1061
+ headDeferred === null || headDeferred === void 0 || headDeferred.reject(reason);
1062
+ headDeferred = null;
1063
+ streamManager.cancelAll(reason);
1064
+ };
1065
+ source.pipeTo(new WritableStream({
1066
+ write(chunkOrHead) {
1067
+ if (headDeferred) {
1068
+ const head = chunkOrHead;
1069
+ for (const [key, value] of Object.entries(chunkOrHead)) {
1070
+ const parsed = decode(value);
1071
+ head[key] = parsed;
1072
+ }
1073
+ headDeferred.resolve(head);
1074
+ headDeferred = null;
1075
+ return;
1076
+ }
1077
+ const chunk = chunkOrHead;
1078
+ const [idx] = chunk;
1079
+ const controller = streamManager.getOrCreate(idx);
1080
+ controller.enqueue(chunk);
1081
+ },
1082
+ close: handleClose,
1083
+ abort: handleAbort
1084
+ })).catch((error) => {
1085
+ var _opts$onError4;
1086
+ (_opts$onError4 = opts.onError) === null || _opts$onError4 === void 0 || _opts$onError4.call(opts, { error });
1087
+ handleAbort(error);
1088
+ });
1089
+ return [await headDeferred.promise];
1090
+ }
1091
+ var require_asyncGeneratorDelegate = __commonJS$1({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncGeneratorDelegate.js"(exports, module) {
1092
+ var OverloadYield = require_OverloadYield$1();
1093
+ function _asyncGeneratorDelegate$1(t) {
1094
+ var e = {}, n = false;
1095
+ function pump(e$1, r) {
1096
+ return n = true, r = new Promise(function(n$1) {
1097
+ n$1(t[e$1](r));
1098
+ }), {
1099
+ done: false,
1100
+ value: new OverloadYield(r, 1)
1101
+ };
1102
+ }
1103
+ return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function() {
1104
+ return this;
1105
+ }, e.next = function(t$1) {
1106
+ return n ? (n = false, t$1) : pump("next", t$1);
1107
+ }, "function" == typeof t["throw"] && (e["throw"] = function(t$1) {
1108
+ if (n) throw n = false, t$1;
1109
+ return pump("throw", t$1);
1110
+ }), "function" == typeof t["return"] && (e["return"] = function(t$1) {
1111
+ return n ? (n = false, t$1) : pump("return", t$1);
1112
+ }), e;
1113
+ }
1114
+ module.exports = _asyncGeneratorDelegate$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
1115
+ } });
1116
+ __toESM$1(require_asyncIterator$1());
1117
+ var import_awaitAsyncGenerator$2 = __toESM$1(require_awaitAsyncGenerator$1());
1118
+ var import_wrapAsyncGenerator$1 = __toESM$1(require_wrapAsyncGenerator$1());
1119
+ __toESM$1(require_asyncGeneratorDelegate());
1120
+ var import_usingCtx$2 = __toESM$1(require_usingCtx$1());
1121
+ const PING_EVENT = "ping";
1122
+ const SERIALIZED_ERROR_EVENT = "serialized-error";
1123
+ const CONNECTED_EVENT = "connected";
1124
+ const RETURN_EVENT = "return";
1125
+ async function withTimeout(opts) {
1126
+ try {
1127
+ var _usingCtx$1 = (0, import_usingCtx$2.default)();
1128
+ const timeoutPromise = _usingCtx$1.u(timerResource(opts.timeoutMs));
1129
+ const res = await Unpromise.race([opts.promise, timeoutPromise.start()]);
1130
+ if (res === disposablePromiseTimerResult) return await opts.onTimeout();
1131
+ return res;
1132
+ } catch (_) {
1133
+ _usingCtx$1.e = _;
1134
+ } finally {
1135
+ _usingCtx$1.d();
1136
+ }
1137
+ }
1138
+ function sseStreamConsumer(opts) {
1139
+ const { deserialize = (v) => v } = opts;
1140
+ let clientOptions = emptyObject();
1141
+ const signal = opts.signal;
1142
+ let _es = null;
1143
+ const createStream = () => new ReadableStream({
1144
+ async start(controller) {
1145
+ const [url, init] = await Promise.all([opts.url(), opts.init()]);
1146
+ const eventSource = _es = new opts.EventSource(url, init);
1147
+ controller.enqueue({
1148
+ type: "connecting",
1149
+ eventSource: _es,
1150
+ event: null
1151
+ });
1152
+ eventSource.addEventListener(CONNECTED_EVENT, (_msg) => {
1153
+ const msg = _msg;
1154
+ const options = JSON.parse(msg.data);
1155
+ clientOptions = options;
1156
+ controller.enqueue({
1157
+ type: "connected",
1158
+ options,
1159
+ eventSource
1160
+ });
1161
+ });
1162
+ eventSource.addEventListener(SERIALIZED_ERROR_EVENT, (_msg) => {
1163
+ const msg = _msg;
1164
+ controller.enqueue({
1165
+ type: "serialized-error",
1166
+ error: deserialize(JSON.parse(msg.data)),
1167
+ eventSource
1168
+ });
1169
+ });
1170
+ eventSource.addEventListener(PING_EVENT, () => {
1171
+ controller.enqueue({
1172
+ type: "ping",
1173
+ eventSource
1174
+ });
1175
+ });
1176
+ eventSource.addEventListener(RETURN_EVENT, () => {
1177
+ eventSource.close();
1178
+ controller.close();
1179
+ _es = null;
1180
+ });
1181
+ eventSource.addEventListener("error", (event) => {
1182
+ if (eventSource.readyState === eventSource.CLOSED) controller.error(event);
1183
+ else controller.enqueue({
1184
+ type: "connecting",
1185
+ eventSource,
1186
+ event
1187
+ });
1188
+ });
1189
+ eventSource.addEventListener("message", (_msg) => {
1190
+ const msg = _msg;
1191
+ const chunk = deserialize(JSON.parse(msg.data));
1192
+ const def = { data: chunk };
1193
+ if (msg.lastEventId) def.id = msg.lastEventId;
1194
+ controller.enqueue({
1195
+ type: "data",
1196
+ data: def,
1197
+ eventSource
1198
+ });
1199
+ });
1200
+ const onAbort = () => {
1201
+ try {
1202
+ eventSource.close();
1203
+ controller.close();
1204
+ } catch (_unused) {
1205
+ }
1206
+ };
1207
+ if (signal.aborted) onAbort();
1208
+ else signal.addEventListener("abort", onAbort);
1209
+ },
1210
+ cancel() {
1211
+ _es === null || _es === void 0 || _es.close();
1212
+ }
1213
+ });
1214
+ const getStreamResource = () => {
1215
+ let stream = createStream();
1216
+ let reader = stream.getReader();
1217
+ async function dispose() {
1218
+ await reader.cancel();
1219
+ _es = null;
1220
+ }
1221
+ return makeAsyncResource({
1222
+ read() {
1223
+ return reader.read();
1224
+ },
1225
+ async recreate() {
1226
+ await dispose();
1227
+ stream = createStream();
1228
+ reader = stream.getReader();
1229
+ }
1230
+ }, dispose);
1231
+ };
1232
+ return run((0, import_wrapAsyncGenerator$1.default)(function* () {
1233
+ try {
1234
+ var _usingCtx3 = (0, import_usingCtx$2.default)();
1235
+ const stream = _usingCtx3.a(getStreamResource());
1236
+ while (true) {
1237
+ let promise = stream.read();
1238
+ const timeoutMs = clientOptions.reconnectAfterInactivityMs;
1239
+ if (timeoutMs) promise = withTimeout({
1240
+ promise,
1241
+ timeoutMs,
1242
+ onTimeout: async () => {
1243
+ const res = {
1244
+ value: {
1245
+ type: "timeout",
1246
+ ms: timeoutMs,
1247
+ eventSource: _es
1248
+ },
1249
+ done: false
1250
+ };
1251
+ await stream.recreate();
1252
+ return res;
1253
+ }
1254
+ });
1255
+ const result = yield (0, import_awaitAsyncGenerator$2.default)(promise);
1256
+ if (result.done) return result.value;
1257
+ yield result.value;
1258
+ }
1259
+ } catch (_) {
1260
+ _usingCtx3.e = _;
1261
+ } finally {
1262
+ yield (0, import_awaitAsyncGenerator$2.default)(_usingCtx3.d());
1263
+ }
1264
+ }));
1265
+ }
1266
+ __toESM$1(require_wrapAsyncGenerator$1());
1267
+ __toESM$1(require_objectSpread2$1());
1268
+ var import_defineProperty$5 = __toESM(require_defineProperty());
1269
+ var import_objectSpread2$a = __toESM(require_objectSpread2());
1270
+ function isTRPCClientError(cause) {
1271
+ return cause instanceof TRPCClientError;
1272
+ }
1273
+ function isTRPCErrorResponse(obj) {
1274
+ return isObject(obj) && isObject(obj["error"]) && typeof obj["error"]["code"] === "number" && typeof obj["error"]["message"] === "string";
1275
+ }
1276
+ function getMessageFromUnknownError(err, fallback) {
1277
+ if (typeof err === "string") return err;
1278
+ if (isObject(err) && typeof err["message"] === "string") return err["message"];
1279
+ return fallback;
1280
+ }
1281
+ var TRPCClientError = class TRPCClientError2 extends Error {
1282
+ constructor(message, opts) {
1283
+ var _opts$result, _opts$result2;
1284
+ const cause = opts === null || opts === void 0 ? void 0 : opts.cause;
1285
+ super(message, { cause });
1286
+ (0, import_defineProperty$5.default)(this, "cause", void 0);
1287
+ (0, import_defineProperty$5.default)(this, "shape", void 0);
1288
+ (0, import_defineProperty$5.default)(this, "data", void 0);
1289
+ (0, import_defineProperty$5.default)(this, "meta", void 0);
1290
+ this.meta = opts === null || opts === void 0 ? void 0 : opts.meta;
1291
+ this.cause = cause;
1292
+ this.shape = opts === null || opts === void 0 || (_opts$result = opts.result) === null || _opts$result === void 0 ? void 0 : _opts$result.error;
1293
+ this.data = opts === null || opts === void 0 || (_opts$result2 = opts.result) === null || _opts$result2 === void 0 ? void 0 : _opts$result2.error.data;
1294
+ this.name = "TRPCClientError";
1295
+ Object.setPrototypeOf(this, TRPCClientError2.prototype);
1296
+ }
1297
+ static from(_cause, opts = {}) {
1298
+ const cause = _cause;
1299
+ if (isTRPCClientError(cause)) {
1300
+ if (opts.meta) cause.meta = (0, import_objectSpread2$a.default)((0, import_objectSpread2$a.default)({}, cause.meta), opts.meta);
1301
+ return cause;
1302
+ }
1303
+ if (isTRPCErrorResponse(cause)) return new TRPCClientError2(cause.error.message, (0, import_objectSpread2$a.default)((0, import_objectSpread2$a.default)({}, opts), {}, {
1304
+ result: cause,
1305
+ cause: opts.cause
1306
+ }));
1307
+ return new TRPCClientError2(getMessageFromUnknownError(cause, "Unknown error"), (0, import_objectSpread2$a.default)((0, import_objectSpread2$a.default)({}, opts), {}, { cause }));
1308
+ }
1309
+ };
1310
+ function getTransformer(transformer) {
1311
+ const _transformer = transformer;
1312
+ if (!_transformer) return {
1313
+ input: {
1314
+ serialize: (data) => data,
1315
+ deserialize: (data) => data
1316
+ },
1317
+ output: {
1318
+ serialize: (data) => data,
1319
+ deserialize: (data) => data
1320
+ }
1321
+ };
1322
+ if ("input" in _transformer) return _transformer;
1323
+ return {
1324
+ input: _transformer,
1325
+ output: _transformer
1326
+ };
1327
+ }
1328
+ const isFunction = (fn) => typeof fn === "function";
1329
+ function getFetch(customFetchImpl) {
1330
+ if (customFetchImpl) return customFetchImpl;
1331
+ if (typeof window !== "undefined" && isFunction(window.fetch)) return window.fetch;
1332
+ if (typeof globalThis !== "undefined" && isFunction(globalThis.fetch)) return globalThis.fetch;
1333
+ throw new Error("No fetch implementation found");
1334
+ }
1335
+ var import_objectSpread2$9 = __toESM(require_objectSpread2());
1336
+ function resolveHTTPLinkOptions(opts) {
1337
+ return {
1338
+ url: opts.url.toString(),
1339
+ fetch: opts.fetch,
1340
+ transformer: getTransformer(opts.transformer),
1341
+ methodOverride: opts.methodOverride
1342
+ };
1343
+ }
1344
+ function arrayToDict(array) {
1345
+ const dict = {};
1346
+ for (let index = 0; index < array.length; index++) {
1347
+ const element = array[index];
1348
+ dict[index] = element;
1349
+ }
1350
+ return dict;
1351
+ }
1352
+ const METHOD = {
1353
+ query: "GET",
1354
+ mutation: "POST",
1355
+ subscription: "PATCH"
1356
+ };
1357
+ function getInput(opts) {
1358
+ return "input" in opts ? opts.transformer.input.serialize(opts.input) : arrayToDict(opts.inputs.map((_input) => opts.transformer.input.serialize(_input)));
1359
+ }
1360
+ const getUrl = (opts) => {
1361
+ const parts = opts.url.split("?");
1362
+ const base = parts[0].replace(/\/$/, "");
1363
+ let url = base + "/" + opts.path;
1364
+ const queryParts = [];
1365
+ if (parts[1]) queryParts.push(parts[1]);
1366
+ if ("inputs" in opts) queryParts.push("batch=1");
1367
+ if (opts.type === "query" || opts.type === "subscription") {
1368
+ const input = getInput(opts);
1369
+ if (input !== void 0 && opts.methodOverride !== "POST") queryParts.push(`input=${encodeURIComponent(JSON.stringify(input))}`);
1370
+ }
1371
+ if (queryParts.length) url += "?" + queryParts.join("&");
1372
+ return url;
1373
+ };
1374
+ const getBody = (opts) => {
1375
+ if (opts.type === "query" && opts.methodOverride !== "POST") return void 0;
1376
+ const input = getInput(opts);
1377
+ return input !== void 0 ? JSON.stringify(input) : void 0;
1378
+ };
1379
+ const jsonHttpRequester = (opts) => {
1380
+ return httpRequest((0, import_objectSpread2$9.default)((0, import_objectSpread2$9.default)({}, opts), {}, {
1381
+ contentTypeHeader: "application/json",
1382
+ getUrl,
1383
+ getBody
1384
+ }));
1385
+ };
1386
+ var AbortError = class extends Error {
1387
+ constructor() {
1388
+ const name = "AbortError";
1389
+ super(name);
1390
+ this.name = name;
1391
+ this.message = name;
1392
+ }
1393
+ };
1394
+ const throwIfAborted = (signal) => {
1395
+ var _signal$throwIfAborte;
1396
+ if (!(signal === null || signal === void 0 ? void 0 : signal.aborted)) return;
1397
+ (_signal$throwIfAborte = signal.throwIfAborted) === null || _signal$throwIfAborte === void 0 || _signal$throwIfAborte.call(signal);
1398
+ if (typeof DOMException !== "undefined") throw new DOMException("AbortError", "AbortError");
1399
+ throw new AbortError();
1400
+ };
1401
+ async function fetchHTTPResponse(opts) {
1402
+ var _opts$methodOverride, _opts$trpcAcceptHeade;
1403
+ throwIfAborted(opts.signal);
1404
+ const url = opts.getUrl(opts);
1405
+ const body = opts.getBody(opts);
1406
+ const method = (_opts$methodOverride = opts.methodOverride) !== null && _opts$methodOverride !== void 0 ? _opts$methodOverride : METHOD[opts.type];
1407
+ const resolvedHeaders = await (async () => {
1408
+ const heads = await opts.headers();
1409
+ if (Symbol.iterator in heads) return Object.fromEntries(heads);
1410
+ return heads;
1411
+ })();
1412
+ const headers = (0, import_objectSpread2$9.default)((0, import_objectSpread2$9.default)((0, import_objectSpread2$9.default)({}, opts.contentTypeHeader && method !== "GET" ? { "content-type": opts.contentTypeHeader } : {}), opts.trpcAcceptHeader ? { [(_opts$trpcAcceptHeade = opts.trpcAcceptHeaderKey) !== null && _opts$trpcAcceptHeade !== void 0 ? _opts$trpcAcceptHeade : "trpc-accept"]: opts.trpcAcceptHeader } : void 0), resolvedHeaders);
1413
+ return getFetch(opts.fetch)(url, {
1414
+ method,
1415
+ signal: opts.signal,
1416
+ body,
1417
+ headers
1418
+ });
1419
+ }
1420
+ async function httpRequest(opts) {
1421
+ const meta = {};
1422
+ const res = await fetchHTTPResponse(opts);
1423
+ meta.response = res;
1424
+ const json = await res.json();
1425
+ meta.responseJSON = json;
1426
+ return {
1427
+ json,
1428
+ meta
1429
+ };
1430
+ }
1431
+ function isOctetType(input) {
1432
+ return input instanceof Uint8Array || input instanceof Blob;
1433
+ }
1434
+ function isFormData$1(input) {
1435
+ return input instanceof FormData;
1436
+ }
1437
+ function isNonJsonSerializable(input) {
1438
+ return isOctetType(input) || isFormData$1(input);
1439
+ }
1440
+ var import_objectSpread2$8 = __toESM(require_objectSpread2());
1441
+ const universalRequester = (opts) => {
1442
+ if ("input" in opts) {
1443
+ const { input } = opts;
1444
+ if (isFormData$1(input)) {
1445
+ if (opts.type !== "mutation" && opts.methodOverride !== "POST") throw new Error("FormData is only supported for mutations");
1446
+ return httpRequest((0, import_objectSpread2$8.default)((0, import_objectSpread2$8.default)({}, opts), {}, {
1447
+ contentTypeHeader: void 0,
1448
+ getUrl,
1449
+ getBody: () => input
1450
+ }));
1451
+ }
1452
+ if (isOctetType(input)) {
1453
+ if (opts.type !== "mutation" && opts.methodOverride !== "POST") throw new Error("Octet type input is only supported for mutations");
1454
+ return httpRequest((0, import_objectSpread2$8.default)((0, import_objectSpread2$8.default)({}, opts), {}, {
1455
+ contentTypeHeader: "application/octet-stream",
1456
+ getUrl,
1457
+ getBody: () => input
1458
+ }));
1459
+ }
1460
+ }
1461
+ return jsonHttpRequester(opts);
1462
+ };
1463
+ function httpLink(opts) {
1464
+ const resolvedOpts = resolveHTTPLinkOptions(opts);
1465
+ return () => {
1466
+ return (operationOpts) => {
1467
+ const { op } = operationOpts;
1468
+ return observable((observer) => {
1469
+ const { path, input, type } = op;
1470
+ /* istanbul ignore if -- @preserve */
1471
+ if (type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
1472
+ const request = universalRequester((0, import_objectSpread2$8.default)((0, import_objectSpread2$8.default)({}, resolvedOpts), {}, {
1473
+ type,
1474
+ path,
1475
+ input,
1476
+ signal: op.signal,
1477
+ headers() {
1478
+ if (!opts.headers) return {};
1479
+ if (typeof opts.headers === "function") return opts.headers({ op });
1480
+ return opts.headers;
1481
+ }
1482
+ }));
1483
+ let meta = void 0;
1484
+ request.then((res) => {
1485
+ meta = res.meta;
1486
+ const transformed = transformResult(res.json, resolvedOpts.transformer.output);
1487
+ if (!transformed.ok) {
1488
+ observer.error(TRPCClientError.from(transformed.error, { meta }));
1489
+ return;
1490
+ }
1491
+ observer.next({
1492
+ context: res.meta,
1493
+ result: transformed.result
1494
+ });
1495
+ observer.complete();
1496
+ }).catch((cause) => {
1497
+ observer.error(TRPCClientError.from(cause, { meta }));
1498
+ });
1499
+ return () => {
1500
+ };
1501
+ });
1502
+ };
1503
+ };
1504
+ }
1505
+ const throwFatalError = () => {
1506
+ throw new Error("Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new");
1507
+ };
1508
+ function dataLoader(batchLoader) {
1509
+ let pendingItems = null;
1510
+ let dispatchTimer = null;
1511
+ const destroyTimerAndPendingItems = () => {
1512
+ clearTimeout(dispatchTimer);
1513
+ dispatchTimer = null;
1514
+ pendingItems = null;
1515
+ };
1516
+ function groupItems(items) {
1517
+ const groupedItems = [[]];
1518
+ let index = 0;
1519
+ while (true) {
1520
+ const item = items[index];
1521
+ if (!item) break;
1522
+ const lastGroup = groupedItems[groupedItems.length - 1];
1523
+ if (item.aborted) {
1524
+ var _item$reject;
1525
+ (_item$reject = item.reject) === null || _item$reject === void 0 || _item$reject.call(item, new Error("Aborted"));
1526
+ index++;
1527
+ continue;
1528
+ }
1529
+ const isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));
1530
+ if (isValid) {
1531
+ lastGroup.push(item);
1532
+ index++;
1533
+ continue;
1534
+ }
1535
+ if (lastGroup.length === 0) {
1536
+ var _item$reject2;
1537
+ (_item$reject2 = item.reject) === null || _item$reject2 === void 0 || _item$reject2.call(item, new Error("Input is too big for a single dispatch"));
1538
+ index++;
1539
+ continue;
1540
+ }
1541
+ groupedItems.push([]);
1542
+ }
1543
+ return groupedItems;
1544
+ }
1545
+ function dispatch() {
1546
+ const groupedItems = groupItems(pendingItems);
1547
+ destroyTimerAndPendingItems();
1548
+ for (const items of groupedItems) {
1549
+ if (!items.length) continue;
1550
+ const batch = { items };
1551
+ for (const item of items) item.batch = batch;
1552
+ const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));
1553
+ promise.then(async (result) => {
1554
+ await Promise.all(result.map(async (valueOrPromise, index) => {
1555
+ const item = batch.items[index];
1556
+ try {
1557
+ var _item$resolve;
1558
+ const value = await Promise.resolve(valueOrPromise);
1559
+ (_item$resolve = item.resolve) === null || _item$resolve === void 0 || _item$resolve.call(item, value);
1560
+ } catch (cause) {
1561
+ var _item$reject3;
1562
+ (_item$reject3 = item.reject) === null || _item$reject3 === void 0 || _item$reject3.call(item, cause);
1563
+ }
1564
+ item.batch = null;
1565
+ item.reject = null;
1566
+ item.resolve = null;
1567
+ }));
1568
+ for (const item of batch.items) {
1569
+ var _item$reject4;
1570
+ (_item$reject4 = item.reject) === null || _item$reject4 === void 0 || _item$reject4.call(item, new Error("Missing result"));
1571
+ item.batch = null;
1572
+ }
1573
+ }).catch((cause) => {
1574
+ for (const item of batch.items) {
1575
+ var _item$reject5;
1576
+ (_item$reject5 = item.reject) === null || _item$reject5 === void 0 || _item$reject5.call(item, cause);
1577
+ item.batch = null;
1578
+ }
1579
+ });
1580
+ }
1581
+ }
1582
+ function load(key) {
1583
+ var _dispatchTimer;
1584
+ const item = {
1585
+ aborted: false,
1586
+ key,
1587
+ batch: null,
1588
+ resolve: throwFatalError,
1589
+ reject: throwFatalError
1590
+ };
1591
+ const promise = new Promise((resolve, reject) => {
1592
+ var _pendingItems;
1593
+ item.reject = reject;
1594
+ item.resolve = resolve;
1595
+ (_pendingItems = pendingItems) !== null && _pendingItems !== void 0 || (pendingItems = []);
1596
+ pendingItems.push(item);
1597
+ });
1598
+ (_dispatchTimer = dispatchTimer) !== null && _dispatchTimer !== void 0 || (dispatchTimer = setTimeout(dispatch));
1599
+ return promise;
1600
+ }
1601
+ return { load };
1602
+ }
1603
+ function allAbortSignals(...signals) {
1604
+ const ac = new AbortController();
1605
+ const count = signals.length;
1606
+ let abortedCount = 0;
1607
+ const onAbort = () => {
1608
+ if (++abortedCount === count) ac.abort();
1609
+ };
1610
+ for (const signal of signals) if (signal === null || signal === void 0 ? void 0 : signal.aborted) onAbort();
1611
+ else signal === null || signal === void 0 || signal.addEventListener("abort", onAbort, { once: true });
1612
+ return ac.signal;
1613
+ }
1614
+ function raceAbortSignals(...signals) {
1615
+ const ac = new AbortController();
1616
+ for (const signal of signals) if (signal === null || signal === void 0 ? void 0 : signal.aborted) ac.abort();
1617
+ else signal === null || signal === void 0 || signal.addEventListener("abort", () => ac.abort(), { once: true });
1618
+ return ac.signal;
1619
+ }
1620
+ function abortSignalToPromise(signal) {
1621
+ return new Promise((_, reject) => {
1622
+ if (signal.aborted) {
1623
+ reject(signal.reason);
1624
+ return;
1625
+ }
1626
+ signal.addEventListener("abort", () => {
1627
+ reject(signal.reason);
1628
+ }, { once: true });
1629
+ });
1630
+ }
1631
+ var import_objectSpread2$7 = __toESM(require_objectSpread2());
1632
+ function httpBatchLink(opts) {
1633
+ var _opts$maxURLLength, _opts$maxItems;
1634
+ const resolvedOpts = resolveHTTPLinkOptions(opts);
1635
+ const maxURLLength = (_opts$maxURLLength = opts.maxURLLength) !== null && _opts$maxURLLength !== void 0 ? _opts$maxURLLength : Infinity;
1636
+ const maxItems = (_opts$maxItems = opts.maxItems) !== null && _opts$maxItems !== void 0 ? _opts$maxItems : Infinity;
1637
+ return () => {
1638
+ const batchLoader = (type) => {
1639
+ return {
1640
+ validate(batchOps) {
1641
+ if (maxURLLength === Infinity && maxItems === Infinity) return true;
1642
+ if (batchOps.length > maxItems) return false;
1643
+ const path = batchOps.map((op) => op.path).join(",");
1644
+ const inputs = batchOps.map((op) => op.input);
1645
+ const url = getUrl((0, import_objectSpread2$7.default)((0, import_objectSpread2$7.default)({}, resolvedOpts), {}, {
1646
+ type,
1647
+ path,
1648
+ inputs,
1649
+ signal: null
1650
+ }));
1651
+ return url.length <= maxURLLength;
1652
+ },
1653
+ async fetch(batchOps) {
1654
+ const path = batchOps.map((op) => op.path).join(",");
1655
+ const inputs = batchOps.map((op) => op.input);
1656
+ const signal = allAbortSignals(...batchOps.map((op) => op.signal));
1657
+ const res = await jsonHttpRequester((0, import_objectSpread2$7.default)((0, import_objectSpread2$7.default)({}, resolvedOpts), {}, {
1658
+ path,
1659
+ inputs,
1660
+ type,
1661
+ headers() {
1662
+ if (!opts.headers) return {};
1663
+ if (typeof opts.headers === "function") return opts.headers({ opList: batchOps });
1664
+ return opts.headers;
1665
+ },
1666
+ signal
1667
+ }));
1668
+ const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);
1669
+ const result = resJSON.map((item) => ({
1670
+ meta: res.meta,
1671
+ json: item
1672
+ }));
1673
+ return result;
1674
+ }
1675
+ };
1676
+ };
1677
+ const query = dataLoader(batchLoader("query"));
1678
+ const mutation = dataLoader(batchLoader("mutation"));
1679
+ const loaders = {
1680
+ query,
1681
+ mutation
1682
+ };
1683
+ return ({ op }) => {
1684
+ return observable((observer) => {
1685
+ /* istanbul ignore if -- @preserve */
1686
+ if (op.type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
1687
+ const loader = loaders[op.type];
1688
+ const promise = loader.load(op);
1689
+ let _res = void 0;
1690
+ promise.then((res) => {
1691
+ _res = res;
1692
+ const transformed = transformResult(res.json, resolvedOpts.transformer.output);
1693
+ if (!transformed.ok) {
1694
+ observer.error(TRPCClientError.from(transformed.error, { meta: res.meta }));
1695
+ return;
1696
+ }
1697
+ observer.next({
1698
+ context: res.meta,
1699
+ result: transformed.result
1700
+ });
1701
+ observer.complete();
1702
+ }).catch((err) => {
1703
+ observer.error(TRPCClientError.from(err, { meta: _res === null || _res === void 0 ? void 0 : _res.meta }));
1704
+ });
1705
+ return () => {
1706
+ };
1707
+ });
1708
+ };
1709
+ };
1710
+ }
1711
+ var import_objectSpread2$6 = __toESM(require_objectSpread2());
1712
+ function isFormData(value) {
1713
+ if (typeof FormData === "undefined") return false;
1714
+ return value instanceof FormData;
1715
+ }
1716
+ const palettes = {
1717
+ css: {
1718
+ query: ["72e3ff", "3fb0d8"],
1719
+ mutation: ["c5a3fc", "904dfc"],
1720
+ subscription: ["ff49e1", "d83fbe"]
1721
+ },
1722
+ ansi: {
1723
+ regular: {
1724
+ query: ["\x1B[30;46m", "\x1B[97;46m"],
1725
+ mutation: ["\x1B[30;45m", "\x1B[97;45m"],
1726
+ subscription: ["\x1B[30;42m", "\x1B[97;42m"]
1727
+ },
1728
+ bold: {
1729
+ query: ["\x1B[1;30;46m", "\x1B[1;97;46m"],
1730
+ mutation: ["\x1B[1;30;45m", "\x1B[1;97;45m"],
1731
+ subscription: ["\x1B[1;30;42m", "\x1B[1;97;42m"]
1732
+ }
1733
+ }
1734
+ };
1735
+ function constructPartsAndArgs(opts) {
1736
+ const { direction, type, withContext, path, id, input } = opts;
1737
+ const parts = [];
1738
+ const args = [];
1739
+ if (opts.colorMode === "none") parts.push(direction === "up" ? ">>" : "<<", type, `#${id}`, path);
1740
+ else if (opts.colorMode === "ansi") {
1741
+ const [lightRegular, darkRegular] = palettes.ansi.regular[type];
1742
+ const [lightBold, darkBold] = palettes.ansi.bold[type];
1743
+ const reset = "\x1B[0m";
1744
+ parts.push(direction === "up" ? lightRegular : darkRegular, direction === "up" ? ">>" : "<<", type, direction === "up" ? lightBold : darkBold, `#${id}`, path, reset);
1745
+ } else {
1746
+ const [light, dark] = palettes.css[type];
1747
+ const css = `
1748
+ background-color: #${direction === "up" ? light : dark};
1749
+ color: ${direction === "up" ? "black" : "white"};
1750
+ padding: 2px;
1751
+ `;
1752
+ parts.push("%c", direction === "up" ? ">>" : "<<", type, `#${id}`, `%c${path}%c`, "%O");
1753
+ args.push(css, `${css}; font-weight: bold;`, `${css}; font-weight: normal;`);
1754
+ }
1755
+ if (direction === "up") args.push(withContext ? {
1756
+ input,
1757
+ context: opts.context
1758
+ } : { input });
1759
+ else args.push((0, import_objectSpread2$6.default)({
1760
+ input,
1761
+ result: opts.result,
1762
+ elapsedMs: opts.elapsedMs
1763
+ }, withContext && { context: opts.context }));
1764
+ return {
1765
+ parts,
1766
+ args
1767
+ };
1768
+ }
1769
+ const defaultLogger = ({ c = console, colorMode = "css", withContext }) => (props) => {
1770
+ const rawInput = props.input;
1771
+ const input = isFormData(rawInput) ? Object.fromEntries(rawInput) : rawInput;
1772
+ const { parts, args } = constructPartsAndArgs((0, import_objectSpread2$6.default)((0, import_objectSpread2$6.default)({}, props), {}, {
1773
+ colorMode,
1774
+ input,
1775
+ withContext
1776
+ }));
1777
+ const fn = props.direction === "down" && props.result && (props.result instanceof Error || "error" in props.result.result && props.result.result.error) ? "error" : "log";
1778
+ c[fn].apply(null, [parts.join(" ")].concat(args));
1779
+ };
1780
+ function loggerLink(opts = {}) {
1781
+ var _opts$colorMode, _opts$withContext;
1782
+ const { enabled = () => true } = opts;
1783
+ const colorMode = (_opts$colorMode = opts.colorMode) !== null && _opts$colorMode !== void 0 ? _opts$colorMode : typeof window === "undefined" ? "ansi" : "css";
1784
+ const withContext = (_opts$withContext = opts.withContext) !== null && _opts$withContext !== void 0 ? _opts$withContext : colorMode === "css";
1785
+ const { logger = defaultLogger({
1786
+ c: opts.console,
1787
+ colorMode,
1788
+ withContext
1789
+ }) } = opts;
1790
+ return () => {
1791
+ return ({ op, next }) => {
1792
+ return observable((observer) => {
1793
+ if (enabled((0, import_objectSpread2$6.default)((0, import_objectSpread2$6.default)({}, op), {}, { direction: "up" }))) logger((0, import_objectSpread2$6.default)((0, import_objectSpread2$6.default)({}, op), {}, { direction: "up" }));
1794
+ const requestStartTime = Date.now();
1795
+ function logResult(result) {
1796
+ const elapsedMs = Date.now() - requestStartTime;
1797
+ if (enabled((0, import_objectSpread2$6.default)((0, import_objectSpread2$6.default)({}, op), {}, {
1798
+ direction: "down",
1799
+ result
1800
+ }))) logger((0, import_objectSpread2$6.default)((0, import_objectSpread2$6.default)({}, op), {}, {
1801
+ direction: "down",
1802
+ elapsedMs,
1803
+ result
1804
+ }));
1805
+ }
1806
+ return next(op).pipe(tap({
1807
+ next(result) {
1808
+ logResult(result);
1809
+ },
1810
+ error(result) {
1811
+ logResult(result);
1812
+ }
1813
+ })).subscribe(observer);
1814
+ });
1815
+ };
1816
+ };
1817
+ }
1818
+ const jsonEncoder = {
1819
+ encode: (data) => JSON.stringify(data),
1820
+ decode: (data) => {
1821
+ if (typeof data !== "string") throw new Error("jsonEncoder received binary data. JSON uses text frames. Use a binary encoder for binary data.");
1822
+ return JSON.parse(data);
1823
+ }
1824
+ };
1825
+ const lazyDefaults = {
1826
+ enabled: false,
1827
+ closeMs: 0
1828
+ };
1829
+ const keepAliveDefaults = {
1830
+ enabled: false,
1831
+ pongTimeoutMs: 1e3,
1832
+ intervalMs: 5e3
1833
+ };
1834
+ const exponentialBackoff = (attemptIndex) => {
1835
+ return attemptIndex === 0 ? 0 : Math.min(1e3 * 2 ** attemptIndex, 3e4);
1836
+ };
1837
+ const resultOf = (value, ...args) => {
1838
+ return typeof value === "function" ? value(...args) : value;
1839
+ };
1840
+ var import_defineProperty$3 = __toESM(require_defineProperty());
1841
+ var TRPCWebSocketClosedError = class TRPCWebSocketClosedError2 extends Error {
1842
+ constructor(opts) {
1843
+ super(opts.message, { cause: opts.cause });
1844
+ this.name = "TRPCWebSocketClosedError";
1845
+ Object.setPrototypeOf(this, TRPCWebSocketClosedError2.prototype);
1846
+ }
1847
+ };
1848
+ var ResettableTimeout = class {
1849
+ constructor(onTimeout, timeoutMs) {
1850
+ this.onTimeout = onTimeout;
1851
+ this.timeoutMs = timeoutMs;
1852
+ (0, import_defineProperty$3.default)(this, "timeout", void 0);
1853
+ }
1854
+ /**
1855
+ * Resets the current timeout, restarting it with the same duration.
1856
+ * Does nothing if no timeout is active.
1857
+ */
1858
+ reset() {
1859
+ if (!this.timeout) return;
1860
+ clearTimeout(this.timeout);
1861
+ this.timeout = setTimeout(this.onTimeout, this.timeoutMs);
1862
+ }
1863
+ start() {
1864
+ clearTimeout(this.timeout);
1865
+ this.timeout = setTimeout(this.onTimeout, this.timeoutMs);
1866
+ }
1867
+ stop() {
1868
+ clearTimeout(this.timeout);
1869
+ this.timeout = void 0;
1870
+ }
1871
+ };
1872
+ function withResolvers() {
1873
+ let resolve;
1874
+ let reject;
1875
+ const promise = new Promise((res, rej) => {
1876
+ resolve = res;
1877
+ reject = rej;
1878
+ });
1879
+ return {
1880
+ promise,
1881
+ resolve,
1882
+ reject
1883
+ };
1884
+ }
1885
+ async function prepareUrl(urlOptions) {
1886
+ const url = await resultOf(urlOptions.url);
1887
+ if (!urlOptions.connectionParams) return url;
1888
+ const prefix = url.includes("?") ? "&" : "?";
1889
+ const connectionParams = `${prefix}connectionParams=1`;
1890
+ return url + connectionParams;
1891
+ }
1892
+ async function buildConnectionMessage(connectionParams, encoder) {
1893
+ const message = {
1894
+ method: "connectionParams",
1895
+ data: await resultOf(connectionParams)
1896
+ };
1897
+ return encoder.encode(message);
1898
+ }
1899
+ var import_defineProperty$2 = __toESM(require_defineProperty());
1900
+ var RequestManager = class {
1901
+ constructor() {
1902
+ (0, import_defineProperty$2.default)(this, "outgoingRequests", new Array());
1903
+ (0, import_defineProperty$2.default)(this, "pendingRequests", {});
1904
+ }
1905
+ /**
1906
+ * Registers a new request by adding it to the outgoing queue and setting up
1907
+ * callbacks for lifecycle events such as completion or error.
1908
+ *
1909
+ * @param message - The outgoing message to be sent.
1910
+ * @param callbacks - Callback functions to observe the request's state.
1911
+ * @returns A cleanup function to manually remove the request.
1912
+ */
1913
+ register(message, callbacks) {
1914
+ const { promise: end, resolve } = withResolvers();
1915
+ this.outgoingRequests.push({
1916
+ id: String(message.id),
1917
+ message,
1918
+ end,
1919
+ callbacks: {
1920
+ next: callbacks.next,
1921
+ complete: () => {
1922
+ callbacks.complete();
1923
+ resolve();
1924
+ },
1925
+ error: (e) => {
1926
+ callbacks.error(e);
1927
+ resolve();
1928
+ }
1929
+ }
1930
+ });
1931
+ return () => {
1932
+ this.delete(message.id);
1933
+ callbacks.complete();
1934
+ resolve();
1935
+ };
1936
+ }
1937
+ /**
1938
+ * Deletes a request from both the outgoing and pending collections, if it exists.
1939
+ */
1940
+ delete(messageId) {
1941
+ if (messageId === null) return;
1942
+ this.outgoingRequests = this.outgoingRequests.filter(({ id }) => id !== String(messageId));
1943
+ delete this.pendingRequests[String(messageId)];
1944
+ }
1945
+ /**
1946
+ * Moves all outgoing requests to the pending state and clears the outgoing queue.
1947
+ *
1948
+ * The caller is expected to handle the actual sending of the requests
1949
+ * (e.g., sending them over the network) after this method is called.
1950
+ *
1951
+ * @returns The list of requests that were transitioned to the pending state.
1952
+ */
1953
+ flush() {
1954
+ const requests = this.outgoingRequests;
1955
+ this.outgoingRequests = [];
1956
+ for (const request of requests) this.pendingRequests[request.id] = request;
1957
+ return requests;
1958
+ }
1959
+ /**
1960
+ * Retrieves all currently pending requests, which are in flight awaiting responses
1961
+ * or handling ongoing subscriptions.
1962
+ */
1963
+ getPendingRequests() {
1964
+ return Object.values(this.pendingRequests);
1965
+ }
1966
+ /**
1967
+ * Retrieves a specific pending request by its message ID.
1968
+ */
1969
+ getPendingRequest(messageId) {
1970
+ if (messageId === null) return null;
1971
+ return this.pendingRequests[String(messageId)];
1972
+ }
1973
+ /**
1974
+ * Retrieves all outgoing requests, which are waiting to be sent.
1975
+ */
1976
+ getOutgoingRequests() {
1977
+ return this.outgoingRequests;
1978
+ }
1979
+ /**
1980
+ * Retrieves all requests, both outgoing and pending, with their respective states.
1981
+ *
1982
+ * @returns An array of all requests with their state ("outgoing" or "pending").
1983
+ */
1984
+ getRequests() {
1985
+ return [...this.getOutgoingRequests().map((request) => ({
1986
+ state: "outgoing",
1987
+ message: request.message,
1988
+ end: request.end,
1989
+ callbacks: request.callbacks
1990
+ })), ...this.getPendingRequests().map((request) => ({
1991
+ state: "pending",
1992
+ message: request.message,
1993
+ end: request.end,
1994
+ callbacks: request.callbacks
1995
+ }))];
1996
+ }
1997
+ /**
1998
+ * Checks if there are any pending requests, including ongoing subscriptions.
1999
+ */
2000
+ hasPendingRequests() {
2001
+ return this.getPendingRequests().length > 0;
2002
+ }
2003
+ /**
2004
+ * Checks if there are any pending subscriptions
2005
+ */
2006
+ hasPendingSubscriptions() {
2007
+ return this.getPendingRequests().some((request) => request.message.method === "subscription");
2008
+ }
2009
+ /**
2010
+ * Checks if there are any outgoing requests waiting to be sent.
2011
+ */
2012
+ hasOutgoingRequests() {
2013
+ return this.outgoingRequests.length > 0;
2014
+ }
2015
+ };
2016
+ var import_defineProperty$1 = __toESM(require_defineProperty());
2017
+ function asyncWsOpen(ws) {
2018
+ const { promise, resolve, reject } = withResolvers();
2019
+ ws.addEventListener("open", () => {
2020
+ ws.removeEventListener("error", reject);
2021
+ resolve();
2022
+ });
2023
+ ws.addEventListener("error", reject);
2024
+ return promise;
2025
+ }
2026
+ function setupPingInterval(ws, { intervalMs, pongTimeoutMs }) {
2027
+ let pingTimeout;
2028
+ let pongTimeout;
2029
+ function start() {
2030
+ pingTimeout = setTimeout(() => {
2031
+ ws.send("PING");
2032
+ pongTimeout = setTimeout(() => {
2033
+ ws.close();
2034
+ }, pongTimeoutMs);
2035
+ }, intervalMs);
2036
+ }
2037
+ function reset() {
2038
+ clearTimeout(pingTimeout);
2039
+ start();
2040
+ }
2041
+ function pong() {
2042
+ clearTimeout(pongTimeout);
2043
+ reset();
2044
+ }
2045
+ ws.addEventListener("open", start);
2046
+ ws.addEventListener("message", ({ data }) => {
2047
+ clearTimeout(pingTimeout);
2048
+ start();
2049
+ if (data === "PONG") pong();
2050
+ });
2051
+ ws.addEventListener("close", () => {
2052
+ clearTimeout(pingTimeout);
2053
+ clearTimeout(pongTimeout);
2054
+ });
2055
+ }
2056
+ var WsConnection = class WsConnection2 {
2057
+ constructor(opts) {
2058
+ var _opts$WebSocketPonyfi;
2059
+ (0, import_defineProperty$1.default)(this, "id", ++WsConnection2.connectCount);
2060
+ (0, import_defineProperty$1.default)(this, "WebSocketPonyfill", void 0);
2061
+ (0, import_defineProperty$1.default)(this, "urlOptions", void 0);
2062
+ (0, import_defineProperty$1.default)(this, "keepAliveOpts", void 0);
2063
+ (0, import_defineProperty$1.default)(this, "encoder", void 0);
2064
+ (0, import_defineProperty$1.default)(this, "wsObservable", behaviorSubject(null));
2065
+ (0, import_defineProperty$1.default)(this, "openPromise", null);
2066
+ this.WebSocketPonyfill = (_opts$WebSocketPonyfi = opts.WebSocketPonyfill) !== null && _opts$WebSocketPonyfi !== void 0 ? _opts$WebSocketPonyfi : WebSocket;
2067
+ if (!this.WebSocketPonyfill) throw new Error("No WebSocket implementation found - you probably don't want to use this on the server, but if you do you need to pass a `WebSocket`-ponyfill");
2068
+ this.urlOptions = opts.urlOptions;
2069
+ this.keepAliveOpts = opts.keepAlive;
2070
+ this.encoder = opts.encoder;
2071
+ }
2072
+ get ws() {
2073
+ return this.wsObservable.get();
2074
+ }
2075
+ set ws(ws) {
2076
+ this.wsObservable.next(ws);
2077
+ }
2078
+ /**
2079
+ * Checks if the WebSocket connection is open and ready to communicate.
2080
+ */
2081
+ isOpen() {
2082
+ return !!this.ws && this.ws.readyState === this.WebSocketPonyfill.OPEN && !this.openPromise;
2083
+ }
2084
+ /**
2085
+ * Checks if the WebSocket connection is closed or in the process of closing.
2086
+ */
2087
+ isClosed() {
2088
+ return !!this.ws && (this.ws.readyState === this.WebSocketPonyfill.CLOSING || this.ws.readyState === this.WebSocketPonyfill.CLOSED);
2089
+ }
2090
+ async open() {
2091
+ var _this = this;
2092
+ if (_this.openPromise) return _this.openPromise;
2093
+ _this.id = ++WsConnection2.connectCount;
2094
+ const wsPromise = prepareUrl(_this.urlOptions).then((url) => new _this.WebSocketPonyfill(url));
2095
+ _this.openPromise = wsPromise.then(async (ws) => {
2096
+ _this.ws = ws;
2097
+ ws.binaryType = "arraybuffer";
2098
+ ws.addEventListener("message", function({ data }) {
2099
+ if (data === "PING") this.send("PONG");
2100
+ });
2101
+ if (_this.keepAliveOpts.enabled) setupPingInterval(ws, _this.keepAliveOpts);
2102
+ ws.addEventListener("close", () => {
2103
+ if (_this.ws === ws) _this.ws = null;
2104
+ });
2105
+ await asyncWsOpen(ws);
2106
+ if (_this.urlOptions.connectionParams) ws.send(await buildConnectionMessage(_this.urlOptions.connectionParams, _this.encoder));
2107
+ });
2108
+ try {
2109
+ await _this.openPromise;
2110
+ } finally {
2111
+ _this.openPromise = null;
2112
+ }
2113
+ }
2114
+ /**
2115
+ * Closes the WebSocket connection gracefully.
2116
+ * Waits for any ongoing open operation to complete before closing.
2117
+ */
2118
+ async close() {
2119
+ var _this2 = this;
2120
+ try {
2121
+ await _this2.openPromise;
2122
+ } finally {
2123
+ var _this$ws;
2124
+ (_this$ws = _this2.ws) === null || _this$ws === void 0 || _this$ws.close();
2125
+ }
2126
+ }
2127
+ };
2128
+ (0, import_defineProperty$1.default)(WsConnection, "connectCount", 0);
2129
+ function backwardCompatibility(connection) {
2130
+ if (connection.isOpen()) return {
2131
+ id: connection.id,
2132
+ state: "open",
2133
+ ws: connection.ws
2134
+ };
2135
+ if (connection.isClosed()) return {
2136
+ id: connection.id,
2137
+ state: "closed",
2138
+ ws: connection.ws
2139
+ };
2140
+ if (!connection.ws) return null;
2141
+ return {
2142
+ id: connection.id,
2143
+ state: "connecting",
2144
+ ws: connection.ws
2145
+ };
2146
+ }
2147
+ var import_defineProperty$4 = __toESM(require_defineProperty());
2148
+ var import_objectSpread2$5 = __toESM(require_objectSpread2());
2149
+ var WsClient = class {
2150
+ constructor(opts) {
2151
+ var _opts$experimental_en, _opts$retryDelayMs;
2152
+ (0, import_defineProperty$4.default)(this, "connectionState", void 0);
2153
+ (0, import_defineProperty$4.default)(this, "allowReconnect", false);
2154
+ (0, import_defineProperty$4.default)(this, "requestManager", new RequestManager());
2155
+ (0, import_defineProperty$4.default)(this, "activeConnection", void 0);
2156
+ (0, import_defineProperty$4.default)(this, "reconnectRetryDelay", void 0);
2157
+ (0, import_defineProperty$4.default)(this, "inactivityTimeout", void 0);
2158
+ (0, import_defineProperty$4.default)(this, "callbacks", void 0);
2159
+ (0, import_defineProperty$4.default)(this, "lazyMode", void 0);
2160
+ (0, import_defineProperty$4.default)(this, "encoder", void 0);
2161
+ (0, import_defineProperty$4.default)(this, "reconnecting", null);
2162
+ this.encoder = (_opts$experimental_en = opts.experimental_encoder) !== null && _opts$experimental_en !== void 0 ? _opts$experimental_en : jsonEncoder;
2163
+ this.callbacks = {
2164
+ onOpen: opts.onOpen,
2165
+ onClose: opts.onClose,
2166
+ onError: opts.onError
2167
+ };
2168
+ const lazyOptions = (0, import_objectSpread2$5.default)((0, import_objectSpread2$5.default)({}, lazyDefaults), opts.lazy);
2169
+ this.inactivityTimeout = new ResettableTimeout(() => {
2170
+ if (this.requestManager.hasOutgoingRequests() || this.requestManager.hasPendingRequests()) {
2171
+ this.inactivityTimeout.reset();
2172
+ return;
2173
+ }
2174
+ this.close().catch(() => null);
2175
+ }, lazyOptions.closeMs);
2176
+ this.activeConnection = new WsConnection({
2177
+ WebSocketPonyfill: opts.WebSocket,
2178
+ urlOptions: opts,
2179
+ keepAlive: (0, import_objectSpread2$5.default)((0, import_objectSpread2$5.default)({}, keepAliveDefaults), opts.keepAlive),
2180
+ encoder: this.encoder
2181
+ });
2182
+ this.activeConnection.wsObservable.subscribe({ next: (ws) => {
2183
+ if (!ws) return;
2184
+ this.setupWebSocketListeners(ws);
2185
+ } });
2186
+ this.reconnectRetryDelay = (_opts$retryDelayMs = opts.retryDelayMs) !== null && _opts$retryDelayMs !== void 0 ? _opts$retryDelayMs : exponentialBackoff;
2187
+ this.lazyMode = lazyOptions.enabled;
2188
+ this.connectionState = behaviorSubject({
2189
+ type: "state",
2190
+ state: lazyOptions.enabled ? "idle" : "connecting",
2191
+ error: null
2192
+ });
2193
+ if (!this.lazyMode) this.open().catch(() => null);
2194
+ }
2195
+ /**
2196
+ * Opens the WebSocket connection. Handles reconnection attempts and updates
2197
+ * the connection state accordingly.
2198
+ */
2199
+ async open() {
2200
+ var _this = this;
2201
+ _this.allowReconnect = true;
2202
+ if (_this.connectionState.get().state === "idle") _this.connectionState.next({
2203
+ type: "state",
2204
+ state: "connecting",
2205
+ error: null
2206
+ });
2207
+ try {
2208
+ await _this.activeConnection.open();
2209
+ } catch (error) {
2210
+ _this.reconnect(new TRPCWebSocketClosedError({
2211
+ message: "Initialization error",
2212
+ cause: error
2213
+ }));
2214
+ return _this.reconnecting;
2215
+ }
2216
+ }
2217
+ /**
2218
+ * Closes the WebSocket connection and stops managing requests.
2219
+ * Ensures all outgoing and pending requests are properly finalized.
2220
+ */
2221
+ async close() {
2222
+ var _this2 = this;
2223
+ _this2.allowReconnect = false;
2224
+ _this2.inactivityTimeout.stop();
2225
+ const requestsToAwait = [];
2226
+ for (const request of _this2.requestManager.getRequests()) if (request.message.method === "subscription") request.callbacks.complete();
2227
+ else if (request.state === "outgoing") request.callbacks.error(TRPCClientError.from(new TRPCWebSocketClosedError({ message: "Closed before connection was established" })));
2228
+ else requestsToAwait.push(request.end);
2229
+ await Promise.all(requestsToAwait).catch(() => null);
2230
+ await _this2.activeConnection.close().catch(() => null);
2231
+ _this2.connectionState.next({
2232
+ type: "state",
2233
+ state: "idle",
2234
+ error: null
2235
+ });
2236
+ }
2237
+ /**
2238
+ * Method to request the server.
2239
+ * Handles data transformation, batching of requests, and subscription lifecycle.
2240
+ *
2241
+ * @param op - The operation details including id, type, path, input and signal
2242
+ * @param transformer - Data transformer for serializing requests and deserializing responses
2243
+ * @param lastEventId - Optional ID of the last received event for subscriptions
2244
+ *
2245
+ * @returns An observable that emits operation results and handles cleanup
2246
+ */
2247
+ request({ op: { id, type, path, input, signal }, transformer, lastEventId }) {
2248
+ return observable((observer) => {
2249
+ const abort = this.batchSend({
2250
+ id,
2251
+ method: type,
2252
+ params: {
2253
+ input: transformer.input.serialize(input),
2254
+ path,
2255
+ lastEventId
2256
+ }
2257
+ }, (0, import_objectSpread2$5.default)((0, import_objectSpread2$5.default)({}, observer), {}, { next(event) {
2258
+ const transformed = transformResult(event, transformer.output);
2259
+ if (!transformed.ok) {
2260
+ observer.error(TRPCClientError.from(transformed.error));
2261
+ return;
2262
+ }
2263
+ observer.next({ result: transformed.result });
2264
+ } }));
2265
+ return () => {
2266
+ abort();
2267
+ if (type === "subscription" && this.activeConnection.isOpen()) this.send({
2268
+ id,
2269
+ method: "subscription.stop"
2270
+ });
2271
+ signal === null || signal === void 0 || signal.removeEventListener("abort", abort);
2272
+ };
2273
+ });
2274
+ }
2275
+ get connection() {
2276
+ return backwardCompatibility(this.activeConnection);
2277
+ }
2278
+ reconnect(closedError) {
2279
+ var _this3 = this;
2280
+ this.connectionState.next({
2281
+ type: "state",
2282
+ state: "connecting",
2283
+ error: TRPCClientError.from(closedError)
2284
+ });
2285
+ if (this.reconnecting) return;
2286
+ const tryReconnect = async (attemptIndex) => {
2287
+ try {
2288
+ await sleep(_this3.reconnectRetryDelay(attemptIndex));
2289
+ if (_this3.allowReconnect) {
2290
+ await _this3.activeConnection.close();
2291
+ await _this3.activeConnection.open();
2292
+ if (_this3.requestManager.hasPendingRequests()) _this3.send(_this3.requestManager.getPendingRequests().map(({ message }) => message));
2293
+ }
2294
+ _this3.reconnecting = null;
2295
+ } catch (_unused) {
2296
+ await tryReconnect(attemptIndex + 1);
2297
+ }
2298
+ };
2299
+ this.reconnecting = tryReconnect(0);
2300
+ }
2301
+ setupWebSocketListeners(ws) {
2302
+ var _this4 = this;
2303
+ const handleCloseOrError = (cause) => {
2304
+ const reqs = this.requestManager.getPendingRequests();
2305
+ for (const { message, callbacks } of reqs) {
2306
+ if (message.method === "subscription") continue;
2307
+ callbacks.error(TRPCClientError.from(cause !== null && cause !== void 0 ? cause : new TRPCWebSocketClosedError({
2308
+ message: "WebSocket closed",
2309
+ cause
2310
+ })));
2311
+ this.requestManager.delete(message.id);
2312
+ }
2313
+ };
2314
+ ws.addEventListener("open", () => {
2315
+ run(async () => {
2316
+ var _this$callbacks$onOpe, _this$callbacks;
2317
+ if (_this4.lazyMode) _this4.inactivityTimeout.start();
2318
+ (_this$callbacks$onOpe = (_this$callbacks = _this4.callbacks).onOpen) === null || _this$callbacks$onOpe === void 0 || _this$callbacks$onOpe.call(_this$callbacks);
2319
+ _this4.connectionState.next({
2320
+ type: "state",
2321
+ state: "pending",
2322
+ error: null
2323
+ });
2324
+ }).catch((error) => {
2325
+ ws.close(3e3);
2326
+ handleCloseOrError(error);
2327
+ });
2328
+ });
2329
+ ws.addEventListener("message", ({ data }) => {
2330
+ this.inactivityTimeout.reset();
2331
+ if (["PING", "PONG"].includes(data)) return;
2332
+ const incomingMessage = this.encoder.decode(data);
2333
+ if ("method" in incomingMessage) {
2334
+ this.handleIncomingRequest(incomingMessage);
2335
+ return;
2336
+ }
2337
+ this.handleResponseMessage(incomingMessage);
2338
+ });
2339
+ ws.addEventListener("close", (event) => {
2340
+ var _this$callbacks$onClo, _this$callbacks2;
2341
+ handleCloseOrError(event);
2342
+ (_this$callbacks$onClo = (_this$callbacks2 = this.callbacks).onClose) === null || _this$callbacks$onClo === void 0 || _this$callbacks$onClo.call(_this$callbacks2, event);
2343
+ if (!this.lazyMode || this.requestManager.hasPendingSubscriptions()) this.reconnect(new TRPCWebSocketClosedError({
2344
+ message: "WebSocket closed",
2345
+ cause: event
2346
+ }));
2347
+ });
2348
+ ws.addEventListener("error", (event) => {
2349
+ var _this$callbacks$onErr, _this$callbacks3;
2350
+ handleCloseOrError(event);
2351
+ (_this$callbacks$onErr = (_this$callbacks3 = this.callbacks).onError) === null || _this$callbacks$onErr === void 0 || _this$callbacks$onErr.call(_this$callbacks3, event);
2352
+ this.reconnect(new TRPCWebSocketClosedError({
2353
+ message: "WebSocket closed",
2354
+ cause: event
2355
+ }));
2356
+ });
2357
+ }
2358
+ handleResponseMessage(message) {
2359
+ const request = this.requestManager.getPendingRequest(message.id);
2360
+ if (!request) return;
2361
+ request.callbacks.next(message);
2362
+ let completed = true;
2363
+ if ("result" in message && request.message.method === "subscription") {
2364
+ if (message.result.type === "data") request.message.params.lastEventId = message.result.id;
2365
+ if (message.result.type !== "stopped") completed = false;
2366
+ }
2367
+ if (completed) {
2368
+ request.callbacks.complete();
2369
+ this.requestManager.delete(message.id);
2370
+ }
2371
+ }
2372
+ handleIncomingRequest(message) {
2373
+ if (message.method === "reconnect") this.reconnect(new TRPCWebSocketClosedError({ message: "Server requested reconnect" }));
2374
+ }
2375
+ /**
2376
+ * Sends a message or batch of messages directly to the server.
2377
+ */
2378
+ send(messageOrMessages) {
2379
+ if (!this.activeConnection.isOpen()) throw new Error("Active connection is not open");
2380
+ const messages = messageOrMessages instanceof Array ? messageOrMessages : [messageOrMessages];
2381
+ this.activeConnection.ws.send(this.encoder.encode(messages.length === 1 ? messages[0] : messages));
2382
+ }
2383
+ /**
2384
+ * Groups requests for batch sending.
2385
+ *
2386
+ * @returns A function to abort the batched request.
2387
+ */
2388
+ batchSend(message, callbacks) {
2389
+ var _this5 = this;
2390
+ this.inactivityTimeout.reset();
2391
+ run(async () => {
2392
+ if (!_this5.activeConnection.isOpen()) await _this5.open();
2393
+ await sleep(0);
2394
+ if (!_this5.requestManager.hasOutgoingRequests()) return;
2395
+ _this5.send(_this5.requestManager.flush().map(({ message: message$1 }) => message$1));
2396
+ }).catch((err) => {
2397
+ this.requestManager.delete(message.id);
2398
+ callbacks.error(TRPCClientError.from(err));
2399
+ });
2400
+ return this.requestManager.register(message, callbacks);
2401
+ }
2402
+ };
2403
+ function createWSClient(opts) {
2404
+ return new WsClient(opts);
2405
+ }
2406
+ function wsLink(opts) {
2407
+ const { client } = opts;
2408
+ const transformer = getTransformer(opts.transformer);
2409
+ return () => {
2410
+ return ({ op }) => {
2411
+ return observable((observer) => {
2412
+ const connStateSubscription = op.type === "subscription" ? client.connectionState.subscribe({ next(result) {
2413
+ observer.next({
2414
+ result,
2415
+ context: op.context
2416
+ });
2417
+ } }) : null;
2418
+ const requestSubscription = client.request({
2419
+ op,
2420
+ transformer
2421
+ }).subscribe(observer);
2422
+ return () => {
2423
+ requestSubscription.unsubscribe();
2424
+ connStateSubscription === null || connStateSubscription === void 0 || connStateSubscription.unsubscribe();
2425
+ };
2426
+ });
2427
+ };
2428
+ };
2429
+ }
2430
+ var import_defineProperty = __toESM(require_defineProperty());
2431
+ var import_objectSpread2$4 = __toESM(require_objectSpread2());
2432
+ var TRPCUntypedClient = class {
2433
+ constructor(opts) {
2434
+ (0, import_defineProperty.default)(this, "links", void 0);
2435
+ (0, import_defineProperty.default)(this, "runtime", void 0);
2436
+ (0, import_defineProperty.default)(this, "requestId", void 0);
2437
+ this.requestId = 0;
2438
+ this.runtime = {};
2439
+ this.links = opts.links.map((link) => link(this.runtime));
2440
+ }
2441
+ $request(opts) {
2442
+ var _opts$context;
2443
+ const chain$ = createChain({
2444
+ links: this.links,
2445
+ op: (0, import_objectSpread2$4.default)((0, import_objectSpread2$4.default)({}, opts), {}, {
2446
+ context: (_opts$context = opts.context) !== null && _opts$context !== void 0 ? _opts$context : {},
2447
+ id: ++this.requestId
2448
+ })
2449
+ });
2450
+ return chain$.pipe(share());
2451
+ }
2452
+ async requestAsPromise(opts) {
2453
+ var _this = this;
2454
+ try {
2455
+ const req$ = _this.$request(opts);
2456
+ const envelope = await observableToPromise(req$);
2457
+ const data = envelope.result.data;
2458
+ return data;
2459
+ } catch (err) {
2460
+ throw TRPCClientError.from(err);
2461
+ }
2462
+ }
2463
+ query(path, input, opts) {
2464
+ return this.requestAsPromise({
2465
+ type: "query",
2466
+ path,
2467
+ input,
2468
+ context: opts === null || opts === void 0 ? void 0 : opts.context,
2469
+ signal: opts === null || opts === void 0 ? void 0 : opts.signal
2470
+ });
2471
+ }
2472
+ mutation(path, input, opts) {
2473
+ return this.requestAsPromise({
2474
+ type: "mutation",
2475
+ path,
2476
+ input,
2477
+ context: opts === null || opts === void 0 ? void 0 : opts.context,
2478
+ signal: opts === null || opts === void 0 ? void 0 : opts.signal
2479
+ });
2480
+ }
2481
+ subscription(path, input, opts) {
2482
+ const observable$ = this.$request({
2483
+ type: "subscription",
2484
+ path,
2485
+ input,
2486
+ context: opts.context,
2487
+ signal: opts.signal
2488
+ });
2489
+ return observable$.subscribe({
2490
+ next(envelope) {
2491
+ switch (envelope.result.type) {
2492
+ case "state": {
2493
+ var _opts$onConnectionSta;
2494
+ (_opts$onConnectionSta = opts.onConnectionStateChange) === null || _opts$onConnectionSta === void 0 || _opts$onConnectionSta.call(opts, envelope.result);
2495
+ break;
2496
+ }
2497
+ case "started": {
2498
+ var _opts$onStarted;
2499
+ (_opts$onStarted = opts.onStarted) === null || _opts$onStarted === void 0 || _opts$onStarted.call(opts, { context: envelope.context });
2500
+ break;
2501
+ }
2502
+ case "stopped": {
2503
+ var _opts$onStopped;
2504
+ (_opts$onStopped = opts.onStopped) === null || _opts$onStopped === void 0 || _opts$onStopped.call(opts);
2505
+ break;
2506
+ }
2507
+ case "data":
2508
+ case void 0: {
2509
+ var _opts$onData;
2510
+ (_opts$onData = opts.onData) === null || _opts$onData === void 0 || _opts$onData.call(opts, envelope.result.data);
2511
+ break;
2512
+ }
2513
+ }
2514
+ },
2515
+ error(err) {
2516
+ var _opts$onError;
2517
+ (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, err);
2518
+ },
2519
+ complete() {
2520
+ var _opts$onComplete;
2521
+ (_opts$onComplete = opts.onComplete) === null || _opts$onComplete === void 0 || _opts$onComplete.call(opts);
2522
+ }
2523
+ });
2524
+ }
2525
+ };
2526
+ function createTRPCUntypedClient(opts) {
2527
+ return new TRPCUntypedClient(opts);
2528
+ }
2529
+ const untypedClientSymbol = Symbol.for("trpc_untypedClient");
2530
+ const clientCallTypeMap = {
2531
+ query: "query",
2532
+ mutate: "mutation",
2533
+ subscribe: "subscription"
2534
+ };
2535
+ const clientCallTypeToProcedureType = (clientCallType) => {
2536
+ return clientCallTypeMap[clientCallType];
2537
+ };
2538
+ function createTRPCClientProxy(client) {
2539
+ const proxy = createRecursiveProxy(({ path, args }) => {
2540
+ const pathCopy = [...path];
2541
+ const procedureType = clientCallTypeToProcedureType(pathCopy.pop());
2542
+ const fullPath = pathCopy.join(".");
2543
+ return client[procedureType](fullPath, ...args);
2544
+ });
2545
+ return createFlatProxy((key) => {
2546
+ if (key === untypedClientSymbol) return client;
2547
+ return proxy[key];
2548
+ });
2549
+ }
2550
+ function createTRPCClient(opts) {
2551
+ const client = new TRPCUntypedClient(opts);
2552
+ const proxy = createTRPCClientProxy(client);
2553
+ return proxy;
2554
+ }
2555
+ function getUntypedClient(client) {
2556
+ return client[untypedClientSymbol];
2557
+ }
2558
+ var import_objectSpread2$3 = __toESM(require_objectSpread2());
2559
+ function httpBatchStreamLink(opts) {
2560
+ var _opts$maxURLLength, _opts$maxItems;
2561
+ const resolvedOpts = resolveHTTPLinkOptions(opts);
2562
+ const maxURLLength = (_opts$maxURLLength = opts.maxURLLength) !== null && _opts$maxURLLength !== void 0 ? _opts$maxURLLength : Infinity;
2563
+ const maxItems = (_opts$maxItems = opts.maxItems) !== null && _opts$maxItems !== void 0 ? _opts$maxItems : Infinity;
2564
+ return () => {
2565
+ const batchLoader = (type) => {
2566
+ return {
2567
+ validate(batchOps) {
2568
+ if (maxURLLength === Infinity && maxItems === Infinity) return true;
2569
+ if (batchOps.length > maxItems) return false;
2570
+ const path = batchOps.map((op) => op.path).join(",");
2571
+ const inputs = batchOps.map((op) => op.input);
2572
+ const url = getUrl((0, import_objectSpread2$3.default)((0, import_objectSpread2$3.default)({}, resolvedOpts), {}, {
2573
+ type,
2574
+ path,
2575
+ inputs,
2576
+ signal: null
2577
+ }));
2578
+ return url.length <= maxURLLength;
2579
+ },
2580
+ async fetch(batchOps) {
2581
+ var _opts$streamHeader;
2582
+ const path = batchOps.map((op) => op.path).join(",");
2583
+ const inputs = batchOps.map((op) => op.input);
2584
+ const batchSignals = allAbortSignals(...batchOps.map((op) => op.signal));
2585
+ const abortController = new AbortController();
2586
+ const responsePromise = fetchHTTPResponse((0, import_objectSpread2$3.default)((0, import_objectSpread2$3.default)({}, resolvedOpts), {}, {
2587
+ signal: raceAbortSignals(batchSignals, abortController.signal),
2588
+ type,
2589
+ contentTypeHeader: "application/json",
2590
+ trpcAcceptHeader: "application/jsonl",
2591
+ trpcAcceptHeaderKey: (_opts$streamHeader = opts.streamHeader) !== null && _opts$streamHeader !== void 0 ? _opts$streamHeader : "trpc-accept",
2592
+ getUrl,
2593
+ getBody,
2594
+ inputs,
2595
+ path,
2596
+ headers() {
2597
+ if (!opts.headers) return {};
2598
+ if (typeof opts.headers === "function") return opts.headers({ opList: batchOps });
2599
+ return opts.headers;
2600
+ }
2601
+ }));
2602
+ const res = await responsePromise;
2603
+ if (!res.ok) {
2604
+ const json = await res.json();
2605
+ if ("error" in json) json.error = resolvedOpts.transformer.output.deserialize(json.error);
2606
+ return batchOps.map(() => Promise.resolve({
2607
+ json,
2608
+ meta: { response: res }
2609
+ }));
2610
+ }
2611
+ const [head] = await jsonlStreamConsumer({
2612
+ from: res.body,
2613
+ deserialize: (data) => resolvedOpts.transformer.output.deserialize(data),
2614
+ formatError(opts$1) {
2615
+ const error = opts$1.error;
2616
+ return TRPCClientError.from({ error });
2617
+ },
2618
+ abortController
2619
+ });
2620
+ const promises = Object.keys(batchOps).map(async (key) => {
2621
+ let json = await Promise.resolve(head[key]);
2622
+ if ("result" in json) {
2623
+ const result = await Promise.resolve(json.result);
2624
+ json = { result: { data: await Promise.resolve(result.data) } };
2625
+ }
2626
+ return {
2627
+ json,
2628
+ meta: { response: res }
2629
+ };
2630
+ });
2631
+ return promises;
2632
+ }
2633
+ };
2634
+ };
2635
+ const query = dataLoader(batchLoader("query"));
2636
+ const mutation = dataLoader(batchLoader("mutation"));
2637
+ const loaders = {
2638
+ query,
2639
+ mutation
2640
+ };
2641
+ return ({ op }) => {
2642
+ return observable((observer) => {
2643
+ /* istanbul ignore if -- @preserve */
2644
+ if (op.type === "subscription") throw new Error("Subscriptions are unsupported by `httpBatchStreamLink` - use `httpSubscriptionLink` or `wsLink`");
2645
+ const loader = loaders[op.type];
2646
+ const promise = loader.load(op);
2647
+ let _res = void 0;
2648
+ promise.then((res) => {
2649
+ _res = res;
2650
+ if ("error" in res.json) {
2651
+ observer.error(TRPCClientError.from(res.json, { meta: res.meta }));
2652
+ return;
2653
+ } else if ("result" in res.json) {
2654
+ observer.next({
2655
+ context: res.meta,
2656
+ result: res.json.result
2657
+ });
2658
+ observer.complete();
2659
+ return;
2660
+ }
2661
+ observer.complete();
2662
+ }).catch((err) => {
2663
+ observer.error(TRPCClientError.from(err, { meta: _res === null || _res === void 0 ? void 0 : _res.meta }));
2664
+ });
2665
+ return () => {
2666
+ };
2667
+ });
2668
+ };
2669
+ };
2670
+ }
2671
+ const unstable_httpBatchStreamLink = httpBatchStreamLink;
2672
+ var import_objectSpread2$2 = __toESM(require_objectSpread2());
2673
+ function inputWithTrackedEventId(input, lastEventId) {
2674
+ if (!lastEventId) return input;
2675
+ if (input != null && typeof input !== "object") return input;
2676
+ return (0, import_objectSpread2$2.default)((0, import_objectSpread2$2.default)({}, input !== null && input !== void 0 ? input : {}), {}, { lastEventId });
2677
+ }
2678
+ var require_asyncIterator = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/asyncIterator.js"(exports, module) {
2679
+ function _asyncIterator$1(r) {
2680
+ var n, t, o, e = 2;
2681
+ for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--; ) {
2682
+ if (t && null != (n = r[t])) return n.call(r);
2683
+ if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));
2684
+ t = "@@asyncIterator", o = "@@iterator";
2685
+ }
2686
+ throw new TypeError("Object is not async iterable");
2687
+ }
2688
+ function AsyncFromSyncIterator(r) {
2689
+ function AsyncFromSyncIteratorContinuation(r$1) {
2690
+ if (Object(r$1) !== r$1) return Promise.reject(new TypeError(r$1 + " is not an object."));
2691
+ var n = r$1.done;
2692
+ return Promise.resolve(r$1.value).then(function(r$2) {
2693
+ return {
2694
+ value: r$2,
2695
+ done: n
2696
+ };
2697
+ });
2698
+ }
2699
+ return AsyncFromSyncIterator = function AsyncFromSyncIterator$1(r$1) {
2700
+ this.s = r$1, this.n = r$1.next;
2701
+ }, AsyncFromSyncIterator.prototype = {
2702
+ s: null,
2703
+ n: null,
2704
+ next: function next() {
2705
+ return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
2706
+ },
2707
+ "return": function _return(r$1) {
2708
+ var n = this.s["return"];
2709
+ return void 0 === n ? Promise.resolve({
2710
+ value: r$1,
2711
+ done: true
2712
+ }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
2713
+ },
2714
+ "throw": function _throw(r$1) {
2715
+ var n = this.s["return"];
2716
+ return void 0 === n ? Promise.reject(r$1) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
2717
+ }
2718
+ }, new AsyncFromSyncIterator(r);
2719
+ }
2720
+ module.exports = _asyncIterator$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
2721
+ } });
2722
+ var import_asyncIterator = __toESM(require_asyncIterator());
2723
+ async function urlWithConnectionParams(opts) {
2724
+ let url = await resultOf(opts.url);
2725
+ if (opts.connectionParams) {
2726
+ const params = await resultOf(opts.connectionParams);
2727
+ const prefix = url.includes("?") ? "&" : "?";
2728
+ url += prefix + "connectionParams=" + encodeURIComponent(JSON.stringify(params));
2729
+ }
2730
+ return url;
2731
+ }
2732
+ function httpSubscriptionLink(opts) {
2733
+ const transformer = getTransformer(opts.transformer);
2734
+ return () => {
2735
+ return ({ op }) => {
2736
+ return observable((observer) => {
2737
+ var _opts$EventSource;
2738
+ const { type, path, input } = op;
2739
+ /* istanbul ignore if -- @preserve */
2740
+ if (type !== "subscription") throw new Error("httpSubscriptionLink only supports subscriptions");
2741
+ let lastEventId = void 0;
2742
+ const ac = new AbortController();
2743
+ const signal = raceAbortSignals(op.signal, ac.signal);
2744
+ const eventSourceStream = sseStreamConsumer({
2745
+ url: async () => getUrl({
2746
+ transformer,
2747
+ url: await urlWithConnectionParams(opts),
2748
+ input: inputWithTrackedEventId(input, lastEventId),
2749
+ path,
2750
+ type,
2751
+ signal: null
2752
+ }),
2753
+ init: () => resultOf(opts.eventSourceOptions, { op }),
2754
+ signal,
2755
+ deserialize: (data) => transformer.output.deserialize(data),
2756
+ EventSource: (_opts$EventSource = opts.EventSource) !== null && _opts$EventSource !== void 0 ? _opts$EventSource : globalThis.EventSource
2757
+ });
2758
+ const connectionState = behaviorSubject({
2759
+ type: "state",
2760
+ state: "connecting",
2761
+ error: null
2762
+ });
2763
+ const connectionSub = connectionState.subscribe({ next(state) {
2764
+ observer.next({ result: state });
2765
+ } });
2766
+ run(async () => {
2767
+ var _iteratorAbruptCompletion = false;
2768
+ var _didIteratorError = false;
2769
+ var _iteratorError;
2770
+ try {
2771
+ for (var _iterator = (0, import_asyncIterator.default)(eventSourceStream), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
2772
+ const chunk = _step.value;
2773
+ switch (chunk.type) {
2774
+ case "ping":
2775
+ break;
2776
+ case "data":
2777
+ const chunkData = chunk.data;
2778
+ let result;
2779
+ if (chunkData.id) {
2780
+ lastEventId = chunkData.id;
2781
+ result = {
2782
+ id: chunkData.id,
2783
+ data: chunkData
2784
+ };
2785
+ } else result = { data: chunkData.data };
2786
+ observer.next({
2787
+ result,
2788
+ context: { eventSource: chunk.eventSource }
2789
+ });
2790
+ break;
2791
+ case "connected": {
2792
+ observer.next({
2793
+ result: { type: "started" },
2794
+ context: { eventSource: chunk.eventSource }
2795
+ });
2796
+ connectionState.next({
2797
+ type: "state",
2798
+ state: "pending",
2799
+ error: null
2800
+ });
2801
+ break;
2802
+ }
2803
+ case "serialized-error": {
2804
+ const error = TRPCClientError.from({ error: chunk.error });
2805
+ if (retryableRpcCodes.includes(chunk.error.code)) {
2806
+ connectionState.next({
2807
+ type: "state",
2808
+ state: "connecting",
2809
+ error
2810
+ });
2811
+ break;
2812
+ }
2813
+ throw error;
2814
+ }
2815
+ case "connecting": {
2816
+ const lastState = connectionState.get();
2817
+ const error = chunk.event && TRPCClientError.from(chunk.event);
2818
+ if (!error && lastState.state === "connecting") break;
2819
+ connectionState.next({
2820
+ type: "state",
2821
+ state: "connecting",
2822
+ error
2823
+ });
2824
+ break;
2825
+ }
2826
+ case "timeout":
2827
+ connectionState.next({
2828
+ type: "state",
2829
+ state: "connecting",
2830
+ error: new TRPCClientError(`Timeout of ${chunk.ms}ms reached while waiting for a response`)
2831
+ });
2832
+ }
2833
+ }
2834
+ } catch (err) {
2835
+ _didIteratorError = true;
2836
+ _iteratorError = err;
2837
+ } finally {
2838
+ try {
2839
+ if (_iteratorAbruptCompletion && _iterator.return != null) await _iterator.return();
2840
+ } finally {
2841
+ if (_didIteratorError) throw _iteratorError;
2842
+ }
2843
+ }
2844
+ observer.next({ result: { type: "stopped" } });
2845
+ connectionState.next({
2846
+ type: "state",
2847
+ state: "idle",
2848
+ error: null
2849
+ });
2850
+ observer.complete();
2851
+ }).catch((error) => {
2852
+ observer.error(TRPCClientError.from(error));
2853
+ });
2854
+ return () => {
2855
+ observer.complete();
2856
+ ac.abort();
2857
+ connectionSub.unsubscribe();
2858
+ };
2859
+ });
2860
+ };
2861
+ };
2862
+ }
2863
+ const unstable_httpSubscriptionLink = httpSubscriptionLink;
2864
+ var import_objectSpread2$1 = __toESM(require_objectSpread2());
2865
+ function retryLink(opts) {
2866
+ return () => {
2867
+ return (callOpts) => {
2868
+ return observable((observer) => {
2869
+ let next$;
2870
+ let callNextTimeout = void 0;
2871
+ let lastEventId = void 0;
2872
+ attempt(1);
2873
+ function opWithLastEventId() {
2874
+ const op = callOpts.op;
2875
+ if (!lastEventId) return op;
2876
+ return (0, import_objectSpread2$1.default)((0, import_objectSpread2$1.default)({}, op), {}, { input: inputWithTrackedEventId(op.input, lastEventId) });
2877
+ }
2878
+ function attempt(attempts) {
2879
+ const op = opWithLastEventId();
2880
+ next$ = callOpts.next(op).subscribe({
2881
+ error(error) {
2882
+ var _opts$retryDelayMs, _opts$retryDelayMs2;
2883
+ const shouldRetry = opts.retry({
2884
+ op,
2885
+ attempts,
2886
+ error
2887
+ });
2888
+ if (!shouldRetry) {
2889
+ observer.error(error);
2890
+ return;
2891
+ }
2892
+ const delayMs = (_opts$retryDelayMs = (_opts$retryDelayMs2 = opts.retryDelayMs) === null || _opts$retryDelayMs2 === void 0 ? void 0 : _opts$retryDelayMs2.call(opts, attempts)) !== null && _opts$retryDelayMs !== void 0 ? _opts$retryDelayMs : 0;
2893
+ if (delayMs <= 0) {
2894
+ attempt(attempts + 1);
2895
+ return;
2896
+ }
2897
+ callNextTimeout = setTimeout(() => attempt(attempts + 1), delayMs);
2898
+ },
2899
+ next(envelope) {
2900
+ if ((!envelope.result.type || envelope.result.type === "data") && envelope.result.id) lastEventId = envelope.result.id;
2901
+ observer.next(envelope);
2902
+ },
2903
+ complete() {
2904
+ observer.complete();
2905
+ }
2906
+ });
2907
+ }
2908
+ return () => {
2909
+ next$.unsubscribe();
2910
+ clearTimeout(callNextTimeout);
2911
+ };
2912
+ });
2913
+ };
2914
+ };
2915
+ }
2916
+ var require_usingCtx = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/usingCtx.js"(exports, module) {
2917
+ function _usingCtx() {
2918
+ var r = "function" == typeof SuppressedError ? SuppressedError : function(r$1, e$1) {
2919
+ var n$1 = Error();
2920
+ return n$1.name = "SuppressedError", n$1.error = r$1, n$1.suppressed = e$1, n$1;
2921
+ }, e = {}, n = [];
2922
+ function using(r$1, e$1) {
2923
+ if (null != e$1) {
2924
+ if (Object(e$1) !== e$1) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");
2925
+ if (r$1) var o = e$1[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")];
2926
+ if (void 0 === o && (o = e$1[Symbol.dispose || Symbol["for"]("Symbol.dispose")], r$1)) var t = o;
2927
+ if ("function" != typeof o) throw new TypeError("Object is not disposable.");
2928
+ t && (o = function o$1() {
2929
+ try {
2930
+ t.call(e$1);
2931
+ } catch (r$2) {
2932
+ return Promise.reject(r$2);
2933
+ }
2934
+ }), n.push({
2935
+ v: e$1,
2936
+ d: o,
2937
+ a: r$1
2938
+ });
2939
+ } else r$1 && n.push({
2940
+ d: e$1,
2941
+ a: r$1
2942
+ });
2943
+ return e$1;
2944
+ }
2945
+ return {
2946
+ e,
2947
+ u: using.bind(null, false),
2948
+ a: using.bind(null, true),
2949
+ d: function d() {
2950
+ var o, t = this.e, s = 0;
2951
+ function next() {
2952
+ for (; o = n.pop(); ) try {
2953
+ if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next);
2954
+ if (o.d) {
2955
+ var r$1 = o.d.call(o.v);
2956
+ if (o.a) return s |= 2, Promise.resolve(r$1).then(next, err);
2957
+ } else s |= 1;
2958
+ } catch (r$2) {
2959
+ return err(r$2);
2960
+ }
2961
+ if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve();
2962
+ if (t !== e) throw t;
2963
+ }
2964
+ function err(n$1) {
2965
+ return t = t !== e ? new r(n$1, t) : n$1, next();
2966
+ }
2967
+ return next();
2968
+ }
2969
+ };
2970
+ }
2971
+ module.exports = _usingCtx, module.exports.__esModule = true, module.exports["default"] = module.exports;
2972
+ } });
2973
+ var require_OverloadYield = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/OverloadYield.js"(exports, module) {
2974
+ function _OverloadYield(e, d) {
2975
+ this.v = e, this.k = d;
2976
+ }
2977
+ module.exports = _OverloadYield, module.exports.__esModule = true, module.exports["default"] = module.exports;
2978
+ } });
2979
+ var require_awaitAsyncGenerator = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/awaitAsyncGenerator.js"(exports, module) {
2980
+ var OverloadYield$1 = require_OverloadYield();
2981
+ function _awaitAsyncGenerator$1(e) {
2982
+ return new OverloadYield$1(e, 0);
2983
+ }
2984
+ module.exports = _awaitAsyncGenerator$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
2985
+ } });
2986
+ var require_wrapAsyncGenerator = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/wrapAsyncGenerator.js"(exports, module) {
2987
+ var OverloadYield = require_OverloadYield();
2988
+ function _wrapAsyncGenerator$1(e) {
2989
+ return function() {
2990
+ return new AsyncGenerator(e.apply(this, arguments));
2991
+ };
2992
+ }
2993
+ function AsyncGenerator(e) {
2994
+ var r, t;
2995
+ function resume(r$1, t$1) {
2996
+ try {
2997
+ var n = e[r$1](t$1), o = n.value, u = o instanceof OverloadYield;
2998
+ Promise.resolve(u ? o.v : o).then(function(t$2) {
2999
+ if (u) {
3000
+ var i = "return" === r$1 ? "return" : "next";
3001
+ if (!o.k || t$2.done) return resume(i, t$2);
3002
+ t$2 = e[i](t$2).value;
3003
+ }
3004
+ settle(n.done ? "return" : "normal", t$2);
3005
+ }, function(e$1) {
3006
+ resume("throw", e$1);
3007
+ });
3008
+ } catch (e$1) {
3009
+ settle("throw", e$1);
3010
+ }
3011
+ }
3012
+ function settle(e$1, n) {
3013
+ switch (e$1) {
3014
+ case "return":
3015
+ r.resolve({
3016
+ value: n,
3017
+ done: true
3018
+ });
3019
+ break;
3020
+ case "throw":
3021
+ r.reject(n);
3022
+ break;
3023
+ default:
3024
+ r.resolve({
3025
+ value: n,
3026
+ done: false
3027
+ });
3028
+ }
3029
+ (r = r.next) ? resume(r.key, r.arg) : t = null;
3030
+ }
3031
+ this._invoke = function(e$1, n) {
3032
+ return new Promise(function(o, u) {
3033
+ var i = {
3034
+ key: e$1,
3035
+ arg: n,
3036
+ resolve: o,
3037
+ reject: u,
3038
+ next: null
3039
+ };
3040
+ t ? t = t.next = i : (r = t = i, resume(e$1, n));
3041
+ });
3042
+ }, "function" != typeof e["return"] && (this["return"] = void 0);
3043
+ }
3044
+ AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
3045
+ return this;
3046
+ }, AsyncGenerator.prototype.next = function(e) {
3047
+ return this._invoke("next", e);
3048
+ }, AsyncGenerator.prototype["throw"] = function(e) {
3049
+ return this._invoke("throw", e);
3050
+ }, AsyncGenerator.prototype["return"] = function(e) {
3051
+ return this._invoke("return", e);
3052
+ };
3053
+ module.exports = _wrapAsyncGenerator$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
3054
+ } });
3055
+ var import_usingCtx = __toESM(require_usingCtx());
3056
+ var import_awaitAsyncGenerator = __toESM(require_awaitAsyncGenerator());
3057
+ var import_wrapAsyncGenerator = __toESM(require_wrapAsyncGenerator());
3058
+ var import_objectSpread2 = __toESM(require_objectSpread2());
3059
+ function unstable_localLink(opts) {
3060
+ const transformer = getTransformer(opts.transformer);
3061
+ const transformChunk = (chunk) => {
3062
+ if (opts.transformer) return chunk;
3063
+ if (chunk === void 0) return chunk;
3064
+ const serialized = JSON.stringify(transformer.input.serialize(chunk));
3065
+ const deserialized = JSON.parse(transformer.output.deserialize(serialized));
3066
+ return deserialized;
3067
+ };
3068
+ return () => ({ op }) => observable((observer) => {
3069
+ let ctx = void 0;
3070
+ const ac = new AbortController();
3071
+ const signal = raceAbortSignals(op.signal, ac.signal);
3072
+ const signalPromise = abortSignalToPromise(signal);
3073
+ signalPromise.catch(() => {
3074
+ });
3075
+ let input = op.input;
3076
+ async function runProcedure(newInput) {
3077
+ input = newInput;
3078
+ ctx = await opts.createContext();
3079
+ return callProcedure({
3080
+ router: opts.router,
3081
+ path: op.path,
3082
+ getRawInput: async () => newInput,
3083
+ ctx,
3084
+ type: op.type,
3085
+ signal,
3086
+ batchIndex: 0
3087
+ });
3088
+ }
3089
+ function onErrorCallback(cause) {
3090
+ var _opts$onError;
3091
+ if (isAbortError(cause)) return;
3092
+ (_opts$onError = opts.onError) === null || _opts$onError === void 0 || _opts$onError.call(opts, {
3093
+ error: getTRPCErrorFromUnknown(cause),
3094
+ type: op.type,
3095
+ path: op.path,
3096
+ input,
3097
+ ctx
3098
+ });
3099
+ }
3100
+ function coerceToTRPCClientError(cause) {
3101
+ if (isTRPCClientError(cause)) return cause;
3102
+ const error = getTRPCErrorFromUnknown(cause);
3103
+ const shape = getErrorShape({
3104
+ config: opts.router._def._config,
3105
+ ctx,
3106
+ error,
3107
+ input,
3108
+ path: op.path,
3109
+ type: op.type
3110
+ });
3111
+ return TRPCClientError.from({ error: transformChunk(shape) }, { cause: cause instanceof Error ? cause : void 0 });
3112
+ }
3113
+ run(async () => {
3114
+ switch (op.type) {
3115
+ case "query":
3116
+ case "mutation": {
3117
+ const result = await runProcedure(op.input);
3118
+ if (!isAsyncIterable(result)) {
3119
+ observer.next({ result: { data: transformChunk(result) } });
3120
+ observer.complete();
3121
+ break;
3122
+ }
3123
+ observer.next({ result: { data: (0, import_wrapAsyncGenerator.default)(function* () {
3124
+ try {
3125
+ var _usingCtx$1 = (0, import_usingCtx.default)();
3126
+ const iterator = _usingCtx$1.a(iteratorResource(result));
3127
+ const _finally = _usingCtx$1.u(makeResource({}, () => {
3128
+ observer.complete();
3129
+ }));
3130
+ try {
3131
+ while (true) {
3132
+ const res = yield (0, import_awaitAsyncGenerator.default)(Promise.race([iterator.next(), signalPromise]));
3133
+ if (res.done) return transformChunk(res.value);
3134
+ yield transformChunk(res.value);
3135
+ }
3136
+ } catch (cause) {
3137
+ onErrorCallback(cause);
3138
+ throw coerceToTRPCClientError(cause);
3139
+ }
3140
+ } catch (_) {
3141
+ _usingCtx$1.e = _;
3142
+ } finally {
3143
+ yield (0, import_awaitAsyncGenerator.default)(_usingCtx$1.d());
3144
+ }
3145
+ })() } });
3146
+ break;
3147
+ }
3148
+ case "subscription":
3149
+ try {
3150
+ var _usingCtx3 = (0, import_usingCtx.default)();
3151
+ const connectionState = behaviorSubject({
3152
+ type: "state",
3153
+ state: "connecting",
3154
+ error: null
3155
+ });
3156
+ const connectionSub = connectionState.subscribe({ next(state) {
3157
+ observer.next({ result: state });
3158
+ } });
3159
+ let lastEventId = void 0;
3160
+ const _finally = _usingCtx3.u(makeResource({}, async () => {
3161
+ observer.complete();
3162
+ connectionState.next({
3163
+ type: "state",
3164
+ state: "idle",
3165
+ error: null
3166
+ });
3167
+ connectionSub.unsubscribe();
3168
+ }));
3169
+ while (true) try {
3170
+ var _usingCtx4 = (0, import_usingCtx.default)();
3171
+ const result = await runProcedure(inputWithTrackedEventId(op.input, lastEventId));
3172
+ if (!isAsyncIterable(result)) throw new Error("Expected an async iterable");
3173
+ const iterator = _usingCtx4.a(iteratorResource(result));
3174
+ observer.next({ result: { type: "started" } });
3175
+ connectionState.next({
3176
+ type: "state",
3177
+ state: "pending",
3178
+ error: null
3179
+ });
3180
+ while (true) {
3181
+ let res;
3182
+ try {
3183
+ res = await Promise.race([iterator.next(), signalPromise]);
3184
+ } catch (cause) {
3185
+ if (isAbortError(cause)) return;
3186
+ const error = getTRPCErrorFromUnknown(cause);
3187
+ if (!retryableRpcCodes.includes(TRPC_ERROR_CODES_BY_KEY[error.code])) throw coerceToTRPCClientError(error);
3188
+ onErrorCallback(error);
3189
+ connectionState.next({
3190
+ type: "state",
3191
+ state: "connecting",
3192
+ error: coerceToTRPCClientError(error)
3193
+ });
3194
+ break;
3195
+ }
3196
+ if (res.done) return;
3197
+ let chunk;
3198
+ if (isTrackedEnvelope(res.value)) {
3199
+ lastEventId = res.value[0];
3200
+ chunk = {
3201
+ id: res.value[0],
3202
+ data: {
3203
+ id: res.value[0],
3204
+ data: res.value[1]
3205
+ }
3206
+ };
3207
+ } else chunk = { data: res.value };
3208
+ observer.next({ result: (0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, chunk), {}, { data: transformChunk(chunk.data) }) });
3209
+ }
3210
+ } catch (_) {
3211
+ _usingCtx4.e = _;
3212
+ } finally {
3213
+ await _usingCtx4.d();
3214
+ }
3215
+ break;
3216
+ } catch (_) {
3217
+ _usingCtx3.e = _;
3218
+ } finally {
3219
+ _usingCtx3.d();
3220
+ }
3221
+ }
3222
+ }).catch((cause) => {
3223
+ onErrorCallback(cause);
3224
+ observer.error(coerceToTRPCClientError(cause));
3225
+ });
3226
+ return () => {
3227
+ ac.abort();
3228
+ };
3229
+ });
3230
+ }
3231
+ const experimental_localLink = unstable_localLink;
3232
+ export {
3233
+ TRPCClientError,
3234
+ TRPCUntypedClient,
3235
+ clientCallTypeToProcedureType,
3236
+ createTRPCClient,
3237
+ createTRPCClientProxy,
3238
+ createTRPCClient as createTRPCProxyClient,
3239
+ createTRPCUntypedClient,
3240
+ createWSClient,
3241
+ experimental_localLink,
3242
+ getFetch,
3243
+ getUntypedClient,
3244
+ httpBatchLink,
3245
+ httpBatchStreamLink,
3246
+ httpLink,
3247
+ httpSubscriptionLink,
3248
+ isFormData$1 as isFormData,
3249
+ isNonJsonSerializable,
3250
+ isOctetType,
3251
+ isTRPCClientError,
3252
+ jsonEncoder,
3253
+ loggerLink,
3254
+ retryLink,
3255
+ splitLink,
3256
+ unstable_httpBatchStreamLink,
3257
+ unstable_httpSubscriptionLink,
3258
+ unstable_localLink,
3259
+ wsLink
3260
+ };