@trpc/client 11.3.1 → 11.3.2-canary.4

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 (239) hide show
  1. package/dist/TRPCClientError-CGgRtttT.cjs +67 -0
  2. package/dist/TRPCClientError-COkhCKf3.mjs +56 -0
  3. package/dist/TRPCClientError-COkhCKf3.mjs.map +1 -0
  4. package/dist/chunk-DWy1uDak.cjs +39 -0
  5. package/dist/httpBatchLink-CIC9PZ_Z.cjs +267 -0
  6. package/dist/httpBatchLink-DIfnmmcu.mjs +238 -0
  7. package/dist/httpBatchLink-DIfnmmcu.mjs.map +1 -0
  8. package/dist/httpBatchLink.d-BN2Iw_cK.d.mts +33 -0
  9. package/dist/httpBatchLink.d-BN2Iw_cK.d.mts.map +1 -0
  10. package/dist/httpBatchLink.d-CLAuJKNV.d.cts +33 -0
  11. package/dist/httpBatchLink.d-CLAuJKNV.d.cts.map +1 -0
  12. package/dist/httpLink-9bpwQ15c.mjs +90 -0
  13. package/dist/httpLink-9bpwQ15c.mjs.map +1 -0
  14. package/dist/httpLink-BbVj_TgM.cjs +113 -0
  15. package/dist/httpLink.d-CTSOARfE.d.mts +23 -0
  16. package/dist/httpLink.d-CTSOARfE.d.mts.map +1 -0
  17. package/dist/httpLink.d-yMKfOlTU.d.cts +23 -0
  18. package/dist/httpLink.d-yMKfOlTU.d.cts.map +1 -0
  19. package/dist/httpUtils-3pbQzhUL.mjs +123 -0
  20. package/dist/httpUtils-3pbQzhUL.mjs.map +1 -0
  21. package/dist/httpUtils-Buf6jCgh.cjs +163 -0
  22. package/dist/httpUtils.d-C8wPxU79.d.mts +25 -0
  23. package/dist/httpUtils.d-C8wPxU79.d.mts.map +1 -0
  24. package/dist/httpUtils.d-DNRVGNHs.d.cts +25 -0
  25. package/dist/httpUtils.d-DNRVGNHs.d.cts.map +1 -0
  26. package/dist/index.cjs +736 -0
  27. package/dist/index.d.cts +201 -0
  28. package/dist/index.d.cts.map +1 -0
  29. package/dist/index.d.mts +201 -0
  30. package/dist/index.d.mts.map +1 -0
  31. package/dist/index.mjs +737 -16
  32. package/dist/index.mjs.map +1 -0
  33. package/dist/links/httpBatchLink.cjs +6 -0
  34. package/dist/links/httpBatchLink.d.cts +6 -0
  35. package/dist/links/httpBatchLink.d.mts +6 -0
  36. package/dist/links/httpBatchLink.mjs +5 -107
  37. package/dist/links/httpLink.cjs +6 -0
  38. package/dist/links/httpLink.d.cts +6 -0
  39. package/dist/links/httpLink.d.mts +6 -0
  40. package/dist/links/httpLink.mjs +5 -92
  41. package/dist/links/loggerLink.cjs +3 -0
  42. package/dist/links/loggerLink.d.cts +4 -0
  43. package/dist/links/loggerLink.d.mts +4 -0
  44. package/dist/links/loggerLink.mjs +2 -175
  45. package/dist/links/splitLink.cjs +3 -0
  46. package/dist/links/splitLink.d.cts +4 -0
  47. package/dist/links/splitLink.d.mts +4 -0
  48. package/dist/links/splitLink.mjs +2 -24
  49. package/dist/links/wsLink/wsLink.cjs +6 -0
  50. package/dist/links/wsLink/wsLink.d.cts +5 -0
  51. package/dist/links/wsLink/wsLink.d.mts +5 -0
  52. package/dist/links/wsLink/wsLink.mjs +4 -31
  53. package/dist/loggerLink-CsDfg5Bb.cjs +130 -0
  54. package/dist/loggerLink-PGBSQFcR.mjs +125 -0
  55. package/dist/loggerLink-PGBSQFcR.mjs.map +1 -0
  56. package/dist/loggerLink.d-CZjK1CXm.d.mts +54 -0
  57. package/dist/loggerLink.d-CZjK1CXm.d.mts.map +1 -0
  58. package/dist/loggerLink.d-DU855urG.d.cts +54 -0
  59. package/dist/loggerLink.d-DU855urG.d.cts.map +1 -0
  60. package/dist/splitLink-BMgxggng.cjs +58 -0
  61. package/dist/splitLink-BVblHq4n.mjs +47 -0
  62. package/dist/splitLink-BVblHq4n.mjs.map +1 -0
  63. package/dist/splitLink.d-BAqgq0NG.d.mts +20 -0
  64. package/dist/splitLink.d-BAqgq0NG.d.mts.map +1 -0
  65. package/dist/splitLink.d-GdevSkGW.d.cts +20 -0
  66. package/dist/splitLink.d-GdevSkGW.d.cts.map +1 -0
  67. package/dist/subscriptions.d-Ciljg_dH.d.cts +19 -0
  68. package/dist/subscriptions.d-Ciljg_dH.d.cts.map +1 -0
  69. package/dist/subscriptions.d-U92STdZl.d.mts +19 -0
  70. package/dist/subscriptions.d-U92STdZl.d.mts.map +1 -0
  71. package/dist/types.d-DXbqQLCC.d.mts +182 -0
  72. package/dist/types.d-DXbqQLCC.d.mts.map +1 -0
  73. package/dist/types.d-DqGYG6S_.d.cts +182 -0
  74. package/dist/types.d-DqGYG6S_.d.cts.map +1 -0
  75. package/dist/unstable-internals-CYBH4jbF.cjs +34 -0
  76. package/dist/unstable-internals-DU4WecoG.mjs +29 -0
  77. package/dist/unstable-internals-DU4WecoG.mjs.map +1 -0
  78. package/dist/unstable-internals.cjs +3 -0
  79. package/dist/unstable-internals.d-DyLd-B0J.d.mts +46 -0
  80. package/dist/unstable-internals.d-DyLd-B0J.d.mts.map +1 -0
  81. package/dist/unstable-internals.d-kWsZTlQq.d.cts +46 -0
  82. package/dist/unstable-internals.d-kWsZTlQq.d.cts.map +1 -0
  83. package/dist/unstable-internals.d.cts +3 -0
  84. package/dist/unstable-internals.d.mts +3 -0
  85. package/dist/unstable-internals.mjs +3 -1
  86. package/dist/wsLink-DbSHOzlB.mjs +698 -0
  87. package/dist/wsLink-DbSHOzlB.mjs.map +1 -0
  88. package/dist/wsLink-DhJ50EC5.cjs +715 -0
  89. package/dist/wsLink.d-BqO7ltN_.d.mts +194 -0
  90. package/dist/wsLink.d-BqO7ltN_.d.mts.map +1 -0
  91. package/dist/wsLink.d-DtZjg09g.d.cts +194 -0
  92. package/dist/wsLink.d-DtZjg09g.d.cts.map +1 -0
  93. package/links/httpBatchLink/package.json +1 -0
  94. package/links/httpLink/package.json +1 -0
  95. package/links/loggerLink/package.json +1 -0
  96. package/links/splitLink/package.json +1 -0
  97. package/links/wsLink/wsLink/package.json +1 -0
  98. package/package.json +67 -33
  99. package/src/links/localLink.ts +6 -1
  100. package/unstable-internals/package.json +1 -0
  101. package/dist/TRPCClientError.d.ts +0 -30
  102. package/dist/TRPCClientError.d.ts.map +0 -1
  103. package/dist/TRPCClientError.js +0 -79
  104. package/dist/TRPCClientError.mjs +0 -76
  105. package/dist/createTRPCClient.d.ts +0 -69
  106. package/dist/createTRPCClient.d.ts.map +0 -1
  107. package/dist/createTRPCClient.js +0 -48
  108. package/dist/createTRPCClient.mjs +0 -43
  109. package/dist/createTRPCUntypedClient.d.ts +0 -7
  110. package/dist/createTRPCUntypedClient.d.ts.map +0 -1
  111. package/dist/createTRPCUntypedClient.js +0 -10
  112. package/dist/createTRPCUntypedClient.mjs +0 -7
  113. package/dist/getFetch.d.ts +0 -3
  114. package/dist/getFetch.d.ts.map +0 -1
  115. package/dist/getFetch.js +0 -17
  116. package/dist/getFetch.mjs +0 -15
  117. package/dist/index.d.ts +0 -16
  118. package/dist/index.d.ts.map +0 -1
  119. package/dist/index.js +0 -46
  120. package/dist/internals/TRPCUntypedClient.d.ts +0 -39
  121. package/dist/internals/TRPCUntypedClient.d.ts.map +0 -1
  122. package/dist/internals/TRPCUntypedClient.js +0 -115
  123. package/dist/internals/TRPCUntypedClient.mjs +0 -113
  124. package/dist/internals/dataLoader.d.ts +0 -13
  125. package/dist/internals/dataLoader.d.ts.map +0 -1
  126. package/dist/internals/dataLoader.js +0 -117
  127. package/dist/internals/dataLoader.mjs +0 -115
  128. package/dist/internals/inputWithTrackedEventId.d.ts +0 -2
  129. package/dist/internals/inputWithTrackedEventId.d.ts.map +0 -1
  130. package/dist/internals/inputWithTrackedEventId.js +0 -16
  131. package/dist/internals/inputWithTrackedEventId.mjs +0 -14
  132. package/dist/internals/signals.d.ts +0 -16
  133. package/dist/internals/signals.d.ts.map +0 -1
  134. package/dist/internals/signals.js +0 -61
  135. package/dist/internals/signals.mjs +0 -57
  136. package/dist/internals/transformer.d.ts +0 -42
  137. package/dist/internals/transformer.d.ts.map +0 -1
  138. package/dist/internals/transformer.js +0 -30
  139. package/dist/internals/transformer.mjs +0 -28
  140. package/dist/internals/types.d.ts +0 -82
  141. package/dist/internals/types.d.ts.map +0 -1
  142. package/dist/links/HTTPBatchLinkOptions.d.ts +0 -20
  143. package/dist/links/HTTPBatchLinkOptions.d.ts.map +0 -1
  144. package/dist/links/httpBatchLink.d.ts +0 -8
  145. package/dist/links/httpBatchLink.d.ts.map +0 -1
  146. package/dist/links/httpBatchLink.js +0 -110
  147. package/dist/links/httpBatchStreamLink.d.ts +0 -12
  148. package/dist/links/httpBatchStreamLink.d.ts.map +0 -1
  149. package/dist/links/httpBatchStreamLink.js +0 -150
  150. package/dist/links/httpBatchStreamLink.mjs +0 -147
  151. package/dist/links/httpLink.d.ts +0 -17
  152. package/dist/links/httpLink.d.ts.map +0 -1
  153. package/dist/links/httpLink.js +0 -95
  154. package/dist/links/httpSubscriptionLink.d.ts +0 -26
  155. package/dist/links/httpSubscriptionLink.d.ts.map +0 -1
  156. package/dist/links/httpSubscriptionLink.js +0 -177
  157. package/dist/links/httpSubscriptionLink.mjs +0 -174
  158. package/dist/links/internals/contentTypes.d.ts +0 -4
  159. package/dist/links/internals/contentTypes.d.ts.map +0 -1
  160. package/dist/links/internals/contentTypes.js +0 -16
  161. package/dist/links/internals/contentTypes.mjs +0 -12
  162. package/dist/links/internals/createChain.d.ts +0 -8
  163. package/dist/links/internals/createChain.d.ts.map +0 -1
  164. package/dist/links/internals/createChain.js +0 -26
  165. package/dist/links/internals/createChain.mjs +0 -24
  166. package/dist/links/internals/dedupeLink.d.ts +0 -7
  167. package/dist/links/internals/dedupeLink.d.ts.map +0 -1
  168. package/dist/links/internals/httpUtils.d.ts +0 -68
  169. package/dist/links/internals/httpUtils.d.ts.map +0 -1
  170. package/dist/links/internals/httpUtils.js +0 -141
  171. package/dist/links/internals/httpUtils.mjs +0 -133
  172. package/dist/links/internals/subscriptions.d.ts +0 -17
  173. package/dist/links/internals/subscriptions.d.ts.map +0 -1
  174. package/dist/links/internals/urlWithConnectionParams.d.ts +0 -23
  175. package/dist/links/internals/urlWithConnectionParams.d.ts.map +0 -1
  176. package/dist/links/internals/urlWithConnectionParams.js +0 -10
  177. package/dist/links/internals/urlWithConnectionParams.mjs +0 -8
  178. package/dist/links/localLink.d.ts +0 -15
  179. package/dist/links/localLink.d.ts.map +0 -1
  180. package/dist/links/localLink.js +0 -333
  181. package/dist/links/localLink.mjs +0 -331
  182. package/dist/links/loggerLink.d.ts +0 -52
  183. package/dist/links/loggerLink.d.ts.map +0 -1
  184. package/dist/links/loggerLink.js +0 -178
  185. package/dist/links/retryLink.d.ts +0 -33
  186. package/dist/links/retryLink.d.ts.map +0 -1
  187. package/dist/links/retryLink.js +0 -72
  188. package/dist/links/retryLink.mjs +0 -70
  189. package/dist/links/splitLink.d.ts +0 -14
  190. package/dist/links/splitLink.d.ts.map +0 -1
  191. package/dist/links/splitLink.js +0 -27
  192. package/dist/links/types.d.ts +0 -63
  193. package/dist/links/types.d.ts.map +0 -1
  194. package/dist/links/wsLink/createWsClient.d.ts +0 -6
  195. package/dist/links/wsLink/createWsClient.d.ts.map +0 -1
  196. package/dist/links/wsLink/createWsClient.js +0 -9
  197. package/dist/links/wsLink/createWsClient.mjs +0 -7
  198. package/dist/links/wsLink/wsClient/options.d.ts +0 -79
  199. package/dist/links/wsLink/wsClient/options.d.ts.map +0 -1
  200. package/dist/links/wsLink/wsClient/options.js +0 -22
  201. package/dist/links/wsLink/wsClient/options.mjs +0 -18
  202. package/dist/links/wsLink/wsClient/requestManager.d.ts +0 -106
  203. package/dist/links/wsLink/wsClient/requestManager.d.ts.map +0 -1
  204. package/dist/links/wsLink/wsClient/requestManager.js +0 -143
  205. package/dist/links/wsLink/wsClient/requestManager.mjs +0 -141
  206. package/dist/links/wsLink/wsClient/utils.d.ts +0 -38
  207. package/dist/links/wsLink/wsClient/utils.d.ts.map +0 -1
  208. package/dist/links/wsLink/wsClient/utils.js +0 -94
  209. package/dist/links/wsLink/wsClient/utils.mjs +0 -88
  210. package/dist/links/wsLink/wsClient/wsClient.d.ts +0 -84
  211. package/dist/links/wsLink/wsClient/wsClient.d.ts.map +0 -1
  212. package/dist/links/wsLink/wsClient/wsClient.js +0 -325
  213. package/dist/links/wsLink/wsClient/wsClient.mjs +0 -323
  214. package/dist/links/wsLink/wsClient/wsConnection.d.ts +0 -79
  215. package/dist/links/wsLink/wsClient/wsConnection.d.ts.map +0 -1
  216. package/dist/links/wsLink/wsClient/wsConnection.js +0 -188
  217. package/dist/links/wsLink/wsClient/wsConnection.mjs +0 -185
  218. package/dist/links/wsLink/wsLink.d.ts +0 -11
  219. package/dist/links/wsLink/wsLink.d.ts.map +0 -1
  220. package/dist/links/wsLink/wsLink.js +0 -35
  221. package/dist/links.d.ts +0 -12
  222. package/dist/links.d.ts.map +0 -1
  223. package/dist/unstable-internals.d.ts +0 -3
  224. package/dist/unstable-internals.d.ts.map +0 -1
  225. package/dist/unstable-internals.js +0 -7
  226. package/links/httpBatchLink/index.d.ts +0 -1
  227. package/links/httpBatchLink/index.js +0 -1
  228. package/links/httpLink/index.d.ts +0 -1
  229. package/links/httpLink/index.js +0 -1
  230. package/links/loggerLink/index.d.ts +0 -1
  231. package/links/loggerLink/index.js +0 -1
  232. package/links/splitLink/index.d.ts +0 -1
  233. package/links/splitLink/index.js +0 -1
  234. package/links/wsLink/index.d.ts +0 -1
  235. package/links/wsLink/index.js +0 -1
  236. package/links/wsLink/wsLink/index.d.ts +0 -1
  237. package/links/wsLink/wsLink/index.js +0 -1
  238. package/unstable-internals/index.d.ts +0 -1
  239. package/unstable-internals/index.js +0 -1
@@ -0,0 +1,67 @@
1
+ const require_chunk = require('./chunk-DWy1uDak.cjs');
2
+ const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
3
+
4
+ //#region src/TRPCClientError.ts
5
+ function isTRPCClientError(cause) {
6
+ return cause instanceof TRPCClientError;
7
+ }
8
+ function isTRPCErrorResponse(obj) {
9
+ return (0, __trpc_server_unstable_core_do_not_import.isObject)(obj) && (0, __trpc_server_unstable_core_do_not_import.isObject)(obj["error"]) && typeof obj["error"]["code"] === "number" && typeof obj["error"]["message"] === "string";
10
+ }
11
+ function getMessageFromUnknownError(err, fallback) {
12
+ if (typeof err === "string") return err;
13
+ if ((0, __trpc_server_unstable_core_do_not_import.isObject)(err) && typeof err["message"] === "string") return err["message"];
14
+ return fallback;
15
+ }
16
+ var TRPCClientError = class TRPCClientError extends Error {
17
+ cause;
18
+ shape;
19
+ data;
20
+ /**
21
+ * Additional meta data about the error
22
+ * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here
23
+ */
24
+ meta;
25
+ constructor(message, opts) {
26
+ const cause = opts?.cause;
27
+ super(message, { cause });
28
+ this.meta = opts?.meta;
29
+ this.cause = cause;
30
+ this.shape = opts?.result?.error;
31
+ this.data = opts?.result?.error.data;
32
+ this.name = "TRPCClientError";
33
+ Object.setPrototypeOf(this, TRPCClientError.prototype);
34
+ }
35
+ static from(_cause, opts = {}) {
36
+ const cause = _cause;
37
+ if (isTRPCClientError(cause)) {
38
+ if (opts.meta) cause.meta = {
39
+ ...cause.meta,
40
+ ...opts.meta
41
+ };
42
+ return cause;
43
+ }
44
+ if (isTRPCErrorResponse(cause)) return new TRPCClientError(cause.error.message, {
45
+ ...opts,
46
+ result: cause
47
+ });
48
+ return new TRPCClientError(getMessageFromUnknownError(cause, "Unknown error"), {
49
+ ...opts,
50
+ cause
51
+ });
52
+ }
53
+ };
54
+
55
+ //#endregion
56
+ Object.defineProperty(exports, 'TRPCClientError', {
57
+ enumerable: true,
58
+ get: function () {
59
+ return TRPCClientError;
60
+ }
61
+ });
62
+ Object.defineProperty(exports, 'isTRPCClientError', {
63
+ enumerable: true,
64
+ get: function () {
65
+ return isTRPCClientError;
66
+ }
67
+ });
@@ -0,0 +1,56 @@
1
+ import { isObject } from "@trpc/server/unstable-core-do-not-import";
2
+
3
+ //#region src/TRPCClientError.ts
4
+ function isTRPCClientError(cause) {
5
+ return cause instanceof TRPCClientError;
6
+ }
7
+ function isTRPCErrorResponse(obj) {
8
+ return isObject(obj) && isObject(obj["error"]) && typeof obj["error"]["code"] === "number" && typeof obj["error"]["message"] === "string";
9
+ }
10
+ function getMessageFromUnknownError(err, fallback) {
11
+ if (typeof err === "string") return err;
12
+ if (isObject(err) && typeof err["message"] === "string") return err["message"];
13
+ return fallback;
14
+ }
15
+ var TRPCClientError = class TRPCClientError extends Error {
16
+ cause;
17
+ shape;
18
+ data;
19
+ /**
20
+ * Additional meta data about the error
21
+ * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here
22
+ */
23
+ meta;
24
+ constructor(message, opts) {
25
+ const cause = opts?.cause;
26
+ super(message, { cause });
27
+ this.meta = opts?.meta;
28
+ this.cause = cause;
29
+ this.shape = opts?.result?.error;
30
+ this.data = opts?.result?.error.data;
31
+ this.name = "TRPCClientError";
32
+ Object.setPrototypeOf(this, TRPCClientError.prototype);
33
+ }
34
+ static from(_cause, opts = {}) {
35
+ const cause = _cause;
36
+ if (isTRPCClientError(cause)) {
37
+ if (opts.meta) cause.meta = {
38
+ ...cause.meta,
39
+ ...opts.meta
40
+ };
41
+ return cause;
42
+ }
43
+ if (isTRPCErrorResponse(cause)) return new TRPCClientError(cause.error.message, {
44
+ ...opts,
45
+ result: cause
46
+ });
47
+ return new TRPCClientError(getMessageFromUnknownError(cause, "Unknown error"), {
48
+ ...opts,
49
+ cause
50
+ });
51
+ }
52
+ };
53
+
54
+ //#endregion
55
+ export { TRPCClientError, isTRPCClientError };
56
+ //# sourceMappingURL=TRPCClientError-COkhCKf3.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TRPCClientError-COkhCKf3.mjs","names":["cause: unknown","obj: unknown","err: unknown","fallback: string","message: string","opts?: {\n result?: Maybe<TRPCErrorResponse<inferErrorShape<TRouterOrProcedure>>>;\n cause?: Error;\n meta?: Record<string, unknown>;\n }","_cause: Error | TRPCErrorResponse<any> | object","opts: { meta?: Record<string, unknown> }"],"sources":["../src/TRPCClientError.ts"],"sourcesContent":["import type {\n inferClientTypes,\n InferrableClientTypes,\n Maybe,\n TRPCErrorResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport {\n isObject,\n type DefaultErrorShape,\n} from '@trpc/server/unstable-core-do-not-import';\n\ntype inferErrorShape<TInferrable extends InferrableClientTypes> =\n inferClientTypes<TInferrable>['errorShape'];\nexport interface TRPCClientErrorBase<TShape extends DefaultErrorShape> {\n readonly message: string;\n readonly shape: Maybe<TShape>;\n readonly data: Maybe<TShape['data']>;\n}\nexport type TRPCClientErrorLike<TInferrable extends InferrableClientTypes> =\n TRPCClientErrorBase<inferErrorShape<TInferrable>>;\n\nexport function isTRPCClientError<TInferrable extends InferrableClientTypes>(\n cause: unknown,\n): cause is TRPCClientError<TInferrable> {\n return cause instanceof TRPCClientError;\n}\n\nfunction isTRPCErrorResponse(obj: unknown): obj is TRPCErrorResponse<any> {\n return (\n isObject(obj) &&\n isObject(obj['error']) &&\n typeof obj['error']['code'] === 'number' &&\n typeof obj['error']['message'] === 'string'\n );\n}\n\nfunction getMessageFromUnknownError(err: unknown, fallback: string): string {\n if (typeof err === 'string') {\n return err;\n }\n if (isObject(err) && typeof err['message'] === 'string') {\n return err['message'];\n }\n return fallback;\n}\n\nexport class TRPCClientError<TRouterOrProcedure extends InferrableClientTypes>\n extends Error\n implements TRPCClientErrorBase<inferErrorShape<TRouterOrProcedure>>\n{\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;\n public readonly shape: Maybe<inferErrorShape<TRouterOrProcedure>>;\n public readonly data: Maybe<inferErrorShape<TRouterOrProcedure>['data']>;\n\n /**\n * Additional meta data about the error\n * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here\n */\n public meta;\n\n constructor(\n message: string,\n opts?: {\n result?: Maybe<TRPCErrorResponse<inferErrorShape<TRouterOrProcedure>>>;\n cause?: Error;\n meta?: Record<string, unknown>;\n },\n ) {\n const cause = opts?.cause;\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.meta = opts?.meta;\n\n this.cause = cause;\n this.shape = opts?.result?.error;\n this.data = opts?.result?.error.data;\n this.name = 'TRPCClientError';\n\n Object.setPrototypeOf(this, TRPCClientError.prototype);\n }\n\n public static from<TRouterOrProcedure extends InferrableClientTypes>(\n _cause: Error | TRPCErrorResponse<any> | object,\n opts: { meta?: Record<string, unknown> } = {},\n ): TRPCClientError<TRouterOrProcedure> {\n const cause = _cause as unknown;\n\n if (isTRPCClientError(cause)) {\n if (opts.meta) {\n // Decorate with meta error data\n cause.meta = {\n ...cause.meta,\n ...opts.meta,\n };\n }\n return cause;\n }\n if (isTRPCErrorResponse(cause)) {\n return new TRPCClientError(cause.error.message, {\n ...opts,\n result: cause,\n });\n }\n return new TRPCClientError(\n getMessageFromUnknownError(cause, 'Unknown error'),\n {\n ...opts,\n cause: cause as any,\n },\n );\n }\n}\n"],"mappings":";;;AAqBA,SAAgB,kBACdA,OACuC;AACvC,QAAO,iBAAiB;AACzB;AAED,SAAS,oBAAoBC,KAA6C;AACxE,QACE,SAAS,IAAI,IACb,SAAS,IAAI,SAAS,WACf,IAAI,SAAS,YAAY,mBACzB,IAAI,SAAS,eAAe;AAEtC;AAED,SAAS,2BAA2BC,KAAcC,UAA0B;AAC1E,YAAW,QAAQ,SACjB,QAAO;AAET,KAAI,SAAS,IAAI,WAAW,IAAI,eAAe,SAC7C,QAAO,IAAI;AAEb,QAAO;AACR;AAED,IAAa,kBAAb,MAAa,wBACH,MAEV;CAGE,AAAyB;CACzB,AAAgB;CAChB,AAAgB;;;;;CAMhB,AAAO;CAEP,YACEC,SACAC,MAKA;EACA,MAAM,QAAQ,MAAM;AAIpB,QAAM,SAAS,EAAE,MAAO,EAAC;AAEzB,OAAK,OAAO,MAAM;AAElB,OAAK,QAAQ;AACb,OAAK,QAAQ,MAAM,QAAQ;AAC3B,OAAK,OAAO,MAAM,QAAQ,MAAM;AAChC,OAAK,OAAO;AAEZ,SAAO,eAAe,MAAM,gBAAgB,UAAU;CACvD;CAED,OAAc,KACZC,QACAC,OAA2C,CAAE,GACR;EACrC,MAAM,QAAQ;AAEd,MAAI,kBAAkB,MAAM,EAAE;AAC5B,OAAI,KAAK,KAEP,OAAM,OAAO;IACX,GAAG,MAAM;IACT,GAAG,KAAK;GACT;AAEH,UAAO;EACR;AACD,MAAI,oBAAoB,MAAM,CAC5B,QAAO,IAAI,gBAAgB,MAAM,MAAM,SAAS;GAC9C,GAAG;GACH,QAAQ;EACT;AAEH,SAAO,IAAI,gBACT,2BAA2B,OAAO,gBAAgB,EAClD;GACE,GAAG;GACI;EACR;CAEJ;AACF"}
@@ -0,0 +1,39 @@
1
+ //#region rolldown:runtime
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __commonJS = (cb, mod) => function() {
9
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
13
+ key = keys[i];
14
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
+ get: ((k) => from[k]).bind(null, key),
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
22
+ value: mod,
23
+ enumerable: true
24
+ }) : target, mod));
25
+
26
+ //#endregion
27
+
28
+ Object.defineProperty(exports, '__commonJS', {
29
+ enumerable: true,
30
+ get: function () {
31
+ return __commonJS;
32
+ }
33
+ });
34
+ Object.defineProperty(exports, '__toESM', {
35
+ enumerable: true,
36
+ get: function () {
37
+ return __toESM;
38
+ }
39
+ });
@@ -0,0 +1,267 @@
1
+ const require_chunk = require('./chunk-DWy1uDak.cjs');
2
+ const require_TRPCClientError = require('./TRPCClientError-CGgRtttT.cjs');
3
+ const require_httpUtils = require('./httpUtils-Buf6jCgh.cjs');
4
+ const __trpc_server_observable = require_chunk.__toESM(require("@trpc/server/observable"));
5
+ const __trpc_server_unstable_core_do_not_import = require_chunk.__toESM(require("@trpc/server/unstable-core-do-not-import"));
6
+
7
+ //#region src/internals/dataLoader.ts
8
+ /**
9
+ * A function that should never be called unless we messed something up.
10
+ */
11
+ const throwFatalError = () => {
12
+ throw new Error("Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new");
13
+ };
14
+ /**
15
+ * Dataloader that's very inspired by https://github.com/graphql/dataloader
16
+ * Less configuration, no caching, and allows you to cancel requests
17
+ * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
18
+ */
19
+ function dataLoader(batchLoader) {
20
+ let pendingItems = null;
21
+ let dispatchTimer = null;
22
+ const destroyTimerAndPendingItems = () => {
23
+ clearTimeout(dispatchTimer);
24
+ dispatchTimer = null;
25
+ pendingItems = null;
26
+ };
27
+ /**
28
+ * Iterate through the items and split them into groups based on the `batchLoader`'s validate function
29
+ */
30
+ function groupItems(items) {
31
+ const groupedItems = [[]];
32
+ let index = 0;
33
+ while (true) {
34
+ const item = items[index];
35
+ if (!item) break;
36
+ const lastGroup = groupedItems[groupedItems.length - 1];
37
+ if (item.aborted) {
38
+ item.reject?.(new Error("Aborted"));
39
+ index++;
40
+ continue;
41
+ }
42
+ const isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));
43
+ if (isValid) {
44
+ lastGroup.push(item);
45
+ index++;
46
+ continue;
47
+ }
48
+ if (lastGroup.length === 0) {
49
+ item.reject?.(new Error("Input is too big for a single dispatch"));
50
+ index++;
51
+ continue;
52
+ }
53
+ groupedItems.push([]);
54
+ }
55
+ return groupedItems;
56
+ }
57
+ function dispatch() {
58
+ const groupedItems = groupItems(pendingItems);
59
+ destroyTimerAndPendingItems();
60
+ for (const items of groupedItems) {
61
+ if (!items.length) continue;
62
+ const batch = { items };
63
+ for (const item of items) item.batch = batch;
64
+ const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));
65
+ promise.then(async (result) => {
66
+ await Promise.all(result.map(async (valueOrPromise, index) => {
67
+ const item = batch.items[index];
68
+ try {
69
+ const value = await Promise.resolve(valueOrPromise);
70
+ item.resolve?.(value);
71
+ } catch (cause) {
72
+ item.reject?.(cause);
73
+ }
74
+ item.batch = null;
75
+ item.reject = null;
76
+ item.resolve = null;
77
+ }));
78
+ for (const item of batch.items) {
79
+ item.reject?.(new Error("Missing result"));
80
+ item.batch = null;
81
+ }
82
+ }).catch((cause) => {
83
+ for (const item of batch.items) {
84
+ item.reject?.(cause);
85
+ item.batch = null;
86
+ }
87
+ });
88
+ }
89
+ }
90
+ function load(key) {
91
+ const item = {
92
+ aborted: false,
93
+ key,
94
+ batch: null,
95
+ resolve: throwFatalError,
96
+ reject: throwFatalError
97
+ };
98
+ const promise = new Promise((resolve, reject) => {
99
+ item.reject = reject;
100
+ item.resolve = resolve;
101
+ pendingItems ??= [];
102
+ pendingItems.push(item);
103
+ });
104
+ dispatchTimer ??= setTimeout(dispatch);
105
+ return promise;
106
+ }
107
+ return { load };
108
+ }
109
+
110
+ //#endregion
111
+ //#region src/internals/signals.ts
112
+ /**
113
+ * Like `Promise.all()` but for abort signals
114
+ * - When all signals have been aborted, the merged signal will be aborted
115
+ * - If one signal is `null`, no signal will be aborted
116
+ */
117
+ function allAbortSignals(...signals) {
118
+ const ac = new AbortController();
119
+ const count = signals.length;
120
+ let abortedCount = 0;
121
+ const onAbort = () => {
122
+ if (++abortedCount === count) ac.abort();
123
+ };
124
+ for (const signal of signals) if (signal?.aborted) onAbort();
125
+ else signal?.addEventListener("abort", onAbort, { once: true });
126
+ return ac.signal;
127
+ }
128
+ /**
129
+ * Like `Promise.race` but for abort signals
130
+ *
131
+ * Basically, a ponyfill for
132
+ * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
133
+ */
134
+ function raceAbortSignals(...signals) {
135
+ const ac = new AbortController();
136
+ for (const signal of signals) if (signal?.aborted) ac.abort();
137
+ else signal?.addEventListener("abort", () => ac.abort(), { once: true });
138
+ return ac.signal;
139
+ }
140
+ function abortSignalToPromise(signal) {
141
+ return new Promise((_, reject) => {
142
+ if (signal.aborted) {
143
+ reject(signal.reason);
144
+ return;
145
+ }
146
+ signal.addEventListener("abort", () => {
147
+ reject(signal.reason);
148
+ }, { once: true });
149
+ });
150
+ }
151
+
152
+ //#endregion
153
+ //#region src/links/httpBatchLink.ts
154
+ /**
155
+ * @see https://trpc.io/docs/client/links/httpBatchLink
156
+ */
157
+ function httpBatchLink(opts) {
158
+ const resolvedOpts = require_httpUtils.resolveHTTPLinkOptions(opts);
159
+ const maxURLLength = opts.maxURLLength ?? Infinity;
160
+ const maxItems = opts.maxItems ?? Infinity;
161
+ return () => {
162
+ const batchLoader = (type) => {
163
+ return {
164
+ validate(batchOps) {
165
+ if (maxURLLength === Infinity && maxItems === Infinity) return true;
166
+ if (batchOps.length > maxItems) return false;
167
+ const path = batchOps.map((op) => op.path).join(",");
168
+ const inputs = batchOps.map((op) => op.input);
169
+ const url = require_httpUtils.getUrl({
170
+ ...resolvedOpts,
171
+ type,
172
+ path,
173
+ inputs,
174
+ signal: null
175
+ });
176
+ return url.length <= maxURLLength;
177
+ },
178
+ async fetch(batchOps) {
179
+ const path = batchOps.map((op) => op.path).join(",");
180
+ const inputs = batchOps.map((op) => op.input);
181
+ const signal = allAbortSignals(...batchOps.map((op) => op.signal));
182
+ const res = await require_httpUtils.jsonHttpRequester({
183
+ ...resolvedOpts,
184
+ path,
185
+ inputs,
186
+ type,
187
+ headers() {
188
+ if (!opts.headers) return {};
189
+ if (typeof opts.headers === "function") return opts.headers({ opList: batchOps });
190
+ return opts.headers;
191
+ },
192
+ signal
193
+ });
194
+ const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);
195
+ const result = resJSON.map((item) => ({
196
+ meta: res.meta,
197
+ json: item
198
+ }));
199
+ return result;
200
+ }
201
+ };
202
+ };
203
+ const query = dataLoader(batchLoader("query"));
204
+ const mutation = dataLoader(batchLoader("mutation"));
205
+ const loaders = {
206
+ query,
207
+ mutation
208
+ };
209
+ return ({ op }) => {
210
+ return (0, __trpc_server_observable.observable)((observer) => {
211
+ /* istanbul ignore if -- @preserve */
212
+ if (op.type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
213
+ const loader = loaders[op.type];
214
+ const promise = loader.load(op);
215
+ let _res = void 0;
216
+ promise.then((res) => {
217
+ _res = res;
218
+ const transformed = (0, __trpc_server_unstable_core_do_not_import.transformResult)(res.json, resolvedOpts.transformer.output);
219
+ if (!transformed.ok) {
220
+ observer.error(require_TRPCClientError.TRPCClientError.from(transformed.error, { meta: res.meta }));
221
+ return;
222
+ }
223
+ observer.next({
224
+ context: res.meta,
225
+ result: transformed.result
226
+ });
227
+ observer.complete();
228
+ }).catch((err) => {
229
+ observer.error(require_TRPCClientError.TRPCClientError.from(err, { meta: _res?.meta }));
230
+ });
231
+ return () => {};
232
+ });
233
+ };
234
+ };
235
+ }
236
+
237
+ //#endregion
238
+ Object.defineProperty(exports, 'abortSignalToPromise', {
239
+ enumerable: true,
240
+ get: function () {
241
+ return abortSignalToPromise;
242
+ }
243
+ });
244
+ Object.defineProperty(exports, 'allAbortSignals', {
245
+ enumerable: true,
246
+ get: function () {
247
+ return allAbortSignals;
248
+ }
249
+ });
250
+ Object.defineProperty(exports, 'dataLoader', {
251
+ enumerable: true,
252
+ get: function () {
253
+ return dataLoader;
254
+ }
255
+ });
256
+ Object.defineProperty(exports, 'httpBatchLink', {
257
+ enumerable: true,
258
+ get: function () {
259
+ return httpBatchLink;
260
+ }
261
+ });
262
+ Object.defineProperty(exports, 'raceAbortSignals', {
263
+ enumerable: true,
264
+ get: function () {
265
+ return raceAbortSignals;
266
+ }
267
+ });
@@ -0,0 +1,238 @@
1
+ import { TRPCClientError } from "./TRPCClientError-COkhCKf3.mjs";
2
+ import { getUrl, jsonHttpRequester, resolveHTTPLinkOptions } from "./httpUtils-3pbQzhUL.mjs";
3
+ import { observable } from "@trpc/server/observable";
4
+ import { transformResult } from "@trpc/server/unstable-core-do-not-import";
5
+
6
+ //#region src/internals/dataLoader.ts
7
+ /**
8
+ * A function that should never be called unless we messed something up.
9
+ */
10
+ const throwFatalError = () => {
11
+ throw new Error("Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new");
12
+ };
13
+ /**
14
+ * Dataloader that's very inspired by https://github.com/graphql/dataloader
15
+ * Less configuration, no caching, and allows you to cancel requests
16
+ * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
17
+ */
18
+ function dataLoader(batchLoader) {
19
+ let pendingItems = null;
20
+ let dispatchTimer = null;
21
+ const destroyTimerAndPendingItems = () => {
22
+ clearTimeout(dispatchTimer);
23
+ dispatchTimer = null;
24
+ pendingItems = null;
25
+ };
26
+ /**
27
+ * Iterate through the items and split them into groups based on the `batchLoader`'s validate function
28
+ */
29
+ function groupItems(items) {
30
+ const groupedItems = [[]];
31
+ let index = 0;
32
+ while (true) {
33
+ const item = items[index];
34
+ if (!item) break;
35
+ const lastGroup = groupedItems[groupedItems.length - 1];
36
+ if (item.aborted) {
37
+ item.reject?.(new Error("Aborted"));
38
+ index++;
39
+ continue;
40
+ }
41
+ const isValid = batchLoader.validate(lastGroup.concat(item).map((it) => it.key));
42
+ if (isValid) {
43
+ lastGroup.push(item);
44
+ index++;
45
+ continue;
46
+ }
47
+ if (lastGroup.length === 0) {
48
+ item.reject?.(new Error("Input is too big for a single dispatch"));
49
+ index++;
50
+ continue;
51
+ }
52
+ groupedItems.push([]);
53
+ }
54
+ return groupedItems;
55
+ }
56
+ function dispatch() {
57
+ const groupedItems = groupItems(pendingItems);
58
+ destroyTimerAndPendingItems();
59
+ for (const items of groupedItems) {
60
+ if (!items.length) continue;
61
+ const batch = { items };
62
+ for (const item of items) item.batch = batch;
63
+ const promise = batchLoader.fetch(batch.items.map((_item) => _item.key));
64
+ promise.then(async (result) => {
65
+ await Promise.all(result.map(async (valueOrPromise, index) => {
66
+ const item = batch.items[index];
67
+ try {
68
+ const value = await Promise.resolve(valueOrPromise);
69
+ item.resolve?.(value);
70
+ } catch (cause) {
71
+ item.reject?.(cause);
72
+ }
73
+ item.batch = null;
74
+ item.reject = null;
75
+ item.resolve = null;
76
+ }));
77
+ for (const item of batch.items) {
78
+ item.reject?.(new Error("Missing result"));
79
+ item.batch = null;
80
+ }
81
+ }).catch((cause) => {
82
+ for (const item of batch.items) {
83
+ item.reject?.(cause);
84
+ item.batch = null;
85
+ }
86
+ });
87
+ }
88
+ }
89
+ function load(key) {
90
+ const item = {
91
+ aborted: false,
92
+ key,
93
+ batch: null,
94
+ resolve: throwFatalError,
95
+ reject: throwFatalError
96
+ };
97
+ const promise = new Promise((resolve, reject) => {
98
+ item.reject = reject;
99
+ item.resolve = resolve;
100
+ pendingItems ??= [];
101
+ pendingItems.push(item);
102
+ });
103
+ dispatchTimer ??= setTimeout(dispatch);
104
+ return promise;
105
+ }
106
+ return { load };
107
+ }
108
+
109
+ //#endregion
110
+ //#region src/internals/signals.ts
111
+ /**
112
+ * Like `Promise.all()` but for abort signals
113
+ * - When all signals have been aborted, the merged signal will be aborted
114
+ * - If one signal is `null`, no signal will be aborted
115
+ */
116
+ function allAbortSignals(...signals) {
117
+ const ac = new AbortController();
118
+ const count = signals.length;
119
+ let abortedCount = 0;
120
+ const onAbort = () => {
121
+ if (++abortedCount === count) ac.abort();
122
+ };
123
+ for (const signal of signals) if (signal?.aborted) onAbort();
124
+ else signal?.addEventListener("abort", onAbort, { once: true });
125
+ return ac.signal;
126
+ }
127
+ /**
128
+ * Like `Promise.race` but for abort signals
129
+ *
130
+ * Basically, a ponyfill for
131
+ * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
132
+ */
133
+ function raceAbortSignals(...signals) {
134
+ const ac = new AbortController();
135
+ for (const signal of signals) if (signal?.aborted) ac.abort();
136
+ else signal?.addEventListener("abort", () => ac.abort(), { once: true });
137
+ return ac.signal;
138
+ }
139
+ function abortSignalToPromise(signal) {
140
+ return new Promise((_, reject) => {
141
+ if (signal.aborted) {
142
+ reject(signal.reason);
143
+ return;
144
+ }
145
+ signal.addEventListener("abort", () => {
146
+ reject(signal.reason);
147
+ }, { once: true });
148
+ });
149
+ }
150
+
151
+ //#endregion
152
+ //#region src/links/httpBatchLink.ts
153
+ /**
154
+ * @see https://trpc.io/docs/client/links/httpBatchLink
155
+ */
156
+ function httpBatchLink(opts) {
157
+ const resolvedOpts = resolveHTTPLinkOptions(opts);
158
+ const maxURLLength = opts.maxURLLength ?? Infinity;
159
+ const maxItems = opts.maxItems ?? Infinity;
160
+ return () => {
161
+ const batchLoader = (type) => {
162
+ return {
163
+ validate(batchOps) {
164
+ if (maxURLLength === Infinity && maxItems === Infinity) return true;
165
+ if (batchOps.length > maxItems) return false;
166
+ const path = batchOps.map((op) => op.path).join(",");
167
+ const inputs = batchOps.map((op) => op.input);
168
+ const url = getUrl({
169
+ ...resolvedOpts,
170
+ type,
171
+ path,
172
+ inputs,
173
+ signal: null
174
+ });
175
+ return url.length <= maxURLLength;
176
+ },
177
+ async fetch(batchOps) {
178
+ const path = batchOps.map((op) => op.path).join(",");
179
+ const inputs = batchOps.map((op) => op.input);
180
+ const signal = allAbortSignals(...batchOps.map((op) => op.signal));
181
+ const res = await jsonHttpRequester({
182
+ ...resolvedOpts,
183
+ path,
184
+ inputs,
185
+ type,
186
+ headers() {
187
+ if (!opts.headers) return {};
188
+ if (typeof opts.headers === "function") return opts.headers({ opList: batchOps });
189
+ return opts.headers;
190
+ },
191
+ signal
192
+ });
193
+ const resJSON = Array.isArray(res.json) ? res.json : batchOps.map(() => res.json);
194
+ const result = resJSON.map((item) => ({
195
+ meta: res.meta,
196
+ json: item
197
+ }));
198
+ return result;
199
+ }
200
+ };
201
+ };
202
+ const query = dataLoader(batchLoader("query"));
203
+ const mutation = dataLoader(batchLoader("mutation"));
204
+ const loaders = {
205
+ query,
206
+ mutation
207
+ };
208
+ return ({ op }) => {
209
+ return observable((observer) => {
210
+ /* istanbul ignore if -- @preserve */
211
+ if (op.type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
212
+ const loader = loaders[op.type];
213
+ const promise = loader.load(op);
214
+ let _res = void 0;
215
+ promise.then((res) => {
216
+ _res = res;
217
+ const transformed = transformResult(res.json, resolvedOpts.transformer.output);
218
+ if (!transformed.ok) {
219
+ observer.error(TRPCClientError.from(transformed.error, { meta: res.meta }));
220
+ return;
221
+ }
222
+ observer.next({
223
+ context: res.meta,
224
+ result: transformed.result
225
+ });
226
+ observer.complete();
227
+ }).catch((err) => {
228
+ observer.error(TRPCClientError.from(err, { meta: _res?.meta }));
229
+ });
230
+ return () => {};
231
+ });
232
+ };
233
+ };
234
+ }
235
+
236
+ //#endregion
237
+ export { abortSignalToPromise, allAbortSignals, dataLoader, httpBatchLink, raceAbortSignals };
238
+ //# sourceMappingURL=httpBatchLink-DIfnmmcu.mjs.map