alchemy 2.0.0-beta.23 → 2.0.0-beta.25

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.
Files changed (138) hide show
  1. package/bin/alchemy.js +12574 -2451
  2. package/bin/alchemy.js.map +1 -1
  3. package/bin/alchemy.ts +2 -0
  4. package/bin/cli.js +18 -0
  5. package/bin/commands/bootstrap.ts +88 -4
  6. package/bin/commands/deploy.ts +54 -20
  7. package/bin/commands/dev.ts +45 -0
  8. package/bin/exec.ts +22 -0
  9. package/lib/AdoptPolicy.d.ts +2 -2
  10. package/lib/AdoptPolicy.d.ts.map +1 -1
  11. package/lib/AdoptPolicy.js.map +1 -1
  12. package/lib/AlchemyContext.d.ts +1 -0
  13. package/lib/AlchemyContext.d.ts.map +1 -1
  14. package/lib/AlchemyContext.js +1 -0
  15. package/lib/AlchemyContext.js.map +1 -1
  16. package/lib/Build/Command.d.ts.map +1 -1
  17. package/lib/Build/Command.js +8 -1
  18. package/lib/Build/Command.js.map +1 -1
  19. package/lib/Bundle/Bundle.d.ts +21 -9
  20. package/lib/Bundle/Bundle.d.ts.map +1 -1
  21. package/lib/Bundle/Bundle.js +29 -15
  22. package/lib/Bundle/Bundle.js.map +1 -1
  23. package/lib/Cloudflare/Local/Sidecar.d.ts +27 -0
  24. package/lib/Cloudflare/Local/Sidecar.d.ts.map +1 -0
  25. package/lib/Cloudflare/Local/Sidecar.js +24 -0
  26. package/lib/Cloudflare/Local/Sidecar.js.map +1 -0
  27. package/lib/Cloudflare/Local/SidecarHandlers.d.ts +5 -0
  28. package/lib/Cloudflare/Local/SidecarHandlers.d.ts.map +1 -0
  29. package/lib/Cloudflare/Local/SidecarHandlers.js +119 -0
  30. package/lib/Cloudflare/Local/SidecarHandlers.js.map +1 -0
  31. package/lib/Cloudflare/Local/SidecarServer.d.ts +2 -0
  32. package/lib/Cloudflare/Local/SidecarServer.d.ts.map +1 -0
  33. package/lib/Cloudflare/Local/SidecarServer.js +27 -0
  34. package/lib/Cloudflare/Local/SidecarServer.js.map +1 -0
  35. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  36. package/lib/Cloudflare/SecretsStore/Secret.js +55 -7
  37. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  38. package/lib/Cloudflare/SecretsStore/SecretsStore.d.ts.map +1 -1
  39. package/lib/Cloudflare/SecretsStore/SecretsStore.js +35 -11
  40. package/lib/Cloudflare/SecretsStore/SecretsStore.js.map +1 -1
  41. package/lib/Cloudflare/StateStore/State.d.ts +35 -0
  42. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  43. package/lib/Cloudflare/StateStore/State.js +187 -45
  44. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  45. package/lib/Cloudflare/StateStore/index.d.ts +1 -1
  46. package/lib/Cloudflare/StateStore/index.d.ts.map +1 -1
  47. package/lib/Cloudflare/StateStore/index.js +1 -1
  48. package/lib/Cloudflare/StateStore/index.js.map +1 -1
  49. package/lib/Cloudflare/Workers/Compatibility.d.ts +6 -0
  50. package/lib/Cloudflare/Workers/Compatibility.d.ts.map +1 -0
  51. package/lib/Cloudflare/Workers/Compatibility.js +10 -0
  52. package/lib/Cloudflare/Workers/Compatibility.js.map +1 -0
  53. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts +7 -0
  54. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -0
  55. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +81 -0
  56. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -0
  57. package/lib/Cloudflare/Workers/Worker.d.ts +3 -1
  58. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  59. package/lib/Cloudflare/Workers/Worker.js +89 -31
  60. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  61. package/lib/Cloudflare/Workers/WorkerBundle.d.ts +31 -0
  62. package/lib/Cloudflare/Workers/WorkerBundle.d.ts.map +1 -0
  63. package/lib/Cloudflare/Workers/WorkerBundle.js +174 -0
  64. package/lib/Cloudflare/Workers/WorkerBundle.js.map +1 -0
  65. package/lib/Cloudflare/Workers/WorkerName.d.ts +3 -0
  66. package/lib/Cloudflare/Workers/WorkerName.d.ts.map +1 -0
  67. package/lib/Cloudflare/Workers/WorkerName.js +9 -0
  68. package/lib/Cloudflare/Workers/WorkerName.js.map +1 -0
  69. package/lib/Cloudflare/Workers/index.d.ts +1 -0
  70. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  71. package/lib/Cloudflare/Workers/index.js +1 -0
  72. package/lib/Cloudflare/Workers/index.js.map +1 -1
  73. package/lib/Platform.d.ts +1 -1
  74. package/lib/Platform.d.ts.map +1 -1
  75. package/lib/Sidecar/Lock.d.ts +24 -0
  76. package/lib/Sidecar/Lock.d.ts.map +1 -0
  77. package/lib/Sidecar/Lock.js +102 -0
  78. package/lib/Sidecar/Lock.js.map +1 -0
  79. package/lib/Sidecar/RpcClient.d.ts +15 -0
  80. package/lib/Sidecar/RpcClient.d.ts.map +1 -0
  81. package/lib/Sidecar/RpcClient.js +75 -0
  82. package/lib/Sidecar/RpcClient.js.map +1 -0
  83. package/lib/Sidecar/RpcHandler.d.ts +48 -0
  84. package/lib/Sidecar/RpcHandler.d.ts.map +1 -0
  85. package/lib/Sidecar/RpcHandler.js +64 -0
  86. package/lib/Sidecar/RpcHandler.js.map +1 -0
  87. package/lib/Sidecar/RpcPaths.d.ts +14 -0
  88. package/lib/Sidecar/RpcPaths.d.ts.map +1 -0
  89. package/lib/Sidecar/RpcPaths.js +22 -0
  90. package/lib/Sidecar/RpcPaths.js.map +1 -0
  91. package/lib/Sidecar/RpcServer.d.ts +10 -0
  92. package/lib/Sidecar/RpcServer.d.ts.map +1 -0
  93. package/lib/Sidecar/RpcServer.js +50 -0
  94. package/lib/Sidecar/RpcServer.js.map +1 -0
  95. package/lib/Sidecar/RpcTransport.d.ts +22 -0
  96. package/lib/Sidecar/RpcTransport.d.ts.map +1 -0
  97. package/lib/Sidecar/RpcTransport.js +81 -0
  98. package/lib/Sidecar/RpcTransport.js.map +1 -0
  99. package/lib/Telemetry/Metrics.d.ts +15 -0
  100. package/lib/Telemetry/Metrics.d.ts.map +1 -1
  101. package/lib/Telemetry/Metrics.js +20 -0
  102. package/lib/Telemetry/Metrics.js.map +1 -1
  103. package/lib/Util/PlatformServices.d.ts +3 -0
  104. package/lib/Util/PlatformServices.d.ts.map +1 -1
  105. package/lib/Util/PlatformServices.js +13 -0
  106. package/lib/Util/PlatformServices.js.map +1 -1
  107. package/lib/Util/layer-scoped.d.ts +16 -0
  108. package/lib/Util/layer-scoped.d.ts.map +1 -0
  109. package/lib/Util/layer-scoped.js +14 -0
  110. package/lib/Util/layer-scoped.js.map +1 -0
  111. package/package.json +4 -2
  112. package/src/AdoptPolicy.ts +9 -9
  113. package/src/AlchemyContext.ts +2 -0
  114. package/src/Build/Command.ts +8 -1
  115. package/src/Bundle/Bundle.ts +65 -25
  116. package/src/Cloudflare/Local/Sidecar.ts +44 -0
  117. package/src/Cloudflare/Local/SidecarHandlers.ts +182 -0
  118. package/src/Cloudflare/Local/SidecarServer.ts +57 -0
  119. package/src/Cloudflare/SecretsStore/Secret.ts +78 -7
  120. package/src/Cloudflare/SecretsStore/SecretsStore.ts +47 -12
  121. package/src/Cloudflare/StateStore/State.ts +281 -64
  122. package/src/Cloudflare/StateStore/index.ts +1 -1
  123. package/src/Cloudflare/Workers/Compatibility.ts +12 -0
  124. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +93 -0
  125. package/src/Cloudflare/Workers/Worker.ts +151 -55
  126. package/src/Cloudflare/Workers/WorkerBundle.ts +234 -0
  127. package/src/Cloudflare/Workers/WorkerName.ts +10 -0
  128. package/src/Cloudflare/Workers/index.ts +1 -0
  129. package/src/Platform.ts +1 -1
  130. package/src/Sidecar/Lock.ts +190 -0
  131. package/src/Sidecar/RpcClient.ts +141 -0
  132. package/src/Sidecar/RpcHandler.ts +169 -0
  133. package/src/Sidecar/RpcPaths.ts +29 -0
  134. package/src/Sidecar/RpcServer.ts +80 -0
  135. package/src/Sidecar/RpcTransport.ts +85 -0
  136. package/src/Telemetry/Metrics.ts +38 -0
  137. package/src/Util/PlatformServices.ts +19 -0
  138. package/src/Util/layer-scoped.ts +25 -0
package/bin/alchemy.ts CHANGED
@@ -17,6 +17,7 @@ import {
17
17
  destroyCommand,
18
18
  planCommand,
19
19
  } from "./commands/deploy.ts";
20
+ import { devCommand } from "./commands/dev.ts";
20
21
  import { loginCommand } from "./commands/login.ts";
21
22
  import { logsCommand } from "./commands/logs.ts";
22
23
  import { profileCommand } from "./commands/profile.ts";
@@ -27,6 +28,7 @@ const root = Command.make("alchemy", {}).pipe(
27
28
  Command.withSubcommands([
28
29
  bootstrapCommand,
29
30
  deployCommand,
31
+ devCommand,
30
32
  destroyCommand,
31
33
  planCommand,
32
34
  tailCommand,
package/bin/cli.js CHANGED
@@ -60,4 +60,22 @@ if (runtime === "bun" && useTs) {
60
60
 
61
61
  args.push(useTs ? tsEntry : jsEntry, ...process.argv.slice(2));
62
62
 
63
+ process.on("uncaughtException", (error) => {
64
+ if (
65
+ error.message.includes(
66
+ "foreground-child watchdog process died unexpectedly!",
67
+ ) &&
68
+ typeof error.cause === "object" &&
69
+ error.cause !== null &&
70
+ "watchedProcess" in error.cause &&
71
+ error.cause.watchedProcess !== null &&
72
+ "cmd" in error.cause.watchedProcess &&
73
+ error.cause.signal === "SIGINT"
74
+ ) {
75
+ console.log("Interrupted.");
76
+ process.exit(0);
77
+ }
78
+ console.error(error);
79
+ });
80
+
63
81
  foregroundChild(runtime, args);
@@ -18,10 +18,16 @@ import {
18
18
  import * as AWSCredentials from "../../src/AWS/Credentials.ts";
19
19
  import * as AWSEnvironment from "../../src/AWS/Environment.ts";
20
20
  import * as AWSRegion from "../../src/AWS/Region.ts";
21
+ import { AuthProviders } from "../../src/Auth/AuthProvider.ts";
22
+ import { withProfileOverride } from "../../src/Auth/Profile.ts";
23
+ import { CloudflareAuth } from "../../src/Cloudflare/Auth/AuthProvider.ts";
24
+ import * as CloudflareCredentials from "../../src/Cloudflare/Credentials.ts";
25
+ import * as CloudflareEnvironment from "../../src/Cloudflare/CloudflareEnvironment.ts";
26
+ import { bootstrap as bootstrapCloudflare } from "../../src/Cloudflare/StateStore/State.ts";
21
27
  import { loadConfigProvider } from "../../src/Util/ConfigProvider.ts";
22
28
  import { fileLogger } from "../../src/Util/FileLogger.ts";
23
29
 
24
- import { envFile, instrumentCommand } from "./_shared.ts";
30
+ import { envFile, instrumentCommand, profile } from "./_shared.ts";
25
31
 
26
32
  const awsProfile = Flag.string("profile").pipe(
27
33
  Flag.withDescription("AWS profile to use for credentials"),
@@ -42,8 +48,8 @@ const bootstrapDestroy = Flag.boolean("destroy").pipe(
42
48
  Flag.withDefault(false),
43
49
  );
44
50
 
45
- export const bootstrapCommand = Command.make(
46
- "bootstrap",
51
+ const bootstrapAwsCommand = Command.make(
52
+ "aws",
47
53
  {
48
54
  envFile,
49
55
  profile: awsProfile,
@@ -51,7 +57,7 @@ export const bootstrapCommand = Command.make(
51
57
  destroy: bootstrapDestroy,
52
58
  },
53
59
  instrumentCommand(
54
- "bootstrap",
60
+ "bootstrap.aws",
55
61
  (a: { profile: string; region: string | undefined; destroy: boolean }) => ({
56
62
  "alchemy.profile": a.profile,
57
63
  "alchemy.region": a.region ?? "",
@@ -124,3 +130,81 @@ export const bootstrapCommand = Command.make(
124
130
  }),
125
131
  ),
126
132
  );
133
+
134
+ const cloudflareForce = Flag.boolean("force").pipe(
135
+ Flag.withDescription(
136
+ "Force a full redeploy even if the state-store worker already exists. " +
137
+ "Without this flag, an existing worker is adopted and only its credentials are refreshed.",
138
+ ),
139
+ Flag.withDefault(false),
140
+ );
141
+
142
+ const cloudflareWorkerName = Flag.string("worker-name").pipe(
143
+ Flag.withDescription(
144
+ "Override the default state-store worker name (advanced; only needed for multiple state stores per account).",
145
+ ),
146
+ Flag.optional,
147
+ Flag.map(Option.getOrUndefined),
148
+ );
149
+
150
+ const bootstrapCloudflareCommand = Command.make(
151
+ "cloudflare",
152
+ {
153
+ envFile,
154
+ profile,
155
+ force: cloudflareForce,
156
+ workerName: cloudflareWorkerName,
157
+ },
158
+ instrumentCommand(
159
+ "bootstrap.cloudflare",
160
+ (a: {
161
+ profile: string;
162
+ force: boolean;
163
+ workerName: string | undefined;
164
+ }) => ({
165
+ "alchemy.profile": a.profile,
166
+ "alchemy.force": a.force,
167
+ "alchemy.worker_name": a.workerName ?? "",
168
+ }),
169
+ )(
170
+ Effect.fnUntraced(function* ({ envFile, profile, force, workerName }) {
171
+ const logger = Logger.layer([fileLogger("bootstrap.txt")]);
172
+
173
+ // Wire up the same Cloudflare auth chain that
174
+ // `Cloudflare.state(...)` uses internally. CloudflareAuth is an
175
+ // `effectDiscard` layer that registers itself into the
176
+ // `AuthProviders` registry at build time, and downstream layers
177
+ // (`fromProfile`, `fromAuthProvider`) plus the deploy stack all
178
+ // look the registry back up through `getAuthProvider`. We need
179
+ // the registry to remain visible all the way through, so the
180
+ // composition uses `provideMerge` (provides + re-exports) rather
181
+ // than `provide` (provides + hides).
182
+ const authProviders: AuthProviders["Service"] = {};
183
+ const authRegistry = Layer.succeed(AuthProviders, authProviders);
184
+ const authLayer = Layer.provideMerge(CloudflareAuth, authRegistry);
185
+ const cloudflareLayers = Layer.provideMerge(
186
+ Layer.mergeAll(
187
+ CloudflareCredentials.fromAuthProvider(),
188
+ CloudflareEnvironment.fromProfile(),
189
+ ),
190
+ authLayer,
191
+ );
192
+
193
+ const services = Layer.mergeAll(
194
+ cloudflareLayers,
195
+ ConfigProvider.layer(
196
+ withProfileOverride(yield* loadConfigProvider(envFile), profile),
197
+ ),
198
+ logger,
199
+ );
200
+
201
+ yield* bootstrapCloudflare({ workerName, force }).pipe(
202
+ Effect.provide(services),
203
+ );
204
+ }),
205
+ ),
206
+ );
207
+
208
+ export const bootstrapCommand = Command.make("bootstrap", {}).pipe(
209
+ Command.withSubcommands([bootstrapAwsCommand, bootstrapCloudflareCommand]),
210
+ );
@@ -4,8 +4,12 @@ import * as Effect from "effect/Effect";
4
4
  import * as Layer from "effect/Layer";
5
5
  import * as Logger from "effect/Logger";
6
6
  import * as Option from "effect/Option";
7
+ import * as Schema from "effect/Schema";
7
8
  import * as Command from "effect/unstable/cli/Command";
9
+ import * as Flag from "effect/unstable/cli/Flag";
8
10
 
11
+ import { AdoptPolicy } from "../../src/AdoptPolicy.ts";
12
+ import { AlchemyContext } from "../../src/AlchemyContext.ts";
9
13
  import { apply } from "../../src/Apply.ts";
10
14
  import { ArtifactStore, createArtifactStore } from "../../src/Artifacts.ts";
11
15
  import { AuthProviders } from "../../src/Auth/AuthProvider.ts";
@@ -28,24 +32,40 @@ import {
28
32
  yes,
29
33
  } from "./_shared.ts";
30
34
 
31
- const stackSpanAttrs = (args: {
32
- main: string;
33
- stage: string;
34
- profile: string;
35
- dryRun?: boolean;
36
- force?: boolean;
37
- yes?: boolean;
38
- destroy?: boolean;
39
- }) => ({
35
+ export const ExecStackOptions = Schema.Struct({
36
+ main: Schema.String,
37
+ stage: Schema.String,
38
+ envFile: Schema.OptionFromOptional(Schema.String),
39
+ profile: Schema.optional(Schema.String),
40
+ dryRun: Schema.optional(Schema.Boolean),
41
+ force: Schema.optional(Schema.Boolean),
42
+ yes: Schema.optional(Schema.Boolean),
43
+ destroy: Schema.optional(Schema.Boolean),
44
+ dev: Schema.optional(Schema.Boolean),
45
+ adopt: Schema.optional(Schema.Boolean),
46
+ });
47
+ export type ExecStackOptions = typeof ExecStackOptions.Type;
48
+
49
+ const stackSpanAttrs = (args: ExecStackOptions) => ({
40
50
  "alchemy.stage": args.stage,
41
51
  "alchemy.profile": args.profile,
42
52
  "alchemy.main": args.main,
43
53
  "alchemy.dry_run": !!args.dryRun,
44
54
  "alchemy.force": !!args.force,
45
55
  "alchemy.destroy": !!args.destroy,
56
+ "alchemy.dev": !!args.dev,
57
+ "alchemy.adopt": !!args.adopt,
46
58
  });
47
59
 
48
- const execStack = Effect.fn(function* ({
60
+ const adopt = Flag.boolean("adopt").pipe(
61
+ Flag.withDescription(
62
+ "Adopt pre-existing cloud resources that conflict with this stack instead of failing. " +
63
+ "Useful for re-importing infrastructure into a fresh state store.",
64
+ ),
65
+ Flag.withDefault(false),
66
+ );
67
+
68
+ export const execStack = Effect.fn(function* ({
49
69
  main,
50
70
  stage,
51
71
  envFile,
@@ -54,19 +74,28 @@ const execStack = Effect.fn(function* ({
54
74
  force = false,
55
75
  yes = false,
56
76
  destroy = false,
57
- }: {
58
- main: string;
59
- stage: string;
60
- envFile: Option.Option<string>;
61
- profile: string;
62
- dryRun?: boolean;
63
- force?: boolean;
64
- yes?: boolean;
65
- destroy?: boolean;
66
- }) {
77
+ dev = false,
78
+ adopt = false,
79
+ }: ExecStackOptions) {
67
80
  const stackEffect = yield* importStack(main);
68
81
 
69
82
  const services = Layer.mergeAll(
83
+ Layer.effect(
84
+ AlchemyContext,
85
+ AlchemyContext.asEffect().pipe(
86
+ Effect.map((ctx) => ({
87
+ ...ctx,
88
+ dev,
89
+ })),
90
+ ),
91
+ ),
92
+ // `--adopt` opts the entire deploy in to adoption-on-conflict.
93
+ // Resource providers that wire `AdoptPolicy` (Worker domains,
94
+ // Cloudflare.SecretsStore, etc.) will reconcile against
95
+ // pre-existing cloud resources instead of failing on duplicates.
96
+ // Default is `false` so an unintentional collision still surfaces
97
+ // loudly.
98
+ Layer.succeed(AdoptPolicy, adopt),
70
99
  Layer.succeed(ArtifactStore, createArtifactStore()),
71
100
  Layer.succeed(
72
101
  AuthProviders,
@@ -120,6 +149,10 @@ const execStack = Effect.fn(function* ({
120
149
  if (outputs !== undefined) {
121
150
  yield* Console.log(outputs);
122
151
  }
152
+
153
+ if (dev) {
154
+ yield* Effect.never;
155
+ }
123
156
  }
124
157
  }).pipe(Effect.provide(stack.services));
125
158
  }).pipe(Effect.provide(services));
@@ -135,6 +168,7 @@ export const deployCommand = Command.make(
135
168
  stage,
136
169
  yes,
137
170
  profile,
171
+ adopt,
138
172
  },
139
173
  instrumentCommand("deploy", stackSpanAttrs)(execStack),
140
174
  );
@@ -0,0 +1,45 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Schema from "effect/Schema";
3
+ import * as Command from "effect/unstable/cli/Command";
4
+ import * as ChildProcess from "effect/unstable/process/ChildProcess";
5
+ import { fileURLToPath } from "node:url";
6
+ import { envFile, force, main, profile, stage } from "./_shared.ts";
7
+ import { ExecStackOptions } from "./deploy.ts";
8
+
9
+ export const devCommand = Command.make(
10
+ "dev",
11
+ {
12
+ force,
13
+ main,
14
+ envFile,
15
+ stage,
16
+ profile,
17
+ },
18
+ Effect.fn(function* (args) {
19
+ const options = yield* Schema.encodeEffect(ExecStackOptions)({
20
+ ...args,
21
+ yes: true,
22
+ dev: true,
23
+ });
24
+ const bin = typeof globalThis.Bun !== "undefined" ? "bun" : "node";
25
+ const child = yield* ChildProcess.make(
26
+ bin,
27
+ [
28
+ "run",
29
+ "--watch",
30
+ "--no-clear-screen",
31
+ fileURLToPath(import.meta.resolve("../exec.ts")),
32
+ ],
33
+ {
34
+ stdin: "inherit",
35
+ stdout: "inherit",
36
+ stderr: "inherit",
37
+ env: {
38
+ ALCHEMY_EXEC_OPTIONS: JSON.stringify(options),
39
+ },
40
+ extendEnv: true,
41
+ },
42
+ );
43
+ yield* child.exitCode;
44
+ }),
45
+ );
package/bin/exec.ts ADDED
@@ -0,0 +1,22 @@
1
+ import * as ConfigProvider from "effect/ConfigProvider";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Schema from "effect/Schema";
5
+ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
6
+ import { AlchemyContextLive } from "../src/AlchemyContext.ts";
7
+ import { inkCLI } from "../src/Cli/InkCLI.tsx";
8
+ import { PlatformServices, runMain } from "../src/Util/PlatformServices.ts";
9
+ import { execStack, ExecStackOptions } from "./commands/deploy.ts";
10
+
11
+ const services = Layer.mergeAll(
12
+ Layer.provideMerge(AlchemyContextLive, PlatformServices),
13
+ FetchHttpClient.layer,
14
+ ConfigProvider.layer(ConfigProvider.fromEnv()),
15
+ inkCLI(),
16
+ );
17
+
18
+ const options = Schema.decodeSync(ExecStackOptions)(
19
+ JSON.parse(process.env.ALCHEMY_EXEC_OPTIONS!),
20
+ );
21
+
22
+ execStack(options).pipe(Effect.provide(services), Effect.scoped, runMain);
@@ -4,8 +4,8 @@ declare const AdoptPolicy_base: Context.ServiceClass<AdoptPolicy, "AdoptPolicy",
4
4
  export declare class AdoptPolicy extends AdoptPolicy_base {
5
5
  }
6
6
  export declare const adopt: {
7
- (enabled?: boolean): <R, Req = never>(effect: Effect.Effect<R, never, Req>) => Effect.Effect<R, never, Req>;
8
- <Req = never>(enabled: Effect.Effect<boolean, never, Req>): <R, Req2 = never>(effect: Effect.Effect<R, never, Req2>) => Effect.Effect<R, never, Req | Req2>;
7
+ (enabled?: boolean): <A, E, R = never>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
8
+ <R1 = never>(enabled: Effect.Effect<boolean, never, R1>): <A, E, R2 = never>(effect: Effect.Effect<A, E, R2>) => Effect.Effect<A, E, R1 | R2>;
9
9
  };
10
10
  export {};
11
11
  //# sourceMappingURL=AdoptPolicy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdoptPolicy.d.ts","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;AAExC,qBAAa,WAAY,SAAQ,gBAEhC;CAAG;AAEJ,eAAO,MAAM,KAAK,EAAE;IAClB,CACE,OAAO,CAAC,EAAE,OAAO,GAChB,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KACjC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,GAAG,GAAG,KAAK,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,GAC1C,CAAC,CAAC,EAAE,IAAI,GAAG,KAAK,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;CAO9B,CAAC"}
1
+ {"version":3,"file":"AdoptPolicy.d.ts","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;;AAExC,qBAAa,WAAY,SAAQ,gBAEhC;CAAG;AAEJ,eAAO,MAAM,KAAK,EAAE;IAClB,CACE,OAAO,CAAC,EAAE,OAAO,GAChB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC,EAAE,GAAG,KAAK,EACT,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GACzC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAC5B,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;CAOvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AdoptPolicy.js","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAwB,CACtE,aAAa,CACd;CAAG;AAEJ,MAAM,CAAC,MAAM,KAAK,GAWd,CAAC,CAAC,OAAqD,EAAE,EAAE,CAC7D,CAAC,GAAmC,EAAE,EAAE,CACtC,GAAG,CAAC,IAAI,CACN,OAAO,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CACtD,CAAQ,CAAC"}
1
+ {"version":3,"file":"AdoptPolicy.js","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAwB,CACtE,aAAa,CACd;CAAG;AAEJ,MAAM,CAAC,MAAM,KAAK,GAWd,CAAC,CAAC,OAAqD,EAAE,EAAE,CAC7D,CAAC,GAAiC,EAAE,EAAE,CACpC,GAAG,CAAC,IAAI,CACN,OAAO,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CACtD,CAAQ,CAAC"}
@@ -5,6 +5,7 @@ import * as Path from "effect/Path";
5
5
  declare const AlchemyContext_base: EffectContext.ServiceClass<AlchemyContext, "alchemy/Context", {
6
6
  dotAlchemy: string;
7
7
  updateStateStore: boolean;
8
+ dev: boolean;
8
9
  }>;
9
10
  export declare class AlchemyContext extends AlchemyContext_base {
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlchemyContext.d.ts","sourceRoot":"","sources":["../src/AlchemyContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;;gBAKpB,MAAM;sBACA,OAAO;;AAJ7B,qBAAa,cAAe,SAAQ,mBAMd;CAAG;AAEzB,eAAO,MAAM,kBAAkB,8GAY9B,CAAC"}
1
+ {"version":3,"file":"AlchemyContext.d.ts","sourceRoot":"","sources":["../src/AlchemyContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;;gBAKpB,MAAM;sBACA,OAAO;SACpB,OAAO;;AALhB,qBAAa,cAAe,SAAQ,mBAOd;CAAG;AAEzB,eAAO,MAAM,kBAAkB,8GAa9B,CAAC"}
@@ -13,6 +13,7 @@ export const AlchemyContextLive = Layer.effect(AlchemyContext, Effect.gen(functi
13
13
  return {
14
14
  dotAlchemy: dir,
15
15
  updateStateStore: false,
16
+ dev: false,
16
17
  };
17
18
  }));
18
19
  //# sourceMappingURL=AlchemyContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AlchemyContext.js","sourceRoot":"","sources":["../src/AlchemyContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,MAAM,OAAO,cAAe,SAAQ,aAAa,CAAC,OAAO,EAMtD,CAAC,iBAAiB,CAAC;CAAG;AAEzB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACjD,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO;QACL,UAAU,EAAE,GAAG;QACf,gBAAgB,EAAE,KAAK;KACxB,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"AlchemyContext.js","sourceRoot":"","sources":["../src/AlchemyContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,MAAM,OAAO,cAAe,SAAQ,aAAa,CAAC,OAAO,EAOtD,CAAC,iBAAiB,CAAC;CAAG;AAEzB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAC5C,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACjD,KAAK,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,OAAO;QACL,UAAU,EAAE,GAAG;QACf,gBAAgB,EAAE,KAAK;QACvB,GAAG,EAAE,KAAK;KACX,CAAC;AACJ,CAAC,CAAC,CACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/Build/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CACvC,eAAe,EACf,YAAY,EACZ;IACE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CACF;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO,iDAAqC,CAAC;AAE1D,eAAO,MAAM,eAAe,qNAuGzB,CAAC;AAEJ,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,eAAO,MAAM,gBAAgB;;;;0JAa3B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;mHA2B1B,CAAC"}
1
+ {"version":3,"file":"Command.d.ts","sourceRoot":"","sources":["../../src/Build/Command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,OAAQ,SAAQ,QAAQ,CACvC,eAAe,EACf,YAAY,EACZ;IACE;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd,CACF;CAAG;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,OAAO,iDAAqC,CAAC;AAE1D,eAAO,MAAM,eAAe,qNA8GzB,CAAC;AAEJ,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,eAAO,MAAM,gBAAgB;;;;0JAa3B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;mHA2B1B,CAAC"}
@@ -86,12 +86,19 @@ export const CommandProvider = () => Provider.effect(Command, Effect.gen(functio
86
86
  if (!output) {
87
87
  return undefined;
88
88
  }
89
+ // Recompute the output path against the *current* cwd. State
90
+ // may have been written by a different machine (e.g. CI) and
91
+ // the absolute path baked into `output.outdir` won't exist
92
+ // locally. As long as the path resolved against this
93
+ // machine's cwd is present, return the refreshed output so
94
+ // downstream consumers (e.g. `Cloudflare.Worker` assets)
95
+ // don't try to read a stale, foreign-machine path.
89
96
  const outputPath = getOutputPath(olds);
90
97
  const exists = yield* fs.exists(outputPath);
91
98
  if (!exists) {
92
99
  return undefined;
93
100
  }
94
- return output;
101
+ return { ...output, outdir: outputPath };
95
102
  }),
96
103
  create: Effect.fnUntraced(function* ({ news, session }) {
97
104
  const hash = yield* hashDirectory(news);
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../src/Build/Command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Command.js","sourceRoot":"","sources":["../../src/Build/Command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Path from "effect/Path";
3
- import * as Result from "effect/Result";
3
+ import * as Schema from "effect/Schema";
4
4
  import * as Stream from "effect/Stream";
5
5
  import * as rolldown from "rolldown";
6
6
  import { type PurePluginOptions } from "./PurePlugin.ts";
@@ -37,13 +37,25 @@ export interface BundleFile {
37
37
  readonly content: string | Uint8Array<ArrayBufferLike>;
38
38
  readonly hash: string;
39
39
  }
40
- declare const BundleError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
41
- readonly _tag: "BundleError";
42
- } & Readonly<A>;
43
- export declare class BundleError extends BundleError_base<{
44
- readonly message: string;
45
- readonly cause?: unknown;
46
- }> {
40
+ declare const BundleError_base: Schema.Class<BundleError, Schema.TaggedStruct<"BundleError", {
41
+ readonly message: Schema.String;
42
+ readonly cause: Schema.optional<Schema.Defect>;
43
+ }>, import("effect/Cause").YieldableError>;
44
+ export declare class BundleError extends BundleError_base {
45
+ }
46
+ export type BundleWatchEvent = BundleWatchEvent.Start | BundleWatchEvent.Success | BundleWatchEvent.Error;
47
+ export declare namespace BundleWatchEvent {
48
+ interface Start {
49
+ readonly _tag: "Start";
50
+ }
51
+ interface Success {
52
+ readonly _tag: "Success";
53
+ readonly output: BundleOutput;
54
+ }
55
+ interface Error {
56
+ readonly _tag: "Error";
57
+ readonly error: BundleError;
58
+ }
47
59
  }
48
60
  /**
49
61
  * Build a bundle using rolldown from the given input options and output options.
@@ -58,7 +70,7 @@ export declare const build: (inputOptions: rolldown.InputOptions, outputOptions?
58
70
  * @param outputOptions - The output options for the bundle.
59
71
  * @returns A stream of Result instances containing either the bundle output or an error.
60
72
  */
61
- export declare const watch: (inputOptions: rolldown.InputOptions, outputOptions?: rolldown.OutputOptions, extra?: BundleExtraOptions) => Stream.Stream<Result.Result<BundleOutput, BundleError>>;
73
+ export declare const watch: (inputOptions: rolldown.InputOptions, outputOptions?: rolldown.OutputOptions, extra?: BundleExtraOptions) => Stream.Stream<BundleWatchEvent>;
62
74
  export declare const virtualEntryPlugin: Effect.Effect<(content: (importPath: string) => string) => {
63
75
  name: string;
64
76
  options(this: rolldown.MinimalPluginContext, inputOptions: rolldown.InputOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Bundle.d.ts","sourceRoot":"","sources":["../../src/Bundle/Bundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;;;;AAED,qBAAa,WAAY,SAAQ,iBAAgC;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,cAAc,QAAQ,CAAC,YAAY,EACnC,gBAAgB,QAAQ,CAAC,aAAa,EACtC,QAAQ,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAqBvC,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,cAAc,QAAQ,CAAC,YAAY,EACnC,gBAAgB,QAAQ,CAAC,aAAa,EACtC,QAAQ,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAmDtD,CAAC;AAKJ,eAAO,MAAM,kBAAkB,0BAEZ,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;oBA2B/C,CAAC;AAEH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,QAAQ,CAAC,YAAY,GAC5B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAiB1C"}
1
+ {"version":3,"file":"Bundle.d.ts","sourceRoot":"","sources":["../../src/Bundle/Bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAErE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;IAC9C;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;;;;;AAED,qBAAa,WAAY,SAAQ,gBAMhC;CAAG;AAEJ,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,CAAC,KAAK,GACtB,gBAAgB,CAAC,OAAO,GACxB,gBAAgB,CAAC,KAAK,CAAC;AAE3B,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,UAAU,KAAK;QACb,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;KACxB;IACD,UAAU,OAAO;QACf,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;KAC/B;IACD,UAAU,KAAK;QACb,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;KAC7B;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,cAAc,QAAQ,CAAC,YAAY,EACnC,gBAAgB,QAAQ,CAAC,aAAa,EACtC,QAAQ,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAqBvC,CAAC;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAChB,cAAc,QAAQ,CAAC,YAAY,EACnC,gBAAgB,QAAQ,CAAC,aAAa,EACtC,QAAQ,kBAAkB,KACzB,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAsE9B,CAAC;AAKJ,eAAO,MAAM,kBAAkB,0BAEZ,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;oBA2B/C,CAAC;AAEH,wBAAgB,oCAAoC,CAClD,MAAM,EAAE,QAAQ,CAAC,YAAY,GAC5B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,WAAW,CAAC,CAiB1C"}
@@ -1,14 +1,16 @@
1
- import * as Data from "effect/Data";
2
1
  import * as Effect from "effect/Effect";
3
2
  import * as Path from "effect/Path";
4
3
  import * as Queue from "effect/Queue";
5
- import * as Result from "effect/Result";
4
+ import * as Schema from "effect/Schema";
6
5
  import * as Stream from "effect/Stream";
7
6
  import assert from "node:assert";
8
7
  import * as rolldown from "rolldown";
9
8
  import { sha256, sha256Object } from "../Util/sha256.js";
10
9
  import { purePlugin } from "./PurePlugin.js";
11
- export class BundleError extends Data.TaggedError("BundleError") {
10
+ export class BundleError extends Schema.TaggedErrorClass()("BundleError", {
11
+ message: Schema.String,
12
+ cause: Schema.optional(Schema.DefectWithStack),
13
+ }) {
12
14
  }
13
15
  /**
14
16
  * Build a bundle using rolldown from the given input options and output options.
@@ -48,8 +50,16 @@ export const watch = (inputOptions, outputOptions, extra) => Stream.callback((qu
48
50
  // The watcher event listener does not receive the bundle output, so we grab it using a plugin.
49
51
  {
50
52
  name: "alchemy:watch-bundle",
53
+ watchChange() {
54
+ Queue.offerUnsafe(queue, {
55
+ _tag: "Start",
56
+ });
57
+ },
51
58
  generateBundle(_outputOptions, bundle) {
52
- Queue.offerUnsafe(queue, Result.succeed(bundle));
59
+ Queue.offerUnsafe(queue, {
60
+ _tag: "Success",
61
+ output: bundle,
62
+ });
53
63
  },
54
64
  },
55
65
  ],
@@ -57,7 +67,10 @@ export const watch = (inputOptions, outputOptions, extra) => Stream.callback((qu
57
67
  });
58
68
  watcher.on("event", (event) => {
59
69
  if (event.code === "ERROR") {
60
- Queue.offerUnsafe(queue, Result.fail(bundleErrorFromUnknown(event.error)));
70
+ Queue.offerUnsafe(queue, {
71
+ _tag: "Error",
72
+ error: bundleErrorFromUnknown(event.error),
73
+ });
61
74
  }
62
75
  else if (event.code === "BUNDLE_END") {
63
76
  // This must be called to avoid resource leaks.
@@ -65,17 +78,18 @@ export const watch = (inputOptions, outputOptions, extra) => Stream.callback((qu
65
78
  }
66
79
  });
67
80
  return watcher;
68
- }), (watcher) => Effect.promise(() => watcher.close()))).pipe(Stream.mapEffect((result) => Effect.gen(function* () {
69
- if (result._tag === "Failure") {
70
- return Result.fail(result.failure);
71
- }
72
- return yield* bundleOutputFromRolldownOutputBundle(result.success).pipe(Effect.map(Result.succeed), Effect.catch((error) => Effect.succeed(Result.fail(error))));
73
- })), Stream.changesWith((left, right) => {
74
- if (left._tag === "Success" && right._tag === "Success") {
75
- return left.success.hash === right.success.hash;
81
+ }), (watcher) => Effect.promise(() => watcher.close()))).pipe(Stream.mapEffect((event) => Effect.gen(function* () {
82
+ if (event._tag !== "Success") {
83
+ return event;
76
84
  }
77
- return false;
78
- }));
85
+ return yield* bundleOutputFromRolldownOutputBundle(event.output).pipe(Effect.map((output) => ({
86
+ _tag: "Success",
87
+ output,
88
+ })), Effect.catch((error) => Effect.succeed({
89
+ _tag: "Error",
90
+ error: bundleErrorFromUnknown(error),
91
+ })));
92
+ })));
79
93
  const ENTRY_MODULE_ID = "virtual:alchemy-entry";
80
94
  const ENTRY_MODULE_REGEX = new RegExp(`^${ENTRY_MODULE_ID}$`);
81
95
  export const virtualEntryPlugin = Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"Bundle.js","sourceRoot":"","sources":["../../src/Bundle/Bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Bundle.js","sourceRoot":"","sources":["../../src/Bundle/Bundle.ts"],"names":[],"mappings":"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"}