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
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import url from "url";
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import { Token, TagManager, TagType, Duration, Stack, CustomResource, Lazy, } from "aws-cdk-lib/core";
|
|
4
|
-
import * as iam from "aws-cdk-lib/aws-iam";
|
|
5
|
-
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
6
|
-
import { CertificateBase } from "./certificate-base.js";
|
|
7
|
-
const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
|
|
8
|
-
/**
|
|
9
|
-
* A certificate managed by AWS Certificate Manager. Will be automatically
|
|
10
|
-
* validated using DNS validation against the specified Route 53 hosted zone.
|
|
11
|
-
*
|
|
12
|
-
* @resource AWS::CertificateManager::Certificate
|
|
13
|
-
*/
|
|
14
|
-
export class DnsValidatedCertificate extends CertificateBase {
|
|
15
|
-
certificateArn;
|
|
16
|
-
/**
|
|
17
|
-
* Resource Tags.
|
|
18
|
-
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html#cfn-certificatemanager-certificate-tags
|
|
19
|
-
*/
|
|
20
|
-
tags;
|
|
21
|
-
region;
|
|
22
|
-
normalizedZoneName;
|
|
23
|
-
hostedZoneId;
|
|
24
|
-
domainName;
|
|
25
|
-
_removalPolicy;
|
|
26
|
-
constructor(scope, id, props) {
|
|
27
|
-
super(scope, id);
|
|
28
|
-
this.region = props.region;
|
|
29
|
-
this.domainName = props.domainName;
|
|
30
|
-
// check if domain name is 64 characters or less
|
|
31
|
-
if (!Token.isUnresolved(props.domainName) && props.domainName.length > 64) {
|
|
32
|
-
throw new Error("Domain name must be 64 characters or less");
|
|
33
|
-
}
|
|
34
|
-
this.normalizedZoneName = props.hostedZone.zoneName;
|
|
35
|
-
// Remove trailing `.` from zone name
|
|
36
|
-
if (this.normalizedZoneName.endsWith(".")) {
|
|
37
|
-
this.normalizedZoneName = this.normalizedZoneName.substring(0, this.normalizedZoneName.length - 1);
|
|
38
|
-
}
|
|
39
|
-
// Remove any `/hostedzone/` prefix from the Hosted Zone ID
|
|
40
|
-
this.hostedZoneId = props.hostedZone.hostedZoneId.replace(/^\/hostedzone\//, "");
|
|
41
|
-
this.tags = new TagManager(TagType.MAP, "AWS::CertificateManager::Certificate");
|
|
42
|
-
let certificateTransparencyLoggingPreference;
|
|
43
|
-
if (props.transparencyLoggingEnabled !== undefined) {
|
|
44
|
-
certificateTransparencyLoggingPreference =
|
|
45
|
-
props.transparencyLoggingEnabled ? "ENABLED" : "DISABLED";
|
|
46
|
-
}
|
|
47
|
-
const requestorFunction = new lambda.Function(this, "CertificateRequestorFunction", {
|
|
48
|
-
code: lambda.Code.fromAsset(path.join(__dirname, "../../support/certificate-requestor")),
|
|
49
|
-
handler: "index.certificateRequestHandler",
|
|
50
|
-
runtime: lambda.Runtime.NODEJS_16_X,
|
|
51
|
-
timeout: Duration.minutes(15),
|
|
52
|
-
role: props.customResourceRole,
|
|
53
|
-
});
|
|
54
|
-
requestorFunction.addToRolePolicy(new iam.PolicyStatement({
|
|
55
|
-
actions: [
|
|
56
|
-
"acm:RequestCertificate",
|
|
57
|
-
"acm:DescribeCertificate",
|
|
58
|
-
"acm:DeleteCertificate",
|
|
59
|
-
"acm:AddTagsToCertificate",
|
|
60
|
-
],
|
|
61
|
-
resources: ["*"],
|
|
62
|
-
}));
|
|
63
|
-
requestorFunction.addToRolePolicy(new iam.PolicyStatement({
|
|
64
|
-
actions: ["route53:GetChange"],
|
|
65
|
-
resources: ["*"],
|
|
66
|
-
}));
|
|
67
|
-
requestorFunction.addToRolePolicy(new iam.PolicyStatement({
|
|
68
|
-
actions: ["route53:changeResourceRecordSets"],
|
|
69
|
-
resources: [
|
|
70
|
-
`arn:${Stack.of(requestorFunction).partition}:route53:::hostedzone/${this.hostedZoneId}`,
|
|
71
|
-
],
|
|
72
|
-
conditions: {
|
|
73
|
-
"ForAllValues:StringEquals": {
|
|
74
|
-
"route53:ChangeResourceRecordSetsRecordTypes": ["CNAME"],
|
|
75
|
-
"route53:ChangeResourceRecordSetsActions": props.cleanupRoute53Records ? ["UPSERT", "DELETE"] : ["UPSERT"],
|
|
76
|
-
},
|
|
77
|
-
"ForAllValues:StringLike": {
|
|
78
|
-
"route53:ChangeResourceRecordSetsNormalizedRecordNames": [
|
|
79
|
-
addWildcard(props.domainName),
|
|
80
|
-
...(props.subjectAlternativeNames ?? []).map((d) => addWildcard(d)),
|
|
81
|
-
],
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
}));
|
|
85
|
-
const certificate = new CustomResource(this, "CertificateRequestorResource", {
|
|
86
|
-
serviceToken: requestorFunction.functionArn,
|
|
87
|
-
properties: {
|
|
88
|
-
DomainName: props.domainName,
|
|
89
|
-
SubjectAlternativeNames: Lazy.list({ produce: () => props.subjectAlternativeNames }, { omitEmpty: true }),
|
|
90
|
-
CertificateTransparencyLoggingPreference: certificateTransparencyLoggingPreference,
|
|
91
|
-
HostedZoneId: this.hostedZoneId,
|
|
92
|
-
Region: props.region,
|
|
93
|
-
Route53Endpoint: props.route53Endpoint,
|
|
94
|
-
RemovalPolicy: Lazy.any({ produce: () => this._removalPolicy }),
|
|
95
|
-
// Custom resources properties are always converted to strings; might as well be explict here.
|
|
96
|
-
CleanupRecords: props.cleanupRoute53Records ? "true" : undefined,
|
|
97
|
-
Tags: Lazy.list({ produce: () => this.tags.renderTags() }),
|
|
98
|
-
},
|
|
99
|
-
});
|
|
100
|
-
this.certificateArn = certificate.getAtt("Arn").toString();
|
|
101
|
-
this.node.addValidation({
|
|
102
|
-
validate: () => this.validateDnsValidatedCertificate(),
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
applyRemovalPolicy(policy) {
|
|
106
|
-
this._removalPolicy = policy;
|
|
107
|
-
}
|
|
108
|
-
validateDnsValidatedCertificate() {
|
|
109
|
-
const errors = [];
|
|
110
|
-
// Ensure the zone name is a parent zone of the certificate domain name
|
|
111
|
-
if (!Token.isUnresolved(this.normalizedZoneName) &&
|
|
112
|
-
this.domainName !== this.normalizedZoneName &&
|
|
113
|
-
!this.domainName.endsWith("." + this.normalizedZoneName)) {
|
|
114
|
-
errors.push(`DNS zone ${this.normalizedZoneName} is not authoritative for certificate domain name ${this.domainName}`);
|
|
115
|
-
}
|
|
116
|
-
return errors;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
// https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/specifying-rrset-conditions.html
|
|
120
|
-
function addWildcard(domainName) {
|
|
121
|
-
if (domainName.startsWith("*.")) {
|
|
122
|
-
return domainName;
|
|
123
|
-
}
|
|
124
|
-
return `*.${domainName}`;
|
|
125
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { ICertificate } from "aws-cdk-lib/aws-certificatemanager";
|
|
2
|
-
import { IHostedZone } from "aws-cdk-lib/aws-route53";
|
|
3
|
-
import { Construct } from "constructs";
|
|
4
|
-
/**
|
|
5
|
-
* Properties to configure an HTTPS Redirect
|
|
6
|
-
*/
|
|
7
|
-
export interface HttpsRedirectProps {
|
|
8
|
-
/**
|
|
9
|
-
* Hosted zone of the domain which will be used to create alias record(s) from
|
|
10
|
-
* domain names in the hosted zone to the target domain. The hosted zone must
|
|
11
|
-
* contain entries for the domain name(s) supplied through `recordNames` that
|
|
12
|
-
* will redirect to the target domain.
|
|
13
|
-
*
|
|
14
|
-
* Domain names in the hosted zone can include a specific domain (example.com)
|
|
15
|
-
* and its subdomains (acme.example.com, zenith.example.com).
|
|
16
|
-
*
|
|
17
|
-
*/
|
|
18
|
-
readonly zone: IHostedZone;
|
|
19
|
-
/**
|
|
20
|
-
* The redirect target fully qualified domain name (FQDN). An alias record
|
|
21
|
-
* will be created that points to your CloudFront distribution. Root domain
|
|
22
|
-
* or sub-domain can be supplied.
|
|
23
|
-
*/
|
|
24
|
-
readonly targetDomain: string;
|
|
25
|
-
/**
|
|
26
|
-
* The domain names that will redirect to `targetDomain`
|
|
27
|
-
*
|
|
28
|
-
* @default - the domain name of the hosted zone
|
|
29
|
-
*/
|
|
30
|
-
readonly recordNames?: string[];
|
|
31
|
-
/**
|
|
32
|
-
* The AWS Certificate Manager (ACM) certificate that will be associated with
|
|
33
|
-
* the CloudFront distribution that will be created. If provided, the certificate must be
|
|
34
|
-
* stored in us-east-1 (N. Virginia)
|
|
35
|
-
*
|
|
36
|
-
* @default - A new certificate is created in us-east-1 (N. Virginia)
|
|
37
|
-
*/
|
|
38
|
-
readonly certificate?: ICertificate;
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Allows creating a domainA -> domainB redirect using CloudFront and S3.
|
|
42
|
-
* You can specify multiple domains to be redirected.
|
|
43
|
-
*/
|
|
44
|
-
export declare class HttpsRedirect extends Construct {
|
|
45
|
-
constructor(scope: Construct, id: string, props: HttpsRedirectProps);
|
|
46
|
-
/**
|
|
47
|
-
* Creates a certificate.
|
|
48
|
-
*
|
|
49
|
-
* This is also safe to upgrade since the new certificate will be created and updated
|
|
50
|
-
* on the CloudFront distribution before the old one is deleted.
|
|
51
|
-
*/
|
|
52
|
-
private createCertificate;
|
|
53
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { CloudFrontWebDistribution, OriginProtocolPolicy, PriceClass, ViewerCertificate, ViewerProtocolPolicy, } from "aws-cdk-lib/aws-cloudfront";
|
|
2
|
-
import { ARecord, AaaaRecord, RecordTarget, } from "aws-cdk-lib/aws-route53";
|
|
3
|
-
import { CloudFrontTarget } from "aws-cdk-lib/aws-route53-targets";
|
|
4
|
-
import { BlockPublicAccess, Bucket, RedirectProtocol, } from "aws-cdk-lib/aws-s3";
|
|
5
|
-
import { ArnFormat, RemovalPolicy, Stack, Token } from "aws-cdk-lib/core";
|
|
6
|
-
import cdkHelpers from "aws-cdk-lib/core/lib/helpers-internal";
|
|
7
|
-
import { Construct } from "constructs";
|
|
8
|
-
import { DnsValidatedCertificate } from "./dns-validated-certificate.js";
|
|
9
|
-
const { md5hash } = cdkHelpers;
|
|
10
|
-
/**
|
|
11
|
-
* Allows creating a domainA -> domainB redirect using CloudFront and S3.
|
|
12
|
-
* You can specify multiple domains to be redirected.
|
|
13
|
-
*/
|
|
14
|
-
export class HttpsRedirect extends Construct {
|
|
15
|
-
constructor(scope, id, props) {
|
|
16
|
-
super(scope, id);
|
|
17
|
-
const domainNames = props.recordNames ?? [props.zone.zoneName];
|
|
18
|
-
if (props.certificate) {
|
|
19
|
-
const certificateRegion = Stack.of(this).splitArn(props.certificate.certificateArn, ArnFormat.SLASH_RESOURCE_NAME).region;
|
|
20
|
-
if (!Token.isUnresolved(certificateRegion) &&
|
|
21
|
-
certificateRegion !== "us-east-1") {
|
|
22
|
-
throw new Error(`The certificate must be in the us-east-1 region and the certificate you provided is in ${certificateRegion}.`);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const redirectCert = props.certificate ?? this.createCertificate(domainNames, props.zone);
|
|
26
|
-
const redirectBucket = new Bucket(this, "RedirectBucket", {
|
|
27
|
-
websiteRedirect: {
|
|
28
|
-
hostName: props.targetDomain,
|
|
29
|
-
protocol: RedirectProtocol.HTTPS,
|
|
30
|
-
},
|
|
31
|
-
removalPolicy: RemovalPolicy.DESTROY,
|
|
32
|
-
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
|
|
33
|
-
});
|
|
34
|
-
const redirectDist = new CloudFrontWebDistribution(this, "RedirectDistribution", {
|
|
35
|
-
defaultRootObject: "",
|
|
36
|
-
originConfigs: [
|
|
37
|
-
{
|
|
38
|
-
behaviors: [{ isDefaultBehavior: true }],
|
|
39
|
-
customOriginSource: {
|
|
40
|
-
domainName: redirectBucket.bucketWebsiteDomainName,
|
|
41
|
-
originProtocolPolicy: OriginProtocolPolicy.HTTP_ONLY,
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
],
|
|
45
|
-
viewerCertificate: ViewerCertificate.fromAcmCertificate(redirectCert, {
|
|
46
|
-
aliases: domainNames,
|
|
47
|
-
}),
|
|
48
|
-
comment: `Redirect to ${props.targetDomain} from ${domainNames.join(", ")}`,
|
|
49
|
-
priceClass: PriceClass.PRICE_CLASS_ALL,
|
|
50
|
-
viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
|
|
51
|
-
});
|
|
52
|
-
domainNames.forEach((domainName) => {
|
|
53
|
-
const hash = md5hash(domainName).slice(0, 6);
|
|
54
|
-
const aliasProps = {
|
|
55
|
-
recordName: domainName,
|
|
56
|
-
zone: props.zone,
|
|
57
|
-
target: RecordTarget.fromAlias(new CloudFrontTarget(redirectDist)),
|
|
58
|
-
};
|
|
59
|
-
new ARecord(this, `RedirectAliasRecord${hash}`, aliasProps);
|
|
60
|
-
new AaaaRecord(this, `RedirectAliasRecordSix${hash}`, aliasProps);
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Creates a certificate.
|
|
65
|
-
*
|
|
66
|
-
* This is also safe to upgrade since the new certificate will be created and updated
|
|
67
|
-
* on the CloudFront distribution before the old one is deleted.
|
|
68
|
-
*/
|
|
69
|
-
createCertificate(domainNames, zone) {
|
|
70
|
-
return new DnsValidatedCertificate(this, "RedirectCertificate", {
|
|
71
|
-
domainName: domainNames[0],
|
|
72
|
-
subjectAlternativeNames: domainNames,
|
|
73
|
-
hostedZone: zone,
|
|
74
|
-
region: "us-east-1",
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
package/constructs/context.d.ts
DELETED
package/constructs/context.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
const AppContext = (() => {
|
|
2
|
-
let app;
|
|
3
|
-
const children = new Map();
|
|
4
|
-
return {
|
|
5
|
-
set(input) {
|
|
6
|
-
children.clear();
|
|
7
|
-
app = input;
|
|
8
|
-
},
|
|
9
|
-
get current() {
|
|
10
|
-
return app;
|
|
11
|
-
},
|
|
12
|
-
createAppContext(cb) {
|
|
13
|
-
return () => {
|
|
14
|
-
const exists = children.get(cb);
|
|
15
|
-
if (exists)
|
|
16
|
-
return exists;
|
|
17
|
-
const val = cb();
|
|
18
|
-
children.set(cb, val);
|
|
19
|
-
return val;
|
|
20
|
-
};
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
})();
|
|
24
|
-
export function provideApp(app) {
|
|
25
|
-
AppContext.set(app);
|
|
26
|
-
}
|
|
27
|
-
export const createAppContext = AppContext.createAppContext;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { cpus } from "os";
|
|
2
|
-
import { Logger } from "../logger.js";
|
|
3
|
-
import { createAppContext } from "./context.js";
|
|
4
|
-
export const useDeferredTasks = createAppContext(() => {
|
|
5
|
-
const tasks = [];
|
|
6
|
-
return {
|
|
7
|
-
add(task) {
|
|
8
|
-
tasks.push(task);
|
|
9
|
-
},
|
|
10
|
-
async run() {
|
|
11
|
-
const coreNum = cpus().length;
|
|
12
|
-
const concurrency = Math.max(1, process.env.SST_BUILD_CONCURRENCY
|
|
13
|
-
? parseInt(process.env.SST_BUILD_CONCURRENCY, 10)
|
|
14
|
-
: coreNum - 1);
|
|
15
|
-
Logger.debug(`Running ${tasks.length} deferred tasks with concurrency: ${concurrency}`);
|
|
16
|
-
let remaining = tasks.length;
|
|
17
|
-
return new Promise((resolve, reject) => {
|
|
18
|
-
const runTask = () => {
|
|
19
|
-
// Get task
|
|
20
|
-
const task = tasks.shift();
|
|
21
|
-
if (!task) {
|
|
22
|
-
// all tasks completed
|
|
23
|
-
if (remaining === 0) {
|
|
24
|
-
resolve(true);
|
|
25
|
-
}
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
// Run task
|
|
29
|
-
task()
|
|
30
|
-
.then(() => {
|
|
31
|
-
remaining--;
|
|
32
|
-
runTask();
|
|
33
|
-
})
|
|
34
|
-
.catch((e) => {
|
|
35
|
-
reject(e);
|
|
36
|
-
});
|
|
37
|
-
};
|
|
38
|
-
// Run tasks in parallel
|
|
39
|
-
for (let i = 0; i < concurrency; i++) {
|
|
40
|
-
runTask();
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
},
|
|
44
|
-
};
|
|
45
|
-
});
|
|
@@ -1,309 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import * as s3 from "aws-cdk-lib/aws-s3";
|
|
3
|
-
import * as sqs from "aws-cdk-lib/aws-sqs";
|
|
4
|
-
import * as route53 from "aws-cdk-lib/aws-route53";
|
|
5
|
-
import * as cloudfront from "aws-cdk-lib/aws-cloudfront";
|
|
6
|
-
import * as acm from "aws-cdk-lib/aws-certificatemanager";
|
|
7
|
-
import { SSTConstruct } from "../Construct.js";
|
|
8
|
-
import { DistributionDomainProps } from "../Distribution.js";
|
|
9
|
-
import { BaseSiteCdkDistributionProps } from "../BaseSite.js";
|
|
10
|
-
import { Permissions } from "../util/permission.js";
|
|
11
|
-
import { FunctionBindingProps } from "../util/functionBinding.js";
|
|
12
|
-
export interface NextjsDomainProps extends DistributionDomainProps {
|
|
13
|
-
}
|
|
14
|
-
export interface NextjsCdkDistributionProps extends BaseSiteCdkDistributionProps {
|
|
15
|
-
}
|
|
16
|
-
export interface NextjsSiteProps {
|
|
17
|
-
/**
|
|
18
|
-
* Path to the directory where the website source is located.
|
|
19
|
-
*/
|
|
20
|
-
path: string;
|
|
21
|
-
/**
|
|
22
|
-
* Path to the next executable, typically in node_modules.
|
|
23
|
-
* This should be used if next is installed in a non-standard location.
|
|
24
|
-
*
|
|
25
|
-
* @default "./node_modules/.bin/next"
|
|
26
|
-
*/
|
|
27
|
-
nextBinPath?: string;
|
|
28
|
-
/**
|
|
29
|
-
* The customDomain for this website. SST supports domains that are hosted either on [Route 53](https://aws.amazon.com/route53/) or externally.
|
|
30
|
-
*
|
|
31
|
-
* Note that you can also migrate externally hosted domains to Route 53 by [following this guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/MigratingDNS.html).
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```js {3}
|
|
35
|
-
* new NextjsSite(stack, "Site", {
|
|
36
|
-
* path: "path/to/site",
|
|
37
|
-
* customDomain: "domain.com",
|
|
38
|
-
* });
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* ```js {3-6}
|
|
42
|
-
* new NextjsSite(stack, "Site", {
|
|
43
|
-
* path: "path/to/site",
|
|
44
|
-
* customDomain: {
|
|
45
|
-
* domainName: "domain.com",
|
|
46
|
-
* domainAlias: "www.domain.com",
|
|
47
|
-
* hostedZone: "domain.com"
|
|
48
|
-
* },
|
|
49
|
-
* });
|
|
50
|
-
* ```
|
|
51
|
-
*/
|
|
52
|
-
customDomain?: string | NextjsDomainProps;
|
|
53
|
-
/**
|
|
54
|
-
* An object with the key being the environment variable name.
|
|
55
|
-
*
|
|
56
|
-
* @example
|
|
57
|
-
* ```js {3-6}
|
|
58
|
-
* new NextjsSite(stack, "NextSite", {
|
|
59
|
-
* path: "path/to/site",
|
|
60
|
-
* environment: {
|
|
61
|
-
* API_URL: api.url,
|
|
62
|
-
* USER_POOL_CLIENT: auth.cognitoUserPoolClient.userPoolClientId,
|
|
63
|
-
* },
|
|
64
|
-
* });
|
|
65
|
-
* ```
|
|
66
|
-
*/
|
|
67
|
-
environment?: {
|
|
68
|
-
[key: string]: string;
|
|
69
|
-
};
|
|
70
|
-
defaults?: {
|
|
71
|
-
function?: {
|
|
72
|
-
timeout?: number;
|
|
73
|
-
memorySize?: number;
|
|
74
|
-
permissions?: Permissions;
|
|
75
|
-
/**
|
|
76
|
-
* The runtime environment.
|
|
77
|
-
* @default "nodejs18.x"
|
|
78
|
-
* @example
|
|
79
|
-
* ```js
|
|
80
|
-
* new Function(stack, "Function", {
|
|
81
|
-
* path: "path/to/site",
|
|
82
|
-
* runtime: "nodejs18.x",
|
|
83
|
-
* })
|
|
84
|
-
*```
|
|
85
|
-
*/
|
|
86
|
-
runtime?: "nodejs12.x" | "nodejs14.x" | "nodejs16.x" | "nodejs18.x";
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
/**
|
|
90
|
-
* When running `sst start`, a placeholder site is deployed. This is to ensure that the site content remains unchanged, and subsequent `sst start` can start up quickly.
|
|
91
|
-
*
|
|
92
|
-
* @example
|
|
93
|
-
* ```js {3}
|
|
94
|
-
* new NextjsSite(stack, "NextSite", {
|
|
95
|
-
* path: "path/to/site",
|
|
96
|
-
* disablePlaceholder: true,
|
|
97
|
-
* });
|
|
98
|
-
* ```
|
|
99
|
-
*/
|
|
100
|
-
disablePlaceholder?: boolean;
|
|
101
|
-
/**
|
|
102
|
-
* While deploying, SST waits for the CloudFront cache invalidation process to finish. This ensures that the new content will be served once the deploy command finishes. However, this process can sometimes take more than 5 mins. For non-prod environments it might make sense to pass in `false`. That'll skip waiting for the cache to invalidate and speed up the deploy process.
|
|
103
|
-
*/
|
|
104
|
-
waitForInvalidation?: boolean;
|
|
105
|
-
commandHooks?: {
|
|
106
|
-
/**
|
|
107
|
-
* Commands to run after building the Next.js app. Commands are chained with `&&`, and they are run inside the Next.js app folder.
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```js
|
|
111
|
-
* new NextjsSite(stack, "NextSite", {
|
|
112
|
-
* path: "path/to/site",
|
|
113
|
-
* commandHooks: {
|
|
114
|
-
* afterBuild: ["npx next-sitemap"],
|
|
115
|
-
* }
|
|
116
|
-
* });
|
|
117
|
-
* ```
|
|
118
|
-
*/
|
|
119
|
-
afterBuild?: string[];
|
|
120
|
-
};
|
|
121
|
-
cdk?: {
|
|
122
|
-
/**
|
|
123
|
-
* Allows you to override default id for this construct.
|
|
124
|
-
*/
|
|
125
|
-
id?: string;
|
|
126
|
-
/**
|
|
127
|
-
* Allows you to override default settings this construct uses internally to ceate the bucket
|
|
128
|
-
*/
|
|
129
|
-
bucket?: s3.BucketProps | s3.IBucket;
|
|
130
|
-
/**
|
|
131
|
-
* Pass in a value to override the default settings this construct uses to create the CDK `Distribution` internally.
|
|
132
|
-
*/
|
|
133
|
-
distribution?: NextjsCdkDistributionProps;
|
|
134
|
-
/**
|
|
135
|
-
* Override the default CloudFront cache policies created internally.
|
|
136
|
-
*/
|
|
137
|
-
cachePolicies?: {
|
|
138
|
-
staticCachePolicy?: cloudfront.ICachePolicy;
|
|
139
|
-
imageCachePolicy?: cloudfront.ICachePolicy;
|
|
140
|
-
lambdaCachePolicy?: cloudfront.ICachePolicy;
|
|
141
|
-
};
|
|
142
|
-
/**
|
|
143
|
-
* Override the default CloudFront image origin request policy created internally
|
|
144
|
-
*/
|
|
145
|
-
imageOriginRequestPolicy?: cloudfront.IOriginRequestPolicy;
|
|
146
|
-
/**
|
|
147
|
-
* Override the default settings this construct uses to create the CDK `Queue` internally.
|
|
148
|
-
*/
|
|
149
|
-
regenerationQueue?: sqs.QueueProps;
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/**
|
|
153
|
-
* The `NextjsSite` construct is a higher level CDK construct that makes it easy to create a Next.js app.
|
|
154
|
-
*
|
|
155
|
-
* @example
|
|
156
|
-
*
|
|
157
|
-
* Deploys a Next.js app in the `path/to/site` directory.
|
|
158
|
-
*
|
|
159
|
-
* ```js
|
|
160
|
-
* new NextjsSite(stack, "NextSite", {
|
|
161
|
-
* path: "path/to/site",
|
|
162
|
-
* });
|
|
163
|
-
* ```
|
|
164
|
-
*/
|
|
165
|
-
export declare class NextjsSite extends Construct implements SSTConstruct {
|
|
166
|
-
readonly id: string;
|
|
167
|
-
/**
|
|
168
|
-
* The default CloudFront cache policy properties for static pages.
|
|
169
|
-
*/
|
|
170
|
-
static staticCachePolicyProps: cloudfront.CachePolicyProps;
|
|
171
|
-
/**
|
|
172
|
-
* The default CloudFront cache policy properties for images.
|
|
173
|
-
*/
|
|
174
|
-
static imageCachePolicyProps: cloudfront.CachePolicyProps;
|
|
175
|
-
/**
|
|
176
|
-
* The default CloudFront cache policy properties for Lambda@Edge.
|
|
177
|
-
*/
|
|
178
|
-
static lambdaCachePolicyProps: cloudfront.CachePolicyProps;
|
|
179
|
-
/**
|
|
180
|
-
* The default CloudFront image origin request policy properties for Lambda@Edge.
|
|
181
|
-
*/
|
|
182
|
-
static imageOriginRequestPolicyProps: cloudfront.OriginRequestPolicyProps;
|
|
183
|
-
readonly cdk: {
|
|
184
|
-
/**
|
|
185
|
-
* The internally created CDK `Bucket` instance.
|
|
186
|
-
*/
|
|
187
|
-
bucket: s3.Bucket;
|
|
188
|
-
/**
|
|
189
|
-
* The internally created CDK `Queue` instance.
|
|
190
|
-
*/
|
|
191
|
-
regenerationQueue: sqs.Queue;
|
|
192
|
-
/**
|
|
193
|
-
* The internally created CDK `Distribution` instance.
|
|
194
|
-
*/
|
|
195
|
-
distribution: cloudfront.Distribution;
|
|
196
|
-
/**
|
|
197
|
-
* The Route 53 hosted zone for the custom domain.
|
|
198
|
-
*/
|
|
199
|
-
hostedZone?: route53.IHostedZone;
|
|
200
|
-
/**
|
|
201
|
-
* The AWS Certificate Manager certificate for the custom domain.
|
|
202
|
-
*/
|
|
203
|
-
certificate?: acm.ICertificate;
|
|
204
|
-
};
|
|
205
|
-
/**
|
|
206
|
-
* The root SST directory used for builds.
|
|
207
|
-
*/
|
|
208
|
-
private sstBuildDir;
|
|
209
|
-
private props;
|
|
210
|
-
private isPlaceholder;
|
|
211
|
-
private buildOutDir;
|
|
212
|
-
private assets;
|
|
213
|
-
private awsCliLayer;
|
|
214
|
-
private routesManifest;
|
|
215
|
-
private edgeLambdaRole;
|
|
216
|
-
private mainFunctionVersion;
|
|
217
|
-
private apiFunctionVersion;
|
|
218
|
-
private imageFunctionVersion;
|
|
219
|
-
private regenerationFunction;
|
|
220
|
-
constructor(scope: Construct, id: string, props: NextjsSiteProps);
|
|
221
|
-
/**
|
|
222
|
-
* The CloudFront URL of the website.
|
|
223
|
-
*/
|
|
224
|
-
get url(): string;
|
|
225
|
-
/**
|
|
226
|
-
* If the custom domain is enabled, this is the URL of the website with the custom domain.
|
|
227
|
-
*/
|
|
228
|
-
get customDomainUrl(): string | undefined;
|
|
229
|
-
/**
|
|
230
|
-
* The ARN of the internally created S3 Bucket.
|
|
231
|
-
*/
|
|
232
|
-
get bucketArn(): string;
|
|
233
|
-
/**
|
|
234
|
-
* The name of the internally created S3 Bucket.
|
|
235
|
-
*/
|
|
236
|
-
get bucketName(): string;
|
|
237
|
-
/**
|
|
238
|
-
* The ID of the internally created CloudFront Distribution.
|
|
239
|
-
*/
|
|
240
|
-
get distributionId(): string;
|
|
241
|
-
/**
|
|
242
|
-
* The domain name of the internally created CloudFront Distribution.
|
|
243
|
-
*/
|
|
244
|
-
get distributionDomain(): string;
|
|
245
|
-
/**
|
|
246
|
-
* Attaches the given list of permissions to allow the Next.js API routes and Server Side rendering `getServerSideProps` to access other AWS resources.
|
|
247
|
-
* @example
|
|
248
|
-
* ### Attaching permissions
|
|
249
|
-
*
|
|
250
|
-
* ```js {5}
|
|
251
|
-
* const site = new NextjsSite(stack, "Site", {
|
|
252
|
-
* path: "path/to/site",
|
|
253
|
-
* });
|
|
254
|
-
*
|
|
255
|
-
* site.attachPermissions(["sns"]);
|
|
256
|
-
* ```
|
|
257
|
-
*/
|
|
258
|
-
attachPermissions(permissions: Permissions): void;
|
|
259
|
-
getConstructMetadata(): {
|
|
260
|
-
type: "SlsNextjsSite";
|
|
261
|
-
data: {
|
|
262
|
-
path: string;
|
|
263
|
-
environment: {
|
|
264
|
-
[key: string]: string;
|
|
265
|
-
};
|
|
266
|
-
distributionId: string;
|
|
267
|
-
customDomainUrl: string | undefined;
|
|
268
|
-
};
|
|
269
|
-
};
|
|
270
|
-
/** @internal */
|
|
271
|
-
getFunctionBinding(): FunctionBindingProps;
|
|
272
|
-
private zipAppAssets;
|
|
273
|
-
private zipAppStubAssets;
|
|
274
|
-
private createEdgeFunction;
|
|
275
|
-
private createEdgeFunctionInUE1;
|
|
276
|
-
private createEdgeFunctionInNonUE1;
|
|
277
|
-
private createEdgeFunctionRole;
|
|
278
|
-
private createRegenerationQueue;
|
|
279
|
-
private createRegenerationFunction;
|
|
280
|
-
private createLambdaCodeReplacer;
|
|
281
|
-
private createS3Bucket;
|
|
282
|
-
private createS3Deployment;
|
|
283
|
-
private buildApp;
|
|
284
|
-
private runBuild;
|
|
285
|
-
private runAfterBuild;
|
|
286
|
-
private createCloudFrontDistribution;
|
|
287
|
-
private createCloudFrontStaticCachePolicy;
|
|
288
|
-
private createCloudFrontImageCachePolicy;
|
|
289
|
-
private createCloudFrontLambdaCachePolicy;
|
|
290
|
-
private createCloudFrontImageOriginRequestPolicy;
|
|
291
|
-
private createCloudFrontInvalidation;
|
|
292
|
-
protected validateCustomDomainSettings(): void;
|
|
293
|
-
protected lookupHostedZone(): route53.IHostedZone | undefined;
|
|
294
|
-
private createCertificate;
|
|
295
|
-
protected createRoute53Records(): void;
|
|
296
|
-
private pathPattern;
|
|
297
|
-
private readRoutesManifest;
|
|
298
|
-
private getS3ContentReplaceValues;
|
|
299
|
-
private getLambdaContentReplaceValues;
|
|
300
|
-
private normalizeRuntime;
|
|
301
|
-
}
|
|
302
|
-
export declare const useSites: () => {
|
|
303
|
-
add(stack: string, name: string, props: NextjsSiteProps): void;
|
|
304
|
-
readonly all: {
|
|
305
|
-
stack: string;
|
|
306
|
-
name: string;
|
|
307
|
-
props: NextjsSiteProps;
|
|
308
|
-
}[];
|
|
309
|
-
};
|