@elizaos/capacitor-desktop 2.0.0-beta.1 → 2.0.11-beta.7

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Shaw Walters and elizaOS Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,84 @@
1
+ # @elizaos/capacitor-desktop
2
+
3
+ Capacitor plugin that gives Eliza agent UIs access to native desktop OS capabilities. When running inside Electrobun it provides the full feature set; in a browser it falls back gracefully using Web APIs or safe unavailable results.
4
+
5
+ ## What it does
6
+
7
+ Adds the `Desktop` singleton to the renderer process with these capability groups:
8
+
9
+ | Capability | Node/Electrobun | Browser |
10
+ |---|---|---|
11
+ | System tray (icon, tooltip, menu) | Full | Unavailable return |
12
+ | Global keyboard shortcuts | Full | Unavailable return (`success: false`) |
13
+ | Auto-launch at login | Full | Unavailable return |
14
+ | Window management (size, position, fullscreen, opacity, always-on-top) | Full | Partial (fullscreen, focus, close) |
15
+ | Native notifications | Full | Web Notification API |
16
+ | Power monitor (battery, idle state) | Full | Battery API where available |
17
+ | App controls (quit, relaunch, getPath, getVersion) | Full | Limited (`getPath` throws) |
18
+ | Clipboard (text, HTML, RTF, image) | Full | Text + HTML via Clipboard API |
19
+ | Shell (openExternal, showItemInFolder, beep) | Full | `window.open`; others unavailable |
20
+ | System permissions (check/request) | Full via prober registry | camera, mic, location, notifications only |
21
+
22
+ ## Events
23
+
24
+ Subscribe via `Desktop.addListener(eventName, listener)`:
25
+
26
+ - **Tray:** `trayClick`, `trayDoubleClick`, `trayRightClick`, `trayMenuClick`
27
+ - **Shortcuts:** `shortcutPressed`
28
+ - **Notifications:** `notificationClick`, `notificationAction`, `notificationReply`
29
+ - **Window:** `windowFocus`, `windowBlur`, `windowMaximize`, `windowUnmaximize`, `windowMinimize`, `windowRestore`, `windowClose`
30
+ - **Power:** `powerSuspend`, `powerResume`, `powerOnAC`, `powerOnBattery`
31
+
32
+ ## Usage
33
+
34
+ ```typescript
35
+ import { Desktop } from "@elizaos/capacitor-desktop";
36
+
37
+ // System tray
38
+ await Desktop.createTray({
39
+ icon: "/path/to/icon.png",
40
+ tooltip: "My Agent",
41
+ menu: [
42
+ { id: "show", label: "Show" },
43
+ { id: "quit", label: "Quit" },
44
+ ],
45
+ });
46
+
47
+ Desktop.addListener("trayMenuClick", ({ itemId }) => {
48
+ if (itemId === "quit") Desktop.quit();
49
+ });
50
+
51
+ // Global shortcut
52
+ await Desktop.registerShortcut({ id: "toggle", accelerator: "CmdOrCtrl+Shift+Space" });
53
+ Desktop.addListener("shortcutPressed", ({ id }) => {
54
+ if (id === "toggle") Desktop.showWindow();
55
+ });
56
+
57
+ // Clipboard
58
+ await Desktop.writeToClipboard({ text: "hello" });
59
+ const { text } = await Desktop.readFromClipboard();
60
+
61
+ // System permission check
62
+ const state = await Desktop.checkPermission({ id: "microphone" });
63
+ if (state.status !== "granted") {
64
+ await Desktop.requestPermission({ id: "microphone", reason: "Voice input" });
65
+ }
66
+ ```
67
+
68
+ ## Platform availability
69
+
70
+ - **Node + Electrobun:** Full support for all capabilities.
71
+ - **Browser:** Notifications, clipboard, window focus/close/fullscreen, and permissions for `camera`, `microphone`, `location`, `notifications` work via Web APIs. System tray, global shortcuts, auto-launch, `getPath`, and `showItemInFolder` are unavailable.
72
+ - **iOS / Android:** Not supported.
73
+
74
+ ## Building
75
+
76
+ ```bash
77
+ bun run --cwd plugins/plugin-native-desktop build
78
+ ```
79
+
80
+ This runs `tsc` then rollup to produce `dist/esm/` (ESM), `dist/plugin.js` (IIFE), and `dist/plugin.cjs.js` (CJS).
81
+
82
+ ## Package name
83
+
84
+ The npm package name is `@elizaos/capacitor-desktop`. The directory is `plugins/plugin-native-desktop`.
@@ -112,11 +112,11 @@ export interface PowerMonitorState {
112
112
  * the renderer can ask "is this permission granted?" / "request this
113
113
  * permission" without triggering implicit OS dialogs.
114
114
  *
115
- * The id set mirrors the canonical PermissionId from
115
+ * The id set mirrors the PermissionId from
116
116
  * `@elizaos/shared/contracts/permissions`. Defined inline here to keep the
117
117
  * Capacitor plugin package free of cross-package type imports.
118
118
  */
119
- export type DesktopPermissionId = "screen-recording" | "accessibility" | "reminders" | "calendar" | "health" | "screentime" | "contacts" | "notes" | "microphone" | "camera" | "location" | "shell" | "website-blocking" | "notifications" | "full-disk" | "automation";
119
+ export type DesktopPermissionId = "screen-recording" | "accessibility" | "reminders" | "calendar" | "health" | "screentime" | "contacts" | "notes" | "microphone" | "camera" | "location" | "shell" | "website-blocking" | "notifications" | "full-disk" | "automation" | "speech-recognition" | "photos" | "phone" | "messages" | "wifi" | "bluetooth" | "app-blocking" | "usage-access" | "overlay" | "write-settings" | "local-network" | "battery-optimization";
120
120
  export type DesktopPermissionStatus = "granted" | "denied" | "not-determined" | "restricted" | "not-applicable";
121
121
  export type DesktopPermissionRestrictedReason = "entitlement_required" | "platform_unsupported" | "os_policy";
122
122
  export interface DesktopPermissionState {
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACpC,SAAS,EAAE;QACT,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EACL,kBAAkB,GAClB,OAAO,GACP,MAAM,GACN,UAAU,GACV,WAAW,GACX,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,KAAK,GACL,eAAe,GACf,SAAS,GACT,SAAS,GACT,cAAc,GACd,YAAY,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IACxC,WAAW,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,QAAQ,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,UAAU,GACV,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,OAAO,GACP,YAAY,GACZ,QAAQ,GACR,UAAU,GACV,OAAO,GACP,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,YAAY,CAAC;AAEjB,MAAM,MAAM,uBAAuB,GAC/B,SAAS,GACT,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,CAAC;AAErB,MAAM,MAAM,iCAAiC,GACzC,sBAAsB,GACtB,sBAAsB,GACtB,WAAW,CAAC;AAEhB,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,mBAAmB,CAAC;IACxB,MAAM,EAAE,uBAAuB,CAAC;IAChC,gBAAgB,CAAC,EAAE,iCAAiC,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAE5B,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,WAAW,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,YAAY,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG9D,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACzE,kBAAkB,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,oBAAoB,CAAC,OAAO,EAAE;QAC5B,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAGrC,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,mBAAmB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAG5E,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IACzC,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,iBAAiB,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrD,iBAAiB,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrD,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjD,eAAe,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjD,cAAc,CAAC,OAAO,EAAE;QACtB,IAAI,EAAE,OAAO,CAAC;QACd,KAAK,CAAC,EACF,QAAQ,GACR,UAAU,GACV,eAAe,GACf,aAAa,GACb,WAAW,GACX,QAAQ,GACR,aAAa,GACb,cAAc,CAAC;KACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,aAAa,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,UAAU,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGxD,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,iBAAiB,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG1D,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAG5C,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,UAAU,IAAI,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,OAAO,EAAE;QACf,IAAI,EACA,MAAM,GACN,SAAS,GACT,UAAU,GACV,aAAa,GACb,MAAM,GACN,KAAK,GACL,QAAQ,GACR,SAAS,GACT,WAAW,GACX,WAAW,GACX,OAAO,GACP,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,YAAY,CAAC;KAClB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAG9B,gBAAgB,CAAC,OAAO,EAAE;QACxB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,iBAAiB,IAAI,OAAO,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAGhC,YAAY,CAAC,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,gBAAgB,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAMtB,eAAe,CAAC,OAAO,EAAE;QACvB,EAAE,EAAE,mBAAmB,CAAC;KACzB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpC,iBAAiB,CAAC,OAAO,EAAE;QACzB,EAAE,EAAE,mBAAmB,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAGpC,WAAW,CACT,SAAS,EAAE,WAAW,EACtB,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAC5C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAC5C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAC5C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,eAAe,EAC1B,YAAY,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAChD,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,GACjD,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,oBAAoB,EAC/B,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,mBAAmB,EAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,GAC/C,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,kBAAkB,EAC7B,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,eAAe,EAC1B,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,cAAc,EACzB,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,aAAa,EACxB,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,WAAW,EACtB,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,WAAW,CACT,SAAS,EAAE,gBAAgB,EAC3B,YAAY,EAAE,MAAM,IAAI,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
package/dist/esm/web.js CHANGED
@@ -5,6 +5,23 @@ const BROWSER_PERMISSION_IDS = new Set([
5
5
  "location",
6
6
  "notifications",
7
7
  ]);
8
+ const SAFE_EXTERNAL_PROTOCOLS = new Set(["http:", "https:", "mailto:", "tel:"]);
9
+ function assertSafeExternalUrl(url) {
10
+ if (typeof url !== "string" || url.trim().length === 0) {
11
+ throw new Error("url must be a non-empty external URL");
12
+ }
13
+ let parsed;
14
+ try {
15
+ parsed = new URL(url);
16
+ }
17
+ catch {
18
+ throw new Error("url must be a valid external URL");
19
+ }
20
+ if (!SAFE_EXTERNAL_PROTOCOLS.has(parsed.protocol)) {
21
+ throw new Error("url protocol is not allowed");
22
+ }
23
+ return parsed.toString();
24
+ }
8
25
  function getDesktopRpc() {
9
26
  const g = globalThis;
10
27
  if (typeof window !== "undefined") {
@@ -231,10 +248,14 @@ export class DesktopWeb extends WebPlugin {
231
248
  if (getBattery) {
232
249
  try {
233
250
  const battery = await getBattery.call(navigator);
251
+ const level = typeof battery.level === "number" && Number.isFinite(battery.level)
252
+ ? Math.max(0, Math.min(100, battery.level * 100))
253
+ : undefined;
254
+ const charging = typeof battery.charging === "boolean" ? battery.charging : undefined;
234
255
  return {
235
- onBattery: !battery.charging,
236
- batteryLevel: battery.level * 100,
237
- isCharging: battery.charging,
256
+ onBattery: charging === undefined ? false : !charging,
257
+ batteryLevel: level,
258
+ isCharging: charging,
238
259
  idleState: "active", // Idle detection not available on web
239
260
  idleTime: 0,
240
261
  };
@@ -295,7 +316,7 @@ export class DesktopWeb extends WebPlugin {
295
316
  }
296
317
  // Shell
297
318
  async openExternal(options) {
298
- window.open(options.url, "_blank");
319
+ window.open(assertSafeExternalUrl(options.url), "_blank", "noopener");
299
320
  }
300
321
  async showItemInFolder(_options) { }
301
322
  async beep() {
@@ -13,6 +13,23 @@ const BROWSER_PERMISSION_IDS = new Set([
13
13
  "location",
14
14
  "notifications",
15
15
  ]);
16
+ const SAFE_EXTERNAL_PROTOCOLS = new Set(["http:", "https:", "mailto:", "tel:"]);
17
+ function assertSafeExternalUrl(url) {
18
+ if (typeof url !== "string" || url.trim().length === 0) {
19
+ throw new Error("url must be a non-empty external URL");
20
+ }
21
+ let parsed;
22
+ try {
23
+ parsed = new URL(url);
24
+ }
25
+ catch {
26
+ throw new Error("url must be a valid external URL");
27
+ }
28
+ if (!SAFE_EXTERNAL_PROTOCOLS.has(parsed.protocol)) {
29
+ throw new Error("url protocol is not allowed");
30
+ }
31
+ return parsed.toString();
32
+ }
16
33
  function getDesktopRpc() {
17
34
  const g = globalThis;
18
35
  if (typeof window !== "undefined") {
@@ -239,10 +256,14 @@ class DesktopWeb extends core.WebPlugin {
239
256
  if (getBattery) {
240
257
  try {
241
258
  const battery = await getBattery.call(navigator);
259
+ const level = typeof battery.level === "number" && Number.isFinite(battery.level)
260
+ ? Math.max(0, Math.min(100, battery.level * 100))
261
+ : undefined;
262
+ const charging = typeof battery.charging === "boolean" ? battery.charging : undefined;
242
263
  return {
243
- onBattery: !battery.charging,
244
- batteryLevel: battery.level * 100,
245
- isCharging: battery.charging,
264
+ onBattery: charging === undefined ? false : !charging,
265
+ batteryLevel: level,
266
+ isCharging: charging,
246
267
  idleState: "active", // Idle detection not available on web
247
268
  idleTime: 0,
248
269
  };
@@ -303,7 +324,7 @@ class DesktopWeb extends core.WebPlugin {
303
324
  }
304
325
  // Shell
305
326
  async openExternal(options) {
306
- window.open(options.url, "_blank");
327
+ window.open(assertSafeExternalUrl(options.url), "_blank", "noopener");
307
328
  }
308
329
  async showItemInFolder(_options) { }
309
330
  async beep() {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nexport * from \"./definitions\";\nconst loadWeb = () => import(\"./web\").then((m) => new m.DesktopWeb());\nexport const Desktop = registerPlugin(\"Desktop\", {\n web: loadWeb,\n});\n","import { WebPlugin } from \"@capacitor/core\";\nconst BROWSER_PERMISSION_IDS = new Set([\n \"camera\",\n \"microphone\",\n \"location\",\n \"notifications\",\n]);\nfunction getDesktopRpc() {\n const g = globalThis;\n if (typeof window !== \"undefined\") {\n return window.__ELIZA_ELECTROBUN_RPC__;\n }\n return g.window?.__ELIZA_ELECTROBUN_RPC__ ?? g.__ELIZA_ELECTROBUN_RPC__;\n}\nfunction currentPlatform() {\n const proc = globalThis.process;\n const p = proc?.platform;\n if (p === \"darwin\" || p === \"win32\" || p === \"linux\")\n return p;\n if (typeof navigator !== \"undefined\") {\n const platform = navigator.platform.toLowerCase();\n if (platform.includes(\"mac\"))\n return \"darwin\";\n if (platform.includes(\"win\"))\n return \"win32\";\n }\n return \"linux\";\n}\nfunction isRecord(value) {\n return Boolean(value) && typeof value === \"object\";\n}\nfunction isDesktopPermissionState(value, id) {\n return (isRecord(value) &&\n value.id === id &&\n typeof value.status === \"string\" &&\n typeof value.canRequest === \"boolean\" &&\n typeof value.lastChecked === \"number\");\n}\nfunction stateFromStatus(id, status, options = {}) {\n const state = {\n id,\n status,\n lastChecked: options.lastChecked ?? Date.now(),\n canRequest: options.canRequest ?? status === \"not-determined\",\n platform: options.platform ?? currentPlatform(),\n };\n if (options.lastRequested !== undefined) {\n state.lastRequested = options.lastRequested;\n }\n if (options.restrictedReason !== undefined) {\n state.restrictedReason = options.restrictedReason;\n }\n return state;\n}\nfunction mapBrowserPermissionState(state) {\n if (state === \"granted\")\n return \"granted\";\n if (state === \"denied\")\n return \"denied\";\n if (state === \"prompt\" || state === \"default\")\n return \"not-determined\";\n return null;\n}\nasync function queryBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(Notification.permission);\n return status ? stateFromStatus(id, status) : null;\n }\n if (!navigator.permissions?.query) {\n return null;\n }\n const permissionName = id === \"location\" ? \"geolocation\" : id;\n try {\n const result = await navigator.permissions.query({\n name: permissionName,\n });\n const status = mapBrowserPermissionState(result.state);\n return status ? stateFromStatus(id, status) : null;\n }\n catch {\n return null;\n }\n}\nasync function requestBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"camera\" || id === \"microphone\") {\n try {\n const stream = await navigator.mediaDevices?.getUserMedia?.({\n video: id === \"camera\",\n audio: id === \"microphone\",\n });\n for (const track of stream?.getTracks?.() ?? []) {\n track.stop();\n }\n }\n catch {\n // Query below returns denied when the browser recorded a denial.\n }\n const checked = await queryBrowserPermission(id);\n return checked ? { ...checked, lastRequested: Date.now() } : null;\n }\n if (id === \"location\" && navigator.geolocation) {\n const requestedStatus = await new Promise((resolve) => {\n navigator.geolocation.getCurrentPosition(() => resolve(\"granted\"), (err) => resolve(err.code === err.PERMISSION_DENIED ? \"denied\" : null), { maximumAge: 0, timeout: 10000 });\n });\n const checked = await queryBrowserPermission(id);\n if (checked)\n return { ...checked, lastRequested: Date.now() };\n return requestedStatus\n ? stateFromStatus(id, requestedStatus, { lastRequested: Date.now() })\n : null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(await Notification.requestPermission());\n return status\n ? stateFromStatus(id, status, { lastRequested: Date.now() })\n : null;\n }\n return queryBrowserPermission(id);\n}\nexport class DesktopWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.pluginListeners = [];\n }\n // System Tray - Not available in browser\n async createTray(_options) { }\n async updateTray(_options) { }\n async destroyTray() { }\n async setTrayMenu(_options) { }\n // Global Shortcuts - Not available in browser\n async registerShortcut(_options) {\n return { success: false };\n }\n async unregisterShortcut(_options) { }\n async unregisterAllShortcuts() { }\n async isShortcutRegistered(_options) {\n return { registered: false };\n }\n // Auto Launch - Not available in browser\n async setAutoLaunch(_options) { }\n async getAutoLaunchStatus() {\n return { enabled: false, openAsHidden: false };\n }\n // Window Management - Limited in browser\n async setWindowOptions(_options) { }\n async getWindowBounds() {\n return {\n x: window.screenX,\n y: window.screenY,\n width: window.outerWidth,\n height: window.outerHeight,\n };\n }\n async setWindowBounds(_options) { }\n async minimizeWindow() { }\n async maximizeWindow() { }\n async unmaximizeWindow() { }\n async closeWindow() {\n window.close();\n }\n async showWindow() {\n window.focus();\n }\n async hideWindow() { }\n async focusWindow() {\n window.focus();\n }\n async isWindowMaximized() {\n return { maximized: false };\n }\n async isWindowMinimized() {\n return { minimized: document.hidden };\n }\n async isWindowVisible() {\n return { visible: !document.hidden };\n }\n async isWindowFocused() {\n return { focused: document.hasFocus() };\n }\n async setAlwaysOnTop(_options) { }\n async setFullscreen(options) {\n options.flag\n ? document.documentElement.requestFullscreen()\n : document.exitFullscreen();\n }\n async setOpacity(_options) { }\n // Notifications - Using Web Notification API\n async showNotification(options) {\n const id = `notification_${Date.now()}`;\n if (!(\"Notification\" in window)) {\n return {\n id,\n shown: false,\n error: \"Notification API not available in this browser\",\n };\n }\n if (Notification.permission === \"denied\") {\n return { id, shown: false, error: \"Notification permission denied\" };\n }\n if (Notification.permission !== \"granted\") {\n const permission = await Notification.requestPermission();\n if (permission !== \"granted\") {\n return {\n id,\n shown: false,\n error: \"Notification permission not granted\",\n };\n }\n }\n const notification = new Notification(options.title, {\n body: options.body,\n icon: options.icon,\n silent: options.silent,\n });\n notification.onclick = () => this.notifyListeners(\"notificationClick\", {});\n return { id, shown: true };\n }\n async closeNotification(_options) {\n // Web Notification API doesn't provide a way to close notifications by ID.\n // Notifications auto-close or the user dismisses them.\n }\n // Power Monitor\n async getPowerState() {\n const getBattery = navigator.getBattery;\n if (getBattery) {\n try {\n const battery = await getBattery.call(navigator);\n return {\n onBattery: !battery.charging,\n batteryLevel: battery.level * 100,\n isCharging: battery.charging,\n idleState: \"active\", // Idle detection not available on web\n idleTime: 0,\n };\n }\n catch (err) {\n console.debug(\"[Desktop] Battery API access failed:\", err);\n }\n }\n return {\n onBattery: false, // Unknown, defaulting to false\n idleState: \"unknown\",\n idleTime: 0,\n };\n }\n // App\n async quit() {\n window.close();\n }\n async relaunch() {\n window.location.reload();\n }\n async getVersion() {\n // On web platform, version info is limited. Return actual browser info where available.\n // Note: \"version\" and \"name\" would need to come from app config - returning \"unknown\" to indicate unavailability\n return {\n version: \"unknown\", // App version not available on web - would need to be injected at build time\n name: \"unknown\", // App name not available on web - would need to be injected at build time\n runtime: \"N/A\", // Not running in the desktop runtime\n chrome: navigator.userAgent.match(/Chrome\\/([0-9.]+)/)?.[1] ?? \"unknown\",\n node: \"N/A\", // Not running in Node\n };\n }\n async isPackaged() {\n return { packaged: false };\n }\n async getPath(_options) {\n throw new Error(\"File system paths are not available in browser environment\");\n }\n // Clipboard\n async writeToClipboard(options) {\n if (options.text) {\n await navigator.clipboard.writeText(options.text);\n return;\n }\n if (options.html) {\n await navigator.clipboard.write([\n new ClipboardItem({\n \"text/html\": new Blob([options.html], { type: \"text/html\" }),\n }),\n ]);\n }\n }\n async readFromClipboard() {\n return { text: await navigator.clipboard.readText(), hasImage: false };\n }\n async clearClipboard() {\n await navigator.clipboard.writeText(\"\");\n }\n // Shell\n async openExternal(options) {\n window.open(options.url, \"_blank\");\n }\n async showItemInFolder(_options) { }\n async beep() {\n const ctx = new AudioContext();\n const osc = ctx.createOscillator();\n const gain = ctx.createGain();\n osc.connect(gain).connect(ctx.destination);\n osc.frequency.value = 800;\n osc.type = \"sine\";\n gain.gain.setValueAtTime(0.3, ctx.currentTime);\n gain.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.1);\n osc.start(ctx.currentTime);\n osc.stop(ctx.currentTime + 0.1);\n }\n // Events\n async addListener(eventName, listenerFunc) {\n const entry = { eventName, callback: listenerFunc };\n // Create and track window event listeners to avoid memory leaks\n if (eventName === \"windowFocus\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"focus\", entry.windowListener);\n }\n else if (eventName === \"windowBlur\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.push(entry);\n return {\n remove: async () => {\n const i = this.pluginListeners.indexOf(entry);\n if (i >= 0) {\n // Remove window event listener if it exists\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.splice(i, 1);\n }\n },\n };\n }\n async removeAllListeners() {\n // Clean up all window event listeners before clearing\n for (const entry of this.pluginListeners) {\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n }\n this.pluginListeners = [];\n }\n notifyListeners(eventName, data) {\n this.pluginListeners\n .filter((l) => l.eventName === eventName)\n .forEach((l) => {\n l.callback(data);\n });\n }\n async checkPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsCheck;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id))\n return bridged;\n }\n const browserState = await queryBrowserPermission(options.id);\n if (browserState)\n return browserState;\n return {\n id: options.id,\n status: \"not-applicable\",\n restrictedReason: \"platform_unsupported\",\n lastChecked: Date.now(),\n canRequest: false,\n platform: currentPlatform(),\n };\n }\n async requestPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsRequest;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id)) {\n if (bridged.status === \"not-determined\" &&\n BROWSER_PERMISSION_IDS.has(options.id)) {\n return (await requestBrowserPermission(options.id)) ?? bridged;\n }\n return bridged;\n }\n }\n return ((await requestBrowserPermission(options.id)) ??\n this.checkPermission({ id: options.id }));\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nexport * from \"./definitions\";\nconst loadWeb = () => import(\"./web\").then((m) => new m.DesktopWeb());\nexport const Desktop = registerPlugin(\"Desktop\", {\n web: loadWeb,\n});\n","import { WebPlugin } from \"@capacitor/core\";\nconst BROWSER_PERMISSION_IDS = new Set([\n \"camera\",\n \"microphone\",\n \"location\",\n \"notifications\",\n]);\nconst SAFE_EXTERNAL_PROTOCOLS = new Set([\"http:\", \"https:\", \"mailto:\", \"tel:\"]);\nfunction assertSafeExternalUrl(url) {\n if (typeof url !== \"string\" || url.trim().length === 0) {\n throw new Error(\"url must be a non-empty external URL\");\n }\n let parsed;\n try {\n parsed = new URL(url);\n }\n catch {\n throw new Error(\"url must be a valid external URL\");\n }\n if (!SAFE_EXTERNAL_PROTOCOLS.has(parsed.protocol)) {\n throw new Error(\"url protocol is not allowed\");\n }\n return parsed.toString();\n}\nfunction getDesktopRpc() {\n const g = globalThis;\n if (typeof window !== \"undefined\") {\n return window.__ELIZA_ELECTROBUN_RPC__;\n }\n return g.window?.__ELIZA_ELECTROBUN_RPC__ ?? g.__ELIZA_ELECTROBUN_RPC__;\n}\nfunction currentPlatform() {\n const proc = globalThis.process;\n const p = proc?.platform;\n if (p === \"darwin\" || p === \"win32\" || p === \"linux\")\n return p;\n if (typeof navigator !== \"undefined\") {\n const platform = navigator.platform.toLowerCase();\n if (platform.includes(\"mac\"))\n return \"darwin\";\n if (platform.includes(\"win\"))\n return \"win32\";\n }\n return \"linux\";\n}\nfunction isRecord(value) {\n return Boolean(value) && typeof value === \"object\";\n}\nfunction isDesktopPermissionState(value, id) {\n return (isRecord(value) &&\n value.id === id &&\n typeof value.status === \"string\" &&\n typeof value.canRequest === \"boolean\" &&\n typeof value.lastChecked === \"number\");\n}\nfunction stateFromStatus(id, status, options = {}) {\n const state = {\n id,\n status,\n lastChecked: options.lastChecked ?? Date.now(),\n canRequest: options.canRequest ?? status === \"not-determined\",\n platform: options.platform ?? currentPlatform(),\n };\n if (options.lastRequested !== undefined) {\n state.lastRequested = options.lastRequested;\n }\n if (options.restrictedReason !== undefined) {\n state.restrictedReason = options.restrictedReason;\n }\n return state;\n}\nfunction mapBrowserPermissionState(state) {\n if (state === \"granted\")\n return \"granted\";\n if (state === \"denied\")\n return \"denied\";\n if (state === \"prompt\" || state === \"default\")\n return \"not-determined\";\n return null;\n}\nasync function queryBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(Notification.permission);\n return status ? stateFromStatus(id, status) : null;\n }\n if (!navigator.permissions?.query) {\n return null;\n }\n const permissionName = id === \"location\" ? \"geolocation\" : id;\n try {\n const result = await navigator.permissions.query({\n name: permissionName,\n });\n const status = mapBrowserPermissionState(result.state);\n return status ? stateFromStatus(id, status) : null;\n }\n catch {\n return null;\n }\n}\nasync function requestBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"camera\" || id === \"microphone\") {\n try {\n const stream = await navigator.mediaDevices?.getUserMedia?.({\n video: id === \"camera\",\n audio: id === \"microphone\",\n });\n for (const track of stream?.getTracks?.() ?? []) {\n track.stop();\n }\n }\n catch {\n // Query below returns denied when the browser recorded a denial.\n }\n const checked = await queryBrowserPermission(id);\n return checked ? { ...checked, lastRequested: Date.now() } : null;\n }\n if (id === \"location\" && navigator.geolocation) {\n const requestedStatus = await new Promise((resolve) => {\n navigator.geolocation.getCurrentPosition(() => resolve(\"granted\"), (err) => resolve(err.code === err.PERMISSION_DENIED ? \"denied\" : null), { maximumAge: 0, timeout: 10000 });\n });\n const checked = await queryBrowserPermission(id);\n if (checked)\n return { ...checked, lastRequested: Date.now() };\n return requestedStatus\n ? stateFromStatus(id, requestedStatus, { lastRequested: Date.now() })\n : null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(await Notification.requestPermission());\n return status\n ? stateFromStatus(id, status, { lastRequested: Date.now() })\n : null;\n }\n return queryBrowserPermission(id);\n}\nexport class DesktopWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.pluginListeners = [];\n }\n // System Tray - Not available in browser\n async createTray(_options) { }\n async updateTray(_options) { }\n async destroyTray() { }\n async setTrayMenu(_options) { }\n // Global Shortcuts - Not available in browser\n async registerShortcut(_options) {\n return { success: false };\n }\n async unregisterShortcut(_options) { }\n async unregisterAllShortcuts() { }\n async isShortcutRegistered(_options) {\n return { registered: false };\n }\n // Auto Launch - Not available in browser\n async setAutoLaunch(_options) { }\n async getAutoLaunchStatus() {\n return { enabled: false, openAsHidden: false };\n }\n // Window Management - Limited in browser\n async setWindowOptions(_options) { }\n async getWindowBounds() {\n return {\n x: window.screenX,\n y: window.screenY,\n width: window.outerWidth,\n height: window.outerHeight,\n };\n }\n async setWindowBounds(_options) { }\n async minimizeWindow() { }\n async maximizeWindow() { }\n async unmaximizeWindow() { }\n async closeWindow() {\n window.close();\n }\n async showWindow() {\n window.focus();\n }\n async hideWindow() { }\n async focusWindow() {\n window.focus();\n }\n async isWindowMaximized() {\n return { maximized: false };\n }\n async isWindowMinimized() {\n return { minimized: document.hidden };\n }\n async isWindowVisible() {\n return { visible: !document.hidden };\n }\n async isWindowFocused() {\n return { focused: document.hasFocus() };\n }\n async setAlwaysOnTop(_options) { }\n async setFullscreen(options) {\n options.flag\n ? document.documentElement.requestFullscreen()\n : document.exitFullscreen();\n }\n async setOpacity(_options) { }\n // Notifications - Using Web Notification API\n async showNotification(options) {\n const id = `notification_${Date.now()}`;\n if (!(\"Notification\" in window)) {\n return {\n id,\n shown: false,\n error: \"Notification API not available in this browser\",\n };\n }\n if (Notification.permission === \"denied\") {\n return { id, shown: false, error: \"Notification permission denied\" };\n }\n if (Notification.permission !== \"granted\") {\n const permission = await Notification.requestPermission();\n if (permission !== \"granted\") {\n return {\n id,\n shown: false,\n error: \"Notification permission not granted\",\n };\n }\n }\n const notification = new Notification(options.title, {\n body: options.body,\n icon: options.icon,\n silent: options.silent,\n });\n notification.onclick = () => this.notifyListeners(\"notificationClick\", {});\n return { id, shown: true };\n }\n async closeNotification(_options) {\n // Web Notification API doesn't provide a way to close notifications by ID.\n // Notifications auto-close or the user dismisses them.\n }\n // Power Monitor\n async getPowerState() {\n const getBattery = navigator.getBattery;\n if (getBattery) {\n try {\n const battery = await getBattery.call(navigator);\n const level = typeof battery.level === \"number\" && Number.isFinite(battery.level)\n ? Math.max(0, Math.min(100, battery.level * 100))\n : undefined;\n const charging = typeof battery.charging === \"boolean\" ? battery.charging : undefined;\n return {\n onBattery: charging === undefined ? false : !charging,\n batteryLevel: level,\n isCharging: charging,\n idleState: \"active\", // Idle detection not available on web\n idleTime: 0,\n };\n }\n catch (err) {\n console.debug(\"[Desktop] Battery API access failed:\", err);\n }\n }\n return {\n onBattery: false, // Unknown, defaulting to false\n idleState: \"unknown\",\n idleTime: 0,\n };\n }\n // App\n async quit() {\n window.close();\n }\n async relaunch() {\n window.location.reload();\n }\n async getVersion() {\n // On web platform, version info is limited. Return actual browser info where available.\n // Note: \"version\" and \"name\" would need to come from app config - returning \"unknown\" to indicate unavailability\n return {\n version: \"unknown\", // App version not available on web - would need to be injected at build time\n name: \"unknown\", // App name not available on web - would need to be injected at build time\n runtime: \"N/A\", // Not running in the desktop runtime\n chrome: navigator.userAgent.match(/Chrome\\/([0-9.]+)/)?.[1] ?? \"unknown\",\n node: \"N/A\", // Not running in Node\n };\n }\n async isPackaged() {\n return { packaged: false };\n }\n async getPath(_options) {\n throw new Error(\"File system paths are not available in browser environment\");\n }\n // Clipboard\n async writeToClipboard(options) {\n if (options.text) {\n await navigator.clipboard.writeText(options.text);\n return;\n }\n if (options.html) {\n await navigator.clipboard.write([\n new ClipboardItem({\n \"text/html\": new Blob([options.html], { type: \"text/html\" }),\n }),\n ]);\n }\n }\n async readFromClipboard() {\n return { text: await navigator.clipboard.readText(), hasImage: false };\n }\n async clearClipboard() {\n await navigator.clipboard.writeText(\"\");\n }\n // Shell\n async openExternal(options) {\n window.open(assertSafeExternalUrl(options.url), \"_blank\", \"noopener\");\n }\n async showItemInFolder(_options) { }\n async beep() {\n const ctx = new AudioContext();\n const osc = ctx.createOscillator();\n const gain = ctx.createGain();\n osc.connect(gain).connect(ctx.destination);\n osc.frequency.value = 800;\n osc.type = \"sine\";\n gain.gain.setValueAtTime(0.3, ctx.currentTime);\n gain.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.1);\n osc.start(ctx.currentTime);\n osc.stop(ctx.currentTime + 0.1);\n }\n // Events\n async addListener(eventName, listenerFunc) {\n const entry = { eventName, callback: listenerFunc };\n // Create and track window event listeners to avoid memory leaks\n if (eventName === \"windowFocus\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"focus\", entry.windowListener);\n }\n else if (eventName === \"windowBlur\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.push(entry);\n return {\n remove: async () => {\n const i = this.pluginListeners.indexOf(entry);\n if (i >= 0) {\n // Remove window event listener if it exists\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.splice(i, 1);\n }\n },\n };\n }\n async removeAllListeners() {\n // Clean up all window event listeners before clearing\n for (const entry of this.pluginListeners) {\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n }\n this.pluginListeners = [];\n }\n notifyListeners(eventName, data) {\n this.pluginListeners\n .filter((l) => l.eventName === eventName)\n .forEach((l) => {\n l.callback(data);\n });\n }\n async checkPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsCheck;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id))\n return bridged;\n }\n const browserState = await queryBrowserPermission(options.id);\n if (browserState)\n return browserState;\n return {\n id: options.id,\n status: \"not-applicable\",\n restrictedReason: \"platform_unsupported\",\n lastChecked: Date.now(),\n canRequest: false,\n platform: currentPlatform(),\n };\n }\n async requestPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsRequest;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id)) {\n if (bridged.status === \"not-determined\" &&\n BROWSER_PERMISSION_IDS.has(options.id)) {\n return (await requestBrowserPermission(options.id)) ?? bridged;\n }\n return bridged;\n }\n }\n return ((await requestBrowserPermission(options.id)) ??\n this.checkPermission({ id: options.id }));\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -12,6 +12,23 @@ var capacitorDesktop = (function (exports, core) {
12
12
  "location",
13
13
  "notifications",
14
14
  ]);
15
+ const SAFE_EXTERNAL_PROTOCOLS = new Set(["http:", "https:", "mailto:", "tel:"]);
16
+ function assertSafeExternalUrl(url) {
17
+ if (typeof url !== "string" || url.trim().length === 0) {
18
+ throw new Error("url must be a non-empty external URL");
19
+ }
20
+ let parsed;
21
+ try {
22
+ parsed = new URL(url);
23
+ }
24
+ catch {
25
+ throw new Error("url must be a valid external URL");
26
+ }
27
+ if (!SAFE_EXTERNAL_PROTOCOLS.has(parsed.protocol)) {
28
+ throw new Error("url protocol is not allowed");
29
+ }
30
+ return parsed.toString();
31
+ }
15
32
  function getDesktopRpc() {
16
33
  const g = globalThis;
17
34
  if (typeof window !== "undefined") {
@@ -238,10 +255,14 @@ var capacitorDesktop = (function (exports, core) {
238
255
  if (getBattery) {
239
256
  try {
240
257
  const battery = await getBattery.call(navigator);
258
+ const level = typeof battery.level === "number" && Number.isFinite(battery.level)
259
+ ? Math.max(0, Math.min(100, battery.level * 100))
260
+ : undefined;
261
+ const charging = typeof battery.charging === "boolean" ? battery.charging : undefined;
241
262
  return {
242
- onBattery: !battery.charging,
243
- batteryLevel: battery.level * 100,
244
- isCharging: battery.charging,
263
+ onBattery: charging === undefined ? false : !charging,
264
+ batteryLevel: level,
265
+ isCharging: charging,
245
266
  idleState: "active", // Idle detection not available on web
246
267
  idleTime: 0,
247
268
  };
@@ -302,7 +323,7 @@ var capacitorDesktop = (function (exports, core) {
302
323
  }
303
324
  // Shell
304
325
  async openExternal(options) {
305
- window.open(options.url, "_blank");
326
+ window.open(assertSafeExternalUrl(options.url), "_blank", "noopener");
306
327
  }
307
328
  async showItemInFolder(_options) { }
308
329
  async beep() {
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nexport * from \"./definitions\";\nconst loadWeb = () => import(\"./web\").then((m) => new m.DesktopWeb());\nexport const Desktop = registerPlugin(\"Desktop\", {\n web: loadWeb,\n});\n","import { WebPlugin } from \"@capacitor/core\";\nconst BROWSER_PERMISSION_IDS = new Set([\n \"camera\",\n \"microphone\",\n \"location\",\n \"notifications\",\n]);\nfunction getDesktopRpc() {\n const g = globalThis;\n if (typeof window !== \"undefined\") {\n return window.__ELIZA_ELECTROBUN_RPC__;\n }\n return g.window?.__ELIZA_ELECTROBUN_RPC__ ?? g.__ELIZA_ELECTROBUN_RPC__;\n}\nfunction currentPlatform() {\n const proc = globalThis.process;\n const p = proc?.platform;\n if (p === \"darwin\" || p === \"win32\" || p === \"linux\")\n return p;\n if (typeof navigator !== \"undefined\") {\n const platform = navigator.platform.toLowerCase();\n if (platform.includes(\"mac\"))\n return \"darwin\";\n if (platform.includes(\"win\"))\n return \"win32\";\n }\n return \"linux\";\n}\nfunction isRecord(value) {\n return Boolean(value) && typeof value === \"object\";\n}\nfunction isDesktopPermissionState(value, id) {\n return (isRecord(value) &&\n value.id === id &&\n typeof value.status === \"string\" &&\n typeof value.canRequest === \"boolean\" &&\n typeof value.lastChecked === \"number\");\n}\nfunction stateFromStatus(id, status, options = {}) {\n const state = {\n id,\n status,\n lastChecked: options.lastChecked ?? Date.now(),\n canRequest: options.canRequest ?? status === \"not-determined\",\n platform: options.platform ?? currentPlatform(),\n };\n if (options.lastRequested !== undefined) {\n state.lastRequested = options.lastRequested;\n }\n if (options.restrictedReason !== undefined) {\n state.restrictedReason = options.restrictedReason;\n }\n return state;\n}\nfunction mapBrowserPermissionState(state) {\n if (state === \"granted\")\n return \"granted\";\n if (state === \"denied\")\n return \"denied\";\n if (state === \"prompt\" || state === \"default\")\n return \"not-determined\";\n return null;\n}\nasync function queryBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(Notification.permission);\n return status ? stateFromStatus(id, status) : null;\n }\n if (!navigator.permissions?.query) {\n return null;\n }\n const permissionName = id === \"location\" ? \"geolocation\" : id;\n try {\n const result = await navigator.permissions.query({\n name: permissionName,\n });\n const status = mapBrowserPermissionState(result.state);\n return status ? stateFromStatus(id, status) : null;\n }\n catch {\n return null;\n }\n}\nasync function requestBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"camera\" || id === \"microphone\") {\n try {\n const stream = await navigator.mediaDevices?.getUserMedia?.({\n video: id === \"camera\",\n audio: id === \"microphone\",\n });\n for (const track of stream?.getTracks?.() ?? []) {\n track.stop();\n }\n }\n catch {\n // Query below returns denied when the browser recorded a denial.\n }\n const checked = await queryBrowserPermission(id);\n return checked ? { ...checked, lastRequested: Date.now() } : null;\n }\n if (id === \"location\" && navigator.geolocation) {\n const requestedStatus = await new Promise((resolve) => {\n navigator.geolocation.getCurrentPosition(() => resolve(\"granted\"), (err) => resolve(err.code === err.PERMISSION_DENIED ? \"denied\" : null), { maximumAge: 0, timeout: 10000 });\n });\n const checked = await queryBrowserPermission(id);\n if (checked)\n return { ...checked, lastRequested: Date.now() };\n return requestedStatus\n ? stateFromStatus(id, requestedStatus, { lastRequested: Date.now() })\n : null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(await Notification.requestPermission());\n return status\n ? stateFromStatus(id, status, { lastRequested: Date.now() })\n : null;\n }\n return queryBrowserPermission(id);\n}\nexport class DesktopWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.pluginListeners = [];\n }\n // System Tray - Not available in browser\n async createTray(_options) { }\n async updateTray(_options) { }\n async destroyTray() { }\n async setTrayMenu(_options) { }\n // Global Shortcuts - Not available in browser\n async registerShortcut(_options) {\n return { success: false };\n }\n async unregisterShortcut(_options) { }\n async unregisterAllShortcuts() { }\n async isShortcutRegistered(_options) {\n return { registered: false };\n }\n // Auto Launch - Not available in browser\n async setAutoLaunch(_options) { }\n async getAutoLaunchStatus() {\n return { enabled: false, openAsHidden: false };\n }\n // Window Management - Limited in browser\n async setWindowOptions(_options) { }\n async getWindowBounds() {\n return {\n x: window.screenX,\n y: window.screenY,\n width: window.outerWidth,\n height: window.outerHeight,\n };\n }\n async setWindowBounds(_options) { }\n async minimizeWindow() { }\n async maximizeWindow() { }\n async unmaximizeWindow() { }\n async closeWindow() {\n window.close();\n }\n async showWindow() {\n window.focus();\n }\n async hideWindow() { }\n async focusWindow() {\n window.focus();\n }\n async isWindowMaximized() {\n return { maximized: false };\n }\n async isWindowMinimized() {\n return { minimized: document.hidden };\n }\n async isWindowVisible() {\n return { visible: !document.hidden };\n }\n async isWindowFocused() {\n return { focused: document.hasFocus() };\n }\n async setAlwaysOnTop(_options) { }\n async setFullscreen(options) {\n options.flag\n ? document.documentElement.requestFullscreen()\n : document.exitFullscreen();\n }\n async setOpacity(_options) { }\n // Notifications - Using Web Notification API\n async showNotification(options) {\n const id = `notification_${Date.now()}`;\n if (!(\"Notification\" in window)) {\n return {\n id,\n shown: false,\n error: \"Notification API not available in this browser\",\n };\n }\n if (Notification.permission === \"denied\") {\n return { id, shown: false, error: \"Notification permission denied\" };\n }\n if (Notification.permission !== \"granted\") {\n const permission = await Notification.requestPermission();\n if (permission !== \"granted\") {\n return {\n id,\n shown: false,\n error: \"Notification permission not granted\",\n };\n }\n }\n const notification = new Notification(options.title, {\n body: options.body,\n icon: options.icon,\n silent: options.silent,\n });\n notification.onclick = () => this.notifyListeners(\"notificationClick\", {});\n return { id, shown: true };\n }\n async closeNotification(_options) {\n // Web Notification API doesn't provide a way to close notifications by ID.\n // Notifications auto-close or the user dismisses them.\n }\n // Power Monitor\n async getPowerState() {\n const getBattery = navigator.getBattery;\n if (getBattery) {\n try {\n const battery = await getBattery.call(navigator);\n return {\n onBattery: !battery.charging,\n batteryLevel: battery.level * 100,\n isCharging: battery.charging,\n idleState: \"active\", // Idle detection not available on web\n idleTime: 0,\n };\n }\n catch (err) {\n console.debug(\"[Desktop] Battery API access failed:\", err);\n }\n }\n return {\n onBattery: false, // Unknown, defaulting to false\n idleState: \"unknown\",\n idleTime: 0,\n };\n }\n // App\n async quit() {\n window.close();\n }\n async relaunch() {\n window.location.reload();\n }\n async getVersion() {\n // On web platform, version info is limited. Return actual browser info where available.\n // Note: \"version\" and \"name\" would need to come from app config - returning \"unknown\" to indicate unavailability\n return {\n version: \"unknown\", // App version not available on web - would need to be injected at build time\n name: \"unknown\", // App name not available on web - would need to be injected at build time\n runtime: \"N/A\", // Not running in the desktop runtime\n chrome: navigator.userAgent.match(/Chrome\\/([0-9.]+)/)?.[1] ?? \"unknown\",\n node: \"N/A\", // Not running in Node\n };\n }\n async isPackaged() {\n return { packaged: false };\n }\n async getPath(_options) {\n throw new Error(\"File system paths are not available in browser environment\");\n }\n // Clipboard\n async writeToClipboard(options) {\n if (options.text) {\n await navigator.clipboard.writeText(options.text);\n return;\n }\n if (options.html) {\n await navigator.clipboard.write([\n new ClipboardItem({\n \"text/html\": new Blob([options.html], { type: \"text/html\" }),\n }),\n ]);\n }\n }\n async readFromClipboard() {\n return { text: await navigator.clipboard.readText(), hasImage: false };\n }\n async clearClipboard() {\n await navigator.clipboard.writeText(\"\");\n }\n // Shell\n async openExternal(options) {\n window.open(options.url, \"_blank\");\n }\n async showItemInFolder(_options) { }\n async beep() {\n const ctx = new AudioContext();\n const osc = ctx.createOscillator();\n const gain = ctx.createGain();\n osc.connect(gain).connect(ctx.destination);\n osc.frequency.value = 800;\n osc.type = \"sine\";\n gain.gain.setValueAtTime(0.3, ctx.currentTime);\n gain.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.1);\n osc.start(ctx.currentTime);\n osc.stop(ctx.currentTime + 0.1);\n }\n // Events\n async addListener(eventName, listenerFunc) {\n const entry = { eventName, callback: listenerFunc };\n // Create and track window event listeners to avoid memory leaks\n if (eventName === \"windowFocus\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"focus\", entry.windowListener);\n }\n else if (eventName === \"windowBlur\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.push(entry);\n return {\n remove: async () => {\n const i = this.pluginListeners.indexOf(entry);\n if (i >= 0) {\n // Remove window event listener if it exists\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.splice(i, 1);\n }\n },\n };\n }\n async removeAllListeners() {\n // Clean up all window event listeners before clearing\n for (const entry of this.pluginListeners) {\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n }\n this.pluginListeners = [];\n }\n notifyListeners(eventName, data) {\n this.pluginListeners\n .filter((l) => l.eventName === eventName)\n .forEach((l) => {\n l.callback(data);\n });\n }\n async checkPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsCheck;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id))\n return bridged;\n }\n const browserState = await queryBrowserPermission(options.id);\n if (browserState)\n return browserState;\n return {\n id: options.id,\n status: \"not-applicable\",\n restrictedReason: \"platform_unsupported\",\n lastChecked: Date.now(),\n canRequest: false,\n platform: currentPlatform(),\n };\n }\n async requestPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsRequest;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id)) {\n if (bridged.status === \"not-determined\" &&\n BROWSER_PERMISSION_IDS.has(options.id)) {\n return (await requestBrowserPermission(options.id)) ?? bridged;\n }\n return bridged;\n }\n }\n return ((await requestBrowserPermission(options.id)) ??\n this.checkPermission({ id: options.id }));\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nexport * from \"./definitions\";\nconst loadWeb = () => import(\"./web\").then((m) => new m.DesktopWeb());\nexport const Desktop = registerPlugin(\"Desktop\", {\n web: loadWeb,\n});\n","import { WebPlugin } from \"@capacitor/core\";\nconst BROWSER_PERMISSION_IDS = new Set([\n \"camera\",\n \"microphone\",\n \"location\",\n \"notifications\",\n]);\nconst SAFE_EXTERNAL_PROTOCOLS = new Set([\"http:\", \"https:\", \"mailto:\", \"tel:\"]);\nfunction assertSafeExternalUrl(url) {\n if (typeof url !== \"string\" || url.trim().length === 0) {\n throw new Error(\"url must be a non-empty external URL\");\n }\n let parsed;\n try {\n parsed = new URL(url);\n }\n catch {\n throw new Error(\"url must be a valid external URL\");\n }\n if (!SAFE_EXTERNAL_PROTOCOLS.has(parsed.protocol)) {\n throw new Error(\"url protocol is not allowed\");\n }\n return parsed.toString();\n}\nfunction getDesktopRpc() {\n const g = globalThis;\n if (typeof window !== \"undefined\") {\n return window.__ELIZA_ELECTROBUN_RPC__;\n }\n return g.window?.__ELIZA_ELECTROBUN_RPC__ ?? g.__ELIZA_ELECTROBUN_RPC__;\n}\nfunction currentPlatform() {\n const proc = globalThis.process;\n const p = proc?.platform;\n if (p === \"darwin\" || p === \"win32\" || p === \"linux\")\n return p;\n if (typeof navigator !== \"undefined\") {\n const platform = navigator.platform.toLowerCase();\n if (platform.includes(\"mac\"))\n return \"darwin\";\n if (platform.includes(\"win\"))\n return \"win32\";\n }\n return \"linux\";\n}\nfunction isRecord(value) {\n return Boolean(value) && typeof value === \"object\";\n}\nfunction isDesktopPermissionState(value, id) {\n return (isRecord(value) &&\n value.id === id &&\n typeof value.status === \"string\" &&\n typeof value.canRequest === \"boolean\" &&\n typeof value.lastChecked === \"number\");\n}\nfunction stateFromStatus(id, status, options = {}) {\n const state = {\n id,\n status,\n lastChecked: options.lastChecked ?? Date.now(),\n canRequest: options.canRequest ?? status === \"not-determined\",\n platform: options.platform ?? currentPlatform(),\n };\n if (options.lastRequested !== undefined) {\n state.lastRequested = options.lastRequested;\n }\n if (options.restrictedReason !== undefined) {\n state.restrictedReason = options.restrictedReason;\n }\n return state;\n}\nfunction mapBrowserPermissionState(state) {\n if (state === \"granted\")\n return \"granted\";\n if (state === \"denied\")\n return \"denied\";\n if (state === \"prompt\" || state === \"default\")\n return \"not-determined\";\n return null;\n}\nasync function queryBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(Notification.permission);\n return status ? stateFromStatus(id, status) : null;\n }\n if (!navigator.permissions?.query) {\n return null;\n }\n const permissionName = id === \"location\" ? \"geolocation\" : id;\n try {\n const result = await navigator.permissions.query({\n name: permissionName,\n });\n const status = mapBrowserPermissionState(result.state);\n return status ? stateFromStatus(id, status) : null;\n }\n catch {\n return null;\n }\n}\nasync function requestBrowserPermission(id) {\n if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === \"undefined\") {\n return null;\n }\n if (id === \"camera\" || id === \"microphone\") {\n try {\n const stream = await navigator.mediaDevices?.getUserMedia?.({\n video: id === \"camera\",\n audio: id === \"microphone\",\n });\n for (const track of stream?.getTracks?.() ?? []) {\n track.stop();\n }\n }\n catch {\n // Query below returns denied when the browser recorded a denial.\n }\n const checked = await queryBrowserPermission(id);\n return checked ? { ...checked, lastRequested: Date.now() } : null;\n }\n if (id === \"location\" && navigator.geolocation) {\n const requestedStatus = await new Promise((resolve) => {\n navigator.geolocation.getCurrentPosition(() => resolve(\"granted\"), (err) => resolve(err.code === err.PERMISSION_DENIED ? \"denied\" : null), { maximumAge: 0, timeout: 10000 });\n });\n const checked = await queryBrowserPermission(id);\n if (checked)\n return { ...checked, lastRequested: Date.now() };\n return requestedStatus\n ? stateFromStatus(id, requestedStatus, { lastRequested: Date.now() })\n : null;\n }\n if (id === \"notifications\" && typeof Notification !== \"undefined\") {\n const status = mapBrowserPermissionState(await Notification.requestPermission());\n return status\n ? stateFromStatus(id, status, { lastRequested: Date.now() })\n : null;\n }\n return queryBrowserPermission(id);\n}\nexport class DesktopWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.pluginListeners = [];\n }\n // System Tray - Not available in browser\n async createTray(_options) { }\n async updateTray(_options) { }\n async destroyTray() { }\n async setTrayMenu(_options) { }\n // Global Shortcuts - Not available in browser\n async registerShortcut(_options) {\n return { success: false };\n }\n async unregisterShortcut(_options) { }\n async unregisterAllShortcuts() { }\n async isShortcutRegistered(_options) {\n return { registered: false };\n }\n // Auto Launch - Not available in browser\n async setAutoLaunch(_options) { }\n async getAutoLaunchStatus() {\n return { enabled: false, openAsHidden: false };\n }\n // Window Management - Limited in browser\n async setWindowOptions(_options) { }\n async getWindowBounds() {\n return {\n x: window.screenX,\n y: window.screenY,\n width: window.outerWidth,\n height: window.outerHeight,\n };\n }\n async setWindowBounds(_options) { }\n async minimizeWindow() { }\n async maximizeWindow() { }\n async unmaximizeWindow() { }\n async closeWindow() {\n window.close();\n }\n async showWindow() {\n window.focus();\n }\n async hideWindow() { }\n async focusWindow() {\n window.focus();\n }\n async isWindowMaximized() {\n return { maximized: false };\n }\n async isWindowMinimized() {\n return { minimized: document.hidden };\n }\n async isWindowVisible() {\n return { visible: !document.hidden };\n }\n async isWindowFocused() {\n return { focused: document.hasFocus() };\n }\n async setAlwaysOnTop(_options) { }\n async setFullscreen(options) {\n options.flag\n ? document.documentElement.requestFullscreen()\n : document.exitFullscreen();\n }\n async setOpacity(_options) { }\n // Notifications - Using Web Notification API\n async showNotification(options) {\n const id = `notification_${Date.now()}`;\n if (!(\"Notification\" in window)) {\n return {\n id,\n shown: false,\n error: \"Notification API not available in this browser\",\n };\n }\n if (Notification.permission === \"denied\") {\n return { id, shown: false, error: \"Notification permission denied\" };\n }\n if (Notification.permission !== \"granted\") {\n const permission = await Notification.requestPermission();\n if (permission !== \"granted\") {\n return {\n id,\n shown: false,\n error: \"Notification permission not granted\",\n };\n }\n }\n const notification = new Notification(options.title, {\n body: options.body,\n icon: options.icon,\n silent: options.silent,\n });\n notification.onclick = () => this.notifyListeners(\"notificationClick\", {});\n return { id, shown: true };\n }\n async closeNotification(_options) {\n // Web Notification API doesn't provide a way to close notifications by ID.\n // Notifications auto-close or the user dismisses them.\n }\n // Power Monitor\n async getPowerState() {\n const getBattery = navigator.getBattery;\n if (getBattery) {\n try {\n const battery = await getBattery.call(navigator);\n const level = typeof battery.level === \"number\" && Number.isFinite(battery.level)\n ? Math.max(0, Math.min(100, battery.level * 100))\n : undefined;\n const charging = typeof battery.charging === \"boolean\" ? battery.charging : undefined;\n return {\n onBattery: charging === undefined ? false : !charging,\n batteryLevel: level,\n isCharging: charging,\n idleState: \"active\", // Idle detection not available on web\n idleTime: 0,\n };\n }\n catch (err) {\n console.debug(\"[Desktop] Battery API access failed:\", err);\n }\n }\n return {\n onBattery: false, // Unknown, defaulting to false\n idleState: \"unknown\",\n idleTime: 0,\n };\n }\n // App\n async quit() {\n window.close();\n }\n async relaunch() {\n window.location.reload();\n }\n async getVersion() {\n // On web platform, version info is limited. Return actual browser info where available.\n // Note: \"version\" and \"name\" would need to come from app config - returning \"unknown\" to indicate unavailability\n return {\n version: \"unknown\", // App version not available on web - would need to be injected at build time\n name: \"unknown\", // App name not available on web - would need to be injected at build time\n runtime: \"N/A\", // Not running in the desktop runtime\n chrome: navigator.userAgent.match(/Chrome\\/([0-9.]+)/)?.[1] ?? \"unknown\",\n node: \"N/A\", // Not running in Node\n };\n }\n async isPackaged() {\n return { packaged: false };\n }\n async getPath(_options) {\n throw new Error(\"File system paths are not available in browser environment\");\n }\n // Clipboard\n async writeToClipboard(options) {\n if (options.text) {\n await navigator.clipboard.writeText(options.text);\n return;\n }\n if (options.html) {\n await navigator.clipboard.write([\n new ClipboardItem({\n \"text/html\": new Blob([options.html], { type: \"text/html\" }),\n }),\n ]);\n }\n }\n async readFromClipboard() {\n return { text: await navigator.clipboard.readText(), hasImage: false };\n }\n async clearClipboard() {\n await navigator.clipboard.writeText(\"\");\n }\n // Shell\n async openExternal(options) {\n window.open(assertSafeExternalUrl(options.url), \"_blank\", \"noopener\");\n }\n async showItemInFolder(_options) { }\n async beep() {\n const ctx = new AudioContext();\n const osc = ctx.createOscillator();\n const gain = ctx.createGain();\n osc.connect(gain).connect(ctx.destination);\n osc.frequency.value = 800;\n osc.type = \"sine\";\n gain.gain.setValueAtTime(0.3, ctx.currentTime);\n gain.gain.exponentialRampToValueAtTime(0.01, ctx.currentTime + 0.1);\n osc.start(ctx.currentTime);\n osc.stop(ctx.currentTime + 0.1);\n }\n // Events\n async addListener(eventName, listenerFunc) {\n const entry = { eventName, callback: listenerFunc };\n // Create and track window event listeners to avoid memory leaks\n if (eventName === \"windowFocus\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"focus\", entry.windowListener);\n }\n else if (eventName === \"windowBlur\") {\n entry.windowListener = () => listenerFunc(undefined);\n window.addEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.push(entry);\n return {\n remove: async () => {\n const i = this.pluginListeners.indexOf(entry);\n if (i >= 0) {\n // Remove window event listener if it exists\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n this.pluginListeners.splice(i, 1);\n }\n },\n };\n }\n async removeAllListeners() {\n // Clean up all window event listeners before clearing\n for (const entry of this.pluginListeners) {\n if (entry.windowListener) {\n if (entry.eventName === \"windowFocus\")\n window.removeEventListener(\"focus\", entry.windowListener);\n else if (entry.eventName === \"windowBlur\")\n window.removeEventListener(\"blur\", entry.windowListener);\n }\n }\n this.pluginListeners = [];\n }\n notifyListeners(eventName, data) {\n this.pluginListeners\n .filter((l) => l.eventName === eventName)\n .forEach((l) => {\n l.callback(data);\n });\n }\n async checkPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsCheck;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id))\n return bridged;\n }\n const browserState = await queryBrowserPermission(options.id);\n if (browserState)\n return browserState;\n return {\n id: options.id,\n status: \"not-applicable\",\n restrictedReason: \"platform_unsupported\",\n lastChecked: Date.now(),\n canRequest: false,\n platform: currentPlatform(),\n };\n }\n async requestPermission(options) {\n const rpc = getDesktopRpc();\n const request = rpc?.request?.permissionsRequest;\n if (request) {\n const bridged = await request.call(rpc.request, { id: options.id });\n if (isDesktopPermissionState(bridged, options.id)) {\n if (bridged.status === \"not-determined\" &&\n BROWSER_PERMISSION_IDS.has(options.id)) {\n return (await requestBrowserPermission(options.id)) ?? bridged;\n }\n return bridged;\n }\n }\n return ((await requestBrowserPermission(options.id)) ??\n this.checkPermission({ id: options.id }));\n }\n}\n"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elizaos/capacitor-desktop",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.11-beta.7",
4
4
  "description": "Adds tray icons, global shortcuts, notifications, and other desktop-only controls.",
5
5
  "keywords": [
6
6
  "desktop",
@@ -14,6 +14,8 @@
14
14
  "exports": {
15
15
  ".": {
16
16
  "types": "./dist/esm/index.d.ts",
17
+ "bun": "./src/index.ts",
18
+ "development": "./src/index.ts",
17
19
  "import": "./dist/esm/index.js",
18
20
  "require": "./dist/plugin.cjs.js"
19
21
  },
@@ -26,25 +28,24 @@
26
28
  ],
27
29
  "author": "elizaOS",
28
30
  "license": "MIT",
29
- "dependencies": {
30
- "@elizaos/app-core": "2.0.0-beta.1"
31
- },
32
31
  "repository": {
33
32
  "type": "git",
34
33
  "url": "https://github.com/elizaOS/eliza"
35
34
  },
36
35
  "scripts": {
37
- "build": "bun run clean && tsc && bun --bun rollup -c rollup.config.mjs",
38
- "clean": "node ../../../scripts/rm-path-recursive.mjs dist",
36
+ "build": "node ../../packages/scripts/with-package-build-lock.mjs plugins/plugin-native-desktop -- bun run build:unlocked",
37
+ "clean": "node ../../packages/scripts/rm-path-recursive.mjs dist",
38
+ "test": "vitest run",
39
39
  "prepublishOnly": "bun run build",
40
- "watch": "tsc --watch"
40
+ "watch": "tsc --watch",
41
+ "build:unlocked": "bun run clean && tsc && bunx rollup -c rollup.config.mjs"
41
42
  },
42
43
  "devDependencies": {
43
44
  "@capacitor/core": "^8.3.1",
44
45
  "@rollup/plugin-node-resolve": "^16.0.0",
45
- "rimraf": "^6.0.0",
46
46
  "rollup": "^4.60.2",
47
- "typescript": "^6.0.3"
47
+ "typescript": "^6.0.3",
48
+ "vitest": "^4.0.0"
48
49
  },
49
50
  "peerDependencies": {
50
51
  "@capacitor/core": "^8.3.1"
@@ -64,5 +65,6 @@
64
65
  "ios": false,
65
66
  "android": false
66
67
  }
67
- }
68
+ },
69
+ "gitHead": "cdbc876f793d96073d7eb0d09715a031ce0cd32e"
68
70
  }