@vestra-player/sdk 1.5.35 → 1.5.36

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
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.5.36
4
+
5
+ **Who must change: nobody.** No API changes, `apiVersion` stays `vestra/1`, no player version needed.
6
+
7
+ - **`BUILTIN_COMMANDS`** lists the Picture Adjustments plugin's (`vestra.video` 1.1.8) `Video ▸ GPU Rendering (Experimental)` (`video.gpu-rendering`, no default keys), after the color steps. Its `Video ▸ Restart Player to Apply` (`video.gpu-rendering.restart`) appears only while a rendering choice waits for the next start and is not listed, like other items of a passing state; the reference says so.
8
+
3
9
  ## 1.5.35
4
10
 
5
11
  **Who must change: nobody.** Additions only, `apiVersion` stays `vestra/1`. The new API needs player 0.5.13 (`"minPlayerVersion": "0.5.13"`): older players leave `SystemInfo.renderingReason` out, refuse `rendering.state` as an unknown request (`unsupported`), and do not load a plugin that declares the new capability `rendering.manage`. A plugin that uses none of it sees no difference.
@@ -205,7 +205,10 @@ export interface BuiltinCommand {
205
205
  * a menu place and default keys that do not collide with the player's (the
206
206
  * user's own changes come on top; see {@link @vestra-player/sdk!Bindings | Bindings}). Menu items built
207
207
  * from content (tracks, recent files, output devices) are not listed; their
208
- * placeholders (`No Audio Tracks`) are. The player's tests check that this
208
+ * placeholders (`No Audio Tracks`) are. Items that appear only in a
209
+ * passing state are not listed either: the Picture Adjustments plugin's
210
+ * `Video ▸ Restart Player to Apply` (`video.gpu-rendering.restart`), shown
211
+ * while a rendering choice waits for the next start. The player's tests check that this
209
212
  * list agrees with what the player and its built-in plugins register.
210
213
  *
211
214
  * @example Check in a test that a default key is still free
package/dist/commands.js CHANGED
@@ -464,6 +464,7 @@ vestra.video | video.saturation.down | Video ▸ Saturation -1% | Y
464
464
  vestra.video | video.saturation.up | Video ▸ Saturation +1% | U
465
465
  vestra.video | video.hue.down | Video ▸ Hue -1% | I
466
466
  vestra.video | video.hue.up | Video ▸ Hue +1% | O
467
+ vestra.video | video.gpu-rendering | Video ▸ GPU Rendering (Experimental)
467
468
  host | volume-up | Audio ▸ Volume + | ArrowUp, Mouse:WheelUp
468
469
  host | volume-down | Audio ▸ Volume − | ArrowDown, Mouse:WheelDown
469
470
  host | mute | Audio ▸ Mute | M
@@ -577,7 +578,10 @@ vestra.playlist | playlist.settings | (Playlist Settings…) | F5 | panel
577
578
  * a menu place and default keys that do not collide with the player's (the
578
579
  * user's own changes come on top; see {@link @vestra-player/sdk!Bindings | Bindings}). Menu items built
579
580
  * from content (tracks, recent files, output devices) are not listed; their
580
- * placeholders (`No Audio Tracks`) are. The player's tests check that this
581
+ * placeholders (`No Audio Tracks`) are. Items that appear only in a
582
+ * passing state are not listed either: the Picture Adjustments plugin's
583
+ * `Video ▸ Restart Player to Apply` (`video.gpu-rendering.restart`), shown
584
+ * while a rendering choice waits for the next start. The player's tests check that this
581
585
  * list agrees with what the player and its built-in plugins register.
582
586
  *
583
587
  * @example Check in a test that a default key is still free
package/llms-full.txt CHANGED
@@ -1,4 +1,4 @@
1
- # @vestra-player/sdk 1.5.35: full reference
1
+ # @vestra-player/sdk 1.5.36: full reference
2
2
 
3
3
  > Everything needed to write a Vestra Player plugin (plugin API `vestra/1`): the guides, every public declaration of `@vestra-player/sdk` and `@vestra-player/sdk/testing` with its documentation, and the complete source of the example plugins. Generated from the SDK's sources by scripts/llms.mjs; the short index is llms.txt.
4
4
 
@@ -3175,6 +3175,7 @@ Every command the player (`host`) and its built-in plugins register when the pla
3175
3175
  | Video ▸ Saturation +1% | `U` | `vestra.video/video.saturation.up` |
3176
3176
  | Video ▸ Hue -1% | `I` | `vestra.video/video.hue.down` |
3177
3177
  | Video ▸ Hue +1% | `O` | `vestra.video/video.hue.up` |
3178
+ | Video ▸ GPU Rendering (Experimental) | | `vestra.video/video.gpu-rendering` |
3178
3179
  | Audio ▸ Volume + | `ArrowUp`, `Mouse:WheelUp` | `host/volume-up` |
3179
3180
  | Audio ▸ Volume − | `ArrowDown`, `Mouse:WheelDown` | `host/volume-down` |
3180
3181
  | Audio ▸ Mute | `M` | `host/mute` |
@@ -14329,7 +14330,10 @@ menu last): their key paths, default bindings and owners. Use it to pick
14329
14330
  a menu place and default keys that do not collide with the player's (the
14330
14331
  user's own changes come on top; see Bindings). Menu items built
14331
14332
  from content (tracks, recent files, output devices) are not listed; their
14332
- placeholders (`No Audio Tracks`) are. The player's tests check that this
14333
+ placeholders (`No Audio Tracks`) are. Items that appear only in a
14334
+ passing state are not listed either: the Picture Adjustments plugin's
14335
+ `Video ▸ Restart Player to Apply` (`video.gpu-rendering.restart`), shown
14336
+ while a rendering choice waits for the next start. The player's tests check that this
14333
14337
  list agrees with what the player and its built-in plugins register.
14334
14338
 
14335
14339
  ```ts
package/llms.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  # Vestra Player SDK
2
2
 
3
- > @vestra-player/sdk 1.5.35: write plugins for Vestra Player in TypeScript (plugin API `vestra/1`). A plugin is a folder with `manifest.json` and an entry module whose default export `activate(plugin)` the player calls; it runs in its own Node.js process. Everything a plugin creates (commands, windows, panels, filters, listeners…) is a handle that is released automatically when the plugin stops. L<n>: a line of llms-full.txt (next to this file), which has every page, declaration and example.
3
+ > @vestra-player/sdk 1.5.36: write plugins for Vestra Player in TypeScript (plugin API `vestra/1`). A plugin is a folder with `manifest.json` and an entry module whose default export `activate(plugin)` the player calls; it runs in its own Node.js process. Everything a plugin creates (commands, windows, panels, filters, listeners…) is a handle that is released automatically when the plugin stops. L<n>: a line of llms-full.txt (next to this file), which has every page, declaration and example.
4
4
 
5
5
  **Rules**
6
6
 
@@ -79,7 +79,7 @@ export default async function activate(plugin: Plugin) {
79
79
  - `rendering.manage`: Rendering.setPreference/restartPlayer
80
80
  - No capability: `tools`, `storage`, `system`, `app`, `ui` (images and Markdown), `i18n`, reading window.state, appearance.theme, packages.list and rendering.state. Details: L2698–2757.
81
81
 
82
- **Test**: `tests/*.test.ts` with `node:test`, run by `vestra-plugin test`. `startPlugin(activate, { directory: new URL("..", import.meta.url) })` from `@vestra-player/sdk/testing` returns `{ host, stop }`, `host` an in-memory player (TestHost): act (`host.command(id).run()`, `host.press(key)`), `await host.settle()`, assert on `host.osd`, `host.window(id).props`… Guide: L2069–2257; TestHost: L12483.
82
+ **Test**: `tests/*.test.ts` with `node:test`, run by `vestra-plugin test`. `startPlugin(activate, { directory: new URL("..", import.meta.url) })` from `@vestra-player/sdk/testing` returns `{ host, stop }`, `host` an in-memory player (TestHost): act (`host.command(id).run()`, `host.press(key)`), `await host.settle()`, assert on `host.osd`, `host.window(id).props`… Guide: L2069–2257; TestHost: L12484.
83
83
 
84
84
  **Command line**
85
85
 
@@ -107,7 +107,7 @@ export default async function activate(plugin: Plugin) {
107
107
  - `limit`: A player-wide limit was reached, a property value is over the limits of PropValue
108
108
  - `reserved`: The id is `vestra` or starts with `vestra.`
109
109
  - `versionMismatch`: The package needs a newer player
110
- - Others: PluginError, llms-full.txt L3758.
110
+ - Others: PluginError, llms-full.txt L3759.
111
111
 
112
112
  ## Reference
113
113
 
@@ -116,30 +116,30 @@ export default async function activate(plugin: Plugin) {
116
116
  - Concepts: How a plugin runs L238–408; Commands, menus and key bindings L409–520; Playback state, controls and sources L521–666; Video and audio processing L667–745; Windows, panels, settings pages, dialogs and the OSD L746–1034
117
117
  - How-to: Control playback L1035–1163; Store a plugin's data L1164–1231; Load subtitles from a plugin L1232–1310; Keep a slider responsive while dragging L1311–1485; Remember a window's state between runs L1486–1615; Offer a GPU rendering switch L1616–1736; Translate a plugin L1737–1920; Migrate a plugin to English source text L1921–2068; Test a plugin L2069–2257; Publish a plugin L2258–2346; Migrating off package rollback (1.5.16, removed in 1.5.17) L2347–2422
118
118
  - Guidelines: Interface guidelines L2423–2530; Menu guidelines L2531–2627
119
- - Reference: Manifest L2628–2697; Capabilities L2698–2757; Limits L2758–2887; Commands, menus and bindings L2888–3370; Platforms L3371–3400; Theme L3401–3622; Command line L3623–3680
120
- - [API: @vestra-player/sdk](https://vestrasys.github.io/vestra-player-sdk/modules/_vestra-player_sdk.html): L3681–12167
121
- - [API: @vestra-player/sdk/testing](https://vestrasys.github.io/vestra-player-sdk/modules/_vestra-player_sdk_testing.html): L12168–14823
119
+ - Reference: Manifest L2628–2697; Capabilities L2698–2757; Limits L2758–2887; Commands, menus and bindings L2888–3371; Platforms L3372–3401; Theme L3402–3623; Command line L3624–3681
120
+ - [API: @vestra-player/sdk](https://vestrasys.github.io/vestra-player-sdk/modules/_vestra-player_sdk.html): L3682–12168
121
+ - [API: @vestra-player/sdk/testing](https://vestrasys.github.io/vestra-player-sdk/modules/_vestra-player_sdk_testing.html): L12169–14827
122
122
 
123
123
  ## API
124
124
 
125
125
  Where each `plugin.<module>` is declared:
126
126
 
127
- - Plugin L4080, Scope L3833, PluginError L3758, Disposable L3696
128
- - Commands L4477; Windows L5414; Panels L6860; Dialogs L7528; Player L8269; video: VideoFilter L9149, VideoView L9249, RenderOptions L9336; audio: AudioFilter L9194; Subtitles L9483; media: MediaCapture L9887; Resolvers L10117; Packages L10515; Osd L9014; Host L8856; Clipboard L10843; Power L10930; Tools L10989; Storage L11141; System L11340; Secrets L11420; window: MainWindow L7177; App L7357; Rendering L11683; Bindings L10743; Ui L4766; Timeline L7089; Drops L6107; Appearance L6188; I18n L6421; Settings L6704.
127
+ - Plugin L4081, Scope L3834, PluginError L3759, Disposable L3697
128
+ - Commands L4478; Windows L5415; Panels L6861; Dialogs L7529; Player L8270; video: VideoFilter L9150, VideoView L9250, RenderOptions L9337; audio: AudioFilter L9195; Subtitles L9484; media: MediaCapture L9888; Resolvers L10118; Packages L10516; Osd L9015; Host L8857; Clipboard L10844; Power L10931; Tools L10990; Storage L11142; System L11341; Secrets L11421; window: MainWindow L7178; App L7358; Rendering L11684; Bindings L10744; Ui L4767; Timeline L7090; Drops L6108; Appearance L6189; I18n L6422; Settings L6705.
129
129
 
130
130
  ## Examples
131
131
 
132
132
  Tested plugins in [examples/](https://github.com/vestrasys/vestra-player-sdk/tree/main/examples):
133
133
 
134
- - hello: The README Quick start: one menu command and an on-screen message. L15258–15347
135
- - blur: A tool window with one slider that blurs the playing video. L15348–15609
136
- - signal-generator: Generates its own video and audio: colour bars and a 1 kHz tone. L15610–15942
137
- - bookmark: A tool window bound to the playback state: remember the position and jump back to it. L15943–16129
138
- - panel-menu: A sidebar panel with its own right-click menu. L16130–16338
139
- - menus: Radio menu items, separator groups and a menu item whose title changes. L16339–16498
140
- - theme-widgets: A tool window drawn with the player's theme and widgets. L16499–16662
141
- - markdown: A window that shows a Markdown document. L16663–16859
142
- - i18n: A plugin in the player's language: English source text, a Chinese translation. L16860–17027
134
+ - hello: The README Quick start: one menu command and an on-screen message. L15262–15351
135
+ - blur: A tool window with one slider that blurs the playing video. L15352–15613
136
+ - signal-generator: Generates its own video and audio: colour bars and a 1 kHz tone. L15614–15946
137
+ - bookmark: A tool window bound to the playback state: remember the position and jump back to it. L15947–16133
138
+ - panel-menu: A sidebar panel with its own right-click menu. L16134–16342
139
+ - menus: Radio menu items, separator groups and a menu item whose title changes. L16343–16502
140
+ - theme-widgets: A tool window drawn with the player's theme and widgets. L16503–16666
141
+ - markdown: A window that shows a Markdown document. L16667–16863
142
+ - i18n: A plugin in the player's language: English source text, a Chinese translation. L16864–17031
143
143
 
144
144
  ## Optional
145
145
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vestra-player/sdk",
3
- "version": "1.5.35",
3
+ "version": "1.5.36",
4
4
  "description": "Plugin API types, test host and plugin CLI for Vestra Player (apiVersion vestra/1)",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {