@trpc/server 11.19.0 → 11.21.1-canary.20.10e2ef98f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/express/index.d.ts +1 -0
- package/adapters/express/index.js +1 -0
- package/adapters/fastify/index.d.ts +1 -0
- package/adapters/fastify/index.js +1 -0
- package/adapters/fetch/index.d.ts +1 -0
- package/adapters/fetch/index.js +1 -0
- package/adapters/next/index.d.ts +1 -0
- package/adapters/next/index.js +1 -0
- package/adapters/next-app-dir/index.d.ts +1 -0
- package/adapters/next-app-dir/index.js +1 -0
- package/adapters/node-http/content-type/form-data/index.d.ts +1 -0
- package/adapters/node-http/content-type/form-data/index.js +1 -0
- package/adapters/node-http/content-type/json/index.d.ts +1 -0
- package/adapters/node-http/content-type/json/index.js +1 -0
- package/adapters/node-http/index.d.ts +1 -0
- package/adapters/node-http/index.js +1 -0
- package/adapters/standalone/index.d.ts +1 -0
- package/adapters/standalone/index.js +1 -0
- package/adapters/ws/index.d.ts +1 -0
- package/adapters/ws/index.js +1 -0
- package/dist/adapters/aws-lambda/index.cjs +2 -2
- package/dist/adapters/aws-lambda/index.d.cts +1 -1
- package/dist/adapters/aws-lambda/index.d.mts +1 -1
- package/dist/adapters/aws-lambda/index.mjs +2 -2
- package/dist/adapters/express.cjs +3 -3
- package/dist/adapters/express.d.cts +2 -2
- package/dist/adapters/express.d.mts +2 -2
- package/dist/adapters/express.mjs +3 -3
- package/dist/adapters/fastify/index.cjs +4 -4
- package/dist/adapters/fastify/index.d.cts +2 -2
- package/dist/adapters/fastify/index.d.mts +2 -2
- package/dist/adapters/fastify/index.mjs +4 -4
- package/dist/adapters/fetch/index.cjs +2 -2
- package/dist/adapters/fetch/index.d.cts +1 -1
- package/dist/adapters/fetch/index.d.mts +1 -1
- package/dist/adapters/fetch/index.mjs +2 -2
- package/dist/adapters/next-app-dir.cjs +7 -7
- package/dist/adapters/next-app-dir.d.cts +1 -1
- package/dist/adapters/next-app-dir.d.mts +1 -1
- package/dist/adapters/next-app-dir.mjs +2 -2
- package/dist/adapters/next.cjs +5 -5
- package/dist/adapters/next.d.cts +2 -2
- package/dist/adapters/next.d.mts +2 -2
- package/dist/adapters/next.mjs +4 -4
- package/dist/adapters/node-http/index.cjs +1 -1
- package/dist/adapters/node-http/index.d.cts +1 -1
- package/dist/adapters/node-http/index.d.mts +1 -1
- package/dist/adapters/node-http/index.mjs +1 -1
- package/dist/adapters/standalone.cjs +3 -3
- package/dist/adapters/standalone.d.cts +2 -2
- package/dist/adapters/standalone.d.mts +2 -2
- package/dist/adapters/standalone.mjs +3 -3
- package/dist/adapters/ws.cjs +1 -1
- package/dist/adapters/ws.d.cts +2 -2
- package/dist/adapters/ws.d.mts +2 -2
- package/dist/adapters/ws.mjs +1 -1
- package/dist/{tracked-BQJb0ANk.cjs → asyncGeneratorDelegate-D2tFgl_z.cjs} +167 -17
- package/dist/{tracked-D4jU_Hb3.mjs → asyncGeneratorDelegate-mPyp1u6d.mjs} +141 -9
- package/dist/asyncGeneratorDelegate-mPyp1u6d.mjs.map +1 -0
- package/dist/{codes-C6ZIq69A.cjs → codes-BwD4QurF.cjs} +9 -0
- package/dist/{codes-D5Ya6_Bi.mjs → codes-D6C_OiJy.mjs} +5 -2
- package/dist/codes-D6C_OiJy.mjs.map +1 -0
- package/dist/{getErrorShape-B0JBUs-i.mjs → getErrorShape-BziUKLM_.mjs} +52 -14
- package/dist/getErrorShape-BziUKLM_.mjs.map +1 -0
- package/dist/{getErrorShape-DeIapApr.cjs → getErrorShape-CVxLwJgN.cjs} +80 -12
- package/dist/http.cjs +2 -2
- package/dist/http.d.cts +1 -1
- package/dist/http.d.mts +1 -1
- package/dist/http.mjs +2 -2
- package/dist/{index-_jAhoJQ7.d.mts → index-BDZDS1SD.d.mts} +2 -2
- package/dist/{index-BHatz_Pu.d.cts.map → index-BDZDS1SD.d.mts.map} +1 -1
- package/dist/{index-BHatz_Pu.d.cts → index-BzKrDvzg.d.cts} +2 -2
- package/dist/{index-_jAhoJQ7.d.mts.map → index-BzKrDvzg.d.cts.map} +1 -1
- package/dist/index.cjs +12 -12
- package/dist/index.d.cts +2 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/{initTRPC-B7UdX-c3.cjs → initTRPC-DLNeKv0z.cjs} +114 -26
- package/dist/{initTRPC-B259os3T.mjs → initTRPC-DpOypWK_.mjs} +95 -19
- package/dist/initTRPC-DpOypWK_.mjs.map +1 -0
- package/dist/{node-http-BUlb5EdB.mjs → node-http-B_z10Yky.mjs} +5 -5
- package/dist/{node-http-BUlb5EdB.mjs.map → node-http-B_z10Yky.mjs.map} +1 -1
- package/dist/{node-http-CikCqjt6.cjs → node-http-Bti3aBT6.cjs} +9 -9
- package/dist/{parseTRPCMessage-MJWDg1vX.mjs → parseTRPCMessage-CSh-CVPr.mjs} +2 -2
- package/dist/{parseTRPCMessage-MJWDg1vX.mjs.map → parseTRPCMessage-CSh-CVPr.mjs.map} +1 -1
- package/dist/{parseTRPCMessage-BxAIUx49.cjs → parseTRPCMessage-RJS87G_t.cjs} +1 -1
- package/dist/{resolveResponse-JtMyT9TQ.mjs → resolveResponse-CrB_9MSD.mjs} +43 -179
- package/dist/resolveResponse-CrB_9MSD.mjs.map +1 -0
- package/dist/{resolveResponse-DLpzHrPG.cjs → resolveResponse-D5JAuwvU.cjs} +90 -226
- package/dist/rpc.cjs +2 -2
- package/dist/rpc.d.cts +1 -1
- package/dist/rpc.d.mts +1 -1
- package/dist/rpc.mjs +2 -2
- package/dist/shared.cjs +1 -1
- package/dist/shared.d.cts +1 -1
- package/dist/shared.d.mts +1 -1
- package/dist/shared.mjs +1 -1
- package/dist/{unstable-core-do-not-import-BK_OKrtM.d.mts → unstable-core-do-not-import-JE3NCpqt.d.mts} +707 -636
- package/dist/unstable-core-do-not-import-JE3NCpqt.d.mts.map +1 -0
- package/dist/{unstable-core-do-not-import-B9ZnrQAU.d.cts → unstable-core-do-not-import-Jynlfuqc.d.cts} +707 -636
- package/dist/unstable-core-do-not-import-Jynlfuqc.d.cts.map +1 -0
- package/dist/unstable-core-do-not-import.cjs +30 -23
- package/dist/unstable-core-do-not-import.d.cts +2 -2
- package/dist/unstable-core-do-not-import.d.mts +2 -2
- package/dist/unstable-core-do-not-import.mjs +7 -7
- package/dist/{ws-BMSSVFiW.cjs → ws-BgBeYgGS.cjs} +22 -22
- package/dist/{ws-C7ZOJJeA.mjs → ws-CNjkWAs9.mjs} +7 -7
- package/dist/{ws-C7ZOJJeA.mjs.map → ws-CNjkWAs9.mjs.map} +1 -1
- package/http/index.d.ts +1 -0
- package/http/index.js +1 -0
- package/observable/index.d.ts +1 -0
- package/observable/index.js +1 -0
- package/package.json +14 -14
- package/rpc/index.d.ts +1 -0
- package/rpc/index.js +1 -0
- package/shared/index.d.ts +1 -0
- package/shared/index.js +1 -0
- package/src/@trpc/server/index.ts +1 -0
- package/src/unstable-core-do-not-import/clientish/inference.ts +12 -0
- package/src/unstable-core-do-not-import/error/formatter.ts +90 -3
- package/src/unstable-core-do-not-import/error/getErrorShape.ts +8 -17
- package/src/unstable-core-do-not-import/initTRPC.ts +10 -7
- package/src/unstable-core-do-not-import/middleware.ts +93 -2
- package/src/unstable-core-do-not-import/procedure.ts +2 -0
- package/src/unstable-core-do-not-import/procedureBuilder.ts +79 -13
- package/src/unstable-core-do-not-import/rootConfig.ts +8 -0
- package/src/unstable-core-do-not-import/stream/jsonl.ts +41 -33
- package/src/unstable-core-do-not-import/utils.ts +4 -0
- package/unstable-core-do-not-import/index.d.ts +1 -0
- package/unstable-core-do-not-import/index.js +1 -0
- package/dist/codes-D5Ya6_Bi.mjs.map +0 -1
- package/dist/getErrorShape-B0JBUs-i.mjs.map +0 -1
- package/dist/initTRPC-B259os3T.mjs.map +0 -1
- package/dist/resolveResponse-JtMyT9TQ.mjs.map +0 -1
- package/dist/tracked-D4jU_Hb3.mjs.map +0 -1
- package/dist/unstable-core-do-not-import-B9ZnrQAU.d.cts.map +0 -1
- package/dist/unstable-core-do-not-import-BK_OKrtM.d.mts.map +0 -1
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
const require_codes = require("./codes-
|
|
2
|
-
const require_getErrorShape = require("./getErrorShape-
|
|
3
|
-
//#region src/unstable-core-do-not-import/error/formatter.ts
|
|
4
|
-
const defaultFormatter = ({ shape }) => {
|
|
5
|
-
return shape;
|
|
6
|
-
};
|
|
7
|
-
//#endregion
|
|
1
|
+
const require_codes = require("./codes-BwD4QurF.cjs");
|
|
2
|
+
const require_getErrorShape = require("./getErrorShape-CVxLwJgN.cjs");
|
|
8
3
|
//#region src/unstable-core-do-not-import/error/TRPCError.ts
|
|
9
4
|
var UnknownCauseError = class extends Error {
|
|
10
5
|
constructor(cause) {
|
|
@@ -160,7 +155,7 @@ const emptyRouter = {
|
|
|
160
155
|
queries: {},
|
|
161
156
|
mutations: {},
|
|
162
157
|
subscriptions: {},
|
|
163
|
-
errorFormatter: defaultFormatter,
|
|
158
|
+
errorFormatter: require_getErrorShape.defaultFormatter,
|
|
164
159
|
transformer: defaultTransformer
|
|
165
160
|
};
|
|
166
161
|
/**
|
|
@@ -320,12 +315,12 @@ function mergeRouters(...routerList) {
|
|
|
320
315
|
const record = require_codes.mergeWithoutOverrides({}, ...routerList.map((r) => r._def.record));
|
|
321
316
|
return createRouterFactory({
|
|
322
317
|
errorFormatter: routerList.reduce((currentErrorFormatter, nextRouter) => {
|
|
323
|
-
if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {
|
|
324
|
-
if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) throw new Error("You seem to have several error formatters");
|
|
318
|
+
if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== require_getErrorShape.defaultFormatter) {
|
|
319
|
+
if (currentErrorFormatter !== require_getErrorShape.defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) throw new Error("You seem to have several error formatters");
|
|
325
320
|
return nextRouter._def._config.errorFormatter;
|
|
326
321
|
}
|
|
327
322
|
return currentErrorFormatter;
|
|
328
|
-
}, defaultFormatter),
|
|
323
|
+
}, require_getErrorShape.defaultFormatter),
|
|
329
324
|
transformer: routerList.reduce((prev, current) => {
|
|
330
325
|
if (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {
|
|
331
326
|
if (prev !== defaultTransformer && prev !== current._def._config.transformer) throw new Error("You seem to have several transformers");
|
|
@@ -341,6 +336,120 @@ function mergeRouters(...routerList) {
|
|
|
341
336
|
})(record);
|
|
342
337
|
}
|
|
343
338
|
//#endregion
|
|
339
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/OverloadYield.js
|
|
340
|
+
function _OverloadYield(e, d) {
|
|
341
|
+
this.v = e, this.k = d;
|
|
342
|
+
}
|
|
343
|
+
//#endregion
|
|
344
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/wrapAsyncGenerator.js
|
|
345
|
+
function _wrapAsyncGenerator(e) {
|
|
346
|
+
return function() {
|
|
347
|
+
return new AsyncGenerator(e.apply(this, arguments));
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
function AsyncGenerator(e) {
|
|
351
|
+
var r, t;
|
|
352
|
+
function resume(r, t) {
|
|
353
|
+
try {
|
|
354
|
+
var n = e[r](t), o = n.value, u = o instanceof _OverloadYield;
|
|
355
|
+
Promise.resolve(u ? o.v : o).then(function(t) {
|
|
356
|
+
if (u) {
|
|
357
|
+
var i = "return" === r ? "return" : "next";
|
|
358
|
+
if (!o.k || t.done) return resume(i, t);
|
|
359
|
+
t = e[i](t).value;
|
|
360
|
+
}
|
|
361
|
+
settle(n.done ? "return" : "normal", t);
|
|
362
|
+
}, function(e) {
|
|
363
|
+
resume("throw", e);
|
|
364
|
+
});
|
|
365
|
+
} catch (e) {
|
|
366
|
+
settle("throw", e);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
function settle(e, n) {
|
|
370
|
+
switch (e) {
|
|
371
|
+
case "return":
|
|
372
|
+
r.resolve({
|
|
373
|
+
value: n,
|
|
374
|
+
done: !0
|
|
375
|
+
});
|
|
376
|
+
break;
|
|
377
|
+
case "throw":
|
|
378
|
+
r.reject(n);
|
|
379
|
+
break;
|
|
380
|
+
default: r.resolve({
|
|
381
|
+
value: n,
|
|
382
|
+
done: !1
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
(r = r.next) ? resume(r.key, r.arg) : t = null;
|
|
386
|
+
}
|
|
387
|
+
this._invoke = function(e, n) {
|
|
388
|
+
return new Promise(function(o, u) {
|
|
389
|
+
var i = {
|
|
390
|
+
key: e,
|
|
391
|
+
arg: n,
|
|
392
|
+
resolve: o,
|
|
393
|
+
reject: u,
|
|
394
|
+
next: null
|
|
395
|
+
};
|
|
396
|
+
t ? t = t.next = i : (r = t = i, resume(e, n));
|
|
397
|
+
});
|
|
398
|
+
}, "function" != typeof e["return"] && (this["return"] = void 0);
|
|
399
|
+
}
|
|
400
|
+
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
|
|
401
|
+
return this;
|
|
402
|
+
}, AsyncGenerator.prototype.next = function(e) {
|
|
403
|
+
return this._invoke("next", e);
|
|
404
|
+
}, AsyncGenerator.prototype["throw"] = function(e) {
|
|
405
|
+
return this._invoke("throw", e);
|
|
406
|
+
}, AsyncGenerator.prototype["return"] = function(e) {
|
|
407
|
+
return this._invoke("return", e);
|
|
408
|
+
};
|
|
409
|
+
//#endregion
|
|
410
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/asyncIterator.js
|
|
411
|
+
function _asyncIterator(r) {
|
|
412
|
+
var n, t, o, e = 2;
|
|
413
|
+
for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {
|
|
414
|
+
if (t && null != (n = r[t])) return n.call(r);
|
|
415
|
+
if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));
|
|
416
|
+
t = "@@asyncIterator", o = "@@iterator";
|
|
417
|
+
}
|
|
418
|
+
throw new TypeError("Object is not async iterable");
|
|
419
|
+
}
|
|
420
|
+
function AsyncFromSyncIterator(r) {
|
|
421
|
+
function AsyncFromSyncIteratorContinuation(r) {
|
|
422
|
+
if (Object(r) !== r) return Promise.reject(/* @__PURE__ */ new TypeError(r + " is not an object."));
|
|
423
|
+
var n = r.done;
|
|
424
|
+
return Promise.resolve(r.value).then(function(r) {
|
|
425
|
+
return {
|
|
426
|
+
value: r,
|
|
427
|
+
done: n
|
|
428
|
+
};
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {
|
|
432
|
+
this.s = r, this.n = r.next;
|
|
433
|
+
}, AsyncFromSyncIterator.prototype = {
|
|
434
|
+
s: null,
|
|
435
|
+
n: null,
|
|
436
|
+
next: function next() {
|
|
437
|
+
return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
|
|
438
|
+
},
|
|
439
|
+
"return": function _return(r) {
|
|
440
|
+
var n = this.s["return"];
|
|
441
|
+
return void 0 === n ? Promise.resolve({
|
|
442
|
+
value: r,
|
|
443
|
+
done: !0
|
|
444
|
+
}) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
|
|
445
|
+
},
|
|
446
|
+
"throw": function _throw(r) {
|
|
447
|
+
var n = this.s["return"];
|
|
448
|
+
return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
|
|
449
|
+
}
|
|
450
|
+
}, new AsyncFromSyncIterator(r);
|
|
451
|
+
}
|
|
452
|
+
//#endregion
|
|
344
453
|
//#region src/unstable-core-do-not-import/stream/tracked.ts
|
|
345
454
|
const trackedSymbol = Symbol();
|
|
346
455
|
/**
|
|
@@ -365,12 +474,59 @@ function tracked(id, data) {
|
|
|
365
474
|
];
|
|
366
475
|
}
|
|
367
476
|
//#endregion
|
|
477
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/asyncGeneratorDelegate.js
|
|
478
|
+
function _asyncGeneratorDelegate(t) {
|
|
479
|
+
var e = {}, n = !1;
|
|
480
|
+
function pump(e, r) {
|
|
481
|
+
return n = !0, r = new Promise(function(n) {
|
|
482
|
+
n(t[e](r));
|
|
483
|
+
}), {
|
|
484
|
+
done: !1,
|
|
485
|
+
value: new _OverloadYield(r, 1)
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function() {
|
|
489
|
+
return this;
|
|
490
|
+
}, e.next = function(t) {
|
|
491
|
+
return n ? (n = !1, t) : pump("next", t);
|
|
492
|
+
}, "function" == typeof t["throw"] && (e["throw"] = function(t) {
|
|
493
|
+
if (n) throw n = !1, t;
|
|
494
|
+
return pump("throw", t);
|
|
495
|
+
}), "function" == typeof t["return"] && (e["return"] = function(t) {
|
|
496
|
+
return n ? (n = !1, t) : pump("return", t);
|
|
497
|
+
}), e;
|
|
498
|
+
}
|
|
499
|
+
//#endregion
|
|
368
500
|
Object.defineProperty(exports, "TRPCError", {
|
|
369
501
|
enumerable: true,
|
|
370
502
|
get: function() {
|
|
371
503
|
return TRPCError;
|
|
372
504
|
}
|
|
373
505
|
});
|
|
506
|
+
Object.defineProperty(exports, "_OverloadYield", {
|
|
507
|
+
enumerable: true,
|
|
508
|
+
get: function() {
|
|
509
|
+
return _OverloadYield;
|
|
510
|
+
}
|
|
511
|
+
});
|
|
512
|
+
Object.defineProperty(exports, "_asyncGeneratorDelegate", {
|
|
513
|
+
enumerable: true,
|
|
514
|
+
get: function() {
|
|
515
|
+
return _asyncGeneratorDelegate;
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
Object.defineProperty(exports, "_asyncIterator", {
|
|
519
|
+
enumerable: true,
|
|
520
|
+
get: function() {
|
|
521
|
+
return _asyncIterator;
|
|
522
|
+
}
|
|
523
|
+
});
|
|
524
|
+
Object.defineProperty(exports, "_wrapAsyncGenerator", {
|
|
525
|
+
enumerable: true,
|
|
526
|
+
get: function() {
|
|
527
|
+
return _wrapAsyncGenerator;
|
|
528
|
+
}
|
|
529
|
+
});
|
|
374
530
|
Object.defineProperty(exports, "callProcedure", {
|
|
375
531
|
enumerable: true,
|
|
376
532
|
get: function() {
|
|
@@ -389,12 +545,6 @@ Object.defineProperty(exports, "createRouterFactory", {
|
|
|
389
545
|
return createRouterFactory;
|
|
390
546
|
}
|
|
391
547
|
});
|
|
392
|
-
Object.defineProperty(exports, "defaultFormatter", {
|
|
393
|
-
enumerable: true,
|
|
394
|
-
get: function() {
|
|
395
|
-
return defaultFormatter;
|
|
396
|
-
}
|
|
397
|
-
});
|
|
398
548
|
Object.defineProperty(exports, "defaultTransformer", {
|
|
399
549
|
enumerable: true,
|
|
400
550
|
get: function() {
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import { d as
|
|
2
|
-
import {
|
|
3
|
-
//#region src/unstable-core-do-not-import/error/formatter.ts
|
|
4
|
-
const defaultFormatter = ({ shape }) => {
|
|
5
|
-
return shape;
|
|
6
|
-
};
|
|
7
|
-
//#endregion
|
|
1
|
+
import { d as isObject, f as mergeWithoutOverrides, s as emptyObject, u as isFunction } from "./codes-D6C_OiJy.mjs";
|
|
2
|
+
import { g as createRecursiveProxy, i as defaultFormatter, n as _objectSpread2, r as _defineProperty } from "./getErrorShape-BziUKLM_.mjs";
|
|
8
3
|
//#region src/unstable-core-do-not-import/error/TRPCError.ts
|
|
9
4
|
var UnknownCauseError = class extends Error {
|
|
10
5
|
constructor(cause) {
|
|
@@ -341,6 +336,120 @@ function mergeRouters(...routerList) {
|
|
|
341
336
|
})(record);
|
|
342
337
|
}
|
|
343
338
|
//#endregion
|
|
339
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/OverloadYield.js
|
|
340
|
+
function _OverloadYield(e, d) {
|
|
341
|
+
this.v = e, this.k = d;
|
|
342
|
+
}
|
|
343
|
+
//#endregion
|
|
344
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/wrapAsyncGenerator.js
|
|
345
|
+
function _wrapAsyncGenerator(e) {
|
|
346
|
+
return function() {
|
|
347
|
+
return new AsyncGenerator(e.apply(this, arguments));
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
function AsyncGenerator(e) {
|
|
351
|
+
var r, t;
|
|
352
|
+
function resume(r, t) {
|
|
353
|
+
try {
|
|
354
|
+
var n = e[r](t), o = n.value, u = o instanceof _OverloadYield;
|
|
355
|
+
Promise.resolve(u ? o.v : o).then(function(t) {
|
|
356
|
+
if (u) {
|
|
357
|
+
var i = "return" === r ? "return" : "next";
|
|
358
|
+
if (!o.k || t.done) return resume(i, t);
|
|
359
|
+
t = e[i](t).value;
|
|
360
|
+
}
|
|
361
|
+
settle(n.done ? "return" : "normal", t);
|
|
362
|
+
}, function(e) {
|
|
363
|
+
resume("throw", e);
|
|
364
|
+
});
|
|
365
|
+
} catch (e) {
|
|
366
|
+
settle("throw", e);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
function settle(e, n) {
|
|
370
|
+
switch (e) {
|
|
371
|
+
case "return":
|
|
372
|
+
r.resolve({
|
|
373
|
+
value: n,
|
|
374
|
+
done: !0
|
|
375
|
+
});
|
|
376
|
+
break;
|
|
377
|
+
case "throw":
|
|
378
|
+
r.reject(n);
|
|
379
|
+
break;
|
|
380
|
+
default: r.resolve({
|
|
381
|
+
value: n,
|
|
382
|
+
done: !1
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
(r = r.next) ? resume(r.key, r.arg) : t = null;
|
|
386
|
+
}
|
|
387
|
+
this._invoke = function(e, n) {
|
|
388
|
+
return new Promise(function(o, u) {
|
|
389
|
+
var i = {
|
|
390
|
+
key: e,
|
|
391
|
+
arg: n,
|
|
392
|
+
resolve: o,
|
|
393
|
+
reject: u,
|
|
394
|
+
next: null
|
|
395
|
+
};
|
|
396
|
+
t ? t = t.next = i : (r = t = i, resume(e, n));
|
|
397
|
+
});
|
|
398
|
+
}, "function" != typeof e["return"] && (this["return"] = void 0);
|
|
399
|
+
}
|
|
400
|
+
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function() {
|
|
401
|
+
return this;
|
|
402
|
+
}, AsyncGenerator.prototype.next = function(e) {
|
|
403
|
+
return this._invoke("next", e);
|
|
404
|
+
}, AsyncGenerator.prototype["throw"] = function(e) {
|
|
405
|
+
return this._invoke("throw", e);
|
|
406
|
+
}, AsyncGenerator.prototype["return"] = function(e) {
|
|
407
|
+
return this._invoke("return", e);
|
|
408
|
+
};
|
|
409
|
+
//#endregion
|
|
410
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/asyncIterator.js
|
|
411
|
+
function _asyncIterator(r) {
|
|
412
|
+
var n, t, o, e = 2;
|
|
413
|
+
for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) {
|
|
414
|
+
if (t && null != (n = r[t])) return n.call(r);
|
|
415
|
+
if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r));
|
|
416
|
+
t = "@@asyncIterator", o = "@@iterator";
|
|
417
|
+
}
|
|
418
|
+
throw new TypeError("Object is not async iterable");
|
|
419
|
+
}
|
|
420
|
+
function AsyncFromSyncIterator(r) {
|
|
421
|
+
function AsyncFromSyncIteratorContinuation(r) {
|
|
422
|
+
if (Object(r) !== r) return Promise.reject(/* @__PURE__ */ new TypeError(r + " is not an object."));
|
|
423
|
+
var n = r.done;
|
|
424
|
+
return Promise.resolve(r.value).then(function(r) {
|
|
425
|
+
return {
|
|
426
|
+
value: r,
|
|
427
|
+
done: n
|
|
428
|
+
};
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
return AsyncFromSyncIterator = function AsyncFromSyncIterator(r) {
|
|
432
|
+
this.s = r, this.n = r.next;
|
|
433
|
+
}, AsyncFromSyncIterator.prototype = {
|
|
434
|
+
s: null,
|
|
435
|
+
n: null,
|
|
436
|
+
next: function next() {
|
|
437
|
+
return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
|
|
438
|
+
},
|
|
439
|
+
"return": function _return(r) {
|
|
440
|
+
var n = this.s["return"];
|
|
441
|
+
return void 0 === n ? Promise.resolve({
|
|
442
|
+
value: r,
|
|
443
|
+
done: !0
|
|
444
|
+
}) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
|
|
445
|
+
},
|
|
446
|
+
"throw": function _throw(r) {
|
|
447
|
+
var n = this.s["return"];
|
|
448
|
+
return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments));
|
|
449
|
+
}
|
|
450
|
+
}, new AsyncFromSyncIterator(r);
|
|
451
|
+
}
|
|
452
|
+
//#endregion
|
|
344
453
|
//#region src/unstable-core-do-not-import/stream/tracked.ts
|
|
345
454
|
const trackedSymbol = Symbol();
|
|
346
455
|
/**
|
|
@@ -365,6 +474,29 @@ function tracked(id, data) {
|
|
|
365
474
|
];
|
|
366
475
|
}
|
|
367
476
|
//#endregion
|
|
368
|
-
|
|
477
|
+
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/asyncGeneratorDelegate.js
|
|
478
|
+
function _asyncGeneratorDelegate(t) {
|
|
479
|
+
var e = {}, n = !1;
|
|
480
|
+
function pump(e, r) {
|
|
481
|
+
return n = !0, r = new Promise(function(n) {
|
|
482
|
+
n(t[e](r));
|
|
483
|
+
}), {
|
|
484
|
+
done: !1,
|
|
485
|
+
value: new _OverloadYield(r, 1)
|
|
486
|
+
};
|
|
487
|
+
}
|
|
488
|
+
return e["undefined" != typeof Symbol && Symbol.iterator || "@@iterator"] = function() {
|
|
489
|
+
return this;
|
|
490
|
+
}, e.next = function(t) {
|
|
491
|
+
return n ? (n = !1, t) : pump("next", t);
|
|
492
|
+
}, "function" == typeof t["throw"] && (e["throw"] = function(t) {
|
|
493
|
+
if (n) throw n = !1, t;
|
|
494
|
+
return pump("throw", t);
|
|
495
|
+
}), "function" == typeof t["return"] && (e["return"] = function(t) {
|
|
496
|
+
return n ? (n = !1, t) : pump("return", t);
|
|
497
|
+
}), e;
|
|
498
|
+
}
|
|
499
|
+
//#endregion
|
|
500
|
+
export { transformTRPCResponse as _, _asyncIterator as a, getTRPCErrorFromUnknown as b, callProcedure as c, getProcedureAtPath as d, lazy as f, transformResult as g, getDataTransformer as h, tracked as i, createCallerFactory as l, defaultTransformer as m, isTrackedEnvelope as n, _wrapAsyncGenerator as o, mergeRouters as p, sse as r, _OverloadYield as s, _asyncGeneratorDelegate as t, createRouterFactory as u, TRPCError as v, getCauseFromUnknown as y };
|
|
369
501
|
|
|
370
|
-
//# sourceMappingURL=
|
|
502
|
+
//# sourceMappingURL=asyncGeneratorDelegate-mPyp1u6d.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncGeneratorDelegate-mPyp1u6d.mjs","names":[],"sources":["../src/unstable-core-do-not-import/error/TRPCError.ts","../src/unstable-core-do-not-import/transformer.ts","../src/unstable-core-do-not-import/router.ts","../src/unstable-core-do-not-import/stream/tracked.ts"],"sourcesContent":["import type { TRPC_ERROR_CODE_KEY } from '../rpc/codes';\nimport { isObject } from '../utils';\n\nclass UnknownCauseError extends Error {\n [key: string]: unknown;\n\n constructor(cause: object) {\n super(getMessage(cause));\n Object.assign(this, cause);\n }\n}\n\nfunction getMessage(cause: object) {\n if ('message' in cause) return String(cause.message);\n\n return undefined;\n}\n\nexport function getCauseFromUnknown(cause: unknown): Error | undefined {\n if (cause instanceof Error) {\n return cause;\n }\n\n const type = typeof cause;\n if (type === 'undefined' || type === 'function' || cause === null) {\n return undefined;\n }\n\n // Primitive types just get wrapped in an error\n if (type !== 'object') {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n return new Error(String(cause));\n }\n\n // If it's an object, we'll create a synthetic error\n if (isObject(cause)) {\n return new UnknownCauseError(cause);\n }\n\n return undefined;\n}\n\nexport function getTRPCErrorFromUnknown(cause: unknown): TRPCError {\n if (cause instanceof TRPCError) {\n return cause;\n }\n if (cause instanceof Error && cause.name === 'TRPCError') {\n // https://github.com/trpc/trpc/pull/4848\n return cause as TRPCError;\n }\n\n const trpcError = new TRPCError({\n code: 'INTERNAL_SERVER_ERROR',\n cause,\n });\n\n // Inherit stack from error\n if (cause instanceof Error && cause.stack) {\n trpcError.stack = cause.stack;\n }\n\n return trpcError;\n}\n\nexport class TRPCError extends Error {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore override doesn't work in all environments due to \"This member cannot have an 'override' modifier because it is not declared in the base class 'Error'\"\n public override readonly cause?: Error;\n public readonly code;\n\n constructor(opts: {\n message?: string;\n code: TRPC_ERROR_CODE_KEY;\n cause?: unknown;\n }) {\n const cause = getCauseFromUnknown(opts.cause);\n const message = opts.message ?? cause?.message ?? opts.code;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore https://github.com/tc39/proposal-error-cause\n super(message, { cause });\n\n this.code = opts.code;\n this.name = 'TRPCError';\n this.cause ??= cause;\n }\n}\n","import type { AnyRootTypes, RootConfig } from './rootConfig';\nimport type { AnyRouter, inferRouterError } from './router';\nimport type {\n TRPCResponse,\n TRPCResponseMessage,\n TRPCResultMessage,\n} from './rpc';\nimport { isObject } from './utils';\n\n/**\n * @public\n */\nexport interface DataTransformer {\n serialize(object: any): any;\n deserialize(object: any): any;\n}\n\ninterface InputDataTransformer extends DataTransformer {\n /**\n * This function runs **on the client** before sending the data to the server.\n */\n serialize(object: any): any;\n /**\n * This function runs **on the server** to transform the data before it is passed to the resolver\n */\n deserialize(object: any): any;\n}\n\ninterface OutputDataTransformer extends DataTransformer {\n /**\n * This function runs **on the server** before sending the data to the client.\n */\n serialize(object: any): any;\n /**\n * This function runs **only on the client** to transform the data sent from the server.\n */\n deserialize(object: any): any;\n}\n\n/**\n * @public\n */\nexport interface CombinedDataTransformer {\n /**\n * Specify how the data sent from the client to the server should be transformed.\n */\n input: InputDataTransformer;\n /**\n * Specify how the data sent from the server to the client should be transformed.\n */\n output: OutputDataTransformer;\n}\n\n/**\n * @public\n */\nexport type CombinedDataTransformerClient = {\n input: Pick<CombinedDataTransformer['input'], 'serialize'>;\n output: Pick<CombinedDataTransformer['output'], 'deserialize'>;\n};\n\n/**\n * @public\n */\nexport type DataTransformerOptions = CombinedDataTransformer | DataTransformer;\n\n/**\n * @internal\n */\nexport function getDataTransformer(\n transformer: DataTransformerOptions,\n): CombinedDataTransformer {\n if ('input' in transformer) {\n return transformer;\n }\n return { input: transformer, output: transformer };\n}\n\n/**\n * @internal\n */\nexport const defaultTransformer: CombinedDataTransformer = {\n input: { serialize: (obj) => obj, deserialize: (obj) => obj },\n output: { serialize: (obj) => obj, deserialize: (obj) => obj },\n};\n\nfunction transformTRPCResponseItem<\n TResponseItem extends TRPCResponse | TRPCResponseMessage,\n>(config: RootConfig<AnyRootTypes>, item: TResponseItem): TResponseItem {\n if ('error' in item) {\n return {\n ...item,\n error: config.transformer.output.serialize(item.error),\n };\n }\n\n if ('data' in item.result) {\n return {\n ...item,\n result: {\n ...item.result,\n data: config.transformer.output.serialize(item.result.data),\n },\n };\n }\n\n return item;\n}\n\n/**\n * Takes a unserialized `TRPCResponse` and serializes it with the router's transformers\n **/\nexport function transformTRPCResponse<\n TResponse extends\n TRPCResponse | TRPCResponse[] | TRPCResponseMessage | TRPCResponseMessage[],\n>(config: RootConfig<AnyRootTypes>, itemOrItems: TResponse) {\n return Array.isArray(itemOrItems)\n ? itemOrItems.map((item) => transformTRPCResponseItem(config, item))\n : transformTRPCResponseItem(config, itemOrItems);\n}\n\n// FIXME:\n// - the generics here are probably unnecessary\n// - the RPC-spec could probably be simplified to combine HTTP + WS\n/** @internal */\nfunction transformResultInner<TRouter extends AnyRouter, TOutput>(\n response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>,\n transformer: DataTransformer,\n) {\n if ('error' in response) {\n const error = transformer.deserialize(\n response.error,\n ) as inferRouterError<TRouter>;\n return {\n ok: false,\n error: {\n ...response,\n error,\n },\n } as const;\n }\n\n const result = {\n ...response.result,\n ...((!response.result.type || response.result.type === 'data') && {\n type: 'data',\n data: transformer.deserialize(response.result.data),\n }),\n } as TRPCResultMessage<TOutput>['result'];\n return { ok: true, result } as const;\n}\n\nclass TransformResultError extends Error {\n constructor() {\n super('Unable to transform response from server');\n }\n}\n\n/**\n * Transforms and validates that the result is a valid TRPCResponse\n * @internal\n */\nexport function transformResult<TRouter extends AnyRouter, TOutput>(\n response:\n | TRPCResponse<TOutput, inferRouterError<TRouter>>\n | TRPCResponseMessage<TOutput, inferRouterError<TRouter>>,\n transformer: DataTransformer,\n): ReturnType<typeof transformResultInner> {\n let result: ReturnType<typeof transformResultInner>;\n try {\n // Use the data transformers on the JSON-response\n result = transformResultInner(response, transformer);\n } catch {\n throw new TransformResultError();\n }\n\n // check that output of the transformers is a valid TRPCResponse\n if (\n !result.ok &&\n (!isObject(result.error.error) ||\n typeof result.error.error['code'] !== 'number')\n ) {\n throw new TransformResultError();\n }\n if (result.ok && !isObject(result.result)) {\n throw new TransformResultError();\n }\n return result;\n}\n","import type { Observable } from '../observable';\nimport { createRecursiveProxy } from './createProxy';\nimport { defaultFormatter } from './error/formatter';\nimport { getTRPCErrorFromUnknown, TRPCError } from './error/TRPCError';\nimport type {\n AnyProcedure,\n ErrorHandlerOptions,\n inferProcedureInput,\n inferProcedureOutput,\n LegacyObservableSubscriptionProcedure,\n} from './procedure';\nimport type { ProcedureCallOptions } from './procedureBuilder';\nimport type { AnyRootTypes, RootConfig } from './rootConfig';\nimport { defaultTransformer } from './transformer';\nimport type { MaybePromise, ValueOf } from './types';\nimport {\n emptyObject,\n isFunction,\n isObject,\n mergeWithoutOverrides,\n} from './utils';\n\nexport interface RouterRecord {\n [key: string]: AnyProcedure | RouterRecord;\n}\n\ntype DecorateProcedure<TProcedure extends AnyProcedure> = (\n input: inferProcedureInput<TProcedure>,\n) => Promise<\n TProcedure['_def']['type'] extends 'subscription'\n ? TProcedure extends LegacyObservableSubscriptionProcedure<any>\n ? Observable<inferProcedureOutput<TProcedure>, TRPCError>\n : inferProcedureOutput<TProcedure>\n : inferProcedureOutput<TProcedure>\n>;\n\n/**\n * @internal\n */\nexport type DecorateRouterRecord<TRecord extends RouterRecord> = {\n [TKey in keyof TRecord]: TRecord[TKey] extends infer $Value\n ? $Value extends AnyProcedure\n ? DecorateProcedure<$Value>\n : $Value extends RouterRecord\n ? DecorateRouterRecord<$Value>\n : never\n : never;\n};\n\n/**\n * @internal\n */\n\nexport type RouterCallerErrorHandler<TContext> = (\n opts: ErrorHandlerOptions<TContext>,\n) => void;\n\n/**\n * @internal\n */\nexport type RouterCaller<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = (\n /**\n * @note\n * If passing a function, we recommend it's a cached function\n * e.g. wrapped in `React.cache` to avoid unnecessary computations\n */\n ctx: TRoot['ctx'] | (() => MaybePromise<TRoot['ctx']>),\n options?: {\n onError?: RouterCallerErrorHandler<TRoot['ctx']>;\n signal?: AbortSignal;\n },\n) => DecorateRouterRecord<TRecord>;\n\n/**\n * @internal\n */\nconst lazyMarker = 'lazyMarker' as 'lazyMarker' & {\n __brand: 'lazyMarker';\n};\nexport type Lazy<TAny> = (() => Promise<TAny>) & { [lazyMarker]: true };\n\ntype LazyLoader<TAny> = {\n load: () => Promise<void>;\n ref: Lazy<TAny>;\n};\n\nfunction once<T>(fn: () => T): () => T {\n const uncalled = Symbol();\n let result: T | typeof uncalled = uncalled;\n return (): T => {\n if (result === uncalled) {\n result = fn();\n }\n return result;\n };\n}\n\n/**\n * Lazy load a router\n * @see https://trpc.io/docs/server/merging-routers#lazy-load\n */\nexport function lazy<TRouter extends AnyRouter>(\n importRouter: () => Promise<\n | TRouter\n | {\n [key: string]: TRouter;\n }\n >,\n): Lazy<NoInfer<TRouter>> {\n async function resolve(): Promise<TRouter> {\n const mod = await importRouter();\n\n // if the module is a router, return it\n if (isRouter(mod)) {\n return mod;\n }\n\n const routers = Object.values(mod);\n\n if (routers.length !== 1 || !isRouter(routers[0])) {\n throw new Error(\n \"Invalid router module - either define exactly 1 export or return the router directly.\\nExample: `lazy(() => import('./slow.js').then((m) => m.slowRouter))`\",\n );\n }\n\n return routers[0];\n }\n\n (resolve as Lazy<NoInfer<TRouter>>)[lazyMarker] = true as const;\n\n return resolve as Lazy<NoInfer<TRouter>>;\n}\n\nfunction isLazy<TAny>(input: unknown): input is Lazy<TAny> {\n return typeof input === 'function' && lazyMarker in input;\n}\n\n/**\n * @internal\n */\nexport interface RouterDef<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> {\n _config: RootConfig<TRoot>;\n router: true;\n procedure?: never;\n procedures: TRecord;\n record: TRecord;\n lazy: Record<string, LazyLoader<AnyRouter>>;\n}\n\nexport interface Router<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> {\n _def: RouterDef<TRoot, TRecord>;\n /**\n * @see https://trpc.io/docs/v11/server/server-side-calls\n */\n createCaller: RouterCaller<TRoot, TRecord>;\n}\n\nexport type BuiltRouter<\n TRoot extends AnyRootTypes,\n TRecord extends RouterRecord,\n> = Router<TRoot, TRecord> & TRecord;\n\nexport interface RouterBuilder<TRoot extends AnyRootTypes> {\n <TIn extends CreateRouterOptions>(\n _: TIn,\n ): BuiltRouter<TRoot, DecorateCreateRouterOptions<TIn>>;\n}\n\nexport type AnyRouter = Router<any, any>;\n\nexport type inferRouterRootTypes<TRouter extends AnyRouter> =\n TRouter['_def']['_config']['$types'];\n\nexport type inferRouterContext<TRouter extends AnyRouter> =\n inferRouterRootTypes<TRouter>['ctx'];\nexport type inferRouterError<TRouter extends AnyRouter> =\n inferRouterRootTypes<TRouter>['errorShape'];\nexport type inferRouterMeta<TRouter extends AnyRouter> =\n inferRouterRootTypes<TRouter>['meta'];\n\nfunction isRouter(value: unknown): value is AnyRouter {\n return (\n isObject(value) && isObject(value['_def']) && 'router' in value['_def']\n );\n}\n\nconst emptyRouter = {\n _ctx: null as any,\n _errorShape: null as any,\n _meta: null as any,\n queries: {},\n mutations: {},\n subscriptions: {},\n errorFormatter: defaultFormatter,\n transformer: defaultTransformer,\n};\n\n/**\n * Reserved words that can't be used as router or procedure names\n */\nconst reservedWords = [\n /**\n * Then is a reserved word because otherwise we can't return a promise that returns a Proxy\n * since JS will think that `.then` is something that exists\n */\n 'then',\n /**\n * `fn.call()` and `fn.apply()` are reserved words because otherwise we can't call a function using `.call` or `.apply`\n */\n 'call',\n 'apply',\n];\n\n/** @internal */\nexport type CreateRouterOptions = {\n [key: string]:\n AnyProcedure | AnyRouter | CreateRouterOptions | Lazy<AnyRouter>;\n};\n\n/** @internal */\nexport type DecorateCreateRouterOptions<\n TRouterOptions extends CreateRouterOptions,\n> = {\n [K in keyof TRouterOptions]: TRouterOptions[K] extends infer $Value\n ? $Value extends AnyProcedure\n ? $Value\n : $Value extends Router<any, infer TRecord>\n ? TRecord\n : $Value extends Lazy<Router<any, infer TRecord>>\n ? TRecord\n : $Value extends CreateRouterOptions\n ? DecorateCreateRouterOptions<$Value>\n : never\n : never;\n};\n\n/**\n * @internal\n */\nexport function createRouterFactory<TRoot extends AnyRootTypes>(\n config: RootConfig<TRoot>,\n) {\n function createRouterInner<TInput extends CreateRouterOptions>(\n input: TInput,\n ): BuiltRouter<TRoot, DecorateCreateRouterOptions<TInput>> {\n const reservedWordsUsed = new Set(\n Object.keys(input).filter((v) => reservedWords.includes(v)),\n );\n if (reservedWordsUsed.size > 0) {\n throw new Error(\n 'Reserved words used in `router({})` call: ' +\n Array.from(reservedWordsUsed).join(', '),\n );\n }\n\n const procedures: Record<string, AnyProcedure> = emptyObject();\n const lazy: Record<string, LazyLoader<AnyRouter>> = emptyObject();\n\n function createLazyLoader(opts: {\n ref: Lazy<AnyRouter>;\n path: readonly string[];\n key: string;\n aggregate: RouterRecord;\n }): LazyLoader<AnyRouter> {\n return {\n ref: opts.ref,\n load: once(async () => {\n const router = await opts.ref();\n const lazyPath = [...opts.path, opts.key];\n const lazyKey = lazyPath.join('.');\n\n opts.aggregate[opts.key] = step(router._def.record, lazyPath);\n\n delete lazy[lazyKey];\n\n // add lazy loaders for nested routers\n for (const [nestedKey, nestedItem] of Object.entries(\n router._def.lazy,\n )) {\n const nestedRouterKey = [...lazyPath, nestedKey].join('.');\n\n // console.log('adding lazy', nestedRouterKey);\n lazy[nestedRouterKey] = createLazyLoader({\n ref: nestedItem.ref,\n path: lazyPath,\n key: nestedKey,\n aggregate: opts.aggregate[opts.key] as RouterRecord,\n });\n }\n }),\n };\n }\n\n function step(from: CreateRouterOptions, path: readonly string[] = []) {\n const aggregate: RouterRecord = emptyObject();\n for (const [key, item] of Object.entries(from ?? {})) {\n if (isLazy(item)) {\n lazy[[...path, key].join('.')] = createLazyLoader({\n path,\n ref: item,\n key,\n aggregate,\n });\n continue;\n }\n if (isRouter(item)) {\n aggregate[key] = step(item._def.record, [...path, key]);\n continue;\n }\n if (!isProcedure(item)) {\n // RouterRecord\n aggregate[key] = step(item, [...path, key]);\n continue;\n }\n\n const newPath = [...path, key].join('.');\n\n if (procedures[newPath]) {\n throw new Error(`Duplicate key: ${newPath}`);\n }\n\n procedures[newPath] = item;\n aggregate[key] = item;\n }\n\n return aggregate;\n }\n const record = step(input);\n\n const _def: AnyRouter['_def'] = {\n _config: config,\n router: true,\n procedures,\n lazy,\n ...emptyRouter,\n record,\n };\n\n const router: BuiltRouter<TRoot, {}> = {\n ...(record as {}),\n _def,\n createCaller: createCallerFactory<TRoot>()({\n _def,\n }),\n };\n return router as BuiltRouter<TRoot, DecorateCreateRouterOptions<TInput>>;\n }\n\n return createRouterInner;\n}\n\nfunction isProcedure(\n procedureOrRouter: ValueOf<CreateRouterOptions>,\n): procedureOrRouter is AnyProcedure {\n return typeof procedureOrRouter === 'function';\n}\n\n/**\n * @internal\n */\nexport async function getProcedureAtPath(\n router: Pick<Router<any, any>, '_def'>,\n path: string,\n): Promise<AnyProcedure | null> {\n const { _def } = router;\n let procedure = _def.procedures[path];\n\n while (!procedure) {\n const key = Object.keys(_def.lazy).find(\n (key) => path === key || path.startsWith(key + '.'),\n );\n // console.log(`found lazy: ${key ?? 'NOPE'} (fullPath: ${fullPath})`);\n\n if (!key) {\n return null;\n }\n // console.log('loading', key, '.......');\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const lazyRouter = _def.lazy[key]!;\n await lazyRouter.load();\n\n procedure = _def.procedures[path];\n }\n\n return procedure;\n}\n\n/**\n * @internal\n */\nexport async function callProcedure(\n opts: ProcedureCallOptions<unknown> & {\n router: AnyRouter;\n allowMethodOverride?: boolean;\n },\n) {\n const { type, path } = opts;\n const proc = await getProcedureAtPath(opts.router, path);\n if (\n !proc ||\n !isProcedure(proc) ||\n (proc._def.type !== type && !opts.allowMethodOverride)\n ) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: `No \"${type}\"-procedure on path \"${path}\"`,\n });\n }\n\n /* istanbul ignore if -- @preserve */\n if (\n proc._def.type !== type &&\n opts.allowMethodOverride &&\n proc._def.type === 'subscription'\n ) {\n throw new TRPCError({\n code: 'METHOD_NOT_SUPPORTED',\n message: `Method override is not supported for subscriptions`,\n });\n }\n\n return proc(opts);\n}\n\nexport interface RouterCallerFactory<TRoot extends AnyRootTypes> {\n <TRecord extends RouterRecord>(\n router: Pick<Router<TRoot, TRecord>, '_def'>,\n ): RouterCaller<TRoot, TRecord>;\n}\n\nexport function createCallerFactory<\n TRoot extends AnyRootTypes,\n>(): RouterCallerFactory<TRoot> {\n return function createCallerInner<TRecord extends RouterRecord>(\n router: Pick<Router<TRoot, TRecord>, '_def'>,\n ): RouterCaller<TRoot, TRecord> {\n const { _def } = router;\n type Context = TRoot['ctx'];\n\n return function createCaller(ctxOrCallback, opts) {\n return createRecursiveProxy<ReturnType<RouterCaller<any, any>>>(\n async (innerOpts) => {\n const { path, args } = innerOpts;\n const fullPath = path.join('.');\n\n if (path.length === 1 && path[0] === '_def') {\n return _def;\n }\n\n const procedure = await getProcedureAtPath(router, fullPath);\n\n let ctx: Context | undefined = undefined;\n try {\n if (!procedure) {\n throw new TRPCError({\n code: 'NOT_FOUND',\n message: `No procedure found on path \"${path}\"`,\n });\n }\n ctx = isFunction(ctxOrCallback)\n ? await Promise.resolve(ctxOrCallback())\n : ctxOrCallback;\n\n return await procedure({\n path: fullPath,\n getRawInput: async () => args[0],\n ctx,\n type: procedure._def.type,\n signal: opts?.signal,\n batchIndex: 0,\n });\n } catch (cause) {\n opts?.onError?.({\n ctx,\n error: getTRPCErrorFromUnknown(cause),\n input: args[0],\n path: fullPath,\n type: procedure?._def.type ?? 'unknown',\n });\n throw cause;\n }\n },\n );\n };\n };\n}\n\n/** @internal */\nexport type MergeRouters<\n TRouters extends AnyRouter[],\n TRoot extends AnyRootTypes = TRouters[0]['_def']['_config']['$types'],\n TRecord extends RouterRecord = {},\n> = TRouters extends [\n infer Head extends AnyRouter,\n ...infer Tail extends AnyRouter[],\n]\n ? MergeRouters<Tail, TRoot, Head['_def']['record'] & TRecord>\n : BuiltRouter<TRoot, TRecord>;\n\nexport function mergeRouters<TRouters extends AnyRouter[]>(\n ...routerList: [...TRouters]\n): MergeRouters<TRouters> {\n const record = mergeWithoutOverrides(\n {},\n ...routerList.map((r) => r._def.record),\n );\n const errorFormatter = routerList.reduce(\n (currentErrorFormatter, nextRouter) => {\n if (\n nextRouter._def._config.errorFormatter &&\n nextRouter._def._config.errorFormatter !== defaultFormatter\n ) {\n if (\n currentErrorFormatter !== defaultFormatter &&\n currentErrorFormatter !== nextRouter._def._config.errorFormatter\n ) {\n throw new Error('You seem to have several error formatters');\n }\n return nextRouter._def._config.errorFormatter;\n }\n return currentErrorFormatter;\n },\n defaultFormatter,\n );\n\n const transformer = routerList.reduce((prev, current) => {\n if (\n current._def._config.transformer &&\n current._def._config.transformer !== defaultTransformer\n ) {\n if (\n prev !== defaultTransformer &&\n prev !== current._def._config.transformer\n ) {\n throw new Error('You seem to have several transformers');\n }\n return current._def._config.transformer;\n }\n return prev;\n }, defaultTransformer);\n\n const router = createRouterFactory({\n errorFormatter,\n transformer,\n isDev: routerList.every((r) => r._def._config.isDev),\n allowOutsideOfServer: routerList.every(\n (r) => r._def._config.allowOutsideOfServer,\n ),\n isServer: routerList.every((r) => r._def._config.isServer),\n $types: routerList[0]?._def._config.$types,\n sse: routerList[0]?._def._config.sse,\n })(record);\n\n return router as MergeRouters<TRouters>;\n}\n","const trackedSymbol = Symbol();\n\ntype TrackedId = string & {\n __brand: 'TrackedId';\n};\nexport type TrackedEnvelope<TData> = [TrackedId, TData, typeof trackedSymbol];\n\nexport interface TrackedData<TData> {\n /**\n * The id of the message to keep track of in case the connection gets lost\n */\n id: string;\n /**\n * The data field of the message\n */\n data: TData;\n}\n/**\n * Produce a typed server-sent event message\n * @deprecated use `tracked(id, data)` instead\n */\nexport function sse<TData>(event: { id: string; data: TData }) {\n return tracked(event.id, event.data);\n}\n\nexport function isTrackedEnvelope<TData>(\n value: unknown,\n): value is TrackedEnvelope<TData> {\n return Array.isArray(value) && value[2] === trackedSymbol;\n}\n\n/**\n * Automatically track an event so that it can be resumed from a given id if the connection is lost\n */\nexport function tracked<TData>(\n id: string,\n data: TData,\n): TrackedEnvelope<TData> {\n if (id === '') {\n // This limitation could be removed by using different SSE event names / channels for tracked event and non-tracked event\n throw new Error(\n '`id` must not be an empty string as empty string is the same as not setting the id at all',\n );\n }\n return [id as TrackedId, data, trackedSymbol];\n}\n\nexport type inferTrackedOutput<TData> =\n TData extends TrackedEnvelope<infer $Data> ? TrackedData<$Data> : TData;\n"],"mappings":";;;AAGA,IAAM,oBAAN,cAAgC,MAAM;CAGpC,YAAY,OAAe;EACzB,MAAM,WAAW,KAAK,CAAC;EACvB,OAAO,OAAO,MAAM,KAAK;CAC3B;AACF;AAEA,SAAS,WAAW,OAAe;CACjC,IAAI,aAAa,OAAO,OAAO,OAAO,MAAM,OAAO;AAGrD;AAEA,SAAgB,oBAAoB,OAAmC;CACrE,IAAI,iBAAiB,OACnB,OAAO;CAGT,MAAM,OAAO,OAAO;CACpB,IAAI,SAAS,eAAe,SAAS,cAAc,UAAU,MAC3D;CAIF,IAAI,SAAS,UAEX,OAAO,IAAI,MAAM,OAAO,KAAK,CAAC;CAIhC,IAAI,SAAS,KAAK,GAChB,OAAO,IAAI,kBAAkB,KAAK;AAItC;AAEA,SAAgB,wBAAwB,OAA2B;CACjE,IAAI,iBAAiB,WACnB,OAAO;CAET,IAAI,iBAAiB,SAAS,MAAM,SAAS,aAE3C,OAAO;CAGT,MAAM,YAAY,IAAI,UAAU;EAC9B,MAAM;EACN;CACF,CAAC;CAGD,IAAI,iBAAiB,SAAS,MAAM,OAClC,UAAU,QAAQ,MAAM;CAG1B,OAAO;AACT;AAEA,IAAa,YAAb,cAA+B,MAAM;CAMnC,YAAY,MAIT;;EACD,MAAM,QAAQ,oBAAoB,KAAK,KAAK;EAC5C,MAAM,WAAA,QAAA,gBAAU,KAAK,aAAA,QAAA,kBAAA,KAAA,IAAA,gBAAA,UAAA,QAAA,UAAA,KAAA,IAAA,KAAA,IAAW,MAAO,aAAA,QAAA,SAAA,KAAA,IAAA,OAAW,KAAK;EAIvD,MAAM,SAAS,EAAE,MAAM,CAAC;EAbD,gBAAA,MAAA,SAAA,KAAA,CAAA;EACT,gBAAA,MAAA,QAAA,KAAA,CAAA;EAcd,KAAK,OAAO,KAAK;EACjB,KAAK,OAAO;EACZ,CAAA,cAAA,KAAK,WAAA,QAAA,gBAAA,KAAA,MAAL,KAAK,QAAU;CACjB;AACF;;;;;;ACjBA,SAAgB,mBACd,aACyB;CACzB,IAAI,WAAW,aACb,OAAO;CAET,OAAO;EAAE,OAAO;EAAa,QAAQ;CAAY;AACnD;;;;AAKA,MAAa,qBAA8C;CACzD,OAAO;EAAE,YAAY,QAAQ;EAAK,cAAc,QAAQ;CAAI;CAC5D,QAAQ;EAAE,YAAY,QAAQ;EAAK,cAAc,QAAQ;CAAI;AAC/D;AAEA,SAAS,0BAEP,QAAkC,MAAoC;CACtE,IAAI,WAAW,MACb,OAAA,eAAA,eAAA,CAAA,GACK,IAAA,GAAA,CAAA,GAAA,EACH,OAAO,OAAO,YAAY,OAAO,UAAU,KAAK,KAAK,EAAA,CACvD;CAGF,IAAI,UAAU,KAAK,QACjB,OAAA,eAAA,eAAA,CAAA,GACK,IAAA,GAAA,CAAA,GAAA,EACH,QAAA,eAAA,eAAA,CAAA,GACK,KAAK,MAAA,GAAA,CAAA,GAAA,EACR,MAAM,OAAO,YAAY,OAAO,UAAU,KAAK,OAAO,IAAI,EAAA,CAC5D,EAAA,CACF;CAGF,OAAO;AACT;;;;AAKA,SAAgB,sBAGd,QAAkC,aAAwB;CAC1D,OAAO,MAAM,QAAQ,WAAW,IAC5B,YAAY,KAAK,SAAS,0BAA0B,QAAQ,IAAI,CAAC,IACjE,0BAA0B,QAAQ,WAAW;AACnD;;AAMA,SAAS,qBACP,UAGA,aACA;CACA,IAAI,WAAW,UAAU;EACvB,MAAM,QAAQ,YAAY,YACxB,SAAS,KACX;EACA,OAAO;GACL,IAAI;GACJ,OAAA,eAAA,eAAA,CAAA,GACK,QAAA,GAAA,CAAA,GAAA,EACH,MAAA,CACF;EACF;CACF;CASA,OAAO;EAAE,IAAI;EAAM,QAAA,eAAA,eAAA,CAAA,GANd,SAAS,MAAA,IACP,CAAC,SAAS,OAAO,QAAQ,SAAS,OAAO,SAAS,WAAW;GAChE,MAAM;GACN,MAAM,YAAY,YAAY,SAAS,OAAO,IAAI;EACpD,CAEsB;CAAE;AAC5B;AAEA,IAAM,uBAAN,cAAmC,MAAM;CACvC,cAAc;EACZ,MAAM,0CAA0C;CAClD;AACF;;;;;AAMA,SAAgB,gBACd,UAGA,aACyC;CACzC,IAAI;CACJ,IAAI;EAEF,SAAS,qBAAqB,UAAU,WAAW;CACrD,SAAA,SAAQ;EACN,MAAM,IAAI,qBAAqB;CACjC;CAGA,IACE,CAAC,OAAO,OACP,CAAC,SAAS,OAAO,MAAM,KAAK,KAC3B,OAAO,OAAO,MAAM,MAAM,YAAY,WAExC,MAAM,IAAI,qBAAqB;CAEjC,IAAI,OAAO,MAAM,CAAC,SAAS,OAAO,MAAM,GACtC,MAAM,IAAI,qBAAqB;CAEjC,OAAO;AACT;;;;;;AC/GA,MAAM,aAAa;AAUnB,SAAS,KAAQ,IAAsB;CACrC,MAAM,WAAW,OAAO;CACxB,IAAI,SAA8B;CAClC,aAAgB;EACd,IAAI,WAAW,UACb,SAAS,GAAG;EAEd,OAAO;CACT;AACF;;;;;AAMA,SAAgB,KACd,cAMwB;CACxB,eAAe,UAA4B;EACzC,MAAM,MAAM,MAAM,aAAa;EAG/B,IAAI,SAAS,GAAG,GACd,OAAO;EAGT,MAAM,UAAU,OAAO,OAAO,GAAG;EAEjC,IAAI,QAAQ,WAAW,KAAK,CAAC,SAAS,QAAQ,EAAE,GAC9C,MAAM,IAAI,MACR,6JACF;EAGF,OAAO,QAAQ;CACjB;CAEA,QAAoC,cAAc;CAElD,OAAO;AACT;AAEA,SAAS,OAAa,OAAqC;CACzD,OAAO,OAAO,UAAU,cAAc,cAAc;AACtD;AAmDA,SAAS,SAAS,OAAoC;CACpD,OACE,SAAS,KAAK,KAAK,SAAS,MAAM,OAAO,KAAK,YAAY,MAAM;AAEpE;AAEA,MAAM,cAAc;CAClB,MAAM;CACN,aAAa;CACb,OAAO;CACP,SAAS,CAAC;CACV,WAAW,CAAC;CACZ,eAAe,CAAC;CAChB,gBAAgB;CAChB,aAAa;AACf;;;;AAKA,MAAM,gBAAgB;CAKpB;CAIA;CACA;AACF;;;;AA4BA,SAAgB,oBACd,QACA;CACA,SAAS,kBACP,OACyD;EACzD,MAAM,oBAAoB,IAAI,IAC5B,OAAO,KAAK,KAAK,CAAC,CAAC,QAAQ,MAAM,cAAc,SAAS,CAAC,CAAC,CAC5D;EACA,IAAI,kBAAkB,OAAO,GAC3B,MAAM,IAAI,MACR,+CACE,MAAM,KAAK,iBAAiB,CAAC,CAAC,KAAK,IAAI,CAC3C;EAGF,MAAM,aAA2C,YAAY;EAC7D,MAAM,OAA8C,YAAY;EAEhE,SAAS,iBAAiB,MAKA;GACxB,OAAO;IACL,KAAK,KAAK;IACV,MAAM,KAAK,YAAY;KACrB,MAAM,SAAS,MAAM,KAAK,IAAI;KAC9B,MAAM,WAAW,CAAC,GAAG,KAAK,MAAM,KAAK,GAAG;KACxC,MAAM,UAAU,SAAS,KAAK,GAAG;KAEjC,KAAK,UAAU,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,QAAQ;KAE5D,OAAO,KAAK;KAGZ,KAAK,MAAM,CAAC,WAAW,eAAe,OAAO,QAC3C,OAAO,KAAK,IACd,GAAG;MACD,MAAM,kBAAkB,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,KAAK,GAAG;MAGzD,KAAK,mBAAmB,iBAAiB;OACvC,KAAK,WAAW;OAChB,MAAM;OACN,KAAK;OACL,WAAW,KAAK,UAAU,KAAK;MACjC,CAAC;KACH;IACF,CAAC;GACH;EACF;EAEA,SAAS,KAAK,MAA2B,OAA0B,CAAC,GAAG;GACrE,MAAM,YAA0B,YAAY;GAC5C,KAAK,MAAM,CAAC,KAAK,SAAS,OAAO,QAAQ,SAAA,QAAA,SAAA,KAAA,IAAA,OAAQ,CAAC,CAAC,GAAG;IACpD,IAAI,OAAO,IAAI,GAAG;KAChB,KAAK,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,iBAAiB;MAChD;MACA,KAAK;MACL;MACA;KACF,CAAC;KACD;IACF;IACA,IAAI,SAAS,IAAI,GAAG;KAClB,UAAU,OAAO,KAAK,KAAK,KAAK,QAAQ,CAAC,GAAG,MAAM,GAAG,CAAC;KACtD;IACF;IACA,IAAI,CAAC,YAAY,IAAI,GAAG;KAEtB,UAAU,OAAO,KAAK,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC;KAC1C;IACF;IAEA,MAAM,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG;IAEvC,IAAI,WAAW,UACb,MAAM,IAAI,MAAM,kBAAkB,SAAS;IAG7C,WAAW,WAAW;IACtB,UAAU,OAAO;GACnB;GAEA,OAAO;EACT;EACA,MAAM,SAAS,KAAK,KAAK;EAEzB,MAAM,OAAA,eAAA,eAAA;GACJ,SAAS;GACT,QAAQ;GACR;GACA;EACG,GAAA,WAAA,GAAA,CAAA,GAAA,EACH,OAAA,CACF;EASA,OAAA,eAAA,eAAA,CAAA,GANM,MAAA,GAAA,CAAA,GAAA;GACJ;GACA,cAAc,oBAA2B,CAAC,CAAC,EACzC,KACF,CAAC;EAES,CAAA;CACd;CAEA,OAAO;AACT;AAEA,SAAS,YACP,mBACmC;CACnC,OAAO,OAAO,sBAAsB;AACtC;;;;AAKA,eAAsB,mBACpB,QACA,MAC8B;CAC9B,MAAM,EAAE,SAAS;CACjB,IAAI,YAAY,KAAK,WAAW;CAEhC,OAAO,CAAC,WAAW;EACjB,MAAM,MAAM,OAAO,KAAK,KAAK,IAAI,CAAC,CAAC,MAChC,QAAQ,SAAS,OAAO,KAAK,WAAW,MAAM,GAAG,CACpD;EAGA,IAAI,CAAC,KACH,OAAO;EAKT,MADmB,KAAK,KAAK,IACb,CAAC,KAAK;EAEtB,YAAY,KAAK,WAAW;CAC9B;CAEA,OAAO;AACT;;;;AAKA,eAAsB,cACpB,MAIA;CACA,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,OAAO,MAAM,mBAAmB,KAAK,QAAQ,IAAI;CACvD,IACE,CAAC,QACD,CAAC,YAAY,IAAI,KAChB,KAAK,KAAK,SAAS,QAAQ,CAAC,KAAK,qBAElC,MAAM,IAAI,UAAU;EAClB,MAAM;EACN,SAAS,OAAO,KAAK,uBAAuB,KAAK;CACnD,CAAC;;CAIH,IACE,KAAK,KAAK,SAAS,QACnB,KAAK,uBACL,KAAK,KAAK,SAAS,gBAEnB,MAAM,IAAI,UAAU;EAClB,MAAM;EACN,SAAS;CACX,CAAC;CAGH,OAAO,KAAK,IAAI;AAClB;AAQA,SAAgB,sBAEgB;CAC9B,OAAO,SAAS,kBACd,QAC8B;EAC9B,MAAM,EAAE,SAAS;EAGjB,OAAO,SAAS,aAAa,eAAe,MAAM;GAChD,OAAO,qBACL,OAAO,cAAc;IACnB,MAAM,EAAE,MAAM,SAAS;IACvB,MAAM,WAAW,KAAK,KAAK,GAAG;IAE9B,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,QACnC,OAAO;IAGT,MAAM,YAAY,MAAM,mBAAmB,QAAQ,QAAQ;IAE3D,IAAI,MAA2B,KAAA;IAC/B,IAAI;KACF,IAAI,CAAC,WACH,MAAM,IAAI,UAAU;MAClB,MAAM;MACN,SAAS,+BAA+B,KAAK;KAC/C,CAAC;KAEH,MAAM,WAAW,aAAa,IAC1B,MAAM,QAAQ,QAAQ,cAAc,CAAC,IACrC;KAEJ,OAAO,MAAM,UAAU;MACrB,MAAM;MACN,aAAa,YAAY,KAAK;MAC9B;MACA,MAAM,UAAU,KAAK;MACrB,QAAA,SAAA,QAAA,SAAA,KAAA,IAAA,KAAA,IAAQ,KAAM;MACd,YAAY;KACd,CAAC;IACH,SAAS,OAAO;;KACd,SAAA,QAAA,SAAA,KAAA,MAAA,gBAAA,KAAM,aAAA,QAAA,kBAAA,KAAA,KAAA,cAAA,KAAA,MAAU;MACd;MACA,OAAO,wBAAwB,KAAK;MACpC,OAAO,KAAK;MACZ,MAAM;MACN,OAAA,uBAAA,cAAA,QAAA,cAAA,KAAA,IAAA,KAAA,IAAM,UAAW,KAAK,UAAA,QAAA,yBAAA,KAAA,IAAA,uBAAQ;KAChC,CAAC;KACD,MAAM;IACR;GACF,CACF;EACF;CACF;AACF;AAcA,SAAgB,aACd,GAAG,YACqB;;CACxB,MAAM,SAAS,sBACb,CAAC,GACD,GAAG,WAAW,KAAK,MAAM,EAAE,KAAK,MAAM,CACxC;CAgDA,OAZe,oBAAoB;EACjC,gBApCqB,WAAW,QAC/B,uBAAuB,eAAe;GACrC,IACE,WAAW,KAAK,QAAQ,kBACxB,WAAW,KAAK,QAAQ,mBAAmB,kBAC3C;IACA,IACE,0BAA0B,oBAC1B,0BAA0B,WAAW,KAAK,QAAQ,gBAElD,MAAM,IAAI,MAAM,2CAA2C;IAE7D,OAAO,WAAW,KAAK,QAAQ;GACjC;GACA,OAAO;EACT,GACA,gBAoBa;EACb,aAlBkB,WAAW,QAAQ,MAAM,YAAY;GACvD,IACE,QAAQ,KAAK,QAAQ,eACrB,QAAQ,KAAK,QAAQ,gBAAgB,oBACrC;IACA,IACE,SAAS,sBACT,SAAS,QAAQ,KAAK,QAAQ,aAE9B,MAAM,IAAI,MAAM,uCAAuC;IAEzD,OAAO,QAAQ,KAAK,QAAQ;GAC9B;GACA,OAAO;EACT,GAAG,kBAIS;EACV,OAAO,WAAW,OAAO,MAAM,EAAE,KAAK,QAAQ,KAAK;EACnD,sBAAsB,WAAW,OAC9B,MAAM,EAAE,KAAK,QAAQ,oBACxB;EACA,UAAU,WAAW,OAAO,MAAM,EAAE,KAAK,QAAQ,QAAQ;EACzD,SAAA,eAAQ,WAAW,QAAA,QAAA,iBAAA,KAAA,IAAA,KAAA,IAAA,aAAI,KAAK,QAAQ;EACpC,MAAA,gBAAK,WAAW,QAAA,QAAA,kBAAA,KAAA,IAAA,KAAA,IAAA,cAAI,KAAK,QAAQ;CACnC,CAAC,CAAC,CAAC,MAES;AACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnjBA,MAAM,gBAAgB,OAAO;;;;;AAqB7B,SAAgB,IAAW,OAAoC;CAC7D,OAAO,QAAQ,MAAM,IAAI,MAAM,IAAI;AACrC;AAEA,SAAgB,kBACd,OACiC;CACjC,OAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,OAAO;AAC9C;;;;AAKA,SAAgB,QACd,IACA,MACwB;CACxB,IAAI,OAAO,IAET,MAAM,IAAI,MACR,2FACF;CAEF,OAAO;EAAC;EAAiB;EAAM;CAAa;AAC9C"}
|
|
@@ -49,6 +49,9 @@ function identity(it) {
|
|
|
49
49
|
function assert(condition, msg = "no additional info") {
|
|
50
50
|
if (!condition) throw new Error(`AssertionError: ${msg}`);
|
|
51
51
|
}
|
|
52
|
+
function assertNever(value) {
|
|
53
|
+
throw new Error(`AssertionError: unexpected value ${String(value)}`);
|
|
54
|
+
}
|
|
52
55
|
function sleep(ms = 0) {
|
|
53
56
|
return new Promise((res) => setTimeout(res, ms));
|
|
54
57
|
}
|
|
@@ -164,6 +167,12 @@ Object.defineProperty(exports, "assert", {
|
|
|
164
167
|
return assert;
|
|
165
168
|
}
|
|
166
169
|
});
|
|
170
|
+
Object.defineProperty(exports, "assertNever", {
|
|
171
|
+
enumerable: true,
|
|
172
|
+
get: function() {
|
|
173
|
+
return assertNever;
|
|
174
|
+
}
|
|
175
|
+
});
|
|
167
176
|
Object.defineProperty(exports, "emptyObject", {
|
|
168
177
|
enumerable: true,
|
|
169
178
|
get: function() {
|
|
@@ -49,6 +49,9 @@ function identity(it) {
|
|
|
49
49
|
function assert(condition, msg = "no additional info") {
|
|
50
50
|
if (!condition) throw new Error(`AssertionError: ${msg}`);
|
|
51
51
|
}
|
|
52
|
+
function assertNever(value) {
|
|
53
|
+
throw new Error(`AssertionError: unexpected value ${String(value)}`);
|
|
54
|
+
}
|
|
52
55
|
function sleep(ms = 0) {
|
|
53
56
|
return new Promise((res) => setTimeout(res, ms));
|
|
54
57
|
}
|
|
@@ -140,6 +143,6 @@ const retryableRpcCodes = [
|
|
|
140
143
|
TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR
|
|
141
144
|
];
|
|
142
145
|
//#endregion
|
|
143
|
-
export { assert as a,
|
|
146
|
+
export { assert as a, identity as c, isObject as d, mergeWithoutOverrides as f, sleep as h, abortSignalsAnyPonyfill as i, isAsyncIterable as l, run as m, TRPC_ERROR_CODES_BY_NUMBER as n, assertNever as o, noop as p, retryableRpcCodes as r, emptyObject as s, TRPC_ERROR_CODES_BY_KEY as t, isFunction as u };
|
|
144
147
|
|
|
145
|
-
//# sourceMappingURL=codes-
|
|
148
|
+
//# sourceMappingURL=codes-D6C_OiJy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codes-D6C_OiJy.mjs","names":[],"sources":["../src/unstable-core-do-not-import/utils.ts","../src/unstable-core-do-not-import/rpc/codes.ts"],"sourcesContent":["/** @internal */\nexport type UnsetMarker = 'unsetMarker' & {\n __brand: 'unsetMarker';\n};\n\n/**\n * Ensures there are no duplicate keys when building a procedure.\n * @internal\n */\nexport function mergeWithoutOverrides<TType extends Record<string, unknown>>(\n obj1: TType,\n ...objs: Partial<TType>[]\n): TType {\n const newObj: TType = Object.assign(emptyObject(), obj1);\n\n for (const overrides of objs) {\n for (const key in overrides) {\n if (key in newObj && newObj[key] !== overrides[key]) {\n throw new Error(`Duplicate key ${key}`);\n }\n newObj[key as keyof TType] = overrides[key] as TType[keyof TType];\n }\n }\n return newObj;\n}\n\n/**\n * Check that value is object\n * @internal\n */\nexport function isObject(value: unknown): value is Record<string, unknown> {\n return !!value && !Array.isArray(value) && typeof value === 'object';\n}\n\ntype AnyFn = ((...args: any[]) => unknown) & Record<keyof any, unknown>;\nexport function isFunction(fn: unknown): fn is AnyFn {\n return typeof fn === 'function';\n}\n\n/**\n * Create an object without inheriting anything from `Object.prototype`\n * @internal\n */\nexport function emptyObject<TObj extends Record<string, unknown>>(): TObj {\n return Object.create(null);\n}\n\nconst asyncIteratorsSupported =\n typeof Symbol === 'function' && !!Symbol.asyncIterator;\n\nexport function isAsyncIterable<TValue>(\n value: unknown,\n): value is AsyncIterable<TValue> {\n return (\n asyncIteratorsSupported && isObject(value) && Symbol.asyncIterator in value\n );\n}\n\n/**\n * Run an IIFE\n */\nexport const run = <TValue>(fn: () => TValue): TValue => fn();\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport function noop(): void {}\n\nexport function identity<T>(it: T): T {\n return it;\n}\n\n/**\n * Generic runtime assertion function. Throws, if the condition is not `true`.\n *\n * Can be used as a slightly less dangerous variant of type assertions. Code\n * mistakes would be revealed at runtime then (hopefully during testing).\n */\nexport function assert(\n condition: boolean,\n msg = 'no additional info',\n): asserts condition {\n if (!condition) {\n throw new Error(`AssertionError: ${msg}`);\n }\n}\n\nexport function assertNever(value: never): never {\n throw new Error(`AssertionError: unexpected value ${String(value)}`);\n}\n\nexport function sleep(ms = 0): Promise<void> {\n return new Promise<void>((res) => setTimeout(res, ms));\n}\n\n/**\n * Ponyfill for\n * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).\n */\nexport function abortSignalsAnyPonyfill(signals: AbortSignal[]): AbortSignal {\n if (typeof AbortSignal.any === 'function') {\n return AbortSignal.any(signals);\n }\n\n const ac = new AbortController();\n\n for (const signal of signals) {\n if (signal.aborted) {\n trigger();\n break;\n }\n signal.addEventListener('abort', trigger, { once: true });\n }\n\n return ac.signal;\n\n function trigger() {\n ac.abort();\n for (const signal of signals) {\n signal.removeEventListener('abort', trigger);\n }\n }\n}\n","import type { InvertKeyValue, ValueOf } from '../types';\n\n// reference: https://www.jsonrpc.org/specification\n\n/**\n * JSON-RPC 2.0 Error codes\n *\n * `-32000` to `-32099` are reserved for implementation-defined server-errors.\n * For tRPC we're copying the last digits of HTTP 4XX errors.\n */\nexport const TRPC_ERROR_CODES_BY_KEY = {\n /**\n * Invalid JSON was received by the server.\n * An error occurred on the server while parsing the JSON text.\n */\n PARSE_ERROR: -32700,\n /**\n * The JSON sent is not a valid Request object.\n */\n BAD_REQUEST: -32600, // 400\n\n // Internal JSON-RPC error\n INTERNAL_SERVER_ERROR: -32603, // 500\n NOT_IMPLEMENTED: -32603, // 501\n BAD_GATEWAY: -32603, // 502\n SERVICE_UNAVAILABLE: -32603, // 503\n GATEWAY_TIMEOUT: -32603, // 504\n\n // Implementation specific errors\n UNAUTHORIZED: -32001, // 401\n PAYMENT_REQUIRED: -32002, // 402\n FORBIDDEN: -32003, // 403\n NOT_FOUND: -32004, // 404\n METHOD_NOT_SUPPORTED: -32005, // 405\n TIMEOUT: -32008, // 408\n CONFLICT: -32009, // 409\n PRECONDITION_FAILED: -32012, // 412\n PAYLOAD_TOO_LARGE: -32013, // 413\n UNSUPPORTED_MEDIA_TYPE: -32015, // 415\n UNPROCESSABLE_CONTENT: -32022, // 422\n PRECONDITION_REQUIRED: -32028, // 428\n TOO_MANY_REQUESTS: -32029, // 429\n CLIENT_CLOSED_REQUEST: -32099, // 499\n} as const;\n\n// pure\nexport const TRPC_ERROR_CODES_BY_NUMBER: InvertKeyValue<\n typeof TRPC_ERROR_CODES_BY_KEY\n> = {\n [-32700]: 'PARSE_ERROR',\n [-32600]: 'BAD_REQUEST',\n [-32603]: 'INTERNAL_SERVER_ERROR',\n [-32001]: 'UNAUTHORIZED',\n [-32002]: 'PAYMENT_REQUIRED',\n [-32003]: 'FORBIDDEN',\n [-32004]: 'NOT_FOUND',\n [-32005]: 'METHOD_NOT_SUPPORTED',\n [-32008]: 'TIMEOUT',\n [-32009]: 'CONFLICT',\n [-32012]: 'PRECONDITION_FAILED',\n [-32013]: 'PAYLOAD_TOO_LARGE',\n [-32015]: 'UNSUPPORTED_MEDIA_TYPE',\n [-32022]: 'UNPROCESSABLE_CONTENT',\n [-32028]: 'PRECONDITION_REQUIRED',\n [-32029]: 'TOO_MANY_REQUESTS',\n [-32099]: 'CLIENT_CLOSED_REQUEST',\n};\n\nexport type TRPC_ERROR_CODE_NUMBER = ValueOf<typeof TRPC_ERROR_CODES_BY_KEY>;\nexport type TRPC_ERROR_CODE_KEY = keyof typeof TRPC_ERROR_CODES_BY_KEY;\n\n/**\n * tRPC error codes that are considered retryable\n * With out of the box SSE, the client will reconnect when these errors are encountered\n */\nexport const retryableRpcCodes: TRPC_ERROR_CODE_NUMBER[] = [\n TRPC_ERROR_CODES_BY_KEY.BAD_GATEWAY,\n TRPC_ERROR_CODES_BY_KEY.SERVICE_UNAVAILABLE,\n TRPC_ERROR_CODES_BY_KEY.GATEWAY_TIMEOUT,\n TRPC_ERROR_CODES_BY_KEY.INTERNAL_SERVER_ERROR,\n];\n"],"mappings":";;;;;AASA,SAAgB,sBACd,MACA,GAAG,MACI;CACP,MAAM,SAAgB,OAAO,OAAO,YAAY,GAAG,IAAI;CAEvD,KAAK,MAAM,aAAa,MACtB,KAAK,MAAM,OAAO,WAAW;EAC3B,IAAI,OAAO,UAAU,OAAO,SAAS,UAAU,MAC7C,MAAM,IAAI,MAAM,iBAAiB,KAAK;EAExC,OAAO,OAAsB,UAAU;CACzC;CAEF,OAAO;AACT;;;;;AAMA,SAAgB,SAAS,OAAkD;CACzE,OAAO,CAAC,CAAC,SAAS,CAAC,MAAM,QAAQ,KAAK,KAAK,OAAO,UAAU;AAC9D;AAGA,SAAgB,WAAW,IAA0B;CACnD,OAAO,OAAO,OAAO;AACvB;;;;;AAMA,SAAgB,cAA0D;CACxE,OAAO,OAAO,OAAO,IAAI;AAC3B;AAEA,MAAM,0BACJ,OAAO,WAAW,cAAc,CAAC,CAAC,OAAO;AAE3C,SAAgB,gBACd,OACgC;CAChC,OACE,2BAA2B,SAAS,KAAK,KAAK,OAAO,iBAAiB;AAE1E;;;;AAKA,MAAa,OAAe,OAA6B,GAAG;AAG5D,SAAgB,OAAa,CAAC;AAE9B,SAAgB,SAAY,IAAU;CACpC,OAAO;AACT;;;;;;;AAQA,SAAgB,OACd,WACA,MAAM,sBACa;CACnB,IAAI,CAAC,WACH,MAAM,IAAI,MAAM,mBAAmB,KAAK;AAE5C;AAEA,SAAgB,YAAY,OAAqB;CAC/C,MAAM,IAAI,MAAM,oCAAoC,OAAO,KAAK,GAAG;AACrE;AAEA,SAAgB,MAAM,KAAK,GAAkB;CAC3C,OAAO,IAAI,SAAe,QAAQ,WAAW,KAAK,EAAE,CAAC;AACvD;;;;;AAMA,SAAgB,wBAAwB,SAAqC;CAC3E,IAAI,OAAO,YAAY,QAAQ,YAC7B,OAAO,YAAY,IAAI,OAAO;CAGhC,MAAM,KAAK,IAAI,gBAAgB;CAE/B,KAAK,MAAM,UAAU,SAAS;EAC5B,IAAI,OAAO,SAAS;GAClB,QAAQ;GACR;EACF;EACA,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;CAC1D;CAEA,OAAO,GAAG;CAEV,SAAS,UAAU;EACjB,GAAG,MAAM;EACT,KAAK,MAAM,UAAU,SACnB,OAAO,oBAAoB,SAAS,OAAO;CAE/C;AACF;;;;;;;;;AC9GA,MAAa,0BAA0B;;;;;CAKrC,aAAa;;;;CAIb,aAAa;CAGb,uBAAuB;CACvB,iBAAiB;CACjB,aAAa;CACb,qBAAqB;CACrB,iBAAiB;CAGjB,cAAc;CACd,kBAAkB;CAClB,WAAW;CACX,WAAW;CACX,sBAAsB;CACtB,SAAS;CACT,UAAU;CACV,qBAAqB;CACrB,mBAAmB;CACnB,wBAAwB;CACxB,uBAAuB;CACvB,uBAAuB;CACvB,mBAAmB;CACnB,uBAAuB;AACzB;AAGA,MAAa,6BAET;EACD,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;EACT,SAAS;AACZ;;;;;AASA,MAAa,oBAA8C;CACzD,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;CACxB,wBAAwB;AAC1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as TRPC_ERROR_CODES_BY_NUMBER,
|
|
1
|
+
import { d as isObject, n as TRPC_ERROR_CODES_BY_NUMBER, s as emptyObject, t as TRPC_ERROR_CODES_BY_KEY } from "./codes-D6C_OiJy.mjs";
|
|
2
2
|
//#region src/unstable-core-do-not-import/createProxy.ts
|
|
3
3
|
const noop = () => {};
|
|
4
4
|
const freezeIfAvailable = (obj) => {
|
|
@@ -123,6 +123,48 @@ function getHTTPStatusCodeFromError(error) {
|
|
|
123
123
|
return getStatusCodeFromKey(error.code);
|
|
124
124
|
}
|
|
125
125
|
//#endregion
|
|
126
|
+
//#region src/unstable-core-do-not-import/error/formatter.ts
|
|
127
|
+
const defaultFormatter = ({ shape }) => {
|
|
128
|
+
return shape;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* @internal
|
|
132
|
+
*/
|
|
133
|
+
function getDefaultErrorShape(opts) {
|
|
134
|
+
const shape = {
|
|
135
|
+
message: opts.error.message,
|
|
136
|
+
code: TRPC_ERROR_CODES_BY_KEY[opts.error.code],
|
|
137
|
+
data: {
|
|
138
|
+
code: opts.error.code,
|
|
139
|
+
httpStatus: getHTTPStatusCodeFromError(opts.error)
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
if (opts.isDev && typeof opts.error.stack === "string") shape.data.stack = opts.error.stack;
|
|
143
|
+
if (typeof opts.path === "string") shape.data.path = opts.path;
|
|
144
|
+
return shape;
|
|
145
|
+
}
|
|
146
|
+
const formattedShapeSymbol = Symbol("trpc_formattedErrorShape");
|
|
147
|
+
/**
|
|
148
|
+
* @internal
|
|
149
|
+
*/
|
|
150
|
+
function setFormattedErrorShape(error, shape) {
|
|
151
|
+
Object.defineProperty(error, formattedShapeSymbol, {
|
|
152
|
+
value: shape,
|
|
153
|
+
enumerable: false,
|
|
154
|
+
configurable: true,
|
|
155
|
+
writable: true
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* @internal
|
|
160
|
+
*/
|
|
161
|
+
function getFormattedErrorShape(error) {
|
|
162
|
+
if (isFormattedErrorShape(error)) return error[formattedShapeSymbol];
|
|
163
|
+
}
|
|
164
|
+
function isFormattedErrorShape(error) {
|
|
165
|
+
return formattedShapeSymbol in error;
|
|
166
|
+
}
|
|
167
|
+
//#endregion
|
|
126
168
|
//#region \0@oxc-project+runtime@0.149.0/helpers/esm/typeof.js
|
|
127
169
|
function _typeof(o) {
|
|
128
170
|
"@babel/helpers - typeof";
|
|
@@ -190,20 +232,16 @@ function _objectSpread2(e) {
|
|
|
190
232
|
*/
|
|
191
233
|
function getErrorShape(opts) {
|
|
192
234
|
const { path, error, config } = opts;
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
201
|
-
};
|
|
202
|
-
if (config.isDev && typeof opts.error.stack === "string") shape.data.stack = opts.error.stack;
|
|
203
|
-
if (typeof path === "string") shape.data.path = path;
|
|
235
|
+
const formatted = getFormattedErrorShape(error);
|
|
236
|
+
if (formatted !== void 0) return formatted;
|
|
237
|
+
const shape = getDefaultErrorShape({
|
|
238
|
+
error,
|
|
239
|
+
path,
|
|
240
|
+
isDev: config.isDev
|
|
241
|
+
});
|
|
204
242
|
return config.errorFormatter(_objectSpread2(_objectSpread2({}, opts), {}, { shape }));
|
|
205
243
|
}
|
|
206
244
|
//#endregion
|
|
207
|
-
export {
|
|
245
|
+
export { getDefaultErrorShape as a, setFormattedErrorShape as c, getHTTPStatusCode as d, getHTTPStatusCodeFromError as f, createRecursiveProxy as g, createFlatProxy as h, defaultFormatter as i, HTTP_CODE_TO_JSONRPC2 as l, getStatusKeyFromCode as m, _objectSpread2 as n, getFormattedErrorShape as o, getStatusCodeFromKey as p, _defineProperty as r, isFormattedErrorShape as s, getErrorShape as t, JSONRPC2_TO_HTTP_CODE as u };
|
|
208
246
|
|
|
209
|
-
//# sourceMappingURL=getErrorShape-
|
|
247
|
+
//# sourceMappingURL=getErrorShape-BziUKLM_.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getErrorShape-BziUKLM_.mjs","names":[],"sources":["../src/unstable-core-do-not-import/createProxy.ts","../src/unstable-core-do-not-import/http/getHTTPStatusCode.ts","../src/unstable-core-do-not-import/error/formatter.ts","../src/unstable-core-do-not-import/error/getErrorShape.ts"],"sourcesContent":["import { emptyObject } from './utils';\n\ninterface ProxyCallbackOptions {\n path: readonly string[];\n args: readonly unknown[];\n}\ntype ProxyCallback = (opts: ProxyCallbackOptions) => unknown;\n\nconst noop = () => {\n // noop\n};\n\nconst freezeIfAvailable = (obj: object) => {\n if (Object.freeze) {\n Object.freeze(obj);\n }\n};\n\nfunction createInnerProxy(\n callback: ProxyCallback,\n path: readonly string[],\n memo: Record<string, unknown>,\n) {\n const cacheKey = path.join('.');\n\n memo[cacheKey] ??= new Proxy(noop, {\n get(_obj, key) {\n if (typeof key !== 'string' || key === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return createInnerProxy(callback, [...path, key], memo);\n },\n apply(_1, _2, args) {\n const lastOfPath = path[path.length - 1];\n\n // React 19 may call valueOf / toString / toJSON when coercing a proxy\n // to a primitive (e.g. during rendering or logging). Return a debug\n // string so the coercion does not recurse into the proxy. This only\n // triggers for direct calls (proxy.toString()), not for chained access\n // (proxy.toString.query()), preserving route naming freedom.\n if (\n lastOfPath === 'valueOf' ||\n lastOfPath === 'toString' ||\n lastOfPath === 'toJSON'\n ) {\n const debugPath = path.slice(0, -1).join('.');\n return `tRPC.proxy(${debugPath})`;\n }\n\n let opts = { args, path };\n // special handling for e.g. `trpc.hello.call(this, 'there')` and `trpc.hello.apply(this, ['there'])\n if (lastOfPath === 'call') {\n opts = {\n args: args.length >= 2 ? [args[1]] : [],\n path: path.slice(0, -1),\n };\n } else if (lastOfPath === 'apply') {\n opts = {\n args: args.length >= 2 ? args[1] : [],\n path: path.slice(0, -1),\n };\n }\n freezeIfAvailable(opts.args);\n freezeIfAvailable(opts.path);\n return callback(opts);\n },\n });\n\n return memo[cacheKey];\n}\n\n/**\n * Creates a proxy that calls the callback with the path and arguments\n *\n * @internal\n */\nexport const createRecursiveProxy = <TFaux = unknown>(\n callback: ProxyCallback,\n): TFaux => createInnerProxy(callback, [], emptyObject()) as TFaux;\n\n/**\n * Used in place of `new Proxy` where each handler will map 1 level deep to another value.\n *\n * @internal\n */\nexport const createFlatProxy = <TFaux>(\n callback: (path: keyof TFaux) => any,\n): TFaux => {\n return new Proxy(noop, {\n get(_obj, name) {\n if (name === 'then') {\n // special case for if the proxy is accidentally treated\n // like a PromiseLike (like in `Promise.resolve(proxy)`)\n return undefined;\n }\n return callback(name as any);\n },\n }) as TFaux;\n};\n","import type { TRPCError } from '../error/TRPCError';\nimport type { TRPC_ERROR_CODES_BY_KEY, TRPCResponse } from '../rpc';\nimport { TRPC_ERROR_CODES_BY_NUMBER } from '../rpc';\nimport type { InvertKeyValue, ValueOf } from '../types';\nimport { isObject } from '../utils';\n\nexport const JSONRPC2_TO_HTTP_CODE: Record<\n keyof typeof TRPC_ERROR_CODES_BY_KEY,\n number\n> = {\n PARSE_ERROR: 400,\n BAD_REQUEST: 400,\n UNAUTHORIZED: 401,\n PAYMENT_REQUIRED: 402,\n FORBIDDEN: 403,\n NOT_FOUND: 404,\n METHOD_NOT_SUPPORTED: 405,\n TIMEOUT: 408,\n CONFLICT: 409,\n PRECONDITION_FAILED: 412,\n PAYLOAD_TOO_LARGE: 413,\n UNSUPPORTED_MEDIA_TYPE: 415,\n UNPROCESSABLE_CONTENT: 422,\n PRECONDITION_REQUIRED: 428,\n TOO_MANY_REQUESTS: 429,\n CLIENT_CLOSED_REQUEST: 499,\n INTERNAL_SERVER_ERROR: 500,\n NOT_IMPLEMENTED: 501,\n BAD_GATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504,\n};\n\nexport const HTTP_CODE_TO_JSONRPC2: InvertKeyValue<\n typeof JSONRPC2_TO_HTTP_CODE\n> = {\n 400: 'BAD_REQUEST',\n 401: 'UNAUTHORIZED',\n 402: 'PAYMENT_REQUIRED',\n 403: 'FORBIDDEN',\n 404: 'NOT_FOUND',\n 405: 'METHOD_NOT_SUPPORTED',\n 408: 'TIMEOUT',\n 409: 'CONFLICT',\n 412: 'PRECONDITION_FAILED',\n 413: 'PAYLOAD_TOO_LARGE',\n 415: 'UNSUPPORTED_MEDIA_TYPE',\n 422: 'UNPROCESSABLE_CONTENT',\n 428: 'PRECONDITION_REQUIRED',\n 429: 'TOO_MANY_REQUESTS',\n 499: 'CLIENT_CLOSED_REQUEST',\n 500: 'INTERNAL_SERVER_ERROR',\n 501: 'NOT_IMPLEMENTED',\n 502: 'BAD_GATEWAY',\n 503: 'SERVICE_UNAVAILABLE',\n 504: 'GATEWAY_TIMEOUT',\n} as const;\n\nexport function getStatusCodeFromKey(\n code: keyof typeof TRPC_ERROR_CODES_BY_KEY,\n) {\n return JSONRPC2_TO_HTTP_CODE[code] ?? 500;\n}\n\nexport function getStatusKeyFromCode(\n code: keyof typeof HTTP_CODE_TO_JSONRPC2,\n): ValueOf<typeof HTTP_CODE_TO_JSONRPC2> {\n return HTTP_CODE_TO_JSONRPC2[code] ?? 'INTERNAL_SERVER_ERROR';\n}\n\nexport function getHTTPStatusCode(json: TRPCResponse | TRPCResponse[]) {\n const arr = Array.isArray(json) ? json : [json];\n const httpStatuses = new Set<number>(\n arr.map((res) => {\n if ('error' in res && isObject(res.error.data)) {\n if (typeof res.error.data?.['httpStatus'] === 'number') {\n return res.error.data['httpStatus'];\n }\n const code = TRPC_ERROR_CODES_BY_NUMBER[res.error.code];\n return getStatusCodeFromKey(code);\n }\n return 200;\n }),\n );\n\n if (httpStatuses.size !== 1) {\n return 207;\n }\n\n const httpStatus = httpStatuses.values().next().value;\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return httpStatus!;\n}\n\nexport function getHTTPStatusCodeFromError(error: TRPCError) {\n return getStatusCodeFromKey(error.code);\n}\n","import { getHTTPStatusCodeFromError } from '../http/getHTTPStatusCode';\nimport type { ProcedureType } from '../procedure';\nimport type {\n TRPC_ERROR_CODE_KEY,\n TRPC_ERROR_CODE_NUMBER,\n TRPCErrorShape,\n} from '../rpc';\nimport { TRPC_ERROR_CODES_BY_KEY } from '../rpc';\nimport type { Overwrite, Simplify } from '../types';\nimport type { TRPCError } from './TRPCError';\n\n/**\n * @internal\n */\nexport interface ErrorFormatterOptions<TContext> {\n error: TRPCError;\n type: ProcedureType | 'unknown';\n path: string | undefined;\n input: unknown;\n ctx: TContext;\n shape: DefaultErrorShape;\n}\n\n/**\n * @internal\n */\nexport type ErrorFormatter<TContext, TShape extends TRPCErrorShape> = (\n opts: ErrorFormatterOptions<TContext | undefined>,\n) => TShape;\n\n/**\n * @internal\n */\nexport type ProcedureErrorFormatter<\n TContext,\n TContextOverrides,\n TShape extends TRPCErrorShape | undefined | void,\n> = (\n opts: ErrorFormatterOptions<Simplify<Overwrite<TContext, TContextOverrides>>>,\n) => TShape;\n\n/**\n * @internal\n */\nexport type AnyProcedureErrorFormatter = ProcedureErrorFormatter<any, any, any>;\n\n/**\n * @internal\n */\nexport type DefaultErrorData = {\n code: TRPC_ERROR_CODE_KEY;\n httpStatus: number;\n /**\n * Path to the procedure that threw the error\n */\n path?: string;\n /**\n * Stack trace of the error (only in development)\n */\n stack?: string;\n};\n\n/**\n * @internal\n */\nexport interface DefaultErrorShape extends TRPCErrorShape<DefaultErrorData> {\n message: string;\n code: TRPC_ERROR_CODE_NUMBER;\n}\n\nexport const defaultFormatter: ErrorFormatter<any, any> = ({ shape }) => {\n return shape;\n};\n\n/**\n * @internal\n */\nexport function getDefaultErrorShape(opts: {\n error: TRPCError;\n path: string | undefined;\n isDev: boolean;\n}): DefaultErrorShape {\n const shape: DefaultErrorShape = {\n message: opts.error.message,\n code: TRPC_ERROR_CODES_BY_KEY[opts.error.code],\n data: {\n code: opts.error.code,\n httpStatus: getHTTPStatusCodeFromError(opts.error),\n },\n };\n if (opts.isDev && typeof opts.error.stack === 'string') {\n shape.data.stack = opts.error.stack;\n }\n if (typeof opts.path === 'string') {\n shape.data.path = opts.path;\n }\n return shape;\n}\n\nconst formattedShapeSymbol = Symbol('trpc_formattedErrorShape');\n\n/**\n * @internal\n */\nexport function setFormattedErrorShape(\n error: TRPCError,\n shape: TRPCErrorShape,\n): asserts error is TRPCError & { [formattedShapeSymbol]: TRPCErrorShape } {\n Object.defineProperty(error, formattedShapeSymbol, {\n value: shape,\n enumerable: false,\n configurable: true,\n writable: true,\n });\n}\n\n/**\n * @internal\n */\nexport function getFormattedErrorShape(\n error: TRPCError,\n): TRPCErrorShape | undefined {\n if (isFormattedErrorShape(error)) {\n return error[formattedShapeSymbol];\n }\n\n return undefined;\n}\n\nexport function isFormattedErrorShape(\n error: TRPCError,\n): error is TRPCError & { [formattedShapeSymbol]: TRPCErrorShape } {\n return formattedShapeSymbol in error;\n}\n","import type { ProcedureType } from '../procedure';\nimport type { AnyRootTypes, RootConfig } from '../rootConfig';\nimport { getDefaultErrorShape, getFormattedErrorShape } from './formatter';\nimport type { TRPCError } from './TRPCError';\n\n/**\n * @internal\n */\nexport function getErrorShape<TRoot extends AnyRootTypes>(opts: {\n config: RootConfig<TRoot>;\n error: TRPCError;\n type: ProcedureType | 'unknown';\n path: string | undefined;\n input: unknown;\n ctx: TRoot['ctx'] | undefined;\n}): TRoot['errorShape'] {\n const { path, error, config } = opts;\n\n // a `.errors()` handler already created the final shape\n const formatted = getFormattedErrorShape(error);\n if (formatted !== undefined) {\n return formatted;\n }\n\n const shape = getDefaultErrorShape({ error, path, isDev: config.isDev });\n return config.errorFormatter({ ...opts, shape });\n}\n"],"mappings":"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"}
|