@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.
Files changed (141) hide show
  1. package/adapters/aws-lambda/index.d.ts +1 -0
  2. package/adapters/aws-lambda/index.js +1 -0
  3. package/adapters/express/index.d.ts +1 -0
  4. package/adapters/express/index.js +1 -0
  5. package/adapters/fastify/index.d.ts +1 -0
  6. package/adapters/fastify/index.js +1 -0
  7. package/adapters/fetch/index.d.ts +1 -0
  8. package/adapters/fetch/index.js +1 -0
  9. package/adapters/next/index.d.ts +1 -0
  10. package/adapters/next/index.js +1 -0
  11. package/adapters/next-app-dir/index.d.ts +1 -0
  12. package/adapters/next-app-dir/index.js +1 -0
  13. package/adapters/node-http/content-type/form-data/index.d.ts +1 -0
  14. package/adapters/node-http/content-type/form-data/index.js +1 -0
  15. package/adapters/node-http/content-type/json/index.d.ts +1 -0
  16. package/adapters/node-http/content-type/json/index.js +1 -0
  17. package/adapters/node-http/index.d.ts +1 -0
  18. package/adapters/node-http/index.js +1 -0
  19. package/adapters/standalone/index.d.ts +1 -0
  20. package/adapters/standalone/index.js +1 -0
  21. package/adapters/ws/index.d.ts +1 -0
  22. package/adapters/ws/index.js +1 -0
  23. package/dist/adapters/aws-lambda/index.cjs +2 -2
  24. package/dist/adapters/aws-lambda/index.d.cts +1 -1
  25. package/dist/adapters/aws-lambda/index.d.mts +1 -1
  26. package/dist/adapters/aws-lambda/index.mjs +2 -2
  27. package/dist/adapters/express.cjs +3 -3
  28. package/dist/adapters/express.d.cts +2 -2
  29. package/dist/adapters/express.d.mts +2 -2
  30. package/dist/adapters/express.mjs +3 -3
  31. package/dist/adapters/fastify/index.cjs +4 -4
  32. package/dist/adapters/fastify/index.d.cts +2 -2
  33. package/dist/adapters/fastify/index.d.mts +2 -2
  34. package/dist/adapters/fastify/index.mjs +4 -4
  35. package/dist/adapters/fetch/index.cjs +2 -2
  36. package/dist/adapters/fetch/index.d.cts +1 -1
  37. package/dist/adapters/fetch/index.d.mts +1 -1
  38. package/dist/adapters/fetch/index.mjs +2 -2
  39. package/dist/adapters/next-app-dir.cjs +7 -7
  40. package/dist/adapters/next-app-dir.d.cts +1 -1
  41. package/dist/adapters/next-app-dir.d.mts +1 -1
  42. package/dist/adapters/next-app-dir.mjs +2 -2
  43. package/dist/adapters/next.cjs +5 -5
  44. package/dist/adapters/next.d.cts +2 -2
  45. package/dist/adapters/next.d.mts +2 -2
  46. package/dist/adapters/next.mjs +4 -4
  47. package/dist/adapters/node-http/index.cjs +1 -1
  48. package/dist/adapters/node-http/index.d.cts +1 -1
  49. package/dist/adapters/node-http/index.d.mts +1 -1
  50. package/dist/adapters/node-http/index.mjs +1 -1
  51. package/dist/adapters/standalone.cjs +3 -3
  52. package/dist/adapters/standalone.d.cts +2 -2
  53. package/dist/adapters/standalone.d.mts +2 -2
  54. package/dist/adapters/standalone.mjs +3 -3
  55. package/dist/adapters/ws.cjs +1 -1
  56. package/dist/adapters/ws.d.cts +2 -2
  57. package/dist/adapters/ws.d.mts +2 -2
  58. package/dist/adapters/ws.mjs +1 -1
  59. package/dist/{tracked-BQJb0ANk.cjs → asyncGeneratorDelegate-D2tFgl_z.cjs} +167 -17
  60. package/dist/{tracked-D4jU_Hb3.mjs → asyncGeneratorDelegate-mPyp1u6d.mjs} +141 -9
  61. package/dist/asyncGeneratorDelegate-mPyp1u6d.mjs.map +1 -0
  62. package/dist/{codes-C6ZIq69A.cjs → codes-BwD4QurF.cjs} +9 -0
  63. package/dist/{codes-D5Ya6_Bi.mjs → codes-D6C_OiJy.mjs} +5 -2
  64. package/dist/codes-D6C_OiJy.mjs.map +1 -0
  65. package/dist/{getErrorShape-B0JBUs-i.mjs → getErrorShape-BziUKLM_.mjs} +52 -14
  66. package/dist/getErrorShape-BziUKLM_.mjs.map +1 -0
  67. package/dist/{getErrorShape-DeIapApr.cjs → getErrorShape-CVxLwJgN.cjs} +80 -12
  68. package/dist/http.cjs +2 -2
  69. package/dist/http.d.cts +1 -1
  70. package/dist/http.d.mts +1 -1
  71. package/dist/http.mjs +2 -2
  72. package/dist/{index-_jAhoJQ7.d.mts → index-BDZDS1SD.d.mts} +2 -2
  73. package/dist/{index-BHatz_Pu.d.cts.map → index-BDZDS1SD.d.mts.map} +1 -1
  74. package/dist/{index-BHatz_Pu.d.cts → index-BzKrDvzg.d.cts} +2 -2
  75. package/dist/{index-_jAhoJQ7.d.mts.map → index-BzKrDvzg.d.cts.map} +1 -1
  76. package/dist/index.cjs +12 -12
  77. package/dist/index.d.cts +2 -2
  78. package/dist/index.d.cts.map +1 -1
  79. package/dist/index.d.mts +2 -2
  80. package/dist/index.d.mts.map +1 -1
  81. package/dist/index.mjs +3 -3
  82. package/dist/{initTRPC-B7UdX-c3.cjs → initTRPC-DLNeKv0z.cjs} +114 -26
  83. package/dist/{initTRPC-B259os3T.mjs → initTRPC-DpOypWK_.mjs} +95 -19
  84. package/dist/initTRPC-DpOypWK_.mjs.map +1 -0
  85. package/dist/{node-http-BUlb5EdB.mjs → node-http-B_z10Yky.mjs} +5 -5
  86. package/dist/{node-http-BUlb5EdB.mjs.map → node-http-B_z10Yky.mjs.map} +1 -1
  87. package/dist/{node-http-CikCqjt6.cjs → node-http-Bti3aBT6.cjs} +9 -9
  88. package/dist/{parseTRPCMessage-MJWDg1vX.mjs → parseTRPCMessage-CSh-CVPr.mjs} +2 -2
  89. package/dist/{parseTRPCMessage-MJWDg1vX.mjs.map → parseTRPCMessage-CSh-CVPr.mjs.map} +1 -1
  90. package/dist/{parseTRPCMessage-BxAIUx49.cjs → parseTRPCMessage-RJS87G_t.cjs} +1 -1
  91. package/dist/{resolveResponse-JtMyT9TQ.mjs → resolveResponse-CrB_9MSD.mjs} +43 -179
  92. package/dist/resolveResponse-CrB_9MSD.mjs.map +1 -0
  93. package/dist/{resolveResponse-DLpzHrPG.cjs → resolveResponse-D5JAuwvU.cjs} +90 -226
  94. package/dist/rpc.cjs +2 -2
  95. package/dist/rpc.d.cts +1 -1
  96. package/dist/rpc.d.mts +1 -1
  97. package/dist/rpc.mjs +2 -2
  98. package/dist/shared.cjs +1 -1
  99. package/dist/shared.d.cts +1 -1
  100. package/dist/shared.d.mts +1 -1
  101. package/dist/shared.mjs +1 -1
  102. package/dist/{unstable-core-do-not-import-BK_OKrtM.d.mts → unstable-core-do-not-import-JE3NCpqt.d.mts} +707 -636
  103. package/dist/unstable-core-do-not-import-JE3NCpqt.d.mts.map +1 -0
  104. package/dist/{unstable-core-do-not-import-B9ZnrQAU.d.cts → unstable-core-do-not-import-Jynlfuqc.d.cts} +707 -636
  105. package/dist/unstable-core-do-not-import-Jynlfuqc.d.cts.map +1 -0
  106. package/dist/unstable-core-do-not-import.cjs +30 -23
  107. package/dist/unstable-core-do-not-import.d.cts +2 -2
  108. package/dist/unstable-core-do-not-import.d.mts +2 -2
  109. package/dist/unstable-core-do-not-import.mjs +7 -7
  110. package/dist/{ws-BMSSVFiW.cjs → ws-BgBeYgGS.cjs} +22 -22
  111. package/dist/{ws-C7ZOJJeA.mjs → ws-CNjkWAs9.mjs} +7 -7
  112. package/dist/{ws-C7ZOJJeA.mjs.map → ws-CNjkWAs9.mjs.map} +1 -1
  113. package/http/index.d.ts +1 -0
  114. package/http/index.js +1 -0
  115. package/observable/index.d.ts +1 -0
  116. package/observable/index.js +1 -0
  117. package/package.json +14 -14
  118. package/rpc/index.d.ts +1 -0
  119. package/rpc/index.js +1 -0
  120. package/shared/index.d.ts +1 -0
  121. package/shared/index.js +1 -0
  122. package/src/@trpc/server/index.ts +1 -0
  123. package/src/unstable-core-do-not-import/clientish/inference.ts +12 -0
  124. package/src/unstable-core-do-not-import/error/formatter.ts +90 -3
  125. package/src/unstable-core-do-not-import/error/getErrorShape.ts +8 -17
  126. package/src/unstable-core-do-not-import/initTRPC.ts +10 -7
  127. package/src/unstable-core-do-not-import/middleware.ts +93 -2
  128. package/src/unstable-core-do-not-import/procedure.ts +2 -0
  129. package/src/unstable-core-do-not-import/procedureBuilder.ts +79 -13
  130. package/src/unstable-core-do-not-import/rootConfig.ts +8 -0
  131. package/src/unstable-core-do-not-import/stream/jsonl.ts +41 -33
  132. package/src/unstable-core-do-not-import/utils.ts +4 -0
  133. package/unstable-core-do-not-import/index.d.ts +1 -0
  134. package/unstable-core-do-not-import/index.js +1 -0
  135. package/dist/codes-D5Ya6_Bi.mjs.map +0 -1
  136. package/dist/getErrorShape-B0JBUs-i.mjs.map +0 -1
  137. package/dist/initTRPC-B259os3T.mjs.map +0 -1
  138. package/dist/resolveResponse-JtMyT9TQ.mjs.map +0 -1
  139. package/dist/tracked-D4jU_Hb3.mjs.map +0 -1
  140. package/dist/unstable-core-do-not-import-B9ZnrQAU.d.cts.map +0 -1
  141. package/dist/unstable-core-do-not-import-BK_OKrtM.d.mts.map +0 -1
@@ -1,10 +1,5 @@
1
- const require_codes = require("./codes-C6ZIq69A.cjs");
2
- const require_getErrorShape = require("./getErrorShape-DeIapApr.cjs");
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 mergeWithoutOverrides, l as isFunction, o as emptyObject, u as isObject } from "./codes-D5Ya6_Bi.mjs";
2
- import { d as createRecursiveProxy, n as _objectSpread2, r as _defineProperty } from "./getErrorShape-B0JBUs-i.mjs";
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
- export { defaultFormatter as _, createCallerFactory as a, lazy as c, getDataTransformer as d, transformResult as f, getTRPCErrorFromUnknown as g, getCauseFromUnknown as h, callProcedure as i, mergeRouters as l, TRPCError as m, sse as n, createRouterFactory as o, transformTRPCResponse as p, tracked as r, getProcedureAtPath as s, isTrackedEnvelope as t, defaultTransformer as u };
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=tracked-D4jU_Hb3.mjs.map
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":"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"}
@@ -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, isAsyncIterable as c, mergeWithoutOverrides as d, noop as f, abortSignalsAnyPonyfill as i, isFunction as l, sleep as m, TRPC_ERROR_CODES_BY_NUMBER as n, emptyObject as o, run as p, retryableRpcCodes as r, identity as s, TRPC_ERROR_CODES_BY_KEY as t, isObject as u };
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-D5Ya6_Bi.mjs.map
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, o as emptyObject, t as TRPC_ERROR_CODES_BY_KEY, u as isObject } from "./codes-D5Ya6_Bi.mjs";
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 { code } = opts.error;
194
- const shape = {
195
- message: error.message,
196
- code: TRPC_ERROR_CODES_BY_KEY[code],
197
- data: {
198
- code,
199
- httpStatus: getHTTPStatusCodeFromError(error)
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 { JSONRPC2_TO_HTTP_CODE as a, getStatusCodeFromKey as c, createRecursiveProxy as d, HTTP_CODE_TO_JSONRPC2 as i, getStatusKeyFromCode as l, _objectSpread2 as n, getHTTPStatusCode as o, _defineProperty as r, getHTTPStatusCodeFromError as s, getErrorShape as t, createFlatProxy as u };
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-B0JBUs-i.mjs.map
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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"}