@deck-shelves/host 1.1.1 → 1.3.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/README.md +15 -3
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +92 -8
- package/dist/index.d.ts +92 -8
- package/dist/index.js +1 -1
- package/package.json +10 -5
package/README.md
CHANGED
|
@@ -2,18 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
+
<p>
|
|
6
|
+
<img src="assets/logo.svg" alt="@deck-shelves/host" width="352">
|
|
7
|
+
</p>
|
|
8
|
+
|
|
5
9
|
[](https://github.com/santojon/Deck-Shelves-HOST/actions/workflows/ci.yml)
|
|
6
10
|
[](https://github.com/santojon/Deck-Shelves-HOST/actions/workflows/release.yml)
|
|
7
11
|
[](https://www.npmjs.com/package/@deck-shelves/host)
|
|
8
12
|
[](https://www.npmjs.com/package/@deck-shelves/host)
|
|
9
13
|
[](https://www.npmjs.com/package/@deck-shelves/host)
|
|
10
|
-
[](src/contract/index.test.ts)
|
|
11
15
|
[](src/contract/index.ts)
|
|
12
16
|
[](https://bundlephobia.com/package/@deck-shelves/host)
|
|
13
17
|
[](LICENSE)
|
|
14
18
|
[](package.json)
|
|
15
|
-
[](https://github.com/ValveSoftware/SteamOS)
|
|
19
|
+
[](https://github.com/ValveSoftware/SteamOS)
|
|
16
20
|
[](https://github.com/santojon/Deck-Shelves)
|
|
21
|
+
[](https://github.com/santojon/Deck-Shelves-HOST/network/members)
|
|
22
|
+
[](https://github.com/santojon/Deck-Shelves-HOST/graphs/traffic)
|
|
17
23
|
[](https://github.com/sponsors/santojon)
|
|
18
24
|
[](https://ko-fi.com/santojon)
|
|
19
25
|
|
|
@@ -33,6 +39,12 @@ added without touching the bundle.
|
|
|
33
39
|
> Quick Access Menu tab — lives in that host's own project, not here. This
|
|
34
40
|
> package is just the interface both sides agree on.
|
|
35
41
|
|
|
42
|
+
> **Coexistence.** A host with a native QAM tab may also expose its panel
|
|
43
|
+
> registration on `window.__SHELVES_QAM__` (a `HostQam`), independently of the
|
|
44
|
+
> full `HostApi` — so a bundle can populate that host's tab even when *another*
|
|
45
|
+
> host owns the home (and `__SHELVES_HOST__` is left unset). Both globals are
|
|
46
|
+
> declared in the contract.
|
|
47
|
+
|
|
36
48
|
It is **not** `@deck-shelves/api` — that package is the public *extension* API
|
|
37
49
|
consumed by third-party plugins (`window.deckShelves`). This one is the
|
|
38
50
|
host↔bundle contract, a different audience.
|
|
@@ -41,7 +53,7 @@ host↔bundle contract, a different audience.
|
|
|
41
53
|
|
|
42
54
|
| Path | What it is |
|
|
43
55
|
|---|---|
|
|
44
|
-
| `src/contract/` | **`HostApi` types** (`HOST_API_VERSION`, `lifecycle`, `rpc`, `ui`, `routes`, `notifications`, `platform`, optional `qam`). The single source of truth both hosts and the bundle build against. |
|
|
56
|
+
| `src/contract/` | **`HostApi` types** (`HOST_API_VERSION`, `lifecycle`, `rpc`, `ui`, `routes`, `notifications`, `platform`, optional `React`/`ReactDOM`/`jsx`, `qam`, `mainMenu`, `updates`). The single source of truth both hosts and the bundle build against. |
|
|
45
57
|
|
|
46
58
|
## Usage
|
|
47
59
|
|
package/dist/index.cjs
CHANGED
package/dist/index.d.cts
CHANGED
|
@@ -6,16 +6,26 @@
|
|
|
6
6
|
* adapter fulfils this shape, so the bundle's call sites depend only on it
|
|
7
7
|
* and never on a specific host's UI library directly.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Optional capabilities are additive members a host implements *if it can* and
|
|
10
|
+
* the bundle feature-detects:
|
|
11
11
|
* - `qam` — a Quick Access Menu tab.
|
|
12
12
|
* - `mainMenu` — an entry in the Steam Main Menu / left rail.
|
|
13
|
+
* - `updates` — self-install of plugin updates (see `HostUpdates`).
|
|
14
|
+
* - `React` / `ReactDOM` / `jsx` — the host's React stack, so the bundle's
|
|
15
|
+
* react shims can resolve React from the host instead of a loader global.
|
|
13
16
|
* The contract names no concrete host; a host may implement any, all, or none.
|
|
14
17
|
*
|
|
15
18
|
* Dependency-free by design (mirrors `@deck-shelves/api`): supporting data
|
|
16
19
|
* types are inlined.
|
|
17
20
|
*/
|
|
18
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Compatibility version of the contract SHAPE — independent of this package's
|
|
23
|
+
* npm release version. Bump semver here on shape changes: MINOR for additive,
|
|
24
|
+
* backward-compatible members (a new optional namespace / field); MAJOR on a
|
|
25
|
+
* breaking change. 1.2.0 added the optional `updates` namespace and the
|
|
26
|
+
* optional `React`/`ReactDOM`/`jsx` UI-surface members.
|
|
27
|
+
*/
|
|
28
|
+
declare const HOST_API_VERSION: "1.2.0";
|
|
19
29
|
interface PluginDescriptor {
|
|
20
30
|
name: string;
|
|
21
31
|
version: string;
|
|
@@ -128,10 +138,20 @@ interface QamPanel {
|
|
|
128
138
|
id: string;
|
|
129
139
|
/** Label / accessible name. */
|
|
130
140
|
title: string;
|
|
131
|
-
/** Inline SVG markup (or a `data:` URI) used as the icon.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
141
|
+
/** Inline SVG markup (or a `data:` URI) used as the icon. Optional: a host
|
|
142
|
+
* with a first-class tab (a permanent presence with its own icon) falls back
|
|
143
|
+
* to that icon when omitted. */
|
|
144
|
+
icon?: string;
|
|
145
|
+
/** Render into the host-owned container; return an optional cleanup fn.
|
|
146
|
+
* Framework-agnostic — the way any host can accept a panel. Provide exactly
|
|
147
|
+
* one of `render` / `content`. */
|
|
148
|
+
render?(container: HTMLElement): void | (() => void);
|
|
149
|
+
/** …or a React node (or a zero-arg factory returning one) that a React-based
|
|
150
|
+
* host renders in its OWN React tree — no nested root, so the bundle's context
|
|
151
|
+
* providers reach the panel. Typed `unknown` to keep the contract
|
|
152
|
+
* dependency-free (cast at the call site, as with `HostUi`). Provide exactly
|
|
153
|
+
* one of `render` / `content`. */
|
|
154
|
+
content?: unknown;
|
|
135
155
|
}
|
|
136
156
|
interface HostQam {
|
|
137
157
|
/**
|
|
@@ -167,6 +187,20 @@ interface HostMainMenu {
|
|
|
167
187
|
*/
|
|
168
188
|
registerEntry(entry: MainMenuEntry): () => void;
|
|
169
189
|
}
|
|
190
|
+
/** Optional: a host that can obtain + apply plugin updates itself (no manual
|
|
191
|
+
* file install). A loader that can only hand the user a file does NOT implement
|
|
192
|
+
* this — the bundle then falls back to the manual download flow. */
|
|
193
|
+
interface HostUpdates {
|
|
194
|
+
/** True if this host can self-install (drives the button: "Install" vs "Download"). */
|
|
195
|
+
canSelfInstall(): boolean;
|
|
196
|
+
/** Obtain the release and swap it in, then reload. `assetUrl`/`assetName` point
|
|
197
|
+
* at the bundle artifact the host injects (the IIFE). */
|
|
198
|
+
applyUpdate(release: {
|
|
199
|
+
version: string;
|
|
200
|
+
assetUrl?: string;
|
|
201
|
+
assetName?: string;
|
|
202
|
+
}): Promise<void>;
|
|
203
|
+
}
|
|
170
204
|
/**
|
|
171
205
|
* What the host process provides to the Deck Shelves bundle. The bundle receives
|
|
172
206
|
* this at startup as `window.__SHELVES_HOST__` and uses it to register itself,
|
|
@@ -174,12 +208,29 @@ interface HostMainMenu {
|
|
|
174
208
|
* supports them — add optional surfaces (a Quick Access Menu tab, a Main Menu
|
|
175
209
|
* entry). Optional capabilities are feature-detected: `host.qam?.…`,
|
|
176
210
|
* `host.mainMenu?.…`.
|
|
211
|
+
*
|
|
212
|
+
* In *coexistence* (another loader owns the home) a host leaves `__SHELVES_HOST__`
|
|
213
|
+
* unset so it does not disturb host selection, yet MAY still surface its own QAM
|
|
214
|
+
* tab: the bundle registers into it through the host-selection-neutral
|
|
215
|
+
* `window.__SHELVES_QAM__` (see the `Window` augmentation below).
|
|
177
216
|
*/
|
|
178
217
|
interface HostApi {
|
|
179
218
|
readonly version: typeof HOST_API_VERSION;
|
|
180
219
|
readonly lifecycle: HostLifecycle;
|
|
181
220
|
readonly rpc: HostRpc;
|
|
182
221
|
readonly ui: HostUi;
|
|
222
|
+
/**
|
|
223
|
+
* Steam's React stack, exposed so a bundle's `react` / `react-dom` /
|
|
224
|
+
* `jsx-runtime` shims can resolve React from the host instead of from
|
|
225
|
+
* loader-published globals — the path a *sole* host (no loader) needs, since
|
|
226
|
+
* no loader is present to publish them. Kept dependency-free: cast to
|
|
227
|
+
* `React` / `ReactDOM` / the jsx-runtime at the call site, as with {@link HostUi}.
|
|
228
|
+
* Optional — a loader-backed host may omit them and let the bundle fall back to
|
|
229
|
+
* the loader's own React globals.
|
|
230
|
+
*/
|
|
231
|
+
readonly React?: unknown;
|
|
232
|
+
readonly ReactDOM?: unknown;
|
|
233
|
+
readonly jsx?: unknown;
|
|
183
234
|
readonly routes: HostRoutes;
|
|
184
235
|
readonly notifications?: HostNotifications;
|
|
185
236
|
readonly platform: PlatformApi;
|
|
@@ -188,13 +239,46 @@ interface HostApi {
|
|
|
188
239
|
/** Optional Main Menu (left-rail) surface; present only on hosts that
|
|
189
240
|
* support it. Injected/shown only while it has content (see `HostMainMenu`). */
|
|
190
241
|
readonly mainMenu?: HostMainMenu;
|
|
242
|
+
/** Optional self-update surface; present only on hosts that can obtain and
|
|
243
|
+
* apply an update themselves (see `HostUpdates`). */
|
|
244
|
+
readonly updates?: HostUpdates;
|
|
191
245
|
}
|
|
192
246
|
/** Shape of the runtime global the host installs in the renderer. */
|
|
193
247
|
type ShelvesHostGlobal = HostApi;
|
|
194
248
|
declare global {
|
|
195
249
|
interface Window {
|
|
196
250
|
__SHELVES_HOST__?: ShelvesHostGlobal;
|
|
251
|
+
/**
|
|
252
|
+
* A host's QAM registration surface, exposed independently of the full
|
|
253
|
+
* `HostApi`. A host with a native QAM tab installs this even when it is NOT
|
|
254
|
+
* the bundle's selected host — i.e. in *coexistence*, where another loader
|
|
255
|
+
* owns the home and `__SHELVES_HOST__` is intentionally left unset so host
|
|
256
|
+
* selection is not disturbed. A bundle may register a panel here to populate
|
|
257
|
+
* that host's tab regardless of which host it selected; the surface takes no
|
|
258
|
+
* part in host selection. When the same host also owns the home this is the
|
|
259
|
+
* very same object as `__SHELVES_HOST__.qam`.
|
|
260
|
+
*/
|
|
261
|
+
__SHELVES_QAM__?: HostQam;
|
|
262
|
+
/**
|
|
263
|
+
* Panels a bundle registered before `__SHELVES_QAM__` existed. Registration
|
|
264
|
+
* is order-independent: a bundle that boots first may push its panels here,
|
|
265
|
+
* and the host drains and clears this array the moment it installs
|
|
266
|
+
* `__SHELVES_QAM__`. Equivalent to calling `registerPanel` for each.
|
|
267
|
+
*/
|
|
268
|
+
__SHELVES_QAM_PENDING__?: QamPanel[];
|
|
269
|
+
/**
|
|
270
|
+
* Tab-ownership handshake. A host stamps this with its owner kind (e.g.
|
|
271
|
+
* `"shelveshub"`) the moment its own Deck Shelves QAM tab is actually
|
|
272
|
+
* inserted into the strip — NOT when `__SHELVES_QAM__` is first created
|
|
273
|
+
* (that happens at boot, before any tab exists). A bundle running under a
|
|
274
|
+
* different loader that also renders its own native tab retracts it once
|
|
275
|
+
* this is set, so exactly one Deck Shelves tab survives and it is the
|
|
276
|
+
* host's. Because it is stamped only on real insertion, a host that never
|
|
277
|
+
* inserts leaves the bundle's own tab in place as the fallback rather than
|
|
278
|
+
* both vanishing. Unset means no host has claimed the tab.
|
|
279
|
+
*/
|
|
280
|
+
__SHELVES_QAM_OWNER__?: string;
|
|
197
281
|
}
|
|
198
282
|
}
|
|
199
283
|
|
|
200
|
-
export { type Disposable, HOST_API_VERSION, type HostApi, type HostLifecycle, type HostMainMenu, type HostNotifications, type HostQam, type HostRoutes, type HostRpc, type HostUi, type MainMenuEntry, type PlatformApi, type PlatformAppMeta, type PlatformCollection, type PlatformTab, type PluginDescriptor, type QamPanel, type ShelfSource, type ShelvesHostGlobal, type ToastOptions };
|
|
284
|
+
export { type Disposable, HOST_API_VERSION, type HostApi, type HostLifecycle, type HostMainMenu, type HostNotifications, type HostQam, type HostRoutes, type HostRpc, type HostUi, type HostUpdates, type MainMenuEntry, type PlatformApi, type PlatformAppMeta, type PlatformCollection, type PlatformTab, type PluginDescriptor, type QamPanel, type ShelfSource, type ShelvesHostGlobal, type ToastOptions };
|
package/dist/index.d.ts
CHANGED
|
@@ -6,16 +6,26 @@
|
|
|
6
6
|
* adapter fulfils this shape, so the bundle's call sites depend only on it
|
|
7
7
|
* and never on a specific host's UI library directly.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Optional capabilities are additive members a host implements *if it can* and
|
|
10
|
+
* the bundle feature-detects:
|
|
11
11
|
* - `qam` — a Quick Access Menu tab.
|
|
12
12
|
* - `mainMenu` — an entry in the Steam Main Menu / left rail.
|
|
13
|
+
* - `updates` — self-install of plugin updates (see `HostUpdates`).
|
|
14
|
+
* - `React` / `ReactDOM` / `jsx` — the host's React stack, so the bundle's
|
|
15
|
+
* react shims can resolve React from the host instead of a loader global.
|
|
13
16
|
* The contract names no concrete host; a host may implement any, all, or none.
|
|
14
17
|
*
|
|
15
18
|
* Dependency-free by design (mirrors `@deck-shelves/api`): supporting data
|
|
16
19
|
* types are inlined.
|
|
17
20
|
*/
|
|
18
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Compatibility version of the contract SHAPE — independent of this package's
|
|
23
|
+
* npm release version. Bump semver here on shape changes: MINOR for additive,
|
|
24
|
+
* backward-compatible members (a new optional namespace / field); MAJOR on a
|
|
25
|
+
* breaking change. 1.2.0 added the optional `updates` namespace and the
|
|
26
|
+
* optional `React`/`ReactDOM`/`jsx` UI-surface members.
|
|
27
|
+
*/
|
|
28
|
+
declare const HOST_API_VERSION: "1.2.0";
|
|
19
29
|
interface PluginDescriptor {
|
|
20
30
|
name: string;
|
|
21
31
|
version: string;
|
|
@@ -128,10 +138,20 @@ interface QamPanel {
|
|
|
128
138
|
id: string;
|
|
129
139
|
/** Label / accessible name. */
|
|
130
140
|
title: string;
|
|
131
|
-
/** Inline SVG markup (or a `data:` URI) used as the icon.
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
141
|
+
/** Inline SVG markup (or a `data:` URI) used as the icon. Optional: a host
|
|
142
|
+
* with a first-class tab (a permanent presence with its own icon) falls back
|
|
143
|
+
* to that icon when omitted. */
|
|
144
|
+
icon?: string;
|
|
145
|
+
/** Render into the host-owned container; return an optional cleanup fn.
|
|
146
|
+
* Framework-agnostic — the way any host can accept a panel. Provide exactly
|
|
147
|
+
* one of `render` / `content`. */
|
|
148
|
+
render?(container: HTMLElement): void | (() => void);
|
|
149
|
+
/** …or a React node (or a zero-arg factory returning one) that a React-based
|
|
150
|
+
* host renders in its OWN React tree — no nested root, so the bundle's context
|
|
151
|
+
* providers reach the panel. Typed `unknown` to keep the contract
|
|
152
|
+
* dependency-free (cast at the call site, as with `HostUi`). Provide exactly
|
|
153
|
+
* one of `render` / `content`. */
|
|
154
|
+
content?: unknown;
|
|
135
155
|
}
|
|
136
156
|
interface HostQam {
|
|
137
157
|
/**
|
|
@@ -167,6 +187,20 @@ interface HostMainMenu {
|
|
|
167
187
|
*/
|
|
168
188
|
registerEntry(entry: MainMenuEntry): () => void;
|
|
169
189
|
}
|
|
190
|
+
/** Optional: a host that can obtain + apply plugin updates itself (no manual
|
|
191
|
+
* file install). A loader that can only hand the user a file does NOT implement
|
|
192
|
+
* this — the bundle then falls back to the manual download flow. */
|
|
193
|
+
interface HostUpdates {
|
|
194
|
+
/** True if this host can self-install (drives the button: "Install" vs "Download"). */
|
|
195
|
+
canSelfInstall(): boolean;
|
|
196
|
+
/** Obtain the release and swap it in, then reload. `assetUrl`/`assetName` point
|
|
197
|
+
* at the bundle artifact the host injects (the IIFE). */
|
|
198
|
+
applyUpdate(release: {
|
|
199
|
+
version: string;
|
|
200
|
+
assetUrl?: string;
|
|
201
|
+
assetName?: string;
|
|
202
|
+
}): Promise<void>;
|
|
203
|
+
}
|
|
170
204
|
/**
|
|
171
205
|
* What the host process provides to the Deck Shelves bundle. The bundle receives
|
|
172
206
|
* this at startup as `window.__SHELVES_HOST__` and uses it to register itself,
|
|
@@ -174,12 +208,29 @@ interface HostMainMenu {
|
|
|
174
208
|
* supports them — add optional surfaces (a Quick Access Menu tab, a Main Menu
|
|
175
209
|
* entry). Optional capabilities are feature-detected: `host.qam?.…`,
|
|
176
210
|
* `host.mainMenu?.…`.
|
|
211
|
+
*
|
|
212
|
+
* In *coexistence* (another loader owns the home) a host leaves `__SHELVES_HOST__`
|
|
213
|
+
* unset so it does not disturb host selection, yet MAY still surface its own QAM
|
|
214
|
+
* tab: the bundle registers into it through the host-selection-neutral
|
|
215
|
+
* `window.__SHELVES_QAM__` (see the `Window` augmentation below).
|
|
177
216
|
*/
|
|
178
217
|
interface HostApi {
|
|
179
218
|
readonly version: typeof HOST_API_VERSION;
|
|
180
219
|
readonly lifecycle: HostLifecycle;
|
|
181
220
|
readonly rpc: HostRpc;
|
|
182
221
|
readonly ui: HostUi;
|
|
222
|
+
/**
|
|
223
|
+
* Steam's React stack, exposed so a bundle's `react` / `react-dom` /
|
|
224
|
+
* `jsx-runtime` shims can resolve React from the host instead of from
|
|
225
|
+
* loader-published globals — the path a *sole* host (no loader) needs, since
|
|
226
|
+
* no loader is present to publish them. Kept dependency-free: cast to
|
|
227
|
+
* `React` / `ReactDOM` / the jsx-runtime at the call site, as with {@link HostUi}.
|
|
228
|
+
* Optional — a loader-backed host may omit them and let the bundle fall back to
|
|
229
|
+
* the loader's own React globals.
|
|
230
|
+
*/
|
|
231
|
+
readonly React?: unknown;
|
|
232
|
+
readonly ReactDOM?: unknown;
|
|
233
|
+
readonly jsx?: unknown;
|
|
183
234
|
readonly routes: HostRoutes;
|
|
184
235
|
readonly notifications?: HostNotifications;
|
|
185
236
|
readonly platform: PlatformApi;
|
|
@@ -188,13 +239,46 @@ interface HostApi {
|
|
|
188
239
|
/** Optional Main Menu (left-rail) surface; present only on hosts that
|
|
189
240
|
* support it. Injected/shown only while it has content (see `HostMainMenu`). */
|
|
190
241
|
readonly mainMenu?: HostMainMenu;
|
|
242
|
+
/** Optional self-update surface; present only on hosts that can obtain and
|
|
243
|
+
* apply an update themselves (see `HostUpdates`). */
|
|
244
|
+
readonly updates?: HostUpdates;
|
|
191
245
|
}
|
|
192
246
|
/** Shape of the runtime global the host installs in the renderer. */
|
|
193
247
|
type ShelvesHostGlobal = HostApi;
|
|
194
248
|
declare global {
|
|
195
249
|
interface Window {
|
|
196
250
|
__SHELVES_HOST__?: ShelvesHostGlobal;
|
|
251
|
+
/**
|
|
252
|
+
* A host's QAM registration surface, exposed independently of the full
|
|
253
|
+
* `HostApi`. A host with a native QAM tab installs this even when it is NOT
|
|
254
|
+
* the bundle's selected host — i.e. in *coexistence*, where another loader
|
|
255
|
+
* owns the home and `__SHELVES_HOST__` is intentionally left unset so host
|
|
256
|
+
* selection is not disturbed. A bundle may register a panel here to populate
|
|
257
|
+
* that host's tab regardless of which host it selected; the surface takes no
|
|
258
|
+
* part in host selection. When the same host also owns the home this is the
|
|
259
|
+
* very same object as `__SHELVES_HOST__.qam`.
|
|
260
|
+
*/
|
|
261
|
+
__SHELVES_QAM__?: HostQam;
|
|
262
|
+
/**
|
|
263
|
+
* Panels a bundle registered before `__SHELVES_QAM__` existed. Registration
|
|
264
|
+
* is order-independent: a bundle that boots first may push its panels here,
|
|
265
|
+
* and the host drains and clears this array the moment it installs
|
|
266
|
+
* `__SHELVES_QAM__`. Equivalent to calling `registerPanel` for each.
|
|
267
|
+
*/
|
|
268
|
+
__SHELVES_QAM_PENDING__?: QamPanel[];
|
|
269
|
+
/**
|
|
270
|
+
* Tab-ownership handshake. A host stamps this with its owner kind (e.g.
|
|
271
|
+
* `"shelveshub"`) the moment its own Deck Shelves QAM tab is actually
|
|
272
|
+
* inserted into the strip — NOT when `__SHELVES_QAM__` is first created
|
|
273
|
+
* (that happens at boot, before any tab exists). A bundle running under a
|
|
274
|
+
* different loader that also renders its own native tab retracts it once
|
|
275
|
+
* this is set, so exactly one Deck Shelves tab survives and it is the
|
|
276
|
+
* host's. Because it is stamped only on real insertion, a host that never
|
|
277
|
+
* inserts leaves the bundle's own tab in place as the fallback rather than
|
|
278
|
+
* both vanishing. Unset means no host has claimed the tab.
|
|
279
|
+
*/
|
|
280
|
+
__SHELVES_QAM_OWNER__?: string;
|
|
197
281
|
}
|
|
198
282
|
}
|
|
199
283
|
|
|
200
|
-
export { type Disposable, HOST_API_VERSION, type HostApi, type HostLifecycle, type HostMainMenu, type HostNotifications, type HostQam, type HostRoutes, type HostRpc, type HostUi, type MainMenuEntry, type PlatformApi, type PlatformAppMeta, type PlatformCollection, type PlatformTab, type PluginDescriptor, type QamPanel, type ShelfSource, type ShelvesHostGlobal, type ToastOptions };
|
|
284
|
+
export { type Disposable, HOST_API_VERSION, type HostApi, type HostLifecycle, type HostMainMenu, type HostNotifications, type HostQam, type HostRoutes, type HostRpc, type HostUi, type HostUpdates, type MainMenuEntry, type PlatformApi, type PlatformAppMeta, type PlatformCollection, type PlatformTab, type PluginDescriptor, type QamPanel, type ShelfSource, type ShelvesHostGlobal, type ToastOptions };
|
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deck-shelves/host",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Deck Shelves host contract — the HostApi types all host adapters and the bundle build against.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -66,16 +66,21 @@
|
|
|
66
66
|
"overrides": {
|
|
67
67
|
"esbuild": "^0.25.0",
|
|
68
68
|
"vite": "^6.4.2",
|
|
69
|
-
"form-data": "^4.0.6"
|
|
69
|
+
"form-data": "^4.0.6",
|
|
70
|
+
"brace-expansion@1": "^1.1.17",
|
|
71
|
+
"brace-expansion@5": "^5.0.9",
|
|
72
|
+
"js-yaml@4": "^4.3.1",
|
|
73
|
+
"nanoid@3": "^3.3.18",
|
|
74
|
+
"postcss@8": "^8.5.23"
|
|
70
75
|
}
|
|
71
76
|
},
|
|
72
77
|
"devDependencies": {
|
|
73
|
-
"@typescript-eslint/parser": "^8.
|
|
74
|
-
"eslint": "^9.39.
|
|
78
|
+
"@typescript-eslint/parser": "^8.70.0",
|
|
79
|
+
"eslint": "^9.39.5",
|
|
75
80
|
"jsdom": "^25.0.1",
|
|
76
81
|
"tsup": "^8.5.1",
|
|
77
82
|
"typescript": "^5.9.3",
|
|
78
|
-
"vitest": "^
|
|
83
|
+
"vitest": "^4.1.11"
|
|
79
84
|
},
|
|
80
85
|
"packageManager": "pnpm@10.33.0"
|
|
81
86
|
}
|