sproutboat 0.10.2 → 0.10.3
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 +26 -1
- package/SURFACE.md +1 -1
- package/package.json +3 -3
- package/types/sproutboat.d.ts +5 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,30 @@ maintained going forward by the `release` skill.
|
|
|
10
10
|
|
|
11
11
|
## [Unreleased]
|
|
12
12
|
|
|
13
|
+
## [0.10.3] - 2026-09-11
|
|
14
|
+
### Added
|
|
15
|
+
- Rate-limiter result carries `resetAt`: `env.<NAME>.limit({ key })` now returns
|
|
16
|
+
`{ success, resetAt }`, where `resetAt` is epoch ms for when the fixed window
|
|
17
|
+
rolls, so a `429` can send an accurate `Retry-After`
|
|
18
|
+
(baronunread/sproutboat#69). Additive; callers reading only `success` are
|
|
19
|
+
unaffected.
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- `@sproutboat/runtime` and `@sproutboat/wire` bumped to `^0.5.0`; they carry
|
|
23
|
+
the `resetAt` value the rate-limiter type now declares.
|
|
24
|
+
|
|
25
|
+
### Docs
|
|
26
|
+
- `docs/standalone.md`: dropped the stale "outbound `fetch()` speaks `http://`
|
|
27
|
+
only" bullet. Standalone binaries link BearSSL and verify HTTPS against the
|
|
28
|
+
Mozilla root set (see "TLS, in both directions"). Added a
|
|
29
|
+
dev/standalone/deployed parity note: every binding op, rate limiters and
|
|
30
|
+
`request.cf.clientIp` with `SB_TRUSTED_PROXIES` included, behaves the same
|
|
31
|
+
under `sproutboat dev` as in a standalone binary and a deployed sprout.
|
|
32
|
+
- `capability-http-sync-v0.md`: documented async handlers. `fetch` may return a
|
|
33
|
+
promise it creates (not a `.then()`-chained one, which hangs); async responses
|
|
34
|
+
omit `x-sb-cpu-ms`; `crypto.subtle` digest/sign/verify are async in signature
|
|
35
|
+
only over synchronous inline C, so per-request hashing costs no I/O.
|
|
36
|
+
|
|
13
37
|
## [0.10.2] - 2026-09-11
|
|
14
38
|
### Fixed
|
|
15
39
|
- The one-time Zig download no longer depends on ziglang.org being reachable.
|
|
@@ -370,7 +394,8 @@ its own package.
|
|
|
370
394
|
- Renamed the package to `sproutboat` (was `@sproutboat/cli`); dropped the
|
|
371
395
|
`sprout` bin alias in favour of a user-defined shell alias.
|
|
372
396
|
|
|
373
|
-
[Unreleased]: https://github.com/baronunread/sproutboat-cli/compare/v0.10.
|
|
397
|
+
[Unreleased]: https://github.com/baronunread/sproutboat-cli/compare/v0.10.3...HEAD
|
|
398
|
+
[0.10.3]: https://github.com/baronunread/sproutboat-cli/compare/v0.10.2...v0.10.3
|
|
374
399
|
[0.10.2]: https://github.com/baronunread/sproutboat-cli/compare/v0.10.1...v0.10.2
|
|
375
400
|
[0.10.1]: https://github.com/baronunread/sproutboat-cli/compare/v0.10.0...v0.10.1
|
|
376
401
|
[0.10.0]: https://github.com/baronunread/sproutboat-cli/compare/v0.9.0...v0.10.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.10.
|
|
6
|
+
**Package:** `sproutboat` 0.10.3 · runs on Bun (use `bunx`, not `npx`)
|
|
7
7
|
|
|
8
8
|
## Commands
|
|
9
9
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sproutboat",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.3",
|
|
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",
|
|
@@ -63,9 +63,9 @@
|
|
|
63
63
|
"@sproutboat/artifact": "^0.2.0",
|
|
64
64
|
"@sproutboat/assets": "^0.2.0",
|
|
65
65
|
"@sproutboat/config": "^0.3.0",
|
|
66
|
-
"@sproutboat/runtime": "^0.
|
|
66
|
+
"@sproutboat/runtime": "^0.5.0",
|
|
67
67
|
"@sproutboat/toolchain": "^0.3.0",
|
|
68
|
-
"@sproutboat/wire": "^0.
|
|
68
|
+
"@sproutboat/wire": "^0.5.0",
|
|
69
69
|
"esbuild": "^0.28.2"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
package/types/sproutboat.d.ts
CHANGED
|
@@ -182,9 +182,13 @@ declare global {
|
|
|
182
182
|
* A rate-limiter binding (#69). `limit` and `period` are fixed in
|
|
183
183
|
* sproutboat.jsonc; `limit({ key })` counts one call against a fixed window
|
|
184
184
|
* and reports whether the key is still under the cap.
|
|
185
|
+
*
|
|
186
|
+
* `resetAt` is epoch milliseconds for when the window rolls and the count
|
|
187
|
+
* clears — the same for a hit or a miss. Turn a rejection into a header with
|
|
188
|
+
* `Retry-After: Math.ceil((resetAt - Date.now()) / 1000)`.
|
|
185
189
|
*/
|
|
186
190
|
interface RateLimit {
|
|
187
|
-
limit(options: { key: string }): { success: boolean };
|
|
191
|
+
limit(options: { key: string }): { success: boolean; resetAt: number };
|
|
188
192
|
}
|
|
189
193
|
|
|
190
194
|
// ------------------------------------ Crypto
|