sst 3.0.0 → 3.0.1-10
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/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/resource.d.ts +4 -0
- package/dist/resource.js +15 -0
- package/dist/vector-client.d.ts +126 -0
- package/dist/vector-client.js +38 -0
- package/package.json +16 -137
- 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/constructs/AppSyncApi.js
DELETED
|
@@ -1,493 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
export async function weakImport(pkg) {
|
|
4
|
-
try {
|
|
5
|
-
return await import(pkg);
|
|
6
|
-
}
|
|
7
|
-
catch {
|
|
8
|
-
return {};
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
const { print, buildSchema } = await weakImport("graphql");
|
|
12
|
-
const { mergeTypeDefs } = await weakImport("@graphql-tools/merge");
|
|
13
|
-
import { Construct } from "constructs";
|
|
14
|
-
import * as appSyncApiDomain from "./util/appSyncApiDomain.js";
|
|
15
|
-
import { getFunctionRef, isCDKConstruct } from "./Construct.js";
|
|
16
|
-
import { Function as Fn, } from "./Function.js";
|
|
17
|
-
import { useProject } from "../project.js";
|
|
18
|
-
import { GraphqlApi, MappingTemplate as CDKMappingTemplate, SchemaFile, Definition, } from "aws-cdk-lib/aws-appsync";
|
|
19
|
-
/////////////////////
|
|
20
|
-
// Construct
|
|
21
|
-
/////////////////////
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
* The `AppSyncApi` construct is a higher level CDK construct that makes it easy to create an AppSync GraphQL API.
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
*
|
|
28
|
-
* ```js
|
|
29
|
-
* import { AppSyncApi } from "sst/constructs";
|
|
30
|
-
*
|
|
31
|
-
* new AppSyncApi(stack, "GraphqlApi", {
|
|
32
|
-
* schema: "graphql/schema.graphql",
|
|
33
|
-
* dataSources: {
|
|
34
|
-
* notesDS: "src/notes.main",
|
|
35
|
-
* },
|
|
36
|
-
* resolvers: {
|
|
37
|
-
* "Query listNotes": "notesDS",
|
|
38
|
-
* "Query getNoteById": "notesDS",
|
|
39
|
-
* "Mutation createNote": "notesDS",
|
|
40
|
-
* "Mutation updateNote": "notesDS",
|
|
41
|
-
* "Mutation deleteNote": "notesDS",
|
|
42
|
-
* },
|
|
43
|
-
* });
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export class AppSyncApi extends Construct {
|
|
47
|
-
id;
|
|
48
|
-
cdk;
|
|
49
|
-
props;
|
|
50
|
-
_customDomainUrl;
|
|
51
|
-
functionsByDsKey = {};
|
|
52
|
-
dataSourcesByDsKey = {};
|
|
53
|
-
dsKeysByResKey = {};
|
|
54
|
-
resolversByResKey = {};
|
|
55
|
-
bindingForAllFunctions = [];
|
|
56
|
-
permissionsAttachedForAllFunctions = [];
|
|
57
|
-
constructor(scope, id, props) {
|
|
58
|
-
super(scope, props?.cdk?.id || id);
|
|
59
|
-
this.id = id;
|
|
60
|
-
this.props = props;
|
|
61
|
-
this.cdk = {};
|
|
62
|
-
this.createGraphApi();
|
|
63
|
-
// Configure data sources
|
|
64
|
-
if (props?.dataSources) {
|
|
65
|
-
for (const key of Object.keys(props.dataSources)) {
|
|
66
|
-
this.addDataSource(this, key, props.dataSources[key]);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Configure resolvers
|
|
70
|
-
if (props?.resolvers) {
|
|
71
|
-
for (const key of Object.keys(props.resolvers)) {
|
|
72
|
-
this.addResolver(this, key, props.resolvers[key]);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* The Id of the internally created AppSync GraphQL API.
|
|
78
|
-
*/
|
|
79
|
-
get apiId() {
|
|
80
|
-
return this.cdk.graphqlApi.apiId;
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* The ARN of the internally created AppSync GraphQL API.
|
|
84
|
-
*/
|
|
85
|
-
get apiArn() {
|
|
86
|
-
return this.cdk.graphqlApi.arn;
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* The name of the internally created AppSync GraphQL API.
|
|
90
|
-
*/
|
|
91
|
-
get apiName() {
|
|
92
|
-
return this.cdk.graphqlApi.name;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* The AWS generated URL of the Api.
|
|
96
|
-
*/
|
|
97
|
-
get url() {
|
|
98
|
-
return this.cdk.graphqlApi.graphqlUrl;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* If custom domain is enabled, this is the custom domain URL of the Api.
|
|
102
|
-
*/
|
|
103
|
-
get customDomainUrl() {
|
|
104
|
-
return this._customDomainUrl;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Add data sources after the construct has been created
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```js
|
|
111
|
-
* api.addDataSources(stack, {
|
|
112
|
-
* billingDS: "src/billing.main",
|
|
113
|
-
* });
|
|
114
|
-
* ```
|
|
115
|
-
*/
|
|
116
|
-
addDataSources(scope, dataSources) {
|
|
117
|
-
Object.keys(dataSources).forEach((key) => {
|
|
118
|
-
this.addDataSource(scope, key, dataSources[key]);
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Add resolvers the construct has been created
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
* ```js
|
|
126
|
-
* api.addResolvers(stack, {
|
|
127
|
-
* "Mutation charge": "billingDS",
|
|
128
|
-
* });
|
|
129
|
-
* ```
|
|
130
|
-
*/
|
|
131
|
-
addResolvers(scope, resolvers) {
|
|
132
|
-
Object.keys(resolvers).forEach((key) => {
|
|
133
|
-
this.addResolver(scope, key, resolvers[key]);
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Get the instance of the internally created Function, for a given resolver.
|
|
138
|
-
*
|
|
139
|
-
* @example
|
|
140
|
-
* ```js
|
|
141
|
-
* const func = api.getFunction("Mutation charge");
|
|
142
|
-
* ```
|
|
143
|
-
*/
|
|
144
|
-
getFunction(key) {
|
|
145
|
-
let fn = this.functionsByDsKey[key];
|
|
146
|
-
if (!fn) {
|
|
147
|
-
const resKey = this.normalizeResolverKey(key);
|
|
148
|
-
const dsKey = this.dsKeysByResKey[resKey];
|
|
149
|
-
fn = this.functionsByDsKey[dsKey];
|
|
150
|
-
}
|
|
151
|
-
return fn;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Get a datasource by name
|
|
155
|
-
* @example
|
|
156
|
-
* ```js
|
|
157
|
-
* api.getDataSource("billingDS");
|
|
158
|
-
* ```
|
|
159
|
-
*/
|
|
160
|
-
getDataSource(key) {
|
|
161
|
-
let ds = this.dataSourcesByDsKey[key];
|
|
162
|
-
if (!ds) {
|
|
163
|
-
const resKey = this.normalizeResolverKey(key);
|
|
164
|
-
const dsKey = this.dsKeysByResKey[resKey];
|
|
165
|
-
ds = this.dataSourcesByDsKey[dsKey];
|
|
166
|
-
}
|
|
167
|
-
return ds;
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Get a resolver
|
|
171
|
-
*
|
|
172
|
-
* @example
|
|
173
|
-
* ```js
|
|
174
|
-
* api.getResolver("Mutation charge");
|
|
175
|
-
* ```
|
|
176
|
-
*/
|
|
177
|
-
getResolver(key) {
|
|
178
|
-
const resKey = this.normalizeResolverKey(key);
|
|
179
|
-
return this.resolversByResKey[resKey];
|
|
180
|
-
}
|
|
181
|
-
/**
|
|
182
|
-
* Binds the given list of resources to all function data sources.
|
|
183
|
-
*
|
|
184
|
-
* @example
|
|
185
|
-
*
|
|
186
|
-
* ```js
|
|
187
|
-
* api.bind([STRIPE_KEY, bucket]);
|
|
188
|
-
* ```
|
|
189
|
-
*/
|
|
190
|
-
bind(constructs) {
|
|
191
|
-
Object.values(this.functionsByDsKey).forEach((fn) => fn.bind(constructs));
|
|
192
|
-
this.bindingForAllFunctions.push(...constructs);
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Binds the given list of resources to a specific function data source.
|
|
196
|
-
*
|
|
197
|
-
* @example
|
|
198
|
-
* ```js
|
|
199
|
-
* api.bindToDataSource("Mutation charge", [STRIPE_KEY, bucket]);
|
|
200
|
-
* ```
|
|
201
|
-
*
|
|
202
|
-
*/
|
|
203
|
-
bindToDataSource(key, constructs) {
|
|
204
|
-
const fn = this.getFunction(key);
|
|
205
|
-
if (!fn) {
|
|
206
|
-
throw new Error(`Failed to bind resources. Function does not exist for key "${key}".`);
|
|
207
|
-
}
|
|
208
|
-
fn.bind(constructs);
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Attaches the given list of permissions to all function data sources
|
|
212
|
-
*
|
|
213
|
-
* @example
|
|
214
|
-
* ```js
|
|
215
|
-
* api.attachPermissions(["s3"]);
|
|
216
|
-
* ```
|
|
217
|
-
*/
|
|
218
|
-
attachPermissions(permissions) {
|
|
219
|
-
Object.values(this.functionsByDsKey).forEach((fn) => fn.attachPermissions(permissions));
|
|
220
|
-
this.permissionsAttachedForAllFunctions.push(permissions);
|
|
221
|
-
}
|
|
222
|
-
/**
|
|
223
|
-
* Attaches the given list of permissions to a specific function datasource. This allows that function to access other AWS resources.
|
|
224
|
-
*
|
|
225
|
-
* @example
|
|
226
|
-
* ```js
|
|
227
|
-
* api.attachPermissionsToDataSource("Mutation charge", ["s3"]);
|
|
228
|
-
* ```
|
|
229
|
-
*/
|
|
230
|
-
attachPermissionsToDataSource(key, permissions) {
|
|
231
|
-
const fn = this.getFunction(key);
|
|
232
|
-
if (!fn) {
|
|
233
|
-
throw new Error(`Failed to attach permissions. Function does not exist for key "${key}".`);
|
|
234
|
-
}
|
|
235
|
-
fn.attachPermissions(permissions);
|
|
236
|
-
}
|
|
237
|
-
getConstructMetadata() {
|
|
238
|
-
return {
|
|
239
|
-
type: "AppSync",
|
|
240
|
-
data: {
|
|
241
|
-
url: this.cdk.graphqlApi.graphqlUrl,
|
|
242
|
-
appSyncApiId: this.cdk.graphqlApi.apiId,
|
|
243
|
-
appSyncApiKey: this.cdk.graphqlApi.apiKey,
|
|
244
|
-
customDomainUrl: this._customDomainUrl,
|
|
245
|
-
dataSources: Object.entries(this.dataSourcesByDsKey).map(([key]) => ({
|
|
246
|
-
name: key,
|
|
247
|
-
fn: getFunctionRef(this.functionsByDsKey[key]),
|
|
248
|
-
})),
|
|
249
|
-
},
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
/** @internal */
|
|
253
|
-
getFunctionBinding() {
|
|
254
|
-
// Do not bind imported AppSync APIs b/c we don't know the API URL
|
|
255
|
-
if (!this.url) {
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
return {
|
|
259
|
-
clientPackage: "api",
|
|
260
|
-
variables: {
|
|
261
|
-
url: {
|
|
262
|
-
type: "plain",
|
|
263
|
-
value: this.customDomainUrl || this.url,
|
|
264
|
-
},
|
|
265
|
-
},
|
|
266
|
-
permissions: {},
|
|
267
|
-
};
|
|
268
|
-
}
|
|
269
|
-
createGraphApi() {
|
|
270
|
-
const { schema, customDomain, cdk } = this.props;
|
|
271
|
-
const id = this.node.id;
|
|
272
|
-
const app = this.node.root;
|
|
273
|
-
if (isCDKConstruct(cdk?.graphqlApi)) {
|
|
274
|
-
if (customDomain !== undefined) {
|
|
275
|
-
throw new Error(`Cannot configure the "customDomain" when "graphqlApi" is a construct`);
|
|
276
|
-
}
|
|
277
|
-
this.cdk.graphqlApi = cdk?.graphqlApi;
|
|
278
|
-
}
|
|
279
|
-
else {
|
|
280
|
-
const graphqlApiProps = (cdk?.graphqlApi ||
|
|
281
|
-
{});
|
|
282
|
-
// build schema
|
|
283
|
-
let mainSchema;
|
|
284
|
-
if (!schema) {
|
|
285
|
-
throw new Error(`Missing "schema" in "${id}" AppSyncApi`);
|
|
286
|
-
}
|
|
287
|
-
else if (typeof schema === "string") {
|
|
288
|
-
mainSchema = SchemaFile.fromAsset(schema);
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
if (schema.length === 0) {
|
|
292
|
-
throw new Error("Invalid schema. At least one schema file must be provided");
|
|
293
|
-
}
|
|
294
|
-
// merge schema files
|
|
295
|
-
const mergedSchema = mergeTypeDefs(schema
|
|
296
|
-
.map((file) => fs.readFileSync(file).toString())
|
|
297
|
-
.map(buildSchema));
|
|
298
|
-
const filePath = path.join(useProject().paths.out, `appsyncapi-${id}-${this.node.addr}.graphql`);
|
|
299
|
-
fs.writeFileSync(filePath, print(mergedSchema));
|
|
300
|
-
mainSchema = SchemaFile.fromAsset(filePath);
|
|
301
|
-
}
|
|
302
|
-
// build domain
|
|
303
|
-
const domainData = appSyncApiDomain.buildCustomDomainData(this, customDomain);
|
|
304
|
-
this._customDomainUrl =
|
|
305
|
-
domainData && `https://${domainData.domainName}/graphql`;
|
|
306
|
-
this.cdk.graphqlApi = new GraphqlApi(this, "Api", {
|
|
307
|
-
name: app.logicalPrefixedName(id),
|
|
308
|
-
xrayEnabled: true,
|
|
309
|
-
definition: Definition.fromSchema(mainSchema),
|
|
310
|
-
domainName: domainData && {
|
|
311
|
-
certificate: domainData.certificate,
|
|
312
|
-
domainName: domainData.domainName,
|
|
313
|
-
},
|
|
314
|
-
...graphqlApiProps,
|
|
315
|
-
});
|
|
316
|
-
this.cdk.certificate = domainData?.certificate;
|
|
317
|
-
if (domainData) {
|
|
318
|
-
appSyncApiDomain.cleanup(this, domainData);
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
addDataSource(scope, dsKey, dsValue) {
|
|
323
|
-
let dataSource;
|
|
324
|
-
let lambda;
|
|
325
|
-
// Lambda function
|
|
326
|
-
if (Fn.isInlineDefinition(dsValue)) {
|
|
327
|
-
lambda = Fn.fromDefinition(scope, `Lambda_${dsKey}`, dsValue, this.props.defaults?.function, `Cannot define defaults.function when a Function is passed in to the "${dsKey} data source`);
|
|
328
|
-
dataSource = this.cdk.graphqlApi.addLambdaDataSource(dsKey, lambda);
|
|
329
|
-
}
|
|
330
|
-
// DynamoDb ds
|
|
331
|
-
else if (dsValue.type === "dynamodb") {
|
|
332
|
-
dataSource = this.cdk.graphqlApi.addDynamoDbDataSource(dsKey, dsValue.table
|
|
333
|
-
? dsValue.table.cdk.table
|
|
334
|
-
: dsValue.cdk?.dataSource?.table, {
|
|
335
|
-
name: dsValue.name,
|
|
336
|
-
description: dsValue.description,
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
// RDS ds
|
|
340
|
-
else if (dsValue.type === "rds") {
|
|
341
|
-
dataSource = this.cdk.graphqlApi.addRdsDataSource(dsKey, dsValue.rds
|
|
342
|
-
? dsValue.rds.cdk.cluster
|
|
343
|
-
: dsValue.cdk?.dataSource?.serverlessCluster, dsValue.rds
|
|
344
|
-
? dsValue.rds.cdk.cluster.secret
|
|
345
|
-
: dsValue.cdk?.dataSource?.secretStore, dsValue.rds
|
|
346
|
-
? dsValue.databaseName || dsValue.rds.defaultDatabaseName
|
|
347
|
-
: dsValue.cdk?.dataSource?.databaseName, {
|
|
348
|
-
name: dsValue.name,
|
|
349
|
-
description: dsValue.description,
|
|
350
|
-
});
|
|
351
|
-
}
|
|
352
|
-
// OpenSearch ds
|
|
353
|
-
else if (dsValue.type === "open_search") {
|
|
354
|
-
dataSource = this.cdk.graphqlApi.addOpenSearchDataSource(dsKey, dsValue.cdk?.dataSource?.domain, {
|
|
355
|
-
name: dsValue.name,
|
|
356
|
-
description: dsValue.description,
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
// Http ds
|
|
360
|
-
else if (dsValue.type === "http") {
|
|
361
|
-
dataSource = this.cdk.graphqlApi.addHttpDataSource(dsKey, dsValue.endpoint, {
|
|
362
|
-
name: dsValue.name,
|
|
363
|
-
description: dsValue.description,
|
|
364
|
-
});
|
|
365
|
-
}
|
|
366
|
-
// Http ds
|
|
367
|
-
else if (dsValue.type === "none") {
|
|
368
|
-
dataSource = this.cdk.graphqlApi.addNoneDataSource(dsKey, {
|
|
369
|
-
name: dsValue.name,
|
|
370
|
-
description: dsValue.description,
|
|
371
|
-
});
|
|
372
|
-
}
|
|
373
|
-
// Lambda ds
|
|
374
|
-
else {
|
|
375
|
-
lambda = Fn.fromDefinition(scope, `Lambda_${dsKey}`, dsValue.function, this.props.defaults?.function, `Cannot define defaults.function when a Function is passed in to the "${dsKey} data source`);
|
|
376
|
-
dataSource = this.cdk.graphqlApi.addLambdaDataSource(dsKey, lambda, {
|
|
377
|
-
name: dsValue.name,
|
|
378
|
-
description: dsValue.description,
|
|
379
|
-
});
|
|
380
|
-
}
|
|
381
|
-
this.dataSourcesByDsKey[dsKey] = dataSource;
|
|
382
|
-
if (lambda) {
|
|
383
|
-
this.functionsByDsKey[dsKey] = lambda;
|
|
384
|
-
// attached existing permissions
|
|
385
|
-
this.permissionsAttachedForAllFunctions.forEach((permissions) => lambda.attachPermissions(permissions));
|
|
386
|
-
lambda.bind(this.bindingForAllFunctions);
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
addResolver(scope, resKey, resValue) {
|
|
390
|
-
// Normalize resKey
|
|
391
|
-
resKey = this.normalizeResolverKey(resKey);
|
|
392
|
-
// Get type and field
|
|
393
|
-
const resolverKeyParts = resKey.split(" ");
|
|
394
|
-
if (resolverKeyParts.length !== 2) {
|
|
395
|
-
throw new Error(`Invalid resolver ${resKey}`);
|
|
396
|
-
}
|
|
397
|
-
const [typeName, fieldName] = resolverKeyParts;
|
|
398
|
-
if (fieldName.length === 0) {
|
|
399
|
-
throw new Error(`Invalid field defined for "${resKey}"`);
|
|
400
|
-
}
|
|
401
|
-
///////////////////
|
|
402
|
-
// Create data source if not created before
|
|
403
|
-
///////////////////
|
|
404
|
-
let lambda;
|
|
405
|
-
let dataSource;
|
|
406
|
-
let dataSourceKey;
|
|
407
|
-
let resolverProps;
|
|
408
|
-
// DataSource key
|
|
409
|
-
if (typeof resValue === "string" &&
|
|
410
|
-
Object.keys(this.dataSourcesByDsKey).includes(resValue)) {
|
|
411
|
-
dataSourceKey = resValue;
|
|
412
|
-
dataSource = this.dataSourcesByDsKey[resValue];
|
|
413
|
-
resolverProps = {};
|
|
414
|
-
}
|
|
415
|
-
// DataSource key not exist (string does not have a dot, assume it is referencing a data store)
|
|
416
|
-
else if (typeof resValue === "string" && resValue.indexOf(".") === -1) {
|
|
417
|
-
throw new Error(`Failed to create resolver "${resKey}". Data source "${resValue}" does not exist.`);
|
|
418
|
-
}
|
|
419
|
-
// Lambda resolver
|
|
420
|
-
else if (this.isLambdaResolverProps(resValue)) {
|
|
421
|
-
resValue = resValue;
|
|
422
|
-
lambda = Fn.fromDefinition(scope, `Lambda_${typeName}_${fieldName}`, resValue.function, this.props.defaults?.function, `Cannot define defaults.function when a Function is passed in to the "${resKey} resolver`);
|
|
423
|
-
dataSourceKey = this.buildDataSourceKey(typeName, fieldName);
|
|
424
|
-
dataSource = this.cdk.graphqlApi.addLambdaDataSource(dataSourceKey, lambda);
|
|
425
|
-
resolverProps = {
|
|
426
|
-
requestMappingTemplate: this.buildMappingTemplate(resValue.requestMapping),
|
|
427
|
-
responseMappingTemplate: this.buildMappingTemplate(resValue.responseMapping),
|
|
428
|
-
...resValue.cdk?.resolver,
|
|
429
|
-
};
|
|
430
|
-
}
|
|
431
|
-
// DataSource resolver
|
|
432
|
-
else if (this.isDataSourceResolverProps(resValue)) {
|
|
433
|
-
resValue = resValue;
|
|
434
|
-
dataSourceKey = resValue.dataSource;
|
|
435
|
-
dataSource = this.dataSourcesByDsKey[dataSourceKey];
|
|
436
|
-
resolverProps = {
|
|
437
|
-
requestMappingTemplate: this.buildMappingTemplate(resValue.requestMapping),
|
|
438
|
-
responseMappingTemplate: this.buildMappingTemplate(resValue.responseMapping),
|
|
439
|
-
...resValue.cdk?.resolver,
|
|
440
|
-
};
|
|
441
|
-
}
|
|
442
|
-
// Lambda function
|
|
443
|
-
else {
|
|
444
|
-
resValue = resValue;
|
|
445
|
-
lambda = Fn.fromDefinition(scope, `Lambda_${typeName}_${fieldName}`, resValue, this.props.defaults?.function, `Cannot define defaults.function when a Function is passed in to the "${resKey} resolver`);
|
|
446
|
-
dataSourceKey = this.buildDataSourceKey(typeName, fieldName);
|
|
447
|
-
dataSource = this.cdk.graphqlApi.addLambdaDataSource(dataSourceKey, lambda);
|
|
448
|
-
resolverProps = {};
|
|
449
|
-
}
|
|
450
|
-
if (lambda) {
|
|
451
|
-
// Store new data source created
|
|
452
|
-
this.dataSourcesByDsKey[dataSourceKey] = dataSource;
|
|
453
|
-
this.functionsByDsKey[dataSourceKey] = lambda;
|
|
454
|
-
// attached existing permissions
|
|
455
|
-
this.permissionsAttachedForAllFunctions.forEach((permissions) => lambda.attachPermissions(permissions));
|
|
456
|
-
lambda.bind(this.bindingForAllFunctions);
|
|
457
|
-
}
|
|
458
|
-
this.dsKeysByResKey[resKey] = dataSourceKey;
|
|
459
|
-
///////////////////
|
|
460
|
-
// Create resolver
|
|
461
|
-
///////////////////
|
|
462
|
-
const resolver = this.cdk.graphqlApi.createResolver(`${typeName}${fieldName}Resolver`, {
|
|
463
|
-
dataSource,
|
|
464
|
-
typeName,
|
|
465
|
-
fieldName,
|
|
466
|
-
...resolverProps,
|
|
467
|
-
});
|
|
468
|
-
this.resolversByResKey[resKey] = resolver;
|
|
469
|
-
return lambda;
|
|
470
|
-
}
|
|
471
|
-
isLambdaResolverProps(object) {
|
|
472
|
-
return object.function !== undefined;
|
|
473
|
-
}
|
|
474
|
-
isDataSourceResolverProps(object) {
|
|
475
|
-
return object.dataSource !== undefined;
|
|
476
|
-
}
|
|
477
|
-
normalizeResolverKey(resolverKey) {
|
|
478
|
-
// remove extra spaces in the key
|
|
479
|
-
return resolverKey.split(/\s+/).join(" ");
|
|
480
|
-
}
|
|
481
|
-
buildMappingTemplate(mapping) {
|
|
482
|
-
if (!mapping) {
|
|
483
|
-
return undefined;
|
|
484
|
-
}
|
|
485
|
-
if (mapping.file) {
|
|
486
|
-
return CDKMappingTemplate.fromFile(mapping.file);
|
|
487
|
-
}
|
|
488
|
-
return CDKMappingTemplate.fromString(mapping.inline);
|
|
489
|
-
}
|
|
490
|
-
buildDataSourceKey(typeName, fieldName) {
|
|
491
|
-
return `LambdaDS_${typeName}_${fieldName}`;
|
|
492
|
-
}
|
|
493
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { SsrSite } from "./SsrSite.js";
|
|
2
|
-
import { SsrFunction } from "./SsrFunction.js";
|
|
3
|
-
import { EdgeFunction } from "./EdgeFunction.js";
|
|
4
|
-
/**
|
|
5
|
-
* The `AstroSite` construct is a higher level CDK construct that makes it easy to create a Astro app.
|
|
6
|
-
* @example
|
|
7
|
-
* Deploys a Astro app in the `my-astro-app` directory.
|
|
8
|
-
*
|
|
9
|
-
* ```js
|
|
10
|
-
* new AstroSite(stack, "web", {
|
|
11
|
-
* path: "my-astro-app/",
|
|
12
|
-
* });
|
|
13
|
-
* ```
|
|
14
|
-
*/
|
|
15
|
-
export declare class AstroSite extends SsrSite {
|
|
16
|
-
protected initBuildConfig(): {
|
|
17
|
-
typesPath: string;
|
|
18
|
-
serverBuildOutputFile: string;
|
|
19
|
-
clientBuildOutputDir: string;
|
|
20
|
-
clientBuildVersionedSubDir: string;
|
|
21
|
-
};
|
|
22
|
-
protected validateBuildOutput(): void;
|
|
23
|
-
protected createFunctionForRegional(): SsrFunction;
|
|
24
|
-
protected createFunctionForEdge(): EdgeFunction;
|
|
25
|
-
getConstructMetadata(): {
|
|
26
|
-
data: {
|
|
27
|
-
mode: "placeholder" | "deployed";
|
|
28
|
-
path: string;
|
|
29
|
-
runtime: "nodejs14.x" | "nodejs16.x" | "nodejs18.x";
|
|
30
|
-
customDomainUrl: string | undefined;
|
|
31
|
-
url: string | undefined;
|
|
32
|
-
edge: boolean | undefined;
|
|
33
|
-
server: string;
|
|
34
|
-
secrets: string[];
|
|
35
|
-
};
|
|
36
|
-
type: "AstroSite";
|
|
37
|
-
};
|
|
38
|
-
protected supportsStreaming(): boolean;
|
|
39
|
-
}
|
package/constructs/AstroSite.js
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import { SsrSite } from "./SsrSite.js";
|
|
4
|
-
import { SsrFunction } from "./SsrFunction.js";
|
|
5
|
-
import { EdgeFunction } from "./EdgeFunction.js";
|
|
6
|
-
/**
|
|
7
|
-
* The `AstroSite` construct is a higher level CDK construct that makes it easy to create a Astro app.
|
|
8
|
-
* @example
|
|
9
|
-
* Deploys a Astro app in the `my-astro-app` directory.
|
|
10
|
-
*
|
|
11
|
-
* ```js
|
|
12
|
-
* new AstroSite(stack, "web", {
|
|
13
|
-
* path: "my-astro-app/",
|
|
14
|
-
* });
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export class AstroSite extends SsrSite {
|
|
18
|
-
initBuildConfig() {
|
|
19
|
-
return {
|
|
20
|
-
typesPath: "src",
|
|
21
|
-
serverBuildOutputFile: "dist/server/entry.mjs",
|
|
22
|
-
clientBuildOutputDir: "dist/client",
|
|
23
|
-
clientBuildVersionedSubDir: "assets",
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
validateBuildOutput() {
|
|
27
|
-
const serverDir = path.join(this.props.path, "dist/server");
|
|
28
|
-
const clientDir = path.join(this.props.path, "dist/client");
|
|
29
|
-
if (!fs.existsSync(serverDir) || !fs.existsSync(clientDir)) {
|
|
30
|
-
throw new Error(`Build output inside "dist/" does not contain the "server" and "client" folders. Make sure Server-side Rendering (SSR) is enabled in your Astro app. If you are looking to deploy the Astro app as a static site, please use the StaticSite construct — https://docs.sst.dev/constructs/StaticSite`);
|
|
31
|
-
}
|
|
32
|
-
super.validateBuildOutput();
|
|
33
|
-
}
|
|
34
|
-
createFunctionForRegional() {
|
|
35
|
-
const { runtime, timeout, memorySize, permissions, environment, nodejs, bind, cdk, } = this.props;
|
|
36
|
-
return new SsrFunction(this, `ServerFunction`, {
|
|
37
|
-
description: "Server handler for Astro",
|
|
38
|
-
handler: path.join(this.props.path, "dist", "server", "entry.handler"),
|
|
39
|
-
runtime,
|
|
40
|
-
memorySize,
|
|
41
|
-
timeout,
|
|
42
|
-
nodejs: {
|
|
43
|
-
format: "esm",
|
|
44
|
-
...nodejs,
|
|
45
|
-
},
|
|
46
|
-
bind,
|
|
47
|
-
environment,
|
|
48
|
-
permissions,
|
|
49
|
-
...cdk?.server,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
createFunctionForEdge() {
|
|
53
|
-
const { runtime, timeout, memorySize, bind, permissions, environment, nodejs, } = this.props;
|
|
54
|
-
return new EdgeFunction(this, `Server`, {
|
|
55
|
-
scopeOverride: this,
|
|
56
|
-
handler: path.join(this.props.path, "dist", "server", "entry.handler"),
|
|
57
|
-
runtime,
|
|
58
|
-
timeout,
|
|
59
|
-
memorySize,
|
|
60
|
-
bind,
|
|
61
|
-
environment,
|
|
62
|
-
permissions,
|
|
63
|
-
nodejs: {
|
|
64
|
-
format: "esm",
|
|
65
|
-
...nodejs,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
getConstructMetadata() {
|
|
70
|
-
return {
|
|
71
|
-
type: "AstroSite",
|
|
72
|
-
...this.getConstructMetadataBase(),
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
supportsStreaming() {
|
|
76
|
-
return true;
|
|
77
|
-
}
|
|
78
|
-
}
|