sst 1.16.0 → 2.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/{dist/app.d.ts → app.d.ts} +8 -1
- package/app.js +122 -0
- package/{dist/bootstrap.d.ts → bootstrap.d.ts} +1 -0
- package/bootstrap.js +79 -0
- package/{dist/bus.d.ts → bus.d.ts} +0 -0
- package/{dist/bus.js → bus.js} +0 -0
- package/{dist/cache.d.ts → cache.d.ts} +0 -0
- package/{dist/cache.js → cache.js} +0 -0
- package/{dist/cdk → cdk}/cloudformation-deployments.d.ts +1 -1
- package/{dist/cdk → cdk}/cloudformation-deployments.js +1 -0
- package/{dist/cdk → cdk}/deploy-stack.d.ts +0 -0
- package/{dist/cdk → cdk}/deploy-stack.js +13 -6
- package/{dist/cli → cli}/commands/bind.d.ts +3 -1
- package/{dist/cli → cli}/commands/bind.js +8 -4
- package/{dist/cli → cli}/commands/build.d.ts +2 -0
- package/cli/commands/build.js +12 -0
- package/cli/commands/console.d.ts +9 -0
- package/cli/commands/console.js +15 -0
- package/{dist/cli → cli}/commands/deploy.d.ts +7 -1
- package/cli/commands/deploy.js +48 -0
- package/cli/commands/dev.d.ts +11 -0
- package/cli/commands/dev.js +188 -0
- package/cli/commands/env.d.ts +11 -0
- package/cli/commands/env.js +39 -0
- package/cli/commands/plugins/kysely.d.ts +1 -0
- package/cli/commands/plugins/kysely.js +91 -0
- package/cli/commands/plugins/pothos.d.ts +1 -0
- package/cli/commands/plugins/pothos.js +52 -0
- package/cli/commands/plugins/warmer.d.ts +1 -0
- package/cli/commands/plugins/warmer.js +33 -0
- package/cli/commands/remove.d.ts +13 -0
- package/cli/commands/remove.js +39 -0
- package/{dist/cli → cli}/commands/secrets/get.d.ts +2 -0
- package/{dist/cli → cli}/commands/secrets/get.js +0 -0
- package/{dist/cli → cli}/commands/secrets/list.d.ts +2 -0
- package/{dist/cli → cli}/commands/secrets/list.js +5 -5
- package/{dist/cli → cli}/commands/secrets/remove.d.ts +2 -0
- package/{dist/cli → cli}/commands/secrets/remove.js +0 -0
- package/{dist/cli → cli}/commands/secrets/secrets.d.ts +0 -0
- package/{dist/cli → cli}/commands/secrets/secrets.js +0 -0
- package/{dist/cli → cli}/commands/secrets/set.d.ts +2 -0
- package/{dist/cli → cli}/commands/secrets/set.js +13 -11
- package/{dist/cli → cli}/commands/update.d.ts +2 -0
- package/{dist/cli → cli}/commands/update.js +17 -21
- package/cli/local/router.d.ts +42 -0
- package/cli/local/router.js +43 -0
- package/cli/local/server.d.ts +20 -0
- package/cli/local/server.js +212 -0
- package/cli/program.d.ts +9 -0
- package/{dist/cli → cli}/program.js +6 -1
- package/{dist/cli → cli}/spinner.d.ts +0 -0
- package/{dist/cli → cli}/spinner.js +0 -0
- package/cli/sst.d.ts +2 -0
- package/{dist/cli → cli}/sst.js +27 -16
- package/cli/telemetry/environment.d.ts +15 -0
- package/cli/telemetry/environment.js +27 -0
- package/cli/telemetry/post-payload.d.ts +1 -0
- package/cli/telemetry/post-payload.js +18 -0
- package/cli/telemetry/project-id.d.ts +2 -0
- package/cli/telemetry/project-id.js +47 -0
- package/cli/telemetry/telemetry.d.ts +4 -0
- package/cli/telemetry/telemetry.js +90 -0
- package/cli/ui/deploy.d.ts +8 -0
- package/{dist/cli → cli}/ui/deploy.js +39 -1
- package/{dist/config.d.ts → config.d.ts} +0 -0
- package/{dist/config.js → config.js} +16 -4
- package/{dist/constructs → constructs}/Api.d.ts +98 -12
- package/{dist/constructs → constructs}/Api.js +93 -7
- package/{dist/constructs → constructs}/ApiGatewayV1Api.d.ts +0 -0
- package/{dist/constructs → constructs}/ApiGatewayV1Api.js +10 -5
- package/{dist/constructs → constructs}/App.d.ts +4 -26
- package/{dist/constructs → constructs}/App.js +119 -99
- package/{dist/constructs → constructs}/AppSyncApi.d.ts +3 -3
- package/{dist/constructs → constructs}/AppSyncApi.js +27 -20
- package/constructs/AstroSite.d.ts +25 -0
- package/constructs/AstroSite.js +111 -0
- package/constructs/AstroSite.tsdoc.d.ts +2 -0
- package/constructs/AstroSite.tsdoc.js +2 -0
- package/{dist/constructs → constructs}/Auth.d.ts +1 -1
- package/{dist/constructs → constructs}/Auth.js +6 -4
- package/{dist/constructs → constructs}/BaseSite.d.ts +0 -0
- package/{dist/constructs → constructs}/BaseSite.js +0 -0
- package/{dist/constructs → constructs}/Bucket.d.ts +0 -0
- package/{dist/constructs → constructs}/Bucket.js +6 -3
- package/{dist/constructs → constructs}/Cognito.d.ts +0 -0
- package/{dist/constructs → constructs}/Cognito.js +4 -1
- package/{dist/constructs → constructs}/Config.d.ts +0 -0
- package/{dist/constructs → constructs}/Config.js +0 -0
- package/{dist/constructs → constructs}/Construct.d.ts +0 -0
- package/{dist/constructs → constructs}/Construct.js +0 -0
- package/{dist/constructs → constructs}/Cron.d.ts +0 -0
- package/{dist/constructs → constructs}/Cron.js +7 -0
- package/{dist/constructs → constructs}/DebugApp.d.ts +2 -2
- package/{dist/constructs → constructs}/DebugApp.js +16 -0
- package/{dist/constructs → constructs}/DebugStack.d.ts +0 -0
- package/{dist/constructs → constructs}/DebugStack.js +4 -0
- package/{dist/constructs → constructs}/EdgeFunction.d.ts +1 -0
- package/{dist/constructs → constructs}/EdgeFunction.js +27 -22
- package/{dist/constructs → constructs}/EventBus.d.ts +0 -0
- package/{dist/constructs → constructs}/EventBus.js +7 -4
- package/{dist/constructs → constructs}/Function.d.ts +73 -174
- package/{dist/constructs → constructs}/Function.js +43 -83
- package/{dist/constructs → constructs}/FunctionalStack.d.ts +0 -0
- package/{dist/constructs → constructs}/FunctionalStack.js +5 -5
- package/{dist/constructs → constructs}/GraphQLApi.d.ts +11 -1
- package/{dist/constructs → constructs}/GraphQLApi.js +3 -0
- package/{dist/constructs → constructs}/Job.d.ts +0 -14
- package/{dist/constructs → constructs}/Job.js +50 -46
- package/{dist/constructs → constructs}/KinesisStream.d.ts +0 -0
- package/{dist/constructs → constructs}/KinesisStream.js +6 -3
- package/{dist/constructs → constructs}/Metadata.d.ts +1 -1
- package/{dist/constructs → constructs}/Metadata.js +0 -0
- package/constructs/NextjsSite.d.ts +33 -0
- package/constructs/NextjsSite.js +285 -0
- package/{dist/constructs → constructs}/Parameter.d.ts +0 -0
- package/{dist/constructs → constructs}/Parameter.js +3 -0
- package/{dist/constructs → constructs}/Queue.d.ts +0 -0
- package/{dist/constructs → constructs}/Queue.js +19 -12
- package/{dist/constructs → constructs}/RDS.d.ts +0 -0
- package/{dist/constructs → constructs}/RDS.js +26 -19
- package/{dist/constructs → constructs}/ReactStaticSite.d.ts +0 -0
- package/{dist/constructs → constructs}/ReactStaticSite.js +1 -1
- package/constructs/RemixSite.d.ts +28 -0
- package/constructs/RemixSite.js +150 -0
- package/constructs/RemixSite.tsdoc.d.ts +2 -0
- package/constructs/RemixSite.tsdoc.js +2 -0
- package/{dist/constructs → constructs}/Script/cfn-response.d.ts +0 -0
- package/{dist/constructs → constructs}/Script/cfn-response.js +0 -0
- package/{dist/constructs → constructs}/Script/index.d.ts +0 -0
- package/{dist/constructs → constructs}/Script/index.js +0 -0
- package/{dist/constructs → constructs}/Script/outbound.d.ts +1 -1
- package/{dist/constructs → constructs}/Script/outbound.js +0 -0
- package/{dist/constructs → constructs}/Script/util.d.ts +0 -0
- package/{dist/constructs → constructs}/Script/util.js +0 -0
- package/{dist/constructs → constructs}/Script.d.ts +0 -0
- package/{dist/constructs → constructs}/Script.js +13 -0
- package/{dist/constructs → constructs}/Secret.d.ts +0 -0
- package/{dist/constructs → constructs}/Secret.js +2 -0
- package/constructs/SolidStartSite.d.ts +24 -0
- package/constructs/SolidStartSite.js +103 -0
- package/constructs/SolidStartSite.tsdoc.d.ts +2 -0
- package/constructs/SolidStartSite.tsdoc.js +2 -0
- package/{dist/constructs/RemixSite.d.ts → constructs/SsrSite.d.ts} +69 -107
- package/{dist/constructs/RemixSite.js → constructs/SsrSite.js} +243 -446
- package/{dist/constructs → constructs}/Stack.d.ts +1 -1
- package/{dist/constructs → constructs}/Stack.js +19 -4
- package/{dist/constructs → constructs}/StaticSite.d.ts +44 -17
- package/{dist/constructs → constructs}/StaticSite.js +121 -72
- package/{dist/constructs → constructs}/Table.d.ts +0 -0
- package/{dist/constructs → constructs}/Table.js +9 -3
- package/{dist/constructs → constructs}/Topic.d.ts +0 -0
- package/{dist/constructs → constructs}/Topic.js +6 -3
- package/{dist/constructs → constructs}/ViteStaticSite.d.ts +0 -0
- package/{dist/constructs → constructs}/ViteStaticSite.js +2 -2
- package/{dist/constructs → constructs}/WebSocketApi.d.ts +0 -0
- package/{dist/constructs → constructs}/WebSocketApi.js +9 -4
- package/{dist/constructs → constructs}/context.d.ts +1 -1
- package/{dist/constructs → constructs}/context.js +0 -0
- package/{dist/constructs → constructs}/deferred_task.d.ts +0 -0
- package/{dist/constructs → constructs}/deferred_task.js +4 -2
- package/{dist/constructs → constructs/deprecated}/NextjsSite.d.ts +12 -8
- package/{dist/constructs → constructs/deprecated}/NextjsSite.js +112 -89
- package/{dist/constructs/nextjs-site → constructs/deprecated}/cross-region-helper.d.ts +0 -0
- package/{dist/constructs/nextjs-site → constructs/deprecated}/cross-region-helper.js +3 -3
- package/constructs/deprecated/index.d.ts +1 -0
- package/constructs/deprecated/index.js +1 -0
- package/{dist/constructs → constructs}/index.d.ts +3 -2
- package/{dist/constructs → constructs}/index.js +2 -0
- package/{dist/constructs → constructs}/util/apiGatewayV1AccessLog.d.ts +0 -0
- package/{dist/constructs → constructs}/util/apiGatewayV1AccessLog.js +0 -0
- package/{dist/constructs → constructs}/util/apiGatewayV2AccessLog.d.ts +0 -0
- package/{dist/constructs → constructs}/util/apiGatewayV2AccessLog.js +4 -4
- package/{dist/constructs → constructs}/util/apiGatewayV2Cors.d.ts +0 -0
- package/{dist/constructs → constructs}/util/apiGatewayV2Cors.js +0 -0
- package/{dist/constructs → constructs}/util/apiGatewayV2Domain.d.ts +0 -0
- package/{dist/constructs → constructs}/util/apiGatewayV2Domain.js +0 -0
- package/{dist/constructs → constructs}/util/appSyncApiDomain.d.ts +1 -1
- package/{dist/constructs → constructs}/util/appSyncApiDomain.js +15 -9
- package/{dist/constructs → constructs}/util/builder.d.ts +0 -0
- package/{dist/constructs → constructs}/util/builder.js +0 -0
- package/{dist/constructs → constructs}/util/duration.d.ts +0 -0
- package/{dist/constructs → constructs}/util/duration.js +0 -0
- package/{dist/constructs → constructs}/util/functionBinding.d.ts +0 -0
- package/{dist/constructs → constructs}/util/functionBinding.js +0 -0
- package/{dist/constructs → constructs}/util/functionUrlCors.d.ts +0 -0
- package/{dist/constructs → constructs}/util/functionUrlCors.js +0 -0
- package/{dist/constructs → constructs}/util/permission.d.ts +0 -0
- package/{dist/constructs → constructs}/util/permission.js +32 -16
- package/{dist/constructs → constructs}/util/python/bundling.d.ts +0 -0
- package/{dist/constructs → constructs}/util/python/bundling.js +0 -0
- package/{dist/constructs → constructs}/util/size.d.ts +0 -0
- package/{dist/constructs → constructs}/util/size.js +0 -0
- package/{dist/constructs → constructs}/util/warning.d.ts +0 -0
- package/{dist/constructs → constructs}/util/warning.js +0 -0
- package/{dist/context → context}/context.d.ts +1 -1
- package/{dist/context → context}/context.js +3 -4
- package/{dist/context → context}/handler.d.ts +0 -0
- package/{dist/context → context}/handler.js +1 -1
- package/{dist/context → context}/index.d.ts +0 -0
- package/{dist/context → context}/index.js +0 -0
- package/{dist/credentials.d.ts → credentials.d.ts} +3 -1
- package/{dist/credentials.js → credentials.js} +11 -3
- package/{dist/error.d.ts → error.d.ts} +0 -0
- package/{dist/error.js → error.js} +0 -0
- package/{dist/iot.d.ts → iot.d.ts} +0 -0
- package/{dist/iot.js → iot.js} +3 -0
- package/logger.d.ts +3 -0
- package/{dist/logger.js → logger.js} +12 -8
- package/node/api/index.d.ts +42 -0
- package/node/api/index.js +88 -0
- package/node/auth/adapter/adapter.d.ts +3 -0
- package/node/auth/adapter/adapter.js +3 -0
- package/node/auth/adapter/facebook.d.ts +2 -0
- package/node/auth/adapter/facebook.js +26 -0
- package/node/auth/adapter/github.d.ts +2 -0
- package/node/auth/adapter/github.js +21 -0
- package/node/auth/adapter/google.d.ts +9 -0
- package/node/auth/adapter/google.js +18 -0
- package/node/auth/adapter/link.d.ts +8 -0
- package/node/auth/adapter/link.js +39 -0
- package/node/auth/adapter/oauth.d.ts +25 -0
- package/node/auth/adapter/oauth.js +52 -0
- package/node/auth/adapter/oidc.d.ts +17 -0
- package/node/auth/adapter/oidc.js +50 -0
- package/node/auth/adapter/twitch.d.ts +2 -0
- package/node/auth/adapter/twitch.js +11 -0
- package/node/auth/auth.d.ts +24 -0
- package/node/auth/auth.js +118 -0
- package/node/auth/index.d.ts +10 -0
- package/node/auth/index.js +10 -0
- package/node/auth/session.d.ts +76 -0
- package/node/auth/session.js +109 -0
- package/node/bucket/index.d.ts +3 -0
- package/node/bucket/index.js +3 -0
- package/node/config/index.d.ts +13 -0
- package/node/config/index.js +88 -0
- package/node/event-bus/index.d.ts +3 -0
- package/node/event-bus/index.js +3 -0
- package/node/function/index.d.ts +3 -0
- package/node/function/index.js +3 -0
- package/node/graphql/index.d.ts +38 -0
- package/node/graphql/index.js +48 -0
- package/node/job/index.d.ts +34 -0
- package/node/job/index.js +51 -0
- package/node/kinesis-stream/index.d.ts +3 -0
- package/node/kinesis-stream/index.js +3 -0
- package/node/queue/index.d.ts +3 -0
- package/node/queue/index.js +3 -0
- package/node/rds/index.d.ts +3 -0
- package/node/rds/index.js +3 -0
- package/node/site/index.d.ts +15 -0
- package/node/site/index.js +64 -0
- package/node/table/index.d.ts +3 -0
- package/node/table/index.js +3 -0
- package/node/topic/index.d.ts +3 -0
- package/node/topic/index.js +3 -0
- package/node/util/index.d.ts +7 -0
- package/node/util/index.js +57 -0
- package/package.json +107 -40
- package/pothos.d.ts +8 -0
- package/pothos.js +156 -0
- package/runtime/handlers/dotnet.d.ts +1 -0
- package/runtime/handlers/dotnet.js +117 -0
- package/runtime/handlers/go.d.ts +1 -0
- package/runtime/handlers/go.js +105 -0
- package/runtime/handlers/java.d.ts +1 -0
- package/runtime/handlers/java.js +97 -0
- package/{dist/runtime → runtime/handlers}/node.d.ts +0 -0
- package/runtime/handlers/node.js +172 -0
- package/runtime/handlers/python.d.ts +1 -0
- package/runtime/handlers/python.js +89 -0
- package/{dist/runtime → runtime}/handlers.d.ts +30 -12
- package/runtime/handlers.js +117 -0
- package/{dist/runtime → runtime}/iot.d.ts +0 -0
- package/{dist/runtime → runtime}/iot.js +1 -1
- package/{dist/runtime → runtime}/runtime.d.ts +2 -0
- package/{dist/runtime → runtime}/runtime.js +0 -0
- package/{dist/runtime → runtime}/server.d.ts +0 -0
- package/{dist/runtime → runtime}/server.js +39 -3
- package/{dist/runtime → runtime}/workers.d.ts +1 -0
- package/{dist/runtime → runtime}/workers.js +12 -4
- package/{dist/cli/sst.d.ts → scrap.d.ts} +0 -0
- package/scrap.js +58 -0
- package/site-env.d.ts +13 -0
- package/site-env.js +47 -0
- package/sst.mjs +21848 -0
- package/{dist/stacks → stacks}/build.d.ts +0 -0
- package/{dist/stacks → stacks}/build.js +18 -9
- package/stacks/deploy.d.ts +8 -0
- package/stacks/deploy.js +105 -0
- package/stacks/index.d.ts +7 -0
- package/stacks/index.js +7 -0
- package/stacks/metadata.d.ts +9 -0
- package/{dist/stacks → stacks}/metadata.js +2 -14
- package/stacks/monitor.d.ts +27 -0
- package/stacks/monitor.js +111 -0
- package/stacks/remove.d.ts +8 -0
- package/stacks/remove.js +80 -0
- package/stacks/synth.d.ts +10 -0
- package/stacks/synth.js +77 -0
- package/support/astro-site-html-stub/index.html +99 -0
- package/support/base-site-archiver.cjs +12 -11
- package/support/base-site-archiver.mjs +20 -0
- package/support/bridge/bridge.mjs +59 -0
- package/{dist/support → support}/custom-resources/index.mjs +44209 -42781
- package/support/dotnet31-bootstrap/Program.cs +17 -0
- package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +12 -0
- 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 +230 -0
- 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 +9 -0
- package/support/dotnet6-bootstrap/Program.cs +17 -0
- package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +12 -0
- 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 +59 -0
- 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 +12 -0
- package/support/edge-function/edge-lambda-version.mjs +3 -0
- package/support/edge-function/edge-lambda.mjs +3 -0
- package/support/edge-function/s3-bucket.mjs +3 -0
- package/{dist/support/base-site-custom-resource/cf-invalidate.py → support/edge-function-code-replacer/lambda-code-updater.py} +56 -30
- package/support/java-runtime/install.sh +25 -0
- package/support/java-runtime/pom.xml +39 -0
- 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/nextjs-site-html-stub/index.html +99 -0
- package/{dist/support → support}/nodejs-runtime/index.mjs +7822 -2771
- package/support/python-runtime/runtime.py +116 -0
- package/support/rds-migrator/index.mjs +28 -0
- package/support/remix-site-function/edge-server.js +158 -0
- package/support/remix-site-function/polyfill.js +24 -0
- package/support/remix-site-function/regional-server.js +162 -0
- package/support/remix-site-html-stub/index.html +99 -0
- package/support/sls-nextjs-site-build-helper/build.cjs +91 -0
- package/support/sls-nextjs-site-build-helper/index-wrapper.js +19 -0
- package/support/sls-nextjs-site-stub/index.html +99 -0
- package/support/solid-start-site-html-stub/index.html +99 -0
- package/support/ssr-site-function-stub/index.js +5 -0
- package/util/fs.d.ts +4 -0
- package/util/fs.js +46 -0
- package/util/module.d.ts +1 -0
- package/util/module.js +5 -0
- package/util/process.d.ts +2 -0
- package/util/process.js +3 -0
- package/{dist/watcher.d.ts → watcher.d.ts} +0 -0
- package/{dist/watcher.js → watcher.js} +1 -1
- package/.build/sst-debug.log +0 -10
- package/.turbo/turbo-build.log +0 -2
- package/CHANGELOG.md +0 -332
- package/analyze +0 -11090
- package/bin/sst.mjs +0 -3
- package/build.mjs +0 -116
- package/debug.log +0 -6
- package/dist/app.js +0 -92
- package/dist/bootstrap.js +0 -23
- package/dist/cli/commands/build.js +0 -8
- package/dist/cli/commands/deploy.js +0 -20
- package/dist/cli/commands/env.d.ts +0 -0
- package/dist/cli/commands/env.js +0 -1
- package/dist/cli/commands/scrap.d.ts +0 -5
- package/dist/cli/commands/scrap.js +0 -1
- package/dist/cli/commands/start.d.ts +0 -7
- package/dist/cli/commands/start.js +0 -136
- package/dist/cli/program.d.ts +0 -7
- package/dist/cli/ui/deploy.d.ts +0 -6
- package/dist/constructs/nextjs-site/custom-resource/cfn-response.d.ts +0 -19
- package/dist/constructs/nextjs-site/custom-resource/cfn-response.js +0 -94
- package/dist/constructs/nextjs-site/custom-resource/edge-lambda-version.d.ts +0 -1
- package/dist/constructs/nextjs-site/custom-resource/edge-lambda-version.js +0 -138
- package/dist/constructs/nextjs-site/custom-resource/edge-lambda.d.ts +0 -1
- package/dist/constructs/nextjs-site/custom-resource/edge-lambda.js +0 -136
- package/dist/constructs/nextjs-site/custom-resource/s3-bucket.d.ts +0 -1
- package/dist/constructs/nextjs-site/custom-resource/s3-bucket.js +0 -94
- package/dist/constructs/nextjs-site/custom-resource/util.d.ts +0 -1
- package/dist/constructs/nextjs-site/custom-resource/util.js +0 -4
- package/dist/logger.d.ts +0 -9
- package/dist/runtime/handlers.js +0 -72
- package/dist/runtime/node.js +0 -99
- package/dist/sst.mjs +0 -164202
- package/dist/stacks/deploy.d.ts +0 -33
- package/dist/stacks/deploy.js +0 -168
- package/dist/stacks/index.d.ts +0 -21
- package/dist/stacks/index.js +0 -57
- package/dist/stacks/metadata.d.ts +0 -9
- package/dist/support/base-site-archiver.cjs +0 -115
- package/dist/support/base-site-custom-resource/s3-handler.py +0 -195
- package/dist/support/base-site-custom-resource/s3-upload.py +0 -91
- package/dist/support/bridge/bridge.mjs +0 -86
- package/dist/support/static-site-stub/index.html +0 -90
- package/src/app.ts +0 -140
- package/src/bootstrap.ts +0 -28
- package/src/bus.ts +0 -81
- package/src/cache.ts +0 -34
- package/src/cdk/cloudformation-deployments.ts +0 -730
- package/src/cdk/deploy-stack.ts +0 -1030
- package/src/cli/commands/bind.ts +0 -31
- package/src/cli/commands/build.ts +0 -16
- package/src/cli/commands/deploy.ts +0 -34
- package/src/cli/commands/env.ts +0 -0
- package/src/cli/commands/scrap.ts +0 -5
- package/src/cli/commands/secrets/get.ts +0 -50
- package/src/cli/commands/secrets/list.ts +0 -66
- package/src/cli/commands/secrets/remove.ts +0 -36
- package/src/cli/commands/secrets/secrets.ts +0 -17
- package/src/cli/commands/secrets/set.ts +0 -59
- package/src/cli/commands/start.tsx +0 -162
- package/src/cli/commands/update.ts +0 -100
- package/src/cli/program.ts +0 -22
- package/src/cli/spinner.ts +0 -14
- package/src/cli/sst.ts +0 -50
- package/src/cli/ui/deploy.tsx +0 -139
- package/src/config.ts +0 -226
- package/src/constructs/Api.ts +0 -1448
- package/src/constructs/ApiGatewayV1Api.ts +0 -1481
- package/src/constructs/App.ts +0 -744
- package/src/constructs/AppSyncApi.ts +0 -1045
- package/src/constructs/Auth.ts +0 -252
- package/src/constructs/BaseSite.ts +0 -146
- package/src/constructs/Bucket.ts +0 -670
- package/src/constructs/Cognito.ts +0 -708
- package/src/constructs/Config.ts +0 -4
- package/src/constructs/Construct.ts +0 -77
- package/src/constructs/Cron.ts +0 -235
- package/src/constructs/DebugApp.ts +0 -97
- package/src/constructs/DebugStack.ts +0 -182
- package/src/constructs/EdgeFunction.ts +0 -460
- package/src/constructs/EventBus.ts +0 -651
- package/src/constructs/Function.ts +0 -1329
- package/src/constructs/FunctionalStack.ts +0 -90
- package/src/constructs/GraphQLApi.ts +0 -140
- package/src/constructs/Job.ts +0 -557
- package/src/constructs/KinesisStream.ts +0 -388
- package/src/constructs/Metadata.ts +0 -75
- package/src/constructs/NextjsSite.ts +0 -1498
- package/src/constructs/Parameter.ts +0 -72
- package/src/constructs/Queue.ts +0 -360
- package/src/constructs/RDS.ts +0 -578
- package/src/constructs/ReactStaticSite.ts +0 -66
- package/src/constructs/RemixSite.ts +0 -1397
- package/src/constructs/Script/cfn-response.ts +0 -116
- package/src/constructs/Script/index.ts +0 -103
- package/src/constructs/Script/outbound.ts +0 -59
- package/src/constructs/Script/package.json +0 -3
- package/src/constructs/Script/util.ts +0 -19
- package/src/constructs/Script.ts +0 -270
- package/src/constructs/Secret.ts +0 -66
- package/src/constructs/Stack.ts +0 -319
- package/src/constructs/StaticSite.ts +0 -995
- package/src/constructs/Table.ts +0 -844
- package/src/constructs/Topic.ts +0 -486
- package/src/constructs/ViteStaticSite.ts +0 -99
- package/src/constructs/WebSocketApi.ts +0 -687
- package/src/constructs/context.ts +0 -12
- package/src/constructs/deferred_task.ts +0 -53
- package/src/constructs/descs.d.ts +0 -1
- package/src/constructs/index.ts +0 -39
- package/src/constructs/nextjs-site/cross-region-helper.ts +0 -189
- package/src/constructs/nextjs-site/custom-resource/cfn-response.ts +0 -146
- package/src/constructs/nextjs-site/custom-resource/edge-lambda-version.ts +0 -162
- package/src/constructs/nextjs-site/custom-resource/edge-lambda.ts +0 -167
- package/src/constructs/nextjs-site/custom-resource/s3-bucket.ts +0 -112
- package/src/constructs/nextjs-site/custom-resource/util.ts +0 -11
- package/src/constructs/util/apiGatewayV1AccessLog.ts +0 -106
- package/src/constructs/util/apiGatewayV2AccessLog.ts +0 -139
- package/src/constructs/util/apiGatewayV2Cors.ts +0 -94
- package/src/constructs/util/apiGatewayV2Domain.ts +0 -312
- package/src/constructs/util/appSyncApiDomain.ts +0 -204
- package/src/constructs/util/builder.ts +0 -17
- package/src/constructs/util/duration.ts +0 -27
- package/src/constructs/util/functionBinding.ts +0 -102
- package/src/constructs/util/functionUrlCors.ts +0 -96
- package/src/constructs/util/permission.ts +0 -299
- package/src/constructs/util/python/bundling.ts +0 -174
- package/src/constructs/util/size.ts +0 -13
- package/src/constructs/util/warning.ts +0 -20
- package/src/context/context.ts +0 -79
- package/src/context/handler.ts +0 -53
- package/src/context/index.ts +0 -2
- package/src/credentials.ts +0 -103
- package/src/error.ts +0 -5
- package/src/iot.ts +0 -105
- package/src/logger.ts +0 -35
- package/src/runtime/handlers.ts +0 -121
- package/src/runtime/iot.ts +0 -16
- package/src/runtime/node.ts +0 -111
- package/src/runtime/runtime.ts +0 -27
- package/src/runtime/server.ts +0 -149
- package/src/runtime/workers.ts +0 -96
- package/src/stacks/build.ts +0 -69
- package/src/stacks/deploy.ts +0 -232
- package/src/stacks/index.ts +0 -73
- package/src/stacks/metadata.ts +0 -125
- package/src/watcher.ts +0 -47
- package/sst.config.mjs +0 -6
- package/support/bridge/bridge.ts +0 -136
- package/support/bridge/build.mjs +0 -18
- package/support/custom-resources/auth-keys.ts +0 -113
- package/support/custom-resources/build.mjs +0 -18
- package/support/custom-resources/cfn-response.ts +0 -151
- package/support/custom-resources/index.ts +0 -18
- package/support/custom-resources/secrets-migration.ts +0 -82
- package/support/custom-resources/stack-metadata.ts +0 -75
- package/support/custom-resources/util.ts +0 -44
- package/support/nodejs-runtime/index.ts +0 -69
- package/support/tsconfig.json +0 -11
- package/tsconfig.json +0 -13
- package/yarn-error.log +0 -75
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
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.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export interface Project {
|
|
2
2
|
name: string;
|
|
3
|
+
region: string;
|
|
3
4
|
stage?: string;
|
|
4
5
|
profile?: string;
|
|
5
|
-
region?: string;
|
|
6
6
|
main?: string;
|
|
7
7
|
ssmPrefix?: string;
|
|
8
8
|
}
|
|
@@ -14,16 +14,23 @@ declare const DEFAULTS: {
|
|
|
14
14
|
declare type ProjectWithDefaults = Project & Required<{
|
|
15
15
|
[key in keyof typeof DEFAULTS]: Exclude<Project[key], undefined>;
|
|
16
16
|
}> & {
|
|
17
|
+
version: string;
|
|
17
18
|
paths: {
|
|
18
19
|
root: string;
|
|
19
20
|
out: string;
|
|
21
|
+
artifacts: string;
|
|
20
22
|
};
|
|
21
23
|
};
|
|
24
|
+
export declare const ProjectContext: {
|
|
25
|
+
use(): ProjectWithDefaults;
|
|
26
|
+
provide(value: ProjectWithDefaults): void;
|
|
27
|
+
};
|
|
22
28
|
export declare function useProject(): ProjectWithDefaults;
|
|
23
29
|
interface GlobalOptions {
|
|
24
30
|
profile?: string;
|
|
25
31
|
stage?: string;
|
|
26
32
|
root?: string;
|
|
33
|
+
region?: string;
|
|
27
34
|
}
|
|
28
35
|
export declare function initProject(globals: GlobalOptions): Promise<void>;
|
|
29
36
|
export {};
|
package/app.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import fs from "fs/promises";
|
|
2
|
+
import fsSync from "fs";
|
|
3
|
+
import path from "path";
|
|
4
|
+
import url from "url";
|
|
5
|
+
import os from "os";
|
|
6
|
+
import { Logger } from "./logger.js";
|
|
7
|
+
import { Context } from "./context/context.js";
|
|
8
|
+
import { VisibleError } from "./error.js";
|
|
9
|
+
import { blue } from "colorette";
|
|
10
|
+
import { dynamicImport } from "./util/module.js";
|
|
11
|
+
import dotenv from "dotenv";
|
|
12
|
+
const DEFAULTS = {
|
|
13
|
+
main: "stacks/index.ts",
|
|
14
|
+
stage: undefined,
|
|
15
|
+
ssmPrefix: undefined,
|
|
16
|
+
};
|
|
17
|
+
export const ProjectContext = Context.create();
|
|
18
|
+
export function useProject() {
|
|
19
|
+
return ProjectContext.use();
|
|
20
|
+
}
|
|
21
|
+
const CONFIG_EXTENSIONS = [".config.cjs", ".config.mjs", ".config.js", ".json"];
|
|
22
|
+
export async function initProject(globals) {
|
|
23
|
+
const root = globals.root || (await findRoot());
|
|
24
|
+
const out = path.join(root, ".sst");
|
|
25
|
+
await fs.mkdir(out, {
|
|
26
|
+
recursive: true,
|
|
27
|
+
});
|
|
28
|
+
async function load() {
|
|
29
|
+
const base = await (async function () {
|
|
30
|
+
for (const ext of CONFIG_EXTENSIONS) {
|
|
31
|
+
const file = path.join(root, "sst" + ext);
|
|
32
|
+
try {
|
|
33
|
+
await fs.access(file);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
if (file.endsWith("js")) {
|
|
39
|
+
const fn = await dynamicImport(file);
|
|
40
|
+
return await fn.default(globals);
|
|
41
|
+
}
|
|
42
|
+
if (file.endsWith(".json")) {
|
|
43
|
+
const data = await fs.readFile(file);
|
|
44
|
+
return Object.assign(DEFAULTS, JSON.parse(data.toString("utf8")));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
throw new VisibleError("Could not found a configuration file", "Make sure one of the following exists", " - sst.config.cjs", " - sst.config.mjs", " - sst.config.js", " - sst.json");
|
|
48
|
+
})();
|
|
49
|
+
return {
|
|
50
|
+
...DEFAULTS,
|
|
51
|
+
...base,
|
|
52
|
+
stage: base.stage ||
|
|
53
|
+
globals.stage ||
|
|
54
|
+
(await usePersonalStage(out)) ||
|
|
55
|
+
(await promptPersonalStage(out)),
|
|
56
|
+
profile: base.profile || globals.profile,
|
|
57
|
+
region: base.region || globals.region,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const project = await load();
|
|
61
|
+
project.ssmPrefix =
|
|
62
|
+
project.ssmPrefix || `/sst/${project.name}/${project.stage}/`;
|
|
63
|
+
project.paths = {
|
|
64
|
+
root,
|
|
65
|
+
out,
|
|
66
|
+
artifacts: path.join(out, "artifacts"),
|
|
67
|
+
};
|
|
68
|
+
try {
|
|
69
|
+
const packageJson = JSON.parse(await fs
|
|
70
|
+
.readFile(url.fileURLToPath(new URL("./package.json", import.meta.url)))
|
|
71
|
+
.then((x) => x.toString()));
|
|
72
|
+
project.version = packageJson.version;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
project.version = "unknown";
|
|
76
|
+
}
|
|
77
|
+
ProjectContext.provide(project);
|
|
78
|
+
dotenv.config({
|
|
79
|
+
path: path.join(project.paths.root, `.env.${project.stage}`),
|
|
80
|
+
});
|
|
81
|
+
Logger.debug("Config loaded", project);
|
|
82
|
+
}
|
|
83
|
+
async function usePersonalStage(out) {
|
|
84
|
+
try {
|
|
85
|
+
const result = await fs.readFile(path.join(out, "stage"));
|
|
86
|
+
return result.toString("utf8").trim();
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async function promptPersonalStage(out) {
|
|
93
|
+
const readline = await import("readline");
|
|
94
|
+
const rl = readline.createInterface({
|
|
95
|
+
input: process.stdin,
|
|
96
|
+
output: process.stdout,
|
|
97
|
+
});
|
|
98
|
+
return new Promise((resolve) => {
|
|
99
|
+
const suggested = os.userInfo().username;
|
|
100
|
+
rl.question(`Please enter a name you’d like to use for your personal stage. Or hit enter to use ${blue(suggested)}: `, async (input) => {
|
|
101
|
+
rl.close();
|
|
102
|
+
const result = input || suggested;
|
|
103
|
+
await fs.writeFile(path.join(out, "stage"), result);
|
|
104
|
+
resolve(result);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
async function findRoot() {
|
|
109
|
+
async function find(dir) {
|
|
110
|
+
if (dir === "/")
|
|
111
|
+
throw new VisibleError("Could not found a configuration file", "Make sure one of the following exists", ...CONFIG_EXTENSIONS.map((ext) => ` - sst${ext}`));
|
|
112
|
+
for (const ext of CONFIG_EXTENSIONS) {
|
|
113
|
+
const configPath = path.join(dir, `sst${ext}`);
|
|
114
|
+
if (fsSync.existsSync(configPath)) {
|
|
115
|
+
return dir;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return await find(path.join(dir, ".."));
|
|
119
|
+
}
|
|
120
|
+
const result = await find(process.cwd());
|
|
121
|
+
return result;
|
|
122
|
+
}
|
package/bootstrap.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { GetParametersCommand, SSMClient } from "@aws-sdk/client-ssm";
|
|
2
|
+
import { Tags, Stack, RemovalPolicy, App } from "aws-cdk-lib";
|
|
3
|
+
import { BlockPublicAccess, Bucket, BucketEncryption, } from "aws-cdk-lib/aws-s3";
|
|
4
|
+
import { ParameterTier, StringParameter } from "aws-cdk-lib/aws-ssm";
|
|
5
|
+
import { useProject } from "./app.js";
|
|
6
|
+
import { createSpinner } from "./cli/spinner.js";
|
|
7
|
+
import { Context } from "./context/context.js";
|
|
8
|
+
import { useAWSClient } from "./credentials.js";
|
|
9
|
+
import { VisibleError } from "./error.js";
|
|
10
|
+
import { Logger } from "./logger.js";
|
|
11
|
+
import { Stacks } from "./stacks/index.js";
|
|
12
|
+
const SSM_NAME_VERSION = `/sst/bootstrap/version`;
|
|
13
|
+
const SSM_NAME_STACK_NAME = `/sst/bootstrap/stack-name`;
|
|
14
|
+
const SSM_NAME_BUCKET_NAME = `/sst/bootstrap/bucket-name`;
|
|
15
|
+
export const LATEST_VERSION = "3";
|
|
16
|
+
export const useBootstrap = Context.memo(async () => {
|
|
17
|
+
Logger.debug("Initializing bootstrap context");
|
|
18
|
+
const ret = await ssm();
|
|
19
|
+
if (!ret.version ||
|
|
20
|
+
!ret.bucket ||
|
|
21
|
+
!ret.stack ||
|
|
22
|
+
ret.version !== LATEST_VERSION) {
|
|
23
|
+
const project = useProject();
|
|
24
|
+
const spinner = createSpinner("Deploying bootstrap stack, this only needs to happen once").start();
|
|
25
|
+
const app = new App();
|
|
26
|
+
const stack = new Stack(app, "SSTBootstrap", {
|
|
27
|
+
env: {
|
|
28
|
+
region: project.region,
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
const tags = {};
|
|
32
|
+
for (const [key, value] of Object.entries(tags)) {
|
|
33
|
+
Tags.of(app).add(key, value);
|
|
34
|
+
}
|
|
35
|
+
const bucket = new Bucket(stack, project.region, {
|
|
36
|
+
encryption: BucketEncryption.S3_MANAGED,
|
|
37
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
38
|
+
autoDeleteObjects: true,
|
|
39
|
+
blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
|
|
40
|
+
});
|
|
41
|
+
new StringParameter(stack, SSM_NAME_VERSION, {
|
|
42
|
+
parameterName: SSM_NAME_VERSION,
|
|
43
|
+
stringValue: LATEST_VERSION,
|
|
44
|
+
tier: ParameterTier.STANDARD,
|
|
45
|
+
});
|
|
46
|
+
new StringParameter(stack, SSM_NAME_STACK_NAME, {
|
|
47
|
+
parameterName: SSM_NAME_STACK_NAME,
|
|
48
|
+
stringValue: stack.stackName,
|
|
49
|
+
tier: ParameterTier.STANDARD,
|
|
50
|
+
});
|
|
51
|
+
new StringParameter(stack, SSM_NAME_BUCKET_NAME, {
|
|
52
|
+
parameterName: SSM_NAME_BUCKET_NAME,
|
|
53
|
+
stringValue: bucket.bucketName,
|
|
54
|
+
tier: ParameterTier.STANDARD,
|
|
55
|
+
});
|
|
56
|
+
const asm = app.synth();
|
|
57
|
+
const result = await Stacks.deploy(asm.stacks[0]);
|
|
58
|
+
if (Stacks.isFailed(result.status)) {
|
|
59
|
+
throw new VisibleError(`Failed to deploy bootstrap stack:\n${JSON.stringify(result.errors, null, 4)}`);
|
|
60
|
+
}
|
|
61
|
+
spinner.succeed();
|
|
62
|
+
return ssm();
|
|
63
|
+
}
|
|
64
|
+
Logger.debug("Loaded bootstrap info: ", JSON.stringify(ret));
|
|
65
|
+
return ret;
|
|
66
|
+
});
|
|
67
|
+
async function ssm() {
|
|
68
|
+
const ssm = useAWSClient(SSMClient);
|
|
69
|
+
const result = await ssm.send(new GetParametersCommand({
|
|
70
|
+
Names: [SSM_NAME_VERSION, SSM_NAME_STACK_NAME, SSM_NAME_BUCKET_NAME],
|
|
71
|
+
}));
|
|
72
|
+
return {
|
|
73
|
+
version: result.Parameters.find((p) => p.Name === SSM_NAME_VERSION)?.Value,
|
|
74
|
+
bucket: result.Parameters.find((p) => p.Name === SSM_NAME_BUCKET_NAME)
|
|
75
|
+
?.Value,
|
|
76
|
+
stack: result.Parameters.find((p) => p.Name === SSM_NAME_STACK_NAME)
|
|
77
|
+
?.Value,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
File without changes
|
package/{dist/bus.js → bus.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -5,7 +5,7 @@ import { ISDK } from "aws-cdk/lib/api/aws-auth/sdk.js";
|
|
|
5
5
|
import { SdkProvider } from "aws-cdk/lib/api/aws-auth/sdk-provider.js";
|
|
6
6
|
import { DeployStackResult, DeploymentMethod } from "./deploy-stack.js";
|
|
7
7
|
import { Template, ResourcesToImport, ResourceIdentifierSummaries } from "aws-cdk/lib/api/util/cloudformation.js";
|
|
8
|
-
import { StackActivityProgress } from "aws-cdk/lib/api/util/cloudformation/stack-activity-monitor";
|
|
8
|
+
import { StackActivityProgress } from "aws-cdk/lib/api/util/cloudformation/stack-activity-monitor.js";
|
|
9
9
|
/**
|
|
10
10
|
* SDK obtained by assuming the lookup role
|
|
11
11
|
* for a given environment
|
|
File without changes
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as cxapi from "@aws-cdk/cx-api";
|
|
2
|
-
import
|
|
3
|
-
import * as fs from "fs-extra";
|
|
2
|
+
import fs from "fs/promises";
|
|
4
3
|
import * as uuid from "uuid";
|
|
5
4
|
import { addMetadataAssetsToManifest } from "aws-cdk/lib/assets.js";
|
|
6
5
|
import { debug, error, print } from "aws-cdk/lib/logging.js";
|
|
@@ -10,9 +9,9 @@ import { publishAssets } from "aws-cdk/lib/util/asset-publishing.js";
|
|
|
10
9
|
import { contentHash } from "aws-cdk/lib/util/content-hash.js";
|
|
11
10
|
import { CfnEvaluationException } from "aws-cdk/lib/api/evaluate-cloudformation-template.js";
|
|
12
11
|
import { tryHotswapDeployment } from "aws-cdk/lib/api/hotswap-deployments.js";
|
|
13
|
-
import { ICON } from "aws-cdk/lib/api/hotswap/common.js";
|
|
14
12
|
import { changeSetHasNoChanges, CloudFormationStack, TemplateParameters, waitForChangeSet, waitForStackDeploy, waitForStackDelete, } from "aws-cdk/lib/api/util/cloudformation.js";
|
|
15
13
|
import { StackActivityMonitor, } from "aws-cdk/lib/api/util/cloudformation/stack-activity-monitor.js";
|
|
14
|
+
import { blue } from "colorette";
|
|
16
15
|
const LARGE_TEMPLATE_SIZE_KB = 50;
|
|
17
16
|
export async function deployStack(options) {
|
|
18
17
|
const stackArtifact = options.stack;
|
|
@@ -48,7 +47,6 @@ export async function deployStack(options) {
|
|
|
48
47
|
// if we can skip deployment and we are performing a hotswap, let the user know
|
|
49
48
|
// that no hotswap deployment happened
|
|
50
49
|
if (options.hotswap) {
|
|
51
|
-
print(`\n ${ICON} %s\n`, chalk.bold("hotswap deployment skipped - no changes were detected (use --force to override)"));
|
|
52
50
|
}
|
|
53
51
|
return {
|
|
54
52
|
noOp: true,
|
|
@@ -89,6 +87,16 @@ export async function deployStack(options) {
|
|
|
89
87
|
* This class shares state and functionality between the different full deployment modes
|
|
90
88
|
*/
|
|
91
89
|
class FullCloudFormationDeployment {
|
|
90
|
+
options;
|
|
91
|
+
cloudFormationStack;
|
|
92
|
+
stackArtifact;
|
|
93
|
+
stackParams;
|
|
94
|
+
bodyParameter;
|
|
95
|
+
cfn;
|
|
96
|
+
stackName;
|
|
97
|
+
update;
|
|
98
|
+
verb;
|
|
99
|
+
uuid;
|
|
92
100
|
constructor(options, cloudFormationStack, stackArtifact, stackParams, bodyParameter) {
|
|
93
101
|
this.options = options;
|
|
94
102
|
this.cloudFormationStack = cloudFormationStack;
|
|
@@ -153,7 +161,6 @@ class FullCloudFormationDeployment {
|
|
|
153
161
|
async createChangeSet(changeSetName, willExecute) {
|
|
154
162
|
await this.cleanupOldChangeset(changeSetName);
|
|
155
163
|
debug(`Attempting to create ChangeSet with name ${changeSetName} to ${this.verb} stack ${this.stackName}`);
|
|
156
|
-
print("%s: creating CloudFormation changeset...", chalk.bold(this.stackName));
|
|
157
164
|
const changeSet = await this.cfn
|
|
158
165
|
.createChangeSet({
|
|
159
166
|
StackName: this.stackName,
|
|
@@ -344,7 +351,7 @@ async function makeBodyParameter(stack, resolvedEnvironment, assetManifest, tool
|
|
|
344
351
|
if (!toolkitInfo.found) {
|
|
345
352
|
error(`The template for stack "${stack.displayName}" is ${Math.round(templateJson.length / 1024)}KiB. ` +
|
|
346
353
|
`Templates larger than ${LARGE_TEMPLATE_SIZE_KB}KiB must be uploaded to S3.\n` +
|
|
347
|
-
"Run the following command in order to setup an S3 bucket in this environment, and then re-deploy:\n\n",
|
|
354
|
+
"Run the following command in order to setup an S3 bucket in this environment, and then re-deploy:\n\n", blue(`\t$ cdk bootstrap ${resolvedEnvironment.name}\n`));
|
|
348
355
|
throw new Error('Template too large to deploy ("cdk bootstrap" is required)');
|
|
349
356
|
}
|
|
350
357
|
const templateHash = contentHash(templateJson);
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/// <reference types="yargs" />
|
|
2
|
-
import { Program } from "../program.js";
|
|
2
|
+
import type { Program } from "../program.js";
|
|
3
3
|
export declare const bind: (program: Program) => import("yargs").Argv<{
|
|
4
4
|
stage: string | undefined;
|
|
5
5
|
} & {
|
|
6
6
|
profile: string | undefined;
|
|
7
|
+
} & {
|
|
8
|
+
region: string | undefined;
|
|
7
9
|
} & {
|
|
8
10
|
command: string;
|
|
9
11
|
}>;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { spawnSync } from "child_process";
|
|
3
|
-
import { useAWSCredentials } from "../../credentials.js";
|
|
1
|
+
import { useProject } from "../../app.js";
|
|
4
2
|
export const bind = (program) => program.command("bind <command>", "Binds blah", (yargs) => yargs.positional("command", {
|
|
5
3
|
type: "string",
|
|
6
4
|
describe: "Command to bind to",
|
|
7
5
|
demandOption: true,
|
|
8
6
|
}), async (args) => {
|
|
7
|
+
const { Config } = await import("../../config.js");
|
|
8
|
+
const { spawnSync, spawn } = await import("child_process");
|
|
9
|
+
const { useAWSCredentials } = await import("../../credentials.js");
|
|
9
10
|
const env = await Config.env();
|
|
11
|
+
const project = useProject();
|
|
10
12
|
const credentials = await useAWSCredentials();
|
|
11
13
|
const result = spawnSync(args.command, {
|
|
12
14
|
env: {
|
|
@@ -14,9 +16,11 @@ export const bind = (program) => program.command("bind <command>", "Binds blah",
|
|
|
14
16
|
AWS_ACCESS_KEY_ID: credentials.accessKeyId,
|
|
15
17
|
AWS_SECRET_ACCESS_KEY: credentials.secretAccessKey,
|
|
16
18
|
AWS_SESSION_TOKEN: credentials.sessionToken,
|
|
19
|
+
AWS_REGION: project.region,
|
|
20
|
+
PATH: process.env.PATH,
|
|
17
21
|
},
|
|
18
22
|
stdio: "inherit",
|
|
19
|
-
shell: true,
|
|
23
|
+
shell: process.env.SHELL || true,
|
|
20
24
|
});
|
|
21
25
|
process.exitCode = result.status || undefined;
|
|
22
26
|
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createSpinner } from "../spinner.js";
|
|
2
|
+
export const build = (program) => program.command("build", "Build stacks code", yargs => yargs.option("from", { type: "string" }), async () => {
|
|
3
|
+
const { Stacks } = await import("../../stacks/index.js");
|
|
4
|
+
const spinner = createSpinner("Building stacks").start();
|
|
5
|
+
const fn = await Stacks.build();
|
|
6
|
+
await Stacks.synth({
|
|
7
|
+
fn,
|
|
8
|
+
mode: "deploy"
|
|
9
|
+
});
|
|
10
|
+
spinner.succeed();
|
|
11
|
+
process.exit(0);
|
|
12
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/// <reference types="yargs" />
|
|
2
|
+
import { Program } from "../program.js";
|
|
3
|
+
export declare const consoleCommand: (program: Program) => Promise<import("yargs").Argv<{
|
|
4
|
+
stage: string | undefined;
|
|
5
|
+
} & {
|
|
6
|
+
profile: string | undefined;
|
|
7
|
+
} & {
|
|
8
|
+
region: string | undefined;
|
|
9
|
+
}>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { blue } from "colorette";
|
|
2
|
+
import { useRuntimeServer } from "../../runtime/server.js";
|
|
3
|
+
import { useLocalServer } from "../local/server.js";
|
|
4
|
+
export const consoleCommand = async (program) => program.command("console", "Start the sst console", (yargs) => yargs, async () => {
|
|
5
|
+
await Promise.all([
|
|
6
|
+
useRuntimeServer(),
|
|
7
|
+
useLocalServer({
|
|
8
|
+
key: "",
|
|
9
|
+
cert: "",
|
|
10
|
+
live: false,
|
|
11
|
+
port: 13557,
|
|
12
|
+
}),
|
|
13
|
+
]);
|
|
14
|
+
console.log(`Console started: ${blue(`https://console.sst.dev`)}`);
|
|
15
|
+
});
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/// <reference types="yargs" />
|
|
2
|
-
import { Program } from "../program.js";
|
|
2
|
+
import type { Program } from "../program.js";
|
|
3
3
|
export declare const deploy: (program: Program) => import("yargs").Argv<{
|
|
4
4
|
stage: string | undefined;
|
|
5
5
|
} & {
|
|
6
6
|
profile: string | undefined;
|
|
7
|
+
} & {
|
|
8
|
+
region: string | undefined;
|
|
7
9
|
} & {
|
|
8
10
|
from: string | undefined;
|
|
11
|
+
} & {
|
|
12
|
+
fullscreen: boolean;
|
|
13
|
+
} & {
|
|
14
|
+
filter: string | undefined;
|
|
9
15
|
}>;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { printDeploymentResults } from "../ui/deploy.js";
|
|
2
|
+
export const deploy = (program) => program.command("deploy [filter]", "Work on your SST app locally", (yargs) => yargs
|
|
3
|
+
.option("from", { type: "string" })
|
|
4
|
+
.option("fullscreen", {
|
|
5
|
+
type: "boolean",
|
|
6
|
+
describe: "Disable full screen UI",
|
|
7
|
+
default: true,
|
|
8
|
+
})
|
|
9
|
+
.positional("filter", { type: "string" }), async (args) => {
|
|
10
|
+
const React = await import("react");
|
|
11
|
+
const { CloudAssembly } = await import("aws-cdk-lib/cx-api");
|
|
12
|
+
const { blue, bold } = await import("colorette");
|
|
13
|
+
const { useProject } = await import("../../app.js");
|
|
14
|
+
const { Stacks } = await import("../../stacks/index.js");
|
|
15
|
+
const { render } = await import("ink");
|
|
16
|
+
const { DeploymentUI } = await import("../ui/deploy.js");
|
|
17
|
+
const assembly = await (async function () {
|
|
18
|
+
if (args.from) {
|
|
19
|
+
const result = new CloudAssembly(args.from);
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
const fn = await Stacks.build();
|
|
23
|
+
return await Stacks.synth({
|
|
24
|
+
fn,
|
|
25
|
+
mode: "deploy",
|
|
26
|
+
});
|
|
27
|
+
})();
|
|
28
|
+
const project = useProject();
|
|
29
|
+
const target = assembly.stacks.filter((s) => !args.filter ||
|
|
30
|
+
s.stackName.toLowerCase().includes(args.filter.toLowerCase()));
|
|
31
|
+
if (!target.length) {
|
|
32
|
+
console.log(`No stacks found matching ${blue(args.filter)}`);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
console.log(`Deploying ${bold(target.length + " stacks")} for stage ${blue(project.stage)}...`);
|
|
37
|
+
let component = undefined;
|
|
38
|
+
if (args.fullscreen) {
|
|
39
|
+
process.stdout.write("\x1b[?1049h");
|
|
40
|
+
component = render(React.createElement(DeploymentUI, { stacks: assembly.stacks.map((s) => s.stackName) }));
|
|
41
|
+
}
|
|
42
|
+
const results = await Stacks.deployMany(target);
|
|
43
|
+
if (component)
|
|
44
|
+
component.unmount();
|
|
45
|
+
process.stdout.write("\x1b[?1049l");
|
|
46
|
+
printDeploymentResults(results);
|
|
47
|
+
process.exit(0);
|
|
48
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/// <reference types="yargs" />
|
|
2
|
+
import type { Program } from "../program.js";
|
|
3
|
+
export declare const dev: (program: Program) => import("yargs").Argv<{
|
|
4
|
+
stage: string | undefined;
|
|
5
|
+
} & {
|
|
6
|
+
profile: string | undefined;
|
|
7
|
+
} & {
|
|
8
|
+
region: string | undefined;
|
|
9
|
+
} & {
|
|
10
|
+
fullscreen: boolean;
|
|
11
|
+
}>;
|