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
@@ -26,6 +26,7 @@ import { createRequire } from "node:module";
26
26
  import path from "node:path";
27
27
  import { pathToFileURL } from "node:url";
28
28
  import Sonda from "sonda/rolldown";
29
+ import { AlchemyContext } from "../../AlchemyContext.js";
29
30
  import * as Artifacts from "../../Artifacts.js";
30
31
  import * as Binding from "../../Binding.js";
31
32
  import { isArtifacts as isArtifactsBinding, } from "../Artifacts/Artifacts.js";
@@ -44,11 +45,13 @@ import { Stack } from "../../Stack.js";
44
45
  import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
45
46
  import { D1Database } from "../D1/D1Database.js";
46
47
  import { fromCloudflareFetcher } from "../Fetcher.js";
48
+ import { SidecarLive } from "../Local/Sidecar.js";
47
49
  import { CloudflareLogs } from "../Logs.js";
48
50
  import { isAssets, readAssets, uploadAssets, } from "./Assets.js";
49
51
  import cloudflare_workers from "./cloudflare_workers.js";
50
52
  import { isDurableObjectExport, isDurableObjectNamespaceLike, } from "./DurableObjectNamespace.js";
51
53
  import { workersHttpHandler } from "./HttpServer.js";
54
+ import { LocalWorkerProvider } from "./LocalWorkerProvider.js";
52
55
  import { Request } from "./Request.js";
53
56
  import { makeRpcStub } from "./Rpc.js";
54
57
  import { isWorkflowExport } from "./Workflow.js";
@@ -620,7 +623,12 @@ function getDurableObjectTagMap(tags) {
620
623
  return logicalId && className ? [[logicalId, className]] : [];
621
624
  }));
622
625
  }
623
- export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
626
+ const selectLayer = (input) => Layer.unwrap(AlchemyContext.useSync((context) => context.dev ? input.dev() : input.live()));
627
+ export const WorkerProvider = () => selectLayer({
628
+ live: LiveWorkerProvider,
629
+ dev: () => Layer.provide(LocalWorkerProvider(), SidecarLive),
630
+ });
631
+ export const LiveWorkerProvider = () => Provider.effect(Worker, Effect.gen(function* () {
624
632
  const fs = yield* FileSystem.FileSystem;
625
633
  const path = yield* Path.Path;
626
634
  const { accountId } = yield* CloudflareEnvironment;
@@ -699,14 +707,61 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
699
707
  return yield* Effect.die(`Could not infer Cloudflare Zone for hostname "${hostname}". ` +
700
708
  "Ensure the parent zone exists in this account.");
701
709
  });
702
- const reconcileDomains = (scriptName, desired, previous) => Effect.gen(function* () {
710
+ const reconcileDomains = (scriptName, desired, _previous) => Effect.gen(function* () {
711
+ // Always query the live state of domains attached to *this*
712
+ // Worker rather than trusting `_previous` from local state.
713
+ // State may have been wiped, populated by another machine, or
714
+ // simply be out of date. Without this we PUT domains that are
715
+ // already registered to this same Worker and Cloudflare
716
+ // returns a confusing "hostname already in use" error.
717
+ const liveAll = yield* listDomains({
718
+ accountId,
719
+ service: scriptName,
720
+ }).pipe(Effect.map((r) => (r.result ?? []).flatMap((d) => d.id && d.hostname && d.zoneId
721
+ ? [
722
+ {
723
+ id: d.id,
724
+ hostname: d.hostname,
725
+ zoneId: d.zoneId,
726
+ service: d.service ?? undefined,
727
+ },
728
+ ]
729
+ : [])), Effect.catch(() => Effect.succeed([])));
703
730
  const desiredSet = new Set(desired);
704
- const toRemove = previous.filter((p) => !desiredSet.has(p.hostname));
731
+ const liveByHostname = new Map(liveAll.map((d) => [d.hostname, d]));
732
+ // Detach what's no longer wanted. Use the live list so we
733
+ // don't try to delete domains we no longer track.
734
+ const toRemove = liveAll.filter((d) => !desiredSet.has(d.hostname));
705
735
  yield* Effect.all(toRemove.map((d) => deleteDomain({ accountId, domainId: d.id }).pipe(Effect.catchTag("DomainNotFound", () => Effect.void))), { concurrency: "unbounded" });
706
736
  if (desired.length === 0)
707
737
  return [];
708
738
  const zoneCache = new Map();
709
- const applied = yield* Effect.all(desired.map((hostname) => Effect.gen(function* () {
739
+ // Attach `hostname` to this Worker. Skip the PUT entirely if
740
+ // the hostname is already attached to *this* Worker — that's a
741
+ // no-op for Cloudflare and avoids the "already in use" 409.
742
+ // If it's attached to a *different* Worker, refuse with a
743
+ // clear message rather than silently re-routing traffic.
744
+ const attachDomain = Effect.fnUntraced(function* (hostname) {
745
+ const live = liveByHostname.get(hostname);
746
+ if (live) {
747
+ return {
748
+ hostname: live.hostname,
749
+ id: live.id,
750
+ zoneId: live.zoneId,
751
+ };
752
+ }
753
+ // Not attached to this Worker — but it could still belong
754
+ // to another Worker. Check before we try to PUT so we can
755
+ // emit a helpful error instead of the raw 409.
756
+ const otherOwner = yield* listDomains({
757
+ accountId,
758
+ hostname,
759
+ }).pipe(Effect.map((r) => (r.result ?? []).find((d) => d.hostname === hostname && d.service !== scriptName)), Effect.catch(() => Effect.succeed(undefined)));
760
+ if (otherOwner?.id) {
761
+ return yield* Effect.die(new Error(`Cannot attach hostname '${hostname}' to Worker '${scriptName}': ` +
762
+ `it is already attached to Worker '${otherOwner.service ?? "<unknown>"}'. ` +
763
+ `Detach it from that Worker first, or pick a different hostname.`));
764
+ }
710
765
  const zoneId = yield* inferZoneIdForHostname(hostname, zoneCache);
711
766
  const res = yield* putDomain({
712
767
  accountId,
@@ -719,7 +774,8 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
719
774
  id: res.id ?? "",
720
775
  zoneId: res.zoneId ?? zoneId,
721
776
  };
722
- })), { concurrency: "unbounded" });
777
+ });
778
+ const applied = yield* Effect.all(desired.map(attachDomain), { concurrency: "unbounded" });
723
779
  return applied;
724
780
  });
725
781
  const createAlchemyWorkerTags = (id) => [
@@ -768,19 +824,13 @@ export const WorkerProvider = () => Provider.effect(Worker, Effect.gen(function*
768
824
  if (!assets) {
769
825
  return undefined;
770
826
  }
771
- // Handle AssetsWithHash (from Build resource)
772
- // Props are resolved by Plan, so Input<string> values are already strings at runtime
773
827
  if (typeof assets === "object" &&
774
828
  "path" in assets &&
775
829
  "hash" in assets) {
776
- const result = yield* readAssets({
830
+ return yield* readAssets({
777
831
  directory: assets.path,
778
832
  config: assets.config,
779
833
  });
780
- return {
781
- ...result,
782
- hash: assets.hash,
783
- };
784
834
  }
785
835
  // Handle string path or AssetsProps
786
836
  return yield* readAssets(typeof assets === "string" ? { directory: assets } : assets);
@@ -1046,23 +1096,23 @@ ${[
1046
1096
  const metadataBindings = bindings.flatMap((b) => b.data.bindings ?? []);
1047
1097
  const expectedDurableObjectClassNames = getExpectedDurableObjectClassNames(metadataBindings);
1048
1098
  let metadataAssets;
1049
- let keepAssets = false;
1099
+ const keepAssets = false;
1050
1100
  if (assets) {
1051
- if (output?.hash?.assets !== assets.hash) {
1052
- yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: uploading assets for ${name}`);
1053
- const { jwt } = yield* uploadAssets(accountId, name, assets, session);
1054
- metadataAssets = {
1055
- jwt,
1056
- config: assets.config,
1057
- };
1058
- }
1059
- else {
1060
- yield* Effect.logInfo(`Cloudflare Worker update: reusing existing assets for ${name}`);
1061
- metadataAssets = {
1062
- config: assets.config,
1063
- };
1064
- keepAssets = true;
1065
- }
1101
+ // Always upload assets on every deploy. The "skip if hash
1102
+ // unchanged" optimization was the source of subtle bundle/
1103
+ // asset desync bugs (deploy succeeds but worker serves 404s
1104
+ // because the bundle references hashed asset filenames that
1105
+ // aren't in the still-on-Cloudflare manifest). The upload
1106
+ // session is content-addressed on Cloudflare's side — only
1107
+ // genuinely-new asset bytes are PUT; unchanged assets cost
1108
+ // a manifest check and nothing else, so the optimization
1109
+ // wasn't worth the failure mode.
1110
+ yield* Effect.logInfo(`Cloudflare Worker ${olds ? "update" : "create"}: uploading assets for ${name}`);
1111
+ const { jwt } = yield* uploadAssets(accountId, name, assets, session);
1112
+ metadataAssets = {
1113
+ jwt,
1114
+ config: assets.config,
1115
+ };
1066
1116
  metadataBindings.push({
1067
1117
  type: "assets",
1068
1118
  name: "ASSETS",
@@ -1288,10 +1338,18 @@ ${[
1288
1338
  const input = yield* hashDirectory(props.vite);
1289
1339
  return input !== output.hash?.input;
1290
1340
  }
1341
+ // Always recompute both hashes by walking `dist/` (assets) and
1342
+ // re-bundling the worker. The previous short-circuit
1343
+ // (`Effect.succeed(output.hash.assets)`) compared the cached
1344
+ // hash to itself and could never detect drift, and the
1345
+ // `props.assets.hash` form is the *input* (source) hash which
1346
+ // misses non-deterministic build output (e.g. Astro/Vite
1347
+ // shuffling content-hashed filenames between builds). The
1348
+ // result of either shortcut was deploying a new bundle on top
1349
+ // of stale assets and 404'ing in production. Re-walking is the
1350
+ // only correct comparison.
1291
1351
  const [assetsHash, bundleHash] = yield* Effect.all([
1292
- "assets" in output && output.hash?.assets
1293
- ? Effect.succeed(output.hash.assets)
1294
- : prepareAssets(props.assets).pipe(Effect.map((a) => a?.hash)),
1352
+ prepareAssets(props.assets).pipe(Effect.map((a) => a?.hash)),
1295
1353
  prepareBundle(id, props).pipe(Effect.map((b) => b.hash)),
1296
1354
  ], { concurrency: "unbounded" });
1297
1355
  return (assetsHash !== output.hash?.assets ||
@@ -1 +1 @@
1
- {"version":3,"file":"Worker.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Worker.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/Worker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as FileSystem from "effect/FileSystem";
3
+ import type * as Path from "effect/Path";
4
+ import * as Stream from "effect/Stream";
5
+ import * as Artifacts from "../../Artifacts.ts";
6
+ import * as Bundle from "../../Bundle/Bundle.ts";
7
+ import { type DurableObjectExport } from "./DurableObjectNamespace.ts";
8
+ import { type WorkflowExport } from "./Workflow.ts";
9
+ export interface WorkerBundleOptions {
10
+ id: string;
11
+ main: string;
12
+ compatibility: {
13
+ date: string;
14
+ flags: string[];
15
+ };
16
+ entry: {
17
+ kind: "external";
18
+ } | {
19
+ kind: "effect";
20
+ exports: Record<string, DurableObjectExport | WorkflowExport>;
21
+ };
22
+ stack: {
23
+ name: string;
24
+ stage: string;
25
+ };
26
+ }
27
+ export declare const WorkerBundle: Effect.Effect<{
28
+ build: (options: WorkerBundleOptions) => Effect.Effect<Bundle.BundleOutput, Bundle.BundleError, Artifacts.Artifacts>;
29
+ watch: (options: WorkerBundleOptions) => Stream.Stream<Bundle.BundleWatchEvent, Bundle.BundleError, never>;
30
+ }, never, Path.Path | FileSystem.FileSystem>;
31
+ //# sourceMappingURL=WorkerBundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerBundle.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,KAAK,IAAI,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,SAAS,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAoB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;IACF,KAAK,EACD;QACE,IAAI,EAAE,UAAU,CAAC;KAClB,GACD;QACE,IAAI,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAAC,CAAC;KAC/D,CAAC;IACN,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAED,eAAO,MAAM,YAAY;;;4CAuEvB,CAAC"}
@@ -0,0 +1,174 @@
1
+ import cloudflareRolldown from "@distilled.cloud/cloudflare-rolldown-plugin";
2
+ import * as Effect from "effect/Effect";
3
+ import * as FileSystem from "effect/FileSystem";
4
+ import { flow } from "effect/Function";
5
+ import * as Stream from "effect/Stream";
6
+ import * as Artifacts from "../../Artifacts.js";
7
+ import * as Bundle from "../../Bundle/Bundle.js";
8
+ import { findCwdForBundle } from "../../Bundle/TempRoot.js";
9
+ import { Self } from "../../Self.js";
10
+ import { isDurableObjectExport, } from "./DurableObjectNamespace.js";
11
+ import { isWorkflowExport } from "./Workflow.js";
12
+ export const WorkerBundle = Effect.gen(function* () {
13
+ const fs = yield* FileSystem.FileSystem;
14
+ const context = yield* Effect.context();
15
+ const virtualEntryPlugin = yield* Bundle.virtualEntryPlugin;
16
+ const makeOptions = Effect.fnUntraced(function* (options) {
17
+ const realMain = yield* fs.realPath(options.main).pipe(Effect.mapError((cause) => new Bundle.BundleError({
18
+ message: `Failed to find real path for bundle: ${options.main}`,
19
+ cause,
20
+ })));
21
+ const inputOptions = {
22
+ input: realMain,
23
+ cwd: yield* findCwdForBundle(realMain).pipe(Effect.mapError((cause) => new Bundle.BundleError({
24
+ message: `Failed to find cwd for bundle: ${realMain}`,
25
+ cause,
26
+ })), Effect.provide(context)),
27
+ plugins: [
28
+ cloudflareRolldown({
29
+ compatibilityDate: options.compatibility.date,
30
+ compatibilityFlags: options.compatibility.flags,
31
+ }),
32
+ options.entry.kind === "effect"
33
+ ? virtualEntryPlugin(makeEffectVirtualEntry(options.entry.exports, options.stack))
34
+ : undefined,
35
+ ],
36
+ checks: {
37
+ // Suppress unresolved import warnings for unrelated AWS packages
38
+ unresolvedImport: false,
39
+ },
40
+ };
41
+ const outputOptions = {
42
+ format: "esm",
43
+ sourcemap: "hidden",
44
+ minify: true,
45
+ keepNames: true,
46
+ dir: `.alchemy/bundles/${options.id}`,
47
+ };
48
+ return { inputOptions, outputOptions };
49
+ });
50
+ return {
51
+ build: flow(makeOptions, Effect.flatMap((resolved) => Bundle.build(resolved.inputOptions, resolved.outputOptions)), Artifacts.cached("build")),
52
+ watch: flow(makeOptions, Stream.fromEffect, Stream.flatMap((resolved) => Bundle.watch(resolved.inputOptions, resolved.outputOptions))),
53
+ };
54
+ });
55
+ const makeEffectVirtualEntry = (exports, stack) => {
56
+ const durableObjectClasses = [];
57
+ const workflowClasses = [];
58
+ for (const [className, entry] of Object.entries(exports)) {
59
+ if (isDurableObjectExport(entry)) {
60
+ durableObjectClasses.push(className);
61
+ }
62
+ else if (isWorkflowExport(entry)) {
63
+ workflowClasses.push(className);
64
+ }
65
+ }
66
+ return (importPath) => `import * as Config from "effect/Config";
67
+ import * as ConfigProvider from "effect/ConfigProvider";
68
+ import * as Console from "effect/Console";
69
+ import * as Effect from "effect/Effect";
70
+ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
71
+ import * as Layer from "effect/Layer";
72
+ import * as Logger from "effect/Logger";
73
+ import * as Context from "effect/Context";
74
+ import * as Stream from "effect/Stream";
75
+
76
+ import { env, DurableObject${workflowClasses.length > 0 ? ", WorkflowEntrypoint" : ""} } from "cloudflare:workers";
77
+ import { MinimumLogLevel } from "effect/References";
78
+ import { NodeServices } from "@effect/platform-node";
79
+ import { Stack } from "alchemy/Stack";
80
+ import { WorkerEnvironment, makeDurableObjectBridge${workflowClasses.length > 0 ? ", makeWorkflowBridge" : ""}, ExportedHandlerMethods } from "alchemy/Cloudflare";
81
+
82
+ import entry from "${importPath}";
83
+
84
+ const tag = Context.Service("${Self.key}")
85
+ const layer =
86
+ typeof entry?.build === "function"
87
+ ? entry
88
+ : Layer.effect(tag, typeof entry?.asEffect === "function" ? entry.asEffect() : entry);
89
+
90
+ const platform = Layer.mergeAll(
91
+ NodeServices.layer,
92
+ FetchHttpClient.layer,
93
+ // TODO(sam): wire this up to telemetry more directly
94
+ Logger.layer([Logger.consolePretty()]),
95
+ );
96
+
97
+ const stack = Layer.succeed(
98
+ Stack,
99
+ {
100
+ name: "${stack.name}",
101
+ stage: "${stack.stage}",
102
+ bindings: {},
103
+ resources: {}
104
+ }
105
+ );
106
+
107
+ const exportsEffect = tag.asEffect().pipe(
108
+ Effect.flatMap(func => func.ExecutionContext.exports),
109
+ Effect.map(exports => exports),
110
+ Effect.provide(
111
+ layer.pipe(
112
+ Layer.provideMerge(stack),
113
+ // TODO(sam): additional credentials?
114
+ Layer.provideMerge(platform),
115
+ Layer.provideMerge(
116
+ Layer.succeed(
117
+ ConfigProvider.ConfigProvider,
118
+ ConfigProvider.orElse(
119
+ ConfigProvider.fromUnknown({ ALCHEMY_PHASE: "runtime" }),
120
+ ConfigProvider.fromUnknown(env),
121
+ ),
122
+ )
123
+ ),
124
+ Layer.provideMerge(
125
+ Layer.succeed(
126
+ WorkerEnvironment,
127
+ env,
128
+ )
129
+ ),
130
+ Layer.provideMerge(
131
+ Layer.succeed(
132
+ MinimumLogLevel,
133
+ env.DEBUG ? "Debug" : "Info",
134
+ )
135
+ ),
136
+ )
137
+ ),
138
+ Effect.scoped
139
+ );
140
+
141
+ // TODO(sam): we could kick this off during module init, but any I/O will break deploy
142
+ // let exportsPromise = Effect.runPromise(exportsEffect);
143
+
144
+ // for now, we delay initializing the worker until the first request
145
+ let exportsPromise;
146
+
147
+ // don't initialize the workerEffect during module init because Cloudflare does not allow I/O during module init
148
+ // we cache it synchronously (??=) to guarnatee only one initialization ever happens
149
+ const getExports = () => (exportsPromise ??= Effect.runPromise(exportsEffect))
150
+ const getExport = (name) => getExports().then(exports => exports[name]?.make)
151
+ const worker = () => getExports().then(exports => exports.default)
152
+
153
+ export default Object.fromEntries(ExportedHandlerMethods.map(
154
+ method => [method, async (...args) => (await worker())[method](...args)])
155
+ ) satisfies Required<cf.ExportedHandler>;
156
+
157
+ // export class proxy stubs for Durable Objects and Workflows
158
+ ${[
159
+ ...(durableObjectClasses.length > 0
160
+ ? [
161
+ "const DurableObjectBridge = makeDurableObjectBridge(DurableObject, getExport);",
162
+ ...durableObjectClasses.map((id) => `export class ${id} extends DurableObjectBridge("${id}") {}`),
163
+ ]
164
+ : []),
165
+ ...(workflowClasses.length > 0
166
+ ? [
167
+ "const WorkflowBridgeFn = makeWorkflowBridge(WorkflowEntrypoint, getExport);",
168
+ ...workflowClasses.map((id) => `export class ${id} extends WorkflowBridgeFn("${id}") {}`),
169
+ ]
170
+ : []),
171
+ ].join("\n")}
172
+ `;
173
+ };
174
+ //# sourceMappingURL=WorkerBundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkerBundle.js","sourceRoot":"","sources":["../../../src/Cloudflare/Workers/WorkerBundle.ts"],"names":[],"mappings":"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"}