webtau 0.5.2 → 0.7.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.
@@ -1,52 +1,41 @@
1
1
  /**
2
- * webtau/adapters/electrobun Electrobun runtime adapter.
2
+ * webtau/adapters/electrobun - Electrobun runtime adapter.
3
3
  *
4
- * Implements WindowAdapter, EventAdapter, FsAdapter, and DialogAdapter
5
- * by delegating each operation to the Electrobun backend via `invoke()`.
6
- *
7
- * Usage:
8
- * ```ts
9
- * import { bootstrapElectrobun } from "webtau/adapters/electrobun";
10
- *
11
- * bootstrapElectrobun();
12
- * ```
4
+ * Implements WindowAdapter, EventAdapter, FsAdapter, and DialogAdapter by
5
+ * delegating each operation to the Electrobun backend via `invoke()`.
13
6
  */
14
7
  import type { CoreProvider, DialogAdapter, EventAdapter, FsAdapter, WindowAdapter } from "../provider.js";
8
+ type InvokeArgs = Record<string, unknown> | undefined;
9
+ export type ElectrobunRenderMode = "browser" | "hybrid" | "gpu" | "unknown";
10
+ export interface ElectrobunCapabilities {
11
+ runtime: "electrobun";
12
+ renderMode: ElectrobunRenderMode;
13
+ hasGpuWindow: boolean;
14
+ hasWgpuView: boolean;
15
+ hasWebGpu: boolean;
16
+ }
17
+ export interface ElectrobunBridge {
18
+ invoke<T = unknown>(command: string, args?: InvokeArgs): Promise<T>;
19
+ convertFileSrc?: (filePath: string, protocol?: string) => string;
20
+ capabilities?: Partial<Omit<ElectrobunCapabilities, "runtime">>;
21
+ renderMode?: ElectrobunRenderMode;
22
+ }
23
+ declare global {
24
+ interface Window {
25
+ __ELECTROBUN__?: ElectrobunBridge;
26
+ }
27
+ }
28
+ export declare function getElectrobunBridge(): ElectrobunBridge | null;
29
+ export declare function isElectrobun(): boolean;
30
+ export declare function getElectrobunCapabilities(): ElectrobunCapabilities | null;
31
+ export declare function createElectrobunWindowBridgeProvider(bridge?: ElectrobunBridge): CoreProvider;
15
32
  export declare function createElectrobunWindowAdapter(): WindowAdapter;
16
33
  export declare function createElectrobunEventAdapter(): EventAdapter;
17
- /**
18
- * Dispatch an event from the Electrobun backend to a registered handler.
19
- * Called by the IPC bridge when the backend pushes an event.
20
- */
21
34
  export declare function dispatchElectrobunEvent(listenerId: number, event: string, payload: unknown): void;
22
35
  export declare function createElectrobunFsAdapter(): FsAdapter;
23
36
  export declare function createElectrobunDialogAdapter(): DialogAdapter;
24
- /**
25
- * Core provider for the Electrobun runtime.
26
- *
27
- * Provides the `invoke` and `convertFileSrc` implementations that all
28
- * adapters delegate through.
29
- */
30
37
  export declare function createElectrobunCoreProvider(): CoreProvider;
31
- /**
32
- * Bootstrap all Electrobun adapters at once.
33
- *
34
- * Registers the core provider and sets adapters for window, event,
35
- * filesystem, and dialog modules. After calling this function, all
36
- * webtau module-level functions will delegate through Electrobun.
37
- *
38
- * An optional `coreProvider` can be passed to supply a custom IPC
39
- * bridge (e.g. one that delegates to `electrobun.ipc.invoke()`).
40
- *
41
- * ```ts
42
- * import { bootstrapElectrobun } from "webtau/adapters/electrobun";
43
- *
44
- * bootstrapElectrobun({
45
- * id: "electrobun",
46
- * invoke: (cmd, args) => electrobun.ipc.invoke(cmd, args),
47
- * convertFileSrc: (path) => `electrobun://asset/${path}`,
48
- * });
49
- * ```
50
- */
51
38
  export declare function bootstrapElectrobun(coreProvider?: CoreProvider): void;
39
+ export declare function bootstrapElectrobunFromWindowBridge(): boolean;
40
+ export {};
52
41
  //# sourceMappingURL=electrobun.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"electrobun.d.ts","sourceRoot":"","sources":["../../src/adapters/electrobun.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkBH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,aAAa,EACd,MAAM,gBAAgB,CAAC;AAWxB,wBAAgB,6BAA6B,IAAI,aAAa,CA8F7D;AAWD,wBAAgB,4BAA4B,IAAI,YAAY,CAyB3D;AAQD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,IAAI,CAKN;AAYD,wBAAgB,yBAAyB,IAAI,SAAS,CAkErD;AAUD,wBAAgB,6BAA6B,IAAI,aAAa,CAmC7D;AAID;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,YAAY,CAuB3D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAMrE"}
1
+ {"version":3,"file":"electrobun.d.ts","sourceRoot":"","sources":["../../src/adapters/electrobun.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EAET,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAE5E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,oBAAoB,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACpE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjE,YAAY,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC,CAAC;IAChE,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,cAAc,CAAC,EAAE,gBAAgB,CAAC;KACnC;CACF;AAaD,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAK7D;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,yBAAyB,IAAI,sBAAsB,GAAG,IAAI,CAoBzE;AAmBD,wBAAgB,oCAAoC,CAClD,MAAM,GAAE,gBAA4D,GACnE,YAAY,CAqBd;AAED,wBAAgB,6BAA6B,IAAI,aAAa,CA4F7D;AAED,wBAAgB,4BAA4B,IAAI,YAAY,CAsB3D;AAOD,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf,IAAI,CAKN;AAED,wBAAgB,yBAAyB,IAAI,SAAS,CAiErD;AAED,wBAAgB,6BAA6B,IAAI,aAAa,CAmC7D;AAED,wBAAgB,4BAA4B,IAAI,YAAY,CAmB3D;AAED,wBAAgB,mBAAmB,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAMrE;AAED,wBAAgB,mCAAmC,IAAI,OAAO,CAM7D"}
@@ -1,28 +1,83 @@
1
1
  /**
2
- * webtau/adapters/electrobun Electrobun runtime adapter.
2
+ * webtau/adapters/electrobun - Electrobun runtime adapter.
3
3
  *
4
- * Implements WindowAdapter, EventAdapter, FsAdapter, and DialogAdapter
5
- * by delegating each operation to the Electrobun backend via `invoke()`.
6
- *
7
- * Usage:
8
- * ```ts
9
- * import { bootstrapElectrobun } from "webtau/adapters/electrobun";
10
- *
11
- * bootstrapElectrobun();
12
- * ```
4
+ * Implements WindowAdapter, EventAdapter, FsAdapter, and DialogAdapter by
5
+ * delegating each operation to the Electrobun backend via `invoke()`.
13
6
  */
14
7
  import { invoke, registerProvider } from "../core.js";
15
8
  import { setDialogAdapter } from "../dialog.js";
16
9
  import { setEventAdapter } from "../event.js";
17
10
  import { setFsAdapter } from "../fs.js";
18
11
  import { setWindowAdapter } from "../window.js";
19
- // ── Window Adapter ──────────────────────────────────────────────────────────
20
- // Supported: isFullscreen, setFullscreen, innerSize, outerSize, setSize,
21
- // title, setTitle, close, minimize, unminimize, maximize,
22
- // isMaximized, show, hide, setDecorations, scaleFactor,
23
- // currentMonitor
24
- // Partial: center (depends on backend window manager support)
25
- // Unsupported: none currently
12
+ function normalizeRenderMode(mode) {
13
+ switch (mode) {
14
+ case "browser":
15
+ case "hybrid":
16
+ case "gpu":
17
+ return mode;
18
+ default:
19
+ return "unknown";
20
+ }
21
+ }
22
+ export function getElectrobunBridge() {
23
+ if (typeof window === "undefined")
24
+ return null;
25
+ const bridge = window.__ELECTROBUN__;
26
+ return bridge && typeof bridge.invoke === "function" ? bridge : null;
27
+ }
28
+ export function isElectrobun() {
29
+ return getElectrobunBridge() !== null;
30
+ }
31
+ export function getElectrobunCapabilities() {
32
+ const bridge = getElectrobunBridge();
33
+ if (!bridge)
34
+ return null;
35
+ const renderMode = normalizeRenderMode(bridge.renderMode ?? bridge.capabilities?.renderMode);
36
+ const hasGpuWindow = bridge.capabilities?.hasGpuWindow ?? renderMode === "gpu";
37
+ const hasWgpuView = bridge.capabilities?.hasWgpuView
38
+ ?? (renderMode === "hybrid" || renderMode === "gpu");
39
+ const hasWebGpu = bridge.capabilities?.hasWebGpu
40
+ ?? (hasWgpuView || renderMode === "gpu");
41
+ return {
42
+ runtime: "electrobun",
43
+ renderMode,
44
+ hasGpuWindow,
45
+ hasWgpuView,
46
+ hasWebGpu,
47
+ };
48
+ }
49
+ function getElectrobunRuntimeCapabilities() {
50
+ const capabilities = getElectrobunCapabilities();
51
+ return {
52
+ events: true,
53
+ fs: true,
54
+ dialog: true,
55
+ window: true,
56
+ task: true,
57
+ convertFileSrc: true,
58
+ renderMode: capabilities?.renderMode ?? "unknown",
59
+ hasGpuWindow: capabilities?.hasGpuWindow ?? false,
60
+ hasWgpuView: capabilities?.hasWgpuView ?? false,
61
+ hasWebGpu: capabilities?.hasWebGpu ?? false,
62
+ };
63
+ }
64
+ export function createElectrobunWindowBridgeProvider(bridge = getElectrobunBridge()) {
65
+ if (!bridge || typeof bridge.invoke !== "function") {
66
+ throw new Error("[webtau/electrobun] No window.__ELECTROBUN__ bridge is available.");
67
+ }
68
+ return {
69
+ id: "electrobun",
70
+ invoke: (command, args) => bridge.invoke(command, args),
71
+ convertFileSrc: (filePath, protocol) => (bridge.convertFileSrc
72
+ ? bridge.convertFileSrc(filePath, protocol)
73
+ : `electrobun://asset/${filePath.replace(/^\/+/, "")}`),
74
+ runtimeInfo: {
75
+ id: "electrobun",
76
+ platform: "desktop",
77
+ capabilities: getElectrobunRuntimeCapabilities(),
78
+ },
79
+ };
80
+ }
26
81
  export function createElectrobunWindowAdapter() {
27
82
  return {
28
83
  async isFullscreen() {
@@ -74,8 +129,6 @@ export function createElectrobunWindowAdapter() {
74
129
  async setDecorations(decorations) {
75
130
  await invoke("plugin:electrobun|window_set_decorations", { decorations });
76
131
  },
77
- // Partial: centering depends on the Electrobun backend's window
78
- // manager integration. May be a no-op on some platforms.
79
132
  async center() {
80
133
  await invoke("plugin:electrobun|window_center");
81
134
  },
@@ -87,26 +140,18 @@ export function createElectrobunWindowAdapter() {
87
140
  },
88
141
  };
89
142
  }
90
- // ── Event Adapter ───────────────────────────────────────────────────────────
91
- // Supported: listen, emit
92
- // Partial: none
93
- // Unsupported: none currently
94
- //
95
- // Note: The event system relies on the Electrobun backend to manage event
96
- // subscriptions. The `listen` call returns an unlisten ID that is used to
97
- // remove the subscription on the backend when `unlisten()` is called.
98
143
  export function createElectrobunEventAdapter() {
99
144
  return {
100
145
  async listen(event, handler) {
101
146
  const listenerId = await invoke("plugin:electrobun|event_listen", { event });
102
- // Register a callback bridge — in a real Electrobun integration this
103
- // would wire into the IPC message channel. Here we store the handler
104
- // so the backend can dispatch events to it.
105
- electrobunEventHandlers.set(listenerId, { event, handler: handler });
147
+ electrobunEventHandlers.set(listenerId, {
148
+ event,
149
+ handler: handler,
150
+ });
106
151
  return () => {
107
152
  electrobunEventHandlers.delete(listenerId);
108
153
  invoke("plugin:electrobun|event_unlisten", { listenerId }).catch(() => {
109
- // Best-effort cleanup — ignore errors during unlisten.
154
+ // Best-effort cleanup.
110
155
  });
111
156
  };
112
157
  },
@@ -115,27 +160,13 @@ export function createElectrobunEventAdapter() {
115
160
  },
116
161
  };
117
162
  }
118
- /** Internal registry for event handlers keyed by listener ID. */
119
163
  const electrobunEventHandlers = new Map();
120
- /**
121
- * Dispatch an event from the Electrobun backend to a registered handler.
122
- * Called by the IPC bridge when the backend pushes an event.
123
- */
124
164
  export function dispatchElectrobunEvent(listenerId, event, payload) {
125
165
  const entry = electrobunEventHandlers.get(listenerId);
126
166
  if (entry) {
127
167
  entry.handler({ event, id: listenerId, payload });
128
168
  }
129
169
  }
130
- // ── Filesystem Adapter ──────────────────────────────────────────────────────
131
- // Supported: writeTextFile, readTextFile, writeFile, readFile, exists,
132
- // mkdir, readDir, remove, copyFile, rename
133
- // Partial: none
134
- // Unsupported: none currently
135
- //
136
- // Note: Binary data (Uint8Array/ArrayBuffer) is serialized as a number[]
137
- // for JSON transport over IPC. The backend is responsible for converting
138
- // back to native byte buffers.
139
170
  export function createElectrobunFsAdapter() {
140
171
  return {
141
172
  async writeTextFile(path, contents) {
@@ -145,7 +176,6 @@ export function createElectrobunFsAdapter() {
145
176
  return invoke("plugin:electrobun|fs_read_text_file", { path });
146
177
  },
147
178
  async writeFile(path, contents) {
148
- // Serialize binary data as number[] for JSON IPC transport.
149
179
  let data;
150
180
  if (contents instanceof Uint8Array) {
151
181
  data = Array.from(contents);
@@ -194,13 +224,6 @@ export function createElectrobunFsAdapter() {
194
224
  },
195
225
  };
196
226
  }
197
- // ── Dialog Adapter ──────────────────────────────────────────────────────────
198
- // Supported: message, ask, open, save
199
- // Partial: none
200
- // Unsupported: none currently
201
- //
202
- // Note: Dialog appearance and behavior depend on the Electrobun backend's
203
- // native dialog implementation. Options are forwarded as-is.
204
227
  export function createElectrobunDialogAdapter() {
205
228
  return {
206
229
  async message(text, options) {
@@ -234,52 +257,24 @@ export function createElectrobunDialogAdapter() {
234
257
  },
235
258
  };
236
259
  }
237
- // ── Bootstrap ───────────────────────────────────────────────────────────────
238
- /**
239
- * Core provider for the Electrobun runtime.
240
- *
241
- * Provides the `invoke` and `convertFileSrc` implementations that all
242
- * adapters delegate through.
243
- */
244
260
  export function createElectrobunCoreProvider() {
245
261
  return {
246
262
  id: "electrobun",
247
263
  invoke: async (command, _args) => {
248
- // In a real Electrobun integration, this would delegate to
249
- // electrobun.ipc.invoke(). For now, we throw to indicate
250
- // that the actual IPC bridge must be provided at integration time.
251
- //
252
- // When integrating, replace this with:
253
- // return electrobun.ipc.invoke(command, args) as Promise<T>;
254
264
  throw new Error(`[webtau/electrobun] No IPC bridge configured. ` +
255
265
  `Cannot invoke "${command}". Wire electrobun.ipc.invoke() ` +
256
266
  `into the core provider before calling bootstrapElectrobun().`);
257
267
  },
258
- convertFileSrc: (filePath, _protocol) => {
268
+ convertFileSrc: (filePath) => {
259
269
  return `electrobun://asset/${filePath.replace(/^\/+/, "")}`;
260
270
  },
271
+ runtimeInfo: {
272
+ id: "electrobun",
273
+ platform: "desktop",
274
+ capabilities: getElectrobunRuntimeCapabilities(),
275
+ },
261
276
  };
262
277
  }
263
- /**
264
- * Bootstrap all Electrobun adapters at once.
265
- *
266
- * Registers the core provider and sets adapters for window, event,
267
- * filesystem, and dialog modules. After calling this function, all
268
- * webtau module-level functions will delegate through Electrobun.
269
- *
270
- * An optional `coreProvider` can be passed to supply a custom IPC
271
- * bridge (e.g. one that delegates to `electrobun.ipc.invoke()`).
272
- *
273
- * ```ts
274
- * import { bootstrapElectrobun } from "webtau/adapters/electrobun";
275
- *
276
- * bootstrapElectrobun({
277
- * id: "electrobun",
278
- * invoke: (cmd, args) => electrobun.ipc.invoke(cmd, args),
279
- * convertFileSrc: (path) => `electrobun://asset/${path}`,
280
- * });
281
- * ```
282
- */
283
278
  export function bootstrapElectrobun(coreProvider) {
284
279
  registerProvider(coreProvider ?? createElectrobunCoreProvider());
285
280
  setWindowAdapter(createElectrobunWindowAdapter());
@@ -287,4 +282,11 @@ export function bootstrapElectrobun(coreProvider) {
287
282
  setFsAdapter(createElectrobunFsAdapter());
288
283
  setDialogAdapter(createElectrobunDialogAdapter());
289
284
  }
285
+ export function bootstrapElectrobunFromWindowBridge() {
286
+ const bridge = getElectrobunBridge();
287
+ if (!bridge)
288
+ return false;
289
+ bootstrapElectrobun(createElectrobunWindowBridgeProvider(bridge));
290
+ return true;
291
+ }
290
292
  //# sourceMappingURL=electrobun.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"electrobun.js","sourceRoot":"","sources":["../../src/adapters/electrobun.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"electrobun.js","sourceRoot":"","sources":["../../src/adapters/electrobun.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tauri.d.ts","sourceRoot":"","sources":["../../src/adapters/tauri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAwBjE,wBAAgB,uBAAuB,IAAI,YAAY,CAmBtD;AAOD,wBAAgB,uBAAuB,IAAI,YAAY,CAYtD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAGhE"}
1
+ {"version":3,"file":"tauri.d.ts","sourceRoot":"","sources":["../../src/adapters/tauri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAwBjE,wBAAgB,uBAAuB,IAAI,YAAY,CAmBtD;AAOD,wBAAgB,uBAAuB,IAAI,YAAY,CAwBtD;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAGhE"}
@@ -47,6 +47,18 @@ export function createTauriCoreProvider() {
47
47
  const proto = protocol ?? "asset";
48
48
  return `${proto}://localhost${filePath.startsWith("/") ? filePath : `/${filePath}`}`;
49
49
  },
50
+ runtimeInfo: {
51
+ id: "tauri",
52
+ platform: "desktop",
53
+ capabilities: {
54
+ events: true,
55
+ fs: true,
56
+ dialog: true,
57
+ window: true,
58
+ task: true,
59
+ convertFileSrc: true,
60
+ },
61
+ },
50
62
  };
51
63
  }
52
64
  // ── Bootstrap ─────────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"tauri.js","sourceRoot":"","sources":["../../src/adapters/tauri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoB9C,+EAA+E;AAC/E,0EAA0E;AAC1E,4EAA4E;AAC5E,4CAA4C;AAE5C,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,KAAK,CAAC,MAAM,CAAI,KAAa,EAAE,OAAyB;YACtD,wEAAwE;YACxE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uBAAiC,CAAqB,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAC/B,KAAK,EACL,CAAC,UAAU,EAAE,EAAE;gBACb,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACvF,CAAC,CACF,CAAC;YACF,OAAO,QAAsB,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,IAAI,CAAI,KAAa,EAAE,OAAW;YACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uBAAiC,CAAqB,CAAC;YAChF,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,iEAAiE;AACjE,gFAAgF;AAChF,oEAAoE;AAEpE,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,EAAE,EAAE,OAAO;QACX,MAAM,EAAE,KAAK,EAAe,OAAe,EAAE,IAA8B,EAAc,EAAE;YACzF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAgC,CAAoB,CAAC;YAC9E,OAAO,GAAG,CAAC,MAAM,CAAI,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,cAAc,EAAE,CAAC,QAAgB,EAAE,QAAiB,EAAU,EAAE;YAC9D,MAAM,KAAK,GAAG,QAAQ,IAAI,OAAO,CAAC;YAClC,OAAO,GAAG,KAAK,eAAe,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC;QACvF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,YAA2B;IACxD,gBAAgB,CAAC,YAAY,IAAI,uBAAuB,EAAE,CAAC,CAAC;IAC5D,eAAe,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"tauri.js","sourceRoot":"","sources":["../../src/adapters/tauri.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAoB9C,+EAA+E;AAC/E,0EAA0E;AAC1E,4EAA4E;AAC5E,4CAA4C;AAE5C,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,KAAK,CAAC,MAAM,CAAI,KAAa,EAAE,OAAyB;YACtD,wEAAwE;YACxE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uBAAiC,CAAqB,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAC/B,KAAK,EACL,CAAC,UAAU,EAAE,EAAE;gBACb,OAAO,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YACvF,CAAC,CACF,CAAC;YACF,OAAO,QAAsB,CAAC;QAChC,CAAC;QAED,KAAK,CAAC,IAAI,CAAI,KAAa,EAAE,OAAW;YACtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,uBAAiC,CAAqB,CAAC;YAChF,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,iEAAiE;AACjE,gFAAgF;AAChF,oEAAoE;AAEpE,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,EAAE,EAAE,OAAO;QACX,MAAM,EAAE,KAAK,EAAe,OAAe,EAAE,IAA8B,EAAc,EAAE;YACzF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,sBAAgC,CAAoB,CAAC;YAC9E,OAAO,GAAG,CAAC,MAAM,CAAI,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QACD,cAAc,EAAE,CAAC,QAAgB,EAAE,QAAiB,EAAU,EAAE;YAC9D,MAAM,KAAK,GAAG,QAAQ,IAAI,OAAO,CAAC;YAClC,OAAO,GAAG,KAAK,eAAe,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,EAAE,CAAC;QACvF,CAAC;QACD,WAAW,EAAE;YACX,EAAE,EAAE,OAAO;YACX,QAAQ,EAAE,SAAS;YACnB,YAAY,EAAE;gBACZ,MAAM,EAAE,IAAI;gBACZ,EAAE,EAAE,IAAI;gBACR,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,IAAI;gBACZ,IAAI,EAAE,IAAI;gBACV,cAAc,EAAE,IAAI;aACrB;SACF;KACF,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc,CAAC,YAA2B;IACxD,gBAAgB,CAAC,YAAY,IAAI,uBAAuB,EAAE,CAAC,CAAC;IAC5D,eAAe,CAAC,uBAAuB,EAAE,CAAC,CAAC;AAC7C,CAAC"}
package/dist/core.d.ts CHANGED
@@ -1,97 +1,27 @@
1
1
  /**
2
- * webtau Tauri-to-web invoke router.
2
+ * webtau - Tauri-to-web invoke router.
3
3
  *
4
- * Detects whether the app is running inside Tauri (desktop) or as a
5
- * plain web app. In Tauri mode, delegates to `@tauri-apps/api/core`.
6
- * In web mode, calls the corresponding function from a WASM module
7
- * that was registered via `configure()`.
8
- *
9
- * A runtime provider can be registered via `registerProvider()` to
10
- * route invoke() and convertFileSrc() through an arbitrary backend
11
- * (e.g. Electrobun). When no provider is registered and `isTauri()`
12
- * is true, Tauri auto-registers itself on first invoke().
4
+ * Detects whether the app is running inside Tauri (desktop) or as a plain web
5
+ * app. In Tauri mode, delegates to `@tauri-apps/api/core`. In web mode, calls
6
+ * the corresponding function from a configured WASM module. A runtime provider
7
+ * can be registered to route invoke and asset conversion through an arbitrary
8
+ * backend (for example Electrobun).
13
9
  */
14
- import type { CoreProvider } from "./provider.js";
15
- export type { CoreProvider };
10
+ import type { CoreProvider, RuntimeCapabilities, RuntimeInfo, RuntimeInfoResolver } from "./provider.js";
11
+ export type { CoreProvider, RuntimeCapabilities, RuntimeInfo, RuntimeInfoResolver };
16
12
  export type { DiagnosticCode, DiagnosticEnvelope } from "./diagnostics.js";
17
13
  export { WebtauError } from "./diagnostics.js";
18
14
  type WasmModule = Record<string, (...args: any[]) => any>;
19
15
  export interface WebtauConfig {
20
- /**
21
- * A function that returns the WASM module (or a promise for it).
22
- * This is typically `() => import("./wasm")` pointing at the
23
- * wasm-pack output.
24
- */
25
16
  loadWasm: () => Promise<WasmModule>;
26
- /**
27
- * Called if the WASM module fails to load.
28
- * Defaults to `console.error`.
29
- */
30
17
  onLoadError?: (error: unknown) => void;
31
18
  }
32
- /**
33
- * Configure webtau for web mode. Must be called before the first
34
- * `invoke()` in a web build. In Tauri mode this is a no-op.
35
- *
36
- * ```ts
37
- * import { configure } from "webtau";
38
- *
39
- * configure({
40
- * loadWasm: () => import("./wasm"),
41
- * });
42
- * ```
43
- */
44
19
  export declare function configure(config: WebtauConfig): void;
45
- /**
46
- * Register a runtime provider that replaces the default Tauri/WASM
47
- * routing in `invoke()` and `convertFileSrc()`.
48
- *
49
- * ```ts
50
- * import { registerProvider } from "webtau";
51
- *
52
- * registerProvider({
53
- * id: "electrobun",
54
- * invoke: (cmd, args) => electrobun.ipc.invoke(cmd, args),
55
- * convertFileSrc: (path) => `electrobun://asset/${path}`,
56
- * });
57
- * ```
58
- */
59
20
  export declare function registerProvider(provider: CoreProvider): void;
60
- /** Returns the currently registered provider, or `null`. */
61
21
  export declare function getProvider(): CoreProvider | null;
62
- /** Clears the registered provider (useful for testing). */
63
22
  export declare function resetProvider(): void;
64
- /**
65
- * Returns `true` when running inside Tauri.
66
- * Checks for `window.__TAURI_INTERNALS__` which Tauri injects.
67
- */
68
23
  export declare function isTauri(): boolean;
69
- /**
70
- * Universal invoke — same API as `@tauri-apps/api/core`'s `invoke()`.
71
- *
72
- * In Tauri mode: delegates to Tauri IPC.
73
- * In web mode: calls the matching WASM export, passing the args
74
- * object as a single parameter.
75
- *
76
- * ```ts
77
- * const view = await invoke<WorldView>("get_world_view");
78
- * const result = await invoke<TickResult>("tick_world");
79
- * ```
80
- */
24
+ export declare function getRuntimeInfo(): RuntimeInfo;
81
25
  export declare function invoke<T = unknown>(command: string, args?: Record<string, unknown>): Promise<T>;
82
- /**
83
- * Converts a file path to a URL that can be used to load assets.
84
- *
85
- * In Tauri mode: delegates to `@tauri-apps/api/core`'s `convertFileSrc()`,
86
- * which returns an `asset://` protocol URL.
87
- * In web mode: returns the path as-is — no protocol conversion is needed
88
- * since web apps load assets via standard HTTP URLs.
89
- *
90
- * ```ts
91
- * const url = convertFileSrc("/app/data/sprite.png");
92
- * // web: "/app/data/sprite.png"
93
- * // Tauri: "asset://localhost/app/data/sprite.png"
94
- * ```
95
- */
96
26
  export declare function convertFileSrc(filePath: string, protocol?: string): string;
97
27
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,YAAY,EAAE,YAAY,EAAE,CAAC;AAC7B,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAO1D,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAEpC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAOpD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED,4DAA4D;AAC5D,wBAAgB,WAAW,IAAI,YAAY,GAAG,IAAI,CAEjD;AAED,2DAA2D;AAC3D,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,OAAO,CAKjC;AAkDD;;;;;;;;;;;GAWG;AACH,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EACtC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CA8EZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAM1E"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC;AACpF,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC;AAe1D,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AA8GD,wBAAgB,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAOpD;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAE7D;AAED,wBAAgB,WAAW,IAAI,YAAY,GAAG,IAAI,CAEjD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED,wBAAgB,OAAO,IAAI,OAAO,CAEjC;AAED,wBAAgB,cAAc,IAAI,WAAW,CAkB5C;AAqCD,wBAAsB,MAAM,CAAC,CAAC,GAAG,OAAO,EACtC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC,CA6EZ;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAM1E"}
package/dist/core.js CHANGED
@@ -1,15 +1,11 @@
1
1
  /**
2
- * webtau Tauri-to-web invoke router.
2
+ * webtau - Tauri-to-web invoke router.
3
3
  *
4
- * Detects whether the app is running inside Tauri (desktop) or as a
5
- * plain web app. In Tauri mode, delegates to `@tauri-apps/api/core`.
6
- * In web mode, calls the corresponding function from a WASM module
7
- * that was registered via `configure()`.
8
- *
9
- * A runtime provider can be registered via `registerProvider()` to
10
- * route invoke() and convertFileSrc() through an arbitrary backend
11
- * (e.g. Electrobun). When no provider is registered and `isTauri()`
12
- * is true, Tauri auto-registers itself on first invoke().
4
+ * Detects whether the app is running inside Tauri (desktop) or as a plain web
5
+ * app. In Tauri mode, delegates to `@tauri-apps/api/core`. In web mode, calls
6
+ * the corresponding function from a configured WASM module. A runtime provider
7
+ * can be registered to route invoke and asset conversion through an arbitrary
8
+ * backend (for example Electrobun).
13
9
  */
14
10
  import { WebtauError } from "./diagnostics.js";
15
11
  export { WebtauError } from "./diagnostics.js";
@@ -20,18 +16,98 @@ let wasmLoadPromise = null;
20
16
  let onLoadError = (err) => {
21
17
  console.error("[webtau] Failed to load WASM module:", err);
22
18
  };
23
- /**
24
- * Configure webtau for web mode. Must be called before the first
25
- * `invoke()` in a web build. In Tauri mode this is a no-op.
26
- *
27
- * ```ts
28
- * import { configure } from "webtau";
29
- *
30
- * configure({
31
- * loadWasm: () => import("./wasm"),
32
- * });
33
- * ```
34
- */
19
+ const wasmCapabilities = {
20
+ events: true,
21
+ fs: true,
22
+ dialog: true,
23
+ window: true,
24
+ task: true,
25
+ convertFileSrc: true,
26
+ };
27
+ const tauriCapabilities = {
28
+ events: true,
29
+ fs: true,
30
+ dialog: true,
31
+ window: true,
32
+ task: true,
33
+ convertFileSrc: true,
34
+ };
35
+ function cloneRuntimeInfo(info) {
36
+ return {
37
+ ...info,
38
+ capabilities: { ...info.capabilities },
39
+ };
40
+ }
41
+ function normalizeElectrobunRenderMode(mode) {
42
+ switch (mode) {
43
+ case "browser":
44
+ case "hybrid":
45
+ case "gpu":
46
+ return mode;
47
+ default:
48
+ return "unknown";
49
+ }
50
+ }
51
+ function getElectrobunBridgeCapabilities() {
52
+ // Fallback capability derivation for bare provider registrations. The
53
+ // Electrobun adapter remains the authoritative path when runtimeInfo is
54
+ // supplied explicitly by the provider itself.
55
+ const bridge = typeof window !== "undefined"
56
+ ? window.__ELECTROBUN__
57
+ : undefined;
58
+ const renderMode = normalizeElectrobunRenderMode(bridge?.renderMode ?? bridge?.capabilities?.renderMode);
59
+ const hasGpuWindow = bridge?.capabilities?.hasGpuWindow ?? renderMode === "gpu";
60
+ const hasWgpuView = bridge?.capabilities?.hasWgpuView
61
+ ?? (renderMode === "hybrid" || renderMode === "gpu");
62
+ const hasWebGpu = bridge?.capabilities?.hasWebGpu
63
+ ?? (hasWgpuView || renderMode === "gpu");
64
+ return {
65
+ events: true,
66
+ fs: true,
67
+ dialog: true,
68
+ window: true,
69
+ task: true,
70
+ convertFileSrc: true,
71
+ renderMode,
72
+ hasGpuWindow,
73
+ hasWgpuView,
74
+ hasWebGpu,
75
+ };
76
+ }
77
+ function deriveRuntimeInfo(provider) {
78
+ const resolved = typeof provider.runtimeInfo === "function"
79
+ ? provider.runtimeInfo()
80
+ : provider.runtimeInfo;
81
+ if (resolved) {
82
+ return cloneRuntimeInfo(resolved);
83
+ }
84
+ if (provider.id === "tauri") {
85
+ return {
86
+ id: "tauri",
87
+ platform: "desktop",
88
+ capabilities: { ...tauriCapabilities },
89
+ };
90
+ }
91
+ if (provider.id === "electrobun") {
92
+ return {
93
+ id: "electrobun",
94
+ platform: "desktop",
95
+ capabilities: getElectrobunBridgeCapabilities(),
96
+ };
97
+ }
98
+ return {
99
+ id: provider.id,
100
+ platform: "desktop",
101
+ capabilities: {
102
+ events: false,
103
+ fs: false,
104
+ dialog: false,
105
+ window: false,
106
+ task: true,
107
+ convertFileSrc: true,
108
+ },
109
+ };
110
+ }
35
111
  export function configure(config) {
36
112
  wasmLoader = config.loadWasm;
37
113
  wasmModule = null;
@@ -40,52 +116,38 @@ export function configure(config) {
40
116
  onLoadError = config.onLoadError;
41
117
  }
42
118
  }
43
- /**
44
- * Register a runtime provider that replaces the default Tauri/WASM
45
- * routing in `invoke()` and `convertFileSrc()`.
46
- *
47
- * ```ts
48
- * import { registerProvider } from "webtau";
49
- *
50
- * registerProvider({
51
- * id: "electrobun",
52
- * invoke: (cmd, args) => electrobun.ipc.invoke(cmd, args),
53
- * convertFileSrc: (path) => `electrobun://asset/${path}`,
54
- * });
55
- * ```
56
- */
57
119
  export function registerProvider(provider) {
58
120
  registeredProvider = provider;
59
121
  }
60
- /** Returns the currently registered provider, or `null`. */
61
122
  export function getProvider() {
62
123
  return registeredProvider;
63
124
  }
64
- /** Clears the registered provider (useful for testing). */
65
125
  export function resetProvider() {
66
126
  registeredProvider = null;
67
127
  }
68
- /**
69
- * Returns `true` when running inside Tauri.
70
- * Checks for `window.__TAURI_INTERNALS__` which Tauri injects.
71
- */
72
128
  export function isTauri() {
73
- return (typeof window !== "undefined" &&
74
- "__TAURI_INTERNALS__" in window);
129
+ return typeof window !== "undefined" && "__TAURI_INTERNALS__" in window;
130
+ }
131
+ export function getRuntimeInfo() {
132
+ if (registeredProvider) {
133
+ return deriveRuntimeInfo(registeredProvider);
134
+ }
135
+ if (isTauri()) {
136
+ return {
137
+ id: "tauri",
138
+ platform: "desktop",
139
+ capabilities: { ...tauriCapabilities },
140
+ };
141
+ }
142
+ return {
143
+ id: "wasm",
144
+ platform: "web",
145
+ capabilities: { ...wasmCapabilities },
146
+ };
75
147
  }
76
- /**
77
- * Lazily loads and caches the WASM module.
78
- *
79
- * Loading is deduplicated: concurrent `invoke()` calls while the module is
80
- * still loading will share the same promise instead of triggering multiple
81
- * loads. On failure the promise is cleared so the next `invoke()` retries
82
- * the load (the user may have called `configure()` with a fixed loader).
83
- */
84
148
  async function getWasmModule() {
85
- // Fast path: module already loaded and cached.
86
149
  if (wasmModule)
87
150
  return wasmModule;
88
- // Deduplicate: if a load is already in flight, piggyback on it.
89
151
  if (wasmLoadPromise)
90
152
  return wasmLoadPromise;
91
153
  if (!wasmLoader) {
@@ -101,8 +163,6 @@ async function getWasmModule() {
101
163
  wasmModule = mod;
102
164
  return mod;
103
165
  }, (err) => {
104
- // Clear promise so subsequent invoke() calls can retry after the
105
- // user fixes the issue (e.g. reconfigures with a valid loader).
106
166
  wasmLoadPromise = null;
107
167
  onLoadError(err);
108
168
  throw new WebtauError({
@@ -115,20 +175,7 @@ async function getWasmModule() {
115
175
  });
116
176
  return wasmLoadPromise;
117
177
  }
118
- /**
119
- * Universal invoke — same API as `@tauri-apps/api/core`'s `invoke()`.
120
- *
121
- * In Tauri mode: delegates to Tauri IPC.
122
- * In web mode: calls the matching WASM export, passing the args
123
- * object as a single parameter.
124
- *
125
- * ```ts
126
- * const view = await invoke<WorldView>("get_world_view");
127
- * const result = await invoke<TickResult>("tick_world");
128
- * ```
129
- */
130
178
  export async function invoke(command, args) {
131
- // 1. Explicit provider — delegate immediately.
132
179
  if (registeredProvider) {
133
180
  try {
134
181
  return await registeredProvider.invoke(command, args);
@@ -145,20 +192,21 @@ export async function invoke(command, args) {
145
192
  });
146
193
  }
147
194
  }
148
- // 2. Auto-detect Tauri — lazily register a Tauri provider, then delegate.
149
195
  if (isTauri()) {
150
- // Dynamic import — @tauri-apps/api is an optional peer dependency.
151
- // Only loaded at runtime inside Tauri, never in web builds.
152
196
  const mod = await import("@tauri-apps/api/core");
153
197
  const tauriProvider = {
154
198
  id: "tauri",
155
199
  invoke: (cmd, a) => mod.invoke(cmd, a),
156
200
  convertFileSrc: (path, protocol) => mod.convertFileSrc(path, protocol),
201
+ runtimeInfo: {
202
+ id: "tauri",
203
+ platform: "desktop",
204
+ capabilities: { ...tauriCapabilities },
205
+ },
157
206
  };
158
207
  registeredProvider = tauriProvider;
159
208
  return tauriProvider.invoke(command, args);
160
209
  }
161
- // 3. WASM path — unchanged.
162
210
  const wasm = await getWasmModule();
163
211
  const fn = wasm[command];
164
212
  if (typeof fn !== "function") {
@@ -173,7 +221,6 @@ export async function invoke(command, args) {
173
221
  }
174
222
  try {
175
223
  const result = args ? fn(args) : fn();
176
- // wasm_bindgen can return plain values or promises
177
224
  if (result instanceof Promise) {
178
225
  try {
179
226
  return await result;
@@ -204,25 +251,10 @@ export async function invoke(command, args) {
204
251
  });
205
252
  }
206
253
  }
207
- /**
208
- * Converts a file path to a URL that can be used to load assets.
209
- *
210
- * In Tauri mode: delegates to `@tauri-apps/api/core`'s `convertFileSrc()`,
211
- * which returns an `asset://` protocol URL.
212
- * In web mode: returns the path as-is — no protocol conversion is needed
213
- * since web apps load assets via standard HTTP URLs.
214
- *
215
- * ```ts
216
- * const url = convertFileSrc("/app/data/sprite.png");
217
- * // web: "/app/data/sprite.png"
218
- * // Tauri: "asset://localhost/app/data/sprite.png"
219
- * ```
220
- */
221
254
  export function convertFileSrc(filePath, protocol) {
222
255
  if (registeredProvider) {
223
256
  return registeredProvider.convertFileSrc(filePath, protocol);
224
257
  }
225
- // On web, just return the path as-is — no protocol conversion needed
226
258
  return filePath;
227
259
  }
228
260
  //# sourceMappingURL=core.js.map
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,40 @@
1
1
  /**
2
- * webtau/provider Adapter interfaces for runtime providers.
2
+ * webtau/provider - Adapter interfaces for runtime providers.
3
3
  *
4
- * Types only no runtime logic. Each interface defines the contract
5
- * that a runtime provider (Tauri, Electrobun, etc.) must implement
6
- * for the corresponding webtau module.
4
+ * Types only - no runtime logic. Each interface defines the contract that a
5
+ * runtime provider (Tauri, Electrobun, etc.) must implement for the
6
+ * corresponding webtau module.
7
7
  */
8
8
  import type { MessageDialogOptions, OpenDialogOptions, SaveDialogOptions } from "./dialog.js";
9
9
  import type { EventCallback, UnlistenFn } from "./event.js";
10
10
  import type { CreateDirOptions, FsEntry, ReadDirOptions, RemoveOptions } from "./fs.js";
11
+ export interface RuntimeCapabilities {
12
+ events: boolean;
13
+ fs: boolean;
14
+ dialog: boolean;
15
+ window: boolean;
16
+ task: boolean;
17
+ convertFileSrc: boolean;
18
+ renderMode?: string;
19
+ hasGpuWindow?: boolean;
20
+ hasWgpuView?: boolean;
21
+ hasWebGpu?: boolean;
22
+ }
23
+ export interface RuntimeInfo {
24
+ id: string;
25
+ platform: "web" | "desktop";
26
+ capabilities: RuntimeCapabilities;
27
+ }
28
+ export type RuntimeInfoResolver = RuntimeInfo | (() => RuntimeInfo);
11
29
  export interface CoreProvider {
12
- /** Unique identifier for this runtime (e.g. "tauri", "electrobun"). */
30
+ /** Unique identifier for this runtime (for example "tauri" or "electrobun"). */
13
31
  id: string;
14
32
  /** Invoke a command on the runtime backend. */
15
33
  invoke<T = unknown>(command: string, args?: Record<string, unknown>): Promise<T>;
16
34
  /** Convert a file path to a URL suitable for loading assets. */
17
35
  convertFileSrc(filePath: string, protocol?: string): string;
36
+ /** Optional runtime/capability metadata for capability-based branching. */
37
+ runtimeInfo?: RuntimeInfoResolver;
18
38
  }
19
39
  export interface WindowAdapter {
20
40
  isFullscreen(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/dist/provider.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * webtau/provider Adapter interfaces for runtime providers.
2
+ * webtau/provider - Adapter interfaces for runtime providers.
3
3
  *
4
- * Types only no runtime logic. Each interface defines the contract
5
- * that a runtime provider (Tauri, Electrobun, etc.) must implement
6
- * for the corresponding webtau module.
4
+ * Types only - no runtime logic. Each interface defines the contract that a
5
+ * runtime provider (Tauri, Electrobun, etc.) must implement for the
6
+ * corresponding webtau module.
7
7
  */
8
8
  export {};
9
9
  //# sourceMappingURL=provider.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webtau",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Deploy Tauri games to web + desktop from one codebase",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {