| 1 | import { PkgRegistry } from "@alchemy.run/pkg/Registry"; |
| 2 | import * as Alchemy from "alchemy"; |
| 3 | import * as Cloudflare from "alchemy/Cloudflare"; |
| 4 | import * as ByteSize from "effect/ByteSize"; |
| 5 | import * as Config from "effect/Config"; |
| 6 | import * as Duration from "effect/Duration"; |
| 7 | import * as Effect from "effect/Effect"; |
| 8 | |
| 9 | export default Alchemy.Stack( |
| 10 | "AlchemyPkg", |
| 11 | { |
| 12 | providers: Cloudflare.providers(), |
| 13 | state: Cloudflare.state(), |
| 14 | }, |
| 15 | Effect.gen(function* () { |
| 16 | const registry = yield* PkgRegistry("Registry", { |
| 17 | worker: { |
| 18 | domain: { |
| 19 | name: "pkg.alchemy.run", |
| 20 | aliases: [ |
| 21 | "pkg.distilled.cloud", |
| 22 | "📦.alchemy.run", |
| 23 | "📦.distilled.cloud", |
| 24 | ], |
| 25 | }, |
| 26 | }, |
| 27 | github: { |
| 28 | appId: Config.String("GH_APP_ID"), |
| 29 | privateKey: Config.Redacted("GH_APP_PRIVATE_KEY"), |
| 30 | }, |
| 31 | policy: { |
| 32 | repos: ["alchemy-run/alchemy", "alchemy-run/distilled"], |
| 33 | ttl: Duration.weeks(1), |
| 34 | maxPackageSize: ByteSize.megabytes(100), |
| 35 | }, |
| 36 | }); |
| 37 | |
| 38 | return { |
| 39 | url: registry.url.as<string>(), |
| 40 | }; |
| 41 | }), |
| 42 | ); |