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
@@ -0,0 +1,27 @@
1
+ import { ServeError, type ServeResult } from "@distilled.cloud/cloudflare-runtime/Server";
2
+ import * as Worker from "@distilled.cloud/cloudflare-runtime/Worker";
3
+ import * as Effect from "effect/Effect";
4
+ import { BundleError } from "../../Bundle/Bundle.ts";
5
+ import type { WorkerBinding } from "../Workers/Worker.ts";
6
+ import type { WorkerBundleOptions } from "../Workers/WorkerBundle.ts";
7
+ export interface ServeOptions extends WorkerBundleOptions {
8
+ name: string;
9
+ bindings: WorkerBinding[];
10
+ durableObjectNamespaces: Worker.DurableObjectNamespace[];
11
+ }
12
+ export declare const SidecarSchema: import("../../Sidecar/RpcHandler.ts").RpcHandlerEncoders<{
13
+ readonly serve: (options: ServeOptions) => Effect.Effect<ServeResult, ServeError | BundleError>;
14
+ readonly stop: (name: string) => Effect.Effect<void>;
15
+ }> & import("../../Sidecar/RpcHandler.ts").RpcHandlerDecoders<{
16
+ readonly serve: (options: ServeOptions) => Effect.Effect<ServeResult, ServeError | BundleError>;
17
+ readonly stop: (name: string) => Effect.Effect<void>;
18
+ }>;
19
+ declare const Sidecar_base: import("effect/Context").ServiceClass<Sidecar, "Sidecar", {
20
+ readonly serve: (options: ServeOptions) => Effect.Effect<ServeResult, ServeError | BundleError>;
21
+ readonly stop: (name: string) => Effect.Effect<void>;
22
+ }>;
23
+ export declare class Sidecar extends Sidecar_base {
24
+ }
25
+ export declare const SidecarLive: import("effect/Layer").Layer<Sidecar, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner>;
26
+ export {};
27
+ //# sourceMappingURL=Sidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidecar.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/Sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,WAAW,EACjB,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,4CAA4C,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,MAAM,WAAW,YAAa,SAAQ,mBAAmB;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC,sBAAsB,EAAE,CAAC;CAC1D;AAED,eAAO,MAAM,aAAa;oBAcN,CACd,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;mBAC1C,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;oBAHpC,CACd,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;mBAC1C,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;EARtD,CAAC;;oBAKiB,CACd,OAAO,EAAE,YAAY,KAClB,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,GAAG,WAAW,CAAC;mBAC1C,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AANxD,qBAAa,OAAQ,SAAQ,YAQf;CAAG;AAEjB,eAAO,MAAM,WAAW,kPAGtB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ServeError, } from "@distilled.cloud/cloudflare-runtime/Server";
2
+ import * as Worker from "@distilled.cloud/cloudflare-runtime/Worker";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Schema from "effect/Schema";
5
+ import { BundleError } from "../../Bundle/Bundle.js";
6
+ import * as RpcClient from "../../Sidecar/RpcClient.js";
7
+ import { defineSchema } from "../../Sidecar/RpcHandler.js";
8
+ export const SidecarSchema = defineSchema({
9
+ serve: {
10
+ success: Schema.Struct({
11
+ name: Schema.String,
12
+ address: Schema.String,
13
+ }),
14
+ error: Schema.Union([ServeError, BundleError]),
15
+ },
16
+ stop: { success: Schema.Void, error: Schema.Never },
17
+ });
18
+ export class Sidecar extends RpcClient.RpcClientService()("Sidecar") {
19
+ }
20
+ export const SidecarLive = RpcClient.layer(Sidecar, {
21
+ main: import.meta.resolve("./SidecarServer.ts", import.meta.url),
22
+ schema: SidecarSchema,
23
+ });
24
+ //# sourceMappingURL=Sidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidecar.js","sourceRoot":"","sources":["../../../src/Cloudflare/Local/Sidecar.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,GAEX,MAAM,4CAA4C,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,4CAA4C,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAU3D,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAqB;IAC5D,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,MAAM,CAAC,MAAM;YACnB,OAAO,EAAE,MAAM,CAAC,MAAM;SACvB,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;KAC/C;IACD,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;CACpD,CAAC,CAAC;AAEH,MAAM,OAAO,OAAQ,SAAQ,SAAS,CAAC,gBAAgB,EAQpD,CAAC,SAAS,CAAC;CAAG;AAEjB,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAChE,MAAM,EAAE,aAAa;CACtB,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import * as Server from "@distilled.cloud/cloudflare-runtime/Server";
2
+ import * as Layer from "effect/Layer";
3
+ import { Sidecar } from "./Sidecar.ts";
4
+ export declare const SidecarHandlers: Layer.Layer<Sidecar, never, import("effect/Path").Path | import("effect/FileSystem").FileSystem | Server.Server>;
5
+ //# sourceMappingURL=SidecarHandlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidecarHandlers.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarHandlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,4CAA4C,CAAC;AAQrE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAMtC,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAE1D,eAAO,MAAM,eAAe,kHAoJ3B,CAAC"}
@@ -0,0 +1,119 @@
1
+ import * as Server from "@distilled.cloud/cloudflare-runtime/Server";
2
+ import * as Cause from "effect/Cause";
3
+ import * as Deferred from "effect/Deferred";
4
+ import * as Effect from "effect/Effect";
5
+ import * as Exit from "effect/Exit";
6
+ import * as Fiber from "effect/Fiber";
7
+ import * as Hash from "effect/Hash";
8
+ import * as Layer from "effect/Layer";
9
+ import * as Result from "effect/Result";
10
+ import * as Scope from "effect/Scope";
11
+ import * as Stream from "effect/Stream";
12
+ import * as Bundle from "../../Bundle/Bundle.js";
13
+ import { WorkerBundle } from "../Workers/WorkerBundle.js";
14
+ import { Sidecar } from "./Sidecar.js";
15
+ export const SidecarHandlers = Layer.effect(Sidecar, Effect.gen(function* () {
16
+ const bundle = yield* WorkerBundle;
17
+ const server = yield* Server.Server;
18
+ const rootScope = yield* Effect.scope;
19
+ const serverScopes = new Map();
20
+ const serveScoped = Effect.fnUntraced(function* (worker, modules) {
21
+ const scope = yield* Effect.flatMap(Effect.scope, Scope.fork);
22
+ const result = yield* server
23
+ .serve({
24
+ name: worker.id.toLowerCase(),
25
+ compatibilityDate: worker.compatibility.date,
26
+ compatibilityFlags: worker.compatibility.flags,
27
+ bindings: worker.bindings,
28
+ durableObjectNamespaces: worker.durableObjectNamespaces,
29
+ modules,
30
+ })
31
+ .pipe(Scope.provide(scope));
32
+ const previous = serverScopes.get(worker.name);
33
+ if (previous) {
34
+ yield* Effect.forkDetach(Scope.close(previous, Exit.void));
35
+ }
36
+ serverScopes.set(worker.name, scope);
37
+ return result;
38
+ });
39
+ const watchers = new Map();
40
+ const serveFiber = Effect.fnUntraced(function* (worker) {
41
+ const result = yield* Deferred.make();
42
+ let start = Date.now();
43
+ yield* bundle.watch(worker).pipe(Stream.mapEffect((event) => event._tag === "Error" && !Deferred.isDoneUnsafe(result)
44
+ ? Effect.fail(event.error)
45
+ : Effect.succeed(event)), Stream.tap((event) => {
46
+ if (event._tag === "Start") {
47
+ start = Date.now();
48
+ if (Deferred.isDoneUnsafe(result)) {
49
+ return Effect.log(`[${worker.id}] Rebuilding`);
50
+ }
51
+ }
52
+ else if (event._tag === "Error") {
53
+ return Effect.logError(`[${worker.id}] Bundle error`, event.error);
54
+ }
55
+ return Effect.void;
56
+ }), Stream.filterMap((event) => event._tag === "Success"
57
+ ? Result.succeed(event.output)
58
+ : Result.failVoid), Stream.map(bundleOutputToWorkerModules), Stream.mapEffect((modules) => serveScoped(worker, modules).pipe(Effect.exit, Effect.tap((exit) => {
59
+ const isDone = Deferred.isDoneUnsafe(result);
60
+ if (exit._tag === "Success") {
61
+ return Effect.log(`[${worker.id}] ${isDone ? "Updated" : "Started"} in ${Math.round(Date.now() - start)}ms`);
62
+ }
63
+ else if (isDone) {
64
+ return Effect.logError(`[${worker.id}] Error`, Cause.squash(exit.cause));
65
+ }
66
+ return Effect.void;
67
+ }), Effect.tap((exit) => Deferred.complete(result, exit)))), Stream.onExit((exit) => exit._tag === "Failure" && !Deferred.isDoneUnsafe(result)
68
+ ? Deferred.failCause(result, exit.cause)
69
+ : Effect.void), Stream.runDrain, Effect.forkScoped);
70
+ return yield* Deferred.await(result);
71
+ });
72
+ return Sidecar.of({
73
+ serve: Effect.fn(function* (worker) {
74
+ const hash = Hash.structure(worker);
75
+ const existing = watchers.get(worker.name);
76
+ if (existing) {
77
+ if (existing.hash === hash) {
78
+ yield* Effect.log(`[${worker.id}] No changes, using existing watcher`);
79
+ return yield* Fiber.join(existing.fiber);
80
+ }
81
+ yield* Effect.log(`[${worker.id}] Changes detected, interrupting existing watcher`);
82
+ yield* Fiber.interrupt(existing.fiber);
83
+ yield* Scope.close(existing.scope, Exit.void);
84
+ watchers.delete(worker.name);
85
+ }
86
+ const scope = yield* Scope.fork(rootScope);
87
+ const fiber = yield* serveFiber(worker).pipe(Effect.forkDetach, Scope.provide(scope));
88
+ watchers.set(worker.name, { hash, fiber, scope });
89
+ return yield* Fiber.join(fiber).pipe(Effect.onExit((exit) => Effect.sync(() => {
90
+ if (exit._tag === "Failure") {
91
+ watchers.delete(worker.name);
92
+ }
93
+ })));
94
+ }),
95
+ stop: Effect.fn(function* (name) {
96
+ const watcher = watchers.get(name);
97
+ if (watcher) {
98
+ yield* Fiber.interrupt(watcher.fiber);
99
+ yield* Scope.close(watcher.scope, Exit.void);
100
+ watchers.delete(name);
101
+ }
102
+ }),
103
+ });
104
+ }));
105
+ function bundleOutputToWorkerModules(bundle) {
106
+ const modules = [];
107
+ for (const file of bundle.files) {
108
+ if (file.path.endsWith(".map") || file.content instanceof Uint8Array) {
109
+ continue;
110
+ }
111
+ modules.push({
112
+ name: file.path,
113
+ type: "ESModule",
114
+ content: file.content,
115
+ });
116
+ }
117
+ return modules;
118
+ }
119
+ //# sourceMappingURL=SidecarHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidecarHandlers.js","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarHandlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SidecarServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidecarServer.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarServer.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import * as RuntimeServices from "@distilled.cloud/cloudflare-runtime/RuntimeServices";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Path from "effect/Path";
5
+ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
6
+ import * as AlchemyContext from "../../AlchemyContext.js";
7
+ import { AuthProviders } from "../../Auth/AuthProvider.js";
8
+ import * as RpcServer from "../../Sidecar/RpcServer.js";
9
+ import { httpServer, PlatformServices, runMain, } from "../../Util/PlatformServices.js";
10
+ import { CloudflareAuth } from "../Auth/AuthProvider.js";
11
+ import * as CloudflareEnvironment from "../CloudflareEnvironment.js";
12
+ import * as Credentials from "../Credentials.js";
13
+ import { Sidecar, SidecarSchema } from "./Sidecar.js";
14
+ import { SidecarHandlers } from "./SidecarHandlers.js";
15
+ const apiServices = Layer.merge(Credentials.fromAuthProvider(), CloudflareEnvironment.fromProfile()).pipe(Layer.provide(CloudflareAuth), Layer.provide(Layer.succeed(AuthProviders, {})));
16
+ const runtimeServices = SidecarHandlers.pipe(Layer.provide(Layer.unwrap(Effect.gen(function* () {
17
+ const { accountId } = yield* CloudflareEnvironment.CloudflareEnvironment;
18
+ const { dotAlchemy } = yield* AlchemyContext.AlchemyContext;
19
+ const path = yield* Path.Path;
20
+ return RuntimeServices.layer({
21
+ accountId,
22
+ storage: path.join(dotAlchemy, "local"),
23
+ });
24
+ }))), Layer.provide(Layer.mergeAll(apiServices, FetchHttpClient.layer, httpServer())));
25
+ const services = Layer.provideMerge(Layer.provideMerge(runtimeServices, RpcServer.layerServices(import.meta.url)), PlatformServices);
26
+ RpcServer.makeRpcServer(Sidecar.asEffect(), SidecarSchema).pipe(Effect.provide(services), Effect.scoped, runMain);
27
+ //# sourceMappingURL=SidecarServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidecarServer.js","sourceRoot":"","sources":["../../../src/Cloudflare/Local/SidecarServer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,qDAAqD,CAAC;AACvF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,eAAe,MAAM,sCAAsC,CAAC;AACxE,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,OAAO,GACR,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,WAAW,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAC7B,WAAW,CAAC,gBAAgB,EAAE,EAC9B,qBAAqB,CAAC,WAAW,EAAE,CACpC,CAAC,IAAI,CACJ,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAChD,CAAC;AAEF,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,CAC1C,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,MAAM,CACV,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,GACjB,KAAK,CAAC,CAAC,qBAAqB,CAAC,qBAAqB,CAAC;IACrD,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9B,OAAO,eAAe,CAAC,KAAK,CAAC;QAC3B,SAAS;QACT,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;KACxC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CACF,EACD,KAAK,CAAC,OAAO,CACX,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,CAAC,CACjE,CACF,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,CACjC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC7E,gBAAgB,CACjB,CAAC;AAEF,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,IAAI,CAC7D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EACxB,MAAM,CAAC,MAAM,EACb,OAAO,CACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAG5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,gCAAgC,EAChC,gBAAgB,EAChB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM;;EAEjB,CAAC;AAQH,eAAO,MAAM,mBAAmB,gLAyI7B,CAAC"}
1
+ {"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAI5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,gCAAgC,EAChC,gBAAgB,EAChB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM;;EAEjB,CAAC;AAQH,eAAO,MAAM,mBAAmB,gLA+M7B,CAAC"}
@@ -3,6 +3,7 @@ import * as Effect from "effect/Effect";
3
3
  import * as Option from "effect/Option";
4
4
  import * as Redacted from "effect/Redacted";
5
5
  import * as Stream from "effect/Stream";
6
+ import { AdoptPolicy } from "../../AdoptPolicy.js";
6
7
  import { isResolved } from "../../Diff.js";
7
8
  import * as Provider from "../../Provider.js";
8
9
  import { Resource } from "../../Resource.js";
@@ -67,7 +68,8 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
67
68
  create: Effect.fn(function* ({ id, news }) {
68
69
  const name = resolveName(id, news.name);
69
70
  const scopes = resolveScopes(news.scopes);
70
- const response = yield* createStoreSecret({
71
+ const adoptEnabled = yield* Effect.serviceOption(AdoptPolicy).pipe(Effect.map(Option.getOrElse(() => false)));
72
+ const create = createStoreSecret({
71
73
  accountId: news.store.accountId,
72
74
  storeId: news.store.storeId,
73
75
  body: [
@@ -79,15 +81,61 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
79
81
  },
80
82
  ],
81
83
  });
82
- const secret = response.result[0];
84
+ // Only swallow the conflict when adoption is opted-in via
85
+ // `AdoptPolicy`; otherwise surface `SecretNameAlreadyExists`
86
+ // so the caller learns the secret already exists rather than
87
+ // silently taking ownership of someone else's secret.
88
+ const created = adoptEnabled
89
+ ? yield* create.pipe(Effect.catchTag("SecretNameAlreadyExists", () => Effect.succeed(undefined)))
90
+ : yield* create;
91
+ if (created) {
92
+ const secret = created.result[0];
93
+ return {
94
+ secretId: secret.id,
95
+ secretName: secret.name,
96
+ storeId: secret.storeId,
97
+ accountId: news.store.accountId,
98
+ status: secret.status,
99
+ scopes,
100
+ comment: secret.comment ?? undefined,
101
+ };
102
+ }
103
+ // Adopt-on-conflict path. A secret with this name already
104
+ // exists in Cloudflare — typically because a previous deploy
105
+ // partially failed (e.g. the secret was created server-side
106
+ // but the response was lost so local state never recorded
107
+ // it). We re-fetch the existing secret and reconcile
108
+ // scopes/comment. The value itself cannot be read back from
109
+ // the API and we trust that an identically-named secret in
110
+ // the same store reflects the same intent (this matches how
111
+ // SecretsStore itself adopts the account-wide store).
112
+ const existing = yield* listStoreSecrets
113
+ .items({
114
+ accountId: news.store.accountId,
115
+ storeId: news.store.storeId,
116
+ })
117
+ .pipe(Stream.filter((s) => s.name === name), Stream.runHead, Effect.map(Option.getOrUndefined));
118
+ if (!existing) {
119
+ return yield* Effect.die(new Error(`Secret '${name}' reported as already existing in store ${news.store.storeId} but could not be found on lookup.`));
120
+ }
121
+ // listStoreSecrets does not surface scopes, so we have no way
122
+ // to detect drift; reconcile to the requested scopes/comment
123
+ // unconditionally. PATCH is cheap and idempotent.
124
+ const patched = yield* patchStoreSecret({
125
+ accountId: news.store.accountId,
126
+ storeId: news.store.storeId,
127
+ secretId: existing.id,
128
+ scopes,
129
+ comment: news.comment,
130
+ }).pipe(Effect.catchTag("SecretNotFound", () => Effect.succeed(undefined)));
83
131
  return {
84
- secretId: secret.id,
85
- secretName: secret.name,
86
- storeId: secret.storeId,
132
+ secretId: existing.id,
133
+ secretName: existing.name,
134
+ storeId: existing.storeId,
87
135
  accountId: news.store.accountId,
88
- status: secret.status,
136
+ status: patched?.status ?? existing.status,
89
137
  scopes,
90
- comment: secret.comment ?? undefined,
138
+ comment: patched?.comment ?? news.comment ?? existing.comment ?? undefined,
91
139
  };
92
140
  }),
93
141
  update: Effect.fn(function* ({ news, olds = {}, output }) {
@@ -1 +1 @@
1
- {"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SecretsStore.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,QAAQ,CACjC,yBAAyB,EACzB,EAAE,EACF;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,YAAY,yDAAoD,CAAC;AAE9E,eAAO,MAAM,oBAAoB,8MA2D9B,CAAC"}
1
+ {"version":3,"file":"SecretsStore.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,QAAQ,CACjC,yBAAyB,EACzB,EAAE,EACF;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,YAAY,yDAAoD,CAAC;AAE9E,eAAO,MAAM,oBAAoB,8MA4F9B,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import * as secretsStore from "@distilled.cloud/cloudflare/secrets-store";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as Option from "effect/Option";
4
+ import { AdoptPolicy } from "../../AdoptPolicy.js";
3
5
  import * as Provider from "../../Provider.js";
4
6
  import { Resource } from "../../Resource.js";
5
7
  import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
@@ -36,28 +38,50 @@ export const SecretsStoreProvider = () => Provider.effect(SecretsStore, Effect.g
36
38
  return {
37
39
  stables: ["storeId", "storeName", "accountId"],
38
40
  create: Effect.fn(function* () {
39
- const stores = yield* listStores({ accountId });
40
- if (stores.result.length > 0) {
41
- // No name specified — adopt the first (and likely only) store.
41
+ const adoptEnabled = yield* Effect.serviceOption(AdoptPolicy).pipe(Effect.map(Option.getOrElse(() => false)));
42
+ const adoptExisting = Effect.gen(function* () {
43
+ const stores = yield* listStores({ accountId });
42
44
  const first = stores.result[0];
45
+ if (!first)
46
+ return undefined;
43
47
  return {
44
48
  storeId: first.id,
45
49
  storeName: first.name,
46
50
  accountId,
47
51
  };
52
+ });
53
+ // Cloudflare allows exactly one Secrets Store per account, so
54
+ // any account that's been touched before may already have one.
55
+ // Only adopt it if the caller opted in via `AdoptPolicy`,
56
+ // otherwise let `createStore` surface MaximumStoresExceeded.
57
+ if (adoptEnabled) {
58
+ const adopted = yield* adoptExisting;
59
+ if (adopted)
60
+ return adopted;
48
61
  }
49
- // No store exists yet — create one.
50
- const response = yield* createStore({
62
+ const create = createStore({
51
63
  accountId,
52
64
  //`default_secrets_store` is the name cloudflare uses to create a secret store
53
65
  body: [{ name: "default_secrets_store" }],
54
66
  });
55
- const store = response.result[0];
56
- return {
57
- storeId: store.id,
58
- storeName: store.name,
59
- accountId,
60
- };
67
+ const response = adoptEnabled
68
+ ? yield* create.pipe(
69
+ // A concurrent process (or a previous partially-failed
70
+ // deploy) may have raced us between list and create.
71
+ Effect.catchTag("MaximumStoresExceeded", () => Effect.succeed(undefined)))
72
+ : yield* create;
73
+ if (response) {
74
+ const store = response.result[0];
75
+ return {
76
+ storeId: store.id,
77
+ storeName: store.name,
78
+ accountId,
79
+ };
80
+ }
81
+ const recovered = yield* adoptExisting;
82
+ if (recovered)
83
+ return recovered;
84
+ return yield* Effect.die(new Error(`Cloudflare reported MaximumStoresExceeded for account ${accountId} but no store could be listed.`));
61
85
  }),
62
86
  update: Effect.fn(function* ({ output }) {
63
87
  return output;
@@ -1 +1 @@
1
- {"version":3,"file":"SecretsStore.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SecretsStore.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/SecretsStore.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import * as SecretsStore from "@distilled.cloud/cloudflare/secrets-store";
2
2
  import * as workers from "@distilled.cloud/cloudflare/workers";
3
+ import * as Output from "alchemy/Output";
3
4
  import * as Effect from "effect/Effect";
4
5
  import * as Layer from "effect/Layer";
5
6
  import * as HttpClient from "effect/unstable/http/HttpClient";
@@ -9,6 +10,40 @@ import * as Cloudflare from "../../Cloudflare/Providers.ts";
9
10
  import * as CloudflareEnvironment from "../CloudflareEnvironment.ts";
10
11
  import { AlchemyContext } from "../../AlchemyContext.ts";
11
12
  import { State } from "../../State/State.ts";
13
+ export interface BootstrapOptions {
14
+ /**
15
+ * The name of the script to use for the state store.
16
+ * @default "alchemy-state-store"
17
+ */
18
+ workerName?: string;
19
+ /**
20
+ * Re-run the deploy even if the worker already exists in Cloudflare.
21
+ *
22
+ * Without this flag, an already-deployed worker is **adopted**: the
23
+ * auth-token secret is re-fetched via an edge probe and the local
24
+ * credentials file is refreshed, but no new code is uploaded. With
25
+ * `force: true` the full deploy runs again, redeploying the worker
26
+ * code and reconciling every resource in place.
27
+ */
28
+ force?: boolean;
29
+ }
30
+ /**
31
+ * Manually bootstrap (or repair) the Cloudflare-hosted HTTP State
32
+ * Store. Used by `alchemy bootstrap cloudflare`.
33
+ *
34
+ * The flow mirrors what {@link state} does on first use, but is
35
+ * exposed as a standalone effect so users can trigger it (or recover
36
+ * from a partially-failed previous deploy) explicitly:
37
+ *
38
+ * 1. Resume any in-progress local `CloudflareStateStore` stack.
39
+ * 2. If the worker already exists in Cloudflare and `force` is not
40
+ * set, adopt it: read the auth token via an edge-preview probe
41
+ * and persist credentials.
42
+ * 3. Otherwise run the full deploy with adoption enabled, sync local
43
+ * state into the deployed store, persist credentials, and delete
44
+ * the local stack.
45
+ */
46
+ export declare const bootstrap: (options?: BootstrapOptions) => Effect.Effect<void, AlchemyContext | import("effect/PlatformError").PlatformError | Config.ConfigError | AuthError | import("../../Stage.ts").Stage | import("../../State/State.ts").StateStoreError | Output.MissingSourceError | Output.InvalidReferenceError | import("@distilled.cloud/cloudflare").DefaultErrors | workers.InvalidRoute | SecretsStore.InvalidAccountId, AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | HttpClient.HttpClient | import("../../Cli/Cli.ts").Cli | Cloudflare.Credentials | CloudflareEnvironment.CloudflareEnvironment>;
12
47
  export declare const state: (props?: {
13
48
  /**
14
49
  * The name of the script to use for the state store.
@@ -1 +1 @@
1
- {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAE/D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAO5D,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAqB,MAAM,sBAAsB,CAAC;AAWhE,eAAO,MAAM,KAAK,GAAI,QAAQ;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,ySAuGE,CAAC;AAoCJ;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB;;;wsBA6D7B,CAAC"}
1
+ {"version":3,"file":"State.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/StateStore/State.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,2CAA2C,CAAC;AAC1E,OAAO,KAAK,OAAO,MAAM,qCAAqC,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,UAAU,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGvD,OAAO,KAAK,UAAU,MAAM,+BAA+B,CAAC;AAO5D,OAAO,KAAK,qBAAqB,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAqB,MAAM,sBAAsB,CAAC;AAWhE,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,GAAI,UAAS,gBAAqB,wkBA+DpD,CAAC;AAEL,eAAO,MAAM,KAAK,GAAI,QAAQ;IAC5B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,ySAuHE,CAAC;AAyIJ;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mBAAmB;;;wsBA6D7B,CAAC"}