@h4ad/serverless-adapter 2.17.0 → 3.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 (325) hide show
  1. package/README.md +7 -0
  2. package/lib/@types/binary-settings.js +2 -11
  3. package/lib/@types/binary-settings.js.map +1 -1
  4. package/lib/@types/digital-ocean/digital-ocean-http-event.js +2 -7
  5. package/lib/@types/digital-ocean/digital-ocean-http-event.js.map +1 -1
  6. package/lib/@types/digital-ocean/digital-ocean-http-response.js +2 -7
  7. package/lib/@types/digital-ocean/digital-ocean-http-response.js.map +1 -1
  8. package/lib/@types/digital-ocean/index.js +2 -18
  9. package/lib/@types/digital-ocean/index.js.map +1 -1
  10. package/lib/@types/headers.js +2 -11
  11. package/lib/@types/headers.js.map +1 -1
  12. package/lib/@types/helpers.js +2 -6
  13. package/lib/@types/helpers.js.map +1 -1
  14. package/lib/@types/huawei/huawei-api-gateway-event.js +2 -14
  15. package/lib/@types/huawei/huawei-api-gateway-event.js.map +1 -1
  16. package/lib/@types/huawei/huawei-api-gateway-response.js +2 -7
  17. package/lib/@types/huawei/huawei-api-gateway-response.js.map +1 -1
  18. package/lib/@types/huawei/huawei-context.js +2 -36
  19. package/lib/@types/huawei/huawei-context.js.map +1 -1
  20. package/lib/@types/huawei/index.js +2 -20
  21. package/lib/@types/huawei/index.js.map +1 -1
  22. package/lib/@types/index.js +2 -20
  23. package/lib/@types/index.js.map +1 -1
  24. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js +2 -86
  25. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js.map +1 -1
  26. package/lib/adapters/apollo-server/index.js +2 -18
  27. package/lib/adapters/apollo-server/index.js.map +1 -1
  28. package/lib/adapters/aws/alb.adapter.js +2 -129
  29. package/lib/adapters/aws/alb.adapter.js.map +1 -1
  30. package/lib/adapters/aws/api-gateway-v1.adapter.js +2 -140
  31. package/lib/adapters/aws/api-gateway-v1.adapter.js.map +1 -1
  32. package/lib/adapters/aws/api-gateway-v2.adapter.js +2 -134
  33. package/lib/adapters/aws/api-gateway-v2.adapter.js.map +1 -1
  34. package/lib/adapters/aws/base/aws-simple-adapter.js +2 -99
  35. package/lib/adapters/aws/base/aws-simple-adapter.js.map +1 -1
  36. package/lib/adapters/aws/base/index.js +2 -18
  37. package/lib/adapters/aws/base/index.js.map +1 -1
  38. package/lib/adapters/aws/dynamodb.adapter.js +2 -64
  39. package/lib/adapters/aws/dynamodb.adapter.js.map +1 -1
  40. package/lib/adapters/aws/event-bridge.adapter.js +2 -75
  41. package/lib/adapters/aws/event-bridge.adapter.js.map +1 -1
  42. package/lib/adapters/aws/index.js +2 -27
  43. package/lib/adapters/aws/index.js.map +1 -1
  44. package/lib/adapters/aws/lambda-edge.adapter.js +2 -284
  45. package/lib/adapters/aws/lambda-edge.adapter.js.map +1 -1
  46. package/lib/adapters/aws/s3.adapter.js +2 -63
  47. package/lib/adapters/aws/s3.adapter.js.map +1 -1
  48. package/lib/adapters/aws/sns.adapter.js +2 -63
  49. package/lib/adapters/aws/sns.adapter.js.map +1 -1
  50. package/lib/adapters/aws/sqs.adapter.js +2 -64
  51. package/lib/adapters/aws/sqs.adapter.js.map +1 -1
  52. package/lib/adapters/azure/http-trigger-v4.adapter.js +2 -202
  53. package/lib/adapters/azure/http-trigger-v4.adapter.js.map +1 -1
  54. package/lib/adapters/azure/index.js +2 -18
  55. package/lib/adapters/azure/index.js.map +1 -1
  56. package/lib/adapters/digital-ocean/http-function.adapter.js +2 -118
  57. package/lib/adapters/digital-ocean/http-function.adapter.js.map +1 -1
  58. package/lib/adapters/digital-ocean/index.js +2 -18
  59. package/lib/adapters/digital-ocean/index.js.map +1 -1
  60. package/lib/adapters/dummy/dummy.adapter.js +2 -54
  61. package/lib/adapters/dummy/dummy.adapter.js.map +1 -1
  62. package/lib/adapters/dummy/index.js +2 -18
  63. package/lib/adapters/dummy/index.js.map +1 -1
  64. package/lib/adapters/huawei/huawei-api-gateway.adapter.js +2 -126
  65. package/lib/adapters/huawei/huawei-api-gateway.adapter.js.map +1 -1
  66. package/lib/adapters/huawei/index.js +2 -18
  67. package/lib/adapters/huawei/index.js.map +1 -1
  68. package/lib/contracts/adapter.contract.js +2 -18
  69. package/lib/contracts/adapter.contract.js.map +1 -1
  70. package/lib/contracts/framework.contract.js +2 -7
  71. package/lib/contracts/framework.contract.js.map +1 -1
  72. package/lib/contracts/handler.contract.js +2 -13
  73. package/lib/contracts/handler.contract.js.map +1 -1
  74. package/lib/contracts/index.js +2 -21
  75. package/lib/contracts/index.js.map +1 -1
  76. package/lib/contracts/resolver.contract.js +2 -15
  77. package/lib/contracts/resolver.contract.js.map +1 -1
  78. package/lib/core/base-handler.js +2 -67
  79. package/lib/core/base-handler.js.map +1 -1
  80. package/lib/core/constants.js +2 -33
  81. package/lib/core/constants.js.map +1 -1
  82. package/lib/core/current-invoke.js +2 -46
  83. package/lib/core/current-invoke.js.map +1 -1
  84. package/lib/core/event-body.js +2 -31
  85. package/lib/core/event-body.js.map +1 -1
  86. package/lib/core/headers.js +3 -97
  87. package/lib/core/headers.js.map +1 -1
  88. package/lib/core/index.js +2 -28
  89. package/lib/core/index.js.map +1 -1
  90. package/lib/core/is-binary.js +2 -118
  91. package/lib/core/is-binary.js.map +1 -1
  92. package/lib/core/logger.js +2 -115
  93. package/lib/core/logger.js.map +1 -1
  94. package/lib/core/no-op.js +2 -12
  95. package/lib/core/no-op.js.map +1 -1
  96. package/lib/core/optional.js +2 -31
  97. package/lib/core/optional.js.map +1 -1
  98. package/lib/core/path.js +2 -68
  99. package/lib/core/path.js.map +1 -1
  100. package/lib/core/stream.js +2 -63
  101. package/lib/core/stream.js.map +1 -1
  102. package/lib/frameworks/apollo-server/apollo-server.framework.js +2 -87
  103. package/lib/frameworks/apollo-server/apollo-server.framework.js.map +1 -1
  104. package/lib/frameworks/apollo-server/index.js +2 -18
  105. package/lib/frameworks/apollo-server/index.js.map +1 -1
  106. package/lib/frameworks/body-parser/base-body-parser.framework.js +2 -66
  107. package/lib/frameworks/body-parser/base-body-parser.framework.js.map +1 -1
  108. package/lib/frameworks/body-parser/index.js +2 -22
  109. package/lib/frameworks/body-parser/index.js.map +1 -1
  110. package/lib/frameworks/body-parser/json-body-parser.framework.js +2 -29
  111. package/lib/frameworks/body-parser/json-body-parser.framework.js.map +1 -1
  112. package/lib/frameworks/body-parser/raw-body-parser.framework.js +2 -29
  113. package/lib/frameworks/body-parser/raw-body-parser.framework.js.map +1 -1
  114. package/lib/frameworks/body-parser/text-body-parser.framework.js +2 -29
  115. package/lib/frameworks/body-parser/text-body-parser.framework.js.map +1 -1
  116. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js +2 -29
  117. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js.map +1 -1
  118. package/lib/frameworks/cors/cors.framework.js +3 -145
  119. package/lib/frameworks/cors/cors.framework.js.map +1 -1
  120. package/lib/frameworks/cors/index.js +2 -18
  121. package/lib/frameworks/cors/index.js.map +1 -1
  122. package/lib/frameworks/deepkit/http-deepkit.framework.js +2 -33
  123. package/lib/frameworks/deepkit/http-deepkit.framework.js.map +1 -1
  124. package/lib/frameworks/deepkit/index.js +2 -18
  125. package/lib/frameworks/deepkit/index.js.map +1 -1
  126. package/lib/frameworks/express/express.framework.js +2 -22
  127. package/lib/frameworks/express/express.framework.js.map +1 -1
  128. package/lib/frameworks/express/index.js +2 -18
  129. package/lib/frameworks/express/index.js.map +1 -1
  130. package/lib/frameworks/fastify/fastify.framework.js +2 -23
  131. package/lib/frameworks/fastify/fastify.framework.js.map +1 -1
  132. package/lib/frameworks/fastify/helpers/no-op-content-parser.js +2 -27
  133. package/lib/frameworks/fastify/helpers/no-op-content-parser.js.map +1 -1
  134. package/lib/frameworks/fastify/index.js +2 -18
  135. package/lib/frameworks/fastify/index.js.map +1 -1
  136. package/lib/frameworks/hapi/hapi.framework.js +2 -23
  137. package/lib/frameworks/hapi/hapi.framework.js.map +1 -1
  138. package/lib/frameworks/hapi/index.js +2 -18
  139. package/lib/frameworks/hapi/index.js.map +1 -1
  140. package/lib/frameworks/koa/index.js +2 -18
  141. package/lib/frameworks/koa/index.js.map +1 -1
  142. package/lib/frameworks/koa/koa.framework.js +2 -22
  143. package/lib/frameworks/koa/koa.framework.js.map +1 -1
  144. package/lib/frameworks/lazy/index.js +2 -18
  145. package/lib/frameworks/lazy/index.js.map +1 -1
  146. package/lib/frameworks/lazy/lazy.framework.js +2 -82
  147. package/lib/frameworks/lazy/lazy.framework.js.map +1 -1
  148. package/lib/frameworks/trpc/index.js +2 -18
  149. package/lib/frameworks/trpc/index.js.map +1 -1
  150. package/lib/frameworks/trpc/trpc.framework.js +2 -153
  151. package/lib/frameworks/trpc/trpc.framework.js.map +1 -1
  152. package/lib/handlers/aws/aws-stream.handler.js +2 -169
  153. package/lib/handlers/aws/aws-stream.handler.js.map +1 -1
  154. package/lib/handlers/aws/index.js +2 -18
  155. package/lib/handlers/aws/index.js.map +1 -1
  156. package/lib/handlers/azure/azure.handler.js +2 -74
  157. package/lib/handlers/azure/azure.handler.js.map +1 -1
  158. package/lib/handlers/azure/index.js +2 -18
  159. package/lib/handlers/azure/index.js.map +1 -1
  160. package/lib/handlers/base/index.js +2 -18
  161. package/lib/handlers/base/index.js.map +1 -1
  162. package/lib/handlers/base/raw-request.js +2 -65
  163. package/lib/handlers/base/raw-request.js.map +1 -1
  164. package/lib/handlers/default/default.handler.js +2 -191
  165. package/lib/handlers/default/default.handler.js.map +1 -1
  166. package/lib/handlers/default/index.js +2 -18
  167. package/lib/handlers/default/index.js.map +1 -1
  168. package/lib/handlers/digital-ocean/digital-ocean.handler.js +2 -34
  169. package/lib/handlers/digital-ocean/digital-ocean.handler.js.map +1 -1
  170. package/lib/handlers/digital-ocean/index.js +2 -18
  171. package/lib/handlers/digital-ocean/index.js.map +1 -1
  172. package/lib/handlers/firebase/http-firebase-v2.handler.js +2 -50
  173. package/lib/handlers/firebase/http-firebase-v2.handler.js.map +1 -1
  174. package/lib/handlers/firebase/http-firebase.handler.js +2 -27
  175. package/lib/handlers/firebase/http-firebase.handler.js.map +1 -1
  176. package/lib/handlers/firebase/index.js +2 -19
  177. package/lib/handlers/firebase/index.js.map +1 -1
  178. package/lib/handlers/gcp/gcp.handler.js +2 -40
  179. package/lib/handlers/gcp/gcp.handler.js.map +1 -1
  180. package/lib/handlers/gcp/index.js +2 -18
  181. package/lib/handlers/gcp/index.js.map +1 -1
  182. package/lib/handlers/huawei/http-huawei.handler.js +2 -106
  183. package/lib/handlers/huawei/http-huawei.handler.js.map +1 -1
  184. package/lib/handlers/huawei/index.js +2 -18
  185. package/lib/handlers/huawei/index.js.map +1 -1
  186. package/lib/index.doc.js +2 -0
  187. package/lib/index.doc.js.map +1 -0
  188. package/lib/index.js +2 -22
  189. package/lib/index.js.map +1 -1
  190. package/lib/network/index.js +2 -21
  191. package/lib/network/index.js.map +1 -1
  192. package/lib/network/request.js +2 -46
  193. package/lib/network/request.js.map +1 -1
  194. package/lib/network/response-stream.js +7 -88
  195. package/lib/network/response-stream.js.map +1 -1
  196. package/lib/network/response.js +4 -127
  197. package/lib/network/response.js.map +1 -1
  198. package/lib/network/utils.js +2 -21
  199. package/lib/network/utils.js.map +1 -1
  200. package/lib/resolvers/aws-context/aws-context.resolver.js +2 -59
  201. package/lib/resolvers/aws-context/aws-context.resolver.js.map +1 -1
  202. package/lib/resolvers/aws-context/index.js +2 -18
  203. package/lib/resolvers/aws-context/index.js.map +1 -1
  204. package/lib/resolvers/callback/callback.resolver.js +2 -53
  205. package/lib/resolvers/callback/callback.resolver.js.map +1 -1
  206. package/lib/resolvers/callback/index.js +2 -18
  207. package/lib/resolvers/callback/index.js.map +1 -1
  208. package/lib/resolvers/dummy/dummy.resolver.js +2 -24
  209. package/lib/resolvers/dummy/dummy.resolver.js.map +1 -1
  210. package/lib/resolvers/dummy/index.js +2 -18
  211. package/lib/resolvers/dummy/index.js.map +1 -1
  212. package/lib/resolvers/promise/index.js +2 -18
  213. package/lib/resolvers/promise/index.js.map +1 -1
  214. package/lib/resolvers/promise/promise.resolver.js +2 -48
  215. package/lib/resolvers/promise/promise.resolver.js.map +1 -1
  216. package/lib/serverless-adapter.js +2 -176
  217. package/lib/serverless-adapter.js.map +1 -1
  218. package/package.json +61 -79
  219. package/lib/@types/binary-settings.d.ts +0 -43
  220. package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts +0 -37
  221. package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts +0 -22
  222. package/lib/@types/digital-ocean/index.d.ts +0 -1
  223. package/lib/@types/headers.d.ts +0 -39
  224. package/lib/@types/helpers.d.ts +0 -10
  225. package/lib/@types/huawei/huawei-api-gateway-event.d.ts +0 -84
  226. package/lib/@types/huawei/huawei-api-gateway-response.d.ts +0 -27
  227. package/lib/@types/huawei/huawei-context.d.ts +0 -203
  228. package/lib/@types/huawei/index.d.ts +0 -3
  229. package/lib/@types/index.d.ts +0 -3
  230. package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts +0 -56
  231. package/lib/adapters/apollo-server/index.d.ts +0 -1
  232. package/lib/adapters/aws/alb.adapter.d.ts +0 -66
  233. package/lib/adapters/aws/api-gateway-v1.adapter.d.ts +0 -71
  234. package/lib/adapters/aws/api-gateway-v2.adapter.d.ts +0 -70
  235. package/lib/adapters/aws/base/aws-simple-adapter.d.ts +0 -85
  236. package/lib/adapters/aws/base/index.d.ts +0 -1
  237. package/lib/adapters/aws/dynamodb.adapter.d.ts +0 -56
  238. package/lib/adapters/aws/event-bridge.adapter.d.ts +0 -64
  239. package/lib/adapters/aws/index.d.ts +0 -10
  240. package/lib/adapters/aws/lambda-edge.adapter.d.ts +0 -213
  241. package/lib/adapters/aws/s3.adapter.d.ts +0 -56
  242. package/lib/adapters/aws/sns.adapter.d.ts +0 -56
  243. package/lib/adapters/aws/sqs.adapter.d.ts +0 -56
  244. package/lib/adapters/azure/http-trigger-v4.adapter.d.ts +0 -81
  245. package/lib/adapters/azure/index.d.ts +0 -1
  246. package/lib/adapters/digital-ocean/http-function.adapter.d.ts +0 -65
  247. package/lib/adapters/digital-ocean/index.d.ts +0 -1
  248. package/lib/adapters/dummy/dummy.adapter.d.ts +0 -30
  249. package/lib/adapters/dummy/index.d.ts +0 -1
  250. package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts +0 -66
  251. package/lib/adapters/huawei/index.d.ts +0 -1
  252. package/lib/contracts/adapter.contract.d.ts +0 -155
  253. package/lib/contracts/framework.contract.d.ts +0 -19
  254. package/lib/contracts/handler.contract.d.ts +0 -26
  255. package/lib/contracts/index.d.ts +0 -4
  256. package/lib/contracts/resolver.contract.d.ts +0 -86
  257. package/lib/core/base-handler.d.ts +0 -31
  258. package/lib/core/constants.d.ts +0 -31
  259. package/lib/core/current-invoke.d.ts +0 -48
  260. package/lib/core/event-body.d.ts +0 -21
  261. package/lib/core/headers.d.ts +0 -47
  262. package/lib/core/index.d.ts +0 -11
  263. package/lib/core/is-binary.d.ts +0 -72
  264. package/lib/core/logger.d.ts +0 -67
  265. package/lib/core/no-op.d.ts +0 -7
  266. package/lib/core/optional.d.ts +0 -21
  267. package/lib/core/path.d.ts +0 -36
  268. package/lib/core/stream.d.ts +0 -20
  269. package/lib/frameworks/apollo-server/apollo-server.framework.d.ts +0 -71
  270. package/lib/frameworks/apollo-server/index.d.ts +0 -1
  271. package/lib/frameworks/body-parser/base-body-parser.framework.d.ts +0 -69
  272. package/lib/frameworks/body-parser/index.d.ts +0 -5
  273. package/lib/frameworks/body-parser/json-body-parser.framework.d.ts +0 -26
  274. package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts +0 -26
  275. package/lib/frameworks/body-parser/text-body-parser.framework.d.ts +0 -26
  276. package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts +0 -26
  277. package/lib/frameworks/cors/cors.framework.d.ts +0 -78
  278. package/lib/frameworks/cors/index.d.ts +0 -1
  279. package/lib/frameworks/deepkit/http-deepkit.framework.d.ts +0 -17
  280. package/lib/frameworks/deepkit/index.d.ts +0 -1
  281. package/lib/frameworks/express/express.framework.d.ts +0 -16
  282. package/lib/frameworks/express/index.d.ts +0 -1
  283. package/lib/frameworks/fastify/fastify.framework.d.ts +0 -16
  284. package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts +0 -13
  285. package/lib/frameworks/fastify/index.d.ts +0 -1
  286. package/lib/frameworks/hapi/hapi.framework.d.ts +0 -16
  287. package/lib/frameworks/hapi/index.d.ts +0 -1
  288. package/lib/frameworks/koa/index.d.ts +0 -1
  289. package/lib/frameworks/koa/koa.framework.d.ts +0 -16
  290. package/lib/frameworks/lazy/index.d.ts +0 -1
  291. package/lib/frameworks/lazy/lazy.framework.d.ts +0 -55
  292. package/lib/frameworks/trpc/index.d.ts +0 -1
  293. package/lib/frameworks/trpc/trpc.framework.d.ts +0 -155
  294. package/lib/handlers/aws/aws-stream.handler.d.ts +0 -83
  295. package/lib/handlers/aws/index.d.ts +0 -1
  296. package/lib/handlers/azure/azure.handler.d.ts +0 -45
  297. package/lib/handlers/azure/index.d.ts +0 -1
  298. package/lib/handlers/base/index.d.ts +0 -1
  299. package/lib/handlers/base/raw-request.d.ts +0 -30
  300. package/lib/handlers/default/default.handler.d.ts +0 -87
  301. package/lib/handlers/default/index.d.ts +0 -1
  302. package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts +0 -16
  303. package/lib/handlers/digital-ocean/index.d.ts +0 -1
  304. package/lib/handlers/firebase/http-firebase-v2.handler.d.ts +0 -26
  305. package/lib/handlers/firebase/http-firebase.handler.d.ts +0 -18
  306. package/lib/handlers/firebase/index.d.ts +0 -2
  307. package/lib/handlers/gcp/gcp.handler.d.ts +0 -25
  308. package/lib/handlers/gcp/index.d.ts +0 -1
  309. package/lib/handlers/huawei/http-huawei.handler.d.ts +0 -59
  310. package/lib/handlers/huawei/index.d.ts +0 -1
  311. package/lib/index.d.ts +0 -5
  312. package/lib/network/index.d.ts +0 -4
  313. package/lib/network/request.d.ts +0 -44
  314. package/lib/network/response-stream.d.ts +0 -41
  315. package/lib/network/response.d.ts +0 -48
  316. package/lib/network/utils.d.ts +0 -7
  317. package/lib/resolvers/aws-context/aws-context.resolver.d.ts +0 -18
  318. package/lib/resolvers/aws-context/index.d.ts +0 -1
  319. package/lib/resolvers/callback/callback.resolver.d.ts +0 -23
  320. package/lib/resolvers/callback/index.d.ts +0 -1
  321. package/lib/resolvers/dummy/dummy.resolver.d.ts +0 -13
  322. package/lib/resolvers/dummy/index.d.ts +0 -1
  323. package/lib/resolvers/promise/index.d.ts +0 -1
  324. package/lib/resolvers/promise/promise.resolver.d.ts +0 -13
  325. package/lib/serverless-adapter.d.ts +0 -118
@@ -1,169 +1,2 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.AwsStreamHandler = exports.__ΩAWSStreamContext = exports.__ΩAWSStreamResponseMetadata = exports.__ΩAWSResponseStream = void 0;
7
- const { __ΩFrameworkContract } = require('../../contracts');
8
- const { __ΩAdapterContract } = require('../../contracts');
9
- const { __ΩResolverContract } = require('../../contracts');
10
- const { __ΩBinarySettings } = require('../../@types');
11
- const { __ΩILogger } = require('../../core');
12
- const { __ΩServerlessHandler } = require('../../contracts');
13
- const { __ΩAdapterRequest } = require('../../contracts');
14
- function __assignType(fn, args) {
15
- fn.__type = args;
16
- return fn;
17
- }
18
- const __ΩPick = ['T', 'K', 'l+e#!e"!fRb!b"Pde""N#!'];
19
- const util_1 = __importDefault(require("util"));
20
- const core_1 = require("../../core");
21
- const network_1 = require("../../network");
22
- const __ΩAWSResponseStream = ['!'];
23
- exports.__ΩAWSResponseStream = __ΩAWSResponseStream;
24
- const __ΩAWSStreamResponseMetadata = [() => __ΩPick, "statusCode", "headers", "cookies", '"P.".#.$Jo!#'];
25
- exports.__ΩAWSStreamResponseMetadata = __ΩAWSStreamResponseMetadata;
26
- const __ΩAWSStreamContext = [() => __ΩAWSResponseStream, 'response', 'context', 'Pn!4""4#M'];
27
- exports.__ΩAWSStreamContext = __ΩAWSStreamContext;
28
- /**
29
- * The class that implements a default serverless handler consisting of a function with event, context and callback parameters respectively
30
- *
31
- * @breadcrumb Handlers / AwsStreamHandler
32
- * @public
33
- */
34
- class AwsStreamHandler extends core_1.BaseHandler {
35
- //#region Public Methods
36
- /**
37
- * {@inheritDoc}
38
- */
39
- getHandler(app, framework, adapters, resolverFactory, binarySettings, respondWithErrors, log) {
40
- return awslambda.streamifyResponse(__assignType(async (event, response, context) => {
41
- const streamContext = { response, context };
42
- this.onReceiveRequest(log, event, streamContext, binarySettings, respondWithErrors);
43
- const adapter = this.getAdapterByEventAndContext(event, streamContext, adapters, log);
44
- this.onResolveAdapter(log, adapter);
45
- (0, core_1.setCurrentInvoke)({ event, context });
46
- await this.forwardRequestToFramework(app, framework, event, streamContext, adapter, binarySettings, log);
47
- }, ['event', 'response', 'context', '', 'P"2!"2""2#"/$']));
48
- }
49
- //#endregion
50
- //#region Hooks
51
- /**
52
- * The hook executed on receive a request, before the request is being processed
53
- *
54
- * @param log - The instance of logger
55
- * @param event - The event sent by serverless
56
- * @param context - The context sent by serverless
57
- * @param binarySettings - The binary settings
58
- * @param respondWithErrors - Indicates whether the error stack should be included in the response or not
59
- */
60
- onReceiveRequest(log, event, context, binarySettings, respondWithErrors) {
61
- log.debug('SERVERLESS_ADAPTER:PROXY', () => ({
62
- event,
63
- context: util_1.default.inspect(context, { depth: null }),
64
- binarySettings,
65
- respondWithErrors,
66
- }));
67
- }
68
- /**
69
- * The hook executed after resolve the adapter that will be used to handle the request and response
70
- *
71
- * @param log - The instance of logger
72
- * @param adapter - The adapter resolved
73
- */
74
- onResolveAdapter(log, adapter) {
75
- log.debug('SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ', adapter.getAdapterName());
76
- }
77
- /**
78
- * The hook executed after resolves the request values that will be sent to the framework
79
- *
80
- * @param log - The instance of logger
81
- * @param requestValues - The request values returned by the adapter
82
- */
83
- onResolveRequestValues(log, requestValues) {
84
- log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES', () => {
85
- var _a;
86
- return ({
87
- requestValues: {
88
- ...requestValues,
89
- body: (_a = requestValues.body) === null || _a === void 0 ? void 0 : _a.toString(),
90
- },
91
- });
92
- });
93
- }
94
- /**
95
- * The hook executed before sending response to the serverless with response from adapter
96
- *
97
- * @param log - The instance of logger
98
- * @param successResponse - The success response resolved by the adapter
99
- */
100
- onForwardResponseAdapterResponse(log, successResponse) {
101
- log.debug('SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE', {
102
- successResponse,
103
- });
104
- }
105
- //#endregion
106
- //#region Protected Methods
107
- /**
108
- * The function to forward the event to the framework
109
- *
110
- * @param app - The instance of the app (express, hapi, etc...)
111
- * @param framework - The framework that will process requests
112
- * @param event - The event sent by serverless
113
- * @param context - The context sent by serverless
114
- * @param adapter - The adapter resolved to this event
115
- * @param log - The instance of logger
116
- * @param binarySettings - The binary settings
117
- */
118
- async forwardRequestToFramework(app, framework, event, context, adapter, binarySettings, log) {
119
- const requestValues = adapter.getRequest(event, context, log);
120
- this.onResolveRequestValues(log, requestValues);
121
- const request = new network_1.ServerlessRequest({
122
- method: requestValues.method,
123
- headers: requestValues.headers,
124
- body: requestValues.body,
125
- remoteAddress: requestValues.remoteAddress,
126
- url: requestValues.path,
127
- });
128
- const response = new network_1.ServerlessStreamResponse({
129
- method: requestValues.method,
130
- onReceiveHeaders: __assignType((status, headers) => {
131
- const flattenedHeaders = (0, core_1.getFlattenedHeadersMap)(headers);
132
- const awsMetadata = {
133
- statusCode: status,
134
- headers: flattenedHeaders,
135
- };
136
- const cookies = headers['set-cookie'];
137
- if (cookies) {
138
- awsMetadata.cookies = Array.isArray(cookies) ? cookies : [cookies];
139
- delete headers['set-cookie'];
140
- delete flattenedHeaders['set-cookie'];
141
- }
142
- this.onForwardResponseAdapterResponse(log, awsMetadata);
143
- const finalResponse = awslambda.HttpResponseStream.from(context.response, awsMetadata);
144
- // some status do not return body, and
145
- // for some unknown reason, we cannot finish the stream without writing at least once
146
- // so I have this thing just to fix this issue
147
- // ref: https://stackoverflow.com/a/37303151
148
- const isHundreadStatus = status >= 100 && status < 200;
149
- const isNoContentStatus = status === 304 || status === 204;
150
- const isHeadRequest = requestValues.method === 'HEAD';
151
- if (isHundreadStatus || isNoContentStatus || isHeadRequest) {
152
- finalResponse.write('');
153
- // end the response to avoid waiting for nothing
154
- response.end();
155
- }
156
- return finalResponse;
157
- }, ['status', 'headers', '', 'P"2!"2""/#']),
158
- log,
159
- });
160
- framework.sendRequest(app, request, response);
161
- log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:WAITING_STREAM_COMPLETE');
162
- await (0, core_1.waitForStreamComplete)(response);
163
- log.debug('SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:STREAM_COMPLETE');
164
- context.response.end();
165
- }
166
- }
167
- exports.AwsStreamHandler = AwsStreamHandler;
168
- AwsStreamHandler.__type = ['TApp', () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, () => core_1.BaseHandler, 'app', () => __ΩFrameworkContract, 'framework', () => __ΩAdapterContract, () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, 'adapters', () => __ΩResolverContract, 'resolverFactory', () => __ΩBinarySettings, 'binarySettings', 'respondWithErrors', () => __ΩILogger, 'log', () => __ΩServerlessHandler, 'getHandler', () => __ΩILogger, 'event', () => __ΩAWSStreamContext, 'context', () => __ΩBinarySettings, 'onReceiveRequest', () => __ΩILogger, () => __ΩAdapterContract, () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, 'adapter', 'onResolveAdapter', () => __ΩILogger, () => __ΩAdapterRequest, 'requestValues', 'onResolveRequestValues', () => __ΩILogger, () => __ΩAWSStreamResponseMetadata, 'successResponse', 'onForwardResponseAdapterResponse', () => __ΩFrameworkContract, () => __ΩAWSStreamContext, () => __ΩAdapterContract, () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, () => __ΩBinarySettings, () => __ΩILogger, 'forwardRequestToFramework', () => __ΩAWSStreamContext, () => __ΩAWSStreamResponseMetadata, 'b!Pe"!"n"$n#$7$Pe"!2%e"!o&"2\'"n)n*o($F2+#####o,&2-n.2/)20n122$`o3"04Pn522"26n728n92/)20$0:<Pn;22"n=n>o<$2?$0@<PnA22nB2C$0D<PnE22nF2G"0H<Pe"!2%e"!oI"2\'"26nJ28"nLnMoK$2?nN2/nO22$`0P<5e!!"nQ$nR$6\''];
169
- //# sourceMappingURL=aws-stream.handler.js.map
1
+ "use strict";var y=Object.create,S=Object.defineProperty,f=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyNames,q=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,F=(r,e)=>{for(var t in e)S(r,t,{get:e[t],enumerable:!0})},w=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of h(e))!D.call(r,o)&&o!==t&&S(r,o,{get:()=>e[o],enumerable:!(a=f(e,o))||a.enumerable});return r},M=(r,e,t)=>(t=r!=null?y(q(r)):{},w(e||!r||!r.__esModule?S(t,"default",{value:r,enumerable:!0}):t,r)),V=r=>w(S({},"__esModule",{value:!0}),r),b={};F(b,{AwsStreamHandler:()=>g});module.exports=V(b);var H=M(require("util")),p=require("../../core"),v=require("../../network");class g extends p.BaseHandler{getHandler(e,t,a,o,d,c,n){return awslambda.streamifyResponse(async(s,i,E)=>{const R={response:i,context:E};this.onReceiveRequest(n,s,R,d,c);const _=this.getAdapterByEventAndContext(s,R,a,n);this.onResolveAdapter(n,_),(0,p.setCurrentInvoke)({event:s,context:E}),await this.forwardRequestToFramework(e,t,s,R,_,d,n)})}onReceiveRequest(e,t,a,o,d){e.debug("SERVERLESS_ADAPTER:PROXY",()=>({event:t,context:H.default.inspect(a,{depth:null}),binarySettings:o,respondWithErrors:d}))}onResolveAdapter(e,t){e.debug("SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ",t.getAdapterName())}onResolveRequestValues(e,t){e.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES",()=>{var a;return{requestValues:{...t,body:(a=t.body)==null?void 0:a.toString()}}})}onForwardResponseAdapterResponse(e,t){e.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE",{successResponse:t})}async forwardRequestToFramework(e,t,a,o,d,c,n){const s=d.getRequest(a,o,n);this.onResolveRequestValues(n,s);const i=new v.ServerlessRequest({method:s.method,headers:s.headers,body:s.body,remoteAddress:s.remoteAddress,url:s.path}),E=new v.ServerlessStreamResponse({method:s.method,onReceiveHeaders:(R,_)=>{const l=(0,p.getFlattenedHeadersMap)(_),A={statusCode:R,headers:l},u=_["set-cookie"];u&&(A.cookies=Array.isArray(u)?u:[u],delete _["set-cookie"],delete l["set-cookie"]),this.onForwardResponseAdapterResponse(n,A);const O=awslambda.HttpResponseStream.from(o.response,A),P=R>=100&&R<200,m=R===304||R===204,T=s.method==="HEAD";return(P||m||T)&&(O.write(""),E.end()),O},log:n});t.sendRequest(e,i,E),n.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:WAITING_STREAM_COMPLETE"),await(0,p.waitForStreamComplete)(E),n.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:STREAM_COMPLETE"),o.response.end()}}
2
+ //# sourceMappingURL=aws-stream.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aws-stream.handler.js","sourceRoot":"","sources":["../../../src/handlers/aws/aws-stream.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws-stream.handler.js","sources":["../../../src/handlers/aws/aws-stream.handler.ts"],"sourcesContent":["//#region Imports\n\nimport { Writable } from 'stream';\nimport util from 'util';\nimport type { APIGatewayProxyEventV2, Context } from 'aws-lambda';\nimport type { APIGatewayProxyStructuredResultV2 } from 'aws-lambda/trigger/api-gateway-proxy';\nimport { BinarySettings } from '../../@types';\nimport {\n AdapterContract,\n AdapterRequest,\n FrameworkContract,\n ResolverContract,\n ServerlessHandler,\n} from '../../contracts';\nimport {\n BaseHandler,\n ILogger,\n getFlattenedHeadersMap,\n setCurrentInvoke,\n waitForStreamComplete,\n} from '../../core';\nimport { ServerlessRequest, ServerlessStreamResponse } from '../../network';\n\n//#endregion\n\nexport type AWSResponseStream = Writable;\n\nexport type AWSStreamResponseMetadata = Pick<\n APIGatewayProxyStructuredResultV2,\n 'statusCode' | 'headers' | 'cookies'\n>;\n\ndeclare const awslambda: {\n streamifyResponse: (\n handler: (\n event: APIGatewayProxyEventV2,\n response: AWSResponseStream,\n context: Context,\n ) => Promise<void>,\n ) => any;\n HttpResponseStream: {\n from: (\n stream: AWSResponseStream,\n httpResponseMetadata: AWSStreamResponseMetadata,\n ) => AWSResponseStream;\n };\n};\n\n/**\n * The interface that describes the internal context used by the {@link AwsStreamHandler}\n *\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\nexport type AWSStreamContext = {\n /**\n * The response stream provided by the serverless\n */\n response: AWSResponseStream;\n /**\n * The context provided by the serverless\n */\n context: Context;\n};\n\n/**\n * The class that implements a default serverless handler consisting of a function with event, context and callback parameters respectively\n *\n * @breadcrumb Handlers / AwsStreamHandler\n * @public\n */\nexport class AwsStreamHandler<TApp> extends BaseHandler<\n TApp,\n APIGatewayProxyEventV2,\n AWSStreamContext,\n void,\n AWSStreamResponseMetadata,\n void\n> {\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getHandler(\n app: TApp,\n framework: FrameworkContract<TApp>,\n adapters: AdapterContract<\n APIGatewayProxyEventV2,\n AWSStreamContext,\n AWSStreamResponseMetadata\n >[],\n resolverFactory: ResolverContract<\n unknown,\n unknown,\n unknown,\n unknown,\n unknown\n >,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n log: ILogger,\n ): ServerlessHandler<Promise<void>> {\n return awslambda.streamifyResponse(async (event, response, context) => {\n const streamContext = { response, context };\n\n this.onReceiveRequest(\n log,\n event,\n streamContext,\n binarySettings,\n respondWithErrors,\n );\n\n const adapter = this.getAdapterByEventAndContext(\n event,\n streamContext,\n adapters,\n log,\n );\n\n this.onResolveAdapter(log, adapter);\n\n setCurrentInvoke({ event, context });\n\n await this.forwardRequestToFramework(\n app,\n framework,\n event,\n streamContext,\n adapter,\n binarySettings,\n log,\n );\n });\n }\n\n //#endregion\n\n //#region Hooks\n\n /**\n * The hook executed on receive a request, before the request is being processed\n *\n * @param log - The instance of logger\n * @param event - The event sent by serverless\n * @param context - The context sent by serverless\n * @param binarySettings - The binary settings\n * @param respondWithErrors - Indicates whether the error stack should be included in the response or not\n */\n protected onReceiveRequest(\n log: ILogger,\n event: APIGatewayProxyEventV2,\n context: AWSStreamContext,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n ): void {\n log.debug('SERVERLESS_ADAPTER:PROXY', () => ({\n event,\n context: util.inspect(context, { depth: null }),\n binarySettings,\n respondWithErrors,\n }));\n }\n\n /**\n * The hook executed after resolve the adapter that will be used to handle the request and response\n *\n * @param log - The instance of logger\n * @param adapter - The adapter resolved\n */\n protected onResolveAdapter(\n log: ILogger,\n adapter: AdapterContract<\n APIGatewayProxyEventV2,\n AWSStreamContext,\n AWSStreamResponseMetadata\n >,\n ): void {\n log.debug(\n 'SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ',\n adapter.getAdapterName(),\n );\n }\n\n /**\n * The hook executed after resolves the request values that will be sent to the framework\n *\n * @param log - The instance of logger\n * @param requestValues - The request values returned by the adapter\n */\n protected onResolveRequestValues(\n log: ILogger,\n requestValues: AdapterRequest,\n ): void {\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES',\n () => ({\n requestValues: {\n ...requestValues,\n body: requestValues.body?.toString(),\n },\n }),\n );\n }\n\n /**\n * The hook executed before sending response to the serverless with response from adapter\n *\n * @param log - The instance of logger\n * @param successResponse - The success response resolved by the adapter\n */\n protected onForwardResponseAdapterResponse(\n log: ILogger,\n successResponse: AWSStreamResponseMetadata,\n ) {\n log.debug('SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE', {\n successResponse,\n });\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * The function to forward the event to the framework\n *\n * @param app - The instance of the app (express, hapi, etc...)\n * @param framework - The framework that will process requests\n * @param event - The event sent by serverless\n * @param context - The context sent by serverless\n * @param adapter - The adapter resolved to this event\n * @param log - The instance of logger\n * @param binarySettings - The binary settings\n */\n protected async forwardRequestToFramework(\n app: TApp,\n framework: FrameworkContract<TApp>,\n event: APIGatewayProxyEventV2,\n context: AWSStreamContext,\n adapter: AdapterContract<\n APIGatewayProxyEventV2,\n AWSStreamContext,\n AWSStreamResponseMetadata\n >,\n binarySettings: BinarySettings,\n log: ILogger,\n ): Promise<void> {\n const requestValues = adapter.getRequest(event, context, log);\n\n this.onResolveRequestValues(log, requestValues);\n\n const request = new ServerlessRequest({\n method: requestValues.method,\n headers: requestValues.headers,\n body: requestValues.body,\n remoteAddress: requestValues.remoteAddress,\n url: requestValues.path,\n });\n\n const response = new ServerlessStreamResponse({\n method: requestValues.method,\n onReceiveHeaders: (status, headers) => {\n const flattenedHeaders = getFlattenedHeadersMap(headers);\n const awsMetadata: AWSStreamResponseMetadata = {\n statusCode: status,\n headers: flattenedHeaders,\n };\n\n const cookies = headers['set-cookie'];\n\n if (cookies) {\n awsMetadata.cookies = Array.isArray(cookies) ? cookies : [cookies];\n\n delete headers['set-cookie'];\n delete flattenedHeaders['set-cookie'];\n }\n\n this.onForwardResponseAdapterResponse(log, awsMetadata);\n\n const finalResponse = awslambda.HttpResponseStream.from(\n context.response,\n awsMetadata,\n );\n\n // some status do not return body, and\n // for some unknown reason, we cannot finish the stream without writing at least once\n // so I have this thing just to fix this issue\n // ref: https://stackoverflow.com/a/37303151\n const isHundreadStatus = status >= 100 && status < 200;\n const isNoContentStatus = status === 304 || status === 204;\n const isHeadRequest = requestValues.method === 'HEAD';\n\n if (isHundreadStatus || isNoContentStatus || isHeadRequest) {\n finalResponse.write('');\n // end the response to avoid waiting for nothing\n response.end();\n }\n\n return finalResponse;\n },\n log,\n });\n\n framework.sendRequest(app, request, response);\n\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:WAITING_STREAM_COMPLETE',\n );\n await waitForStreamComplete(response);\n\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:STREAM_COMPLETE',\n );\n context.response.end();\n }\n\n //#endregion\n}\n"],"names":["aws_stream_handler_exports","__export","AwsStreamHandler","__toCommonJS","import_util","__toESM","import_core","import_network","app","framework","adapters","resolverFactory","binarySettings","respondWithErrors","log","event","response","context","streamContext","adapter","util","requestValues","_a","successResponse","request","status","headers","flattenedHeaders","awsMetadata","cookies","finalResponse","isHundreadStatus","isNoContentStatus","isHeadRequest"],"mappings":"kiBAAAA,EAAA,CAAA,EAAAC,EAAAD,EAAA,CAAA,iBAAA,IAAAE,CAAA,CAAA,EAAA,OAAA,QAAAC,EAAAH,CAAA,EAGA,IAAiBI,EAAAC,EAAA,QAAA,MAAA,CAAA,EAiBVC,EAAA,QAAA,YAAA,EACqDC,EAAA,QAAA,eAAA,EAkDrD,MAAML,UAA+BI,EAO1C,WAAA,CAMO,WACLE,EACAC,EACAC,EAKAC,EAOAC,EACAC,EACAC,EACkC,CAClC,OAAO,UAAU,kBAAkB,MAAOC,EAAOC,EAAUC,IAAY,CAC/D,MAAAC,EAAgB,CAAE,SAAAF,EAAU,QAAAC,GAE7B,KAAA,iBACHH,EACAC,EACAG,EACAN,EACAC,CAAA,EAGF,MAAMM,EAAU,KAAK,4BACnBJ,EACAG,EACAR,EACAI,CAAA,EAGG,KAAA,iBAAiBA,EAAKK,CAAO,KAEjBb,EAAA,kBAAA,CAAE,MAAAS,EAAO,QAAAE,CAAS,CAAA,EAEnC,MAAM,KAAK,0BACTT,EACAC,EACAM,EACAG,EACAC,EACAP,EACAE,CAAA,CACF,CACD,CACH,CAeU,iBACRA,EACAC,EACAE,EACAL,EACAC,EACM,CACFC,EAAA,MAAM,2BAA4B,KAAO,CAC3C,MAAAC,EACA,QAASX,EAAAgB,QAAK,QAAQH,EAAS,CAAE,MAAO,KAAM,EAC9C,eAAAL,EACA,kBAAAC,CACA,EAAA,CACJ,CAQU,iBACRC,EACAK,EAKM,CACFL,EAAA,MACF,6CACAK,EAAQ,eAAe,CAAA,CAE3B,CAQU,uBACRL,EACAO,EACM,CACFP,EAAA,MACF,iEACA,IAAO,OAAA,OACL,cAAe,CACb,GAAGO,EACH,MAAMC,EAAAD,EAAc,OAAd,YAAAC,EAAoB,UAC5B,CAAA,EACF,CAEJ,CAQU,iCACRR,EACAS,EACA,CACAT,EAAI,MAAM,4DAA6D,CACrE,gBAAAS,CAAA,CACD,CACH,CAiBA,MAAgB,0BACdf,EACAC,EACAM,EACAE,EACAE,EAKAP,EACAE,EACe,CACf,MAAMO,EAAgBF,EAAQ,WAAWJ,EAAOE,EAASH,CAAG,EAEvD,KAAA,uBAAuBA,EAAKO,CAAa,EAExC,MAAAG,EAAU,IAAIjB,EAAkB,kBAAA,CACpC,OAAQc,EAAc,OACtB,QAASA,EAAc,QACvB,KAAMA,EAAc,KACpB,cAAeA,EAAc,cAC7B,IAAKA,EAAc,IAAA,CACpB,EAEKL,EAAW,IAAIT,EAAyB,yBAAA,CAC5C,OAAQc,EAAc,OACtB,iBAAkB,CAACI,EAAQC,IAAY,CAC/B,MAAAC,KAAmBrB,0BAAuBoB,CAAO,EACjDE,EAAyC,CAC7C,WAAYH,EACZ,QAASE,CAAA,EAGLE,EAAUH,EAAQ,YAAY,EAEhCG,IACFD,EAAY,QAAU,MAAM,QAAQC,CAAO,EAAIA,EAAU,CAACA,CAAO,EAEjE,OAAOH,EAAQ,YAAY,EAC3B,OAAOC,EAAiB,YAAY,GAGjC,KAAA,iCAAiCb,EAAKc,CAAW,EAEhD,MAAAE,EAAgB,UAAU,mBAAmB,KACjDb,EAAQ,SACRW,CAAA,EAOIG,EAAmBN,GAAU,KAAOA,EAAS,IAC7CO,EAAoBP,IAAW,KAAOA,IAAW,IACjDQ,EAAgBZ,EAAc,SAAW,OAE3C,OAAAU,GAAoBC,GAAqBC,KAC3CH,EAAc,MAAM,EAAE,EAEtBd,EAAS,IAAI,GAGRc,CACT,EACA,IAAAhB,CAAA,CACD,EAESL,EAAA,YAAYD,EAAKgB,EAASR,CAAQ,EAExCF,EAAA,MACF,yEAAA,EAEF,QAAMR,yBAAsBU,CAAQ,EAEhCF,EAAA,MACF,iEAAA,EAEFG,EAAQ,SAAS,KACnB,CAGF"}
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./aws-stream.handler"), exports);
18
- //# sourceMappingURL=index.js.map
1
+ "use strict";var _=Object.defineProperty,s=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,O=Object.prototype.hasOwnProperty,a=(r,e,p,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of u(e))!O.call(r,t)&&t!==p&&_(r,t,{get:()=>e[t],enumerable:!(o=s(e,t))||o.enumerable});return r},c=(r,e,p)=>(a(r,e,"default"),p&&a(p,e,"default")),l=r=>a(_({},"__esModule",{value:!0}),r),n={};module.exports=l(n);c(n,require("./aws-stream.handler"),module.exports);
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/aws/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/handlers/aws/index.ts"],"sourcesContent":["export * from './aws-stream.handler';\n"],"names":["aws_exports","__toCommonJS","__reExport"],"mappings":"6YAAAA,EAAA,CAAA,EAAA,OAAA,QAAAC,EAAAD,CAAA,EAAAE,EAAAF,EAAc,QAAd,sBAAA,EAAA,OAAA,OAAA"}
@@ -1,74 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AzureHandler = exports.__ΩAzureHandlerOptions = void 0;
4
- const { __ΩFrameworkContract } = require('../../contracts');
5
- const { __ΩAdapterContract } = require('../../contracts');
6
- const { __ΩResolverContract } = require('../../contracts');
7
- const { __ΩBinarySettings } = require('../../@types');
8
- const { __ΩILogger } = require('../../core');
9
- const { __ΩServerlessHandler } = require('../../contracts');
10
- function __assignType(fn, args) {
11
- fn.__type = args;
12
- return fn;
13
- }
14
- const core_1 = require("../../core");
15
- const default_1 = require("../default");
16
- const __ΩAzureHandlerOptions = ['useContextLogWhenInternalLogger', 'P)4!M'];
17
- exports.__ΩAzureHandlerOptions = __ΩAzureHandlerOptions;
18
- /**
19
- * The class that implements a serverless handler for Azure Function.
20
- *
21
- * When you don't specify a custom logger, the {@link Context} logger is used instead.
22
- *
23
- * @breadcrumb Handlers / AzureHandler
24
- * @public
25
- */
26
- class AzureHandler extends default_1.DefaultHandler {
27
- //#region Constructor
28
- /**
29
- * Default Constructor
30
- */
31
- constructor(options) {
32
- super();
33
- this.options = options;
34
- }
35
- //#endregion
36
- //#region Public Methods
37
- /**
38
- * {@inheritDoc}
39
- */
40
- getHandler(app, framework, adapters, resolverFactory, binarySettings, respondWithErrors, log) {
41
- return __assignType((context, event) => {
42
- var _a;
43
- const useContextLogWhenInternalLogger = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.useContextLogWhenInternalLogger, true);
44
- if ((0, core_1.isInternalLogger)(log) && useContextLogWhenInternalLogger)
45
- log = this.createLoggerFromContext(context);
46
- const defaultHandler = super.getHandler(app, framework, adapters, resolverFactory, binarySettings, respondWithErrors, log);
47
- // remove this from context
48
- // because user can mess it-up the things
49
- // @ts-ignore
50
- delete context.done;
51
- delete context.res;
52
- return defaultHandler(event, context, undefined);
53
- }, ['context', 'event', '', 'P!2!!2""/#']);
54
- }
55
- //#endregion
56
- //#region Protected Methods
57
- /**
58
- * Get the {@link ILogger} instance from logger of the context
59
- *
60
- * @param context - The Azure Context
61
- */
62
- createLoggerFromContext(context) {
63
- return {
64
- error: context.log.error,
65
- debug: context.log.verbose,
66
- verbose: context.log.verbose,
67
- info: context.log.info,
68
- warn: context.log.warn,
69
- };
70
- }
71
- }
72
- exports.AzureHandler = AzureHandler;
73
- AzureHandler.__type = ['TApp', 'TEvent', 'TCallback', 'TResponse', 'TReturn', () => default_1.DefaultHandler, () => __ΩAzureHandlerOptions, 'options', 'constructor', 'app', () => __ΩFrameworkContract, 'framework', () => __ΩAdapterContract, 'adapters', () => __ΩResolverContract, 'resolverFactory', () => __ΩBinarySettings, 'binarySettings', 'respondWithErrors', () => __ΩILogger, 'log', () => __ΩServerlessHandler, 'getHandler', 'context', () => __ΩILogger, 'createLoggerFromContext', 'b!b"b#b$b%Pe"!e""!e"#e"$e"%7&Pn\'2(8<9"0)Pe"!2*e"!o+"2,e""!e"$o-$F2.e""!e"#e"$e"%o/&20n122)23n425e"%o6"07P!28n90:<5e!!e!"!e!#e!$e!%6\''];
74
- //# sourceMappingURL=azure.handler.js.map
1
+ "use strict";var u=Object.defineProperty,b=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,O=Object.prototype.hasOwnProperty,y=(r,e)=>{for(var o in e)u(r,o,{get:e[o],enumerable:!0})},P=(r,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of c(e))!O.call(r,t)&&t!==o&&u(r,t,{get:()=>e[t],enumerable:!(n=b(e,t))||n.enumerable});return r},h=r=>P(u({},"__esModule",{value:!0}),r),p={};y(p,{AzureHandler:()=>L});module.exports=h(p);var g=require("../../core"),w=require("../default");class L extends w.DefaultHandler{constructor(e){super(),this.options=e}getHandler(e,o,n,t,i,_,s){return(a,d)=>{var l;const v=(0,g.getDefaultIfUndefined)((l=this.options)==null?void 0:l.useContextLogWhenInternalLogger,!0);(0,g.isInternalLogger)(s)&&v&&(s=this.createLoggerFromContext(a));const f=super.getHandler(e,o,n,t,i,_,s);return delete a.done,delete a.res,f(d,a,void 0)}}createLoggerFromContext(e){return{error:e.log.error,debug:e.log.verbose,verbose:e.log.verbose,info:e.log.info,warn:e.log.warn}}}
2
+ //# sourceMappingURL=azure.handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"azure.handler.js","sourceRoot":"","sources":["../../../src/handlers/azure/azure.handler.ts"],"names":[],"mappings":";;;yCAUO,iBAAiB;uCAAjB,iBAAiB;wCAAjB,iBAAiB;sCANO,cAAc;+BAOoB,YAAY;yCADtE,iBAAiB;;;;;AACxB,qCAA8E;AAC9E,wCAA4C;;;AAmB5C;;;;;;;GAOG;AACH,MAAa,YAMX,SAAQ,wBAAoE;IAC5E,qBAAqB;IAErB;;OAEG;IACH,YAA+B,OAA6B;QAC1D,KAAK,EAAE,CAAC;QADqB,YAAO,GAAP,OAAO,CAAsB;IAE5D,CAAC;IAED,YAAY;IAEZ,wBAAwB;IAExB;;OAEG;IACI,UAAU,CACf,GAAS,EACT,SAAkC,EAClC,QAAuD,EACvD,eAMC,EACD,cAA8B,EAC9B,iBAA0B,EAC1B,GAAY;QAEZ,oBAAO,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;;YACzC,MAAM,+BAA+B,GAAG,IAAA,4BAAqB,EAC3D,MAAA,IAAI,CAAC,OAAO,0CAAE,+BAA+B,EAC7C,IAAI,CACL,CAAC;YAEF,IAAI,IAAA,uBAAgB,EAAC,GAAG,CAAC,IAAI,+BAA+B;gBAC1D,GAAG,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAE9C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CACrC,GAAG,EACH,SAAS,EACT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,GAAG,CACJ,CAAC;YAEF,2BAA2B;YAC3B,yCAAyC;YACzC,aAAa;YACb,OAAO,OAAO,CAAC,IAAI,CAAC;YACpB,OAAO,OAAO,CAAC,GAAG,CAAC;YAEnB,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC,0CAAC;IACJ,CAAC;IAED,YAAY;IAEZ,2BAA2B;IAE3B;;;;OAIG;IACO,uBAAuB,CAAC,OAAgB;QAChD,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK;YACxB,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;YAC1B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;YAC5B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;YACtB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;SACvB,CAAC;IACJ,CAAC;;AApFH,oCAuFC"}
1
+ {"version":3,"file":"azure.handler.js","sources":["../../../src/handlers/azure/azure.handler.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/unbound-method */\n//#region Imports\n\nimport type { Context } from '@azure/functions';\nimport { BinarySettings } from '../../@types';\nimport {\n AdapterContract,\n FrameworkContract,\n ResolverContract,\n ServerlessHandler,\n} from '../../contracts';\nimport { ILogger, getDefaultIfUndefined, isInternalLogger } from '../../core';\nimport { DefaultHandler } from '../default';\n\n//#endregion\n\n/**\n * The options to customize {@link AzureHandler}\n *\n * @breadcrumb Handlers / AzureHandler\n * @public\n */\nexport interface AzureHandlerOptions {\n /**\n * Indicates to use the context log instead console.log when logger is internal (created by the library)\n *\n * @defaultValue true\n */\n useContextLogWhenInternalLogger: boolean;\n}\n\n/**\n * The class that implements a serverless handler for Azure Function.\n *\n * When you don't specify a custom logger, the {@link Context} logger is used instead.\n *\n * @breadcrumb Handlers / AzureHandler\n * @public\n */\nexport class AzureHandler<\n TApp,\n TEvent,\n TCallback,\n TResponse,\n TReturn,\n> extends DefaultHandler<TApp, TEvent, Context, TCallback, TResponse, TReturn> {\n //#region Constructor\n\n /**\n * Default Constructor\n */\n constructor(protected readonly options?: AzureHandlerOptions) {\n super();\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getHandler(\n app: TApp,\n framework: FrameworkContract<TApp>,\n adapters: AdapterContract<TEvent, Context, TResponse>[],\n resolverFactory: ResolverContract<\n TEvent,\n Context,\n TCallback,\n TResponse,\n TReturn\n >,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n log: ILogger,\n ): ServerlessHandler<TReturn> {\n return (context: Context, event: TEvent) => {\n const useContextLogWhenInternalLogger = getDefaultIfUndefined(\n this.options?.useContextLogWhenInternalLogger,\n true,\n );\n\n if (isInternalLogger(log) && useContextLogWhenInternalLogger)\n log = this.createLoggerFromContext(context);\n\n const defaultHandler = super.getHandler(\n app,\n framework,\n adapters,\n resolverFactory,\n binarySettings,\n respondWithErrors,\n log,\n );\n\n // remove this from context\n // because user can mess it-up the things\n // @ts-ignore\n delete context.done;\n delete context.res;\n\n return defaultHandler(event, context, undefined);\n };\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get the {@link ILogger} instance from logger of the context\n *\n * @param context - The Azure Context\n */\n protected createLoggerFromContext(context: Context): ILogger {\n return {\n error: context.log.error,\n debug: context.log.verbose,\n verbose: context.log.verbose,\n info: context.log.info,\n warn: context.log.warn,\n };\n }\n\n //#endregion\n}\n"],"names":["azure_handler_exports","__export","AzureHandler","__toCommonJS","import_core","import_default","options","app","framework","adapters","resolverFactory","binarySettings","respondWithErrors","log","context","event","useContextLogWhenInternalLogger","_a","defaultHandler"],"mappings":"qZAAAA,EAAA,CAAA,EAAAC,EAAAD,EAAA,CAAA,aAAA,IAAAE,CAAA,CAAA,EAAA,OAAA,QAAAC,EAAAH,CAAA,EAWA,IAAiEI,EAAA,QAAA,YAAA,EAClCC,EAAA,QAAA,YAAA,EA2BxB,MAAMH,UAMHG,EAAqE,cAAA,CAM7E,YAA+BC,EAA+B,CACtD,QADuB,KAAA,QAAAA,CAE/B,CASO,WACLC,EACAC,EACAC,EACAC,EAOAC,EACAC,EACAC,EAC4B,CACrB,MAAA,CAACC,EAAkBC,IAAkB,OAC1C,MAAMC,KAAkCZ,EAAA,wBACtCa,EAAA,KAAK,UAAL,YAAAA,EAAc,gCACd,EAAA,KAGEb,EAAA,kBAAiBS,CAAG,GAAKG,IACrBH,EAAA,KAAK,wBAAwBC,CAAO,GAE5C,MAAMI,EAAiB,MAAM,WAC3BX,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAMF,cAAOC,EAAQ,KACf,OAAOA,EAAQ,IAERI,EAAeH,EAAOD,EAAS,MAAS,CAAA,CAEnD,CAWU,wBAAwBA,EAA2B,CACpD,MAAA,CACL,MAAOA,EAAQ,IAAI,MACnB,MAAOA,EAAQ,IAAI,QACnB,QAASA,EAAQ,IAAI,QACrB,KAAMA,EAAQ,IAAI,KAClB,KAAMA,EAAQ,IAAI,IAAA,CAEtB,CAGF"}
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./azure.handler"), exports);
18
- //# sourceMappingURL=index.js.map
1
+ "use strict";var _=Object.defineProperty,u=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,O=Object.prototype.hasOwnProperty,a=(r,e,p,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of s(e))!O.call(r,t)&&t!==p&&_(r,t,{get:()=>e[t],enumerable:!(o=u(e,t))||o.enumerable});return r},c=(r,e,p)=>(a(r,e,"default"),p&&a(p,e,"default")),l=r=>a(_({},"__esModule",{value:!0}),r),n={};module.exports=l(n);c(n,require("./azure.handler"),module.exports);
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/azure/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/handlers/azure/index.ts"],"sourcesContent":["export * from './azure.handler';\n"],"names":["azure_exports","__toCommonJS","__reExport"],"mappings":"6YAAAA,EAAA,CAAA,EAAA,OAAA,QAAAC,EAAAD,CAAA,EAAAE,EAAAF,EAAc,QAAd,iBAAA,EAAA,OAAA,OAAA"}
@@ -1,18 +1,2 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./raw-request"), exports);
18
- //# sourceMappingURL=index.js.map
1
+ "use strict";var _=Object.defineProperty,s=Object.getOwnPropertyDescriptor,u=Object.getOwnPropertyNames,O=Object.prototype.hasOwnProperty,a=(r,e,p,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of u(e))!O.call(r,t)&&t!==p&&_(r,t,{get:()=>e[t],enumerable:!(o=s(e,t))||o.enumerable});return r},c=(r,e,p)=>(a(r,e,"default"),p&&a(p,e,"default")),l=r=>a(_({},"__esModule",{value:!0}),r),n={};module.exports=l(n);c(n,require("./raw-request"),module.exports);
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/handlers/base/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/handlers/base/index.ts"],"sourcesContent":["export * from './raw-request';\n"],"names":["base_exports","__toCommonJS","__reExport"],"mappings":"6YAAAA,EAAA,CAAA,EAAA,OAAA,QAAAC,EAAAD,CAAA,EAAAE,EAAAF,EAAc,QAAd,eAAA,EAAA,OAAA,OAAA"}
@@ -1,65 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RawRequest = void 0;
4
- const { __ΩFrameworkContract } = require('../../contracts/index');
5
- function __assignType(fn, args) {
6
- fn.__type = args;
7
- return fn;
8
- }
9
- const index_1 = require("../../network/index");
10
- const index_2 = require("../../core/index");
11
- //#endregion
12
- /**
13
- * The class that expose some methods to be used to get raw request from Express HTTP Request
14
- *
15
- * @breadcrumb Handlers / Base / RawRequest
16
- * @public
17
- */
18
- class RawRequest {
19
- //#region Protected Methods
20
- /**
21
- * The callback to when receive some request from external source
22
- *
23
- * @param app - The instance of the app
24
- * @param framework - The framework for the app
25
- */
26
- onRequestCallback(app, framework) {
27
- return __assignType((request, response) => {
28
- const customRequest = this.getRequestFromExpressRequest(request);
29
- return framework.sendRequest(app, customRequest, response);
30
- }, ['request', 'response', '', 'P!2!!2""/#']);
31
- }
32
- /**
33
- * Not sure why they think using Express instance with prebuilt middlewares was a good idea, but Firebase/GCP
34
- * decides to use `Express` and `body-parser` by default, so you don't get a raw request, instead, you get a modified version by
35
- * Express and also with the body parsed by `body-parser`.
36
- * If you use NestJS or Express it's awesome, but for the rest of the frameworks it's terrible!
37
- * That's why I have this method, just to try and create a raw request to be used and passed to the frameworks so they can handle the request
38
- * as if they received the request from the native http module.
39
- *
40
- * @param request - The Express request
41
- */
42
- getRequestFromExpressRequest(request) {
43
- const expressRequestParsed = request;
44
- const headers = (0, index_2.getFlattenedHeadersMap)(request.headers, ',', true);
45
- const remoteAddress = headers['x-forwarded-for'];
46
- let body;
47
- if (expressRequestParsed.body &&
48
- typeof expressRequestParsed.body === 'object') {
49
- const jsonContent = JSON.stringify(expressRequestParsed.body);
50
- const [bufferBody, contentLength] = (0, index_2.getEventBodyAsBuffer)(jsonContent, false);
51
- body = bufferBody;
52
- headers['content-length'] = String(contentLength);
53
- }
54
- return new index_1.ServerlessRequest({
55
- method: request.method,
56
- url: request.url,
57
- body,
58
- headers,
59
- remoteAddress,
60
- });
61
- }
62
- }
63
- exports.RawRequest = RawRequest;
64
- RawRequest.__type = ['TApp', 'app', () => __ΩFrameworkContract, 'framework', 'req', 'res', '', 'onRequestCallback', 'request', () => index_1.ServerlessRequest, 'getRequestFromExpressRequest', 'b!Pe"!2"e"!o#"2$P!2%!2&P$$`J/\'0(<P!2)P7*0+<5'];
65
- //# sourceMappingURL=raw-request.js.map
1
+ "use strict";var a=Object.defineProperty,y=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,l=Object.prototype.hasOwnProperty,b=(o,e)=>{for(var t in e)a(o,t,{get:e[t],enumerable:!0})},f=(o,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of i(e))!l.call(o,r)&&r!==t&&a(o,r,{get:()=>e[r],enumerable:!(s=y(e,r))||s.enumerable});return o},g=o=>f(a({},"__esModule",{value:!0}),o),p={};b(p,{RawRequest:()=>R});module.exports=g(p);var v=require("../../network/index"),u=require("../../core/index");class R{onRequestCallback(e,t){return(s,r)=>{const n=this.getRequestFromExpressRequest(s);return t.sendRequest(e,n,r)}}getRequestFromExpressRequest(e){const t=e,s=(0,u.getFlattenedHeadersMap)(e.headers,",",!0),r=s["x-forwarded-for"];let n;if(t.body&&typeof t.body=="object"){const c=JSON.stringify(t.body),[d,_]=(0,u.getEventBodyAsBuffer)(c,!1);n=d,s["content-length"]=String(_)}return new v.ServerlessRequest({method:e.method,url:e.url,body:n,headers:s,remoteAddress:r})}}
2
+ //# sourceMappingURL=raw-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"raw-request.js","sourceRoot":"","sources":["../../../src/handlers/base/raw-request.ts"],"names":[],"mappings":";;;yCAGkC,uBAAuB;;;;;AACzD,+CAAwD;AACxD,4CAAgF;AAEhF,YAAY;AAEZ;;;;;GAKG;AACH,MAAsB,UAAU;IAC9B,2BAA2B;IAE3B;;;;;OAKG;IACO,iBAAiB,CACzB,GAAS,EACT,SAAkC;QAElC,oBAAO,CAAC,OAAwB,EAAE,QAAwB,EAAE,EAAE;YAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;YAEjE,OAAO,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC,6CAAC;IACJ,CAAC;IAED;;;;;;;;;OASG;IACO,4BAA4B,CACpC,OAAwB;QAExB,MAAM,oBAAoB,GAAG,OAE5B,CAAC;QAEF,MAAM,OAAO,GAAG,IAAA,8BAAsB,EAAC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjD,IAAI,IAAwB,CAAC;QAE7B,IACE,oBAAoB,CAAC,IAAI;YACzB,OAAO,oBAAoB,CAAC,IAAI,KAAK,QAAQ,EAC7C;YACA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE9D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,4BAAoB,EACtD,WAAW,EACX,KAAK,CACN,CAAC;YAEF,IAAI,GAAG,UAAU,CAAC;YAClB,OAAO,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;SACnD;QAED,OAAO,IAAI,yBAAiB,CAAC;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAO;YACvB,GAAG,EAAE,OAAO,CAAC,GAAI;YACjB,IAAI;YACJ,OAAO;YACP,aAAa;SACd,CAAC,CAAC;IACL,CAAC;;AAhEH,gCAmEC"}
1
+ {"version":3,"file":"raw-request.js","sources":["../../../src/handlers/base/raw-request.ts"],"sourcesContent":["//#region Imports\n\nimport { IncomingMessage, ServerResponse } from 'http';\nimport { FrameworkContract } from '../../contracts/index';\nimport { ServerlessRequest } from '../../network/index';\nimport { getEventBodyAsBuffer, getFlattenedHeadersMap } from '../../core/index';\n\n//#endregion\n\n/**\n * The class that expose some methods to be used to get raw request from Express HTTP Request\n *\n * @breadcrumb Handlers / Base / RawRequest\n * @public\n */\nexport abstract class RawRequest<TApp> {\n //#region Protected Methods\n\n /**\n * The callback to when receive some request from external source\n *\n * @param app - The instance of the app\n * @param framework - The framework for the app\n */\n protected onRequestCallback(\n app: TApp,\n framework: FrameworkContract<TApp>,\n ): (req: IncomingMessage, res: ServerResponse) => void | Promise<void> {\n return (request: IncomingMessage, response: ServerResponse) => {\n const customRequest = this.getRequestFromExpressRequest(request);\n\n return framework.sendRequest(app, customRequest, response);\n };\n }\n\n /**\n * Not sure why they think using Express instance with prebuilt middlewares was a good idea, but Firebase/GCP\n * decides to use `Express` and `body-parser` by default, so you don't get a raw request, instead, you get a modified version by\n * Express and also with the body parsed by `body-parser`.\n * If you use NestJS or Express it's awesome, but for the rest of the frameworks it's terrible!\n * That's why I have this method, just to try and create a raw request to be used and passed to the frameworks so they can handle the request\n * as if they received the request from the native http module.\n *\n * @param request - The Express request\n */\n protected getRequestFromExpressRequest(\n request: IncomingMessage,\n ): ServerlessRequest {\n const expressRequestParsed = request as unknown as {\n body: object | Buffer;\n };\n\n const headers = getFlattenedHeadersMap(request.headers, ',', true);\n const remoteAddress = headers['x-forwarded-for'];\n\n let body: Buffer | undefined;\n\n if (\n expressRequestParsed.body &&\n typeof expressRequestParsed.body === 'object'\n ) {\n const jsonContent = JSON.stringify(expressRequestParsed.body);\n\n const [bufferBody, contentLength] = getEventBodyAsBuffer(\n jsonContent,\n false,\n );\n\n body = bufferBody;\n headers['content-length'] = String(contentLength);\n }\n\n return new ServerlessRequest({\n method: request.method!,\n url: request.url!,\n body,\n headers,\n remoteAddress,\n });\n }\n\n //#endregion\n}\n"],"names":["raw_request_exports","__export","RawRequest","__toCommonJS","import_network","import_core","app","framework","request","response","customRequest","expressRequestParsed","headers","remoteAddress","body","jsonContent","bufferBody","contentLength"],"mappings":"qZAAAA,EAAA,CAAA,EAAAC,EAAAD,EAAA,CAAA,WAAA,IAAAE,CAAA,CAAA,EAAA,OAAA,QAAAC,EAAAH,CAAA,EAIA,IAAkCI,EAAA,QAAA,qBAAA,EAC2BC,EAAA,QAAA,kBAAA,EAUtD,MAAeH,CAAiB,CAS3B,kBACRI,EACAC,EACqE,CAC9D,MAAA,CAACC,EAA0BC,IAA6B,CACvD,MAAAC,EAAgB,KAAK,6BAA6BF,CAAO,EAE/D,OAAOD,EAAU,YAAYD,EAAKI,EAAeD,CAAQ,CAAA,CAE7D,CAYU,6BACRD,EACmB,CACnB,MAAMG,EAAuBH,EAIvBI,KAAUP,EAAA,wBAAuBG,EAAQ,QAAS,IAAK,EAAI,EAC3DK,EAAgBD,EAAQ,iBAAiB,EAE3C,IAAAE,EAEJ,GACEH,EAAqB,MACrB,OAAOA,EAAqB,MAAS,SACrC,CACA,MAAMI,EAAc,KAAK,UAAUJ,EAAqB,IAAI,EAEtD,CAACK,EAAYC,CAAa,KAAIZ,EAAA,sBAClCU,EACA,EAAA,EAGKD,EAAAE,EACCJ,EAAA,gBAAgB,EAAI,OAAOK,CAAa,EAGlD,OAAO,IAAIb,EAAkB,kBAAA,CAC3B,OAAQI,EAAQ,OAChB,IAAKA,EAAQ,IACb,KAAAM,EACA,QAAAF,EACA,cAAAC,CAAA,CACD,CACH,CAGF"}