@h4ad/serverless-adapter 2.17.0 → 3.1.0

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 (436) hide show
  1. package/README.md +7 -0
  2. package/lib/@types/binary-settings.d.ts +3 -5
  3. package/lib/@types/binary-settings.d.ts.map +1 -0
  4. package/lib/@types/binary-settings.js +2 -11
  5. package/lib/@types/binary-settings.js.map +1 -1
  6. package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts +1 -1
  7. package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts.map +1 -0
  8. package/lib/@types/digital-ocean/digital-ocean-http-event.js +2 -7
  9. package/lib/@types/digital-ocean/digital-ocean-http-event.js.map +1 -1
  10. package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts +1 -1
  11. package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts.map +1 -0
  12. package/lib/@types/digital-ocean/digital-ocean-http-response.js +2 -7
  13. package/lib/@types/digital-ocean/digital-ocean-http-response.js.map +1 -1
  14. package/lib/@types/digital-ocean/index.d.ts +1 -0
  15. package/lib/@types/digital-ocean/index.d.ts.map +1 -0
  16. package/lib/@types/digital-ocean/index.js +2 -18
  17. package/lib/@types/digital-ocean/index.js.map +1 -1
  18. package/lib/@types/headers.d.ts +4 -6
  19. package/lib/@types/headers.d.ts.map +1 -0
  20. package/lib/@types/headers.js +2 -11
  21. package/lib/@types/headers.js.map +1 -1
  22. package/lib/@types/helpers.d.ts +2 -2
  23. package/lib/@types/helpers.d.ts.map +1 -0
  24. package/lib/@types/helpers.js +2 -6
  25. package/lib/@types/helpers.js.map +1 -1
  26. package/lib/@types/huawei/huawei-api-gateway-event.d.ts +3 -6
  27. package/lib/@types/huawei/huawei-api-gateway-event.d.ts.map +1 -0
  28. package/lib/@types/huawei/huawei-api-gateway-event.js +2 -14
  29. package/lib/@types/huawei/huawei-api-gateway-event.js.map +1 -1
  30. package/lib/@types/huawei/huawei-api-gateway-response.d.ts +1 -1
  31. package/lib/@types/huawei/huawei-api-gateway-response.d.ts.map +1 -0
  32. package/lib/@types/huawei/huawei-api-gateway-response.js +2 -7
  33. package/lib/@types/huawei/huawei-api-gateway-response.js.map +1 -1
  34. package/lib/@types/huawei/huawei-context.d.ts +16 -31
  35. package/lib/@types/huawei/huawei-context.d.ts.map +1 -0
  36. package/lib/@types/huawei/huawei-context.js +2 -36
  37. package/lib/@types/huawei/huawei-context.js.map +1 -1
  38. package/lib/@types/huawei/index.d.ts +1 -0
  39. package/lib/@types/huawei/index.d.ts.map +1 -0
  40. package/lib/@types/huawei/index.js +2 -20
  41. package/lib/@types/huawei/index.js.map +1 -1
  42. package/lib/@types/index.d.ts +1 -0
  43. package/lib/@types/index.d.ts.map +1 -0
  44. package/lib/@types/index.js +2 -20
  45. package/lib/@types/index.js.map +1 -1
  46. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts +2 -2
  47. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts.map +1 -0
  48. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js +2 -86
  49. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js.map +1 -1
  50. package/lib/adapters/apollo-server/index.d.ts +1 -0
  51. package/lib/adapters/apollo-server/index.d.ts.map +1 -0
  52. package/lib/adapters/apollo-server/index.js +2 -18
  53. package/lib/adapters/apollo-server/index.js.map +1 -1
  54. package/lib/adapters/aws/alb.adapter.d.ts +6 -1
  55. package/lib/adapters/aws/alb.adapter.d.ts.map +1 -0
  56. package/lib/adapters/aws/alb.adapter.js +2 -129
  57. package/lib/adapters/aws/alb.adapter.js.map +1 -1
  58. package/lib/adapters/aws/api-gateway-v1.adapter.d.ts +6 -1
  59. package/lib/adapters/aws/api-gateway-v1.adapter.d.ts.map +1 -0
  60. package/lib/adapters/aws/api-gateway-v1.adapter.js +2 -140
  61. package/lib/adapters/aws/api-gateway-v1.adapter.js.map +1 -1
  62. package/lib/adapters/aws/api-gateway-v2.adapter.d.ts +6 -1
  63. package/lib/adapters/aws/api-gateway-v2.adapter.d.ts.map +1 -0
  64. package/lib/adapters/aws/api-gateway-v2.adapter.js +2 -134
  65. package/lib/adapters/aws/api-gateway-v2.adapter.js.map +1 -1
  66. package/lib/adapters/aws/base/aws-simple-adapter.d.ts +3 -5
  67. package/lib/adapters/aws/base/aws-simple-adapter.d.ts.map +1 -0
  68. package/lib/adapters/aws/base/aws-simple-adapter.js +2 -99
  69. package/lib/adapters/aws/base/aws-simple-adapter.js.map +1 -1
  70. package/lib/adapters/aws/base/index.d.ts +1 -0
  71. package/lib/adapters/aws/base/index.d.ts.map +1 -0
  72. package/lib/adapters/aws/base/index.js +2 -18
  73. package/lib/adapters/aws/base/index.js.map +1 -1
  74. package/lib/adapters/aws/dynamodb.adapter.d.ts +1 -1
  75. package/lib/adapters/aws/dynamodb.adapter.d.ts.map +1 -0
  76. package/lib/adapters/aws/dynamodb.adapter.js +2 -64
  77. package/lib/adapters/aws/dynamodb.adapter.js.map +1 -1
  78. package/lib/adapters/aws/event-bridge.adapter.d.ts +2 -3
  79. package/lib/adapters/aws/event-bridge.adapter.d.ts.map +1 -0
  80. package/lib/adapters/aws/event-bridge.adapter.js +2 -75
  81. package/lib/adapters/aws/event-bridge.adapter.js.map +1 -1
  82. package/lib/adapters/aws/index.d.ts +2 -0
  83. package/lib/adapters/aws/index.d.ts.map +1 -0
  84. package/lib/adapters/aws/index.js +2 -27
  85. package/lib/adapters/aws/index.js.map +1 -1
  86. package/lib/adapters/aws/lambda-edge.adapter.d.ts +5 -9
  87. package/lib/adapters/aws/lambda-edge.adapter.d.ts.map +1 -0
  88. package/lib/adapters/aws/lambda-edge.adapter.js +2 -284
  89. package/lib/adapters/aws/lambda-edge.adapter.js.map +1 -1
  90. package/lib/adapters/aws/request-lambda-edge.adapter.d.ts +131 -0
  91. package/lib/adapters/aws/request-lambda-edge.adapter.d.ts.map +1 -0
  92. package/lib/adapters/aws/request-lambda-edge.adapter.js +2 -0
  93. package/lib/adapters/aws/request-lambda-edge.adapter.js.map +1 -0
  94. package/lib/adapters/aws/s3.adapter.d.ts +2 -2
  95. package/lib/adapters/aws/s3.adapter.d.ts.map +1 -0
  96. package/lib/adapters/aws/s3.adapter.js +2 -63
  97. package/lib/adapters/aws/s3.adapter.js.map +1 -1
  98. package/lib/adapters/aws/sns.adapter.d.ts +2 -2
  99. package/lib/adapters/aws/sns.adapter.d.ts.map +1 -0
  100. package/lib/adapters/aws/sns.adapter.js +2 -63
  101. package/lib/adapters/aws/sns.adapter.js.map +1 -1
  102. package/lib/adapters/aws/sqs.adapter.d.ts +2 -2
  103. package/lib/adapters/aws/sqs.adapter.d.ts.map +1 -0
  104. package/lib/adapters/aws/sqs.adapter.js +2 -64
  105. package/lib/adapters/aws/sqs.adapter.js.map +1 -1
  106. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts +1 -1
  107. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts.map +1 -0
  108. package/lib/adapters/azure/http-trigger-v4.adapter.js +2 -202
  109. package/lib/adapters/azure/http-trigger-v4.adapter.js.map +1 -1
  110. package/lib/adapters/azure/index.d.ts +1 -0
  111. package/lib/adapters/azure/index.d.ts.map +1 -0
  112. package/lib/adapters/azure/index.js +2 -18
  113. package/lib/adapters/azure/index.js.map +1 -1
  114. package/lib/adapters/digital-ocean/http-function.adapter.d.ts +1 -1
  115. package/lib/adapters/digital-ocean/http-function.adapter.d.ts.map +1 -0
  116. package/lib/adapters/digital-ocean/http-function.adapter.js +2 -118
  117. package/lib/adapters/digital-ocean/http-function.adapter.js.map +1 -1
  118. package/lib/adapters/digital-ocean/index.d.ts +1 -0
  119. package/lib/adapters/digital-ocean/index.d.ts.map +1 -0
  120. package/lib/adapters/digital-ocean/index.js +2 -18
  121. package/lib/adapters/digital-ocean/index.js.map +1 -1
  122. package/lib/adapters/dummy/dummy.adapter.d.ts +1 -0
  123. package/lib/adapters/dummy/dummy.adapter.d.ts.map +1 -0
  124. package/lib/adapters/dummy/dummy.adapter.js +2 -54
  125. package/lib/adapters/dummy/dummy.adapter.js.map +1 -1
  126. package/lib/adapters/dummy/index.d.ts +1 -0
  127. package/lib/adapters/dummy/index.d.ts.map +1 -0
  128. package/lib/adapters/dummy/index.js +2 -18
  129. package/lib/adapters/dummy/index.js.map +1 -1
  130. package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts +1 -1
  131. package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts.map +1 -0
  132. package/lib/adapters/huawei/huawei-api-gateway.adapter.js +2 -126
  133. package/lib/adapters/huawei/huawei-api-gateway.adapter.js.map +1 -1
  134. package/lib/adapters/huawei/index.d.ts +1 -0
  135. package/lib/adapters/huawei/index.d.ts.map +1 -0
  136. package/lib/adapters/huawei/index.js +2 -18
  137. package/lib/adapters/huawei/index.js.map +1 -1
  138. package/lib/contracts/adapter.contract.d.ts +1 -4
  139. package/lib/contracts/adapter.contract.d.ts.map +1 -0
  140. package/lib/contracts/adapter.contract.js +2 -18
  141. package/lib/contracts/adapter.contract.js.map +1 -1
  142. package/lib/contracts/framework.contract.d.ts +1 -1
  143. package/lib/contracts/framework.contract.d.ts.map +1 -0
  144. package/lib/contracts/framework.contract.js +2 -7
  145. package/lib/contracts/framework.contract.js.map +1 -1
  146. package/lib/contracts/handler.contract.d.ts +2 -3
  147. package/lib/contracts/handler.contract.d.ts.map +1 -0
  148. package/lib/contracts/handler.contract.js +2 -13
  149. package/lib/contracts/handler.contract.js.map +1 -1
  150. package/lib/contracts/index.d.ts +1 -0
  151. package/lib/contracts/index.d.ts.map +1 -0
  152. package/lib/contracts/index.js +2 -21
  153. package/lib/contracts/index.js.map +1 -1
  154. package/lib/contracts/resolver.contract.d.ts +4 -7
  155. package/lib/contracts/resolver.contract.d.ts.map +1 -0
  156. package/lib/contracts/resolver.contract.js +2 -15
  157. package/lib/contracts/resolver.contract.js.map +1 -1
  158. package/lib/core/base-handler.d.ts +1 -0
  159. package/lib/core/base-handler.d.ts.map +1 -0
  160. package/lib/core/base-handler.js +2 -67
  161. package/lib/core/base-handler.js.map +1 -1
  162. package/lib/core/constants.d.ts +4 -4
  163. package/lib/core/constants.d.ts.map +1 -0
  164. package/lib/core/constants.js +2 -33
  165. package/lib/core/constants.js.map +1 -1
  166. package/lib/core/current-invoke.d.ts +2 -2
  167. package/lib/core/current-invoke.d.ts.map +1 -0
  168. package/lib/core/current-invoke.js +2 -46
  169. package/lib/core/current-invoke.js.map +1 -1
  170. package/lib/core/event-body.d.ts +1 -0
  171. package/lib/core/event-body.d.ts.map +1 -0
  172. package/lib/core/event-body.js +2 -31
  173. package/lib/core/event-body.js.map +1 -1
  174. package/lib/core/headers.d.ts +26 -0
  175. package/lib/core/headers.d.ts.map +1 -0
  176. package/lib/core/headers.js +3 -97
  177. package/lib/core/headers.js.map +1 -1
  178. package/lib/core/index.d.ts +1 -0
  179. package/lib/core/index.d.ts.map +1 -0
  180. package/lib/core/index.js +2 -28
  181. package/lib/core/index.js.map +1 -1
  182. package/lib/core/is-binary.d.ts +8 -7
  183. package/lib/core/is-binary.d.ts.map +1 -0
  184. package/lib/core/is-binary.js +2 -118
  185. package/lib/core/is-binary.js.map +1 -1
  186. package/lib/core/logger.d.ts +5 -8
  187. package/lib/core/logger.d.ts.map +1 -0
  188. package/lib/core/logger.js +2 -115
  189. package/lib/core/logger.js.map +1 -1
  190. package/lib/core/no-op.d.ts +1 -0
  191. package/lib/core/no-op.d.ts.map +1 -0
  192. package/lib/core/no-op.js +2 -12
  193. package/lib/core/no-op.js.map +1 -1
  194. package/lib/core/optional.d.ts +1 -0
  195. package/lib/core/optional.d.ts.map +1 -0
  196. package/lib/core/optional.js +2 -31
  197. package/lib/core/optional.js.map +1 -1
  198. package/lib/core/path.d.ts +17 -0
  199. package/lib/core/path.d.ts.map +1 -0
  200. package/lib/core/path.js +2 -68
  201. package/lib/core/path.js.map +1 -1
  202. package/lib/core/stream.d.ts +1 -0
  203. package/lib/core/stream.d.ts.map +1 -0
  204. package/lib/core/stream.js +2 -63
  205. package/lib/core/stream.js.map +1 -1
  206. package/lib/frameworks/apollo-server/apollo-server.framework.d.ts +2 -4
  207. package/lib/frameworks/apollo-server/apollo-server.framework.d.ts.map +1 -0
  208. package/lib/frameworks/apollo-server/apollo-server.framework.js +2 -87
  209. package/lib/frameworks/apollo-server/apollo-server.framework.js.map +1 -1
  210. package/lib/frameworks/apollo-server/index.d.ts +1 -0
  211. package/lib/frameworks/apollo-server/index.d.ts.map +1 -0
  212. package/lib/frameworks/apollo-server/index.js +2 -18
  213. package/lib/frameworks/apollo-server/index.js.map +1 -1
  214. package/lib/frameworks/body-parser/base-body-parser.framework.d.ts +2 -2
  215. package/lib/frameworks/body-parser/base-body-parser.framework.d.ts.map +1 -0
  216. package/lib/frameworks/body-parser/base-body-parser.framework.js +2 -66
  217. package/lib/frameworks/body-parser/base-body-parser.framework.js.map +1 -1
  218. package/lib/frameworks/body-parser/index.d.ts +1 -0
  219. package/lib/frameworks/body-parser/index.d.ts.map +1 -0
  220. package/lib/frameworks/body-parser/index.js +2 -22
  221. package/lib/frameworks/body-parser/index.js.map +1 -1
  222. package/lib/frameworks/body-parser/json-body-parser.framework.d.ts +2 -2
  223. package/lib/frameworks/body-parser/json-body-parser.framework.d.ts.map +1 -0
  224. package/lib/frameworks/body-parser/json-body-parser.framework.js +2 -29
  225. package/lib/frameworks/body-parser/json-body-parser.framework.js.map +1 -1
  226. package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts +2 -2
  227. package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts.map +1 -0
  228. package/lib/frameworks/body-parser/raw-body-parser.framework.js +2 -29
  229. package/lib/frameworks/body-parser/raw-body-parser.framework.js.map +1 -1
  230. package/lib/frameworks/body-parser/text-body-parser.framework.d.ts +2 -2
  231. package/lib/frameworks/body-parser/text-body-parser.framework.d.ts.map +1 -0
  232. package/lib/frameworks/body-parser/text-body-parser.framework.js +2 -29
  233. package/lib/frameworks/body-parser/text-body-parser.framework.js.map +1 -1
  234. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts +2 -2
  235. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts.map +1 -0
  236. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js +2 -29
  237. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js.map +1 -1
  238. package/lib/frameworks/cors/cors.framework.d.ts +2 -2
  239. package/lib/frameworks/cors/cors.framework.d.ts.map +1 -0
  240. package/lib/frameworks/cors/cors.framework.js +3 -145
  241. package/lib/frameworks/cors/cors.framework.js.map +1 -1
  242. package/lib/frameworks/cors/index.d.ts +1 -0
  243. package/lib/frameworks/cors/index.d.ts.map +1 -0
  244. package/lib/frameworks/cors/index.js +2 -18
  245. package/lib/frameworks/cors/index.js.map +1 -1
  246. package/lib/frameworks/deepkit/http-deepkit.framework.d.ts +1 -0
  247. package/lib/frameworks/deepkit/http-deepkit.framework.d.ts.map +1 -0
  248. package/lib/frameworks/deepkit/http-deepkit.framework.js +2 -33
  249. package/lib/frameworks/deepkit/http-deepkit.framework.js.map +1 -1
  250. package/lib/frameworks/deepkit/index.d.ts +1 -0
  251. package/lib/frameworks/deepkit/index.d.ts.map +1 -0
  252. package/lib/frameworks/deepkit/index.js +2 -18
  253. package/lib/frameworks/deepkit/index.js.map +1 -1
  254. package/lib/frameworks/express/express.framework.d.ts +1 -0
  255. package/lib/frameworks/express/express.framework.d.ts.map +1 -0
  256. package/lib/frameworks/express/express.framework.js +2 -22
  257. package/lib/frameworks/express/express.framework.js.map +1 -1
  258. package/lib/frameworks/express/index.d.ts +1 -0
  259. package/lib/frameworks/express/index.d.ts.map +1 -0
  260. package/lib/frameworks/express/index.js +2 -18
  261. package/lib/frameworks/express/index.js.map +1 -1
  262. package/lib/frameworks/fastify/fastify.framework.d.ts +1 -0
  263. package/lib/frameworks/fastify/fastify.framework.d.ts.map +1 -0
  264. package/lib/frameworks/fastify/fastify.framework.js +2 -23
  265. package/lib/frameworks/fastify/fastify.framework.js.map +1 -1
  266. package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts +1 -0
  267. package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts.map +1 -0
  268. package/lib/frameworks/fastify/helpers/no-op-content-parser.js +2 -27
  269. package/lib/frameworks/fastify/helpers/no-op-content-parser.js.map +1 -1
  270. package/lib/frameworks/fastify/index.d.ts +1 -0
  271. package/lib/frameworks/fastify/index.d.ts.map +1 -0
  272. package/lib/frameworks/fastify/index.js +2 -18
  273. package/lib/frameworks/fastify/index.js.map +1 -1
  274. package/lib/frameworks/hapi/hapi.framework.d.ts +2 -1
  275. package/lib/frameworks/hapi/hapi.framework.d.ts.map +1 -0
  276. package/lib/frameworks/hapi/hapi.framework.js +2 -23
  277. package/lib/frameworks/hapi/hapi.framework.js.map +1 -1
  278. package/lib/frameworks/hapi/index.d.ts +1 -0
  279. package/lib/frameworks/hapi/index.d.ts.map +1 -0
  280. package/lib/frameworks/hapi/index.js +2 -18
  281. package/lib/frameworks/hapi/index.js.map +1 -1
  282. package/lib/frameworks/koa/index.d.ts +1 -0
  283. package/lib/frameworks/koa/index.d.ts.map +1 -0
  284. package/lib/frameworks/koa/index.js +2 -18
  285. package/lib/frameworks/koa/index.js.map +1 -1
  286. package/lib/frameworks/koa/koa.framework.d.ts +1 -0
  287. package/lib/frameworks/koa/koa.framework.d.ts.map +1 -0
  288. package/lib/frameworks/koa/koa.framework.js +2 -22
  289. package/lib/frameworks/koa/koa.framework.js.map +1 -1
  290. package/lib/frameworks/lazy/index.d.ts +1 -0
  291. package/lib/frameworks/lazy/index.d.ts.map +1 -0
  292. package/lib/frameworks/lazy/index.js +2 -18
  293. package/lib/frameworks/lazy/index.js.map +1 -1
  294. package/lib/frameworks/lazy/lazy.framework.d.ts +1 -0
  295. package/lib/frameworks/lazy/lazy.framework.d.ts.map +1 -0
  296. package/lib/frameworks/lazy/lazy.framework.js +2 -82
  297. package/lib/frameworks/lazy/lazy.framework.js.map +1 -1
  298. package/lib/frameworks/trpc/index.d.ts +1 -0
  299. package/lib/frameworks/trpc/index.d.ts.map +1 -0
  300. package/lib/frameworks/trpc/index.js +2 -18
  301. package/lib/frameworks/trpc/index.js.map +1 -1
  302. package/lib/frameworks/trpc/trpc.framework.d.ts +5 -7
  303. package/lib/frameworks/trpc/trpc.framework.d.ts.map +1 -0
  304. package/lib/frameworks/trpc/trpc.framework.js +2 -153
  305. package/lib/frameworks/trpc/trpc.framework.js.map +1 -1
  306. package/lib/handlers/aws/aws-stream.handler.d.ts +12 -6
  307. package/lib/handlers/aws/aws-stream.handler.d.ts.map +1 -0
  308. package/lib/handlers/aws/aws-stream.handler.js +2 -169
  309. package/lib/handlers/aws/aws-stream.handler.js.map +1 -1
  310. package/lib/handlers/aws/index.d.ts +1 -0
  311. package/lib/handlers/aws/index.d.ts.map +1 -0
  312. package/lib/handlers/aws/index.js +2 -18
  313. package/lib/handlers/aws/index.js.map +1 -1
  314. package/lib/handlers/azure/azure.handler.d.ts +1 -1
  315. package/lib/handlers/azure/azure.handler.d.ts.map +1 -0
  316. package/lib/handlers/azure/azure.handler.js +2 -74
  317. package/lib/handlers/azure/azure.handler.js.map +1 -1
  318. package/lib/handlers/azure/index.d.ts +1 -0
  319. package/lib/handlers/azure/index.d.ts.map +1 -0
  320. package/lib/handlers/azure/index.js +2 -18
  321. package/lib/handlers/azure/index.js.map +1 -1
  322. package/lib/handlers/base/index.d.ts +1 -0
  323. package/lib/handlers/base/index.d.ts.map +1 -0
  324. package/lib/handlers/base/index.js +2 -18
  325. package/lib/handlers/base/index.js.map +1 -1
  326. package/lib/handlers/base/raw-request.d.ts +1 -0
  327. package/lib/handlers/base/raw-request.d.ts.map +1 -0
  328. package/lib/handlers/base/raw-request.js +2 -65
  329. package/lib/handlers/base/raw-request.js.map +1 -1
  330. package/lib/handlers/default/default.handler.d.ts +1 -0
  331. package/lib/handlers/default/default.handler.d.ts.map +1 -0
  332. package/lib/handlers/default/default.handler.js +2 -191
  333. package/lib/handlers/default/default.handler.js.map +1 -1
  334. package/lib/handlers/default/index.d.ts +1 -0
  335. package/lib/handlers/default/index.d.ts.map +1 -0
  336. package/lib/handlers/default/index.js +2 -18
  337. package/lib/handlers/default/index.js.map +1 -1
  338. package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts +1 -0
  339. package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts.map +1 -0
  340. package/lib/handlers/digital-ocean/digital-ocean.handler.js +2 -34
  341. package/lib/handlers/digital-ocean/digital-ocean.handler.js.map +1 -1
  342. package/lib/handlers/digital-ocean/index.d.ts +1 -0
  343. package/lib/handlers/digital-ocean/index.d.ts.map +1 -0
  344. package/lib/handlers/digital-ocean/index.js +2 -18
  345. package/lib/handlers/digital-ocean/index.js.map +1 -1
  346. package/lib/handlers/firebase/http-firebase-v2.handler.d.ts +1 -0
  347. package/lib/handlers/firebase/http-firebase-v2.handler.d.ts.map +1 -0
  348. package/lib/handlers/firebase/http-firebase-v2.handler.js +2 -50
  349. package/lib/handlers/firebase/http-firebase-v2.handler.js.map +1 -1
  350. package/lib/handlers/firebase/http-firebase.handler.d.ts +1 -0
  351. package/lib/handlers/firebase/http-firebase.handler.d.ts.map +1 -0
  352. package/lib/handlers/firebase/http-firebase.handler.js +2 -27
  353. package/lib/handlers/firebase/http-firebase.handler.js.map +1 -1
  354. package/lib/handlers/firebase/index.d.ts +1 -0
  355. package/lib/handlers/firebase/index.d.ts.map +1 -0
  356. package/lib/handlers/firebase/index.js +2 -19
  357. package/lib/handlers/firebase/index.js.map +1 -1
  358. package/lib/handlers/gcp/gcp.handler.d.ts +2 -1
  359. package/lib/handlers/gcp/gcp.handler.d.ts.map +1 -0
  360. package/lib/handlers/gcp/gcp.handler.js +2 -40
  361. package/lib/handlers/gcp/gcp.handler.js.map +1 -1
  362. package/lib/handlers/gcp/index.d.ts +1 -0
  363. package/lib/handlers/gcp/index.d.ts.map +1 -0
  364. package/lib/handlers/gcp/index.js +2 -18
  365. package/lib/handlers/gcp/index.js.map +1 -1
  366. package/lib/handlers/huawei/http-huawei.handler.d.ts +2 -2
  367. package/lib/handlers/huawei/http-huawei.handler.d.ts.map +1 -0
  368. package/lib/handlers/huawei/http-huawei.handler.js +2 -106
  369. package/lib/handlers/huawei/http-huawei.handler.js.map +1 -1
  370. package/lib/handlers/huawei/index.d.ts +1 -0
  371. package/lib/handlers/huawei/index.d.ts.map +1 -0
  372. package/lib/handlers/huawei/index.js +2 -18
  373. package/lib/handlers/huawei/index.js.map +1 -1
  374. package/lib/index.d.ts +1 -0
  375. package/lib/index.d.ts.map +1 -0
  376. package/lib/index.doc.js +2 -0
  377. package/lib/index.doc.js.map +1 -0
  378. package/lib/index.js +2 -22
  379. package/lib/index.js.map +1 -1
  380. package/lib/network/index.d.ts +1 -0
  381. package/lib/network/index.d.ts.map +1 -0
  382. package/lib/network/index.js +2 -21
  383. package/lib/network/index.js.map +1 -1
  384. package/lib/network/request.d.ts +1 -1
  385. package/lib/network/request.d.ts.map +1 -0
  386. package/lib/network/request.js +2 -46
  387. package/lib/network/request.js.map +1 -1
  388. package/lib/network/response-stream.d.ts +1 -1
  389. package/lib/network/response-stream.d.ts.map +1 -0
  390. package/lib/network/response-stream.js +7 -88
  391. package/lib/network/response-stream.js.map +1 -1
  392. package/lib/network/response.d.ts +1 -1
  393. package/lib/network/response.d.ts.map +1 -0
  394. package/lib/network/response.js +4 -127
  395. package/lib/network/response.js.map +1 -1
  396. package/lib/network/utils.d.ts +2 -0
  397. package/lib/network/utils.d.ts.map +1 -0
  398. package/lib/network/utils.js +2 -21
  399. package/lib/network/utils.js.map +1 -1
  400. package/lib/resolvers/aws-context/aws-context.resolver.d.ts +1 -0
  401. package/lib/resolvers/aws-context/aws-context.resolver.d.ts.map +1 -0
  402. package/lib/resolvers/aws-context/aws-context.resolver.js +2 -59
  403. package/lib/resolvers/aws-context/aws-context.resolver.js.map +1 -1
  404. package/lib/resolvers/aws-context/index.d.ts +1 -0
  405. package/lib/resolvers/aws-context/index.d.ts.map +1 -0
  406. package/lib/resolvers/aws-context/index.js +2 -18
  407. package/lib/resolvers/aws-context/index.js.map +1 -1
  408. package/lib/resolvers/callback/callback.resolver.d.ts +2 -2
  409. package/lib/resolvers/callback/callback.resolver.d.ts.map +1 -0
  410. package/lib/resolvers/callback/callback.resolver.js +2 -53
  411. package/lib/resolvers/callback/callback.resolver.js.map +1 -1
  412. package/lib/resolvers/callback/index.d.ts +1 -0
  413. package/lib/resolvers/callback/index.d.ts.map +1 -0
  414. package/lib/resolvers/callback/index.js +2 -18
  415. package/lib/resolvers/callback/index.js.map +1 -1
  416. package/lib/resolvers/dummy/dummy.resolver.d.ts +1 -0
  417. package/lib/resolvers/dummy/dummy.resolver.d.ts.map +1 -0
  418. package/lib/resolvers/dummy/dummy.resolver.js +2 -24
  419. package/lib/resolvers/dummy/dummy.resolver.js.map +1 -1
  420. package/lib/resolvers/dummy/index.d.ts +1 -0
  421. package/lib/resolvers/dummy/index.d.ts.map +1 -0
  422. package/lib/resolvers/dummy/index.js +2 -18
  423. package/lib/resolvers/dummy/index.js.map +1 -1
  424. package/lib/resolvers/promise/index.d.ts +1 -0
  425. package/lib/resolvers/promise/index.d.ts.map +1 -0
  426. package/lib/resolvers/promise/index.js +2 -18
  427. package/lib/resolvers/promise/index.js.map +1 -1
  428. package/lib/resolvers/promise/promise.resolver.d.ts +1 -0
  429. package/lib/resolvers/promise/promise.resolver.d.ts.map +1 -0
  430. package/lib/resolvers/promise/promise.resolver.js +2 -48
  431. package/lib/resolvers/promise/promise.resolver.js.map +1 -1
  432. package/lib/serverless-adapter.d.ts +1 -0
  433. package/lib/serverless-adapter.d.ts.map +1 -0
  434. package/lib/serverless-adapter.js +2 -176
  435. package/lib/serverless-adapter.js.map +1 -1
  436. package/package.json +60 -79
@@ -97,14 +97,14 @@ export interface TrpcAdapterBaseContext {
97
97
  * @breadcrumb Frameworks / TrpcFramework
98
98
  * @public
99
99
  */
100
- export declare type TrpcAdapterContext<TContext> = TContext & TrpcAdapterBaseContext;
100
+ export type TrpcAdapterContext<TContext> = TContext & TrpcAdapterBaseContext;
101
101
  /**
102
102
  * The options to customize the {@link TrpcFramework}
103
103
  *
104
104
  * @breadcrumb Frameworks / TrpcFramework
105
105
  * @public
106
106
  */
107
- export declare type TrpcFrameworkOptions<TContext> = Omit<NodeHTTPHandlerOptions<AnyRouter<TContext>, IncomingMessage, ServerResponse>, 'router' | 'createContext'> & {
107
+ export type TrpcFrameworkOptions<TContext> = Omit<NodeHTTPHandlerOptions<AnyRouter, IncomingMessage, ServerResponse>, 'router' | 'createContext'> & {
108
108
  createContext?: (opts: NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse>) => Omit<TContext, keyof TrpcAdapterBaseContext> | Promise<Omit<TContext, keyof TrpcAdapterBaseContext>>;
109
109
  };
110
110
  /**
@@ -113,7 +113,7 @@ export declare type TrpcFrameworkOptions<TContext> = Omit<NodeHTTPHandlerOptions
113
113
  * @breadcrumb Frameworks / TrpcFramework
114
114
  * @public
115
115
  */
116
- export declare class TrpcFramework<TContext extends TrpcAdapterBaseContext> implements FrameworkContract<AnyRouter<TContext>> {
116
+ export declare class TrpcFramework<TContext extends TrpcAdapterBaseContext, TRouter extends AnyRouter = AnyRouter> implements FrameworkContract<TRouter> {
117
117
  protected readonly options?: TrpcFrameworkOptions<TContext> | undefined;
118
118
  /**
119
119
  * Default constructor
@@ -122,7 +122,7 @@ export declare class TrpcFramework<TContext extends TrpcAdapterBaseContext> impl
122
122
  /**
123
123
  * {@inheritDoc}
124
124
  */
125
- sendRequest(app: AnyRouter<TContext>, request: IncomingMessage, response: ServerResponse): void;
125
+ sendRequest<TRouter extends AnyRouter>(app: TRouter, request: IncomingMessage, response: ServerResponse): void;
126
126
  /**
127
127
  * Get safe url that can be used inside Trpc.
128
128
  *
@@ -150,6 +150,4 @@ export declare class TrpcFramework<TContext extends TrpcAdapterBaseContext> impl
150
150
  */
151
151
  protected wrapResolvedContextWithDefaultContext(resolvedContext: TContext, createContextOptions: NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse>): TContext;
152
152
  }
153
- export declare type __ΩTrpcAdapterBaseContext = any[];
154
- export declare type __ΩTrpcAdapterContext = any[];
155
- export declare type __ΩTrpcFrameworkOptions = any[];
153
+ //# sourceMappingURL=trpc.framework.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trpc.framework.d.ts","sourceRoot":"","sources":["../../../src/frameworks/trpc/trpc.framework.ts"],"names":[],"mappings":"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"}
@@ -1,153 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TrpcFramework = exports.__ΩTrpcFrameworkOptions = exports.__ΩTrpcAdapterContext = exports.__ΩTrpcAdapterBaseContext = exports.BufferToJSObjectTransformer = void 0;
4
- const { __ΩSingleValueHeaders } = require('../../@types');
5
- function __assignType(fn, args) {
6
- fn.__type = args;
7
- return fn;
8
- }
9
- const __ΩPick = ['T', 'K', 'l+e#!e"!fRb!b"Pde""N#!'];
10
- const __ΩExclude = ['T', 'U', 'l6!Re$!RPe#!e$"qk#%QRb!b"Pde"!p)'];
11
- const __ΩOmit = ['T', 'K', () => __ΩPick, () => __ΩExclude, 'b!b"e!!e!!ge!"o$#o##'];
12
- const node_http_1 = require("@trpc/server/adapters/node-http");
13
- const core_1 = require("../../core");
14
- //#endregion
15
- /**
16
- * The transformer that is responsible to transform buffer's input to javascript objects
17
- *
18
- * @deprecated You should use {@link JsonBodyParserFramework} instead, is more reliable and enable you to use transformer of trpc to other things.
19
- * @breadcrumb Frameworks / TrpcFramework
20
- * @public
21
- */
22
- class BufferToJSObjectTransformer {
23
- /**
24
- * Deserialize unknown values to javascript objects
25
- *
26
- * @param value - The value to be deserialized
27
- */
28
- deserialize(value) {
29
- if (value instanceof Buffer)
30
- return JSON.parse(value.toString('utf-8'));
31
- return value;
32
- }
33
- /**
34
- * The value to be serialized, do nothing because tRPC can handle.
35
- *
36
- * @param value - The value to be serialized
37
- */
38
- serialize(value) {
39
- return value;
40
- }
41
- }
42
- exports.BufferToJSObjectTransformer = BufferToJSObjectTransformer;
43
- BufferToJSObjectTransformer.__type = ['value', 'deserialize', 'serialize', 'P#2!8"0"P"2!"0#5'];
44
- const __ΩTrpcAdapterBaseContext = ['request', 'response', 'statusCode', 'setStatus', 'name', 'value', 'setHeader', 'removeHeader', 'getHeader', () => __ΩSingleValueHeaders, 'getHeaders', 'getIp', 'getUrl', 'getMethod', 'P!4!!4"P\'2#$1$P&2%P\'&J2&$1\'P&2%$1(P&2%P&-J1)Pn*1+PP&-J1,PP&-J1-PP&-J1.M'];
45
- exports.__ΩTrpcAdapterBaseContext = __ΩTrpcAdapterBaseContext;
46
- const __ΩTrpcAdapterContext = ['TContext', () => __ΩTrpcAdapterBaseContext, 'b!Pe"!n"K'];
47
- exports.__ΩTrpcAdapterContext = __ΩTrpcAdapterContext;
48
- const __ΩTrpcFrameworkOptions = ['TContext', () => __ΩOmit, "router", "createContext", 'opts', () => __ΩOmit, () => __ΩTrpcAdapterBaseContext, () => __ΩOmit, () => __ΩTrpcAdapterBaseContext, '', 'createContext', 'b!P"P.#.$Jo"#PP"2%Pe%!n\'go&#e%!n)go(#`J/*4+8MK'];
49
- exports.__ΩTrpcFrameworkOptions = __ΩTrpcFrameworkOptions;
50
- /**
51
- * The framework that forwards requests to TRPC handler
52
- *
53
- * @breadcrumb Frameworks / TrpcFramework
54
- * @public
55
- */
56
- class TrpcFramework {
57
- //#region Constructor
58
- /**
59
- * Default constructor
60
- */
61
- constructor(options) {
62
- this.options = options;
63
- }
64
- //#endregion
65
- //#region Public Methods
66
- /**
67
- * {@inheritDoc}
68
- */
69
- sendRequest(app, request, response) {
70
- const endpoint = this.getSafeUrlForTrpc(request);
71
- (0, node_http_1.nodeHTTPRequestHandler)({
72
- req: request,
73
- res: response,
74
- path: endpoint,
75
- router: app,
76
- ...this.options,
77
- createContext: __assignType(createContextOptions => this.mergeDefaultContextWithOptionsContext(createContextOptions), ['createContextOptions', '', 'P"2!"/"']),
78
- });
79
- }
80
- //#endregion
81
- //#region Protected Methods
82
- /**
83
- * Get safe url that can be used inside Trpc.
84
- *
85
- * @example
86
- * ```typescript
87
- * const url = getSafeUrlForTrpc('/users?input=hello');
88
- * console.log(url); // users
89
- * ```
90
- *
91
- * @param request - The request object that will be forward to your app
92
- */
93
- getSafeUrlForTrpc(request) {
94
- let url = request.url;
95
- if (url.startsWith('/'))
96
- url = url.slice(1);
97
- if (url.includes('?'))
98
- url = url.split('?')[0];
99
- return url;
100
- }
101
- /**
102
- * Merge the default context ({@link TrpcAdapterContext}) with the context created by the user.
103
- *
104
- * @param createContextOptions - The options sent by trpc to create the context
105
- */
106
- mergeDefaultContextWithOptionsContext(createContextOptions) {
107
- var _a;
108
- const createContextFromOptions = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.createContext, () => undefined);
109
- const resolvedContext = createContextFromOptions(createContextOptions);
110
- if (resolvedContext && resolvedContext.then) {
111
- return resolvedContext.then(__assignType(context => this.wrapResolvedContextWithDefaultContext(context, createContextOptions), ['context', '', 'P"2!"/"']));
112
- }
113
- return this.wrapResolvedContextWithDefaultContext(resolvedContext, createContextOptions);
114
- }
115
- /**
116
- * Wraps the resolved context from the {@link TrpcFrameworkOptions} created with `createContext` and merge
117
- * with the {@link TrpcAdapterContext} generated by the library.
118
- *
119
- * @param resolvedContext - The context created with `createContext` inside {@link TrpcFrameworkOptions}
120
- * @param createContextOptions - The options sent by trpc to create the context
121
- */
122
- wrapResolvedContextWithDefaultContext(resolvedContext, createContextOptions) {
123
- const request = createContextOptions.req;
124
- const response = createContextOptions.res;
125
- return {
126
- ...resolvedContext,
127
- request,
128
- response,
129
- getUrl: () => request.url,
130
- getMethod: () => request.method,
131
- getHeaders: () => (0, core_1.getFlattenedHeadersMap)(request.headers, ',', true),
132
- setHeader: __assignType((header, value) => {
133
- response.setHeader(header, value);
134
- }, ['header', 'value', '', 'P"2!"2""/#']),
135
- removeHeader: __assignType(header => {
136
- response.removeHeader(header);
137
- }, ['header', '', 'P"2!"/"']),
138
- getHeader: __assignType((header) => {
139
- return (0, core_1.getFlattenedHeadersMap)(request.headers, ',', true)[header.toLowerCase()];
140
- }, ['header', '', 'P&2!"/"']),
141
- setStatus: __assignType((statusCode) => {
142
- response.statusCode = statusCode;
143
- // force undefined to get default message for the status code
144
- // ref: https://nodejs.org/dist/latest-v16.x/docs/api/http.html#responsestatusmessage
145
- response.statusMessage = undefined;
146
- }, ['statusCode', '', 'P\'2!"/"']),
147
- getIp: () => request.connection.remoteAddress,
148
- };
149
- }
150
- }
151
- exports.TrpcFramework = TrpcFramework;
152
- TrpcFramework.__type = ['TContext', () => __ΩTrpcFrameworkOptions, 'options', 'constructor', 'app', 'request', 'response', 'sendRequest', 'getSafeUrlForTrpc', 'createContextOptions', 'mergeDefaultContextWithOptionsContext', 'resolvedContext', 'wrapResolvedContextWithDefaultContext', 'b!Pe"!o""2#8<9"0$P"2%!2&!2\'$0(P!2&&0)<P"2*Pe#!e#!`J0+<Pe"!2,"2*e"!0-<5"6"'];
153
- //# sourceMappingURL=trpc.framework.js.map
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),trpc_framework_exports={};__export(trpc_framework_exports,{BufferToJSObjectTransformer:()=>BufferToJSObjectTransformer,TrpcFramework:()=>TrpcFramework});module.exports=__toCommonJS(trpc_framework_exports);var import_node_http=require("@trpc/server/adapters/node-http"),import_core=require("../../core");class BufferToJSObjectTransformer{deserialize(value){return value instanceof Buffer?JSON.parse(value.toString("utf-8")):value}serialize(value){return value}}class TrpcFramework{constructor(options){this.options=options}sendRequest(app,request,response){const endpoint=this.getSafeUrlForTrpc(request);(0,import_node_http.nodeHTTPRequestHandler)({req:request,res:response,path:endpoint,router:app,...this.options,createContext:createContextOptions=>this.mergeDefaultContextWithOptionsContext(createContextOptions)})}getSafeUrlForTrpc(request){let url=request.url;return url.startsWith("/")&&(url=url.slice(1)),url.includes("?")&&(url=url.split("?")[0]),url}mergeDefaultContextWithOptionsContext(createContextOptions){var _a;const resolvedContext=(0,import_core.getDefaultIfUndefined)((_a=this.options)==null?void 0:_a.createContext,()=>{})(createContextOptions);return resolvedContext&&resolvedContext.then?resolvedContext.then(context=>this.wrapResolvedContextWithDefaultContext(context,createContextOptions)):this.wrapResolvedContextWithDefaultContext(resolvedContext,createContextOptions)}wrapResolvedContextWithDefaultContext(resolvedContext,createContextOptions){const request=createContextOptions.req,response=createContextOptions.res;return{...resolvedContext,request,response,getUrl:()=>request.url,getMethod:()=>request.method,getHeaders:()=>(0,import_core.getFlattenedHeadersMap)(request.headers,",",!0),setHeader:(header,value)=>{response.setHeader(header,value)},removeHeader:header=>{response.removeHeader(header)},getHeader:header=>(0,import_core.getFlattenedHeadersMap)(request.headers,",",!0)[header.toLowerCase()],setStatus:statusCode=>{response.statusCode=statusCode,response.statusMessage=void 0},getIp:()=>request.connection.remoteAddress}}}
2
+ //# sourceMappingURL=trpc.framework.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trpc.framework.js","sourceRoot":"","sources":["../../../src/frameworks/trpc/trpc.framework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trpc.framework.js","sources":["../../../src/frameworks/trpc/trpc.framework.ts"],"sourcesContent":["//#region\n\nimport { IncomingMessage, ServerResponse } from 'http';\nimport type { AnyRouter, DataTransformer } from '@trpc/server';\nimport {\n NodeHTTPCreateContextFn,\n NodeHTTPCreateContextFnOptions,\n NodeHTTPHandlerOptions,\n nodeHTTPRequestHandler,\n} from '@trpc/server/adapters/node-http';\nimport { SingleValueHeaders } from '../../@types';\nimport { FrameworkContract } from '../../contracts';\nimport { getDefaultIfUndefined, getFlattenedHeadersMap } from '../../core';\n\n//#endregion\n\n/**\n * The transformer that is responsible to transform buffer's input to javascript objects\n *\n * @deprecated You should use {@link JsonBodyParserFramework} instead, is more reliable and enable you to use transformer of trpc to other things.\n * @breadcrumb Frameworks / TrpcFramework\n * @public\n */\nexport class BufferToJSObjectTransformer implements DataTransformer {\n /**\n * Deserialize unknown values to javascript objects\n *\n * @param value - The value to be deserialized\n */\n public deserialize(value?: unknown): any {\n if (value instanceof Buffer) return JSON.parse(value.toString('utf-8'));\n\n return value;\n }\n\n /**\n * The value to be serialized, do nothing because tRPC can handle.\n *\n * @param value - The value to be serialized\n */\n public serialize(value: any): any {\n return value;\n }\n}\n\n/**\n * The context created by this library that allows getting some information from the request and setting the status and header of the response.\n *\n * @breadcrumb Frameworks / TrpcFramework\n * @public\n */\nexport interface TrpcAdapterBaseContext {\n /**\n * The request object that will be forward to your app\n */\n request: IncomingMessage;\n\n /**\n * The response object that will be forward to your app to output the response\n */\n response: ServerResponse;\n\n /**\n * The method to set response status.\n *\n * @param statusCode - The response status that you want\n */\n setStatus(statusCode: number): void;\n\n /**\n * The method to set some header in the response\n *\n * @param name - The name of the header\n * @param value - The value to be set in the header\n */\n setHeader(name: string, value: number | string): void;\n\n /**\n * The method to remove some header from the response\n *\n * @param name - The name of the header\n */\n removeHeader(name: string): void;\n\n /**\n * The method to return the value of some header from the request\n *\n * @param name - The name of the header\n */\n getHeader(name: string): string | undefined;\n\n /**\n * The method to return the request headers\n */\n getHeaders(): SingleValueHeaders;\n\n /**\n * The method to return user's address\n */\n getIp(): string | undefined;\n\n /**\n * The method to return the URL called\n */\n getUrl(): string | undefined;\n\n /**\n * The method to return the HTTP Method in the request\n */\n getMethod(): string | undefined;\n}\n\n/**\n * This is the context merged between {@link TrpcAdapterBaseContext} and the {@link TContext} that you provided.\n *\n * This context will be merged with the context you created with `createContext` inside {@link TrpcFrameworkOptions}.\n * So to make the type work, just send the properties you've added inside {@link TContext}.\n *\n * @example\n * ```typescript\n * type MyCustomContext = { user: { name: string } };\n * type TrpcContext = TrpcAdapterContext<MyCustomContext>; // your final context type to put inside trpc.router\n * ```\n *\n * @breadcrumb Frameworks / TrpcFramework\n * @public\n */\nexport type TrpcAdapterContext<TContext> = TContext & TrpcAdapterBaseContext;\n\n/**\n * The options to customize the {@link TrpcFramework}\n *\n * @breadcrumb Frameworks / TrpcFramework\n * @public\n */\nexport type TrpcFrameworkOptions<TContext> = Omit<\n NodeHTTPHandlerOptions<AnyRouter, IncomingMessage, ServerResponse>,\n 'router' | 'createContext'\n> & {\n createContext?: (\n opts: NodeHTTPCreateContextFnOptions<IncomingMessage, ServerResponse>,\n ) =>\n | Omit<TContext, keyof TrpcAdapterBaseContext>\n | Promise<Omit<TContext, keyof TrpcAdapterBaseContext>>;\n};\n\n/**\n * The framework that forwards requests to TRPC handler\n *\n * @breadcrumb Frameworks / TrpcFramework\n * @public\n */\nexport class TrpcFramework<\n TContext extends TrpcAdapterBaseContext,\n TRouter extends AnyRouter = AnyRouter,\n> implements FrameworkContract<TRouter>\n{\n //#region Constructor\n\n /**\n * Default constructor\n */\n constructor(protected readonly options?: TrpcFrameworkOptions<TContext>) {}\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public sendRequest<TRouter extends AnyRouter>(\n app: TRouter,\n request: IncomingMessage,\n response: ServerResponse,\n ): void {\n const endpoint = this.getSafeUrlForTrpc(request);\n\n nodeHTTPRequestHandler({\n req: request,\n res: response,\n path: endpoint,\n router: app,\n ...this.options,\n createContext: createContextOptions =>\n this.mergeDefaultContextWithOptionsContext(createContextOptions),\n });\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get safe url that can be used inside Trpc.\n *\n * @example\n * ```typescript\n * const url = getSafeUrlForTrpc('/users?input=hello');\n * console.log(url); // users\n * ```\n *\n * @param request - The request object that will be forward to your app\n */\n protected getSafeUrlForTrpc(request: IncomingMessage): string {\n let url = request.url!;\n\n if (url.startsWith('/')) url = url.slice(1);\n\n if (url.includes('?')) url = url.split('?')[0];\n\n return url;\n }\n\n /**\n * Merge the default context ({@link TrpcAdapterContext}) with the context created by the user.\n *\n * @param createContextOptions - The options sent by trpc to create the context\n */\n protected mergeDefaultContextWithOptionsContext(\n createContextOptions: NodeHTTPCreateContextFnOptions<\n IncomingMessage,\n ServerResponse\n >,\n ): TContext | Promise<TContext> {\n const createContextFromOptions: NodeHTTPCreateContextFn<\n AnyRouter,\n IncomingMessage,\n ServerResponse\n > = getDefaultIfUndefined(\n this.options?.createContext,\n () =>\n undefined as unknown as Omit<TContext, keyof TrpcAdapterBaseContext>,\n );\n\n const resolvedContext = createContextFromOptions(createContextOptions);\n\n if (resolvedContext && resolvedContext.then) {\n return resolvedContext.then(context =>\n this.wrapResolvedContextWithDefaultContext(\n context,\n createContextOptions,\n ),\n );\n }\n\n return this.wrapResolvedContextWithDefaultContext(\n resolvedContext,\n createContextOptions,\n );\n }\n\n /**\n * Wraps the resolved context from the {@link TrpcFrameworkOptions} created with `createContext` and merge\n * with the {@link TrpcAdapterContext} generated by the library.\n *\n * @param resolvedContext - The context created with `createContext` inside {@link TrpcFrameworkOptions}\n * @param createContextOptions - The options sent by trpc to create the context\n */\n protected wrapResolvedContextWithDefaultContext(\n resolvedContext: TContext,\n createContextOptions: NodeHTTPCreateContextFnOptions<\n IncomingMessage,\n ServerResponse\n >,\n ): TContext {\n const request = createContextOptions.req;\n const response = createContextOptions.res;\n\n return {\n ...resolvedContext,\n request,\n response,\n getUrl: () => request.url,\n getMethod: () => request.method,\n getHeaders: () => getFlattenedHeadersMap(request.headers, ',', true),\n setHeader: (header, value) => {\n response.setHeader(header, value);\n },\n removeHeader: header => {\n response.removeHeader(header);\n },\n getHeader: (header: string) => {\n return getFlattenedHeadersMap(request.headers, ',', true)[\n header.toLowerCase()\n ];\n },\n setStatus: (statusCode: number) => {\n response.statusCode = statusCode;\n // force undefined to get default message for the status code\n // ref: https://nodejs.org/dist/latest-v16.x/docs/api/http.html#responsestatusmessage\n response.statusMessage = undefined as any;\n },\n getIp: () => request.connection.remoteAddress,\n };\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,uBAAA,CAAA,EAAA,SAAA,uBAAA,CAAA,4BAAA,IAAA,4BAAA,cAAA,IAAA,aAAA,CAAA,EAAA,OAAA,QAAA,aAAA,sBAAA,EAIA,IAKO,iBAAA,QAAA,iCAAA,EAGuD,YAAA,QAAA,YAAA,EAWvD,MAAM,2BAAuD,CAM3D,YAAY,MAAsB,CACvC,OAAI,iBAAiB,OAAe,KAAK,MAAM,MAAM,SAAS,OAAO,CAAC,EAE/D,KACT,CAOO,UAAU,MAAiB,CACzB,OAAA,KACT,CACF,CA6GO,MAAM,aAIb,CAME,YAA+B,QAA0C,CAA1C,KAAA,QAAA,OAA2C,CASnE,YACL,IACA,QACA,SACM,CACA,MAAA,SAAW,KAAK,kBAAkB,OAAO,KAExB,iBAAA,wBAAA,CACrB,IAAK,QACL,IAAK,SACL,KAAM,SACN,OAAQ,IACR,GAAG,KAAK,QACR,cAAe,sBACb,KAAK,sCAAsC,oBAAoB,CAAA,CAClE,CACH,CAiBU,kBAAkB,QAAkC,CAC5D,IAAI,IAAM,QAAQ,IAEd,OAAA,IAAI,WAAW,GAAG,IAAS,IAAA,IAAI,MAAM,CAAC,GAEtC,IAAI,SAAS,GAAG,IAAG,IAAM,IAAI,MAAM,GAAG,EAAE,CAAC,GAEtC,GACT,CAOU,sCACR,qBAI8B,QAWxB,MAAA,mBANF,YAAA,wBACF,QAAK,UAAL,eAAc,cACd,IAAA,EACE,EAG6C,oBAAoB,EAEjE,OAAA,iBAAmB,gBAAgB,KAC9B,gBAAgB,cACrB,KAAK,sCACH,QACA,oBACF,CAAA,EAIG,KAAK,sCACV,gBACA,oBAAA,CAEJ,CASU,sCACR,gBACA,qBAIU,CACV,MAAM,QAAU,qBAAqB,IAC/B,SAAW,qBAAqB,IAE/B,MAAA,CACL,GAAG,gBACH,QACA,SACA,OAAQ,IAAM,QAAQ,IACtB,UAAW,IAAM,QAAQ,OACzB,WAAY,OAAM,YAAA,wBAAuB,QAAQ,QAAS,IAAK,EAAI,EACnE,UAAW,CAAC,OAAQ,QAAU,CACnB,SAAA,UAAU,OAAQ,KAAK,CAClC,EACA,aAAwB,QAAA,CACtB,SAAS,aAAa,MAAM,CAC9B,EACA,UAAY,WACH,YAAA,wBAAuB,QAAQ,QAAS,IAAK,EAAI,EACtD,OAAO,aACT,EAEF,UAAY,YAAuB,CACjC,SAAS,WAAa,WAGtB,SAAS,cAAgB,MAC3B,EACA,MAAO,IAAM,QAAQ,WAAW,aAAA,CAEpC,CAGF"}
@@ -5,15 +5,23 @@ import type { APIGatewayProxyStructuredResultV2 } from 'aws-lambda/trigger/api-g
5
5
  import { BinarySettings } from '../../@types';
6
6
  import { AdapterContract, AdapterRequest, FrameworkContract, ResolverContract, ServerlessHandler } from '../../contracts';
7
7
  import { BaseHandler, ILogger } from '../../core';
8
- export declare type AWSResponseStream = Writable;
9
- export declare type AWSStreamResponseMetadata = Pick<APIGatewayProxyStructuredResultV2, 'statusCode' | 'headers' | 'cookies'>;
8
+ /**
9
+ * @breadcrumb Handlers / AwsStreamHandler
10
+ * @public
11
+ */
12
+ export type AWSResponseStream = Writable;
13
+ /**
14
+ * @breadcrumb Handlers / AwsStreamHandler
15
+ * @public
16
+ */
17
+ export type AWSStreamResponseMetadata = Pick<APIGatewayProxyStructuredResultV2, 'statusCode' | 'headers' | 'cookies'>;
10
18
  /**
11
19
  * The interface that describes the internal context used by the {@link AwsStreamHandler}
12
20
  *
13
21
  * @breadcrumb Handlers / AwsStreamHandler
14
22
  * @public
15
23
  */
16
- export declare type AWSStreamContext = {
24
+ export type AWSStreamContext = {
17
25
  /**
18
26
  * The response stream provided by the serverless
19
27
  */
@@ -78,6 +86,4 @@ export declare class AwsStreamHandler<TApp> extends BaseHandler<TApp, APIGateway
78
86
  */
79
87
  protected forwardRequestToFramework(app: TApp, framework: FrameworkContract<TApp>, event: APIGatewayProxyEventV2, context: AWSStreamContext, adapter: AdapterContract<APIGatewayProxyEventV2, AWSStreamContext, AWSStreamResponseMetadata>, binarySettings: BinarySettings, log: ILogger): Promise<void>;
80
88
  }
81
- export declare type __ΩAWSResponseStream = any[];
82
- export declare type __ΩAWSStreamResponseMetadata = any[];
83
- export declare type __ΩAWSStreamContext = any[];
89
+ //# sourceMappingURL=aws-stream.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-stream.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/aws/aws-stream.handler.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,OAAO,EAIR,MAAM,YAAY,CAAC;AAKpB;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,iCAAiC,EACjC,YAAY,GAAG,SAAS,GAAG,SAAS,CACrC,CAAC;AAsBF;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,gBAAgB,CAAC,IAAI,CAAE,SAAQ,WAAW,CACrD,IAAI,EACJ,sBAAsB,EACtB,gBAAgB,EAChB,IAAI,EACJ,yBAAyB,EACzB,IAAI,CACL;IAGC;;OAEG;IACI,UAAU,CACf,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClC,QAAQ,EAAE,eAAe,CACvB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,CAC1B,EAAE,EACH,eAAe,EAAE,gBAAgB,CAC/B,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,CACR,EACD,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,OAAO,GACX,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAuCnC;;;;;;;;OAQG;IACH,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,OAAO,GACzB,IAAI;IASP;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CACxB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,eAAe,CACtB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,CAC1B,GACA,IAAI;IAOP;;;;;OAKG;IACH,SAAS,CAAC,sBAAsB,CAC9B,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,cAAc,GAC5B,IAAI;IAYP;;;;;OAKG;IACH,SAAS,CAAC,gCAAgC,CACxC,GAAG,EAAE,OAAO,EACZ,eAAe,EAAE,yBAAyB;IAW5C;;;;;;;;;;OAUG;cACa,yBAAyB,CACvC,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClC,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,eAAe,CACtB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,CAC1B,EACD,cAAc,EAAE,cAAc,EAC9B,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,IAAI,CAAC;CAuEjB"}
@@ -1,169 +1,2 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AwsStreamHandler = exports.__ΩAWSStreamContext = exports.__ΩAWSStreamResponseMetadata = exports.__ΩAWSResponseStream = void 0;
7
- const { __ΩFrameworkContract } = require('../../contracts');
8
- const { __ΩAdapterContract } = require('../../contracts');
9
- const { __ΩResolverContract } = require('../../contracts');
10
- const { __ΩBinarySettings } = require('../../@types');
11
- const { __ΩILogger } = require('../../core');
12
- const { __ΩServerlessHandler } = require('../../contracts');
13
- const { __ΩAdapterRequest } = require('../../contracts');
14
- function __assignType(fn, args) {
15
- fn.__type = args;
16
- return fn;
17
- }
18
- const __ΩPick = ['T', 'K', 'l+e#!e"!fRb!b"Pde""N#!'];
19
- const util_1 = __importDefault(require("util"));
20
- const core_1 = require("../../core");
21
- const network_1 = require("../../network");
22
- const __ΩAWSResponseStream = ['!'];
23
- exports.__ΩAWSResponseStream = __ΩAWSResponseStream;
24
- const __ΩAWSStreamResponseMetadata = [() => __ΩPick, "statusCode", "headers", "cookies", '"P.".#.$Jo!#'];
25
- exports.__ΩAWSStreamResponseMetadata = __ΩAWSStreamResponseMetadata;
26
- const __ΩAWSStreamContext = [() => __ΩAWSResponseStream, 'response', 'context', 'Pn!4""4#M'];
27
- exports.__ΩAWSStreamContext = __ΩAWSStreamContext;
28
- /**
29
- * The class that implements a default serverless handler consisting of a function with event, context and callback parameters respectively
30
- *
31
- * @breadcrumb Handlers / AwsStreamHandler
32
- * @public
33
- */
34
- class AwsStreamHandler extends core_1.BaseHandler {
35
- //#region Public Methods
36
- /**
37
- * {@inheritDoc}
38
- */
39
- getHandler(app, framework, adapters, resolverFactory, binarySettings, respondWithErrors, log) {
40
- return awslambda.streamifyResponse(__assignType(async (event, response, context) => {
41
- const streamContext = { response, context };
42
- this.onReceiveRequest(log, event, streamContext, binarySettings, respondWithErrors);
43
- const adapter = this.getAdapterByEventAndContext(event, streamContext, adapters, log);
44
- this.onResolveAdapter(log, adapter);
45
- (0, core_1.setCurrentInvoke)({ event, context });
46
- await this.forwardRequestToFramework(app, framework, event, streamContext, adapter, binarySettings, log);
47
- }, ['event', 'response', 'context', '', 'P"2!"2""2#"/$']));
48
- }
49
- //#endregion
50
- //#region Hooks
51
- /**
52
- * The hook executed on receive a request, before the request is being processed
53
- *
54
- * @param log - The instance of logger
55
- * @param event - The event sent by serverless
56
- * @param context - The context sent by serverless
57
- * @param binarySettings - The binary settings
58
- * @param respondWithErrors - Indicates whether the error stack should be included in the response or not
59
- */
60
- onReceiveRequest(log, event, context, binarySettings, respondWithErrors) {
61
- log.debug('SERVERLESS_ADAPTER:PROXY', () => ({
62
- event,
63
- context: util_1.default.inspect(context, { depth: null }),
64
- binarySettings,
65
- respondWithErrors,
66
- }));
67
- }
68
- /**
69
- * The hook executed after resolve the adapter that will be used to handle the request and response
70
- *
71
- * @param log - The instance of logger
72
- * @param adapter - The adapter resolved
73
- */
74
- onResolveAdapter(log, adapter) {
75
- log.debug('SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ', adapter.getAdapterName());
76
- }
77
- /**
78
- * The hook executed after resolves the request values that will be sent to the framework
79
- *
80
- * @param log - The instance of logger
81
- * @param requestValues - The request values returned by the adapter
82
- */
83
- onResolveRequestValues(log, requestValues) {
84
- log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES', () => {
85
- var _a;
86
- return ({
87
- requestValues: {
88
- ...requestValues,
89
- body: (_a = requestValues.body) === null || _a === void 0 ? void 0 : _a.toString(),
90
- },
91
- });
92
- });
93
- }
94
- /**
95
- * The hook executed before sending response to the serverless with response from adapter
96
- *
97
- * @param log - The instance of logger
98
- * @param successResponse - The success response resolved by the adapter
99
- */
100
- onForwardResponseAdapterResponse(log, successResponse) {
101
- log.debug('SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE', {
102
- successResponse,
103
- });
104
- }
105
- //#endregion
106
- //#region Protected Methods
107
- /**
108
- * The function to forward the event to the framework
109
- *
110
- * @param app - The instance of the app (express, hapi, etc...)
111
- * @param framework - The framework that will process requests
112
- * @param event - The event sent by serverless
113
- * @param context - The context sent by serverless
114
- * @param adapter - The adapter resolved to this event
115
- * @param log - The instance of logger
116
- * @param binarySettings - The binary settings
117
- */
118
- async forwardRequestToFramework(app, framework, event, context, adapter, binarySettings, log) {
119
- const requestValues = adapter.getRequest(event, context, log);
120
- this.onResolveRequestValues(log, requestValues);
121
- const request = new network_1.ServerlessRequest({
122
- method: requestValues.method,
123
- headers: requestValues.headers,
124
- body: requestValues.body,
125
- remoteAddress: requestValues.remoteAddress,
126
- url: requestValues.path,
127
- });
128
- const response = new network_1.ServerlessStreamResponse({
129
- method: requestValues.method,
130
- onReceiveHeaders: __assignType((status, headers) => {
131
- const flattenedHeaders = (0, core_1.getFlattenedHeadersMap)(headers);
132
- const awsMetadata = {
133
- statusCode: status,
134
- headers: flattenedHeaders,
135
- };
136
- const cookies = headers['set-cookie'];
137
- if (cookies) {
138
- awsMetadata.cookies = Array.isArray(cookies) ? cookies : [cookies];
139
- delete headers['set-cookie'];
140
- delete flattenedHeaders['set-cookie'];
141
- }
142
- this.onForwardResponseAdapterResponse(log, awsMetadata);
143
- const finalResponse = awslambda.HttpResponseStream.from(context.response, awsMetadata);
144
- // some status do not return body, and
145
- // for some unknown reason, we cannot finish the stream without writing at least once
146
- // so I have this thing just to fix this issue
147
- // ref: https://stackoverflow.com/a/37303151
148
- const isHundreadStatus = status >= 100 && status < 200;
149
- const isNoContentStatus = status === 304 || status === 204;
150
- const isHeadRequest = requestValues.method === 'HEAD';
151
- if (isHundreadStatus || isNoContentStatus || isHeadRequest) {
152
- finalResponse.write('');
153
- // end the response to avoid waiting for nothing
154
- response.end();
155
- }
156
- return finalResponse;
157
- }, ['status', 'headers', '', 'P"2!"2""/#']),
158
- log,
159
- });
160
- framework.sendRequest(app, request, response);
161
- log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:WAITING_STREAM_COMPLETE');
162
- await (0, core_1.waitForStreamComplete)(response);
163
- log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:STREAM_COMPLETE');
164
- context.response.end();
165
- }
166
- }
167
- exports.AwsStreamHandler = AwsStreamHandler;
168
- AwsStreamHandler.__type = ['TApp', () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, () => core_1.BaseHandler, 'app', () => __ΩFrameworkContract, 'framework', () => __ΩAdapterContract, () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, 'adapters', () => __ΩResolverContract, 'resolverFactory', () => __ΩBinarySettings, 'binarySettings', 'respondWithErrors', () => __ΩILogger, 'log', () => __ΩServerlessHandler, 'getHandler', () => __ΩILogger, 'event', () => __ΩAWSStreamContext, 'context', () => __ΩBinarySettings, 'onReceiveRequest', () => __ΩILogger, () => __ΩAdapterContract, () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, 'adapter', 'onResolveAdapter', () => __ΩILogger, () => __ΩAdapterRequest, 'requestValues', 'onResolveRequestValues', () => __ΩILogger, () => __ΩAWSStreamResponseMetadata, 'successResponse', 'onForwardResponseAdapterResponse', () => __ΩFrameworkContract, () => __ΩAWSStreamContext, () => __ΩAdapterContract, () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, () => __ΩBinarySettings, () => __ΩILogger, 'forwardRequestToFramework', () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, 'b!Pe"!"n"$n#$7$Pe"!2%e"!o&"2\'"n)n*o($F2+#####o,&2-n.2/)20n122$`o3"04Pn522"26n728n92/)20$0:<Pn;22"n=n>o<$2?$0@<PnA22nB2C$0D<PnE22nF2G"0H<Pe"!2%e"!oI"2\'"26nJ28"nLnMoK$2?nN2/nO22$`0P<5e!!"nQ$nR$6\''];
169
- //# sourceMappingURL=aws-stream.handler.js.map
1
+ "use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM=(mod,isNodeMode,target)=>(target=mod!=null?__create(__getProtoOf(mod)):{},__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target,mod)),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),aws_stream_handler_exports={};__export(aws_stream_handler_exports,{AwsStreamHandler:()=>AwsStreamHandler});module.exports=__toCommonJS(aws_stream_handler_exports);var import_util=__toESM(require("util")),import_core=require("../../core"),import_network=require("../../network");class AwsStreamHandler extends import_core.BaseHandler{getHandler(app,framework,adapters,resolverFactory,binarySettings,respondWithErrors,log){return awslambda.streamifyResponse(async(event,response,context)=>{const streamContext={response,context};this.onReceiveRequest(log,event,streamContext,binarySettings,respondWithErrors);const adapter=this.getAdapterByEventAndContext(event,streamContext,adapters,log);this.onResolveAdapter(log,adapter),(0,import_core.setCurrentInvoke)({event,context}),await this.forwardRequestToFramework(app,framework,event,streamContext,adapter,binarySettings,log)})}onReceiveRequest(log,event,context,binarySettings,respondWithErrors){log.debug("SERVERLESS_ADAPTER:PROXY",()=>({event,context:import_util.default.inspect(context,{depth:null}),binarySettings,respondWithErrors}))}onResolveAdapter(log,adapter){log.debug("SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ",adapter.getAdapterName())}onResolveRequestValues(log,requestValues){log.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES",()=>{var _a;return{requestValues:{...requestValues,body:(_a=requestValues.body)==null?void 0:_a.toString()}}})}onForwardResponseAdapterResponse(log,successResponse){log.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE",{successResponse})}async forwardRequestToFramework(app,framework,event,context,adapter,binarySettings,log){const requestValues=adapter.getRequest(event,context,log);this.onResolveRequestValues(log,requestValues);const request=new import_network.ServerlessRequest({method:requestValues.method,headers:requestValues.headers,body:requestValues.body,remoteAddress:requestValues.remoteAddress,url:requestValues.path}),response=new import_network.ServerlessStreamResponse({method:requestValues.method,onReceiveHeaders:(status,headers)=>{const flattenedHeaders=(0,import_core.getFlattenedHeadersMap)(headers),awsMetadata={statusCode:status,headers:flattenedHeaders},cookies=headers["set-cookie"];cookies&&(awsMetadata.cookies=Array.isArray(cookies)?cookies:[cookies],delete headers["set-cookie"],delete flattenedHeaders["set-cookie"]),this.onForwardResponseAdapterResponse(log,awsMetadata);const finalResponse=awslambda.HttpResponseStream.from(context.response,awsMetadata),isHundreadStatus=status>=100&&status<200,isNoContentStatus=status===304||status===204,isHeadRequest=requestValues.method==="HEAD";return(isHundreadStatus||isNoContentStatus||isHeadRequest)&&(finalResponse.write(""),response.end()),finalResponse},log});framework.sendRequest(app,request,response),log.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:WAITING_STREAM_COMPLETE"),await(0,import_core.waitForStreamComplete)(response),log.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:STREAM_COMPLETE"),context.response.end()}}
2
+ //# sourceMappingURL=aws-stream.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aws-stream.handler.js","sourceRoot":"","sources":["../../../src/handlers/aws/aws-stream.handler.ts"],"names":[],"mappings":";;;;;;yCAaO,iBAAiB;uCAAjB,iBAAiB;wCAAjB,iBAAiB;sCAPO,cAAc;+BActC,YAAY;yCAPZ,iBAAiB;sCAAjB,iBAAiB;;;;;;AAVxB,gDAAwB;AAWxB,qCAMoB;AACpB,2CAA4E;;;;;;;AA4C5E;;;;;GAKG;AACH,MAAa,gBAAuB,SAAQ,kBAO3C;IACC,wBAAwB;IAExB;;OAEG;IACI,UAAU,CACf,GAAS,EACT,SAAkC,EAClC,QAIG,EACH,eAMC,EACD,cAA8B,EAC9B,iBAA0B,EAC1B,GAAY;QAEZ,OAAO,SAAS,CAAC,iBAAiB,cAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE;YACpE,MAAM,aAAa,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YAE5C,IAAI,CAAC,gBAAgB,CACnB,GAAG,EACH,KAAK,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,CAClB,CAAC;YAEF,MAAM,OAAO,GAAG,IAAI,CAAC,2BAA2B,CAC9C,KAAK,EACL,aAAa,EACb,QAAQ,EACR,GAAG,CACJ,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAEpC,IAAA,uBAAgB,EAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAErC,MAAM,IAAI,CAAC,yBAAyB,CAClC,GAAG,EACH,SAAS,EACT,KAAK,EACL,aAAa,EACb,OAAO,EACP,cAAc,EACd,GAAG,CACJ,CAAC;QACJ,CAAC,yDAAC,CAAC;IACL,CAAC;IAED,YAAY;IAEZ,eAAe;IAEf;;;;;;;;OAQG;IACO,gBAAgB,CACxB,GAAY,EACZ,KAA6B,EAC7B,OAAyB,EACzB,cAA8B,EAC9B,iBAA0B;QAE1B,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,KAAK;YACL,OAAO,EAAE,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC/C,cAAc;YACd,iBAAiB;SAClB,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACO,gBAAgB,CACxB,GAAY,EACZ,OAIC;QAED,GAAG,CAAC,KAAK,CACP,4CAA4C,EAC5C,OAAO,CAAC,cAAc,EAAE,CACzB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,sBAAsB,CAC9B,GAAY,EACZ,aAA6B;QAE7B,GAAG,CAAC,KAAK,CACP,gEAAgE,EAChE,GAAG,EAAE;;YAAC,OAAA,CAAC;gBACL,aAAa,EAAE;oBACb,GAAG,aAAa;oBAChB,IAAI,EAAE,MAAA,aAAa,CAAC,IAAI,0CAAE,QAAQ,EAAE;iBACrC;aACF,CAAC,CAAA;SAAA,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,gCAAgC,CACxC,GAAY,EACZ,eAA0C;QAE1C,GAAG,CAAC,KAAK,CAAC,2DAA2D,EAAE;YACrE,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IAEZ,2BAA2B;IAE3B;;;;;;;;;;OAUG;IACO,KAAK,CAAC,yBAAyB,CACvC,GAAS,EACT,SAAkC,EAClC,KAA6B,EAC7B,OAAyB,EACzB,OAIC,EACD,cAA8B,EAC9B,GAAY;QAEZ,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAE9D,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,IAAI,2BAAiB,CAAC;YACpC,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;YACxB,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,GAAG,EAAE,aAAa,CAAC,IAAI;SACxB,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,kCAAwB,CAAC;YAC5C,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,gBAAgB,eAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;gBACpC,MAAM,gBAAgB,GAAG,IAAA,6BAAsB,EAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,WAAW,GAA8B;oBAC7C,UAAU,EAAE,MAAM;oBAClB,OAAO,EAAE,gBAAgB;iBAC1B,CAAC;gBAEF,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gBAEtC,IAAI,OAAO,EAAE;oBACX,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oBAEnE,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC;oBAC7B,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;iBACvC;gBAED,IAAI,CAAC,gCAAgC,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAExD,MAAM,aAAa,GAAG,SAAS,CAAC,kBAAkB,CAAC,IAAI,CACrD,OAAO,CAAC,QAAQ,EAChB,WAAW,CACZ,CAAC;gBAEF,sCAAsC;gBACtC,qFAAqF;gBACrF,8CAA8C;gBAC9C,4CAA4C;gBAC5C,MAAM,gBAAgB,GAAG,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,CAAC;gBACvD,MAAM,iBAAiB,GAAG,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC;gBAC3D,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC;gBAEtD,IAAI,gBAAgB,IAAI,iBAAiB,IAAI,aAAa,EAAE;oBAC1D,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACxB,gDAAgD;oBAChD,QAAQ,CAAC,GAAG,EAAE,CAAC;iBAChB;gBAED,OAAO,aAAa,CAAC;YACvB,CAAC,0CAAA;YACD,GAAG;SACJ,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAE9C,GAAG,CAAC,KAAK,CACP,yEAAyE,CAC1E,CAAC;QACF,MAAM,IAAA,4BAAqB,EAAC,QAAQ,CAAC,CAAC;QAEtC,GAAG,CAAC,KAAK,CACP,iEAAiE,CAClE,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IACzB,CAAC;;AArPH,4CAwPC"}
1
+ {"version":3,"file":"aws-stream.handler.js","sources":["../../../src/handlers/aws/aws-stream.handler.ts"],"sourcesContent":["//#region Imports\n\nimport { Writable } from 'stream';\nimport util from 'util';\nimport type { APIGatewayProxyEventV2, Context } from 'aws-lambda';\nimport type { APIGatewayProxyStructuredResultV2 } from 'aws-lambda/trigger/api-gateway-proxy';\nimport { BinarySettings } from '../../@types';\nimport {\n AdapterContract,\n AdapterRequest,\n FrameworkContract,\n ResolverContract,\n ServerlessHandler,\n} from '../../contracts';\nimport {\n BaseHandler,\n ILogger,\n getFlattenedHeadersMap,\n setCurrentInvoke,\n waitForStreamComplete,\n} from '../../core';\nimport { ServerlessRequest, ServerlessStreamResponse } from '../../network';\n\n//#endregion\n\n/**\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\nexport type AWSResponseStream = Writable;\n\n/**\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\nexport type AWSStreamResponseMetadata = Pick<\n APIGatewayProxyStructuredResultV2,\n 'statusCode' | 'headers' | 'cookies'\n>;\n\n/**\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\ndeclare const awslambda: {\n streamifyResponse: (\n handler: (\n event: APIGatewayProxyEventV2,\n response: AWSResponseStream,\n context: Context,\n ) => Promise<void>,\n ) => any;\n HttpResponseStream: {\n from: (\n stream: AWSResponseStream,\n httpResponseMetadata: AWSStreamResponseMetadata,\n ) => AWSResponseStream;\n };\n};\n\n/**\n * The interface that describes the internal context used by the {@link AwsStreamHandler}\n *\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\nexport type AWSStreamContext = {\n /**\n * The response stream provided by the serverless\n */\n response: AWSResponseStream;\n /**\n * The context provided by the serverless\n */\n context: Context;\n};\n\n/**\n * The class that implements a default serverless handler consisting of a function with event, context and callback parameters respectively\n *\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\nexport class AwsStreamHandler<TApp> extends BaseHandler<\n TApp,\n APIGatewayProxyEventV2,\n AWSStreamContext,\n void,\n AWSStreamResponseMetadata,\n void\n> {\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getHandler(\n app: TApp,\n framework: FrameworkContract<TApp>,\n adapters: AdapterContract<\n APIGatewayProxyEventV2,\n AWSStreamContext,\n AWSStreamResponseMetadata\n >[],\n resolverFactory: ResolverContract<\n unknown,\n unknown,\n unknown,\n unknown,\n unknown\n >,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n log: ILogger,\n ): ServerlessHandler<Promise<void>> {\n return awslambda.streamifyResponse(async (event, response, context) => {\n const streamContext = { response, context };\n\n this.onReceiveRequest(\n log,\n event,\n streamContext,\n binarySettings,\n respondWithErrors,\n );\n\n const adapter = this.getAdapterByEventAndContext(\n event,\n streamContext,\n adapters,\n log,\n );\n\n this.onResolveAdapter(log, adapter);\n\n setCurrentInvoke({ event, context });\n\n await this.forwardRequestToFramework(\n app,\n framework,\n event,\n streamContext,\n adapter,\n binarySettings,\n log,\n );\n });\n }\n\n //#endregion\n\n //#region Hooks\n\n /**\n * The hook executed on receive a request, before the request is being processed\n *\n * @param log - The instance of logger\n * @param event - The event sent by serverless\n * @param context - The context sent by serverless\n * @param binarySettings - The binary settings\n * @param respondWithErrors - Indicates whether the error stack should be included in the response or not\n */\n protected onReceiveRequest(\n log: ILogger,\n event: APIGatewayProxyEventV2,\n context: AWSStreamContext,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n ): void {\n log.debug('SERVERLESS_ADAPTER:PROXY', () => ({\n event,\n context: util.inspect(context, { depth: null }),\n binarySettings,\n respondWithErrors,\n }));\n }\n\n /**\n * The hook executed after resolve the adapter that will be used to handle the request and response\n *\n * @param log - The instance of logger\n * @param adapter - The adapter resolved\n */\n protected onResolveAdapter(\n log: ILogger,\n adapter: AdapterContract<\n APIGatewayProxyEventV2,\n AWSStreamContext,\n AWSStreamResponseMetadata\n >,\n ): void {\n log.debug(\n 'SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ',\n adapter.getAdapterName(),\n );\n }\n\n /**\n * The hook executed after resolves the request values that will be sent to the framework\n *\n * @param log - The instance of logger\n * @param requestValues - The request values returned by the adapter\n */\n protected onResolveRequestValues(\n log: ILogger,\n requestValues: AdapterRequest,\n ): void {\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES',\n () => ({\n requestValues: {\n ...requestValues,\n body: requestValues.body?.toString(),\n },\n }),\n );\n }\n\n /**\n * The hook executed before sending response to the serverless with response from adapter\n *\n * @param log - The instance of logger\n * @param successResponse - The success response resolved by the adapter\n */\n protected onForwardResponseAdapterResponse(\n log: ILogger,\n successResponse: AWSStreamResponseMetadata,\n ) {\n log.debug('SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE', {\n successResponse,\n });\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * The function to forward the event to the framework\n *\n * @param app - The instance of the app (express, hapi, etc...)\n * @param framework - The framework that will process requests\n * @param event - The event sent by serverless\n * @param context - The context sent by serverless\n * @param adapter - The adapter resolved to this event\n * @param log - The instance of logger\n * @param binarySettings - The binary settings\n */\n protected async forwardRequestToFramework(\n app: TApp,\n framework: FrameworkContract<TApp>,\n event: APIGatewayProxyEventV2,\n context: AWSStreamContext,\n adapter: AdapterContract<\n APIGatewayProxyEventV2,\n AWSStreamContext,\n AWSStreamResponseMetadata\n >,\n binarySettings: BinarySettings,\n log: ILogger,\n ): Promise<void> {\n const requestValues = adapter.getRequest(event, context, log);\n\n this.onResolveRequestValues(log, requestValues);\n\n const request = new ServerlessRequest({\n method: requestValues.method,\n headers: requestValues.headers,\n body: requestValues.body,\n remoteAddress: requestValues.remoteAddress,\n url: requestValues.path,\n });\n\n const response = new ServerlessStreamResponse({\n method: requestValues.method,\n onReceiveHeaders: (status, headers) => {\n const flattenedHeaders = getFlattenedHeadersMap(headers);\n const awsMetadata: AWSStreamResponseMetadata = {\n statusCode: status,\n headers: flattenedHeaders,\n };\n\n const cookies = headers['set-cookie'];\n\n if (cookies) {\n awsMetadata.cookies = Array.isArray(cookies) ? cookies : [cookies];\n\n delete headers['set-cookie'];\n delete flattenedHeaders['set-cookie'];\n }\n\n this.onForwardResponseAdapterResponse(log, awsMetadata);\n\n const finalResponse = awslambda.HttpResponseStream.from(\n context.response,\n awsMetadata,\n );\n\n // some status do not return body, and\n // for some unknown reason, we cannot finish the stream without writing at least once\n // so I have this thing just to fix this issue\n // ref: https://stackoverflow.com/a/37303151\n const isHundreadStatus = status >= 100 && status < 200;\n const isNoContentStatus = status === 304 || status === 204;\n const isHeadRequest = requestValues.method === 'HEAD';\n\n if (isHundreadStatus || isNoContentStatus || isHeadRequest) {\n finalResponse.write('');\n // end the response to avoid waiting for nothing\n response.end();\n }\n\n return finalResponse;\n },\n log,\n });\n\n framework.sendRequest(app, request, response);\n\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:WAITING_STREAM_COMPLETE',\n );\n await waitForStreamComplete(response);\n\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:STREAM_COMPLETE',\n );\n context.response.end();\n }\n\n //#endregion\n}\n"],"names":["util"],"mappings":"i4BAAA,2BAAA,CAAA,EAAA,SAAA,2BAAA,CAAA,iBAAA,IAAA,gBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,0BAAA,EAGA,IAAiB,YAAA,QAAA,QAAA,MAAA,CAAA,EAiBV,YAAA,QAAA,YAAA,EACqD,eAAA,QAAA,eAAA,EA8DrD,MAAM,yBAA+B,YAO1C,WAAA,CAMO,WACL,IACA,UACA,SAKA,gBAOA,eACA,kBACA,IACkC,CAClC,OAAO,UAAU,kBAAkB,MAAO,MAAO,SAAU,UAAY,CAC/D,MAAA,cAAgB,CAAE,SAAU,SAE7B,KAAA,iBACH,IACA,MACA,cACA,eACA,iBAAA,EAGF,MAAM,QAAU,KAAK,4BACnB,MACA,cACA,SACA,GAAA,EAGG,KAAA,iBAAiB,IAAK,OAAO,KAEjB,YAAA,kBAAA,CAAE,MAAO,OAAS,CAAA,EAEnC,MAAM,KAAK,0BACT,IACA,UACA,MACA,cACA,QACA,eACA,GAAA,CACF,CACD,CACH,CAeU,iBACR,IACA,MACA,QACA,eACA,kBACM,CACF,IAAA,MAAM,2BAA4B,KAAO,CAC3C,MACA,QAAS,YAAAA,QAAK,QAAQ,QAAS,CAAE,MAAO,KAAM,EAC9C,eACA,iBACA,EAAA,CACJ,CAQU,iBACR,IACA,QAKM,CACF,IAAA,MACF,6CACA,QAAQ,eAAe,CAAA,CAE3B,CAQU,uBACR,IACA,cACM,CACF,IAAA,MACF,iEACA,IAAO,QAAA,OACL,cAAe,CACb,GAAG,cACH,MAAM,iBAAc,OAAd,eAAoB,UAC5B,CAAA,EACF,CAEJ,CAQU,iCACR,IACA,gBACA,CACA,IAAI,MAAM,4DAA6D,CACrE,eAAA,CACD,CACH,CAiBA,MAAgB,0BACd,IACA,UACA,MACA,QACA,QAKA,eACA,IACe,CACf,MAAM,cAAgB,QAAQ,WAAW,MAAO,QAAS,GAAG,EAEvD,KAAA,uBAAuB,IAAK,aAAa,EAExC,MAAA,QAAU,IAAI,eAAkB,kBAAA,CACpC,OAAQ,cAAc,OACtB,QAAS,cAAc,QACvB,KAAM,cAAc,KACpB,cAAe,cAAc,cAC7B,IAAK,cAAc,IAAA,CACpB,EAEK,SAAW,IAAI,eAAyB,yBAAA,CAC5C,OAAQ,cAAc,OACtB,iBAAkB,CAAC,OAAQ,UAAY,CAC/B,MAAA,oBAAmB,oCAAuB,OAAO,EACjD,YAAyC,CAC7C,WAAY,OACZ,QAAS,gBAAA,EAGL,QAAU,QAAQ,YAAY,EAEhC,UACF,YAAY,QAAU,MAAM,QAAQ,OAAO,EAAI,QAAU,CAAC,OAAO,EAEjE,OAAO,QAAQ,YAAY,EAC3B,OAAO,iBAAiB,YAAY,GAGjC,KAAA,iCAAiC,IAAK,WAAW,EAEhD,MAAA,cAAgB,UAAU,mBAAmB,KACjD,QAAQ,SACR,WAAA,EAOI,iBAAmB,QAAU,KAAO,OAAS,IAC7C,kBAAoB,SAAW,KAAO,SAAW,IACjD,cAAgB,cAAc,SAAW,OAE3C,OAAA,kBAAoB,mBAAqB,iBAC3C,cAAc,MAAM,EAAE,EAEtB,SAAS,IAAI,GAGR,aACT,EACA,GAAA,CACD,EAES,UAAA,YAAY,IAAK,QAAS,QAAQ,EAExC,IAAA,MACF,yEAAA,EAEF,QAAM,mCAAsB,QAAQ,EAEhC,IAAA,MACF,iEAAA,EAEF,QAAQ,SAAS,KACnB,CAGF"}
@@ -1 +1,2 @@
1
1
  export * from './aws-stream.handler';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/handlers/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./aws-stream.handler"), exports);
18
- //# sourceMappingURL=index.js.map
1
+ "use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__reExport=(target,mod,secondTarget)=>(__copyProps(target,mod,"default"),secondTarget&&__copyProps(secondTarget,mod,"default")),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),aws_exports={};module.exports=__toCommonJS(aws_exports);__reExport(aws_exports,require("./aws-stream.handler"),module.exports);
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/handlers/aws/index.ts"],"sourcesContent":["export * from './aws-stream.handler';\n"],"names":[],"mappings":"kqBAAA,YAAA,CAAA,EAAA,OAAA,QAAA,aAAA,WAAA,EAAA,WAAA,YAAc,QAAd,sBAAA,EAAA,OAAA,OAAA"}
@@ -42,4 +42,4 @@ export declare class AzureHandler<TApp, TEvent, TCallback, TResponse, TReturn> e
42
42
  */
43
43
  protected createLoggerFromContext(context: Context): ILogger;
44
44
  }
45
- export declare type __ΩAzureHandlerOptions = any[];
45
+ //# sourceMappingURL=azure.handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"azure.handler.d.ts","sourceRoot":"","sources":["../../../src/handlers/azure/azure.handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAA2C,MAAM,YAAY,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,+BAA+B,EAAE,OAAO,CAAC;CAC1C;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY,CACvB,IAAI,EACJ,MAAM,EACN,SAAS,EACT,SAAS,EACT,OAAO,CACP,SAAQ,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAMhE,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IAHvC;;OAEG;gBAC4B,OAAO,CAAC,iCAAqB;IAQ5D;;OAEG;IACI,UAAU,CACf,GAAG,EAAE,IAAI,EACT,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAClC,QAAQ,EAAE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EACvD,eAAe,EAAE,gBAAgB,CAC/B,MAAM,EACN,OAAO,EACP,SAAS,EACT,SAAS,EACT,OAAO,CACR,EACD,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,OAAO,EAC1B,GAAG,EAAE,OAAO,GACX,iBAAiB,CAAC,OAAO,CAAC;IAkC7B;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;CAW7D"}