@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
@@ -1,20 +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("./binary-settings"), exports);
18
- __exportStar(require("./headers"), exports);
19
- __exportStar(require("./helpers"), exports);
20
- //# 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),types_exports={};module.exports=__toCommonJS(types_exports);__reExport(types_exports,require("./binary-settings"),module.exports);__reExport(types_exports,require("./headers"),module.exports);__reExport(types_exports,require("./helpers"),module.exports);
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/@types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,4CAA0B;AAC1B,4CAA0B"}
1
+ {"version":3,"file":"index.js","sources":["../../src/@types/index.ts"],"sourcesContent":["export * from './binary-settings';\nexport * from './headers';\nexport * from './helpers';\n"],"names":[],"mappings":"kqBAAA,cAAA,CAAA,EAAA,OAAA,QAAA,aAAA,aAAA,EAAA,WAAA,cAAc,QAAd,mBAAA,EAAA,OAAA,OAAA,EACA,WAAA,cAAc,QADd,WAAA,EAAA,OAAA,OAAA,EAEA,WAAA,cAAc,QAFd,WAAA,EAAA,OAAA,OAAA"}
@@ -6,7 +6,7 @@ import { ILogger } from '../../core';
6
6
  * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter
7
7
  * @public
8
8
  */
9
- export declare type ApolloServerMutationAdapterOptions = {
9
+ export type ApolloServerMutationAdapterOptions = {
10
10
  /**
11
11
  * Specify the name of mutation that will be called when an event was received
12
12
  */
@@ -53,4 +53,4 @@ export declare class ApolloServerMutationAdapter<TEvent, TContext, TResponse, TB
53
53
  */
54
54
  onErrorWhileForwarding(props: OnErrorProps<TEvent, TResponse>): void;
55
55
  }
56
- export declare type __ΩApolloServerMutationAdapterOptions = any[];
56
+ //# sourceMappingURL=apollo-server-mutation.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apollo-server-mutation.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/apollo-server/apollo-server-mutation.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,OAAO,EAGR,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,MAAM,kCAAkC,GAAG;IAC/C;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,2BAA2B,CACtC,MAAM,EACN,QAAQ,EACR,SAAS,EACT,YAAY,SAAS,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CACjE,YAAW,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;IAQrD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,YAAY;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,kCAAkC;IALhE;;OAEG;gBAEkB,WAAW,EAAE,YAAY,EACzB,OAAO,EAAE,kCAAkC;IAOhE;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO;IAI1E;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,UAAU,CACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EACjB,GAAG,EAAE,OAAO,GACX,cAAc;IA4BjB;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,SAAS;IAerE;;OAEG;IACI,sBAAsB,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;CAK5E"}
@@ -1,86 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApolloServerMutationAdapter = exports.__ΩApolloServerMutationAdapterOptions = void 0;
4
- const { __ΩILogger } = require('../../core');
5
- const { __ΩAdapterRequest } = require('../../contracts');
6
- const { __ΩGetResponseAdapterProps } = require('../../contracts');
7
- const { __ΩOnErrorProps } = require('../../contracts');
8
- const core_1 = require("../../core");
9
- const __ΩApolloServerMutationAdapterOptions = ['mutationName', 'mutationResultQuery', 'P&4!&4"8M'];
10
- exports.__ΩApolloServerMutationAdapterOptions = __ΩApolloServerMutationAdapterOptions;
11
- /**
12
- * The adapter that wraps another adapter to force a transformation of the event data as a mutation to Apollo Server be able to handle.
13
- *
14
- * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter
15
- * @public
16
- */
17
- class ApolloServerMutationAdapter {
18
- //#region Constructor
19
- /**
20
- * The default constructor
21
- */
22
- constructor(baseAdapter, options) {
23
- this.baseAdapter = baseAdapter;
24
- this.options = options;
25
- }
26
- //#endregion
27
- //#region Public Methods
28
- /**
29
- * {@inheritDoc}
30
- */
31
- canHandle(event, context, log) {
32
- return this.baseAdapter.canHandle(event, context, log);
33
- }
34
- /**
35
- * {@inheritDoc}
36
- */
37
- getAdapterName() {
38
- return this.baseAdapter.getAdapterName() + 'Mutation';
39
- }
40
- /**
41
- * {@inheritDoc}
42
- */
43
- getRequest(event, context, log) {
44
- var _a;
45
- const request = this.baseAdapter.getRequest(event, context, log);
46
- request.method = 'POST';
47
- const operationName = this.options.mutationName;
48
- const mutationResultQuery = (0, core_1.getDefaultIfUndefined)(this.options.mutationResultQuery, '{ __typename }');
49
- const mutationBody = JSON.stringify({
50
- operationName,
51
- query: `mutation ${operationName} ($event: String) { ${operationName} (event: $event) ${mutationResultQuery} }`,
52
- variables: {
53
- event: ((_a = request.body) === null || _a === void 0 ? void 0 : _a.toString()) || '',
54
- },
55
- });
56
- const [buffer, contentLength] = (0, core_1.getEventBodyAsBuffer)(mutationBody, false);
57
- request.body = buffer;
58
- request.headers['content-type'] = 'application/json';
59
- request.headers['content-length'] = String(contentLength);
60
- return request;
61
- }
62
- /**
63
- * {@inheritDoc}
64
- */
65
- getResponse(props) {
66
- const { data, errors } = JSON.parse(props.body);
67
- if (!errors) {
68
- return this.baseAdapter.getResponse({
69
- ...props,
70
- body: JSON.stringify(data[this.options.mutationName]),
71
- });
72
- }
73
- // when error happens, is the responsability of base adapter
74
- // to deal with error status code.
75
- return this.baseAdapter.getResponse(props);
76
- }
77
- /**
78
- * {@inheritDoc}
79
- */
80
- onErrorWhileForwarding(props) {
81
- return this.baseAdapter.onErrorWhileForwarding(props);
82
- }
83
- }
84
- exports.ApolloServerMutationAdapter = ApolloServerMutationAdapter;
85
- ApolloServerMutationAdapter.__type = ['TEvent', 'TContext', 'TResponse', 'TBaseAdapter', 'baseAdapter', () => __ΩApolloServerMutationAdapterOptions, 'options', 'constructor', 'event', 'context', () => __ΩILogger, 'log', 'canHandle', 'getAdapterName', () => __ΩILogger, () => __ΩAdapterRequest, 'getRequest', () => __ΩGetResponseAdapterProps, 'props', 'getResponse', () => __ΩOnErrorProps, 'onErrorWhileForwarding', 'b!b"b#b$Pe"$2%<9n&2\'<9"0(P#2)e""2*n+2,)0-P&0.Pe"!2)e""2*n/2,n001Pe"!o2"23e"#04Pe"!e"#o5#23$065e!!e!"e!#6$'];
86
- //# sourceMappingURL=apollo-server-mutation.adapter.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),apollo_server_mutation_adapter_exports={};__export(apollo_server_mutation_adapter_exports,{ApolloServerMutationAdapter:()=>ApolloServerMutationAdapter});module.exports=__toCommonJS(apollo_server_mutation_adapter_exports);var import_core=require("../../core");class ApolloServerMutationAdapter{constructor(baseAdapter,options){this.baseAdapter=baseAdapter,this.options=options}canHandle(event,context,log){return this.baseAdapter.canHandle(event,context,log)}getAdapterName(){return this.baseAdapter.getAdapterName()+"Mutation"}getRequest(event,context,log){var _a;const request=this.baseAdapter.getRequest(event,context,log);request.method="POST";const operationName=this.options.mutationName,mutationResultQuery=(0,import_core.getDefaultIfUndefined)(this.options.mutationResultQuery,"{ __typename }"),mutationBody=JSON.stringify({operationName,query:`mutation ${operationName} ($event: String) { ${operationName} (event: $event) ${mutationResultQuery} }`,variables:{event:((_a=request.body)==null?void 0:_a.toString())||""}}),[buffer,contentLength]=(0,import_core.getEventBodyAsBuffer)(mutationBody,!1);return request.body=buffer,request.headers["content-type"]="application/json",request.headers["content-length"]=String(contentLength),request}getResponse(props){const{data,errors}=JSON.parse(props.body);return errors?this.baseAdapter.getResponse(props):this.baseAdapter.getResponse({...props,body:JSON.stringify(data[this.options.mutationName])})}onErrorWhileForwarding(props){return this.baseAdapter.onErrorWhileForwarding(props)}}
2
+ //# sourceMappingURL=apollo-server-mutation.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apollo-server-mutation.adapter.js","sourceRoot":"","sources":["../../../src/adapters/apollo-server/apollo-server-mutation.adapter.ts"],"names":[],"mappings":";;;+BAYO,YAAY;sCALZ,iBAAiB;+CAAjB,iBAAiB;oCAAjB,iBAAiB;AACxB,qCAIoB;;;AAyBpB;;;;;GAKG;AACH,MAAa,2BAA2B;IAOtC,qBAAqB;IAErB;;OAEG;IACH,YACqB,WAAyB,EACzB,OAA2C;QAD3C,gBAAW,GAAX,WAAW,CAAc;QACzB,YAAO,GAAP,OAAO,CAAoC;IAC7D,CAAC;IAEJ,YAAY;IAEZ,wBAAwB;IAExB;;OAEG;IACI,SAAS,CAAC,KAAc,EAAE,OAAiB,EAAE,GAAY;QAC9D,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,UAAU,CACf,KAAa,EACb,OAAiB,EACjB,GAAY;;QAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAEjE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAExB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QAChD,MAAM,mBAAmB,GAAG,IAAA,4BAAqB,EAC/C,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAChC,gBAAgB,CACjB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,aAAa;YACb,KAAK,EAAE,YAAY,aAAa,uBAAuB,aAAa,oBAAoB,mBAAmB,IAAI;YAC/G,SAAS,EAAE;gBACT,KAAK,EAAE,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,QAAQ,EAAE,KAAI,EAAE;aACtC;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,IAAA,2BAAoB,EAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAE1E,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC;QACtB,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;QACrD,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAE1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACI,WAAW,CAAC,KAAsC;QACvD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;gBAClC,GAAG,KAAK;gBACR,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aACtD,CAAC,CAAC;SACJ;QAED,4DAA4D;QAC5D,kCAAkC;QAClC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,KAAsC;QAClE,OAAO,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;;AA7FH,kEAgGC"}
1
+ {"version":3,"file":"apollo-server-mutation.adapter.js","sources":["../../../src/adapters/apollo-server/apollo-server-mutation.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n ILogger,\n getDefaultIfUndefined,\n getEventBodyAsBuffer,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options for {@link ApolloServerMutationAdapter}\n *\n * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter\n * @public\n */\nexport type ApolloServerMutationAdapterOptions = {\n /**\n * Specify the name of mutation that will be called when an event was received\n */\n mutationName: string;\n\n /**\n * Specify the mutation result schema.\n * Use this to customize the behavior when you need to return a specific object to be handled by the Adapter, like SQS with Batch Mode.\n *\n * @defaultValue `{ __typename }`\n */\n mutationResultQuery?: string;\n};\n\n/**\n * The adapter that wraps another adapter to force a transformation of the event data as a mutation to Apollo Server be able to handle.\n *\n * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter\n * @public\n */\nexport class ApolloServerMutationAdapter<\n TEvent,\n TContext,\n TResponse,\n TBaseAdapter extends AdapterContract<TEvent, TContext, TResponse>,\n> implements AdapterContract<TEvent, TContext, TResponse>\n{\n //#region Constructor\n\n /**\n * The default constructor\n */\n constructor(\n protected readonly baseAdapter: TBaseAdapter,\n protected readonly options: ApolloServerMutationAdapterOptions,\n ) {}\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown, context: TContext, log: ILogger): boolean {\n return this.baseAdapter.canHandle(event, context, log);\n }\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return this.baseAdapter.getAdapterName() + 'Mutation';\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(\n event: TEvent,\n context: TContext,\n log: ILogger,\n ): AdapterRequest {\n const request = this.baseAdapter.getRequest(event, context, log);\n\n request.method = 'POST';\n\n const operationName = this.options.mutationName;\n const mutationResultQuery = getDefaultIfUndefined(\n this.options.mutationResultQuery,\n '{ __typename }',\n );\n\n const mutationBody = JSON.stringify({\n operationName,\n query: `mutation ${operationName} ($event: String) { ${operationName} (event: $event) ${mutationResultQuery} }`,\n variables: {\n event: request.body?.toString() || '',\n },\n });\n\n const [buffer, contentLength] = getEventBodyAsBuffer(mutationBody, false);\n\n request.body = buffer;\n request.headers['content-type'] = 'application/json';\n request.headers['content-length'] = String(contentLength);\n\n return request;\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse(props: GetResponseAdapterProps<TEvent>): TResponse {\n const { data, errors } = JSON.parse(props.body);\n\n if (!errors) {\n return this.baseAdapter.getResponse({\n ...props,\n body: JSON.stringify(data[this.options.mutationName]),\n });\n }\n\n // when error happens, is the responsability of base adapter\n // to deal with error status code.\n return this.baseAdapter.getResponse(props);\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding(props: OnErrorProps<TEvent, TResponse>): void {\n return this.baseAdapter.onErrorWhileForwarding(props);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,uCAAA,CAAA,EAAA,SAAA,uCAAA,CAAA,4BAAA,IAAA,2BAAA,CAAA,EAAA,OAAA,QAAA,aAAA,sCAAA,EAQA,IAIO,YAAA,QAAA,YAAA,EA+BA,MAAM,2BAMb,CAME,YACqB,YACA,QACnB,CAFmB,KAAA,YAAA,YACA,KAAA,QAAA,OAClB,CASI,UAAU,MAAgB,QAAmB,IAAuB,CACzE,OAAO,KAAK,YAAY,UAAU,MAAO,QAAS,GAAG,CACvD,CAKO,gBAAyB,CACvB,OAAA,KAAK,YAAY,eAAA,EAAmB,UAC7C,CAKO,WACL,MACA,QACA,IACgB,QAChB,MAAM,QAAU,KAAK,YAAY,WAAW,MAAO,QAAS,GAAG,EAE/D,QAAQ,OAAS,OAEX,MAAA,cAAgB,KAAK,QAAQ,aAC7B,uBAAsB,YAAA,uBAC1B,KAAK,QAAQ,oBACb,gBAAA,EAGI,aAAe,KAAK,UAAU,CAClC,cACA,MAAO,YAAY,oCAAoC,iCAAiC,wBACxF,UAAW,CACT,QAAO,WAAQ,OAAR,eAAc,aAAc,EACrC,CAAA,CACD,EAEK,CAAC,OAAQ,aAAa,KAAI,YAAA,sBAAqB,aAAc,EAAK,EAExE,eAAQ,KAAO,OACP,QAAA,QAAQ,cAAc,EAAI,mBAClC,QAAQ,QAAQ,gBAAgB,EAAI,OAAO,aAAa,EAEjD,OACT,CAKO,YAAY,MAAmD,CACpE,KAAM,CAAE,KAAM,QAAW,KAAK,MAAM,MAAM,IAAI,EAE9C,OAAK,OASE,KAAK,YAAY,YAAY,KAAK,EARhC,KAAK,YAAY,YAAY,CAClC,GAAG,MACH,KAAM,KAAK,UAAU,KAAK,KAAK,QAAQ,YAAY,CAAC,CAAA,CACrD,CAML,CAKO,uBAAuB,MAA8C,CACnE,OAAA,KAAK,YAAY,uBAAuB,KAAK,CACtD,CAGF"}
@@ -1 +1,2 @@
1
1
  export * from './apollo-server-mutation.adapter';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/apollo-server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,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("./apollo-server-mutation.adapter"), 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),apollo_server_exports={};module.exports=__toCommonJS(apollo_server_exports);__reExport(apollo_server_exports,require("./apollo-server-mutation.adapter"),module.exports);
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/apollo-server/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/adapters/apollo-server/index.ts"],"sourcesContent":["export * from './apollo-server-mutation.adapter';\n"],"names":[],"mappings":"kqBAAA,sBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,qBAAA,EAAA,WAAA,sBAAc,QAAd,kCAAA,EAAA,OAAA,OAAA"}
@@ -1,5 +1,6 @@
1
1
  import type { ALBEvent, ALBResult, Context } from 'aws-lambda';
2
2
  import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
3
+ import { StripBasePathFn } from '../../core';
3
4
  /**
4
5
  * The options to customize the {@link AlbAdapter}
5
6
  *
@@ -36,6 +37,10 @@ export declare class AlbAdapter implements AdapterContract<ALBEvent, Context, AL
36
37
  * @param options - The options to customize the {@link AlbAdapter}
37
38
  */
38
39
  constructor(options?: AlbAdapterOptions | undefined);
40
+ /**
41
+ * Strip base path function
42
+ */
43
+ protected stripPathFn: StripBasePathFn;
39
44
  /**
40
45
  * {@inheritDoc}
41
46
  */
@@ -63,4 +68,4 @@ export declare class AlbAdapter implements AdapterContract<ALBEvent, Context, AL
63
68
  */
64
69
  protected getPathFromEvent(event: ALBEvent): string;
65
70
  }
66
- export declare type __ΩAlbAdapterOptions = any[];
71
+ //# sourceMappingURL=alb.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"alb.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/alb.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAMhB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,UACX,YAAW,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IAS5C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IALvC;;;;OAIG;gBAC4B,OAAO,CAAC,+BAAmB;IAQ1D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IAMvC;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ;IAMnD;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,cAAc;IAkClD;;OAEG;IACI,WAAW,CAAC,EACjB,KAAK,EACL,OAAO,EAAE,eAAe,EACxB,IAAI,EACJ,eAAe,EACf,UAAU,GACX,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,SAAS;IAkBhD;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI;IAkB3C;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;CAWpD"}
@@ -1,129 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AlbAdapter = exports.__ΩAlbAdapterOptions = void 0;
4
- const { __ΩAdapterRequest } = require('../../contracts');
5
- const { __ΩGetResponseAdapterProps } = require('../../contracts');
6
- const { __ΩOnErrorProps } = require('../../contracts');
7
- const core_1 = require("../../core");
8
- const __ΩAlbAdapterOptions = ['stripBasePath', 'P&4!8M'];
9
- exports.__ΩAlbAdapterOptions = __ΩAlbAdapterOptions;
10
- /**
11
- * The adapter to handle requests from AWS ALB
12
- *
13
- * @example
14
- * ```typescript
15
- * const stripBasePath = '/any/custom/base/path'; // default ''
16
- * const adapter = new AlbAdapter({ stripBasePath });
17
- * ```
18
- *
19
- * {@link https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html | Event Reference}
20
- *
21
- * @breadcrumb Adapters / AWS / AlbAdapter
22
- * @public
23
- */
24
- class AlbAdapter {
25
- //#region Constructor
26
- /**
27
- * Default constructor
28
- *
29
- * @param options - The options to customize the {@link AlbAdapter}
30
- */
31
- constructor(options) {
32
- this.options = options;
33
- }
34
- //#endregion
35
- //#region Public Methods
36
- /**
37
- * {@inheritDoc}
38
- */
39
- getAdapterName() {
40
- return AlbAdapter.name;
41
- }
42
- /**
43
- * {@inheritDoc}
44
- */
45
- canHandle(event) {
46
- const albEvent = event;
47
- return !!((albEvent === null || albEvent === void 0 ? void 0 : albEvent.requestContext) && albEvent.requestContext.elb);
48
- }
49
- /**
50
- * {@inheritDoc}
51
- */
52
- getRequest(event) {
53
- const method = event.httpMethod;
54
- const path = this.getPathFromEvent(event);
55
- const headers = event.multiValueHeaders
56
- ? (0, core_1.getFlattenedHeadersMap)(event.multiValueHeaders, ',', true)
57
- : event.headers;
58
- let body;
59
- if (event.body) {
60
- const [bufferBody, contentLength] = (0, core_1.getEventBodyAsBuffer)(event.body, event.isBase64Encoded);
61
- body = bufferBody;
62
- headers['content-length'] = String(contentLength);
63
- }
64
- let remoteAddress = '';
65
- // ref: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/x-forwarded-headers.html#x-forwarded-for
66
- if (headers['x-forwarded-for'])
67
- remoteAddress = headers['x-forwarded-for'];
68
- return {
69
- method,
70
- headers,
71
- body,
72
- remoteAddress,
73
- path,
74
- };
75
- }
76
- /**
77
- * {@inheritDoc}
78
- */
79
- getResponse({ event, headers: responseHeaders, body, isBase64Encoded, statusCode, }) {
80
- const multiValueHeaders = !event.headers
81
- ? (0, core_1.getMultiValueHeadersMap)(responseHeaders)
82
- : undefined;
83
- const headers = event.headers
84
- ? (0, core_1.getFlattenedHeadersMap)(responseHeaders)
85
- : undefined;
86
- return {
87
- statusCode,
88
- body,
89
- headers,
90
- multiValueHeaders,
91
- isBase64Encoded,
92
- };
93
- }
94
- /**
95
- * {@inheritDoc}
96
- */
97
- onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }) {
98
- const body = respondWithErrors ? error.stack || '' : '';
99
- const errorResponse = this.getResponse({
100
- event,
101
- statusCode: 500,
102
- body,
103
- headers: {},
104
- isBase64Encoded: false,
105
- log,
106
- });
107
- delegatedResolver.succeed(errorResponse);
108
- }
109
- //#endregion
110
- //#region Protected Methods
111
- /**
112
- * Get path from event with query strings
113
- *
114
- * @param event - The event sent by serverless
115
- */
116
- getPathFromEvent(event) {
117
- var _a;
118
- const stripBasePath = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.stripBasePath, '');
119
- const replaceRegex = new RegExp(`^${stripBasePath}`);
120
- const path = event.path.replace(replaceRegex, '');
121
- const queryParams = event.headers
122
- ? event.queryStringParameters
123
- : event.multiValueQueryStringParameters;
124
- return (0, core_1.getPathWithQueryStringParams)(path, queryParams || {});
125
- }
126
- }
127
- exports.AlbAdapter = AlbAdapter;
128
- AlbAdapter.__type = [() => __ΩAlbAdapterOptions, 'options', 'constructor', 'getAdapterName', 'event', 'canHandle', () => __ΩAdapterRequest, 'getRequest', () => __ΩGetResponseAdapterProps, 'param0', 'getResponse', () => __ΩOnErrorProps, 'onErrorWhileForwarding', 'getPathFromEvent', 'Pn!2"8<9"0#P&0$P#2%!0&P"2%n\'0(P"o)"2*"0+P""o,#2*$0-P"2%&0.<5"""6$'];
129
- //# sourceMappingURL=alb.adapter.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),alb_adapter_exports={};__export(alb_adapter_exports,{AlbAdapter:()=>AlbAdapter});module.exports=__toCommonJS(alb_adapter_exports);var import_core=require("../../core");class AlbAdapter{constructor(options){var _a;this.options=options,this.stripPathFn=(0,import_core.buildStripBasePath)((_a=this.options)==null?void 0:_a.stripBasePath)}getAdapterName(){return AlbAdapter.name}canHandle(event){const albEvent=event;return!!(albEvent!=null&&albEvent.requestContext&&albEvent.requestContext.elb)}getRequest(event){const method=event.httpMethod,path=this.getPathFromEvent(event),headers=event.multiValueHeaders?(0,import_core.getFlattenedHeadersMap)(event.multiValueHeaders,",",!0):event.headers;let body;if(event.body){const[bufferBody,contentLength]=(0,import_core.getEventBodyAsBuffer)(event.body,event.isBase64Encoded);body=bufferBody,headers["content-length"]=String(contentLength)}let remoteAddress="";return headers["x-forwarded-for"]&&(remoteAddress=headers["x-forwarded-for"]),{method,headers,body,remoteAddress,path}}getResponse({event,headers:responseHeaders,body,isBase64Encoded,statusCode}){const multiValueHeaders=event.headers?void 0:(0,import_core.getMultiValueHeadersMap)(responseHeaders),headers=event.headers?(0,import_core.getFlattenedHeadersMap)(responseHeaders):void 0;return{statusCode,body,headers,multiValueHeaders,isBase64Encoded}}onErrorWhileForwarding({error,delegatedResolver,respondWithErrors,event,log}){const body=respondWithErrors&&error.stack||"",errorResponse=this.getResponse({event,statusCode:500,body,headers:{},isBase64Encoded:!1,log});delegatedResolver.succeed(errorResponse)}getPathFromEvent(event){const path=this.stripPathFn(event.path),queryParams=event.headers?event.queryStringParameters:event.multiValueQueryStringParameters;return(0,import_core.getPathWithQueryStringParams)(path,queryParams||{})}}
2
+ //# sourceMappingURL=alb.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"alb.adapter.js","sourceRoot":"","sources":["../../../src/adapters/aws/alb.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alb.adapter.js","sources":["../../../src/adapters/aws/alb.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { ALBEvent, ALBResult, Context } from 'aws-lambda';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n StripBasePathFn,\n buildStripBasePath,\n getEventBodyAsBuffer,\n getFlattenedHeadersMap,\n getMultiValueHeadersMap,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link AlbAdapter}\n *\n * @breadcrumb Adapters / AWS / AlbAdapter\n * @public\n */\nexport interface AlbAdapterOptions {\n /**\n * Strip base path for custom domains\n *\n * @defaultValue ''\n */\n stripBasePath?: string;\n}\n\n/**\n * The adapter to handle requests from AWS ALB\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new AlbAdapter({ stripBasePath });\n * ```\n *\n * {@link https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html | Event Reference}\n *\n * @breadcrumb Adapters / AWS / AlbAdapter\n * @public\n */\nexport class AlbAdapter\n implements AdapterContract<ALBEvent, Context, ALBResult>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link AlbAdapter}\n */\n constructor(protected readonly options?: AlbAdapterOptions) {\n this.stripPathFn = buildStripBasePath(this.options?.stripBasePath);\n }\n\n //#endregion\n\n //#region Protected Properties\n\n /**\n * Strip base path function\n */\n protected stripPathFn: StripBasePathFn;\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return AlbAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is ALBEvent {\n const albEvent = event as Partial<ALBEvent>;\n\n return !!(albEvent?.requestContext && albEvent.requestContext.elb);\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: ALBEvent): AdapterRequest {\n const method = event.httpMethod;\n const path = this.getPathFromEvent(event);\n\n const headers = event.multiValueHeaders\n ? getFlattenedHeadersMap(event.multiValueHeaders, ',', true)\n : event.headers!;\n\n let body: Buffer | undefined;\n\n if (event.body) {\n const [bufferBody, contentLength] = getEventBodyAsBuffer(\n event.body,\n event.isBase64Encoded,\n );\n\n body = bufferBody;\n headers['content-length'] = String(contentLength);\n }\n\n let remoteAddress = '';\n\n // ref: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/x-forwarded-headers.html#x-forwarded-for\n if (headers['x-forwarded-for']) remoteAddress = headers['x-forwarded-for'];\n\n return {\n method,\n headers,\n body,\n remoteAddress,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n event,\n headers: responseHeaders,\n body,\n isBase64Encoded,\n statusCode,\n }: GetResponseAdapterProps<ALBEvent>): ALBResult {\n const multiValueHeaders = !event.headers\n ? getMultiValueHeadersMap(responseHeaders)\n : undefined;\n\n const headers = event.headers\n ? getFlattenedHeadersMap(responseHeaders)\n : undefined;\n\n return {\n statusCode,\n body,\n headers,\n multiValueHeaders,\n isBase64Encoded,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<ALBEvent, ALBResult>): void {\n const body = respondWithErrors ? error.stack || '' : '';\n const errorResponse = this.getResponse({\n event,\n statusCode: 500,\n body,\n headers: {},\n isBase64Encoded: false,\n log,\n });\n\n delegatedResolver.succeed(errorResponse);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get path from event with query strings\n *\n * @param event - The event sent by serverless\n */\n protected getPathFromEvent(event: ALBEvent): string {\n const path = this.stripPathFn(event.path);\n\n const queryParams = event.headers\n ? event.queryStringParameters\n : event.multiValueQueryStringParameters;\n\n return getPathWithQueryStringParams(path, queryParams || {});\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,oBAAA,CAAA,EAAA,SAAA,oBAAA,CAAA,WAAA,IAAA,UAAA,CAAA,EAAA,OAAA,QAAA,aAAA,mBAAA,EASA,IAOO,YAAA,QAAA,YAAA,EAiCA,MAAM,UAEb,CAQE,YAA+B,QAA6B,QAA7B,KAAA,QAAA,QAC7B,KAAK,eAAc,YAAA,qBAAmB,QAAK,UAAL,eAAc,aAAa,CACnE,CAkBO,gBAAyB,CAC9B,OAAO,WAAW,IACpB,CAKO,UAAU,MAAmC,CAClD,MAAM,SAAW,MAEjB,MAAO,CAAC,EAAE,yBAAU,gBAAkB,SAAS,eAAe,IAChE,CAKO,WAAW,MAAiC,CACjD,MAAM,OAAS,MAAM,WACf,KAAO,KAAK,iBAAiB,KAAK,EAElC,QAAU,MAAM,qBAClB,YAAA,wBAAuB,MAAM,kBAAmB,IAAK,EAAI,EACzD,MAAM,QAEN,IAAA,KAEJ,GAAI,MAAM,KAAM,CACR,KAAA,CAAC,WAAY,aAAa,KAAI,YAAA,sBAClC,MAAM,KACN,MAAM,eAAA,EAGD,KAAA,WACC,QAAA,gBAAgB,EAAI,OAAO,aAAa,EAGlD,IAAI,cAAgB,GAGpB,OAAI,QAAQ,iBAAiB,IAAG,cAAgB,QAAQ,iBAAiB,GAElE,CACL,OACA,QACA,KACA,cACA,IAAA,CAEJ,CAKO,YAAY,CACjB,MACA,QAAS,gBACT,KACA,gBACA,UAAA,EAC+C,CAC/C,MAAM,kBAAqB,MAAM,QAE7B,UADA,YAAA,yBAAwB,eAAe,EAGrC,QAAU,MAAM,WAClB,YAAA,wBAAuB,eAAe,EACtC,OAEG,MAAA,CACL,WACA,KACA,QACA,kBACA,eAAA,CAEJ,CAKO,uBAAuB,CAC5B,MACA,kBACA,kBACA,MACA,GAAA,EAC0C,CAC1C,MAAM,KAAO,mBAAoB,MAAM,OAAS,GAC1C,cAAgB,KAAK,YAAY,CACrC,MACA,WAAY,IACZ,KACA,QAAS,CAAC,EACV,gBAAiB,GACjB,GAAA,CACD,EAED,kBAAkB,QAAQ,aAAa,CACzC,CAWU,iBAAiB,MAAyB,CAClD,MAAM,KAAO,KAAK,YAAY,MAAM,IAAI,EAElC,YAAc,MAAM,QACtB,MAAM,sBACN,MAAM,gCAEV,SAAO,YAA6B,8BAAA,KAAM,aAAe,CAAE,CAAA,CAC7D,CAGF"}
@@ -1,6 +1,7 @@
1
1
  import type { APIGatewayProxyResult, Context } from 'aws-lambda';
2
2
  import type { APIGatewayProxyEvent } from 'aws-lambda/trigger/api-gateway-proxy';
3
3
  import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
4
+ import { StripBasePathFn } from '../../core';
4
5
  /**
5
6
  * The options to customize the {@link ApiGatewayV1Adapter}
6
7
  *
@@ -41,6 +42,10 @@ export declare class ApiGatewayV1Adapter implements AdapterContract<APIGatewayPr
41
42
  * @param options - The options to customize the {@link ApiGatewayV1Adapter}
42
43
  */
43
44
  constructor(options?: ApiGatewayV1Options | undefined);
45
+ /**
46
+ * Strip base path function
47
+ */
48
+ protected stripPathFn: StripBasePathFn;
44
49
  /**
45
50
  * {@inheritDoc}
46
51
  */
@@ -68,4 +73,4 @@ export declare class ApiGatewayV1Adapter implements AdapterContract<APIGatewayPr
68
73
  */
69
74
  protected getPathFromEvent(event: APIGatewayProxyEvent): string;
70
75
  }
71
- export declare type __ΩApiGatewayV1Options = any[];
76
+ //# sourceMappingURL=api-gateway-v1.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-gateway-v1.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/api-gateway-v1.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAKhB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBACX,YACE,eAAe,CAAC,oBAAoB,EAAE,OAAO,EAAE,qBAAqB,CAAC;IAS3D,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IALvC;;;;OAIG;gBAC4B,OAAO,CAAC,iCAAqB;IAQ5D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IAMvC;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB;IAiB/D;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc;IA4C9D;;OAEG;IACI,WAAW,CAAC,EACjB,OAAO,EAAE,eAAe,EACxB,IAAI,EACJ,eAAe,EACf,UAAU,EACV,QAAQ,GACT,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,qBAAqB;IA4BxE;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,GAAG,IAAI;IAkBnE;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;CAuBhE"}
@@ -1,140 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiGatewayV1Adapter = exports.__ΩApiGatewayV1Options = void 0;
4
- const { __ΩAdapterRequest } = require('../../contracts');
5
- const { __ΩGetResponseAdapterProps } = require('../../contracts');
6
- const { __ΩOnErrorProps } = require('../../contracts');
7
- function __assignType(fn, args) {
8
- fn.__type = args;
9
- return fn;
10
- }
11
- const core_1 = require("../../core");
12
- const __ΩApiGatewayV1Options = ['stripBasePath', 'P&4!8M'];
13
- exports.__ΩApiGatewayV1Options = __ΩApiGatewayV1Options;
14
- /**
15
- * The adapter to handle requests from AWS Api Gateway V1
16
- *
17
- * As per {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html | know issues}, we throw an exception when you send the `transfer-encoding=chunked`, currently, API Gateway doesn't support chunked transfer.
18
- *
19
- * @remarks This adapter is not fully compatible with \@vendia/serverless-express, on \@vendia they filter `transfer-encoding=chunked` but we throw an exception.
20
- *
21
- * @example
22
- * ```typescript
23
- * const stripBasePath = '/any/custom/base/path'; // default ''
24
- * const adapter = new ApiGatewayV1Adapter({ stripBasePath });
25
- * ```
26
- *
27
- * {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}
28
- *
29
- * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter
30
- * @public
31
- */
32
- class ApiGatewayV1Adapter {
33
- //#region Constructor
34
- /**
35
- * Default constructor
36
- *
37
- * @param options - The options to customize the {@link ApiGatewayV1Adapter}
38
- */
39
- constructor(options) {
40
- this.options = options;
41
- }
42
- //#endregion
43
- //#region Public Methods
44
- /**
45
- * {@inheritDoc}
46
- */
47
- getAdapterName() {
48
- return ApiGatewayV1Adapter.name;
49
- }
50
- /**
51
- * {@inheritDoc}
52
- */
53
- canHandle(event) {
54
- const partialEventV1 = event;
55
- return !!((partialEventV1 === null || partialEventV1 === void 0 ? void 0 : partialEventV1.requestContext) &&
56
- partialEventV1.version !== '2.0' &&
57
- partialEventV1.headers &&
58
- partialEventV1.multiValueHeaders &&
59
- ((partialEventV1.queryStringParameters === null &&
60
- partialEventV1.multiValueQueryStringParameters === null) ||
61
- (partialEventV1.queryStringParameters &&
62
- partialEventV1.multiValueQueryStringParameters)));
63
- }
64
- /**
65
- * {@inheritDoc}
66
- */
67
- getRequest(event) {
68
- const method = event.httpMethod;
69
- const headers = (0, core_1.getFlattenedHeadersMap)(event.headers, ',', true);
70
- const path = this.getPathFromEvent(event);
71
- let body;
72
- if (event.body) {
73
- const [bufferBody, contentLength] = (0, core_1.getEventBodyAsBuffer)(event.body, event.isBase64Encoded);
74
- body = bufferBody;
75
- headers['content-length'] = String(contentLength);
76
- }
77
- const remoteAddress = event.requestContext.identity.sourceIp;
78
- return {
79
- method,
80
- headers,
81
- body,
82
- remoteAddress,
83
- path,
84
- };
85
- }
86
- /**
87
- * {@inheritDoc}
88
- */
89
- getResponse({ headers: responseHeaders, body, isBase64Encoded, statusCode, response, }) {
90
- const multiValueHeaders = (0, core_1.getMultiValueHeadersMap)(responseHeaders);
91
- const transferEncodingHeader = multiValueHeaders['transfer-encoding'];
92
- const hasTransferEncodingChunked = transferEncodingHeader &&
93
- transferEncodingHeader.some(__assignType(value => value.includes('chunked'), ['value', '', 'P"2!"/"']));
94
- if (hasTransferEncodingChunked) {
95
- throw new Error('chunked encoding in headers is not supported by API Gateway V1');
96
- }
97
- if (response === null || response === void 0 ? void 0 : response.chunkedEncoding) {
98
- throw new Error('chunked encoding in response is not supported by API Gateway V1');
99
- }
100
- return {
101
- statusCode,
102
- body,
103
- multiValueHeaders,
104
- isBase64Encoded,
105
- };
106
- }
107
- /**
108
- * {@inheritDoc}
109
- */
110
- onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }) {
111
- const body = respondWithErrors ? error.stack : '';
112
- const errorResponse = this.getResponse({
113
- event,
114
- statusCode: 500,
115
- body: body || '',
116
- headers: {},
117
- isBase64Encoded: false,
118
- log,
119
- });
120
- delegatedResolver.succeed(errorResponse);
121
- }
122
- //#endregion
123
- //#region Protected Methods
124
- /**
125
- * Get path from event with query strings
126
- *
127
- * @param event - The event sent by serverless
128
- */
129
- getPathFromEvent(event) {
130
- var _a;
131
- const stripBasePath = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.stripBasePath, '');
132
- const replaceRegex = new RegExp(`^${stripBasePath}`);
133
- const path = event.path.replace(replaceRegex, '');
134
- const queryParams = event.queryStringParameters || {};
135
- return (0, core_1.getPathWithQueryStringParams)(path, queryParams);
136
- }
137
- }
138
- exports.ApiGatewayV1Adapter = ApiGatewayV1Adapter;
139
- ApiGatewayV1Adapter.__type = [() => __ΩApiGatewayV1Options, 'options', 'constructor', 'getAdapterName', 'event', 'canHandle', () => __ΩAdapterRequest, 'getRequest', () => __ΩGetResponseAdapterProps, 'param0', 'getResponse', () => __ΩOnErrorProps, 'onErrorWhileForwarding', 'getPathFromEvent', 'Pn!2"8<9"0#P&0$P#2%!0&P"2%n\'0(P"o)"2*"0+P""o,#2*$0-P"2%&0.<5"""6$'];
140
- //# sourceMappingURL=api-gateway-v1.adapter.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),api_gateway_v1_adapter_exports={};__export(api_gateway_v1_adapter_exports,{ApiGatewayV1Adapter:()=>ApiGatewayV1Adapter});module.exports=__toCommonJS(api_gateway_v1_adapter_exports);var import_core=require("../../core");class ApiGatewayV1Adapter{constructor(options){var _a;this.options=options,this.stripPathFn=(0,import_core.buildStripBasePath)((_a=this.options)==null?void 0:_a.stripBasePath)}getAdapterName(){return ApiGatewayV1Adapter.name}canHandle(event){const partialEventV1=event;return!!(partialEventV1!=null&&partialEventV1.requestContext&&partialEventV1.version!=="2.0"&&partialEventV1.headers&&partialEventV1.multiValueHeaders&&(partialEventV1.queryStringParameters===null&&partialEventV1.multiValueQueryStringParameters===null||partialEventV1.queryStringParameters&&partialEventV1.multiValueQueryStringParameters))}getRequest(event){const method=event.httpMethod,headers={...event.headers};for(const multiValueHeaderKey of Object.keys(event.multiValueHeaders||{})){const headerValue=event.multiValueHeaders[multiValueHeaderKey];!headerValue||(headerValue==null?void 0:headerValue.length)<=1||(headers[multiValueHeaderKey]=headerValue.join(","))}const path=this.getPathFromEvent(event);let body;if(event.body){const[bufferBody,contentLength]=(0,import_core.getEventBodyAsBuffer)(event.body,event.isBase64Encoded);body=bufferBody,headers["content-length"]=contentLength+""}const remoteAddress=event.requestContext.identity.sourceIp;return{method,headers,body,remoteAddress,path}}getResponse({headers:responseHeaders,body,isBase64Encoded,statusCode,response}){const multiValueHeaders=(0,import_core.getMultiValueHeadersMap)(responseHeaders),transferEncodingHeader=multiValueHeaders["transfer-encoding"];if(transferEncodingHeader==null?void 0:transferEncodingHeader.some(value=>value.includes("chunked")))throw new Error("chunked encoding in headers is not supported by API Gateway V1");if(response!=null&&response.chunkedEncoding)throw new Error("chunked encoding in response is not supported by API Gateway V1");return{statusCode,body,multiValueHeaders,isBase64Encoded}}onErrorWhileForwarding({error,delegatedResolver,respondWithErrors,event,log}){const body=respondWithErrors?error.stack:"",errorResponse=this.getResponse({event,statusCode:500,body:body||"",headers:{},isBase64Encoded:!1,log});delegatedResolver.succeed(errorResponse)}getPathFromEvent(event){const path=this.stripPathFn(event.path),queryParams=event.multiValueQueryStringParameters||{};if(event.queryStringParameters)for(const queryStringKey of Object.keys(event.queryStringParameters)){const queryStringValue=event.queryStringParameters[queryStringKey];queryStringValue!==void 0&&(Array.isArray(queryParams[queryStringKey])||(queryParams[queryStringKey]=[]),!queryParams[queryStringKey].includes(queryStringValue)&&queryParams[queryStringKey].push(queryStringValue))}return(0,import_core.getPathWithQueryStringParams)(path,queryParams)}}
2
+ //# sourceMappingURL=api-gateway-v1.adapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-gateway-v1.adapter.js","sourceRoot":"","sources":["../../../src/adapters/aws/api-gateway-v1.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-gateway-v1.adapter.js","sources":["../../../src/adapters/aws/api-gateway-v1.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { APIGatewayProxyResult, Context } from 'aws-lambda';\nimport type { APIGatewayProxyEvent } from 'aws-lambda/trigger/api-gateway-proxy';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n StripBasePathFn,\n buildStripBasePath,\n getEventBodyAsBuffer,\n getMultiValueHeadersMap,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link ApiGatewayV1Adapter}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter\n * @public\n */\nexport interface ApiGatewayV1Options {\n /**\n * Strip base path for custom domains\n *\n * @defaultValue ''\n */\n stripBasePath?: string;\n}\n\n/**\n * The adapter to handle requests from AWS Api Gateway V1\n *\n * As per {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html | know issues}, we throw an exception when you send the `transfer-encoding=chunked`, currently, API Gateway doesn't support chunked transfer.\n *\n * @remarks This adapter is not fully compatible with \\@vendia/serverless-express, on \\@vendia they filter `transfer-encoding=chunked` but we throw an exception.\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new ApiGatewayV1Adapter({ stripBasePath });\n * ```\n *\n * {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter\n * @public\n */\nexport class ApiGatewayV1Adapter\n implements\n AdapterContract<APIGatewayProxyEvent, Context, APIGatewayProxyResult>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link ApiGatewayV1Adapter}\n */\n constructor(protected readonly options?: ApiGatewayV1Options) {\n this.stripPathFn = buildStripBasePath(this.options?.stripBasePath);\n }\n\n //#endregion\n\n //#region Protected Properties\n\n /**\n * Strip base path function\n */\n protected stripPathFn: StripBasePathFn;\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return ApiGatewayV1Adapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is APIGatewayProxyEvent {\n const partialEventV1 = event as Partial<APIGatewayProxyEvent> & {\n version?: '2.0';\n };\n\n return !!(\n partialEventV1?.requestContext &&\n partialEventV1.version !== '2.0' &&\n partialEventV1.headers &&\n partialEventV1.multiValueHeaders &&\n ((partialEventV1.queryStringParameters === null &&\n partialEventV1.multiValueQueryStringParameters === null) ||\n (partialEventV1.queryStringParameters &&\n partialEventV1.multiValueQueryStringParameters))\n );\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: APIGatewayProxyEvent): AdapterRequest {\n const method = event.httpMethod;\n const headers = { ...event.headers };\n\n for (const multiValueHeaderKey of Object.keys(\n event.multiValueHeaders || {},\n )) {\n const headerValue = event.multiValueHeaders[multiValueHeaderKey];\n\n // event.headers by default only stick with first value if they see multiple headers\n // the other values will only appear on multiValueHeaderKey, in this case\n // we look for headers with more than 1 length which is the wrong values on event.headers\n // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html\n if (!headerValue || headerValue?.length <= 1) continue;\n\n headers[multiValueHeaderKey] = headerValue.join(',');\n }\n\n const path = this.getPathFromEvent(event);\n\n let body: Buffer | undefined;\n\n if (event.body) {\n const [bufferBody, contentLength] = getEventBodyAsBuffer(\n event.body,\n event.isBase64Encoded,\n );\n\n body = bufferBody;\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n headers['content-length'] = contentLength + '';\n }\n\n const remoteAddress = event.requestContext.identity.sourceIp;\n\n return {\n method,\n headers,\n body,\n remoteAddress,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n headers: responseHeaders,\n body,\n isBase64Encoded,\n statusCode,\n response,\n }: GetResponseAdapterProps<APIGatewayProxyEvent>): APIGatewayProxyResult {\n const multiValueHeaders = getMultiValueHeadersMap(responseHeaders);\n\n const transferEncodingHeader = multiValueHeaders['transfer-encoding'];\n const hasTransferEncodingChunked = transferEncodingHeader?.some(value =>\n value.includes('chunked'),\n );\n\n if (hasTransferEncodingChunked) {\n throw new Error(\n 'chunked encoding in headers is not supported by API Gateway V1',\n );\n }\n\n if (response?.chunkedEncoding) {\n throw new Error(\n 'chunked encoding in response is not supported by API Gateway V1',\n );\n }\n\n return {\n statusCode,\n body,\n multiValueHeaders,\n isBase64Encoded,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<APIGatewayProxyEvent, APIGatewayProxyResult>): void {\n const body = respondWithErrors ? error.stack : '';\n const errorResponse = this.getResponse({\n event,\n statusCode: 500,\n body: body || '',\n headers: {},\n isBase64Encoded: false,\n log,\n });\n\n delegatedResolver.succeed(errorResponse);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get path from event with query strings\n *\n * @param event - The event sent by serverless\n */\n protected getPathFromEvent(event: APIGatewayProxyEvent): string {\n const path = this.stripPathFn(event.path);\n const queryParams = event.multiValueQueryStringParameters || {};\n\n if (event.queryStringParameters) {\n for (const queryStringKey of Object.keys(event.queryStringParameters)) {\n const queryStringValue = event.queryStringParameters[queryStringKey];\n\n if (queryStringValue === undefined) continue;\n\n if (!Array.isArray(queryParams[queryStringKey]))\n queryParams[queryStringKey] = [];\n\n if (queryParams[queryStringKey]!.includes(queryStringValue)) continue;\n\n queryParams[queryStringKey]!.push(queryStringValue);\n }\n }\n\n return getPathWithQueryStringParams(path, queryParams);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,+BAAA,CAAA,EAAA,SAAA,+BAAA,CAAA,oBAAA,IAAA,mBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,8BAAA,EAUA,IAMO,YAAA,QAAA,YAAA,EAqCA,MAAM,mBAGb,CAQE,YAA+B,QAA+B,QAA/B,KAAA,QAAA,QAC7B,KAAK,eAAc,YAAA,qBAAmB,QAAK,UAAL,eAAc,aAAa,CACnE,CAkBO,gBAAyB,CAC9B,OAAO,oBAAoB,IAC7B,CAKO,UAAU,MAA+C,CAC9D,MAAM,eAAiB,MAIvB,MAAO,CAAC,EACN,qCAAgB,gBAChB,eAAe,UAAY,OAC3B,eAAe,SACf,eAAe,oBACb,eAAe,wBAA0B,MACzC,eAAe,kCAAoC,MAClD,eAAe,uBACd,eAAe,iCAEvB,CAKO,WAAW,MAA6C,CAC7D,MAAM,OAAS,MAAM,WACf,QAAU,CAAE,GAAG,MAAM,OAAQ,EAEnC,UAAW,uBAAuB,OAAO,KACvC,MAAM,mBAAqB,CAAC,CAAA,EAC3B,CACK,MAAA,YAAc,MAAM,kBAAkB,mBAAmB,EAM3D,CAAC,cAAe,qCAAa,SAAU,IAE3C,QAAQ,mBAAmB,EAAI,YAAY,KAAK,GAAG,GAG/C,MAAA,KAAO,KAAK,iBAAiB,KAAK,EAEpC,IAAA,KAEJ,GAAI,MAAM,KAAM,CACR,KAAA,CAAC,WAAY,aAAa,KAAI,YAAA,sBAClC,MAAM,KACN,MAAM,eAAA,EAGD,KAAA,WAEC,QAAA,gBAAgB,EAAI,cAAgB,GAGxC,MAAA,cAAgB,MAAM,eAAe,SAAS,SAE7C,MAAA,CACL,OACA,QACA,KACA,cACA,IAAA,CAEJ,CAKO,YAAY,CACjB,QAAS,gBACT,KACA,gBACA,WACA,QAAA,EACuE,CACjE,MAAA,qBAAoB,qCAAwB,eAAe,EAE3D,uBAAyB,kBAAkB,mBAAmB,EAKpE,GAJmC,2DAAwB,KAAK,OAC9D,MAAM,SAAS,SAAS,GAIxB,MAAM,IAAI,MACR,gEAAA,EAIJ,GAAI,yBAAU,gBACZ,MAAM,IAAI,MACR,iEAAA,EAIG,MAAA,CACL,WACA,KACA,kBACA,eAAA,CAEJ,CAKO,uBAAuB,CAC5B,MACA,kBACA,kBACA,MACA,GAAA,EACkE,CAC5D,MAAA,KAAO,kBAAoB,MAAM,MAAQ,GACzC,cAAgB,KAAK,YAAY,CACrC,MACA,WAAY,IACZ,KAAM,MAAQ,GACd,QAAS,CAAC,EACV,gBAAiB,GACjB,GAAA,CACD,EAED,kBAAkB,QAAQ,aAAa,CACzC,CAWU,iBAAiB,MAAqC,CAC9D,MAAM,KAAO,KAAK,YAAY,MAAM,IAAI,EAClC,YAAc,MAAM,iCAAmC,GAE7D,GAAI,MAAM,sBACR,UAAW,kBAAkB,OAAO,KAAK,MAAM,qBAAqB,EAAG,CAC/D,MAAA,iBAAmB,MAAM,sBAAsB,cAAc,EAE/D,mBAAqB,SAEpB,MAAM,QAAQ,YAAY,cAAc,CAAC,IAChC,YAAA,cAAc,EAAI,IAE5B,aAAY,cAAc,EAAG,SAAS,gBAAgB,GAE9C,YAAA,cAAc,EAAG,KAAK,gBAAgB,GAI/C,SAAA,YAAA,8BAA6B,KAAM,WAAW,CACvD,CAGF"}