@tavora/sdk 0.2.2 → 0.2.5

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
@@ -2,6 +2,18 @@
2
2
 
3
3
  What changed in `@tavora/sdk` and the bridge protocol it speaks, newest first. Before Tavora 1.0 the SDK may still change in ways that break modules; each such change raises the minor version (0.2 → 0.3) and is marked **Breaking** here. Anything else raises the patch version. To make sure players have a Tavora that knows what your module uses, set [`minTavora`](https://docs.mytavora.app/reference/manifest) in its manifest.
4
4
 
5
+ ## 0.2.5
6
+
7
+ - `pictures.save(png, name)`: saves a PNG as a new file in the player's `Pictures\Tavora` folder, right after a click or key press in the panel; resolves with the file name it got (Tavora 0.17.19). `MIN_TAVORA` is now `0.17.19`.
8
+
9
+ ## 0.2.4
10
+
11
+ - Opening another panel: `panels.open(type, { content })` opens one of the module's own panel types in the current game, right after a click or key press. Tavora brings forward a panel of that type already showing the content, else asks the one used last to switch through `panel.onNavigate(fn)` (save pending edits, then resolve; throw to refuse; 5 seconds), else opens a new one, whose `panel.getLaunch()` is `{ reason: "open", content }`. It resolves with `"shown"`, `"switched"`, `"opened"` or `"failed"`; when a switch fails, the player is offered the content in a new panel (Tavora 0.17.18). Set `minTavora` to `0.17.18` or newer when you use them.
12
+
13
+ ## 0.2.3
14
+
15
+ - Content per panel: `panel.setContent({ id, title } | null)` tells Tavora what the panel shows now, such as the build picked in your toolbar. Tavora keeps it with the panel across game switches and restarts and shows the title when the player hovers the tab. `panel.getLaunch()` says why the page is loading: `{ reason: "add" }` for a panel the player just added (pick the content yourself, such as the last one used), or `{ reason: "restore", content }` for one that was open before (Tavora 0.17.17). Set `minTavora` to `0.17.17` or newer when you use them.
16
+
5
17
  ## 0.2.2
6
18
 
7
19
  - `MIN_TAVORA`: the oldest Tavora that has everything this SDK version offers, for `minTavora` in your manifest.
package/README.md CHANGED
@@ -50,6 +50,7 @@ Values you store must be JSON. Type parameters such as `get<number>()` are not c
50
50
  | `tavora.ui.getLanguage()`, `onLanguageChange` | The language of Tavora's own texts (`"en"`, `"de"`). Show your module in it, or in English when you have no translation. |
51
51
  | `tavora.blobs` | Pictures too big for a document: up to 50 MB each and 500 MB per module and game. `put` a file, show it with `url(id)`. See [Files](https://docs.mytavora.app/reference/protocol#files-blobs). |
52
52
  | `tavora.clipboard.writeImage(png)` | Puts a PNG on the system clipboard. Call it from the click or key press that asked for it. See [Clipboard](https://docs.mytavora.app/reference/protocol#clipboard). |
53
+ | `tavora.pictures.save(png, name)` | Saves a PNG in the player's `Pictures\Tavora` folder and resolves with the file name. Call it from the click or key press that asked for it. See [Saving pictures](https://docs.mytavora.app/reference/protocol#saving-pictures). |
53
54
  | `tavora.links.open(url)` | Opens a web address in the game's Browser panel, from a click or key press. |
54
55
  | `tavora.network.fetch(url, init)` | A web request to a host listed in `permissions.network`, once the player granted it. See [Network](https://docs.mytavora.app/reference/protocol#network). |
55
56
  | `tavora.connectors.aiUsage` | The usage of the player's Claude and Codex accounts, with the `ai-usage` connector. |
package/dist/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import { type AiUsageAccountInfo, type AiUsageReading, type BlobInfo, type BlobUsage, type Capability, type DiscordCommand, type DiscordCommands, type DiscordEvent, type DiscordEventName, type DiscordResult, type DiscordState, type DocumentChange, type DocumentSummary, type ErrorCode, type ErrorPayload, type HandshakeResult, type JsonValue, type MenuRequest, type NetworkRequest, type NetworkResponse, type PutDocumentParams, type TavoraDocument, type TavoraGame, type TavoraTheme, type TavoraViewport } from "./protocol.js";
2
- export type { AiUsageAccountInfo, AiUsageReading, BlobInfo, BlobType, BlobUsage, Capability, DiscordCommand, DiscordCommands, DiscordEvent, DiscordEventName, DiscordResult, DiscordState, DocumentChange, DocumentSummary, ErrorCode, HandshakeResult, JsonValue, MenuEntry, MenuRequest, NetworkRequest, NetworkResponse, PutDocumentParams, TavoraDocument, TavoraGame, TavoraTheme, TavoraViewport, ThemeToken, } from "./protocol.js";
1
+ import { type AiUsageAccountInfo, type AiUsageReading, type BlobInfo, type BlobUsage, type Capability, type DiscordCommand, type DiscordCommands, type DiscordEvent, type DiscordEventName, type DiscordResult, type DiscordState, type DocumentChange, type DocumentSummary, type ErrorCode, type ErrorPayload, type HandshakeResult, type JsonValue, type MenuRequest, type NetworkRequest, type NetworkResponse, type PanelContent, type PanelLaunch, type PanelOpenResult, type PutDocumentParams, type TavoraDocument, type TavoraGame, type TavoraTheme, type TavoraViewport } from "./protocol.js";
2
+ export type { AiUsageAccountInfo, AiUsageReading, BlobInfo, BlobType, BlobUsage, Capability, DiscordCommand, DiscordCommands, DiscordEvent, DiscordEventName, DiscordResult, DiscordState, DocumentChange, DocumentSummary, ErrorCode, HandshakeResult, JsonValue, MenuEntry, MenuRequest, NetworkRequest, NetworkResponse, PanelContent, PanelLaunch, PanelOpenResult, PutDocumentParams, TavoraDocument, TavoraGame, TavoraTheme, TavoraViewport, ThemeToken, } from "./protocol.js";
3
3
  export { BLOB_ID, BLOB_TYPES, DISCORD_COMMANDS, DISCORD_EVENTS, LIMITS, PROTOCOL_VERSION, THEME_TOKENS } from "./protocol.js";
4
4
  /** Version of this SDK package, sent to the host during the handshake. */
5
- export declare const SDK_VERSION = "0.2.2";
5
+ export declare const SDK_VERSION = "0.2.5";
6
6
  /**
7
7
  * The oldest Tavora that has everything this SDK version offers. Put it in your manifest as
8
8
  * `minTavora`, so an older Tavora says it needs an update instead of loading a module it cannot run
9
9
  * (the starter, `npm create @tavora/module`, does). The changelog names it for every version.
10
10
  */
11
- export declare const MIN_TAVORA = "0.17.12";
11
+ export declare const MIN_TAVORA = "0.17.19";
12
12
  export declare class TavoraError extends Error {
13
13
  readonly code: ErrorCode;
14
14
  /** Set for PERMISSION_DENIED. */
@@ -60,6 +60,37 @@ export interface TavoraSDK {
60
60
  readonly type: string | null;
61
61
  getState<T = JsonValue>(): Promise<T | null>;
62
62
  setState(value: JsonValue | null): Promise<void>;
63
+ /**
64
+ * Why this page is loading: `{ reason: "add" }` for a panel the player just added (pick its content
65
+ * yourself, such as the last one used, or show a picker), or `{ reason: "restore", content }` for a panel
66
+ * that was open before, with what it last showed. Needs Tavora 0.17.17 or newer.
67
+ */
68
+ getLaunch(): Promise<PanelLaunch>;
69
+ /**
70
+ * Tells Tavora what this panel shows now, such as the build picked in your toolbar's selector, or null for
71
+ * nothing. Tavora keeps it with the panel, shows the title when the player hovers the tab, and gives it
72
+ * back through getLaunch after a restart. Needs Tavora 0.17.17 or newer.
73
+ */
74
+ setContent(content: PanelContent | null): Promise<void>;
75
+ /**
76
+ * Lets another panel of this module switch this one to other content (`panels.open`). The handler saves any
77
+ * pending edits and switches, then resolves; it throws (or rejects) when it cannot, and the panel keeps what it
78
+ * showed. It has 5 seconds. One handler per page: a new one replaces the last. Without one, Tavora opens a new
79
+ * panel instead of switching this one. Needs Tavora 0.17.18 or newer.
80
+ */
81
+ onNavigate(fn: (content: PanelContent) => void | Promise<void>): Unsubscribe;
82
+ };
83
+ /** The module's other panels. */
84
+ panels: {
85
+ /**
86
+ * Opens one of this module's own panel types in the current game, on `content` when given. Tavora brings
87
+ * forward a panel of that type already showing the content, else switches the one used last
88
+ * (`panel.onNavigate`), else opens a new one. Call it from the click or key press that asked for it: the host
89
+ * refuses it otherwise (PERMISSION_DENIED). Needs Tavora 0.17.18 or newer.
90
+ */
91
+ open(type: string, options?: {
92
+ content?: PanelContent;
93
+ }): Promise<PanelOpenResult>;
63
94
  };
64
95
  workspace: {
65
96
  getViewport(): Promise<TavoraViewport>;
@@ -102,6 +133,18 @@ export interface TavoraSDK {
102
133
  */
103
134
  writeImage(png: Blob): Promise<void>;
104
135
  };
136
+ pictures: {
137
+ /**
138
+ * Saves a picture as a .png file in Tavora's folder in the player's Pictures (Pictures\Tavora), right away,
139
+ * without a dialog. `name` suggests the file name: Tavora makes it safe and adds " (2)" and so on rather than
140
+ * replace a file. Resolves with the name it was saved under; the module never learns where the folder is.
141
+ * Call it from the click or key press that asked for it: the host refuses it otherwise (PERMISSION_DENIED), and
142
+ * one press saves one picture. The same PNG limits as clipboard.writeImage apply.
143
+ */
144
+ save(png: Blob, name?: string): Promise<{
145
+ fileName: string;
146
+ }>;
147
+ };
105
148
  links: {
106
149
  /**
107
150
  * Opens a web address (http or https) in a Browser panel of this game, as a new tab or in a new
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,18 +1,18 @@
1
1
  // @tavora/sdk: thin typed client for modules running inside Tavora Desktop.
2
2
  // The host enforces every check; this package only marshals typed calls.
3
3
  // Protocol reference: apps/docs/reference/protocol.md.
4
- import { BLOB_PATH, CLIPBOARD_PATH, HELLO_MESSAGE, LIMITS, PORT_MESSAGE, PROTOCOL_VERSION, } from "./protocol.js";
4
+ import { BLOB_PATH, CLIPBOARD_PATH, PICTURES_PATH, HELLO_MESSAGE, LIMITS, PORT_MESSAGE, PROTOCOL_VERSION, } from "./protocol.js";
5
5
  export { BLOB_ID, BLOB_TYPES, DISCORD_COMMANDS, DISCORD_EVENTS, LIMITS, PROTOCOL_VERSION, THEME_TOKENS } from "./protocol.js";
6
6
  /** How long a menu may stay open; the host closes it itself when its panel goes. */
7
7
  const MENU_TIMEOUT_MS = 60 * 60_000;
8
8
  /** Version of this SDK package, sent to the host during the handshake. */
9
- export const SDK_VERSION = "0.2.2";
9
+ export const SDK_VERSION = "0.2.5";
10
10
  /**
11
11
  * The oldest Tavora that has everything this SDK version offers. Put it in your manifest as
12
12
  * `minTavora`, so an older Tavora says it needs an update instead of loading a module it cannot run
13
13
  * (the starter, `npm create @tavora/module`, does). The changelog names it for every version.
14
14
  */
15
- export const MIN_TAVORA = "0.17.12";
15
+ export const MIN_TAVORA = "0.17.19";
16
16
  export class TavoraError extends Error {
17
17
  code;
18
18
  /** Set for PERMISSION_DENIED. */
@@ -126,6 +126,24 @@ async function createClient(port, requestTimeoutMs) {
126
126
  return () => set.delete(listener);
127
127
  }
128
128
  const host = await call("bridge.handshake", { protocol: PROTOCOL_VERSION, sdkVersion: SDK_VERSION });
129
+ // panel.onNavigate: Tavora asks, the handler saves and switches, and the answer says how it went.
130
+ let navigate = null;
131
+ on("panel.navigate", ({ requestId, content }) => {
132
+ const handler = navigate;
133
+ void (async () => {
134
+ let ok = false;
135
+ if (handler) {
136
+ try {
137
+ await handler(content);
138
+ ok = true;
139
+ }
140
+ catch (error) {
141
+ console.error("[tavora] panel.onNavigate handler failed", error);
142
+ }
143
+ }
144
+ await call("panel.navigated", { requestId, handled: handler !== null, ok }).catch(() => { });
145
+ })();
146
+ });
129
147
  return {
130
148
  host,
131
149
  game: {
@@ -166,6 +184,21 @@ async function createClient(port, requestTimeoutMs) {
166
184
  setState: async (value) => {
167
185
  await call("panel.setState", { value });
168
186
  },
187
+ getLaunch: () => call("panel.getLaunch"),
188
+ setContent: async (content) => {
189
+ await call("panel.setContent", { content });
190
+ },
191
+ onNavigate: (fn) => {
192
+ navigate = fn;
193
+ return () => {
194
+ if (navigate === fn)
195
+ navigate = null;
196
+ };
197
+ },
198
+ },
199
+ panels: {
200
+ // Tavora may wait for another panel to save first.
201
+ open: (type, options = {}) => call("panels.open", { type, ...(options.content ? { content: options.content } : {}) }, LIMITS.navigateTimeoutMs + 5_000),
169
202
  },
170
203
  workspace: {
171
204
  getViewport: () => call("workspace.getViewport"),
@@ -222,6 +255,26 @@ async function createClient(port, requestTimeoutMs) {
222
255
  throw new TavoraError(body?.error ?? { code: "INTERNAL", message: `could not copy the picture (${response.status})` });
223
256
  },
224
257
  },
258
+ pictures: {
259
+ save: async (png, name = "") => {
260
+ if (png.type !== "image/png")
261
+ throw new TavoraError({ code: "INVALID_PARAMS", message: "only a PNG picture can be saved" });
262
+ const address = new URL(PICTURES_PATH, window.location.href);
263
+ if (name)
264
+ address.searchParams.set("name", name);
265
+ let response;
266
+ try {
267
+ response = await fetch(address, { method: "POST", body: png, headers: { "Content-Type": "image/png" } });
268
+ }
269
+ catch {
270
+ throw new TavoraError({ code: "INTERNAL", message: "could not save the picture" });
271
+ }
272
+ const body = (await response.json().catch(() => null));
273
+ if (response.ok && typeof body?.fileName === "string")
274
+ return { fileName: body.fileName };
275
+ throw new TavoraError(body?.error ?? { code: "INTERNAL", message: `could not save the picture (${response.status})` });
276
+ },
277
+ },
225
278
  links: {
226
279
  open: async (url) => {
227
280
  await call("links.open", { url });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,46 @@ export interface HandshakeResult {
57
57
  type: string | null;
58
58
  };
59
59
  }
60
+ /**
61
+ * What a panel shows, as the module names it: a build, a character, a run, a document. Tavora keeps it
62
+ * with the panel and shows the title when the player hovers the panel's tab.
63
+ */
64
+ export interface PanelContent {
65
+ /** The module's own id for it, at most 200 characters. */
66
+ id: string;
67
+ /** Its full name, at most 200 characters on one line. */
68
+ title: string;
69
+ }
70
+ /**
71
+ * Why this page of the panel is loading.
72
+ * - `add`: the player just added the panel. Pick the content yourself, such as the last one used, or show a picker.
73
+ * - `restore`: the panel was open before (a restart, a game switch back, a reload). `content` is what it last
74
+ * showed through `panel.setContent`, or null.
75
+ * - `open`: another panel of this module opened it with `panels.open`. Show `content`, or pick yourself when it is null.
76
+ */
77
+ export type PanelLaunch = {
78
+ reason: "add";
79
+ } | {
80
+ reason: "restore";
81
+ content: PanelContent | null;
82
+ } | {
83
+ reason: "open";
84
+ content: PanelContent | null;
85
+ };
86
+ /**
87
+ * What `panels.open` did.
88
+ * - `shown`: a panel of that type already showed the content (or none was asked for), and Tavora brought it to the front.
89
+ * - `switched`: an open panel of that type switched to the content (its `panel.onNavigate` handler succeeded).
90
+ * - `opened`: Tavora opened a new panel of that type.
91
+ * - `failed`: the panel that should switch could not save or did not answer in time. It keeps what it showed, and
92
+ * Tavora offers the player to open the content in a new panel.
93
+ */
94
+ export type PanelOpenResult = "shown" | "switched" | "opened" | "failed";
95
+ /** Tavora asks this panel to show other content (the `panel.navigate` event); answer with `panel.navigated`. */
96
+ export interface PanelNavigateRequest {
97
+ requestId: number;
98
+ content: PanelContent;
99
+ }
60
100
  export interface DocumentSummary {
61
101
  id: string;
62
102
  title: string;
@@ -330,6 +370,41 @@ export interface Methods {
330
370
  };
331
371
  result: null;
332
372
  };
373
+ /** Why this page is loading; the same answer for every call until the page loads again. Tavora 0.17.17 and newer. */
374
+ "panel.getLaunch": {
375
+ params: undefined;
376
+ result: PanelLaunch;
377
+ };
378
+ /** What the panel shows now, or null for nothing. Tavora 0.17.17 and newer. */
379
+ "panel.setContent": {
380
+ params: {
381
+ content: PanelContent | null;
382
+ };
383
+ result: null;
384
+ };
385
+ /**
386
+ * The answer to a `panel.navigate` event: `handled` is false when the page takes no navigation (no handler), `ok`
387
+ * whether it now shows the content. Tavora 0.17.18 and newer.
388
+ */
389
+ "panel.navigated": {
390
+ params: {
391
+ requestId: number;
392
+ handled: boolean;
393
+ ok: boolean;
394
+ };
395
+ result: null;
396
+ };
397
+ /**
398
+ * Opens one of this module's own panel types in the current game, optionally on some content. Only right after a
399
+ * click or key press in the panel, once per click. Tavora 0.17.18 and newer.
400
+ */
401
+ "panels.open": {
402
+ params: {
403
+ type: string;
404
+ content?: PanelContent;
405
+ };
406
+ result: PanelOpenResult;
407
+ };
333
408
  "workspace.getViewport": {
334
409
  params: undefined;
335
410
  result: TavoraViewport;
@@ -447,6 +522,8 @@ export interface Events {
447
522
  "discord.state": DiscordState;
448
523
  /** A Discord event this panel subscribed to. Only with capability `discord`. */
449
524
  "discord.event": DiscordEvent;
525
+ /** Another panel of this module asked this one to show other content; answer with `panel.navigated` within navigateTimeoutMs. */
526
+ "panel.navigate": PanelNavigateRequest;
450
527
  "lifecycle.suspend": null;
451
528
  "lifecycle.resume": null;
452
529
  "lifecycle.dispose": null;
@@ -522,6 +599,10 @@ export declare const LIMITS: {
522
599
  readonly maxDocumentsBytes: number;
523
600
  readonly maxDocuments: 1000;
524
601
  readonly maxTitleLength: 200;
602
+ /** A panel content's id (panel.setContent); its title has maxTitleLength. */
603
+ readonly maxContentIdLength: 200;
604
+ /** How long a panel has to save and switch after a panel.navigate event before Tavora counts it as failed. */
605
+ readonly navigateTimeoutMs: 5000;
525
606
  /** UI state for one panel. */
526
607
  readonly maxPanelStateBytes: number;
527
608
  /** One stored file (see Blobs). */
@@ -635,6 +716,11 @@ export declare const BLOB_PATH = "/_blobs/";
635
716
  export declare const BLOB_ID: RegExp;
636
717
  /** POST a PNG here, from the module's own page, to put it on the clipboard (see clipboard.writeImage). */
637
718
  export declare const CLIPBOARD_PATH = "/_clipboard/";
719
+ /**
720
+ * POST a PNG here, from the module's own page, to save it as a file in Tavora's folder in the player's Pictures
721
+ * (see pictures.save). `?name=` suggests the file name; the answer is `{ fileName }`, the name it was saved under.
722
+ */
723
+ export declare const PICTURES_PATH = "/_pictures/";
638
724
  /** Document ids: host-generated UUIDs or module-chosen slugs. */
639
725
  export declare const DOCUMENT_ID: RegExp;
640
726
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/dist/protocol.js CHANGED
@@ -74,6 +74,10 @@ export const LIMITS = {
74
74
  maxDocumentsBytes: 50 * 1024 * 1024,
75
75
  maxDocuments: 1000,
76
76
  maxTitleLength: 200,
77
+ /** A panel content's id (panel.setContent); its title has maxTitleLength. */
78
+ maxContentIdLength: 200,
79
+ /** How long a panel has to save and switch after a panel.navigate event before Tavora counts it as failed. */
80
+ navigateTimeoutMs: 5_000,
77
81
  /** UI state for one panel. */
78
82
  maxPanelStateBytes: 256 * 1024,
79
83
  /** One stored file (see Blobs). */
@@ -118,6 +122,11 @@ export const BLOB_PATH = "/_blobs/";
118
122
  export const BLOB_ID = /^[a-f0-9]{32}$/;
119
123
  /** POST a PNG here, from the module's own page, to put it on the clipboard (see clipboard.writeImage). */
120
124
  export const CLIPBOARD_PATH = "/_clipboard/";
125
+ /**
126
+ * POST a PNG here, from the module's own page, to save it as a file in Tavora's folder in the player's Pictures
127
+ * (see pictures.save). `?name=` suggests the file name; the answer is `{ fileName }`, the name it was saved under.
128
+ */
129
+ export const PICTURES_PATH = "/_pictures/";
121
130
  /** Document ids: host-generated UUIDs or module-chosen slugs. */
122
131
  export const DOCUMENT_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
123
132
  //# sourceMappingURL=protocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tavora/sdk",
3
- "version": "0.2.2",
3
+ "version": "0.2.5",
4
4
  "description": "Typed client for Tavora modules: talks to the Tavora Desktop host over its bridge.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  import {
6
6
  BLOB_PATH,
7
7
  CLIPBOARD_PATH,
8
+ PICTURES_PATH,
8
9
  HELLO_MESSAGE,
9
10
  LIMITS,
10
11
  PORT_MESSAGE,
@@ -34,6 +35,9 @@ import {
34
35
  type Methods,
35
36
  type NetworkRequest,
36
37
  type NetworkResponse,
38
+ type PanelContent,
39
+ type PanelLaunch,
40
+ type PanelOpenResult,
37
41
  type PutDocumentParams,
38
42
  type TavoraDocument,
39
43
  type TavoraGame,
@@ -63,6 +67,9 @@ export type {
63
67
  MenuRequest,
64
68
  NetworkRequest,
65
69
  NetworkResponse,
70
+ PanelContent,
71
+ PanelLaunch,
72
+ PanelOpenResult,
66
73
  PutDocumentParams,
67
74
  TavoraDocument,
68
75
  TavoraGame,
@@ -76,14 +83,14 @@ export { BLOB_ID, BLOB_TYPES, DISCORD_COMMANDS, DISCORD_EVENTS, LIMITS, PROTOCOL
76
83
  const MENU_TIMEOUT_MS = 60 * 60_000;
77
84
 
78
85
  /** Version of this SDK package, sent to the host during the handshake. */
79
- export const SDK_VERSION = "0.2.2";
86
+ export const SDK_VERSION = "0.2.5";
80
87
 
81
88
  /**
82
89
  * The oldest Tavora that has everything this SDK version offers. Put it in your manifest as
83
90
  * `minTavora`, so an older Tavora says it needs an update instead of loading a module it cannot run
84
91
  * (the starter, `npm create @tavora/module`, does). The changelog names it for every version.
85
92
  */
86
- export const MIN_TAVORA = "0.17.12";
93
+ export const MIN_TAVORA = "0.17.19";
87
94
 
88
95
  export class TavoraError extends Error {
89
96
  readonly code: ErrorCode;
@@ -142,6 +149,35 @@ export interface TavoraSDK {
142
149
  readonly type: string | null;
143
150
  getState<T = JsonValue>(): Promise<T | null>;
144
151
  setState(value: JsonValue | null): Promise<void>;
152
+ /**
153
+ * Why this page is loading: `{ reason: "add" }` for a panel the player just added (pick its content
154
+ * yourself, such as the last one used, or show a picker), or `{ reason: "restore", content }` for a panel
155
+ * that was open before, with what it last showed. Needs Tavora 0.17.17 or newer.
156
+ */
157
+ getLaunch(): Promise<PanelLaunch>;
158
+ /**
159
+ * Tells Tavora what this panel shows now, such as the build picked in your toolbar's selector, or null for
160
+ * nothing. Tavora keeps it with the panel, shows the title when the player hovers the tab, and gives it
161
+ * back through getLaunch after a restart. Needs Tavora 0.17.17 or newer.
162
+ */
163
+ setContent(content: PanelContent | null): Promise<void>;
164
+ /**
165
+ * Lets another panel of this module switch this one to other content (`panels.open`). The handler saves any
166
+ * pending edits and switches, then resolves; it throws (or rejects) when it cannot, and the panel keeps what it
167
+ * showed. It has 5 seconds. One handler per page: a new one replaces the last. Without one, Tavora opens a new
168
+ * panel instead of switching this one. Needs Tavora 0.17.18 or newer.
169
+ */
170
+ onNavigate(fn: (content: PanelContent) => void | Promise<void>): Unsubscribe;
171
+ };
172
+ /** The module's other panels. */
173
+ panels: {
174
+ /**
175
+ * Opens one of this module's own panel types in the current game, on `content` when given. Tavora brings
176
+ * forward a panel of that type already showing the content, else switches the one used last
177
+ * (`panel.onNavigate`), else opens a new one. Call it from the click or key press that asked for it: the host
178
+ * refuses it otherwise (PERMISSION_DENIED). Needs Tavora 0.17.18 or newer.
179
+ */
180
+ open(type: string, options?: { content?: PanelContent }): Promise<PanelOpenResult>;
145
181
  };
146
182
  workspace: {
147
183
  getViewport(): Promise<TavoraViewport>;
@@ -184,6 +220,16 @@ export interface TavoraSDK {
184
220
  */
185
221
  writeImage(png: Blob): Promise<void>;
186
222
  };
223
+ pictures: {
224
+ /**
225
+ * Saves a picture as a .png file in Tavora's folder in the player's Pictures (Pictures\Tavora), right away,
226
+ * without a dialog. `name` suggests the file name: Tavora makes it safe and adds " (2)" and so on rather than
227
+ * replace a file. Resolves with the name it was saved under; the module never learns where the folder is.
228
+ * Call it from the click or key press that asked for it: the host refuses it otherwise (PERMISSION_DENIED), and
229
+ * one press saves one picture. The same PNG limits as clipboard.writeImage apply.
230
+ */
231
+ save(png: Blob, name?: string): Promise<{ fileName: string }>;
232
+ };
187
233
  links: {
188
234
  /**
189
235
  * Opens a web address (http or https) in a Browser panel of this game, as a new tab or in a new
@@ -354,6 +400,24 @@ async function createClient(port: MessagePort, requestTimeoutMs: number): Promis
354
400
 
355
401
  const host = await call("bridge.handshake", { protocol: PROTOCOL_VERSION, sdkVersion: SDK_VERSION });
356
402
 
403
+ // panel.onNavigate: Tavora asks, the handler saves and switches, and the answer says how it went.
404
+ let navigate: ((content: PanelContent) => void | Promise<void>) | null = null;
405
+ on("panel.navigate", ({ requestId, content }) => {
406
+ const handler = navigate;
407
+ void (async () => {
408
+ let ok = false;
409
+ if (handler) {
410
+ try {
411
+ await handler(content);
412
+ ok = true;
413
+ } catch (error) {
414
+ console.error("[tavora] panel.onNavigate handler failed", error);
415
+ }
416
+ }
417
+ await call("panel.navigated", { requestId, handled: handler !== null, ok }).catch(() => {});
418
+ })();
419
+ });
420
+
357
421
  return {
358
422
  host,
359
423
  game: {
@@ -395,6 +459,21 @@ async function createClient(port: MessagePort, requestTimeoutMs: number): Promis
395
459
  setState: async (value) => {
396
460
  await call("panel.setState", { value });
397
461
  },
462
+ getLaunch: () => call("panel.getLaunch"),
463
+ setContent: async (content) => {
464
+ await call("panel.setContent", { content });
465
+ },
466
+ onNavigate: (fn) => {
467
+ navigate = fn;
468
+ return () => {
469
+ if (navigate === fn) navigate = null;
470
+ };
471
+ },
472
+ },
473
+ panels: {
474
+ // Tavora may wait for another panel to save first.
475
+ open: (type, options = {}) =>
476
+ call("panels.open", { type, ...(options.content ? { content: options.content } : {}) }, LIMITS.navigateTimeoutMs + 5_000),
398
477
  },
399
478
  workspace: {
400
479
  getViewport: () => call("workspace.getViewport"),
@@ -447,6 +526,22 @@ async function createClient(port: MessagePort, requestTimeoutMs: number): Promis
447
526
  throw new TavoraError(body?.error ?? { code: "INTERNAL", message: `could not copy the picture (${response.status})` });
448
527
  },
449
528
  },
529
+ pictures: {
530
+ save: async (png, name = "") => {
531
+ if (png.type !== "image/png") throw new TavoraError({ code: "INVALID_PARAMS", message: "only a PNG picture can be saved" });
532
+ const address = new URL(PICTURES_PATH, window.location.href);
533
+ if (name) address.searchParams.set("name", name);
534
+ let response: Response;
535
+ try {
536
+ response = await fetch(address, { method: "POST", body: png, headers: { "Content-Type": "image/png" } });
537
+ } catch {
538
+ throw new TavoraError({ code: "INTERNAL", message: "could not save the picture" });
539
+ }
540
+ const body = (await response.json().catch(() => null)) as { fileName?: string; error?: ErrorPayload } | null;
541
+ if (response.ok && typeof body?.fileName === "string") return { fileName: body.fileName };
542
+ throw new TavoraError(body?.error ?? { code: "INTERNAL", message: `could not save the picture (${response.status})` });
543
+ },
544
+ },
450
545
  links: {
451
546
  open: async (url) => {
452
547
  await call("links.open", { url });
package/src/protocol.ts CHANGED
@@ -86,6 +86,45 @@ export interface HandshakeResult {
86
86
  panel?: { type: string | null };
87
87
  }
88
88
 
89
+ /**
90
+ * What a panel shows, as the module names it: a build, a character, a run, a document. Tavora keeps it
91
+ * with the panel and shows the title when the player hovers the panel's tab.
92
+ */
93
+ export interface PanelContent {
94
+ /** The module's own id for it, at most 200 characters. */
95
+ id: string;
96
+ /** Its full name, at most 200 characters on one line. */
97
+ title: string;
98
+ }
99
+
100
+ /**
101
+ * Why this page of the panel is loading.
102
+ * - `add`: the player just added the panel. Pick the content yourself, such as the last one used, or show a picker.
103
+ * - `restore`: the panel was open before (a restart, a game switch back, a reload). `content` is what it last
104
+ * showed through `panel.setContent`, or null.
105
+ * - `open`: another panel of this module opened it with `panels.open`. Show `content`, or pick yourself when it is null.
106
+ */
107
+ export type PanelLaunch =
108
+ | { reason: "add" }
109
+ | { reason: "restore"; content: PanelContent | null }
110
+ | { reason: "open"; content: PanelContent | null };
111
+
112
+ /**
113
+ * What `panels.open` did.
114
+ * - `shown`: a panel of that type already showed the content (or none was asked for), and Tavora brought it to the front.
115
+ * - `switched`: an open panel of that type switched to the content (its `panel.onNavigate` handler succeeded).
116
+ * - `opened`: Tavora opened a new panel of that type.
117
+ * - `failed`: the panel that should switch could not save or did not answer in time. It keeps what it showed, and
118
+ * Tavora offers the player to open the content in a new panel.
119
+ */
120
+ export type PanelOpenResult = "shown" | "switched" | "opened" | "failed";
121
+
122
+ /** Tavora asks this panel to show other content (the `panel.navigate` event); answer with `panel.navigated`. */
123
+ export interface PanelNavigateRequest {
124
+ requestId: number;
125
+ content: PanelContent;
126
+ }
127
+
89
128
  export interface DocumentSummary {
90
129
  id: string;
91
130
  title: string;
@@ -287,6 +326,20 @@ export interface Methods {
287
326
  "documents.delete": { params: { id: string; ifRevision?: number }; result: null };
288
327
  "panel.getState": { params: undefined; result: JsonValue | null };
289
328
  "panel.setState": { params: { value: JsonValue | null }; result: null };
329
+ /** Why this page is loading; the same answer for every call until the page loads again. Tavora 0.17.17 and newer. */
330
+ "panel.getLaunch": { params: undefined; result: PanelLaunch };
331
+ /** What the panel shows now, or null for nothing. Tavora 0.17.17 and newer. */
332
+ "panel.setContent": { params: { content: PanelContent | null }; result: null };
333
+ /**
334
+ * The answer to a `panel.navigate` event: `handled` is false when the page takes no navigation (no handler), `ok`
335
+ * whether it now shows the content. Tavora 0.17.18 and newer.
336
+ */
337
+ "panel.navigated": { params: { requestId: number; handled: boolean; ok: boolean }; result: null };
338
+ /**
339
+ * Opens one of this module's own panel types in the current game, optionally on some content. Only right after a
340
+ * click or key press in the panel, once per click. Tavora 0.17.18 and newer.
341
+ */
342
+ "panels.open": { params: { type: string; content?: PanelContent }; result: PanelOpenResult };
290
343
  "workspace.getViewport": { params: undefined; result: TavoraViewport };
291
344
  "ui.getTheme": { params: undefined; result: TavoraTheme };
292
345
  /** The language of Tavora's own texts, as a code such as "en" or "de". */
@@ -344,6 +397,8 @@ export interface Events {
344
397
  "discord.state": DiscordState;
345
398
  /** A Discord event this panel subscribed to. Only with capability `discord`. */
346
399
  "discord.event": DiscordEvent;
400
+ /** Another panel of this module asked this one to show other content; answer with `panel.navigated` within navigateTimeoutMs. */
401
+ "panel.navigate": PanelNavigateRequest;
347
402
  "lifecycle.suspend": null;
348
403
  "lifecycle.resume": null;
349
404
  "lifecycle.dispose": null;
@@ -420,6 +475,10 @@ export const LIMITS = {
420
475
  maxDocumentsBytes: 50 * 1024 * 1024,
421
476
  maxDocuments: 1000,
422
477
  maxTitleLength: 200,
478
+ /** A panel content's id (panel.setContent); its title has maxTitleLength. */
479
+ maxContentIdLength: 200,
480
+ /** How long a panel has to save and switch after a panel.navigate event before Tavora counts it as failed. */
481
+ navigateTimeoutMs: 5_000,
423
482
  /** UI state for one panel. */
424
483
  maxPanelStateBytes: 256 * 1024,
425
484
  /** One stored file (see Blobs). */
@@ -535,5 +594,11 @@ export const BLOB_ID = /^[a-f0-9]{32}$/;
535
594
  /** POST a PNG here, from the module's own page, to put it on the clipboard (see clipboard.writeImage). */
536
595
  export const CLIPBOARD_PATH = "/_clipboard/";
537
596
 
597
+ /**
598
+ * POST a PNG here, from the module's own page, to save it as a file in Tavora's folder in the player's Pictures
599
+ * (see pictures.save). `?name=` suggests the file name; the answer is `{ fileName }`, the name it was saved under.
600
+ */
601
+ export const PICTURES_PATH = "/_pictures/";
602
+
538
603
  /** Document ids: host-generated UUIDs or module-chosen slugs. */
539
604
  export const DOCUMENT_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;