@h4ad/serverless-adapter 3.1.0 → 4.0.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 +0 -5
  2. package/package.json +610 -58
  3. package/lib/@types/binary-settings.d.ts +0 -41
  4. package/lib/@types/binary-settings.d.ts.map +0 -1
  5. package/lib/@types/binary-settings.js +0 -2
  6. package/lib/@types/binary-settings.js.map +0 -1
  7. package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts +0 -37
  8. package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts.map +0 -1
  9. package/lib/@types/digital-ocean/digital-ocean-http-event.js +0 -2
  10. package/lib/@types/digital-ocean/digital-ocean-http-event.js.map +0 -1
  11. package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts +0 -22
  12. package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts.map +0 -1
  13. package/lib/@types/digital-ocean/digital-ocean-http-response.js +0 -2
  14. package/lib/@types/digital-ocean/digital-ocean-http-response.js.map +0 -1
  15. package/lib/@types/digital-ocean/index.d.ts +0 -2
  16. package/lib/@types/digital-ocean/index.d.ts.map +0 -1
  17. package/lib/@types/digital-ocean/index.js +0 -2
  18. package/lib/@types/digital-ocean/index.js.map +0 -1
  19. package/lib/@types/headers.d.ts +0 -37
  20. package/lib/@types/headers.d.ts.map +0 -1
  21. package/lib/@types/headers.js +0 -2
  22. package/lib/@types/headers.js.map +0 -1
  23. package/lib/@types/helpers.d.ts +0 -10
  24. package/lib/@types/helpers.d.ts.map +0 -1
  25. package/lib/@types/helpers.js +0 -2
  26. package/lib/@types/helpers.js.map +0 -1
  27. package/lib/@types/huawei/huawei-api-gateway-event.d.ts +0 -81
  28. package/lib/@types/huawei/huawei-api-gateway-event.d.ts.map +0 -1
  29. package/lib/@types/huawei/huawei-api-gateway-event.js +0 -2
  30. package/lib/@types/huawei/huawei-api-gateway-event.js.map +0 -1
  31. package/lib/@types/huawei/huawei-api-gateway-response.d.ts +0 -27
  32. package/lib/@types/huawei/huawei-api-gateway-response.d.ts.map +0 -1
  33. package/lib/@types/huawei/huawei-api-gateway-response.js +0 -2
  34. package/lib/@types/huawei/huawei-api-gateway-response.js.map +0 -1
  35. package/lib/@types/huawei/huawei-context.d.ts +0 -188
  36. package/lib/@types/huawei/huawei-context.d.ts.map +0 -1
  37. package/lib/@types/huawei/huawei-context.js +0 -2
  38. package/lib/@types/huawei/huawei-context.js.map +0 -1
  39. package/lib/@types/huawei/index.d.ts +0 -4
  40. package/lib/@types/huawei/index.d.ts.map +0 -1
  41. package/lib/@types/huawei/index.js +0 -2
  42. package/lib/@types/huawei/index.js.map +0 -1
  43. package/lib/@types/index.d.ts +0 -4
  44. package/lib/@types/index.d.ts.map +0 -1
  45. package/lib/@types/index.js +0 -2
  46. package/lib/@types/index.js.map +0 -1
  47. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts +0 -56
  48. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts.map +0 -1
  49. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js +0 -2
  50. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js.map +0 -1
  51. package/lib/adapters/apollo-server/index.d.ts +0 -2
  52. package/lib/adapters/apollo-server/index.d.ts.map +0 -1
  53. package/lib/adapters/apollo-server/index.js +0 -2
  54. package/lib/adapters/apollo-server/index.js.map +0 -1
  55. package/lib/adapters/aws/alb.adapter.d.ts +0 -71
  56. package/lib/adapters/aws/alb.adapter.d.ts.map +0 -1
  57. package/lib/adapters/aws/alb.adapter.js +0 -2
  58. package/lib/adapters/aws/alb.adapter.js.map +0 -1
  59. package/lib/adapters/aws/api-gateway-v1.adapter.d.ts +0 -76
  60. package/lib/adapters/aws/api-gateway-v1.adapter.d.ts.map +0 -1
  61. package/lib/adapters/aws/api-gateway-v1.adapter.js +0 -2
  62. package/lib/adapters/aws/api-gateway-v1.adapter.js.map +0 -1
  63. package/lib/adapters/aws/api-gateway-v2.adapter.d.ts +0 -75
  64. package/lib/adapters/aws/api-gateway-v2.adapter.d.ts.map +0 -1
  65. package/lib/adapters/aws/api-gateway-v2.adapter.js +0 -2
  66. package/lib/adapters/aws/api-gateway-v2.adapter.js.map +0 -1
  67. package/lib/adapters/aws/base/aws-simple-adapter.d.ts +0 -83
  68. package/lib/adapters/aws/base/aws-simple-adapter.d.ts.map +0 -1
  69. package/lib/adapters/aws/base/aws-simple-adapter.js +0 -2
  70. package/lib/adapters/aws/base/aws-simple-adapter.js.map +0 -1
  71. package/lib/adapters/aws/base/index.d.ts +0 -2
  72. package/lib/adapters/aws/base/index.d.ts.map +0 -1
  73. package/lib/adapters/aws/base/index.js +0 -2
  74. package/lib/adapters/aws/base/index.js.map +0 -1
  75. package/lib/adapters/aws/dynamodb.adapter.d.ts +0 -56
  76. package/lib/adapters/aws/dynamodb.adapter.d.ts.map +0 -1
  77. package/lib/adapters/aws/dynamodb.adapter.js +0 -2
  78. package/lib/adapters/aws/dynamodb.adapter.js.map +0 -1
  79. package/lib/adapters/aws/event-bridge.adapter.d.ts +0 -63
  80. package/lib/adapters/aws/event-bridge.adapter.d.ts.map +0 -1
  81. package/lib/adapters/aws/event-bridge.adapter.js +0 -2
  82. package/lib/adapters/aws/event-bridge.adapter.js.map +0 -1
  83. package/lib/adapters/aws/index.d.ts +0 -12
  84. package/lib/adapters/aws/index.d.ts.map +0 -1
  85. package/lib/adapters/aws/index.js +0 -2
  86. package/lib/adapters/aws/index.js.map +0 -1
  87. package/lib/adapters/aws/lambda-edge.adapter.d.ts +0 -209
  88. package/lib/adapters/aws/lambda-edge.adapter.d.ts.map +0 -1
  89. package/lib/adapters/aws/lambda-edge.adapter.js +0 -2
  90. package/lib/adapters/aws/lambda-edge.adapter.js.map +0 -1
  91. package/lib/adapters/aws/request-lambda-edge.adapter.d.ts +0 -131
  92. package/lib/adapters/aws/request-lambda-edge.adapter.d.ts.map +0 -1
  93. package/lib/adapters/aws/request-lambda-edge.adapter.js +0 -2
  94. package/lib/adapters/aws/request-lambda-edge.adapter.js.map +0 -1
  95. package/lib/adapters/aws/s3.adapter.d.ts +0 -56
  96. package/lib/adapters/aws/s3.adapter.d.ts.map +0 -1
  97. package/lib/adapters/aws/s3.adapter.js +0 -2
  98. package/lib/adapters/aws/s3.adapter.js.map +0 -1
  99. package/lib/adapters/aws/sns.adapter.d.ts +0 -56
  100. package/lib/adapters/aws/sns.adapter.d.ts.map +0 -1
  101. package/lib/adapters/aws/sns.adapter.js +0 -2
  102. package/lib/adapters/aws/sns.adapter.js.map +0 -1
  103. package/lib/adapters/aws/sqs.adapter.d.ts +0 -56
  104. package/lib/adapters/aws/sqs.adapter.d.ts.map +0 -1
  105. package/lib/adapters/aws/sqs.adapter.js +0 -2
  106. package/lib/adapters/aws/sqs.adapter.js.map +0 -1
  107. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts +0 -81
  108. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts.map +0 -1
  109. package/lib/adapters/azure/http-trigger-v4.adapter.js +0 -2
  110. package/lib/adapters/azure/http-trigger-v4.adapter.js.map +0 -1
  111. package/lib/adapters/azure/index.d.ts +0 -2
  112. package/lib/adapters/azure/index.d.ts.map +0 -1
  113. package/lib/adapters/azure/index.js +0 -2
  114. package/lib/adapters/azure/index.js.map +0 -1
  115. package/lib/adapters/digital-ocean/http-function.adapter.d.ts +0 -65
  116. package/lib/adapters/digital-ocean/http-function.adapter.d.ts.map +0 -1
  117. package/lib/adapters/digital-ocean/http-function.adapter.js +0 -2
  118. package/lib/adapters/digital-ocean/http-function.adapter.js.map +0 -1
  119. package/lib/adapters/digital-ocean/index.d.ts +0 -2
  120. package/lib/adapters/digital-ocean/index.d.ts.map +0 -1
  121. package/lib/adapters/digital-ocean/index.js +0 -2
  122. package/lib/adapters/digital-ocean/index.js.map +0 -1
  123. package/lib/adapters/dummy/dummy.adapter.d.ts +0 -31
  124. package/lib/adapters/dummy/dummy.adapter.d.ts.map +0 -1
  125. package/lib/adapters/dummy/dummy.adapter.js +0 -2
  126. package/lib/adapters/dummy/dummy.adapter.js.map +0 -1
  127. package/lib/adapters/dummy/index.d.ts +0 -2
  128. package/lib/adapters/dummy/index.d.ts.map +0 -1
  129. package/lib/adapters/dummy/index.js +0 -2
  130. package/lib/adapters/dummy/index.js.map +0 -1
  131. package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts +0 -66
  132. package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts.map +0 -1
  133. package/lib/adapters/huawei/huawei-api-gateway.adapter.js +0 -2
  134. package/lib/adapters/huawei/huawei-api-gateway.adapter.js.map +0 -1
  135. package/lib/adapters/huawei/index.d.ts +0 -2
  136. package/lib/adapters/huawei/index.d.ts.map +0 -1
  137. package/lib/adapters/huawei/index.js +0 -2
  138. package/lib/adapters/huawei/index.js.map +0 -1
  139. package/lib/contracts/adapter.contract.d.ts +0 -152
  140. package/lib/contracts/adapter.contract.d.ts.map +0 -1
  141. package/lib/contracts/adapter.contract.js +0 -2
  142. package/lib/contracts/adapter.contract.js.map +0 -1
  143. package/lib/contracts/framework.contract.d.ts +0 -19
  144. package/lib/contracts/framework.contract.d.ts.map +0 -1
  145. package/lib/contracts/framework.contract.js +0 -2
  146. package/lib/contracts/framework.contract.js.map +0 -1
  147. package/lib/contracts/handler.contract.d.ts +0 -25
  148. package/lib/contracts/handler.contract.d.ts.map +0 -1
  149. package/lib/contracts/handler.contract.js +0 -2
  150. package/lib/contracts/handler.contract.js.map +0 -1
  151. package/lib/contracts/index.d.ts +0 -5
  152. package/lib/contracts/index.d.ts.map +0 -1
  153. package/lib/contracts/index.js +0 -2
  154. package/lib/contracts/index.js.map +0 -1
  155. package/lib/contracts/resolver.contract.d.ts +0 -83
  156. package/lib/contracts/resolver.contract.d.ts.map +0 -1
  157. package/lib/contracts/resolver.contract.js +0 -2
  158. package/lib/contracts/resolver.contract.js.map +0 -1
  159. package/lib/core/base-handler.d.ts +0 -32
  160. package/lib/core/base-handler.d.ts.map +0 -1
  161. package/lib/core/base-handler.js +0 -2
  162. package/lib/core/base-handler.js.map +0 -1
  163. package/lib/core/constants.d.ts +0 -31
  164. package/lib/core/constants.d.ts.map +0 -1
  165. package/lib/core/constants.js +0 -2
  166. package/lib/core/constants.js.map +0 -1
  167. package/lib/core/current-invoke.d.ts +0 -48
  168. package/lib/core/current-invoke.d.ts.map +0 -1
  169. package/lib/core/current-invoke.js +0 -2
  170. package/lib/core/current-invoke.js.map +0 -1
  171. package/lib/core/event-body.d.ts +0 -22
  172. package/lib/core/event-body.d.ts.map +0 -1
  173. package/lib/core/event-body.js +0 -2
  174. package/lib/core/event-body.js.map +0 -1
  175. package/lib/core/headers.d.ts +0 -73
  176. package/lib/core/headers.d.ts.map +0 -1
  177. package/lib/core/headers.js +0 -3
  178. package/lib/core/headers.js.map +0 -1
  179. package/lib/core/index.d.ts +0 -12
  180. package/lib/core/index.d.ts.map +0 -1
  181. package/lib/core/index.js +0 -2
  182. package/lib/core/index.js.map +0 -1
  183. package/lib/core/is-binary.d.ts +0 -73
  184. package/lib/core/is-binary.d.ts.map +0 -1
  185. package/lib/core/is-binary.js +0 -2
  186. package/lib/core/is-binary.js.map +0 -1
  187. package/lib/core/logger.d.ts +0 -64
  188. package/lib/core/logger.d.ts.map +0 -1
  189. package/lib/core/logger.js +0 -2
  190. package/lib/core/logger.js.map +0 -1
  191. package/lib/core/no-op.d.ts +0 -8
  192. package/lib/core/no-op.d.ts.map +0 -1
  193. package/lib/core/no-op.js +0 -2
  194. package/lib/core/no-op.js.map +0 -1
  195. package/lib/core/optional.d.ts +0 -22
  196. package/lib/core/optional.d.ts.map +0 -1
  197. package/lib/core/optional.js +0 -2
  198. package/lib/core/optional.js.map +0 -1
  199. package/lib/core/path.d.ts +0 -53
  200. package/lib/core/path.d.ts.map +0 -1
  201. package/lib/core/path.js +0 -2
  202. package/lib/core/path.js.map +0 -1
  203. package/lib/core/stream.d.ts +0 -21
  204. package/lib/core/stream.d.ts.map +0 -1
  205. package/lib/core/stream.js +0 -2
  206. package/lib/core/stream.js.map +0 -1
  207. package/lib/frameworks/apollo-server/apollo-server.framework.d.ts +0 -69
  208. package/lib/frameworks/apollo-server/apollo-server.framework.d.ts.map +0 -1
  209. package/lib/frameworks/apollo-server/apollo-server.framework.js +0 -2
  210. package/lib/frameworks/apollo-server/apollo-server.framework.js.map +0 -1
  211. package/lib/frameworks/apollo-server/index.d.ts +0 -2
  212. package/lib/frameworks/apollo-server/index.d.ts.map +0 -1
  213. package/lib/frameworks/apollo-server/index.js +0 -2
  214. package/lib/frameworks/apollo-server/index.js.map +0 -1
  215. package/lib/frameworks/body-parser/base-body-parser.framework.d.ts +0 -69
  216. package/lib/frameworks/body-parser/base-body-parser.framework.d.ts.map +0 -1
  217. package/lib/frameworks/body-parser/base-body-parser.framework.js +0 -2
  218. package/lib/frameworks/body-parser/base-body-parser.framework.js.map +0 -1
  219. package/lib/frameworks/body-parser/index.d.ts +0 -6
  220. package/lib/frameworks/body-parser/index.d.ts.map +0 -1
  221. package/lib/frameworks/body-parser/index.js +0 -2
  222. package/lib/frameworks/body-parser/index.js.map +0 -1
  223. package/lib/frameworks/body-parser/json-body-parser.framework.d.ts +0 -26
  224. package/lib/frameworks/body-parser/json-body-parser.framework.d.ts.map +0 -1
  225. package/lib/frameworks/body-parser/json-body-parser.framework.js +0 -2
  226. package/lib/frameworks/body-parser/json-body-parser.framework.js.map +0 -1
  227. package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts +0 -26
  228. package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts.map +0 -1
  229. package/lib/frameworks/body-parser/raw-body-parser.framework.js +0 -2
  230. package/lib/frameworks/body-parser/raw-body-parser.framework.js.map +0 -1
  231. package/lib/frameworks/body-parser/text-body-parser.framework.d.ts +0 -26
  232. package/lib/frameworks/body-parser/text-body-parser.framework.d.ts.map +0 -1
  233. package/lib/frameworks/body-parser/text-body-parser.framework.js +0 -2
  234. package/lib/frameworks/body-parser/text-body-parser.framework.js.map +0 -1
  235. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts +0 -26
  236. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts.map +0 -1
  237. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js +0 -2
  238. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js.map +0 -1
  239. package/lib/frameworks/cors/cors.framework.d.ts +0 -78
  240. package/lib/frameworks/cors/cors.framework.d.ts.map +0 -1
  241. package/lib/frameworks/cors/cors.framework.js +0 -3
  242. package/lib/frameworks/cors/cors.framework.js.map +0 -1
  243. package/lib/frameworks/cors/index.d.ts +0 -2
  244. package/lib/frameworks/cors/index.d.ts.map +0 -1
  245. package/lib/frameworks/cors/index.js +0 -2
  246. package/lib/frameworks/cors/index.js.map +0 -1
  247. package/lib/frameworks/deepkit/http-deepkit.framework.d.ts +0 -18
  248. package/lib/frameworks/deepkit/http-deepkit.framework.d.ts.map +0 -1
  249. package/lib/frameworks/deepkit/http-deepkit.framework.js +0 -2
  250. package/lib/frameworks/deepkit/http-deepkit.framework.js.map +0 -1
  251. package/lib/frameworks/deepkit/index.d.ts +0 -2
  252. package/lib/frameworks/deepkit/index.d.ts.map +0 -1
  253. package/lib/frameworks/deepkit/index.js +0 -2
  254. package/lib/frameworks/deepkit/index.js.map +0 -1
  255. package/lib/frameworks/express/express.framework.d.ts +0 -17
  256. package/lib/frameworks/express/express.framework.d.ts.map +0 -1
  257. package/lib/frameworks/express/express.framework.js +0 -2
  258. package/lib/frameworks/express/express.framework.js.map +0 -1
  259. package/lib/frameworks/express/index.d.ts +0 -2
  260. package/lib/frameworks/express/index.d.ts.map +0 -1
  261. package/lib/frameworks/express/index.js +0 -2
  262. package/lib/frameworks/express/index.js.map +0 -1
  263. package/lib/frameworks/fastify/fastify.framework.d.ts +0 -17
  264. package/lib/frameworks/fastify/fastify.framework.d.ts.map +0 -1
  265. package/lib/frameworks/fastify/fastify.framework.js +0 -2
  266. package/lib/frameworks/fastify/fastify.framework.js.map +0 -1
  267. package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts +0 -14
  268. package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts.map +0 -1
  269. package/lib/frameworks/fastify/helpers/no-op-content-parser.js +0 -2
  270. package/lib/frameworks/fastify/helpers/no-op-content-parser.js.map +0 -1
  271. package/lib/frameworks/fastify/index.d.ts +0 -2
  272. package/lib/frameworks/fastify/index.d.ts.map +0 -1
  273. package/lib/frameworks/fastify/index.js +0 -2
  274. package/lib/frameworks/fastify/index.js.map +0 -1
  275. package/lib/frameworks/hapi/hapi.framework.d.ts +0 -17
  276. package/lib/frameworks/hapi/hapi.framework.d.ts.map +0 -1
  277. package/lib/frameworks/hapi/hapi.framework.js +0 -2
  278. package/lib/frameworks/hapi/hapi.framework.js.map +0 -1
  279. package/lib/frameworks/hapi/index.d.ts +0 -2
  280. package/lib/frameworks/hapi/index.d.ts.map +0 -1
  281. package/lib/frameworks/hapi/index.js +0 -2
  282. package/lib/frameworks/hapi/index.js.map +0 -1
  283. package/lib/frameworks/koa/index.d.ts +0 -2
  284. package/lib/frameworks/koa/index.d.ts.map +0 -1
  285. package/lib/frameworks/koa/index.js +0 -2
  286. package/lib/frameworks/koa/index.js.map +0 -1
  287. package/lib/frameworks/koa/koa.framework.d.ts +0 -17
  288. package/lib/frameworks/koa/koa.framework.d.ts.map +0 -1
  289. package/lib/frameworks/koa/koa.framework.js +0 -2
  290. package/lib/frameworks/koa/koa.framework.js.map +0 -1
  291. package/lib/frameworks/lazy/index.d.ts +0 -2
  292. package/lib/frameworks/lazy/index.d.ts.map +0 -1
  293. package/lib/frameworks/lazy/index.js +0 -2
  294. package/lib/frameworks/lazy/index.js.map +0 -1
  295. package/lib/frameworks/lazy/lazy.framework.d.ts +0 -56
  296. package/lib/frameworks/lazy/lazy.framework.d.ts.map +0 -1
  297. package/lib/frameworks/lazy/lazy.framework.js +0 -2
  298. package/lib/frameworks/lazy/lazy.framework.js.map +0 -1
  299. package/lib/frameworks/trpc/index.d.ts +0 -2
  300. package/lib/frameworks/trpc/index.d.ts.map +0 -1
  301. package/lib/frameworks/trpc/index.js +0 -2
  302. package/lib/frameworks/trpc/index.js.map +0 -1
  303. package/lib/frameworks/trpc/trpc.framework.d.ts +0 -153
  304. package/lib/frameworks/trpc/trpc.framework.d.ts.map +0 -1
  305. package/lib/frameworks/trpc/trpc.framework.js +0 -2
  306. package/lib/frameworks/trpc/trpc.framework.js.map +0 -1
  307. package/lib/handlers/aws/aws-stream.handler.d.ts +0 -89
  308. package/lib/handlers/aws/aws-stream.handler.d.ts.map +0 -1
  309. package/lib/handlers/aws/aws-stream.handler.js +0 -2
  310. package/lib/handlers/aws/aws-stream.handler.js.map +0 -1
  311. package/lib/handlers/aws/index.d.ts +0 -2
  312. package/lib/handlers/aws/index.d.ts.map +0 -1
  313. package/lib/handlers/aws/index.js +0 -2
  314. package/lib/handlers/aws/index.js.map +0 -1
  315. package/lib/handlers/azure/azure.handler.d.ts +0 -45
  316. package/lib/handlers/azure/azure.handler.d.ts.map +0 -1
  317. package/lib/handlers/azure/azure.handler.js +0 -2
  318. package/lib/handlers/azure/azure.handler.js.map +0 -1
  319. package/lib/handlers/azure/index.d.ts +0 -2
  320. package/lib/handlers/azure/index.d.ts.map +0 -1
  321. package/lib/handlers/azure/index.js +0 -2
  322. package/lib/handlers/azure/index.js.map +0 -1
  323. package/lib/handlers/base/index.d.ts +0 -2
  324. package/lib/handlers/base/index.d.ts.map +0 -1
  325. package/lib/handlers/base/index.js +0 -2
  326. package/lib/handlers/base/index.js.map +0 -1
  327. package/lib/handlers/base/raw-request.d.ts +0 -31
  328. package/lib/handlers/base/raw-request.d.ts.map +0 -1
  329. package/lib/handlers/base/raw-request.js +0 -2
  330. package/lib/handlers/base/raw-request.js.map +0 -1
  331. package/lib/handlers/default/default.handler.d.ts +0 -88
  332. package/lib/handlers/default/default.handler.d.ts.map +0 -1
  333. package/lib/handlers/default/default.handler.js +0 -2
  334. package/lib/handlers/default/default.handler.js.map +0 -1
  335. package/lib/handlers/default/index.d.ts +0 -2
  336. package/lib/handlers/default/index.d.ts.map +0 -1
  337. package/lib/handlers/default/index.js +0 -2
  338. package/lib/handlers/default/index.js.map +0 -1
  339. package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts +0 -17
  340. package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts.map +0 -1
  341. package/lib/handlers/digital-ocean/digital-ocean.handler.js +0 -2
  342. package/lib/handlers/digital-ocean/digital-ocean.handler.js.map +0 -1
  343. package/lib/handlers/digital-ocean/index.d.ts +0 -2
  344. package/lib/handlers/digital-ocean/index.d.ts.map +0 -1
  345. package/lib/handlers/digital-ocean/index.js +0 -2
  346. package/lib/handlers/digital-ocean/index.js.map +0 -1
  347. package/lib/handlers/firebase/http-firebase-v2.handler.d.ts +0 -27
  348. package/lib/handlers/firebase/http-firebase-v2.handler.d.ts.map +0 -1
  349. package/lib/handlers/firebase/http-firebase-v2.handler.js +0 -2
  350. package/lib/handlers/firebase/http-firebase-v2.handler.js.map +0 -1
  351. package/lib/handlers/firebase/http-firebase.handler.d.ts +0 -19
  352. package/lib/handlers/firebase/http-firebase.handler.d.ts.map +0 -1
  353. package/lib/handlers/firebase/http-firebase.handler.js +0 -2
  354. package/lib/handlers/firebase/http-firebase.handler.js.map +0 -1
  355. package/lib/handlers/firebase/index.d.ts +0 -3
  356. package/lib/handlers/firebase/index.d.ts.map +0 -1
  357. package/lib/handlers/firebase/index.js +0 -2
  358. package/lib/handlers/firebase/index.js.map +0 -1
  359. package/lib/handlers/gcp/gcp.handler.d.ts +0 -26
  360. package/lib/handlers/gcp/gcp.handler.d.ts.map +0 -1
  361. package/lib/handlers/gcp/gcp.handler.js +0 -2
  362. package/lib/handlers/gcp/gcp.handler.js.map +0 -1
  363. package/lib/handlers/gcp/index.d.ts +0 -2
  364. package/lib/handlers/gcp/index.d.ts.map +0 -1
  365. package/lib/handlers/gcp/index.js +0 -2
  366. package/lib/handlers/gcp/index.js.map +0 -1
  367. package/lib/handlers/huawei/http-huawei.handler.d.ts +0 -59
  368. package/lib/handlers/huawei/http-huawei.handler.d.ts.map +0 -1
  369. package/lib/handlers/huawei/http-huawei.handler.js +0 -2
  370. package/lib/handlers/huawei/http-huawei.handler.js.map +0 -1
  371. package/lib/handlers/huawei/index.d.ts +0 -2
  372. package/lib/handlers/huawei/index.d.ts.map +0 -1
  373. package/lib/handlers/huawei/index.js +0 -2
  374. package/lib/handlers/huawei/index.js.map +0 -1
  375. package/lib/index.d.ts +0 -6
  376. package/lib/index.d.ts.map +0 -1
  377. package/lib/index.doc.js +0 -2
  378. package/lib/index.doc.js.map +0 -1
  379. package/lib/index.js +0 -2
  380. package/lib/index.js.map +0 -1
  381. package/lib/network/index.d.ts +0 -5
  382. package/lib/network/index.d.ts.map +0 -1
  383. package/lib/network/index.js +0 -2
  384. package/lib/network/index.js.map +0 -1
  385. package/lib/network/request.d.ts +0 -44
  386. package/lib/network/request.d.ts.map +0 -1
  387. package/lib/network/request.js +0 -2
  388. package/lib/network/request.js.map +0 -1
  389. package/lib/network/response-stream.d.ts +0 -41
  390. package/lib/network/response-stream.d.ts.map +0 -1
  391. package/lib/network/response-stream.js +0 -7
  392. package/lib/network/response-stream.js.map +0 -1
  393. package/lib/network/response.d.ts +0 -48
  394. package/lib/network/response.d.ts.map +0 -1
  395. package/lib/network/response.js +0 -4
  396. package/lib/network/response.js.map +0 -1
  397. package/lib/network/utils.d.ts +0 -9
  398. package/lib/network/utils.d.ts.map +0 -1
  399. package/lib/network/utils.js +0 -2
  400. package/lib/network/utils.js.map +0 -1
  401. package/lib/resolvers/aws-context/aws-context.resolver.d.ts +0 -19
  402. package/lib/resolvers/aws-context/aws-context.resolver.d.ts.map +0 -1
  403. package/lib/resolvers/aws-context/aws-context.resolver.js +0 -2
  404. package/lib/resolvers/aws-context/aws-context.resolver.js.map +0 -1
  405. package/lib/resolvers/aws-context/index.d.ts +0 -2
  406. package/lib/resolvers/aws-context/index.d.ts.map +0 -1
  407. package/lib/resolvers/aws-context/index.js +0 -2
  408. package/lib/resolvers/aws-context/index.js.map +0 -1
  409. package/lib/resolvers/callback/callback.resolver.d.ts +0 -23
  410. package/lib/resolvers/callback/callback.resolver.d.ts.map +0 -1
  411. package/lib/resolvers/callback/callback.resolver.js +0 -2
  412. package/lib/resolvers/callback/callback.resolver.js.map +0 -1
  413. package/lib/resolvers/callback/index.d.ts +0 -2
  414. package/lib/resolvers/callback/index.d.ts.map +0 -1
  415. package/lib/resolvers/callback/index.js +0 -2
  416. package/lib/resolvers/callback/index.js.map +0 -1
  417. package/lib/resolvers/dummy/dummy.resolver.d.ts +0 -14
  418. package/lib/resolvers/dummy/dummy.resolver.d.ts.map +0 -1
  419. package/lib/resolvers/dummy/dummy.resolver.js +0 -2
  420. package/lib/resolvers/dummy/dummy.resolver.js.map +0 -1
  421. package/lib/resolvers/dummy/index.d.ts +0 -2
  422. package/lib/resolvers/dummy/index.d.ts.map +0 -1
  423. package/lib/resolvers/dummy/index.js +0 -2
  424. package/lib/resolvers/dummy/index.js.map +0 -1
  425. package/lib/resolvers/promise/index.d.ts +0 -2
  426. package/lib/resolvers/promise/index.d.ts.map +0 -1
  427. package/lib/resolvers/promise/index.js +0 -2
  428. package/lib/resolvers/promise/index.js.map +0 -1
  429. package/lib/resolvers/promise/promise.resolver.d.ts +0 -14
  430. package/lib/resolvers/promise/promise.resolver.d.ts.map +0 -1
  431. package/lib/resolvers/promise/promise.resolver.js +0 -2
  432. package/lib/resolvers/promise/promise.resolver.js.map +0 -1
  433. package/lib/serverless-adapter.d.ts +0 -119
  434. package/lib/serverless-adapter.d.ts.map +0 -1
  435. package/lib/serverless-adapter.js +0 -2
  436. package/lib/serverless-adapter.js.map +0 -1
@@ -1 +0,0 @@
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"}
@@ -1,56 +0,0 @@
1
- import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
2
- import { ILogger } from '../../core';
3
- /**
4
- * The options for {@link ApolloServerMutationAdapter}
5
- *
6
- * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter
7
- * @public
8
- */
9
- export type ApolloServerMutationAdapterOptions = {
10
- /**
11
- * Specify the name of mutation that will be called when an event was received
12
- */
13
- mutationName: string;
14
- /**
15
- * Specify the mutation result schema.
16
- * 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.
17
- *
18
- * @defaultValue `{ __typename }`
19
- */
20
- mutationResultQuery?: string;
21
- };
22
- /**
23
- * The adapter that wraps another adapter to force a transformation of the event data as a mutation to Apollo Server be able to handle.
24
- *
25
- * @breadcrumb Adapters / Apollo Server / ApolloServerMutationAdapter
26
- * @public
27
- */
28
- export declare class ApolloServerMutationAdapter<TEvent, TContext, TResponse, TBaseAdapter extends AdapterContract<TEvent, TContext, TResponse>> implements AdapterContract<TEvent, TContext, TResponse> {
29
- protected readonly baseAdapter: TBaseAdapter;
30
- protected readonly options: ApolloServerMutationAdapterOptions;
31
- /**
32
- * The default constructor
33
- */
34
- constructor(baseAdapter: TBaseAdapter, options: ApolloServerMutationAdapterOptions);
35
- /**
36
- * {@inheritDoc}
37
- */
38
- canHandle(event: unknown, context: TContext, log: ILogger): boolean;
39
- /**
40
- * {@inheritDoc}
41
- */
42
- getAdapterName(): string;
43
- /**
44
- * {@inheritDoc}
45
- */
46
- getRequest(event: TEvent, context: TContext, log: ILogger): AdapterRequest;
47
- /**
48
- * {@inheritDoc}
49
- */
50
- getResponse(props: GetResponseAdapterProps<TEvent>): TResponse;
51
- /**
52
- * {@inheritDoc}
53
- */
54
- onErrorWhileForwarding(props: OnErrorProps<TEvent, TResponse>): void;
55
- }
56
- //# sourceMappingURL=apollo-server-mutation.adapter.d.ts.map
@@ -1 +0,0 @@
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,2 +0,0 @@
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 +0,0 @@
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,2 +0,0 @@
1
- export * from './apollo-server-mutation.adapter';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/apollo-server/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC"}
@@ -1,2 +0,0 @@
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 +0,0 @@
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,71 +0,0 @@
1
- import type { ALBEvent, ALBResult, Context } from 'aws-lambda';
2
- import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
3
- import { StripBasePathFn } from '../../core';
4
- /**
5
- * The options to customize the {@link AlbAdapter}
6
- *
7
- * @breadcrumb Adapters / AWS / AlbAdapter
8
- * @public
9
- */
10
- export interface AlbAdapterOptions {
11
- /**
12
- * Strip base path for custom domains
13
- *
14
- * @defaultValue ''
15
- */
16
- stripBasePath?: string;
17
- }
18
- /**
19
- * The adapter to handle requests from AWS ALB
20
- *
21
- * @example
22
- * ```typescript
23
- * const stripBasePath = '/any/custom/base/path'; // default ''
24
- * const adapter = new AlbAdapter({ stripBasePath });
25
- * ```
26
- *
27
- * {@link https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html | Event Reference}
28
- *
29
- * @breadcrumb Adapters / AWS / AlbAdapter
30
- * @public
31
- */
32
- export declare class AlbAdapter implements AdapterContract<ALBEvent, Context, ALBResult> {
33
- protected readonly options?: AlbAdapterOptions | undefined;
34
- /**
35
- * Default constructor
36
- *
37
- * @param options - The options to customize the {@link AlbAdapter}
38
- */
39
- constructor(options?: AlbAdapterOptions | undefined);
40
- /**
41
- * Strip base path function
42
- */
43
- protected stripPathFn: StripBasePathFn;
44
- /**
45
- * {@inheritDoc}
46
- */
47
- getAdapterName(): string;
48
- /**
49
- * {@inheritDoc}
50
- */
51
- canHandle(event: unknown): event is ALBEvent;
52
- /**
53
- * {@inheritDoc}
54
- */
55
- getRequest(event: ALBEvent): AdapterRequest;
56
- /**
57
- * {@inheritDoc}
58
- */
59
- getResponse({ event, headers: responseHeaders, body, isBase64Encoded, statusCode, }: GetResponseAdapterProps<ALBEvent>): ALBResult;
60
- /**
61
- * {@inheritDoc}
62
- */
63
- onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<ALBEvent, ALBResult>): void;
64
- /**
65
- * Get path from event with query strings
66
- *
67
- * @param event - The event sent by serverless
68
- */
69
- protected getPathFromEvent(event: ALBEvent): string;
70
- }
71
- //# sourceMappingURL=alb.adapter.d.ts.map
@@ -1 +0,0 @@
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,2 +0,0 @@
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 +0,0 @@
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,76 +0,0 @@
1
- import type { APIGatewayProxyResult, Context } from 'aws-lambda';
2
- import type { APIGatewayProxyEvent } from 'aws-lambda/trigger/api-gateway-proxy';
3
- import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
4
- import { StripBasePathFn } from '../../core';
5
- /**
6
- * The options to customize the {@link ApiGatewayV1Adapter}
7
- *
8
- * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter
9
- * @public
10
- */
11
- export interface ApiGatewayV1Options {
12
- /**
13
- * Strip base path for custom domains
14
- *
15
- * @defaultValue ''
16
- */
17
- stripBasePath?: string;
18
- }
19
- /**
20
- * The adapter to handle requests from AWS Api Gateway V1
21
- *
22
- * 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.
23
- *
24
- * @remarks This adapter is not fully compatible with \@vendia/serverless-express, on \@vendia they filter `transfer-encoding=chunked` but we throw an exception.
25
- *
26
- * @example
27
- * ```typescript
28
- * const stripBasePath = '/any/custom/base/path'; // default ''
29
- * const adapter = new ApiGatewayV1Adapter({ stripBasePath });
30
- * ```
31
- *
32
- * {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}
33
- *
34
- * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter
35
- * @public
36
- */
37
- export declare class ApiGatewayV1Adapter implements AdapterContract<APIGatewayProxyEvent, Context, APIGatewayProxyResult> {
38
- protected readonly options?: ApiGatewayV1Options | undefined;
39
- /**
40
- * Default constructor
41
- *
42
- * @param options - The options to customize the {@link ApiGatewayV1Adapter}
43
- */
44
- constructor(options?: ApiGatewayV1Options | undefined);
45
- /**
46
- * Strip base path function
47
- */
48
- protected stripPathFn: StripBasePathFn;
49
- /**
50
- * {@inheritDoc}
51
- */
52
- getAdapterName(): string;
53
- /**
54
- * {@inheritDoc}
55
- */
56
- canHandle(event: unknown): event is APIGatewayProxyEvent;
57
- /**
58
- * {@inheritDoc}
59
- */
60
- getRequest(event: APIGatewayProxyEvent): AdapterRequest;
61
- /**
62
- * {@inheritDoc}
63
- */
64
- getResponse({ headers: responseHeaders, body, isBase64Encoded, statusCode, response, }: GetResponseAdapterProps<APIGatewayProxyEvent>): APIGatewayProxyResult;
65
- /**
66
- * {@inheritDoc}
67
- */
68
- onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<APIGatewayProxyEvent, APIGatewayProxyResult>): void;
69
- /**
70
- * Get path from event with query strings
71
- *
72
- * @param event - The event sent by serverless
73
- */
74
- protected getPathFromEvent(event: APIGatewayProxyEvent): string;
75
- }
76
- //# sourceMappingURL=api-gateway-v1.adapter.d.ts.map
@@ -1 +0,0 @@
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,2 +0,0 @@
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 +0,0 @@
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"}
@@ -1,75 +0,0 @@
1
- import type { APIGatewayProxyEventV2, Context } from 'aws-lambda';
2
- import type { APIGatewayProxyStructuredResultV2 } from 'aws-lambda/trigger/api-gateway-proxy';
3
- import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
4
- import { StripBasePathFn } from '../../core';
5
- /**
6
- * The options to customize the {@link ApiGatewayV2Adapter}
7
- *
8
- * @breadcrumb Adapters / AWS / ApiGatewayV2Adapter
9
- * @public
10
- */
11
- export interface ApiGatewayV2Options {
12
- /**
13
- * Strip base path for custom domains
14
- *
15
- * @defaultValue ''
16
- */
17
- stripBasePath?: string;
18
- }
19
- /**
20
- * The adapter to handle requests from AWS Api Gateway V2
21
- *
22
- * 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`.
23
- * But, if you use this adapter to accept requests from Function URL, you can accept the `transfer-encoding=chunked` changing the method of invocation from `BUFFERED` to `RESPONSE_STREAM`.
24
- *
25
- * @example
26
- * ```typescript
27
- * const stripBasePath = '/any/custom/base/path'; // default ''
28
- * const adapter = new ApiGatewayV2Adapter({ stripBasePath });
29
- * ```
30
- *
31
- * {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}
32
- *
33
- * @breadcrumb Adapters / AWS / ApiGatewayV2Adapter
34
- * @public
35
- */
36
- export declare class ApiGatewayV2Adapter implements AdapterContract<APIGatewayProxyEventV2, Context, APIGatewayProxyStructuredResultV2> {
37
- protected readonly options?: ApiGatewayV2Options | undefined;
38
- /**
39
- * Default constructor
40
- *
41
- * @param options - The options to customize the {@link ApiGatewayV2Adapter}
42
- */
43
- constructor(options?: ApiGatewayV2Options | undefined);
44
- /**
45
- * Strip base path function
46
- */
47
- protected stripPathFn: StripBasePathFn;
48
- /**
49
- * {@inheritDoc}
50
- */
51
- getAdapterName(): string;
52
- /**
53
- * {@inheritDoc}
54
- */
55
- canHandle(event: unknown): event is APIGatewayProxyEventV2;
56
- /**
57
- * {@inheritDoc}
58
- */
59
- getRequest(event: APIGatewayProxyEventV2): AdapterRequest;
60
- /**
61
- * {@inheritDoc}
62
- */
63
- getResponse({ headers: responseHeaders, body, isBase64Encoded, statusCode, response, }: GetResponseAdapterProps<APIGatewayProxyEventV2>): APIGatewayProxyStructuredResultV2;
64
- /**
65
- * {@inheritDoc}
66
- */
67
- onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<APIGatewayProxyEventV2, APIGatewayProxyStructuredResultV2>): void;
68
- /**
69
- * Get path from event with query strings
70
- *
71
- * @param event - The event sent by serverless
72
- */
73
- protected getPathFromEvent(event: APIGatewayProxyEventV2): string;
74
- }
75
- //# sourceMappingURL=api-gateway-v2.adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-gateway-v2.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/api-gateway-v2.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,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;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBACX,YACE,eAAe,CACb,sBAAsB,EACtB,OAAO,EACP,iCAAiC,CAClC;IASS,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,sBAAsB;IAUjE;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,cAAc;IAkChE;;OAEG;IACI,WAAW,CAAC,EACjB,OAAO,EAAE,eAAe,EACxB,IAAI,EACJ,eAAe,EACf,UAAU,EACV,QAAQ,GACT,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,GAAG,iCAAiC;IA+BtF;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,CACb,sBAAsB,EACtB,iCAAiC,CAClC,GAAG,IAAI;IAkBR;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;CAQlE"}
@@ -1,2 +0,0 @@
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_v2_adapter_exports={};__export(api_gateway_v2_adapter_exports,{ApiGatewayV2Adapter:()=>ApiGatewayV2Adapter});module.exports=__toCommonJS(api_gateway_v2_adapter_exports);var import_core=require("../../core");class ApiGatewayV2Adapter{constructor(options){var _a;this.options=options,this.stripPathFn=(0,import_core.buildStripBasePath)((_a=this.options)==null?void 0:_a.stripBasePath)}getAdapterName(){return ApiGatewayV2Adapter.name}canHandle(event){const apiGatewayEvent=event;return!!(apiGatewayEvent!=null&&apiGatewayEvent.requestContext&&apiGatewayEvent.version==="2.0")}getRequest(event){const method=event.requestContext.http.method,path=this.getPathFromEvent(event),headers={...event.headers};event.cookies&&(headers.cookie=event.cookies.join("; "));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.http.sourceIp;return{method,headers,body,remoteAddress,path}}getResponse({headers:responseHeaders,body,isBase64Encoded,statusCode,response}){const{cookies,headers}=(0,import_core.getFlattenedHeadersMapAndCookies)(responseHeaders),transferEncodingHeader=headers["transfer-encoding"];if(transferEncodingHeader&&transferEncodingHeader.includes("chunked"))throw new Error("chunked encoding in headers is not supported by API Gateway V2");if(response!=null&&response.chunkedEncoding)throw new Error("chunked encoding in response is not supported by API Gateway V2");return{statusCode,body,headers,isBase64Encoded,cookies}}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.rawPath),queryParams=event.rawQueryString;return(0,import_core.getPathWithQueryStringParams)(path,queryParams||{})}}
2
- //# sourceMappingURL=api-gateway-v2.adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-gateway-v2.adapter.js","sources":["../../../src/adapters/aws/api-gateway-v2.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { APIGatewayProxyEventV2, Context } from 'aws-lambda';\nimport type { APIGatewayProxyStructuredResultV2 } 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 getFlattenedHeadersMapAndCookies,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link ApiGatewayV2Adapter}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV2Adapter\n * @public\n */\nexport interface ApiGatewayV2Options {\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 V2\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`.\n * But, if you use this adapter to accept requests from Function URL, you can accept the `transfer-encoding=chunked` changing the method of invocation from `BUFFERED` to `RESPONSE_STREAM`.\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new ApiGatewayV2Adapter({ 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 / ApiGatewayV2Adapter\n * @public\n */\nexport class ApiGatewayV2Adapter\n implements\n AdapterContract<\n APIGatewayProxyEventV2,\n Context,\n APIGatewayProxyStructuredResultV2\n >\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link ApiGatewayV2Adapter}\n */\n constructor(protected readonly options?: ApiGatewayV2Options) {\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 ApiGatewayV2Adapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is APIGatewayProxyEventV2 {\n const apiGatewayEvent = event as Partial<APIGatewayProxyEventV2> & {\n version?: string;\n };\n\n return !!(\n apiGatewayEvent?.requestContext && apiGatewayEvent.version === '2.0'\n );\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: APIGatewayProxyEventV2): AdapterRequest {\n const method = event.requestContext.http.method;\n const path = this.getPathFromEvent(event);\n // accords https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html\n // all headers are lowercased and cannot be array\n // so no need to format, just a shallow copy will work here\n const headers = { ...event.headers };\n\n if (event.cookies) headers.cookie = event.cookies.join('; ');\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.http.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<APIGatewayProxyEventV2>): APIGatewayProxyStructuredResultV2 {\n const { cookies, headers } =\n getFlattenedHeadersMapAndCookies(responseHeaders);\n\n const transferEncodingHeader: string | undefined =\n headers['transfer-encoding'];\n\n const hasTransferEncodingChunked =\n transferEncodingHeader && transferEncodingHeader.includes('chunked');\n\n if (hasTransferEncodingChunked) {\n throw new Error(\n 'chunked encoding in headers is not supported by API Gateway V2',\n );\n }\n\n if (response?.chunkedEncoding) {\n throw new Error(\n 'chunked encoding in response is not supported by API Gateway V2',\n );\n }\n\n return {\n statusCode,\n body,\n headers,\n isBase64Encoded,\n cookies,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<\n APIGatewayProxyEventV2,\n APIGatewayProxyStructuredResultV2\n >): 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: APIGatewayProxyEventV2): string {\n const path = this.stripPathFn(event.rawPath);\n const queryParams = event.rawQueryString;\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,EAoCA,MAAM,mBAOb,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,MAAiD,CAChE,MAAM,gBAAkB,MAIxB,MAAO,CAAC,EACN,uCAAiB,gBAAkB,gBAAgB,UAAY,MAEnE,CAKO,WAAW,MAA+C,CACzD,MAAA,OAAS,MAAM,eAAe,KAAK,OACnC,KAAO,KAAK,iBAAiB,KAAK,EAIlC,QAAU,CAAE,GAAG,MAAM,OAAQ,EAE/B,MAAM,UAAS,QAAQ,OAAS,MAAM,QAAQ,KAAK,IAAI,GAEvD,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,KAAK,SAEzC,MAAA,CACL,OACA,QACA,KACA,cACA,IAAA,CAEJ,CAKO,YAAY,CACjB,QAAS,gBACT,KACA,gBACA,WACA,QAAA,EACqF,CACrF,KAAM,CAAE,QAAS,OAAQ,KACvB,8CAAiC,eAAe,EAE5C,uBACJ,QAAQ,mBAAmB,EAK7B,GAFE,wBAA0B,uBAAuB,SAAS,SAAS,EAGnE,MAAM,IAAI,MACR,gEAAA,EAIJ,GAAI,yBAAU,gBACZ,MAAM,IAAI,MACR,iEAAA,EAIG,MAAA,CACL,WACA,KACA,QACA,gBACA,OAAA,CAEJ,CAKO,uBAAuB,CAC5B,MACA,kBACA,kBACA,MACA,GAAA,EAIO,CACD,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,MAAuC,CAChE,MAAM,KAAO,KAAK,YAAY,MAAM,OAAO,EACrC,YAAc,MAAM,eAE1B,SAAO,YAA6B,8BAAA,KAAM,aAAe,CAAE,CAAA,CAC7D,CAGF"}
@@ -1,83 +0,0 @@
1
- import type { Context, SQSBatchItemFailure } from 'aws-lambda';
2
- import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../../contracts/index';
3
- import { IEmptyResponse } from '../../../core/index';
4
- /**
5
- * The options to customize the {@link AwsSimpleAdapter}
6
- *
7
- * @breadcrumb Adapters / AWS / AWS Simple Adapter
8
- * @public
9
- */
10
- export interface AWSSimpleAdapterOptions {
11
- /**
12
- * The path that will be used to create a request to be forwarded to the framework.
13
- */
14
- forwardPath: string;
15
- /**
16
- * The http method that will be used to create a request to be forwarded to the framework.
17
- */
18
- forwardMethod: string;
19
- /**
20
- * The AWS Service host that will be injected inside headers to developer being able to validate if request originate from the library.
21
- */
22
- host: string;
23
- /**
24
- * Tells if this adapter should support batch item failures.
25
- */
26
- batch?: true | false;
27
- }
28
- /**
29
- * The batch item failure response expected from the API server
30
- *
31
- * @breadcrumb Adapters / AWS / AWS Simple Adapter
32
- * @public
33
- */
34
- export type BatchItemFailureResponse = SQSBatchItemFailure;
35
- /**
36
- * The possible options of response for {@link AwsSimpleAdapter}
37
- *
38
- * @breadcrumb Adapters / AWS / AWS Simple Adapter
39
- * @public
40
- */
41
- export type AWSSimpleAdapterResponseType = BatchItemFailureResponse | IEmptyResponse;
42
- /**
43
- * The abstract adapter to use to implement other simple AWS adapters
44
- *
45
- * @breadcrumb Adapters / AWS / AWS Simple Adapter
46
- * @public
47
- */
48
- export declare abstract class AwsSimpleAdapter<TEvent> implements AdapterContract<TEvent, Context, AWSSimpleAdapterResponseType> {
49
- protected readonly options: AWSSimpleAdapterOptions;
50
- /**
51
- * Default constructor
52
- *
53
- * @param options - The options to customize the {@link AwsSimpleAdapter}
54
- */
55
- constructor(options: AWSSimpleAdapterOptions);
56
- /**
57
- * {@inheritDoc}
58
- */
59
- getAdapterName(): string;
60
- /**
61
- * {@inheritDoc}
62
- */
63
- canHandle(event: unknown): event is TEvent;
64
- /**
65
- * {@inheritDoc}
66
- */
67
- getRequest(event: TEvent): AdapterRequest;
68
- /**
69
- * {@inheritDoc}
70
- */
71
- getResponse({ body, headers, isBase64Encoded, event, statusCode, }: GetResponseAdapterProps<TEvent>): AWSSimpleAdapterResponseType;
72
- /**
73
- * {@inheritDoc}
74
- */
75
- onErrorWhileForwarding({ error, delegatedResolver, }: OnErrorProps<TEvent, AWSSimpleAdapterResponseType>): void;
76
- /**
77
- * Check if the status code is invalid
78
- *
79
- * @param statusCode - The status code
80
- */
81
- protected hasInvalidStatusCode(statusCode: number): boolean;
82
- }
83
- //# sourceMappingURL=aws-simple-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aws-simple-adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/aws/base/aws-simple-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAI7B;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GACpC,wBAAwB,GACxB,cAAc,CAAC;AAEnB;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAAC,MAAM,CAC3C,YAAW,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC;IAS7D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB;IAL/D;;;;OAIG;gBAC4B,OAAO,EAAE,uBAAuB;IAM/D;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;IAIjD;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAuBhD;;OAEG;IACI,WAAW,CAAC,EACjB,IAAI,EACJ,OAAO,EACP,eAAe,EACf,KAAK,EACL,UAAU,GACX,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,4BAA4B;IAoBjE;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,GAClB,EAAE,YAAY,CAAC,MAAM,EAAE,4BAA4B,CAAC,GAAG,IAAI;IAQ5D;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAK5D"}
@@ -1,2 +0,0 @@
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),aws_simple_adapter_exports={};__export(aws_simple_adapter_exports,{AwsSimpleAdapter:()=>AwsSimpleAdapter});module.exports=__toCommonJS(aws_simple_adapter_exports);var import_core=require("../../../core/index");class AwsSimpleAdapter{constructor(options){this.options=options}getAdapterName(){throw new Error("not implemented.")}canHandle(event){throw new Error("not implemented.")}getRequest(event){const path=this.options.forwardPath,method=this.options.forwardMethod,[body,contentLength]=(0,import_core.getEventBodyAsBuffer)(JSON.stringify(event),!1),headers={host:this.options.host,"content-type":"application/json","content-length":String(contentLength)};return{method,headers,body,path}}getResponse({body,headers,isBase64Encoded,event,statusCode}){if(this.hasInvalidStatusCode(statusCode))throw new Error(JSON.stringify({body,headers,isBase64Encoded,event,statusCode}));if(!this.options.batch)return import_core.EmptyResponse;if(isBase64Encoded)throw new Error("SERVERLESS_ADAPTER: The response could not be base64 encoded when you set batch: true, the response should be a JSON.");return body?JSON.parse(body):import_core.EmptyResponse}onErrorWhileForwarding({error,delegatedResolver}){delegatedResolver.fail(error)}hasInvalidStatusCode(statusCode){return statusCode<200||statusCode>=400}}
2
- //# sourceMappingURL=aws-simple-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aws-simple-adapter.js","sources":["../../../../src/adapters/aws/base/aws-simple-adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { Context, SQSBatchItemFailure } from 'aws-lambda';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../../contracts/index';\nimport {\n EmptyResponse,\n IEmptyResponse,\n getEventBodyAsBuffer,\n} from '../../../core/index';\n\n//#endregion\n\n/**\n * The options to customize the {@link AwsSimpleAdapter}\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport interface AWSSimpleAdapterOptions {\n /**\n * The path that will be used to create a request to be forwarded to the framework.\n */\n forwardPath: string;\n\n /**\n * The http method that will be used to create a request to be forwarded to the framework.\n */\n forwardMethod: string;\n\n /**\n * The AWS Service host that will be injected inside headers to developer being able to validate if request originate from the library.\n */\n host: string;\n\n /**\n * Tells if this adapter should support batch item failures.\n */\n batch?: true | false;\n}\n\n/**\n * The batch item failure response expected from the API server\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport type BatchItemFailureResponse = SQSBatchItemFailure;\n\n/**\n * The possible options of response for {@link AwsSimpleAdapter}\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport type AWSSimpleAdapterResponseType =\n | BatchItemFailureResponse\n | IEmptyResponse;\n\n/**\n * The abstract adapter to use to implement other simple AWS adapters\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport abstract class AwsSimpleAdapter<TEvent>\n implements AdapterContract<TEvent, Context, AWSSimpleAdapterResponseType>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link AwsSimpleAdapter}\n */\n constructor(protected readonly options: AWSSimpleAdapterOptions) {}\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n throw new Error('not implemented.');\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is TEvent {\n throw new Error('not implemented.');\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: TEvent): AdapterRequest {\n const path = this.options.forwardPath;\n const method = this.options.forwardMethod;\n\n const [body, contentLength] = getEventBodyAsBuffer(\n JSON.stringify(event),\n false,\n );\n\n const headers = {\n host: this.options.host,\n 'content-type': 'application/json',\n 'content-length': String(contentLength),\n };\n\n return {\n method,\n headers,\n body,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n body,\n headers,\n isBase64Encoded,\n event,\n statusCode,\n }: GetResponseAdapterProps<TEvent>): AWSSimpleAdapterResponseType {\n if (this.hasInvalidStatusCode(statusCode)) {\n throw new Error(\n JSON.stringify({ body, headers, isBase64Encoded, event, statusCode }),\n );\n }\n\n if (!this.options.batch) return EmptyResponse;\n\n if (isBase64Encoded) {\n throw new Error(\n 'SERVERLESS_ADAPTER: The response could not be base64 encoded when you set batch: true, the response should be a JSON.',\n );\n }\n\n if (!body) return EmptyResponse;\n\n return JSON.parse(body);\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n }: OnErrorProps<TEvent, AWSSimpleAdapterResponseType>): void {\n delegatedResolver.fail(error);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Check if the status code is invalid\n *\n * @param statusCode - The status code\n */\n protected hasInvalidStatusCode(statusCode: number): boolean {\n return statusCode < 200 || statusCode >= 400;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,2BAAA,CAAA,EAAA,SAAA,2BAAA,CAAA,iBAAA,IAAA,gBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,0BAAA,EASA,IAIO,YAAA,QAAA,qBAAA,EAwDA,MAAe,gBAEtB,CAQE,YAA+B,QAAkC,CAAlC,KAAA,QAAA,OAAmC,CAS3D,gBAAyB,CACxB,MAAA,IAAI,MAAM,kBAAkB,CACpC,CAKO,UAAU,MAAiC,CAC1C,MAAA,IAAI,MAAM,kBAAkB,CACpC,CAKO,WAAW,MAA+B,CACzC,MAAA,KAAO,KAAK,QAAQ,YACpB,OAAS,KAAK,QAAQ,cAEtB,CAAC,KAAM,aAAa,KAAI,YAAA,sBAC5B,KAAK,UAAU,KAAK,EACpB,EAAA,EAGI,QAAU,CACd,KAAM,KAAK,QAAQ,KACnB,eAAgB,mBAChB,iBAAkB,OAAO,aAAa,CAAA,EAGjC,MAAA,CACL,OACA,QACA,KACA,IAAA,CAEJ,CAKO,YAAY,CACjB,KACA,QACA,gBACA,MACA,UAAA,EACgE,CAC5D,GAAA,KAAK,qBAAqB,UAAU,EACtC,MAAM,IAAI,MACR,KAAK,UAAU,CAAE,KAAM,QAAS,gBAAiB,MAAO,WAAY,CAAA,EAIpE,GAAA,CAAC,KAAK,QAAQ,MAAc,OAAA,YAAA,cAEhC,GAAI,gBACF,MAAM,IAAI,MACR,uHAAA,EAIJ,OAAK,KAEE,KAAK,MAAM,IAAI,EAFJ,YAAA,aAGpB,CAKO,uBAAuB,CAC5B,MACA,iBAAA,EAC2D,CAC3D,kBAAkB,KAAK,KAAK,CAC9B,CAWU,qBAAqB,WAA6B,CACnD,OAAA,WAAa,KAAO,YAAc,GAC3C,CAGF"}
@@ -1,2 +0,0 @@
1
- export * from './aws-simple-adapter';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/aws/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1,2 +0,0 @@
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),base_exports={};module.exports=__toCommonJS(base_exports);__reExport(base_exports,require("./aws-simple-adapter"),module.exports);
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/adapters/aws/base/index.ts"],"sourcesContent":["export * from './aws-simple-adapter';\n"],"names":[],"mappings":"kqBAAA,aAAA,CAAA,EAAA,OAAA,QAAA,aAAA,YAAA,EAAA,WAAA,aAAc,QAAd,sBAAA,EAAA,OAAA,OAAA"}
@@ -1,56 +0,0 @@
1
- import type { DynamoDBStreamEvent } from 'aws-lambda';
2
- import { AWSSimpleAdapterOptions, AwsSimpleAdapter } from './base/index';
3
- /**
4
- * The options to customize the {@link DynamoDBAdapter}
5
- *
6
- * @breadcrumb Adapters / AWS / DynamoDBAdapter
7
- * @public
8
- */
9
- export interface DynamoDBAdapterOptions extends Pick<AWSSimpleAdapterOptions, 'batch'> {
10
- /**
11
- * The path that will be used to create a request to be forwarded to the framework.
12
- *
13
- * @defaultValue /dynamo
14
- */
15
- dynamoDBForwardPath?: string;
16
- /**
17
- * The http method that will be used to create a request to be forwarded to the framework.
18
- *
19
- * @defaultValue POST
20
- */
21
- dynamoDBForwardMethod?: string;
22
- }
23
- /**
24
- * The adapter to handle requests from AWS DynamoDB.
25
- *
26
- * The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.
27
- *
28
- * {@link https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html | Event Reference}
29
- *
30
- * @example
31
- * ```typescript
32
- * const dynamoDBForwardPath = '/your/route/dynamo'; // default /dynamo
33
- * const dynamoDBForwardMethod = 'POST'; // default POST
34
- * const adapter = new DynamoDBAdapter({ dynamoDBForwardPath, dynamoDBForwardMethod });
35
- * ```
36
- *
37
- * @breadcrumb Adapters / AWS / DynamoDBAdapter
38
- * @public
39
- */
40
- export declare class DynamoDBAdapter extends AwsSimpleAdapter<DynamoDBStreamEvent> {
41
- /**
42
- * Default constructor
43
- *
44
- * @param options - The options to customize the {@link DynamoDBAdapter}
45
- */
46
- constructor(options?: DynamoDBAdapterOptions);
47
- /**
48
- * {@inheritDoc}
49
- */
50
- getAdapterName(): string;
51
- /**
52
- * {@inheritDoc}
53
- */
54
- canHandle(event: unknown): event is DynamoDBStreamEvent;
55
- }
56
- //# sourceMappingURL=dynamodb.adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamodb.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/dynamodb.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIzE;;;;;GAKG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB,CAAC,mBAAmB,CAAC;IAGxE;;;;OAIG;gBACS,OAAO,CAAC,EAAE,sBAAsB;IAmB5C;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB;CAW/D"}