@trpc/server 10.0.0-alpha.8 → 10.0.0-proxy-alpha.53

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 (355) hide show
  1. package/README.md +79 -1
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +190 -0
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
  5. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +190 -0
  6. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +186 -0
  7. package/adapters/aws-lambda/index.d.ts +1 -0
  8. package/adapters/aws-lambda/index.js +1 -0
  9. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -7
  10. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -7
  11. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -7
  12. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +18 -11
  13. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +18 -11
  14. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +18 -11
  15. package/adapters/fastify/index.d.ts +1 -0
  16. package/adapters/fastify/index.js +1 -0
  17. package/adapters/fetch/index.d.ts +1 -0
  18. package/adapters/fetch/index.js +1 -0
  19. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  20. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  21. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  22. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  23. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  24. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -4
  25. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -4
  26. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -4
  27. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -4
  28. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -4
  29. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -4
  30. package/adapters/node-http/index.js +1 -1
  31. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -5
  32. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -5
  33. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -5
  34. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +24 -7
  35. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +24 -7
  36. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +24 -7
  37. package/dist/TRPCError-bcb38a84.js +61 -0
  38. package/dist/TRPCError-e6e632a5.mjs +57 -0
  39. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  40. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  41. package/dist/adapters/aws-lambda/index.js +153 -0
  42. package/dist/adapters/aws-lambda/index.mjs +149 -0
  43. package/dist/adapters/aws-lambda/utils.d.ts +35 -0
  44. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  45. package/dist/adapters/express.d.ts +1 -1
  46. package/dist/adapters/express.d.ts.map +1 -1
  47. package/dist/adapters/express.js +14 -13
  48. package/dist/adapters/express.mjs +14 -13
  49. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
  50. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  51. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +2 -2
  52. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  53. package/dist/adapters/fastify/index.d.ts.map +1 -1
  54. package/dist/adapters/fastify/index.js +87 -0
  55. package/dist/adapters/fastify/index.mjs +82 -0
  56. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  57. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  58. package/dist/adapters/fetch/index.d.ts +3 -0
  59. package/dist/adapters/fetch/index.d.ts.map +1 -0
  60. package/dist/adapters/fetch/index.js +57 -0
  61. package/dist/adapters/fetch/index.mjs +53 -0
  62. package/dist/adapters/fetch/types.d.ts +21 -0
  63. package/dist/adapters/fetch/types.d.ts.map +1 -0
  64. package/dist/adapters/lambda/index.d.ts +12 -0
  65. package/dist/adapters/lambda/index.d.ts.map +1 -0
  66. package/dist/adapters/next.d.ts +2 -2
  67. package/dist/adapters/next.d.ts.map +1 -1
  68. package/dist/adapters/next.js +42 -46
  69. package/dist/adapters/next.mjs +42 -46
  70. package/dist/adapters/node-http/index.d.ts.map +1 -1
  71. package/dist/adapters/node-http/index.js +5 -4
  72. package/dist/adapters/node-http/index.mjs +5 -4
  73. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  74. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  75. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  76. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  77. package/dist/adapters/node-http/types.d.ts +11 -9
  78. package/dist/adapters/node-http/types.d.ts.map +1 -1
  79. package/dist/adapters/standalone.d.ts +2 -2
  80. package/dist/adapters/standalone.d.ts.map +1 -1
  81. package/dist/adapters/standalone.js +30 -28
  82. package/dist/adapters/standalone.mjs +30 -27
  83. package/dist/adapters/ws.d.ts +8 -6
  84. package/dist/adapters/ws.d.ts.map +1 -1
  85. package/dist/adapters/ws.js +284 -317
  86. package/dist/adapters/ws.mjs +284 -317
  87. package/dist/assertNotBrowser.d.ts.map +1 -1
  88. package/dist/codes-1c24d919.js +47 -0
  89. package/dist/codes-aaa7d554.mjs +44 -0
  90. package/dist/core/index.d.ts +6 -0
  91. package/dist/core/index.d.ts.map +1 -0
  92. package/dist/core/initTRPC.d.ts +95 -0
  93. package/dist/core/initTRPC.d.ts.map +1 -0
  94. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +302 -0
  95. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  96. package/dist/core/internals/config.d.ts +36 -0
  97. package/dist/core/internals/config.d.ts.map +1 -0
  98. package/dist/core/internals/getParseFn.d.ts +9 -0
  99. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  100. package/dist/core/internals/mergeRouters.d.ts +3 -0
  101. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  102. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  103. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  104. package/dist/core/internals/omitPrototype.d.ts +6 -0
  105. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  106. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  107. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  108. package/dist/core/internals/procedureBuilder.d.ts +124 -0
  109. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  110. package/dist/core/internals/utils.d.ts +44 -0
  111. package/dist/core/internals/utils.d.ts.map +1 -0
  112. package/dist/core/middleware.d.ts +87 -0
  113. package/dist/core/middleware.d.ts.map +1 -0
  114. package/dist/core/parser.d.ts +25 -0
  115. package/dist/core/parser.d.ts.map +1 -0
  116. package/dist/core/procedure.d.ts +89 -0
  117. package/dist/core/procedure.d.ts.map +1 -0
  118. package/dist/core/router.d.ts +136 -0
  119. package/dist/core/router.d.ts.map +1 -0
  120. package/dist/core/types.d.ts +19 -0
  121. package/dist/core/types.d.ts.map +1 -0
  122. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  123. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  125. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  126. package/dist/deprecated/internals/procedure.d.ts +96 -0
  127. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  128. package/dist/deprecated/interop.d.ts +61 -0
  129. package/dist/deprecated/interop.d.ts.map +1 -0
  130. package/dist/deprecated/router.d.ts +194 -0
  131. package/dist/deprecated/router.d.ts.map +1 -0
  132. package/dist/error/TRPCError.d.ts +11 -0
  133. package/dist/error/TRPCError.d.ts.map +1 -0
  134. package/dist/error/formatter.d.ts +33 -0
  135. package/dist/error/formatter.d.ts.map +1 -0
  136. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  137. package/dist/error/utils.d.ts.map +1 -0
  138. package/dist/http/index.d.ts +1 -1
  139. package/dist/http/index.d.ts.map +1 -1
  140. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  141. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  142. package/dist/http/internals/types.d.ts +11 -8
  143. package/dist/http/internals/types.d.ts.map +1 -1
  144. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  145. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  146. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  147. package/dist/http/types.d.ts.map +1 -0
  148. package/dist/index-47817162.mjs +26 -0
  149. package/dist/index-9d687d33.js +28 -0
  150. package/dist/index.d.ts +4 -5
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +78 -516
  153. package/dist/index.mjs +71 -508
  154. package/dist/internals/invert.d.ts.map +1 -1
  155. package/dist/internals/transformTRPCResponse.d.ts +5 -3
  156. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  157. package/dist/internals/types.d.ts +23 -0
  158. package/dist/internals/types.d.ts.map +1 -0
  159. package/dist/internals.d.ts +11 -0
  160. package/dist/internals.d.ts.map +1 -0
  161. package/dist/nodeHTTPRequestHandler-2c467c02.mjs +80 -0
  162. package/dist/nodeHTTPRequestHandler-6609461a.js +82 -0
  163. package/dist/observable/index.d.ts +5 -0
  164. package/dist/observable/index.d.ts.map +1 -0
  165. package/dist/observable/index.js +157 -0
  166. package/dist/observable/index.mjs +148 -0
  167. package/dist/observable/internals/identity.d.ts +2 -0
  168. package/dist/observable/internals/identity.d.ts.map +1 -0
  169. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  170. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  171. package/dist/observable/internals/pipe.d.ts +4 -0
  172. package/dist/observable/internals/pipe.d.ts.map +1 -0
  173. package/dist/observable/observable.d.ts +5 -0
  174. package/dist/observable/observable.d.ts.map +1 -0
  175. package/dist/observable/operators/index.d.ts +4 -0
  176. package/dist/observable/operators/index.d.ts.map +1 -0
  177. package/dist/observable/operators/map.d.ts +3 -0
  178. package/dist/observable/operators/map.d.ts.map +1 -0
  179. package/dist/observable/operators/share.d.ts +6 -0
  180. package/dist/observable/operators/share.d.ts.map +1 -0
  181. package/dist/observable/operators/tap.d.ts +3 -0
  182. package/dist/observable/operators/tap.d.ts.map +1 -0
  183. package/dist/observable/types.d.ts +29 -0
  184. package/dist/observable/types.d.ts.map +1 -0
  185. package/dist/observable-b651bf11.js +84 -0
  186. package/dist/observable-e129ac9d.mjs +81 -0
  187. package/dist/resolveHTTPResponse-11d52bd0.mjs +255 -0
  188. package/dist/resolveHTTPResponse-29d4b64a.js +259 -0
  189. package/dist/router-3ee4babe.js +903 -0
  190. package/dist/router-a2a75de3.mjs +893 -0
  191. package/dist/rpc/codes.d.ts +2 -0
  192. package/dist/rpc/codes.d.ts.map +1 -1
  193. package/dist/rpc/envelopes.d.ts +64 -41
  194. package/dist/rpc/envelopes.d.ts.map +1 -1
  195. package/dist/rpc/index.d.ts.map +1 -1
  196. package/dist/rpc/index.js +1 -1
  197. package/dist/rpc/index.mjs +1 -1
  198. package/dist/rpc/internals/invert.d.ts +18 -0
  199. package/dist/rpc/internals/invert.d.ts.map +1 -0
  200. package/dist/shared/createProxy/index.d.ts +12 -0
  201. package/dist/shared/createProxy/index.d.ts.map +1 -0
  202. package/dist/shared/index.d.ts +2 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +9 -0
  205. package/dist/shared/index.mjs +1 -0
  206. package/dist/subscription.d.ts +3 -52
  207. package/dist/subscription.d.ts.map +1 -1
  208. package/dist/subscription.js +34 -0
  209. package/dist/subscription.mjs +30 -0
  210. package/dist/transformTRPCResponse-11ac69cc.js +27 -0
  211. package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
  212. package/dist/transformer.d.ts +14 -0
  213. package/dist/transformer.d.ts.map +1 -1
  214. package/dist/types.d.ts +37 -10
  215. package/dist/types.d.ts.map +1 -1
  216. package/observable/index.d.ts +1 -0
  217. package/observable/index.js +1 -0
  218. package/package.json +53 -25
  219. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  220. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  221. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  222. package/rpc/index.js +1 -1
  223. package/shared/index.d.ts +1 -0
  224. package/shared/index.js +1 -0
  225. package/src/adapters/aws-lambda/index.ts +173 -0
  226. package/src/adapters/aws-lambda/utils.ts +92 -0
  227. package/src/adapters/express.ts +4 -4
  228. package/src/adapters/fastify/fastifyRequestHandler.ts +6 -8
  229. package/src/adapters/fastify/fastifyTRPCPlugin.ts +17 -9
  230. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  231. package/src/adapters/fetch/index.ts +2 -0
  232. package/src/adapters/fetch/types.ts +28 -0
  233. package/src/adapters/lambda/index.ts +18 -0
  234. package/src/adapters/next.ts +10 -8
  235. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  236. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  237. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
  238. package/src/adapters/node-http/types.ts +11 -9
  239. package/src/adapters/standalone.ts +12 -4
  240. package/src/adapters/ws.ts +150 -91
  241. package/src/assertNotBrowser.ts +1 -0
  242. package/src/core/index.ts +15 -0
  243. package/src/core/initTRPC.ts +94 -0
  244. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +406 -0
  245. package/src/core/internals/config.ts +43 -0
  246. package/src/core/internals/getParseFn.ts +47 -0
  247. package/src/core/internals/mergeRouters.ts +45 -0
  248. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  249. package/src/core/internals/omitPrototype.ts +9 -0
  250. package/src/core/internals/prefixObjectKeys.ts +9 -0
  251. package/src/core/internals/procedureBuilder.ts +430 -0
  252. package/src/core/internals/utils.ts +64 -0
  253. package/src/core/middleware.ts +96 -0
  254. package/src/core/parser.ts +45 -0
  255. package/src/core/procedure.ts +121 -0
  256. package/src/core/router.ts +351 -0
  257. package/src/core/types.ts +58 -0
  258. package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
  259. package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
  260. package/src/deprecated/internals/procedure.ts +415 -0
  261. package/src/deprecated/interop.ts +272 -0
  262. package/src/{router.ts → deprecated/router.ts} +221 -108
  263. package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
  264. package/src/error/formatter.ts +51 -0
  265. package/src/{internals/errors.ts → error/utils.ts} +24 -5
  266. package/src/http/index.ts +1 -1
  267. package/src/http/internals/getHTTPStatusCode.ts +3 -2
  268. package/src/http/internals/types.ts +11 -14
  269. package/src/http/resolveHTTPResponse.ts +34 -39
  270. package/src/http/{ResponseMeta.ts → types.ts} +0 -0
  271. package/src/index.ts +4 -7
  272. package/src/internals/transformTRPCResponse.ts +21 -16
  273. package/src/internals/types.ts +24 -0
  274. package/src/internals.ts +14 -0
  275. package/src/observable/index.ts +4 -0
  276. package/src/observable/internals/identity.ts +3 -0
  277. package/src/observable/internals/observableToPromise.ts +49 -0
  278. package/src/observable/internals/pipe.ts +23 -0
  279. package/src/observable/observable.test.ts +101 -0
  280. package/src/observable/observable.ts +78 -0
  281. package/src/observable/operators/index.ts +3 -0
  282. package/src/observable/operators/map.test.ts +92 -0
  283. package/src/observable/operators/map.ts +25 -0
  284. package/src/observable/operators/share.test.ts +60 -0
  285. package/src/observable/operators/share.ts +67 -0
  286. package/src/observable/operators/tap.ts +26 -0
  287. package/src/observable/types.ts +69 -0
  288. package/src/rpc/codes.ts +2 -1
  289. package/src/rpc/envelopes.ts +94 -68
  290. package/src/rpc/internals/invert.ts +27 -0
  291. package/src/shared/createProxy/index.ts +38 -0
  292. package/src/shared/index.ts +1 -0
  293. package/src/subscription.ts +7 -125
  294. package/src/transformer.ts +28 -0
  295. package/src/types.ts +45 -15
  296. package/subscription/index.d.ts +1 -0
  297. package/subscription/index.js +1 -0
  298. package/adapters/fastify/package.json +0 -4
  299. package/dist/TRPCError.d.ts +0 -19
  300. package/dist/TRPCError.d.ts.map +0 -1
  301. package/dist/adapters/express.ts.js +0 -1
  302. package/dist/adapters/next.ts.js +0 -1
  303. package/dist/adapters/node-http/index.ts.js +0 -1
  304. package/dist/adapters/standalone.ts.js +0 -1
  305. package/dist/adapters/ws.ts.js +0 -1
  306. package/dist/codes-7a3d4f65.mjs +0 -56
  307. package/dist/codes-7f46544e.js +0 -60
  308. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  309. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  310. package/dist/deprecated/createHttpServer.d.ts +0 -19
  311. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  312. package/dist/deprecated/requestHandler.d.ts +0 -15
  313. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  314. package/dist/http/ResponseMeta.d.ts.map +0 -1
  315. package/dist/index.ts.js +0 -1
  316. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  317. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  318. package/dist/internals/OnErrorFunction.d.ts +0 -11
  319. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  320. package/dist/internals/callProcedure.d.ts.map +0 -1
  321. package/dist/internals/errors.d.ts.map +0 -1
  322. package/dist/internals/middlewares.d.ts.map +0 -1
  323. package/dist/internals/procedure.d.ts +0 -74
  324. package/dist/internals/procedure.d.ts.map +0 -1
  325. package/dist/internals/wrapCallSafe.d.ts +0 -16
  326. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  327. package/dist/nodeHTTPRequestHandler-10e6d2f9.mjs +0 -394
  328. package/dist/nodeHTTPRequestHandler-d7c307d3.js +0 -399
  329. package/dist/router.d.ts +0 -176
  330. package/dist/router.d.ts.map +0 -1
  331. package/dist/rpc/index.ts.js +0 -1
  332. package/dist/subscription-5b7e1eba.js +0 -136
  333. package/dist/subscription-e1d42e69.mjs +0 -133
  334. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  335. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  336. package/dist/ws/index.d.ts +0 -7
  337. package/dist/ws/index.d.ts.map +0 -1
  338. package/dist/ws/index.js +0 -15
  339. package/dist/ws/index.mjs +0 -11
  340. package/dist/ws/index.ts.js +0 -1
  341. package/src/deprecated/LegacyRouter.ts +0 -3
  342. package/src/deprecated/createHttpServer.ts +0 -29
  343. package/src/deprecated/requestHandler.ts +0 -26
  344. package/src/internals/BaseHandlerOptions.ts +0 -13
  345. package/src/internals/OnErrorFunction.ts +0 -11
  346. package/src/internals/procedure.ts +0 -283
  347. package/src/internals/wrapCallSafe.ts +0 -19
  348. package/src/ws/index.ts +0 -8
  349. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  350. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  351. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  352. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  353. package/ws/dist/trpc-server-ws.esm.js +0 -11
  354. package/ws/index.d.ts +0 -1
  355. package/ws/index.js +0 -1
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var transformTRPCResponse = require('../../../dist/transformTRPCResponse-dcbf66c5.cjs.prod.js');
6
- var subscription = require('../../../dist/subscription-c2e0bfbc.cjs.prod.js');
5
+ var transformTRPCResponse = require('../../../dist/transformTRPCResponse-077b7539.cjs.prod.js');
6
+ var subscription = require('../../../dist/subscription-54d50ff1.cjs.prod.js');
7
7
  require('events');
8
8
 
9
9
  /* istanbul ignore next */
@@ -96,7 +96,7 @@ function applyWSSHandler(opts) {
96
96
  const {
97
97
  transformer
98
98
  } = router._def;
99
- wss.on('connection', (client, req) => {
99
+ wss.on('connection', async (client, req) => {
100
100
  const clientSubscriptions = new Map();
101
101
 
102
102
  function respond(untransformedJSON) {
@@ -263,7 +263,8 @@ function applyWSSHandler(opts) {
263
263
  try {
264
264
  const msgJSON = JSON.parse(message.toString());
265
265
  const msgs = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
266
- msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
266
+ const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
267
+ await Promise.all(promises);
267
268
  } catch (cause) {
268
269
  const error = new transformTRPCResponse.TRPCError({
269
270
  code: 'PARSE_ERROR',
@@ -280,6 +281,22 @@ function applyWSSHandler(opts) {
280
281
  })
281
282
  });
282
283
  }
284
+ }); // WebSocket errors should be handled, as otherwise unhandled exceptions will crash Node.js.
285
+ // This line was introduced after the following error brought down production systems:
286
+ // "RangeError: Invalid WebSocket frame: RSV2 and RSV3 must be clear"
287
+ // Here is the relevant discussion: https://github.com/websockets/ws/issues/1354#issuecomment-774616962
288
+
289
+ client.on('error', cause => {
290
+ var _opts$onError3;
291
+
292
+ (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
293
+ ctx,
294
+ error: transformTRPCResponse.getErrorFromUnknown(cause),
295
+ input: undefined,
296
+ path: undefined,
297
+ type: 'unknown',
298
+ req
299
+ });
283
300
  });
284
301
  client.once('close', () => {
285
302
  for (const sub of clientSubscriptions.values()) {
@@ -293,7 +310,7 @@ function applyWSSHandler(opts) {
293
310
  try {
294
311
  ctx = await ctxPromise;
295
312
  } catch (cause) {
296
- var _opts$onError3, _global$setImmediate;
313
+ var _opts$onError4, _global$setImmediate;
297
314
 
298
315
  const error = transformTRPCResponse.getErrorFromUnknown(cause);
299
316
  const json = {
@@ -306,7 +323,7 @@ function applyWSSHandler(opts) {
306
323
  ctx
307
324
  })
308
325
  };
309
- (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
326
+ (_opts$onError4 = opts.onError) === null || _opts$onError4 === void 0 ? void 0 : _opts$onError4.call(opts, {
310
327
  error,
311
328
  path: undefined,
312
329
  type: 'unknown',
@@ -322,7 +339,7 @@ function applyWSSHandler(opts) {
322
339
  }
323
340
  }
324
341
 
325
- createContextAsync();
342
+ await createContextAsync();
326
343
  });
327
344
  return {
328
345
  broadcastReconnectNotification: () => {
@@ -1,5 +1,5 @@
1
- import { T as TRPCError, t as transformTRPCResponse, c as callProcedure, g as getErrorFromUnknown } from '../../../dist/transformTRPCResponse-f73dc4a2.esm.js';
2
- import { S as Subscription } from '../../../dist/subscription-fbda2888.esm.js';
1
+ import { T as TRPCError, a as getErrorFromUnknown, t as transformTRPCResponse, c as callProcedure } from '../../../dist/transformTRPCResponse-56464e52.esm.js';
2
+ import { S as Subscription } from '../../../dist/subscription-a5c83df4.esm.js';
3
3
  import 'events';
4
4
 
5
5
  /* istanbul ignore next */
@@ -92,7 +92,7 @@ function applyWSSHandler(opts) {
92
92
  const {
93
93
  transformer
94
94
  } = router._def;
95
- wss.on('connection', (client, req) => {
95
+ wss.on('connection', async (client, req) => {
96
96
  const clientSubscriptions = new Map();
97
97
 
98
98
  function respond(untransformedJSON) {
@@ -259,7 +259,8 @@ function applyWSSHandler(opts) {
259
259
  try {
260
260
  const msgJSON = JSON.parse(message.toString());
261
261
  const msgs = Array.isArray(msgJSON) ? msgJSON : [msgJSON];
262
- msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
262
+ const promises = msgs.map(raw => parseMessage(raw, transformer)).map(handleRequest);
263
+ await Promise.all(promises);
263
264
  } catch (cause) {
264
265
  const error = new TRPCError({
265
266
  code: 'PARSE_ERROR',
@@ -276,6 +277,22 @@ function applyWSSHandler(opts) {
276
277
  })
277
278
  });
278
279
  }
280
+ }); // WebSocket errors should be handled, as otherwise unhandled exceptions will crash Node.js.
281
+ // This line was introduced after the following error brought down production systems:
282
+ // "RangeError: Invalid WebSocket frame: RSV2 and RSV3 must be clear"
283
+ // Here is the relevant discussion: https://github.com/websockets/ws/issues/1354#issuecomment-774616962
284
+
285
+ client.on('error', cause => {
286
+ var _opts$onError3;
287
+
288
+ (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
289
+ ctx,
290
+ error: getErrorFromUnknown(cause),
291
+ input: undefined,
292
+ path: undefined,
293
+ type: 'unknown',
294
+ req
295
+ });
279
296
  });
280
297
  client.once('close', () => {
281
298
  for (const sub of clientSubscriptions.values()) {
@@ -289,7 +306,7 @@ function applyWSSHandler(opts) {
289
306
  try {
290
307
  ctx = await ctxPromise;
291
308
  } catch (cause) {
292
- var _opts$onError3, _global$setImmediate;
309
+ var _opts$onError4, _global$setImmediate;
293
310
 
294
311
  const error = getErrorFromUnknown(cause);
295
312
  const json = {
@@ -302,7 +319,7 @@ function applyWSSHandler(opts) {
302
319
  ctx
303
320
  })
304
321
  };
305
- (_opts$onError3 = opts.onError) === null || _opts$onError3 === void 0 ? void 0 : _opts$onError3.call(opts, {
322
+ (_opts$onError4 = opts.onError) === null || _opts$onError4 === void 0 ? void 0 : _opts$onError4.call(opts, {
306
323
  error,
307
324
  path: undefined,
308
325
  type: 'unknown',
@@ -318,7 +335,7 @@ function applyWSSHandler(opts) {
318
335
  }
319
336
  }
320
337
 
321
- createContextAsync();
338
+ await createContextAsync();
322
339
  });
323
340
  return {
324
341
  broadcastReconnectNotification: () => {
@@ -0,0 +1,61 @@
1
+ 'use strict';
2
+
3
+ function getMessageFromUnkownError(err, fallback) {
4
+ if (typeof err === 'string') {
5
+ return err;
6
+ }
7
+ if (err instanceof Error && typeof err.message === 'string') {
8
+ return err.message;
9
+ }
10
+ return fallback;
11
+ }
12
+ function getErrorFromUnknown(cause) {
13
+ // this should ideally be an `instanceof TRPCError` but for some reason that isn't working
14
+ // ref https://github.com/trpc/trpc/issues/331
15
+ if (cause instanceof Error && cause.name === 'TRPCError') {
16
+ return cause;
17
+ }
18
+ let errorCause = undefined;
19
+ let stack = undefined;
20
+ let message = undefined;
21
+ if (cause instanceof Error) {
22
+ errorCause = cause;
23
+ // take stack trace from cause
24
+ stack = cause.stack;
25
+ message = cause.message;
26
+ }
27
+ const err = new TRPCError({
28
+ code: 'INTERNAL_SERVER_ERROR',
29
+ cause: errorCause,
30
+ message
31
+ });
32
+ err.stack = stack;
33
+ return err;
34
+ }
35
+ function getCauseFromUnknown(cause) {
36
+ if (cause instanceof Error) {
37
+ return cause;
38
+ }
39
+ return undefined;
40
+ }
41
+
42
+ class TRPCError extends Error {
43
+ constructor(opts){
44
+ const cause = opts.cause;
45
+ const code = opts.code;
46
+ const message = opts.message ?? getMessageFromUnkownError(cause, code);
47
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
48
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
49
+ super(message, {
50
+ cause
51
+ });
52
+ this.code = code;
53
+ this.cause = cause;
54
+ this.name = 'TRPCError';
55
+ Object.setPrototypeOf(this, new.target.prototype);
56
+ }
57
+ }
58
+
59
+ exports.TRPCError = TRPCError;
60
+ exports.getCauseFromUnknown = getCauseFromUnknown;
61
+ exports.getErrorFromUnknown = getErrorFromUnknown;
@@ -0,0 +1,57 @@
1
+ function getMessageFromUnkownError(err, fallback) {
2
+ if (typeof err === 'string') {
3
+ return err;
4
+ }
5
+ if (err instanceof Error && typeof err.message === 'string') {
6
+ return err.message;
7
+ }
8
+ return fallback;
9
+ }
10
+ function getErrorFromUnknown(cause) {
11
+ // this should ideally be an `instanceof TRPCError` but for some reason that isn't working
12
+ // ref https://github.com/trpc/trpc/issues/331
13
+ if (cause instanceof Error && cause.name === 'TRPCError') {
14
+ return cause;
15
+ }
16
+ let errorCause = undefined;
17
+ let stack = undefined;
18
+ let message = undefined;
19
+ if (cause instanceof Error) {
20
+ errorCause = cause;
21
+ // take stack trace from cause
22
+ stack = cause.stack;
23
+ message = cause.message;
24
+ }
25
+ const err = new TRPCError({
26
+ code: 'INTERNAL_SERVER_ERROR',
27
+ cause: errorCause,
28
+ message
29
+ });
30
+ err.stack = stack;
31
+ return err;
32
+ }
33
+ function getCauseFromUnknown(cause) {
34
+ if (cause instanceof Error) {
35
+ return cause;
36
+ }
37
+ return undefined;
38
+ }
39
+
40
+ class TRPCError extends Error {
41
+ constructor(opts){
42
+ const cause = opts.cause;
43
+ const code = opts.code;
44
+ const message = opts.message ?? getMessageFromUnkownError(cause, code);
45
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
46
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
47
+ super(message, {
48
+ cause
49
+ });
50
+ this.code = code;
51
+ this.cause = cause;
52
+ this.name = 'TRPCError';
53
+ Object.setPrototypeOf(this, new.target.prototype);
54
+ }
55
+ }
56
+
57
+ export { TRPCError as T, getCauseFromUnknown as a, getErrorFromUnknown as g };
@@ -0,0 +1,14 @@
1
+ import type { Context as APIGWContext, APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2 } from 'aws-lambda';
2
+ import { AnyRouter } from '../../core';
3
+ import { APIGatewayEvent, AWSLambdaOptions } from './utils';
4
+ export type { CreateAWSLambdaContextOptions, AWSLambdaOptions } from './utils';
5
+ /** Will check the createContext of the TRouter and get the parameter of event.
6
+ * @internal
7
+ **/
8
+ declare type inferAPIGWEvent<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> = AWSLambdaOptions<TRouter, TEvent>['createContext'] extends NonNullable<AWSLambdaOptions<TRouter, TEvent>['createContext']> ? Parameters<AWSLambdaOptions<TRouter, TEvent>['createContext']>[0]['event'] : APIGatewayEvent;
9
+ /** 1:1 mapping of v1 or v2 input events, deduces which is which.
10
+ * @internal
11
+ **/
12
+ declare type inferAPIGWReturn<T> = T extends APIGatewayProxyEvent ? APIGatewayProxyResult : T extends APIGatewayProxyEventV2 ? APIGatewayProxyStructuredResultV2 : never;
13
+ export declare function awsLambdaRequestHandler<TRouter extends AnyRouter, TEvent extends inferAPIGWEvent<TRouter, TEvent>, TResult extends inferAPIGWReturn<TEvent>>(opts: AWSLambdaOptions<TRouter, TEvent>): (event: TEvent, context: APIGWContext) => Promise<TResult>;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/server/src/adapters/aws-lambda/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,IAAI,YAAY,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EAClC,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,SAAS,EAAsB,MAAM,YAAY,CAAC;AAG3D,OAAO,EACL,eAAe,EAEf,gBAAgB,EAIjB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAkG/E;;IAEI;AACJ,aAAK,eAAe,CAClB,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAC5B,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,SAAS,WAAW,CACxE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,CACnD,GACG,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAC1E,eAAe,CAAC;AAEpB;;IAEI;AACJ,aAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,oBAAoB,GACrD,qBAAqB,GACrB,CAAC,SAAS,sBAAsB,GAChC,iCAAiC,GACjC,KAAK,CAAC;AACV,wBAAgB,uBAAuB,CACrC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAC/C,OAAO,SAAS,gBAAgB,CAAC,MAAM,CAAC,EAExC,IAAI,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,GACtC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CA4B5D"}
@@ -0,0 +1,153 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../../router-3ee4babe.js');
6
+ var TRPCError = require('../../TRPCError-bcb38a84.js');
7
+ var resolveHTTPResponse = require('../../resolveHTTPResponse-29d4b64a.js');
8
+ require('../../codes-1c24d919.js');
9
+ require('../../index-9d687d33.js');
10
+ require('../../transformTRPCResponse-11ac69cc.js');
11
+
12
+ function isPayloadV1(event) {
13
+ return determinePayloadFormat(event) == '1.0';
14
+ }
15
+ function isPayloadV2(event) {
16
+ return determinePayloadFormat(event) == '2.0';
17
+ }
18
+ function determinePayloadFormat(event) {
19
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
20
+ // According to AWS support, version is is extracted from the version property in the event.
21
+ // If there is no version property, then the version is implied as 1.0
22
+ const unknownEvent = event;
23
+ if (typeof unknownEvent.version === 'undefined') {
24
+ return '1.0';
25
+ } else {
26
+ if ([
27
+ '1.0',
28
+ '2.0'
29
+ ].includes(unknownEvent.version)) {
30
+ return unknownEvent.version;
31
+ } else {
32
+ return 'custom';
33
+ }
34
+ }
35
+ }
36
+ const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE = 'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' + 'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
37
+
38
+ function lambdaEventToHTTPRequest(event) {
39
+ const query = new URLSearchParams();
40
+ for (const [key, value] of Object.entries(event.queryStringParameters ?? {})){
41
+ if (typeof value !== 'undefined') {
42
+ query.append(key, value);
43
+ }
44
+ }
45
+ return {
46
+ method: getHTTPMethod(event),
47
+ query: query,
48
+ headers: event.headers,
49
+ body: event.body
50
+ };
51
+ }
52
+ function getHTTPMethod(event) {
53
+ if (isPayloadV1(event)) {
54
+ return event.httpMethod;
55
+ }
56
+ if (isPayloadV2(event)) {
57
+ return event.requestContext.http.method;
58
+ }
59
+ throw new TRPCError.TRPCError({
60
+ code: 'INTERNAL_SERVER_ERROR',
61
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
62
+ });
63
+ }
64
+ function getPath(event) {
65
+ if (isPayloadV1(event)) {
66
+ const matches = event.resource.matchAll(/\{(.*?)\}/g);
67
+ for (const match of matches){
68
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
69
+ const group = match[1];
70
+ if (group.includes('+') && event.pathParameters) {
71
+ return event.pathParameters[group.replace('+', '')] || '';
72
+ }
73
+ }
74
+ return event.path.slice(1);
75
+ }
76
+ if (isPayloadV2(event)) {
77
+ const matches1 = event.routeKey.matchAll(/\{(.*?)\}/g);
78
+ for (const match1 of matches1){
79
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
80
+ const group1 = match1[1];
81
+ if (group1.includes('+') && event.pathParameters) {
82
+ return event.pathParameters[group1.replace('+', '')] || '';
83
+ }
84
+ }
85
+ return event.rawPath.slice(1);
86
+ }
87
+ throw new TRPCError.TRPCError({
88
+ code: 'INTERNAL_SERVER_ERROR',
89
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
90
+ });
91
+ }
92
+ function transformHeaders(headers) {
93
+ const obj = {};
94
+ for (const [key, value] of Object.entries(headers)){
95
+ if (typeof value === 'undefined') {
96
+ continue;
97
+ }
98
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
99
+ }
100
+ return obj;
101
+ }
102
+ function tRPCOutputToAPIGatewayOutput(event, response) {
103
+ if (isPayloadV1(event)) {
104
+ const resp = {
105
+ statusCode: response.status,
106
+ body: response.body ?? '',
107
+ headers: transformHeaders(response.headers ?? {})
108
+ };
109
+ return resp;
110
+ } else if (isPayloadV2(event)) {
111
+ const resp1 = {
112
+ statusCode: response.status,
113
+ body: response.body ?? undefined,
114
+ headers: transformHeaders(response.headers ?? {})
115
+ };
116
+ return resp1;
117
+ } else {
118
+ throw new TRPCError.TRPCError({
119
+ code: 'INTERNAL_SERVER_ERROR',
120
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
121
+ });
122
+ }
123
+ }
124
+ function awsLambdaRequestHandler(opts) {
125
+ return async (event, context)=>{
126
+ const req = lambdaEventToHTTPRequest(event);
127
+ const path = getPath(event);
128
+ const createContext = async function _createContext() {
129
+ return await opts.createContext?.({
130
+ event,
131
+ context
132
+ });
133
+ };
134
+ const response = await resolveHTTPResponse.resolveHTTPResponse({
135
+ router: opts.router,
136
+ batching: opts.batching,
137
+ responseMeta: opts?.responseMeta,
138
+ createContext,
139
+ req,
140
+ path,
141
+ error: null,
142
+ onError (o) {
143
+ opts?.onError?.({
144
+ ...o,
145
+ req: event
146
+ });
147
+ }
148
+ });
149
+ return tRPCOutputToAPIGatewayOutput(event, response);
150
+ };
151
+ }
152
+
153
+ exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
@@ -0,0 +1,149 @@
1
+ import '../../router-a2a75de3.mjs';
2
+ import { T as TRPCError } from '../../TRPCError-e6e632a5.mjs';
3
+ import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-11d52bd0.mjs';
4
+ import '../../codes-aaa7d554.mjs';
5
+ import '../../index-47817162.mjs';
6
+ import '../../transformTRPCResponse-c8138d5f.mjs';
7
+
8
+ function isPayloadV1(event) {
9
+ return determinePayloadFormat(event) == '1.0';
10
+ }
11
+ function isPayloadV2(event) {
12
+ return determinePayloadFormat(event) == '2.0';
13
+ }
14
+ function determinePayloadFormat(event) {
15
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
16
+ // According to AWS support, version is is extracted from the version property in the event.
17
+ // If there is no version property, then the version is implied as 1.0
18
+ const unknownEvent = event;
19
+ if (typeof unknownEvent.version === 'undefined') {
20
+ return '1.0';
21
+ } else {
22
+ if ([
23
+ '1.0',
24
+ '2.0'
25
+ ].includes(unknownEvent.version)) {
26
+ return unknownEvent.version;
27
+ } else {
28
+ return 'custom';
29
+ }
30
+ }
31
+ }
32
+ const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE = 'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' + 'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
33
+
34
+ function lambdaEventToHTTPRequest(event) {
35
+ const query = new URLSearchParams();
36
+ for (const [key, value] of Object.entries(event.queryStringParameters ?? {})){
37
+ if (typeof value !== 'undefined') {
38
+ query.append(key, value);
39
+ }
40
+ }
41
+ return {
42
+ method: getHTTPMethod(event),
43
+ query: query,
44
+ headers: event.headers,
45
+ body: event.body
46
+ };
47
+ }
48
+ function getHTTPMethod(event) {
49
+ if (isPayloadV1(event)) {
50
+ return event.httpMethod;
51
+ }
52
+ if (isPayloadV2(event)) {
53
+ return event.requestContext.http.method;
54
+ }
55
+ throw new TRPCError({
56
+ code: 'INTERNAL_SERVER_ERROR',
57
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
58
+ });
59
+ }
60
+ function getPath(event) {
61
+ if (isPayloadV1(event)) {
62
+ const matches = event.resource.matchAll(/\{(.*?)\}/g);
63
+ for (const match of matches){
64
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
65
+ const group = match[1];
66
+ if (group.includes('+') && event.pathParameters) {
67
+ return event.pathParameters[group.replace('+', '')] || '';
68
+ }
69
+ }
70
+ return event.path.slice(1);
71
+ }
72
+ if (isPayloadV2(event)) {
73
+ const matches1 = event.routeKey.matchAll(/\{(.*?)\}/g);
74
+ for (const match1 of matches1){
75
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
76
+ const group1 = match1[1];
77
+ if (group1.includes('+') && event.pathParameters) {
78
+ return event.pathParameters[group1.replace('+', '')] || '';
79
+ }
80
+ }
81
+ return event.rawPath.slice(1);
82
+ }
83
+ throw new TRPCError({
84
+ code: 'INTERNAL_SERVER_ERROR',
85
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
86
+ });
87
+ }
88
+ function transformHeaders(headers) {
89
+ const obj = {};
90
+ for (const [key, value] of Object.entries(headers)){
91
+ if (typeof value === 'undefined') {
92
+ continue;
93
+ }
94
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
95
+ }
96
+ return obj;
97
+ }
98
+ function tRPCOutputToAPIGatewayOutput(event, response) {
99
+ if (isPayloadV1(event)) {
100
+ const resp = {
101
+ statusCode: response.status,
102
+ body: response.body ?? '',
103
+ headers: transformHeaders(response.headers ?? {})
104
+ };
105
+ return resp;
106
+ } else if (isPayloadV2(event)) {
107
+ const resp1 = {
108
+ statusCode: response.status,
109
+ body: response.body ?? undefined,
110
+ headers: transformHeaders(response.headers ?? {})
111
+ };
112
+ return resp1;
113
+ } else {
114
+ throw new TRPCError({
115
+ code: 'INTERNAL_SERVER_ERROR',
116
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
117
+ });
118
+ }
119
+ }
120
+ function awsLambdaRequestHandler(opts) {
121
+ return async (event, context)=>{
122
+ const req = lambdaEventToHTTPRequest(event);
123
+ const path = getPath(event);
124
+ const createContext = async function _createContext() {
125
+ return await opts.createContext?.({
126
+ event,
127
+ context
128
+ });
129
+ };
130
+ const response = await resolveHTTPResponse({
131
+ router: opts.router,
132
+ batching: opts.batching,
133
+ responseMeta: opts?.responseMeta,
134
+ createContext,
135
+ req,
136
+ path,
137
+ error: null,
138
+ onError (o) {
139
+ opts?.onError?.({
140
+ ...o,
141
+ req: event
142
+ });
143
+ }
144
+ });
145
+ return tRPCOutputToAPIGatewayOutput(event, response);
146
+ };
147
+ }
148
+
149
+ export { awsLambdaRequestHandler };
@@ -0,0 +1,35 @@
1
+ import type { Context as APIGWContext, APIGatewayProxyEvent, APIGatewayProxyEventV2, APIGatewayProxyResult, APIGatewayProxyStructuredResultV2 } from 'aws-lambda';
2
+ import type { AnyRouter, inferRouterContext } from '../../core';
3
+ import type { ResponseMetaFn } from '../../http/internals/types';
4
+ import { OnErrorFunction } from '../../internals/types';
5
+ export declare type APIGatewayEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
6
+ export declare type APIGatewayResult = APIGatewayProxyResult | APIGatewayProxyStructuredResultV2;
7
+ export declare type CreateAWSLambdaContextOptions<T extends APIGatewayEvent> = {
8
+ event: T;
9
+ context: APIGWContext;
10
+ };
11
+ export declare type AWSLambdaCreateContextFn<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> = ({ event, context, }: CreateAWSLambdaContextOptions<TEvent>) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
12
+ export declare type AWSLambdaOptions<TRouter extends AnyRouter, TEvent extends APIGatewayEvent> = {
13
+ router: TRouter;
14
+ batching?: {
15
+ enabled: boolean;
16
+ };
17
+ onError?: OnErrorFunction<TRouter, TEvent>;
18
+ responseMeta?: ResponseMetaFn<TRouter>;
19
+ } & ({
20
+ /**
21
+ * @link https://trpc.io/docs/context
22
+ **/
23
+ createContext: AWSLambdaCreateContextFn<TRouter, TEvent>;
24
+ } | {
25
+ /**
26
+ * @link https://trpc.io/docs/context
27
+ **/
28
+ createContext?: AWSLambdaCreateContextFn<TRouter, TEvent>;
29
+ });
30
+ export declare function isPayloadV1(event: APIGatewayEvent): event is APIGatewayProxyEvent;
31
+ export declare function isPayloadV2(event: APIGatewayEvent): event is APIGatewayProxyEventV2;
32
+ export declare type DefinedAPIGatewayPayloadFormats = '1.0' | '2.0';
33
+ export declare type APIGatewayPayloadFormatVersion = DefinedAPIGatewayPayloadFormats | 'custom';
34
+ export declare const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE: string;
35
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../packages/server/src/adapters/aws-lambda/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,IAAI,YAAY,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,iCAAiC,EAClC,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,oBAAY,eAAe,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAC5E,oBAAY,gBAAgB,GACxB,qBAAqB,GACrB,iCAAiC,CAAC;AAEtC,oBAAY,6BAA6B,CAAC,CAAC,SAAS,eAAe,IAAI;IACrE,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,YAAY,CAAC;CACvB,CAAC;AACF,oBAAY,wBAAwB,CAClC,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAC5B,CAAC,EACH,KAAK,EACL,OAAO,GACR,EAAE,6BAA6B,CAAC,MAAM,CAAC,KACpC,kBAAkB,CAAC,OAAO,CAAC,GAC3B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;AAEzC,oBAAY,gBAAgB,CAC1B,OAAO,SAAS,SAAS,EACzB,MAAM,SAAS,eAAe,IAE5B;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC3C,YAAY,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACxC,GAAG,CACA;IACE;;QAEI;IACJ,aAAa,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC1D,GACD;IACE;;QAEI;IACJ,aAAa,CAAC,EAAE,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAC3D,CACJ,CAAC;AAEN,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,oBAAoB,CAE/B;AACD,wBAAgB,WAAW,CACzB,KAAK,EAAE,eAAe,GACrB,KAAK,IAAI,sBAAsB,CAEjC;AAmBD,oBAAY,+BAA+B,GAAG,KAAK,GAAG,KAAK,CAAC;AAC5D,oBAAY,8BAA8B,GACtC,+BAA+B,GAC/B,QAAQ,CAAC;AAEb,eAAO,MAAM,4CAA4C,QAEiD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type * as express from 'express';
2
- import { AnyRouter } from '../router';
2
+ import { AnyRouter } from '../core';
3
3
  import { NodeHTTPCreateContextFnOptions, NodeHTTPHandlerOptions } from './node-http';
4
4
  export declare type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<express.Request, express.Response>;
5
5
  export declare function createExpressMiddleware<TRouter extends AnyRouter>(opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>): express.Handler;
@@ -1 +1 @@
1
- {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/adapters/express.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,oBAAY,2BAA2B,GAAG,8BAA8B,CACtE,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,SAAS,EAC/D,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvE,OAAO,CAAC,OAAO,CAWjB"}
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../../../packages/server/src/adapters/express.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EACL,8BAA8B,EAC9B,sBAAsB,EACvB,MAAM,aAAa,CAAC;AAErB,oBAAY,2BAA2B,GAAG,8BAA8B,CACtE,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,QAAQ,CACjB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,SAAS,SAAS,EAC/D,IAAI,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACvE,OAAO,CAAC,OAAO,CAWjB"}