sst 3.0.0 → 3.0.1-2
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/package.json +8 -139
- package/src/index.ts +1 -0
- package/src/resource.ts +15 -0
- package/tsconfig.json +11 -0
- package/LICENSE +0 -21
- package/README.md +0 -43
- package/bootstrap.d.ts +0 -5
- package/bootstrap.js +0 -318
- package/bus.d.ts +0 -20
- package/bus.js +0 -52
- package/cache.d.ts +0 -4
- package/cache.js +0 -31
- package/cdk/deploy-stack.d.ts +0 -223
- package/cdk/deploy-stack.js +0 -562
- package/cdk/deployments-wrapper.d.ts +0 -3
- package/cdk/deployments-wrapper.js +0 -135
- package/cdk/deployments.d.ts +0 -327
- package/cdk/deployments.js +0 -360
- package/cdk/util.d.ts +0 -1
- package/cdk/util.js +0 -17
- package/cli/ci-info.d.ts +0 -4
- package/cli/ci-info.js +0 -8
- package/cli/colors.d.ts +0 -17
- package/cli/colors.js +0 -27
- package/cli/commands/bind.d.ts +0 -19
- package/cli/commands/bind.js +0 -360
- package/cli/commands/bootstrap.d.ts +0 -15
- package/cli/commands/bootstrap.js +0 -11
- package/cli/commands/build.d.ts +0 -17
- package/cli/commands/build.js +0 -25
- package/cli/commands/connect.d.ts +0 -17
- package/cli/commands/connect.js +0 -55
- package/cli/commands/console.d.ts +0 -15
- package/cli/commands/console.js +0 -22
- package/cli/commands/deploy.d.ts +0 -19
- package/cli/commands/deploy.js +0 -112
- package/cli/commands/dev.d.ts +0 -25
- package/cli/commands/dev.js +0 -351
- package/cli/commands/diff.d.ts +0 -19
- package/cli/commands/diff.js +0 -89
- package/cli/commands/plugins/kysely.d.ts +0 -1
- package/cli/commands/plugins/kysely.js +0 -87
- package/cli/commands/plugins/pothos.d.ts +0 -1
- package/cli/commands/plugins/pothos.js +0 -58
- package/cli/commands/plugins/warmer.d.ts +0 -1
- package/cli/commands/plugins/warmer.js +0 -33
- package/cli/commands/remove.d.ts +0 -19
- package/cli/commands/remove.js +0 -62
- package/cli/commands/secrets/get.d.ts +0 -19
- package/cli/commands/secrets/get.js +0 -27
- package/cli/commands/secrets/list.d.ts +0 -19
- package/cli/commands/secrets/list.js +0 -69
- package/cli/commands/secrets/load.d.ts +0 -17
- package/cli/commands/secrets/load.js +0 -47
- package/cli/commands/secrets/remove.d.ts +0 -19
- package/cli/commands/secrets/remove.js +0 -27
- package/cli/commands/secrets/secrets.d.ts +0 -2
- package/cli/commands/secrets/secrets.js +0 -16
- package/cli/commands/secrets/set.d.ts +0 -21
- package/cli/commands/secrets/set.js +0 -54
- package/cli/commands/telemetry.d.ts +0 -17
- package/cli/commands/telemetry.js +0 -24
- package/cli/commands/transform.d.ts +0 -17
- package/cli/commands/transform.js +0 -62
- package/cli/commands/types.d.ts +0 -15
- package/cli/commands/types.js +0 -25
- package/cli/commands/update.d.ts +0 -17
- package/cli/commands/update.js +0 -116
- package/cli/commands/version.d.ts +0 -15
- package/cli/commands/version.js +0 -15
- package/cli/local/router.d.ts +0 -44
- package/cli/local/router.js +0 -43
- package/cli/local/server.d.ts +0 -22
- package/cli/local/server.js +0 -319
- package/cli/program.d.ts +0 -19
- package/cli/program.js +0 -87
- package/cli/spinner.d.ts +0 -3
- package/cli/spinner.js +0 -14
- package/cli/sst.d.ts +0 -2
- package/cli/sst.js +0 -74
- package/cli/telemetry/environment.d.ts +0 -15
- package/cli/telemetry/environment.js +0 -27
- package/cli/telemetry/post-payload.d.ts +0 -1
- package/cli/telemetry/post-payload.js +0 -27
- package/cli/telemetry/project-id.d.ts +0 -2
- package/cli/telemetry/project-id.js +0 -47
- package/cli/telemetry/telemetry.d.ts +0 -19
- package/cli/telemetry/telemetry.js +0 -103
- package/cli/terminal.d.ts +0 -1
- package/cli/terminal.js +0 -8
- package/cli/ui/deploy.d.ts +0 -10
- package/cli/ui/deploy.js +0 -172
- package/cli/ui/functions.d.ts +0 -2
- package/cli/ui/functions.js +0 -130
- package/cli/ui/header.d.ts +0 -5
- package/cli/ui/header.js +0 -16
- package/cli/ui/stack.d.ts +0 -1
- package/cli/ui/stack.js +0 -6
- package/config.d.ts +0 -56
- package/config.js +0 -244
- package/constructs/Api.d.ts +0 -814
- package/constructs/Api.js +0 -743
- package/constructs/ApiGatewayV1Api.d.ts +0 -642
- package/constructs/ApiGatewayV1Api.js +0 -767
- package/constructs/App.d.ts +0 -168
- package/constructs/App.js +0 -493
- package/constructs/AppSyncApi.d.ts +0 -550
- package/constructs/AppSyncApi.js +0 -493
- package/constructs/AstroSite.d.ts +0 -39
- package/constructs/AstroSite.js +0 -78
- package/constructs/AstroSite.tsdoc.d.ts +0 -2
- package/constructs/AstroSite.tsdoc.js +0 -2
- package/constructs/Auth.d.ts +0 -100
- package/constructs/Auth.js +0 -177
- package/constructs/BaseSite.d.ts +0 -29
- package/constructs/BaseSite.js +0 -43
- package/constructs/Bucket.d.ts +0 -364
- package/constructs/Bucket.js +0 -327
- package/constructs/Cognito.d.ts +0 -232
- package/constructs/Cognito.js +0 -370
- package/constructs/Config.d.ts +0 -3
- package/constructs/Config.js +0 -3
- package/constructs/Construct.d.ts +0 -23
- package/constructs/Construct.js +0 -46
- package/constructs/Cron.d.ts +0 -164
- package/constructs/Cron.js +0 -114
- package/constructs/Distribution.d.ts +0 -143
- package/constructs/Distribution.js +0 -260
- package/constructs/EdgeFunction.d.ts +0 -49
- package/constructs/EdgeFunction.js +0 -442
- package/constructs/EventBus.d.ts +0 -444
- package/constructs/EventBus.js +0 -440
- package/constructs/Function.d.ts +0 -690
- package/constructs/Function.js +0 -583
- package/constructs/FunctionalStack.d.ts +0 -13
- package/constructs/FunctionalStack.js +0 -62
- package/constructs/Job.d.ts +0 -337
- package/constructs/Job.js +0 -404
- package/constructs/KinesisStream.d.ts +0 -224
- package/constructs/KinesisStream.js +0 -207
- package/constructs/Metadata.d.ts +0 -60
- package/constructs/Metadata.js +0 -1
- package/constructs/NextjsSite.d.ts +0 -104
- package/constructs/NextjsSite.js +0 -308
- package/constructs/Parameter.d.ts +0 -37
- package/constructs/Parameter.js +0 -53
- package/constructs/Queue.d.ts +0 -194
- package/constructs/Queue.js +0 -204
- package/constructs/RDS.d.ts +0 -221
- package/constructs/RDS.js +0 -363
- package/constructs/RemixSite.d.ts +0 -42
- package/constructs/RemixSite.js +0 -158
- package/constructs/RemixSite.tsdoc.d.ts +0 -2
- package/constructs/RemixSite.tsdoc.js +0 -2
- package/constructs/Script.d.ts +0 -160
- package/constructs/Script.js +0 -179
- package/constructs/Secret.d.ts +0 -30
- package/constructs/Secret.js +0 -59
- package/constructs/Service.d.ts +0 -487
- package/constructs/Service.js +0 -655
- package/constructs/SolidStartSite.d.ts +0 -37
- package/constructs/SolidStartSite.js +0 -66
- package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
- package/constructs/SolidStartSite.tsdoc.js +0 -2
- package/constructs/SsrFunction.d.ts +0 -60
- package/constructs/SsrFunction.js +0 -226
- package/constructs/SsrSite.d.ts +0 -407
- package/constructs/SsrSite.js +0 -850
- package/constructs/Stack.d.ts +0 -127
- package/constructs/Stack.js +0 -243
- package/constructs/StaticSite.d.ts +0 -348
- package/constructs/StaticSite.js +0 -468
- package/constructs/SvelteKitSite.d.ts +0 -40
- package/constructs/SvelteKitSite.js +0 -106
- package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
- package/constructs/SvelteKitSite.tsdoc.js +0 -2
- package/constructs/Table.d.ts +0 -410
- package/constructs/Table.js +0 -425
- package/constructs/Topic.d.ts +0 -257
- package/constructs/Topic.js +0 -273
- package/constructs/WebSocketApi.d.ts +0 -355
- package/constructs/WebSocketApi.js +0 -404
- package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
- package/constructs/cdk/HttpAwsIntegration.js +0 -24
- package/constructs/cdk/certificate-base.d.ts +0 -18
- package/constructs/cdk/certificate-base.js +0 -26
- package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
- package/constructs/cdk/dns-validated-certificate.js +0 -125
- package/constructs/cdk/website-redirect.d.ts +0 -53
- package/constructs/cdk/website-redirect.js +0 -77
- package/constructs/context.d.ts +0 -3
- package/constructs/context.js +0 -27
- package/constructs/deferred_task.d.ts +0 -6
- package/constructs/deferred_task.js +0 -45
- package/constructs/deprecated/NextjsSite.d.ts +0 -309
- package/constructs/deprecated/NextjsSite.js +0 -1074
- package/constructs/deprecated/cross-region-helper.d.ts +0 -7
- package/constructs/deprecated/cross-region-helper.js +0 -152
- package/constructs/deprecated/index.d.ts +0 -1
- package/constructs/deprecated/index.js +0 -1
- package/constructs/future/Auth.d.ts +0 -80
- package/constructs/future/Auth.js +0 -122
- package/constructs/future/index.d.ts +0 -1
- package/constructs/future/index.js +0 -1
- package/constructs/index.d.ts +0 -32
- package/constructs/index.js +0 -32
- package/constructs/static-file-list.d.ts +0 -1
- package/constructs/static-file-list.js +0 -51
- package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
- package/constructs/util/apiGatewayV1AccessLog.js +0 -76
- package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
- package/constructs/util/apiGatewayV2AccessLog.js +0 -107
- package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
- package/constructs/util/apiGatewayV2Cors.js +0 -21
- package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
- package/constructs/util/apiGatewayV2Domain.js +0 -208
- package/constructs/util/appSyncApiDomain.d.ts +0 -41
- package/constructs/util/appSyncApiDomain.js +0 -176
- package/constructs/util/builder.d.ts +0 -3
- package/constructs/util/builder.js +0 -9
- package/constructs/util/duration.d.ts +0 -3
- package/constructs/util/duration.js +0 -19
- package/constructs/util/functionBinding.d.ts +0 -31
- package/constructs/util/functionBinding.js +0 -104
- package/constructs/util/functionUrlCors.d.ts +0 -67
- package/constructs/util/functionUrlCors.js +0 -23
- package/constructs/util/permission.d.ts +0 -8
- package/constructs/util/permission.js +0 -228
- package/constructs/util/size.d.ts +0 -3
- package/constructs/util/size.js +0 -12
- package/constructs/util/warning.d.ts +0 -11
- package/constructs/util/warning.js +0 -21
- package/context/context.d.ts +0 -13
- package/context/context.js +0 -69
- package/context/context2.d.ts +0 -16
- package/context/context2.js +0 -108
- package/context/handler.d.ts +0 -25
- package/context/handler.js +0 -21
- package/context/index.d.ts +0 -2
- package/context/index.js +0 -2
- package/credentials.d.ts +0 -9
- package/credentials.js +0 -145
- package/error.d.ts +0 -6
- package/error.js +0 -10
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/iot.d.ts +0 -6
- package/iot.js +0 -163
- package/logger.d.ts +0 -3
- package/logger.js +0 -32
- package/node/actor/index.d.ts +0 -29
- package/node/actor/index.js +0 -17
- package/node/api/index.d.ts +0 -64
- package/node/api/index.js +0 -179
- package/node/auth/adapter/adapter.d.ts +0 -3
- package/node/auth/adapter/adapter.js +0 -3
- package/node/auth/adapter/facebook.d.ts +0 -2
- package/node/auth/adapter/facebook.js +0 -26
- package/node/auth/adapter/github.d.ts +0 -2
- package/node/auth/adapter/github.js +0 -21
- package/node/auth/adapter/google.d.ts +0 -9
- package/node/auth/adapter/google.js +0 -18
- package/node/auth/adapter/link.d.ts +0 -8
- package/node/auth/adapter/link.js +0 -39
- package/node/auth/adapter/oauth.d.ts +0 -25
- package/node/auth/adapter/oauth.js +0 -52
- package/node/auth/adapter/oidc.d.ts +0 -17
- package/node/auth/adapter/oidc.js +0 -50
- package/node/auth/adapter/twitch.d.ts +0 -2
- package/node/auth/adapter/twitch.js +0 -11
- package/node/auth/auth.d.ts +0 -24
- package/node/auth/auth.js +0 -74
- package/node/auth/index.d.ts +0 -13
- package/node/auth/index.js +0 -12
- package/node/auth/session.d.ts +0 -76
- package/node/auth/session.js +0 -121
- package/node/bucket/index.d.ts +0 -3
- package/node/bucket/index.js +0 -2
- package/node/config/index.d.ts +0 -13
- package/node/config/index.js +0 -22
- package/node/event-bus/index.d.ts +0 -51
- package/node/event-bus/index.js +0 -76
- package/node/function/index.d.ts +0 -3
- package/node/function/index.js +0 -3
- package/node/future/auth/adapter/adapter.d.ts +0 -10
- package/node/future/auth/adapter/adapter.js +0 -1
- package/node/future/auth/adapter/code.d.ts +0 -17
- package/node/future/auth/adapter/code.js +0 -68
- package/node/future/auth/adapter/facebook.d.ts +0 -16
- package/node/future/auth/adapter/facebook.js +0 -27
- package/node/future/auth/adapter/github.d.ts +0 -23
- package/node/future/auth/adapter/github.js +0 -23
- package/node/future/auth/adapter/google.d.ts +0 -28
- package/node/future/auth/adapter/google.js +0 -22
- package/node/future/auth/adapter/link.d.ts +0 -13
- package/node/future/auth/adapter/link.js +0 -47
- package/node/future/auth/adapter/microsoft.d.ts +0 -22
- package/node/future/auth/adapter/microsoft.js +0 -16
- package/node/future/auth/adapter/oauth.d.ts +0 -41
- package/node/future/auth/adapter/oauth.js +0 -67
- package/node/future/auth/adapter/oidc.d.ts +0 -30
- package/node/future/auth/adapter/oidc.js +0 -63
- package/node/future/auth/adapter/spotify.d.ts +0 -23
- package/node/future/auth/adapter/spotify.js +0 -22
- package/node/future/auth/encryption.d.ts +0 -2
- package/node/future/auth/encryption.js +0 -30
- package/node/future/auth/handler.d.ts +0 -46
- package/node/future/auth/handler.js +0 -280
- package/node/future/auth/index.d.ts +0 -17
- package/node/future/auth/index.js +0 -15
- package/node/future/auth/session.d.ts +0 -71
- package/node/future/auth/session.js +0 -146
- package/node/graphql/index.d.ts +0 -15
- package/node/graphql/index.js +0 -32
- package/node/job/index.d.ts +0 -37
- package/node/job/index.js +0 -64
- package/node/kinesis-stream/index.d.ts +0 -3
- package/node/kinesis-stream/index.js +0 -3
- package/node/queue/index.d.ts +0 -3
- package/node/queue/index.js +0 -2
- package/node/rds/index.d.ts +0 -3
- package/node/rds/index.js +0 -2
- package/node/service/index.d.ts +0 -3
- package/node/service/index.js +0 -4
- package/node/site/index.d.ts +0 -18
- package/node/site/index.js +0 -18
- package/node/table/index.d.ts +0 -3
- package/node/table/index.js +0 -4
- package/node/topic/index.d.ts +0 -3
- package/node/topic/index.js +0 -4
- package/node/util/index.d.ts +0 -2
- package/node/util/index.js +0 -196
- package/node/util/loader.d.ts +0 -2
- package/node/util/loader.js +0 -51
- package/node/websocket-api/index.d.ts +0 -23
- package/node/websocket-api/index.js +0 -48
- package/pothos.d.ts +0 -7
- package/pothos.js +0 -160
- package/project.d.ts +0 -75
- package/project.js +0 -188
- package/runtime/handlers/container.d.ts +0 -2
- package/runtime/handlers/container.js +0 -263
- package/runtime/handlers/dotnet.d.ts +0 -2
- package/runtime/handlers/dotnet.js +0 -115
- package/runtime/handlers/go.d.ts +0 -2
- package/runtime/handlers/go.js +0 -126
- package/runtime/handlers/java.d.ts +0 -2
- package/runtime/handlers/java.js +0 -103
- package/runtime/handlers/node.d.ts +0 -2
- package/runtime/handlers/node.js +0 -269
- package/runtime/handlers/python.d.ts +0 -2
- package/runtime/handlers/python.js +0 -141
- package/runtime/handlers/pythonBundling.d.ts +0 -82
- package/runtime/handlers/pythonBundling.js +0 -80
- package/runtime/handlers/rust.d.ts +0 -2
- package/runtime/handlers/rust.js +0 -110
- package/runtime/handlers.d.ts +0 -74
- package/runtime/handlers.js +0 -151
- package/runtime/iot.d.ts +0 -1
- package/runtime/iot.js +0 -17
- package/runtime/runtime.d.ts +0 -32
- package/runtime/runtime.js +0 -1
- package/runtime/server.d.ts +0 -6
- package/runtime/server.js +0 -150
- package/runtime/workers.d.ts +0 -37
- package/runtime/workers.js +0 -85
- package/stacks/app-metadata.d.ts +0 -7
- package/stacks/app-metadata.js +0 -75
- package/stacks/assembly.d.ts +0 -1
- package/stacks/assembly.js +0 -4
- package/stacks/build.d.ts +0 -9
- package/stacks/build.js +0 -110
- package/stacks/deploy.d.ts +0 -9
- package/stacks/deploy.js +0 -240
- package/stacks/diff.d.ts +0 -8
- package/stacks/diff.js +0 -62
- package/stacks/index.d.ts +0 -10
- package/stacks/index.js +0 -10
- package/stacks/metadata.d.ts +0 -11
- package/stacks/metadata.js +0 -83
- package/stacks/monitor.d.ts +0 -32
- package/stacks/monitor.js +0 -151
- package/stacks/remove.d.ts +0 -8
- package/stacks/remove.js +0 -76
- package/stacks/synth.d.ts +0 -12
- package/stacks/synth.js +0 -94
- package/support/base-site-archiver.mjs +0 -99
- package/support/base-site-custom-resource/s3-handler.py +0 -195
- package/support/base-site-custom-resource/s3-upload.py +0 -89
- package/support/bootstrap-metadata-function/index.mjs +0 -58011
- package/support/bridge/Dockerfile +0 -3
- package/support/bridge/bridge.mjs +0 -146
- package/support/certificate-requestor/index.js +0 -549
- package/support/custom-resources/index.mjs +0 -180627
- package/support/dotnet31-bootstrap/Program.cs +0 -17
- package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
- package/support/dotnet6-bootstrap/Program.cs +0 -17
- package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
- package/support/edge-function/edge-lambda-version.mjs +0 -3
- package/support/edge-function/edge-lambda.mjs +0 -3
- package/support/edge-function/s3-bucket.mjs +0 -3
- package/support/event-bus-retrier/index.mjs +0 -75
- package/support/java-runtime/install.sh +0 -25
- package/support/java-runtime/pom.xml +0 -39
- package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
- package/support/job-manager/index.mjs +0 -57679
- package/support/nixpacks/Dockerfile +0 -6
- package/support/nodejs-runtime/index.mjs +0 -169
- package/support/python-runtime/Dockerfile +0 -9
- package/support/python-runtime/Dockerfile.custom +0 -21
- package/support/python-runtime/Dockerfile.dependencies +0 -26
- package/support/python-runtime/runtime.py +0 -127
- package/support/rds-migrator/index.mjs +0 -49
- package/support/remix-site-function/edge-server.js +0 -161
- package/support/remix-site-function/polyfill.js +0 -24
- package/support/remix-site-function/regional-server.js +0 -164
- package/support/script-function/index.mjs +0 -48760
- package/support/service-dev-function/index.js +0 -1
- package/support/signing-function/index.mjs +0 -3769
- package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
- package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
- package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
- package/support/sls-nextjs-site-stub/index.html +0 -99
- package/support/ssr-site-function-archiver.mjs +0 -96
- package/support/ssr-site-function-stub/index.js +0 -5
- package/support/ssr-warmer/index.mjs +0 -34235
- package/util/error.d.ts +0 -3
- package/util/error.js +0 -6
- package/util/fs.d.ts +0 -4
- package/util/fs.js +0 -46
- package/util/lazy.d.ts +0 -1
- package/util/lazy.js +0 -11
- package/util/module.d.ts +0 -1
- package/util/module.js +0 -5
- package/util/process.d.ts +0 -2
- package/util/process.js +0 -3
- package/watcher.d.ts +0 -14
- package/watcher.js +0 -35
package/node/api/index.js
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { createProxy } from "../util/index.js";
|
|
2
|
-
import { useEvent, Handler, useContextType, } from "../../context/handler.js";
|
|
3
|
-
import { memo } from "../../context/context2.js";
|
|
4
|
-
export const Api = /* @__PURE__ */ createProxy("Api");
|
|
5
|
-
export const AppSyncApi =
|
|
6
|
-
/* @__PURE__ */ createProxy("AppSyncApi");
|
|
7
|
-
export const ApiGatewayV1Api =
|
|
8
|
-
/* @__PURE__ */ createProxy("ApiGatewayV1Api");
|
|
9
|
-
export class Response {
|
|
10
|
-
result;
|
|
11
|
-
constructor(result) {
|
|
12
|
-
this.result = result;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Create a new api handler that can be used to create an authenticated session.
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```ts
|
|
20
|
-
* export const handler = ApiHandler({
|
|
21
|
-
* })
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export function ApiHandler(cb) {
|
|
25
|
-
return Handler("api", async (evt, ctx) => {
|
|
26
|
-
let result;
|
|
27
|
-
try {
|
|
28
|
-
result = await cb(evt, ctx);
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
if (e instanceof Response) {
|
|
32
|
-
result = e.result;
|
|
33
|
-
}
|
|
34
|
-
else
|
|
35
|
-
throw e;
|
|
36
|
-
}
|
|
37
|
-
const serialized = useResponse().serialize(result || {});
|
|
38
|
-
return serialized;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
export const useCookies = /* @__PURE__ */ memo(() => {
|
|
42
|
-
const evt = useEvent("api");
|
|
43
|
-
const cookies = evt.cookies || [];
|
|
44
|
-
return Object.fromEntries(cookies.map((c) => c.split("=")).map(([k, v]) => [k, decodeURIComponent(v)]));
|
|
45
|
-
});
|
|
46
|
-
export function useCookie(name) {
|
|
47
|
-
const cookies = useCookies();
|
|
48
|
-
return cookies[name];
|
|
49
|
-
}
|
|
50
|
-
export const useBody = /* @__PURE__ */ memo(() => {
|
|
51
|
-
const type = useContextType();
|
|
52
|
-
const evt = useEvent(type);
|
|
53
|
-
if (!evt.body)
|
|
54
|
-
return;
|
|
55
|
-
const body = evt.isBase64Encoded
|
|
56
|
-
? Buffer.from(evt.body, "base64").toString()
|
|
57
|
-
: evt.body;
|
|
58
|
-
return body;
|
|
59
|
-
});
|
|
60
|
-
export const useJsonBody = /* @__PURE__ */ memo(() => {
|
|
61
|
-
const body = useBody();
|
|
62
|
-
if (!body)
|
|
63
|
-
return;
|
|
64
|
-
return JSON.parse(body);
|
|
65
|
-
});
|
|
66
|
-
export const useFormData = /* @__PURE__ */ memo(() => {
|
|
67
|
-
const body = useBody();
|
|
68
|
-
if (!body)
|
|
69
|
-
return;
|
|
70
|
-
const params = new URLSearchParams(body);
|
|
71
|
-
return params;
|
|
72
|
-
});
|
|
73
|
-
export const usePath = /* @__PURE__ */ memo(() => {
|
|
74
|
-
const evt = useEvent("api");
|
|
75
|
-
return evt.rawPath.split("/").filter(Boolean);
|
|
76
|
-
});
|
|
77
|
-
export const useResponse = /* @__PURE__ */ memo(() => {
|
|
78
|
-
const response = {
|
|
79
|
-
headers: {},
|
|
80
|
-
cookies: [],
|
|
81
|
-
};
|
|
82
|
-
const result = {
|
|
83
|
-
cookies(values, options) {
|
|
84
|
-
for (const [key, value] of Object.entries(values)) {
|
|
85
|
-
result.cookie({
|
|
86
|
-
key,
|
|
87
|
-
value,
|
|
88
|
-
...options,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
return result;
|
|
92
|
-
},
|
|
93
|
-
cookie(input) {
|
|
94
|
-
input = {
|
|
95
|
-
secure: true,
|
|
96
|
-
sameSite: "None",
|
|
97
|
-
httpOnly: true,
|
|
98
|
-
...input,
|
|
99
|
-
};
|
|
100
|
-
const value = encodeURIComponent(input.value);
|
|
101
|
-
const parts = [input.key + "=" + value];
|
|
102
|
-
if (input.domain)
|
|
103
|
-
parts.push("Domain=" + input.domain);
|
|
104
|
-
if (input.path)
|
|
105
|
-
parts.push("Path=" + input.path);
|
|
106
|
-
if (input.expires)
|
|
107
|
-
parts.push("Expires=" + input.expires.toUTCString());
|
|
108
|
-
if (input.maxAge)
|
|
109
|
-
parts.push("Max-Age=" + input.maxAge);
|
|
110
|
-
if (input.httpOnly)
|
|
111
|
-
parts.push("HttpOnly");
|
|
112
|
-
if (input.secure)
|
|
113
|
-
parts.push("Secure");
|
|
114
|
-
if (input.sameSite)
|
|
115
|
-
parts.push("SameSite=" + input.sameSite);
|
|
116
|
-
response.cookies.push(parts.join("; "));
|
|
117
|
-
return result;
|
|
118
|
-
},
|
|
119
|
-
status(code) {
|
|
120
|
-
response.statusCode = code;
|
|
121
|
-
return result;
|
|
122
|
-
},
|
|
123
|
-
header(key, value) {
|
|
124
|
-
response.headers[key] = value;
|
|
125
|
-
return result;
|
|
126
|
-
},
|
|
127
|
-
serialize(input) {
|
|
128
|
-
return {
|
|
129
|
-
...response,
|
|
130
|
-
...input,
|
|
131
|
-
cookies: [...(input.cookies || []), ...response.cookies],
|
|
132
|
-
headers: {
|
|
133
|
-
...response.headers,
|
|
134
|
-
...input.headers,
|
|
135
|
-
},
|
|
136
|
-
};
|
|
137
|
-
},
|
|
138
|
-
};
|
|
139
|
-
return result;
|
|
140
|
-
});
|
|
141
|
-
export function useDomainName() {
|
|
142
|
-
const type = useContextType();
|
|
143
|
-
const evt = useEvent(type);
|
|
144
|
-
return evt.requestContext.domainName;
|
|
145
|
-
}
|
|
146
|
-
export function useMethod() {
|
|
147
|
-
const evt = useEvent("api");
|
|
148
|
-
return evt.requestContext.http.method;
|
|
149
|
-
}
|
|
150
|
-
export function useHeaders() {
|
|
151
|
-
const type = useContextType();
|
|
152
|
-
const evt = useEvent(type);
|
|
153
|
-
return evt.headers || {};
|
|
154
|
-
}
|
|
155
|
-
export function useHeader(key) {
|
|
156
|
-
const headers = useHeaders();
|
|
157
|
-
return headers[key];
|
|
158
|
-
}
|
|
159
|
-
export function useFormValue(name) {
|
|
160
|
-
const params = useFormData();
|
|
161
|
-
return params?.get(name);
|
|
162
|
-
}
|
|
163
|
-
export function useQueryParams() {
|
|
164
|
-
const type = useContextType();
|
|
165
|
-
const evt = useEvent(type);
|
|
166
|
-
const query = evt.queryStringParameters || {};
|
|
167
|
-
return query;
|
|
168
|
-
}
|
|
169
|
-
export function useQueryParam(name) {
|
|
170
|
-
return useQueryParams()[name];
|
|
171
|
-
}
|
|
172
|
-
export function usePathParams() {
|
|
173
|
-
const evt = useEvent("api");
|
|
174
|
-
const path = evt.pathParameters || {};
|
|
175
|
-
return path;
|
|
176
|
-
}
|
|
177
|
-
export function usePathParam(name) {
|
|
178
|
-
return usePathParams()[name];
|
|
179
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Issuer } from "openid-client";
|
|
2
|
-
import { createAdapter } from "./adapter.js";
|
|
3
|
-
import { OauthAdapter } from "./oauth.js";
|
|
4
|
-
// Facebook's OIDC flow returns "id_token" as uri hash in redirect uri. Hashes
|
|
5
|
-
// are not passed to Lambda event object. It is likely that Facebook only wants
|
|
6
|
-
// to support redirecting to a frontend uri.
|
|
7
|
-
//
|
|
8
|
-
// We are only going to suppor the OAuth flow for now. More details about the flow:
|
|
9
|
-
// https://developers.facebook.com/docs/facebook-login/guides/advanced/oidc-token
|
|
10
|
-
//
|
|
11
|
-
// Also note that Facebook's discover uri does not work for the OAuth flow, as the
|
|
12
|
-
// token_endpoint and userinfo_endpoint are not included in the response.
|
|
13
|
-
// await Issuer.discover("https://www.facebook.com/.well-known/openid-configuration/");
|
|
14
|
-
const issuer = new Issuer({
|
|
15
|
-
issuer: "https://www.facebook.com",
|
|
16
|
-
authorization_endpoint: "https://facebook.com/dialog/oauth/",
|
|
17
|
-
jwks_uri: "https://www.facebook.com/.well-known/oauth/openid/jwks/",
|
|
18
|
-
token_endpoint: "https://graph.facebook.com/oauth/access_token",
|
|
19
|
-
userinfo_endpoint: "https://graph.facebook.com/oauth/access_token",
|
|
20
|
-
});
|
|
21
|
-
export const FacebookAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
22
|
-
return OauthAdapter({
|
|
23
|
-
issuer,
|
|
24
|
-
...config,
|
|
25
|
-
});
|
|
26
|
-
});
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Issuer } from "openid-client";
|
|
2
|
-
import { createAdapter } from "./adapter.js";
|
|
3
|
-
import { OauthAdapter } from "./oauth.js";
|
|
4
|
-
import { OidcAdapter } from "./oidc.js";
|
|
5
|
-
const issuer = new Issuer({
|
|
6
|
-
issuer: "https://github.com",
|
|
7
|
-
authorization_endpoint: "https://github.com/login/oauth/authorize",
|
|
8
|
-
token_endpoint: "https://github.com/login/oauth/access_token",
|
|
9
|
-
});
|
|
10
|
-
export const GithubAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
11
|
-
if (config.clientSecret) {
|
|
12
|
-
return OauthAdapter({
|
|
13
|
-
issuer,
|
|
14
|
-
...config,
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
return OidcAdapter({
|
|
18
|
-
issuer,
|
|
19
|
-
...config,
|
|
20
|
-
});
|
|
21
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { OauthBasicConfig } from "./oauth.js";
|
|
2
|
-
import { OidcBasicConfig } from "./oidc.js";
|
|
3
|
-
type GoogleConfig = (OauthBasicConfig & {
|
|
4
|
-
mode: "oauth";
|
|
5
|
-
}) | (OidcBasicConfig & {
|
|
6
|
-
mode: "oidc";
|
|
7
|
-
});
|
|
8
|
-
export declare const GoogleAdapter: (config: GoogleConfig) => () => Promise<import("aws-lambda").APIGatewayProxyStructuredResultV2>;
|
|
9
|
-
export {};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Issuer } from "openid-client";
|
|
2
|
-
import { createAdapter } from "./adapter.js";
|
|
3
|
-
import { OauthAdapter } from "./oauth.js";
|
|
4
|
-
import { OidcAdapter } from "./oidc.js";
|
|
5
|
-
const issuer = await Issuer.discover("https://accounts.google.com");
|
|
6
|
-
export const GoogleAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
7
|
-
if ("clientSecret" in config) {
|
|
8
|
-
return OauthAdapter({
|
|
9
|
-
issuer,
|
|
10
|
-
...config,
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
return OidcAdapter({
|
|
14
|
-
issuer,
|
|
15
|
-
scope: "openid email profile",
|
|
16
|
-
...config,
|
|
17
|
-
});
|
|
18
|
-
});
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { APIGatewayProxyStructuredResultV2 } from "aws-lambda";
|
|
2
|
-
interface LinkConfig {
|
|
3
|
-
onLink: (link: string, claims: Record<string, any>) => Promise<APIGatewayProxyStructuredResultV2>;
|
|
4
|
-
onSuccess: (claims: Record<string, any>) => Promise<APIGatewayProxyStructuredResultV2>;
|
|
5
|
-
onError: () => Promise<APIGatewayProxyStructuredResultV2>;
|
|
6
|
-
}
|
|
7
|
-
export declare const LinkAdapter: (config: LinkConfig) => () => Promise<APIGatewayProxyStructuredResultV2>;
|
|
8
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { createSigner, createVerifier } from "fast-jwt";
|
|
2
|
-
import { useDomainName, usePath, useQueryParam, useQueryParams, } from "../../api/index.js";
|
|
3
|
-
import { createAdapter } from "./adapter.js";
|
|
4
|
-
import { getPrivateKey, getPublicKey } from "../auth.js";
|
|
5
|
-
export const LinkAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
6
|
-
const signer = createSigner({
|
|
7
|
-
expiresIn: 1000 * 60 * 10,
|
|
8
|
-
key: getPrivateKey(),
|
|
9
|
-
algorithm: "RS512",
|
|
10
|
-
});
|
|
11
|
-
return async function () {
|
|
12
|
-
const [step] = usePath().slice(-1);
|
|
13
|
-
const callback = "https://" +
|
|
14
|
-
[useDomainName(), ...usePath().slice(0, -1), "callback"].join("/");
|
|
15
|
-
if (step === "authorize") {
|
|
16
|
-
const url = new URL(callback);
|
|
17
|
-
const claims = useQueryParams();
|
|
18
|
-
url.searchParams.append("token", signer(claims));
|
|
19
|
-
return config.onLink(url.toString(), claims);
|
|
20
|
-
}
|
|
21
|
-
if (step === "callback") {
|
|
22
|
-
const token = useQueryParam("token");
|
|
23
|
-
if (!token)
|
|
24
|
-
throw new Error("Missing token parameter");
|
|
25
|
-
try {
|
|
26
|
-
const verifier = createVerifier({
|
|
27
|
-
algorithms: ["RS512"],
|
|
28
|
-
key: getPublicKey(),
|
|
29
|
-
});
|
|
30
|
-
const jwt = verifier(token);
|
|
31
|
-
return config.onSuccess(jwt);
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
return config.onError();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
throw new Error("Invalid auth request");
|
|
38
|
-
};
|
|
39
|
-
});
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { APIGatewayProxyStructuredResultV2 } from "aws-lambda";
|
|
2
|
-
import { BaseClient, Issuer, TokenSet } from "openid-client";
|
|
3
|
-
export interface OauthBasicConfig {
|
|
4
|
-
/**
|
|
5
|
-
* The clientID provided by the third party oauth service
|
|
6
|
-
*/
|
|
7
|
-
clientID: string;
|
|
8
|
-
/**
|
|
9
|
-
* The clientSecret provided by the third party oauth service
|
|
10
|
-
*/
|
|
11
|
-
clientSecret: string;
|
|
12
|
-
/**
|
|
13
|
-
* Various scopes requested for the access token
|
|
14
|
-
*/
|
|
15
|
-
scope: string;
|
|
16
|
-
prompt?: string;
|
|
17
|
-
/**
|
|
18
|
-
* onSuccess callback when the oauth flow is successful. Will provide tokenset
|
|
19
|
-
*/
|
|
20
|
-
onSuccess: (tokenset: TokenSet, client: BaseClient) => Promise<APIGatewayProxyStructuredResultV2>;
|
|
21
|
-
}
|
|
22
|
-
export interface OauthConfig extends OauthBasicConfig {
|
|
23
|
-
issuer: Issuer;
|
|
24
|
-
}
|
|
25
|
-
export declare const OauthAdapter: (config: OauthConfig) => () => Promise<APIGatewayProxyStructuredResultV2>;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { generators } from "openid-client";
|
|
2
|
-
import { useCookie, useDomainName, usePath, useQueryParams, } from "../../api/index.js";
|
|
3
|
-
import { createAdapter } from "./adapter.js";
|
|
4
|
-
export const OauthAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
5
|
-
return async function () {
|
|
6
|
-
const [step] = usePath().slice(-1);
|
|
7
|
-
const callback = "https://" +
|
|
8
|
-
[useDomainName(), ...usePath().slice(0, -1), "callback"].join("/");
|
|
9
|
-
const client = new config.issuer.Client({
|
|
10
|
-
client_id: config.clientID,
|
|
11
|
-
client_secret: config.clientSecret,
|
|
12
|
-
redirect_uris: [callback],
|
|
13
|
-
response_types: ["code"],
|
|
14
|
-
});
|
|
15
|
-
if (step === "authorize") {
|
|
16
|
-
const code_verifier = generators.codeVerifier();
|
|
17
|
-
const state = generators.state();
|
|
18
|
-
const code_challenge = generators.codeChallenge(code_verifier);
|
|
19
|
-
const url = client.authorizationUrl({
|
|
20
|
-
scope: config.scope,
|
|
21
|
-
code_challenge: code_challenge,
|
|
22
|
-
code_challenge_method: "S256",
|
|
23
|
-
state,
|
|
24
|
-
prompt: config.prompt,
|
|
25
|
-
});
|
|
26
|
-
const expires = new Date(Date.now() + 1000 * 30).toUTCString();
|
|
27
|
-
return {
|
|
28
|
-
statusCode: 302,
|
|
29
|
-
cookies: [
|
|
30
|
-
`auth-code-verifier=${code_verifier}; HttpOnly; expires=${expires}`,
|
|
31
|
-
`auth-state=${state}; HttpOnly; expires=${expires}`,
|
|
32
|
-
],
|
|
33
|
-
headers: {
|
|
34
|
-
location: url,
|
|
35
|
-
},
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
if (step === "callback") {
|
|
39
|
-
const params = useQueryParams();
|
|
40
|
-
const code_verifier = useCookie("auth-code-verifier");
|
|
41
|
-
const state = useCookie("auth-state");
|
|
42
|
-
const tokenset = await client[config.issuer.metadata.userinfo_endpoint
|
|
43
|
-
? "callback"
|
|
44
|
-
: "oauthCallback"](callback, params, {
|
|
45
|
-
code_verifier,
|
|
46
|
-
state,
|
|
47
|
-
});
|
|
48
|
-
return config.onSuccess(tokenset, client);
|
|
49
|
-
}
|
|
50
|
-
throw new Error("Invalid auth request");
|
|
51
|
-
};
|
|
52
|
-
});
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { APIGatewayProxyStructuredResultV2 } from "aws-lambda";
|
|
2
|
-
import { BaseClient, Issuer, TokenSet } from "openid-client";
|
|
3
|
-
export interface OidcBasicConfig {
|
|
4
|
-
/**
|
|
5
|
-
* The clientID provided by the third party oauth service
|
|
6
|
-
*/
|
|
7
|
-
clientID: string;
|
|
8
|
-
/**
|
|
9
|
-
* onSuccess callback when the oauth flow is successful. Will provide tokenset
|
|
10
|
-
*/
|
|
11
|
-
onSuccess: (claims: TokenSet, client: BaseClient) => Promise<APIGatewayProxyStructuredResultV2>;
|
|
12
|
-
}
|
|
13
|
-
export interface OidcConfig extends OidcBasicConfig {
|
|
14
|
-
issuer: Issuer;
|
|
15
|
-
scope: string;
|
|
16
|
-
}
|
|
17
|
-
export declare const OidcAdapter: (config: OidcConfig) => () => Promise<APIGatewayProxyStructuredResultV2>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { generators } from "openid-client";
|
|
2
|
-
import { useCookie, useDomainName, useFormData, usePath, } from "../../api/index.js";
|
|
3
|
-
import { createAdapter } from "./adapter.js";
|
|
4
|
-
export const OidcAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
5
|
-
return async function () {
|
|
6
|
-
const [step] = usePath().slice(-1);
|
|
7
|
-
const callback = "https://" +
|
|
8
|
-
[useDomainName(), ...usePath().slice(0, -1), "callback"].join("/");
|
|
9
|
-
const client = new config.issuer.Client({
|
|
10
|
-
client_id: config.clientID,
|
|
11
|
-
redirect_uris: [callback],
|
|
12
|
-
response_types: ["id_token"],
|
|
13
|
-
});
|
|
14
|
-
if (step === "authorize") {
|
|
15
|
-
const nonce = generators.nonce();
|
|
16
|
-
const state = generators.state();
|
|
17
|
-
const url = client.authorizationUrl({
|
|
18
|
-
scope: config.scope,
|
|
19
|
-
response_mode: "form_post",
|
|
20
|
-
nonce,
|
|
21
|
-
state,
|
|
22
|
-
});
|
|
23
|
-
const expires = new Date(Date.now() + 1000 * 30).toUTCString();
|
|
24
|
-
return {
|
|
25
|
-
statusCode: 302,
|
|
26
|
-
cookies: [
|
|
27
|
-
`auth-nonce=${nonce}; HttpOnly; expires=${expires}`,
|
|
28
|
-
`auth-state=${state}; HttpOnly; expires=${expires}`,
|
|
29
|
-
],
|
|
30
|
-
headers: {
|
|
31
|
-
location: url,
|
|
32
|
-
},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
if (step === "callback") {
|
|
36
|
-
const form = useFormData();
|
|
37
|
-
if (!form)
|
|
38
|
-
throw new Error("Missing body");
|
|
39
|
-
const params = Object.fromEntries(form.entries());
|
|
40
|
-
const nonce = useCookie("auth-nonce");
|
|
41
|
-
const state = useCookie("auth-state");
|
|
42
|
-
const tokenset = await client.callback(callback, params, {
|
|
43
|
-
nonce,
|
|
44
|
-
state,
|
|
45
|
-
});
|
|
46
|
-
return config.onSuccess(tokenset, client);
|
|
47
|
-
}
|
|
48
|
-
throw new Error("Invalid auth request");
|
|
49
|
-
};
|
|
50
|
-
});
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Issuer } from "openid-client";
|
|
2
|
-
import { createAdapter } from "./adapter.js";
|
|
3
|
-
import { OidcAdapter } from "./oidc.js";
|
|
4
|
-
const issuer = await Issuer.discover("https://id.twitch.tv/oauth2");
|
|
5
|
-
export const TwitchAdapter = /* @__PURE__ */ createAdapter((config) => {
|
|
6
|
-
return OidcAdapter({
|
|
7
|
-
issuer,
|
|
8
|
-
scope: "openid",
|
|
9
|
-
...config,
|
|
10
|
-
});
|
|
11
|
-
});
|
package/node/auth/auth.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Adapter } from "./adapter/adapter.js";
|
|
2
|
-
export declare function getPublicKey(): string;
|
|
3
|
-
export declare function getPrivateKey(): string;
|
|
4
|
-
export declare function getPrefix(): string;
|
|
5
|
-
/**
|
|
6
|
-
* Create a new auth handler that can be used to create an authenticated session.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```ts
|
|
10
|
-
* export const handler = AuthHandler({
|
|
11
|
-
* providers: {
|
|
12
|
-
* google: {
|
|
13
|
-
* adapter: GoogleAdapter,
|
|
14
|
-
* clientId: "...",
|
|
15
|
-
* onSuccess: (claims) => {
|
|
16
|
-
* }
|
|
17
|
-
* }
|
|
18
|
-
* }
|
|
19
|
-
* })
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function AuthHandler<Providers extends Record<string, Adapter>>(config: {
|
|
23
|
-
providers: Providers;
|
|
24
|
-
}): (event: import("aws-lambda").APIGatewayProxyEventV2, context: import("aws-lambda").Context) => Promise<import("aws-lambda").APIGatewayProxyStructuredResultV2>;
|
package/node/auth/auth.js
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { getVariables2 } from "../util/index.js";
|
|
2
|
-
import { Handler } from "../../context/handler.js";
|
|
3
|
-
import { useDomainName, usePath } from "../api/index.js";
|
|
4
|
-
const className = "Auth";
|
|
5
|
-
// Each function can only be attached to one Auth construct, so we can
|
|
6
|
-
// assume there is only one entry in authData.
|
|
7
|
-
const authData = getVariables2(className);
|
|
8
|
-
const authValues = Object.values(authData);
|
|
9
|
-
let prefix;
|
|
10
|
-
let publicKey;
|
|
11
|
-
let privateKey;
|
|
12
|
-
if (authValues.length !== 0) {
|
|
13
|
-
prefix = authValues[0].prefix;
|
|
14
|
-
publicKey = authValues[0].publicKey;
|
|
15
|
-
privateKey = authValues[0].privateKey;
|
|
16
|
-
}
|
|
17
|
-
export function getPublicKey() {
|
|
18
|
-
if (!publicKey) {
|
|
19
|
-
throw new Error(`Cannot use ${className}.publicKey. Please make sure it is bound to this function.`);
|
|
20
|
-
}
|
|
21
|
-
return publicKey;
|
|
22
|
-
}
|
|
23
|
-
export function getPrivateKey() {
|
|
24
|
-
if (!privateKey) {
|
|
25
|
-
throw new Error(`Cannot use ${className}.privateKey. Please make sure it is bound to this function.`);
|
|
26
|
-
}
|
|
27
|
-
return privateKey;
|
|
28
|
-
}
|
|
29
|
-
export function getPrefix() {
|
|
30
|
-
if (!prefix) {
|
|
31
|
-
throw new Error(`Cannot use ${className}.prefix. Please make sure it is bound to this function.`);
|
|
32
|
-
}
|
|
33
|
-
return prefix;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Create a new auth handler that can be used to create an authenticated session.
|
|
37
|
-
*
|
|
38
|
-
* @example
|
|
39
|
-
* ```ts
|
|
40
|
-
* export const handler = AuthHandler({
|
|
41
|
-
* providers: {
|
|
42
|
-
* google: {
|
|
43
|
-
* adapter: GoogleAdapter,
|
|
44
|
-
* clientId: "...",
|
|
45
|
-
* onSuccess: (claims) => {
|
|
46
|
-
* }
|
|
47
|
-
* }
|
|
48
|
-
* }
|
|
49
|
-
* })
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
export function AuthHandler(config) {
|
|
53
|
-
return Handler("api", async () => {
|
|
54
|
-
const path = usePath();
|
|
55
|
-
const prefix = getPrefix().split("/").filter(Boolean).join("/");
|
|
56
|
-
if (path.join("/") === prefix) {
|
|
57
|
-
return {
|
|
58
|
-
statusCode: 200,
|
|
59
|
-
headers: {
|
|
60
|
-
"Content-Type": "application/json",
|
|
61
|
-
},
|
|
62
|
-
body: JSON.stringify(Object.fromEntries(Object.keys(config.providers).map((x) => [
|
|
63
|
-
x,
|
|
64
|
-
`https://${useDomainName()}/${prefix}/${x}/authorize`,
|
|
65
|
-
])), null, 4),
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
const [providerName] = path.slice(-2);
|
|
69
|
-
const provider = config.providers[providerName];
|
|
70
|
-
if (!provider)
|
|
71
|
-
throw new Error("No matching provider found");
|
|
72
|
-
return provider();
|
|
73
|
-
});
|
|
74
|
-
}
|
package/node/auth/index.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export * from "./auth.js";
|
|
2
|
-
export * from "./session.js";
|
|
3
|
-
export * from "./adapter/adapter.js";
|
|
4
|
-
export * from "./adapter/facebook.js";
|
|
5
|
-
export * from "./adapter/google.js";
|
|
6
|
-
export * from "./adapter/twitch.js";
|
|
7
|
-
export * from "./adapter/github.js";
|
|
8
|
-
export * from "./adapter/oidc.js";
|
|
9
|
-
export * from "./adapter/oauth.js";
|
|
10
|
-
export * from "./adapter/link.js";
|
|
11
|
-
export interface AuthResources {
|
|
12
|
-
}
|
|
13
|
-
export declare const Auth: AuthResources;
|
package/node/auth/index.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export * from "./auth.js";
|
|
2
|
-
export * from "./session.js";
|
|
3
|
-
export * from "./adapter/adapter.js";
|
|
4
|
-
export * from "./adapter/facebook.js";
|
|
5
|
-
export * from "./adapter/google.js";
|
|
6
|
-
export * from "./adapter/twitch.js";
|
|
7
|
-
export * from "./adapter/github.js";
|
|
8
|
-
export * from "./adapter/oidc.js";
|
|
9
|
-
export * from "./adapter/oauth.js";
|
|
10
|
-
export * from "./adapter/link.js";
|
|
11
|
-
import { createProxy } from "../util/index.js";
|
|
12
|
-
export const Auth = createProxy("Auth");
|