@sst-community/sst 4.20.0 → 5.0.0-alpha.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/README.md +92 -52
- package/package.json +35 -11
- package/platform/js/chunks/chunk-HIZZCEDS.js +328 -0
- package/platform/js/chunks/chunk-HIZZCEDS.js.map +6 -0
- package/platform/js/chunks/chunk-KOKHGKJ2.js +639 -0
- package/platform/js/chunks/chunk-KOKHGKJ2.js.map +6 -0
- package/platform/js/chunks/chunk-ONNI4XNK.js +367 -0
- package/platform/js/chunks/chunk-ONNI4XNK.js.map +6 -0
- package/platform/js/chunks/chunk-VIFHC73J.js +108 -0
- package/platform/js/chunks/chunk-VIFHC73J.js.map +6 -0
- package/platform/js/chunks/chunk-WJ6BVA46.js +10 -0
- package/platform/js/chunks/chunk-WJ6BVA46.js.map +6 -0
- package/platform/js/chunks/chunk-ZOXXXME5.js +472 -0
- package/platform/js/chunks/chunk-ZOXXXME5.js.map +6 -0
- package/platform/js/chunks/component-32FCLIRK.js +26 -0
- package/platform/js/chunks/component-32FCLIRK.js.map +6 -0
- package/platform/js/chunks/config-DMGMTLNB.js +10 -0
- package/platform/js/chunks/config-DMGMTLNB.js.map +6 -0
- package/platform/js/chunks/link-OJ3RNGQ3.js +9 -0
- package/platform/js/chunks/link-OJ3RNGQ3.js.map +6 -0
- package/platform/js/components/aws/index.js +35362 -0
- package/platform/js/components/aws/index.js.map +6 -0
- package/platform/js/components/cloudflare/index.js +3246 -0
- package/platform/js/components/cloudflare/index.js.map +6 -0
- package/platform/js/components/core.js +114 -0
- package/platform/js/components/core.js.map +6 -0
- package/platform/js/components/vercel/index.js +120 -0
- package/platform/js/components/vercel/index.js.map +6 -0
- package/platform/js/testing/index.js +569 -0
- package/platform/js/testing/index.js.map +6 -0
- package/platform/package.json +25 -0
- package/platform/src/ast/add.mjs +190 -0
- package/platform/src/auto/run.ts +109 -0
- package/platform/src/components/README.md +652 -0
- package/platform/src/components/args.ts +133 -0
- package/platform/src/components/aws/alb.ts +577 -0
- package/platform/src/components/aws/analog.ts +462 -0
- package/platform/src/components/aws/apigateway-websocket-route.ts +206 -0
- package/platform/src/components/aws/apigateway-websocket.ts +894 -0
- package/platform/src/components/aws/apigatewayv1-api-key.ts +90 -0
- package/platform/src/components/aws/apigatewayv1-authorizer.ts +178 -0
- package/platform/src/components/aws/apigatewayv1-base-route.ts +78 -0
- package/platform/src/components/aws/apigatewayv1-integration-route.ts +92 -0
- package/platform/src/components/aws/apigatewayv1-lambda-route.ts +152 -0
- package/platform/src/components/aws/apigatewayv1-usage-plan.ts +109 -0
- package/platform/src/components/aws/apigatewayv1.ts +1691 -0
- package/platform/src/components/aws/apigatewayv2-authorizer.ts +199 -0
- package/platform/src/components/aws/apigatewayv2-base-route.ts +69 -0
- package/platform/src/components/aws/apigatewayv2-lambda-route.ts +141 -0
- package/platform/src/components/aws/apigatewayv2-private-route.ts +101 -0
- package/platform/src/components/aws/apigatewayv2-url-route.ts +90 -0
- package/platform/src/components/aws/apigatewayv2.ts +1439 -0
- package/platform/src/components/aws/app-sync-data-source.ts +264 -0
- package/platform/src/components/aws/app-sync-function.ts +79 -0
- package/platform/src/components/aws/app-sync-resolver.ts +110 -0
- package/platform/src/components/aws/app-sync.ts +849 -0
- package/platform/src/components/aws/astro.ts +580 -0
- package/platform/src/components/aws/aurora.ts +1356 -0
- package/platform/src/components/aws/auth-v1.ts +69 -0
- package/platform/src/components/aws/auth.ts +417 -0
- package/platform/src/components/aws/bucket-lambda-subscriber.ts +162 -0
- package/platform/src/components/aws/bucket-notification.ts +254 -0
- package/platform/src/components/aws/bucket-queue-subscriber.ts +122 -0
- package/platform/src/components/aws/bucket-topic-subscriber.ts +144 -0
- package/platform/src/components/aws/bucket.ts +2046 -0
- package/platform/src/components/aws/bus-base-subscriber.ts +52 -0
- package/platform/src/components/aws/bus-lambda-subscriber.ts +125 -0
- package/platform/src/components/aws/bus-queue-subscriber.ts +88 -0
- package/platform/src/components/aws/bus.ts +630 -0
- package/platform/src/components/aws/cdn.ts +561 -0
- package/platform/src/components/aws/cluster-v1.ts +932 -0
- package/platform/src/components/aws/cluster.ts +584 -0
- package/platform/src/components/aws/cognito-identity-pool.ts +433 -0
- package/platform/src/components/aws/cognito-identity-provider.ts +96 -0
- package/platform/src/components/aws/cognito-user-pool-client.ts +114 -0
- package/platform/src/components/aws/cognito-user-pool.ts +1089 -0
- package/platform/src/components/aws/cron-v2.ts +555 -0
- package/platform/src/components/aws/cron.ts +435 -0
- package/platform/src/components/aws/dns-validated-certificate.ts +108 -0
- package/platform/src/components/aws/dns.ts +221 -0
- package/platform/src/components/aws/dsql.ts +741 -0
- package/platform/src/components/aws/dynamo-lambda-subscriber.ts +124 -0
- package/platform/src/components/aws/dynamo.ts +929 -0
- package/platform/src/components/aws/efs.ts +410 -0
- package/platform/src/components/aws/email.ts +673 -0
- package/platform/src/components/aws/fargate.ts +1279 -0
- package/platform/src/components/aws/function.ts +3227 -0
- package/platform/src/components/aws/helpers/apigateway-account.ts +78 -0
- package/platform/src/components/aws/helpers/apigatewayv2-domain.ts +144 -0
- package/platform/src/components/aws/helpers/arn.ts +182 -0
- package/platform/src/components/aws/helpers/bootstrap.ts +16 -0
- package/platform/src/components/aws/helpers/client.ts +76 -0
- package/platform/src/components/aws/helpers/container-builder.ts +33 -0
- package/platform/src/components/aws/helpers/custom-domain.ts +128 -0
- package/platform/src/components/aws/helpers/event-source.ts +41 -0
- package/platform/src/components/aws/helpers/fargate.ts +727 -0
- package/platform/src/components/aws/helpers/function-builder.ts +133 -0
- package/platform/src/components/aws/helpers/function-code.ts +224 -0
- package/platform/src/components/aws/helpers/function-part.ts +202 -0
- package/platform/src/components/aws/helpers/function-permission.ts +29 -0
- package/platform/src/components/aws/helpers/load-balancer-args.ts +88 -0
- package/platform/src/components/aws/helpers/load-balancer.ts +17 -0
- package/platform/src/components/aws/helpers/provider.ts +36 -0
- package/platform/src/components/aws/helpers/queue-policy.ts +33 -0
- package/platform/src/components/aws/helpers/rds.ts +212 -0
- package/platform/src/components/aws/helpers/site-builder.ts +41 -0
- package/platform/src/components/aws/helpers/subscriber.ts +23 -0
- package/platform/src/components/aws/helpers/vpc.ts +27 -0
- package/platform/src/components/aws/https-redirect.ts +216 -0
- package/platform/src/components/aws/iam-edit.ts +50 -0
- package/platform/src/components/aws/index.ts +61 -0
- package/platform/src/components/aws/kinesis-stream-lambda-subscriber.ts +122 -0
- package/platform/src/components/aws/kinesis-stream.ts +416 -0
- package/platform/src/components/aws/linkable.ts +32 -0
- package/platform/src/components/aws/logging.ts +25 -0
- package/platform/src/components/aws/microvm.ts +988 -0
- package/platform/src/components/aws/mysql.ts +1047 -0
- package/platform/src/components/aws/nextjs.ts +1052 -0
- package/platform/src/components/aws/nuxt.ts +527 -0
- package/platform/src/components/aws/open-search.ts +603 -0
- package/platform/src/components/aws/opencontrol.ts +235 -0
- package/platform/src/components/aws/permission.ts +80 -0
- package/platform/src/components/aws/postgres-v1.ts +537 -0
- package/platform/src/components/aws/postgres.ts +1074 -0
- package/platform/src/components/aws/providers/bucket-files.ts +32 -0
- package/platform/src/components/aws/providers/distribution-deployment-waiter.ts +27 -0
- package/platform/src/components/aws/providers/distribution-invalidation.ts +24 -0
- package/platform/src/components/aws/providers/function-environment-update.ts +46 -0
- package/platform/src/components/aws/providers/hosted-zone-lookup.ts +25 -0
- package/platform/src/components/aws/providers/kv-keys.ts +15 -0
- package/platform/src/components/aws/providers/kv-routes-update.ts +24 -0
- package/platform/src/components/aws/providers/microvm-image-prune.ts +48 -0
- package/platform/src/components/aws/providers/origin-access-control.ts +21 -0
- package/platform/src/components/aws/providers/rds-role-lookup.ts +21 -0
- package/platform/src/components/aws/providers/vector-table.ts +25 -0
- package/platform/src/components/aws/queue-lambda-subscriber.ts +135 -0
- package/platform/src/components/aws/queue.ts +712 -0
- package/platform/src/components/aws/react.ts +510 -0
- package/platform/src/components/aws/realtime-lambda-subscriber.ts +129 -0
- package/platform/src/components/aws/realtime.ts +345 -0
- package/platform/src/components/aws/redis-v1.ts +595 -0
- package/platform/src/components/aws/redis.ts +1078 -0
- package/platform/src/components/aws/remix.ts +576 -0
- package/platform/src/components/aws/router-base-route.ts +83 -0
- package/platform/src/components/aws/router-bucket-route.ts +63 -0
- package/platform/src/components/aws/router-url-route.ts +75 -0
- package/platform/src/components/aws/router.ts +3281 -0
- package/platform/src/components/aws/service-v1.ts +876 -0
- package/platform/src/components/aws/service.ts +2994 -0
- package/platform/src/components/aws/sns-topic-lambda-subscriber.ts +127 -0
- package/platform/src/components/aws/sns-topic-queue-subscriber.ts +105 -0
- package/platform/src/components/aws/sns-topic.ts +700 -0
- package/platform/src/components/aws/solid-start.ts +467 -0
- package/platform/src/components/aws/ssr-site.ts +2204 -0
- package/platform/src/components/aws/static-site.ts +1389 -0
- package/platform/src/components/aws/step-functions/choice.ts +123 -0
- package/platform/src/components/aws/step-functions/fail.ts +69 -0
- package/platform/src/components/aws/step-functions/map.ts +264 -0
- package/platform/src/components/aws/step-functions/parallel.ts +170 -0
- package/platform/src/components/aws/step-functions/pass.ts +48 -0
- package/platform/src/components/aws/step-functions/state.ts +376 -0
- package/platform/src/components/aws/step-functions/succeed.ts +31 -0
- package/platform/src/components/aws/step-functions/task.ts +538 -0
- package/platform/src/components/aws/step-functions/wait.ts +105 -0
- package/platform/src/components/aws/step-functions.ts +804 -0
- package/platform/src/components/aws/svelte-kit.ts +563 -0
- package/platform/src/components/aws/takeover/alb.ts +9 -0
- package/platform/src/components/aws/takeover/apigatewayv2.ts +43 -0
- package/platform/src/components/aws/takeover/app-sync.ts +45 -0
- package/platform/src/components/aws/takeover/aurora.ts +19 -0
- package/platform/src/components/aws/takeover/bucket.ts +94 -0
- package/platform/src/components/aws/takeover/bus.ts +43 -0
- package/platform/src/components/aws/takeover/cognito-user-pool.ts +21 -0
- package/platform/src/components/aws/takeover/cron-v2.ts +9 -0
- package/platform/src/components/aws/takeover/dsql.ts +12 -0
- package/platform/src/components/aws/takeover/dynamo.ts +31 -0
- package/platform/src/components/aws/takeover/efs.ts +9 -0
- package/platform/src/components/aws/takeover/function.ts +21 -0
- package/platform/src/components/aws/takeover/helpers.ts +26 -0
- package/platform/src/components/aws/takeover/index.ts +27 -0
- package/platform/src/components/aws/takeover/mysql.ts +17 -0
- package/platform/src/components/aws/takeover/postgres.ts +17 -0
- package/platform/src/components/aws/takeover/queue.ts +21 -0
- package/platform/src/components/aws/takeover/redis.ts +10 -0
- package/platform/src/components/aws/takeover/service.ts +22 -0
- package/platform/src/components/aws/takeover/sns-topic.ts +27 -0
- package/platform/src/components/aws/takeover/task.ts +13 -0
- package/platform/src/components/aws/tan-stack-start.ts +479 -0
- package/platform/src/components/aws/task.ts +571 -0
- package/platform/src/components/aws/v5/alb.ts +310 -0
- package/platform/src/components/aws/v5/apigatewayv2.ts +845 -0
- package/platform/src/components/aws/v5/app-sync.ts +673 -0
- package/platform/src/components/aws/v5/aurora.ts +855 -0
- package/platform/src/components/aws/v5/bucket.ts +1001 -0
- package/platform/src/components/aws/v5/bus.ts +321 -0
- package/platform/src/components/aws/v5/cluster.ts +230 -0
- package/platform/src/components/aws/v5/cognito-user-pool-client.ts +100 -0
- package/platform/src/components/aws/v5/cognito-user-pool.ts +693 -0
- package/platform/src/components/aws/v5/cron-v2.ts +316 -0
- package/platform/src/components/aws/v5/dsql.ts +665 -0
- package/platform/src/components/aws/v5/dynamo.ts +477 -0
- package/platform/src/components/aws/v5/efs.ts +311 -0
- package/platform/src/components/aws/v5/function.ts +1527 -0
- package/platform/src/components/aws/v5/index.ts +26 -0
- package/platform/src/components/aws/v5/mysql.ts +604 -0
- package/platform/src/components/aws/v5/postgres.ts +612 -0
- package/platform/src/components/aws/v5/queue.ts +271 -0
- package/platform/src/components/aws/v5/redis.ts +550 -0
- package/platform/src/components/aws/v5/service.ts +2209 -0
- package/platform/src/components/aws/v5/sns-topic.ts +284 -0
- package/platform/src/components/aws/v5/task.ts +549 -0
- package/platform/src/components/aws/vector.ts +316 -0
- package/platform/src/components/aws/vpc-v1.ts +580 -0
- package/platform/src/components/aws/vpc.ts +1641 -0
- package/platform/src/components/aws/workflow.ts +421 -0
- package/platform/src/components/base/base-site.ts +101 -0
- package/platform/src/components/base/base-ssr-site.ts +120 -0
- package/platform/src/components/base/base-static-site.ts +314 -0
- package/platform/src/components/cloudflare/account-id.ts +1 -0
- package/platform/src/components/cloudflare/ai.ts +77 -0
- package/platform/src/components/cloudflare/astro.ts +355 -0
- package/platform/src/components/cloudflare/auth.ts +69 -0
- package/platform/src/components/cloudflare/binding.ts +132 -0
- package/platform/src/components/cloudflare/bucket.ts +142 -0
- package/platform/src/components/cloudflare/cron.ts +207 -0
- package/platform/src/components/cloudflare/d1.ts +230 -0
- package/platform/src/components/cloudflare/dns.ts +253 -0
- package/platform/src/components/cloudflare/durable-object.ts +144 -0
- package/platform/src/components/cloudflare/experimental/index.ts +3 -0
- package/platform/src/components/cloudflare/experimental/solid-start.ts +288 -0
- package/platform/src/components/cloudflare/experimental/static-site.ts +4 -0
- package/platform/src/components/cloudflare/helpers/compatibility.ts +44 -0
- package/platform/src/components/cloudflare/helpers/fetch.ts +81 -0
- package/platform/src/components/cloudflare/helpers/validation.ts +74 -0
- package/platform/src/components/cloudflare/helpers/worker-builder.ts +57 -0
- package/platform/src/components/cloudflare/helpers/wrangler.ts +222 -0
- package/platform/src/components/cloudflare/hyperdrive.ts +402 -0
- package/platform/src/components/cloudflare/index.ts +25 -0
- package/platform/src/components/cloudflare/kv.ts +218 -0
- package/platform/src/components/cloudflare/providers/dns-record.ts +43 -0
- package/platform/src/components/cloudflare/providers/kv-data.ts +107 -0
- package/platform/src/components/cloudflare/providers/worker-assets.ts +41 -0
- package/platform/src/components/cloudflare/providers/worker-placement.ts +93 -0
- package/platform/src/components/cloudflare/providers/worker-script.ts +47 -0
- package/platform/src/components/cloudflare/providers/worker-url.ts +109 -0
- package/platform/src/components/cloudflare/providers/zone-lookup.ts +85 -0
- package/platform/src/components/cloudflare/queue-worker-subscriber.ts +192 -0
- package/platform/src/components/cloudflare/queue.ts +310 -0
- package/platform/src/components/cloudflare/rate-limit.ts +178 -0
- package/platform/src/components/cloudflare/react-router.ts +322 -0
- package/platform/src/components/cloudflare/ssr-site.ts +293 -0
- package/platform/src/components/cloudflare/static-site-v2.ts +428 -0
- package/platform/src/components/cloudflare/static-site.ts +470 -0
- package/platform/src/components/cloudflare/tan-stack-start.ts +408 -0
- package/platform/src/components/cloudflare/worker.ts +1080 -0
- package/platform/src/components/cloudflare/workflow.ts +319 -0
- package/platform/src/components/component.ts +242 -0
- package/platform/src/components/core.ts +43 -0
- package/platform/src/components/cpu.ts +10 -0
- package/platform/src/components/dns.ts +82 -0
- package/platform/src/components/duration.ts +67 -0
- package/platform/src/components/error.ts +5 -0
- package/platform/src/components/esbuild.ts +15 -0
- package/platform/src/components/experimental/dev-command.ts +127 -0
- package/platform/src/components/experimental/index.ts +1 -0
- package/platform/src/components/groups.ts +9 -0
- package/platform/src/components/index.ts +9 -0
- package/platform/src/components/input.ts +2 -0
- package/platform/src/components/link.ts +201 -0
- package/platform/src/components/linkable.ts +360 -0
- package/platform/src/components/naming-rules.ts +299 -0
- package/platform/src/components/naming.ts +189 -0
- package/platform/src/components/parts-component.ts +662 -0
- package/platform/src/components/parts.ts +299 -0
- package/platform/src/components/path.ts +5 -0
- package/platform/src/components/rpc/rpc.ts +110 -0
- package/platform/src/components/secret.ts +159 -0
- package/platform/src/components/size.ts +28 -0
- package/platform/src/components/takeover.ts +131 -0
- package/platform/src/components/transform.ts +107 -0
- package/platform/src/components/vercel/account-id.ts +1 -0
- package/platform/src/components/vercel/dns.ts +171 -0
- package/platform/src/components/vercel/index.ts +2 -0
- package/platform/src/components/vercel/providers/dns-record.ts +34 -0
- package/platform/src/config.ts +1460 -0
- package/platform/src/global-aliases.d.ts +37 -0
- package/platform/src/global.d.ts +374 -0
- package/platform/src/internal.d.ts +18 -0
- package/platform/src/runtime/worker/unenv.d.ts +14 -0
- package/platform/src/runtime/worker/unenv.mjs +26 -0
- package/platform/src/shim/run.js +25 -0
- package/platform/src/testing/global.ts +83 -0
- package/platform/src/testing/index.ts +103 -0
- package/platform/src/testing/mock.ts +646 -0
- package/platform/src/testing/vitest.ts +36 -0
- package/platform/src/util/compare-semver.ts +23 -0
- package/platform/src/util/fs.ts +49 -0
- package/platform/src/util/lazy.ts +12 -0
- package/platform/src/util/minify.ts +10 -0
- package/platform/src/util/package.ts +29 -0
- package/platform/src/util/semaphore.ts +29 -0
- package/platform/src/util/warn.ts +7 -0
- package/platform/types/auto/run.d.ts +9 -0
- package/platform/types/auto/run.d.ts.map +1 -0
- package/platform/types/components/args.d.ts +77 -0
- package/platform/types/components/args.d.ts.map +1 -0
- package/platform/types/components/aws/alb.d.ts +283 -0
- package/platform/types/components/aws/alb.d.ts.map +1 -0
- package/platform/types/components/aws/analog.d.ts +408 -0
- package/platform/types/components/aws/analog.d.ts.map +1 -0
- package/platform/types/components/aws/apigateway-websocket-route.d.ts +74 -0
- package/platform/types/components/aws/apigateway-websocket-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigateway-websocket.d.ts +560 -0
- package/platform/types/components/aws/apigateway-websocket.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-api-key.d.ts +48 -0
- package/platform/types/components/aws/apigatewayv1-api-key.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-authorizer.d.ts +55 -0
- package/platform/types/components/aws/apigatewayv1-authorizer.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-base-route.d.ts +36 -0
- package/platform/types/components/aws/apigatewayv1-base-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-integration-route.d.ts +39 -0
- package/platform/types/components/aws/apigatewayv1-integration-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-lambda-route.d.ts +53 -0
- package/platform/types/components/aws/apigatewayv1-lambda-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1-usage-plan.d.ts +53 -0
- package/platform/types/components/aws/apigatewayv1-usage-plan.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv1.d.ts +1028 -0
- package/platform/types/components/aws/apigatewayv1.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-authorizer.d.ts +54 -0
- package/platform/types/components/aws/apigatewayv2-authorizer.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-base-route.d.ts +28 -0
- package/platform/types/components/aws/apigatewayv2-base-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-lambda-route.d.ts +59 -0
- package/platform/types/components/aws/apigatewayv2-lambda-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-private-route.d.ts +54 -0
- package/platform/types/components/aws/apigatewayv2-private-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2-url-route.d.ts +44 -0
- package/platform/types/components/aws/apigatewayv2-url-route.d.ts.map +1 -0
- package/platform/types/components/aws/apigatewayv2.d.ts +955 -0
- package/platform/types/components/aws/apigatewayv2.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync-data-source.d.ts +52 -0
- package/platform/types/components/aws/app-sync-data-source.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync-function.d.ts +33 -0
- package/platform/types/components/aws/app-sync-function.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync-resolver.d.ts +41 -0
- package/platform/types/components/aws/app-sync-resolver.d.ts.map +1 -0
- package/platform/types/components/aws/app-sync.d.ts +638 -0
- package/platform/types/components/aws/app-sync.d.ts.map +1 -0
- package/platform/types/components/aws/astro.d.ts +409 -0
- package/platform/types/components/aws/astro.d.ts.map +1 -0
- package/platform/types/components/aws/aurora.d.ts +720 -0
- package/platform/types/components/aws/aurora.d.ts.map +1 -0
- package/platform/types/components/aws/auth-v1.d.ts +26 -0
- package/platform/types/components/aws/auth-v1.d.ts.map +1 -0
- package/platform/types/components/aws/auth.d.ts +295 -0
- package/platform/types/components/aws/auth.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-lambda-subscriber.d.ts +61 -0
- package/platform/types/components/aws/bucket-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-notification.d.ts +47 -0
- package/platform/types/components/aws/bucket-notification.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-queue-subscriber.d.ts +55 -0
- package/platform/types/components/aws/bucket-queue-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bucket-topic-subscriber.d.ts +55 -0
- package/platform/types/components/aws/bucket-topic-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bucket.d.ts +1356 -0
- package/platform/types/components/aws/bucket.d.ts.map +1 -0
- package/platform/types/components/aws/bus-base-subscriber.d.ts +20 -0
- package/platform/types/components/aws/bus-base-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bus-lambda-subscriber.d.ts +50 -0
- package/platform/types/components/aws/bus-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bus-queue-subscriber.d.ts +44 -0
- package/platform/types/components/aws/bus-queue-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/bus.d.ts +447 -0
- package/platform/types/components/aws/bus.d.ts.map +1 -0
- package/platform/types/components/aws/cdn.d.ts +310 -0
- package/platform/types/components/aws/cdn.d.ts.map +1 -0
- package/platform/types/components/aws/cluster-v1.d.ts +885 -0
- package/platform/types/components/aws/cluster-v1.d.ts.map +1 -0
- package/platform/types/components/aws/cluster.d.ts +364 -0
- package/platform/types/components/aws/cluster.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-identity-pool.d.ts +199 -0
- package/platform/types/components/aws/cognito-identity-pool.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-identity-provider.d.ts +38 -0
- package/platform/types/components/aws/cognito-identity-provider.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-user-pool-client.d.ts +50 -0
- package/platform/types/components/aws/cognito-user-pool-client.d.ts.map +1 -0
- package/platform/types/components/aws/cognito-user-pool.d.ts +703 -0
- package/platform/types/components/aws/cognito-user-pool.d.ts.map +1 -0
- package/platform/types/components/aws/cron-v2.d.ts +325 -0
- package/platform/types/components/aws/cron-v2.d.ts.map +1 -0
- package/platform/types/components/aws/cron.d.ts +259 -0
- package/platform/types/components/aws/cron.d.ts.map +1 -0
- package/platform/types/components/aws/dns-validated-certificate.d.ts +27 -0
- package/platform/types/components/aws/dns-validated-certificate.d.ts.map +1 -0
- package/platform/types/components/aws/dns.d.ts +94 -0
- package/platform/types/components/aws/dns.d.ts.map +1 -0
- package/platform/types/components/aws/dsql.d.ts +369 -0
- package/platform/types/components/aws/dsql.d.ts.map +1 -0
- package/platform/types/components/aws/dynamo-lambda-subscriber.d.ts +55 -0
- package/platform/types/components/aws/dynamo-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/dynamo.d.ts +628 -0
- package/platform/types/components/aws/dynamo.d.ts.map +1 -0
- package/platform/types/components/aws/efs.d.ts +217 -0
- package/platform/types/components/aws/efs.d.ts.map +1 -0
- package/platform/types/components/aws/email.d.ts +370 -0
- package/platform/types/components/aws/email.d.ts.map +1 -0
- package/platform/types/components/aws/fargate.d.ts +894 -0
- package/platform/types/components/aws/fargate.d.ts.map +1 -0
- package/platform/types/components/aws/function.d.ts +1755 -0
- package/platform/types/components/aws/function.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/apigateway-account.d.ts +3 -0
- package/platform/types/components/aws/helpers/apigateway-account.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/apigatewayv2-domain.d.ts +144 -0
- package/platform/types/components/aws/helpers/apigatewayv2-domain.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/arn.d.ts +51 -0
- package/platform/types/components/aws/helpers/arn.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/bootstrap.d.ts +13 -0
- package/platform/types/components/aws/helpers/bootstrap.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/client.d.ts +7 -0
- package/platform/types/components/aws/helpers/client.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/container-builder.d.ts +4 -0
- package/platform/types/components/aws/helpers/container-builder.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/custom-domain.d.ts +111 -0
- package/platform/types/components/aws/helpers/custom-domain.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/event-source.d.ts +26 -0
- package/platform/types/components/aws/helpers/event-source.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/fargate.d.ts +225 -0
- package/platform/types/components/aws/helpers/fargate.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-builder.d.ts +14 -0
- package/platform/types/components/aws/helpers/function-builder.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-code.d.ts +80 -0
- package/platform/types/components/aws/helpers/function-code.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-part.d.ts +61 -0
- package/platform/types/components/aws/helpers/function-part.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/function-permission.d.ts +17 -0
- package/platform/types/components/aws/helpers/function-permission.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/load-balancer-args.d.ts +40 -0
- package/platform/types/components/aws/helpers/load-balancer-args.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/load-balancer.d.ts +9 -0
- package/platform/types/components/aws/helpers/load-balancer.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/provider.d.ts +3 -0
- package/platform/types/components/aws/helpers/provider.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/queue-policy.d.ts +11 -0
- package/platform/types/components/aws/helpers/queue-policy.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/rds.d.ts +98 -0
- package/platform/types/components/aws/helpers/rds.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/site-builder.d.ts +4 -0
- package/platform/types/components/aws/helpers/site-builder.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/subscriber.d.ts +6 -0
- package/platform/types/components/aws/helpers/subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/helpers/vpc.d.ts +14 -0
- package/platform/types/components/aws/helpers/vpc.d.ts.map +1 -0
- package/platform/types/components/aws/https-redirect.d.ts +38 -0
- package/platform/types/components/aws/https-redirect.d.ts.map +1 -0
- package/platform/types/components/aws/iam-edit.d.ts +39 -0
- package/platform/types/components/aws/iam-edit.d.ts.map +1 -0
- package/platform/types/components/aws/index.d.ts +56 -0
- package/platform/types/components/aws/index.d.ts.map +1 -0
- package/platform/types/components/aws/kinesis-stream-lambda-subscriber.d.ts +49 -0
- package/platform/types/components/aws/kinesis-stream-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/kinesis-stream.d.ts +254 -0
- package/platform/types/components/aws/kinesis-stream.d.ts.map +1 -0
- package/platform/types/components/aws/linkable.d.ts +17 -0
- package/platform/types/components/aws/linkable.d.ts.map +1 -0
- package/platform/types/components/aws/logging.d.ts +26 -0
- package/platform/types/components/aws/logging.d.ts.map +1 -0
- package/platform/types/components/aws/microvm.d.ts +439 -0
- package/platform/types/components/aws/microvm.d.ts.map +1 -0
- package/platform/types/components/aws/mysql.d.ts +525 -0
- package/platform/types/components/aws/mysql.d.ts.map +1 -0
- package/platform/types/components/aws/nextjs.d.ts +534 -0
- package/platform/types/components/aws/nextjs.d.ts.map +1 -0
- package/platform/types/components/aws/nuxt.d.ts +480 -0
- package/platform/types/components/aws/nuxt.d.ts.map +1 -0
- package/platform/types/components/aws/open-search.d.ts +306 -0
- package/platform/types/components/aws/open-search.d.ts.map +1 -0
- package/platform/types/components/aws/opencontrol.d.ts +169 -0
- package/platform/types/components/aws/opencontrol.d.ts.map +1 -0
- package/platform/types/components/aws/permission.d.ts +80 -0
- package/platform/types/components/aws/permission.d.ts.map +1 -0
- package/platform/types/components/aws/postgres-v1.d.ts +328 -0
- package/platform/types/components/aws/postgres-v1.d.ts.map +1 -0
- package/platform/types/components/aws/postgres.d.ts +529 -0
- package/platform/types/components/aws/postgres.d.ts.map +1 -0
- package/platform/types/components/aws/providers/bucket-files.d.ts +18 -0
- package/platform/types/components/aws/providers/bucket-files.d.ts.map +1 -0
- package/platform/types/components/aws/providers/distribution-deployment-waiter.d.ts +13 -0
- package/platform/types/components/aws/providers/distribution-deployment-waiter.d.ts.map +1 -0
- package/platform/types/components/aws/providers/distribution-invalidation.d.ts +11 -0
- package/platform/types/components/aws/providers/distribution-invalidation.d.ts.map +1 -0
- package/platform/types/components/aws/providers/function-environment-update.d.ts +33 -0
- package/platform/types/components/aws/providers/function-environment-update.d.ts.map +1 -0
- package/platform/types/components/aws/providers/hosted-zone-lookup.d.ts +11 -0
- package/platform/types/components/aws/providers/hosted-zone-lookup.d.ts.map +1 -0
- package/platform/types/components/aws/providers/kv-keys.d.ts +11 -0
- package/platform/types/components/aws/providers/kv-keys.d.ts.map +1 -0
- package/platform/types/components/aws/providers/kv-routes-update.d.ts +11 -0
- package/platform/types/components/aws/providers/kv-routes-update.d.ts.map +1 -0
- package/platform/types/components/aws/providers/microvm-image-prune.d.ts +35 -0
- package/platform/types/components/aws/providers/microvm-image-prune.d.ts.map +1 -0
- package/platform/types/components/aws/providers/origin-access-control.d.ts +8 -0
- package/platform/types/components/aws/providers/origin-access-control.d.ts.map +1 -0
- package/platform/types/components/aws/providers/rds-role-lookup.d.ts +8 -0
- package/platform/types/components/aws/providers/rds-role-lookup.d.ts.map +1 -0
- package/platform/types/components/aws/providers/vector-table.d.ts +12 -0
- package/platform/types/components/aws/providers/vector-table.d.ts.map +1 -0
- package/platform/types/components/aws/queue-lambda-subscriber.d.ts +53 -0
- package/platform/types/components/aws/queue-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/queue.d.ts +494 -0
- package/platform/types/components/aws/queue.d.ts.map +1 -0
- package/platform/types/components/aws/react.d.ts +407 -0
- package/platform/types/components/aws/react.d.ts.map +1 -0
- package/platform/types/components/aws/realtime-lambda-subscriber.d.ts +53 -0
- package/platform/types/components/aws/realtime-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/realtime.d.ts +237 -0
- package/platform/types/components/aws/realtime.d.ts.map +1 -0
- package/platform/types/components/aws/redis-v1.d.ts +348 -0
- package/platform/types/components/aws/redis-v1.d.ts.map +1 -0
- package/platform/types/components/aws/redis.d.ts +545 -0
- package/platform/types/components/aws/redis.d.ts.map +1 -0
- package/platform/types/components/aws/remix.d.ts +408 -0
- package/platform/types/components/aws/remix.d.ts.map +1 -0
- package/platform/types/components/aws/router-base-route.d.ts +28 -0
- package/platform/types/components/aws/router-base-route.d.ts.map +1 -0
- package/platform/types/components/aws/router-bucket-route.d.ts +29 -0
- package/platform/types/components/aws/router-bucket-route.d.ts.map +1 -0
- package/platform/types/components/aws/router-url-route.d.ts +28 -0
- package/platform/types/components/aws/router-url-route.d.ts.map +1 -0
- package/platform/types/components/aws/router.d.ts +1754 -0
- package/platform/types/components/aws/router.d.ts.map +1 -0
- package/platform/types/components/aws/service-v1.d.ts +78 -0
- package/platform/types/components/aws/service-v1.d.ts.map +1 -0
- package/platform/types/components/aws/service.d.ts +1756 -0
- package/platform/types/components/aws/service.d.ts.map +1 -0
- package/platform/types/components/aws/sns-topic-lambda-subscriber.d.ts +53 -0
- package/platform/types/components/aws/sns-topic-lambda-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/sns-topic-queue-subscriber.d.ts +55 -0
- package/platform/types/components/aws/sns-topic-queue-subscriber.d.ts.map +1 -0
- package/platform/types/components/aws/sns-topic.d.ts +394 -0
- package/platform/types/components/aws/sns-topic.d.ts.map +1 -0
- package/platform/types/components/aws/solid-start.d.ts +399 -0
- package/platform/types/components/aws/solid-start.d.ts.map +1 -0
- package/platform/types/components/aws/ssr-site.d.ts +895 -0
- package/platform/types/components/aws/ssr-site.d.ts.map +1 -0
- package/platform/types/components/aws/static-site.d.ts +744 -0
- package/platform/types/components/aws/static-site.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/choice.d.ts +73 -0
- package/platform/types/components/aws/step-functions/choice.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/fail.d.ts +63 -0
- package/platform/types/components/aws/step-functions/fail.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/map.d.ts +236 -0
- package/platform/types/components/aws/step-functions/map.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/parallel.d.ts +127 -0
- package/platform/types/components/aws/step-functions/parallel.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/pass.d.ts +39 -0
- package/platform/types/components/aws/step-functions/pass.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/state.d.ts +231 -0
- package/platform/types/components/aws/step-functions/state.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/succeed.d.ts +26 -0
- package/platform/types/components/aws/step-functions/succeed.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/task.d.ts +485 -0
- package/platform/types/components/aws/step-functions/task.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions/wait.d.ts +91 -0
- package/platform/types/components/aws/step-functions/wait.d.ts.map +1 -0
- package/platform/types/components/aws/step-functions.d.ts +478 -0
- package/platform/types/components/aws/step-functions.d.ts.map +1 -0
- package/platform/types/components/aws/svelte-kit.d.ts +456 -0
- package/platform/types/components/aws/svelte-kit.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/alb.d.ts +2 -0
- package/platform/types/components/aws/takeover/alb.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/apigatewayv2.d.ts +2 -0
- package/platform/types/components/aws/takeover/apigatewayv2.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/app-sync.d.ts +2 -0
- package/platform/types/components/aws/takeover/app-sync.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/aurora.d.ts +2 -0
- package/platform/types/components/aws/takeover/aurora.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/bucket.d.ts +2 -0
- package/platform/types/components/aws/takeover/bucket.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/bus.d.ts +2 -0
- package/platform/types/components/aws/takeover/bus.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/cognito-user-pool.d.ts +2 -0
- package/platform/types/components/aws/takeover/cognito-user-pool.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/cron-v2.d.ts +2 -0
- package/platform/types/components/aws/takeover/cron-v2.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/dsql.d.ts +2 -0
- package/platform/types/components/aws/takeover/dsql.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/dynamo.d.ts +2 -0
- package/platform/types/components/aws/takeover/dynamo.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/efs.d.ts +2 -0
- package/platform/types/components/aws/takeover/efs.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/function.d.ts +2 -0
- package/platform/types/components/aws/takeover/function.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/helpers.d.ts +16 -0
- package/platform/types/components/aws/takeover/helpers.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/index.d.ts +28 -0
- package/platform/types/components/aws/takeover/index.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/mysql.d.ts +2 -0
- package/platform/types/components/aws/takeover/mysql.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/postgres.d.ts +2 -0
- package/platform/types/components/aws/takeover/postgres.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/queue.d.ts +2 -0
- package/platform/types/components/aws/takeover/queue.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/redis.d.ts +2 -0
- package/platform/types/components/aws/takeover/redis.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/service.d.ts +2 -0
- package/platform/types/components/aws/takeover/service.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/sns-topic.d.ts +2 -0
- package/platform/types/components/aws/takeover/sns-topic.d.ts.map +1 -0
- package/platform/types/components/aws/takeover/task.d.ts +2 -0
- package/platform/types/components/aws/takeover/task.d.ts.map +1 -0
- package/platform/types/components/aws/tan-stack-start.d.ts +359 -0
- package/platform/types/components/aws/tan-stack-start.d.ts.map +1 -0
- package/platform/types/components/aws/task.d.ts +342 -0
- package/platform/types/components/aws/task.d.ts.map +1 -0
- package/platform/types/components/aws/v5/alb.d.ts +177 -0
- package/platform/types/components/aws/v5/alb.d.ts.map +1 -0
- package/platform/types/components/aws/v5/apigatewayv2.d.ts +482 -0
- package/platform/types/components/aws/v5/apigatewayv2.d.ts.map +1 -0
- package/platform/types/components/aws/v5/app-sync.d.ts +424 -0
- package/platform/types/components/aws/v5/app-sync.d.ts.map +1 -0
- package/platform/types/components/aws/v5/aurora.d.ts +459 -0
- package/platform/types/components/aws/v5/aurora.d.ts.map +1 -0
- package/platform/types/components/aws/v5/bucket.d.ts +578 -0
- package/platform/types/components/aws/v5/bucket.d.ts.map +1 -0
- package/platform/types/components/aws/v5/bus.d.ts +255 -0
- package/platform/types/components/aws/v5/bus.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cluster.d.ts +167 -0
- package/platform/types/components/aws/v5/cluster.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cognito-user-pool-client.d.ts +69 -0
- package/platform/types/components/aws/v5/cognito-user-pool-client.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cognito-user-pool.d.ts +396 -0
- package/platform/types/components/aws/v5/cognito-user-pool.d.ts.map +1 -0
- package/platform/types/components/aws/v5/cron-v2.d.ts +206 -0
- package/platform/types/components/aws/v5/cron-v2.d.ts.map +1 -0
- package/platform/types/components/aws/v5/dsql.d.ts +453 -0
- package/platform/types/components/aws/v5/dsql.d.ts.map +1 -0
- package/platform/types/components/aws/v5/dynamo.d.ts +328 -0
- package/platform/types/components/aws/v5/dynamo.d.ts.map +1 -0
- package/platform/types/components/aws/v5/efs.d.ts +178 -0
- package/platform/types/components/aws/v5/efs.d.ts.map +1 -0
- package/platform/types/components/aws/v5/function.d.ts +582 -0
- package/platform/types/components/aws/v5/function.d.ts.map +1 -0
- package/platform/types/components/aws/v5/index.d.ts +27 -0
- package/platform/types/components/aws/v5/index.d.ts.map +1 -0
- package/platform/types/components/aws/v5/mysql.d.ts +347 -0
- package/platform/types/components/aws/v5/mysql.d.ts.map +1 -0
- package/platform/types/components/aws/v5/postgres.d.ts +348 -0
- package/platform/types/components/aws/v5/postgres.d.ts.map +1 -0
- package/platform/types/components/aws/v5/queue.d.ts +190 -0
- package/platform/types/components/aws/v5/queue.d.ts.map +1 -0
- package/platform/types/components/aws/v5/redis.d.ts +214 -0
- package/platform/types/components/aws/v5/redis.d.ts.map +1 -0
- package/platform/types/components/aws/v5/service.d.ts +1347 -0
- package/platform/types/components/aws/v5/service.d.ts.map +1 -0
- package/platform/types/components/aws/v5/sns-topic.d.ts +226 -0
- package/platform/types/components/aws/v5/sns-topic.d.ts.map +1 -0
- package/platform/types/components/aws/v5/task.d.ts +346 -0
- package/platform/types/components/aws/v5/task.d.ts.map +1 -0
- package/platform/types/components/aws/vector.d.ts +163 -0
- package/platform/types/components/aws/vector.d.ts.map +1 -0
- package/platform/types/components/aws/vpc-v1.d.ts +208 -0
- package/platform/types/components/aws/vpc-v1.d.ts.map +1 -0
- package/platform/types/components/aws/vpc.d.ts +491 -0
- package/platform/types/components/aws/vpc.d.ts.map +1 -0
- package/platform/types/components/aws/workflow.d.ts +331 -0
- package/platform/types/components/aws/workflow.d.ts.map +1 -0
- package/platform/types/components/base/base-site.d.ts +53 -0
- package/platform/types/components/base/base-site.d.ts.map +1 -0
- package/platform/types/components/base/base-ssr-site.d.ts +13 -0
- package/platform/types/components/base/base-ssr-site.d.ts.map +1 -0
- package/platform/types/components/base/base-static-site.d.ts +199 -0
- package/platform/types/components/base/base-static-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/account-id.d.ts +2 -0
- package/platform/types/components/cloudflare/account-id.d.ts.map +1 -0
- package/platform/types/components/cloudflare/ai.d.ts +68 -0
- package/platform/types/components/cloudflare/ai.d.ts.map +1 -0
- package/platform/types/components/cloudflare/astro.d.ts +249 -0
- package/platform/types/components/cloudflare/astro.d.ts.map +1 -0
- package/platform/types/components/cloudflare/auth.d.ts +22 -0
- package/platform/types/components/cloudflare/auth.d.ts.map +1 -0
- package/platform/types/components/cloudflare/binding.d.ts +109 -0
- package/platform/types/components/cloudflare/binding.d.ts.map +1 -0
- package/platform/types/components/cloudflare/bucket.d.ts +98 -0
- package/platform/types/components/cloudflare/bucket.d.ts.map +1 -0
- package/platform/types/components/cloudflare/cron.d.ts +151 -0
- package/platform/types/components/cloudflare/cron.d.ts.map +1 -0
- package/platform/types/components/cloudflare/d1.d.ts +142 -0
- package/platform/types/components/cloudflare/d1.d.ts.map +1 -0
- package/platform/types/components/cloudflare/dns.d.ts +100 -0
- package/platform/types/components/cloudflare/dns.d.ts.map +1 -0
- package/platform/types/components/cloudflare/durable-object.d.ts +125 -0
- package/platform/types/components/cloudflare/durable-object.d.ts.map +1 -0
- package/platform/types/components/cloudflare/experimental/index.d.ts +4 -0
- package/platform/types/components/cloudflare/experimental/index.d.ts.map +1 -0
- package/platform/types/components/cloudflare/experimental/solid-start.d.ts +219 -0
- package/platform/types/components/cloudflare/experimental/solid-start.d.ts.map +1 -0
- package/platform/types/components/cloudflare/experimental/static-site.d.ts +3 -0
- package/platform/types/components/cloudflare/experimental/static-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/compatibility.d.ts +21 -0
- package/platform/types/components/cloudflare/helpers/compatibility.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/fetch.d.ts +19 -0
- package/platform/types/components/cloudflare/helpers/fetch.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/validation.d.ts +15 -0
- package/platform/types/components/cloudflare/helpers/validation.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/worker-builder.d.ts +10 -0
- package/platform/types/components/cloudflare/helpers/worker-builder.d.ts.map +1 -0
- package/platform/types/components/cloudflare/helpers/wrangler.d.ts +31 -0
- package/platform/types/components/cloudflare/helpers/wrangler.d.ts.map +1 -0
- package/platform/types/components/cloudflare/hyperdrive.d.ts +302 -0
- package/platform/types/components/cloudflare/hyperdrive.d.ts.map +1 -0
- package/platform/types/components/cloudflare/index.d.ts +25 -0
- package/platform/types/components/cloudflare/index.d.ts.map +1 -0
- package/platform/types/components/cloudflare/kv.d.ts +140 -0
- package/platform/types/components/cloudflare/kv.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/dns-record.d.ts +21 -0
- package/platform/types/components/cloudflare/providers/dns-record.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/kv-data.d.ts +23 -0
- package/platform/types/components/cloudflare/providers/kv-data.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-assets.d.ts +19 -0
- package/platform/types/components/cloudflare/providers/worker-assets.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-placement.d.ts +27 -0
- package/platform/types/components/cloudflare/providers/worker-placement.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-script.d.ts +23 -0
- package/platform/types/components/cloudflare/providers/worker-script.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/worker-url.d.ts +24 -0
- package/platform/types/components/cloudflare/providers/worker-url.d.ts.map +1 -0
- package/platform/types/components/cloudflare/providers/zone-lookup.d.ts +22 -0
- package/platform/types/components/cloudflare/providers/zone-lookup.d.ts.map +1 -0
- package/platform/types/components/cloudflare/queue-worker-subscriber.d.ts +122 -0
- package/platform/types/components/cloudflare/queue-worker-subscriber.d.ts.map +1 -0
- package/platform/types/components/cloudflare/queue.d.ts +235 -0
- package/platform/types/components/cloudflare/queue.d.ts.map +1 -0
- package/platform/types/components/cloudflare/rate-limit.d.ts +117 -0
- package/platform/types/components/cloudflare/rate-limit.d.ts.map +1 -0
- package/platform/types/components/cloudflare/react-router.d.ts +262 -0
- package/platform/types/components/cloudflare/react-router.d.ts.map +1 -0
- package/platform/types/components/cloudflare/ssr-site.d.ts +60 -0
- package/platform/types/components/cloudflare/ssr-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/static-site-v2.d.ts +302 -0
- package/platform/types/components/cloudflare/static-site-v2.d.ts.map +1 -0
- package/platform/types/components/cloudflare/static-site.d.ts +270 -0
- package/platform/types/components/cloudflare/static-site.d.ts.map +1 -0
- package/platform/types/components/cloudflare/tan-stack-start.d.ts +259 -0
- package/platform/types/components/cloudflare/tan-stack-start.d.ts.map +1 -0
- package/platform/types/components/cloudflare/worker.d.ts +483 -0
- package/platform/types/components/cloudflare/worker.d.ts.map +1 -0
- package/platform/types/components/cloudflare/workflow.d.ts +248 -0
- package/platform/types/components/cloudflare/workflow.d.ts.map +1 -0
- package/platform/types/components/component.d.ts +67 -0
- package/platform/types/components/component.d.ts.map +1 -0
- package/platform/types/components/core.d.ts +16 -0
- package/platform/types/components/core.d.ts.map +1 -0
- package/platform/types/components/cpu.d.ts +3 -0
- package/platform/types/components/cpu.d.ts.map +1 -0
- package/platform/types/components/dns.d.ts +63 -0
- package/platform/types/components/dns.d.ts.map +1 -0
- package/platform/types/components/duration.d.ts +9 -0
- package/platform/types/components/duration.d.ts.map +1 -0
- package/platform/types/components/error.d.ts +4 -0
- package/platform/types/components/error.d.ts.map +1 -0
- package/platform/types/components/esbuild.d.ts +3 -0
- package/platform/types/components/esbuild.d.ts.map +1 -0
- package/platform/types/components/experimental/dev-command.d.ts +99 -0
- package/platform/types/components/experimental/dev-command.d.ts.map +1 -0
- package/platform/types/components/experimental/index.d.ts +2 -0
- package/platform/types/components/experimental/index.d.ts.map +1 -0
- package/platform/types/components/groups.d.ts +6 -0
- package/platform/types/components/groups.d.ts.map +1 -0
- package/platform/types/components/index.d.ts +5 -0
- package/platform/types/components/index.d.ts.map +1 -0
- package/platform/types/components/input.d.ts +3 -0
- package/platform/types/components/input.d.ts.map +1 -0
- package/platform/types/components/link.d.ts +41 -0
- package/platform/types/components/link.d.ts.map +1 -0
- package/platform/types/components/linkable.d.ts +301 -0
- package/platform/types/components/linkable.d.ts.map +1 -0
- package/platform/types/components/naming-rules.d.ts +32 -0
- package/platform/types/components/naming-rules.d.ts.map +1 -0
- package/platform/types/components/naming.d.ts +21 -0
- package/platform/types/components/naming.d.ts.map +1 -0
- package/platform/types/components/parts-component.d.ts +241 -0
- package/platform/types/components/parts-component.d.ts.map +1 -0
- package/platform/types/components/parts.d.ts +194 -0
- package/platform/types/components/parts.d.ts.map +1 -0
- package/platform/types/components/path.d.ts +2 -0
- package/platform/types/components/path.d.ts.map +1 -0
- package/platform/types/components/rpc/rpc.d.ts +19 -0
- package/platform/types/components/rpc/rpc.d.ts.map +1 -0
- package/platform/types/components/secret.d.ts +123 -0
- package/platform/types/components/secret.d.ts.map +1 -0
- package/platform/types/components/size.d.ts +5 -0
- package/platform/types/components/size.d.ts.map +1 -0
- package/platform/types/components/takeover.d.ts +88 -0
- package/platform/types/components/takeover.d.ts.map +1 -0
- package/platform/types/components/transform.d.ts +34 -0
- package/platform/types/components/transform.d.ts.map +1 -0
- package/platform/types/components/vercel/account-id.d.ts +2 -0
- package/platform/types/components/vercel/account-id.d.ts.map +1 -0
- package/platform/types/components/vercel/dns.d.ts +73 -0
- package/platform/types/components/vercel/dns.d.ts.map +1 -0
- package/platform/types/components/vercel/index.d.ts +3 -0
- package/platform/types/components/vercel/index.d.ts.map +1 -0
- package/platform/types/components/vercel/providers/dns-record.d.ts +15 -0
- package/platform/types/components/vercel/providers/dns-record.d.ts.map +1 -0
- package/platform/types/config.d.ts +1437 -0
- package/platform/types/config.d.ts.map +1 -0
- package/platform/types/global-aliases.d.ts +37 -0
- package/platform/types/global.d.ts +374 -0
- package/platform/types/internal.d.ts +18 -0
- package/platform/types/runtime/worker/unenv.d.ts +14 -0
- package/platform/types/testing/global.d.ts +11 -0
- package/platform/types/testing/global.d.ts.map +1 -0
- package/platform/types/testing/index.d.ts +80 -0
- package/platform/types/testing/index.d.ts.map +1 -0
- package/platform/types/testing/mock.d.ts +136 -0
- package/platform/types/testing/mock.d.ts.map +1 -0
- package/platform/types/testing/vitest.d.ts +19 -0
- package/platform/types/testing/vitest.d.ts.map +1 -0
- package/platform/types/util/compare-semver.d.ts +4 -0
- package/platform/types/util/compare-semver.d.ts.map +1 -0
- package/platform/types/util/fs.d.ts +5 -0
- package/platform/types/util/fs.d.ts.map +1 -0
- package/platform/types/util/lazy.d.ts +2 -0
- package/platform/types/util/lazy.d.ts.map +1 -0
- package/platform/types/util/minify.d.ts +2 -0
- package/platform/types/util/minify.d.ts.map +1 -0
- package/platform/types/util/package.d.ts +10 -0
- package/platform/types/util/package.d.ts.map +1 -0
- package/platform/types/util/semaphore.d.ts +9 -0
- package/platform/types/util/semaphore.d.ts.map +1 -0
- package/platform/types/util/warn.d.ts +2 -0
- package/platform/types/util/warn.d.ts.map +1 -0
|
@@ -0,0 +1,662 @@
|
|
|
1
|
+
import {
|
|
2
|
+
type ComponentResourceOptions,
|
|
3
|
+
type CustomResourceOptions,
|
|
4
|
+
type Input,
|
|
5
|
+
type Inputs,
|
|
6
|
+
type Output,
|
|
7
|
+
type ResourceTransformationArgs,
|
|
8
|
+
output,
|
|
9
|
+
} from "@pulumi/pulumi";
|
|
10
|
+
import { Component } from "./component";
|
|
11
|
+
import { hashStringToPrettyString, logicalName } from "./naming";
|
|
12
|
+
import { type PartTransform, transformPart } from "./transform";
|
|
13
|
+
import {
|
|
14
|
+
type CreatedKeys,
|
|
15
|
+
type ManyKeys,
|
|
16
|
+
type Nodes,
|
|
17
|
+
type PartArgs,
|
|
18
|
+
type PartClassOf,
|
|
19
|
+
type Parts,
|
|
20
|
+
type SingleKeys,
|
|
21
|
+
isDeferred,
|
|
22
|
+
isMany,
|
|
23
|
+
nameGiven,
|
|
24
|
+
partClass,
|
|
25
|
+
} from "./parts";
|
|
26
|
+
import type { Permission } from "./aws/permission";
|
|
27
|
+
import type { binding } from "./cloudflare/binding";
|
|
28
|
+
import type { env } from "./linkable";
|
|
29
|
+
import { aliasOf, takeoverOf } from "./takeover";
|
|
30
|
+
import { VisibleError } from "./error";
|
|
31
|
+
import { notAnOption } from "./args";
|
|
32
|
+
|
|
33
|
+
export {
|
|
34
|
+
type ComponentArgs,
|
|
35
|
+
type V5Args,
|
|
36
|
+
type DeferredPart,
|
|
37
|
+
type Existing,
|
|
38
|
+
type ManyPart,
|
|
39
|
+
type ManyTransform,
|
|
40
|
+
type NamedPart,
|
|
41
|
+
type Nodes,
|
|
42
|
+
type OptionalPart,
|
|
43
|
+
type PartArgs,
|
|
44
|
+
type Parts,
|
|
45
|
+
type Transforms,
|
|
46
|
+
deferred,
|
|
47
|
+
many,
|
|
48
|
+
named,
|
|
49
|
+
optional,
|
|
50
|
+
} from "./parts";
|
|
51
|
+
export { type PartTransform, type PartialArgs } from "./transform";
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* What a link grants besides its properties: an AWS permission from
|
|
55
|
+
* `sst.aws.permission()`, a Cloudflare binding from `sst.cloudflare.binding()`,
|
|
56
|
+
* or environment variables from `sst.env()`.
|
|
57
|
+
*/
|
|
58
|
+
export type LinkInclude =
|
|
59
|
+
| Permission
|
|
60
|
+
| ReturnType<typeof binding>
|
|
61
|
+
| ReturnType<typeof env>;
|
|
62
|
+
|
|
63
|
+
/** What a component's `link()` returns. */
|
|
64
|
+
export interface LinkDefinition {
|
|
65
|
+
/** Values readable at runtime through `Resource.<Name>`. */
|
|
66
|
+
properties: Record<string, any>;
|
|
67
|
+
/** Permissions, bindings and environment variables to grant. */
|
|
68
|
+
include?: LinkInclude[];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Define a component: its type and the parts it's made of. Extend the class
|
|
73
|
+
* this returns, and create the parts in the constructor.
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```ts title="sst.config.ts"
|
|
77
|
+
* const parts = {
|
|
78
|
+
* bucket: aws.s3.Bucket,
|
|
79
|
+
* };
|
|
80
|
+
*
|
|
81
|
+
* interface UploadsArgs extends sst.ComponentArgs<typeof parts> {
|
|
82
|
+
* retention?: number;
|
|
83
|
+
* }
|
|
84
|
+
*
|
|
85
|
+
* class Uploads extends sst.component("acme:index:Uploads", parts) {
|
|
86
|
+
* constructor(name: string, args: UploadsArgs = {}) {
|
|
87
|
+
* super(name, args);
|
|
88
|
+
* this.part("bucket", { forceDestroy: true });
|
|
89
|
+
* }
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @param type The component's type, as `<package>:<module>:<Name>`, like
|
|
94
|
+
* `acme:index:Uploads`. Pulumi's tools expect the three parts.
|
|
95
|
+
* @param parts The resources the component is made of. Pass a function that
|
|
96
|
+
* returns them when a part is another SST component and this is SST's own
|
|
97
|
+
* code: those files import each other, so the class may not exist yet when
|
|
98
|
+
* the file loads.
|
|
99
|
+
*/
|
|
100
|
+
export function component<P extends Parts>(
|
|
101
|
+
type: string,
|
|
102
|
+
parts: P | (() => P),
|
|
103
|
+
): ComponentClass<P> {
|
|
104
|
+
if (!/^[^:\s]+:[^:\s]+:[^:\s]+$/.test(type))
|
|
105
|
+
throw new VisibleError(
|
|
106
|
+
`The component type "${type}" needs three parts, as "<package>:<module>:<Name>", like "acme:index:Uploads".`,
|
|
107
|
+
);
|
|
108
|
+
return class extends PartsComponent<P> {
|
|
109
|
+
/** @internal */
|
|
110
|
+
static readonly __pulumiType = type;
|
|
111
|
+
/** @internal Only carries the type of the parts. */
|
|
112
|
+
static readonly __parts?: P;
|
|
113
|
+
|
|
114
|
+
constructor(name: string, args?: Inputs, opts?: ComponentResourceOptions) {
|
|
115
|
+
super(
|
|
116
|
+
type,
|
|
117
|
+
name,
|
|
118
|
+
args,
|
|
119
|
+
opts,
|
|
120
|
+
typeof parts === "function" ? parts() : parts,
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* The class `component()` returns. It has a name so that a component in a
|
|
128
|
+
* published package can be compiled to a `.d.ts`: TypeScript can't write out
|
|
129
|
+
* an unnamed class that has private members.
|
|
130
|
+
*/
|
|
131
|
+
export interface ComponentClass<P extends Parts>
|
|
132
|
+
extends Omit<typeof PartsComponent, "prototype"> {
|
|
133
|
+
new (
|
|
134
|
+
name: string,
|
|
135
|
+
args?: Inputs,
|
|
136
|
+
opts?: ComponentResourceOptions,
|
|
137
|
+
): PartsComponent<P>;
|
|
138
|
+
/** @internal */
|
|
139
|
+
readonly __pulumiType: string;
|
|
140
|
+
/** @internal Only carries the type of the parts. */
|
|
141
|
+
readonly __parts?: P;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* A component built from parts. `component()` returns a class that extends
|
|
146
|
+
* this one; that is the way to define a component.
|
|
147
|
+
*
|
|
148
|
+
* This class keeps track of the parts: what each is named, the user's
|
|
149
|
+
* `transform` and `existing` for it, where it lived in the component this one
|
|
150
|
+
* takes over from, and the resource it ends up as in `nodes`.
|
|
151
|
+
*/
|
|
152
|
+
export class PartsComponent<P extends Parts> extends Component {
|
|
153
|
+
/** The resource options the component was created with. */
|
|
154
|
+
protected readonly componentOpts: ComponentResourceOptions;
|
|
155
|
+
private readonly partClasses: P;
|
|
156
|
+
private readonly partTransforms: Record<string, PartTransform<any> | undefined>;
|
|
157
|
+
private readonly partExisting: Record<string, unknown>;
|
|
158
|
+
// The resource each part was created as. A `many` part holds its by id.
|
|
159
|
+
private readonly partNodes: Record<string, any> = {};
|
|
160
|
+
// The same for deferred parts, as functions that are called when `nodes` is read
|
|
161
|
+
private readonly partDeferred: Record<string, any> = {};
|
|
162
|
+
// Names handed out for parts, and which part each one belongs to. Two parts
|
|
163
|
+
// of different classes can have the same name.
|
|
164
|
+
private readonly partNames = new Map<string, PartRef[]>();
|
|
165
|
+
// Resources created through `delegateOpts()`
|
|
166
|
+
private readonly partDelegated = new WeakSet<object>();
|
|
167
|
+
private runningLocally = false;
|
|
168
|
+
|
|
169
|
+
constructor(
|
|
170
|
+
type: string,
|
|
171
|
+
name: string,
|
|
172
|
+
args: Inputs | undefined,
|
|
173
|
+
opts: ComponentResourceOptions | undefined,
|
|
174
|
+
parts: P,
|
|
175
|
+
) {
|
|
176
|
+
super(type, name, args, opts);
|
|
177
|
+
this.componentOpts = opts ?? {};
|
|
178
|
+
this.partClasses = parts;
|
|
179
|
+
// Read after `super`, which has applied any `$transform` to the args
|
|
180
|
+
this.partTransforms = args?.transform ?? {};
|
|
181
|
+
this.partExisting = args?.existing ?? {};
|
|
182
|
+
|
|
183
|
+
const typeName = type.replaceAll(":", ".");
|
|
184
|
+
const has = `It has: ${Object.keys(parts).join(", ")}.`;
|
|
185
|
+
for (const key of Object.keys(this.partTransforms)) {
|
|
186
|
+
if (!(key in parts))
|
|
187
|
+
throw new VisibleError(
|
|
188
|
+
`"${key}" is not something you can transform in the "${name}" component (${typeName}). ${has}`,
|
|
189
|
+
);
|
|
190
|
+
}
|
|
191
|
+
for (const key of Object.keys(this.partExisting)) {
|
|
192
|
+
if (!(key in parts))
|
|
193
|
+
throw new VisibleError(
|
|
194
|
+
`"${key}" is not something you can pass an existing resource for in the "${name}" component (${typeName}). ${has}`,
|
|
195
|
+
);
|
|
196
|
+
if (this.partTransforms[key] && !isMany(parts[key]))
|
|
197
|
+
throw new VisibleError(
|
|
198
|
+
`The "${name}" component (${typeName}) is given an existing "${key}", so it doesn't create one and there is nothing to transform. Remove "${key}" from its transform.`,
|
|
199
|
+
);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
// Links are read through `getSSTLink()`. Give the class that defines
|
|
203
|
+
// `link()` that method, unless it has one: `Linkable.wrap()` sets its
|
|
204
|
+
// own, and that one wins.
|
|
205
|
+
if (typeof this.link === "function" && !("getSSTLink" in this)) {
|
|
206
|
+
let owner = Object.getPrototypeOf(this);
|
|
207
|
+
while (!Object.prototype.hasOwnProperty.call(owner, "link"))
|
|
208
|
+
owner = Object.getPrototypeOf(owner);
|
|
209
|
+
Object.defineProperty(owner, "getSSTLink", {
|
|
210
|
+
value(this: PartsComponent<Parts>) {
|
|
211
|
+
return this.link!();
|
|
212
|
+
},
|
|
213
|
+
writable: true,
|
|
214
|
+
configurable: true,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Make this component linkable. Return what a function, worker or site gets
|
|
221
|
+
* when the component is passed in its `link`:
|
|
222
|
+
*
|
|
223
|
+
* - `properties` are readable at runtime as `Resource.<Name>`.
|
|
224
|
+
* - `include` grants access: AWS permissions with `sst.aws.permission()`,
|
|
225
|
+
* Cloudflare bindings with `sst.cloudflare.binding()`, and extra
|
|
226
|
+
* environment variables with `sst.env()`.
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```ts
|
|
230
|
+
* link() {
|
|
231
|
+
* return {
|
|
232
|
+
* properties: { name: this.nodes.bucket.bucket },
|
|
233
|
+
* include: [
|
|
234
|
+
* sst.aws.permission({
|
|
235
|
+
* actions: ["s3:GetObject"],
|
|
236
|
+
* resources: [$interpolate`${this.nodes.bucket.arn}/*`],
|
|
237
|
+
* }),
|
|
238
|
+
* ],
|
|
239
|
+
* };
|
|
240
|
+
* }
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
public link?(): LinkDefinition;
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* The underlying resources this component creates.
|
|
247
|
+
*/
|
|
248
|
+
public get nodes(): Nodes<P> {
|
|
249
|
+
const nodes = {};
|
|
250
|
+
for (const key of Object.keys(this.partClasses)) {
|
|
251
|
+
Object.defineProperty(nodes, key, {
|
|
252
|
+
enumerable: true,
|
|
253
|
+
get: () => this.nodeOf(key),
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
return nodes as Nodes<P>;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Create one of this component's parts.
|
|
261
|
+
*
|
|
262
|
+
* The resource is named after the component and the part, `MyQueue` and
|
|
263
|
+
* `queue` giving `MyQueueQueue`, or after the name the part is declared
|
|
264
|
+
* with in `named()`. The user's `transform` for the part is applied to
|
|
265
|
+
* `args`, and the resource is added to `nodes`.
|
|
266
|
+
*
|
|
267
|
+
* A part declared with `many()` also takes an id, which is added to the
|
|
268
|
+
* name: `this.part("subnet", "1", args)` creates `MyVpcSubnet1`.
|
|
269
|
+
*
|
|
270
|
+
* @param key The part to create, one of the keys this component declares.
|
|
271
|
+
* @param args The default args for the resource.
|
|
272
|
+
* @param opts Resource options. The parent is always this component.
|
|
273
|
+
*/
|
|
274
|
+
protected part<K extends SingleKeys<P> & CreatedKeys<P>>(
|
|
275
|
+
key: K,
|
|
276
|
+
args: PartArgs<P[K]>,
|
|
277
|
+
opts?: CustomResourceOptions,
|
|
278
|
+
): InstanceType<PartClassOf<P[K]>>;
|
|
279
|
+
protected part<K extends ManyKeys<P> & CreatedKeys<P>>(
|
|
280
|
+
key: K,
|
|
281
|
+
id: string,
|
|
282
|
+
args: PartArgs<P[K]>,
|
|
283
|
+
opts?: CustomResourceOptions,
|
|
284
|
+
): InstanceType<PartClassOf<P[K]>>;
|
|
285
|
+
protected part(key: string, ...rest: any[]) {
|
|
286
|
+
const part = this.partClasses[key];
|
|
287
|
+
if (!part)
|
|
288
|
+
throw new VisibleError(
|
|
289
|
+
`"${key}" is not one of the parts of the "${this.componentName}" component.`,
|
|
290
|
+
);
|
|
291
|
+
|
|
292
|
+
const [id, args, opts] = isMany(part) ? rest : [undefined, ...rest];
|
|
293
|
+
const cls = partClass(part);
|
|
294
|
+
|
|
295
|
+
// The user has one already: use it, or look it up, and create nothing.
|
|
296
|
+
const existing = this.existingOf(key, id, opts);
|
|
297
|
+
if (existing !== undefined) return existing;
|
|
298
|
+
|
|
299
|
+
if (at(this.partNodes, key, id) !== undefined)
|
|
300
|
+
throw new VisibleError(
|
|
301
|
+
`The "${this.componentName}" component has already created its "${key}"${id === undefined ? "" : ` named "${id}"`}. A part is created once.`,
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
return new cls(
|
|
305
|
+
...transformPart(this.transformOf(key, id), this.nameOf(key, id), args, {
|
|
306
|
+
...opts,
|
|
307
|
+
aliases: [...(opts?.aliases ?? []), ...this.aliasesOf(key, id)],
|
|
308
|
+
parent: this,
|
|
309
|
+
}),
|
|
310
|
+
);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/**
|
|
314
|
+
* The resource the user passed in `existing` for a part, looked up when
|
|
315
|
+
* they passed its id. `undefined` when they didn't pass one.
|
|
316
|
+
*
|
|
317
|
+
* `this.part()` already uses it. Call this when the component has more to do
|
|
318
|
+
* for a resource it didn't create.
|
|
319
|
+
*/
|
|
320
|
+
protected existingPart<K extends SingleKeys<P>>(
|
|
321
|
+
key: K,
|
|
322
|
+
): InstanceType<PartClassOf<P[K]>> | undefined;
|
|
323
|
+
protected existingPart<K extends ManyKeys<P>>(
|
|
324
|
+
key: K,
|
|
325
|
+
id: string,
|
|
326
|
+
): InstanceType<PartClassOf<P[K]>> | undefined;
|
|
327
|
+
protected existingPart(key: string, id?: string) {
|
|
328
|
+
return this.existingOf(key, id);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Look up the resource of a part by its id, in place of creating it. This
|
|
333
|
+
* is for a component that references something already deployed and works
|
|
334
|
+
* out the ids of its other parts itself: from a tag, or a data source.
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```ts
|
|
338
|
+
* const cluster = this.existingPart("cluster");
|
|
339
|
+
* if (cluster) this.lookupPart("secret", cluster.tags.apply((tags) => tags.secret));
|
|
340
|
+
* ```
|
|
341
|
+
*
|
|
342
|
+
* @param key The part to look up.
|
|
343
|
+
* @param resourceId The id the resource is looked up by.
|
|
344
|
+
*/
|
|
345
|
+
protected lookupPart<K extends SingleKeys<P> & CreatedKeys<P>>(
|
|
346
|
+
key: K,
|
|
347
|
+
resourceId: Input<string>,
|
|
348
|
+
opts?: CustomResourceOptions,
|
|
349
|
+
): InstanceType<PartClassOf<P[K]>>;
|
|
350
|
+
protected lookupPart<K extends ManyKeys<P> & CreatedKeys<P>>(
|
|
351
|
+
key: K,
|
|
352
|
+
id: string,
|
|
353
|
+
resourceId: Input<string>,
|
|
354
|
+
opts?: CustomResourceOptions,
|
|
355
|
+
): InstanceType<PartClassOf<P[K]>>;
|
|
356
|
+
protected lookupPart(key: string, ...rest: any[]) {
|
|
357
|
+
const [id, resourceId, opts] = isMany(this.partClasses[key])
|
|
358
|
+
? rest
|
|
359
|
+
: [undefined, ...rest];
|
|
360
|
+
return this.lookUp(key, id, resourceId, opts);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/**
|
|
364
|
+
* Say that this component isn't deployed in `sst dev` because it runs
|
|
365
|
+
* locally there. Reading `nodes` then explains why a resource is missing.
|
|
366
|
+
*
|
|
367
|
+
* Call it in the one place the component handles dev mode, and return
|
|
368
|
+
* before creating the parts that aren't deployed there. A part that's
|
|
369
|
+
* created all the same, like the role the local process runs as, is in
|
|
370
|
+
* `nodes` as usual.
|
|
371
|
+
*/
|
|
372
|
+
protected runsLocally() {
|
|
373
|
+
this.runningLocally = true;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* Check what a method that adds something to this component is given: a
|
|
378
|
+
* name that isn't taken, and no `transform` of its own. The component's
|
|
379
|
+
* `transform` is where each one is changed.
|
|
380
|
+
*
|
|
381
|
+
* @example
|
|
382
|
+
* ```ts
|
|
383
|
+
* this.assertNew("route", "route", id, args, ["handler", "integration", "route"]);
|
|
384
|
+
* ```
|
|
385
|
+
*
|
|
386
|
+
* @param what What's being added, for the error messages: "route".
|
|
387
|
+
* @param key The `many` part that has one for each.
|
|
388
|
+
* @param id Its name.
|
|
389
|
+
* @param args The args the method was called with.
|
|
390
|
+
* @param transforms The parts whose `transform` applies to it. Defaults to `key`.
|
|
391
|
+
*/
|
|
392
|
+
protected assertNew(
|
|
393
|
+
what: string,
|
|
394
|
+
key: ManyKeys<P>,
|
|
395
|
+
id: string,
|
|
396
|
+
args: object = {},
|
|
397
|
+
transforms: (keyof P & string)[] = [key],
|
|
398
|
+
) {
|
|
399
|
+
const name = this.componentName;
|
|
400
|
+
const quoted = transforms.map((part) => `"${part}"`);
|
|
401
|
+
const last = quoted.pop();
|
|
402
|
+
const listed = quoted.length ? `${quoted.join(", ")} and ${last}` : last;
|
|
403
|
+
notAnOption(
|
|
404
|
+
args,
|
|
405
|
+
"transform",
|
|
406
|
+
`Use the "transform" of "${name}": its ${listed} ${quoted.length ? "apply" : "applies"} to every ${what}, and a function there is given the ${what}'s name.`,
|
|
407
|
+
);
|
|
408
|
+
|
|
409
|
+
const taken =
|
|
410
|
+
at(this.partNodes, key, id) !== undefined ||
|
|
411
|
+
at(this.partDeferred, key, id) !== undefined;
|
|
412
|
+
if (taken)
|
|
413
|
+
throw new VisibleError(
|
|
414
|
+
`"${name}" already has ${/^[aeiou]/.test(what) ? "an" : "a"} ${what} named "${id}". Give each ${what} its own name.`,
|
|
415
|
+
);
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Resource options for something that creates resources under this
|
|
420
|
+
* component on its behalf, like a DNS adapter creating records. Those
|
|
421
|
+
* resources aren't parts: they're configured through what creates them, so
|
|
422
|
+
* they have no `transform` here and aren't in `nodes`.
|
|
423
|
+
*
|
|
424
|
+
* @example
|
|
425
|
+
* ```ts
|
|
426
|
+
* dns.createAlias(name, record, this.delegateOpts());
|
|
427
|
+
* ```
|
|
428
|
+
*/
|
|
429
|
+
protected delegateOpts(): ComponentResourceOptions {
|
|
430
|
+
return {
|
|
431
|
+
parent: this,
|
|
432
|
+
// A resource's own transformations run before its parent's, so it's
|
|
433
|
+
// known by the time `childCreated()` sees it.
|
|
434
|
+
transformations: [
|
|
435
|
+
(child) => {
|
|
436
|
+
this.partDelegated.add(child.resource);
|
|
437
|
+
return undefined;
|
|
438
|
+
},
|
|
439
|
+
],
|
|
440
|
+
};
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* What a helper needs to create a part on this component's behalf: its
|
|
445
|
+
* name, the user's transform, and where to report the result. This is how
|
|
446
|
+
* `functionPart()` creates a deferred part.
|
|
447
|
+
*
|
|
448
|
+
* @internal
|
|
449
|
+
*/
|
|
450
|
+
public partHandle(key: string, id?: string) {
|
|
451
|
+
return {
|
|
452
|
+
name: this.nameOf(key, id),
|
|
453
|
+
transform: this.transformOf(key, id),
|
|
454
|
+
opts: { parent: this as Component, aliases: this.aliasesOf(key, id) },
|
|
455
|
+
/** What the user passed in `existing` for the part, as they passed it. */
|
|
456
|
+
existing: at(this.partExisting, key, id) as unknown,
|
|
457
|
+
/**
|
|
458
|
+
* Supply the part's entry in `nodes`. `node` is called when `nodes` is
|
|
459
|
+
* read, so it may fail when the resource was never created.
|
|
460
|
+
*/
|
|
461
|
+
defer: (node: () => Output<unknown>) =>
|
|
462
|
+
put(this.partDeferred, key, id, node),
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/**
|
|
467
|
+
* Check that a resource created directly under this component is one of
|
|
468
|
+
* its parts, and record it for `nodes`.
|
|
469
|
+
*
|
|
470
|
+
* @internal
|
|
471
|
+
*/
|
|
472
|
+
protected childCreated(child: ResourceTransformationArgs) {
|
|
473
|
+
if (this.partDelegated.has(child.resource)) return;
|
|
474
|
+
|
|
475
|
+
const part = this.findPart(child);
|
|
476
|
+
if (!part)
|
|
477
|
+
throw new VisibleError(
|
|
478
|
+
`In the "${this.componentName}" component, "${child.name}" (${child.type}) is not one of the component's parts. Add it to the parts of ${this.componentType.replaceAll(":", ".")}: ${Object.keys(this.partClasses).join(", ")}.`,
|
|
479
|
+
);
|
|
480
|
+
put(this.partNodes, part.key, part.id, child.resource);
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
// The part a child belongs to. One created some other way than `part()` is
|
|
484
|
+
// matched by its name: the component's name, the part's own, and for a
|
|
485
|
+
// `many` part its id.
|
|
486
|
+
private findPart(child: ResourceTransformationArgs): PartRef | undefined {
|
|
487
|
+
const isA = (key: string) =>
|
|
488
|
+
child.resource instanceof partClass(this.partClasses[key]);
|
|
489
|
+
// One of SST's own provider resources adds its type to the name it's
|
|
490
|
+
// given: "MyFunctionRouteKey.sst.aws.KvKeys"
|
|
491
|
+
const name = child.name.replace(/\.sst\.[\w.]+$/, "");
|
|
492
|
+
|
|
493
|
+
const named = this.partNames.get(name)?.find((ref) => isA(ref.key));
|
|
494
|
+
if (named) return named;
|
|
495
|
+
|
|
496
|
+
const suffix = name.slice(this.componentName.length);
|
|
497
|
+
let found: PartRef | undefined;
|
|
498
|
+
let longest = 0;
|
|
499
|
+
for (const [key, part] of Object.entries(this.partClasses)) {
|
|
500
|
+
const prefix = this.partName(key);
|
|
501
|
+
if (!isA(key)) continue;
|
|
502
|
+
if (!isMany(part)) {
|
|
503
|
+
if (suffix === prefix) return { key };
|
|
504
|
+
} else if (
|
|
505
|
+
suffix.startsWith(prefix) &&
|
|
506
|
+
suffix.length > prefix.length &&
|
|
507
|
+
prefix.length > longest
|
|
508
|
+
) {
|
|
509
|
+
found = { key, id: suffix.slice(prefix.length) };
|
|
510
|
+
longest = prefix.length;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
return found;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
private nodeOf(key: string) {
|
|
517
|
+
const part = this.partClasses[key];
|
|
518
|
+
const created = this.partNodes[key];
|
|
519
|
+
const deferred = this.partDeferred[key];
|
|
520
|
+
if (this.runningLocally && created === undefined && deferred === undefined)
|
|
521
|
+
throw new VisibleError(
|
|
522
|
+
`Cannot access \`nodes.${key}\` of "${this.componentName}" in \`sst dev\`. It runs locally there, so the resource isn't created.`,
|
|
523
|
+
);
|
|
524
|
+
|
|
525
|
+
if (!isMany(part)) return deferred ? deferred() : created;
|
|
526
|
+
// Held by id on an object with no prototype, so `id in nodes.route` is
|
|
527
|
+
// only true for a route that exists, whatever the id is.
|
|
528
|
+
if (!isDeferred(part)) return Object.assign(byId(), created);
|
|
529
|
+
|
|
530
|
+
// Each is read when asked for: one given as an ARN has no resource
|
|
531
|
+
const many = byId();
|
|
532
|
+
for (const id of Object.keys({ ...deferred, ...created })) {
|
|
533
|
+
Object.defineProperty(many, id, {
|
|
534
|
+
enumerable: true,
|
|
535
|
+
get: () => (deferred?.[id] ? deferred[id]() : output(created[id])),
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
return many;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
private existingOf(key: string, id?: string, opts?: CustomResourceOptions) {
|
|
542
|
+
const existing = at(this.partExisting, key, id);
|
|
543
|
+
if (existing === undefined) return undefined;
|
|
544
|
+
|
|
545
|
+
// Looked up already
|
|
546
|
+
const found = at(this.partNodes, key, id);
|
|
547
|
+
if (found) return found;
|
|
548
|
+
|
|
549
|
+
const cls = partClass(this.partClasses[key]);
|
|
550
|
+
if (existing instanceof cls) {
|
|
551
|
+
put(this.partNodes, key, id, existing);
|
|
552
|
+
return existing;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
return this.lookUp(key, id, existing, opts);
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
private lookUp(
|
|
559
|
+
key: string,
|
|
560
|
+
id: string | undefined,
|
|
561
|
+
resourceId: unknown,
|
|
562
|
+
opts?: CustomResourceOptions,
|
|
563
|
+
) {
|
|
564
|
+
const lookup = partClass(this.partClasses[key]) as unknown as {
|
|
565
|
+
get?: Function;
|
|
566
|
+
};
|
|
567
|
+
if (typeof lookup.get !== "function")
|
|
568
|
+
throw new VisibleError(
|
|
569
|
+
`The "${this.componentName}" component can't look up its "${key}" by id. Pass the resource itself in "existing".`,
|
|
570
|
+
);
|
|
571
|
+
return lookup.get(this.nameOf(key, id), resourceId, undefined, {
|
|
572
|
+
...opts,
|
|
573
|
+
parent: this,
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
// Where a part's resource lived in the component this one takes over from
|
|
578
|
+
private aliasesOf(key: string, id?: string) {
|
|
579
|
+
const moved = takeoverOf(this.constructor)?.moved?.[key];
|
|
580
|
+
if (!moved) return [];
|
|
581
|
+
|
|
582
|
+
// A part that only changed its key was named the way 4.x names things:
|
|
583
|
+
// the component, the key, then the id.
|
|
584
|
+
const old =
|
|
585
|
+
typeof moved === "string"
|
|
586
|
+
? { name: `${this.componentName}${logicalName(moved)}${logicalName(id ?? "")}` }
|
|
587
|
+
: moved(this, { name: this.componentName, id });
|
|
588
|
+
return [old ?? []].flat().map(aliasOf);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
private nameOf(key: string, id?: string) {
|
|
592
|
+
if (
|
|
593
|
+
isMany(this.partClasses[key]) &&
|
|
594
|
+
(typeof id !== "string" || idName(id) === "")
|
|
595
|
+
)
|
|
596
|
+
throw new VisibleError(
|
|
597
|
+
`The "${this.componentName}" component creates several "${key}" parts, so each one needs an id.`,
|
|
598
|
+
);
|
|
599
|
+
|
|
600
|
+
const name = `${this.componentName}${this.partName(key)}${id === undefined ? "" : idName(id)}`;
|
|
601
|
+
const refs = this.partNames.get(name) ?? [];
|
|
602
|
+
const other = refs.find((ref) => ref.key === key && ref.id !== id);
|
|
603
|
+
if (other)
|
|
604
|
+
throw new VisibleError(
|
|
605
|
+
`In the "${this.componentName}" component, "${other.id}" and "${id}" are too alike: both would be named "${name}". Change one of them.`,
|
|
606
|
+
);
|
|
607
|
+
this.partNames.set(name, [...refs, id === undefined ? { key } : { key, id }]);
|
|
608
|
+
return name;
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// What a part adds to the component's name: its key, or the name it's
|
|
612
|
+
// declared with
|
|
613
|
+
private partName(key: string) {
|
|
614
|
+
return nameGiven(this.partClasses[key]) ?? logicalName(key);
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
private transformOf(key: string, id?: string): PartTransform<any> | undefined {
|
|
618
|
+
const transform = this.partTransforms[key];
|
|
619
|
+
if (id === undefined || typeof transform !== "function") return transform;
|
|
620
|
+
// The transform of a `many` part is also told which one it is given.
|
|
621
|
+
const many = transform as (...args: unknown[]) => undefined;
|
|
622
|
+
return (args: unknown, opts: unknown, name: unknown) =>
|
|
623
|
+
many(args, opts, name, id);
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
|
|
627
|
+
type PartRef = { key: string; id?: string };
|
|
628
|
+
|
|
629
|
+
// What an id adds to a resource's name. A plain id is used the way it reads.
|
|
630
|
+
// Any other, like the route "GET /users/{id}", could easily come out the
|
|
631
|
+
// same as a different id once it's reduced to a name, so a hash of the id is
|
|
632
|
+
// added. Two plain ids can still come out the same ("get-user", "getuser");
|
|
633
|
+
// `nameOf()` reports that.
|
|
634
|
+
function idName(id: string) {
|
|
635
|
+
const name = logicalName(id);
|
|
636
|
+
return /^[\w-]*$/.test(id)
|
|
637
|
+
? name
|
|
638
|
+
: `${name}${logicalName(hashStringToPrettyString(id, 6))}`;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
// Read and write what's kept for a part: by key, and by id under a `many`
|
|
642
|
+
// part. An id can be any string, including the name of something every
|
|
643
|
+
// object has, like "constructor".
|
|
644
|
+
function at(entries: Record<string, any>, key: string, id?: string) {
|
|
645
|
+
if (id === undefined) return entries[key];
|
|
646
|
+
const many = entries[key];
|
|
647
|
+
return many && Object.hasOwn(many, id) ? many[id] : undefined;
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
function put(
|
|
651
|
+
entries: Record<string, any>,
|
|
652
|
+
key: string,
|
|
653
|
+
id: string | undefined,
|
|
654
|
+
value: unknown,
|
|
655
|
+
) {
|
|
656
|
+
if (id === undefined) entries[key] = value;
|
|
657
|
+
else (entries[key] ??= byId())[id] = value;
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
function byId(): Record<string, any> {
|
|
661
|
+
return Object.create(null);
|
|
662
|
+
}
|