@h4ad/serverless-adapter 2.16.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.
- package/README.md +7 -0
- package/lib/@types/binary-settings.js +2 -11
- package/lib/@types/binary-settings.js.map +1 -1
- package/lib/@types/digital-ocean/digital-ocean-http-event.js +2 -7
- package/lib/@types/digital-ocean/digital-ocean-http-event.js.map +1 -1
- package/lib/@types/digital-ocean/digital-ocean-http-response.js +2 -7
- package/lib/@types/digital-ocean/digital-ocean-http-response.js.map +1 -1
- package/lib/@types/digital-ocean/index.js +2 -18
- package/lib/@types/digital-ocean/index.js.map +1 -1
- package/lib/@types/headers.js +2 -11
- package/lib/@types/headers.js.map +1 -1
- package/lib/@types/helpers.js +2 -6
- package/lib/@types/helpers.js.map +1 -1
- package/lib/@types/huawei/huawei-api-gateway-event.js +2 -14
- package/lib/@types/huawei/huawei-api-gateway-event.js.map +1 -1
- package/lib/@types/huawei/huawei-api-gateway-response.js +2 -7
- package/lib/@types/huawei/huawei-api-gateway-response.js.map +1 -1
- package/lib/@types/huawei/huawei-context.js +2 -36
- package/lib/@types/huawei/huawei-context.js.map +1 -1
- package/lib/@types/huawei/index.js +2 -20
- package/lib/@types/huawei/index.js.map +1 -1
- package/lib/@types/index.js +2 -20
- package/lib/@types/index.js.map +1 -1
- package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js +2 -86
- package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js.map +1 -1
- package/lib/adapters/apollo-server/index.js +2 -18
- package/lib/adapters/apollo-server/index.js.map +1 -1
- package/lib/adapters/aws/alb.adapter.js +2 -129
- package/lib/adapters/aws/alb.adapter.js.map +1 -1
- package/lib/adapters/aws/api-gateway-v1.adapter.js +2 -140
- package/lib/adapters/aws/api-gateway-v1.adapter.js.map +1 -1
- package/lib/adapters/aws/api-gateway-v2.adapter.js +2 -133
- package/lib/adapters/aws/api-gateway-v2.adapter.js.map +1 -1
- package/lib/adapters/aws/base/aws-simple-adapter.js +2 -99
- package/lib/adapters/aws/base/aws-simple-adapter.js.map +1 -1
- package/lib/adapters/aws/base/index.js +2 -18
- package/lib/adapters/aws/base/index.js.map +1 -1
- package/lib/adapters/aws/dynamodb.adapter.js +2 -64
- package/lib/adapters/aws/dynamodb.adapter.js.map +1 -1
- package/lib/adapters/aws/event-bridge.adapter.js +2 -75
- package/lib/adapters/aws/event-bridge.adapter.js.map +1 -1
- package/lib/adapters/aws/index.js +2 -27
- package/lib/adapters/aws/index.js.map +1 -1
- package/lib/adapters/aws/lambda-edge.adapter.js +2 -284
- package/lib/adapters/aws/lambda-edge.adapter.js.map +1 -1
- package/lib/adapters/aws/s3.adapter.js +2 -63
- package/lib/adapters/aws/s3.adapter.js.map +1 -1
- package/lib/adapters/aws/sns.adapter.js +2 -63
- package/lib/adapters/aws/sns.adapter.js.map +1 -1
- package/lib/adapters/aws/sqs.adapter.js +2 -64
- package/lib/adapters/aws/sqs.adapter.js.map +1 -1
- package/lib/adapters/azure/http-trigger-v4.adapter.js +2 -202
- package/lib/adapters/azure/http-trigger-v4.adapter.js.map +1 -1
- package/lib/adapters/azure/index.js +2 -18
- package/lib/adapters/azure/index.js.map +1 -1
- package/lib/adapters/digital-ocean/http-function.adapter.js +2 -118
- package/lib/adapters/digital-ocean/http-function.adapter.js.map +1 -1
- package/lib/adapters/digital-ocean/index.js +2 -18
- package/lib/adapters/digital-ocean/index.js.map +1 -1
- package/lib/adapters/dummy/dummy.adapter.js +2 -54
- package/lib/adapters/dummy/dummy.adapter.js.map +1 -1
- package/lib/adapters/dummy/index.js +2 -18
- package/lib/adapters/dummy/index.js.map +1 -1
- package/lib/adapters/huawei/huawei-api-gateway.adapter.js +2 -126
- package/lib/adapters/huawei/huawei-api-gateway.adapter.js.map +1 -1
- package/lib/adapters/huawei/index.js +2 -18
- package/lib/adapters/huawei/index.js.map +1 -1
- package/lib/contracts/adapter.contract.js +2 -18
- package/lib/contracts/adapter.contract.js.map +1 -1
- package/lib/contracts/framework.contract.js +2 -7
- package/lib/contracts/framework.contract.js.map +1 -1
- package/lib/contracts/handler.contract.js +2 -13
- package/lib/contracts/handler.contract.js.map +1 -1
- package/lib/contracts/index.js +2 -21
- package/lib/contracts/index.js.map +1 -1
- package/lib/contracts/resolver.contract.js +2 -15
- package/lib/contracts/resolver.contract.js.map +1 -1
- package/lib/core/base-handler.js +2 -67
- package/lib/core/base-handler.js.map +1 -1
- package/lib/core/constants.js +2 -33
- package/lib/core/constants.js.map +1 -1
- package/lib/core/current-invoke.js +2 -46
- package/lib/core/current-invoke.js.map +1 -1
- package/lib/core/event-body.js +2 -31
- package/lib/core/event-body.js.map +1 -1
- package/lib/core/headers.js +3 -67
- package/lib/core/headers.js.map +1 -1
- package/lib/core/index.js +2 -28
- package/lib/core/index.js.map +1 -1
- package/lib/core/is-binary.js +2 -118
- package/lib/core/is-binary.js.map +1 -1
- package/lib/core/logger.js +2 -115
- package/lib/core/logger.js.map +1 -1
- package/lib/core/no-op.js +2 -12
- package/lib/core/no-op.js.map +1 -1
- package/lib/core/optional.js +2 -31
- package/lib/core/optional.js.map +1 -1
- package/lib/core/path.js +2 -68
- package/lib/core/path.js.map +1 -1
- package/lib/core/stream.js +2 -63
- package/lib/core/stream.js.map +1 -1
- package/lib/frameworks/apollo-server/apollo-server.framework.js +2 -87
- package/lib/frameworks/apollo-server/apollo-server.framework.js.map +1 -1
- package/lib/frameworks/apollo-server/index.js +2 -18
- package/lib/frameworks/apollo-server/index.js.map +1 -1
- package/lib/frameworks/body-parser/base-body-parser.framework.js +2 -66
- package/lib/frameworks/body-parser/base-body-parser.framework.js.map +1 -1
- package/lib/frameworks/body-parser/index.js +2 -22
- package/lib/frameworks/body-parser/index.js.map +1 -1
- package/lib/frameworks/body-parser/json-body-parser.framework.js +2 -29
- package/lib/frameworks/body-parser/json-body-parser.framework.js.map +1 -1
- package/lib/frameworks/body-parser/raw-body-parser.framework.js +2 -29
- package/lib/frameworks/body-parser/raw-body-parser.framework.js.map +1 -1
- package/lib/frameworks/body-parser/text-body-parser.framework.js +2 -29
- package/lib/frameworks/body-parser/text-body-parser.framework.js.map +1 -1
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js +2 -29
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js.map +1 -1
- package/lib/frameworks/cors/cors.framework.js +3 -145
- package/lib/frameworks/cors/cors.framework.js.map +1 -1
- package/lib/frameworks/cors/index.js +2 -18
- package/lib/frameworks/cors/index.js.map +1 -1
- package/lib/frameworks/deepkit/http-deepkit.framework.js +2 -33
- package/lib/frameworks/deepkit/http-deepkit.framework.js.map +1 -1
- package/lib/frameworks/deepkit/index.js +2 -18
- package/lib/frameworks/deepkit/index.js.map +1 -1
- package/lib/frameworks/express/express.framework.js +2 -22
- package/lib/frameworks/express/express.framework.js.map +1 -1
- package/lib/frameworks/express/index.js +2 -18
- package/lib/frameworks/express/index.js.map +1 -1
- package/lib/frameworks/fastify/fastify.framework.js +2 -23
- package/lib/frameworks/fastify/fastify.framework.js.map +1 -1
- package/lib/frameworks/fastify/helpers/no-op-content-parser.js +2 -27
- package/lib/frameworks/fastify/helpers/no-op-content-parser.js.map +1 -1
- package/lib/frameworks/fastify/index.js +2 -18
- package/lib/frameworks/fastify/index.js.map +1 -1
- package/lib/frameworks/hapi/hapi.framework.js +2 -23
- package/lib/frameworks/hapi/hapi.framework.js.map +1 -1
- package/lib/frameworks/hapi/index.js +2 -18
- package/lib/frameworks/hapi/index.js.map +1 -1
- package/lib/frameworks/koa/index.js +2 -18
- package/lib/frameworks/koa/index.js.map +1 -1
- package/lib/frameworks/koa/koa.framework.js +2 -22
- package/lib/frameworks/koa/koa.framework.js.map +1 -1
- package/lib/frameworks/lazy/index.js +2 -18
- package/lib/frameworks/lazy/index.js.map +1 -1
- package/lib/frameworks/lazy/lazy.framework.js +2 -82
- package/lib/frameworks/lazy/lazy.framework.js.map +1 -1
- package/lib/frameworks/trpc/index.js +2 -18
- package/lib/frameworks/trpc/index.js.map +1 -1
- package/lib/frameworks/trpc/trpc.framework.js +2 -152
- package/lib/frameworks/trpc/trpc.framework.js.map +1 -1
- package/lib/handlers/aws/aws-stream.handler.js +2 -0
- package/lib/handlers/aws/aws-stream.handler.js.map +1 -0
- package/lib/handlers/aws/index.js +2 -0
- package/lib/handlers/aws/index.js.map +1 -0
- package/lib/handlers/azure/azure.handler.js +2 -74
- package/lib/handlers/azure/azure.handler.js.map +1 -1
- package/lib/handlers/azure/index.js +2 -18
- package/lib/handlers/azure/index.js.map +1 -1
- package/lib/handlers/base/index.js +2 -18
- package/lib/handlers/base/index.js.map +1 -1
- package/lib/handlers/base/raw-request.js +2 -65
- package/lib/handlers/base/raw-request.js.map +1 -1
- package/lib/handlers/default/default.handler.js +2 -191
- package/lib/handlers/default/default.handler.js.map +1 -1
- package/lib/handlers/default/index.js +2 -18
- package/lib/handlers/default/index.js.map +1 -1
- package/lib/handlers/digital-ocean/digital-ocean.handler.js +2 -34
- package/lib/handlers/digital-ocean/digital-ocean.handler.js.map +1 -1
- package/lib/handlers/digital-ocean/index.js +2 -18
- package/lib/handlers/digital-ocean/index.js.map +1 -1
- package/lib/handlers/firebase/http-firebase-v2.handler.js +2 -50
- package/lib/handlers/firebase/http-firebase-v2.handler.js.map +1 -1
- package/lib/handlers/firebase/http-firebase.handler.js +2 -27
- package/lib/handlers/firebase/http-firebase.handler.js.map +1 -1
- package/lib/handlers/firebase/index.js +2 -19
- package/lib/handlers/firebase/index.js.map +1 -1
- package/lib/handlers/gcp/gcp.handler.js +2 -40
- package/lib/handlers/gcp/gcp.handler.js.map +1 -1
- package/lib/handlers/gcp/index.js +2 -18
- package/lib/handlers/gcp/index.js.map +1 -1
- package/lib/handlers/huawei/http-huawei.handler.js +2 -106
- package/lib/handlers/huawei/http-huawei.handler.js.map +1 -1
- package/lib/handlers/huawei/index.js +2 -18
- package/lib/handlers/huawei/index.js.map +1 -1
- package/lib/index.doc.js +2 -0
- package/lib/index.doc.js.map +1 -0
- package/lib/index.js +2 -22
- package/lib/index.js.map +1 -1
- package/lib/network/index.js +2 -19
- package/lib/network/index.js.map +1 -1
- package/lib/network/request.js +2 -46
- package/lib/network/request.js.map +1 -1
- package/lib/network/response-stream.js +7 -0
- package/lib/network/response-stream.js.map +1 -0
- package/lib/network/response.js +4 -137
- package/lib/network/response.js.map +1 -1
- package/lib/network/utils.js +2 -0
- package/lib/network/utils.js.map +1 -0
- package/lib/resolvers/aws-context/aws-context.resolver.js +2 -59
- package/lib/resolvers/aws-context/aws-context.resolver.js.map +1 -1
- package/lib/resolvers/aws-context/index.js +2 -18
- package/lib/resolvers/aws-context/index.js.map +1 -1
- package/lib/resolvers/callback/callback.resolver.js +2 -53
- package/lib/resolvers/callback/callback.resolver.js.map +1 -1
- package/lib/resolvers/callback/index.js +2 -18
- package/lib/resolvers/callback/index.js.map +1 -1
- package/lib/resolvers/dummy/dummy.resolver.js +2 -24
- package/lib/resolvers/dummy/dummy.resolver.js.map +1 -1
- package/lib/resolvers/dummy/index.js +2 -18
- package/lib/resolvers/dummy/index.js.map +1 -1
- package/lib/resolvers/promise/index.js +2 -18
- package/lib/resolvers/promise/index.js.map +1 -1
- package/lib/resolvers/promise/promise.resolver.js +2 -48
- package/lib/resolvers/promise/promise.resolver.js.map +1 -1
- package/lib/serverless-adapter.js +2 -176
- package/lib/serverless-adapter.js.map +1 -1
- package/package.json +61 -79
- package/lib/@types/binary-settings.d.ts +0 -43
- package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts +0 -37
- package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts +0 -22
- package/lib/@types/digital-ocean/index.d.ts +0 -1
- package/lib/@types/headers.d.ts +0 -39
- package/lib/@types/helpers.d.ts +0 -10
- package/lib/@types/huawei/huawei-api-gateway-event.d.ts +0 -84
- package/lib/@types/huawei/huawei-api-gateway-response.d.ts +0 -27
- package/lib/@types/huawei/huawei-context.d.ts +0 -203
- package/lib/@types/huawei/index.d.ts +0 -3
- package/lib/@types/index.d.ts +0 -3
- package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts +0 -56
- package/lib/adapters/apollo-server/index.d.ts +0 -1
- package/lib/adapters/aws/alb.adapter.d.ts +0 -66
- package/lib/adapters/aws/api-gateway-v1.adapter.d.ts +0 -71
- package/lib/adapters/aws/api-gateway-v2.adapter.d.ts +0 -69
- package/lib/adapters/aws/base/aws-simple-adapter.d.ts +0 -85
- package/lib/adapters/aws/base/index.d.ts +0 -1
- package/lib/adapters/aws/dynamodb.adapter.d.ts +0 -56
- package/lib/adapters/aws/event-bridge.adapter.d.ts +0 -64
- package/lib/adapters/aws/index.d.ts +0 -10
- package/lib/adapters/aws/lambda-edge.adapter.d.ts +0 -213
- package/lib/adapters/aws/s3.adapter.d.ts +0 -56
- package/lib/adapters/aws/sns.adapter.d.ts +0 -56
- package/lib/adapters/aws/sqs.adapter.d.ts +0 -56
- package/lib/adapters/azure/http-trigger-v4.adapter.d.ts +0 -81
- package/lib/adapters/azure/index.d.ts +0 -1
- package/lib/adapters/digital-ocean/http-function.adapter.d.ts +0 -65
- package/lib/adapters/digital-ocean/index.d.ts +0 -1
- package/lib/adapters/dummy/dummy.adapter.d.ts +0 -30
- package/lib/adapters/dummy/index.d.ts +0 -1
- package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts +0 -66
- package/lib/adapters/huawei/index.d.ts +0 -1
- package/lib/contracts/adapter.contract.d.ts +0 -155
- package/lib/contracts/framework.contract.d.ts +0 -19
- package/lib/contracts/handler.contract.d.ts +0 -26
- package/lib/contracts/index.d.ts +0 -4
- package/lib/contracts/resolver.contract.d.ts +0 -86
- package/lib/core/base-handler.d.ts +0 -31
- package/lib/core/constants.d.ts +0 -31
- package/lib/core/current-invoke.d.ts +0 -48
- package/lib/core/event-body.d.ts +0 -21
- package/lib/core/headers.d.ts +0 -37
- package/lib/core/index.d.ts +0 -11
- package/lib/core/is-binary.d.ts +0 -72
- package/lib/core/logger.d.ts +0 -67
- package/lib/core/no-op.d.ts +0 -7
- package/lib/core/optional.d.ts +0 -21
- package/lib/core/path.d.ts +0 -36
- package/lib/core/stream.d.ts +0 -20
- package/lib/frameworks/apollo-server/apollo-server.framework.d.ts +0 -71
- package/lib/frameworks/apollo-server/index.d.ts +0 -1
- package/lib/frameworks/body-parser/base-body-parser.framework.d.ts +0 -69
- package/lib/frameworks/body-parser/index.d.ts +0 -5
- package/lib/frameworks/body-parser/json-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/text-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/cors/cors.framework.d.ts +0 -78
- package/lib/frameworks/cors/index.d.ts +0 -1
- package/lib/frameworks/deepkit/http-deepkit.framework.d.ts +0 -17
- package/lib/frameworks/deepkit/index.d.ts +0 -1
- package/lib/frameworks/express/express.framework.d.ts +0 -16
- package/lib/frameworks/express/index.d.ts +0 -1
- package/lib/frameworks/fastify/fastify.framework.d.ts +0 -16
- package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts +0 -13
- package/lib/frameworks/fastify/index.d.ts +0 -1
- package/lib/frameworks/hapi/hapi.framework.d.ts +0 -16
- package/lib/frameworks/hapi/index.d.ts +0 -1
- package/lib/frameworks/koa/index.d.ts +0 -1
- package/lib/frameworks/koa/koa.framework.d.ts +0 -16
- package/lib/frameworks/lazy/index.d.ts +0 -1
- package/lib/frameworks/lazy/lazy.framework.d.ts +0 -55
- package/lib/frameworks/trpc/index.d.ts +0 -1
- package/lib/frameworks/trpc/trpc.framework.d.ts +0 -154
- package/lib/handlers/azure/azure.handler.d.ts +0 -45
- package/lib/handlers/azure/index.d.ts +0 -1
- package/lib/handlers/base/index.d.ts +0 -1
- package/lib/handlers/base/raw-request.d.ts +0 -30
- package/lib/handlers/default/default.handler.d.ts +0 -87
- package/lib/handlers/default/index.d.ts +0 -1
- package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts +0 -16
- package/lib/handlers/digital-ocean/index.d.ts +0 -1
- package/lib/handlers/firebase/http-firebase-v2.handler.d.ts +0 -26
- package/lib/handlers/firebase/http-firebase.handler.d.ts +0 -18
- package/lib/handlers/firebase/index.d.ts +0 -2
- package/lib/handlers/gcp/gcp.handler.d.ts +0 -25
- package/lib/handlers/gcp/index.d.ts +0 -1
- package/lib/handlers/huawei/http-huawei.handler.d.ts +0 -59
- package/lib/handlers/huawei/index.d.ts +0 -1
- package/lib/index.d.ts +0 -5
- package/lib/network/index.d.ts +0 -2
- package/lib/network/request.d.ts +0 -44
- package/lib/network/response.d.ts +0 -48
- package/lib/resolvers/aws-context/aws-context.resolver.d.ts +0 -18
- package/lib/resolvers/aws-context/index.d.ts +0 -1
- package/lib/resolvers/callback/callback.resolver.d.ts +0 -23
- package/lib/resolvers/callback/index.d.ts +0 -1
- package/lib/resolvers/dummy/dummy.resolver.d.ts +0 -13
- package/lib/resolvers/dummy/index.d.ts +0 -1
- package/lib/resolvers/promise/index.d.ts +0 -1
- package/lib/resolvers/promise/promise.resolver.d.ts +0 -13
- package/lib/serverless-adapter.d.ts +0 -118
|
@@ -1,63 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//#
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.S3Adapter = exports.__ΩS3AdapterOptions = void 0;
|
|
5
|
-
const core_1 = require("../../core");
|
|
6
|
-
const index_1 = require("./base/index");
|
|
7
|
-
const __ΩS3AdapterOptions = ['s3ForwardPath', 's3ForwardMethod', 'P&4!8&4"8M'];
|
|
8
|
-
exports.__ΩS3AdapterOptions = __ΩS3AdapterOptions;
|
|
9
|
-
/**
|
|
10
|
-
* The adapter to handle requests from AWS S3.
|
|
11
|
-
*
|
|
12
|
-
* The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.
|
|
13
|
-
*
|
|
14
|
-
* {@link https://docs.aws.amazon.com/pt_br/lambda/latest/dg/with-s3.html | Event Reference}
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const s3ForwardPath = '/your/route/s3'; // default /s3
|
|
19
|
-
* const s3ForwardMethod = 'POST'; // default POST
|
|
20
|
-
* const adapter = new S3Adapter({ s3ForwardPath, s3ForwardMethod });
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* @breadcrumb Adapters / AWS / S3Adapter
|
|
24
|
-
* @public
|
|
25
|
-
*/
|
|
26
|
-
class S3Adapter extends index_1.AwsSimpleAdapter {
|
|
27
|
-
//#region Constructor
|
|
28
|
-
/**
|
|
29
|
-
* Default constructor
|
|
30
|
-
*
|
|
31
|
-
* @param options - The options to customize the {@link SNSAdapter}
|
|
32
|
-
*/
|
|
33
|
-
constructor(options) {
|
|
34
|
-
super({
|
|
35
|
-
forwardPath: (0, core_1.getDefaultIfUndefined)(options === null || options === void 0 ? void 0 : options.s3ForwardPath, '/s3'),
|
|
36
|
-
forwardMethod: (0, core_1.getDefaultIfUndefined)(options === null || options === void 0 ? void 0 : options.s3ForwardMethod, 'POST'),
|
|
37
|
-
batch: false,
|
|
38
|
-
host: 's3.amazonaws.com',
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
//#endregion
|
|
42
|
-
//#region Public Methods
|
|
43
|
-
/**
|
|
44
|
-
* {@inheritDoc}
|
|
45
|
-
*/
|
|
46
|
-
getAdapterName() {
|
|
47
|
-
return S3Adapter.name;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* {@inheritDoc}
|
|
51
|
-
*/
|
|
52
|
-
canHandle(event) {
|
|
53
|
-
var _a;
|
|
54
|
-
const s3Event = event;
|
|
55
|
-
if (!Array.isArray(s3Event === null || s3Event === void 0 ? void 0 : s3Event.Records))
|
|
56
|
-
return false;
|
|
57
|
-
const eventSource = (_a = s3Event.Records[0]) === null || _a === void 0 ? void 0 : _a.eventSource;
|
|
58
|
-
return eventSource === 'aws:s3';
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.S3Adapter = S3Adapter;
|
|
62
|
-
S3Adapter.__type = [() => index_1.AwsSimpleAdapter, () => __ΩS3AdapterOptions, 'options', 'constructor', 'getAdapterName', 'event', 'canHandle', 'P"7!Pn"2#8"0$P&0%P#2&!0\'5"6"'];
|
|
63
|
-
//# sourceMappingURL=s3.adapter.js.map
|
|
1
|
+
"use strict";var s=Object.defineProperty,d=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,f=(a,e)=>{for(var r in e)s(a,r,{get:e[r],enumerable:!0})},v=(a,e,r,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of _(e))!p.call(a,t)&&t!==r&&s(a,t,{get:()=>e[t],enumerable:!(c=d(e,t))||c.enumerable});return a},l=a=>v(s({},"__esModule",{value:!0}),a),u={};f(u,{S3Adapter:()=>o});module.exports=l(u);var n=require("../../core"),w=require("./base/index");class o extends w.AwsSimpleAdapter{constructor(e){super({forwardPath:(0,n.getDefaultIfUndefined)(e==null?void 0:e.s3ForwardPath,"/s3"),forwardMethod:(0,n.getDefaultIfUndefined)(e==null?void 0:e.s3ForwardMethod,"POST"),batch:!1,host:"s3.amazonaws.com"})}getAdapterName(){return o.name}canHandle(e){var t;const r=e;return Array.isArray(r==null?void 0:r.Records)?((t=r.Records[0])==null?void 0:t.eventSource)==="aws:s3":!1}}
|
|
2
|
+
//# sourceMappingURL=s3.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3.adapter.js","
|
|
1
|
+
{"version":3,"file":"s3.adapter.js","sources":["../../../src/adapters/aws/s3.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { S3Event } from 'aws-lambda';\nimport { getDefaultIfUndefined } from '../../core';\nimport { AwsSimpleAdapter } from './base/index';\n\n//#endregion\n\n/**\n * The options to customize the {@link S3Adapter}\n *\n * @breadcrumb Adapters / AWS / S3Adapter\n * @public\n */\nexport interface S3AdapterOptions {\n /**\n * The path that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue /s3\n */\n s3ForwardPath?: string;\n\n /**\n * The http method that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue POST\n */\n s3ForwardMethod?: string;\n}\n\n/**\n * The adapter to handle requests from AWS S3.\n *\n * The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.\n *\n * {@link https://docs.aws.amazon.com/pt_br/lambda/latest/dg/with-s3.html | Event Reference}\n *\n * @example\n * ```typescript\n * const s3ForwardPath = '/your/route/s3'; // default /s3\n * const s3ForwardMethod = 'POST'; // default POST\n * const adapter = new S3Adapter({ s3ForwardPath, s3ForwardMethod });\n * ```\n *\n * @breadcrumb Adapters / AWS / S3Adapter\n * @public\n */\nexport class S3Adapter extends AwsSimpleAdapter<S3Event> {\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link SNSAdapter}\n */\n constructor(options?: S3AdapterOptions) {\n super({\n forwardPath: getDefaultIfUndefined(options?.s3ForwardPath, '/s3'),\n forwardMethod: getDefaultIfUndefined(options?.s3ForwardMethod, 'POST'),\n batch: false,\n host: 's3.amazonaws.com',\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return S3Adapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is S3Event {\n const s3Event = event as Partial<S3Event>;\n\n if (!Array.isArray(s3Event?.Records)) return false;\n\n const eventSource = s3Event.Records[0]?.eventSource;\n\n return eventSource === 'aws:s3';\n }\n\n //#endregion\n}\n"],"names":["s3_adapter_exports","__export","S3Adapter","__toCommonJS","import_core","import_base","options","event","s3Event","_a"],"mappings":"qZAAAA,EAAA,CAAA,EAAAC,EAAAD,EAAA,CAAA,UAAA,IAAAE,CAAA,CAAA,EAAA,OAAA,QAAAC,EAAAH,CAAA,EAGA,IAAsCI,EAAA,QAAA,YAAA,EACLC,EAAA,QAAA,cAAA,EA2C1B,MAAMH,UAAkBG,EAA0B,gBAAA,CAQvD,YAAYC,EAA4B,CAChC,MAAA,CACJ,eAAaF,EAAA,uBAAsBE,GAAA,YAAAA,EAAS,cAAe,KAAK,EAChE,iBAAeF,EAAA,uBAAsBE,GAAA,YAAAA,EAAS,gBAAiB,MAAM,EACrE,MAAO,GACP,KAAM,kBAAA,CACP,CACH,CASO,gBAAyB,CAC9B,OAAOJ,EAAU,IACnB,CAKO,UAAUK,EAAkC,OACjD,MAAMC,EAAUD,EAEhB,OAAK,MAAM,QAAQC,GAAA,YAAAA,EAAS,OAAO,IAEfC,EAAAD,EAAQ,QAAQ,CAAC,IAAjB,YAAAC,EAAoB,eAEjB,SAJsB,EAK/C,CAGF"}
|
|
@@ -1,63 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
//#
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SNSAdapter = exports.__ΩSNSAdapterOptions = void 0;
|
|
5
|
-
const core_1 = require("../../core");
|
|
6
|
-
const index_1 = require("./base/index");
|
|
7
|
-
const __ΩSNSAdapterOptions = ['snsForwardPath', 'snsForwardMethod', 'P&4!8&4"8M'];
|
|
8
|
-
exports.__ΩSNSAdapterOptions = __ΩSNSAdapterOptions;
|
|
9
|
-
/**
|
|
10
|
-
* The adapter to handle requests from AWS SNS.
|
|
11
|
-
*
|
|
12
|
-
* The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.
|
|
13
|
-
*
|
|
14
|
-
* {@link https://docs.aws.amazon.com/pt_br/lambda/latest/dg/with-sns.html | Event Reference}
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* const snsForwardPath = '/your/route/sns'; // default /sns
|
|
19
|
-
* const snsForwardMethod = 'POST'; // default POST
|
|
20
|
-
* const adapter = new SNSAdapter({ snsForwardPath, snsForwardMethod });
|
|
21
|
-
* ```
|
|
22
|
-
*
|
|
23
|
-
* @breadcrumb Adapters / AWS / SNSAdapter
|
|
24
|
-
* @public
|
|
25
|
-
*/
|
|
26
|
-
class SNSAdapter extends index_1.AwsSimpleAdapter {
|
|
27
|
-
//#region Constructor
|
|
28
|
-
/**
|
|
29
|
-
* Default constructor
|
|
30
|
-
*
|
|
31
|
-
* @param options - The options to customize the {@link SNSAdapter}
|
|
32
|
-
*/
|
|
33
|
-
constructor(options) {
|
|
34
|
-
super({
|
|
35
|
-
forwardPath: (0, core_1.getDefaultIfUndefined)(options === null || options === void 0 ? void 0 : options.snsForwardPath, '/sns'),
|
|
36
|
-
forwardMethod: (0, core_1.getDefaultIfUndefined)(options === null || options === void 0 ? void 0 : options.snsForwardMethod, 'POST'),
|
|
37
|
-
batch: false,
|
|
38
|
-
host: 'sns.amazonaws.com',
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
//#endregion
|
|
42
|
-
//#region Public Methods
|
|
43
|
-
/**
|
|
44
|
-
* {@inheritDoc}
|
|
45
|
-
*/
|
|
46
|
-
getAdapterName() {
|
|
47
|
-
return SNSAdapter.name;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* {@inheritDoc}
|
|
51
|
-
*/
|
|
52
|
-
canHandle(event) {
|
|
53
|
-
var _a;
|
|
54
|
-
const snsEvent = event;
|
|
55
|
-
if (!Array.isArray(snsEvent === null || snsEvent === void 0 ? void 0 : snsEvent.Records))
|
|
56
|
-
return false;
|
|
57
|
-
const eventSource = (_a = snsEvent.Records[0]) === null || _a === void 0 ? void 0 : _a.EventSource;
|
|
58
|
-
return eventSource === 'aws:sns';
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
exports.SNSAdapter = SNSAdapter;
|
|
62
|
-
SNSAdapter.__type = [() => index_1.AwsSimpleAdapter, () => __ΩSNSAdapterOptions, 'options', 'constructor', 'getAdapterName', 'event', 'canHandle', 'P"7!Pn"2#8"0$P&0%P#2&!0\'5"6"'];
|
|
63
|
-
//# sourceMappingURL=sns.adapter.js.map
|
|
1
|
+
"use strict";var n=Object.defineProperty,d=Object.getOwnPropertyDescriptor,_=Object.getOwnPropertyNames,p=Object.prototype.hasOwnProperty,f=(a,e)=>{for(var r in e)n(a,r,{get:e[r],enumerable:!0})},v=(a,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of _(e))!p.call(a,t)&&t!==r&&n(a,t,{get:()=>e[t],enumerable:!(s=d(e,t))||s.enumerable});return a},l=a=>v(n({},"__esModule",{value:!0}),a),u={};f(u,{SNSAdapter:()=>c});module.exports=l(u);var o=require("../../core"),w=require("./base/index");class c extends w.AwsSimpleAdapter{constructor(e){super({forwardPath:(0,o.getDefaultIfUndefined)(e==null?void 0:e.snsForwardPath,"/sns"),forwardMethod:(0,o.getDefaultIfUndefined)(e==null?void 0:e.snsForwardMethod,"POST"),batch:!1,host:"sns.amazonaws.com"})}getAdapterName(){return c.name}canHandle(e){var t;const r=e;return Array.isArray(r==null?void 0:r.Records)?((t=r.Records[0])==null?void 0:t.EventSource)==="aws:sns":!1}}
|
|
2
|
+
//# sourceMappingURL=sns.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sns.adapter.js","
|
|
1
|
+
{"version":3,"file":"sns.adapter.js","sources":["../../../src/adapters/aws/sns.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { SNSEvent } from 'aws-lambda';\nimport { getDefaultIfUndefined } from '../../core';\nimport { AwsSimpleAdapter } from './base/index';\n\n//#endregion\n\n/**\n * The options to customize the {@link SNSAdapter}\n *\n * @breadcrumb Adapters / AWS / SNSAdapter\n * @public\n */\nexport interface SNSAdapterOptions {\n /**\n * The path that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue /sns\n */\n snsForwardPath?: string;\n\n /**\n * The http method that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue POST\n */\n snsForwardMethod?: string;\n}\n\n/**\n * The adapter to handle requests from AWS SNS.\n *\n * The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.\n *\n * {@link https://docs.aws.amazon.com/pt_br/lambda/latest/dg/with-sns.html | Event Reference}\n *\n * @example\n * ```typescript\n * const snsForwardPath = '/your/route/sns'; // default /sns\n * const snsForwardMethod = 'POST'; // default POST\n * const adapter = new SNSAdapter({ snsForwardPath, snsForwardMethod });\n * ```\n *\n * @breadcrumb Adapters / AWS / SNSAdapter\n * @public\n */\nexport class SNSAdapter extends AwsSimpleAdapter<SNSEvent> {\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link SNSAdapter}\n */\n constructor(options?: SNSAdapterOptions) {\n super({\n forwardPath: getDefaultIfUndefined(options?.snsForwardPath, '/sns'),\n forwardMethod: getDefaultIfUndefined(options?.snsForwardMethod, 'POST'),\n batch: false,\n host: 'sns.amazonaws.com',\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return SNSAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is SNSEvent {\n const snsEvent = event as Partial<SNSEvent>;\n\n if (!Array.isArray(snsEvent?.Records)) return false;\n\n const eventSource = snsEvent.Records[0]?.EventSource;\n\n return eventSource === 'aws:sns';\n }\n\n //#endregion\n}\n"],"names":["sns_adapter_exports","__export","SNSAdapter","__toCommonJS","import_core","import_base","options","event","snsEvent","_a"],"mappings":"qZAAAA,EAAA,CAAA,EAAAC,EAAAD,EAAA,CAAA,WAAA,IAAAE,CAAA,CAAA,EAAA,OAAA,QAAAC,EAAAH,CAAA,EAGA,IAAsCI,EAAA,QAAA,YAAA,EACLC,EAAA,QAAA,cAAA,EA2C1B,MAAMH,UAAmBG,EAA2B,gBAAA,CAQzD,YAAYC,EAA6B,CACjC,MAAA,CACJ,eAAaF,EAAA,uBAAsBE,GAAA,YAAAA,EAAS,eAAgB,MAAM,EAClE,iBAAeF,EAAA,uBAAsBE,GAAA,YAAAA,EAAS,iBAAkB,MAAM,EACtE,MAAO,GACP,KAAM,mBAAA,CACP,CACH,CASO,gBAAyB,CAC9B,OAAOJ,EAAW,IACpB,CAKO,UAAUK,EAAmC,OAClD,MAAMC,EAAWD,EAEjB,OAAK,MAAM,QAAQC,GAAA,YAAAA,EAAU,OAAO,IAEhBC,EAAAD,EAAS,QAAQ,CAAC,IAAlB,YAAAC,EAAqB,eAElB,UAJuB,EAKhD,CAGF"}
|
|
@@ -1,64 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.SQSAdapter = exports.__ΩSQSAdapterOptions = void 0;
|
|
4
|
-
const { __ΩAWSSimpleAdapterOptions } = require('./base/index');
|
|
5
|
-
const __ΩPick = ['T', 'K', 'l+e#!e"!fRb!b"Pde""N#!'];
|
|
6
|
-
const core_1 = require("../../core");
|
|
7
|
-
const index_1 = require("./base/index");
|
|
8
|
-
const __ΩSQSAdapterOptions = [() => __ΩPick, () => __ΩAWSSimpleAdapterOptions, "batch", 'sqsForwardPath', 'sqsForwardMethod', 'Pn".#o!#&4$8&4%8M'];
|
|
9
|
-
exports.__ΩSQSAdapterOptions = __ΩSQSAdapterOptions;
|
|
10
|
-
/**
|
|
11
|
-
* The adapter to handle requests from AWS SQS.
|
|
12
|
-
*
|
|
13
|
-
* The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.
|
|
14
|
-
*
|
|
15
|
-
* {@link https://docs.aws.amazon.com/pt_br/lambda/latest/dg/with-sqs.html | Event Reference}
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* const sqsForwardPath = '/your/route/sqs'; // default /sqs
|
|
20
|
-
* const sqsForwardMethod = 'POST'; // default POST
|
|
21
|
-
* const adapter = new SQSAdapter({ sqsForwardPath, sqsForwardMethod });
|
|
22
|
-
* ```
|
|
23
|
-
*
|
|
24
|
-
* @breadcrumb Adapters / AWS / SQSAdapter
|
|
25
|
-
* @public
|
|
26
|
-
*/
|
|
27
|
-
class SQSAdapter extends index_1.AwsSimpleAdapter {
|
|
28
|
-
//#region Constructor
|
|
29
|
-
/**
|
|
30
|
-
* Default constructor
|
|
31
|
-
*
|
|
32
|
-
* @param options - The options to customize the {@link SNSAdapter}
|
|
33
|
-
*/
|
|
34
|
-
constructor(options) {
|
|
35
|
-
super({
|
|
36
|
-
forwardPath: (0, core_1.getDefaultIfUndefined)(options === null || options === void 0 ? void 0 : options.sqsForwardPath, '/sqs'),
|
|
37
|
-
forwardMethod: (0, core_1.getDefaultIfUndefined)(options === null || options === void 0 ? void 0 : options.sqsForwardMethod, 'POST'),
|
|
38
|
-
batch: options === null || options === void 0 ? void 0 : options.batch,
|
|
39
|
-
host: 'sqs.amazonaws.com',
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
//#endregion
|
|
43
|
-
//#region Public Methods
|
|
44
|
-
/**
|
|
45
|
-
* {@inheritDoc}
|
|
46
|
-
*/
|
|
47
|
-
getAdapterName() {
|
|
48
|
-
return SQSAdapter.name;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* {@inheritDoc}
|
|
52
|
-
*/
|
|
53
|
-
canHandle(event) {
|
|
54
|
-
var _a;
|
|
55
|
-
const sqsEvent = event;
|
|
56
|
-
if (!Array.isArray(sqsEvent === null || sqsEvent === void 0 ? void 0 : sqsEvent.Records))
|
|
57
|
-
return false;
|
|
58
|
-
const eventSource = (_a = sqsEvent.Records[0]) === null || _a === void 0 ? void 0 : _a.eventSource;
|
|
59
|
-
return eventSource === 'aws:sqs';
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.SQSAdapter = SQSAdapter;
|
|
63
|
-
SQSAdapter.__type = [() => index_1.AwsSimpleAdapter, () => __ΩSQSAdapterOptions, 'options', 'constructor', 'getAdapterName', 'event', 'canHandle', 'P"7!Pn"2#8"0$P&0%P#2&!0\'5"6"'];
|
|
64
|
-
//# sourceMappingURL=sqs.adapter.js.map
|
|
1
|
+
"use strict";var s=Object.defineProperty,n=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyNames,v=Object.prototype.hasOwnProperty,o=(t,e)=>{for(var r in e)s(t,r,{get:e[r],enumerable:!0})},w=(t,e,r,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of f(e))!v.call(t,a)&&a!==r&&s(t,a,{get:()=>e[a],enumerable:!(c=n(e,a))||c.enumerable});return t},l=t=>w(s({},"__esModule",{value:!0}),t),_={};o(_,{SQSAdapter:()=>u});module.exports=l(_);var d=require("../../core"),p=require("./base/index");class u extends p.AwsSimpleAdapter{constructor(e){super({forwardPath:(0,d.getDefaultIfUndefined)(e==null?void 0:e.sqsForwardPath,"/sqs"),forwardMethod:(0,d.getDefaultIfUndefined)(e==null?void 0:e.sqsForwardMethod,"POST"),batch:e==null?void 0:e.batch,host:"sqs.amazonaws.com"})}getAdapterName(){return u.name}canHandle(e){var a;const r=e;return Array.isArray(r==null?void 0:r.Records)?((a=r.Records[0])==null?void 0:a.eventSource)==="aws:sqs":!1}}
|
|
2
|
+
//# sourceMappingURL=sqs.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqs.adapter.js","
|
|
1
|
+
{"version":3,"file":"sqs.adapter.js","sources":["../../../src/adapters/aws/sqs.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { SQSEvent } from 'aws-lambda';\nimport { getDefaultIfUndefined } from '../../core';\nimport { AWSSimpleAdapterOptions, AwsSimpleAdapter } from './base/index';\n\n//#endregion\n\n/**\n * The options to customize the {@link SQSAdapter}\n *\n * @breadcrumb Adapters / AWS / SQSAdapter\n * @public\n */\nexport interface SQSAdapterOptions\n extends Pick<AWSSimpleAdapterOptions, 'batch'> {\n /**\n * The path that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue /sqs\n */\n sqsForwardPath?: string;\n\n /**\n * The http method that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue POST\n */\n sqsForwardMethod?: string;\n}\n\n/**\n * The adapter to handle requests from AWS SQS.\n *\n * The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.\n *\n * {@link https://docs.aws.amazon.com/pt_br/lambda/latest/dg/with-sqs.html | Event Reference}\n *\n * @example\n * ```typescript\n * const sqsForwardPath = '/your/route/sqs'; // default /sqs\n * const sqsForwardMethod = 'POST'; // default POST\n * const adapter = new SQSAdapter({ sqsForwardPath, sqsForwardMethod });\n * ```\n *\n * @breadcrumb Adapters / AWS / SQSAdapter\n * @public\n */\nexport class SQSAdapter extends AwsSimpleAdapter<SQSEvent> {\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link SNSAdapter}\n */\n constructor(options?: SQSAdapterOptions) {\n super({\n forwardPath: getDefaultIfUndefined(options?.sqsForwardPath, '/sqs'),\n forwardMethod: getDefaultIfUndefined(options?.sqsForwardMethod, 'POST'),\n batch: options?.batch,\n host: 'sqs.amazonaws.com',\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return SQSAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is SQSEvent {\n const sqsEvent = event as Partial<SQSEvent>;\n\n if (!Array.isArray(sqsEvent?.Records)) return false;\n\n const eventSource = sqsEvent.Records[0]?.eventSource;\n\n return eventSource === 'aws:sqs';\n }\n\n //#endregion\n}\n"],"names":["sqs_adapter_exports","__export","SQSAdapter","__toCommonJS","import_core","import_base","options","event","sqsEvent","_a"],"mappings":"qZAAAA,EAAA,CAAA,EAAAC,EAAAD,EAAA,CAAA,WAAA,IAAAE,CAAA,CAAA,EAAA,OAAA,QAAAC,EAAAH,CAAA,EAGA,IAAsCI,EAAA,QAAA,YAAA,EACoBC,EAAA,QAAA,cAAA,EA4CnD,MAAMH,UAAmBG,EAA2B,gBAAA,CAQzD,YAAYC,EAA6B,CACjC,MAAA,CACJ,eAAaF,EAAA,uBAAsBE,GAAA,YAAAA,EAAS,eAAgB,MAAM,EAClE,iBAAeF,EAAA,uBAAsBE,GAAA,YAAAA,EAAS,iBAAkB,MAAM,EACtE,MAAOA,GAAA,YAAAA,EAAS,MAChB,KAAM,mBAAA,CACP,CACH,CASO,gBAAyB,CAC9B,OAAOJ,EAAW,IACpB,CAKO,UAAUK,EAAmC,OAClD,MAAMC,EAAWD,EAEjB,OAAK,MAAM,QAAQC,GAAA,YAAAA,EAAU,OAAO,IAEhBC,EAAAD,EAAS,QAAQ,CAAC,IAAlB,YAAAC,EAAqB,eAElB,UAJuB,EAKhD,CAGF"}
|
|
@@ -1,202 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.HttpTriggerV4Adapter = exports.__ΩHttpTriggerV4AdapterOptions = void 0;
|
|
4
|
-
const { __ΩAdapterRequest } = require('../../contracts');
|
|
5
|
-
const { __ΩGetResponseAdapterProps } = require('../../contracts');
|
|
6
|
-
const { __ΩOnErrorProps } = require('../../contracts');
|
|
7
|
-
const { __ΩBothValueHeaders } = require('../../@types');
|
|
8
|
-
function __assignType(fn, args) {
|
|
9
|
-
fn.__type = args;
|
|
10
|
-
return fn;
|
|
11
|
-
}
|
|
12
|
-
//#region Imports
|
|
13
|
-
const url_1 = require("url");
|
|
14
|
-
const core_1 = require("../../core");
|
|
15
|
-
const __ΩHttpTriggerV4AdapterOptions = ['stripBasePath', 'P&4!8M'];
|
|
16
|
-
exports.__ΩHttpTriggerV4AdapterOptions = __ΩHttpTriggerV4AdapterOptions;
|
|
17
|
-
/**
|
|
18
|
-
* The adapter to handle requests from Http Trigger on Azure Function V4.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const stripBasePath = '/any/custom/base/path'; // default ''
|
|
23
|
-
* const adapter = new HttpTriggerV4Adapter({ stripBasePath });
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* @see {@link https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node | Reference}
|
|
27
|
-
*
|
|
28
|
-
* @breadcrumb Adapters / Azure / HttpTriggerV4Adapter
|
|
29
|
-
* @public
|
|
30
|
-
*/
|
|
31
|
-
class HttpTriggerV4Adapter {
|
|
32
|
-
//#region Constructor
|
|
33
|
-
/**
|
|
34
|
-
* Default constructor
|
|
35
|
-
*
|
|
36
|
-
* @param options - The options to customize the {@link HttpTriggerV4Adapter}
|
|
37
|
-
*/
|
|
38
|
-
constructor(options) {
|
|
39
|
-
this.options = options;
|
|
40
|
-
}
|
|
41
|
-
//#endregion
|
|
42
|
-
//#region Public Methods
|
|
43
|
-
/**
|
|
44
|
-
* {@inheritDoc}
|
|
45
|
-
*/
|
|
46
|
-
getAdapterName() {
|
|
47
|
-
return HttpTriggerV4Adapter.name;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* {@inheritDoc}
|
|
51
|
-
*/
|
|
52
|
-
canHandle(event, context) {
|
|
53
|
-
const maybeEvent = event;
|
|
54
|
-
const maybeContext = context;
|
|
55
|
-
return !!(maybeEvent &&
|
|
56
|
-
maybeEvent.method &&
|
|
57
|
-
maybeEvent.headers &&
|
|
58
|
-
maybeEvent.url &&
|
|
59
|
-
maybeEvent.query &&
|
|
60
|
-
maybeContext &&
|
|
61
|
-
maybeContext.traceContext &&
|
|
62
|
-
maybeContext.bindingDefinitions &&
|
|
63
|
-
maybeContext.log &&
|
|
64
|
-
!!maybeContext.log.info &&
|
|
65
|
-
maybeContext.bindingData);
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* {@inheritDoc}
|
|
69
|
-
*/
|
|
70
|
-
getRequest(event) {
|
|
71
|
-
const path = this.getPathFromEvent(event);
|
|
72
|
-
const method = event.method;
|
|
73
|
-
const headers = (0, core_1.getFlattenedHeadersMap)(event.headers, ',', true);
|
|
74
|
-
let body;
|
|
75
|
-
if (event.body) {
|
|
76
|
-
const [bufferBody, contentLength] = (0, core_1.getEventBodyAsBuffer)(event.rawBody, false);
|
|
77
|
-
body = bufferBody;
|
|
78
|
-
headers['content-length'] = String(contentLength);
|
|
79
|
-
}
|
|
80
|
-
const remoteAddress = headers['x-forwarded-for'];
|
|
81
|
-
return {
|
|
82
|
-
method: method,
|
|
83
|
-
path,
|
|
84
|
-
headers,
|
|
85
|
-
remoteAddress,
|
|
86
|
-
body,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* {@inheritDoc}
|
|
91
|
-
*/
|
|
92
|
-
getResponse({ body, isBase64Encoded, statusCode, headers: originalHeaders, }) {
|
|
93
|
-
const headers = (0, core_1.getFlattenedHeadersMap)(originalHeaders, ',', true);
|
|
94
|
-
const cookies = this.getAzureCookiesFromHeaders(originalHeaders);
|
|
95
|
-
if (headers['set-cookie'])
|
|
96
|
-
delete headers['set-cookie'];
|
|
97
|
-
return {
|
|
98
|
-
body,
|
|
99
|
-
statusCode,
|
|
100
|
-
headers,
|
|
101
|
-
// I tried to understand this property with
|
|
102
|
-
// https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation
|
|
103
|
-
// but I don't know if it's worth implementing this guy as an option
|
|
104
|
-
// I found out when this guy is set to true and the framework sets content-type, azure returns 500
|
|
105
|
-
// So I'll leave it as is and hope no one has any problems.
|
|
106
|
-
enableContentNegotiation: false,
|
|
107
|
-
cookies,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* {@inheritDoc}
|
|
112
|
-
*/
|
|
113
|
-
onErrorWhileForwarding({ error, respondWithErrors, event, delegatedResolver, log, }) {
|
|
114
|
-
const body = respondWithErrors ? error.stack : '';
|
|
115
|
-
const errorResponse = this.getResponse({
|
|
116
|
-
event,
|
|
117
|
-
statusCode: 500,
|
|
118
|
-
body: body || '',
|
|
119
|
-
headers: {},
|
|
120
|
-
isBase64Encoded: false,
|
|
121
|
-
log,
|
|
122
|
-
});
|
|
123
|
-
delegatedResolver.succeed(errorResponse);
|
|
124
|
-
}
|
|
125
|
-
//#endregion
|
|
126
|
-
//#region Protected Methods
|
|
127
|
-
/**
|
|
128
|
-
* Get path from event with query strings
|
|
129
|
-
*
|
|
130
|
-
* @param event - The event sent by serverless
|
|
131
|
-
*/
|
|
132
|
-
getPathFromEvent(event) {
|
|
133
|
-
var _a;
|
|
134
|
-
const stripBasePath = (0, core_1.getDefaultIfUndefined)((_a = this.options) === null || _a === void 0 ? void 0 : _a.stripBasePath, '');
|
|
135
|
-
const url = new url_1.URL(event.url);
|
|
136
|
-
const originalPath = url.pathname;
|
|
137
|
-
const replaceRegex = new RegExp(`^${stripBasePath}`);
|
|
138
|
-
const path = originalPath.replace(replaceRegex, '');
|
|
139
|
-
const queryParams = event.query;
|
|
140
|
-
return (0, core_1.getPathWithQueryStringParams)(path, queryParams);
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Get the Azure Cookie list parsed from set-cookie header.
|
|
144
|
-
*
|
|
145
|
-
* @param headers - The headers object
|
|
146
|
-
*/
|
|
147
|
-
getAzureCookiesFromHeaders(headers) {
|
|
148
|
-
const setCookie = headers['set-cookie'];
|
|
149
|
-
const headerCookies = Array.isArray(setCookie)
|
|
150
|
-
? setCookie
|
|
151
|
-
: setCookie
|
|
152
|
-
? [setCookie]
|
|
153
|
-
: [];
|
|
154
|
-
return headerCookies.map(__assignType(cookie => this.parseCookie(cookie), ['cookie', '', 'P"2!"/"']));
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Parse the string cookie to the Azure Cookie Object.
|
|
158
|
-
* This code was written by {@link https://github.com/zachabney | @zachabney}
|
|
159
|
-
* on {@link https://github.com/zachabney/azure-aws-serverless-express/blob/241d2d5c4d5906e4817662cad6426ec2cbbf9ca7/src/index.js#L4-L49 | this library}.
|
|
160
|
-
*
|
|
161
|
-
* @param cookie - The cookie
|
|
162
|
-
*/
|
|
163
|
-
parseCookie(cookie) {
|
|
164
|
-
return cookie.split(';').reduce(__assignType((azureCookieObject, cookieProperty, index) => {
|
|
165
|
-
const [key, value] = cookieProperty.split('=');
|
|
166
|
-
const sanitizedKey = key.toLowerCase().trim();
|
|
167
|
-
const sanitizedValue = value && value.trim();
|
|
168
|
-
if (index === 0) {
|
|
169
|
-
azureCookieObject.name = key;
|
|
170
|
-
azureCookieObject.value = sanitizedValue;
|
|
171
|
-
return azureCookieObject;
|
|
172
|
-
}
|
|
173
|
-
switch (sanitizedKey) {
|
|
174
|
-
case 'domain':
|
|
175
|
-
azureCookieObject.domain = sanitizedValue;
|
|
176
|
-
break;
|
|
177
|
-
case 'path':
|
|
178
|
-
azureCookieObject.path = sanitizedValue;
|
|
179
|
-
break;
|
|
180
|
-
case 'expires':
|
|
181
|
-
azureCookieObject.expires = new Date(sanitizedValue);
|
|
182
|
-
break;
|
|
183
|
-
case 'secure':
|
|
184
|
-
azureCookieObject.secure = true;
|
|
185
|
-
break;
|
|
186
|
-
case 'httponly':
|
|
187
|
-
azureCookieObject.httpOnly = true;
|
|
188
|
-
break;
|
|
189
|
-
case 'samesite':
|
|
190
|
-
azureCookieObject.sameSite = sanitizedValue;
|
|
191
|
-
break;
|
|
192
|
-
case 'max-age':
|
|
193
|
-
azureCookieObject.maxAge = Number(sanitizedValue);
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
196
|
-
return azureCookieObject;
|
|
197
|
-
}, ['azureCookieObject', 'cookieProperty', 'index', '', 'P"2!"2""2#"/$']), { name: '', value: '' });
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
exports.HttpTriggerV4Adapter = HttpTriggerV4Adapter;
|
|
201
|
-
HttpTriggerV4Adapter.__type = [() => __ΩHttpTriggerV4AdapterOptions, 'options', 'constructor', 'getAdapterName', 'event', 'context', 'canHandle', () => __ΩAdapterRequest, 'getRequest', () => __ΩGetResponseAdapterProps, 'param0', 'getResponse', () => __ΩOnErrorProps, 'onErrorWhileForwarding', 'getPathFromEvent', () => __ΩBothValueHeaders, 'headers', 'getAzureCookiesFromHeaders', 'cookie', 'parseCookie', 'Pn!2"8<9"0#P&0$P#2%#2&)0\'P!2%n(0)P!o*"2+!0,P!!o-#2+$0.P!2%&0/<Pn021!F02<P&23!04<5!!!6$'];
|
|
202
|
-
//# sourceMappingURL=http-trigger-v4.adapter.js.map
|
|
1
|
+
"use strict";var d=Object.defineProperty,g=Object.getOwnPropertyDescriptor,l=Object.getOwnPropertyNames,m=Object.prototype.hasOwnProperty,y=(i,e)=>{for(var t in e)d(i,t,{get:e[t],enumerable:!0})},f=(i,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!m.call(i,r)&&r!==t&&d(i,r,{get:()=>e[r],enumerable:!(s=g(e,r))||s.enumerable});return i},_=i=>f(d({},"__esModule",{value:!0}),i),h={};y(h,{HttpTriggerV4Adapter:()=>u});module.exports=_(h);var P=require("url"),p=require("../../core");class u{constructor(e){this.options=e}getAdapterName(){return u.name}canHandle(e,t){const s=e,r=t;return!!(s&&s.method&&s.headers&&s.url&&s.query&&r&&r.traceContext&&r.bindingDefinitions&&r.log&&r.log.info&&r.bindingData)}getRequest(e){const t=this.getPathFromEvent(e),s=e.method,r=(0,p.getFlattenedHeadersMap)(e.headers,",",!0);let a;if(e.body){const[c,o]=(0,p.getEventBodyAsBuffer)(e.rawBody,!1);a=c,r["content-length"]=String(o)}const n=r["x-forwarded-for"];return{method:s,path:t,headers:r,remoteAddress:n,body:a}}getResponse({body:e,isBase64Encoded:t,statusCode:s,headers:r}){const a=(0,p.getFlattenedHeadersMap)(r,",",!0),n=this.getAzureCookiesFromHeaders(r);return a["set-cookie"]&&delete a["set-cookie"],{body:e,statusCode:s,headers:a,enableContentNegotiation:!1,cookies:n}}onErrorWhileForwarding({error:e,respondWithErrors:t,event:s,delegatedResolver:r,log:a}){const n=t?e.stack:"",c=this.getResponse({event:s,statusCode:500,body:n||"",headers:{},isBase64Encoded:!1,log:a});r.succeed(c)}getPathFromEvent(e){var o;const t=(0,p.getDefaultIfUndefined)((o=this.options)==null?void 0:o.stripBasePath,""),r=new P.URL(e.url).pathname,a=new RegExp(`^${t}`),n=r.replace(a,""),c=e.query;return(0,p.getPathWithQueryStringParams)(n,c)}getAzureCookiesFromHeaders(e){const t=e["set-cookie"];return(Array.isArray(t)?t:t?[t]:[]).map(r=>this.parseCookie(r))}parseCookie(e){return e.split(";").reduce((t,s,r)=>{const[a,n]=s.split("="),c=a.toLowerCase().trim(),o=n&&n.trim();if(r===0)return t.name=a,t.value=o,t;switch(c){case"domain":t.domain=o;break;case"path":t.path=o;break;case"expires":t.expires=new Date(o);break;case"secure":t.secure=!0;break;case"httponly":t.httpOnly=!0;break;case"samesite":t.sameSite=o;break;case"max-age":t.maxAge=Number(o);break}return t},{name:"",value:""})}}
|
|
2
|
+
//# sourceMappingURL=http-trigger-v4.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-trigger-v4.adapter.js","sourceRoot":"","sources":["../../../src/adapters/azure/http-trigger-v4.adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-trigger-v4.adapter.js","sources":["../../../src/adapters/azure/http-trigger-v4.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport { URL } from 'url';\nimport type {\n Context,\n Cookie,\n HttpRequest,\n HttpResponseSimple,\n} from '@azure/functions';\nimport { BothValueHeaders } from '../../@types';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n getDefaultIfUndefined,\n getEventBodyAsBuffer,\n getFlattenedHeadersMap,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link HttpTriggerV4Adapter}\n *\n * @breadcrumb Adapters / Azure / HttpTriggerV4Adapter\n * @public\n */\nexport interface HttpTriggerV4AdapterOptions {\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 Http Trigger on Azure Function V4.\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new HttpTriggerV4Adapter({ stripBasePath });\n * ```\n *\n * @see {@link https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-node | Reference}\n *\n * @breadcrumb Adapters / Azure / HttpTriggerV4Adapter\n * @public\n */\nexport class HttpTriggerV4Adapter\n implements AdapterContract<HttpRequest, Context, HttpResponseSimple>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link HttpTriggerV4Adapter}\n */\n constructor(protected readonly options?: HttpTriggerV4AdapterOptions) {}\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return HttpTriggerV4Adapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown, context: unknown): boolean {\n const maybeEvent = event as Partial<HttpRequest> | undefined;\n const maybeContext = context as Partial<Context> | undefined;\n\n return !!(\n maybeEvent &&\n maybeEvent.method &&\n maybeEvent.headers &&\n maybeEvent.url &&\n maybeEvent.query &&\n maybeContext &&\n maybeContext.traceContext &&\n maybeContext.bindingDefinitions &&\n maybeContext.log &&\n !!maybeContext.log.info &&\n maybeContext.bindingData\n );\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: HttpRequest): AdapterRequest {\n const path = this.getPathFromEvent(event);\n\n const method = event.method;\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.rawBody,\n false,\n );\n\n body = bufferBody;\n headers['content-length'] = String(contentLength);\n }\n\n const remoteAddress = headers['x-forwarded-for'];\n\n return {\n method: method as string,\n path,\n headers,\n remoteAddress,\n body,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n body,\n isBase64Encoded,\n statusCode,\n headers: originalHeaders,\n }: GetResponseAdapterProps<HttpRequest>): HttpResponseSimple {\n const headers = getFlattenedHeadersMap(originalHeaders, ',', true);\n const cookies = this.getAzureCookiesFromHeaders(originalHeaders);\n\n if (headers['set-cookie']) delete headers['set-cookie'];\n\n return {\n body,\n statusCode,\n headers,\n // I tried to understand this property with\n // https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/content-negotiation\n // but I don't know if it's worth implementing this guy as an option\n // I found out when this guy is set to true and the framework sets content-type, azure returns 500\n // So I'll leave it as is and hope no one has any problems.\n enableContentNegotiation: false,\n cookies,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n respondWithErrors,\n event,\n delegatedResolver,\n log,\n }: OnErrorProps<HttpRequest, HttpResponseSimple>): 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: HttpRequest): string {\n const stripBasePath = getDefaultIfUndefined(\n this.options?.stripBasePath,\n '',\n );\n\n const url = new URL(event.url);\n const originalPath = url.pathname;\n\n const replaceRegex = new RegExp(`^${stripBasePath}`);\n const path = originalPath.replace(replaceRegex, '');\n\n const queryParams = event.query;\n\n return getPathWithQueryStringParams(path, queryParams);\n }\n\n /**\n * Get the Azure Cookie list parsed from set-cookie header.\n *\n * @param headers - The headers object\n */\n protected getAzureCookiesFromHeaders(headers: BothValueHeaders): Cookie[] {\n const setCookie = headers['set-cookie'];\n\n const headerCookies = Array.isArray(setCookie)\n ? setCookie\n : setCookie\n ? [setCookie]\n : [];\n\n return headerCookies.map(cookie => this.parseCookie(cookie));\n }\n\n /**\n * Parse the string cookie to the Azure Cookie Object.\n * This code was written by {@link https://github.com/zachabney | @zachabney}\n * on {@link https://github.com/zachabney/azure-aws-serverless-express/blob/241d2d5c4d5906e4817662cad6426ec2cbbf9ca7/src/index.js#L4-L49 | this library}.\n *\n * @param cookie - The cookie\n */\n protected parseCookie(cookie: string): Cookie {\n return cookie.split(';').reduce(\n (azureCookieObject, cookieProperty, index) => {\n const [key, value] = cookieProperty.split('=');\n\n const sanitizedKey = key.toLowerCase().trim();\n const sanitizedValue = value && value.trim();\n\n if (index === 0) {\n azureCookieObject.name = key;\n azureCookieObject.value = sanitizedValue;\n\n return azureCookieObject;\n }\n\n switch (sanitizedKey) {\n case 'domain':\n azureCookieObject.domain = sanitizedValue;\n break;\n case 'path':\n azureCookieObject.path = sanitizedValue;\n break;\n case 'expires':\n azureCookieObject.expires = new Date(sanitizedValue);\n break;\n case 'secure':\n azureCookieObject.secure = true;\n break;\n case 'httponly':\n azureCookieObject.httpOnly = true;\n break;\n case 'samesite':\n azureCookieObject.sameSite = sanitizedValue as Cookie['sameSite'];\n break;\n case 'max-age':\n azureCookieObject.maxAge = Number(sanitizedValue);\n break;\n }\n\n return azureCookieObject;\n },\n { name: '', value: '' } as Cookie,\n );\n }\n\n //#endregion\n}\n"],"names":["http_trigger_v4_adapter_exports","__export","HttpTriggerV4Adapter","__toCommonJS","import_url","import_core","options","event","context","maybeEvent","maybeContext","path","method","headers","body","bufferBody","contentLength","remoteAddress","isBase64Encoded","statusCode","originalHeaders","cookies","error","respondWithErrors","delegatedResolver","log","errorResponse","stripBasePath","_a","originalPath","replaceRegex","queryParams","setCookie","cookie","azureCookieObject","cookieProperty","index","key","value","sanitizedKey","sanitizedValue"],"mappings":"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"}
|
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
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("./http-trigger-v4.adapter"), 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("./http-trigger-v4.adapter"),module.exports);
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/adapters/azure/index.ts"],"sourcesContent":["export * from './http-trigger-v4.adapter';\n"],"names":["azure_exports","__toCommonJS","__reExport"],"mappings":"6YAAAA,EAAA,CAAA,EAAA,OAAA,QAAAC,EAAAD,CAAA,EAAAE,EAAAF,EAAc,QAAd,2BAAA,EAAA,OAAA,OAAA"}
|