sproutboat 0.29.0 → 0.31.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/CHANGELOG.md CHANGED
@@ -10,6 +10,81 @@ maintained going forward by the `release` skill.
10
10
 
11
11
  ## Unreleased
12
12
 
13
+ ## [0.31.0] - 2026-10-23
14
+
15
+ Built on `@sproutboat/runtime` 0.30.0, `@sproutboat/toolchain` 0.15.0 and
16
+ `@sproutboat/wire` 0.19.0.
17
+
18
+ ### Added
19
+
20
+ - More of Durable Objects like workerd, from compatibility date `2026-10-29`:
21
+ - **RPC on stubs.** In a class that extends `DurableObject` from
22
+ `cloudflare:workers`, `await stub.method(args)` calls the method through
23
+ the object's input gate.
24
+ - Arguments and results are copied as structured clone does, so Date, Map,
25
+ BigInt, `Uint8Array` and the like keep their type.
26
+ - A function argument becomes a callback.
27
+ - A getter is read with `await stub.prop`.
28
+ - A throw rejects the caller with the same error.
29
+ - **Ids are 64 hex digits** and have `equals()` and `name`. `idFromString`
30
+ rejects malformed ids and ids from another namespace.
31
+ - `namespace.getByName(name)`, `namespace.jurisdiction()`, and `stub.id` and
32
+ `stub.name`.
33
+ - **`ctx.storage.sql`**: each object has its own SQLite database.
34
+ - `exec()` returns cursors with `toArray()`, `one()`, `raw()` and iteration.
35
+ - `storage.transactionSync()` and `sql.databaseSize` are available.
36
+ - Foreign keys are enforced.
37
+ - `BEGIN` and `SAVEPOINT` are refused, as on Workers.
38
+ - On the sproutd Durable Objects suite, these bring do.js from 67 to 93 of 105
39
+ and do-rpc.js from 1 to 17 of 17.
40
+
41
+ ### Changed
42
+
43
+ - From `2026-10-29`, an exception thrown inside a Durable Object rejects
44
+ `stub.fetch()` with that error, as on Workers. It used to come back as a 500
45
+ response.
46
+ - Moving an app to `2026-10-29` keeps its Durable Object data. Storage and
47
+ alarms of objects created with `idFromName` before that date move to the new
48
+ 64-hex ids on first use. `idFromString` still accepts the `name:` and `uid:`
49
+ ids that earlier dates gave out.
50
+
51
+ ## [0.30.0] - 2026-10-23
52
+
53
+ Built on `@sproutboat/runtime` 0.29.1, `@sproutboat/toolchain` 0.15.0 and
54
+ `@sproutboat/wire` 0.18.0.
55
+
56
+ ### Fixed
57
+
58
+ - Queues lost data in standalone executables. `sendBatch()` stored every
59
+ message body as the text `"[object Object]"`, and a consumer whose `queue()`
60
+ threw had its whole batch acked. Now the bodies arrive intact, and a throw
61
+ retries every message the consumer had not acked or retried, as on Workers.
62
+ `send()` and `sendBatch()` also honour `delaySeconds` there. These fixes
63
+ apply at every compatibility date.
64
+
65
+ ### Added
66
+
67
+ - Durable Objects like workerd from compatibility date `2026-10-28`:
68
+ - An input gate: while a storage read is in flight, no other request or alarm
69
+ enters the object, so read-then-write updates are no longer lost under
70
+ concurrency. Ten concurrent increments used to end at 1.
71
+ - Storage methods return Promises, and `transaction()` and `sync()` are
72
+ available.
73
+ - Values keep their type: Date, Map, Set, RegExp, BigInt, `Uint8Array`,
74
+ `DataView`, `ArrayBuffer` and more. Other typed arrays throw a DataCloneError
75
+ in `put()`, for now: store their bytes in a `Uint8Array`.
76
+ `put(key, undefined)` throws, as on Workers.
77
+ - `list()` takes `start`, `startAfter`, `end` and `reverse`.
78
+ - `deleteAll()` also removes the alarm.
79
+ Earlier dates keep synchronous JSON storage.
80
+ - From `2026-10-28`, `sendBatch(messages, { delaySeconds })` delays the whole
81
+ batch.
82
+
83
+ ### Changed
84
+
85
+ - A Durable Object `list({ prefix })` matches the prefix exactly at every date.
86
+ `_` and `%` were wildcards, and case was ignored.
87
+
13
88
  ## [0.29.0] - 2026-10-23
14
89
 
15
90
  Built on `@sproutboat/runtime` 0.28.0, `@sproutboat/toolchain` 0.15.0 and
@@ -1209,7 +1284,8 @@ its own package.
1209
1284
  - Renamed the package to `sproutboat` (was `@sproutboat/cli`); dropped the
1210
1285
  `sprout` bin alias in favour of a user-defined shell alias.
1211
1286
 
1212
- [Unreleased]: https://github.com/baronunread/sproutboat-cli/compare/v0.24.0...HEAD
1287
+ [Unreleased]: https://github.com/baronunread/sproutboat-cli/compare/v0.31.0...HEAD
1288
+ [0.31.0]: https://github.com/baronunread/sproutboat-cli/compare/v0.30.0...v0.31.0
1213
1289
  [0.24.0]: https://github.com/baronunread/sproutboat-cli/compare/v0.23.0...v0.24.0
1214
1290
  [0.19.0]: https://github.com/baronunread/sproutboat-cli/compare/v0.18.0...v0.19.0
1215
1291
  [0.18.0]: https://github.com/baronunread/sproutboat-cli/compare/v0.17.0...v0.18.0
package/SURFACE.md CHANGED
@@ -3,7 +3,7 @@
3
3
  > Generated by `src/surface.test.ts` from `src/surface.ts` + the pinned
4
4
  > toolchain constants. Do not edit by hand — run `UPDATE_SURFACE=1 bun test`.
5
5
 
6
- **Package:** `sproutboat` 0.29.0
6
+ **Package:** `sproutboat` 0.31.0
7
7
 
8
8
  ## Commands
9
9
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sproutboat",
3
- "version": "0.29.0",
3
+ "version": "0.31.0",
4
4
  "description": "Wrangler-shaped CLI for Sproutboat. Deploys workers to any control plane via --api-url / SPROUTBOAT_API_URL.",
5
5
  "keywords": [
6
6
  "cli",
@@ -64,9 +64,9 @@
64
64
  "@sproutboat/artifact": "^0.3.0",
65
65
  "@sproutboat/assets": "^0.3.0",
66
66
  "@sproutboat/config": "^0.5.0",
67
- "@sproutboat/runtime": "^0.28.0",
67
+ "@sproutboat/runtime": "^0.30.0",
68
68
  "@sproutboat/toolchain": "^0.15.0",
69
- "@sproutboat/wire": "^0.17.0"
69
+ "@sproutboat/wire": "^0.19.0"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@oxlint/plugins": "1.85.0",
@@ -78,10 +78,10 @@
78
78
  "typescript": "7.0.2"
79
79
  },
80
80
  "optionalDependencies": {
81
- "@sproutboat/cli-darwin-arm64": "0.29.0",
82
- "@sproutboat/cli-darwin-x64": "0.29.0",
83
- "@sproutboat/cli-linux-arm64": "0.29.0",
84
- "@sproutboat/cli-linux-x64": "0.29.0"
81
+ "@sproutboat/cli-darwin-arm64": "0.31.0",
82
+ "@sproutboat/cli-darwin-x64": "0.31.0",
83
+ "@sproutboat/cli-linux-arm64": "0.31.0",
84
+ "@sproutboat/cli-linux-x64": "0.31.0"
85
85
  },
86
86
  "engines": {
87
87
  "node": ">=18"