@elizaos/capacitor-desktop 1.0.0 → 2.0.0-beta.1

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.
@@ -107,6 +107,27 @@ export interface PowerMonitorState {
107
107
  idleState: "active" | "idle" | "locked" | "unknown";
108
108
  idleTime: number;
109
109
  }
110
+ /**
111
+ * System permission probing surface — exposed by the Desktop plugin so
112
+ * the renderer can ask "is this permission granted?" / "request this
113
+ * permission" without triggering implicit OS dialogs.
114
+ *
115
+ * The id set mirrors the canonical PermissionId from
116
+ * `@elizaos/shared/contracts/permissions`. Defined inline here to keep the
117
+ * Capacitor plugin package free of cross-package type imports.
118
+ */
119
+ export type DesktopPermissionId = "screen-recording" | "accessibility" | "reminders" | "calendar" | "health" | "screentime" | "contacts" | "notes" | "microphone" | "camera" | "location" | "shell" | "website-blocking" | "notifications" | "full-disk" | "automation";
120
+ export type DesktopPermissionStatus = "granted" | "denied" | "not-determined" | "restricted" | "not-applicable";
121
+ export type DesktopPermissionRestrictedReason = "entitlement_required" | "platform_unsupported" | "os_policy";
122
+ export interface DesktopPermissionState {
123
+ id: DesktopPermissionId;
124
+ status: DesktopPermissionStatus;
125
+ restrictedReason?: DesktopPermissionRestrictedReason;
126
+ lastChecked: number;
127
+ lastRequested?: number;
128
+ canRequest: boolean;
129
+ platform: "darwin" | "win32" | "linux";
130
+ }
110
131
  export interface DesktopPlugin {
111
132
  createTray(options: TrayOptions): Promise<void>;
112
133
  updateTray(options: Partial<TrayOptions>): Promise<void>;
@@ -207,6 +228,13 @@ export interface DesktopPlugin {
207
228
  path: string;
208
229
  }): Promise<void>;
209
230
  beep(): Promise<void>;
231
+ checkPermission(options: {
232
+ id: DesktopPermissionId;
233
+ }): Promise<DesktopPermissionState>;
234
+ requestPermission(options: {
235
+ id: DesktopPermissionId;
236
+ reason: string;
237
+ }): Promise<DesktopPermissionState>;
210
238
  addListener(eventName: "trayClick", listenerFunc: (event: TrayClickEvent) => void): Promise<PluginListenerHandle>;
211
239
  addListener(eventName: "trayDoubleClick", listenerFunc: (event: TrayClickEvent) => void): Promise<PluginListenerHandle>;
212
240
  addListener(eventName: "trayRightClick", listenerFunc: (event: TrayClickEvent) => void): Promise<PluginListenerHandle>;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"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"}
package/dist/esm/web.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { WebPlugin } from "@capacitor/core";
2
- import type { AutoLaunchOptions, GlobalShortcut, GlobalShortcutEvent, NotificationEvent, NotificationOptions, PowerMonitorState, TrayClickEvent, TrayMenuClickEvent, TrayMenuItem, TrayOptions, WindowBounds, WindowOptions } from "./definitions";
2
+ import type { AutoLaunchOptions, DesktopPermissionId, DesktopPermissionState, GlobalShortcut, GlobalShortcutEvent, NotificationEvent, NotificationOptions, PowerMonitorState, TrayClickEvent, TrayMenuClickEvent, TrayMenuItem, TrayOptions, WindowBounds, WindowOptions } from "./definitions";
3
3
  type DesktopEventData = TrayClickEvent | TrayMenuClickEvent | GlobalShortcutEvent | NotificationEvent | undefined;
4
4
  export declare class DesktopWeb extends WebPlugin {
5
5
  private pluginListeners;
@@ -106,6 +106,13 @@ export declare class DesktopWeb extends WebPlugin {
106
106
  }>;
107
107
  removeAllListeners(): Promise<void>;
108
108
  protected notifyListeners(eventName: string, data: DesktopEventData): void;
109
+ checkPermission(options: {
110
+ id: DesktopPermissionId;
111
+ }): Promise<DesktopPermissionState>;
112
+ requestPermission(options: {
113
+ id: DesktopPermissionId;
114
+ reason: string;
115
+ }): Promise<DesktopPermissionState>;
109
116
  }
110
117
  export {};
111
118
  //# sourceMappingURL=web.d.ts.map
@@ -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
@@ -1,49 +1,154 @@
1
1
  import { WebPlugin } from "@capacitor/core";
2
- // No-op for features unavailable on web; callers should check return values.
3
- const webUnavailable = (_feature) => { };
2
+ const BROWSER_PERMISSION_IDS = new Set([
3
+ "camera",
4
+ "microphone",
5
+ "location",
6
+ "notifications",
7
+ ]);
8
+ function getDesktopRpc() {
9
+ const g = globalThis;
10
+ if (typeof window !== "undefined") {
11
+ return window.__ELIZA_ELECTROBUN_RPC__;
12
+ }
13
+ return g.window?.__ELIZA_ELECTROBUN_RPC__ ?? g.__ELIZA_ELECTROBUN_RPC__;
14
+ }
15
+ function currentPlatform() {
16
+ const proc = globalThis.process;
17
+ const p = proc?.platform;
18
+ if (p === "darwin" || p === "win32" || p === "linux")
19
+ return p;
20
+ if (typeof navigator !== "undefined") {
21
+ const platform = navigator.platform.toLowerCase();
22
+ if (platform.includes("mac"))
23
+ return "darwin";
24
+ if (platform.includes("win"))
25
+ return "win32";
26
+ }
27
+ return "linux";
28
+ }
29
+ function isRecord(value) {
30
+ return Boolean(value) && typeof value === "object";
31
+ }
32
+ function isDesktopPermissionState(value, id) {
33
+ return (isRecord(value) &&
34
+ value.id === id &&
35
+ typeof value.status === "string" &&
36
+ typeof value.canRequest === "boolean" &&
37
+ typeof value.lastChecked === "number");
38
+ }
39
+ function stateFromStatus(id, status, options = {}) {
40
+ const state = {
41
+ id,
42
+ status,
43
+ lastChecked: options.lastChecked ?? Date.now(),
44
+ canRequest: options.canRequest ?? status === "not-determined",
45
+ platform: options.platform ?? currentPlatform(),
46
+ };
47
+ if (options.lastRequested !== undefined) {
48
+ state.lastRequested = options.lastRequested;
49
+ }
50
+ if (options.restrictedReason !== undefined) {
51
+ state.restrictedReason = options.restrictedReason;
52
+ }
53
+ return state;
54
+ }
55
+ function mapBrowserPermissionState(state) {
56
+ if (state === "granted")
57
+ return "granted";
58
+ if (state === "denied")
59
+ return "denied";
60
+ if (state === "prompt" || state === "default")
61
+ return "not-determined";
62
+ return null;
63
+ }
64
+ async function queryBrowserPermission(id) {
65
+ if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === "undefined") {
66
+ return null;
67
+ }
68
+ if (id === "notifications" && typeof Notification !== "undefined") {
69
+ const status = mapBrowserPermissionState(Notification.permission);
70
+ return status ? stateFromStatus(id, status) : null;
71
+ }
72
+ if (!navigator.permissions?.query) {
73
+ return null;
74
+ }
75
+ const permissionName = id === "location" ? "geolocation" : id;
76
+ try {
77
+ const result = await navigator.permissions.query({
78
+ name: permissionName,
79
+ });
80
+ const status = mapBrowserPermissionState(result.state);
81
+ return status ? stateFromStatus(id, status) : null;
82
+ }
83
+ catch {
84
+ return null;
85
+ }
86
+ }
87
+ async function requestBrowserPermission(id) {
88
+ if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === "undefined") {
89
+ return null;
90
+ }
91
+ if (id === "camera" || id === "microphone") {
92
+ try {
93
+ const stream = await navigator.mediaDevices?.getUserMedia?.({
94
+ video: id === "camera",
95
+ audio: id === "microphone",
96
+ });
97
+ for (const track of stream?.getTracks?.() ?? []) {
98
+ track.stop();
99
+ }
100
+ }
101
+ catch {
102
+ // Query below returns denied when the browser recorded a denial.
103
+ }
104
+ const checked = await queryBrowserPermission(id);
105
+ return checked ? { ...checked, lastRequested: Date.now() } : null;
106
+ }
107
+ if (id === "location" && navigator.geolocation) {
108
+ const requestedStatus = await new Promise((resolve) => {
109
+ navigator.geolocation.getCurrentPosition(() => resolve("granted"), (err) => resolve(err.code === err.PERMISSION_DENIED ? "denied" : null), { maximumAge: 0, timeout: 10000 });
110
+ });
111
+ const checked = await queryBrowserPermission(id);
112
+ if (checked)
113
+ return { ...checked, lastRequested: Date.now() };
114
+ return requestedStatus
115
+ ? stateFromStatus(id, requestedStatus, { lastRequested: Date.now() })
116
+ : null;
117
+ }
118
+ if (id === "notifications" && typeof Notification !== "undefined") {
119
+ const status = mapBrowserPermissionState(await Notification.requestPermission());
120
+ return status
121
+ ? stateFromStatus(id, status, { lastRequested: Date.now() })
122
+ : null;
123
+ }
124
+ return queryBrowserPermission(id);
125
+ }
4
126
  export class DesktopWeb extends WebPlugin {
5
127
  constructor() {
6
128
  super(...arguments);
7
129
  this.pluginListeners = [];
8
130
  }
9
131
  // System Tray - Not available in browser
10
- async createTray(_options) {
11
- webUnavailable("System tray");
12
- }
13
- async updateTray(_options) {
14
- webUnavailable("System tray");
15
- }
16
- async destroyTray() {
17
- webUnavailable("System tray");
18
- }
19
- async setTrayMenu(_options) {
20
- webUnavailable("System tray");
21
- }
132
+ async createTray(_options) { }
133
+ async updateTray(_options) { }
134
+ async destroyTray() { }
135
+ async setTrayMenu(_options) { }
22
136
  // Global Shortcuts - Not available in browser
23
137
  async registerShortcut(_options) {
24
- webUnavailable("Global shortcuts");
25
138
  return { success: false };
26
139
  }
27
- async unregisterShortcut(_options) {
28
- webUnavailable("Global shortcuts");
29
- }
30
- async unregisterAllShortcuts() {
31
- webUnavailable("Global shortcuts");
32
- }
140
+ async unregisterShortcut(_options) { }
141
+ async unregisterAllShortcuts() { }
33
142
  async isShortcutRegistered(_options) {
34
143
  return { registered: false };
35
144
  }
36
145
  // Auto Launch - Not available in browser
37
- async setAutoLaunch(_options) {
38
- webUnavailable("Auto launch");
39
- }
146
+ async setAutoLaunch(_options) { }
40
147
  async getAutoLaunchStatus() {
41
148
  return { enabled: false, openAsHidden: false };
42
149
  }
43
150
  // Window Management - Limited in browser
44
- async setWindowOptions(_options) {
45
- webUnavailable("Window options");
46
- }
151
+ async setWindowOptions(_options) { }
47
152
  async getWindowBounds() {
48
153
  return {
49
154
  x: window.screenX,
@@ -52,27 +157,17 @@ export class DesktopWeb extends WebPlugin {
52
157
  height: window.outerHeight,
53
158
  };
54
159
  }
55
- async setWindowBounds(_options) {
56
- webUnavailable("Setting window bounds");
57
- }
58
- async minimizeWindow() {
59
- webUnavailable("Window minimize");
60
- }
61
- async maximizeWindow() {
62
- webUnavailable("Window maximize");
63
- }
64
- async unmaximizeWindow() {
65
- webUnavailable("Window unmaximize");
66
- }
160
+ async setWindowBounds(_options) { }
161
+ async minimizeWindow() { }
162
+ async maximizeWindow() { }
163
+ async unmaximizeWindow() { }
67
164
  async closeWindow() {
68
165
  window.close();
69
166
  }
70
167
  async showWindow() {
71
168
  window.focus();
72
169
  }
73
- async hideWindow() {
74
- webUnavailable("Window hide");
75
- }
170
+ async hideWindow() { }
76
171
  async focusWindow() {
77
172
  window.focus();
78
173
  }
@@ -88,17 +183,13 @@ export class DesktopWeb extends WebPlugin {
88
183
  async isWindowFocused() {
89
184
  return { focused: document.hasFocus() };
90
185
  }
91
- async setAlwaysOnTop(_options) {
92
- webUnavailable("Always on top");
93
- }
186
+ async setAlwaysOnTop(_options) { }
94
187
  async setFullscreen(options) {
95
188
  options.flag
96
189
  ? document.documentElement.requestFullscreen()
97
190
  : document.exitFullscreen();
98
191
  }
99
- async setOpacity(_options) {
100
- webUnavailable("Window opacity");
101
- }
192
+ async setOpacity(_options) { }
102
193
  // Notifications - Using Web Notification API
103
194
  async showNotification(options) {
104
195
  const id = `notification_${Date.now()}`;
@@ -206,9 +297,7 @@ export class DesktopWeb extends WebPlugin {
206
297
  async openExternal(options) {
207
298
  window.open(options.url, "_blank");
208
299
  }
209
- async showItemInFolder(_options) {
210
- webUnavailable("Show in folder");
211
- }
300
+ async showItemInFolder(_options) { }
212
301
  async beep() {
213
302
  const ctx = new AudioContext();
214
303
  const osc = ctx.createOscillator();
@@ -269,4 +358,40 @@ export class DesktopWeb extends WebPlugin {
269
358
  l.callback(data);
270
359
  });
271
360
  }
361
+ async checkPermission(options) {
362
+ const rpc = getDesktopRpc();
363
+ const request = rpc?.request?.permissionsCheck;
364
+ if (request) {
365
+ const bridged = await request.call(rpc.request, { id: options.id });
366
+ if (isDesktopPermissionState(bridged, options.id))
367
+ return bridged;
368
+ }
369
+ const browserState = await queryBrowserPermission(options.id);
370
+ if (browserState)
371
+ return browserState;
372
+ return {
373
+ id: options.id,
374
+ status: "not-applicable",
375
+ restrictedReason: "platform_unsupported",
376
+ lastChecked: Date.now(),
377
+ canRequest: false,
378
+ platform: currentPlatform(),
379
+ };
380
+ }
381
+ async requestPermission(options) {
382
+ const rpc = getDesktopRpc();
383
+ const request = rpc?.request?.permissionsRequest;
384
+ if (request) {
385
+ const bridged = await request.call(rpc.request, { id: options.id });
386
+ if (isDesktopPermissionState(bridged, options.id)) {
387
+ if (bridged.status === "not-determined" &&
388
+ BROWSER_PERMISSION_IDS.has(options.id)) {
389
+ return (await requestBrowserPermission(options.id)) ?? bridged;
390
+ }
391
+ return bridged;
392
+ }
393
+ }
394
+ return ((await requestBrowserPermission(options.id)) ??
395
+ this.checkPermission({ id: options.id }));
396
+ }
272
397
  }
@@ -7,40 +7,156 @@ const Desktop = core.registerPlugin("Desktop", {
7
7
  web: loadWeb,
8
8
  });
9
9
 
10
+ const BROWSER_PERMISSION_IDS = new Set([
11
+ "camera",
12
+ "microphone",
13
+ "location",
14
+ "notifications",
15
+ ]);
16
+ function getDesktopRpc() {
17
+ const g = globalThis;
18
+ if (typeof window !== "undefined") {
19
+ return window.__ELIZA_ELECTROBUN_RPC__;
20
+ }
21
+ return g.window?.__ELIZA_ELECTROBUN_RPC__ ?? g.__ELIZA_ELECTROBUN_RPC__;
22
+ }
23
+ function currentPlatform() {
24
+ const proc = globalThis.process;
25
+ const p = proc?.platform;
26
+ if (p === "darwin" || p === "win32" || p === "linux")
27
+ return p;
28
+ if (typeof navigator !== "undefined") {
29
+ const platform = navigator.platform.toLowerCase();
30
+ if (platform.includes("mac"))
31
+ return "darwin";
32
+ if (platform.includes("win"))
33
+ return "win32";
34
+ }
35
+ return "linux";
36
+ }
37
+ function isRecord(value) {
38
+ return Boolean(value) && typeof value === "object";
39
+ }
40
+ function isDesktopPermissionState(value, id) {
41
+ return (isRecord(value) &&
42
+ value.id === id &&
43
+ typeof value.status === "string" &&
44
+ typeof value.canRequest === "boolean" &&
45
+ typeof value.lastChecked === "number");
46
+ }
47
+ function stateFromStatus(id, status, options = {}) {
48
+ const state = {
49
+ id,
50
+ status,
51
+ lastChecked: options.lastChecked ?? Date.now(),
52
+ canRequest: options.canRequest ?? status === "not-determined",
53
+ platform: options.platform ?? currentPlatform(),
54
+ };
55
+ if (options.lastRequested !== undefined) {
56
+ state.lastRequested = options.lastRequested;
57
+ }
58
+ if (options.restrictedReason !== undefined) {
59
+ state.restrictedReason = options.restrictedReason;
60
+ }
61
+ return state;
62
+ }
63
+ function mapBrowserPermissionState(state) {
64
+ if (state === "granted")
65
+ return "granted";
66
+ if (state === "denied")
67
+ return "denied";
68
+ if (state === "prompt" || state === "default")
69
+ return "not-determined";
70
+ return null;
71
+ }
72
+ async function queryBrowserPermission(id) {
73
+ if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === "undefined") {
74
+ return null;
75
+ }
76
+ if (id === "notifications" && typeof Notification !== "undefined") {
77
+ const status = mapBrowserPermissionState(Notification.permission);
78
+ return status ? stateFromStatus(id, status) : null;
79
+ }
80
+ if (!navigator.permissions?.query) {
81
+ return null;
82
+ }
83
+ const permissionName = id === "location" ? "geolocation" : id;
84
+ try {
85
+ const result = await navigator.permissions.query({
86
+ name: permissionName,
87
+ });
88
+ const status = mapBrowserPermissionState(result.state);
89
+ return status ? stateFromStatus(id, status) : null;
90
+ }
91
+ catch {
92
+ return null;
93
+ }
94
+ }
95
+ async function requestBrowserPermission(id) {
96
+ if (!BROWSER_PERMISSION_IDS.has(id) || typeof navigator === "undefined") {
97
+ return null;
98
+ }
99
+ if (id === "camera" || id === "microphone") {
100
+ try {
101
+ const stream = await navigator.mediaDevices?.getUserMedia?.({
102
+ video: id === "camera",
103
+ audio: id === "microphone",
104
+ });
105
+ for (const track of stream?.getTracks?.() ?? []) {
106
+ track.stop();
107
+ }
108
+ }
109
+ catch {
110
+ // Query below returns denied when the browser recorded a denial.
111
+ }
112
+ const checked = await queryBrowserPermission(id);
113
+ return checked ? { ...checked, lastRequested: Date.now() } : null;
114
+ }
115
+ if (id === "location" && navigator.geolocation) {
116
+ const requestedStatus = await new Promise((resolve) => {
117
+ navigator.geolocation.getCurrentPosition(() => resolve("granted"), (err) => resolve(err.code === err.PERMISSION_DENIED ? "denied" : null), { maximumAge: 0, timeout: 10000 });
118
+ });
119
+ const checked = await queryBrowserPermission(id);
120
+ if (checked)
121
+ return { ...checked, lastRequested: Date.now() };
122
+ return requestedStatus
123
+ ? stateFromStatus(id, requestedStatus, { lastRequested: Date.now() })
124
+ : null;
125
+ }
126
+ if (id === "notifications" && typeof Notification !== "undefined") {
127
+ const status = mapBrowserPermissionState(await Notification.requestPermission());
128
+ return status
129
+ ? stateFromStatus(id, status, { lastRequested: Date.now() })
130
+ : null;
131
+ }
132
+ return queryBrowserPermission(id);
133
+ }
10
134
  class DesktopWeb extends core.WebPlugin {
11
135
  constructor() {
12
136
  super(...arguments);
13
137
  this.pluginListeners = [];
14
138
  }
15
139
  // System Tray - Not available in browser
16
- async createTray(_options) {
17
- }
18
- async updateTray(_options) {
19
- }
20
- async destroyTray() {
21
- }
22
- async setTrayMenu(_options) {
23
- }
140
+ async createTray(_options) { }
141
+ async updateTray(_options) { }
142
+ async destroyTray() { }
143
+ async setTrayMenu(_options) { }
24
144
  // Global Shortcuts - Not available in browser
25
145
  async registerShortcut(_options) {
26
146
  return { success: false };
27
147
  }
28
- async unregisterShortcut(_options) {
29
- }
30
- async unregisterAllShortcuts() {
31
- }
148
+ async unregisterShortcut(_options) { }
149
+ async unregisterAllShortcuts() { }
32
150
  async isShortcutRegistered(_options) {
33
151
  return { registered: false };
34
152
  }
35
153
  // Auto Launch - Not available in browser
36
- async setAutoLaunch(_options) {
37
- }
154
+ async setAutoLaunch(_options) { }
38
155
  async getAutoLaunchStatus() {
39
156
  return { enabled: false, openAsHidden: false };
40
157
  }
41
158
  // Window Management - Limited in browser
42
- async setWindowOptions(_options) {
43
- }
159
+ async setWindowOptions(_options) { }
44
160
  async getWindowBounds() {
45
161
  return {
46
162
  x: window.screenX,
@@ -49,22 +165,17 @@ class DesktopWeb extends core.WebPlugin {
49
165
  height: window.outerHeight,
50
166
  };
51
167
  }
52
- async setWindowBounds(_options) {
53
- }
54
- async minimizeWindow() {
55
- }
56
- async maximizeWindow() {
57
- }
58
- async unmaximizeWindow() {
59
- }
168
+ async setWindowBounds(_options) { }
169
+ async minimizeWindow() { }
170
+ async maximizeWindow() { }
171
+ async unmaximizeWindow() { }
60
172
  async closeWindow() {
61
173
  window.close();
62
174
  }
63
175
  async showWindow() {
64
176
  window.focus();
65
177
  }
66
- async hideWindow() {
67
- }
178
+ async hideWindow() { }
68
179
  async focusWindow() {
69
180
  window.focus();
70
181
  }
@@ -80,15 +191,13 @@ class DesktopWeb extends core.WebPlugin {
80
191
  async isWindowFocused() {
81
192
  return { focused: document.hasFocus() };
82
193
  }
83
- async setAlwaysOnTop(_options) {
84
- }
194
+ async setAlwaysOnTop(_options) { }
85
195
  async setFullscreen(options) {
86
196
  options.flag
87
197
  ? document.documentElement.requestFullscreen()
88
198
  : document.exitFullscreen();
89
199
  }
90
- async setOpacity(_options) {
91
- }
200
+ async setOpacity(_options) { }
92
201
  // Notifications - Using Web Notification API
93
202
  async showNotification(options) {
94
203
  const id = `notification_${Date.now()}`;
@@ -196,8 +305,7 @@ class DesktopWeb extends core.WebPlugin {
196
305
  async openExternal(options) {
197
306
  window.open(options.url, "_blank");
198
307
  }
199
- async showItemInFolder(_options) {
200
- }
308
+ async showItemInFolder(_options) { }
201
309
  async beep() {
202
310
  const ctx = new AudioContext();
203
311
  const osc = ctx.createOscillator();
@@ -258,6 +366,42 @@ class DesktopWeb extends core.WebPlugin {
258
366
  l.callback(data);
259
367
  });
260
368
  }
369
+ async checkPermission(options) {
370
+ const rpc = getDesktopRpc();
371
+ const request = rpc?.request?.permissionsCheck;
372
+ if (request) {
373
+ const bridged = await request.call(rpc.request, { id: options.id });
374
+ if (isDesktopPermissionState(bridged, options.id))
375
+ return bridged;
376
+ }
377
+ const browserState = await queryBrowserPermission(options.id);
378
+ if (browserState)
379
+ return browserState;
380
+ return {
381
+ id: options.id,
382
+ status: "not-applicable",
383
+ restrictedReason: "platform_unsupported",
384
+ lastChecked: Date.now(),
385
+ canRequest: false,
386
+ platform: currentPlatform(),
387
+ };
388
+ }
389
+ async requestPermission(options) {
390
+ const rpc = getDesktopRpc();
391
+ const request = rpc?.request?.permissionsRequest;
392
+ if (request) {
393
+ const bridged = await request.call(rpc.request, { id: options.id });
394
+ if (isDesktopPermissionState(bridged, options.id)) {
395
+ if (bridged.status === "not-determined" &&
396
+ BROWSER_PERMISSION_IDS.has(options.id)) {
397
+ return (await requestBrowserPermission(options.id)) ?? bridged;
398
+ }
399
+ return bridged;
400
+ }
401
+ }
402
+ return ((await requestBrowserPermission(options.id)) ??
403
+ this.checkPermission({ id: options.id }));
404
+ }
261
405
  }
262
406
 
263
407
  var web = /*#__PURE__*/Object.freeze({