@moinulmoin/eden 0.4.1 → 0.6.0

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.
package/NOTICE CHANGED
@@ -1,15 +1,6 @@
1
1
  Eden
2
2
  Copyright 2026 Eden contributors
3
3
 
4
- Cloudflare Containers
5
- @cloudflare/containers, version 0.3.7
6
- https://github.com/cloudflare/containers
7
-
8
- Eden's generated Worker host bundle includes software from
9
- `@cloudflare/containers`, distributed under MIT OR Apache-2.0. Eden
10
- redistributes that bundled software under the Apache-2.0 option included in
11
- LICENSE.
12
-
13
4
  Workflow SDK
14
5
  @workflow/world-postgres, version 5.0.0-beta.47
15
6
  https://github.com/vercel/workflow
package/README.md CHANGED
@@ -12,15 +12,15 @@ If you already have an Eve project, start with `eden deploy`.
12
12
  Use any one of these package managers:
13
13
 
14
14
  ```sh
15
- npm install --global @moinulmoin/eden@0.4.1
15
+ npm install --global @moinulmoin/eden@0.6.0
16
16
  ```
17
17
 
18
18
  ```sh
19
- pnpm add --global @moinulmoin/eden@0.4.1
19
+ pnpm add --global @moinulmoin/eden@0.6.0
20
20
  ```
21
21
 
22
22
  ```sh
23
- bun add --global @moinulmoin/eden@0.4.1
23
+ bun add --global @moinulmoin/eden@0.6.0
24
24
  ```
25
25
 
26
26
  Then confirm the CLI is available:
@@ -39,7 +39,7 @@ Bun can install Eden, but Eden still runs on Node. Do not use `bunx --bun`.
39
39
  - Wrangler authentication:
40
40
 
41
41
  ```sh
42
- npx wrangler@4.120.0 login
42
+ npx wrangler@4.147.0 login
43
43
  ```
44
44
 
45
45
  - Docker or OrbStack with Linux/amd64 container support
@@ -2,7 +2,7 @@ import { type EveCliEnvironment, type EveCliExecutionRequest } from "./eve.js";
2
2
  import { type EveNodeImage, type EveProjectBuildCandidate, type EveProjectBuilder } from "./eve-packaging.js";
3
3
  import { type EveHostRequirements, type EveRuntimeCleanup, type EveRuntimeImageDiscardRequest } from "./eve-runtime-image.js";
4
4
  import { type EveRuntimeConfig, type EveRuntimeInjection, type EveRuntimeProtectedStore } from "./eve-runtime-config.js";
5
- import type { EveHostConfig } from "@moinulmoin/eden-runtime-cloudflare";
5
+ import { type EveHostConfig } from "@moinulmoin/eden-runtime-cloudflare";
6
6
  export declare const DEFAULT_EVE_HOST_REQUIREMENTS: EveHostRequirements;
7
7
  export declare const DEFAULT_EVE_NODE_IMAGE: EveNodeImage;
8
8
  export type EvePreflightCheckStatus = "passed" | "failed" | "blocked" | "skipped";
@@ -21,6 +21,12 @@ export interface EvePreflightCandidate {
21
21
  export type EveDeploymentStatus = "deployed" | "failed" | "indeterminate";
22
22
  export interface EveDeploymentMetadata {
23
23
  readonly status: EveDeploymentStatus;
24
+ /**
25
+ * `create` is a first deploy onto an absent target; `update` is an
26
+ * in-place redeploy of a provably Eden-owned target that keeps the Worker,
27
+ * Durable Object classes, and durable state.
28
+ */
29
+ readonly operation: "create" | "update";
24
30
  readonly targetKey: string;
25
31
  readonly deploymentId: string;
26
32
  readonly workerName: string;
@@ -28,6 +34,9 @@ export interface EveDeploymentMetadata {
28
34
  readonly stableContainerInstanceName: string;
29
35
  readonly stableWorkersDevOrigin: string;
30
36
  readonly imageReference: string;
37
+ /** Present on updates: the superseded generation and its registry image. */
38
+ readonly supersededGenerationId?: string;
39
+ readonly supersededImageReference?: string;
31
40
  readonly runtimeVariableNames: readonly string[];
32
41
  readonly evidenceRetained: true;
33
42
  }
@@ -50,6 +59,7 @@ export type EveCloudflareTargetState = "absent" | "owned" | "unowned" | "mismatc
50
59
  export interface EveCloudflareReadRequest {
51
60
  readonly projectId: string;
52
61
  readonly sourceDigest: string;
62
+ readonly projectRoot: string;
53
63
  readonly environment: EveCliEnvironment;
54
64
  readonly name: string;
55
65
  }
@@ -65,6 +75,32 @@ export interface EveCloudflareReadResult {
65
75
  readonly message?: string;
66
76
  readonly remediation?: string;
67
77
  readonly identity?: EveDeploymentIdentityProof;
78
+ /**
79
+ * Which exact resources the read observed. `undefined` means the
80
+ * inventory could not be proven; `worker`/`container` booleans mean the
81
+ * exact names were present or absent without any ownership claim.
82
+ */
83
+ readonly observed?: {
84
+ readonly worker: boolean;
85
+ readonly container: boolean;
86
+ };
87
+ /**
88
+ * Provider-backed facts about the live target, read through the
89
+ * Cloudflare API (not self-asserted response headers, which any Worker
90
+ * can forge): the Container application's Durable Object namespace and
91
+ * the `EDEN_EVE_DEPLOYMENT_ID` plain-text var Eden stamps into every
92
+ * Worker it publishes. `settingsReadable` tells the ownership resolver
93
+ * whether a missing var is evidence of a foreign Worker or just an
94
+ * unreadable settings call.
95
+ */
96
+ readonly providerEvidence?: {
97
+ readonly containerApplicationId?: string;
98
+ readonly containerSchedulingPolicy?: string;
99
+ readonly containerNamespaceId?: string;
100
+ readonly workerDeploymentId?: string;
101
+ readonly workerContainerNamespaceId?: string;
102
+ readonly settingsReadable?: boolean;
103
+ };
68
104
  };
69
105
  }
70
106
  export type EveCloudflareReadRunner = (request: EveCloudflareReadRequest) => EveCloudflareReadResult | Promise<EveCloudflareReadResult>;
@@ -104,7 +140,10 @@ export interface EveDeploymentIdentity {
104
140
  readonly runtimeVariableNames: readonly string[];
105
141
  readonly runtimeRevisionHandle?: string;
106
142
  }
107
- export type EveDeploymentIdentityProof = Partial<EveDeploymentIdentity>;
143
+ export type EveDeploymentIdentityProof = Partial<EveDeploymentIdentity> & {
144
+ /** The deployment the serving Container verifiably started under; set only by a deployed Eden host that proves its running image before stamping. */
145
+ readonly startedDeploymentId?: string;
146
+ };
108
147
  export interface EveDeploymentPublicationRequest {
109
148
  readonly identity: EveDeploymentIdentity;
110
149
  readonly hostConfig: EveHostConfig;
@@ -213,19 +252,20 @@ export interface EvePreflightOptions {
213
252
  readonly destroyCloudflareRead?: EveDestroyCloudflareReadRunner;
214
253
  readonly deleteWorker?: EveWorkerDeleteRunner;
215
254
  readonly deleteContainer?: EveContainerDeleteRunner;
216
- readonly deleteRegistryImage?: EveRegistryImageDeleteRunner;
255
+ readonly deleteRegistryRepository?: EveRegistryRepositoryDeleteRunner;
217
256
  }
218
257
  export interface EveDestroyTargetRead {
219
258
  readonly workerExists: boolean;
220
259
  readonly containerApplicationId?: string;
221
260
  readonly accountId?: string;
222
261
  /**
223
- * Subset of the request's owned registry image tags (`repository:tag`)
224
- * still present in the managed registry. `undefined` means the reader
225
- * could not enumerate the registry; destroy then relies on the exact
226
- * delete outcomes only.
262
+ * Every `repository:tag` ref still present in the managed registry whose
263
+ * repository is one of the request's owned repositories — including the
264
+ * `rootfs-snapshot-*`/`rootfs-set-*` tags container snapshots create.
265
+ * `undefined` means the reader could not enumerate the registry; destroy
266
+ * then relies on the exact delete outcomes only.
227
267
  */
228
- readonly registryImagesPresent?: readonly string[];
268
+ readonly registryTagsPresent?: readonly string[];
229
269
  }
230
270
  export type EveDestroyCloudflareReadRunner = (request: EveDestroyCloudflareReadRequest) => EveDestroyTargetRead | Promise<EveDestroyTargetRead>;
231
271
  export type EveWorkerDeleteRunner = (request: {
@@ -234,15 +274,15 @@ export type EveWorkerDeleteRunner = (request: {
234
274
  export type EveContainerDeleteRunner = (request: {
235
275
  readonly applicationId: string;
236
276
  }) => "deleted" | "absent" | "indeterminate" | Promise<"deleted" | "absent" | "indeterminate">;
237
- export type EveRegistryImageDeleteRunner = (request: {
238
- readonly image: string;
277
+ export type EveRegistryRepositoryDeleteRunner = (request: {
278
+ readonly repository: string;
239
279
  }) => "deleted" | "absent" | "indeterminate" | Promise<"deleted" | "absent" | "indeterminate">;
240
280
  export type EveRuntimeConfigLoader = (path: string, cwd: string) => EveRuntimeConfig | Promise<EveRuntimeConfig>;
241
281
  export interface EveDestroyCloudflareReadRequest {
242
282
  readonly workerName: string;
243
283
  readonly containerApplicationName: string;
244
- /** Exact `repository:tag` image refs recorded for this target. */
245
- readonly registryImages?: readonly string[];
284
+ /** Registry repository names this target provably owns. */
285
+ readonly registryRepositories?: readonly string[];
246
286
  }
247
287
  /**
248
288
  * Container applications in the account that belong to this exact target.