sst 3.0.0 → 3.0.1-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +7 -139
- package/src/index.ts +1 -0
- package/src/resource.ts +15 -0
- package/tsconfig.json +11 -0
- package/LICENSE +0 -21
- package/README.md +0 -43
- package/bootstrap.d.ts +0 -5
- package/bootstrap.js +0 -318
- package/bus.d.ts +0 -20
- package/bus.js +0 -52
- package/cache.d.ts +0 -4
- package/cache.js +0 -31
- package/cdk/deploy-stack.d.ts +0 -223
- package/cdk/deploy-stack.js +0 -562
- package/cdk/deployments-wrapper.d.ts +0 -3
- package/cdk/deployments-wrapper.js +0 -135
- package/cdk/deployments.d.ts +0 -327
- package/cdk/deployments.js +0 -360
- package/cdk/util.d.ts +0 -1
- package/cdk/util.js +0 -17
- package/cli/ci-info.d.ts +0 -4
- package/cli/ci-info.js +0 -8
- package/cli/colors.d.ts +0 -17
- package/cli/colors.js +0 -27
- package/cli/commands/bind.d.ts +0 -19
- package/cli/commands/bind.js +0 -360
- package/cli/commands/bootstrap.d.ts +0 -15
- package/cli/commands/bootstrap.js +0 -11
- package/cli/commands/build.d.ts +0 -17
- package/cli/commands/build.js +0 -25
- package/cli/commands/connect.d.ts +0 -17
- package/cli/commands/connect.js +0 -55
- package/cli/commands/console.d.ts +0 -15
- package/cli/commands/console.js +0 -22
- package/cli/commands/deploy.d.ts +0 -19
- package/cli/commands/deploy.js +0 -112
- package/cli/commands/dev.d.ts +0 -25
- package/cli/commands/dev.js +0 -351
- package/cli/commands/diff.d.ts +0 -19
- package/cli/commands/diff.js +0 -89
- package/cli/commands/plugins/kysely.d.ts +0 -1
- package/cli/commands/plugins/kysely.js +0 -87
- package/cli/commands/plugins/pothos.d.ts +0 -1
- package/cli/commands/plugins/pothos.js +0 -58
- package/cli/commands/plugins/warmer.d.ts +0 -1
- package/cli/commands/plugins/warmer.js +0 -33
- package/cli/commands/remove.d.ts +0 -19
- package/cli/commands/remove.js +0 -62
- package/cli/commands/secrets/get.d.ts +0 -19
- package/cli/commands/secrets/get.js +0 -27
- package/cli/commands/secrets/list.d.ts +0 -19
- package/cli/commands/secrets/list.js +0 -69
- package/cli/commands/secrets/load.d.ts +0 -17
- package/cli/commands/secrets/load.js +0 -47
- package/cli/commands/secrets/remove.d.ts +0 -19
- package/cli/commands/secrets/remove.js +0 -27
- package/cli/commands/secrets/secrets.d.ts +0 -2
- package/cli/commands/secrets/secrets.js +0 -16
- package/cli/commands/secrets/set.d.ts +0 -21
- package/cli/commands/secrets/set.js +0 -54
- package/cli/commands/telemetry.d.ts +0 -17
- package/cli/commands/telemetry.js +0 -24
- package/cli/commands/transform.d.ts +0 -17
- package/cli/commands/transform.js +0 -62
- package/cli/commands/types.d.ts +0 -15
- package/cli/commands/types.js +0 -25
- package/cli/commands/update.d.ts +0 -17
- package/cli/commands/update.js +0 -116
- package/cli/commands/version.d.ts +0 -15
- package/cli/commands/version.js +0 -15
- package/cli/local/router.d.ts +0 -44
- package/cli/local/router.js +0 -43
- package/cli/local/server.d.ts +0 -22
- package/cli/local/server.js +0 -319
- package/cli/program.d.ts +0 -19
- package/cli/program.js +0 -87
- package/cli/spinner.d.ts +0 -3
- package/cli/spinner.js +0 -14
- package/cli/sst.d.ts +0 -2
- package/cli/sst.js +0 -74
- package/cli/telemetry/environment.d.ts +0 -15
- package/cli/telemetry/environment.js +0 -27
- package/cli/telemetry/post-payload.d.ts +0 -1
- package/cli/telemetry/post-payload.js +0 -27
- package/cli/telemetry/project-id.d.ts +0 -2
- package/cli/telemetry/project-id.js +0 -47
- package/cli/telemetry/telemetry.d.ts +0 -19
- package/cli/telemetry/telemetry.js +0 -103
- package/cli/terminal.d.ts +0 -1
- package/cli/terminal.js +0 -8
- package/cli/ui/deploy.d.ts +0 -10
- package/cli/ui/deploy.js +0 -172
- package/cli/ui/functions.d.ts +0 -2
- package/cli/ui/functions.js +0 -130
- package/cli/ui/header.d.ts +0 -5
- package/cli/ui/header.js +0 -16
- package/cli/ui/stack.d.ts +0 -1
- package/cli/ui/stack.js +0 -6
- package/config.d.ts +0 -56
- package/config.js +0 -244
- package/constructs/Api.d.ts +0 -814
- package/constructs/Api.js +0 -743
- package/constructs/ApiGatewayV1Api.d.ts +0 -642
- package/constructs/ApiGatewayV1Api.js +0 -767
- package/constructs/App.d.ts +0 -168
- package/constructs/App.js +0 -493
- package/constructs/AppSyncApi.d.ts +0 -550
- package/constructs/AppSyncApi.js +0 -493
- package/constructs/AstroSite.d.ts +0 -39
- package/constructs/AstroSite.js +0 -78
- package/constructs/AstroSite.tsdoc.d.ts +0 -2
- package/constructs/AstroSite.tsdoc.js +0 -2
- package/constructs/Auth.d.ts +0 -100
- package/constructs/Auth.js +0 -177
- package/constructs/BaseSite.d.ts +0 -29
- package/constructs/BaseSite.js +0 -43
- package/constructs/Bucket.d.ts +0 -364
- package/constructs/Bucket.js +0 -327
- package/constructs/Cognito.d.ts +0 -232
- package/constructs/Cognito.js +0 -370
- package/constructs/Config.d.ts +0 -3
- package/constructs/Config.js +0 -3
- package/constructs/Construct.d.ts +0 -23
- package/constructs/Construct.js +0 -46
- package/constructs/Cron.d.ts +0 -164
- package/constructs/Cron.js +0 -114
- package/constructs/Distribution.d.ts +0 -143
- package/constructs/Distribution.js +0 -260
- package/constructs/EdgeFunction.d.ts +0 -49
- package/constructs/EdgeFunction.js +0 -442
- package/constructs/EventBus.d.ts +0 -444
- package/constructs/EventBus.js +0 -440
- package/constructs/Function.d.ts +0 -690
- package/constructs/Function.js +0 -583
- package/constructs/FunctionalStack.d.ts +0 -13
- package/constructs/FunctionalStack.js +0 -62
- package/constructs/Job.d.ts +0 -337
- package/constructs/Job.js +0 -404
- package/constructs/KinesisStream.d.ts +0 -224
- package/constructs/KinesisStream.js +0 -207
- package/constructs/Metadata.d.ts +0 -60
- package/constructs/Metadata.js +0 -1
- package/constructs/NextjsSite.d.ts +0 -104
- package/constructs/NextjsSite.js +0 -308
- package/constructs/Parameter.d.ts +0 -37
- package/constructs/Parameter.js +0 -53
- package/constructs/Queue.d.ts +0 -194
- package/constructs/Queue.js +0 -204
- package/constructs/RDS.d.ts +0 -221
- package/constructs/RDS.js +0 -363
- package/constructs/RemixSite.d.ts +0 -42
- package/constructs/RemixSite.js +0 -158
- package/constructs/RemixSite.tsdoc.d.ts +0 -2
- package/constructs/RemixSite.tsdoc.js +0 -2
- package/constructs/Script.d.ts +0 -160
- package/constructs/Script.js +0 -179
- package/constructs/Secret.d.ts +0 -30
- package/constructs/Secret.js +0 -59
- package/constructs/Service.d.ts +0 -487
- package/constructs/Service.js +0 -655
- package/constructs/SolidStartSite.d.ts +0 -37
- package/constructs/SolidStartSite.js +0 -66
- package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
- package/constructs/SolidStartSite.tsdoc.js +0 -2
- package/constructs/SsrFunction.d.ts +0 -60
- package/constructs/SsrFunction.js +0 -226
- package/constructs/SsrSite.d.ts +0 -407
- package/constructs/SsrSite.js +0 -850
- package/constructs/Stack.d.ts +0 -127
- package/constructs/Stack.js +0 -243
- package/constructs/StaticSite.d.ts +0 -348
- package/constructs/StaticSite.js +0 -468
- package/constructs/SvelteKitSite.d.ts +0 -40
- package/constructs/SvelteKitSite.js +0 -106
- package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
- package/constructs/SvelteKitSite.tsdoc.js +0 -2
- package/constructs/Table.d.ts +0 -410
- package/constructs/Table.js +0 -425
- package/constructs/Topic.d.ts +0 -257
- package/constructs/Topic.js +0 -273
- package/constructs/WebSocketApi.d.ts +0 -355
- package/constructs/WebSocketApi.js +0 -404
- package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
- package/constructs/cdk/HttpAwsIntegration.js +0 -24
- package/constructs/cdk/certificate-base.d.ts +0 -18
- package/constructs/cdk/certificate-base.js +0 -26
- package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
- package/constructs/cdk/dns-validated-certificate.js +0 -125
- package/constructs/cdk/website-redirect.d.ts +0 -53
- package/constructs/cdk/website-redirect.js +0 -77
- package/constructs/context.d.ts +0 -3
- package/constructs/context.js +0 -27
- package/constructs/deferred_task.d.ts +0 -6
- package/constructs/deferred_task.js +0 -45
- package/constructs/deprecated/NextjsSite.d.ts +0 -309
- package/constructs/deprecated/NextjsSite.js +0 -1074
- package/constructs/deprecated/cross-region-helper.d.ts +0 -7
- package/constructs/deprecated/cross-region-helper.js +0 -152
- package/constructs/deprecated/index.d.ts +0 -1
- package/constructs/deprecated/index.js +0 -1
- package/constructs/future/Auth.d.ts +0 -80
- package/constructs/future/Auth.js +0 -122
- package/constructs/future/index.d.ts +0 -1
- package/constructs/future/index.js +0 -1
- package/constructs/index.d.ts +0 -32
- package/constructs/index.js +0 -32
- package/constructs/static-file-list.d.ts +0 -1
- package/constructs/static-file-list.js +0 -51
- package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
- package/constructs/util/apiGatewayV1AccessLog.js +0 -76
- package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
- package/constructs/util/apiGatewayV2AccessLog.js +0 -107
- package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
- package/constructs/util/apiGatewayV2Cors.js +0 -21
- package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
- package/constructs/util/apiGatewayV2Domain.js +0 -208
- package/constructs/util/appSyncApiDomain.d.ts +0 -41
- package/constructs/util/appSyncApiDomain.js +0 -176
- package/constructs/util/builder.d.ts +0 -3
- package/constructs/util/builder.js +0 -9
- package/constructs/util/duration.d.ts +0 -3
- package/constructs/util/duration.js +0 -19
- package/constructs/util/functionBinding.d.ts +0 -31
- package/constructs/util/functionBinding.js +0 -104
- package/constructs/util/functionUrlCors.d.ts +0 -67
- package/constructs/util/functionUrlCors.js +0 -23
- package/constructs/util/permission.d.ts +0 -8
- package/constructs/util/permission.js +0 -228
- package/constructs/util/size.d.ts +0 -3
- package/constructs/util/size.js +0 -12
- package/constructs/util/warning.d.ts +0 -11
- package/constructs/util/warning.js +0 -21
- package/context/context.d.ts +0 -13
- package/context/context.js +0 -69
- package/context/context2.d.ts +0 -16
- package/context/context2.js +0 -108
- package/context/handler.d.ts +0 -25
- package/context/handler.js +0 -21
- package/context/index.d.ts +0 -2
- package/context/index.js +0 -2
- package/credentials.d.ts +0 -9
- package/credentials.js +0 -145
- package/error.d.ts +0 -6
- package/error.js +0 -10
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/iot.d.ts +0 -6
- package/iot.js +0 -163
- package/logger.d.ts +0 -3
- package/logger.js +0 -32
- package/node/actor/index.d.ts +0 -29
- package/node/actor/index.js +0 -17
- package/node/api/index.d.ts +0 -64
- package/node/api/index.js +0 -179
- package/node/auth/adapter/adapter.d.ts +0 -3
- package/node/auth/adapter/adapter.js +0 -3
- package/node/auth/adapter/facebook.d.ts +0 -2
- package/node/auth/adapter/facebook.js +0 -26
- package/node/auth/adapter/github.d.ts +0 -2
- package/node/auth/adapter/github.js +0 -21
- package/node/auth/adapter/google.d.ts +0 -9
- package/node/auth/adapter/google.js +0 -18
- package/node/auth/adapter/link.d.ts +0 -8
- package/node/auth/adapter/link.js +0 -39
- package/node/auth/adapter/oauth.d.ts +0 -25
- package/node/auth/adapter/oauth.js +0 -52
- package/node/auth/adapter/oidc.d.ts +0 -17
- package/node/auth/adapter/oidc.js +0 -50
- package/node/auth/adapter/twitch.d.ts +0 -2
- package/node/auth/adapter/twitch.js +0 -11
- package/node/auth/auth.d.ts +0 -24
- package/node/auth/auth.js +0 -74
- package/node/auth/index.d.ts +0 -13
- package/node/auth/index.js +0 -12
- package/node/auth/session.d.ts +0 -76
- package/node/auth/session.js +0 -121
- package/node/bucket/index.d.ts +0 -3
- package/node/bucket/index.js +0 -2
- package/node/config/index.d.ts +0 -13
- package/node/config/index.js +0 -22
- package/node/event-bus/index.d.ts +0 -51
- package/node/event-bus/index.js +0 -76
- package/node/function/index.d.ts +0 -3
- package/node/function/index.js +0 -3
- package/node/future/auth/adapter/adapter.d.ts +0 -10
- package/node/future/auth/adapter/adapter.js +0 -1
- package/node/future/auth/adapter/code.d.ts +0 -17
- package/node/future/auth/adapter/code.js +0 -68
- package/node/future/auth/adapter/facebook.d.ts +0 -16
- package/node/future/auth/adapter/facebook.js +0 -27
- package/node/future/auth/adapter/github.d.ts +0 -23
- package/node/future/auth/adapter/github.js +0 -23
- package/node/future/auth/adapter/google.d.ts +0 -28
- package/node/future/auth/adapter/google.js +0 -22
- package/node/future/auth/adapter/link.d.ts +0 -13
- package/node/future/auth/adapter/link.js +0 -47
- package/node/future/auth/adapter/microsoft.d.ts +0 -22
- package/node/future/auth/adapter/microsoft.js +0 -16
- package/node/future/auth/adapter/oauth.d.ts +0 -41
- package/node/future/auth/adapter/oauth.js +0 -67
- package/node/future/auth/adapter/oidc.d.ts +0 -30
- package/node/future/auth/adapter/oidc.js +0 -63
- package/node/future/auth/adapter/spotify.d.ts +0 -23
- package/node/future/auth/adapter/spotify.js +0 -22
- package/node/future/auth/encryption.d.ts +0 -2
- package/node/future/auth/encryption.js +0 -30
- package/node/future/auth/handler.d.ts +0 -46
- package/node/future/auth/handler.js +0 -280
- package/node/future/auth/index.d.ts +0 -17
- package/node/future/auth/index.js +0 -15
- package/node/future/auth/session.d.ts +0 -71
- package/node/future/auth/session.js +0 -146
- package/node/graphql/index.d.ts +0 -15
- package/node/graphql/index.js +0 -32
- package/node/job/index.d.ts +0 -37
- package/node/job/index.js +0 -64
- package/node/kinesis-stream/index.d.ts +0 -3
- package/node/kinesis-stream/index.js +0 -3
- package/node/queue/index.d.ts +0 -3
- package/node/queue/index.js +0 -2
- package/node/rds/index.d.ts +0 -3
- package/node/rds/index.js +0 -2
- package/node/service/index.d.ts +0 -3
- package/node/service/index.js +0 -4
- package/node/site/index.d.ts +0 -18
- package/node/site/index.js +0 -18
- package/node/table/index.d.ts +0 -3
- package/node/table/index.js +0 -4
- package/node/topic/index.d.ts +0 -3
- package/node/topic/index.js +0 -4
- package/node/util/index.d.ts +0 -2
- package/node/util/index.js +0 -196
- package/node/util/loader.d.ts +0 -2
- package/node/util/loader.js +0 -51
- package/node/websocket-api/index.d.ts +0 -23
- package/node/websocket-api/index.js +0 -48
- package/pothos.d.ts +0 -7
- package/pothos.js +0 -160
- package/project.d.ts +0 -75
- package/project.js +0 -188
- package/runtime/handlers/container.d.ts +0 -2
- package/runtime/handlers/container.js +0 -263
- package/runtime/handlers/dotnet.d.ts +0 -2
- package/runtime/handlers/dotnet.js +0 -115
- package/runtime/handlers/go.d.ts +0 -2
- package/runtime/handlers/go.js +0 -126
- package/runtime/handlers/java.d.ts +0 -2
- package/runtime/handlers/java.js +0 -103
- package/runtime/handlers/node.d.ts +0 -2
- package/runtime/handlers/node.js +0 -269
- package/runtime/handlers/python.d.ts +0 -2
- package/runtime/handlers/python.js +0 -141
- package/runtime/handlers/pythonBundling.d.ts +0 -82
- package/runtime/handlers/pythonBundling.js +0 -80
- package/runtime/handlers/rust.d.ts +0 -2
- package/runtime/handlers/rust.js +0 -110
- package/runtime/handlers.d.ts +0 -74
- package/runtime/handlers.js +0 -151
- package/runtime/iot.d.ts +0 -1
- package/runtime/iot.js +0 -17
- package/runtime/runtime.d.ts +0 -32
- package/runtime/runtime.js +0 -1
- package/runtime/server.d.ts +0 -6
- package/runtime/server.js +0 -150
- package/runtime/workers.d.ts +0 -37
- package/runtime/workers.js +0 -85
- package/stacks/app-metadata.d.ts +0 -7
- package/stacks/app-metadata.js +0 -75
- package/stacks/assembly.d.ts +0 -1
- package/stacks/assembly.js +0 -4
- package/stacks/build.d.ts +0 -9
- package/stacks/build.js +0 -110
- package/stacks/deploy.d.ts +0 -9
- package/stacks/deploy.js +0 -240
- package/stacks/diff.d.ts +0 -8
- package/stacks/diff.js +0 -62
- package/stacks/index.d.ts +0 -10
- package/stacks/index.js +0 -10
- package/stacks/metadata.d.ts +0 -11
- package/stacks/metadata.js +0 -83
- package/stacks/monitor.d.ts +0 -32
- package/stacks/monitor.js +0 -151
- package/stacks/remove.d.ts +0 -8
- package/stacks/remove.js +0 -76
- package/stacks/synth.d.ts +0 -12
- package/stacks/synth.js +0 -94
- package/support/base-site-archiver.mjs +0 -99
- package/support/base-site-custom-resource/s3-handler.py +0 -195
- package/support/base-site-custom-resource/s3-upload.py +0 -89
- package/support/bootstrap-metadata-function/index.mjs +0 -58011
- package/support/bridge/Dockerfile +0 -3
- package/support/bridge/bridge.mjs +0 -146
- package/support/certificate-requestor/index.js +0 -549
- package/support/custom-resources/index.mjs +0 -180627
- package/support/dotnet31-bootstrap/Program.cs +0 -17
- package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
- package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
- package/support/dotnet6-bootstrap/Program.cs +0 -17
- package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
- package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
- package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
- package/support/edge-function/edge-lambda-version.mjs +0 -3
- package/support/edge-function/edge-lambda.mjs +0 -3
- package/support/edge-function/s3-bucket.mjs +0 -3
- package/support/event-bus-retrier/index.mjs +0 -75
- package/support/java-runtime/install.sh +0 -25
- package/support/java-runtime/pom.xml +0 -39
- package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
- package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
- package/support/job-manager/index.mjs +0 -57679
- package/support/nixpacks/Dockerfile +0 -6
- package/support/nodejs-runtime/index.mjs +0 -169
- package/support/python-runtime/Dockerfile +0 -9
- package/support/python-runtime/Dockerfile.custom +0 -21
- package/support/python-runtime/Dockerfile.dependencies +0 -26
- package/support/python-runtime/runtime.py +0 -127
- package/support/rds-migrator/index.mjs +0 -49
- package/support/remix-site-function/edge-server.js +0 -161
- package/support/remix-site-function/polyfill.js +0 -24
- package/support/remix-site-function/regional-server.js +0 -164
- package/support/script-function/index.mjs +0 -48760
- package/support/service-dev-function/index.js +0 -1
- package/support/signing-function/index.mjs +0 -3769
- package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
- package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
- package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
- package/support/sls-nextjs-site-stub/index.html +0 -99
- package/support/ssr-site-function-archiver.mjs +0 -96
- package/support/ssr-site-function-stub/index.js +0 -5
- package/support/ssr-warmer/index.mjs +0 -34235
- package/util/error.d.ts +0 -3
- package/util/error.js +0 -6
- package/util/fs.d.ts +0 -4
- package/util/fs.js +0 -46
- package/util/lazy.d.ts +0 -1
- package/util/lazy.js +0 -11
- package/util/module.d.ts +0 -1
- package/util/module.js +0 -5
- package/util/process.d.ts +0 -2
- package/util/process.js +0 -3
- package/watcher.d.ts +0 -14
- package/watcher.js +0 -35
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Runtime } from "aws-cdk-lib/aws-lambda";
|
|
2
|
-
import { FunctionProps } from "../../constructs/Function.js";
|
|
3
|
-
import { AssetHashType } from "aws-cdk-lib/core";
|
|
4
|
-
/**
|
|
5
|
-
* Dependency files to exclude from the asset hash.
|
|
6
|
-
*/
|
|
7
|
-
export declare const DEPENDENCY_EXCLUDES: string[];
|
|
8
|
-
/**
|
|
9
|
-
* The location in the image that the bundler image caches dependencies.
|
|
10
|
-
*/
|
|
11
|
-
export declare const BUNDLER_DEPENDENCIES_CACHE = "/var/dependencies";
|
|
12
|
-
/**
|
|
13
|
-
* Options for bundling
|
|
14
|
-
*/
|
|
15
|
-
export interface BundlingOptions {
|
|
16
|
-
/**
|
|
17
|
-
* Entry path
|
|
18
|
-
*/
|
|
19
|
-
readonly entry: string;
|
|
20
|
-
/**
|
|
21
|
-
* The runtime of the lambda function
|
|
22
|
-
*/
|
|
23
|
-
readonly runtime: Runtime;
|
|
24
|
-
/**
|
|
25
|
-
* Architecture used by the lambda function
|
|
26
|
-
*/
|
|
27
|
-
readonly architecture: FunctionProps["architecture"];
|
|
28
|
-
/**
|
|
29
|
-
* Output path suffix ('python' for a layer, '.' otherwise)
|
|
30
|
-
*/
|
|
31
|
-
readonly outputPathSuffix: string;
|
|
32
|
-
/**
|
|
33
|
-
* Determines how asset hash is calculated. Assets will get rebuild and
|
|
34
|
-
* uploaded only if their hash has changed.
|
|
35
|
-
*
|
|
36
|
-
* If asset hash is set to `SOURCE` (default), then only changes to the source
|
|
37
|
-
* directory will cause the asset to rebuild. This means, for example, that in
|
|
38
|
-
* order to pick up a new dependency version, a change must be made to the
|
|
39
|
-
* source tree. Ideally, this can be implemented by including a dependency
|
|
40
|
-
* lockfile in your source tree or using fixed dependencies.
|
|
41
|
-
*
|
|
42
|
-
* If the asset hash is set to `OUTPUT`, the hash is calculated after
|
|
43
|
-
* bundling. This means that any change in the output will cause the asset to
|
|
44
|
-
* be invalidated and uploaded. Bear in mind that `pip` adds timestamps to
|
|
45
|
-
* dependencies it installs, which implies that in this mode Python bundles
|
|
46
|
-
* will _always_ get rebuild and uploaded. Normally this is an anti-pattern
|
|
47
|
-
* since build
|
|
48
|
-
*
|
|
49
|
-
* @default AssetHashType.SOURCE By default, hash is calculated based on the
|
|
50
|
-
* contents of the source directory. If `assetHash` is also specified, the
|
|
51
|
-
* default is `CUSTOM`. This means that only updates to the source will cause
|
|
52
|
-
* the asset to rebuild.
|
|
53
|
-
*/
|
|
54
|
-
readonly assetHashType?: AssetHashType;
|
|
55
|
-
/**
|
|
56
|
-
* Specify a custom hash for this asset. If `assetHashType` is set it must
|
|
57
|
-
* be set to `AssetHashType.CUSTOM`. For consistency, this custom hash will
|
|
58
|
-
* be SHA256 hashed and encoded as hex. The resulting hash will be the asset
|
|
59
|
-
* hash.
|
|
60
|
-
*
|
|
61
|
-
* NOTE: the hash is used in order to identify a specific revision of the asset, and
|
|
62
|
-
* used for optimizing and caching deployment activities related to this asset such as
|
|
63
|
-
* packaging, uploading to Amazon S3, etc. If you chose to customize the hash, you will
|
|
64
|
-
* need to make sure it is updated every time the asset changes, or otherwise it is
|
|
65
|
-
* possible that some deployments will not be invalidated.
|
|
66
|
-
*
|
|
67
|
-
* @default - based on `assetHashType`
|
|
68
|
-
*/
|
|
69
|
-
readonly assetHash?: string;
|
|
70
|
-
readonly installCommands?: string[];
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Produce bundled Lambda asset code
|
|
74
|
-
*/
|
|
75
|
-
export declare function bundle(options: BundlingOptions & {
|
|
76
|
-
out: string;
|
|
77
|
-
}): void;
|
|
78
|
-
/**
|
|
79
|
-
* Checks to see if the `entry` directory contains a type of dependency that
|
|
80
|
-
* we know how to install.
|
|
81
|
-
*/
|
|
82
|
-
export declare function stageDependencies(entry: string, stagedir: string): boolean;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is copied from https://github.com/aws/aws-cdk/blob/master/packages/@aws-cdk/aws-lambda-python/lib/bundling.ts
|
|
3
|
-
*/
|
|
4
|
-
import fs from "fs";
|
|
5
|
-
import url from "url";
|
|
6
|
-
import path from "path";
|
|
7
|
-
import { DockerImage, FileSystem } from "aws-cdk-lib/core";
|
|
8
|
-
const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
|
|
9
|
-
/**
|
|
10
|
-
* Dependency files to exclude from the asset hash.
|
|
11
|
-
*/
|
|
12
|
-
export const DEPENDENCY_EXCLUDES = ["*.pyc"];
|
|
13
|
-
/**
|
|
14
|
-
* The location in the image that the bundler image caches dependencies.
|
|
15
|
-
*/
|
|
16
|
-
export const BUNDLER_DEPENDENCIES_CACHE = "/var/dependencies";
|
|
17
|
-
/**
|
|
18
|
-
* Produce bundled Lambda asset code
|
|
19
|
-
*/
|
|
20
|
-
export function bundle(options) {
|
|
21
|
-
const { entry, runtime, architecture, outputPathSuffix, installCommands } = options;
|
|
22
|
-
const stagedir = FileSystem.mkdtemp("python-bundling-");
|
|
23
|
-
const hasDeps = stageDependencies(entry, stagedir);
|
|
24
|
-
const hasInstallCommands = stageInstallCommands(installCommands || [], stagedir);
|
|
25
|
-
// Determine which dockerfile to use. When dependencies are present, we use a
|
|
26
|
-
// Dockerfile that can create a cacheable layer. We can't use this Dockerfile
|
|
27
|
-
// if there aren't dependencies or the Dockerfile will complain about missing
|
|
28
|
-
// sources.
|
|
29
|
-
const dockerfile = hasInstallCommands
|
|
30
|
-
? "Dockerfile.custom"
|
|
31
|
-
: hasDeps
|
|
32
|
-
? "Dockerfile.dependencies"
|
|
33
|
-
: "Dockerfile";
|
|
34
|
-
// copy Dockerfile to workdir
|
|
35
|
-
fs.copyFileSync(path.join(__dirname, "../../support/python-runtime", dockerfile), path.join(stagedir, dockerfile));
|
|
36
|
-
const image = DockerImage.fromBuild(stagedir, {
|
|
37
|
-
buildArgs: {
|
|
38
|
-
IMAGE: runtime.bundlingImage.image +
|
|
39
|
-
// the default x86_64 doesn't need to be set explicitly
|
|
40
|
-
(architecture == "arm_64" ? ":latest-arm64" : ""),
|
|
41
|
-
},
|
|
42
|
-
file: dockerfile,
|
|
43
|
-
});
|
|
44
|
-
const outputPath = path.join(options.out, outputPathSuffix);
|
|
45
|
-
// Copy dependencies to the bundle if applicable.
|
|
46
|
-
if (hasDeps || hasInstallCommands) {
|
|
47
|
-
image.cp(`${BUNDLER_DEPENDENCIES_CACHE}/.`, outputPath);
|
|
48
|
-
}
|
|
49
|
-
// Copy source code to the bundle.
|
|
50
|
-
fs.cpSync(entry, outputPath, {
|
|
51
|
-
recursive: true,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Checks to see if the `entry` directory contains a type of dependency that
|
|
56
|
-
* we know how to install.
|
|
57
|
-
*/
|
|
58
|
-
export function stageDependencies(entry, stagedir) {
|
|
59
|
-
const prefixes = ["Pipfile", "pyproject", "poetry", "requirements.txt"];
|
|
60
|
-
let found = false;
|
|
61
|
-
for (const file of fs.readdirSync(entry)) {
|
|
62
|
-
for (const prefix of prefixes) {
|
|
63
|
-
if (file.startsWith(prefix)) {
|
|
64
|
-
fs.copyFileSync(path.join(entry, file), path.join(stagedir, file));
|
|
65
|
-
found = true;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
return found;
|
|
70
|
-
}
|
|
71
|
-
function stageInstallCommands(installCommands, stagedir) {
|
|
72
|
-
let found = false;
|
|
73
|
-
if (installCommands.length > 0) {
|
|
74
|
-
const filePath = path.join(stagedir, "sst-deps-install-command.sh");
|
|
75
|
-
fs.writeFileSync(filePath, installCommands.join(" && "));
|
|
76
|
-
fs.chmodSync(filePath, "755");
|
|
77
|
-
found = true;
|
|
78
|
-
}
|
|
79
|
-
return found;
|
|
80
|
-
}
|
package/runtime/handlers/rust.js
DELETED
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import path from "path";
|
|
2
|
-
import fs from "fs/promises";
|
|
3
|
-
import { useRuntimeWorkers } from "../workers.js";
|
|
4
|
-
import { exec, spawn } from "child_process";
|
|
5
|
-
import { promisify } from "util";
|
|
6
|
-
import { useRuntimeServerConfig } from "../server.js";
|
|
7
|
-
import { findAbove, isChild } from "../../util/fs.js";
|
|
8
|
-
const execAsync = promisify(exec);
|
|
9
|
-
export const useRustHandler = () => {
|
|
10
|
-
const processes = new Map();
|
|
11
|
-
const sources = new Map();
|
|
12
|
-
const handlerName = process.platform === "win32" ? `handler.exe` : `handler`;
|
|
13
|
-
return {
|
|
14
|
-
shouldBuild: (input) => {
|
|
15
|
-
if (!input.file.endsWith(".rs"))
|
|
16
|
-
return false;
|
|
17
|
-
const parent = sources.get(input.functionID);
|
|
18
|
-
if (!parent)
|
|
19
|
-
return false;
|
|
20
|
-
const result = isChild(parent, input.file);
|
|
21
|
-
return result;
|
|
22
|
-
},
|
|
23
|
-
canHandle: (input) => input.startsWith("rust"),
|
|
24
|
-
startWorker: async (input) => {
|
|
25
|
-
const workers = await useRuntimeWorkers();
|
|
26
|
-
const server = await useRuntimeServerConfig();
|
|
27
|
-
const proc = spawn(path.join(input.out, handlerName), {
|
|
28
|
-
env: {
|
|
29
|
-
...process.env,
|
|
30
|
-
...input.environment,
|
|
31
|
-
IS_LOCAL: "true",
|
|
32
|
-
RUST_BACKTRACE: "1",
|
|
33
|
-
AWS_LAMBDA_RUNTIME_API: `http://localhost:${server.port}/${input.workerID}`,
|
|
34
|
-
AWS_LAMBDA_FUNCTION_MEMORY_SIZE: "1024",
|
|
35
|
-
},
|
|
36
|
-
cwd: input.out,
|
|
37
|
-
});
|
|
38
|
-
proc.on("exit", () => workers.exited(input.workerID));
|
|
39
|
-
proc.stdout.on("data", (data) => {
|
|
40
|
-
workers.stdout(input.workerID, data.toString());
|
|
41
|
-
});
|
|
42
|
-
proc.stderr.on("data", (data) => {
|
|
43
|
-
workers.stdout(input.workerID, data.toString());
|
|
44
|
-
});
|
|
45
|
-
processes.set(input.workerID, proc);
|
|
46
|
-
},
|
|
47
|
-
stopWorker: async (workerID) => {
|
|
48
|
-
const proc = processes.get(workerID);
|
|
49
|
-
if (proc) {
|
|
50
|
-
proc.kill();
|
|
51
|
-
processes.delete(workerID);
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
build: async (input) => {
|
|
55
|
-
const parsed = path.parse(input.props.handler);
|
|
56
|
-
const project = await findAbove(parsed.dir, "Cargo.toml");
|
|
57
|
-
if (!project)
|
|
58
|
-
return {
|
|
59
|
-
type: "error",
|
|
60
|
-
errors: ["Could not find a Cargo.toml file"],
|
|
61
|
-
};
|
|
62
|
-
sources.set(input.functionID, project);
|
|
63
|
-
if (input.mode === "start") {
|
|
64
|
-
try {
|
|
65
|
-
await execAsync(["cargo", "build", `--bin ${parsed.name}`].join(" "), {
|
|
66
|
-
cwd: project,
|
|
67
|
-
env: {
|
|
68
|
-
...process.env,
|
|
69
|
-
},
|
|
70
|
-
});
|
|
71
|
-
await fs.cp(path.join(project, `target/debug`, parsed.name), path.join(input.out, "handler"));
|
|
72
|
-
}
|
|
73
|
-
catch (ex) {
|
|
74
|
-
return {
|
|
75
|
-
type: "error",
|
|
76
|
-
errors: [String(ex)],
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (input.mode === "deploy") {
|
|
81
|
-
try {
|
|
82
|
-
await execAsync([
|
|
83
|
-
"cargo",
|
|
84
|
-
"lambda",
|
|
85
|
-
"build",
|
|
86
|
-
"--release",
|
|
87
|
-
...(input.props.architecture === "arm_64" ? ["--arm64"] : []),
|
|
88
|
-
`--bin ${parsed.name}`,
|
|
89
|
-
].join(" "), {
|
|
90
|
-
cwd: project,
|
|
91
|
-
env: {
|
|
92
|
-
...process.env,
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
await fs.cp(path.join(project, `target/lambda/`, parsed.name, "bootstrap"), path.join(input.out, "bootstrap"));
|
|
96
|
-
}
|
|
97
|
-
catch (ex) {
|
|
98
|
-
return {
|
|
99
|
-
type: "error",
|
|
100
|
-
errors: [String(ex)],
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return {
|
|
105
|
-
type: "success",
|
|
106
|
-
handler: "handler",
|
|
107
|
-
};
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
};
|
package/runtime/handlers.d.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { FunctionProps } from "../constructs/Function.js";
|
|
2
|
-
declare module "../bus.js" {
|
|
3
|
-
interface Events {
|
|
4
|
-
"function.build.started": {
|
|
5
|
-
functionID: string;
|
|
6
|
-
};
|
|
7
|
-
"function.build.success": {
|
|
8
|
-
functionID: string;
|
|
9
|
-
};
|
|
10
|
-
"function.build.failed": {
|
|
11
|
-
functionID: string;
|
|
12
|
-
errors: string[];
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
interface BuildInput {
|
|
17
|
-
functionID: string;
|
|
18
|
-
mode: "deploy" | "start";
|
|
19
|
-
out: string;
|
|
20
|
-
props: FunctionProps;
|
|
21
|
-
}
|
|
22
|
-
export interface StartWorkerInput {
|
|
23
|
-
url: string;
|
|
24
|
-
workerID: string;
|
|
25
|
-
functionID: string;
|
|
26
|
-
environment: Record<string, string>;
|
|
27
|
-
out: string;
|
|
28
|
-
handler: string;
|
|
29
|
-
runtime: string;
|
|
30
|
-
}
|
|
31
|
-
interface ShouldBuildInput {
|
|
32
|
-
file: string;
|
|
33
|
-
functionID: string;
|
|
34
|
-
}
|
|
35
|
-
export interface RuntimeHandler {
|
|
36
|
-
startWorker: (worker: StartWorkerInput) => Promise<void>;
|
|
37
|
-
stopWorker: (workerID: string) => Promise<void>;
|
|
38
|
-
shouldBuild: (input: ShouldBuildInput) => boolean;
|
|
39
|
-
canHandle: (runtime: string) => boolean;
|
|
40
|
-
build: (input: BuildInput) => Promise<{
|
|
41
|
-
type: "success";
|
|
42
|
-
handler: string;
|
|
43
|
-
sourcemap?: string;
|
|
44
|
-
} | {
|
|
45
|
-
type: "error";
|
|
46
|
-
errors: string[];
|
|
47
|
-
}>;
|
|
48
|
-
}
|
|
49
|
-
export declare const useRuntimeHandlers: () => {
|
|
50
|
-
subscribe: <Type extends "function.build.success" | "function.build.failed">(type: Type, cb: (payload: import("../bus.js").EventPayload<Type>) => void) => {
|
|
51
|
-
type: keyof import("../bus.js").Events;
|
|
52
|
-
cb: (payload: any) => void;
|
|
53
|
-
};
|
|
54
|
-
register: (handler: RuntimeHandler) => void;
|
|
55
|
-
for: (runtime: string) => RuntimeHandler;
|
|
56
|
-
build(functionID: string, mode: BuildInput["mode"]): Promise<{
|
|
57
|
-
type: "error";
|
|
58
|
-
errors: string[];
|
|
59
|
-
} | {
|
|
60
|
-
out: string;
|
|
61
|
-
sourcemap: string | undefined;
|
|
62
|
-
type: "success";
|
|
63
|
-
handler: string;
|
|
64
|
-
}>;
|
|
65
|
-
};
|
|
66
|
-
interface Artifact {
|
|
67
|
-
out: string;
|
|
68
|
-
handler: string;
|
|
69
|
-
}
|
|
70
|
-
export declare const useFunctionBuilder: () => {
|
|
71
|
-
artifact: (functionID: string) => Artifact | Promise<Artifact | undefined>;
|
|
72
|
-
build: (functionID: string) => Promise<Artifact | undefined>;
|
|
73
|
-
};
|
|
74
|
-
export {};
|
package/runtime/handlers.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { Logger } from "../logger.js";
|
|
2
|
-
import path from "path";
|
|
3
|
-
import fs from "fs/promises";
|
|
4
|
-
import { useWatcher } from "../watcher.js";
|
|
5
|
-
import { useBus } from "../bus.js";
|
|
6
|
-
import { useProject } from "../project.js";
|
|
7
|
-
import { useFunctions } from "../constructs/Function.js";
|
|
8
|
-
import { useNodeHandler } from "./handlers/node.js";
|
|
9
|
-
import { useContainerHandler } from "./handlers/container.js";
|
|
10
|
-
import { useDotnetHandler } from "./handlers/dotnet.js";
|
|
11
|
-
import { useGoHandler } from "./handlers/go.js";
|
|
12
|
-
import { useJavaHandler } from "./handlers/java.js";
|
|
13
|
-
import { usePythonHandler } from "./handlers/python.js";
|
|
14
|
-
import { useRustHandler } from "./handlers/rust.js";
|
|
15
|
-
import { lazy } from "../util/lazy.js";
|
|
16
|
-
export const useRuntimeHandlers = lazy(() => {
|
|
17
|
-
const handlers = [
|
|
18
|
-
useNodeHandler(),
|
|
19
|
-
useGoHandler(),
|
|
20
|
-
useContainerHandler(),
|
|
21
|
-
usePythonHandler(),
|
|
22
|
-
useJavaHandler(),
|
|
23
|
-
useDotnetHandler(),
|
|
24
|
-
useRustHandler(),
|
|
25
|
-
];
|
|
26
|
-
const project = useProject();
|
|
27
|
-
const bus = useBus();
|
|
28
|
-
const pendingBuilds = new Map();
|
|
29
|
-
const result = {
|
|
30
|
-
subscribe: bus.forward("function.build.success", "function.build.failed"),
|
|
31
|
-
register: (handler) => {
|
|
32
|
-
handlers.push(handler);
|
|
33
|
-
},
|
|
34
|
-
for: (runtime) => {
|
|
35
|
-
const result = handlers.find((x) => x.canHandle(runtime));
|
|
36
|
-
if (!result)
|
|
37
|
-
throw new Error(`${runtime} runtime is unsupported`);
|
|
38
|
-
return result;
|
|
39
|
-
},
|
|
40
|
-
async build(functionID, mode) {
|
|
41
|
-
async function task() {
|
|
42
|
-
const func = useFunctions().fromID(functionID);
|
|
43
|
-
if (!func)
|
|
44
|
-
return {
|
|
45
|
-
type: "error",
|
|
46
|
-
errors: [`Function with ID "${functionID}" not found`],
|
|
47
|
-
};
|
|
48
|
-
const handler = result.for(func.runtime);
|
|
49
|
-
const out = path.join(project.paths.artifacts, functionID);
|
|
50
|
-
await fs.rm(out, { recursive: true, force: true });
|
|
51
|
-
await fs.mkdir(out, { recursive: true });
|
|
52
|
-
bus.publish("function.build.started", { functionID });
|
|
53
|
-
if (func.hooks?.beforeBuild)
|
|
54
|
-
await func.hooks.beforeBuild(func, out);
|
|
55
|
-
const built = await handler.build({
|
|
56
|
-
functionID,
|
|
57
|
-
out,
|
|
58
|
-
mode,
|
|
59
|
-
props: func,
|
|
60
|
-
});
|
|
61
|
-
if (built.type === "error") {
|
|
62
|
-
bus.publish("function.build.failed", {
|
|
63
|
-
functionID,
|
|
64
|
-
errors: built.errors,
|
|
65
|
-
});
|
|
66
|
-
return built;
|
|
67
|
-
}
|
|
68
|
-
if (func.copyFiles) {
|
|
69
|
-
await Promise.all(func.copyFiles.map(async (entry) => {
|
|
70
|
-
const fromPath = path.join(project.paths.root, entry.from);
|
|
71
|
-
const to = entry.to || entry.from;
|
|
72
|
-
if (path.isAbsolute(to))
|
|
73
|
-
throw new Error(`Copy destination path "${to}" must be relative`);
|
|
74
|
-
const toPath = path.join(out, to);
|
|
75
|
-
if (mode === "deploy")
|
|
76
|
-
await fs.cp(fromPath, toPath, {
|
|
77
|
-
recursive: true,
|
|
78
|
-
});
|
|
79
|
-
if (mode === "start") {
|
|
80
|
-
try {
|
|
81
|
-
const dir = path.dirname(toPath);
|
|
82
|
-
await fs.mkdir(dir, { recursive: true });
|
|
83
|
-
await fs.symlink(fromPath, toPath);
|
|
84
|
-
}
|
|
85
|
-
catch (ex) {
|
|
86
|
-
Logger.debug("Failed to symlink", fromPath, toPath, ex);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
if (func.hooks?.afterBuild)
|
|
92
|
-
await func.hooks.afterBuild(func, out);
|
|
93
|
-
bus.publish("function.build.success", { functionID });
|
|
94
|
-
return {
|
|
95
|
-
...built,
|
|
96
|
-
out,
|
|
97
|
-
sourcemap: built.sourcemap,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
if (pendingBuilds.has(functionID)) {
|
|
101
|
-
Logger.debug("Waiting on pending build", functionID);
|
|
102
|
-
return pendingBuilds.get(functionID);
|
|
103
|
-
}
|
|
104
|
-
const promise = task();
|
|
105
|
-
pendingBuilds.set(functionID, promise);
|
|
106
|
-
Logger.debug("Building function", functionID);
|
|
107
|
-
const r = await promise;
|
|
108
|
-
pendingBuilds.delete(functionID);
|
|
109
|
-
return r;
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
return result;
|
|
113
|
-
});
|
|
114
|
-
export const useFunctionBuilder = lazy(() => {
|
|
115
|
-
const artifacts = new Map();
|
|
116
|
-
const handlers = useRuntimeHandlers();
|
|
117
|
-
const result = {
|
|
118
|
-
artifact: (functionID) => {
|
|
119
|
-
if (artifacts.has(functionID))
|
|
120
|
-
return artifacts.get(functionID);
|
|
121
|
-
return result.build(functionID);
|
|
122
|
-
},
|
|
123
|
-
build: async (functionID) => {
|
|
124
|
-
const result = await handlers.build(functionID, "start");
|
|
125
|
-
if (!result)
|
|
126
|
-
return;
|
|
127
|
-
if (result.type === "error")
|
|
128
|
-
return;
|
|
129
|
-
artifacts.set(functionID, result);
|
|
130
|
-
return artifacts.get(functionID);
|
|
131
|
-
},
|
|
132
|
-
};
|
|
133
|
-
const watcher = useWatcher();
|
|
134
|
-
watcher.subscribe("file.changed", async (evt) => {
|
|
135
|
-
try {
|
|
136
|
-
const functions = useFunctions();
|
|
137
|
-
for (const [functionID, info] of Object.entries(functions.all)) {
|
|
138
|
-
const handler = handlers.for(info.runtime);
|
|
139
|
-
if (!handler?.shouldBuild({
|
|
140
|
-
functionID,
|
|
141
|
-
file: evt.properties.file,
|
|
142
|
-
}))
|
|
143
|
-
continue;
|
|
144
|
-
await result.build(functionID);
|
|
145
|
-
Logger.debug("Rebuilt function", functionID);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
catch { }
|
|
149
|
-
});
|
|
150
|
-
return result;
|
|
151
|
-
});
|
package/runtime/iot.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const useIOTBridge: () => Promise<void>;
|
package/runtime/iot.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { useBus } from "../bus.js";
|
|
2
|
-
import { useIOT } from "../iot.js";
|
|
3
|
-
import { lazy } from "../util/lazy.js";
|
|
4
|
-
export const useIOTBridge = lazy(async () => {
|
|
5
|
-
const bus = useBus();
|
|
6
|
-
const iot = await useIOT();
|
|
7
|
-
const topic = `${iot.prefix}/events`;
|
|
8
|
-
bus.subscribe("function.success", async (evt) => {
|
|
9
|
-
iot.publish(topic + "/" + evt.properties.workerID, "function.success", evt.properties);
|
|
10
|
-
});
|
|
11
|
-
bus.subscribe("function.error", async (evt) => {
|
|
12
|
-
iot.publish(topic + "/" + evt.properties.workerID, "function.error", evt.properties);
|
|
13
|
-
});
|
|
14
|
-
bus.subscribe("function.ack", async (evt) => {
|
|
15
|
-
iot.publish(topic + "/" + evt.properties.workerID, "function.ack", evt.properties);
|
|
16
|
-
});
|
|
17
|
-
});
|
package/runtime/runtime.d.ts
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import "../bus.js";
|
|
2
|
-
declare module "../bus.js" {
|
|
3
|
-
interface Events {
|
|
4
|
-
"function.ack": {
|
|
5
|
-
workerID: string;
|
|
6
|
-
functionID: string;
|
|
7
|
-
};
|
|
8
|
-
"function.invoked": {
|
|
9
|
-
workerID: string;
|
|
10
|
-
functionID: string;
|
|
11
|
-
requestID: string;
|
|
12
|
-
env: Record<string, any>;
|
|
13
|
-
event: any;
|
|
14
|
-
context: any;
|
|
15
|
-
deadline: number;
|
|
16
|
-
};
|
|
17
|
-
"function.success": {
|
|
18
|
-
workerID: string;
|
|
19
|
-
functionID: string;
|
|
20
|
-
requestID: string;
|
|
21
|
-
body: any;
|
|
22
|
-
};
|
|
23
|
-
"function.error": {
|
|
24
|
-
workerID: string;
|
|
25
|
-
functionID: string;
|
|
26
|
-
errorType: string;
|
|
27
|
-
errorMessage: string;
|
|
28
|
-
requestID: string;
|
|
29
|
-
trace: string[];
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
package/runtime/runtime.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "../bus.js";
|