1import * as Alchemy from "alchemy";
2import * as AWS from "alchemy/AWS";
3import * as Cloudflare from "alchemy/Cloudflare";
4import * as Fly from "alchemy/Fly";
5import * as Hetzner from "alchemy/Hetzner";
6import * as Railway from "alchemy/Railway";
7import * as Neon from "alchemy/Neon";
8import * as Planetscale from "alchemy/Planetscale";
9import * as Prisma from "alchemy/Prisma";
10import * as Stripe from "alchemy/Stripe";
11import * as Effect from "effect/Effect";
12import * as Layer from "effect/Layer";
13
14export default Alchemy.Stack(
15 "Nuke",
16 {
17 providers: Layer.mergeAll(
18 Cloudflare.providers(),
19 AWS.providers(),
20 Hetzner.providers(),
21 Fly.providers(),
22 Railway.providers(),
23 Neon.providers(),
24 Planetscale.providers(),
25 // Prisma credentials resolve at layer build like Neon/Planetscale:
26 // set PRISMA_SERVICE_TOKEN (with CI=1) or configure the profile.
27 Prisma.providers(),
28 Stripe.providers(),
29 ),
30 state: Cloudflare.state(),
31 },
32 Effect.gen(function* () {}),
33);