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/package.json
CHANGED
|
@@ -1,148 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "sst",
|
|
4
|
-
"version": "3.0.
|
|
5
|
-
"bin": {
|
|
6
|
-
"sst": "cli/sst.js"
|
|
7
|
-
},
|
|
8
|
-
"description": "A CLI to help deploy SST apps.",
|
|
9
|
-
"type": "module",
|
|
10
|
-
"license": "MIT",
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/sst/sst.git",
|
|
14
|
-
"directory": "packages/cli"
|
|
15
|
-
},
|
|
4
|
+
"version": "3.0.1-2",
|
|
16
5
|
"exports": {
|
|
17
|
-
"
|
|
18
|
-
"./constructs/future": "./constructs/future/index.js",
|
|
19
|
-
"./constructs": "./constructs/index.js",
|
|
20
|
-
"./context": "./context/index.js",
|
|
21
|
-
"./node/future/*": "./node/future/*/index.js",
|
|
22
|
-
"./node/*": "./node/*/index.js",
|
|
23
|
-
".": "./index.js",
|
|
24
|
-
"./*": "./*"
|
|
25
|
-
},
|
|
26
|
-
"homepage": "https://sst.dev",
|
|
27
|
-
"dependencies": {
|
|
28
|
-
"@aws-cdk/aws-apigatewayv2-alpha": "^2.95.1-alpha.0",
|
|
29
|
-
"@aws-cdk/aws-apigatewayv2-authorizers-alpha": "^2.95.1-alpha.0",
|
|
30
|
-
"@aws-cdk/aws-apigatewayv2-integrations-alpha": "^2.95.1-alpha.0",
|
|
31
|
-
"@aws-cdk/cloud-assembly-schema": "2.95.1",
|
|
32
|
-
"@aws-cdk/cloudformation-diff": "2.95.1",
|
|
33
|
-
"@aws-cdk/cx-api": "2.95.1",
|
|
34
|
-
"@aws-crypto/sha256-js": "^5.0.0",
|
|
35
|
-
"@aws-sdk/client-cloudformation": "^3.405.0",
|
|
36
|
-
"@aws-sdk/client-ecs": "^3.405.0",
|
|
37
|
-
"@aws-sdk/client-eventbridge": "^3.405.0",
|
|
38
|
-
"@aws-sdk/client-iam": "^3.405.0",
|
|
39
|
-
"@aws-sdk/client-iot": "^3.405.0",
|
|
40
|
-
"@aws-sdk/client-iot-data-plane": "^3.405.0",
|
|
41
|
-
"@aws-sdk/client-lambda": "^3.405.0",
|
|
42
|
-
"@aws-sdk/client-rds-data": "^3.405.0",
|
|
43
|
-
"@aws-sdk/client-s3": "^3.405.0",
|
|
44
|
-
"@aws-sdk/client-ssm": "^3.405.0",
|
|
45
|
-
"@aws-sdk/client-sts": "^3.405.0",
|
|
46
|
-
"@aws-sdk/config-resolver": "^3.374.0",
|
|
47
|
-
"@aws-sdk/credential-providers": "^3.405.0",
|
|
48
|
-
"@aws-sdk/middleware-retry": "^3.374.0",
|
|
49
|
-
"@aws-sdk/middleware-signing": "^3.398.0",
|
|
50
|
-
"@aws-sdk/signature-v4-crt": "^3.398.0",
|
|
51
|
-
"@aws-sdk/smithy-client": "^3.374.0",
|
|
52
|
-
"@babel/core": "^7.0.0-0",
|
|
53
|
-
"@babel/generator": "^7.20.5",
|
|
54
|
-
"@babel/plugin-syntax-typescript": "^7.21.4",
|
|
55
|
-
"@smithy/signature-v4": "^2.0.4",
|
|
56
|
-
"@trpc/server": "9.16.0",
|
|
57
|
-
"adm-zip": "^0.5.10",
|
|
58
|
-
"aws-cdk-lib": "2.95.1",
|
|
59
|
-
"aws-iot-device-sdk": "^2.2.12",
|
|
60
|
-
"aws-sdk": "^2.1326.0",
|
|
61
|
-
"builtin-modules": "3.2.0",
|
|
62
|
-
"cdk-assets": "2.95.1",
|
|
63
|
-
"chalk": "^5.2.0",
|
|
64
|
-
"chokidar": "^3.5.3",
|
|
65
|
-
"ci-info": "^3.7.0",
|
|
66
|
-
"colorette": "^2.0.19",
|
|
67
|
-
"conf": "^10.2.0",
|
|
68
|
-
"constructs": "10.2.69",
|
|
69
|
-
"cross-spawn": "^7.0.3",
|
|
70
|
-
"dendriform-immer-patch-optimiser": "^2.1.0",
|
|
71
|
-
"dotenv": "^16.0.3",
|
|
72
|
-
"esbuild": "0.18.13",
|
|
73
|
-
"express": "^4.18.2",
|
|
74
|
-
"fast-jwt": "^3.1.1",
|
|
75
|
-
"get-port": "^6.1.2",
|
|
76
|
-
"glob": "^8.0.3",
|
|
77
|
-
"graphql": "*",
|
|
78
|
-
"graphql-yoga": "^3.9.0",
|
|
79
|
-
"immer": "9",
|
|
80
|
-
"ink": "^4.0.0",
|
|
81
|
-
"ink-spinner": "^5.0.0",
|
|
82
|
-
"kysely": "^0.25.0",
|
|
83
|
-
"kysely-codegen": "^0.10.1",
|
|
84
|
-
"kysely-data-api": "^0.2.1",
|
|
85
|
-
"minimatch": "^6.1.6",
|
|
86
|
-
"openid-client": "^5.1.8",
|
|
87
|
-
"ora": "^6.1.2",
|
|
88
|
-
"react": "18.2.0",
|
|
89
|
-
"remeda": "^1.3.0",
|
|
90
|
-
"sst-aws-cdk": "2.91.0",
|
|
91
|
-
"tree-kill": "^1.2.2",
|
|
92
|
-
"undici": "^5.12.0",
|
|
93
|
-
"uuid": "^9.0.0",
|
|
94
|
-
"ws": "^8.11.0",
|
|
95
|
-
"yargs": "^17.6.2",
|
|
96
|
-
"zod": "^3.21.4"
|
|
6
|
+
"./*": "./dist/*.js"
|
|
97
7
|
},
|
|
98
8
|
"devDependencies": {
|
|
99
|
-
"@
|
|
100
|
-
"@
|
|
101
|
-
"
|
|
102
|
-
"@aws-sdk/client-sqs": "^3.341.0",
|
|
103
|
-
"@aws-sdk/types": "^3.272.0",
|
|
104
|
-
"@graphql-tools/merge": "^8.3.16",
|
|
105
|
-
"@sls-next/lambda-at-edge": "^3.7.0",
|
|
106
|
-
"@smithy/types": "^2.2.2",
|
|
107
|
-
"@tsconfig/node16": "^1.0.3",
|
|
108
|
-
"@types/adm-zip": "^0.5.0",
|
|
109
|
-
"@types/aws-iot-device-sdk": "^2.2.4",
|
|
110
|
-
"@types/aws-lambda": "^8.10.108",
|
|
111
|
-
"@types/babel__core": "^7.1.20",
|
|
112
|
-
"@types/babel__generator": "^7.6.4",
|
|
113
|
-
"@types/cross-spawn": "^6.0.2",
|
|
114
|
-
"@types/express": "^4.17.14",
|
|
115
|
-
"@types/glob": "^8.0.0",
|
|
116
|
-
"@types/node": "^18.11.9",
|
|
117
|
-
"@types/react": "^17.0.33",
|
|
118
|
-
"@types/uuid": "^8.3.4",
|
|
119
|
-
"@types/ws": "^8.5.3",
|
|
120
|
-
"@types/yargs": "^17.0.13",
|
|
121
|
-
"archiver": "^5.3.1",
|
|
122
|
-
"tsx": "^3.12.1",
|
|
123
|
-
"typescript": "^5.2.2",
|
|
124
|
-
"vitest": "^0.33.0"
|
|
125
|
-
},
|
|
126
|
-
"peerDependencies": {
|
|
127
|
-
"@sls-next/lambda-at-edge": "^3.7.0"
|
|
128
|
-
},
|
|
129
|
-
"peerDependenciesMeta": {
|
|
130
|
-
"@sls-next/lambda-at-edge": {
|
|
131
|
-
"optional": true
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
"bugs": {
|
|
135
|
-
"url": "https://github.com/sst/sst/issues"
|
|
136
|
-
},
|
|
137
|
-
"main": "index.js",
|
|
138
|
-
"directories": {
|
|
139
|
-
"test": "test"
|
|
9
|
+
"@tsconfig/node18": "^18.2.2",
|
|
10
|
+
"@types/node": "^20.11.0",
|
|
11
|
+
"typescript": "^5.3.3"
|
|
140
12
|
},
|
|
141
|
-
"keywords": [],
|
|
142
|
-
"author": "",
|
|
143
13
|
"scripts": {
|
|
144
|
-
"build": "
|
|
145
|
-
"
|
|
146
|
-
"dev": "tsc -w"
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"release": "pnpm build && pnpm version prerelease && pnpm publish --no-git-checks --tag=ion --access=public"
|
|
147
16
|
}
|
|
148
17
|
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./resource.js";
|
package/src/resource.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface Resource {
|
|
2
|
+
[key: string]: any;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
declare global {
|
|
6
|
+
export const $SST_LINKS: Resource;
|
|
7
|
+
}
|
|
8
|
+
export const Resource = new Proxy($SST_LINKS, {
|
|
9
|
+
get(target, prop: string) {
|
|
10
|
+
if (!(prop in target)) {
|
|
11
|
+
throw new Error(`"${prop}" is not linked`);
|
|
12
|
+
}
|
|
13
|
+
return target[prop];
|
|
14
|
+
},
|
|
15
|
+
}) as Resource;
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/tsconfig",
|
|
3
|
+
"extends": "@tsconfig/node18/tsconfig.json",
|
|
4
|
+
"compilerOptions": {
|
|
5
|
+
"outDir": "dist",
|
|
6
|
+
"module": "NodeNext",
|
|
7
|
+
"moduleResolution": "NodeNext",
|
|
8
|
+
"isolatedModules": true,
|
|
9
|
+
"downlevelIteration": true,
|
|
10
|
+
}
|
|
11
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2020 SST
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
package/README.md
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# sst
|
|
2
|
-
|
|
3
|
-
[SST](https://sst.dev) makes it easy to build modern full-stack applications on AWS.
|
|
4
|
-
|
|
5
|
-
The `sst` package is made up of the following.
|
|
6
|
-
|
|
7
|
-
- [`sst`](https://docs.sst.dev/packages/sst) CLI
|
|
8
|
-
- [`sst/node`](https://docs.sst.dev/clients) Node.js client
|
|
9
|
-
- [`sst/constructs`](https://docs.sst.dev/constructs) CDK constructs
|
|
10
|
-
|
|
11
|
-
## Installation
|
|
12
|
-
|
|
13
|
-
Install the `sst` package in your project root.
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install sst --save-exact
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
## Usage
|
|
20
|
-
|
|
21
|
-
Once installed, you can run the CLI commands using.
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npx sst <command>
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Import the Node.js client in your functions. For example, you can import the `Bucket` client.
|
|
28
|
-
|
|
29
|
-
```ts
|
|
30
|
-
import { Bucket } from "sst/node/bucket";
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
And import the constructs you need in your stacks code. For example, you can add an API.
|
|
34
|
-
|
|
35
|
-
```ts
|
|
36
|
-
import { Api } from "sst/constructs";
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
For more details, [head over to our docs](https://docs.sst.dev).
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
**Join our community** [Discord](https://sst.dev/discord) | [YouTube](https://www.youtube.com/c/sst-dev) | [Twitter](https://twitter.com/SST_dev)
|
package/bootstrap.d.ts
DELETED
package/bootstrap.js
DELETED
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
import url from "url";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { bold, dim } from "colorette";
|
|
4
|
-
import { spawn } from "child_process";
|
|
5
|
-
import { DescribeStacksCommand, CloudFormationClient, } from "@aws-sdk/client-cloudformation";
|
|
6
|
-
import { App, DefaultStackSynthesizer, Duration, CfnOutput, Tags, Stack, RemovalPolicy, } from "aws-cdk-lib/core";
|
|
7
|
-
import { Function, Runtime, Code } from "aws-cdk-lib/aws-lambda";
|
|
8
|
-
import { ManagedPolicy, PermissionsBoundary, PolicyStatement, } from "aws-cdk-lib/aws-iam";
|
|
9
|
-
import { Rule } from "aws-cdk-lib/aws-events";
|
|
10
|
-
import { LambdaFunction } from "aws-cdk-lib/aws-events-targets";
|
|
11
|
-
import { BlockPublicAccess, Bucket, BucketEncryption, } from "aws-cdk-lib/aws-s3";
|
|
12
|
-
import { useProject } from "./project.js";
|
|
13
|
-
import { createSpinner } from "./cli/spinner.js";
|
|
14
|
-
import { useAWSClient, useAWSCredentials, useSTSIdentity, } from "./credentials.js";
|
|
15
|
-
import { VisibleError } from "./error.js";
|
|
16
|
-
import { Logger } from "./logger.js";
|
|
17
|
-
import { Stacks } from "./stacks/index.js";
|
|
18
|
-
import { lazy } from "./util/lazy.js";
|
|
19
|
-
const CDK_STACK_NAME = "CDKToolkit";
|
|
20
|
-
const SST_STACK_NAME = "SSTBootstrap";
|
|
21
|
-
const OUTPUT_VERSION = "Version";
|
|
22
|
-
const OUTPUT_BUCKET = "BucketName";
|
|
23
|
-
const LATEST_VERSION = "7.2";
|
|
24
|
-
const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
|
|
25
|
-
export const useBootstrap = lazy(async () => {
|
|
26
|
-
Logger.debug("Initializing bootstrap context");
|
|
27
|
-
let [cdkStatus, sstStatus] = await Promise.all([
|
|
28
|
-
loadCDKStatus(),
|
|
29
|
-
loadSSTStatus(),
|
|
30
|
-
]);
|
|
31
|
-
Logger.debug("Loaded bootstrap status");
|
|
32
|
-
const needToBootstrapCDK = cdkStatus.status !== "ready";
|
|
33
|
-
const needToBootstrapSST = sstStatus.status !== "ready";
|
|
34
|
-
if (needToBootstrapCDK || needToBootstrapSST) {
|
|
35
|
-
const spinner = createSpinner(cdkStatus.status === "bootstrap" || sstStatus.status === "bootstrap"
|
|
36
|
-
? "Deploying bootstrap stack, this only needs to happen once"
|
|
37
|
-
: "Updating bootstrap stack").start();
|
|
38
|
-
if (needToBootstrapCDK) {
|
|
39
|
-
await bootstrapCDK();
|
|
40
|
-
// fetch bootstrap status
|
|
41
|
-
cdkStatus = await loadCDKStatus();
|
|
42
|
-
if (cdkStatus.status !== "ready")
|
|
43
|
-
throw new VisibleError("Failed to load bootstrap stack status");
|
|
44
|
-
}
|
|
45
|
-
if (needToBootstrapSST) {
|
|
46
|
-
await bootstrapSST(cdkStatus.bucket);
|
|
47
|
-
// fetch bootstrap status
|
|
48
|
-
sstStatus = await loadSSTStatus();
|
|
49
|
-
if (sstStatus.status !== "ready")
|
|
50
|
-
throw new VisibleError("Failed to load bootstrap stack status");
|
|
51
|
-
}
|
|
52
|
-
spinner.succeed();
|
|
53
|
-
}
|
|
54
|
-
Logger.debug("Bootstrap context initialized", sstStatus);
|
|
55
|
-
return sstStatus;
|
|
56
|
-
});
|
|
57
|
-
async function loadCDKStatus() {
|
|
58
|
-
const { cdk } = useProject().config;
|
|
59
|
-
const client = useAWSClient(CloudFormationClient);
|
|
60
|
-
const stackName = cdk?.toolkitStackName || CDK_STACK_NAME;
|
|
61
|
-
try {
|
|
62
|
-
const { Stacks: stacks } = await client.send(new DescribeStacksCommand({ StackName: stackName }));
|
|
63
|
-
// Check CDK bootstrap stack exists
|
|
64
|
-
if (!stacks || stacks.length === 0)
|
|
65
|
-
return { status: "bootstrap" };
|
|
66
|
-
// Check CDK bootstrap stack deployed successfully
|
|
67
|
-
if (![
|
|
68
|
-
"CREATE_COMPLETE",
|
|
69
|
-
"UPDATE_COMPLETE",
|
|
70
|
-
"UPDATE_ROLLBACK_COMPLETE",
|
|
71
|
-
].includes(stacks[0].StackStatus)) {
|
|
72
|
-
return { status: "bootstrap" };
|
|
73
|
-
}
|
|
74
|
-
// Check CDK bootstrap stack is up to date
|
|
75
|
-
// note: there is no a programmatical way to get the minimal required version
|
|
76
|
-
// of CDK bootstrap stack. We are going to hardcode it to 14 for now,
|
|
77
|
-
// which is the latest version as of CDK v2.62.2
|
|
78
|
-
let version;
|
|
79
|
-
let bucket;
|
|
80
|
-
const output = stacks[0].Outputs?.forEach((o) => {
|
|
81
|
-
if (o.OutputKey === "BootstrapVersion") {
|
|
82
|
-
version = parseInt(o.OutputValue);
|
|
83
|
-
}
|
|
84
|
-
else if (o.OutputKey === "BucketName") {
|
|
85
|
-
bucket = o.OutputValue;
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
if (!version || version < 14 || !bucket) {
|
|
89
|
-
return { status: "update" };
|
|
90
|
-
}
|
|
91
|
-
return { status: "ready", version, bucket };
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
if (e.name === "ValidationError" &&
|
|
95
|
-
e.message === `Stack with id ${stackName} does not exist`) {
|
|
96
|
-
return { status: "bootstrap" };
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
throw e;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
async function loadSSTStatus() {
|
|
104
|
-
// Get bootstrap CloudFormation stack
|
|
105
|
-
const { bootstrap } = useProject().config;
|
|
106
|
-
const cf = useAWSClient(CloudFormationClient);
|
|
107
|
-
const stackName = bootstrap?.stackName || SST_STACK_NAME;
|
|
108
|
-
let result;
|
|
109
|
-
try {
|
|
110
|
-
result = await cf.send(new DescribeStacksCommand({
|
|
111
|
-
StackName: stackName,
|
|
112
|
-
}));
|
|
113
|
-
}
|
|
114
|
-
catch (e) {
|
|
115
|
-
if (e.Code === "ValidationError" &&
|
|
116
|
-
e.message === `Stack with id ${stackName} does not exist`) {
|
|
117
|
-
return { status: "bootstrap" };
|
|
118
|
-
}
|
|
119
|
-
throw e;
|
|
120
|
-
}
|
|
121
|
-
// Parse stack outputs
|
|
122
|
-
let version;
|
|
123
|
-
let bucket;
|
|
124
|
-
(result.Stacks[0].Outputs || []).forEach((o) => {
|
|
125
|
-
if (o.OutputKey === OUTPUT_VERSION) {
|
|
126
|
-
version = o.OutputValue;
|
|
127
|
-
}
|
|
128
|
-
else if (o.OutputKey === OUTPUT_BUCKET) {
|
|
129
|
-
bucket = o.OutputValue;
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
if (!version || !bucket) {
|
|
133
|
-
return { status: "bootstrap" };
|
|
134
|
-
}
|
|
135
|
-
// Need to update bootstrap stack:
|
|
136
|
-
// 1. If current MAJOR version < latest MAJOR version
|
|
137
|
-
// 2. If current MAJOR version > latest MAJOR version (has breaking change)
|
|
138
|
-
// 3. If current MAJOR version == latest MAJOR version,
|
|
139
|
-
// but current MINOR version < latest MINOR version
|
|
140
|
-
const latestParts = LATEST_VERSION.split(".");
|
|
141
|
-
const latestMajor = parseInt(latestParts[0]);
|
|
142
|
-
const latestMinor = parseInt(latestParts[1] || "0");
|
|
143
|
-
const currentParts = version.split(".");
|
|
144
|
-
const currentMajor = parseInt(currentParts[0]);
|
|
145
|
-
const currentMinor = parseInt(currentParts[1] || "0");
|
|
146
|
-
if (currentMajor < latestMajor ||
|
|
147
|
-
currentMajor > latestMajor ||
|
|
148
|
-
currentMinor < latestMinor) {
|
|
149
|
-
return { status: "update" };
|
|
150
|
-
}
|
|
151
|
-
return { status: "ready", version, bucket };
|
|
152
|
-
}
|
|
153
|
-
export async function bootstrapSST(cdkBucket) {
|
|
154
|
-
const { region, bootstrap, cdk } = useProject().config;
|
|
155
|
-
// Create bootstrap stack
|
|
156
|
-
const app = new App();
|
|
157
|
-
const stackName = bootstrap?.stackName || SST_STACK_NAME;
|
|
158
|
-
const stack = new Stack(app, stackName, {
|
|
159
|
-
env: {
|
|
160
|
-
region,
|
|
161
|
-
},
|
|
162
|
-
synthesizer: new DefaultStackSynthesizer({
|
|
163
|
-
qualifier: cdk?.qualifier,
|
|
164
|
-
bootstrapStackVersionSsmParameter: cdk?.bootstrapStackVersionSsmParameter,
|
|
165
|
-
fileAssetsBucketName: cdk?.fileAssetsBucketName,
|
|
166
|
-
deployRoleArn: cdk?.deployRoleArn,
|
|
167
|
-
fileAssetPublishingRoleArn: cdk?.fileAssetPublishingRoleArn,
|
|
168
|
-
imageAssetPublishingRoleArn: cdk?.imageAssetPublishingRoleArn,
|
|
169
|
-
imageAssetsRepositoryName: cdk?.imageAssetsRepositoryName,
|
|
170
|
-
cloudFormationExecutionRole: cdk?.cloudFormationExecutionRole,
|
|
171
|
-
lookupRoleArn: cdk?.lookupRoleArn,
|
|
172
|
-
}),
|
|
173
|
-
});
|
|
174
|
-
// Add tags to stack
|
|
175
|
-
for (const [key, value] of Object.entries(bootstrap?.tags || {})) {
|
|
176
|
-
Tags.of(app).add(key, value);
|
|
177
|
-
}
|
|
178
|
-
// Create S3 bucket to store stacks metadata
|
|
179
|
-
const bucket = bootstrap?.useCdkBucket
|
|
180
|
-
? {
|
|
181
|
-
bucketName: cdkBucket,
|
|
182
|
-
bucketArn: `arn:${stack.partition}:s3:::${cdkBucket}`,
|
|
183
|
-
}
|
|
184
|
-
: new Bucket(stack, region, {
|
|
185
|
-
encryption: BucketEncryption.S3_MANAGED,
|
|
186
|
-
removalPolicy: RemovalPolicy.DESTROY,
|
|
187
|
-
autoDeleteObjects: true,
|
|
188
|
-
enforceSSL: true,
|
|
189
|
-
lifecycleRules: [
|
|
190
|
-
{
|
|
191
|
-
id: "Remove partial uploads after 3 days",
|
|
192
|
-
enabled: true,
|
|
193
|
-
abortIncompleteMultipartUploadAfter: Duration.days(3),
|
|
194
|
-
},
|
|
195
|
-
],
|
|
196
|
-
blockPublicAccess: cdk?.publicAccessBlockConfiguration !== false
|
|
197
|
-
? BlockPublicAccess.BLOCK_ALL
|
|
198
|
-
: undefined,
|
|
199
|
-
});
|
|
200
|
-
// Create Function and subscribe to CloudFormation events
|
|
201
|
-
const fn = new Function(stack, "MetadataHandler", {
|
|
202
|
-
code: Code.fromAsset(path.resolve(__dirname, "support/bootstrap-metadata-function")),
|
|
203
|
-
handler: "index.handler",
|
|
204
|
-
runtime: region?.startsWith("us-gov-")
|
|
205
|
-
? Runtime.NODEJS_16_X
|
|
206
|
-
: Runtime.NODEJS_18_X,
|
|
207
|
-
environment: {
|
|
208
|
-
BUCKET_NAME: bucket.bucketName,
|
|
209
|
-
},
|
|
210
|
-
initialPolicy: [
|
|
211
|
-
new PolicyStatement({
|
|
212
|
-
actions: ["cloudformation:DescribeStacks"],
|
|
213
|
-
resources: ["*"],
|
|
214
|
-
}),
|
|
215
|
-
new PolicyStatement({
|
|
216
|
-
actions: ["s3:PutObject", "s3:DeleteObject"],
|
|
217
|
-
resources: [bucket.bucketArn + "/*"],
|
|
218
|
-
}),
|
|
219
|
-
new PolicyStatement({
|
|
220
|
-
actions: ["iot:Publish"],
|
|
221
|
-
resources: [
|
|
222
|
-
`arn:${stack.partition}:iot:${stack.region}:${stack.account}:topic//sst/*`,
|
|
223
|
-
],
|
|
224
|
-
}),
|
|
225
|
-
],
|
|
226
|
-
});
|
|
227
|
-
const rule = new Rule(stack, "MetadataRule", {
|
|
228
|
-
eventPattern: {
|
|
229
|
-
source: ["aws.cloudformation"],
|
|
230
|
-
detailType: ["CloudFormation Stack Status Change"],
|
|
231
|
-
detail: {
|
|
232
|
-
"status-details": {
|
|
233
|
-
status: [
|
|
234
|
-
"CREATE_COMPLETE",
|
|
235
|
-
"UPDATE_COMPLETE",
|
|
236
|
-
"UPDATE_ROLLBACK_COMPLETE",
|
|
237
|
-
"ROLLBACK_COMPLETE",
|
|
238
|
-
"DELETE_COMPLETE",
|
|
239
|
-
],
|
|
240
|
-
},
|
|
241
|
-
},
|
|
242
|
-
},
|
|
243
|
-
});
|
|
244
|
-
rule.addTarget(new LambdaFunction(fn));
|
|
245
|
-
// Create permissions boundary
|
|
246
|
-
if (cdk?.customPermissionsBoundary) {
|
|
247
|
-
const boundaryPolicy = ManagedPolicy.fromManagedPolicyName(stack, "PermissionBoundaryPolicy", cdk.customPermissionsBoundary);
|
|
248
|
-
PermissionsBoundary.of(stack).apply(boundaryPolicy);
|
|
249
|
-
}
|
|
250
|
-
// Create stack outputs to store bootstrap stack info
|
|
251
|
-
new CfnOutput(stack, OUTPUT_VERSION, { value: LATEST_VERSION });
|
|
252
|
-
new CfnOutput(stack, OUTPUT_BUCKET, { value: bucket.bucketName });
|
|
253
|
-
// Deploy bootstrap stack
|
|
254
|
-
const asm = app.synth();
|
|
255
|
-
const result = await Stacks.deploy(asm.stacks[0]);
|
|
256
|
-
if (Stacks.isFailed(result.status)) {
|
|
257
|
-
throw new VisibleError(`Failed to deploy bootstrap stack:\n${JSON.stringify(result.errors, null, 4)}`);
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
async function bootstrapCDK() {
|
|
261
|
-
const identity = await useSTSIdentity();
|
|
262
|
-
const credentials = await useAWSCredentials();
|
|
263
|
-
const { region, profile, cdk } = useProject().config;
|
|
264
|
-
await new Promise((resolve, reject) => {
|
|
265
|
-
const proc = spawn([
|
|
266
|
-
"npx",
|
|
267
|
-
"cdk",
|
|
268
|
-
"bootstrap",
|
|
269
|
-
`aws://${identity.Account}/${region}`,
|
|
270
|
-
"--no-version-reporting",
|
|
271
|
-
...(cdk?.publicAccessBlockConfiguration === false
|
|
272
|
-
? ["--public-access-block-configuration", "false"]
|
|
273
|
-
: cdk?.publicAccessBlockConfiguration === true
|
|
274
|
-
? ["--public-access-block-configuration", "false"]
|
|
275
|
-
: []),
|
|
276
|
-
...(cdk?.toolkitStackName
|
|
277
|
-
? ["--toolkit-stack-name", cdk.toolkitStackName]
|
|
278
|
-
: []),
|
|
279
|
-
...(cdk?.qualifier ? ["--qualifier", cdk.qualifier] : []),
|
|
280
|
-
...(cdk?.fileAssetsBucketName
|
|
281
|
-
? ["--toolkit-bucket-name", cdk.fileAssetsBucketName]
|
|
282
|
-
: []),
|
|
283
|
-
...(cdk?.customPermissionsBoundary
|
|
284
|
-
? ["--custom-permissions-boundary", cdk.customPermissionsBoundary]
|
|
285
|
-
: []),
|
|
286
|
-
].join(" "), {
|
|
287
|
-
env: {
|
|
288
|
-
...process.env,
|
|
289
|
-
AWS_ACCESS_KEY_ID: credentials.accessKeyId,
|
|
290
|
-
AWS_SECRET_ACCESS_KEY: credentials.secretAccessKey,
|
|
291
|
-
AWS_SESSION_TOKEN: credentials.sessionToken,
|
|
292
|
-
AWS_REGION: region,
|
|
293
|
-
AWS_PROFILE: profile,
|
|
294
|
-
JSII_SILENCE_WARNING_DEPRECATED_NODE_VERSION: "1",
|
|
295
|
-
},
|
|
296
|
-
stdio: "pipe",
|
|
297
|
-
shell: true,
|
|
298
|
-
});
|
|
299
|
-
let stderr = "";
|
|
300
|
-
proc.stdout.on("data", (data) => {
|
|
301
|
-
Logger.debug(data.toString());
|
|
302
|
-
});
|
|
303
|
-
proc.stderr.on("data", (data) => {
|
|
304
|
-
Logger.debug(data.toString());
|
|
305
|
-
stderr += data;
|
|
306
|
-
});
|
|
307
|
-
proc.on("exit", (code) => {
|
|
308
|
-
Logger.debug("CDK bootstrap exited with code " + code);
|
|
309
|
-
if (code === 0) {
|
|
310
|
-
resolve();
|
|
311
|
-
}
|
|
312
|
-
else {
|
|
313
|
-
console.log(bold(dim(stderr)));
|
|
314
|
-
reject(new VisibleError(`Failed to bootstrap`));
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
});
|
|
318
|
-
}
|
package/bus.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export interface Events {
|
|
2
|
-
}
|
|
3
|
-
export type EventTypes = keyof Events;
|
|
4
|
-
export type EventPayload<Type extends EventTypes = EventTypes> = {
|
|
5
|
-
type: Type;
|
|
6
|
-
sourceID: string;
|
|
7
|
-
properties: Events[Type];
|
|
8
|
-
};
|
|
9
|
-
type Subscription = {
|
|
10
|
-
type: EventTypes;
|
|
11
|
-
cb: (payload: any) => void;
|
|
12
|
-
};
|
|
13
|
-
export declare const useBus: () => {
|
|
14
|
-
sourceID: string;
|
|
15
|
-
publish<Type extends keyof Events>(type: Type, properties: Events[Type]): void;
|
|
16
|
-
unsubscribe(sub: Subscription): void;
|
|
17
|
-
subscribe<Type_1 extends keyof Events>(type: Type_1, cb: (payload: EventPayload<Type_1>) => void): Subscription;
|
|
18
|
-
forward<T extends (keyof Events)[]>(..._types: T): <Type_2 extends T[number]>(type: Type_2, cb: (payload: EventPayload<Type_2>) => void) => Subscription;
|
|
19
|
-
};
|
|
20
|
-
export {};
|
package/bus.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import crypto from "crypto";
|
|
2
|
-
import { Logger } from "./logger.js";
|
|
3
|
-
import { lazy } from "./util/lazy.js";
|
|
4
|
-
const DO_NOT_LOG = new Set(["stacks.metadata"]);
|
|
5
|
-
export const useBus = lazy(() => {
|
|
6
|
-
const subscriptions = {};
|
|
7
|
-
function subscribers(type) {
|
|
8
|
-
let arr = subscriptions[type];
|
|
9
|
-
if (!arr) {
|
|
10
|
-
arr = [];
|
|
11
|
-
subscriptions[type] = arr;
|
|
12
|
-
}
|
|
13
|
-
return arr;
|
|
14
|
-
}
|
|
15
|
-
const sourceID = crypto.randomBytes(16).toString("hex");
|
|
16
|
-
const result = {
|
|
17
|
-
sourceID,
|
|
18
|
-
publish(type, properties) {
|
|
19
|
-
const payload = {
|
|
20
|
-
type,
|
|
21
|
-
properties,
|
|
22
|
-
sourceID,
|
|
23
|
-
};
|
|
24
|
-
if (!DO_NOT_LOG.has(type)) {
|
|
25
|
-
Logger.debug(`Publishing event ${JSON.stringify(payload)}`);
|
|
26
|
-
}
|
|
27
|
-
for (const sub of subscribers(type))
|
|
28
|
-
sub.cb(payload);
|
|
29
|
-
},
|
|
30
|
-
unsubscribe(sub) {
|
|
31
|
-
const arr = subscribers(sub.type);
|
|
32
|
-
const index = arr.indexOf(sub);
|
|
33
|
-
if (index < 0)
|
|
34
|
-
return;
|
|
35
|
-
arr.splice(index, 1);
|
|
36
|
-
},
|
|
37
|
-
subscribe(type, cb) {
|
|
38
|
-
const sub = {
|
|
39
|
-
type,
|
|
40
|
-
cb,
|
|
41
|
-
};
|
|
42
|
-
subscribers(type).push(sub);
|
|
43
|
-
return sub;
|
|
44
|
-
},
|
|
45
|
-
forward(..._types) {
|
|
46
|
-
return (type, cb) => {
|
|
47
|
-
return this.subscribe(type, cb);
|
|
48
|
-
};
|
|
49
|
-
},
|
|
50
|
-
};
|
|
51
|
-
return result;
|
|
52
|
-
});
|
package/cache.d.ts
DELETED