alchemy 0.62.2 → 0.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/alchemy.js +1518 -1204
- package/bin/commands/deploy.ts +2 -0
- package/bin/commands/dev.ts +2 -0
- package/bin/services/execute-alchemy.ts +11 -0
- package/bin/services/template-manager.ts +2 -0
- package/bin/types.ts +2 -1
- package/lib/alchemy.d.ts +6 -22
- package/lib/alchemy.d.ts.map +1 -1
- package/lib/alchemy.js +65 -169
- package/lib/alchemy.js.map +1 -1
- package/lib/apply.d.ts +0 -2
- package/lib/apply.d.ts.map +1 -1
- package/lib/apply.js +2 -16
- package/lib/apply.js.map +1 -1
- package/lib/aws/account-id.d.ts.map +1 -1
- package/lib/aws/account-id.js +3 -2
- package/lib/aws/account-id.js.map +1 -1
- package/lib/aws/bucket.d.ts +8 -2
- package/lib/aws/bucket.d.ts.map +1 -1
- package/lib/aws/bucket.js +21 -14
- package/lib/aws/bucket.js.map +1 -1
- package/lib/aws/ec2/security-group.d.ts +8 -2
- package/lib/aws/ec2/security-group.d.ts.map +1 -1
- package/lib/aws/ec2/security-group.js +7 -2
- package/lib/aws/ec2/security-group.js.map +1 -1
- package/lib/aws/function.d.ts +9 -3
- package/lib/aws/function.d.ts.map +1 -1
- package/lib/aws/function.js +35 -26
- package/lib/aws/function.js.map +1 -1
- package/lib/aws/policy-attachment.d.ts.map +1 -1
- package/lib/aws/policy-attachment.js +2 -1
- package/lib/aws/policy-attachment.js.map +1 -1
- package/lib/aws/policy.d.ts +8 -2
- package/lib/aws/policy.d.ts.map +1 -1
- package/lib/aws/policy.js +13 -4
- package/lib/aws/policy.js.map +1 -1
- package/lib/aws/queue.d.ts +8 -2
- package/lib/aws/queue.d.ts.map +1 -1
- package/lib/aws/queue.js +22 -14
- package/lib/aws/queue.js.map +1 -1
- package/lib/aws/role.d.ts +8 -2
- package/lib/aws/role.d.ts.map +1 -1
- package/lib/aws/role.js +10 -3
- package/lib/aws/role.js.map +1 -1
- package/lib/aws/ses.d.ts +1 -1
- package/lib/aws/ses.d.ts.map +1 -1
- package/lib/aws/ses.js +2 -1
- package/lib/aws/ses.js.map +1 -1
- package/lib/aws/ssm-parameter.d.ts +8 -2
- package/lib/aws/ssm-parameter.d.ts.map +1 -1
- package/lib/aws/ssm-parameter.js +15 -10
- package/lib/aws/ssm-parameter.js.map +1 -1
- package/lib/aws/table.d.ts +8 -2
- package/lib/aws/table.d.ts.map +1 -1
- package/lib/aws/table.js +17 -9
- package/lib/aws/table.js.map +1 -1
- package/lib/cloudflare/account-api-token.d.ts +2 -2
- package/lib/cloudflare/account-api-token.d.ts.map +1 -1
- package/lib/cloudflare/account-api-token.js +7 -6
- package/lib/cloudflare/account-api-token.js.map +1 -1
- package/lib/cloudflare/ai-gateway.d.ts +9 -4
- package/lib/cloudflare/ai-gateway.d.ts.map +1 -1
- package/lib/cloudflare/ai-gateway.js +20 -24
- package/lib/cloudflare/ai-gateway.js.map +1 -1
- package/lib/cloudflare/api-schema.d.ts +2 -2
- package/lib/cloudflare/api-schema.d.ts.map +1 -1
- package/lib/cloudflare/api-schema.js +6 -2
- package/lib/cloudflare/api-schema.js.map +1 -1
- package/lib/cloudflare/api-shield.d.ts +5 -1
- package/lib/cloudflare/api-shield.d.ts.map +1 -1
- package/lib/cloudflare/api-shield.js +6 -1
- package/lib/cloudflare/api-shield.js.map +1 -1
- package/lib/cloudflare/assets.d.ts +1 -1
- package/lib/cloudflare/assets.d.ts.map +1 -1
- package/lib/cloudflare/astro/astro.d.ts.map +1 -1
- package/lib/cloudflare/astro/astro.js +3 -1
- package/lib/cloudflare/astro/astro.js.map +1 -1
- package/lib/cloudflare/astro/plugin.d.ts +2 -1
- package/lib/cloudflare/astro/plugin.d.ts.map +1 -1
- package/lib/cloudflare/astro/plugin.js.map +1 -1
- package/lib/cloudflare/bindings.d.ts +2 -2
- package/lib/cloudflare/bindings.d.ts.map +1 -1
- package/lib/cloudflare/bound.d.ts +1 -1
- package/lib/cloudflare/bound.d.ts.map +1 -1
- package/lib/cloudflare/bucket.d.ts +120 -1
- package/lib/cloudflare/bucket.d.ts.map +1 -1
- package/lib/cloudflare/bucket.js +80 -2
- package/lib/cloudflare/bucket.js.map +1 -1
- package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
- package/lib/cloudflare/compatibility-date.gen.js +1 -1
- package/lib/cloudflare/container.d.ts +10 -4
- package/lib/cloudflare/container.d.ts.map +1 -1
- package/lib/cloudflare/container.js +12 -9
- package/lib/cloudflare/container.js.map +1 -1
- package/lib/cloudflare/custom-domain.js +2 -1
- package/lib/cloudflare/custom-domain.js.map +1 -1
- package/lib/cloudflare/d1-database.d.ts +1 -1
- package/lib/cloudflare/d1-database.d.ts.map +1 -1
- package/lib/cloudflare/d1-database.js +7 -3
- package/lib/cloudflare/d1-database.js.map +1 -1
- package/lib/cloudflare/dispatch-namespace.d.ts +2 -0
- package/lib/cloudflare/dispatch-namespace.d.ts.map +1 -1
- package/lib/cloudflare/dispatch-namespace.js +7 -5
- package/lib/cloudflare/dispatch-namespace.js.map +1 -1
- package/lib/cloudflare/hyperdrive.d.ts +7 -1
- package/lib/cloudflare/hyperdrive.d.ts.map +1 -1
- package/lib/cloudflare/hyperdrive.js +2 -1
- package/lib/cloudflare/hyperdrive.js.map +1 -1
- package/lib/cloudflare/kv-namespace.d.ts +3 -0
- package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
- package/lib/cloudflare/kv-namespace.js +11 -2
- package/lib/cloudflare/kv-namespace.js.map +1 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js +3 -1
- package/lib/cloudflare/miniflare/miniflare-worker-proxy.js.map +1 -1
- package/lib/cloudflare/miniflare/paths.d.ts +4 -0
- package/lib/cloudflare/miniflare/paths.d.ts.map +1 -1
- package/lib/cloudflare/miniflare/paths.js +11 -0
- package/lib/cloudflare/miniflare/paths.js.map +1 -1
- package/lib/cloudflare/pipeline.d.ts +14 -3
- package/lib/cloudflare/pipeline.d.ts.map +1 -1
- package/lib/cloudflare/pipeline.js +31 -2
- package/lib/cloudflare/pipeline.js.map +1 -1
- package/lib/cloudflare/queue-consumer.js +1 -1
- package/lib/cloudflare/queue-consumer.js.map +1 -1
- package/lib/cloudflare/queue.d.ts +6 -4
- package/lib/cloudflare/queue.d.ts.map +1 -1
- package/lib/cloudflare/queue.js +13 -9
- package/lib/cloudflare/queue.js.map +1 -1
- package/lib/cloudflare/react-router/plugin.d.ts +1 -1
- package/lib/cloudflare/react-router/plugin.d.ts.map +1 -1
- package/lib/cloudflare/react-router/react-router.d.ts.map +1 -1
- package/lib/cloudflare/react-router/react-router.js +32 -2
- package/lib/cloudflare/react-router/react-router.js.map +1 -1
- package/lib/cloudflare/redwood/plugin.d.ts +2 -1
- package/lib/cloudflare/redwood/plugin.d.ts.map +1 -1
- package/lib/cloudflare/redwood/plugin.js.map +1 -1
- package/lib/cloudflare/route.js +1 -1
- package/lib/cloudflare/route.js.map +1 -1
- package/lib/cloudflare/ruleset.d.ts +3 -1
- package/lib/cloudflare/ruleset.d.ts.map +1 -1
- package/lib/cloudflare/ruleset.js +3 -2
- package/lib/cloudflare/ruleset.js.map +1 -1
- package/lib/cloudflare/secret.d.ts +6 -23
- package/lib/cloudflare/secret.d.ts.map +1 -1
- package/lib/cloudflare/secret.js +8 -4
- package/lib/cloudflare/secret.js.map +1 -1
- package/lib/cloudflare/secrets-store.d.ts +1 -1
- package/lib/cloudflare/secrets-store.d.ts.map +1 -1
- package/lib/cloudflare/secrets-store.js +5 -2
- package/lib/cloudflare/secrets-store.js.map +1 -1
- package/lib/cloudflare/tunnel.d.ts +5 -1
- package/lib/cloudflare/tunnel.d.ts.map +1 -1
- package/lib/cloudflare/tunnel.js +5 -1
- package/lib/cloudflare/tunnel.js.map +1 -1
- package/lib/cloudflare/vectorize-index.d.ts +7 -1
- package/lib/cloudflare/vectorize-index.d.ts.map +1 -1
- package/lib/cloudflare/vectorize-index.js +5 -2
- package/lib/cloudflare/vectorize-index.js.map +1 -1
- package/lib/cloudflare/vite/plugin.d.ts +2 -1
- package/lib/cloudflare/vite/plugin.d.ts.map +1 -1
- package/lib/cloudflare/vite/plugin.js.map +1 -1
- package/lib/cloudflare/vite/vite.d.ts +1 -1
- package/lib/cloudflare/vite/vite.d.ts.map +1 -1
- package/lib/cloudflare/vite/vite.js +1 -1
- package/lib/cloudflare/vite/vite.js.map +1 -1
- package/lib/cloudflare/website.js +1 -1
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/worker.d.ts +1 -1
- package/lib/cloudflare/worker.d.ts.map +1 -1
- package/lib/cloudflare/worker.js +12 -7
- package/lib/cloudflare/worker.js.map +1 -1
- package/lib/cloudflare/wrangler.json.d.ts +1 -1
- package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
- package/lib/cloudflare/wrangler.json.js +5 -3
- package/lib/cloudflare/wrangler.json.js.map +1 -1
- package/lib/docker/container.d.ts +6 -0
- package/lib/docker/container.d.ts.map +1 -1
- package/lib/docker/container.js +5 -1
- package/lib/docker/container.js.map +1 -1
- package/lib/docker/network.d.ts +8 -2
- package/lib/docker/network.d.ts.map +1 -1
- package/lib/docker/network.js +7 -2
- package/lib/docker/network.js.map +1 -1
- package/lib/docker/volume.d.ts +8 -2
- package/lib/docker/volume.d.ts.map +1 -1
- package/lib/docker/volume.js +6 -4
- package/lib/docker/volume.js.map +1 -1
- package/lib/esbuild/bundle.d.ts +1 -1
- package/lib/fs/index.d.ts +0 -8
- package/lib/fs/index.d.ts.map +1 -1
- package/lib/fs/index.js +0 -8
- package/lib/fs/index.js.map +1 -1
- package/lib/github/client.d.ts +1 -1
- package/lib/github/client.d.ts.map +1 -1
- package/lib/github/client.js +2 -1
- package/lib/github/client.js.map +1 -1
- package/lib/github/repository-environment.d.ts +8 -2
- package/lib/github/repository-environment.d.ts.map +1 -1
- package/lib/github/repository-environment.js +16 -12
- package/lib/github/repository-environment.js.map +1 -1
- package/lib/neon/project.d.ts +7 -1
- package/lib/neon/project.d.ts.map +1 -1
- package/lib/neon/project.js +10 -6
- package/lib/neon/project.js.map +1 -1
- package/lib/planetscale/branch.d.ts +4 -2
- package/lib/planetscale/branch.d.ts.map +1 -1
- package/lib/planetscale/branch.js +18 -12
- package/lib/planetscale/branch.js.map +1 -1
- package/lib/planetscale/database.d.ts +8 -2
- package/lib/planetscale/database.d.ts.map +1 -1
- package/lib/planetscale/database.js +24 -16
- package/lib/planetscale/database.js.map +1 -1
- package/lib/planetscale/password.d.ts +8 -2
- package/lib/planetscale/password.d.ts.map +1 -1
- package/lib/planetscale/password.js +2 -2
- package/lib/planetscale/password.js.map +1 -1
- package/lib/resource.d.ts +0 -2
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js +1 -9
- package/lib/resource.js.map +1 -1
- package/lib/scope.d.ts +9 -3
- package/lib/scope.d.ts.map +1 -1
- package/lib/scope.js +21 -34
- package/lib/scope.js.map +1 -1
- package/lib/sentry/client-key.d.ts +7 -1
- package/lib/sentry/client-key.d.ts.map +1 -1
- package/lib/sentry/client-key.js +45 -6
- package/lib/sentry/client-key.js.map +1 -1
- package/lib/sentry/project.d.ts +8 -2
- package/lib/sentry/project.d.ts.map +1 -1
- package/lib/sentry/project.js +35 -5
- package/lib/sentry/project.js.map +1 -1
- package/lib/sentry/team.d.ts +8 -2
- package/lib/sentry/team.d.ts.map +1 -1
- package/lib/sentry/team.js +36 -6
- package/lib/sentry/team.js.map +1 -1
- package/lib/serde.d.ts +0 -5
- package/lib/serde.d.ts.map +1 -1
- package/lib/serde.js +0 -28
- package/lib/serde.js.map +1 -1
- package/lib/state/d1-state-store.d.ts +1 -1
- package/lib/state/d1-state-store.d.ts.map +1 -1
- package/lib/state/d1-state-store.js +5 -5
- package/lib/state/d1-state-store.js.map +1 -1
- package/lib/state/sqlite-state-store.d.ts.map +1 -1
- package/lib/state/sqlite-state-store.js +7 -11
- package/lib/state/sqlite-state-store.js.map +1 -1
- package/lib/stripe/card.d.ts.map +1 -1
- package/lib/stripe/card.js +3 -2
- package/lib/stripe/card.js.map +1 -1
- package/lib/stripe/client.d.ts +2 -2
- package/lib/stripe/client.d.ts.map +1 -1
- package/lib/stripe/client.js +4 -3
- package/lib/stripe/client.js.map +1 -1
- package/lib/stripe/coupon.d.ts.map +1 -1
- package/lib/stripe/coupon.js +4 -3
- package/lib/stripe/coupon.js.map +1 -1
- package/lib/stripe/customer.js +2 -2
- package/lib/stripe/customer.js.map +1 -1
- package/lib/stripe/entitlements-feature.d.ts.map +1 -1
- package/lib/stripe/entitlements-feature.js +3 -2
- package/lib/stripe/entitlements-feature.js.map +1 -1
- package/lib/stripe/file.d.ts.map +1 -1
- package/lib/stripe/file.js +3 -2
- package/lib/stripe/file.js.map +1 -1
- package/lib/stripe/meter.js +2 -2
- package/lib/stripe/meter.js.map +1 -1
- package/lib/stripe/portal-configuration.d.ts.map +1 -1
- package/lib/stripe/portal-configuration.js +3 -2
- package/lib/stripe/portal-configuration.js.map +1 -1
- package/lib/stripe/price.d.ts.map +1 -1
- package/lib/stripe/price.js +3 -2
- package/lib/stripe/price.js.map +1 -1
- package/lib/stripe/product-feature.d.ts.map +1 -1
- package/lib/stripe/product-feature.js +3 -2
- package/lib/stripe/product-feature.js.map +1 -1
- package/lib/stripe/product.d.ts.map +1 -1
- package/lib/stripe/product.js +3 -2
- package/lib/stripe/product.js.map +1 -1
- package/lib/stripe/promotion-code.d.ts.map +1 -1
- package/lib/stripe/promotion-code.js +3 -2
- package/lib/stripe/promotion-code.js.map +1 -1
- package/lib/stripe/shipping-rate.d.ts.map +1 -1
- package/lib/stripe/shipping-rate.js +4 -3
- package/lib/stripe/shipping-rate.js.map +1 -1
- package/lib/stripe/tax-rate.d.ts.map +1 -1
- package/lib/stripe/tax-rate.js +3 -2
- package/lib/stripe/tax-rate.js.map +1 -1
- package/lib/stripe/webhook.d.ts.map +1 -1
- package/lib/stripe/webhook.js +4 -3
- package/lib/stripe/webhook.js.map +1 -1
- package/lib/test/vitest.d.ts.map +1 -1
- package/lib/test/vitest.js +1 -0
- package/lib/test/vitest.js.map +1 -1
- package/lib/upstash/redis.d.ts +8 -2
- package/lib/upstash/redis.d.ts.map +1 -1
- package/lib/upstash/redis.js +5 -4
- package/lib/upstash/redis.js.map +1 -1
- package/lib/util/ignore-matcher.d.ts.map +1 -1
- package/lib/util/ignore-matcher.js +3 -1
- package/lib/util/ignore-matcher.js.map +1 -1
- package/lib/util/peer.d.ts +10 -0
- package/lib/util/peer.d.ts.map +1 -0
- package/lib/util/peer.js +42 -0
- package/lib/util/peer.js.map +1 -0
- package/lib/util/telemetry/constants.d.ts.map +1 -1
- package/lib/util/telemetry/constants.js +2 -2
- package/lib/util/telemetry/constants.js.map +1 -1
- package/lib/vercel/project.d.ts +7 -1
- package/lib/vercel/project.d.ts.map +1 -1
- package/lib/vercel/project.js +28 -0
- package/lib/vercel/project.js.map +1 -1
- package/package.json +88 -74
- package/src/alchemy.ts +76 -222
- package/src/apply.ts +6 -19
- package/src/aws/account-id.ts +6 -3
- package/src/aws/bucket.ts +43 -32
- package/src/aws/ec2/security-group.ts +15 -3
- package/src/aws/function.ts +65 -39
- package/src/aws/policy-attachment.ts +10 -6
- package/src/aws/policy.ts +33 -15
- package/src/aws/queue.ts +50 -29
- package/src/aws/role.ts +37 -20
- package/src/aws/ses.ts +24 -20
- package/src/aws/ssm-parameter.ts +40 -20
- package/src/aws/table.ts +35 -17
- package/src/cloudflare/account-api-token.ts +9 -7
- package/src/cloudflare/ai-gateway.ts +37 -34
- package/src/cloudflare/api-schema.ts +33 -26
- package/src/cloudflare/api-shield.ts +15 -2
- package/src/cloudflare/astro/astro.ts +5 -1
- package/src/cloudflare/astro/plugin.ts +2 -1
- package/src/cloudflare/bindings.ts +2 -2
- package/src/cloudflare/bound.ts +1 -1
- package/src/cloudflare/bucket.ts +242 -3
- package/src/cloudflare/compatibility-date.gen.ts +1 -1
- package/src/cloudflare/container.ts +23 -12
- package/src/cloudflare/custom-domain.ts +2 -2
- package/src/cloudflare/d1-database.ts +11 -4
- package/src/cloudflare/dispatch-namespace.ts +10 -7
- package/src/cloudflare/hyperdrive.ts +13 -3
- package/src/cloudflare/kv-namespace.ts +25 -2
- package/src/cloudflare/miniflare/miniflare-worker-proxy.ts +3 -1
- package/src/cloudflare/miniflare/paths.ts +13 -0
- package/src/cloudflare/pipeline.ts +76 -28
- package/src/cloudflare/queue-consumer.ts +1 -1
- package/src/cloudflare/queue.ts +65 -54
- package/src/cloudflare/react-router/react-router.ts +28 -2
- package/src/cloudflare/redwood/plugin.ts +3 -2
- package/src/cloudflare/route.ts +1 -1
- package/src/cloudflare/ruleset.ts +7 -2
- package/src/cloudflare/secret.ts +20 -31
- package/src/cloudflare/secrets-store.ts +7 -3
- package/src/cloudflare/tunnel.ts +13 -2
- package/src/cloudflare/vectorize-index.ts +14 -3
- package/src/cloudflare/vite/plugin.ts +3 -2
- package/src/cloudflare/vite/vite.ts +2 -3
- package/src/cloudflare/website.ts +1 -1
- package/src/cloudflare/worker.ts +35 -23
- package/src/cloudflare/wrangler.json.ts +7 -4
- package/src/docker/container.ts +13 -1
- package/src/docker/network.ts +18 -3
- package/src/docker/volume.ts +17 -6
- package/src/fs/index.ts +0 -8
- package/src/github/client.ts +6 -2
- package/src/github/repository-environment.ts +27 -13
- package/src/neon/project.ts +20 -6
- package/src/planetscale/branch.ts +24 -13
- package/src/planetscale/database.ts +38 -17
- package/src/planetscale/password.ts +10 -3
- package/src/resource.ts +1 -10
- package/src/scope.ts +29 -38
- package/src/sentry/client-key.ts +74 -6
- package/src/sentry/project.ts +59 -6
- package/src/sentry/team.ts +55 -7
- package/src/serde.ts +0 -44
- package/src/state/d1-state-store.ts +13 -6
- package/src/state/sqlite-state-store.ts +16 -17
- package/src/stripe/card.ts +5 -2
- package/src/stripe/client.ts +10 -3
- package/src/stripe/coupon.ts +4 -3
- package/src/stripe/customer.ts +2 -2
- package/src/stripe/entitlements-feature.ts +5 -2
- package/src/stripe/file.ts +3 -2
- package/src/stripe/meter.ts +2 -2
- package/src/stripe/portal-configuration.ts +5 -2
- package/src/stripe/price.ts +3 -2
- package/src/stripe/product-feature.ts +5 -2
- package/src/stripe/product.ts +3 -2
- package/src/stripe/promotion-code.ts +3 -2
- package/src/stripe/shipping-rate.ts +4 -3
- package/src/stripe/tax-rate.ts +3 -2
- package/src/stripe/webhook.ts +4 -3
- package/src/test/vitest.ts +1 -0
- package/src/upstash/redis.ts +15 -5
- package/src/util/ignore-matcher.ts +3 -1
- package/src/util/peer.ts +53 -0
- package/src/util/telemetry/constants.ts +2 -2
- package/src/vercel/project.ts +46 -1
- package/templates/astro/_gitignore +2 -1
- package/templates/hono/README.md +19 -0
- package/templates/hono/_env +1 -0
- package/templates/hono/_env.example +1 -0
- package/templates/hono/_gitignore +34 -0
- package/templates/hono/alchemy.run.ts +22 -0
- package/templates/hono/package.json +18 -0
- package/templates/hono/src/index.ts +17 -0
- package/templates/hono/tsconfig.json +13 -0
- package/templates/hono/types/env.d.ts +16 -0
- package/templates/nuxt/_gitignore +2 -1
- package/templates/react-router/_gitignore +1 -0
- package/templates/react-router/vite.config.ts +5 -3
- package/templates/rwsdk/_gitignore +2 -3
- package/templates/sveltekit/_gitignore +2 -1
- package/templates/tanstack-start/_gitignore +2 -1
- package/templates/typescript/_gitignore +2 -1
- package/templates/vite/_gitignore +2 -1
- package/workers/cloudflare-state-store.js +69 -74
- package/workers/dofs-state-store.js +1 -1
- package/bin/bootstrap-s3.ts +0 -255
- package/lib/ai/ark.d.ts +0 -12
- package/lib/ai/ark.d.ts.map +0 -1
- package/lib/ai/ark.js +0 -87
- package/lib/ai/ark.js.map +0 -1
- package/lib/ai/astro-file.d.ts +0 -138
- package/lib/ai/astro-file.d.ts.map +0 -1
- package/lib/ai/astro-file.js +0 -158
- package/lib/ai/astro-file.js.map +0 -1
- package/lib/ai/client.d.ts +0 -51
- package/lib/ai/client.d.ts.map +0 -1
- package/lib/ai/client.js +0 -58
- package/lib/ai/client.js.map +0 -1
- package/lib/ai/css-file.d.ts +0 -132
- package/lib/ai/css-file.d.ts.map +0 -1
- package/lib/ai/css-file.js +0 -142
- package/lib/ai/css-file.js.map +0 -1
- package/lib/ai/data.d.ts +0 -152
- package/lib/ai/data.d.ts.map +0 -1
- package/lib/ai/data.js +0 -120
- package/lib/ai/data.js.map +0 -1
- package/lib/ai/document.d.ts +0 -208
- package/lib/ai/document.d.ts.map +0 -1
- package/lib/ai/document.js +0 -206
- package/lib/ai/document.js.map +0 -1
- package/lib/ai/html-file.d.ts +0 -129
- package/lib/ai/html-file.d.ts.map +0 -1
- package/lib/ai/html-file.js +0 -139
- package/lib/ai/html-file.js.map +0 -1
- package/lib/ai/index.d.ts +0 -11
- package/lib/ai/index.d.ts.map +0 -1
- package/lib/ai/index.js +0 -11
- package/lib/ai/index.js.map +0 -1
- package/lib/ai/json-file.d.ts +0 -161
- package/lib/ai/json-file.d.ts.map +0 -1
- package/lib/ai/json-file.js +0 -188
- package/lib/ai/json-file.js.map +0 -1
- package/lib/ai/typescript-file.d.ts +0 -140
- package/lib/ai/typescript-file.d.ts.map +0 -1
- package/lib/ai/typescript-file.js +0 -146
- package/lib/ai/typescript-file.js.map +0 -1
- package/lib/ai/vue-file.d.ts +0 -127
- package/lib/ai/vue-file.d.ts.map +0 -1
- package/lib/ai/vue-file.js +0 -137
- package/lib/ai/vue-file.js.map +0 -1
- package/lib/ai/yaml-file.d.ts +0 -170
- package/lib/ai/yaml-file.d.ts.map +0 -1
- package/lib/ai/yaml-file.js +0 -201
- package/lib/ai/yaml-file.js.map +0 -1
- package/lib/fs/static-astro-file.d.ts +0 -35
- package/lib/fs/static-astro-file.d.ts.map +0 -1
- package/lib/fs/static-astro-file.js +0 -40
- package/lib/fs/static-astro-file.js.map +0 -1
- package/lib/fs/static-css-file.d.ts +0 -25
- package/lib/fs/static-css-file.d.ts.map +0 -1
- package/lib/fs/static-css-file.js +0 -30
- package/lib/fs/static-css-file.js.map +0 -1
- package/lib/fs/static-html-file.d.ts +0 -32
- package/lib/fs/static-html-file.d.ts.map +0 -1
- package/lib/fs/static-html-file.js +0 -37
- package/lib/fs/static-html-file.js.map +0 -1
- package/lib/fs/static-json-file.d.ts +0 -18
- package/lib/fs/static-json-file.d.ts.map +0 -1
- package/lib/fs/static-json-file.js +0 -19
- package/lib/fs/static-json-file.js.map +0 -1
- package/lib/fs/static-text-file.d.ts +0 -13
- package/lib/fs/static-text-file.d.ts.map +0 -1
- package/lib/fs/static-text-file.js +0 -9
- package/lib/fs/static-text-file.js.map +0 -1
- package/lib/fs/static-typescript-file.d.ts +0 -20
- package/lib/fs/static-typescript-file.d.ts.map +0 -1
- package/lib/fs/static-typescript-file.js +0 -16
- package/lib/fs/static-typescript-file.js.map +0 -1
- package/lib/fs/static-vue-file.d.ts +0 -29
- package/lib/fs/static-vue-file.d.ts.map +0 -1
- package/lib/fs/static-vue-file.js +0 -34
- package/lib/fs/static-vue-file.js.map +0 -1
- package/lib/fs/static-yaml-file.d.ts +0 -23
- package/lib/fs/static-yaml-file.d.ts.map +0 -1
- package/lib/fs/static-yaml-file.js +0 -10
- package/lib/fs/static-yaml-file.js.map +0 -1
- package/lib/internal/docs/providers.d.ts +0 -34
- package/lib/internal/docs/providers.d.ts.map +0 -1
- package/lib/internal/docs/providers.js +0 -200
- package/lib/internal/docs/providers.js.map +0 -1
- package/lib/runtime/bind.d.ts +0 -25
- package/lib/runtime/bind.d.ts.map +0 -1
- package/lib/runtime/bind.js +0 -76
- package/lib/runtime/bind.js.map +0 -1
- package/lib/runtime/global.d.ts +0 -8
- package/lib/runtime/global.d.ts.map +0 -1
- package/lib/runtime/global.js +0 -3
- package/lib/runtime/global.js.map +0 -1
- package/lib/runtime/plugin.d.ts +0 -35
- package/lib/runtime/plugin.d.ts.map +0 -1
- package/lib/runtime/plugin.js +0 -134
- package/lib/runtime/plugin.js.map +0 -1
- package/lib/runtime/shims.d.ts +0 -6
- package/lib/runtime/shims.d.ts.map +0 -1
- package/lib/runtime/shims.js +0 -27
- package/lib/runtime/shims.js.map +0 -1
- package/lib/runtime/state.d.ts +0 -5
- package/lib/runtime/state.d.ts.map +0 -1
- package/lib/runtime/state.js +0 -4
- package/lib/runtime/state.js.map +0 -1
- package/lib/web/astro.d.ts +0 -148
- package/lib/web/astro.d.ts.map +0 -1
- package/lib/web/astro.js +0 -419
- package/lib/web/astro.js.map +0 -1
- package/lib/web/shadcn-component.d.ts +0 -30
- package/lib/web/shadcn-component.d.ts.map +0 -1
- package/lib/web/shadcn-component.js +0 -25
- package/lib/web/shadcn-component.js.map +0 -1
- package/lib/web/shadcn.d.ts +0 -98
- package/lib/web/shadcn.d.ts.map +0 -1
- package/lib/web/shadcn.js +0 -102
- package/lib/web/shadcn.js.map +0 -1
- package/lib/web/tailwind.d.ts +0 -65
- package/lib/web/tailwind.d.ts.map +0 -1
- package/lib/web/tailwind.js +0 -98
- package/lib/web/tailwind.js.map +0 -1
- package/lib/web/vite.d.ts +0 -96
- package/lib/web/vite.d.ts.map +0 -1
- package/lib/web/vite.js +0 -232
- package/lib/web/vite.js.map +0 -1
- package/lib/web/vitepress/config.d.ts +0 -12
- package/lib/web/vitepress/config.d.ts.map +0 -1
- package/lib/web/vitepress/config.js +0 -33
- package/lib/web/vitepress/config.js.map +0 -1
- package/lib/web/vitepress/custom-theme.d.ts +0 -174
- package/lib/web/vitepress/custom-theme.d.ts.map +0 -1
- package/lib/web/vitepress/custom-theme.js +0 -337
- package/lib/web/vitepress/custom-theme.js.map +0 -1
- package/lib/web/vitepress/dependencies.d.ts +0 -13
- package/lib/web/vitepress/dependencies.d.ts.map +0 -1
- package/lib/web/vitepress/dependencies.js +0 -37
- package/lib/web/vitepress/dependencies.js.map +0 -1
- package/lib/web/vitepress/home-page.d.ts +0 -247
- package/lib/web/vitepress/home-page.d.ts.map +0 -1
- package/lib/web/vitepress/home-page.js +0 -146
- package/lib/web/vitepress/home-page.js.map +0 -1
- package/lib/web/vitepress/index.d.ts +0 -6
- package/lib/web/vitepress/index.d.ts.map +0 -1
- package/lib/web/vitepress/index.js +0 -6
- package/lib/web/vitepress/index.js.map +0 -1
- package/lib/web/vitepress/process-front-matter-files.d.ts +0 -19
- package/lib/web/vitepress/process-front-matter-files.d.ts.map +0 -1
- package/lib/web/vitepress/process-front-matter-files.js +0 -73
- package/lib/web/vitepress/process-front-matter-files.js.map +0 -1
- package/lib/web/vitepress/vitepress.d.ts +0 -75
- package/lib/web/vitepress/vitepress.d.ts.map +0 -1
- package/lib/web/vitepress/vitepress.js +0 -254
- package/lib/web/vitepress/vitepress.js.map +0 -1
- package/src/ai/ark.ts +0 -118
- package/src/ai/astro-file.ts +0 -270
- package/src/ai/client.ts +0 -117
- package/src/ai/css-file.ts +0 -247
- package/src/ai/data.ts +0 -221
- package/src/ai/document.ts +0 -367
- package/src/ai/html-file.ts +0 -244
- package/src/ai/index.ts +0 -10
- package/src/ai/json-file.ts +0 -325
- package/src/ai/typescript-file.ts +0 -259
- package/src/ai/vue-file.ts +0 -242
- package/src/ai/yaml-file.ts +0 -328
- package/src/fs/static-astro-file.ts +0 -45
- package/src/fs/static-css-file.ts +0 -35
- package/src/fs/static-html-file.ts +0 -42
- package/src/fs/static-json-file.ts +0 -38
- package/src/fs/static-text-file.ts +0 -23
- package/src/fs/static-typescript-file.ts +0 -37
- package/src/fs/static-vue-file.ts +0 -39
- package/src/fs/static-yaml-file.ts +0 -33
- package/src/internal/docs/providers.ts +0 -286
- package/src/runtime/bind.ts +0 -95
- package/src/runtime/global.ts +0 -10
- package/src/runtime/plugin.ts +0 -163
- package/src/runtime/shims.js +0 -34
- package/src/runtime/state.ts +0 -9
- package/src/web/astro.ts +0 -643
- package/src/web/shadcn-component.ts +0 -72
- package/src/web/shadcn.ts +0 -221
- package/src/web/tailwind.ts +0 -167
- package/src/web/vite.ts +0 -407
- package/src/web/vitepress/config.ts +0 -50
- package/src/web/vitepress/custom-theme.ts +0 -514
- package/src/web/vitepress/dependencies.ts +0 -69
- package/src/web/vitepress/home-page.ts +0 -378
- package/src/web/vitepress/index.ts +0 -5
- package/src/web/vitepress/process-front-matter-files.ts +0 -107
- package/src/web/vitepress/vitepress.ts +0 -372
- package/templates/sveltekit/bun.lock +0 -1099
package/src/cloudflare/tunnel.ts
CHANGED
|
@@ -49,7 +49,7 @@ export interface TunnelProps extends CloudflareApiOptions {
|
|
|
49
49
|
* Note: Tunnel names are immutable and cannot be changed after creation.
|
|
50
50
|
* When updating a tunnel, any name change will be ignored.
|
|
51
51
|
*
|
|
52
|
-
* @default id
|
|
52
|
+
* @default ${app}-${stage}-${id}
|
|
53
53
|
*/
|
|
54
54
|
name?: string;
|
|
55
55
|
|
|
@@ -274,6 +274,11 @@ export function isTunnel(resource: Resource): resource is Tunnel {
|
|
|
274
274
|
export interface Tunnel
|
|
275
275
|
extends Resource<"cloudflare::Tunnel">,
|
|
276
276
|
Omit<TunnelProps, "delete" | "tunnelSecret"> {
|
|
277
|
+
/**
|
|
278
|
+
* The name of the tunnel
|
|
279
|
+
*/
|
|
280
|
+
name: string;
|
|
281
|
+
|
|
277
282
|
/**
|
|
278
283
|
* The ID of the tunnel
|
|
279
284
|
*/
|
|
@@ -488,7 +493,13 @@ export const Tunnel = Resource(
|
|
|
488
493
|
// Create Cloudflare API client with automatic account discovery
|
|
489
494
|
const api = await createCloudflareApi(props);
|
|
490
495
|
|
|
491
|
-
const name =
|
|
496
|
+
const name =
|
|
497
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
498
|
+
|
|
499
|
+
if (this.phase === "update" && this.output.name !== name) {
|
|
500
|
+
console.log("replacing tunnel", this.output.name, name);
|
|
501
|
+
this.replace(true);
|
|
502
|
+
}
|
|
492
503
|
|
|
493
504
|
if (this.phase === "delete") {
|
|
494
505
|
// For delete operations, check if the tunnel ID exists in the output
|
|
@@ -14,8 +14,10 @@ import {
|
|
|
14
14
|
export interface VectorizeIndexProps extends CloudflareApiOptions {
|
|
15
15
|
/**
|
|
16
16
|
* Name of the index
|
|
17
|
+
*
|
|
18
|
+
* @default ${app}-${stage}-${id}
|
|
17
19
|
*/
|
|
18
|
-
name
|
|
20
|
+
name?: string;
|
|
19
21
|
|
|
20
22
|
/**
|
|
21
23
|
* Optional description of the index
|
|
@@ -68,6 +70,11 @@ export interface VectorizeIndex
|
|
|
68
70
|
*/
|
|
69
71
|
id: string;
|
|
70
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Name of the Vectorize Index.
|
|
75
|
+
*/
|
|
76
|
+
name: string;
|
|
77
|
+
|
|
71
78
|
/**
|
|
72
79
|
* Time at which the index was created
|
|
73
80
|
*/
|
|
@@ -121,7 +128,8 @@ export const VectorizeIndex = Resource(
|
|
|
121
128
|
props: VectorizeIndexProps,
|
|
122
129
|
): Promise<VectorizeIndex> {
|
|
123
130
|
const api = await createCloudflareApi(props);
|
|
124
|
-
const indexName =
|
|
131
|
+
const indexName =
|
|
132
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
125
133
|
|
|
126
134
|
if (this.phase === "delete") {
|
|
127
135
|
logger.log("Deleting Vectorize index:", indexName);
|
|
@@ -145,7 +153,7 @@ export const VectorizeIndex = Resource(
|
|
|
145
153
|
} catch (error) {
|
|
146
154
|
// Check if this is a "index already exists" error and adopt is enabled
|
|
147
155
|
if (
|
|
148
|
-
props.adopt &&
|
|
156
|
+
(props.adopt ?? this.scope.adopt) &&
|
|
149
157
|
error instanceof CloudflareApiError &&
|
|
150
158
|
error.message.includes("vectorize.index.duplicate_name")
|
|
151
159
|
) {
|
|
@@ -158,6 +166,9 @@ export const VectorizeIndex = Resource(
|
|
|
158
166
|
}
|
|
159
167
|
}
|
|
160
168
|
} else {
|
|
169
|
+
if (this.output.name !== indexName) {
|
|
170
|
+
return this.replace();
|
|
171
|
+
}
|
|
161
172
|
if (props.delete !== this.props.delete) {
|
|
162
173
|
// Only allow changing the delete property
|
|
163
174
|
if (!this.quiet) {
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { cloudflare, type PluginConfig } from "@cloudflare/vite-plugin";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import type { PluginOption } from "vite";
|
|
3
4
|
import {
|
|
4
5
|
DEFAULT_PERSIST_PATH,
|
|
5
6
|
validateConfigPath,
|
|
6
7
|
validatePersistPath,
|
|
7
8
|
} from "../miniflare/paths.ts";
|
|
8
9
|
|
|
9
|
-
const alchemy = (config?: PluginConfig) => {
|
|
10
|
+
const alchemy = (config?: PluginConfig): PluginOption => {
|
|
10
11
|
const persistState = config?.persistState ?? {
|
|
11
12
|
path: validatePersistPath(
|
|
12
13
|
typeof config?.persistState === "object"
|
|
@@ -24,7 +25,7 @@ const alchemy = (config?: PluginConfig) => {
|
|
|
24
25
|
experimental: config?.experimental ?? {
|
|
25
26
|
remoteBindings: true,
|
|
26
27
|
},
|
|
27
|
-
});
|
|
28
|
+
}) as PluginOption;
|
|
28
29
|
};
|
|
29
30
|
|
|
30
31
|
export default alchemy;
|
|
@@ -4,8 +4,7 @@ import type { Bindings } from "../bindings.ts";
|
|
|
4
4
|
import { Website, type WebsiteProps } from "../website.ts";
|
|
5
5
|
import type { Worker } from "../worker.ts";
|
|
6
6
|
|
|
7
|
-
export interface ViteProps<B extends Bindings>
|
|
8
|
-
extends Omit<WebsiteProps<B>, "spa"> {}
|
|
7
|
+
export interface ViteProps<B extends Bindings> extends WebsiteProps<B> {}
|
|
9
8
|
|
|
10
9
|
export type Vite<B extends Bindings> = B extends { ASSETS: any }
|
|
11
10
|
? never
|
|
@@ -17,8 +16,8 @@ export async function Vite<B extends Bindings>(
|
|
|
17
16
|
): Promise<Vite<B>> {
|
|
18
17
|
const runner = await getPackageManagerRunner();
|
|
19
18
|
return await Website(id, {
|
|
20
|
-
...props,
|
|
21
19
|
spa: true,
|
|
20
|
+
...props,
|
|
22
21
|
assets:
|
|
23
22
|
typeof props.assets === "string"
|
|
24
23
|
? { directory: props.assets }
|
package/src/cloudflare/worker.ts
CHANGED
|
@@ -134,7 +134,7 @@ export interface BaseWorkerProps<
|
|
|
134
134
|
/**
|
|
135
135
|
* Name for the worker
|
|
136
136
|
*
|
|
137
|
-
* @default id
|
|
137
|
+
* @default ${app}-${stage}-${id}
|
|
138
138
|
*/
|
|
139
139
|
name?: string;
|
|
140
140
|
|
|
@@ -709,12 +709,14 @@ const _Worker = Resource(
|
|
|
709
709
|
id: string,
|
|
710
710
|
props: WorkerProps<B>,
|
|
711
711
|
) {
|
|
712
|
+
const adopt = props.adopt ?? this.scope.adopt;
|
|
712
713
|
const options = (() => {
|
|
713
714
|
if (props.projectRoot) {
|
|
714
715
|
logger.warn("projectRoot is deprecated, use cwd instead");
|
|
715
716
|
props.cwd = props.projectRoot;
|
|
716
717
|
}
|
|
717
|
-
const name =
|
|
718
|
+
const name =
|
|
719
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
718
720
|
const cwd = path.resolve(props.cwd ?? process.cwd());
|
|
719
721
|
const compatibilityDate =
|
|
720
722
|
props.compatibilityDate ?? DEFAULT_COMPATIBILITY_DATE;
|
|
@@ -826,12 +828,18 @@ const _Worker = Resource(
|
|
|
826
828
|
});
|
|
827
829
|
this.onCleanup(() => controller.dispose());
|
|
828
830
|
}
|
|
829
|
-
await provisionResources(
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
831
|
+
await provisionResources(
|
|
832
|
+
{
|
|
833
|
+
...props,
|
|
834
|
+
adopt,
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
name: options.name,
|
|
838
|
+
local: true,
|
|
839
|
+
dispatchNamespace: options.dispatchNamespace,
|
|
840
|
+
containers: options.containers,
|
|
841
|
+
},
|
|
842
|
+
);
|
|
835
843
|
return this({
|
|
836
844
|
...props,
|
|
837
845
|
type: "service",
|
|
@@ -878,13 +886,9 @@ const _Worker = Resource(
|
|
|
878
886
|
});
|
|
879
887
|
}
|
|
880
888
|
// We always "adopt" when publishing versions
|
|
881
|
-
} else if (!
|
|
889
|
+
} else if (!adopt) {
|
|
882
890
|
await assertWorkerDoesNotExist(api, options.name);
|
|
883
|
-
} else if (
|
|
884
|
-
props.adopt &&
|
|
885
|
-
!options.dispatchNamespace &&
|
|
886
|
-
props.url === false
|
|
887
|
-
) {
|
|
891
|
+
} else if (adopt && !options.dispatchNamespace && props.url === false) {
|
|
888
892
|
// explicitly disable the workers.dev subdomain
|
|
889
893
|
await disableWorkerSubdomain(api, options.name);
|
|
890
894
|
}
|
|
@@ -964,14 +968,20 @@ const _Worker = Resource(
|
|
|
964
968
|
),
|
|
965
969
|
);
|
|
966
970
|
|
|
967
|
-
const { domains, routes, subdomain } = await provisionResources(
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
971
|
+
const { domains, routes, subdomain } = await provisionResources(
|
|
972
|
+
{
|
|
973
|
+
...props,
|
|
974
|
+
adopt,
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
name: options.name,
|
|
978
|
+
local: false,
|
|
979
|
+
dispatchNamespace: options.dispatchNamespace,
|
|
980
|
+
containers: options.containers,
|
|
981
|
+
result,
|
|
982
|
+
api,
|
|
983
|
+
},
|
|
984
|
+
);
|
|
975
985
|
|
|
976
986
|
const now = new Date();
|
|
977
987
|
return this({
|
|
@@ -1044,7 +1054,9 @@ const assertUnique = <T, Key extends keyof T>(
|
|
|
1044
1054
|
};
|
|
1045
1055
|
|
|
1046
1056
|
async function provisionResources<B extends Bindings>(
|
|
1047
|
-
props: WorkerProps<B
|
|
1057
|
+
props: WorkerProps<B> & {
|
|
1058
|
+
adopt: boolean;
|
|
1059
|
+
},
|
|
1048
1060
|
options:
|
|
1049
1061
|
| {
|
|
1050
1062
|
name: string;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import fs from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import type { Context } from "../context.ts";
|
|
4
|
-
import { formatJson } from "../fs/static-json-file.ts";
|
|
5
4
|
import { Resource } from "../resource.ts";
|
|
6
5
|
import { isSecret } from "../secret.ts";
|
|
7
6
|
import { assertNever } from "../util/assert-never.ts";
|
|
@@ -29,7 +28,7 @@ export interface WranglerJsonProps {
|
|
|
29
28
|
* The worker to generate the wrangler.json file for
|
|
30
29
|
*/
|
|
31
30
|
worker:
|
|
32
|
-
| Worker
|
|
31
|
+
| Worker<any>
|
|
33
32
|
| (WorkerProps<any> & {
|
|
34
33
|
name: string;
|
|
35
34
|
});
|
|
@@ -218,9 +217,9 @@ export const WranglerJson = Resource(
|
|
|
218
217
|
),
|
|
219
218
|
},
|
|
220
219
|
};
|
|
221
|
-
await
|
|
220
|
+
await writeJSON(filePath, withSecretsUnwrapped);
|
|
222
221
|
} else {
|
|
223
|
-
await
|
|
222
|
+
await writeJSON(filePath, finalSpec);
|
|
224
223
|
}
|
|
225
224
|
|
|
226
225
|
// Return the resource
|
|
@@ -234,6 +233,10 @@ export const WranglerJson = Resource(
|
|
|
234
233
|
},
|
|
235
234
|
);
|
|
236
235
|
|
|
236
|
+
const writeJSON = async (filePath: string, content: any) => {
|
|
237
|
+
await fs.writeFile(filePath, `${JSON.stringify(content, null, 2)}\n`);
|
|
238
|
+
};
|
|
239
|
+
|
|
237
240
|
/**
|
|
238
241
|
* Wrangler.json configuration specification based on Cloudflare's schema
|
|
239
242
|
*/
|
package/src/docker/container.ts
CHANGED
|
@@ -71,6 +71,8 @@ export interface ContainerProps {
|
|
|
71
71
|
|
|
72
72
|
/**
|
|
73
73
|
* Container name
|
|
74
|
+
*
|
|
75
|
+
* @default ${app}-${stage}-${id}
|
|
74
76
|
*/
|
|
75
77
|
name?: string;
|
|
76
78
|
|
|
@@ -126,6 +128,11 @@ export interface Container
|
|
|
126
128
|
*/
|
|
127
129
|
id: string;
|
|
128
130
|
|
|
131
|
+
/**
|
|
132
|
+
* Container name
|
|
133
|
+
*/
|
|
134
|
+
name: string;
|
|
135
|
+
|
|
129
136
|
/**
|
|
130
137
|
* Container state
|
|
131
138
|
*/
|
|
@@ -184,7 +191,11 @@ export const Container = Resource(
|
|
|
184
191
|
|
|
185
192
|
// Use provided name or generate one based on resource ID
|
|
186
193
|
const containerName =
|
|
187
|
-
props.name
|
|
194
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
195
|
+
|
|
196
|
+
if (this.phase === "update" && this.output.name !== containerName) {
|
|
197
|
+
this.replace();
|
|
198
|
+
}
|
|
188
199
|
|
|
189
200
|
// Handle delete phase
|
|
190
201
|
if (this.phase === "delete") {
|
|
@@ -259,6 +270,7 @@ export const Container = Resource(
|
|
|
259
270
|
return this({
|
|
260
271
|
...props,
|
|
261
272
|
id: containerId,
|
|
273
|
+
name: containerName,
|
|
262
274
|
state: containerState,
|
|
263
275
|
createdAt: Date.now(),
|
|
264
276
|
});
|
package/src/docker/network.ts
CHANGED
|
@@ -8,8 +8,10 @@ import { DockerApi } from "./api.ts";
|
|
|
8
8
|
export interface NetworkProps {
|
|
9
9
|
/**
|
|
10
10
|
* Network name
|
|
11
|
+
*
|
|
12
|
+
* @default ${app}-${stage}-${id}
|
|
11
13
|
*/
|
|
12
|
-
name
|
|
14
|
+
name?: string;
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* Network driver to use
|
|
@@ -38,6 +40,11 @@ export interface Network extends Resource<"docker::Network">, NetworkProps {
|
|
|
38
40
|
*/
|
|
39
41
|
id: string;
|
|
40
42
|
|
|
43
|
+
/**
|
|
44
|
+
* Network name
|
|
45
|
+
*/
|
|
46
|
+
name: string;
|
|
47
|
+
|
|
41
48
|
/**
|
|
42
49
|
* Time when the network was created
|
|
43
50
|
*/
|
|
@@ -70,12 +77,19 @@ export const Network = Resource(
|
|
|
70
77
|
"docker::Network",
|
|
71
78
|
async function (
|
|
72
79
|
this: Context<Network>,
|
|
73
|
-
|
|
80
|
+
id: string,
|
|
74
81
|
props: NetworkProps,
|
|
75
82
|
): Promise<Network> {
|
|
76
83
|
// Initialize Docker API client
|
|
77
84
|
const api = new DockerApi();
|
|
78
85
|
|
|
86
|
+
const networkName =
|
|
87
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
88
|
+
|
|
89
|
+
if (this.phase === "update" && this.output.name !== networkName) {
|
|
90
|
+
this.replace();
|
|
91
|
+
}
|
|
92
|
+
|
|
79
93
|
// Handle delete phase
|
|
80
94
|
if (this.phase === "delete") {
|
|
81
95
|
if (this.output?.id) {
|
|
@@ -88,12 +102,13 @@ export const Network = Resource(
|
|
|
88
102
|
} else {
|
|
89
103
|
// Create the network
|
|
90
104
|
props.driver = props.driver || "bridge";
|
|
91
|
-
const networkId = await api.createNetwork(
|
|
105
|
+
const networkId = await api.createNetwork(networkName, props.driver);
|
|
92
106
|
|
|
93
107
|
// Return the resource using this() to construct output
|
|
94
108
|
return this({
|
|
95
109
|
...props,
|
|
96
110
|
id: networkId,
|
|
111
|
+
name: networkName,
|
|
97
112
|
createdAt: Date.now(),
|
|
98
113
|
});
|
|
99
114
|
}
|
package/src/docker/volume.ts
CHANGED
|
@@ -23,8 +23,10 @@ export interface VolumeLabel {
|
|
|
23
23
|
export interface VolumeProps {
|
|
24
24
|
/**
|
|
25
25
|
* Volume name
|
|
26
|
+
*
|
|
27
|
+
* @default ${app}-${stage}-${id}
|
|
26
28
|
*/
|
|
27
|
-
name
|
|
29
|
+
name?: string;
|
|
28
30
|
|
|
29
31
|
/**
|
|
30
32
|
* Volume driver to use
|
|
@@ -52,6 +54,11 @@ export interface Volume extends Resource<"docker::Volume">, VolumeProps {
|
|
|
52
54
|
*/
|
|
53
55
|
id: string;
|
|
54
56
|
|
|
57
|
+
/**
|
|
58
|
+
* Volume name
|
|
59
|
+
*/
|
|
60
|
+
name: string;
|
|
61
|
+
|
|
55
62
|
/**
|
|
56
63
|
* Volume mountpoint path on the host
|
|
57
64
|
*/
|
|
@@ -94,12 +101,15 @@ export const Volume = Resource(
|
|
|
94
101
|
"docker::Volume",
|
|
95
102
|
async function (
|
|
96
103
|
this: Context<Volume>,
|
|
97
|
-
|
|
104
|
+
id: string,
|
|
98
105
|
props: VolumeProps,
|
|
99
106
|
): Promise<Volume> {
|
|
100
107
|
// Initialize Docker API client
|
|
101
108
|
const api = new DockerApi();
|
|
102
109
|
|
|
110
|
+
const volumeName =
|
|
111
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
112
|
+
|
|
103
113
|
// Process labels to ensure consistent format
|
|
104
114
|
const processedLabels: Record<string, string> = {};
|
|
105
115
|
if (props.labels) {
|
|
@@ -129,21 +139,22 @@ export const Volume = Resource(
|
|
|
129
139
|
const driverOpts = props.driverOpts || {};
|
|
130
140
|
|
|
131
141
|
// Create the volume
|
|
132
|
-
const
|
|
133
|
-
|
|
142
|
+
const volumeId = await api.createVolume(
|
|
143
|
+
volumeName,
|
|
134
144
|
props.driver,
|
|
135
145
|
driverOpts,
|
|
136
146
|
processedLabels,
|
|
137
147
|
);
|
|
138
148
|
|
|
139
149
|
// Get volume details to retrieve mountpoint
|
|
140
|
-
const volumeInfos = await api.inspectVolume(
|
|
150
|
+
const volumeInfos = await api.inspectVolume(volumeId);
|
|
141
151
|
const mountpoint = volumeInfos[0].Mountpoint;
|
|
142
152
|
|
|
143
153
|
// Return the resource using this() to construct output
|
|
144
154
|
return this({
|
|
145
155
|
...props,
|
|
146
|
-
id:
|
|
156
|
+
id: volumeId,
|
|
157
|
+
name: volumeName,
|
|
147
158
|
mountpoint,
|
|
148
159
|
createdAt: Date.now(),
|
|
149
160
|
labels: Array.isArray(props.labels) ? props.labels : undefined,
|
package/src/fs/index.ts
CHANGED
|
@@ -3,11 +3,3 @@ export * from "./file-collection.ts";
|
|
|
3
3
|
export * from "./file-ref.ts";
|
|
4
4
|
export * from "./file.ts";
|
|
5
5
|
export * from "./folder.ts";
|
|
6
|
-
export * from "./static-astro-file.ts";
|
|
7
|
-
export * from "./static-css-file.ts";
|
|
8
|
-
export * from "./static-html-file.ts";
|
|
9
|
-
export * from "./static-json-file.ts";
|
|
10
|
-
export * from "./static-text-file.ts";
|
|
11
|
-
export * from "./static-typescript-file.ts";
|
|
12
|
-
export * from "./static-vue-file.ts";
|
|
13
|
-
export * from "./static-yaml-file.ts";
|
package/src/github/client.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Octokit } from "@octokit/rest";
|
|
1
|
+
import type { Octokit } from "@octokit/rest";
|
|
2
2
|
import { exec } from "node:child_process";
|
|
3
3
|
import { promisify } from "node:util";
|
|
4
4
|
import { logger } from "../util/logger.ts";
|
|
5
|
+
import { importPeer } from "../util/peer.ts";
|
|
5
6
|
|
|
6
7
|
// Convert exec to promise-based
|
|
7
8
|
const execAsync = promisify(exec);
|
|
@@ -52,7 +53,10 @@ export async function createGitHubClient(
|
|
|
52
53
|
options: { token?: string } = {},
|
|
53
54
|
): Promise<Octokit> {
|
|
54
55
|
const token = await getGitHubToken(options.token);
|
|
55
|
-
|
|
56
|
+
const { Octokit } = await importPeer(
|
|
57
|
+
import("@octokit/rest"),
|
|
58
|
+
"GitHub resources",
|
|
59
|
+
);
|
|
56
60
|
return new Octokit({
|
|
57
61
|
auth: token,
|
|
58
62
|
});
|
|
@@ -19,8 +19,10 @@ export interface RepositoryEnvironmentProps {
|
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Environment name
|
|
22
|
+
*
|
|
23
|
+
* @default ${app}-${stage}-${id}
|
|
22
24
|
*/
|
|
23
|
-
name
|
|
25
|
+
name?: string;
|
|
24
26
|
|
|
25
27
|
/**
|
|
26
28
|
* Wait timer before allowing deployments to proceed (in minutes)
|
|
@@ -104,6 +106,11 @@ export interface RepositoryEnvironment
|
|
|
104
106
|
*/
|
|
105
107
|
id: string;
|
|
106
108
|
|
|
109
|
+
/**
|
|
110
|
+
* Environment name
|
|
111
|
+
*/
|
|
112
|
+
name: string;
|
|
113
|
+
|
|
107
114
|
/**
|
|
108
115
|
* The numeric ID of the environment in GitHub
|
|
109
116
|
*/
|
|
@@ -174,7 +181,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
174
181
|
"github::RepositoryEnvironment",
|
|
175
182
|
async function (
|
|
176
183
|
this: Context<RepositoryEnvironment>,
|
|
177
|
-
|
|
184
|
+
id: string,
|
|
178
185
|
props: RepositoryEnvironmentProps,
|
|
179
186
|
): Promise<RepositoryEnvironment> {
|
|
180
187
|
// Create authenticated Octokit client
|
|
@@ -187,6 +194,13 @@ export const RepositoryEnvironment = Resource(
|
|
|
187
194
|
await verifyGitHubAuth(octokit, props.owner, props.repository);
|
|
188
195
|
}
|
|
189
196
|
|
|
197
|
+
const environmentName =
|
|
198
|
+
props.name ?? this.output?.name ?? this.scope.createPhysicalName(id);
|
|
199
|
+
|
|
200
|
+
if (this.phase === "update" && this.output.name !== environmentName) {
|
|
201
|
+
this.replace();
|
|
202
|
+
}
|
|
203
|
+
|
|
190
204
|
if (this.phase === "delete") {
|
|
191
205
|
if (this.output?.id) {
|
|
192
206
|
try {
|
|
@@ -194,7 +208,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
194
208
|
await octokit.rest.repos.deleteAnEnvironment({
|
|
195
209
|
owner: props.owner,
|
|
196
210
|
repo: props.repository,
|
|
197
|
-
environment_name:
|
|
211
|
+
environment_name: environmentName,
|
|
198
212
|
});
|
|
199
213
|
} catch (error: any) {
|
|
200
214
|
// Ignore 404 errors (environment already deleted)
|
|
@@ -220,7 +234,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
220
234
|
});
|
|
221
235
|
|
|
222
236
|
const existingEnv = environments.environments?.find(
|
|
223
|
-
(env) => env.name.toLowerCase() ===
|
|
237
|
+
(env) => env.name.toLowerCase() === environmentName.toLowerCase(),
|
|
224
238
|
);
|
|
225
239
|
|
|
226
240
|
if (existingEnv?.id) {
|
|
@@ -303,7 +317,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
303
317
|
await octokit.rest.repos.createOrUpdateEnvironment({
|
|
304
318
|
owner: props.owner,
|
|
305
319
|
repo: props.repository,
|
|
306
|
-
environment_name:
|
|
320
|
+
environment_name: environmentName,
|
|
307
321
|
wait_timer: props.waitTimer,
|
|
308
322
|
prevent_self_review: props.preventSelfReview,
|
|
309
323
|
reviewers: reviewers.length > 0 ? reviewers : undefined,
|
|
@@ -330,7 +344,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
330
344
|
await octokit.rest.repos.createDeploymentBranchPolicy({
|
|
331
345
|
owner: props.owner,
|
|
332
346
|
repo: props.repository,
|
|
333
|
-
environment_name:
|
|
347
|
+
environment_name: environmentName,
|
|
334
348
|
name: pattern,
|
|
335
349
|
});
|
|
336
350
|
}
|
|
@@ -340,7 +354,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
340
354
|
await octokit.rest.repos.createOrUpdateEnvironment({
|
|
341
355
|
owner: props.owner,
|
|
342
356
|
repo: props.repository,
|
|
343
|
-
environment_name:
|
|
357
|
+
environment_name: environmentName,
|
|
344
358
|
wait_timer: props.waitTimer,
|
|
345
359
|
prevent_self_review: props.preventSelfReview,
|
|
346
360
|
reviewers: reviewers.length > 0 ? reviewers : undefined,
|
|
@@ -361,7 +375,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
361
375
|
await octokit.rest.repos.listDeploymentBranchPolicies({
|
|
362
376
|
owner: props.owner,
|
|
363
377
|
repo: props.repository,
|
|
364
|
-
environment_name:
|
|
378
|
+
environment_name: environmentName,
|
|
365
379
|
});
|
|
366
380
|
|
|
367
381
|
const existingPatterns = existingPolicies.branch_policies.map(
|
|
@@ -402,7 +416,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
402
416
|
await octokit.rest.repos.deleteDeploymentBranchPolicy({
|
|
403
417
|
owner: props.owner,
|
|
404
418
|
repo: props.repository,
|
|
405
|
-
environment_name:
|
|
419
|
+
environment_name: environmentName,
|
|
406
420
|
branch_policy_id: policy.id,
|
|
407
421
|
});
|
|
408
422
|
}
|
|
@@ -413,7 +427,7 @@ export const RepositoryEnvironment = Resource(
|
|
|
413
427
|
await octokit.rest.repos.createDeploymentBranchPolicy({
|
|
414
428
|
owner: props.owner,
|
|
415
429
|
repo: props.repository,
|
|
416
|
-
environment_name:
|
|
430
|
+
environment_name: environmentName,
|
|
417
431
|
name: pattern,
|
|
418
432
|
});
|
|
419
433
|
}
|
|
@@ -424,16 +438,16 @@ export const RepositoryEnvironment = Resource(
|
|
|
424
438
|
const { data: env } = await octokit.rest.repos.getEnvironment({
|
|
425
439
|
owner: props.owner,
|
|
426
440
|
repo: props.repository,
|
|
427
|
-
environment_name:
|
|
441
|
+
environment_name: environmentName,
|
|
428
442
|
});
|
|
429
443
|
|
|
430
444
|
// Return environment details
|
|
431
445
|
return this({
|
|
432
|
-
id: `${props.owner}/${props.repository}/${
|
|
446
|
+
id: `${props.owner}/${props.repository}/${environmentName}`,
|
|
433
447
|
environmentId: environmentId || env.id,
|
|
434
448
|
owner: props.owner,
|
|
435
449
|
repository: props.repository,
|
|
436
|
-
name:
|
|
450
|
+
name: environmentName,
|
|
437
451
|
waitTimer: props.waitTimer,
|
|
438
452
|
preventSelfReview: props.preventSelfReview,
|
|
439
453
|
adminBypass: props.adminBypass,
|