@vestra-player/sdk 1.5.30 → 1.5.31
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 +11 -0
- package/dist/manifest.js +1 -1
- package/dist/plugin/services.d.ts +2 -1
- package/dist/plugin/services.js +2 -1
- package/dist/plugin/testing.js +1 -1
- package/dist/plugin/types.d.ts +1458 -49
- package/dist/plugin/values.d.ts +2 -2
- package/dist/plugin/values.js +2 -2
- package/dist/processing.js +1 -1
- package/llms-full.txt +1166 -39
- package/llms.txt +22 -22
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.5.31
|
|
4
|
+
|
|
5
|
+
**Who must change: nobody.** No API changes, `apiVersion` stays `vestra/1`, no player version needed. Only documentation, its checks and the generated `llms-full.txt` change.
|
|
6
|
+
|
|
7
|
+
- **The Commands, Playback and Services categories reach the full reference standard** (they are now in `STRICT_CATEGORIES`, so CI keeps them complete): `Commands`, `Command`, `Host` and their option types; `Player`, `Media`, `Scrub`, `Stream` and the playback state and stream types; `Storage`, `JsonStore`, `SessionStorage`, `Secrets`, `Clipboard`, `System`, `Tools`, `Power`. Every method has an example (what it does and how it works), `@capability`, `@since` and a `@throws` per error code it can reject with, checked against the SDK and the player's source; every type has `@category`, so the API reference lists them under their category instead of "Other". Methods with an explained example: 75 of 191 → 121.
|
|
8
|
+
- Error codes the reference now names, from the player's source: a control while nothing is open is `invalid` (`close` is not: closing with nothing open just succeeds); `setRate` takes 0.05–10 (the player's own keys stay within 0.25–4); `setOutput`'s volume outside 0–200 is `invalid`; `Stream.stop` rejects only when closing the source fails, and releases the stream either way.
|
|
9
|
+
- **Corrections from the review against the player's source.** `stale` means any change of the source since the state a call is based on: another file or a close, but also any pause, seek or speed change by the user or another plugin. A second sequence provider is refused with `conflict` (`sequence-taken`) without failing activation, and the built-in playlist registers first. `VESTRA_FFMPEG` / `VESTRA_FFPROBE` replace the `PATH` search instead of coming before it. More `@throws`: `capability` for `Secrets` and `Clipboard`; for a generated stream `busy` and `unsupported` for `seek` and `setRate`, `busy` for `setPaused` and `unsupported` for `restart`; `replaced`, `busy` and the resolver failures (`backend`, `unsupported`, `unavailable`) for `open`; `capability` for `Command.ready`; `aborted` for `openStream`; `stale` and `unsupported` for `Scrub.seek`; `disabled` and `unsupported` (players before 0.5.5) for session storage; `failed` and `timeout` (macOS) for `System`. *Store a plugin's data* no longer promises that a quit right after `save` loses nothing (a stopping plugin gets about 300 ms).
|
|
10
|
+
- New how-to guides: *Control playback* (reading and following the state, `stale` and `ifCurrent`, `Media`, core actions, Next and Previous) and *Store a plugin's data* (settings files, session values, secrets, your own files).
|
|
11
|
+
- `doc-lint`: `--list explained` lists the methods without an explained example; its summary line no longer says "Not enforced yet" (every example has been enforced since 1.5.30).
|
|
12
|
+
- Comments and docs name the player's host files at their new places (`src/host/src/packages/manifest.rs`, `ui/ui_image.rs`, `ui/ui_values.rs`, `playback/effects.rs`, `ui/theme.rs`).
|
|
13
|
+
|
|
3
14
|
## 1.5.30
|
|
4
15
|
|
|
5
16
|
**Who must change: nobody.** No API changes, `apiVersion` stays `vestra/1`, no player version needed. Only documentation, its checks and the generated `llms-full.txt` change.
|
package/dist/manifest.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The manifest rules `vestra-plugin check` applies; the same table as the
|
|
3
|
-
* player's `host/src/manifest.rs` (the player's tests compare the limits).
|
|
3
|
+
* player's `src/host/src/packages/manifest.rs` (the player's tests compare the limits).
|
|
4
4
|
* Paths in the manifest are checked against the plugin directory.
|
|
5
5
|
*/
|
|
6
6
|
import { existsSync, lstatSync, readFileSync, realpathSync } from "node:fs";
|
|
@@ -69,7 +69,8 @@ export declare function system(scope: ScopeImpl): System;
|
|
|
69
69
|
* too long. Values are 1–1024 bytes counted in UTF-8, so the check uses
|
|
70
70
|
* `Buffer.byteLength`; `secrets.set` would refuse other values with
|
|
71
71
|
* `invalid`. The store itself can still refuse (`unsupported` without a
|
|
72
|
-
* system store, `unavailable`
|
|
72
|
+
* system store, `unavailable` when it cannot be reached, `failed` when the
|
|
73
|
+
* user denies access): only
|
|
73
74
|
* those codes get the "could not be saved" message, anything else (a
|
|
74
75
|
* missing `secrets` capability) is a bug and is thrown on.
|
|
75
76
|
* ```ts
|
package/dist/plugin/services.js
CHANGED
|
@@ -413,7 +413,8 @@ export function system(scope) {
|
|
|
413
413
|
* too long. Values are 1–1024 bytes counted in UTF-8, so the check uses
|
|
414
414
|
* `Buffer.byteLength`; `secrets.set` would refuse other values with
|
|
415
415
|
* `invalid`. The store itself can still refuse (`unsupported` without a
|
|
416
|
-
* system store, `unavailable`
|
|
416
|
+
* system store, `unavailable` when it cannot be reached, `failed` when the
|
|
417
|
+
* user denies access): only
|
|
417
418
|
* those codes get the "could not be saved" message, anything else (a
|
|
418
419
|
* missing `secrets` capability) is a bug and is thrown on.
|
|
419
420
|
* ```ts
|
package/dist/plugin/testing.js
CHANGED
|
@@ -3080,7 +3080,7 @@ export class TestHost {
|
|
|
3080
3080
|
this.secrets.set(name, String(p.value));
|
|
3081
3081
|
},
|
|
3082
3082
|
"secrets.delete": (p) => void this.secrets.delete(String(p.name)),
|
|
3083
|
-
// As the player (host/src/session_storage.rs).
|
|
3083
|
+
// As the player (src/host/src/session_storage.rs).
|
|
3084
3084
|
"storage.session.get": (p) => {
|
|
3085
3085
|
const key = sessionKey(p.key);
|
|
3086
3086
|
return this.sessionStorage.has(key)
|