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 +77 -1
- package/SURFACE.md +1 -1
- package/package.json +7 -7
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.
|
|
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sproutboat",
|
|
3
|
-
"version": "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.
|
|
67
|
+
"@sproutboat/runtime": "^0.30.0",
|
|
68
68
|
"@sproutboat/toolchain": "^0.15.0",
|
|
69
|
-
"@sproutboat/wire": "^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.
|
|
82
|
-
"@sproutboat/cli-darwin-x64": "0.
|
|
83
|
-
"@sproutboat/cli-linux-arm64": "0.
|
|
84
|
-
"@sproutboat/cli-linux-x64": "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"
|