@h4ad/serverless-adapter 3.2.0 → 4.0.1
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/lib/adapter.contract-EQE3rlgO.d.ts +278 -0
- package/lib/adapter.contract-y5xSjOjo.d.cts +278 -0
- package/lib/adapters/apollo-server/index.cjs +4 -0
- package/lib/adapters/apollo-server/index.cjs.map +1 -0
- package/lib/adapters/apollo-server/{apollo-server-mutation.adapter.d.ts → index.d.cts} +10 -5
- package/lib/adapters/apollo-server/index.d.ts +61 -2
- package/lib/adapters/apollo-server/index.mjs +2 -0
- package/lib/adapters/apollo-server/index.mjs.map +1 -0
- package/lib/adapters/aws/index.cjs +4 -0
- package/lib/adapters/aws/index.cjs.map +1 -0
- package/lib/adapters/aws/index.d.cts +910 -0
- package/lib/adapters/aws/index.d.ts +910 -12
- package/lib/adapters/aws/index.mjs +2 -0
- package/lib/adapters/aws/index.mjs.map +1 -0
- package/lib/adapters/azure/index.cjs +4 -0
- package/lib/adapters/azure/index.cjs.map +1 -0
- package/lib/adapters/azure/{http-trigger-v4.adapter.d.ts → index.d.cts} +11 -6
- package/lib/adapters/azure/index.d.ts +86 -2
- package/lib/adapters/azure/index.mjs +2 -0
- package/lib/adapters/azure/index.mjs.map +1 -0
- package/lib/adapters/digital-ocean/index.cjs +4 -0
- package/lib/adapters/digital-ocean/index.cjs.map +1 -0
- package/lib/adapters/digital-ocean/index.d.cts +126 -0
- package/lib/adapters/digital-ocean/index.d.ts +126 -2
- package/lib/adapters/digital-ocean/index.mjs +2 -0
- package/lib/adapters/digital-ocean/index.mjs.map +1 -0
- package/lib/adapters/dummy/index.cjs +4 -0
- package/lib/adapters/dummy/index.cjs.map +1 -0
- package/lib/adapters/dummy/{dummy.adapter.d.ts → index.d.cts} +10 -4
- package/lib/adapters/dummy/index.d.ts +37 -2
- package/lib/adapters/dummy/index.mjs +2 -0
- package/lib/adapters/dummy/index.mjs.map +1 -0
- package/lib/adapters/huawei/index.cjs +4 -0
- package/lib/adapters/huawei/index.cjs.map +1 -0
- package/lib/adapters/huawei/index.d.cts +365 -0
- package/lib/adapters/huawei/index.d.ts +365 -2
- package/lib/adapters/huawei/index.mjs +2 -0
- package/lib/adapters/huawei/index.mjs.map +1 -0
- package/lib/{core/base-handler.d.ts → base-handler-fYEk59Xq.d.ts} +9 -6
- package/lib/base-handler-peEBoKtZ.d.cts +35 -0
- package/lib/chunk-22SSVZU5.mjs +1 -0
- package/lib/chunk-22SSVZU5.mjs.map +1 -0
- package/lib/chunk-HU5XBQCP.mjs +10 -0
- package/lib/chunk-HU5XBQCP.mjs.map +1 -0
- package/lib/chunk-NSO4L3EI.mjs +2 -0
- package/lib/chunk-NSO4L3EI.mjs.map +1 -0
- package/lib/chunk-OYOJMOFP.mjs +2 -0
- package/lib/chunk-OYOJMOFP.mjs.map +1 -0
- package/lib/chunk-Y6H576RS.mjs +2 -0
- package/lib/chunk-Y6H576RS.mjs.map +1 -0
- package/lib/{core/constants.d.ts → constants-0cgQlFSV.d.cts} +6 -5
- package/lib/constants-0cgQlFSV.d.ts +32 -0
- package/lib/{contracts/framework.contract.d.ts → framework.contract-YnJ-fl1w.d.cts} +4 -3
- package/lib/framework.contract-YnJ-fl1w.d.ts +20 -0
- package/lib/frameworks/apollo-server/index.cjs +4 -0
- package/lib/frameworks/apollo-server/index.cjs.map +1 -0
- package/lib/frameworks/apollo-server/{apollo-server.framework.d.ts → index.d.cts} +12 -9
- package/lib/frameworks/apollo-server/index.d.ts +72 -2
- package/lib/frameworks/apollo-server/index.mjs +2 -0
- package/lib/frameworks/apollo-server/index.mjs.map +1 -0
- package/lib/frameworks/body-parser/index.cjs +4 -0
- package/lib/frameworks/body-parser/index.cjs.map +1 -0
- package/lib/frameworks/body-parser/index.d.cts +159 -0
- package/lib/frameworks/body-parser/index.d.ts +159 -6
- package/lib/frameworks/body-parser/index.mjs +2 -0
- package/lib/frameworks/body-parser/index.mjs.map +1 -0
- package/lib/frameworks/cors/index.cjs +5 -0
- package/lib/frameworks/cors/index.cjs.map +1 -0
- package/lib/frameworks/cors/{cors.framework.d.ts → index.d.cts} +6 -5
- package/lib/frameworks/cors/index.d.ts +79 -2
- package/lib/frameworks/cors/index.mjs +3 -0
- package/lib/frameworks/cors/index.mjs.map +1 -0
- package/lib/frameworks/deepkit/index.cjs +4 -0
- package/lib/frameworks/deepkit/index.cjs.map +1 -0
- package/lib/frameworks/deepkit/{http-deepkit.framework.d.ts → index.d.cts} +8 -5
- package/lib/frameworks/deepkit/index.d.ts +21 -2
- package/lib/frameworks/deepkit/index.mjs +2 -0
- package/lib/frameworks/deepkit/index.mjs.map +1 -0
- package/lib/frameworks/express/index.cjs +2 -0
- package/lib/frameworks/express/index.cjs.map +1 -0
- package/lib/frameworks/express/{express.framework.d.ts → index.d.cts} +6 -5
- package/lib/frameworks/express/index.d.ts +18 -2
- package/lib/frameworks/express/index.mjs +2 -0
- package/lib/frameworks/express/index.mjs.map +1 -0
- package/lib/frameworks/fastify/index.cjs +2 -0
- package/lib/frameworks/fastify/index.cjs.map +1 -0
- package/lib/frameworks/fastify/{fastify.framework.d.ts → index.d.cts} +6 -5
- package/lib/frameworks/fastify/index.d.ts +18 -2
- package/lib/frameworks/fastify/index.mjs +2 -0
- package/lib/frameworks/fastify/index.mjs.map +1 -0
- package/lib/frameworks/hapi/index.cjs +2 -0
- package/lib/frameworks/hapi/index.cjs.map +1 -0
- package/lib/frameworks/hapi/{hapi.framework.d.ts → index.d.cts} +6 -5
- package/lib/frameworks/hapi/index.d.ts +18 -2
- package/lib/frameworks/hapi/index.mjs +2 -0
- package/lib/frameworks/hapi/index.mjs.map +1 -0
- package/lib/frameworks/koa/index.cjs +2 -0
- package/lib/frameworks/koa/index.cjs.map +1 -0
- package/lib/frameworks/koa/{koa.framework.d.ts → index.d.cts} +6 -5
- package/lib/frameworks/koa/index.d.ts +18 -2
- package/lib/frameworks/koa/index.mjs +2 -0
- package/lib/frameworks/koa/index.mjs.map +1 -0
- package/lib/frameworks/lazy/index.cjs +4 -0
- package/lib/frameworks/lazy/index.cjs.map +1 -0
- package/lib/frameworks/lazy/{lazy.framework.d.ts → index.d.cts} +7 -6
- package/lib/frameworks/lazy/index.d.ts +57 -2
- package/lib/frameworks/lazy/index.mjs +2 -0
- package/lib/frameworks/lazy/index.mjs.map +1 -0
- package/lib/frameworks/trpc/index.cjs +4 -0
- package/lib/frameworks/trpc/index.cjs.map +1 -0
- package/lib/frameworks/trpc/{trpc.framework.d.ts → index.d.cts} +12 -11
- package/lib/frameworks/trpc/index.d.ts +154 -2
- package/lib/frameworks/trpc/index.mjs +2 -0
- package/lib/frameworks/trpc/index.mjs.map +1 -0
- package/lib/handler.contract-8Cb7qLSi.d.ts +66 -0
- package/lib/handler.contract-TQk8iM8f.d.cts +66 -0
- package/lib/handlers/aws/index.cjs +10 -0
- package/lib/handlers/aws/index.cjs.map +1 -0
- package/lib/handlers/aws/{aws-stream.handler.d.ts → index.d.cts} +22 -15
- package/lib/handlers/aws/index.d.ts +96 -2
- package/lib/handlers/aws/index.mjs +2 -0
- package/lib/handlers/aws/index.mjs.map +1 -0
- package/lib/handlers/azure/index.cjs +4 -0
- package/lib/handlers/azure/index.cjs.map +1 -0
- package/lib/handlers/azure/{azure.handler.d.ts → index.d.cts} +16 -8
- package/lib/handlers/azure/index.d.ts +53 -2
- package/lib/handlers/azure/index.mjs +2 -0
- package/lib/handlers/azure/index.mjs.map +1 -0
- package/lib/handlers/default/index.cjs +4 -0
- package/lib/handlers/default/index.cjs.map +1 -0
- package/lib/handlers/default/{default.handler.d.ts → index.d.cts} +13 -6
- package/lib/handlers/default/index.d.ts +95 -2
- package/lib/handlers/default/index.mjs +2 -0
- package/lib/handlers/default/index.mjs.map +1 -0
- package/lib/handlers/digital-ocean/index.cjs +4 -0
- package/lib/handlers/digital-ocean/index.cjs.map +1 -0
- package/lib/handlers/digital-ocean/index.d.cts +25 -0
- package/lib/handlers/digital-ocean/index.d.ts +25 -2
- package/lib/handlers/digital-ocean/index.mjs +2 -0
- package/lib/handlers/digital-ocean/index.mjs.map +1 -0
- package/lib/handlers/firebase/index.cjs +4 -0
- package/lib/handlers/firebase/index.cjs.map +1 -0
- package/lib/handlers/firebase/index.d.cts +59 -0
- package/lib/handlers/firebase/index.d.ts +59 -3
- package/lib/handlers/firebase/index.mjs +2 -0
- package/lib/handlers/firebase/index.mjs.map +1 -0
- package/lib/handlers/gcp/index.cjs +4 -0
- package/lib/handlers/gcp/index.cjs.map +1 -0
- package/lib/handlers/gcp/{gcp.handler.d.ts → index.d.cts} +12 -5
- package/lib/handlers/gcp/index.d.ts +33 -2
- package/lib/handlers/gcp/index.mjs +2 -0
- package/lib/handlers/gcp/index.mjs.map +1 -0
- package/lib/handlers/huawei/index.cjs +4 -0
- package/lib/handlers/huawei/index.cjs.map +1 -0
- package/lib/handlers/huawei/{http-huawei.handler.d.ts → index.d.cts} +15 -12
- package/lib/handlers/huawei/index.d.ts +62 -2
- package/lib/handlers/huawei/index.mjs +2 -0
- package/lib/handlers/huawei/index.mjs.map +1 -0
- package/lib/{@types/headers.d.ts → headers-K2qbcurv.d.cts} +5 -4
- package/lib/headers-K2qbcurv.d.ts +38 -0
- package/lib/index.cjs +10 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.d.cts +439 -0
- package/lib/index.d.ts +439 -6
- package/lib/index.mjs +2 -0
- package/lib/index.mjs.map +1 -0
- package/lib/{core/logger.d.ts → logger-9me5n48P.d.cts} +8 -7
- package/lib/logger-9me5n48P.d.ts +65 -0
- package/lib/{core/path.d.ts → path-yBwCb8C1.d.cts} +16 -5
- package/lib/path-yBwCb8C1.d.ts +64 -0
- package/lib/{handlers/base/raw-request.d.ts → raw-request-B2vPjAfE.d.cts} +6 -5
- package/lib/raw-request-b6AYnkxd.d.ts +32 -0
- package/lib/{network/request.d.ts → request-DNNIV9ub.d.cts} +7 -7
- package/lib/request-sVa4pxmx.d.ts +44 -0
- package/lib/resolvers/aws-context/index.cjs +2 -0
- package/lib/resolvers/aws-context/index.cjs.map +1 -0
- package/lib/resolvers/aws-context/{aws-context.resolver.d.ts → index.d.cts} +10 -4
- package/lib/resolvers/aws-context/index.d.ts +25 -2
- package/lib/resolvers/aws-context/index.mjs +2 -0
- package/lib/resolvers/aws-context/index.mjs.map +1 -0
- package/lib/resolvers/callback/index.cjs +2 -0
- package/lib/resolvers/callback/index.cjs.map +1 -0
- package/lib/resolvers/callback/{callback.resolver.d.ts → index.d.cts} +10 -4
- package/lib/resolvers/callback/index.d.ts +29 -2
- package/lib/resolvers/callback/index.mjs +2 -0
- package/lib/resolvers/callback/index.mjs.map +1 -0
- package/lib/resolvers/dummy/index.cjs +2 -0
- package/lib/resolvers/dummy/index.cjs.map +1 -0
- package/lib/resolvers/dummy/index.d.cts +20 -0
- package/lib/resolvers/dummy/index.d.ts +20 -2
- package/lib/resolvers/dummy/index.mjs +2 -0
- package/lib/resolvers/dummy/index.mjs.map +1 -0
- package/lib/resolvers/promise/index.cjs +2 -0
- package/lib/resolvers/promise/index.cjs.map +1 -0
- package/lib/resolvers/promise/index.d.cts +20 -0
- package/lib/resolvers/promise/index.d.ts +20 -2
- package/lib/resolvers/promise/index.mjs +2 -0
- package/lib/resolvers/promise/index.mjs.map +1 -0
- package/package.json +565 -7
- package/lib/@types/binary-settings.d.ts +0 -41
- package/lib/@types/binary-settings.d.ts.map +0 -1
- package/lib/@types/binary-settings.js +0 -2
- package/lib/@types/binary-settings.js.map +0 -1
- package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts +0 -37
- package/lib/@types/digital-ocean/digital-ocean-http-event.d.ts.map +0 -1
- package/lib/@types/digital-ocean/digital-ocean-http-event.js +0 -2
- package/lib/@types/digital-ocean/digital-ocean-http-event.js.map +0 -1
- package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts +0 -22
- package/lib/@types/digital-ocean/digital-ocean-http-response.d.ts.map +0 -1
- package/lib/@types/digital-ocean/digital-ocean-http-response.js +0 -2
- package/lib/@types/digital-ocean/digital-ocean-http-response.js.map +0 -1
- package/lib/@types/digital-ocean/index.d.ts +0 -2
- package/lib/@types/digital-ocean/index.d.ts.map +0 -1
- package/lib/@types/digital-ocean/index.js +0 -2
- package/lib/@types/digital-ocean/index.js.map +0 -1
- package/lib/@types/headers.d.ts.map +0 -1
- package/lib/@types/headers.js +0 -2
- package/lib/@types/headers.js.map +0 -1
- package/lib/@types/helpers.d.ts +0 -10
- package/lib/@types/helpers.d.ts.map +0 -1
- package/lib/@types/helpers.js +0 -2
- package/lib/@types/helpers.js.map +0 -1
- package/lib/@types/huawei/huawei-api-gateway-event.d.ts +0 -81
- package/lib/@types/huawei/huawei-api-gateway-event.d.ts.map +0 -1
- package/lib/@types/huawei/huawei-api-gateway-event.js +0 -2
- package/lib/@types/huawei/huawei-api-gateway-event.js.map +0 -1
- package/lib/@types/huawei/huawei-api-gateway-response.d.ts +0 -27
- package/lib/@types/huawei/huawei-api-gateway-response.d.ts.map +0 -1
- package/lib/@types/huawei/huawei-api-gateway-response.js +0 -2
- package/lib/@types/huawei/huawei-api-gateway-response.js.map +0 -1
- package/lib/@types/huawei/huawei-context.d.ts +0 -188
- package/lib/@types/huawei/huawei-context.d.ts.map +0 -1
- package/lib/@types/huawei/huawei-context.js +0 -2
- package/lib/@types/huawei/huawei-context.js.map +0 -1
- package/lib/@types/huawei/index.d.ts +0 -4
- package/lib/@types/huawei/index.d.ts.map +0 -1
- package/lib/@types/huawei/index.js +0 -2
- package/lib/@types/huawei/index.js.map +0 -1
- package/lib/@types/index.d.ts +0 -4
- package/lib/@types/index.d.ts.map +0 -1
- package/lib/@types/index.js +0 -2
- package/lib/@types/index.js.map +0 -1
- package/lib/adapters/apollo-server/apollo-server-mutation.adapter.d.ts.map +0 -1
- package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js +0 -2
- package/lib/adapters/apollo-server/apollo-server-mutation.adapter.js.map +0 -1
- package/lib/adapters/apollo-server/index.d.ts.map +0 -1
- package/lib/adapters/apollo-server/index.js +0 -2
- package/lib/adapters/apollo-server/index.js.map +0 -1
- package/lib/adapters/aws/alb.adapter.d.ts +0 -71
- package/lib/adapters/aws/alb.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/alb.adapter.js +0 -2
- package/lib/adapters/aws/alb.adapter.js.map +0 -1
- package/lib/adapters/aws/api-gateway-v1.adapter.d.ts +0 -76
- package/lib/adapters/aws/api-gateway-v1.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/api-gateway-v1.adapter.js +0 -2
- package/lib/adapters/aws/api-gateway-v1.adapter.js.map +0 -1
- package/lib/adapters/aws/api-gateway-v2.adapter.d.ts +0 -75
- package/lib/adapters/aws/api-gateway-v2.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/api-gateway-v2.adapter.js +0 -2
- package/lib/adapters/aws/api-gateway-v2.adapter.js.map +0 -1
- package/lib/adapters/aws/base/aws-simple-adapter.d.ts +0 -83
- package/lib/adapters/aws/base/aws-simple-adapter.d.ts.map +0 -1
- package/lib/adapters/aws/base/aws-simple-adapter.js +0 -2
- package/lib/adapters/aws/base/aws-simple-adapter.js.map +0 -1
- package/lib/adapters/aws/base/index.d.ts +0 -2
- package/lib/adapters/aws/base/index.d.ts.map +0 -1
- package/lib/adapters/aws/base/index.js +0 -2
- package/lib/adapters/aws/base/index.js.map +0 -1
- package/lib/adapters/aws/dynamodb.adapter.d.ts +0 -56
- package/lib/adapters/aws/dynamodb.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/dynamodb.adapter.js +0 -2
- package/lib/adapters/aws/dynamodb.adapter.js.map +0 -1
- package/lib/adapters/aws/event-bridge.adapter.d.ts +0 -63
- package/lib/adapters/aws/event-bridge.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/event-bridge.adapter.js +0 -2
- package/lib/adapters/aws/event-bridge.adapter.js.map +0 -1
- package/lib/adapters/aws/index.d.ts.map +0 -1
- package/lib/adapters/aws/index.js +0 -2
- package/lib/adapters/aws/index.js.map +0 -1
- package/lib/adapters/aws/lambda-edge.adapter.d.ts +0 -209
- package/lib/adapters/aws/lambda-edge.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/lambda-edge.adapter.js +0 -2
- package/lib/adapters/aws/lambda-edge.adapter.js.map +0 -1
- package/lib/adapters/aws/request-lambda-edge.adapter.d.ts +0 -131
- package/lib/adapters/aws/request-lambda-edge.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/request-lambda-edge.adapter.js +0 -2
- package/lib/adapters/aws/request-lambda-edge.adapter.js.map +0 -1
- package/lib/adapters/aws/s3.adapter.d.ts +0 -56
- package/lib/adapters/aws/s3.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/s3.adapter.js +0 -2
- package/lib/adapters/aws/s3.adapter.js.map +0 -1
- package/lib/adapters/aws/sns.adapter.d.ts +0 -56
- package/lib/adapters/aws/sns.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/sns.adapter.js +0 -2
- package/lib/adapters/aws/sns.adapter.js.map +0 -1
- package/lib/adapters/aws/sqs.adapter.d.ts +0 -56
- package/lib/adapters/aws/sqs.adapter.d.ts.map +0 -1
- package/lib/adapters/aws/sqs.adapter.js +0 -2
- package/lib/adapters/aws/sqs.adapter.js.map +0 -1
- package/lib/adapters/azure/http-trigger-v4.adapter.d.ts.map +0 -1
- package/lib/adapters/azure/http-trigger-v4.adapter.js +0 -2
- package/lib/adapters/azure/http-trigger-v4.adapter.js.map +0 -1
- package/lib/adapters/azure/index.d.ts.map +0 -1
- package/lib/adapters/azure/index.js +0 -2
- package/lib/adapters/azure/index.js.map +0 -1
- package/lib/adapters/digital-ocean/http-function.adapter.d.ts +0 -65
- package/lib/adapters/digital-ocean/http-function.adapter.d.ts.map +0 -1
- package/lib/adapters/digital-ocean/http-function.adapter.js +0 -2
- package/lib/adapters/digital-ocean/http-function.adapter.js.map +0 -1
- package/lib/adapters/digital-ocean/index.d.ts.map +0 -1
- package/lib/adapters/digital-ocean/index.js +0 -2
- package/lib/adapters/digital-ocean/index.js.map +0 -1
- package/lib/adapters/dummy/dummy.adapter.d.ts.map +0 -1
- package/lib/adapters/dummy/dummy.adapter.js +0 -2
- package/lib/adapters/dummy/dummy.adapter.js.map +0 -1
- package/lib/adapters/dummy/index.d.ts.map +0 -1
- package/lib/adapters/dummy/index.js +0 -2
- package/lib/adapters/dummy/index.js.map +0 -1
- package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts +0 -66
- package/lib/adapters/huawei/huawei-api-gateway.adapter.d.ts.map +0 -1
- package/lib/adapters/huawei/huawei-api-gateway.adapter.js +0 -2
- package/lib/adapters/huawei/huawei-api-gateway.adapter.js.map +0 -1
- package/lib/adapters/huawei/index.d.ts.map +0 -1
- package/lib/adapters/huawei/index.js +0 -2
- package/lib/adapters/huawei/index.js.map +0 -1
- package/lib/contracts/adapter.contract.d.ts +0 -152
- package/lib/contracts/adapter.contract.d.ts.map +0 -1
- package/lib/contracts/adapter.contract.js +0 -2
- package/lib/contracts/adapter.contract.js.map +0 -1
- package/lib/contracts/framework.contract.d.ts.map +0 -1
- package/lib/contracts/framework.contract.js +0 -2
- package/lib/contracts/framework.contract.js.map +0 -1
- package/lib/contracts/handler.contract.d.ts +0 -25
- package/lib/contracts/handler.contract.d.ts.map +0 -1
- package/lib/contracts/handler.contract.js +0 -2
- package/lib/contracts/handler.contract.js.map +0 -1
- package/lib/contracts/index.d.ts +0 -5
- package/lib/contracts/index.d.ts.map +0 -1
- package/lib/contracts/index.js +0 -2
- package/lib/contracts/index.js.map +0 -1
- package/lib/contracts/resolver.contract.d.ts +0 -83
- package/lib/contracts/resolver.contract.d.ts.map +0 -1
- package/lib/contracts/resolver.contract.js +0 -2
- package/lib/contracts/resolver.contract.js.map +0 -1
- package/lib/core/base-handler.d.ts.map +0 -1
- package/lib/core/base-handler.js +0 -2
- package/lib/core/base-handler.js.map +0 -1
- package/lib/core/constants.d.ts.map +0 -1
- package/lib/core/constants.js +0 -2
- package/lib/core/constants.js.map +0 -1
- package/lib/core/current-invoke.d.ts +0 -48
- package/lib/core/current-invoke.d.ts.map +0 -1
- package/lib/core/current-invoke.js +0 -2
- package/lib/core/current-invoke.js.map +0 -1
- package/lib/core/event-body.d.ts +0 -22
- package/lib/core/event-body.d.ts.map +0 -1
- package/lib/core/event-body.js +0 -2
- package/lib/core/event-body.js.map +0 -1
- package/lib/core/headers.d.ts +0 -73
- package/lib/core/headers.d.ts.map +0 -1
- package/lib/core/headers.js +0 -3
- package/lib/core/headers.js.map +0 -1
- package/lib/core/index.d.ts +0 -12
- package/lib/core/index.d.ts.map +0 -1
- package/lib/core/index.js +0 -2
- package/lib/core/index.js.map +0 -1
- package/lib/core/is-binary.d.ts +0 -73
- package/lib/core/is-binary.d.ts.map +0 -1
- package/lib/core/is-binary.js +0 -2
- package/lib/core/is-binary.js.map +0 -1
- package/lib/core/logger.d.ts.map +0 -1
- package/lib/core/logger.js +0 -2
- package/lib/core/logger.js.map +0 -1
- package/lib/core/no-op.d.ts +0 -8
- package/lib/core/no-op.d.ts.map +0 -1
- package/lib/core/no-op.js +0 -2
- package/lib/core/no-op.js.map +0 -1
- package/lib/core/optional.d.ts +0 -22
- package/lib/core/optional.d.ts.map +0 -1
- package/lib/core/optional.js +0 -2
- package/lib/core/optional.js.map +0 -1
- package/lib/core/path.d.ts.map +0 -1
- package/lib/core/path.js +0 -2
- package/lib/core/path.js.map +0 -1
- package/lib/core/stream.d.ts +0 -21
- package/lib/core/stream.d.ts.map +0 -1
- package/lib/core/stream.js +0 -2
- package/lib/core/stream.js.map +0 -1
- package/lib/frameworks/apollo-server/apollo-server.framework.d.ts.map +0 -1
- package/lib/frameworks/apollo-server/apollo-server.framework.js +0 -2
- package/lib/frameworks/apollo-server/apollo-server.framework.js.map +0 -1
- package/lib/frameworks/apollo-server/index.d.ts.map +0 -1
- package/lib/frameworks/apollo-server/index.js +0 -2
- package/lib/frameworks/apollo-server/index.js.map +0 -1
- package/lib/frameworks/body-parser/base-body-parser.framework.d.ts +0 -69
- package/lib/frameworks/body-parser/base-body-parser.framework.d.ts.map +0 -1
- package/lib/frameworks/body-parser/base-body-parser.framework.js +0 -2
- package/lib/frameworks/body-parser/base-body-parser.framework.js.map +0 -1
- package/lib/frameworks/body-parser/index.d.ts.map +0 -1
- package/lib/frameworks/body-parser/index.js +0 -2
- package/lib/frameworks/body-parser/index.js.map +0 -1
- package/lib/frameworks/body-parser/json-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/json-body-parser.framework.d.ts.map +0 -1
- package/lib/frameworks/body-parser/json-body-parser.framework.js +0 -2
- package/lib/frameworks/body-parser/json-body-parser.framework.js.map +0 -1
- package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/raw-body-parser.framework.d.ts.map +0 -1
- package/lib/frameworks/body-parser/raw-body-parser.framework.js +0 -2
- package/lib/frameworks/body-parser/raw-body-parser.framework.js.map +0 -1
- package/lib/frameworks/body-parser/text-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/text-body-parser.framework.d.ts.map +0 -1
- package/lib/frameworks/body-parser/text-body-parser.framework.js +0 -2
- package/lib/frameworks/body-parser/text-body-parser.framework.js.map +0 -1
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts +0 -26
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.d.ts.map +0 -1
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js +0 -2
- package/lib/frameworks/body-parser/urlencoded-body-parser.framework.js.map +0 -1
- package/lib/frameworks/cors/cors.framework.d.ts.map +0 -1
- package/lib/frameworks/cors/cors.framework.js +0 -3
- package/lib/frameworks/cors/cors.framework.js.map +0 -1
- package/lib/frameworks/cors/index.d.ts.map +0 -1
- package/lib/frameworks/cors/index.js +0 -2
- package/lib/frameworks/cors/index.js.map +0 -1
- package/lib/frameworks/deepkit/http-deepkit.framework.d.ts.map +0 -1
- package/lib/frameworks/deepkit/http-deepkit.framework.js +0 -2
- package/lib/frameworks/deepkit/http-deepkit.framework.js.map +0 -1
- package/lib/frameworks/deepkit/index.d.ts.map +0 -1
- package/lib/frameworks/deepkit/index.js +0 -2
- package/lib/frameworks/deepkit/index.js.map +0 -1
- package/lib/frameworks/express/express.framework.d.ts.map +0 -1
- package/lib/frameworks/express/express.framework.js +0 -2
- package/lib/frameworks/express/express.framework.js.map +0 -1
- package/lib/frameworks/express/index.d.ts.map +0 -1
- package/lib/frameworks/express/index.js +0 -2
- package/lib/frameworks/express/index.js.map +0 -1
- package/lib/frameworks/fastify/fastify.framework.d.ts.map +0 -1
- package/lib/frameworks/fastify/fastify.framework.js +0 -2
- package/lib/frameworks/fastify/fastify.framework.js.map +0 -1
- package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts +0 -14
- package/lib/frameworks/fastify/helpers/no-op-content-parser.d.ts.map +0 -1
- package/lib/frameworks/fastify/helpers/no-op-content-parser.js +0 -2
- package/lib/frameworks/fastify/helpers/no-op-content-parser.js.map +0 -1
- package/lib/frameworks/fastify/index.d.ts.map +0 -1
- package/lib/frameworks/fastify/index.js +0 -2
- package/lib/frameworks/fastify/index.js.map +0 -1
- package/lib/frameworks/hapi/hapi.framework.d.ts.map +0 -1
- package/lib/frameworks/hapi/hapi.framework.js +0 -2
- package/lib/frameworks/hapi/hapi.framework.js.map +0 -1
- package/lib/frameworks/hapi/index.d.ts.map +0 -1
- package/lib/frameworks/hapi/index.js +0 -2
- package/lib/frameworks/hapi/index.js.map +0 -1
- package/lib/frameworks/koa/index.d.ts.map +0 -1
- package/lib/frameworks/koa/index.js +0 -2
- package/lib/frameworks/koa/index.js.map +0 -1
- package/lib/frameworks/koa/koa.framework.d.ts.map +0 -1
- package/lib/frameworks/koa/koa.framework.js +0 -2
- package/lib/frameworks/koa/koa.framework.js.map +0 -1
- package/lib/frameworks/lazy/index.d.ts.map +0 -1
- package/lib/frameworks/lazy/index.js +0 -2
- package/lib/frameworks/lazy/index.js.map +0 -1
- package/lib/frameworks/lazy/lazy.framework.d.ts.map +0 -1
- package/lib/frameworks/lazy/lazy.framework.js +0 -2
- package/lib/frameworks/lazy/lazy.framework.js.map +0 -1
- package/lib/frameworks/trpc/index.d.ts.map +0 -1
- package/lib/frameworks/trpc/index.js +0 -2
- package/lib/frameworks/trpc/index.js.map +0 -1
- package/lib/frameworks/trpc/trpc.framework.d.ts.map +0 -1
- package/lib/frameworks/trpc/trpc.framework.js +0 -2
- package/lib/frameworks/trpc/trpc.framework.js.map +0 -1
- package/lib/handlers/aws/aws-stream.handler.d.ts.map +0 -1
- package/lib/handlers/aws/aws-stream.handler.js +0 -2
- package/lib/handlers/aws/aws-stream.handler.js.map +0 -1
- package/lib/handlers/aws/index.d.ts.map +0 -1
- package/lib/handlers/aws/index.js +0 -2
- package/lib/handlers/aws/index.js.map +0 -1
- package/lib/handlers/azure/azure.handler.d.ts.map +0 -1
- package/lib/handlers/azure/azure.handler.js +0 -2
- package/lib/handlers/azure/azure.handler.js.map +0 -1
- package/lib/handlers/azure/index.d.ts.map +0 -1
- package/lib/handlers/azure/index.js +0 -2
- package/lib/handlers/azure/index.js.map +0 -1
- package/lib/handlers/base/index.d.ts +0 -2
- package/lib/handlers/base/index.d.ts.map +0 -1
- package/lib/handlers/base/index.js +0 -2
- package/lib/handlers/base/index.js.map +0 -1
- package/lib/handlers/base/raw-request.d.ts.map +0 -1
- package/lib/handlers/base/raw-request.js +0 -2
- package/lib/handlers/base/raw-request.js.map +0 -1
- package/lib/handlers/default/default.handler.d.ts.map +0 -1
- package/lib/handlers/default/default.handler.js +0 -2
- package/lib/handlers/default/default.handler.js.map +0 -1
- package/lib/handlers/default/index.d.ts.map +0 -1
- package/lib/handlers/default/index.js +0 -2
- package/lib/handlers/default/index.js.map +0 -1
- package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts +0 -17
- package/lib/handlers/digital-ocean/digital-ocean.handler.d.ts.map +0 -1
- package/lib/handlers/digital-ocean/digital-ocean.handler.js +0 -2
- package/lib/handlers/digital-ocean/digital-ocean.handler.js.map +0 -1
- package/lib/handlers/digital-ocean/index.d.ts.map +0 -1
- package/lib/handlers/digital-ocean/index.js +0 -2
- package/lib/handlers/digital-ocean/index.js.map +0 -1
- package/lib/handlers/firebase/http-firebase-v2.handler.d.ts +0 -27
- package/lib/handlers/firebase/http-firebase-v2.handler.d.ts.map +0 -1
- package/lib/handlers/firebase/http-firebase-v2.handler.js +0 -2
- package/lib/handlers/firebase/http-firebase-v2.handler.js.map +0 -1
- package/lib/handlers/firebase/http-firebase.handler.d.ts +0 -19
- package/lib/handlers/firebase/http-firebase.handler.d.ts.map +0 -1
- package/lib/handlers/firebase/http-firebase.handler.js +0 -2
- package/lib/handlers/firebase/http-firebase.handler.js.map +0 -1
- package/lib/handlers/firebase/index.d.ts.map +0 -1
- package/lib/handlers/firebase/index.js +0 -2
- package/lib/handlers/firebase/index.js.map +0 -1
- package/lib/handlers/gcp/gcp.handler.d.ts.map +0 -1
- package/lib/handlers/gcp/gcp.handler.js +0 -2
- package/lib/handlers/gcp/gcp.handler.js.map +0 -1
- package/lib/handlers/gcp/index.d.ts.map +0 -1
- package/lib/handlers/gcp/index.js +0 -2
- package/lib/handlers/gcp/index.js.map +0 -1
- package/lib/handlers/huawei/http-huawei.handler.d.ts.map +0 -1
- package/lib/handlers/huawei/http-huawei.handler.js +0 -2
- package/lib/handlers/huawei/http-huawei.handler.js.map +0 -1
- package/lib/handlers/huawei/index.d.ts.map +0 -1
- package/lib/handlers/huawei/index.js +0 -2
- package/lib/handlers/huawei/index.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.doc.js +0 -2
- package/lib/index.doc.js.map +0 -1
- package/lib/index.js +0 -2
- package/lib/index.js.map +0 -1
- package/lib/network/index.d.ts +0 -5
- package/lib/network/index.d.ts.map +0 -1
- package/lib/network/index.js +0 -2
- package/lib/network/index.js.map +0 -1
- package/lib/network/request.d.ts.map +0 -1
- package/lib/network/request.js +0 -2
- package/lib/network/request.js.map +0 -1
- package/lib/network/response-stream.d.ts +0 -41
- package/lib/network/response-stream.d.ts.map +0 -1
- package/lib/network/response-stream.js +0 -7
- package/lib/network/response-stream.js.map +0 -1
- package/lib/network/response.d.ts +0 -48
- package/lib/network/response.d.ts.map +0 -1
- package/lib/network/response.js +0 -4
- package/lib/network/response.js.map +0 -1
- package/lib/network/utils.d.ts +0 -9
- package/lib/network/utils.d.ts.map +0 -1
- package/lib/network/utils.js +0 -2
- package/lib/network/utils.js.map +0 -1
- package/lib/resolvers/aws-context/aws-context.resolver.d.ts.map +0 -1
- package/lib/resolvers/aws-context/aws-context.resolver.js +0 -2
- package/lib/resolvers/aws-context/aws-context.resolver.js.map +0 -1
- package/lib/resolvers/aws-context/index.d.ts.map +0 -1
- package/lib/resolvers/aws-context/index.js +0 -2
- package/lib/resolvers/aws-context/index.js.map +0 -1
- package/lib/resolvers/callback/callback.resolver.d.ts.map +0 -1
- package/lib/resolvers/callback/callback.resolver.js +0 -2
- package/lib/resolvers/callback/callback.resolver.js.map +0 -1
- package/lib/resolvers/callback/index.d.ts.map +0 -1
- package/lib/resolvers/callback/index.js +0 -2
- package/lib/resolvers/callback/index.js.map +0 -1
- package/lib/resolvers/dummy/dummy.resolver.d.ts +0 -14
- package/lib/resolvers/dummy/dummy.resolver.d.ts.map +0 -1
- package/lib/resolvers/dummy/dummy.resolver.js +0 -2
- package/lib/resolvers/dummy/dummy.resolver.js.map +0 -1
- package/lib/resolvers/dummy/index.d.ts.map +0 -1
- package/lib/resolvers/dummy/index.js +0 -2
- package/lib/resolvers/dummy/index.js.map +0 -1
- package/lib/resolvers/promise/index.d.ts.map +0 -1
- package/lib/resolvers/promise/index.js +0 -2
- package/lib/resolvers/promise/index.js.map +0 -1
- package/lib/resolvers/promise/promise.resolver.d.ts +0 -14
- package/lib/resolvers/promise/promise.resolver.d.ts.map +0 -1
- package/lib/resolvers/promise/promise.resolver.js +0 -2
- package/lib/resolvers/promise/promise.resolver.js.map +0 -1
- package/lib/serverless-adapter.d.ts +0 -119
- package/lib/serverless-adapter.d.ts.map +0 -1
- package/lib/serverless-adapter.js +0 -2
- package/lib/serverless-adapter.js.map +0 -1
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import type { ALBEvent, ALBResult, Context } from 'aws-lambda';
|
|
2
|
-
import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
|
|
3
|
-
import { StripBasePathFn } from '../../core';
|
|
4
|
-
/**
|
|
5
|
-
* The options to customize the {@link AlbAdapter}
|
|
6
|
-
*
|
|
7
|
-
* @breadcrumb Adapters / AWS / AlbAdapter
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface AlbAdapterOptions {
|
|
11
|
-
/**
|
|
12
|
-
* Strip base path for custom domains
|
|
13
|
-
*
|
|
14
|
-
* @defaultValue ''
|
|
15
|
-
*/
|
|
16
|
-
stripBasePath?: string;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* The adapter to handle requests from AWS ALB
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```typescript
|
|
23
|
-
* const stripBasePath = '/any/custom/base/path'; // default ''
|
|
24
|
-
* const adapter = new AlbAdapter({ stripBasePath });
|
|
25
|
-
* ```
|
|
26
|
-
*
|
|
27
|
-
* {@link https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html | Event Reference}
|
|
28
|
-
*
|
|
29
|
-
* @breadcrumb Adapters / AWS / AlbAdapter
|
|
30
|
-
* @public
|
|
31
|
-
*/
|
|
32
|
-
export declare class AlbAdapter implements AdapterContract<ALBEvent, Context, ALBResult> {
|
|
33
|
-
protected readonly options?: AlbAdapterOptions | undefined;
|
|
34
|
-
/**
|
|
35
|
-
* Default constructor
|
|
36
|
-
*
|
|
37
|
-
* @param options - The options to customize the {@link AlbAdapter}
|
|
38
|
-
*/
|
|
39
|
-
constructor(options?: AlbAdapterOptions | undefined);
|
|
40
|
-
/**
|
|
41
|
-
* Strip base path function
|
|
42
|
-
*/
|
|
43
|
-
protected stripPathFn: StripBasePathFn;
|
|
44
|
-
/**
|
|
45
|
-
* {@inheritDoc}
|
|
46
|
-
*/
|
|
47
|
-
getAdapterName(): string;
|
|
48
|
-
/**
|
|
49
|
-
* {@inheritDoc}
|
|
50
|
-
*/
|
|
51
|
-
canHandle(event: unknown): event is ALBEvent;
|
|
52
|
-
/**
|
|
53
|
-
* {@inheritDoc}
|
|
54
|
-
*/
|
|
55
|
-
getRequest(event: ALBEvent): AdapterRequest;
|
|
56
|
-
/**
|
|
57
|
-
* {@inheritDoc}
|
|
58
|
-
*/
|
|
59
|
-
getResponse({ event, headers: responseHeaders, body, isBase64Encoded, statusCode, }: GetResponseAdapterProps<ALBEvent>): ALBResult;
|
|
60
|
-
/**
|
|
61
|
-
* {@inheritDoc}
|
|
62
|
-
*/
|
|
63
|
-
onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<ALBEvent, ALBResult>): void;
|
|
64
|
-
/**
|
|
65
|
-
* Get path from event with query strings
|
|
66
|
-
*
|
|
67
|
-
* @param event - The event sent by serverless
|
|
68
|
-
*/
|
|
69
|
-
protected getPathFromEvent(event: ALBEvent): string;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=alb.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alb.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/alb.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAMhB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,UACX,YAAW,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC;IAS5C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IALvC;;;;OAIG;gBAC4B,OAAO,CAAC,+BAAmB;IAQ1D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IAMvC;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ;IAMnD;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,cAAc;IAkClD;;OAEG;IACI,WAAW,CAAC,EACjB,KAAK,EACL,OAAO,EAAE,eAAe,EACxB,IAAI,EACJ,eAAe,EACf,UAAU,GACX,EAAE,uBAAuB,CAAC,QAAQ,CAAC,GAAG,SAAS;IAkBhD;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI;IAkB3C;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM;CAWpD"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),alb_adapter_exports={};__export(alb_adapter_exports,{AlbAdapter:()=>AlbAdapter});module.exports=__toCommonJS(alb_adapter_exports);var import_core=require("../../core");class AlbAdapter{constructor(options){var _a;this.options=options,this.stripPathFn=(0,import_core.buildStripBasePath)((_a=this.options)==null?void 0:_a.stripBasePath)}getAdapterName(){return AlbAdapter.name}canHandle(event){const albEvent=event;return!!(albEvent!=null&&albEvent.requestContext&&albEvent.requestContext.elb)}getRequest(event){const method=event.httpMethod,path=this.getPathFromEvent(event),headers=event.multiValueHeaders?(0,import_core.getFlattenedHeadersMap)(event.multiValueHeaders,",",!0):event.headers;let body;if(event.body){const[bufferBody,contentLength]=(0,import_core.getEventBodyAsBuffer)(event.body,event.isBase64Encoded);body=bufferBody,headers["content-length"]=String(contentLength)}let remoteAddress="";return headers["x-forwarded-for"]&&(remoteAddress=headers["x-forwarded-for"]),{method,headers,body,remoteAddress,path}}getResponse({event,headers:responseHeaders,body,isBase64Encoded,statusCode}){const multiValueHeaders=event.headers?void 0:(0,import_core.getMultiValueHeadersMap)(responseHeaders),headers=event.headers?(0,import_core.getFlattenedHeadersMap)(responseHeaders):void 0;return{statusCode,body,headers,multiValueHeaders,isBase64Encoded}}onErrorWhileForwarding({error,delegatedResolver,respondWithErrors,event,log}){const body=respondWithErrors&&error.stack||"",errorResponse=this.getResponse({event,statusCode:500,body,headers:{},isBase64Encoded:!1,log});delegatedResolver.succeed(errorResponse)}getPathFromEvent(event){const path=this.stripPathFn(event.path),queryParams=event.headers?event.queryStringParameters:event.multiValueQueryStringParameters;return(0,import_core.getPathWithQueryStringParams)(path,queryParams||{})}}
|
|
2
|
-
//# sourceMappingURL=alb.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"alb.adapter.js","sources":["../../../src/adapters/aws/alb.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { ALBEvent, ALBResult, Context } from 'aws-lambda';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n StripBasePathFn,\n buildStripBasePath,\n getEventBodyAsBuffer,\n getFlattenedHeadersMap,\n getMultiValueHeadersMap,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link AlbAdapter}\n *\n * @breadcrumb Adapters / AWS / AlbAdapter\n * @public\n */\nexport interface AlbAdapterOptions {\n /**\n * Strip base path for custom domains\n *\n * @defaultValue ''\n */\n stripBasePath?: string;\n}\n\n/**\n * The adapter to handle requests from AWS ALB\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new AlbAdapter({ stripBasePath });\n * ```\n *\n * {@link https://docs.aws.amazon.com/lambda/latest/dg/services-alb.html | Event Reference}\n *\n * @breadcrumb Adapters / AWS / AlbAdapter\n * @public\n */\nexport class AlbAdapter\n implements AdapterContract<ALBEvent, Context, ALBResult>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link AlbAdapter}\n */\n constructor(protected readonly options?: AlbAdapterOptions) {\n this.stripPathFn = buildStripBasePath(this.options?.stripBasePath);\n }\n\n //#endregion\n\n //#region Protected Properties\n\n /**\n * Strip base path function\n */\n protected stripPathFn: StripBasePathFn;\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return AlbAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is ALBEvent {\n const albEvent = event as Partial<ALBEvent>;\n\n return !!(albEvent?.requestContext && albEvent.requestContext.elb);\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: ALBEvent): AdapterRequest {\n const method = event.httpMethod;\n const path = this.getPathFromEvent(event);\n\n const headers = event.multiValueHeaders\n ? getFlattenedHeadersMap(event.multiValueHeaders, ',', true)\n : event.headers!;\n\n let body: Buffer | undefined;\n\n if (event.body) {\n const [bufferBody, contentLength] = getEventBodyAsBuffer(\n event.body,\n event.isBase64Encoded,\n );\n\n body = bufferBody;\n headers['content-length'] = String(contentLength);\n }\n\n let remoteAddress = '';\n\n // ref: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/x-forwarded-headers.html#x-forwarded-for\n if (headers['x-forwarded-for']) remoteAddress = headers['x-forwarded-for'];\n\n return {\n method,\n headers,\n body,\n remoteAddress,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n event,\n headers: responseHeaders,\n body,\n isBase64Encoded,\n statusCode,\n }: GetResponseAdapterProps<ALBEvent>): ALBResult {\n const multiValueHeaders = !event.headers\n ? getMultiValueHeadersMap(responseHeaders)\n : undefined;\n\n const headers = event.headers\n ? getFlattenedHeadersMap(responseHeaders)\n : undefined;\n\n return {\n statusCode,\n body,\n headers,\n multiValueHeaders,\n isBase64Encoded,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<ALBEvent, ALBResult>): void {\n const body = respondWithErrors ? error.stack || '' : '';\n const errorResponse = this.getResponse({\n event,\n statusCode: 500,\n body,\n headers: {},\n isBase64Encoded: false,\n log,\n });\n\n delegatedResolver.succeed(errorResponse);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get path from event with query strings\n *\n * @param event - The event sent by serverless\n */\n protected getPathFromEvent(event: ALBEvent): string {\n const path = this.stripPathFn(event.path);\n\n const queryParams = event.headers\n ? event.queryStringParameters\n : event.multiValueQueryStringParameters;\n\n return getPathWithQueryStringParams(path, queryParams || {});\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,oBAAA,CAAA,EAAA,SAAA,oBAAA,CAAA,WAAA,IAAA,UAAA,CAAA,EAAA,OAAA,QAAA,aAAA,mBAAA,EASA,IAOO,YAAA,QAAA,YAAA,EAiCA,MAAM,UAEb,CAQE,YAA+B,QAA6B,QAA7B,KAAA,QAAA,QAC7B,KAAK,eAAc,YAAA,qBAAmB,QAAK,UAAL,eAAc,aAAa,CACnE,CAkBO,gBAAyB,CAC9B,OAAO,WAAW,IACpB,CAKO,UAAU,MAAmC,CAClD,MAAM,SAAW,MAEjB,MAAO,CAAC,EAAE,yBAAU,gBAAkB,SAAS,eAAe,IAChE,CAKO,WAAW,MAAiC,CACjD,MAAM,OAAS,MAAM,WACf,KAAO,KAAK,iBAAiB,KAAK,EAElC,QAAU,MAAM,qBAClB,YAAA,wBAAuB,MAAM,kBAAmB,IAAK,EAAI,EACzD,MAAM,QAEN,IAAA,KAEJ,GAAI,MAAM,KAAM,CACR,KAAA,CAAC,WAAY,aAAa,KAAI,YAAA,sBAClC,MAAM,KACN,MAAM,eAAA,EAGD,KAAA,WACC,QAAA,gBAAgB,EAAI,OAAO,aAAa,CAClD,CAEA,IAAI,cAAgB,GAGpB,OAAI,QAAQ,iBAAiB,IAAG,cAAgB,QAAQ,iBAAiB,GAElE,CACL,OACA,QACA,KACA,cACA,IAAA,CAEJ,CAKO,YAAY,CACjB,MACA,QAAS,gBACT,KACA,gBACA,UAAA,EAC+C,CAC/C,MAAM,kBAAqB,MAAM,QAE7B,UADA,YAAA,yBAAwB,eAAe,EAGrC,QAAU,MAAM,WAClB,YAAA,wBAAuB,eAAe,EACtC,OAEG,MAAA,CACL,WACA,KACA,QACA,kBACA,eAAA,CAEJ,CAKO,uBAAuB,CAC5B,MACA,kBACA,kBACA,MACA,GAAA,EAC0C,CAC1C,MAAM,KAAO,mBAAoB,MAAM,OAAS,GAC1C,cAAgB,KAAK,YAAY,CACrC,MACA,WAAY,IACZ,KACA,QAAS,CAAC,EACV,gBAAiB,GACjB,GAAA,CACD,EAED,kBAAkB,QAAQ,aAAa,CACzC,CAWU,iBAAiB,MAAyB,CAClD,MAAM,KAAO,KAAK,YAAY,MAAM,IAAI,EAElC,YAAc,MAAM,QACtB,MAAM,sBACN,MAAM,gCAEV,SAAO,YAA6B,8BAAA,KAAM,aAAe,CAAE,CAAA,CAC7D,CAGF"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import type { APIGatewayProxyResult, Context } from 'aws-lambda';
|
|
2
|
-
import type { APIGatewayProxyEvent } from 'aws-lambda/trigger/api-gateway-proxy';
|
|
3
|
-
import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
|
|
4
|
-
import { StripBasePathFn } from '../../core';
|
|
5
|
-
/**
|
|
6
|
-
* The options to customize the {@link ApiGatewayV1Adapter}
|
|
7
|
-
*
|
|
8
|
-
* @breadcrumb Adapters / AWS / ApiGatewayV1Adapter
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
export interface ApiGatewayV1Options {
|
|
12
|
-
/**
|
|
13
|
-
* Strip base path for custom domains
|
|
14
|
-
*
|
|
15
|
-
* @defaultValue ''
|
|
16
|
-
*/
|
|
17
|
-
stripBasePath?: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The adapter to handle requests from AWS Api Gateway V1
|
|
21
|
-
*
|
|
22
|
-
* As per {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html | know issues}, we throw an exception when you send the `transfer-encoding=chunked`, currently, API Gateway doesn't support chunked transfer.
|
|
23
|
-
*
|
|
24
|
-
* @remarks This adapter is not fully compatible with \@vendia/serverless-express, on \@vendia they filter `transfer-encoding=chunked` but we throw an exception.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const stripBasePath = '/any/custom/base/path'; // default ''
|
|
29
|
-
* const adapter = new ApiGatewayV1Adapter({ stripBasePath });
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}
|
|
33
|
-
*
|
|
34
|
-
* @breadcrumb Adapters / AWS / ApiGatewayV1Adapter
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
export declare class ApiGatewayV1Adapter implements AdapterContract<APIGatewayProxyEvent, Context, APIGatewayProxyResult> {
|
|
38
|
-
protected readonly options?: ApiGatewayV1Options | undefined;
|
|
39
|
-
/**
|
|
40
|
-
* Default constructor
|
|
41
|
-
*
|
|
42
|
-
* @param options - The options to customize the {@link ApiGatewayV1Adapter}
|
|
43
|
-
*/
|
|
44
|
-
constructor(options?: ApiGatewayV1Options | undefined);
|
|
45
|
-
/**
|
|
46
|
-
* Strip base path function
|
|
47
|
-
*/
|
|
48
|
-
protected stripPathFn: StripBasePathFn;
|
|
49
|
-
/**
|
|
50
|
-
* {@inheritDoc}
|
|
51
|
-
*/
|
|
52
|
-
getAdapterName(): string;
|
|
53
|
-
/**
|
|
54
|
-
* {@inheritDoc}
|
|
55
|
-
*/
|
|
56
|
-
canHandle(event: unknown): event is APIGatewayProxyEvent;
|
|
57
|
-
/**
|
|
58
|
-
* {@inheritDoc}
|
|
59
|
-
*/
|
|
60
|
-
getRequest(event: APIGatewayProxyEvent): AdapterRequest;
|
|
61
|
-
/**
|
|
62
|
-
* {@inheritDoc}
|
|
63
|
-
*/
|
|
64
|
-
getResponse({ headers: responseHeaders, body, isBase64Encoded, statusCode, response, }: GetResponseAdapterProps<APIGatewayProxyEvent>): APIGatewayProxyResult;
|
|
65
|
-
/**
|
|
66
|
-
* {@inheritDoc}
|
|
67
|
-
*/
|
|
68
|
-
onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<APIGatewayProxyEvent, APIGatewayProxyResult>): void;
|
|
69
|
-
/**
|
|
70
|
-
* Get path from event with query strings
|
|
71
|
-
*
|
|
72
|
-
* @param event - The event sent by serverless
|
|
73
|
-
*/
|
|
74
|
-
protected getPathFromEvent(event: APIGatewayProxyEvent): string;
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=api-gateway-v1.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-gateway-v1.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/api-gateway-v1.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAKhB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mBACX,YACE,eAAe,CAAC,oBAAoB,EAAE,OAAO,EAAE,qBAAqB,CAAC;IAS3D,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IALvC;;;;OAIG;gBAC4B,OAAO,CAAC,iCAAqB;IAQ5D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IAMvC;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB;IAiB/D;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc;IA4C9D;;OAEG;IACI,WAAW,CAAC,EACjB,OAAO,EAAE,eAAe,EACxB,IAAI,EACJ,eAAe,EACf,UAAU,EACV,QAAQ,GACT,EAAE,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,qBAAqB;IA4BxE;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,GAAG,IAAI;IAkBnE;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM;CAuBhE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),api_gateway_v1_adapter_exports={};__export(api_gateway_v1_adapter_exports,{ApiGatewayV1Adapter:()=>ApiGatewayV1Adapter});module.exports=__toCommonJS(api_gateway_v1_adapter_exports);var import_core=require("../../core");class ApiGatewayV1Adapter{constructor(options){var _a;this.options=options,this.stripPathFn=(0,import_core.buildStripBasePath)((_a=this.options)==null?void 0:_a.stripBasePath)}getAdapterName(){return ApiGatewayV1Adapter.name}canHandle(event){const partialEventV1=event;return!!(partialEventV1!=null&&partialEventV1.requestContext&&partialEventV1.version!=="2.0"&&partialEventV1.headers&&partialEventV1.multiValueHeaders&&(partialEventV1.queryStringParameters===null&&partialEventV1.multiValueQueryStringParameters===null||partialEventV1.queryStringParameters&&partialEventV1.multiValueQueryStringParameters))}getRequest(event){const method=event.httpMethod,headers={...event.headers};for(const multiValueHeaderKey of Object.keys(event.multiValueHeaders||{})){const headerValue=event.multiValueHeaders[multiValueHeaderKey];!headerValue||(headerValue==null?void 0:headerValue.length)<=1||(headers[multiValueHeaderKey]=headerValue.join(","))}const path=this.getPathFromEvent(event);let body;if(event.body){const[bufferBody,contentLength]=(0,import_core.getEventBodyAsBuffer)(event.body,event.isBase64Encoded);body=bufferBody,headers["content-length"]=contentLength+""}const remoteAddress=event.requestContext.identity.sourceIp;return{method,headers,body,remoteAddress,path}}getResponse({headers:responseHeaders,body,isBase64Encoded,statusCode,response}){const multiValueHeaders=(0,import_core.getMultiValueHeadersMap)(responseHeaders),transferEncodingHeader=multiValueHeaders["transfer-encoding"];if(transferEncodingHeader==null?void 0:transferEncodingHeader.some(value=>value.includes("chunked")))throw new Error("chunked encoding in headers is not supported by API Gateway V1");if(response!=null&&response.chunkedEncoding)throw new Error("chunked encoding in response is not supported by API Gateway V1");return{statusCode,body,multiValueHeaders,isBase64Encoded}}onErrorWhileForwarding({error,delegatedResolver,respondWithErrors,event,log}){const body=respondWithErrors?error.stack:"",errorResponse=this.getResponse({event,statusCode:500,body:body||"",headers:{},isBase64Encoded:!1,log});delegatedResolver.succeed(errorResponse)}getPathFromEvent(event){const path=this.stripPathFn(event.path),queryParams=event.multiValueQueryStringParameters||{};if(event.queryStringParameters)for(const queryStringKey of Object.keys(event.queryStringParameters)){const queryStringValue=event.queryStringParameters[queryStringKey];queryStringValue!==void 0&&(Array.isArray(queryParams[queryStringKey])||(queryParams[queryStringKey]=[]),!queryParams[queryStringKey].includes(queryStringValue)&&queryParams[queryStringKey].push(queryStringValue))}return(0,import_core.getPathWithQueryStringParams)(path,queryParams)}}
|
|
2
|
-
//# sourceMappingURL=api-gateway-v1.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-gateway-v1.adapter.js","sources":["../../../src/adapters/aws/api-gateway-v1.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { APIGatewayProxyResult, Context } from 'aws-lambda';\nimport type { APIGatewayProxyEvent } from 'aws-lambda/trigger/api-gateway-proxy';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n StripBasePathFn,\n buildStripBasePath,\n getEventBodyAsBuffer,\n getMultiValueHeadersMap,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link ApiGatewayV1Adapter}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter\n * @public\n */\nexport interface ApiGatewayV1Options {\n /**\n * Strip base path for custom domains\n *\n * @defaultValue ''\n */\n stripBasePath?: string;\n}\n\n/**\n * The adapter to handle requests from AWS Api Gateway V1\n *\n * As per {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html | know issues}, we throw an exception when you send the `transfer-encoding=chunked`, currently, API Gateway doesn't support chunked transfer.\n *\n * @remarks This adapter is not fully compatible with \\@vendia/serverless-express, on \\@vendia they filter `transfer-encoding=chunked` but we throw an exception.\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new ApiGatewayV1Adapter({ stripBasePath });\n * ```\n *\n * {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV1Adapter\n * @public\n */\nexport class ApiGatewayV1Adapter\n implements\n AdapterContract<APIGatewayProxyEvent, Context, APIGatewayProxyResult>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link ApiGatewayV1Adapter}\n */\n constructor(protected readonly options?: ApiGatewayV1Options) {\n this.stripPathFn = buildStripBasePath(this.options?.stripBasePath);\n }\n\n //#endregion\n\n //#region Protected Properties\n\n /**\n * Strip base path function\n */\n protected stripPathFn: StripBasePathFn;\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return ApiGatewayV1Adapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is APIGatewayProxyEvent {\n const partialEventV1 = event as Partial<APIGatewayProxyEvent> & {\n version?: '2.0';\n };\n\n return !!(\n partialEventV1?.requestContext &&\n partialEventV1.version !== '2.0' &&\n partialEventV1.headers &&\n partialEventV1.multiValueHeaders &&\n ((partialEventV1.queryStringParameters === null &&\n partialEventV1.multiValueQueryStringParameters === null) ||\n (partialEventV1.queryStringParameters &&\n partialEventV1.multiValueQueryStringParameters))\n );\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: APIGatewayProxyEvent): AdapterRequest {\n const method = event.httpMethod;\n const headers = { ...event.headers };\n\n for (const multiValueHeaderKey of Object.keys(\n event.multiValueHeaders || {},\n )) {\n const headerValue = event.multiValueHeaders[multiValueHeaderKey];\n\n // event.headers by default only stick with first value if they see multiple headers\n // the other values will only appear on multiValueHeaderKey, in this case\n // we look for headers with more than 1 length which is the wrong values on event.headers\n // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html\n if (!headerValue || headerValue?.length <= 1) continue;\n\n headers[multiValueHeaderKey] = headerValue.join(',');\n }\n\n const path = this.getPathFromEvent(event);\n\n let body: Buffer | undefined;\n\n if (event.body) {\n const [bufferBody, contentLength] = getEventBodyAsBuffer(\n event.body,\n event.isBase64Encoded,\n );\n\n body = bufferBody;\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n headers['content-length'] = contentLength + '';\n }\n\n const remoteAddress = event.requestContext.identity.sourceIp;\n\n return {\n method,\n headers,\n body,\n remoteAddress,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n headers: responseHeaders,\n body,\n isBase64Encoded,\n statusCode,\n response,\n }: GetResponseAdapterProps<APIGatewayProxyEvent>): APIGatewayProxyResult {\n const multiValueHeaders = getMultiValueHeadersMap(responseHeaders);\n\n const transferEncodingHeader = multiValueHeaders['transfer-encoding'];\n const hasTransferEncodingChunked = transferEncodingHeader?.some(value =>\n value.includes('chunked'),\n );\n\n if (hasTransferEncodingChunked) {\n throw new Error(\n 'chunked encoding in headers is not supported by API Gateway V1',\n );\n }\n\n if (response?.chunkedEncoding) {\n throw new Error(\n 'chunked encoding in response is not supported by API Gateway V1',\n );\n }\n\n return {\n statusCode,\n body,\n multiValueHeaders,\n isBase64Encoded,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<APIGatewayProxyEvent, APIGatewayProxyResult>): void {\n const body = respondWithErrors ? error.stack : '';\n const errorResponse = this.getResponse({\n event,\n statusCode: 500,\n body: body || '',\n headers: {},\n isBase64Encoded: false,\n log,\n });\n\n delegatedResolver.succeed(errorResponse);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get path from event with query strings\n *\n * @param event - The event sent by serverless\n */\n protected getPathFromEvent(event: APIGatewayProxyEvent): string {\n const path = this.stripPathFn(event.path);\n const queryParams = event.multiValueQueryStringParameters || {};\n\n if (event.queryStringParameters) {\n for (const queryStringKey of Object.keys(event.queryStringParameters)) {\n const queryStringValue = event.queryStringParameters[queryStringKey];\n\n if (queryStringValue === undefined) continue;\n\n if (!Array.isArray(queryParams[queryStringKey]))\n queryParams[queryStringKey] = [];\n\n if (queryParams[queryStringKey]!.includes(queryStringValue)) continue;\n\n queryParams[queryStringKey]!.push(queryStringValue);\n }\n }\n\n return getPathWithQueryStringParams(path, queryParams);\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,+BAAA,CAAA,EAAA,SAAA,+BAAA,CAAA,oBAAA,IAAA,mBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,8BAAA,EAUA,IAMO,YAAA,QAAA,YAAA,EAqCA,MAAM,mBAGb,CAQE,YAA+B,QAA+B,QAA/B,KAAA,QAAA,QAC7B,KAAK,eAAc,YAAA,qBAAmB,QAAK,UAAL,eAAc,aAAa,CACnE,CAkBO,gBAAyB,CAC9B,OAAO,oBAAoB,IAC7B,CAKO,UAAU,MAA+C,CAC9D,MAAM,eAAiB,MAIvB,MAAO,CAAC,EACN,qCAAgB,gBAChB,eAAe,UAAY,OAC3B,eAAe,SACf,eAAe,oBACb,eAAe,wBAA0B,MACzC,eAAe,kCAAoC,MAClD,eAAe,uBACd,eAAe,iCAEvB,CAKO,WAAW,MAA6C,CAC7D,MAAM,OAAS,MAAM,WACf,QAAU,CAAE,GAAG,MAAM,OAAQ,EAEnC,UAAW,uBAAuB,OAAO,KACvC,MAAM,mBAAqB,CAAC,CAAA,EAC3B,CACK,MAAA,YAAc,MAAM,kBAAkB,mBAAmB,EAM3D,CAAC,cAAe,qCAAa,SAAU,IAE3C,QAAQ,mBAAmB,EAAI,YAAY,KAAK,GAAG,EACrD,CAEM,MAAA,KAAO,KAAK,iBAAiB,KAAK,EAEpC,IAAA,KAEJ,GAAI,MAAM,KAAM,CACR,KAAA,CAAC,WAAY,aAAa,KAAI,YAAA,sBAClC,MAAM,KACN,MAAM,eAAA,EAGD,KAAA,WAEC,QAAA,gBAAgB,EAAI,cAAgB,EAC9C,CAEM,MAAA,cAAgB,MAAM,eAAe,SAAS,SAE7C,MAAA,CACL,OACA,QACA,KACA,cACA,IAAA,CAEJ,CAKO,YAAY,CACjB,QAAS,gBACT,KACA,gBACA,WACA,QAAA,EACuE,CACjE,MAAA,qBAAoB,qCAAwB,eAAe,EAE3D,uBAAyB,kBAAkB,mBAAmB,EAKpE,GAJmC,2DAAwB,KAAK,OAC9D,MAAM,SAAS,SAAS,GAIxB,MAAM,IAAI,MACR,gEAAA,EAIJ,GAAI,yBAAU,gBACZ,MAAM,IAAI,MACR,iEAAA,EAIG,MAAA,CACL,WACA,KACA,kBACA,eAAA,CAEJ,CAKO,uBAAuB,CAC5B,MACA,kBACA,kBACA,MACA,GAAA,EACkE,CAC5D,MAAA,KAAO,kBAAoB,MAAM,MAAQ,GACzC,cAAgB,KAAK,YAAY,CACrC,MACA,WAAY,IACZ,KAAM,MAAQ,GACd,QAAS,CAAC,EACV,gBAAiB,GACjB,GAAA,CACD,EAED,kBAAkB,QAAQ,aAAa,CACzC,CAWU,iBAAiB,MAAqC,CAC9D,MAAM,KAAO,KAAK,YAAY,MAAM,IAAI,EAClC,YAAc,MAAM,iCAAmC,GAE7D,GAAI,MAAM,sBACR,UAAW,kBAAkB,OAAO,KAAK,MAAM,qBAAqB,EAAG,CAC/D,MAAA,iBAAmB,MAAM,sBAAsB,cAAc,EAE/D,mBAAqB,SAEpB,MAAM,QAAQ,YAAY,cAAc,CAAC,IAChC,YAAA,cAAc,EAAI,IAE5B,aAAY,cAAc,EAAG,SAAS,gBAAgB,GAE9C,YAAA,cAAc,EAAG,KAAK,gBAAgB,EACpD,CAGK,SAAA,YAAA,8BAA6B,KAAM,WAAW,CACvD,CAGF"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import type { APIGatewayProxyEventV2, Context } from 'aws-lambda';
|
|
2
|
-
import type { APIGatewayProxyStructuredResultV2 } from 'aws-lambda/trigger/api-gateway-proxy';
|
|
3
|
-
import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../contracts';
|
|
4
|
-
import { StripBasePathFn } from '../../core';
|
|
5
|
-
/**
|
|
6
|
-
* The options to customize the {@link ApiGatewayV2Adapter}
|
|
7
|
-
*
|
|
8
|
-
* @breadcrumb Adapters / AWS / ApiGatewayV2Adapter
|
|
9
|
-
* @public
|
|
10
|
-
*/
|
|
11
|
-
export interface ApiGatewayV2Options {
|
|
12
|
-
/**
|
|
13
|
-
* Strip base path for custom domains
|
|
14
|
-
*
|
|
15
|
-
* @defaultValue ''
|
|
16
|
-
*/
|
|
17
|
-
stripBasePath?: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* The adapter to handle requests from AWS Api Gateway V2
|
|
21
|
-
*
|
|
22
|
-
* As per {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html | know issues}, we throw an exception when you send the `transfer-encoding=chunked`.
|
|
23
|
-
* But, if you use this adapter to accept requests from Function URL, you can accept the `transfer-encoding=chunked` changing the method of invocation from `BUFFERED` to `RESPONSE_STREAM`.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* const stripBasePath = '/any/custom/base/path'; // default ''
|
|
28
|
-
* const adapter = new ApiGatewayV2Adapter({ stripBasePath });
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}
|
|
32
|
-
*
|
|
33
|
-
* @breadcrumb Adapters / AWS / ApiGatewayV2Adapter
|
|
34
|
-
* @public
|
|
35
|
-
*/
|
|
36
|
-
export declare class ApiGatewayV2Adapter implements AdapterContract<APIGatewayProxyEventV2, Context, APIGatewayProxyStructuredResultV2> {
|
|
37
|
-
protected readonly options?: ApiGatewayV2Options | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* Default constructor
|
|
40
|
-
*
|
|
41
|
-
* @param options - The options to customize the {@link ApiGatewayV2Adapter}
|
|
42
|
-
*/
|
|
43
|
-
constructor(options?: ApiGatewayV2Options | undefined);
|
|
44
|
-
/**
|
|
45
|
-
* Strip base path function
|
|
46
|
-
*/
|
|
47
|
-
protected stripPathFn: StripBasePathFn;
|
|
48
|
-
/**
|
|
49
|
-
* {@inheritDoc}
|
|
50
|
-
*/
|
|
51
|
-
getAdapterName(): string;
|
|
52
|
-
/**
|
|
53
|
-
* {@inheritDoc}
|
|
54
|
-
*/
|
|
55
|
-
canHandle(event: unknown): event is APIGatewayProxyEventV2;
|
|
56
|
-
/**
|
|
57
|
-
* {@inheritDoc}
|
|
58
|
-
*/
|
|
59
|
-
getRequest(event: APIGatewayProxyEventV2): AdapterRequest;
|
|
60
|
-
/**
|
|
61
|
-
* {@inheritDoc}
|
|
62
|
-
*/
|
|
63
|
-
getResponse({ headers: responseHeaders, body, isBase64Encoded, statusCode, response, }: GetResponseAdapterProps<APIGatewayProxyEventV2>): APIGatewayProxyStructuredResultV2;
|
|
64
|
-
/**
|
|
65
|
-
* {@inheritDoc}
|
|
66
|
-
*/
|
|
67
|
-
onErrorWhileForwarding({ error, delegatedResolver, respondWithErrors, event, log, }: OnErrorProps<APIGatewayProxyEventV2, APIGatewayProxyStructuredResultV2>): void;
|
|
68
|
-
/**
|
|
69
|
-
* Get path from event with query strings
|
|
70
|
-
*
|
|
71
|
-
* @param event - The event sent by serverless
|
|
72
|
-
*/
|
|
73
|
-
protected getPathFromEvent(event: APIGatewayProxyEventV2): string;
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=api-gateway-v2.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-gateway-v2.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/api-gateway-v2.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,eAAe,EAKhB,MAAM,YAAY,CAAC;AAIpB;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBACX,YACE,eAAe,CACb,sBAAsB,EACtB,OAAO,EACP,iCAAiC,CAClC;IASS,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;IALvC;;;;OAIG;gBAC4B,OAAO,CAAC,iCAAqB;IAQ5D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,eAAe,CAAC;IAMvC;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,sBAAsB;IAUjE;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,sBAAsB,GAAG,cAAc;IAkChE;;OAEG;IACI,WAAW,CAAC,EACjB,OAAO,EAAE,eAAe,EACxB,IAAI,EACJ,eAAe,EACf,UAAU,EACV,QAAQ,GACT,EAAE,uBAAuB,CAAC,sBAAsB,CAAC,GAAG,iCAAiC;IA+BtF;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,EACL,GAAG,GACJ,EAAE,YAAY,CACb,sBAAsB,EACtB,iCAAiC,CAClC,GAAG,IAAI;IAkBR;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;CAQlE"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),api_gateway_v2_adapter_exports={};__export(api_gateway_v2_adapter_exports,{ApiGatewayV2Adapter:()=>ApiGatewayV2Adapter});module.exports=__toCommonJS(api_gateway_v2_adapter_exports);var import_core=require("../../core");class ApiGatewayV2Adapter{constructor(options){var _a;this.options=options,this.stripPathFn=(0,import_core.buildStripBasePath)((_a=this.options)==null?void 0:_a.stripBasePath)}getAdapterName(){return ApiGatewayV2Adapter.name}canHandle(event){const apiGatewayEvent=event;return!!(apiGatewayEvent!=null&&apiGatewayEvent.requestContext&&apiGatewayEvent.version==="2.0")}getRequest(event){const method=event.requestContext.http.method,path=this.getPathFromEvent(event),headers={...event.headers};event.cookies&&(headers.cookie=event.cookies.join("; "));let body;if(event.body){const[bufferBody,contentLength]=(0,import_core.getEventBodyAsBuffer)(event.body,event.isBase64Encoded);body=bufferBody,headers["content-length"]=contentLength+""}const remoteAddress=event.requestContext.http.sourceIp;return{method,headers,body,remoteAddress,path}}getResponse({headers:responseHeaders,body,isBase64Encoded,statusCode,response}){const{cookies,headers}=(0,import_core.getFlattenedHeadersMapAndCookies)(responseHeaders),transferEncodingHeader=headers["transfer-encoding"];if(transferEncodingHeader&&transferEncodingHeader.includes("chunked"))throw new Error("chunked encoding in headers is not supported by API Gateway V2");if(response!=null&&response.chunkedEncoding)throw new Error("chunked encoding in response is not supported by API Gateway V2");return{statusCode,body,headers,isBase64Encoded,cookies}}onErrorWhileForwarding({error,delegatedResolver,respondWithErrors,event,log}){const body=respondWithErrors?error.stack:"",errorResponse=this.getResponse({event,statusCode:500,body:body||"",headers:{},isBase64Encoded:!1,log});delegatedResolver.succeed(errorResponse)}getPathFromEvent(event){const path=this.stripPathFn(event.rawPath),queryParams=event.rawQueryString;return(0,import_core.getPathWithQueryStringParams)(path,queryParams||{})}}
|
|
2
|
-
//# sourceMappingURL=api-gateway-v2.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api-gateway-v2.adapter.js","sources":["../../../src/adapters/aws/api-gateway-v2.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { APIGatewayProxyEventV2, Context } from 'aws-lambda';\nimport type { APIGatewayProxyStructuredResultV2 } from 'aws-lambda/trigger/api-gateway-proxy';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../contracts';\nimport {\n StripBasePathFn,\n buildStripBasePath,\n getEventBodyAsBuffer,\n getFlattenedHeadersMapAndCookies,\n getPathWithQueryStringParams,\n} from '../../core';\n\n//#endregion\n\n/**\n * The options to customize the {@link ApiGatewayV2Adapter}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV2Adapter\n * @public\n */\nexport interface ApiGatewayV2Options {\n /**\n * Strip base path for custom domains\n *\n * @defaultValue ''\n */\n stripBasePath?: string;\n}\n\n/**\n * The adapter to handle requests from AWS Api Gateway V2\n *\n * As per {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-known-issues.html | know issues}, we throw an exception when you send the `transfer-encoding=chunked`.\n * But, if you use this adapter to accept requests from Function URL, you can accept the `transfer-encoding=chunked` changing the method of invocation from `BUFFERED` to `RESPONSE_STREAM`.\n *\n * @example\n * ```typescript\n * const stripBasePath = '/any/custom/base/path'; // default ''\n * const adapter = new ApiGatewayV2Adapter({ stripBasePath });\n * ```\n *\n * {@link https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html | Event Reference}\n *\n * @breadcrumb Adapters / AWS / ApiGatewayV2Adapter\n * @public\n */\nexport class ApiGatewayV2Adapter\n implements\n AdapterContract<\n APIGatewayProxyEventV2,\n Context,\n APIGatewayProxyStructuredResultV2\n >\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link ApiGatewayV2Adapter}\n */\n constructor(protected readonly options?: ApiGatewayV2Options) {\n this.stripPathFn = buildStripBasePath(this.options?.stripBasePath);\n }\n\n //#endregion\n\n //#region Protected Properties\n\n /**\n * Strip base path function\n */\n protected stripPathFn: StripBasePathFn;\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return ApiGatewayV2Adapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is APIGatewayProxyEventV2 {\n const apiGatewayEvent = event as Partial<APIGatewayProxyEventV2> & {\n version?: string;\n };\n\n return !!(\n apiGatewayEvent?.requestContext && apiGatewayEvent.version === '2.0'\n );\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: APIGatewayProxyEventV2): AdapterRequest {\n const method = event.requestContext.http.method;\n const path = this.getPathFromEvent(event);\n // accords https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html\n // all headers are lowercased and cannot be array\n // so no need to format, just a shallow copy will work here\n const headers = { ...event.headers };\n\n if (event.cookies) headers.cookie = event.cookies.join('; ');\n\n let body: Buffer | undefined;\n\n if (event.body) {\n const [bufferBody, contentLength] = getEventBodyAsBuffer(\n event.body,\n event.isBase64Encoded,\n );\n\n body = bufferBody;\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n headers['content-length'] = contentLength + '';\n }\n\n const remoteAddress = event.requestContext.http.sourceIp;\n\n return {\n method,\n headers,\n body,\n remoteAddress,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n headers: responseHeaders,\n body,\n isBase64Encoded,\n statusCode,\n response,\n }: GetResponseAdapterProps<APIGatewayProxyEventV2>): APIGatewayProxyStructuredResultV2 {\n const { cookies, headers } =\n getFlattenedHeadersMapAndCookies(responseHeaders);\n\n const transferEncodingHeader: string | undefined =\n headers['transfer-encoding'];\n\n const hasTransferEncodingChunked =\n transferEncodingHeader && transferEncodingHeader.includes('chunked');\n\n if (hasTransferEncodingChunked) {\n throw new Error(\n 'chunked encoding in headers is not supported by API Gateway V2',\n );\n }\n\n if (response?.chunkedEncoding) {\n throw new Error(\n 'chunked encoding in response is not supported by API Gateway V2',\n );\n }\n\n return {\n statusCode,\n body,\n headers,\n isBase64Encoded,\n cookies,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n respondWithErrors,\n event,\n log,\n }: OnErrorProps<\n APIGatewayProxyEventV2,\n APIGatewayProxyStructuredResultV2\n >): void {\n const body = respondWithErrors ? error.stack : '';\n const errorResponse = this.getResponse({\n event,\n statusCode: 500,\n body: body || '',\n headers: {},\n isBase64Encoded: false,\n log,\n });\n\n delegatedResolver.succeed(errorResponse);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Get path from event with query strings\n *\n * @param event - The event sent by serverless\n */\n protected getPathFromEvent(event: APIGatewayProxyEventV2): string {\n const path = this.stripPathFn(event.rawPath);\n const queryParams = event.rawQueryString;\n\n return getPathWithQueryStringParams(path, queryParams || {});\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,+BAAA,CAAA,EAAA,SAAA,+BAAA,CAAA,oBAAA,IAAA,mBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,8BAAA,EAUA,IAMO,YAAA,QAAA,YAAA,EAoCA,MAAM,mBAOb,CAQE,YAA+B,QAA+B,QAA/B,KAAA,QAAA,QAC7B,KAAK,eAAc,YAAA,qBAAmB,QAAK,UAAL,eAAc,aAAa,CACnE,CAkBO,gBAAyB,CAC9B,OAAO,oBAAoB,IAC7B,CAKO,UAAU,MAAiD,CAChE,MAAM,gBAAkB,MAIxB,MAAO,CAAC,EACN,uCAAiB,gBAAkB,gBAAgB,UAAY,MAEnE,CAKO,WAAW,MAA+C,CACzD,MAAA,OAAS,MAAM,eAAe,KAAK,OACnC,KAAO,KAAK,iBAAiB,KAAK,EAIlC,QAAU,CAAE,GAAG,MAAM,OAAQ,EAE/B,MAAM,UAAS,QAAQ,OAAS,MAAM,QAAQ,KAAK,IAAI,GAEvD,IAAA,KAEJ,GAAI,MAAM,KAAM,CACR,KAAA,CAAC,WAAY,aAAa,KAAI,YAAA,sBAClC,MAAM,KACN,MAAM,eAAA,EAGD,KAAA,WAEC,QAAA,gBAAgB,EAAI,cAAgB,EAC9C,CAEM,MAAA,cAAgB,MAAM,eAAe,KAAK,SAEzC,MAAA,CACL,OACA,QACA,KACA,cACA,IAAA,CAEJ,CAKO,YAAY,CACjB,QAAS,gBACT,KACA,gBACA,WACA,QAAA,EACqF,CACrF,KAAM,CAAE,QAAS,OAAQ,KACvB,8CAAiC,eAAe,EAE5C,uBACJ,QAAQ,mBAAmB,EAK7B,GAFE,wBAA0B,uBAAuB,SAAS,SAAS,EAGnE,MAAM,IAAI,MACR,gEAAA,EAIJ,GAAI,yBAAU,gBACZ,MAAM,IAAI,MACR,iEAAA,EAIG,MAAA,CACL,WACA,KACA,QACA,gBACA,OAAA,CAEJ,CAKO,uBAAuB,CAC5B,MACA,kBACA,kBACA,MACA,GAAA,EAIO,CACD,MAAA,KAAO,kBAAoB,MAAM,MAAQ,GACzC,cAAgB,KAAK,YAAY,CACrC,MACA,WAAY,IACZ,KAAM,MAAQ,GACd,QAAS,CAAC,EACV,gBAAiB,GACjB,GAAA,CACD,EAED,kBAAkB,QAAQ,aAAa,CACzC,CAWU,iBAAiB,MAAuC,CAChE,MAAM,KAAO,KAAK,YAAY,MAAM,OAAO,EACrC,YAAc,MAAM,eAE1B,SAAO,YAA6B,8BAAA,KAAM,aAAe,CAAE,CAAA,CAC7D,CAGF"}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import type { Context, SQSBatchItemFailure } from 'aws-lambda';
|
|
2
|
-
import { AdapterContract, AdapterRequest, GetResponseAdapterProps, OnErrorProps } from '../../../contracts/index';
|
|
3
|
-
import { IEmptyResponse } from '../../../core/index';
|
|
4
|
-
/**
|
|
5
|
-
* The options to customize the {@link AwsSimpleAdapter}
|
|
6
|
-
*
|
|
7
|
-
* @breadcrumb Adapters / AWS / AWS Simple Adapter
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface AWSSimpleAdapterOptions {
|
|
11
|
-
/**
|
|
12
|
-
* The path that will be used to create a request to be forwarded to the framework.
|
|
13
|
-
*/
|
|
14
|
-
forwardPath: string;
|
|
15
|
-
/**
|
|
16
|
-
* The http method that will be used to create a request to be forwarded to the framework.
|
|
17
|
-
*/
|
|
18
|
-
forwardMethod: string;
|
|
19
|
-
/**
|
|
20
|
-
* The AWS Service host that will be injected inside headers to developer being able to validate if request originate from the library.
|
|
21
|
-
*/
|
|
22
|
-
host: string;
|
|
23
|
-
/**
|
|
24
|
-
* Tells if this adapter should support batch item failures.
|
|
25
|
-
*/
|
|
26
|
-
batch?: true | false;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* The batch item failure response expected from the API server
|
|
30
|
-
*
|
|
31
|
-
* @breadcrumb Adapters / AWS / AWS Simple Adapter
|
|
32
|
-
* @public
|
|
33
|
-
*/
|
|
34
|
-
export type BatchItemFailureResponse = SQSBatchItemFailure;
|
|
35
|
-
/**
|
|
36
|
-
* The possible options of response for {@link AwsSimpleAdapter}
|
|
37
|
-
*
|
|
38
|
-
* @breadcrumb Adapters / AWS / AWS Simple Adapter
|
|
39
|
-
* @public
|
|
40
|
-
*/
|
|
41
|
-
export type AWSSimpleAdapterResponseType = BatchItemFailureResponse | IEmptyResponse;
|
|
42
|
-
/**
|
|
43
|
-
* The abstract adapter to use to implement other simple AWS adapters
|
|
44
|
-
*
|
|
45
|
-
* @breadcrumb Adapters / AWS / AWS Simple Adapter
|
|
46
|
-
* @public
|
|
47
|
-
*/
|
|
48
|
-
export declare abstract class AwsSimpleAdapter<TEvent> implements AdapterContract<TEvent, Context, AWSSimpleAdapterResponseType> {
|
|
49
|
-
protected readonly options: AWSSimpleAdapterOptions;
|
|
50
|
-
/**
|
|
51
|
-
* Default constructor
|
|
52
|
-
*
|
|
53
|
-
* @param options - The options to customize the {@link AwsSimpleAdapter}
|
|
54
|
-
*/
|
|
55
|
-
constructor(options: AWSSimpleAdapterOptions);
|
|
56
|
-
/**
|
|
57
|
-
* {@inheritDoc}
|
|
58
|
-
*/
|
|
59
|
-
getAdapterName(): string;
|
|
60
|
-
/**
|
|
61
|
-
* {@inheritDoc}
|
|
62
|
-
*/
|
|
63
|
-
canHandle(event: unknown): event is TEvent;
|
|
64
|
-
/**
|
|
65
|
-
* {@inheritDoc}
|
|
66
|
-
*/
|
|
67
|
-
getRequest(event: TEvent): AdapterRequest;
|
|
68
|
-
/**
|
|
69
|
-
* {@inheritDoc}
|
|
70
|
-
*/
|
|
71
|
-
getResponse({ body, headers, isBase64Encoded, event, statusCode, }: GetResponseAdapterProps<TEvent>): AWSSimpleAdapterResponseType;
|
|
72
|
-
/**
|
|
73
|
-
* {@inheritDoc}
|
|
74
|
-
*/
|
|
75
|
-
onErrorWhileForwarding({ error, delegatedResolver, }: OnErrorProps<TEvent, AWSSimpleAdapterResponseType>): void;
|
|
76
|
-
/**
|
|
77
|
-
* Check if the status code is invalid
|
|
78
|
-
*
|
|
79
|
-
* @param statusCode - The status code
|
|
80
|
-
*/
|
|
81
|
-
protected hasInvalidStatusCode(statusCode: number): boolean;
|
|
82
|
-
}
|
|
83
|
-
//# sourceMappingURL=aws-simple-adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aws-simple-adapter.d.ts","sourceRoot":"","sources":["../../../../src/adapters/aws/base/aws-simple-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EACL,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAEL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAI7B;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,4BAA4B,GACpC,wBAAwB,GACxB,cAAc,CAAC;AAEnB;;;;;GAKG;AACH,8BAAsB,gBAAgB,CAAC,MAAM,CAC3C,YAAW,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,4BAA4B,CAAC;IAS7D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,uBAAuB;IAL/D;;;;OAIG;gBAC4B,OAAO,EAAE,uBAAuB;IAM/D;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;IAIjD;;OAEG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAuBhD;;OAEG;IACI,WAAW,CAAC,EACjB,IAAI,EACJ,OAAO,EACP,eAAe,EACf,KAAK,EACL,UAAU,GACX,EAAE,uBAAuB,CAAC,MAAM,CAAC,GAAG,4BAA4B;IAoBjE;;OAEG;IACI,sBAAsB,CAAC,EAC5B,KAAK,EACL,iBAAiB,GAClB,EAAE,YAAY,CAAC,MAAM,EAAE,4BAA4B,CAAC,GAAG,IAAI;IAQ5D;;;;OAIG;IACH,SAAS,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;CAK5D"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),aws_simple_adapter_exports={};__export(aws_simple_adapter_exports,{AwsSimpleAdapter:()=>AwsSimpleAdapter});module.exports=__toCommonJS(aws_simple_adapter_exports);var import_core=require("../../../core/index");class AwsSimpleAdapter{constructor(options){this.options=options}getAdapterName(){throw new Error("not implemented.")}canHandle(event){throw new Error("not implemented.")}getRequest(event){const path=this.options.forwardPath,method=this.options.forwardMethod,[body,contentLength]=(0,import_core.getEventBodyAsBuffer)(JSON.stringify(event),!1),headers={host:this.options.host,"content-type":"application/json","content-length":String(contentLength)};return{method,headers,body,path}}getResponse({body,headers,isBase64Encoded,event,statusCode}){if(this.hasInvalidStatusCode(statusCode))throw new Error(JSON.stringify({body,headers,isBase64Encoded,event,statusCode}));if(!this.options.batch)return import_core.EmptyResponse;if(isBase64Encoded)throw new Error("SERVERLESS_ADAPTER: The response could not be base64 encoded when you set batch: true, the response should be a JSON.");return body?JSON.parse(body):import_core.EmptyResponse}onErrorWhileForwarding({error,delegatedResolver}){delegatedResolver.fail(error)}hasInvalidStatusCode(statusCode){return statusCode<200||statusCode>=400}}
|
|
2
|
-
//# sourceMappingURL=aws-simple-adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aws-simple-adapter.js","sources":["../../../../src/adapters/aws/base/aws-simple-adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { Context, SQSBatchItemFailure } from 'aws-lambda';\nimport {\n AdapterContract,\n AdapterRequest,\n GetResponseAdapterProps,\n OnErrorProps,\n} from '../../../contracts/index';\nimport {\n EmptyResponse,\n IEmptyResponse,\n getEventBodyAsBuffer,\n} from '../../../core/index';\n\n//#endregion\n\n/**\n * The options to customize the {@link AwsSimpleAdapter}\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport interface AWSSimpleAdapterOptions {\n /**\n * The path that will be used to create a request to be forwarded to the framework.\n */\n forwardPath: string;\n\n /**\n * The http method that will be used to create a request to be forwarded to the framework.\n */\n forwardMethod: string;\n\n /**\n * The AWS Service host that will be injected inside headers to developer being able to validate if request originate from the library.\n */\n host: string;\n\n /**\n * Tells if this adapter should support batch item failures.\n */\n batch?: true | false;\n}\n\n/**\n * The batch item failure response expected from the API server\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport type BatchItemFailureResponse = SQSBatchItemFailure;\n\n/**\n * The possible options of response for {@link AwsSimpleAdapter}\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport type AWSSimpleAdapterResponseType =\n | BatchItemFailureResponse\n | IEmptyResponse;\n\n/**\n * The abstract adapter to use to implement other simple AWS adapters\n *\n * @breadcrumb Adapters / AWS / AWS Simple Adapter\n * @public\n */\nexport abstract class AwsSimpleAdapter<TEvent>\n implements AdapterContract<TEvent, Context, AWSSimpleAdapterResponseType>\n{\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link AwsSimpleAdapter}\n */\n constructor(protected readonly options: AWSSimpleAdapterOptions) {}\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n throw new Error('not implemented.');\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is TEvent {\n throw new Error('not implemented.');\n }\n\n /**\n * {@inheritDoc}\n */\n public getRequest(event: TEvent): AdapterRequest {\n const path = this.options.forwardPath;\n const method = this.options.forwardMethod;\n\n const [body, contentLength] = getEventBodyAsBuffer(\n JSON.stringify(event),\n false,\n );\n\n const headers = {\n host: this.options.host,\n 'content-type': 'application/json',\n 'content-length': String(contentLength),\n };\n\n return {\n method,\n headers,\n body,\n path,\n };\n }\n\n /**\n * {@inheritDoc}\n */\n public getResponse({\n body,\n headers,\n isBase64Encoded,\n event,\n statusCode,\n }: GetResponseAdapterProps<TEvent>): AWSSimpleAdapterResponseType {\n if (this.hasInvalidStatusCode(statusCode)) {\n throw new Error(\n JSON.stringify({ body, headers, isBase64Encoded, event, statusCode }),\n );\n }\n\n if (!this.options.batch) return EmptyResponse;\n\n if (isBase64Encoded) {\n throw new Error(\n 'SERVERLESS_ADAPTER: The response could not be base64 encoded when you set batch: true, the response should be a JSON.',\n );\n }\n\n if (!body) return EmptyResponse;\n\n return JSON.parse(body);\n }\n\n /**\n * {@inheritDoc}\n */\n public onErrorWhileForwarding({\n error,\n delegatedResolver,\n }: OnErrorProps<TEvent, AWSSimpleAdapterResponseType>): void {\n delegatedResolver.fail(error);\n }\n\n //#endregion\n\n //#region Protected Methods\n\n /**\n * Check if the status code is invalid\n *\n * @param statusCode - The status code\n */\n protected hasInvalidStatusCode(statusCode: number): boolean {\n return statusCode < 200 || statusCode >= 400;\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,2BAAA,CAAA,EAAA,SAAA,2BAAA,CAAA,iBAAA,IAAA,gBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,0BAAA,EASA,IAIO,YAAA,QAAA,qBAAA,EAwDA,MAAe,gBAEtB,CAQE,YAA+B,QAAkC,CAAlC,KAAA,QAAA,OAAmC,CAS3D,gBAAyB,CACxB,MAAA,IAAI,MAAM,kBAAkB,CACpC,CAKO,UAAU,MAAiC,CAC1C,MAAA,IAAI,MAAM,kBAAkB,CACpC,CAKO,WAAW,MAA+B,CACzC,MAAA,KAAO,KAAK,QAAQ,YACpB,OAAS,KAAK,QAAQ,cAEtB,CAAC,KAAM,aAAa,KAAI,YAAA,sBAC5B,KAAK,UAAU,KAAK,EACpB,EAAA,EAGI,QAAU,CACd,KAAM,KAAK,QAAQ,KACnB,eAAgB,mBAChB,iBAAkB,OAAO,aAAa,CAAA,EAGjC,MAAA,CACL,OACA,QACA,KACA,IAAA,CAEJ,CAKO,YAAY,CACjB,KACA,QACA,gBACA,MACA,UAAA,EACgE,CAC5D,GAAA,KAAK,qBAAqB,UAAU,EACtC,MAAM,IAAI,MACR,KAAK,UAAU,CAAE,KAAM,QAAS,gBAAiB,MAAO,WAAY,CAAA,EAIpE,GAAA,CAAC,KAAK,QAAQ,MAAc,OAAA,YAAA,cAEhC,GAAI,gBACF,MAAM,IAAI,MACR,uHAAA,EAIJ,OAAK,KAEE,KAAK,MAAM,IAAI,EAFJ,YAAA,aAGpB,CAKO,uBAAuB,CAC5B,MACA,iBAAA,EAC2D,CAC3D,kBAAkB,KAAK,KAAK,CAC9B,CAWU,qBAAqB,WAA6B,CACnD,OAAA,WAAa,KAAO,YAAc,GAC3C,CAGF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/aws/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__reExport=(target,mod,secondTarget)=>(__copyProps(target,mod,"default"),secondTarget&&__copyProps(secondTarget,mod,"default")),__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),base_exports={};module.exports=__toCommonJS(base_exports);__reExport(base_exports,require("./aws-simple-adapter"),module.exports);
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/adapters/aws/base/index.ts"],"sourcesContent":["export * from './aws-simple-adapter';\n"],"names":[],"mappings":"kqBAAA,aAAA,CAAA,EAAA,OAAA,QAAA,aAAA,YAAA,EAAA,WAAA,aAAc,QAAd,sBAAA,EAAA,OAAA,OAAA"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { DynamoDBStreamEvent } from 'aws-lambda';
|
|
2
|
-
import { AWSSimpleAdapterOptions, AwsSimpleAdapter } from './base/index';
|
|
3
|
-
/**
|
|
4
|
-
* The options to customize the {@link DynamoDBAdapter}
|
|
5
|
-
*
|
|
6
|
-
* @breadcrumb Adapters / AWS / DynamoDBAdapter
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
export interface DynamoDBAdapterOptions extends Pick<AWSSimpleAdapterOptions, 'batch'> {
|
|
10
|
-
/**
|
|
11
|
-
* The path that will be used to create a request to be forwarded to the framework.
|
|
12
|
-
*
|
|
13
|
-
* @defaultValue /dynamo
|
|
14
|
-
*/
|
|
15
|
-
dynamoDBForwardPath?: string;
|
|
16
|
-
/**
|
|
17
|
-
* The http method that will be used to create a request to be forwarded to the framework.
|
|
18
|
-
*
|
|
19
|
-
* @defaultValue POST
|
|
20
|
-
*/
|
|
21
|
-
dynamoDBForwardMethod?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* The adapter to handle requests from AWS DynamoDB.
|
|
25
|
-
*
|
|
26
|
-
* The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.
|
|
27
|
-
*
|
|
28
|
-
* {@link https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html | Event Reference}
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* const dynamoDBForwardPath = '/your/route/dynamo'; // default /dynamo
|
|
33
|
-
* const dynamoDBForwardMethod = 'POST'; // default POST
|
|
34
|
-
* const adapter = new DynamoDBAdapter({ dynamoDBForwardPath, dynamoDBForwardMethod });
|
|
35
|
-
* ```
|
|
36
|
-
*
|
|
37
|
-
* @breadcrumb Adapters / AWS / DynamoDBAdapter
|
|
38
|
-
* @public
|
|
39
|
-
*/
|
|
40
|
-
export declare class DynamoDBAdapter extends AwsSimpleAdapter<DynamoDBStreamEvent> {
|
|
41
|
-
/**
|
|
42
|
-
* Default constructor
|
|
43
|
-
*
|
|
44
|
-
* @param options - The options to customize the {@link DynamoDBAdapter}
|
|
45
|
-
*/
|
|
46
|
-
constructor(options?: DynamoDBAdapterOptions);
|
|
47
|
-
/**
|
|
48
|
-
* {@inheritDoc}
|
|
49
|
-
*/
|
|
50
|
-
getAdapterName(): string;
|
|
51
|
-
/**
|
|
52
|
-
* {@inheritDoc}
|
|
53
|
-
*/
|
|
54
|
-
canHandle(event: unknown): event is DynamoDBStreamEvent;
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=dynamodb.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/dynamodb.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIzE;;;;;GAKG;AACH,MAAM,WAAW,sBACf,SAAQ,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC9C;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB,CAAC,mBAAmB,CAAC;IAGxE;;;;OAIG;gBACS,OAAO,CAAC,EAAE,sBAAsB;IAmB5C;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB;CAW/D"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),dynamodb_adapter_exports={};__export(dynamodb_adapter_exports,{DynamoDBAdapter:()=>DynamoDBAdapter});module.exports=__toCommonJS(dynamodb_adapter_exports);var import_core=require("../../core"),import_base=require("./base/index");class DynamoDBAdapter extends import_base.AwsSimpleAdapter{constructor(options){super({forwardPath:(0,import_core.getDefaultIfUndefined)(options==null?void 0:options.dynamoDBForwardPath,"/dynamo"),forwardMethod:(0,import_core.getDefaultIfUndefined)(options==null?void 0:options.dynamoDBForwardMethod,"POST"),batch:options==null?void 0:options.batch,host:"dynamodb.amazonaws.com"})}getAdapterName(){return DynamoDBAdapter.name}canHandle(event){var _a;const dynamoDBevent=event;return Array.isArray(dynamoDBevent==null?void 0:dynamoDBevent.Records)?((_a=dynamoDBevent.Records[0])==null?void 0:_a.eventSource)==="aws:dynamodb":!1}}
|
|
2
|
-
//# sourceMappingURL=dynamodb.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb.adapter.js","sources":["../../../src/adapters/aws/dynamodb.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { DynamoDBStreamEvent } 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 DynamoDBAdapter}\n *\n * @breadcrumb Adapters / AWS / DynamoDBAdapter\n * @public\n */\nexport interface DynamoDBAdapterOptions\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 /dynamo\n */\n dynamoDBForwardPath?: 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 dynamoDBForwardMethod?: string;\n}\n\n/**\n * The adapter to handle requests from AWS DynamoDB.\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/lambda/latest/dg/with-ddb.html | Event Reference}\n *\n * @example\n * ```typescript\n * const dynamoDBForwardPath = '/your/route/dynamo'; // default /dynamo\n * const dynamoDBForwardMethod = 'POST'; // default POST\n * const adapter = new DynamoDBAdapter({ dynamoDBForwardPath, dynamoDBForwardMethod });\n * ```\n *\n * @breadcrumb Adapters / AWS / DynamoDBAdapter\n * @public\n */\nexport class DynamoDBAdapter extends AwsSimpleAdapter<DynamoDBStreamEvent> {\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link DynamoDBAdapter}\n */\n constructor(options?: DynamoDBAdapterOptions) {\n super({\n forwardPath: getDefaultIfUndefined(\n options?.dynamoDBForwardPath,\n '/dynamo',\n ),\n forwardMethod: getDefaultIfUndefined(\n options?.dynamoDBForwardMethod,\n 'POST',\n ),\n batch: options?.batch,\n host: 'dynamodb.amazonaws.com',\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return DynamoDBAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is DynamoDBStreamEvent {\n const dynamoDBevent = event as Partial<DynamoDBStreamEvent>;\n\n if (!Array.isArray(dynamoDBevent?.Records)) return false;\n\n const eventSource = dynamoDBevent.Records[0]?.eventSource;\n\n return eventSource === 'aws:dynamodb';\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,yBAAA,CAAA,EAAA,SAAA,yBAAA,CAAA,gBAAA,IAAA,eAAA,CAAA,EAAA,OAAA,QAAA,aAAA,wBAAA,EAGA,IAAsC,YAAA,QAAA,YAAA,EACoB,YAAA,QAAA,cAAA,EA4CnD,MAAM,wBAAwB,YAAsC,gBAAA,CAQzE,YAAY,QAAkC,CACtC,MAAA,CACJ,eAAa,YAAA,uBACX,6BAAS,oBACT,SACF,EACA,iBAAe,YAAA,uBACb,6BAAS,sBACT,MACF,EACA,MAAO,6BAAS,MAChB,KAAM,wBAAA,CACP,CACH,CASO,gBAAyB,CAC9B,OAAO,gBAAgB,IACzB,CAKO,UAAU,MAA8C,QAC7D,MAAM,cAAgB,MAEtB,OAAK,MAAM,QAAQ,yCAAe,OAAO,IAErB,iBAAc,QAAQ,CAAC,IAAvB,eAA0B,eAEvB,eAJ4B,EAKrD,CAGF"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { EventBridgeEvent } from 'aws-lambda';
|
|
2
|
-
import { AwsSimpleAdapter } from './base/index';
|
|
3
|
-
/**
|
|
4
|
-
* The options to customize the {@link EventBridgeAdapter}
|
|
5
|
-
*
|
|
6
|
-
* @breadcrumb Adapters / AWS / EventBridgeAdapter
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
export interface EventBridgeOptions {
|
|
10
|
-
/**
|
|
11
|
-
* The path that will be used to create a request to be forwarded to the framework.
|
|
12
|
-
*
|
|
13
|
-
* @defaultValue /eventbridge
|
|
14
|
-
*/
|
|
15
|
-
eventBridgeForwardPath?: string;
|
|
16
|
-
/**
|
|
17
|
-
* The http method that will be used to create a request to be forwarded to the framework.
|
|
18
|
-
*
|
|
19
|
-
* @defaultValue POST
|
|
20
|
-
*/
|
|
21
|
-
eventBridgeForwardMethod?: string;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Just a type alias to ignore generic types in the event
|
|
25
|
-
*
|
|
26
|
-
* @breadcrumb Adapters / AWS / EventBridgeAdapter
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
export type EventBridgeEventAll = EventBridgeEvent<any, any>;
|
|
30
|
-
/**
|
|
31
|
-
* The adapter to handle requests from AWS EventBridge (Cloudwatch Events).
|
|
32
|
-
*
|
|
33
|
-
* The option of `responseWithErrors` is ignored by this adapter and we always call `resolver.fail` with the error.
|
|
34
|
-
*
|
|
35
|
-
* {@link https://docs.aws.amazon.com/lambda/latest/dg/services-cloudwatchevents.html | Event Reference}
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* ```typescript
|
|
39
|
-
* const eventBridgeForwardPath = '/your/route/eventbridge'; // default /eventbridge
|
|
40
|
-
* const eventBridgeForwardMethod = 'POST'; // default POST
|
|
41
|
-
* const adapter = new EventBridgeAdapter({ eventBridgeForwardPath, eventBridgeForwardMethod });
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @breadcrumb Adapters / AWS / EventBridgeAdapter
|
|
45
|
-
* @public
|
|
46
|
-
*/
|
|
47
|
-
export declare class EventBridgeAdapter extends AwsSimpleAdapter<EventBridgeEventAll> {
|
|
48
|
-
/**
|
|
49
|
-
* Default constructor
|
|
50
|
-
*
|
|
51
|
-
* @param options - The options to customize the {@link EventBridgeAdapter}
|
|
52
|
-
*/
|
|
53
|
-
constructor(options?: EventBridgeOptions);
|
|
54
|
-
/**
|
|
55
|
-
* {@inheritDoc}
|
|
56
|
-
*/
|
|
57
|
-
getAdapterName(): string;
|
|
58
|
-
/**
|
|
59
|
-
* {@inheritDoc}
|
|
60
|
-
*/
|
|
61
|
-
canHandle(event: unknown): event is EventBridgeEventAll;
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=event-bridge.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-bridge.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/event-bridge.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE7D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAmB,SAAQ,gBAAgB,CAAC,mBAAmB,CAAC;IAG3E;;;;OAIG;gBACS,OAAO,CAAC,EAAE,kBAAkB;IAmBxC;;OAEG;IACI,cAAc,IAAI,MAAM;IAI/B;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB;CAuB/D"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var __defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0})},__copyProps=(to,from,except,desc)=>{if(from&&typeof from=="object"||typeof from=="function")for(let key of __getOwnPropNames(from))!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:()=>from[key],enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toCommonJS=mod=>__copyProps(__defProp({},"__esModule",{value:!0}),mod),event_bridge_adapter_exports={};__export(event_bridge_adapter_exports,{EventBridgeAdapter:()=>EventBridgeAdapter});module.exports=__toCommonJS(event_bridge_adapter_exports);var import_core=require("../../core"),import_base=require("./base/index");class EventBridgeAdapter extends import_base.AwsSimpleAdapter{constructor(options){super({forwardPath:(0,import_core.getDefaultIfUndefined)(options==null?void 0:options.eventBridgeForwardPath,"/eventbridge"),forwardMethod:(0,import_core.getDefaultIfUndefined)(options==null?void 0:options.eventBridgeForwardMethod,"POST"),batch:!1,host:"events.amazonaws.com"})}getAdapterName(){return EventBridgeAdapter.name}canHandle(event){const eventBridgeEvent=event;return!!(eventBridgeEvent&&eventBridgeEvent.version&&eventBridgeEvent.version==="0"&&eventBridgeEvent.id&&eventBridgeEvent["detail-type"]&&eventBridgeEvent.source&&eventBridgeEvent.account&&eventBridgeEvent.time&&eventBridgeEvent.region&&eventBridgeEvent.resources&&Array.isArray(eventBridgeEvent.resources)&&eventBridgeEvent.detail&&typeof eventBridgeEvent.detail=="object"&&!Array.isArray(eventBridgeEvent.detail))}}
|
|
2
|
-
//# sourceMappingURL=event-bridge.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-bridge.adapter.js","sources":["../../../src/adapters/aws/event-bridge.adapter.ts"],"sourcesContent":["//#region Imports\n\nimport type { EventBridgeEvent } from 'aws-lambda';\nimport { getDefaultIfUndefined } from '../../core';\nimport { AwsSimpleAdapter } from './base/index';\n\n//#endregion\n\n/**\n * The options to customize the {@link EventBridgeAdapter}\n *\n * @breadcrumb Adapters / AWS / EventBridgeAdapter\n * @public\n */\nexport interface EventBridgeOptions {\n /**\n * The path that will be used to create a request to be forwarded to the framework.\n *\n * @defaultValue /eventbridge\n */\n eventBridgeForwardPath?: 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 eventBridgeForwardMethod?: string;\n}\n\n/**\n * Just a type alias to ignore generic types in the event\n *\n * @breadcrumb Adapters / AWS / EventBridgeAdapter\n * @public\n */\nexport type EventBridgeEventAll = EventBridgeEvent<any, any>;\n\n/**\n * The adapter to handle requests from AWS EventBridge (Cloudwatch Events).\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/lambda/latest/dg/services-cloudwatchevents.html | Event Reference}\n *\n * @example\n * ```typescript\n * const eventBridgeForwardPath = '/your/route/eventbridge'; // default /eventbridge\n * const eventBridgeForwardMethod = 'POST'; // default POST\n * const adapter = new EventBridgeAdapter({ eventBridgeForwardPath, eventBridgeForwardMethod });\n * ```\n *\n * @breadcrumb Adapters / AWS / EventBridgeAdapter\n * @public\n */\nexport class EventBridgeAdapter extends AwsSimpleAdapter<EventBridgeEventAll> {\n //#region Constructor\n\n /**\n * Default constructor\n *\n * @param options - The options to customize the {@link EventBridgeAdapter}\n */\n constructor(options?: EventBridgeOptions) {\n super({\n forwardPath: getDefaultIfUndefined(\n options?.eventBridgeForwardPath,\n '/eventbridge',\n ),\n forwardMethod: getDefaultIfUndefined(\n options?.eventBridgeForwardMethod,\n 'POST',\n ),\n batch: false,\n host: 'events.amazonaws.com',\n });\n }\n\n //#endregion\n\n //#region Public Methods\n\n /**\n * {@inheritDoc}\n */\n public getAdapterName(): string {\n return EventBridgeAdapter.name;\n }\n\n /**\n * {@inheritDoc}\n */\n public canHandle(event: unknown): event is EventBridgeEventAll {\n const eventBridgeEvent = event as Partial<EventBridgeEventAll>;\n\n // thanks to @cnuss in https://github.com/vendia/serverless-express/blob/b5da6070b8dd2fb674c1f7035dd7edfef1dc83a2/src/event-sources/utils.js#L87\n return !!(\n eventBridgeEvent &&\n eventBridgeEvent.version &&\n eventBridgeEvent.version === '0' &&\n eventBridgeEvent.id &&\n eventBridgeEvent['detail-type'] &&\n eventBridgeEvent.source &&\n eventBridgeEvent.account &&\n eventBridgeEvent.time &&\n eventBridgeEvent.region &&\n eventBridgeEvent.resources &&\n Array.isArray(eventBridgeEvent.resources) &&\n eventBridgeEvent.detail &&\n typeof eventBridgeEvent.detail === 'object' &&\n !Array.isArray(eventBridgeEvent.detail)\n );\n }\n\n //#endregion\n}\n"],"names":[],"mappings":"ooBAAA,6BAAA,CAAA,EAAA,SAAA,6BAAA,CAAA,mBAAA,IAAA,kBAAA,CAAA,EAAA,OAAA,QAAA,aAAA,4BAAA,EAGA,IAAsC,YAAA,QAAA,YAAA,EACL,YAAA,QAAA,cAAA,EAmD1B,MAAM,2BAA2B,YAAsC,gBAAA,CAQ5E,YAAY,QAA8B,CAClC,MAAA,CACJ,eAAa,YAAA,uBACX,6BAAS,uBACT,cACF,EACA,iBAAe,YAAA,uBACb,6BAAS,yBACT,MACF,EACA,MAAO,GACP,KAAM,sBAAA,CACP,CACH,CASO,gBAAyB,CAC9B,OAAO,mBAAmB,IAC5B,CAKO,UAAU,MAA8C,CAC7D,MAAM,iBAAmB,MAGzB,MAAO,CAAC,EACN,kBACA,iBAAiB,SACjB,iBAAiB,UAAY,KAC7B,iBAAiB,IACjB,iBAAiB,aAAa,GAC9B,iBAAiB,QACjB,iBAAiB,SACjB,iBAAiB,MACjB,iBAAiB,QACjB,iBAAiB,WACjB,MAAM,QAAQ,iBAAiB,SAAS,GACxC,iBAAiB,QACjB,OAAO,iBAAiB,QAAW,UACnC,CAAC,MAAM,QAAQ,iBAAiB,MAAM,EAE1C,CAGF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,+BAA+B,CAAC"}
|