alchemy 0.62.3 → 0.63.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/bin/alchemy.js +1517 -1203
- package/bin/commands/deploy.ts +2 -0
- package/bin/commands/dev.ts +2 -0
- package/bin/commands/init.ts +1 -1
- package/bin/services/execute-alchemy.ts +11 -0
- package/bin/services/github-workflow.ts +2 -2
- 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/cloudflare-env-proxy.js +1 -1
- package/lib/cloudflare/cloudflare-env-proxy.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 +6 -2
- 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/durable-object-namespace.d.ts.map +1 -1
- package/lib/cloudflare/durable-object-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 +3 -2
- 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 +4 -2
- 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/website.js +1 -1
- package/lib/cloudflare/website.js.map +1 -1
- package/lib/cloudflare/worker-metadata.js +1 -1
- package/lib/cloudflare/worker-metadata.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 +14 -11
- 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 +6 -5
- package/lib/upstash/redis.js.map +1 -1
- package/lib/util/idempotent-spawn.d.ts.map +1 -1
- package/lib/util/idempotent-spawn.js +21 -2
- package/lib/util/idempotent-spawn.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/xml.js +1 -1
- package/lib/util/xml.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/cloudflare-env-proxy.ts +1 -1
- 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 +10 -3
- package/src/cloudflare/dispatch-namespace.ts +10 -7
- package/src/cloudflare/durable-object-namespace.ts +0 -1
- package/src/cloudflare/hyperdrive.ts +14 -4
- 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 +26 -14
- 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/website.ts +1 -1
- package/src/cloudflare/worker-metadata.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 +24 -11
- 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 +16 -6
- package/src/util/idempotent-spawn.ts +23 -2
- package/src/util/ignore-matcher.ts +3 -1
- package/src/util/peer.ts +53 -0
- package/src/util/xml.ts +1 -1
- package/src/vercel/project.ts +46 -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/react-router/vite.config.ts +5 -3
- 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/web/shadcn.ts
DELETED
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { promisify } from "node:util";
|
|
4
|
-
import type { Context } from "../context.ts";
|
|
5
|
-
import { Folder } from "../fs/folder.ts";
|
|
6
|
-
import { StaticJsonFile } from "../fs/static-json-file.ts";
|
|
7
|
-
import { StaticTypeScriptFile } from "../fs/static-typescript-file.ts";
|
|
8
|
-
import { Resource } from "../resource.ts";
|
|
9
|
-
import { logger } from "../util/logger.ts";
|
|
10
|
-
import { ShadcnComponent } from "./shadcn-component.ts";
|
|
11
|
-
|
|
12
|
-
const execAsync = promisify(exec);
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Properties for initializing Shadcn UI
|
|
16
|
-
*/
|
|
17
|
-
export interface ShadcnUIProps {
|
|
18
|
-
/**
|
|
19
|
-
* The working directory where Shadcn UI should be installed
|
|
20
|
-
*/
|
|
21
|
-
cwd: string;
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* The base color to use
|
|
25
|
-
* @default "neutral"
|
|
26
|
-
*/
|
|
27
|
-
baseColor?: "neutral" | "gray" | "zinc" | "stone" | "slate";
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Use default configuration
|
|
31
|
-
* @default false
|
|
32
|
-
*/
|
|
33
|
-
defaults?: boolean;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Force overwrite of existing configuration
|
|
37
|
-
* @default false
|
|
38
|
-
*/
|
|
39
|
-
force?: boolean;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Mute output
|
|
43
|
-
* @default false
|
|
44
|
-
*/
|
|
45
|
-
silent?: boolean;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Use the src directory when creating a new project
|
|
49
|
-
* @default true
|
|
50
|
-
*/
|
|
51
|
-
srcDir?: boolean;
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Use css variables for theming
|
|
55
|
-
* @default true
|
|
56
|
-
*/
|
|
57
|
-
cssVariables?: boolean;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* The components to add
|
|
61
|
-
*/
|
|
62
|
-
components?: string[];
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Whether tailwind is already installed and configured.
|
|
66
|
-
* Shadcn UI requires Tailwind CSS to be installed and configured.
|
|
67
|
-
* @default false
|
|
68
|
-
*/
|
|
69
|
-
tailwind?: boolean;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Whether react is already installed
|
|
73
|
-
* @default false
|
|
74
|
-
*/
|
|
75
|
-
react?: boolean;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Shadcn UI resource
|
|
80
|
-
*/
|
|
81
|
-
export interface ShadcnUI extends ShadcnUIProps, Resource<"project::ShadcnUI"> {
|
|
82
|
-
/**
|
|
83
|
-
* The working directory where Shadcn UI is installed
|
|
84
|
-
*/
|
|
85
|
-
cwd: string;
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* The ui directory
|
|
89
|
-
*/
|
|
90
|
-
ui: Folder;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* The lib directory
|
|
94
|
-
*/
|
|
95
|
-
lib: Folder;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Initializes Shadcn UI in a project directory
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* // Initialize Shadcn UI with default settings
|
|
103
|
-
* const shadcn = await ShadcnUI("my-shadcn", {
|
|
104
|
-
* cwd: "my-project",
|
|
105
|
-
* tailwind: true, // Tailwind must be installed separately
|
|
106
|
-
* react: true // React must be installed separately
|
|
107
|
-
* });
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* // Initialize Shadcn UI with custom settings and components
|
|
111
|
-
* const shadcn = await ShadcnUI("custom-shadcn", {
|
|
112
|
-
* cwd: "my-project",
|
|
113
|
-
* baseColor: "zinc",
|
|
114
|
-
* force: true,
|
|
115
|
-
* components: ["button", "card", "input"],
|
|
116
|
-
* tailwind: true, // Tailwind must be installed separately
|
|
117
|
-
* react: true // React must be installed separately
|
|
118
|
-
* });
|
|
119
|
-
*/
|
|
120
|
-
export const ShadcnUI = Resource(
|
|
121
|
-
"project::ShadcnUI",
|
|
122
|
-
async function (
|
|
123
|
-
this: Context<ShadcnUI>,
|
|
124
|
-
_id: string,
|
|
125
|
-
props: ShadcnUIProps,
|
|
126
|
-
): Promise<ShadcnUI> {
|
|
127
|
-
if (this.phase === "delete") {
|
|
128
|
-
// For a delete phase, we don't perform any action
|
|
129
|
-
// as removing Shadcn UI would require removing many files
|
|
130
|
-
// which could be destructive to the project
|
|
131
|
-
logger.log(
|
|
132
|
-
"Note: ShadcnUI delete phase does not remove installed components",
|
|
133
|
-
);
|
|
134
|
-
|
|
135
|
-
return this.destroy();
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// Setup execAsync with the correct cwd
|
|
139
|
-
const exec = (command: string) => execAsync(command, { cwd: props.cwd });
|
|
140
|
-
|
|
141
|
-
// Ensure React is installed if not already
|
|
142
|
-
if (!props.react) {
|
|
143
|
-
await exec("bun add react react-dom");
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// Install shadcn dependencies
|
|
147
|
-
await exec("bun add -D @types/node");
|
|
148
|
-
|
|
149
|
-
// Create components.json directly instead of running shadcn init
|
|
150
|
-
await StaticJsonFile(path.join(props.cwd, "components.json"), {
|
|
151
|
-
$schema: "https://ui.shadcn.com/schema.json",
|
|
152
|
-
style: props.cssVariables !== false ? "default" : "new-york",
|
|
153
|
-
tsx: true,
|
|
154
|
-
rsc: false,
|
|
155
|
-
tailwind: {
|
|
156
|
-
config: "tailwind.config.js",
|
|
157
|
-
css:
|
|
158
|
-
props.srcDir !== false
|
|
159
|
-
? "src/styles/globals.css"
|
|
160
|
-
: "styles/globals.css",
|
|
161
|
-
baseColor: props.baseColor || "neutral",
|
|
162
|
-
cssVariables: props.cssVariables !== false,
|
|
163
|
-
},
|
|
164
|
-
aliases: {
|
|
165
|
-
components: props.srcDir !== false ? "@/components" : "./components",
|
|
166
|
-
utils: props.srcDir !== false ? "@/lib/utils" : "./lib/utils",
|
|
167
|
-
},
|
|
168
|
-
});
|
|
169
|
-
|
|
170
|
-
// Ensure ui components directory exists
|
|
171
|
-
const ui = await Folder(
|
|
172
|
-
path.join(
|
|
173
|
-
props.cwd,
|
|
174
|
-
props.srcDir !== false ? "src" : "",
|
|
175
|
-
"components",
|
|
176
|
-
"ui",
|
|
177
|
-
),
|
|
178
|
-
);
|
|
179
|
-
|
|
180
|
-
// Create lib directory
|
|
181
|
-
const libPath = path.join(
|
|
182
|
-
props.cwd,
|
|
183
|
-
props.srcDir !== false ? "src" : "",
|
|
184
|
-
"lib",
|
|
185
|
-
);
|
|
186
|
-
const lib = await Folder(libPath);
|
|
187
|
-
|
|
188
|
-
// Create utils.ts file
|
|
189
|
-
const utilsContent = `
|
|
190
|
-
import { type ClassValue, clsx } from "clsx";
|
|
191
|
-
import { twMerge } from "tailwind-merge";
|
|
192
|
-
|
|
193
|
-
export function cn(...inputs: ClassValue[]) {
|
|
194
|
-
return twMerge(clsx(inputs));
|
|
195
|
-
}
|
|
196
|
-
`;
|
|
197
|
-
|
|
198
|
-
await StaticTypeScriptFile(path.join(libPath, "utils.ts"), utilsContent);
|
|
199
|
-
|
|
200
|
-
// Install clsx and tailwind-merge
|
|
201
|
-
await exec("bun add clsx tailwind-merge");
|
|
202
|
-
|
|
203
|
-
// Install requested components
|
|
204
|
-
if (props.components && props.components.length > 0) {
|
|
205
|
-
for (const componentName of props.components) {
|
|
206
|
-
await ShadcnComponent(`shadcn-component-${componentName}`, {
|
|
207
|
-
name: componentName,
|
|
208
|
-
cwd: props.cwd,
|
|
209
|
-
force: props.force,
|
|
210
|
-
silent: props.silent,
|
|
211
|
-
});
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
return this({
|
|
216
|
-
...props,
|
|
217
|
-
ui,
|
|
218
|
-
lib,
|
|
219
|
-
});
|
|
220
|
-
},
|
|
221
|
-
);
|
package/src/web/tailwind.ts
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
import { exec } from "node:child_process";
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { promisify } from "node:util";
|
|
4
|
-
import type { Context } from "../context.ts";
|
|
5
|
-
import { Folder } from "../fs/folder.ts";
|
|
6
|
-
import { StaticTextFile } from "../fs/static-text-file.ts";
|
|
7
|
-
import { Resource } from "../resource.ts";
|
|
8
|
-
|
|
9
|
-
const execAsync = promisify(exec);
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Framework types supported by the Tailwind resource
|
|
13
|
-
*/
|
|
14
|
-
export type TailwindFramework = "vite" | "astro" | "next" | "standalone";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Properties for Tailwind configuration
|
|
18
|
-
*/
|
|
19
|
-
export interface TailwindConfigProps {
|
|
20
|
-
/**
|
|
21
|
-
* The working directory where Tailwind should be installed
|
|
22
|
-
*/
|
|
23
|
-
cwd: string;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* The framework being used (determines which dependencies to install)
|
|
27
|
-
* @default "standalone"
|
|
28
|
-
*/
|
|
29
|
-
framework?: TailwindFramework;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* The path to the CSS file where Tailwind directives should be added
|
|
33
|
-
* If not provided, a new file will be created at src/styles/base.css
|
|
34
|
-
*/
|
|
35
|
-
cssPath?: string;
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Custom additional packages to install with Tailwind
|
|
39
|
-
*/
|
|
40
|
-
additionalPackages?: string[];
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Tailwind configuration resource
|
|
45
|
-
*/
|
|
46
|
-
export interface TailwindConfig
|
|
47
|
-
extends TailwindConfigProps,
|
|
48
|
-
Resource<"config::TailwindConfig"> {
|
|
49
|
-
/**
|
|
50
|
-
* The working directory where Tailwind is installed
|
|
51
|
-
*/
|
|
52
|
-
cwd: string;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Installs and configures Tailwind CSS for a project
|
|
57
|
-
*
|
|
58
|
-
* @example
|
|
59
|
-
* // Install Tailwind for a Vite project
|
|
60
|
-
* const tailwind = await TailwindConfig("vite-tailwind", {
|
|
61
|
-
* cwd: "my-vite-app",
|
|
62
|
-
* framework: "vite"
|
|
63
|
-
* });
|
|
64
|
-
*
|
|
65
|
-
* @example
|
|
66
|
-
* // Install Tailwind for an Astro project
|
|
67
|
-
* const tailwind = await TailwindConfig("astro-tailwind", {
|
|
68
|
-
* cwd: "my-astro-app",
|
|
69
|
-
* framework: "astro"
|
|
70
|
-
* });
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* // Install Tailwind as standalone with a custom CSS path
|
|
74
|
-
* const tailwind = await TailwindConfig("custom-tailwind", {
|
|
75
|
-
* cwd: "my-project",
|
|
76
|
-
* cssPath: "src/css/main.css",
|
|
77
|
-
* additionalPackages: ["@tailwindcss/typography", "@tailwindcss/forms"]
|
|
78
|
-
* });
|
|
79
|
-
*/
|
|
80
|
-
export const TailwindConfig = Resource(
|
|
81
|
-
"config::TailwindConfig",
|
|
82
|
-
async function (
|
|
83
|
-
this: Context<TailwindConfig>,
|
|
84
|
-
id: string,
|
|
85
|
-
props: TailwindConfigProps,
|
|
86
|
-
): Promise<TailwindConfig> {
|
|
87
|
-
if (this.phase === "delete") {
|
|
88
|
-
// Nothing to clean up specifically for Tailwind
|
|
89
|
-
return this.destroy();
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
const framework = props.framework || "standalone";
|
|
93
|
-
|
|
94
|
-
// Setup execAsync with the correct cwd
|
|
95
|
-
const exec = (command: string) => execAsync(command, { cwd: props.cwd });
|
|
96
|
-
|
|
97
|
-
// Install Tailwind and framework-specific dependencies
|
|
98
|
-
await installTailwindDependencies(framework);
|
|
99
|
-
|
|
100
|
-
// Create CSS file with Tailwind directives
|
|
101
|
-
await createTailwindCssFile();
|
|
102
|
-
|
|
103
|
-
return this({
|
|
104
|
-
...props,
|
|
105
|
-
framework: framework,
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Install Tailwind and framework-specific dependencies
|
|
110
|
-
*/
|
|
111
|
-
async function installTailwindDependencies(framework: TailwindFramework) {
|
|
112
|
-
const basePackages = ["tailwindcss", "postcss", "autoprefixer"];
|
|
113
|
-
|
|
114
|
-
// Add framework-specific packages
|
|
115
|
-
const frameworkPackages = getFrameworkPackages(framework);
|
|
116
|
-
|
|
117
|
-
// Add custom additional packages
|
|
118
|
-
const additionalPackages = props.additionalPackages || [];
|
|
119
|
-
|
|
120
|
-
// Combine all packages
|
|
121
|
-
const allPackages = [
|
|
122
|
-
...basePackages,
|
|
123
|
-
...frameworkPackages,
|
|
124
|
-
...additionalPackages,
|
|
125
|
-
];
|
|
126
|
-
|
|
127
|
-
// Install all packages
|
|
128
|
-
await exec(`bun add -D ${allPackages.join(" ")}`);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Get framework-specific packages for Tailwind
|
|
133
|
-
*/
|
|
134
|
-
function getFrameworkPackages(framework: TailwindFramework): string[] {
|
|
135
|
-
switch (framework) {
|
|
136
|
-
case "vite":
|
|
137
|
-
return ["@tailwindcss/vite"];
|
|
138
|
-
case "astro":
|
|
139
|
-
return ["@astrojs/tailwind"];
|
|
140
|
-
case "next":
|
|
141
|
-
return [];
|
|
142
|
-
default:
|
|
143
|
-
return [];
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Create or update CSS file with Tailwind directives
|
|
149
|
-
*/
|
|
150
|
-
async function createTailwindCssFile() {
|
|
151
|
-
const tailwindDirectives = `@import 'tailwindcss';`;
|
|
152
|
-
|
|
153
|
-
// Determine CSS file path
|
|
154
|
-
const cssPath =
|
|
155
|
-
props.cssPath || path.join(props.cwd, "src", "styles", "global.css");
|
|
156
|
-
|
|
157
|
-
// Create directory structure if needed
|
|
158
|
-
const cssDir = path.dirname(cssPath);
|
|
159
|
-
await Folder(path.join(id, "css-dir"), {
|
|
160
|
-
path: cssDir,
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
// Create CSS file with Tailwind directives
|
|
164
|
-
await StaticTextFile(cssPath, tailwindDirectives);
|
|
165
|
-
}
|
|
166
|
-
},
|
|
167
|
-
);
|