@h4ad/serverless-adapter 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/lib/adapter.contract-EQE3rlgO.d.ts +278 -0
  2. package/lib/adapter.contract-y5xSjOjo.d.cts +278 -0
  3. package/lib/adapters/apollo-server/index.cjs +6 -0
  4. package/lib/adapters/apollo-server/index.cjs.map +1 -0
  5. package/lib/adapters/apollo-server/index.d.cts +61 -0
  6. package/lib/adapters/apollo-server/index.d.ts +61 -0
  7. package/lib/adapters/apollo-server/index.mjs +2 -0
  8. package/lib/adapters/apollo-server/index.mjs.map +1 -0
  9. package/lib/adapters/aws/index.cjs +6 -0
  10. package/lib/adapters/aws/index.cjs.map +1 -0
  11. package/lib/adapters/aws/index.d.cts +928 -0
  12. package/lib/adapters/aws/index.d.ts +928 -0
  13. package/lib/adapters/aws/index.mjs +2 -0
  14. package/lib/adapters/aws/index.mjs.map +1 -0
  15. package/lib/adapters/azure/index.cjs +6 -0
  16. package/lib/adapters/azure/index.cjs.map +1 -0
  17. package/lib/adapters/azure/index.d.cts +86 -0
  18. package/lib/adapters/azure/index.d.ts +86 -0
  19. package/lib/adapters/azure/index.mjs +2 -0
  20. package/lib/adapters/azure/index.mjs.map +1 -0
  21. package/lib/adapters/digital-ocean/index.cjs +6 -0
  22. package/lib/adapters/digital-ocean/index.cjs.map +1 -0
  23. package/lib/adapters/digital-ocean/index.d.cts +126 -0
  24. package/lib/adapters/digital-ocean/index.d.ts +126 -0
  25. package/lib/adapters/digital-ocean/index.mjs +2 -0
  26. package/lib/adapters/digital-ocean/index.mjs.map +1 -0
  27. package/lib/adapters/dummy/index.cjs +6 -0
  28. package/lib/adapters/dummy/index.cjs.map +1 -0
  29. package/lib/adapters/dummy/index.d.cts +37 -0
  30. package/lib/adapters/dummy/index.d.ts +37 -0
  31. package/lib/adapters/dummy/index.mjs +2 -0
  32. package/lib/adapters/dummy/index.mjs.map +1 -0
  33. package/lib/adapters/huawei/index.cjs +6 -0
  34. package/lib/adapters/huawei/index.cjs.map +1 -0
  35. package/lib/adapters/huawei/index.d.cts +365 -0
  36. package/lib/adapters/huawei/index.d.ts +365 -0
  37. package/lib/adapters/huawei/index.mjs +2 -0
  38. package/lib/adapters/huawei/index.mjs.map +1 -0
  39. package/lib/base-handler-fYEk59Xq.d.ts +35 -0
  40. package/lib/base-handler-peEBoKtZ.d.cts +35 -0
  41. package/lib/chunk-22SSVZU5.mjs +1 -0
  42. package/lib/chunk-22SSVZU5.mjs.map +1 -0
  43. package/lib/chunk-57ZKWTH4.mjs +2 -0
  44. package/lib/chunk-57ZKWTH4.mjs.map +1 -0
  45. package/lib/chunk-OYOJMOFP.mjs +2 -0
  46. package/lib/chunk-OYOJMOFP.mjs.map +1 -0
  47. package/lib/chunk-PQDB5AVF.mjs +12 -0
  48. package/lib/chunk-PQDB5AVF.mjs.map +1 -0
  49. package/lib/chunk-VPGUOREQ.mjs +2 -0
  50. package/lib/chunk-VPGUOREQ.mjs.map +1 -0
  51. package/lib/constants-0cgQlFSV.d.cts +32 -0
  52. package/lib/constants-0cgQlFSV.d.ts +32 -0
  53. package/lib/framework.contract-YnJ-fl1w.d.cts +20 -0
  54. package/lib/framework.contract-YnJ-fl1w.d.ts +20 -0
  55. package/lib/frameworks/apollo-server/index.cjs +6 -0
  56. package/lib/frameworks/apollo-server/index.cjs.map +1 -0
  57. package/lib/frameworks/apollo-server/index.d.cts +72 -0
  58. package/lib/frameworks/apollo-server/index.d.ts +72 -0
  59. package/lib/frameworks/apollo-server/index.mjs +2 -0
  60. package/lib/frameworks/apollo-server/index.mjs.map +1 -0
  61. package/lib/frameworks/body-parser/index.cjs +6 -0
  62. package/lib/frameworks/body-parser/index.cjs.map +1 -0
  63. package/lib/frameworks/body-parser/index.d.cts +159 -0
  64. package/lib/frameworks/body-parser/index.d.ts +159 -0
  65. package/lib/frameworks/body-parser/index.mjs +2 -0
  66. package/lib/frameworks/body-parser/index.mjs.map +1 -0
  67. package/lib/frameworks/cors/index.cjs +7 -0
  68. package/lib/frameworks/cors/index.cjs.map +1 -0
  69. package/lib/frameworks/cors/index.d.cts +79 -0
  70. package/lib/frameworks/cors/index.d.ts +79 -0
  71. package/lib/frameworks/cors/index.mjs +3 -0
  72. package/lib/frameworks/cors/index.mjs.map +1 -0
  73. package/lib/frameworks/deepkit/index.cjs +6 -0
  74. package/lib/frameworks/deepkit/index.cjs.map +1 -0
  75. package/lib/frameworks/deepkit/index.d.cts +21 -0
  76. package/lib/frameworks/deepkit/index.d.ts +21 -0
  77. package/lib/frameworks/deepkit/index.mjs +2 -0
  78. package/lib/frameworks/deepkit/index.mjs.map +1 -0
  79. package/lib/frameworks/express/index.cjs +2 -0
  80. package/lib/frameworks/express/index.cjs.map +1 -0
  81. package/lib/frameworks/express/index.d.cts +18 -0
  82. package/lib/frameworks/express/index.d.ts +18 -0
  83. package/lib/frameworks/express/index.mjs +2 -0
  84. package/lib/frameworks/express/index.mjs.map +1 -0
  85. package/lib/frameworks/fastify/index.cjs +2 -0
  86. package/lib/frameworks/fastify/index.cjs.map +1 -0
  87. package/lib/frameworks/fastify/index.d.cts +18 -0
  88. package/lib/frameworks/fastify/index.d.ts +18 -0
  89. package/lib/frameworks/fastify/index.mjs +2 -0
  90. package/lib/frameworks/fastify/index.mjs.map +1 -0
  91. package/lib/frameworks/hapi/index.cjs +2 -0
  92. package/lib/frameworks/hapi/index.cjs.map +1 -0
  93. package/lib/frameworks/hapi/index.d.cts +18 -0
  94. package/lib/frameworks/hapi/index.d.ts +18 -0
  95. package/lib/frameworks/hapi/index.mjs +2 -0
  96. package/lib/frameworks/hapi/index.mjs.map +1 -0
  97. package/lib/frameworks/koa/index.cjs +2 -0
  98. package/lib/frameworks/koa/index.cjs.map +1 -0
  99. package/lib/frameworks/koa/index.d.cts +18 -0
  100. package/lib/frameworks/koa/index.d.ts +18 -0
  101. package/lib/frameworks/koa/index.mjs +2 -0
  102. package/lib/frameworks/koa/index.mjs.map +1 -0
  103. package/lib/frameworks/lazy/index.cjs +6 -0
  104. package/lib/frameworks/lazy/index.cjs.map +1 -0
  105. package/lib/frameworks/lazy/index.d.cts +57 -0
  106. package/lib/frameworks/lazy/index.d.ts +57 -0
  107. package/lib/frameworks/lazy/index.mjs +2 -0
  108. package/lib/frameworks/lazy/index.mjs.map +1 -0
  109. package/lib/frameworks/trpc/index.cjs +6 -0
  110. package/lib/frameworks/trpc/index.cjs.map +1 -0
  111. package/lib/frameworks/trpc/index.d.cts +154 -0
  112. package/lib/frameworks/trpc/index.d.ts +154 -0
  113. package/lib/frameworks/trpc/index.mjs +2 -0
  114. package/lib/frameworks/trpc/index.mjs.map +1 -0
  115. package/lib/handler.contract-8Cb7qLSi.d.ts +66 -0
  116. package/lib/handler.contract-TQk8iM8f.d.cts +66 -0
  117. package/lib/handlers/aws/index.cjs +12 -0
  118. package/lib/handlers/aws/index.cjs.map +1 -0
  119. package/lib/handlers/aws/index.d.cts +96 -0
  120. package/lib/handlers/aws/index.d.ts +96 -0
  121. package/lib/handlers/aws/index.mjs +2 -0
  122. package/lib/handlers/aws/index.mjs.map +1 -0
  123. package/lib/handlers/azure/index.cjs +6 -0
  124. package/lib/handlers/azure/index.cjs.map +1 -0
  125. package/lib/handlers/azure/index.d.cts +53 -0
  126. package/lib/handlers/azure/index.d.ts +53 -0
  127. package/lib/handlers/azure/index.mjs +2 -0
  128. package/lib/handlers/azure/index.mjs.map +1 -0
  129. package/lib/handlers/default/index.cjs +6 -0
  130. package/lib/handlers/default/index.cjs.map +1 -0
  131. package/lib/handlers/default/index.d.cts +95 -0
  132. package/lib/handlers/default/index.d.ts +95 -0
  133. package/lib/handlers/default/index.mjs +2 -0
  134. package/lib/handlers/default/index.mjs.map +1 -0
  135. package/lib/handlers/digital-ocean/index.cjs +6 -0
  136. package/lib/handlers/digital-ocean/index.cjs.map +1 -0
  137. package/lib/handlers/digital-ocean/index.d.cts +25 -0
  138. package/lib/handlers/digital-ocean/index.d.ts +25 -0
  139. package/lib/handlers/digital-ocean/index.mjs +2 -0
  140. package/lib/handlers/digital-ocean/index.mjs.map +1 -0
  141. package/lib/handlers/firebase/index.cjs +6 -0
  142. package/lib/handlers/firebase/index.cjs.map +1 -0
  143. package/lib/handlers/firebase/index.d.cts +59 -0
  144. package/lib/handlers/firebase/index.d.ts +59 -0
  145. package/lib/handlers/firebase/index.mjs +2 -0
  146. package/lib/handlers/firebase/index.mjs.map +1 -0
  147. package/lib/handlers/gcp/index.cjs +6 -0
  148. package/lib/handlers/gcp/index.cjs.map +1 -0
  149. package/lib/handlers/gcp/index.d.cts +33 -0
  150. package/lib/handlers/gcp/index.d.ts +33 -0
  151. package/lib/handlers/gcp/index.mjs +2 -0
  152. package/lib/handlers/gcp/index.mjs.map +1 -0
  153. package/lib/handlers/huawei/index.cjs +6 -0
  154. package/lib/handlers/huawei/index.cjs.map +1 -0
  155. package/lib/handlers/huawei/index.d.cts +62 -0
  156. package/lib/handlers/huawei/index.d.ts +62 -0
  157. package/lib/handlers/huawei/index.mjs +2 -0
  158. package/lib/handlers/huawei/index.mjs.map +1 -0
  159. package/lib/headers-K2qbcurv.d.cts +38 -0
  160. package/lib/headers-K2qbcurv.d.ts +38 -0
  161. package/lib/index.cjs +12 -0
  162. package/lib/index.cjs.map +1 -0
  163. package/lib/index.d.cts +439 -0
  164. package/lib/index.d.ts +439 -0
  165. package/lib/index.mjs +2 -0
  166. package/lib/index.mjs.map +1 -0
  167. package/lib/logger-9me5n48P.d.cts +65 -0
  168. package/lib/logger-9me5n48P.d.ts +65 -0
  169. package/lib/path-yBwCb8C1.d.cts +64 -0
  170. package/lib/path-yBwCb8C1.d.ts +64 -0
  171. package/lib/raw-request-B2vPjAfE.d.cts +32 -0
  172. package/lib/raw-request-b6AYnkxd.d.ts +32 -0
  173. package/lib/request-DNNIV9ub.d.cts +44 -0
  174. package/lib/request-sVa4pxmx.d.ts +44 -0
  175. package/lib/resolvers/aws-context/index.cjs +2 -0
  176. package/lib/resolvers/aws-context/index.cjs.map +1 -0
  177. package/lib/resolvers/aws-context/index.d.cts +25 -0
  178. package/lib/resolvers/aws-context/index.d.ts +25 -0
  179. package/lib/resolvers/aws-context/index.mjs +2 -0
  180. package/lib/resolvers/aws-context/index.mjs.map +1 -0
  181. package/lib/resolvers/callback/index.cjs +2 -0
  182. package/lib/resolvers/callback/index.cjs.map +1 -0
  183. package/lib/resolvers/callback/index.d.cts +29 -0
  184. package/lib/resolvers/callback/index.d.ts +29 -0
  185. package/lib/resolvers/callback/index.mjs +2 -0
  186. package/lib/resolvers/callback/index.mjs.map +1 -0
  187. package/lib/resolvers/dummy/index.cjs +2 -0
  188. package/lib/resolvers/dummy/index.cjs.map +1 -0
  189. package/lib/resolvers/dummy/index.d.cts +20 -0
  190. package/lib/resolvers/dummy/index.d.ts +20 -0
  191. package/lib/resolvers/dummy/index.mjs +2 -0
  192. package/lib/resolvers/dummy/index.mjs.map +1 -0
  193. package/lib/resolvers/promise/index.cjs +2 -0
  194. package/lib/resolvers/promise/index.cjs.map +1 -0
  195. package/lib/resolvers/promise/index.d.cts +20 -0
  196. package/lib/resolvers/promise/index.d.ts +20 -0
  197. package/lib/resolvers/promise/index.mjs +2 -0
  198. package/lib/resolvers/promise/index.mjs.map +1 -0
  199. package/package.json +1 -1
@@ -0,0 +1,365 @@
1
+ import { B as BothValueHeaders, M as MultiValueHeaders } from '../../headers-K2qbcurv.js';
2
+ import { A as AdapterContract, a as AdapterRequest, G as GetResponseAdapterProps, O as OnErrorProps } from '../../adapter.contract-EQE3rlgO.js';
3
+ import 'http';
4
+ import 'node:http';
5
+ import '../../logger-9me5n48P.js';
6
+
7
+ /**
8
+ * The return value of {@link HuaweiContext} getRequestID
9
+ *
10
+ * @public
11
+ * @breadcrumb Types / Huawei / HuaweiContext
12
+ */
13
+ type GetRequestIDSecondsReturn = string;
14
+ /**
15
+ * The return value of {@link HuaweiContext} getRemainingTimeInMilliSeconds
16
+ *
17
+ * @public
18
+ * @breadcrumb Types / Huawei / HuaweiContext
19
+ */
20
+ type GetRemainingTimeInMilliSecondsReturn = number;
21
+ /**
22
+ * The return value of {@link HuaweiContext} getAccessKey
23
+ *
24
+ * @public
25
+ * @breadcrumb Types / Huawei / HuaweiContext
26
+ */
27
+ type GetAccessKeyReturn = string;
28
+ /**
29
+ * The return value of {@link HuaweiContext} getSecretKey
30
+ *
31
+ * @public
32
+ * @breadcrumb Types / Huawei / HuaweiContext
33
+ */
34
+ type GetSecretKeyReturn = string;
35
+ /**
36
+ * The parameters of the method {@link HuaweiContext} getUserData
37
+ *
38
+ * @public
39
+ * @breadcrumb Types / Huawei / HuaweiContext
40
+ */
41
+ type GetUserDataKeyParameter = string;
42
+ /**
43
+ * The return value of {@link HuaweiContext} getUserData
44
+ *
45
+ * @public
46
+ * @breadcrumb Types / Huawei / HuaweiContext
47
+ */
48
+ type GetUserDataReturn = any;
49
+ /**
50
+ * The return value of {@link HuaweiContext} getFunctionName
51
+ *
52
+ * @public
53
+ * @breadcrumb Types / Huawei / HuaweiContext
54
+ */
55
+ type GetFunctionNameReturn = string;
56
+ /**
57
+ * The return value of {@link HuaweiContext} getRunningTimeInSeconds
58
+ *
59
+ * @public
60
+ * @breadcrumb Types / Huawei / HuaweiContext
61
+ */
62
+ type GetRunningTimeInSecondsReturn = number;
63
+ /**
64
+ * The return value of {@link HuaweiContext} getVersion
65
+ *
66
+ * @public
67
+ * @breadcrumb Types / Huawei / HuaweiContext
68
+ */
69
+ type GetVersionReturn = string;
70
+ /**
71
+ * The return value of {@link HuaweiContext} getMemorySize
72
+ *
73
+ * @public
74
+ * @breadcrumb Types / Huawei / HuaweiContext
75
+ */
76
+ type GetMemorySizeReturn = number;
77
+ /**
78
+ * The return value of {@link HuaweiContext} getCPUNumber
79
+ *
80
+ * @public
81
+ * @breadcrumb Types / Huawei / HuaweiContext
82
+ */
83
+ type GetCPUNumberReturn = number;
84
+ /**
85
+ * The return value of {@link HuaweiContext} getProjectID
86
+ *
87
+ * @public
88
+ * @breadcrumb Types / Huawei / HuaweiContext
89
+ */
90
+ type GetProjectIdReturn = number;
91
+ /**
92
+ * The return value of {@link HuaweiContext} getPackage
93
+ *
94
+ * @public
95
+ * @breadcrumb Types / Huawei / HuaweiContext
96
+ */
97
+ type GetPackageReturn = string;
98
+ /**
99
+ * The return value of {@link HuaweiContext} getToken
100
+ *
101
+ * @public
102
+ * @breadcrumb Types / Huawei / HuaweiContext
103
+ */
104
+ type GetTokenReturn = string;
105
+ /**
106
+ * The return value of {@link HuaweiContext} getLogger
107
+ *
108
+ * Is the instance of logger that can be used to send logs to
109
+ *
110
+ * @public
111
+ * @breadcrumb Types / Huawei / HuaweiContext
112
+ */
113
+ type GetLoggerReturn = {
114
+ info(message: string): void;
115
+ };
116
+ /**
117
+ * The interface that represents methods sent by huawei to get information about the function graph.
118
+ * See more in {@link https://support.huaweicloud.com/intl/en-us/devg-functiongraph/functiongraph_02_0410.html#section1 | Context Methods}
119
+ *
120
+ * @public
121
+ * @breadcrumb Types / Huawei / HuaweiContext
122
+ */
123
+ interface HuaweiContext {
124
+ /**
125
+ * Obtains a request ID.
126
+ */
127
+ getRequestID(): GetRequestIDSecondsReturn;
128
+ /**
129
+ * Obtains the remaining running time of a function.
130
+ */
131
+ getRemainingTimeInMilliSeconds(): GetRemainingTimeInMilliSecondsReturn;
132
+ /**
133
+ * Obtains the AK (valid for 24 hours) of an agency. If you use this method, you need to configure an agency for the function.
134
+ */
135
+ getAccessKey(): GetAccessKeyReturn;
136
+ /**
137
+ * Obtains the SK (valid for 24 hours) of an agency. If you use this method, you need to configure an agency for the function.
138
+ */
139
+ getSecretKey(): GetSecretKeyReturn;
140
+ /**
141
+ * Uses keys to obtain the values passed by environment variables.
142
+ *
143
+ * @param key - The key to get environment variables values
144
+ */
145
+ getUserData(key: GetUserDataKeyParameter): GetUserDataReturn;
146
+ /**
147
+ * Obtains the name of a function.
148
+ */
149
+ getFunctionName(): GetFunctionNameReturn;
150
+ /**
151
+ * Obtains the timeout of a function.
152
+ */
153
+ getRunningTimeInSeconds(): GetRunningTimeInSecondsReturn;
154
+ /**
155
+ * Obtains the version of a function.
156
+ */
157
+ getVersion(): GetVersionReturn;
158
+ /**
159
+ * Obtains the allocated memory.
160
+ */
161
+ getMemorySize(): GetMemorySizeReturn;
162
+ /**
163
+ * Number of CPU millicores used by the function (1 core = 1000 millicores).
164
+ *
165
+ * The value of this field is proportional to that of MemorySize. By default, 100 CPU millicores are required for 128 MB memory. The number of CPU millicores is calculated as follows: Memory/128 x 100 + 200 (basic CPU millicores).
166
+ */
167
+ getCPUNumber(): GetCPUNumberReturn;
168
+ /**
169
+ * Obtains a project ID.
170
+ */
171
+ getProjectID(): GetProjectIdReturn;
172
+ /**
173
+ * Obtains a function group, that is, an app.
174
+ */
175
+ getPackage(): GetPackageReturn;
176
+ /**
177
+ * Obtains the token (valid for 24 hours) of an agency. If you use this method, you need to configure an agency for the function.
178
+ */
179
+ getToken(): GetTokenReturn;
180
+ /**
181
+ * Obtains the logger method provided by the context and returns a log output class. Logs are output in the format of Time-Request ID-Content by using the info method.
182
+ *
183
+ * For example, use the info method to output logs:
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * logg = context.getLogger()
188
+ *
189
+ * logg.info("hello")
190
+ * ```
191
+ */
192
+ getLogger(): GetLoggerReturn;
193
+ }
194
+
195
+ /**
196
+ * The interface that represents the Api Gateway Event of Huawei when integrate with Function Graph of Event Type.
197
+ * See more in {@link https://support.huaweicloud.com/intl/en-us/devg-functiongraph/functiongraph_02_0102.html#functiongraph_02_0102__li5178638110137 | Reference}.
198
+ *
199
+ * @public
200
+ * @breadcrumb Types / Huawei / HuaweiApiGatewayEvent
201
+ */
202
+ interface HuaweiApiGatewayEvent {
203
+ /**
204
+ * The body value with the content of this event serialized in JSON
205
+ */
206
+ body: string;
207
+ /**
208
+ * The headers of the request which this event represents
209
+ */
210
+ headers: BothValueHeaders;
211
+ /**
212
+ * The HTTP Method of the request which this event represents
213
+ */
214
+ httpMethod: string;
215
+ /**
216
+ * Tells if the body is base64 encoded
217
+ */
218
+ isBase64Encoded: boolean;
219
+ /**
220
+ * The path of the request which this event represents
221
+ */
222
+ path: string;
223
+ /**
224
+ * The path parameters of the request which this event represents
225
+ */
226
+ pathParameters: HuaweiRequestPathParameters;
227
+ /**
228
+ * The query strings of the request which this event represents
229
+ */
230
+ queryStringParameters: HuaweiRequestQueryStringParameters;
231
+ /**
232
+ * The request context with information about the stage, api and requestId
233
+ */
234
+ requestContext: HuaweiRequestContext;
235
+ /**
236
+ * It can have more properties that I could not discover yet
237
+ */
238
+ [key: string]: any;
239
+ }
240
+ /**
241
+ * The path parameters of the request, usually is the name of the wildcard you create in FunctionGraph, such as /\{proxy\}.
242
+ *
243
+ * @public
244
+ * @breadcrumb Types / Huawei / HuaweiApiGatewayEvent
245
+ */
246
+ type HuaweiRequestPathParameters = Record<string, string>;
247
+ /**
248
+ * The query strings of the request
249
+ *
250
+ * @public
251
+ * @breadcrumb Types / Huawei / HuaweiApiGatewayEvent
252
+ */
253
+ type HuaweiRequestQueryStringParameters = Record<string, string | string[]>;
254
+ /**
255
+ * The interface that represents the values you can get inside request context.
256
+ *
257
+ * @public
258
+ * @breadcrumb Types / Huawei / HuaweiApiGatewayEvent
259
+ */
260
+ interface HuaweiRequestContext {
261
+ /**
262
+ * The ID of your API inside Api Gateway
263
+ */
264
+ apiId: string;
265
+ /**
266
+ * The ID of this request
267
+ */
268
+ requestId: string;
269
+ /**
270
+ * The name of the stage running this Function Graph
271
+ */
272
+ stage: string;
273
+ }
274
+
275
+ /**
276
+ * The interface that represents the Api Gateway Response of Huawei when integrate with Function Graph of Event Type.
277
+ * See more in {@link https://support.huaweicloud.com/intl/en-us/devg-functiongraph/functiongraph_02_0102.html#functiongraph_02_0102__li5178638110137 | Reference}.
278
+ *
279
+ * @public
280
+ * @breadcrumb Types / Huawei / HuaweiApiGatewayResponse
281
+ */
282
+ interface HuaweiApiGatewayResponse {
283
+ /**
284
+ * Tells if the body was encoded as base64
285
+ */
286
+ isBase64Encoded: boolean;
287
+ /**
288
+ * The HTTP Status code of this response
289
+ */
290
+ statusCode: number;
291
+ /**
292
+ * The headers sent with this response
293
+ */
294
+ headers: MultiValueHeaders;
295
+ /**
296
+ * The body value with the content of this response serialized in JSON
297
+ */
298
+ body: string;
299
+ }
300
+
301
+ /**
302
+ * The options to customize the {@link HuaweiApiGatewayAdapter}
303
+ *
304
+ * @breadcrumb Adapters / Huawei / HuaweiApiGatewayAdapter
305
+ * @public
306
+ */
307
+ interface HuaweiApiGatewayOptions {
308
+ /**
309
+ * Strip base path for custom domains
310
+ *
311
+ * @defaultValue ''
312
+ */
313
+ stripBasePath?: string;
314
+ }
315
+ /**
316
+ * The adapter to handle requests from Huawei Api Gateway
317
+ *
318
+ * @example
319
+ * ```typescript
320
+ * const stripBasePath = '/any/custom/base/path'; // default ''
321
+ * const adapter = new ApiGatewayAdapter({ stripBasePath });
322
+ * ```
323
+ *
324
+ * @breadcrumb Adapters / Huawei / HuaweiApiGatewayAdapter
325
+ * @public
326
+ *
327
+ * {@link https://support.huaweicloud.com/intl/en-us/devg-functiongraph/functiongraph_02_0102.html#functiongraph_02_0102__li5178638110137 | Event Reference}
328
+ */
329
+ declare class HuaweiApiGatewayAdapter implements AdapterContract<HuaweiApiGatewayEvent, HuaweiContext, HuaweiApiGatewayResponse> {
330
+ protected readonly options?: HuaweiApiGatewayOptions | undefined;
331
+ /**
332
+ * Default constructor
333
+ *
334
+ * @param options - The options to customize the {@link HuaweiApiGatewayAdapter}
335
+ */
336
+ constructor(options?: HuaweiApiGatewayOptions | undefined);
337
+ /**
338
+ * {@inheritDoc}
339
+ */
340
+ getAdapterName(): string;
341
+ /**
342
+ * {@inheritDoc}
343
+ */
344
+ canHandle(event: unknown): event is HuaweiApiGatewayEvent;
345
+ /**
346
+ * {@inheritDoc}
347
+ */
348
+ getRequest(event: HuaweiApiGatewayEvent): AdapterRequest;
349
+ /**
350
+ * {@inheritDoc}
351
+ */
352
+ getResponse({ headers: responseHeaders, body, isBase64Encoded, statusCode, }: GetResponseAdapterProps<HuaweiApiGatewayEvent>): HuaweiApiGatewayResponse;
353
+ /**
354
+ * {@inheritDoc}
355
+ */
356
+ onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<HuaweiApiGatewayEvent, HuaweiApiGatewayResponse>): void;
357
+ /**
358
+ * Get path from event with query strings
359
+ *
360
+ * @param event - The event sent by serverless
361
+ */
362
+ protected getPathFromEvent(event: HuaweiApiGatewayEvent): string;
363
+ }
364
+
365
+ export { HuaweiApiGatewayAdapter, type HuaweiApiGatewayOptions };
@@ -0,0 +1,2 @@
1
+ import{g as p,h as u,i as d,s as c,t as w}from"../../chunk-PQDB5AVF.mjs";import{a as i}from"../../chunk-OYOJMOFP.mjs";var y=class h{constructor(e){this.options=e}static{i(this,"HuaweiApiGatewayAdapter")}getAdapterName(){return h.name}canHandle(e){let t=e;return!!(t&&t.httpMethod&&t.requestContext&&t.requestContext.apiId&&t.requestContext.stage&&t.requestContext.requestId&&!("multiValueQueryStringParameters"in t))}getRequest(e){let t=e.httpMethod,s=this.getPathFromEvent(e),a=u(e.headers,",",!0),r;if(e.body){let[o,g]=p(e.body,e.isBase64Encoded);r=o,a["content-length"]=String(g)}let n=a["x-real-ip"];return{method:t,headers:a,body:r,remoteAddress:n,path:s}}getResponse({headers:e,body:t,isBase64Encoded:s,statusCode:a}){let r=d(e);return{statusCode:a,body:t,headers:r,isBase64Encoded:s}}onErrorWhileForwarding({error:e,delegatedResolver:t,respondWithErrors:s,event:a,log:r}){let n=s?e.stack:"",o=this.getResponse({event:a,statusCode:500,body:n||"",headers:{},isBase64Encoded:!1,log:r});t.succeed(o)}getPathFromEvent(e){let t=c(this.options?.stripBasePath,""),s=new RegExp(`^${t}`),a=e.path.replace(s,""),r=e.queryStringParameters;return w(a,r)}};export{y as HuaweiApiGatewayAdapter};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/adapters/huawei/huawei-api-gateway.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type {\n HuaweiApiGatewayEvent,\n HuaweiApiGatewayResponse,\n HuaweiContext,\n} from '../../@types/huawei';\nimport type {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n getDefaultIfUndefined,\n getEventBodyAsBuffer,\n getFlattenedHeadersMap,\n getMultiValueHeadersMap,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link HuaweiApiGatewayAdapter}\n *\n * @breadcrumb Adapters / Huawei / HuaweiApiGatewayAdapter\n * @public\n */\nexport interface HuaweiApiGatewayOptions {\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 Huawei Api Gateway\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new ApiGatewayAdapter({ stripBasePath });\n * ```\n *\n * @breadcrumb Adapters / Huawei / HuaweiApiGatewayAdapter\n * @public\n *\n * {@link https://support.huaweicloud.com/intl/en-us/devg-functiongraph/functiongraph_02_0102.html#functiongraph_02_0102__li5178638110137 | Event Reference}\n */\nexport class HuaweiApiGatewayAdapter\n implements\n AdapterContract<\n HuaweiApiGatewayEvent,\n HuaweiContext,\n HuaweiApiGatewayResponse\n >\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link HuaweiApiGatewayAdapter}\n */\n constructor(protected readonly options?: HuaweiApiGatewayOptions) {}\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return HuaweiApiGatewayAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is HuaweiApiGatewayEvent {\n const apiGatewayEvent = event as Partial<HuaweiApiGatewayEvent>;\n\n return !!(\n apiGatewayEvent &&\n apiGatewayEvent.httpMethod &&\n apiGatewayEvent.requestContext &&\n apiGatewayEvent.requestContext.apiId &&\n apiGatewayEvent.requestContext.stage &&\n apiGatewayEvent.requestContext.requestId &&\n // to avoid conflict with api gateway v1 of aws\n !('multiValueQueryStringParameters' in apiGatewayEvent)\n );\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: HuaweiApiGatewayEvent): AdapterRequest {\n const method = event.httpMethod;\n const path = this.getPathFromEvent(event);\n\n const headers = getFlattenedHeadersMap(event.headers, ',', true);\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 const remoteAddress = headers['x-real-ip'];\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 }: GetResponseAdapterProps<HuaweiApiGatewayEvent>): HuaweiApiGatewayResponse {\n const headers = getMultiValueHeadersMap(responseHeaders);\n\n return {\n statusCode,\n body,\n headers,\n isBase64Encoded,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<HuaweiApiGatewayEvent, HuaweiApiGatewayResponse>): 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: HuaweiApiGatewayEvent): string {\n const stripBasePath = getDefaultIfUndefined(\n this.options?.stripBasePath,\n '',\n );\n const replaceRegex = new RegExp(`^${stripBasePath}`);\n const path = event.path.replace(replaceRegex, '');\n\n const queryParams = event.queryStringParameters;\n\n return getPathWithQueryStringParams(path, queryParams);\n }\n\n //#endregion\n}\n"],"mappings":"sHAoDO,IAAMA,EAAN,MAAMC,CAOb,CAQE,YAA+BC,EAAmC,CAAnC,aAAAA,CAAoC,CAnErE,MA2DA,CAAAC,EAAA,gCAiBS,gBAAyB,CAC9B,OAAOF,EAAwB,IACjC,CAKO,UAAUG,EAAgD,CAC/D,IAAMC,EAAkBD,EAExB,MAAO,CAAC,EACNC,GACAA,EAAgB,YAChBA,EAAgB,gBAChBA,EAAgB,eAAe,OAC/BA,EAAgB,eAAe,OAC/BA,EAAgB,eAAe,WAE/B,EAAE,oCAAqCA,GAE3C,CAKO,WAAWD,EAA8C,CAC9D,IAAME,EAASF,EAAM,WACfG,EAAO,KAAK,iBAAiBH,CAAK,EAElCI,EAAUC,EAAuBL,EAAM,QAAS,IAAK,EAAI,EAE3DM,EAEJ,GAAIN,EAAM,KAAM,CACd,GAAM,CAACO,EAAYC,CAAa,EAAIC,EAClCT,EAAM,KACNA,EAAM,eACR,EAEAM,EAAOC,EACPH,EAAQ,gBAAgB,EAAI,OAAOI,CAAa,CAClD,CAEA,IAAME,EAAgBN,EAAQ,WAAW,EAEzC,MAAO,CACL,OAAAF,EACA,QAAAE,EACA,KAAAE,EACA,cAAAI,EACA,KAAAP,CACF,CACF,CAKO,YAAY,CACjB,QAASQ,EACT,KAAAL,EACA,gBAAAM,EACA,WAAAC,CACF,EAA6E,CAC3E,IAAMT,EAAUU,EAAwBH,CAAe,EAEvD,MAAO,CACL,WAAAE,EACA,KAAAP,EACA,QAAAF,EACA,gBAAAQ,CACF,CACF,CAKO,uBAAuB,CAC5B,MAAAG,EACA,kBAAAC,EACA,kBAAAC,EACA,MAAAjB,EACA,IAAAkB,CACF,EAAwE,CACtE,IAAMZ,EAAOW,EAAoBF,EAAM,MAAQ,GACzCI,EAAgB,KAAK,YAAY,CACrC,MAAAnB,EACA,WAAY,IACZ,KAAMM,GAAQ,GACd,QAAS,CAAC,EACV,gBAAiB,GACjB,IAAAY,CACF,CAAC,EAEDF,EAAkB,QAAQG,CAAa,CACzC,CAWU,iBAAiBnB,EAAsC,CAC/D,IAAMoB,EAAgBC,EACpB,KAAK,SAAS,cACd,EACF,EACMC,EAAe,IAAI,OAAO,IAAIF,CAAa,EAAE,EAC7CjB,EAAOH,EAAM,KAAK,QAAQsB,EAAc,EAAE,EAE1CC,EAAcvB,EAAM,sBAE1B,OAAOwB,EAA6BrB,EAAMoB,CAAW,CACvD,CAGF","names":["HuaweiApiGatewayAdapter","_HuaweiApiGatewayAdapter","options","__name","event","apiGatewayEvent","method","path","headers","getFlattenedHeadersMap","body","bufferBody","contentLength","getEventBodyAsBuffer","remoteAddress","responseHeaders","isBase64Encoded","statusCode","getMultiValueHeadersMap","error","delegatedResolver","respondWithErrors","log","errorResponse","stripBasePath","getDefaultIfUndefined","replaceRegex","queryParams","getPathWithQueryStringParams"]}
@@ -0,0 +1,35 @@
1
+ import { H as HandlerContract, B as BinarySettings, S as ServerlessHandler } from './handler.contract-8Cb7qLSi.js';
2
+ import { A as AdapterContract, R as ResolverContract, a as AdapterRequest, S as ServerlessResponse } from './adapter.contract-EQE3rlgO.js';
3
+ import { F as FrameworkContract } from './framework.contract-YnJ-fl1w.js';
4
+ import { S as ServerlessRequest } from './request-sVa4pxmx.js';
5
+ import { I as ILogger } from './logger-9me5n48P.js';
6
+
7
+ /**
8
+ * The abstract class that represents the base class for a handler
9
+ *
10
+ * @breadcrumb Core
11
+ * @public
12
+ */
13
+ declare abstract class BaseHandler<TApp, TEvent, TContext, TCallback, TResponse, TReturn> implements HandlerContract<TApp, TEvent, TContext, TCallback, TResponse, TReturn> {
14
+ /**
15
+ * Get the handler that will handle serverless requests
16
+ */
17
+ abstract getHandler(app: TApp, framework: FrameworkContract<TApp>, adapters: AdapterContract<TEvent, TContext, TResponse>[], resolverFactory: ResolverContract<TEvent, TContext, TCallback, TResponse, TReturn>, binarySettings: BinarySettings, respondWithErrors: boolean, log: ILogger): ServerlessHandler<TReturn>;
18
+ /**
19
+ * Get the adapter to handle a specific event and context
20
+ *
21
+ * @param event - The event sent by serverless
22
+ * @param context - The context sent by serverless
23
+ * @param adapters - The list of adapters
24
+ * @param log - The instance of logger
25
+ */
26
+ protected getAdapterByEventAndContext(event: TEvent, context: TContext, adapters: AdapterContract<TEvent, TContext, TResponse>[], log: ILogger): AdapterContract<TEvent, TContext, TResponse>;
27
+ /**
28
+ * Get serverless request and response frmo the adapter request
29
+ *
30
+ * @param requestValues - The request values from adapter
31
+ */
32
+ protected getServerlessRequestResponseFromAdapterRequest(requestValues: AdapterRequest): [request: ServerlessRequest, response: ServerlessResponse];
33
+ }
34
+
35
+ export { BaseHandler as B };
@@ -0,0 +1,35 @@
1
+ import { H as HandlerContract, B as BinarySettings, S as ServerlessHandler } from './handler.contract-TQk8iM8f.cjs';
2
+ import { A as AdapterContract, R as ResolverContract, a as AdapterRequest, S as ServerlessResponse } from './adapter.contract-y5xSjOjo.cjs';
3
+ import { F as FrameworkContract } from './framework.contract-YnJ-fl1w.cjs';
4
+ import { S as ServerlessRequest } from './request-DNNIV9ub.cjs';
5
+ import { I as ILogger } from './logger-9me5n48P.cjs';
6
+
7
+ /**
8
+ * The abstract class that represents the base class for a handler
9
+ *
10
+ * @breadcrumb Core
11
+ * @public
12
+ */
13
+ declare abstract class BaseHandler<TApp, TEvent, TContext, TCallback, TResponse, TReturn> implements HandlerContract<TApp, TEvent, TContext, TCallback, TResponse, TReturn> {
14
+ /**
15
+ * Get the handler that will handle serverless requests
16
+ */
17
+ abstract getHandler(app: TApp, framework: FrameworkContract<TApp>, adapters: AdapterContract<TEvent, TContext, TResponse>[], resolverFactory: ResolverContract<TEvent, TContext, TCallback, TResponse, TReturn>, binarySettings: BinarySettings, respondWithErrors: boolean, log: ILogger): ServerlessHandler<TReturn>;
18
+ /**
19
+ * Get the adapter to handle a specific event and context
20
+ *
21
+ * @param event - The event sent by serverless
22
+ * @param context - The context sent by serverless
23
+ * @param adapters - The list of adapters
24
+ * @param log - The instance of logger
25
+ */
26
+ protected getAdapterByEventAndContext(event: TEvent, context: TContext, adapters: AdapterContract<TEvent, TContext, TResponse>[], log: ILogger): AdapterContract<TEvent, TContext, TResponse>;
27
+ /**
28
+ * Get serverless request and response frmo the adapter request
29
+ *
30
+ * @param requestValues - The request values from adapter
31
+ */
32
+ protected getServerlessRequestResponseFromAdapterRequest(requestValues: AdapterRequest): [request: ServerlessRequest, response: ServerlessResponse];
33
+ }
34
+
35
+ export { BaseHandler as B };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-22SSVZU5.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,2 @@
1
+ import{A as S,a as A,f as u,o as l,x as g}from"./chunk-PQDB5AVF.mjs";import{a as i}from"./chunk-OYOJMOFP.mjs";import c from"node:util";var v=class extends A{static{i(this,"DefaultHandler")}getHandler(t,e,n,R,s,E,o){return(r,a,p)=>{this.onReceiveRequest(o,r,a,s,E);let d=this.getAdapterByEventAndContext(r,a,n,o);return this.onResolveAdapter(o,d),u({event:r,context:a}),R.createResolver({event:r,context:a,callback:p,log:o,respondWithErrors:E,adapter:d}).run(()=>this.forwardRequestToFramework(t,e,r,a,d,s,o))}}onReceiveRequest(t,e,n,R,s){t.debug("SERVERLESS_ADAPTER:PROXY",()=>({event:c.inspect(e,{depth:null}),context:c.inspect(n,{depth:null}),binarySettings:R,respondWithErrors:s}))}onResolveAdapter(t,e){t.debug("SERVERLESS_ADAPTER:RESOLVED_ADAPTER_NAME: ",e.getAdapterName())}onResolveRequestValues(t,e){t.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:REQUEST_VALUES",()=>({requestValues:{...e,body:e.body?.toString()}}))}onResolveForwardedResponseToFramework(t,e){t.debug("SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:RESPONSE",()=>({response:e}))}onForwardResponse(t,e,n,R,s){t.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE_PARAMS",()=>({statusCode:e,body:n,headers:R,isBase64Encoded:s}))}onForwardResponseAdapterResponse(t,e,n){t.debug("SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE",()=>({successResponse:c.inspect(e,{depth:null}),body:n}))}async forwardRequestToFramework(t,e,n,R,s,E,o){let r=s.getRequest(n,R,o);this.onResolveRequestValues(o,r);let[a,p]=this.getServerlessRequestResponseFromAdapterRequest(r);return e.sendRequest(t,a,p),await g(p),this.onResolveForwardedResponseToFramework(o,p),this.forwardResponse(n,p,s,E,o)}forwardResponse(t,e,n,R,s){let E=e.statusCode,o=S.headers(e),r=l(o,R),a=r?"base64":"utf8",p=S.body(e).toString(a),d=r?"[BASE64_ENCODED]":p;this.onForwardResponse(s,E,d,o,r);let T=n.getResponse({event:t,statusCode:E,body:p,headers:o,isBase64Encoded:r,response:e,log:s});return this.onForwardResponseAdapterResponse(s,T,d),T}};export{v as a};
2
+ //# sourceMappingURL=chunk-57ZKWTH4.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/handlers/default/default.handler.ts"],"sourcesContent":["//#region Imports\n\nimport util from 'node:util';\nimport type { BinarySettings, SingleValueHeaders } from '../../@types';\nimport type {\n AdapterContract,\n AdapterRequest,\n FrameworkContract,\n ResolverContract,\n ServerlessHandler,\n} from '../../contracts';\nimport {\n BaseHandler,\n type ILogger,\n isBinary,\n setCurrentInvoke,\n waitForStreamComplete,\n} from '../../core';\nimport { ServerlessResponse } from '../../network';\n\n//#endregion\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 / DefaultHandler\n * @public\n */\nexport class DefaultHandler<\n TApp,\n TEvent,\n TContext,\n TCallback,\n TResponse,\n TReturn,\n> extends BaseHandler<TApp, TEvent, TContext, TCallback, TResponse, TReturn> {\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getHandler(\n app: TApp,\n framework: FrameworkContract<TApp>,\n adapters: AdapterContract<TEvent, TContext, TResponse>[],\n resolverFactory: ResolverContract<\n TEvent,\n TContext,\n TCallback,\n TResponse,\n TReturn\n >,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n log: ILogger,\n ): ServerlessHandler<TReturn> {\n return (event: TEvent, context: TContext, callback?: TCallback) => {\n this.onReceiveRequest(\n log,\n event,\n context,\n binarySettings,\n respondWithErrors,\n );\n\n const adapter = this.getAdapterByEventAndContext(\n event,\n context,\n adapters,\n log,\n );\n\n this.onResolveAdapter(log, adapter);\n\n setCurrentInvoke({ event, context });\n\n const resolver = resolverFactory.createResolver({\n event,\n context,\n callback,\n log,\n respondWithErrors,\n adapter,\n });\n\n return resolver.run(() =>\n this.forwardRequestToFramework(\n app,\n framework,\n event,\n context,\n adapter,\n binarySettings,\n log,\n ),\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: TEvent,\n context: TContext,\n binarySettings: BinarySettings,\n respondWithErrors: boolean,\n ): void {\n log.debug('SERVERLESS_ADAPTER:PROXY', () => ({\n event: util.inspect(event, { depth: null }),\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<TEvent, TContext, TResponse>,\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 after handling the response sent by the framework\n *\n * @param log - The instance of logger\n * @param response - The response sent by the framework\n */\n protected onResolveForwardedResponseToFramework(\n log: ILogger,\n response: ServerlessResponse,\n ): void {\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_REQUEST_TO_FRAMEWORK:RESPONSE',\n () => ({\n response,\n }),\n );\n }\n\n /**\n * The hook executed before sending response to the serverless\n *\n * @param log - The instance of logger\n * @param statusCode - The status code of the response\n * @param body - The body of the response\n * @param headers - The headers of the response\n * @param isBase64Encoded - Indicates whether the response was encoded as binary or not\n */\n protected onForwardResponse(\n log: ILogger,\n statusCode: number,\n body: string,\n headers: SingleValueHeaders,\n isBase64Encoded: boolean,\n ) {\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE_PARAMS',\n () => ({\n statusCode,\n body,\n headers,\n isBase64Encoded,\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 * @param body - The body of the response sent by the framework\n */\n protected onForwardResponseAdapterResponse(\n log: ILogger,\n successResponse: TResponse,\n body: string,\n ) {\n log.debug(\n 'SERVERLESS_ADAPTER:FORWARD_RESPONSE:EVENT_SOURCE_RESPONSE',\n () => ({\n successResponse: util.inspect(successResponse, { depth: null }),\n body,\n }),\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: TEvent,\n context: TContext,\n adapter: AdapterContract<TEvent, TContext, TResponse>,\n binarySettings: BinarySettings,\n log: ILogger,\n ): Promise<TResponse> {\n const requestValues = adapter.getRequest(event, context, log);\n\n this.onResolveRequestValues(log, requestValues);\n\n const [request, response] =\n this.getServerlessRequestResponseFromAdapterRequest(requestValues);\n\n framework.sendRequest(app, request, response);\n\n await waitForStreamComplete(response);\n\n this.onResolveForwardedResponseToFramework(log, response);\n\n return this.forwardResponse(event, response, adapter, binarySettings, log);\n }\n\n /**\n * The function to forward the response back to the serverless\n *\n * @param event - The event sent by serverless\n * @param response - The response of the framework\n * @param adapter - The adapter resolved to this event\n * @param binarySettings - The binary settings\n * @param log - The instance of logger\n */\n protected forwardResponse(\n event: TEvent,\n response: ServerlessResponse,\n adapter: AdapterContract<TEvent, TContext, TResponse>,\n binarySettings: BinarySettings,\n log: ILogger,\n ): TResponse {\n const statusCode = response.statusCode;\n const headers = ServerlessResponse.headers(response);\n const isBase64Encoded = isBinary(headers, binarySettings);\n const encoding = isBase64Encoded ? 'base64' : 'utf8';\n const body = ServerlessResponse.body(response).toString(encoding);\n const logBody = isBase64Encoded ? '[BASE64_ENCODED]' : body;\n\n this.onForwardResponse(log, statusCode, logBody, headers, isBase64Encoded);\n\n const successResponse = adapter.getResponse({\n event,\n statusCode,\n body,\n headers,\n isBase64Encoded,\n response,\n log,\n });\n\n this.onForwardResponseAdapterResponse(log, successResponse, logBody);\n\n return successResponse;\n }\n\n //#endregion\n}\n"],"mappings":"8GAEA,OAAOA,MAAU,YA0BV,IAAMC,EAAN,cAOGC,CAAmE,CAnC7E,MAmC6E,CAAAC,EAAA,uBAMpE,WACLC,EACAC,EACAC,EACAC,EAOAC,EACAC,EACAC,EAC4B,CAC5B,MAAO,CAACC,EAAeC,EAAmBC,IAAyB,CACjE,KAAK,iBACHH,EACAC,EACAC,EACAJ,EACAC,CACF,EAEA,IAAMK,EAAU,KAAK,4BACnBH,EACAC,EACAN,EACAI,CACF,EAEA,YAAK,iBAAiBA,EAAKI,CAAO,EAElCC,EAAiB,CAAE,MAAAJ,EAAO,QAAAC,CAAQ,CAAC,EAElBL,EAAgB,eAAe,CAC9C,MAAAI,EACA,QAAAC,EACA,SAAAC,EACA,IAAAH,EACA,kBAAAD,EACA,QAAAK,CACF,CAAC,EAEe,IAAI,IAClB,KAAK,0BACHV,EACAC,EACAM,EACAC,EACAE,EACAN,EACAE,CACF,CACF,CACF,CACF,CAeU,iBACRA,EACAC,EACAC,EACAJ,EACAC,EACM,CACNC,EAAI,MAAM,2BAA4B,KAAO,CAC3C,MAAOM,EAAK,QAAQL,EAAO,CAAE,MAAO,IAAK,CAAC,EAC1C,QAASK,EAAK,QAAQJ,EAAS,CAAE,MAAO,IAAK,CAAC,EAC9C,eAAAJ,EACA,kBAAAC,CACF,EAAE,CACJ,CAQU,iBACRC,EACAI,EACM,CACNJ,EAAI,MACF,6CACAI,EAAQ,eAAe,CACzB,CACF,CAQU,uBACRJ,EACAO,EACM,CACNP,EAAI,MACF,iEACA,KAAO,CACL,cAAe,CACb,GAAGO,EACH,KAAMA,EAAc,MAAM,SAAS,CACrC,CACF,EACF,CACF,CAQU,sCACRP,EACAQ,EACM,CACNR,EAAI,MACF,2DACA,KAAO,CACL,SAAAQ,CACF,EACF,CACF,CAWU,kBACRR,EACAS,EACAC,EACAC,EACAC,EACA,CACAZ,EAAI,MACF,mEACA,KAAO,CACL,WAAAS,EACA,KAAAC,EACA,QAAAC,EACA,gBAAAC,CACF,EACF,CACF,CASU,iCACRZ,EACAa,EACAH,EACA,CACAV,EAAI,MACF,4DACA,KAAO,CACL,gBAAiBM,EAAK,QAAQO,EAAiB,CAAE,MAAO,IAAK,CAAC,EAC9D,KAAAH,CACF,EACF,CACF,CAiBA,MAAgB,0BACdhB,EACAC,EACAM,EACAC,EACAE,EACAN,EACAE,EACoB,CACpB,IAAMO,EAAgBH,EAAQ,WAAWH,EAAOC,EAASF,CAAG,EAE5D,KAAK,uBAAuBA,EAAKO,CAAa,EAE9C,GAAM,CAACO,EAASN,CAAQ,EACtB,KAAK,+CAA+CD,CAAa,EAEnE,OAAAZ,EAAU,YAAYD,EAAKoB,EAASN,CAAQ,EAE5C,MAAMO,EAAsBP,CAAQ,EAEpC,KAAK,sCAAsCR,EAAKQ,CAAQ,EAEjD,KAAK,gBAAgBP,EAAOO,EAAUJ,EAASN,EAAgBE,CAAG,CAC3E,CAWU,gBACRC,EACAO,EACAJ,EACAN,EACAE,EACW,CACX,IAAMS,EAAaD,EAAS,WACtBG,EAAUK,EAAmB,QAAQR,CAAQ,EAC7CI,EAAkBK,EAASN,EAASb,CAAc,EAClDoB,EAAWN,EAAkB,SAAW,OACxCF,EAAOM,EAAmB,KAAKR,CAAQ,EAAE,SAASU,CAAQ,EAC1DC,EAAUP,EAAkB,mBAAqBF,EAEvD,KAAK,kBAAkBV,EAAKS,EAAYU,EAASR,EAASC,CAAe,EAEzE,IAAMC,EAAkBT,EAAQ,YAAY,CAC1C,MAAAH,EACA,WAAAQ,EACA,KAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,SAAAJ,EACA,IAAAR,CACF,CAAC,EAED,YAAK,iCAAiCA,EAAKa,EAAiBM,CAAO,EAE5DN,CACT,CAGF","names":["util","DefaultHandler","BaseHandler","__name","app","framework","adapters","resolverFactory","binarySettings","respondWithErrors","log","event","context","callback","adapter","setCurrentInvoke","util","requestValues","response","statusCode","body","headers","isBase64Encoded","successResponse","request","waitForStreamComplete","ServerlessResponse","isBinary","encoding","logBody"]}
@@ -0,0 +1,2 @@
1
+ var c=Object.defineProperty;var d=(a,b)=>c(a,"name",{value:b,configurable:!0});export{d as a};
2
+ //# sourceMappingURL=chunk-OYOJMOFP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,12 @@
1
+ import{a as s}from"./chunk-OYOJMOFP.mjs";import{IncomingMessage as N}from"node:http";var z=["gzip","deflate","br"],Q=["image/png","image/jpeg","image/jpg","image/avif","image/bmp","image/x-png","image/gif","image/webp","video/mp4","application/pdf"],G={};var S={context:null,event:null};function X(){return S}s(X,"getCurrentInvoke");function Z({event:r,context:e}){S.event=r,S.context=e}s(Z,"setCurrentInvoke");function re(r,e){let t=e?"base64":"utf8",n=Buffer.from(r,t),o=Buffer.byteLength(n,t);return[n,o]}s(re,"getEventBodyAsBuffer");function oe(r,e=",",t=!1){return Object.keys(r).reduce((n,o)=>{let i=t?o.toLowerCase():o,a=r[o];return Array.isArray(a)?n[i]=a.join(e):n[i]=(a??"")+"",n},{})}s(oe,"getFlattenedHeadersMap");function se(r){return Object.keys(r).reduce((e,t)=>{let n=r[t];return e[t.toLowerCase()]=Array.isArray(n)?n.map(String):[String(n)],e},{})}s(se,"getMultiValueHeadersMap");function ie(r){return Object.keys(r).reduce((e,t)=>{let n=r[t],o=t.toLowerCase();return Array.isArray(n)?o!=="set-cookie"?e.headers[t]=n.join(","):e.cookies.push(...n):o==="set-cookie"&&n!==void 0?e.cookies.push(n??""):e.headers[t]=String(n??""),e},{cookies:[],headers:{}})}s(ie,"getFlattenedHeadersMapAndCookies");function R(r){if(!r)return{};let e={},t=r.trim().split(`
2
+ `);for(let n=0;n<t.length;n++){let o=t[n],i=o.indexOf(":"),a=o.slice(0,i).trim().toLowerCase(),u=o.slice(i+1).trim();typeof e[a]>"u"?e[a]=u:Array.isArray(e[a])?e[a].push(u):e[a]=[e[a],u]}return e}s(R,"parseHeaders");function H(r,e){let t=r["content-encoding"];return t?(Array.isArray(t)||(t=t.split(",")),t.some(n=>e.includes(n.trim()))):!1}s(H,"isContentEncodingBinary");function L(r){let e=r["content-type"],t=Array.isArray(e)?e[0]||"":e||"";if(!e)return"";let n=t.indexOf(";");return n===-1?t:t.slice(0,n)}s(L,"getContentType");function O(r,e){let t=L(r);return t?e.includes(t.trim()):!1}s(O,"isContentTypeBinary");function ue(r,e){return"isBinary"in e?e.isBinary===!1?!1:e.isBinary(r):H(r,e.contentEncodings)||O(r,e.contentTypes)}s(ue,"isBinary");var d=s(()=>{},"NO_OP");var b=Symbol("InternalLogger"),I={debug:[["debug","debug"],["verbose","debug"],["info","info"],["error","error"],["warn","warn"]],verbose:[["verbose","debug"],["info","info"],["error","error"],["warn","warn"]],info:[["info","info"],["error","error"],["warn","warn"]],warn:[["warn","warn"],["error","error"]],error:[["error","error"]],none:[]},P=s(r=>typeof r=="function"?r():r,"lazyPrint"),_=s(r=>(e,...t)=>console[r](e,...t.map(P)),"print");function ye({level:r}={level:"error"}){let e=I[r];if(!e)throw new Error("Invalid log level");let t={[b]:!0,error:d,debug:d,info:d,verbose:d,warn:d};for(let[n,o]of e)t[n]=_(o);return t}s(ye,"createDefaultLogger");function me(r){return!!r[b]}s(me,"isInternalLogger");function Se(r,e){return r===void 0?e:r}s(Se,"getDefaultIfUndefined");function Ee(r,e){if(String(e||"").length===0)return r;if(typeof e=="string")return`${r}?${e}`;let t=V(e);return t?`${r}?${t}`:r}s(Ee,"getPathWithQueryStringParams");function V(r){let e=new URLSearchParams,t=Object.entries(r||{});if(t.length===0)return"";for(let[n,o]of t){if(!Array.isArray(o)){e.append(n,o||"");continue}for(let i of o)e.append(n,i)}return e.toString()}s(V,"getQueryParamsStringFromRecord");var F=s(r=>r,"NOOPBasePath");function Re(r){if(!r)return F;let e=r.length;return t=>t.startsWith(r)?t.slice(t.indexOf(r)+e,t.length)||"/":t}s(Re,"buildStripBasePath");import"node:stream";function D(r){return!!("readableEnded"in r&&r.readableEnded||"writableEnded"in r&&r.writableEnded)}s(D,"isStreamEnded");function Be(r){return D(r)?Promise.resolve(r):new Promise((e,t)=>{let n=!1;function o(i){n||(n=!0,r.removeListener("error",o),r.removeListener("end",o),r.removeListener("finish",o),i?t(i):e(r))}s(o,"complete"),r.once("error",o),r.once("end",o),r.once("finish",o)})}s(Be,"waitForStreamComplete");var W=443,y=class extends N{static{s(this,"ServerlessRequest")}constructor({method:e,url:t,headers:n,body:o,remoteAddress:i}){super({encrypted:!0,readable:!1,remoteAddress:i,address:()=>({port:W}),end:d,destroy:d}),this.statusCode=200,this.statusMessage="OK",this.complete=!0,this.httpVersion="1.1",this.httpVersionMajor=1,this.httpVersionMinor=1,this.method=e,this.headers=n,this.body=o,this.url=t,this.ip=i,this._read=()=>{this.push(o),this.push(null)}}ip;body};import{ServerResponse as j}from"node:http";function m(r){if(Buffer.isBuffer(r))return r.toString("utf8");if(typeof r=="string")return r;if(r instanceof Uint8Array)return new TextDecoder().decode(r);throw new Error(`response.write() of unexpected type: ${typeof r}`)}s(m,"getString");var w=`\r
3
+ \r
4
+ `,U=`0\r
5
+ \r
6
+ `,c=Symbol("Response body"),l=Symbol("Response headers");function v(r,e){if(Buffer.isBuffer(e)||typeof e=="string"||e instanceof Uint8Array)r[c].push(Buffer.from(e));else throw new Error(`response.write() of unexpected type: ${typeof e}`)}s(v,"addData");var h=class r extends j{static{s(this,"ServerlessResponse")}constructor({method:e}){super({method:e}),this[c]=[],this[l]={},this.useChunkedEncodingByDefault=!1,this.chunkedEncoding=!1,this._header="";let t=1,n={_writableState:{},writable:!0,on:d,removeListener:d,destroy:d,cork:d,uncork:d,write:(o,i,a)=>{if(typeof i=="function"&&(a=i,i=null),this._header===""||this._wroteHeader)this.chunkedEncoding?t>0?t--:o!==U&&(v(this,o),t=3):v(this,o);else{let u=m(o),f=u.indexOf(w);if(f!==-1){let p=u.slice(f+w.length);p&&!this.chunkedEncoding&&v(this,p),this._wroteHeader=!0}}typeof a=="function"&&a()}};this.assignSocket(n)}_header;_headers;_wroteHeader;[c];[l];get headers(){return this[l]}static from(e){let t=new r({method:e.method});return t.statusCode=e.statusCode||0,t[l]=e.headers,t[c]=e.body?[Buffer.from(e.body)]:[],t.end(),t}static body(e){return Buffer.concat(e[c])}static headers(e){let t=e.getHeaders();return Object.assign(t,e[l])}setHeader(e,t){this._wroteHeader?this[l][e]=t:super.setHeader(e,t)}writeHead(e,t,n){let o=typeof t=="string"?n:t,i=Array.isArray(o)?o:[o||{}];for(let a of i)for(let u in a)if(this.setHeader(u,a[u]),!this._wroteHeader)break;return this.callNativeWriteHead(e,t,n)}callNativeWriteHead(e,t,n){return super.writeHead(e,t,n)}};import{ServerResponse as M}from"node:http";var $=`0\r
7
+ \r
8
+ `,Y=`\r
9
+ \r
10
+ `,q=`\r
11
+ `,A=class extends M{static{s(this,"ServerlessStreamResponse")}constructor({method:e,onReceiveHeaders:t,log:n}){super({method:e}),this.useChunkedEncodingByDefault=!0,this.chunkedEncoding=!0;let o=null,i=!0,a=0,u={_writableState:{},writable:!0,on:d,removeListener:d,destroy:d,cork:d,uncork:d,write:(f,p,x)=>{if(typeof p=="function"&&(x=p,p=null),n.debug("SERVERLESS_ADAPTER:RESPONSE_STREAM:DATA",()=>({data:Buffer.isBuffer(f)?f.toString("utf8"):f,encoding:p})),!i&&o){if(f===$)return o.end(x),!0;if(a>0)return a--,!0;o.write(f,x),a=3}else if(i){i=!1;let g=m(f),T=g.indexOf(q),k=+g.slice(0,T).split(" ")[1],B=g.slice(T+2,g.indexOf(Y)),E=R(B);n.debug("SERVERLESS_ADAPTER:RESPONSE_STREAM:FRAMEWORK_HEADERS",{headers:E}),a=1,o=t(k,E)}return!0}};this.assignSocket(u)}};var C=class{static{s(this,"BaseHandler")}getAdapterByEventAndContext(e,t,n,o){let i=n.filter(a=>a.canHandle(e,t,o));if(i.length===0)throw new Error("SERVERLESS_ADAPTER: Couldn't find adapter to handle this event.");if(i.length>1)throw new Error(`SERVERLESS_ADAPTER: Two or more adapters was resolved by the event, the adapters are: ${n.map(a=>a.getAdapterName()).join(", ")}.`);return i[0]}getServerlessRequestResponseFromAdapterRequest(e){let t=new y({method:e.method,headers:e.headers,body:e.body,remoteAddress:e.remoteAddress,url:e.path}),n=new h({method:e.method});return[t,n]}};export{C as a,z as b,Q as c,G as d,X as e,Z as f,re as g,oe as h,se as i,ie as j,R as k,H as l,L as m,O as n,ue as o,d as p,ye as q,me as r,Se as s,Ee as t,V as u,Re as v,D as w,Be as x,y,m as z,h as A,A as B};
12
+ //# sourceMappingURL=chunk-PQDB5AVF.mjs.map