@trpc/server 10.0.0-alpha.4 → 10.0.0-alpha.42

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 (345) 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 -6
  10. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -6
  11. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -6
  12. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +1 -0
  13. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +109 -0
  14. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +7 -0
  15. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +109 -0
  16. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +104 -0
  17. package/adapters/fastify/index.d.ts +1 -0
  18. package/adapters/fastify/index.js +1 -0
  19. package/adapters/fetch/index.d.ts +1 -0
  20. package/adapters/fetch/index.js +1 -0
  21. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  22. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  23. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  24. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  25. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  26. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -3
  27. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -3
  28. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -3
  29. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -3
  30. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -3
  31. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -3
  32. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -4
  33. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -4
  34. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -4
  35. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +6 -5
  36. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +6 -5
  37. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +6 -5
  38. package/dist/TRPCError-9050a68d.js +69 -0
  39. package/dist/TRPCError-97212592.mjs +65 -0
  40. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  41. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  42. package/dist/adapters/aws-lambda/index.js +190 -0
  43. package/dist/adapters/aws-lambda/index.mjs +186 -0
  44. package/dist/{ws → adapters/aws-lambda}/index.ts.js +0 -0
  45. package/dist/adapters/aws-lambda/utils.d.ts +35 -0
  46. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  47. package/dist/adapters/express.d.ts +1 -1
  48. package/dist/adapters/express.d.ts.map +1 -1
  49. package/dist/adapters/express.js +8 -7
  50. package/dist/adapters/express.mjs +8 -7
  51. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
  52. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
  53. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
  54. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
  55. package/dist/adapters/fastify/index.d.ts +3 -0
  56. package/dist/adapters/fastify/index.d.ts.map +1 -0
  57. package/dist/adapters/fastify/index.js +108 -0
  58. package/dist/adapters/fastify/index.mjs +103 -0
  59. package/dist/adapters/fastify/index.ts.js +1 -0
  60. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  61. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  62. package/dist/adapters/fetch/index.d.ts +3 -0
  63. package/dist/adapters/fetch/index.d.ts.map +1 -0
  64. package/dist/adapters/fetch/index.js +69 -0
  65. package/dist/adapters/fetch/index.mjs +65 -0
  66. package/dist/adapters/fetch/index.ts.js +1 -0
  67. package/dist/adapters/fetch/types.d.ts +21 -0
  68. package/dist/adapters/fetch/types.d.ts.map +1 -0
  69. package/dist/adapters/lambda/index.d.ts +12 -0
  70. package/dist/adapters/lambda/index.d.ts.map +1 -0
  71. package/dist/adapters/next.d.ts +2 -2
  72. package/dist/adapters/next.d.ts.map +1 -1
  73. package/dist/adapters/next.js +9 -9
  74. package/dist/adapters/next.mjs +8 -8
  75. package/dist/adapters/node-http/index.js +5 -4
  76. package/dist/adapters/node-http/index.mjs +5 -4
  77. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  78. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  79. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  80. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  81. package/dist/adapters/node-http/types.d.ts +11 -9
  82. package/dist/adapters/node-http/types.d.ts.map +1 -1
  83. package/dist/adapters/standalone.d.ts +2 -2
  84. package/dist/adapters/standalone.d.ts.map +1 -1
  85. package/dist/adapters/standalone.js +11 -7
  86. package/dist/adapters/standalone.mjs +11 -6
  87. package/dist/adapters/ws.d.ts +8 -6
  88. package/dist/adapters/ws.d.ts.map +1 -1
  89. package/dist/adapters/ws.js +123 -90
  90. package/dist/adapters/ws.mjs +118 -85
  91. package/dist/assertNotBrowser.d.ts.map +1 -1
  92. package/dist/core/index.d.ts +6 -0
  93. package/dist/core/index.d.ts.map +1 -0
  94. package/dist/core/initTRPC.d.ts +87 -0
  95. package/dist/core/initTRPC.d.ts.map +1 -0
  96. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +282 -0
  97. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  98. package/dist/core/internals/config.d.ts +36 -0
  99. package/dist/core/internals/config.d.ts.map +1 -0
  100. package/dist/core/internals/getParseFn.d.ts +9 -0
  101. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  102. package/dist/core/internals/mergeRouters.d.ts +3 -0
  103. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  104. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  105. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  106. package/dist/core/internals/omitPrototype.d.ts +6 -0
  107. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  108. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  109. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  110. package/dist/core/internals/procedureBuilder.d.ts +122 -0
  111. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  112. package/dist/core/internals/utils.d.ts +44 -0
  113. package/dist/core/internals/utils.d.ts.map +1 -0
  114. package/dist/core/middleware.d.ts +87 -0
  115. package/dist/core/middleware.d.ts.map +1 -0
  116. package/dist/core/parser.d.ts +25 -0
  117. package/dist/core/parser.d.ts.map +1 -0
  118. package/dist/core/procedure.d.ts +88 -0
  119. package/dist/core/procedure.d.ts.map +1 -0
  120. package/dist/core/router.d.ts +128 -0
  121. package/dist/core/router.d.ts.map +1 -0
  122. package/dist/core/types.d.ts +19 -0
  123. package/dist/core/types.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  125. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  126. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  127. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  128. package/dist/deprecated/internals/procedure.d.ts +96 -0
  129. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  130. package/dist/deprecated/interop.d.ts +34 -0
  131. package/dist/deprecated/interop.d.ts.map +1 -0
  132. package/dist/deprecated/router.d.ts +194 -0
  133. package/dist/deprecated/router.d.ts.map +1 -0
  134. package/dist/{codes-7a3d4f65.mjs → envelopes-af8c2959.mjs} +30 -1
  135. package/dist/{codes-7f46544e.js → envelopes-b6dd0367.js} +29 -1
  136. package/dist/error/TRPCError.d.ts +11 -0
  137. package/dist/error/TRPCError.d.ts.map +1 -0
  138. package/dist/error/formatter.d.ts +33 -0
  139. package/dist/error/formatter.d.ts.map +1 -0
  140. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  141. package/dist/error/utils.d.ts.map +1 -0
  142. package/dist/http/index.d.ts +1 -1
  143. package/dist/http/index.d.ts.map +1 -1
  144. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  145. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  146. package/dist/http/internals/types.d.ts +11 -8
  147. package/dist/http/internals/types.d.ts.map +1 -1
  148. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  149. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  150. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  151. package/dist/http/types.d.ts.map +1 -0
  152. package/dist/index-1a25ccbd.js +33 -0
  153. package/dist/index-a3bd54c7.mjs +31 -0
  154. package/dist/index.d.ts +4 -5
  155. package/dist/index.d.ts.map +1 -1
  156. package/dist/index.js +95 -496
  157. package/dist/index.mjs +88 -488
  158. package/dist/internals/transformTRPCResponse.d.ts +5 -3
  159. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  160. package/dist/internals/types.d.ts +23 -0
  161. package/dist/internals/types.d.ts.map +1 -0
  162. package/dist/internals.d.ts +11 -0
  163. package/dist/internals.d.ts.map +1 -0
  164. package/dist/nodeHTTPRequestHandler-65cf2218.mjs +105 -0
  165. package/dist/nodeHTTPRequestHandler-6b7c8622.js +107 -0
  166. package/dist/observable/index.d.ts +5 -0
  167. package/dist/observable/index.d.ts.map +1 -0
  168. package/dist/observable/index.js +204 -0
  169. package/dist/observable/index.mjs +195 -0
  170. package/dist/observable/index.ts.js +1 -0
  171. package/dist/observable/internals/identity.d.ts +2 -0
  172. package/dist/observable/internals/identity.d.ts.map +1 -0
  173. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  174. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  175. package/dist/observable/internals/pipe.d.ts +4 -0
  176. package/dist/observable/internals/pipe.d.ts.map +1 -0
  177. package/dist/observable/observable.d.ts +5 -0
  178. package/dist/observable/observable.d.ts.map +1 -0
  179. package/dist/observable/operators/index.d.ts +4 -0
  180. package/dist/observable/operators/index.d.ts.map +1 -0
  181. package/dist/observable/operators/map.d.ts +3 -0
  182. package/dist/observable/operators/map.d.ts.map +1 -0
  183. package/dist/observable/operators/share.d.ts +6 -0
  184. package/dist/observable/operators/share.d.ts.map +1 -0
  185. package/dist/observable/operators/tap.d.ts +3 -0
  186. package/dist/observable/operators/tap.d.ts.map +1 -0
  187. package/dist/observable/types.d.ts +29 -0
  188. package/dist/observable/types.d.ts.map +1 -0
  189. package/dist/observable-341a0506.js +109 -0
  190. package/dist/observable-cfedfa30.mjs +106 -0
  191. package/dist/{nodeHTTPRequestHandler-10e6d2f9.mjs → resolveHTTPResponse-95634936.mjs} +32 -133
  192. package/dist/{nodeHTTPRequestHandler-d7c307d3.js → resolveHTTPResponse-fcc8f644.js} +37 -139
  193. package/dist/router-6665b0ee.mjs +1093 -0
  194. package/dist/router-9d12560f.js +1103 -0
  195. package/dist/rpc/codes.d.ts +2 -0
  196. package/dist/rpc/codes.d.ts.map +1 -1
  197. package/dist/rpc/envelopes.d.ts +62 -40
  198. package/dist/rpc/envelopes.d.ts.map +1 -1
  199. package/dist/rpc/index.js +7 -3
  200. package/dist/rpc/index.mjs +1 -1
  201. package/dist/rpc/internals/invert.d.ts +18 -0
  202. package/dist/rpc/internals/invert.d.ts.map +1 -0
  203. package/dist/shared/createProxy/index.d.ts +12 -0
  204. package/dist/shared/createProxy/index.d.ts.map +1 -0
  205. package/dist/shared/index.d.ts +2 -0
  206. package/dist/shared/index.d.ts.map +1 -0
  207. package/dist/shared/index.js +9 -0
  208. package/dist/shared/index.mjs +1 -0
  209. package/dist/shared/index.ts.js +1 -0
  210. package/dist/subscription.d.ts +3 -52
  211. package/dist/subscription.d.ts.map +1 -1
  212. package/dist/subscription.js +44 -0
  213. package/dist/subscription.mjs +40 -0
  214. package/dist/subscription.ts.js +1 -0
  215. package/dist/transformTRPCResponse-0c261655.js +29 -0
  216. package/dist/transformTRPCResponse-747b9a68.mjs +27 -0
  217. package/dist/transformer.d.ts +14 -0
  218. package/dist/transformer.d.ts.map +1 -1
  219. package/dist/types.d.ts +35 -8
  220. package/dist/types.d.ts.map +1 -1
  221. package/observable/index.d.ts +1 -0
  222. package/observable/index.js +1 -0
  223. package/package.json +57 -16
  224. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  225. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  226. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  227. package/shared/index.d.ts +1 -0
  228. package/shared/index.js +1 -0
  229. package/src/adapters/aws-lambda/index.ts +173 -0
  230. package/src/adapters/aws-lambda/utils.ts +92 -0
  231. package/src/adapters/express.ts +4 -4
  232. package/src/adapters/fastify/fastifyRequestHandler.ts +77 -0
  233. package/src/adapters/fastify/fastifyTRPCPlugin.ts +56 -0
  234. package/src/adapters/fastify/index.ts +2 -0
  235. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  236. package/src/adapters/fetch/index.ts +2 -0
  237. package/src/adapters/fetch/types.ts +28 -0
  238. package/src/adapters/lambda/index.ts +18 -0
  239. package/src/adapters/next.ts +10 -8
  240. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  241. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  242. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
  243. package/src/adapters/node-http/types.ts +11 -9
  244. package/src/adapters/standalone.ts +12 -4
  245. package/src/adapters/ws.ts +135 -91
  246. package/src/assertNotBrowser.ts +1 -0
  247. package/src/core/index.ts +11 -0
  248. package/src/core/initTRPC.ts +95 -0
  249. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +386 -0
  250. package/src/core/internals/config.ts +43 -0
  251. package/src/core/internals/getParseFn.ts +47 -0
  252. package/src/core/internals/mergeRouters.ts +45 -0
  253. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  254. package/src/core/internals/omitPrototype.ts +9 -0
  255. package/src/core/internals/prefixObjectKeys.ts +9 -0
  256. package/src/core/internals/procedureBuilder.ts +398 -0
  257. package/src/core/internals/utils.ts +64 -0
  258. package/src/core/middleware.ts +96 -0
  259. package/src/core/parser.ts +45 -0
  260. package/src/core/procedure.ts +120 -0
  261. package/src/core/router.ts +366 -0
  262. package/src/core/types.ts +58 -0
  263. package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
  264. package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
  265. package/src/deprecated/internals/procedure.ts +415 -0
  266. package/src/deprecated/interop.ts +229 -0
  267. package/src/{router.ts → deprecated/router.ts} +219 -104
  268. package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
  269. package/src/error/formatter.ts +51 -0
  270. package/src/{internals/errors.ts → error/utils.ts} +21 -5
  271. package/src/http/index.ts +1 -1
  272. package/src/http/internals/getHTTPStatusCode.ts +3 -2
  273. package/src/http/internals/types.ts +11 -14
  274. package/src/http/resolveHTTPResponse.ts +29 -38
  275. package/src/http/{ResponseMeta.ts → types.ts} +0 -0
  276. package/src/index.ts +4 -7
  277. package/src/internals/transformTRPCResponse.ts +21 -16
  278. package/src/internals/types.ts +24 -0
  279. package/src/internals.ts +14 -0
  280. package/src/observable/index.ts +4 -0
  281. package/src/observable/internals/identity.ts +3 -0
  282. package/src/observable/internals/observableToPromise.ts +49 -0
  283. package/src/observable/internals/pipe.ts +23 -0
  284. package/src/observable/observable.test.ts +101 -0
  285. package/src/observable/observable.ts +78 -0
  286. package/src/observable/operators/index.ts +3 -0
  287. package/src/observable/operators/map.test.ts +92 -0
  288. package/src/observable/operators/map.ts +25 -0
  289. package/src/observable/operators/share.test.ts +60 -0
  290. package/src/observable/operators/share.ts +67 -0
  291. package/src/observable/operators/tap.ts +26 -0
  292. package/src/observable/types.ts +69 -0
  293. package/src/rpc/codes.ts +2 -1
  294. package/src/rpc/envelopes.ts +88 -69
  295. package/src/rpc/internals/invert.ts +27 -0
  296. package/src/shared/createProxy/index.ts +38 -0
  297. package/src/shared/index.ts +1 -0
  298. package/src/subscription.ts +7 -125
  299. package/src/transformer.ts +28 -0
  300. package/src/types.ts +40 -9
  301. package/dist/TRPCError.d.ts +0 -19
  302. package/dist/TRPCError.d.ts.map +0 -1
  303. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  304. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  305. package/dist/deprecated/createHttpServer.d.ts +0 -19
  306. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  307. package/dist/deprecated/requestHandler.d.ts +0 -15
  308. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  309. package/dist/http/ResponseMeta.d.ts.map +0 -1
  310. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  311. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  312. package/dist/internals/OnErrorFunction.d.ts +0 -11
  313. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  314. package/dist/internals/callProcedure.d.ts.map +0 -1
  315. package/dist/internals/errors.d.ts.map +0 -1
  316. package/dist/internals/middlewares.d.ts.map +0 -1
  317. package/dist/internals/procedure.d.ts +0 -74
  318. package/dist/internals/procedure.d.ts.map +0 -1
  319. package/dist/internals/wrapCallSafe.d.ts +0 -16
  320. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  321. package/dist/router.d.ts +0 -176
  322. package/dist/router.d.ts.map +0 -1
  323. package/dist/subscription-5b7e1eba.js +0 -136
  324. package/dist/subscription-e1d42e69.mjs +0 -133
  325. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  326. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  327. package/dist/ws/index.d.ts +0 -7
  328. package/dist/ws/index.d.ts.map +0 -1
  329. package/dist/ws/index.js +0 -15
  330. package/dist/ws/index.mjs +0 -11
  331. package/src/deprecated/LegacyRouter.ts +0 -3
  332. package/src/deprecated/createHttpServer.ts +0 -29
  333. package/src/deprecated/requestHandler.ts +0 -26
  334. package/src/internals/BaseHandlerOptions.ts +0 -13
  335. package/src/internals/OnErrorFunction.ts +0 -11
  336. package/src/internals/procedure.ts +0 -283
  337. package/src/internals/wrapCallSafe.ts +0 -19
  338. package/src/ws/index.ts +0 -8
  339. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  340. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  341. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  342. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  343. package/ws/dist/trpc-server-ws.esm.js +0 -11
  344. package/ws/index.d.ts +0 -1
  345. 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-8248515e.cjs.dev.js');
6
- var subscription = require('../../../dist/subscription-b8831081.cjs.dev.js');
5
+ var transformTRPCResponse = require('../../../dist/transformTRPCResponse-c654ea92.cjs.dev.js');
6
+ var subscription = require('../../../dist/subscription-7de48383.cjs.dev.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',
@@ -322,7 +323,7 @@ function applyWSSHandler(opts) {
322
323
  }
323
324
  }
324
325
 
325
- createContextAsync();
326
+ await createContextAsync();
326
327
  });
327
328
  return {
328
329
  broadcastReconnectNotification: () => {
@@ -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-1e125b28.cjs.prod.js');
6
+ var subscription = require('../../../dist/subscription-f03bec71.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',
@@ -322,7 +323,7 @@ function applyWSSHandler(opts) {
322
323
  }
323
324
  }
324
325
 
325
- createContextAsync();
326
+ await createContextAsync();
326
327
  });
327
328
  return {
328
329
  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, t as transformTRPCResponse, c as callProcedure, g as getErrorFromUnknown } from '../../../dist/transformTRPCResponse-45c225c3.esm.js';
2
+ import { S as Subscription } from '../../../dist/subscription-2ea469a3.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',
@@ -318,7 +319,7 @@ function applyWSSHandler(opts) {
318
319
  }
319
320
  }
320
321
 
321
- createContextAsync();
322
+ await createContextAsync();
322
323
  });
323
324
  return {
324
325
  broadcastReconnectNotification: () => {
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ function getMessageFromUnkownError(err, fallback) {
4
+ if (typeof err === 'string') {
5
+ return err;
6
+ }
7
+
8
+ if (err instanceof Error && typeof err.message === 'string') {
9
+ return err.message;
10
+ }
11
+
12
+ return fallback;
13
+ }
14
+ function getErrorFromUnknown(cause) {
15
+ // this should ideally be an `instanceof TRPCError` but for some reason that isn't working
16
+ // ref https://github.com/trpc/trpc/issues/331
17
+ if (cause instanceof Error && cause.name === 'TRPCError') {
18
+ return cause;
19
+ }
20
+
21
+ let errorCause = undefined;
22
+ let stack = undefined;
23
+
24
+ if (cause instanceof Error) {
25
+ errorCause = cause; // take stack trace from cause
26
+
27
+ stack = cause.stack;
28
+ }
29
+
30
+ const err = new TRPCError({
31
+ code: 'INTERNAL_SERVER_ERROR',
32
+ cause: errorCause
33
+ });
34
+ err.stack = stack;
35
+ return err;
36
+ }
37
+ function getCauseFromUnknown(cause) {
38
+ if (cause instanceof Error) {
39
+ return cause;
40
+ }
41
+
42
+ return undefined;
43
+ }
44
+
45
+ class TRPCError extends Error {
46
+ constructor(opts) {
47
+ var _opts$message;
48
+
49
+ const cause = opts.cause;
50
+ const code = opts.code;
51
+ const message = (_opts$message = opts.message) !== null && _opts$message !== void 0 ? _opts$message : getMessageFromUnkownError(cause, code); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
52
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
53
+
54
+ super(message, {
55
+ cause
56
+ });
57
+ this.cause = void 0;
58
+ this.code = void 0;
59
+ this.code = code;
60
+ this.cause = cause;
61
+ this.name = 'TRPCError';
62
+ Object.setPrototypeOf(this, new.target.prototype);
63
+ }
64
+
65
+ }
66
+
67
+ exports.TRPCError = TRPCError;
68
+ exports.getCauseFromUnknown = getCauseFromUnknown;
69
+ exports.getErrorFromUnknown = getErrorFromUnknown;
@@ -0,0 +1,65 @@
1
+ function getMessageFromUnkownError(err, fallback) {
2
+ if (typeof err === 'string') {
3
+ return err;
4
+ }
5
+
6
+ if (err instanceof Error && typeof err.message === 'string') {
7
+ return err.message;
8
+ }
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
+
19
+ let errorCause = undefined;
20
+ let stack = undefined;
21
+
22
+ if (cause instanceof Error) {
23
+ errorCause = cause; // take stack trace from cause
24
+
25
+ stack = cause.stack;
26
+ }
27
+
28
+ const err = new TRPCError({
29
+ code: 'INTERNAL_SERVER_ERROR',
30
+ cause: errorCause
31
+ });
32
+ err.stack = stack;
33
+ return err;
34
+ }
35
+ function getCauseFromUnknown(cause) {
36
+ if (cause instanceof Error) {
37
+ return cause;
38
+ }
39
+
40
+ return undefined;
41
+ }
42
+
43
+ class TRPCError extends Error {
44
+ constructor(opts) {
45
+ var _opts$message;
46
+
47
+ const cause = opts.cause;
48
+ const code = opts.code;
49
+ const message = (_opts$message = opts.message) !== null && _opts$message !== void 0 ? _opts$message : getMessageFromUnkownError(cause, code); // eslint-disable-next-line @typescript-eslint/ban-ts-comment
50
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
51
+
52
+ super(message, {
53
+ cause
54
+ });
55
+ this.cause = void 0;
56
+ this.code = void 0;
57
+ this.code = code;
58
+ this.cause = cause;
59
+ this.name = 'TRPCError';
60
+ Object.setPrototypeOf(this, new.target.prototype);
61
+ }
62
+
63
+ }
64
+
65
+ 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":["../../../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,190 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('../../router-9d12560f.js');
6
+ var TRPCError = require('../../TRPCError-9050a68d.js');
7
+ require('../../envelopes-b6dd0367.js');
8
+ var resolveHTTPResponse = require('../../resolveHTTPResponse-fcc8f644.js');
9
+ require('../../index-1a25ccbd.js');
10
+ require('../../transformTRPCResponse-0c261655.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
+
19
+ function determinePayloadFormat(event) {
20
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
21
+ // According to AWS support, version is is extracted from the version property in the event.
22
+ // If there is no version property, then the version is implied as 1.0
23
+ const unknownEvent = event;
24
+
25
+ if (typeof unknownEvent.version === 'undefined') {
26
+ return '1.0';
27
+ } else {
28
+ if (['1.0', '2.0'].includes(unknownEvent.version)) {
29
+ return unknownEvent.version;
30
+ } else {
31
+ return 'custom';
32
+ }
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
+
41
+ for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) {
42
+ var _event$queryStringPar;
43
+
44
+ if (typeof value !== 'undefined') {
45
+ query.append(key, value);
46
+ }
47
+ }
48
+
49
+ return {
50
+ method: getHTTPMethod(event),
51
+ query: query,
52
+ headers: event.headers,
53
+ body: event.body
54
+ };
55
+ }
56
+
57
+ function getHTTPMethod(event) {
58
+ if (isPayloadV1(event)) {
59
+ return event.httpMethod;
60
+ }
61
+
62
+ if (isPayloadV2(event)) {
63
+ return event.requestContext.http.method;
64
+ }
65
+
66
+ throw new TRPCError.TRPCError({
67
+ code: 'INTERNAL_SERVER_ERROR',
68
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
69
+ });
70
+ }
71
+
72
+ function getPath(event) {
73
+ if (isPayloadV1(event)) {
74
+ const matches = event.resource.matchAll(/\{(.*?)\}/g);
75
+
76
+ for (const match of matches) {
77
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
78
+ const group = match[1];
79
+
80
+ if (group.includes('+') && event.pathParameters) {
81
+ return event.pathParameters[group.replace('+', '')] || '';
82
+ }
83
+ }
84
+
85
+ return event.path.slice(1);
86
+ }
87
+
88
+ if (isPayloadV2(event)) {
89
+ const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
90
+
91
+ for (const match of matches) {
92
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
93
+ const group = match[1];
94
+
95
+ if (group.includes('+') && event.pathParameters) {
96
+ return event.pathParameters[group.replace('+', '')] || '';
97
+ }
98
+ }
99
+
100
+ return event.rawPath.slice(1);
101
+ }
102
+
103
+ throw new TRPCError.TRPCError({
104
+ code: 'INTERNAL_SERVER_ERROR',
105
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
106
+ });
107
+ }
108
+
109
+ function transformHeaders(headers) {
110
+ const obj = {};
111
+
112
+ for (const [key, value] of Object.entries(headers)) {
113
+ if (typeof value === 'undefined') {
114
+ continue;
115
+ }
116
+
117
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
118
+ }
119
+
120
+ return obj;
121
+ }
122
+
123
+ function tRPCOutputToAPIGatewayOutput(event, response) {
124
+ if (isPayloadV1(event)) {
125
+ var _response$body, _response$headers;
126
+
127
+ const resp = {
128
+ statusCode: response.status,
129
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
130
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
131
+ };
132
+ return resp;
133
+ } else if (isPayloadV2(event)) {
134
+ var _response$body2, _response$headers2;
135
+
136
+ const resp = {
137
+ statusCode: response.status,
138
+ body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
139
+ headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
140
+ };
141
+ return resp;
142
+ } else {
143
+ throw new TRPCError.TRPCError({
144
+ code: 'INTERNAL_SERVER_ERROR',
145
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
146
+ });
147
+ }
148
+ }
149
+ /** Will check the createContext of the TRouter and get the parameter of event.
150
+ * @internal
151
+ **/
152
+
153
+
154
+ function awsLambdaRequestHandler(opts) {
155
+ return async (event, context) => {
156
+ const req = lambdaEventToHTTPRequest(event);
157
+ const path = getPath(event);
158
+
159
+ const createContext = async function _createContext() {
160
+ var _opts$createContext;
161
+
162
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
163
+ event,
164
+ context
165
+ }));
166
+ };
167
+
168
+ const response = await resolveHTTPResponse.resolveHTTPResponse({
169
+ router: opts.router,
170
+ batching: opts.batching,
171
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
172
+ createContext,
173
+ req,
174
+ path,
175
+ error: null,
176
+
177
+ onError(o) {
178
+ var _opts$onError;
179
+
180
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
181
+ req: event
182
+ });
183
+ }
184
+
185
+ });
186
+ return tRPCOutputToAPIGatewayOutput(event, response);
187
+ };
188
+ }
189
+
190
+ exports.awsLambdaRequestHandler = awsLambdaRequestHandler;
@@ -0,0 +1,186 @@
1
+ import '../../router-6665b0ee.mjs';
2
+ import { T as TRPCError } from '../../TRPCError-97212592.mjs';
3
+ import '../../envelopes-af8c2959.mjs';
4
+ import { r as resolveHTTPResponse } from '../../resolveHTTPResponse-95634936.mjs';
5
+ import '../../index-a3bd54c7.mjs';
6
+ import '../../transformTRPCResponse-747b9a68.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
+
15
+ function determinePayloadFormat(event) {
16
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
17
+ // According to AWS support, version is is extracted from the version property in the event.
18
+ // If there is no version property, then the version is implied as 1.0
19
+ const unknownEvent = event;
20
+
21
+ if (typeof unknownEvent.version === 'undefined') {
22
+ return '1.0';
23
+ } else {
24
+ if (['1.0', '2.0'].includes(unknownEvent.version)) {
25
+ return unknownEvent.version;
26
+ } else {
27
+ return 'custom';
28
+ }
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
+
37
+ for (const [key, value] of Object.entries((_event$queryStringPar = event.queryStringParameters) !== null && _event$queryStringPar !== void 0 ? _event$queryStringPar : {})) {
38
+ var _event$queryStringPar;
39
+
40
+ if (typeof value !== 'undefined') {
41
+ query.append(key, value);
42
+ }
43
+ }
44
+
45
+ return {
46
+ method: getHTTPMethod(event),
47
+ query: query,
48
+ headers: event.headers,
49
+ body: event.body
50
+ };
51
+ }
52
+
53
+ function getHTTPMethod(event) {
54
+ if (isPayloadV1(event)) {
55
+ return event.httpMethod;
56
+ }
57
+
58
+ if (isPayloadV2(event)) {
59
+ return event.requestContext.http.method;
60
+ }
61
+
62
+ throw new TRPCError({
63
+ code: 'INTERNAL_SERVER_ERROR',
64
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
65
+ });
66
+ }
67
+
68
+ function getPath(event) {
69
+ if (isPayloadV1(event)) {
70
+ const matches = event.resource.matchAll(/\{(.*?)\}/g);
71
+
72
+ for (const match of matches) {
73
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
74
+ const group = match[1];
75
+
76
+ if (group.includes('+') && event.pathParameters) {
77
+ return event.pathParameters[group.replace('+', '')] || '';
78
+ }
79
+ }
80
+
81
+ return event.path.slice(1);
82
+ }
83
+
84
+ if (isPayloadV2(event)) {
85
+ const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
86
+
87
+ for (const match of matches) {
88
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
89
+ const group = match[1];
90
+
91
+ if (group.includes('+') && event.pathParameters) {
92
+ return event.pathParameters[group.replace('+', '')] || '';
93
+ }
94
+ }
95
+
96
+ return event.rawPath.slice(1);
97
+ }
98
+
99
+ throw new TRPCError({
100
+ code: 'INTERNAL_SERVER_ERROR',
101
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
102
+ });
103
+ }
104
+
105
+ function transformHeaders(headers) {
106
+ const obj = {};
107
+
108
+ for (const [key, value] of Object.entries(headers)) {
109
+ if (typeof value === 'undefined') {
110
+ continue;
111
+ }
112
+
113
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
114
+ }
115
+
116
+ return obj;
117
+ }
118
+
119
+ function tRPCOutputToAPIGatewayOutput(event, response) {
120
+ if (isPayloadV1(event)) {
121
+ var _response$body, _response$headers;
122
+
123
+ const resp = {
124
+ statusCode: response.status,
125
+ body: (_response$body = response.body) !== null && _response$body !== void 0 ? _response$body : '',
126
+ headers: transformHeaders((_response$headers = response.headers) !== null && _response$headers !== void 0 ? _response$headers : {})
127
+ };
128
+ return resp;
129
+ } else if (isPayloadV2(event)) {
130
+ var _response$body2, _response$headers2;
131
+
132
+ const resp = {
133
+ statusCode: response.status,
134
+ body: (_response$body2 = response.body) !== null && _response$body2 !== void 0 ? _response$body2 : undefined,
135
+ headers: transformHeaders((_response$headers2 = response.headers) !== null && _response$headers2 !== void 0 ? _response$headers2 : {})
136
+ };
137
+ return resp;
138
+ } else {
139
+ throw new TRPCError({
140
+ code: 'INTERNAL_SERVER_ERROR',
141
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE
142
+ });
143
+ }
144
+ }
145
+ /** Will check the createContext of the TRouter and get the parameter of event.
146
+ * @internal
147
+ **/
148
+
149
+
150
+ function awsLambdaRequestHandler(opts) {
151
+ return async (event, context) => {
152
+ const req = lambdaEventToHTTPRequest(event);
153
+ const path = getPath(event);
154
+
155
+ const createContext = async function _createContext() {
156
+ var _opts$createContext;
157
+
158
+ return await ((_opts$createContext = opts.createContext) === null || _opts$createContext === void 0 ? void 0 : _opts$createContext.call(opts, {
159
+ event,
160
+ context
161
+ }));
162
+ };
163
+
164
+ const response = await resolveHTTPResponse({
165
+ router: opts.router,
166
+ batching: opts.batching,
167
+ responseMeta: opts === null || opts === void 0 ? void 0 : opts.responseMeta,
168
+ createContext,
169
+ req,
170
+ path,
171
+ error: null,
172
+
173
+ onError(o) {
174
+ var _opts$onError;
175
+
176
+ opts === null || opts === void 0 ? void 0 : (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, { ...o,
177
+ req: event
178
+ });
179
+ }
180
+
181
+ });
182
+ return tRPCOutputToAPIGatewayOutput(event, response);
183
+ };
184
+ }
185
+
186
+ export { awsLambdaRequestHandler };
File without changes
@@ -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":["../../../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"}