@trpc/client 11.4.1 → 11.4.2-canary.1

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 (82) hide show
  1. package/dist/TRPCClientError-CjKyS10w.mjs +47 -0
  2. package/dist/{TRPCClientError-COkhCKf3.mjs.map → TRPCClientError-CjKyS10w.mjs.map} +1 -1
  3. package/dist/{TRPCClientError-CGgRtttT.cjs → TRPCClientError-Dey88Uiy.cjs} +15 -24
  4. package/dist/{httpBatchLink-DIfnmmcu.mjs → httpBatchLink-BfUVex5U.mjs} +33 -24
  5. package/dist/{httpBatchLink-DIfnmmcu.mjs.map → httpBatchLink-BfUVex5U.mjs.map} +1 -1
  6. package/dist/{httpBatchLink-CIC9PZ_Z.cjs → httpBatchLink-JKXaA6dG.cjs} +32 -23
  7. package/dist/{httpBatchLink.d-BN2Iw_cK.d.mts → httpBatchLink.d-CAaMQOtX.d.mts} +3 -3
  8. package/dist/{httpBatchLink.d-BN2Iw_cK.d.mts.map → httpBatchLink.d-CAaMQOtX.d.mts.map} +1 -1
  9. package/dist/{httpLink-BbVj_TgM.cjs → httpLink-CbZZVG--.cjs} +10 -11
  10. package/dist/{httpLink-9bpwQ15c.mjs → httpLink-Dptv1zSJ.mjs} +11 -12
  11. package/dist/{httpLink-9bpwQ15c.mjs.map → httpLink-Dptv1zSJ.mjs.map} +1 -1
  12. package/dist/{httpLink.d-CTSOARfE.d.mts → httpLink.d-B0nHKy2W.d.mts} +3 -3
  13. package/dist/{httpLink.d-CTSOARfE.d.mts.map → httpLink.d-B0nHKy2W.d.mts.map} +1 -1
  14. package/dist/{httpUtils-3pbQzhUL.mjs → httpUtils-ZiawzpnD.mjs} +12 -13
  15. package/dist/{httpUtils-3pbQzhUL.mjs.map → httpUtils-ZiawzpnD.mjs.map} +1 -1
  16. package/dist/{httpUtils-Buf6jCgh.cjs → httpUtils-rn2lxsJO.cjs} +12 -12
  17. package/dist/{httpUtils.d-C8wPxU79.d.mts → httpUtils.d-cQRQZrfo.d.mts} +3 -3
  18. package/dist/{httpUtils.d-C8wPxU79.d.mts.map → httpUtils.d-cQRQZrfo.d.mts.map} +1 -1
  19. package/dist/index.cjs +268 -104
  20. package/dist/index.d.mts +9 -9
  21. package/dist/index.mjs +269 -131
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/links/httpBatchLink.cjs +5 -4
  24. package/dist/links/httpBatchLink.d.mts +5 -5
  25. package/dist/links/httpBatchLink.mjs +5 -4
  26. package/dist/links/httpLink.cjs +5 -4
  27. package/dist/links/httpLink.d.mts +5 -5
  28. package/dist/links/httpLink.mjs +5 -4
  29. package/dist/links/loggerLink.cjs +2 -1
  30. package/dist/links/loggerLink.d.mts +3 -3
  31. package/dist/links/loggerLink.mjs +2 -1
  32. package/dist/links/splitLink.d.mts +3 -3
  33. package/dist/links/splitLink.mjs +1 -1
  34. package/dist/links/wsLink/wsLink.cjs +4 -3
  35. package/dist/links/wsLink/wsLink.d.mts +4 -4
  36. package/dist/links/wsLink/wsLink.mjs +4 -3
  37. package/dist/{loggerLink-CsDfg5Bb.cjs → loggerLink-CuYvRzyH.cjs} +14 -21
  38. package/dist/{loggerLink-PGBSQFcR.mjs → loggerLink-ineCN1PO.mjs} +15 -22
  39. package/dist/{loggerLink-PGBSQFcR.mjs.map → loggerLink-ineCN1PO.mjs.map} +1 -1
  40. package/dist/{loggerLink.d-CZjK1CXm.d.mts → loggerLink.d-g_uYSbus.d.mts} +2 -2
  41. package/dist/{loggerLink.d-CZjK1CXm.d.mts.map → loggerLink.d-g_uYSbus.d.mts.map} +1 -1
  42. package/dist/objectSpread2-Bsvh_OqM.cjs +100 -0
  43. package/dist/objectSpread2-BvkFp-_Y.mjs +114 -0
  44. package/dist/objectSpread2-BvkFp-_Y.mjs.map +1 -0
  45. package/dist/{splitLink-BVblHq4n.mjs → splitLink-B7Cuf2c_.mjs} +1 -1
  46. package/dist/{splitLink-BVblHq4n.mjs.map → splitLink-B7Cuf2c_.mjs.map} +1 -1
  47. package/dist/{splitLink.d-BAqgq0NG.d.mts → splitLink.d-od8YIcex.d.mts} +2 -2
  48. package/dist/{splitLink.d-BAqgq0NG.d.mts.map → splitLink.d-od8YIcex.d.mts.map} +1 -1
  49. package/dist/{subscriptions.d-U92STdZl.d.mts → subscriptions.d-Dlr1nWGD.d.mts} +1 -1
  50. package/dist/{subscriptions.d-U92STdZl.d.mts.map → subscriptions.d-Dlr1nWGD.d.mts.map} +1 -1
  51. package/dist/{types.d-DXbqQLCC.d.mts → types.d-POgEdUB1.d.mts} +2 -2
  52. package/dist/{types.d-DXbqQLCC.d.mts.map → types.d-POgEdUB1.d.mts.map} +1 -1
  53. package/dist/{unstable-internals-DU4WecoG.mjs → unstable-internals-Bg7n9BBj.mjs} +1 -1
  54. package/dist/{unstable-internals-DU4WecoG.mjs.map → unstable-internals-Bg7n9BBj.mjs.map} +1 -1
  55. package/dist/unstable-internals.cjs +1 -1
  56. package/dist/{unstable-internals.d-DyLd-B0J.d.mts → unstable-internals.d-BOmV7EK1.d.mts} +1 -1
  57. package/dist/{unstable-internals.d-DyLd-B0J.d.mts.map → unstable-internals.d-BOmV7EK1.d.mts.map} +1 -1
  58. package/dist/unstable-internals.d.mts +2 -2
  59. package/dist/unstable-internals.mjs +1 -1
  60. package/dist/{wsLink-DhJ50EC5.cjs → wsLink-BcTLPVgc.cjs} +93 -106
  61. package/dist/{wsLink-DbSHOzlB.mjs → wsLink-H5IjZfJW.mjs} +94 -107
  62. package/dist/wsLink-H5IjZfJW.mjs.map +1 -0
  63. package/dist/{wsLink.d-BqO7ltN_.d.mts → wsLink.d-BZxAJRBO.d.mts} +4 -4
  64. package/dist/{wsLink.d-BqO7ltN_.d.mts.map → wsLink.d-BZxAJRBO.d.mts.map} +1 -1
  65. package/package.json +4 -4
  66. package/dist/TRPCClientError-COkhCKf3.mjs +0 -56
  67. package/dist/wsLink-DbSHOzlB.mjs.map +0 -1
  68. package/links/httpBatchLink/index.d.ts +0 -1
  69. package/links/httpBatchLink/index.js +0 -1
  70. package/links/httpLink/index.d.ts +0 -1
  71. package/links/httpLink/index.js +0 -1
  72. package/links/loggerLink/index.d.ts +0 -1
  73. package/links/loggerLink/index.js +0 -1
  74. package/links/splitLink/index.d.ts +0 -1
  75. package/links/splitLink/index.js +0 -1
  76. package/links/wsLink/index.d.ts +0 -1
  77. package/links/wsLink/index.js +0 -1
  78. package/links/wsLink/wsLink/index.d.ts +0 -1
  79. package/links/wsLink/wsLink/index.js +0 -1
  80. package/unstable-internals/index.d.ts +0 -1
  81. package/unstable-internals/index.js +0 -1
  82. /package/dist/{unstable-internals-CYBH4jbF.cjs → unstable-internals-M84gUQCV.cjs} +0 -0
@@ -1,5 +1,6 @@
1
- import { TRPCClientError } from "./TRPCClientError-COkhCKf3.mjs";
2
- import { getUrl, httpRequest, jsonHttpRequester, resolveHTTPLinkOptions } from "./httpUtils-3pbQzhUL.mjs";
1
+ import { __toESM, require_objectSpread2 } from "./objectSpread2-BvkFp-_Y.mjs";
2
+ import { TRPCClientError } from "./TRPCClientError-CjKyS10w.mjs";
3
+ import { getUrl, httpRequest, jsonHttpRequester, resolveHTTPLinkOptions } from "./httpUtils-ZiawzpnD.mjs";
3
4
  import { observable } from "@trpc/server/observable";
4
5
  import { transformResult } from "@trpc/server/unstable-core-do-not-import";
5
6
 
@@ -16,26 +17,25 @@ function isNonJsonSerializable(input) {
16
17
 
17
18
  //#endregion
18
19
  //#region src/links/httpLink.ts
20
+ var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
19
21
  const universalRequester = (opts) => {
20
22
  if ("input" in opts) {
21
23
  const { input } = opts;
22
24
  if (isFormData(input)) {
23
25
  if (opts.type !== "mutation" && opts.methodOverride !== "POST") throw new Error("FormData is only supported for mutations");
24
- return httpRequest({
25
- ...opts,
26
+ return httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
26
27
  contentTypeHeader: void 0,
27
28
  getUrl,
28
29
  getBody: () => input
29
- });
30
+ }));
30
31
  }
31
32
  if (isOctetType(input)) {
32
33
  if (opts.type !== "mutation" && opts.methodOverride !== "POST") throw new Error("Octet type input is only supported for mutations");
33
- return httpRequest({
34
- ...opts,
34
+ return httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
35
35
  contentTypeHeader: "application/octet-stream",
36
36
  getUrl,
37
37
  getBody: () => input
38
- });
38
+ }));
39
39
  }
40
40
  }
41
41
  return jsonHttpRequester(opts);
@@ -51,8 +51,7 @@ function httpLink(opts) {
51
51
  const { path, input, type } = op;
52
52
  /* istanbul ignore if -- @preserve */
53
53
  if (type === "subscription") throw new Error("Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`");
54
- const request = universalRequester({
55
- ...resolvedOpts,
54
+ const request = universalRequester((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, resolvedOpts), {}, {
56
55
  type,
57
56
  path,
58
57
  input,
@@ -62,7 +61,7 @@ function httpLink(opts) {
62
61
  if (typeof opts.headers === "function") return opts.headers({ op });
63
62
  return opts.headers;
64
63
  }
65
- });
64
+ }));
66
65
  let meta = void 0;
67
66
  request.then((res) => {
68
67
  meta = res.meta;
@@ -87,4 +86,4 @@ function httpLink(opts) {
87
86
 
88
87
  //#endregion
89
88
  export { httpLink, isFormData, isNonJsonSerializable, isOctetType };
90
- //# sourceMappingURL=httpLink-9bpwQ15c.mjs.map
89
+ //# sourceMappingURL=httpLink-Dptv1zSJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpLink-9bpwQ15c.mjs","names":["input: unknown","universalRequester: Requester","opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>","meta: HTTPResult['meta'] | undefined"],"sources":["../src/links/internals/contentTypes.ts","../src/links/httpLink.ts"],"sourcesContent":["export function isOctetType(input: unknown) {\n return (\n input instanceof Uint8Array ||\n // File extends from Blob but is only available in nodejs from v20\n input instanceof Blob\n );\n}\n\nexport function isFormData(input: unknown) {\n return input instanceof FormData;\n}\n\nexport function isNonJsonSerializable(input: unknown) {\n return isOctetType(input) || isFormData(input);\n}\n","import { observable } from '@trpc/server/observable';\nimport type {\n AnyClientTypes,\n AnyRouter,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { transformResult } from '@trpc/server/unstable-core-do-not-import';\nimport { TRPCClientError } from '../TRPCClientError';\nimport type {\n HTTPLinkBaseOptions,\n HTTPResult,\n Requester,\n} from './internals/httpUtils';\nimport {\n getUrl,\n httpRequest,\n jsonHttpRequester,\n resolveHTTPLinkOptions,\n} from './internals/httpUtils';\nimport {\n isFormData,\n isOctetType,\n type HTTPHeaders,\n type Operation,\n type TRPCLink,\n} from './types';\n\nexport type HTTPLinkOptions<TRoot extends AnyClientTypes> =\n HTTPLinkBaseOptions<TRoot> & {\n /**\n * Headers to be set on outgoing requests or a callback that of said headers\n * @see http://trpc.io/docs/client/headers\n */\n headers?:\n | HTTPHeaders\n | ((opts: { op: Operation }) => HTTPHeaders | Promise<HTTPHeaders>);\n };\n\nconst universalRequester: Requester = (opts) => {\n if ('input' in opts) {\n const { input } = opts;\n if (isFormData(input)) {\n if (opts.type !== 'mutation' && opts.methodOverride !== 'POST') {\n throw new Error('FormData is only supported for mutations');\n }\n\n return httpRequest({\n ...opts,\n // The browser will set this automatically and include the boundary= in it\n contentTypeHeader: undefined,\n getUrl,\n getBody: () => input,\n });\n }\n\n if (isOctetType(input)) {\n if (opts.type !== 'mutation' && opts.methodOverride !== 'POST') {\n throw new Error('Octet type input is only supported for mutations');\n }\n\n return httpRequest({\n ...opts,\n contentTypeHeader: 'application/octet-stream',\n getUrl,\n getBody: () => input,\n });\n }\n }\n\n return jsonHttpRequester(opts);\n};\n\n/**\n * @see https://trpc.io/docs/client/links/httpLink\n */\nexport function httpLink<TRouter extends AnyRouter = AnyRouter>(\n opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n return () => {\n return ({ op }) => {\n return observable((observer) => {\n const { path, input, type } = op;\n /* istanbul ignore if -- @preserve */\n if (type === 'subscription') {\n throw new Error(\n 'Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`',\n );\n }\n\n const request = universalRequester({\n ...resolvedOpts,\n type,\n path,\n input,\n signal: op.signal,\n headers() {\n if (!opts.headers) {\n return {};\n }\n if (typeof opts.headers === 'function') {\n return opts.headers({\n op,\n });\n }\n return opts.headers;\n },\n });\n let meta: HTTPResult['meta'] | undefined = undefined;\n request\n .then((res) => {\n meta = res.meta;\n const transformed = transformResult(\n res.json,\n resolvedOpts.transformer.output,\n );\n\n if (!transformed.ok) {\n observer.error(\n TRPCClientError.from(transformed.error, {\n meta,\n }),\n );\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result,\n });\n observer.complete();\n })\n .catch((cause) => {\n observer.error(TRPCClientError.from(cause, { meta }));\n });\n\n return () => {\n // noop\n };\n });\n };\n };\n}\n"],"mappings":";;;;;;AAAA,SAAgB,YAAYA,OAAgB;AAC1C,QACE,iBAAiB,cAEjB,iBAAiB;AAEpB;AAED,SAAgB,WAAWA,OAAgB;AACzC,QAAO,iBAAiB;AACzB;AAED,SAAgB,sBAAsBA,OAAgB;AACpD,QAAO,YAAY,MAAM,IAAI,WAAW,MAAM;AAC/C;;;;ACuBD,MAAMC,qBAAgC,CAAC,SAAS;AAC9C,KAAI,WAAW,MAAM;EACnB,MAAM,EAAE,OAAO,GAAG;AAClB,MAAI,WAAW,MAAM,EAAE;AACrB,OAAI,KAAK,SAAS,cAAc,KAAK,mBAAmB,OACtD,OAAM,IAAI,MAAM;AAGlB,UAAO,YAAY;IACjB,GAAG;IAEH;IACA;IACA,SAAS,MAAM;GAChB,EAAC;EACH;AAED,MAAI,YAAY,MAAM,EAAE;AACtB,OAAI,KAAK,SAAS,cAAc,KAAK,mBAAmB,OACtD,OAAM,IAAI,MAAM;AAGlB,UAAO,YAAY;IACjB,GAAG;IACH,mBAAmB;IACnB;IACA,SAAS,MAAM;GAChB,EAAC;EACH;CACF;AAED,QAAO,kBAAkB,KAAK;AAC/B;;;;AAKD,SAAgB,SACdC,MACmB;CACnB,MAAM,eAAe,uBAAuB,KAAK;AACjD,QAAO,MAAM;AACX,SAAO,CAAC,EAAE,IAAI,KAAK;AACjB,UAAO,WAAW,CAAC,aAAa;IAC9B,MAAM,EAAE,MAAM,OAAO,MAAM,GAAG;;AAE9B,QAAI,SAAS,eACX,OAAM,IAAI,MACR;IAIJ,MAAM,UAAU,mBAAmB;KACjC,GAAG;KACH;KACA;KACA;KACA,QAAQ,GAAG;KACX,UAAU;AACR,WAAK,KAAK,QACR,QAAO,CAAE;AAEX,iBAAW,KAAK,YAAY,WAC1B,QAAO,KAAK,QAAQ,EAClB,GACD,EAAC;AAEJ,aAAO,KAAK;KACb;IACF,EAAC;IACF,IAAIC;AACJ,YACG,KAAK,CAAC,QAAQ;AACb,YAAO,IAAI;KACX,MAAM,cAAc,gBAClB,IAAI,MACJ,aAAa,YAAY,OAC1B;AAED,UAAK,YAAY,IAAI;AACnB,eAAS,MACP,gBAAgB,KAAK,YAAY,OAAO,EACtC,KACD,EAAC,CACH;AACD;KACD;AACD,cAAS,KAAK;MACZ,SAAS,IAAI;MACb,QAAQ,YAAY;KACrB,EAAC;AACF,cAAS,UAAU;IACpB,EAAC,CACD,MAAM,CAAC,UAAU;AAChB,cAAS,MAAM,gBAAgB,KAAK,OAAO,EAAE,KAAM,EAAC,CAAC;IACtD,EAAC;AAEJ,WAAO,MAAM,CAEZ;GACF,EAAC;EACH;CACF;AACF"}
1
+ {"version":3,"file":"httpLink-Dptv1zSJ.mjs","names":["input: unknown","universalRequester: Requester","opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>","meta: HTTPResult['meta'] | undefined"],"sources":["../src/links/internals/contentTypes.ts","../src/links/httpLink.ts"],"sourcesContent":["export function isOctetType(input: unknown) {\n return (\n input instanceof Uint8Array ||\n // File extends from Blob but is only available in nodejs from v20\n input instanceof Blob\n );\n}\n\nexport function isFormData(input: unknown) {\n return input instanceof FormData;\n}\n\nexport function isNonJsonSerializable(input: unknown) {\n return isOctetType(input) || isFormData(input);\n}\n","import { observable } from '@trpc/server/observable';\nimport type {\n AnyClientTypes,\n AnyRouter,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { transformResult } from '@trpc/server/unstable-core-do-not-import';\nimport { TRPCClientError } from '../TRPCClientError';\nimport type {\n HTTPLinkBaseOptions,\n HTTPResult,\n Requester,\n} from './internals/httpUtils';\nimport {\n getUrl,\n httpRequest,\n jsonHttpRequester,\n resolveHTTPLinkOptions,\n} from './internals/httpUtils';\nimport {\n isFormData,\n isOctetType,\n type HTTPHeaders,\n type Operation,\n type TRPCLink,\n} from './types';\n\nexport type HTTPLinkOptions<TRoot extends AnyClientTypes> =\n HTTPLinkBaseOptions<TRoot> & {\n /**\n * Headers to be set on outgoing requests or a callback that of said headers\n * @see http://trpc.io/docs/client/headers\n */\n headers?:\n | HTTPHeaders\n | ((opts: { op: Operation }) => HTTPHeaders | Promise<HTTPHeaders>);\n };\n\nconst universalRequester: Requester = (opts) => {\n if ('input' in opts) {\n const { input } = opts;\n if (isFormData(input)) {\n if (opts.type !== 'mutation' && opts.methodOverride !== 'POST') {\n throw new Error('FormData is only supported for mutations');\n }\n\n return httpRequest({\n ...opts,\n // The browser will set this automatically and include the boundary= in it\n contentTypeHeader: undefined,\n getUrl,\n getBody: () => input,\n });\n }\n\n if (isOctetType(input)) {\n if (opts.type !== 'mutation' && opts.methodOverride !== 'POST') {\n throw new Error('Octet type input is only supported for mutations');\n }\n\n return httpRequest({\n ...opts,\n contentTypeHeader: 'application/octet-stream',\n getUrl,\n getBody: () => input,\n });\n }\n }\n\n return jsonHttpRequester(opts);\n};\n\n/**\n * @see https://trpc.io/docs/client/links/httpLink\n */\nexport function httpLink<TRouter extends AnyRouter = AnyRouter>(\n opts: HTTPLinkOptions<TRouter['_def']['_config']['$types']>,\n): TRPCLink<TRouter> {\n const resolvedOpts = resolveHTTPLinkOptions(opts);\n return () => {\n return ({ op }) => {\n return observable((observer) => {\n const { path, input, type } = op;\n /* istanbul ignore if -- @preserve */\n if (type === 'subscription') {\n throw new Error(\n 'Subscriptions are unsupported by `httpLink` - use `httpSubscriptionLink` or `wsLink`',\n );\n }\n\n const request = universalRequester({\n ...resolvedOpts,\n type,\n path,\n input,\n signal: op.signal,\n headers() {\n if (!opts.headers) {\n return {};\n }\n if (typeof opts.headers === 'function') {\n return opts.headers({\n op,\n });\n }\n return opts.headers;\n },\n });\n let meta: HTTPResult['meta'] | undefined = undefined;\n request\n .then((res) => {\n meta = res.meta;\n const transformed = transformResult(\n res.json,\n resolvedOpts.transformer.output,\n );\n\n if (!transformed.ok) {\n observer.error(\n TRPCClientError.from(transformed.error, {\n meta,\n }),\n );\n return;\n }\n observer.next({\n context: res.meta,\n result: transformed.result,\n });\n observer.complete();\n })\n .catch((cause) => {\n observer.error(TRPCClientError.from(cause, { meta }));\n });\n\n return () => {\n // noop\n };\n });\n };\n };\n}\n"],"mappings":";;;;;;;AAAA,SAAgB,YAAYA,OAAgB;AAC1C,QACE,iBAAiB,cAEjB,iBAAiB;AAEpB;AAED,SAAgB,WAAWA,OAAgB;AACzC,QAAO,iBAAiB;AACzB;AAED,SAAgB,sBAAsBA,OAAgB;AACpD,QAAO,YAAY,MAAM,IAAI,WAAW,MAAM;AAC/C;;;;;ACuBD,MAAMC,qBAAgC,CAAC,SAAS;AAC9C,KAAI,WAAW,MAAM;EACnB,MAAM,EAAE,OAAO,GAAG;AAClB,MAAI,WAAW,MAAM,EAAE;AACrB,OAAI,KAAK,SAAS,cAAc,KAAK,mBAAmB,OACtD,OAAM,IAAI,MAAM;AAGlB,UAAO,oFACF;IAEH;IACA;IACA,SAAS,MAAM;MACf;EACH;AAED,MAAI,YAAY,MAAM,EAAE;AACtB,OAAI,KAAK,SAAS,cAAc,KAAK,mBAAmB,OACtD,OAAM,IAAI,MAAM;AAGlB,UAAO,oFACF;IACH,mBAAmB;IACnB;IACA,SAAS,MAAM;MACf;EACH;CACF;AAED,QAAO,kBAAkB,KAAK;AAC/B;;;;AAKD,SAAgB,SACdC,MACmB;CACnB,MAAM,eAAe,uBAAuB,KAAK;AACjD,QAAO,MAAM;AACX,SAAO,CAAC,EAAE,IAAI,KAAK;AACjB,UAAO,WAAW,CAAC,aAAa;IAC9B,MAAM,EAAE,MAAM,OAAO,MAAM,GAAG;;AAE9B,QAAI,SAAS,eACX,OAAM,IAAI,MACR;IAIJ,MAAM,UAAU,2FACX;KACH;KACA;KACA;KACA,QAAQ,GAAG;KACX,UAAU;AACR,WAAK,KAAK,QACR,QAAO,CAAE;AAEX,iBAAW,KAAK,YAAY,WAC1B,QAAO,KAAK,QAAQ,EAClB,GACD,EAAC;AAEJ,aAAO,KAAK;KACb;OACD;IACF,IAAIC;AACJ,YACG,KAAK,CAAC,QAAQ;AACb,YAAO,IAAI;KACX,MAAM,cAAc,gBAClB,IAAI,MACJ,aAAa,YAAY,OAC1B;AAED,UAAK,YAAY,IAAI;AACnB,eAAS,MACP,gBAAgB,KAAK,YAAY,OAAO,EACtC,KACD,EAAC,CACH;AACD;KACD;AACD,cAAS,KAAK;MACZ,SAAS,IAAI;MACb,QAAQ,YAAY;KACrB,EAAC;AACF,cAAS,UAAU;IACpB,EAAC,CACD,MAAM,CAAC,UAAU;AAChB,cAAS,MAAM,gBAAgB,KAAK,OAAO,EAAE,KAAM,EAAC,CAAC;IACtD,EAAC;AAEJ,WAAO,MAAM,CAEZ;GACF,EAAC;EACH;CACF;AACF"}
@@ -1,5 +1,5 @@
1
- import { HTTPHeaders, Operation, TRPCLink } from "./types.d-DXbqQLCC.mjs";
2
- import { HTTPLinkBaseOptions } from "./httpUtils.d-C8wPxU79.mjs";
1
+ import { HTTPHeaders, Operation, TRPCLink } from "./types.d-POgEdUB1.mjs";
2
+ import { HTTPLinkBaseOptions } from "./httpUtils.d-cQRQZrfo.mjs";
3
3
  import { AnyClientTypes, AnyRouter } from "@trpc/server/unstable-core-do-not-import";
4
4
 
5
5
  //#region src/links/httpLink.d.ts
@@ -20,4 +20,4 @@ declare function httpLink<TRouter extends AnyRouter = AnyRouter>(opts: HTTPLinkO
20
20
 
21
21
  //#endregion
22
22
  export { HTTPLinkOptions, httpLink };
23
- //# sourceMappingURL=httpLink.d-CTSOARfE.d.mts.map
23
+ //# sourceMappingURL=httpLink.d-B0nHKy2W.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpLink.d-CTSOARfE.d.mts","names":[],"sources":["../src/links/httpLink.ts"],"sourcesContent":[],"mappings":";;;;;KA0BY,8BAA8B,kBACxC,oBAAoB;;AADtB;;;EAAwD,OAClC,CAAA,EAMd,WANc,GAAA,CAAA,CAAA,IAAA,EAAA;IAApB,EAAA,EAOoB,SAPpB;EAAmB,CAAA,EAMb,GAC8B,WAD9B,GAC4C,OAD5C,CACoD,WADpD,CAAA,CAAA;CAAW;;;;AACwC,iBAwC3C,QAxC2C,CAAA,gBAwClB,SAxCkB,GAwCN,SAxCM,CAAA,CAAA,IAAA,EAyCnD,eAzCmD,CAyCnC,OAzCmC,CAAA,MAAA,CAAA,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EA0CxD,QA1CwD,CA0C/C,OA1C+C,CAAA;AAwC3D"}
1
+ {"version":3,"file":"httpLink.d-B0nHKy2W.d.mts","names":[],"sources":["../src/links/httpLink.ts"],"sourcesContent":[],"mappings":";;;;;KA0BY,8BAA8B,kBACxC,oBAAoB;;AADtB;;;EAAwD,OAClC,CAAA,EAMd,WANc,GAAA,CAAA,CAAA,IAAA,EAAA;IAApB,EAAA,EAOoB,SAPpB;EAAmB,CAAA,EAMb,GAC8B,WAD9B,GAC4C,OAD5C,CACoD,WADpD,CAAA,CAAA;CAAW;;;;AACwC,iBAwC3C,QAxC2C,CAAA,gBAwClB,SAxCkB,GAwCN,SAxCM,CAAA,CAAA,IAAA,EAyCnD,eAzCmD,CAyCnC,OAzCmC,CAAA,MAAA,CAAA,CAAA,SAAA,CAAA,CAAA,QAAA,CAAA,CAAA,CAAA,EA0CxD,QA1CwD,CA0C/C,OA1C+C,CAAA;AAwC3D"}
@@ -1,4 +1,5 @@
1
- import { getTransformer } from "./unstable-internals-DU4WecoG.mjs";
1
+ import { __toESM, require_objectSpread2 } from "./objectSpread2-BvkFp-_Y.mjs";
2
+ import { getTransformer } from "./unstable-internals-Bg7n9BBj.mjs";
2
3
 
3
4
  //#region src/getFetch.ts
4
5
  const isFunction = (fn) => typeof fn === "function";
@@ -11,6 +12,7 @@ function getFetch(customFetchImpl) {
11
12
 
12
13
  //#endregion
13
14
  //#region src/links/internals/httpUtils.ts
15
+ var import_objectSpread2 = __toESM(require_objectSpread2());
14
16
  function resolveHTTPLinkOptions(opts) {
15
17
  return {
16
18
  url: opts.url.toString(),
@@ -55,12 +57,11 @@ const getBody = (opts) => {
55
57
  return input !== void 0 ? JSON.stringify(input) : void 0;
56
58
  };
57
59
  const jsonHttpRequester = (opts) => {
58
- return httpRequest({
59
- ...opts,
60
+ return httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
60
61
  contentTypeHeader: "application/json",
61
62
  getUrl,
62
63
  getBody
63
- });
64
+ }));
64
65
  };
65
66
  /**
66
67
  * Polyfill for DOMException with AbortError name
@@ -79,12 +80,14 @@ var AbortError = class extends Error {
79
80
  * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted
80
81
  */
81
82
  const throwIfAborted = (signal) => {
82
- if (!signal?.aborted) return;
83
- signal.throwIfAborted?.();
83
+ var _signal$throwIfAborte;
84
+ if (!(signal === null || signal === void 0 ? void 0 : signal.aborted)) return;
85
+ (_signal$throwIfAborte = signal.throwIfAborted) === null || _signal$throwIfAborte === void 0 || _signal$throwIfAborte.call(signal);
84
86
  if (typeof DOMException !== "undefined") throw new DOMException("AbortError", "AbortError");
85
87
  throw new AbortError();
86
88
  };
87
89
  async function fetchHTTPResponse(opts) {
90
+ var _opts$methodOverride;
88
91
  throwIfAborted(opts.signal);
89
92
  const url = opts.getUrl(opts);
90
93
  const body = opts.getBody(opts);
@@ -94,13 +97,9 @@ async function fetchHTTPResponse(opts) {
94
97
  if (Symbol.iterator in heads) return Object.fromEntries(heads);
95
98
  return heads;
96
99
  })();
97
- const headers = {
98
- ...opts.contentTypeHeader ? { "content-type": opts.contentTypeHeader } : {},
99
- ...opts.trpcAcceptHeader ? { "trpc-accept": opts.trpcAcceptHeader } : void 0,
100
- ...resolvedHeaders
101
- };
100
+ const headers = (0, import_objectSpread2.default)((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.contentTypeHeader ? { "content-type": opts.contentTypeHeader } : {}), opts.trpcAcceptHeader ? { "trpc-accept": opts.trpcAcceptHeader } : void 0), resolvedHeaders);
102
101
  return getFetch(opts.fetch)(url, {
103
- method: opts.methodOverride ?? METHOD[type],
102
+ method: (_opts$methodOverride = opts.methodOverride) !== null && _opts$methodOverride !== void 0 ? _opts$methodOverride : METHOD[type],
104
103
  signal: opts.signal,
105
104
  body,
106
105
  headers
@@ -120,4 +119,4 @@ async function httpRequest(opts) {
120
119
 
121
120
  //#endregion
122
121
  export { fetchHTTPResponse, getBody, getFetch, getUrl, httpRequest, jsonHttpRequester, resolveHTTPLinkOptions };
123
- //# sourceMappingURL=httpUtils-3pbQzhUL.mjs.map
122
+ //# sourceMappingURL=httpUtils-ZiawzpnD.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpUtils-3pbQzhUL.mjs","names":["fn: unknown","customFetchImpl?: FetchEsque | NativeFetchEsque","opts: HTTPLinkBaseOptions<AnyClientTypes>","array: unknown[]","dict: Record<number, unknown>","opts: GetInputOptions","getUrl: GetUrl","queryParts: string[]","getBody: GetBody","jsonHttpRequester: Requester","signal: Maybe<AbortSignal>","opts: HTTPRequestOptions"],"sources":["../src/getFetch.ts","../src/links/internals/httpUtils.ts"],"sourcesContent":["import type { FetchEsque, NativeFetchEsque } from './internals/types';\n\ntype AnyFn = (...args: any[]) => unknown;\n\nconst isFunction = (fn: unknown): fn is AnyFn => typeof fn === 'function';\n\nexport function getFetch(\n customFetchImpl?: FetchEsque | NativeFetchEsque,\n): FetchEsque {\n if (customFetchImpl) {\n return customFetchImpl as FetchEsque;\n }\n\n if (typeof window !== 'undefined' && isFunction(window.fetch)) {\n return window.fetch as FetchEsque;\n }\n\n if (typeof globalThis !== 'undefined' && isFunction(globalThis.fetch)) {\n return globalThis.fetch as FetchEsque;\n }\n\n throw new Error('No fetch implementation found');\n}\n","import type {\n AnyClientTypes,\n CombinedDataTransformer,\n Maybe,\n ProcedureType,\n TRPCAcceptHeader,\n TRPCResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { getFetch } from '../../getFetch';\nimport type {\n FetchEsque,\n RequestInitEsque,\n ResponseEsque,\n} from '../../internals/types';\nimport type { TransformerOptions } from '../../unstable-internals';\nimport { getTransformer } from '../../unstable-internals';\nimport type { HTTPHeaders } from '../types';\n\n/**\n * @internal\n */\nexport type HTTPLinkBaseOptions<\n TRoot extends Pick<AnyClientTypes, 'transformer'>,\n> = {\n url: string | URL;\n /**\n * Add ponyfill for fetch\n */\n fetch?: FetchEsque;\n /**\n * Send all requests `as POST`s requests regardless of the procedure type\n * The HTTP handler must separately allow overriding the method. See:\n * @see https://trpc.io/docs/rpc\n */\n methodOverride?: 'POST';\n} & TransformerOptions<TRoot>;\n\nexport interface ResolvedHTTPLinkOptions {\n url: string;\n fetch?: FetchEsque;\n transformer: CombinedDataTransformer;\n methodOverride?: 'POST';\n}\n\nexport function resolveHTTPLinkOptions(\n opts: HTTPLinkBaseOptions<AnyClientTypes>,\n): ResolvedHTTPLinkOptions {\n return {\n url: opts.url.toString(),\n fetch: opts.fetch,\n transformer: getTransformer(opts.transformer),\n methodOverride: opts.methodOverride,\n };\n}\n\n// https://github.com/trpc/trpc/pull/669\nfunction arrayToDict(array: unknown[]) {\n const dict: Record<number, unknown> = {};\n for (let index = 0; index < array.length; index++) {\n const element = array[index];\n dict[index] = element;\n }\n return dict;\n}\n\nconst METHOD = {\n query: 'GET',\n mutation: 'POST',\n subscription: 'PATCH',\n} as const;\n\nexport interface HTTPResult {\n json: TRPCResponse;\n meta: {\n response: ResponseEsque;\n responseJSON?: unknown;\n };\n}\n\ntype GetInputOptions = {\n transformer: CombinedDataTransformer;\n} & ({ input: unknown } | { inputs: unknown[] });\n\nexport function getInput(opts: GetInputOptions) {\n return 'input' in opts\n ? opts.transformer.input.serialize(opts.input)\n : arrayToDict(\n opts.inputs.map((_input) => opts.transformer.input.serialize(_input)),\n );\n}\n\nexport type HTTPBaseRequestOptions = GetInputOptions &\n ResolvedHTTPLinkOptions & {\n type: ProcedureType;\n path: string;\n signal: Maybe<AbortSignal>;\n };\n\ntype GetUrl = (opts: HTTPBaseRequestOptions) => string;\ntype GetBody = (opts: HTTPBaseRequestOptions) => RequestInitEsque['body'];\n\nexport type ContentOptions = {\n trpcAcceptHeader?: TRPCAcceptHeader;\n contentTypeHeader?: string;\n getUrl: GetUrl;\n getBody: GetBody;\n};\n\nexport const getUrl: GetUrl = (opts) => {\n const parts = opts.url.split('?') as [string, string?];\n const base = parts[0].replace(/\\/$/, ''); // Remove any trailing slashes\n\n let url = base + '/' + opts.path;\n const queryParts: string[] = [];\n\n if (parts[1]) {\n queryParts.push(parts[1]);\n }\n if ('inputs' in opts) {\n queryParts.push('batch=1');\n }\n if (opts.type === 'query' || opts.type === 'subscription') {\n const input = getInput(opts);\n if (input !== undefined && opts.methodOverride !== 'POST') {\n queryParts.push(`input=${encodeURIComponent(JSON.stringify(input))}`);\n }\n }\n if (queryParts.length) {\n url += '?' + queryParts.join('&');\n }\n return url;\n};\n\nexport const getBody: GetBody = (opts) => {\n if (opts.type === 'query' && opts.methodOverride !== 'POST') {\n return undefined;\n }\n const input = getInput(opts);\n return input !== undefined ? JSON.stringify(input) : undefined;\n};\n\nexport type Requester = (\n opts: HTTPBaseRequestOptions & {\n headers: () => HTTPHeaders | Promise<HTTPHeaders>;\n },\n) => Promise<HTTPResult>;\n\nexport const jsonHttpRequester: Requester = (opts) => {\n return httpRequest({\n ...opts,\n contentTypeHeader: 'application/json',\n getUrl,\n getBody,\n });\n};\n\n/**\n * Polyfill for DOMException with AbortError name\n */\nclass AbortError extends Error {\n constructor() {\n const name = 'AbortError';\n super(name);\n this.name = name;\n this.message = name;\n }\n}\n\nexport type HTTPRequestOptions = ContentOptions &\n HTTPBaseRequestOptions & {\n headers: () => HTTPHeaders | Promise<HTTPHeaders>;\n };\n\n/**\n * Polyfill for `signal.throwIfAborted()`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted\n */\nconst throwIfAborted = (signal: Maybe<AbortSignal>) => {\n if (!signal?.aborted) {\n return;\n }\n // If available, use the native implementation\n signal.throwIfAborted?.();\n\n // If we have `DOMException`, use it\n if (typeof DOMException !== 'undefined') {\n throw new DOMException('AbortError', 'AbortError');\n }\n\n // Otherwise, use our own implementation\n throw new AbortError();\n};\n\nexport async function fetchHTTPResponse(opts: HTTPRequestOptions) {\n throwIfAborted(opts.signal);\n\n const url = opts.getUrl(opts);\n const body = opts.getBody(opts);\n const { type } = opts;\n const resolvedHeaders = await (async () => {\n const heads = await opts.headers();\n if (Symbol.iterator in heads) {\n return Object.fromEntries(heads);\n }\n return heads;\n })();\n const headers = {\n ...(opts.contentTypeHeader\n ? { 'content-type': opts.contentTypeHeader }\n : {}),\n ...(opts.trpcAcceptHeader\n ? { 'trpc-accept': opts.trpcAcceptHeader }\n : undefined),\n ...resolvedHeaders,\n };\n\n return getFetch(opts.fetch)(url, {\n method: opts.methodOverride ?? METHOD[type],\n signal: opts.signal,\n body,\n headers,\n });\n}\n\nexport async function httpRequest(\n opts: HTTPRequestOptions,\n): Promise<HTTPResult> {\n const meta = {} as HTTPResult['meta'];\n\n const res = await fetchHTTPResponse(opts);\n meta.response = res;\n\n const json = await res.json();\n\n meta.responseJSON = json;\n\n return {\n json: json as TRPCResponse,\n meta,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"httpUtils-ZiawzpnD.mjs","names":["fn: unknown","customFetchImpl?: FetchEsque | NativeFetchEsque","opts: HTTPLinkBaseOptions<AnyClientTypes>","array: unknown[]","dict: Record<number, unknown>","opts: GetInputOptions","getUrl: GetUrl","queryParts: string[]","getBody: GetBody","jsonHttpRequester: Requester","signal: Maybe<AbortSignal>","opts: HTTPRequestOptions"],"sources":["../src/getFetch.ts","../src/links/internals/httpUtils.ts"],"sourcesContent":["import type { FetchEsque, NativeFetchEsque } from './internals/types';\n\ntype AnyFn = (...args: any[]) => unknown;\n\nconst isFunction = (fn: unknown): fn is AnyFn => typeof fn === 'function';\n\nexport function getFetch(\n customFetchImpl?: FetchEsque | NativeFetchEsque,\n): FetchEsque {\n if (customFetchImpl) {\n return customFetchImpl as FetchEsque;\n }\n\n if (typeof window !== 'undefined' && isFunction(window.fetch)) {\n return window.fetch as FetchEsque;\n }\n\n if (typeof globalThis !== 'undefined' && isFunction(globalThis.fetch)) {\n return globalThis.fetch as FetchEsque;\n }\n\n throw new Error('No fetch implementation found');\n}\n","import type {\n AnyClientTypes,\n CombinedDataTransformer,\n Maybe,\n ProcedureType,\n TRPCAcceptHeader,\n TRPCResponse,\n} from '@trpc/server/unstable-core-do-not-import';\nimport { getFetch } from '../../getFetch';\nimport type {\n FetchEsque,\n RequestInitEsque,\n ResponseEsque,\n} from '../../internals/types';\nimport type { TransformerOptions } from '../../unstable-internals';\nimport { getTransformer } from '../../unstable-internals';\nimport type { HTTPHeaders } from '../types';\n\n/**\n * @internal\n */\nexport type HTTPLinkBaseOptions<\n TRoot extends Pick<AnyClientTypes, 'transformer'>,\n> = {\n url: string | URL;\n /**\n * Add ponyfill for fetch\n */\n fetch?: FetchEsque;\n /**\n * Send all requests `as POST`s requests regardless of the procedure type\n * The HTTP handler must separately allow overriding the method. See:\n * @see https://trpc.io/docs/rpc\n */\n methodOverride?: 'POST';\n} & TransformerOptions<TRoot>;\n\nexport interface ResolvedHTTPLinkOptions {\n url: string;\n fetch?: FetchEsque;\n transformer: CombinedDataTransformer;\n methodOverride?: 'POST';\n}\n\nexport function resolveHTTPLinkOptions(\n opts: HTTPLinkBaseOptions<AnyClientTypes>,\n): ResolvedHTTPLinkOptions {\n return {\n url: opts.url.toString(),\n fetch: opts.fetch,\n transformer: getTransformer(opts.transformer),\n methodOverride: opts.methodOverride,\n };\n}\n\n// https://github.com/trpc/trpc/pull/669\nfunction arrayToDict(array: unknown[]) {\n const dict: Record<number, unknown> = {};\n for (let index = 0; index < array.length; index++) {\n const element = array[index];\n dict[index] = element;\n }\n return dict;\n}\n\nconst METHOD = {\n query: 'GET',\n mutation: 'POST',\n subscription: 'PATCH',\n} as const;\n\nexport interface HTTPResult {\n json: TRPCResponse;\n meta: {\n response: ResponseEsque;\n responseJSON?: unknown;\n };\n}\n\ntype GetInputOptions = {\n transformer: CombinedDataTransformer;\n} & ({ input: unknown } | { inputs: unknown[] });\n\nexport function getInput(opts: GetInputOptions) {\n return 'input' in opts\n ? opts.transformer.input.serialize(opts.input)\n : arrayToDict(\n opts.inputs.map((_input) => opts.transformer.input.serialize(_input)),\n );\n}\n\nexport type HTTPBaseRequestOptions = GetInputOptions &\n ResolvedHTTPLinkOptions & {\n type: ProcedureType;\n path: string;\n signal: Maybe<AbortSignal>;\n };\n\ntype GetUrl = (opts: HTTPBaseRequestOptions) => string;\ntype GetBody = (opts: HTTPBaseRequestOptions) => RequestInitEsque['body'];\n\nexport type ContentOptions = {\n trpcAcceptHeader?: TRPCAcceptHeader;\n contentTypeHeader?: string;\n getUrl: GetUrl;\n getBody: GetBody;\n};\n\nexport const getUrl: GetUrl = (opts) => {\n const parts = opts.url.split('?') as [string, string?];\n const base = parts[0].replace(/\\/$/, ''); // Remove any trailing slashes\n\n let url = base + '/' + opts.path;\n const queryParts: string[] = [];\n\n if (parts[1]) {\n queryParts.push(parts[1]);\n }\n if ('inputs' in opts) {\n queryParts.push('batch=1');\n }\n if (opts.type === 'query' || opts.type === 'subscription') {\n const input = getInput(opts);\n if (input !== undefined && opts.methodOverride !== 'POST') {\n queryParts.push(`input=${encodeURIComponent(JSON.stringify(input))}`);\n }\n }\n if (queryParts.length) {\n url += '?' + queryParts.join('&');\n }\n return url;\n};\n\nexport const getBody: GetBody = (opts) => {\n if (opts.type === 'query' && opts.methodOverride !== 'POST') {\n return undefined;\n }\n const input = getInput(opts);\n return input !== undefined ? JSON.stringify(input) : undefined;\n};\n\nexport type Requester = (\n opts: HTTPBaseRequestOptions & {\n headers: () => HTTPHeaders | Promise<HTTPHeaders>;\n },\n) => Promise<HTTPResult>;\n\nexport const jsonHttpRequester: Requester = (opts) => {\n return httpRequest({\n ...opts,\n contentTypeHeader: 'application/json',\n getUrl,\n getBody,\n });\n};\n\n/**\n * Polyfill for DOMException with AbortError name\n */\nclass AbortError extends Error {\n constructor() {\n const name = 'AbortError';\n super(name);\n this.name = name;\n this.message = name;\n }\n}\n\nexport type HTTPRequestOptions = ContentOptions &\n HTTPBaseRequestOptions & {\n headers: () => HTTPHeaders | Promise<HTTPHeaders>;\n };\n\n/**\n * Polyfill for `signal.throwIfAborted()`\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted\n */\nconst throwIfAborted = (signal: Maybe<AbortSignal>) => {\n if (!signal?.aborted) {\n return;\n }\n // If available, use the native implementation\n signal.throwIfAborted?.();\n\n // If we have `DOMException`, use it\n if (typeof DOMException !== 'undefined') {\n throw new DOMException('AbortError', 'AbortError');\n }\n\n // Otherwise, use our own implementation\n throw new AbortError();\n};\n\nexport async function fetchHTTPResponse(opts: HTTPRequestOptions) {\n throwIfAborted(opts.signal);\n\n const url = opts.getUrl(opts);\n const body = opts.getBody(opts);\n const { type } = opts;\n const resolvedHeaders = await (async () => {\n const heads = await opts.headers();\n if (Symbol.iterator in heads) {\n return Object.fromEntries(heads);\n }\n return heads;\n })();\n const headers = {\n ...(opts.contentTypeHeader\n ? { 'content-type': opts.contentTypeHeader }\n : {}),\n ...(opts.trpcAcceptHeader\n ? { 'trpc-accept': opts.trpcAcceptHeader }\n : undefined),\n ...resolvedHeaders,\n };\n\n return getFetch(opts.fetch)(url, {\n method: opts.methodOverride ?? METHOD[type],\n signal: opts.signal,\n body,\n headers,\n });\n}\n\nexport async function httpRequest(\n opts: HTTPRequestOptions,\n): Promise<HTTPResult> {\n const meta = {} as HTTPResult['meta'];\n\n const res = await fetchHTTPResponse(opts);\n meta.response = res;\n\n const json = await res.json();\n\n meta.responseJSON = json;\n\n return {\n json: json as TRPCResponse,\n meta,\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- const require_unstable_internals = require('./unstable-internals-CYBH4jbF.cjs');
1
+ const require_chunk = require('./chunk-DWy1uDak.cjs');
2
+ const require_objectSpread2$1 = require('./objectSpread2-Bsvh_OqM.cjs');
3
+ const require_unstable_internals = require('./unstable-internals-M84gUQCV.cjs');
2
4
 
3
5
  //#region src/getFetch.ts
4
6
  const isFunction = (fn) => typeof fn === "function";
@@ -11,6 +13,7 @@ function getFetch(customFetchImpl) {
11
13
 
12
14
  //#endregion
13
15
  //#region src/links/internals/httpUtils.ts
16
+ var import_objectSpread2 = require_chunk.__toESM(require_objectSpread2$1.require_objectSpread2(), 1);
14
17
  function resolveHTTPLinkOptions(opts) {
15
18
  return {
16
19
  url: opts.url.toString(),
@@ -55,12 +58,11 @@ const getBody = (opts) => {
55
58
  return input !== void 0 ? JSON.stringify(input) : void 0;
56
59
  };
57
60
  const jsonHttpRequester = (opts) => {
58
- return httpRequest({
59
- ...opts,
61
+ return httpRequest((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts), {}, {
60
62
  contentTypeHeader: "application/json",
61
63
  getUrl,
62
64
  getBody
63
- });
65
+ }));
64
66
  };
65
67
  /**
66
68
  * Polyfill for DOMException with AbortError name
@@ -79,12 +81,14 @@ var AbortError = class extends Error {
79
81
  * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/throwIfAborted
80
82
  */
81
83
  const throwIfAborted = (signal) => {
82
- if (!signal?.aborted) return;
83
- signal.throwIfAborted?.();
84
+ var _signal$throwIfAborte;
85
+ if (!(signal === null || signal === void 0 ? void 0 : signal.aborted)) return;
86
+ (_signal$throwIfAborte = signal.throwIfAborted) === null || _signal$throwIfAborte === void 0 || _signal$throwIfAborte.call(signal);
84
87
  if (typeof DOMException !== "undefined") throw new DOMException("AbortError", "AbortError");
85
88
  throw new AbortError();
86
89
  };
87
90
  async function fetchHTTPResponse(opts) {
91
+ var _opts$methodOverride;
88
92
  throwIfAborted(opts.signal);
89
93
  const url = opts.getUrl(opts);
90
94
  const body = opts.getBody(opts);
@@ -94,13 +98,9 @@ async function fetchHTTPResponse(opts) {
94
98
  if (Symbol.iterator in heads) return Object.fromEntries(heads);
95
99
  return heads;
96
100
  })();
97
- const headers = {
98
- ...opts.contentTypeHeader ? { "content-type": opts.contentTypeHeader } : {},
99
- ...opts.trpcAcceptHeader ? { "trpc-accept": opts.trpcAcceptHeader } : void 0,
100
- ...resolvedHeaders
101
- };
101
+ const headers = (0, import_objectSpread2.default)((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, opts.contentTypeHeader ? { "content-type": opts.contentTypeHeader } : {}), opts.trpcAcceptHeader ? { "trpc-accept": opts.trpcAcceptHeader } : void 0), resolvedHeaders);
102
102
  return getFetch(opts.fetch)(url, {
103
- method: opts.methodOverride ?? METHOD[type],
103
+ method: (_opts$methodOverride = opts.methodOverride) !== null && _opts$methodOverride !== void 0 ? _opts$methodOverride : METHOD[type],
104
104
  signal: opts.signal,
105
105
  body,
106
106
  headers
@@ -1,5 +1,5 @@
1
- import { FetchEsque } from "./types.d-DXbqQLCC.mjs";
2
- import { TransformerOptions } from "./unstable-internals.d-DyLd-B0J.mjs";
1
+ import { FetchEsque } from "./types.d-POgEdUB1.mjs";
2
+ import { TransformerOptions } from "./unstable-internals.d-BOmV7EK1.mjs";
3
3
  import { AnyClientTypes, CombinedDataTransformer, Maybe, ProcedureType } from "@trpc/server/unstable-core-do-not-import";
4
4
 
5
5
  //#region src/links/internals/httpUtils.d.ts
@@ -22,4 +22,4 @@ type HTTPLinkBaseOptions<TRoot extends Pick<AnyClientTypes, 'transformer'>> = {
22
22
  } & TransformerOptions<TRoot>;
23
23
  //#endregion
24
24
  export { HTTPLinkBaseOptions };
25
- //# sourceMappingURL=httpUtils.d-C8wPxU79.d.mts.map
25
+ //# sourceMappingURL=httpUtils.d-cQRQZrfo.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"httpUtils.d-C8wPxU79.d.mts","names":[],"sources":["../src/links/internals/httpUtils.ts"],"sourcesContent":[],"mappings":";;;;;;;AAqBA;;AACqB,KADT,mBACS,CAAA,cAAL,IAAK,CAAA,cAAA,EAAA,aAAA,CAAA,CAAA,GAAA;EAAc,GAAnB,EAAA,MAAA,GAEA,GAFA;EAAI;;;EAaQ,KAAxB,CAAA,EAPM,UAON;EAAkB;;;;;;IAAlB,mBAAmB"}
1
+ {"version":3,"file":"httpUtils.d-cQRQZrfo.d.mts","names":[],"sources":["../src/links/internals/httpUtils.ts"],"sourcesContent":[],"mappings":";;;;;;;AAqBA;;AACqB,KADT,mBACS,CAAA,cAAL,IAAK,CAAA,cAAA,EAAA,aAAA,CAAA,CAAA,GAAA;EAAc,GAAnB,EAAA,MAAA,GAEA,GAFA;EAAI;;;EAaQ,KAAxB,CAAA,EAPM,UAON;EAAkB;;;;;;IAAlB,mBAAmB"}