@fkn/lib 0.4.7 → 0.4.9

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as osra from 'osra';
2
- import { BoxBase, Capable, UnderlyingType, RevivableContext } from 'osra';
2
+ import { BoxBase, Capable, UnderlyingType, RevivableContext, DefaultRevivableModules } from 'osra';
3
3
  import * as osra_build_revivables_event_target from 'osra/build/revivables/event-target';
4
4
  import * as osra_build_revivables_fallbacks from 'osra/build/revivables/fallbacks';
5
5
  import * as osra_build_revivables_json_primitives from 'osra/build/revivables/json-primitives';
@@ -33,29 +33,31 @@ import { EventEmitter } from 'events';
33
33
  import { Socket as Socket$3, SocketOptions, BindOptions, SocketType, RemoteInfo } from 'dgram';
34
34
  import { Buffer } from 'buffer';
35
35
  import { OutgoingHttpHeaders, IncomingHttpHeaders, RequestOptions } from 'http';
36
+ import { PathLike } from 'fs';
37
+ import { CSSProperties, ReactElement } from 'react';
36
38
 
37
39
  declare const fetchPermission: {
38
- readonly scope: "network.fetch";
39
- readonly category: "network";
40
+ readonly scope: 'network.fetch';
41
+ readonly category: 'network';
40
42
  readonly severity: 0;
41
- readonly title: "Fetch data from other sites";
42
- readonly description: "Lets the app download public data from other websites directly, past the usual cross-origin limits.";
43
+ readonly title: 'Fetch data from other sites';
44
+ readonly description: 'Lets the app download public data from other websites directly, past the usual cross-origin limits.';
43
45
  };
44
46
  declare const fetchCredentialedPermission: {
45
- readonly scope: "network.fetchCredentialed";
46
- readonly category: "network";
47
+ readonly scope: 'network.fetchCredentialed';
48
+ readonly category: 'network';
47
49
  readonly severity: 3;
48
50
  readonly unsafe: true;
49
- readonly title: "Fetch from other sites, signed in as you";
50
- readonly description: "Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see.";
51
+ readonly title: 'Fetch from other sites, signed in as you';
52
+ readonly description: 'Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see.';
51
53
  };
52
54
  declare const fetchLocalPermission: {
53
- readonly scope: "network.fetchLocal";
54
- readonly category: "network";
55
+ readonly scope: 'network.fetchLocal';
56
+ readonly category: 'network';
55
57
  readonly severity: 3;
56
58
  readonly unsafe: true;
57
- readonly title: "Access devices on your local network";
58
- readonly description: "Lets the app reach devices and services on your home or work network, which websites normally cannot touch.";
59
+ readonly title: 'Access devices on your local network';
60
+ readonly description: 'Lets the app reach devices and services on your home or work network, which websites normally cannot touch.';
59
61
  };
60
62
  declare const isLocalNetworkUrl: (raw: string) => boolean;
61
63
  type ProxyFetchRequest = {
@@ -74,15 +76,15 @@ type FetchInit = RequestInit & {
74
76
  };
75
77
  declare const isBlockedFetchUrl: (raw: string) => boolean;
76
78
  declare const assertFetchableUrl: (raw: string) => void;
77
- declare const fetch$2: (input: URL | RequestInfo, init?: FetchInit | undefined) => Promise<Response>;
79
+ declare const fetch$2: (input: RequestInfo | URL, init?: FetchInit) => Promise<Response>;
78
80
 
79
81
  declare const readCookiePermission: {
80
- readonly scope: "network.readCookie";
81
- readonly category: "network";
82
+ readonly scope: 'network.readCookie';
83
+ readonly category: 'network';
82
84
  readonly severity: 3;
83
85
  readonly unsafe: true;
84
- readonly title: "Read a site’s cookie";
85
- readonly description: "Lets the app read a named cookie from another site, which can include the login token only that site should see.";
86
+ readonly title: 'Read a site’s cookie';
87
+ readonly description: 'Lets the app read a named cookie from another site, which can include the login token only that site should see.';
86
88
  };
87
89
  type CookieDetails = {
88
90
  url: string;
@@ -97,12 +99,12 @@ declare const cookies: {
97
99
  };
98
100
 
99
101
  declare const modifyRequestHeadersPermission: {
100
- readonly scope: "network.modifyRequestHeaders";
101
- readonly category: "network";
102
+ readonly scope: 'network.modifyRequestHeaders';
103
+ readonly category: 'network';
102
104
  readonly severity: 2;
103
105
  readonly unsafe: true;
104
- readonly title: "Rewrite request headers to other sites";
105
- readonly description: "Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites.";
106
+ readonly title: 'Rewrite request headers to other sites';
107
+ readonly description: 'Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites.';
106
108
  };
107
109
  type HeaderOperation = {
108
110
  header: string;
@@ -132,7 +134,7 @@ type ExtractResolverReturn<M> = M extends {
132
134
  resolve: (context: any, ...args: any[]) => infer R;
133
135
  } ? R : never;
134
136
 
135
- declare const type$i: "locator";
137
+ declare const type$i: 'locator';
136
138
  declare const resolve$h: (context: LocatorContext, selector: string) => Element[];
137
139
  declare const render$7: SelectorRenderer;
138
140
 
@@ -144,7 +146,7 @@ declare namespace locatorSel {
144
146
  };
145
147
  }
146
148
 
147
- declare const type$h: "getByRole";
149
+ declare const type$h: 'getByRole';
148
150
  declare const resolve$g: (context: LocatorContext, role: string) => Element[];
149
151
  declare const render$6: SelectorRenderer;
150
152
 
@@ -156,7 +158,7 @@ declare namespace getByRole {
156
158
  };
157
159
  }
158
160
 
159
- declare const type$g: "getByText";
161
+ declare const type$g: 'getByText';
160
162
  declare const resolve$f: (context: LocatorContext, text: string) => Element[];
161
163
  declare const render$5: SelectorRenderer;
162
164
 
@@ -168,7 +170,7 @@ declare namespace getByText {
168
170
  };
169
171
  }
170
172
 
171
- declare const type$f: "getByTestId";
173
+ declare const type$f: 'getByTestId';
172
174
  declare const resolve$e: (context: LocatorContext, testId: string) => Element[];
173
175
  declare const render$4: SelectorRenderer;
174
176
 
@@ -180,7 +182,7 @@ declare namespace getByTestId {
180
182
  };
181
183
  }
182
184
 
183
- declare const type$e: "first";
185
+ declare const type$e: 'first';
184
186
  declare const resolve$d: (context: LocatorContext) => Element[];
185
187
  declare const render$3: SelectorRenderer;
186
188
 
@@ -192,7 +194,7 @@ declare namespace first {
192
194
  };
193
195
  }
194
196
 
195
- declare const type$d: "nth";
197
+ declare const type$d: 'nth';
196
198
  declare const resolve$c: (context: LocatorContext, index: number) => Element[];
197
199
  declare const render$2: SelectorRenderer;
198
200
 
@@ -204,19 +206,19 @@ declare namespace nth {
204
206
  };
205
207
  }
206
208
 
207
- declare const type$c: "click";
209
+ declare const type$c: 'click';
208
210
  declare const permission$9: {
209
- readonly scope: "act.click";
210
- readonly category: "act";
211
+ readonly scope: 'act.click';
212
+ readonly category: 'act';
211
213
  readonly severity: 3;
212
- readonly title: "Click on the page";
213
- readonly description: "Lets the app press buttons or links for you.";
214
+ readonly title: 'Click on the page';
215
+ readonly description: 'Lets the app press buttons or links for you.';
214
216
  };
215
217
  declare const resolve$b: (context: LocatorContext, options?: OperationTimeoutOptions & {
216
218
  position?: {
217
- x?: number | undefined;
218
- y?: number | undefined;
219
- } | undefined;
219
+ x?: number;
220
+ y?: number;
221
+ };
220
222
  }) => void;
221
223
 
222
224
  declare namespace click {
@@ -227,13 +229,13 @@ declare namespace click {
227
229
  };
228
230
  }
229
231
 
230
- declare const type$b: "fill";
232
+ declare const type$b: 'fill';
231
233
  declare const permission$8: {
232
- readonly scope: "act.type";
233
- readonly category: "act";
234
+ readonly scope: 'act.type';
235
+ readonly category: 'act';
234
236
  readonly severity: 1;
235
- readonly title: "Type into a text field";
236
- readonly description: "Lets the app fill in form fields on your behalf.";
237
+ readonly title: 'Type into a text field';
238
+ readonly description: 'Lets the app fill in form fields on your behalf.';
237
239
  };
238
240
  declare const resolve$a: (context: LocatorContext, value: string, _options?: OperationTimeoutOptions) => void;
239
241
 
@@ -245,19 +247,19 @@ declare namespace fill {
245
247
  };
246
248
  }
247
249
 
248
- declare const type$a: "hover";
250
+ declare const type$a: 'hover';
249
251
  declare const permission$7: {
250
- readonly scope: "act.hover";
251
- readonly category: "act";
252
+ readonly scope: 'act.hover';
253
+ readonly category: 'act';
252
254
  readonly severity: 1;
253
- readonly title: "Hover over the page";
254
- readonly description: "Lets the app point at things to reveal menus or tooltips.";
255
+ readonly title: 'Hover over the page';
256
+ readonly description: 'Lets the app point at things to reveal menus or tooltips.';
255
257
  };
256
258
  declare const resolve$9: (context: LocatorContext, options?: OperationTimeoutOptions & {
257
259
  position?: {
258
- x?: number | undefined;
259
- y?: number | undefined;
260
- } | undefined;
260
+ x?: number;
261
+ y?: number;
262
+ };
261
263
  }) => void;
262
264
 
263
265
  declare namespace hover {
@@ -268,13 +270,13 @@ declare namespace hover {
268
270
  };
269
271
  }
270
272
 
271
- declare const type$9: "textContent";
273
+ declare const type$9: 'textContent';
272
274
  declare const permission$6: {
273
- readonly scope: "read.text";
274
- readonly category: "read";
275
+ readonly scope: 'read.text';
276
+ readonly category: 'read';
275
277
  readonly severity: 1;
276
- readonly title: "Read text from the page";
277
- readonly description: "Lets the app see the text shown on this page.";
278
+ readonly title: 'Read text from the page';
279
+ readonly description: 'Lets the app see the text shown on this page.';
278
280
  };
279
281
  declare const resolve$8: (context: LocatorContext, _options?: OperationTimeoutOptions) => string;
280
282
 
@@ -286,13 +288,13 @@ declare namespace textContent {
286
288
  };
287
289
  }
288
290
 
289
- declare const type$8: "isVisible";
291
+ declare const type$8: 'isVisible';
290
292
  declare const permission$5: {
291
- readonly scope: "read.visible";
292
- readonly category: "read";
293
+ readonly scope: 'read.visible';
294
+ readonly category: 'read';
293
295
  readonly severity: 0;
294
- readonly title: "See what’s visible on the page";
295
- readonly description: "Lets the app check which elements are currently on screen.";
296
+ readonly title: 'See what’s visible on the page';
297
+ readonly description: 'Lets the app check which elements are currently on screen.';
296
298
  };
297
299
  declare const resolve$7: (context: LocatorContext, _options?: OperationTimeoutOptions) => boolean;
298
300
 
@@ -304,13 +306,13 @@ declare namespace isVisible {
304
306
  };
305
307
  }
306
308
 
307
- declare const type$7: "count";
309
+ declare const type$7: 'count';
308
310
  declare const permission$4: {
309
- readonly scope: "read.count";
310
- readonly category: "read";
311
+ readonly scope: 'read.count';
312
+ readonly category: 'read';
311
313
  readonly severity: 0;
312
- readonly title: "Count items on the page";
313
- readonly description: "Lets the app count how many matching elements are present.";
314
+ readonly title: 'Count items on the page';
315
+ readonly description: 'Lets the app count how many matching elements are present.';
314
316
  };
315
317
  declare const resolve$6: (context: LocatorContext, _options?: OperationTimeoutOptions) => number;
316
318
 
@@ -322,17 +324,17 @@ declare namespace count {
322
324
  };
323
325
  }
324
326
 
325
- declare const type$6: "exists";
327
+ declare const type$6: 'exists';
326
328
  declare const permission$3: {
327
- readonly scope: "read.check";
328
- readonly category: "read";
329
+ readonly scope: 'read.check';
330
+ readonly category: 'read';
329
331
  readonly severity: 0;
330
- readonly title: "Check if something is on the page";
331
- readonly description: "Lets the app test whether a specific element exists.";
332
+ readonly title: 'Check if something is on the page';
333
+ readonly description: 'Lets the app test whether a specific element exists.';
332
334
  };
333
335
  declare const resolve$5: (context: LocatorContext, _options?: OperationTimeoutOptions) => boolean;
334
336
 
335
- declare namespace exists {
337
+ declare namespace exists$1 {
336
338
  export {
337
339
  permission$3 as permission,
338
340
  resolve$5 as resolve,
@@ -340,13 +342,13 @@ declare namespace exists {
340
342
  };
341
343
  }
342
344
 
343
- declare const type$5: "getAttribute";
345
+ declare const type$5: 'getAttribute';
344
346
  declare const permission$2: {
345
- readonly scope: "read.info";
346
- readonly category: "read";
347
+ readonly scope: 'read.info';
348
+ readonly category: 'read';
347
349
  readonly severity: 1;
348
- readonly title: "Read info from the page";
349
- readonly description: "Lets the app read the href value from a part of the page.";
350
+ readonly title: 'Read info from the page';
351
+ readonly description: 'Lets the app read the href value from a part of the page.';
350
352
  };
351
353
  declare const resolve$4: (context: LocatorContext, name: string, _options?: OperationTimeoutOptions) => string | null;
352
354
 
@@ -358,13 +360,13 @@ declare namespace getAttribute {
358
360
  };
359
361
  }
360
362
 
361
- declare const type$4: "videoElement";
363
+ declare const type$4: 'videoElement';
362
364
  declare const permission$1: {
363
- readonly scope: "media.video";
364
- readonly category: "media";
365
+ readonly scope: 'media.video';
366
+ readonly category: 'media';
365
367
  readonly severity: 0;
366
- readonly title: "Control video playback";
367
- readonly description: "Lets the app play, pause, seek, and read the video on the page.";
368
+ readonly title: 'Control video playback';
369
+ readonly description: 'Lets the app play, pause, seek, and read the video on the page.';
368
370
  };
369
371
  declare const resolve$3: (context: LocatorContext, _options?: OperationTimeoutOptions) => RemoteVideoElement;
370
372
 
@@ -379,19 +381,19 @@ declare namespace videoElement$1 {
379
381
  declare const locatorModule: {
380
382
  readonly type: "locator";
381
383
  readonly selectorModules: readonly [typeof locatorSel, {
382
- readonly type: "frameLocator";
384
+ readonly type: 'frameLocator';
383
385
  readonly resolve: (context: LocatorContext, selector: string) => HTMLIFrameElement[];
384
386
  readonly resolvePeer: BarrierResolver;
385
387
  readonly render: SelectorRenderer;
386
- readonly nextLocatorType: "frameLocator";
388
+ readonly nextLocatorType: 'frameLocator';
387
389
  }, typeof getByRole, typeof getByText, typeof getByTestId, typeof first, typeof nth];
388
- readonly operationModules: readonly [typeof click, typeof fill, typeof hover, typeof textContent, typeof isVisible, typeof count, typeof exists, typeof getAttribute, typeof videoElement$1];
390
+ readonly operationModules: readonly [typeof click, typeof fill, typeof hover, typeof textContent, typeof isVisible, typeof count, typeof exists$1, typeof getAttribute, typeof videoElement$1];
389
391
  };
390
392
  type LocatorModule = typeof locatorModule;
391
393
  interface Locator extends LocatorChain<LocatorModule, Locator> {
392
394
  }
393
395
 
394
- declare const type$3: "frameLocator";
396
+ declare const type$3: 'frameLocator';
395
397
  declare const resolve$2: (context: LocatorContext, selector: string) => HTMLIFrameElement[];
396
398
  declare const resolvePeer$1: BarrierResolver;
397
399
  declare const render$1: SelectorRenderer;
@@ -405,7 +407,7 @@ declare namespace frameLocatorSel {
405
407
  };
406
408
  }
407
409
 
408
- declare const type$2: "owner";
410
+ declare const type$2: 'owner';
409
411
  declare const resolve$1: (_: LocatorContext) => never;
410
412
  declare const resolvePeer: BarrierResolver;
411
413
  declare const render: SelectorRenderer;
@@ -421,39 +423,39 @@ declare namespace owner {
421
423
  };
422
424
  }
423
425
 
424
- declare const type$1: "addStyleTag";
426
+ declare const type$1: 'addStyleTag';
425
427
  type AddStyleTagOptions = OperationTimeoutOptions & {
426
428
  content: string;
427
429
  noSanitize?: boolean;
428
430
  };
429
431
  declare const appearPermission: {
430
- readonly scope: "media.appear";
431
- readonly category: "media";
432
+ readonly scope: 'media.appear';
433
+ readonly category: 'media';
432
434
  readonly severity: 0;
433
- readonly title: "Change page appearance";
434
- readonly description: "Lets the app restyle parts of the page (safely filtered).";
435
+ readonly title: 'Change page appearance';
436
+ readonly description: 'Lets the app restyle parts of the page (safely filtered).';
435
437
  };
436
438
  declare const appearUnsafePermission: {
437
- readonly scope: "media.appearU";
438
- readonly category: "media";
439
+ readonly scope: 'media.appearU';
440
+ readonly category: 'media';
439
441
  readonly severity: 2;
440
442
  readonly unsafe: true;
441
- readonly title: "Change page appearance (unsafe)";
442
- readonly description: "Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network.";
443
+ readonly title: 'Change page appearance (unsafe)';
444
+ readonly description: 'Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network.';
443
445
  };
444
- declare const permission: (options?: AddStyleTagOptions | undefined) => {
445
- readonly scope: "media.appear";
446
- readonly category: "media";
446
+ declare const permission: (options?: AddStyleTagOptions) => {
447
+ readonly scope: 'media.appear';
448
+ readonly category: 'media';
447
449
  readonly severity: 0;
448
- readonly title: "Change page appearance";
449
- readonly description: "Lets the app restyle parts of the page (safely filtered).";
450
+ readonly title: 'Change page appearance';
451
+ readonly description: 'Lets the app restyle parts of the page (safely filtered).';
450
452
  } | {
451
- readonly scope: "media.appearU";
452
- readonly category: "media";
453
+ readonly scope: 'media.appearU';
454
+ readonly category: 'media';
453
455
  readonly severity: 2;
454
456
  readonly unsafe: true;
455
- readonly title: "Change page appearance (unsafe)";
456
- readonly description: "Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network.";
457
+ readonly title: 'Change page appearance (unsafe)';
458
+ readonly description: 'Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network.';
457
459
  };
458
460
  declare const setInjectedStylesDisabled: (disabled: boolean) => void;
459
461
  declare const resolve: (_context: LocatorContext, options: AddStyleTagOptions) => Promise<void>;
@@ -472,10 +474,10 @@ declare namespace addStyleTag {
472
474
  declare const frameLocatorModule: {
473
475
  readonly type: "frameLocator";
474
476
  readonly selectorModules: readonly [{
475
- readonly type: "locator";
477
+ readonly type: 'locator';
476
478
  readonly resolve: (context: LocatorContext, selector: string) => Element[];
477
479
  readonly render: SelectorRenderer;
478
- readonly nextLocatorType: "locator";
480
+ readonly nextLocatorType: 'locator';
479
481
  }, typeof frameLocatorSel, typeof owner];
480
482
  readonly operationModules: readonly [typeof addStyleTag];
481
483
  };
@@ -562,18 +564,25 @@ declare const ATTACH_FRAME_EVENT_KEY = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY
562
564
  declare const isBlockedFrameUrl: (raw: string) => boolean;
563
565
  declare const assertAttachableFrameUrl: (raw: string) => void;
564
566
  declare const attachFramePermission: {
565
- readonly scope: "embed.iframe";
566
- readonly category: "embed";
567
+ readonly scope: 'embed.iframe';
568
+ readonly category: 'embed';
567
569
  readonly severity: 0;
568
- readonly title: "Load another website inside this app";
569
- readonly description: "Lets the app embed external pages directly inside its own view.";
570
+ readonly title: 'Load another website inside this app';
571
+ readonly description: 'Lets the app embed external pages directly inside its own view.';
570
572
  };
571
573
  declare const gotoPermission: {
572
- readonly scope: "embed.open";
573
- readonly category: "embed";
574
+ readonly scope: 'embed.open';
575
+ readonly category: 'embed';
576
+ readonly severity: 0;
577
+ readonly title: 'Open a website inside this app';
578
+ readonly description: 'Lets the app navigate to another site without leaving its window.';
579
+ };
580
+ declare const evaluatePermission: {
581
+ readonly scope: 'embed.evaluate';
582
+ readonly category: 'embed';
574
583
  readonly severity: 0;
575
- readonly title: "Open a website inside this app";
576
- readonly description: "Lets the app navigate to another site without leaving its window.";
584
+ readonly title: 'Run app code inside an embedded frame';
585
+ readonly description: "Lets the app execute its own code inside a page it embedded, to read back a computed result.";
577
586
  };
578
587
  type GotoOptions = {
579
588
  waitUntil?: 'documentstart' | 'load';
@@ -581,127 +590,136 @@ type GotoOptions = {
581
590
  };
582
591
  type Frame = FrameLocator & {
583
592
  goto(url: string, options?: GotoOptions): Promise<void>;
593
+ evaluate<T = unknown>(code: string, arg?: unknown): Promise<T>;
584
594
  url(): string;
585
595
  };
586
596
  type AttachFrameOptions = {
587
597
  iframe: HTMLIFrameElement;
588
598
  domains?: string[];
599
+ syncCookies?: boolean;
600
+ lockdown?: boolean;
589
601
  };
590
- declare const attachFrame: ({ iframe, domains }: AttachFrameOptions) => Promise<Frame>;
602
+ declare const attachFrame: ({ iframe, domains, syncCookies, lockdown }: AttachFrameOptions) => Promise<Frame>;
591
603
 
592
604
  declare const PERMISSIONS: readonly [{
593
- readonly scope: "read.text";
594
- readonly category: "read";
605
+ readonly scope: 'read.text';
606
+ readonly category: 'read';
595
607
  readonly severity: 1;
596
- readonly title: "Read text from the page";
597
- readonly description: "Lets the app see the text shown on this page.";
608
+ readonly title: 'Read text from the page';
609
+ readonly description: 'Lets the app see the text shown on this page.';
598
610
  }, {
599
- readonly scope: "read.info";
600
- readonly category: "read";
611
+ readonly scope: 'read.info';
612
+ readonly category: 'read';
601
613
  readonly severity: 1;
602
- readonly title: "Read info from the page";
603
- readonly description: "Lets the app read the href value from a part of the page.";
614
+ readonly title: 'Read info from the page';
615
+ readonly description: 'Lets the app read the href value from a part of the page.';
604
616
  }, {
605
- readonly scope: "read.visible";
606
- readonly category: "read";
617
+ readonly scope: 'read.visible';
618
+ readonly category: 'read';
607
619
  readonly severity: 0;
608
- readonly title: "See what’s visible on the page";
609
- readonly description: "Lets the app check which elements are currently on screen.";
620
+ readonly title: 'See what’s visible on the page';
621
+ readonly description: 'Lets the app check which elements are currently on screen.';
610
622
  }, {
611
- readonly scope: "read.check";
612
- readonly category: "read";
623
+ readonly scope: 'read.check';
624
+ readonly category: 'read';
613
625
  readonly severity: 0;
614
- readonly title: "Check if something is on the page";
615
- readonly description: "Lets the app test whether a specific element exists.";
626
+ readonly title: 'Check if something is on the page';
627
+ readonly description: 'Lets the app test whether a specific element exists.';
616
628
  }, {
617
- readonly scope: "read.count";
618
- readonly category: "read";
629
+ readonly scope: 'read.count';
630
+ readonly category: 'read';
619
631
  readonly severity: 0;
620
- readonly title: "Count items on the page";
621
- readonly description: "Lets the app count how many matching elements are present.";
632
+ readonly title: 'Count items on the page';
633
+ readonly description: 'Lets the app count how many matching elements are present.';
622
634
  }, {
623
- readonly scope: "act.click";
624
- readonly category: "act";
635
+ readonly scope: 'act.click';
636
+ readonly category: 'act';
625
637
  readonly severity: 3;
626
- readonly title: "Click on the page";
627
- readonly description: "Lets the app press buttons or links for you.";
638
+ readonly title: 'Click on the page';
639
+ readonly description: 'Lets the app press buttons or links for you.';
628
640
  }, {
629
- readonly scope: "act.type";
630
- readonly category: "act";
641
+ readonly scope: 'act.type';
642
+ readonly category: 'act';
631
643
  readonly severity: 1;
632
- readonly title: "Type into a text field";
633
- readonly description: "Lets the app fill in form fields on your behalf.";
644
+ readonly title: 'Type into a text field';
645
+ readonly description: 'Lets the app fill in form fields on your behalf.';
634
646
  }, {
635
- readonly scope: "act.hover";
636
- readonly category: "act";
647
+ readonly scope: 'act.hover';
648
+ readonly category: 'act';
637
649
  readonly severity: 1;
638
- readonly title: "Hover over the page";
639
- readonly description: "Lets the app point at things to reveal menus or tooltips.";
650
+ readonly title: 'Hover over the page';
651
+ readonly description: 'Lets the app point at things to reveal menus or tooltips.';
640
652
  }, {
641
- readonly scope: "media.video";
642
- readonly category: "media";
653
+ readonly scope: 'media.video';
654
+ readonly category: 'media';
643
655
  readonly severity: 0;
644
- readonly title: "Control video playback";
645
- readonly description: "Lets the app play, pause, seek, and read the video on the page.";
656
+ readonly title: 'Control video playback';
657
+ readonly description: 'Lets the app play, pause, seek, and read the video on the page.';
646
658
  }, {
647
- readonly scope: "media.appear";
648
- readonly category: "media";
659
+ readonly scope: 'media.appear';
660
+ readonly category: 'media';
649
661
  readonly severity: 0;
650
- readonly title: "Change page appearance";
651
- readonly description: "Lets the app restyle parts of the page (safely filtered).";
662
+ readonly title: 'Change page appearance';
663
+ readonly description: 'Lets the app restyle parts of the page (safely filtered).';
652
664
  }, {
653
- readonly scope: "media.appearU";
654
- readonly category: "media";
665
+ readonly scope: 'media.appearU';
666
+ readonly category: 'media';
655
667
  readonly severity: 2;
656
668
  readonly unsafe: true;
657
- readonly title: "Change page appearance (unsafe)";
658
- readonly description: "Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network.";
669
+ readonly title: 'Change page appearance (unsafe)';
670
+ readonly description: 'Lets the app restyle the page WITHOUT safety filtering. Could be used to leak data over the network.';
659
671
  }, {
660
- readonly scope: "embed.iframe";
661
- readonly category: "embed";
672
+ readonly scope: 'embed.iframe';
673
+ readonly category: 'embed';
662
674
  readonly severity: 0;
663
- readonly title: "Load another website inside this app";
664
- readonly description: "Lets the app embed external pages directly inside its own view.";
675
+ readonly title: 'Load another website inside this app';
676
+ readonly description: 'Lets the app embed external pages directly inside its own view.';
665
677
  }, {
666
- readonly scope: "embed.open";
667
- readonly category: "embed";
678
+ readonly scope: 'embed.open';
679
+ readonly category: 'embed';
668
680
  readonly severity: 0;
669
- readonly title: "Open a website inside this app";
670
- readonly description: "Lets the app navigate to another site without leaving its window.";
681
+ readonly title: 'Open a website inside this app';
682
+ readonly description: 'Lets the app navigate to another site without leaving its window.';
671
683
  }, {
672
- readonly scope: "network.fetch";
673
- readonly category: "network";
684
+ readonly scope: 'embed.evaluate';
685
+ readonly category: 'embed';
674
686
  readonly severity: 0;
675
- readonly title: "Fetch data from other sites";
676
- readonly description: "Lets the app download public data from other websites directly, past the usual cross-origin limits.";
687
+ readonly title: 'Run app code inside an embedded frame';
688
+ readonly description: "Lets the app execute its own code inside a page it embedded, to read back a computed result.";
677
689
  }, {
678
- readonly scope: "network.fetchCredentialed";
679
- readonly category: "network";
690
+ readonly scope: 'network.fetch';
691
+ readonly category: 'network';
692
+ readonly severity: 0;
693
+ readonly title: 'Fetch data from other sites';
694
+ readonly description: 'Lets the app download public data from other websites directly, past the usual cross-origin limits.';
695
+ }, {
696
+ readonly scope: 'network.fetchCredentialed';
697
+ readonly category: 'network';
680
698
  readonly severity: 3;
681
699
  readonly unsafe: true;
682
- readonly title: "Fetch from other sites, signed in as you";
683
- readonly description: "Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see.";
700
+ readonly title: 'Fetch from other sites, signed in as you';
701
+ readonly description: 'Lets the app fetch other sites using your logged-in session cookies, so it can read data only you should see.';
684
702
  }, {
685
- readonly scope: "network.fetchLocal";
686
- readonly category: "network";
703
+ readonly scope: 'network.fetchLocal';
704
+ readonly category: 'network';
687
705
  readonly severity: 3;
688
706
  readonly unsafe: true;
689
- readonly title: "Access devices on your local network";
690
- readonly description: "Lets the app reach devices and services on your home or work network, which websites normally cannot touch.";
707
+ readonly title: 'Access devices on your local network';
708
+ readonly description: 'Lets the app reach devices and services on your home or work network, which websites normally cannot touch.';
691
709
  }, {
692
- readonly scope: "network.readCookie";
693
- readonly category: "network";
710
+ readonly scope: 'network.readCookie';
711
+ readonly category: 'network';
694
712
  readonly severity: 3;
695
713
  readonly unsafe: true;
696
- readonly title: "Read a site’s cookie";
697
- readonly description: "Lets the app read a named cookie from another site, which can include the login token only that site should see.";
714
+ readonly title: 'Read a site’s cookie';
715
+ readonly description: 'Lets the app read a named cookie from another site, which can include the login token only that site should see.';
698
716
  }, {
699
- readonly scope: "network.modifyRequestHeaders";
700
- readonly category: "network";
717
+ readonly scope: 'network.modifyRequestHeaders';
718
+ readonly category: 'network';
701
719
  readonly severity: 2;
702
720
  readonly unsafe: true;
703
- readonly title: "Rewrite request headers to other sites";
704
- readonly description: "Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites.";
721
+ readonly title: 'Rewrite request headers to other sites';
722
+ readonly description: 'Lets the app set or remove headers (like Origin and Referer) on this page’s own requests to the listed sites.';
705
723
  }];
706
724
  type PermissionScope = (typeof PERMISSIONS)[number]['scope'];
707
725
 
@@ -719,7 +737,7 @@ declare const permissions: {
719
737
  request: (requests: PermissionRequest[]) => Promise<PermissionGrant[]>;
720
738
  };
721
739
 
722
- declare const type: "videoElement";
740
+ declare const type: 'videoElement';
723
741
  type TimeRangesTuple = [number, number][];
724
742
  type VideoElementState = {
725
743
  currentTime: number;
@@ -782,7 +800,7 @@ type BoxedVideoElement = BoxBase<typeof type> & {
782
800
  declare const createVideoElementHandle: (element: HTMLVideoElement) => RemoteVideoElement;
783
801
  declare const isType: (value: unknown) => value is RemoteVideoElement;
784
802
  declare const box: <T extends RemoteVideoElement, T2 extends RevivableContext>(value: T, context: T2) => BoxedVideoElement;
785
- declare const revive: <T extends BoxedVideoElement, T2 extends RevivableContext>(value: T, context: T2) => T[typeof UnderlyingType];
803
+ declare const revive: <T extends BoxedVideoElement, T2 extends RevivableContext>(value: T, context: T2) => T[UnderlyingType];
786
804
 
787
805
  type videoElement_BoxedVideoElement = BoxedVideoElement;
788
806
  type videoElement_RemoteVideoElement = RemoteVideoElement;
@@ -797,57 +815,30 @@ declare namespace videoElement {
797
815
  export type { videoElement_BoxedVideoElement as BoxedVideoElement, videoElement_RemoteVideoElement as RemoteVideoElement, videoElement_VideoElementState as VideoElementState };
798
816
  }
799
817
 
800
- declare const handleRevivableModules: (defaults: readonly [typeof osra_build_revivables_transfer, typeof osra_build_revivables_identity, typeof osra_build_revivables_array_buffer, typeof osra_build_revivables_date, typeof osra_build_revivables_headers, typeof osra_build_revivables_error, typeof osra_build_revivables_typed_array, typeof osra_build_revivables_blob, typeof osra_build_revivables_promise, typeof osra_build_revivables_function, typeof osra_build_revivables_message_port, typeof osra_build_revivables_readable_stream, typeof osra_build_revivables_writable_stream, typeof osra_build_revivables_abort_signal, typeof osra_build_revivables_response, typeof osra_build_revivables_request, typeof osra_build_revivables_map, typeof osra_build_revivables_set, typeof osra_build_revivables_bigint, typeof osra_build_revivables_symbol, typeof osra_build_revivables_event, typeof osra_build_revivables_async_iterator, {
801
- readonly type: "nonFiniteNumber";
802
- readonly isType: (value: unknown) => value is number;
803
- readonly box: (value: number, context: osra.RevivableContext<any>) => number | osra_build_revivables_json_primitives.BoxedNonFiniteNumber;
804
- readonly revive: (value: osra_build_revivables_json_primitives.BoxedNonFiniteNumber, _context: osra.RevivableContext<any>) => number;
805
- }, {
806
- readonly type: "undefined";
807
- readonly isType: (value: unknown) => value is undefined;
808
- readonly box: (value: undefined, context: osra.RevivableContext<any>) => osra_build_revivables_json_primitives.BoxedUndefined | undefined;
809
- readonly revive: (_value: osra_build_revivables_json_primitives.BoxedUndefined, _context: osra.RevivableContext<any>) => undefined;
810
- }, {
811
- readonly type: "clonable";
812
- readonly capableOnly: true;
813
- readonly isType: (value: unknown) => value is osra_build_revivables_fallbacks.Clonable;
814
- readonly box: (value: osra_build_revivables_fallbacks.Clonable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Clonable;
815
- readonly revive: (value: osra_build_revivables_fallbacks.BoxedClonable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Clonable;
816
- }, {
817
- readonly type: "transferable";
818
- readonly capableOnly: true;
819
- readonly isType: (value: unknown) => value is osra_build_revivables_fallbacks.Transferable;
820
- readonly box: (value: osra_build_revivables_fallbacks.Transferable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Transferable;
821
- readonly revive: (value: osra_build_revivables_fallbacks.BoxedTransferable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Transferable;
822
- }, typeof osra_build_revivables_event_target, {
823
- readonly type: "unclonable";
824
- readonly isType: (value: unknown) => value is never;
825
- readonly box: (_value: never, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.BoxedUnclonable;
826
- readonly revive: (_value: osra_build_revivables_fallbacks.BoxedUnclonable, _context: osra.RevivableContext<any>) => Record<string, never>;
827
- }]) => readonly [typeof videoElement, typeof osra_build_revivables_transfer, typeof osra_build_revivables_identity, typeof osra_build_revivables_array_buffer, typeof osra_build_revivables_date, typeof osra_build_revivables_headers, typeof osra_build_revivables_error, typeof osra_build_revivables_typed_array, typeof osra_build_revivables_blob, typeof osra_build_revivables_promise, typeof osra_build_revivables_function, typeof osra_build_revivables_message_port, typeof osra_build_revivables_readable_stream, typeof osra_build_revivables_writable_stream, typeof osra_build_revivables_abort_signal, typeof osra_build_revivables_response, typeof osra_build_revivables_request, typeof osra_build_revivables_map, typeof osra_build_revivables_set, typeof osra_build_revivables_bigint, typeof osra_build_revivables_symbol, typeof osra_build_revivables_event, typeof osra_build_revivables_async_iterator, {
828
- readonly type: "nonFiniteNumber";
818
+ declare const handleRevivableModules: (defaults: DefaultRevivableModules) => readonly [typeof videoElement, typeof osra_build_revivables_transfer, typeof osra_build_revivables_identity, typeof osra_build_revivables_array_buffer, typeof osra_build_revivables_date, typeof osra_build_revivables_headers, typeof osra_build_revivables_error, typeof osra_build_revivables_typed_array, typeof osra_build_revivables_blob, typeof osra_build_revivables_promise, typeof osra_build_revivables_function, typeof osra_build_revivables_message_port, typeof osra_build_revivables_readable_stream, typeof osra_build_revivables_writable_stream, typeof osra_build_revivables_abort_signal, typeof osra_build_revivables_response, typeof osra_build_revivables_request, typeof osra_build_revivables_map, typeof osra_build_revivables_set, typeof osra_build_revivables_bigint, typeof osra_build_revivables_symbol, typeof osra_build_revivables_event, typeof osra_build_revivables_async_iterator, {
819
+ readonly type: 'nonFiniteNumber';
829
820
  readonly isType: (value: unknown) => value is number;
830
- readonly box: (value: number, context: osra.RevivableContext<any>) => number | osra_build_revivables_json_primitives.BoxedNonFiniteNumber;
821
+ readonly box: (value: number, context: osra.RevivableContext<any>) => osra_build_revivables_json_primitives.BoxedNonFiniteNumber | number;
831
822
  readonly revive: (value: osra_build_revivables_json_primitives.BoxedNonFiniteNumber, _context: osra.RevivableContext<any>) => number;
832
823
  }, {
833
- readonly type: "undefined";
824
+ readonly type: 'undefined';
834
825
  readonly isType: (value: unknown) => value is undefined;
835
826
  readonly box: (value: undefined, context: osra.RevivableContext<any>) => osra_build_revivables_json_primitives.BoxedUndefined | undefined;
836
827
  readonly revive: (_value: osra_build_revivables_json_primitives.BoxedUndefined, _context: osra.RevivableContext<any>) => undefined;
837
828
  }, {
838
- readonly type: "clonable";
829
+ readonly type: 'clonable';
839
830
  readonly capableOnly: true;
840
831
  readonly isType: (value: unknown) => value is osra_build_revivables_fallbacks.Clonable;
841
832
  readonly box: (value: osra_build_revivables_fallbacks.Clonable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Clonable;
842
833
  readonly revive: (value: osra_build_revivables_fallbacks.BoxedClonable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Clonable;
843
834
  }, {
844
- readonly type: "transferable";
835
+ readonly type: 'transferable';
845
836
  readonly capableOnly: true;
846
837
  readonly isType: (value: unknown) => value is osra_build_revivables_fallbacks.Transferable;
847
838
  readonly box: (value: osra_build_revivables_fallbacks.Transferable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Transferable;
848
839
  readonly revive: (value: osra_build_revivables_fallbacks.BoxedTransferable, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.Transferable;
849
840
  }, typeof osra_build_revivables_event_target, {
850
- readonly type: "unclonable";
841
+ readonly type: 'unclonable';
851
842
  readonly isType: (value: unknown) => value is never;
852
843
  readonly box: (_value: never, _context: osra.RevivableContext<any>) => osra_build_revivables_fallbacks.BoxedUnclonable;
853
844
  readonly revive: (_value: osra_build_revivables_fallbacks.BoxedUnclonable, _context: osra.RevivableContext<any>) => Record<string, never>;
@@ -1097,6 +1088,21 @@ declare const processTcpSocket: ({ connectedPacket, dataReadableStream, dataWrit
1097
1088
  }>;
1098
1089
  type TcpSocketResult = Awaited<ReturnType<typeof processTcpSocket>>;
1099
1090
 
1091
+ type StorageEntry = {
1092
+ path: string;
1093
+ size: number;
1094
+ contentType: string | null;
1095
+ updatedAt: string;
1096
+ };
1097
+ type StorageQuota$1 = {
1098
+ usedBytes: number;
1099
+ limitBytes: number;
1100
+ remaining: number;
1101
+ objects: number;
1102
+ maxObjects: number;
1103
+ };
1104
+ type WriteData$3 = Blob | ArrayBuffer | Uint8Array | string;
1105
+
1100
1106
  type Account = {
1101
1107
  name: string;
1102
1108
  image: string | null;
@@ -1130,6 +1136,14 @@ declare const resolvers: {
1130
1136
  family: 0 | 4 | 6;
1131
1137
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
1132
1138
  };
1139
+ readonly fs: {
1140
+ readonly available: () => Promise<boolean>;
1141
+ readonly list: () => Promise<StorageEntry[]>;
1142
+ readonly quota: () => Promise<StorageQuota$1>;
1143
+ readonly readFile: (path: string) => Promise<Blob>;
1144
+ readonly writeFile: (path: string, data: WriteData$3, contentType: string | null) => Promise<void>;
1145
+ readonly remove: (path: string) => Promise<void>;
1146
+ };
1133
1147
  readonly webvpn: {
1134
1148
  readonly tcpSocket: ({ remoteAddress: _remoteAddress, remotePort }: {
1135
1149
  remoteAddress: string;
@@ -1317,7 +1331,7 @@ type QuotaStatus = {
1317
1331
  /** current effective egress rate cap, bits per second (for display) */
1318
1332
  bitsPerSecond: number;
1319
1333
  };
1320
- declare const quota: () => Promise<QuotaStatus>;
1334
+ declare const quota$1: () => Promise<QuotaStatus>;
1321
1335
 
1322
1336
  declare const lookup: <T extends boolean = false>(hostname: string, options?: {
1323
1337
  all?: T;
@@ -1331,6 +1345,36 @@ declare namespace dns$1 {
1331
1345
  export type { dns$1_AddressLookupResult as AddressLookupResult };
1332
1346
  }
1333
1347
 
1348
+ type FileEntry$1 = {
1349
+ path: string;
1350
+ size: number;
1351
+ contentType: string | null;
1352
+ updatedAt: string;
1353
+ };
1354
+ type StorageQuota = {
1355
+ usedBytes: number;
1356
+ limitBytes: number;
1357
+ remaining: number;
1358
+ objects: number;
1359
+ maxObjects: number;
1360
+ };
1361
+ type WriteData$2 = Blob | ArrayBuffer | Uint8Array | string;
1362
+ declare const available$4: () => Promise<boolean>;
1363
+ declare const list$2: () => Promise<FileEntry$1[]>;
1364
+ declare const quota: () => Promise<StorageQuota>;
1365
+ declare const readFile$3: (path: string) => Promise<Blob>;
1366
+ declare const writeFile$3: (path: string, data: WriteData$2, opts?: {
1367
+ contentType?: string;
1368
+ }) => Promise<void>;
1369
+ declare const remove$2: (path: string) => Promise<void>;
1370
+
1371
+ type storage_StorageQuota = StorageQuota;
1372
+ declare const storage_quota: typeof quota;
1373
+ declare namespace storage {
1374
+ export { available$4 as available, list$2 as list, storage_quota as quota, readFile$3 as readFile, remove$2 as remove, writeFile$3 as writeFile };
1375
+ export type { FileEntry$1 as FileEntry, storage_StorageQuota as StorageQuota, WriteData$2 as WriteData };
1376
+ }
1377
+
1334
1378
  declare const isIPv4: (input: string) => boolean;
1335
1379
  declare const isIPv6: (input: string) => boolean;
1336
1380
  declare const isIP: (input: string) => 0 | 4 | 6;
@@ -1785,13 +1829,12 @@ declare namespace http {
1785
1829
  export type { http_ClientRequestArgs as ClientRequestArgs, http_ParsedHead as ParsedHead, http_RequestListener as RequestListener, http_Server as Server, http_ServerResponseOptions as ServerResponseOptions };
1786
1830
  }
1787
1831
 
1788
- declare const available$1: () => boolean;
1832
+ declare const available$3: () => boolean;
1789
1833
 
1790
1834
  type cloud_QuotaStatus = QuotaStatus;
1791
1835
  declare const cloud_http: typeof http;
1792
- declare const cloud_quota: typeof quota;
1793
1836
  declare namespace cloud {
1794
- export { available$1 as available, dgram$1 as dgram, dns$1 as dns, cloudFetch as fetch, cloud_http as http, net$1 as net, cloud_quota as quota };
1837
+ export { available$3 as available, dgram$1 as dgram, dns$1 as dns, cloudFetch as fetch, storage as fs, cloud_http as http, net$1 as net, quota$1 as quota };
1795
1838
  export type { cloud_QuotaStatus as QuotaStatus };
1796
1839
  }
1797
1840
 
@@ -1825,6 +1868,7 @@ declare const extension_attachFramePermission: typeof attachFramePermission;
1825
1868
  declare const extension_box: typeof box;
1826
1869
  declare const extension_cookies: typeof cookies;
1827
1870
  declare const extension_createVideoElementHandle: typeof createVideoElementHandle;
1871
+ declare const extension_evaluatePermission: typeof evaluatePermission;
1828
1872
  declare const extension_fetchCredentialedPermission: typeof fetchCredentialedPermission;
1829
1873
  declare const extension_fetchLocalPermission: typeof fetchLocalPermission;
1830
1874
  declare const extension_fetchPermission: typeof fetchPermission;
@@ -1846,11 +1890,11 @@ declare const extension_setRequestHeaderRule: typeof setRequestHeaderRule;
1846
1890
  declare const extension_type: typeof type;
1847
1891
  declare const extension_waitForExtensionExposure: typeof waitForExtensionExposure;
1848
1892
  declare namespace extension {
1849
- export { extension_ATTACH_FRAME_EVENT_KEY as ATTACH_FRAME_EVENT_KEY, extension_assertAttachableFrameUrl as assertAttachableFrameUrl, extension_assertFetchableUrl as assertFetchableUrl, extension_attachFrame as attachFrame, extension_attachFramePermission as attachFramePermission, isExtensionAvailable as available, extension_box as box, extension_cookies as cookies, extension_createVideoElementHandle as createVideoElementHandle, extension$1 as events, extension$1 as extension, fetch$2 as fetch, extension_fetchCredentialedPermission as fetchCredentialedPermission, extension_fetchLocalPermission as fetchLocalPermission, extension_fetchPermission as fetchPermission, extension_gotoPermission as gotoPermission, extension_handleRevivableModules as handleRevivableModules, extension_isBlockedFetchUrl as isBlockedFetchUrl, extension_isBlockedFrameUrl as isBlockedFrameUrl, extension_isExtensionExposed as isExtensionExposed, extension_isLocalNetworkUrl as isLocalNetworkUrl, extension_isType as isType, extension_modifyRequestHeadersPermission as modifyRequestHeadersPermission, extension_permissions as permissions, extension_promptInstall as promptInstall, extension_readCookiePermission as readCookiePermission, extension_removeRequestHeaderRule as removeRequestHeaderRule, extension_revive as revive, extension_setMissingExtensionHandler as setMissingExtensionHandler, extension_setRequestHeaderRule as setRequestHeaderRule, extension_type as type, extension_waitForExtensionExposure as waitForExtensionExposure };
1893
+ export { extension_ATTACH_FRAME_EVENT_KEY as ATTACH_FRAME_EVENT_KEY, extension_assertAttachableFrameUrl as assertAttachableFrameUrl, extension_assertFetchableUrl as assertFetchableUrl, extension_attachFrame as attachFrame, extension_attachFramePermission as attachFramePermission, isExtensionAvailable as available, extension_box as box, extension_cookies as cookies, extension_createVideoElementHandle as createVideoElementHandle, extension_evaluatePermission as evaluatePermission, extension$1 as events, extension$1 as extension, fetch$2 as fetch, extension_fetchCredentialedPermission as fetchCredentialedPermission, extension_fetchLocalPermission as fetchLocalPermission, extension_fetchPermission as fetchPermission, extension_gotoPermission as gotoPermission, extension_handleRevivableModules as handleRevivableModules, extension_isBlockedFetchUrl as isBlockedFetchUrl, extension_isBlockedFrameUrl as isBlockedFrameUrl, extension_isExtensionExposed as isExtensionExposed, extension_isLocalNetworkUrl as isLocalNetworkUrl, extension_isType as isType, extension_modifyRequestHeadersPermission as modifyRequestHeadersPermission, extension_permissions as permissions, extension_promptInstall as promptInstall, extension_readCookiePermission as readCookiePermission, extension_removeRequestHeaderRule as removeRequestHeaderRule, extension_revive as revive, extension_setMissingExtensionHandler as setMissingExtensionHandler, extension_setRequestHeaderRule as setRequestHeaderRule, extension_type as type, extension_waitForExtensionExposure as waitForExtensionExposure };
1850
1894
  export type { extension_AttachFrameOptions as AttachFrameOptions, extension_BoxedVideoElement as BoxedVideoElement, extension_CookieDetails as CookieDetails, extension_FetchInit as FetchInit, extension_Frame as Frame, extension_GotoOptions as GotoOptions, extension_HeaderOperation as HeaderOperation, extension_PermissionGrant as PermissionGrant, extension_PermissionRequest as PermissionRequest, extension_ProxyFetchRequest as ProxyFetchRequest, extension_RemoteVideoElement as RemoteVideoElement, extension_RequestHeaderRule as RequestHeaderRule, extension_SiteCookie as SiteCookie, extension_VideoElementState as VideoElementState };
1851
1895
  }
1852
1896
 
1853
- declare const available: () => boolean;
1897
+ declare const available$2: () => boolean;
1854
1898
  declare const fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
1855
1899
  declare const dns: {
1856
1900
  lookup: (..._args: unknown[]) => never;
@@ -1863,49 +1907,193 @@ declare const net: {
1863
1907
  declare const dgram: {
1864
1908
  createSocket: (..._args: unknown[]) => never;
1865
1909
  };
1866
- declare const fs$1: {
1867
- isLocalDirectorySupported: () => boolean;
1868
- pickLocalDirectory: (..._args: unknown[]) => never;
1869
- queryDirectoryPermission: (..._args: unknown[]) => never;
1870
- ensureDirectoryPermission: (..._args: unknown[]) => never;
1910
+ declare const fs: {
1911
+ available: () => Promise<boolean>;
1912
+ list: (..._args: unknown[]) => never;
1913
+ readFile: (..._args: unknown[]) => never;
1914
+ writeFile: (..._args: unknown[]) => never;
1915
+ remove: (..._args: unknown[]) => never;
1871
1916
  };
1872
1917
 
1873
- declare const desktop_available: typeof available;
1874
1918
  declare const desktop_dgram: typeof dgram;
1875
1919
  declare const desktop_dns: typeof dns;
1876
1920
  declare const desktop_fetch: typeof fetch;
1921
+ declare const desktop_fs: typeof fs;
1877
1922
  declare const desktop_net: typeof net;
1878
1923
  declare namespace desktop {
1879
1924
  export {
1880
- desktop_available as available,
1925
+ available$2 as available,
1881
1926
  desktop_dgram as dgram,
1882
1927
  desktop_dns as dns,
1883
1928
  desktop_fetch as fetch,
1884
- fs$1 as fs,
1929
+ desktop_fs as fs,
1885
1930
  desktop_net as net,
1886
1931
  };
1887
1932
  }
1888
1933
 
1889
- type DirectoryPermissionMode = 'read' | 'readwrite';
1890
- type PickLocalDirectoryOptions = {
1891
- id?: string;
1892
- mode?: DirectoryPermissionMode;
1893
- startIn?: 'desktop' | 'documents' | 'downloads' | 'music' | 'pictures' | 'videos';
1894
- };
1895
- declare const isLocalDirectorySupported: () => boolean;
1896
- declare const pickLocalDirectory: (options?: PickLocalDirectoryOptions) => Promise<FileSystemDirectoryHandle | undefined>;
1897
- declare const queryDirectoryPermission: (handle: FileSystemDirectoryHandle, mode?: DirectoryPermissionMode) => Promise<PermissionState>;
1898
- declare const ensureDirectoryPermission: (handle: FileSystemDirectoryHandle, mode?: DirectoryPermissionMode) => Promise<boolean>;
1899
-
1900
- type fs_DirectoryPermissionMode = DirectoryPermissionMode;
1901
- type fs_PickLocalDirectoryOptions = PickLocalDirectoryOptions;
1902
- declare const fs_ensureDirectoryPermission: typeof ensureDirectoryPermission;
1903
- declare const fs_isLocalDirectorySupported: typeof isLocalDirectorySupported;
1904
- declare const fs_pickLocalDirectory: typeof pickLocalDirectory;
1905
- declare const fs_queryDirectoryPermission: typeof queryDirectoryPermission;
1906
- declare namespace fs {
1907
- export { fs_ensureDirectoryPermission as ensureDirectoryPermission, fs_isLocalDirectorySupported as isLocalDirectorySupported, fs_pickLocalDirectory as pickLocalDirectory, fs_queryDirectoryPermission as queryDirectoryPermission };
1908
- export type { fs_DirectoryPermissionMode as DirectoryPermissionMode, fs_PickLocalDirectoryOptions as PickLocalDirectoryOptions };
1934
+ type FileEntry = {
1935
+ path: string;
1936
+ size: number;
1937
+ contentType: string | null;
1938
+ updatedAt: string | null;
1939
+ };
1940
+ type WriteData$1 = Blob | ArrayBuffer | Uint8Array | string;
1941
+ type FileSystem = {
1942
+ available: () => Promise<boolean>;
1943
+ list: () => Promise<FileEntry[]>;
1944
+ readFile: (path: string) => Promise<Blob>;
1945
+ writeFile: (path: string, data: WriteData$1, opts?: {
1946
+ contentType?: string;
1947
+ }) => Promise<void>;
1948
+ remove: (path: string) => Promise<void>;
1949
+ };
1950
+
1951
+ declare const available$1: () => Promise<boolean>;
1952
+ declare const list$1: () => Promise<FileEntry[]>;
1953
+ declare const readFile$2: (path: string) => Promise<Blob>;
1954
+ declare const writeFile$2: (path: string, data: WriteData$1, opts?: {
1955
+ contentType?: string;
1956
+ }) => Promise<void>;
1957
+ declare const remove$1: (path: string) => Promise<void>;
1958
+ declare const pull: (path: string) => Promise<Blob>;
1959
+
1960
+ type index$1_FileEntry = FileEntry;
1961
+ type index$1_FileSystem = FileSystem;
1962
+ declare const index$1_pull: typeof pull;
1963
+ declare namespace index$1 {
1964
+ export { available$1 as available, list$1 as list, index$1_pull as pull, readFile$2 as readFile, remove$1 as remove, writeFile$2 as writeFile };
1965
+ export type { index$1_FileEntry as FileEntry, index$1_FileSystem as FileSystem, WriteData$1 as WriteData };
1966
+ }
1967
+
1968
+ declare const available: () => Promise<boolean>;
1969
+ declare const writeFile$1: (path: string, data: WriteData$1, opts?: {
1970
+ contentType?: string;
1971
+ }) => Promise<void>;
1972
+ declare const readFile$1: (path: string) => Promise<Blob>;
1973
+ declare const remove: (path: string) => Promise<void>;
1974
+ declare const list: () => Promise<FileEntry[]>;
1975
+
1976
+ declare const opfs_available: typeof available;
1977
+ declare const opfs_list: typeof list;
1978
+ declare const opfs_remove: typeof remove;
1979
+ declare namespace opfs {
1980
+ export {
1981
+ opfs_available as available,
1982
+ opfs_list as list,
1983
+ readFile$1 as readFile,
1984
+ opfs_remove as remove,
1985
+ writeFile$1 as writeFile,
1986
+ };
1987
+ }
1988
+
1989
+ type Stats = {
1990
+ size: number;
1991
+ mtimeMs: number;
1992
+ mtime: Date;
1993
+ atimeMs: number;
1994
+ ctimeMs: number;
1995
+ mode: number;
1996
+ isFile: () => boolean;
1997
+ isDirectory: () => boolean;
1998
+ isSymbolicLink: () => boolean;
1999
+ };
2000
+ declare const mount: () => Promise<void>;
2001
+ declare const remount: () => Promise<void>;
2002
+ declare const flush: () => Promise<void>;
2003
+
2004
+ type ReadOptions = BufferEncoding | {
2005
+ encoding?: BufferEncoding | null;
2006
+ flag?: string;
2007
+ } | null | undefined;
2008
+ type WriteOptions = BufferEncoding | {
2009
+ encoding?: BufferEncoding | null;
2010
+ mode?: number;
2011
+ flag?: string;
2012
+ } | null | undefined;
2013
+ type WriteData = string | Uint8Array | ArrayBuffer | DataView;
2014
+ type MakeOptions = {
2015
+ recursive?: boolean;
2016
+ } | number | null | undefined;
2017
+ type Callback<R> = (error: NodeJS.ErrnoException | null, result?: R) => void;
2018
+
2019
+ declare const readFileSync: (path: PathLike, options?: ReadOptions) => Buffer | string;
2020
+ declare const writeFileSync: (path: PathLike, data: WriteData, options?: WriteOptions) => void;
2021
+ declare const appendFileSync: (path: PathLike, data: WriteData, options?: WriteOptions) => void;
2022
+ declare const existsSync: (path: PathLike) => boolean;
2023
+ declare const statSync: (path: PathLike) => Stats;
2024
+ declare const lstatSync: (path: PathLike) => Stats;
2025
+ declare const readdirSync: (path: PathLike) => string[];
2026
+ declare const mkdirSync: (path: PathLike, options?: MakeOptions) => void;
2027
+ declare const rmSync: (path: PathLike, options?: {
2028
+ recursive?: boolean;
2029
+ force?: boolean;
2030
+ }) => void;
2031
+ declare const rmdirSync: (path: PathLike, options?: {
2032
+ recursive?: boolean;
2033
+ }) => void;
2034
+ declare const unlinkSync: (path: PathLike) => void;
2035
+ declare const renameSync: (from: PathLike, to: PathLike) => void;
2036
+ declare const readFile: (path: PathLike, a: ReadOptions | Callback<Buffer | string>, b?: Callback<Buffer | string>) => void;
2037
+ declare const writeFile: (path: PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
2038
+ declare const appendFile: (path: PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
2039
+ declare const stat: (path: PathLike, callback: Callback<Stats>) => void;
2040
+ declare const readdir: (path: PathLike, a: unknown, b?: Callback<string[]>) => void;
2041
+ declare const mkdir: (path: PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
2042
+ declare const rm: (path: PathLike, a: {
2043
+ recursive?: boolean;
2044
+ } | Callback<void>, b?: Callback<void>) => void;
2045
+ declare const unlink: (path: PathLike, callback: Callback<void>) => void;
2046
+ declare const rename: (from: PathLike, to: PathLike, callback: Callback<void>) => void;
2047
+ declare const exists: (path: PathLike, callback: (exists: boolean) => void) => void;
2048
+ declare const promises: {
2049
+ readFile: (path: PathLike, options?: ReadOptions) => Promise<Buffer | string>;
2050
+ writeFile: (path: PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
2051
+ appendFile: (path: PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
2052
+ stat: (path: PathLike) => Promise<Stats>;
2053
+ lstat: (path: PathLike) => Promise<Stats>;
2054
+ readdir: (path: PathLike) => Promise<string[]>;
2055
+ mkdir: (path: PathLike, options?: MakeOptions) => Promise<void>;
2056
+ rm: (path: PathLike, options?: {
2057
+ recursive?: boolean;
2058
+ }) => Promise<void>;
2059
+ rmdir: (path: PathLike, options?: {
2060
+ recursive?: boolean;
2061
+ }) => Promise<void>;
2062
+ unlink: (path: PathLike) => Promise<void>;
2063
+ rename: (from: PathLike, to: PathLike) => Promise<void>;
2064
+ access: (path: PathLike) => Promise<void>;
2065
+ };
2066
+
2067
+ type index_Stats = Stats;
2068
+ declare const index_appendFile: typeof appendFile;
2069
+ declare const index_appendFileSync: typeof appendFileSync;
2070
+ declare const index_exists: typeof exists;
2071
+ declare const index_existsSync: typeof existsSync;
2072
+ declare const index_flush: typeof flush;
2073
+ declare const index_lstatSync: typeof lstatSync;
2074
+ declare const index_mkdir: typeof mkdir;
2075
+ declare const index_mkdirSync: typeof mkdirSync;
2076
+ declare const index_mount: typeof mount;
2077
+ declare const index_promises: typeof promises;
2078
+ declare const index_readFile: typeof readFile;
2079
+ declare const index_readFileSync: typeof readFileSync;
2080
+ declare const index_readdir: typeof readdir;
2081
+ declare const index_readdirSync: typeof readdirSync;
2082
+ declare const index_remount: typeof remount;
2083
+ declare const index_rename: typeof rename;
2084
+ declare const index_renameSync: typeof renameSync;
2085
+ declare const index_rm: typeof rm;
2086
+ declare const index_rmSync: typeof rmSync;
2087
+ declare const index_rmdirSync: typeof rmdirSync;
2088
+ declare const index_stat: typeof stat;
2089
+ declare const index_statSync: typeof statSync;
2090
+ declare const index_unlink: typeof unlink;
2091
+ declare const index_unlinkSync: typeof unlinkSync;
2092
+ declare const index_writeFile: typeof writeFile;
2093
+ declare const index_writeFileSync: typeof writeFileSync;
2094
+ declare namespace index {
2095
+ export { index_appendFile as appendFile, index_appendFileSync as appendFileSync, index_exists as exists, index_existsSync as existsSync, index_flush as flush, index_lstatSync as lstatSync, index_mkdir as mkdir, index_mkdirSync as mkdirSync, index_mount as mount, index_promises as promises, index_readFile as readFile, index_readFileSync as readFileSync, index_readdir as readdir, index_readdirSync as readdirSync, index_remount as remount, index_rename as rename, index_renameSync as renameSync, index_rm as rm, index_rmSync as rmSync, index_rmdirSync as rmdirSync, index_stat as stat, index_statSync as statSync, index_unlink as unlink, index_unlinkSync as unlinkSync, index_writeFile as writeFile, index_writeFileSync as writeFileSync };
2096
+ export type { index_Stats as Stats };
1909
2097
  }
1910
2098
 
1911
2099
  declare const relayWorker: (worker: Worker, options?: {
@@ -1942,6 +2130,11 @@ declare namespace account {
1942
2130
  }
1943
2131
 
1944
2132
  declare const connectButtonUrl: (origin?: string) => string;
2133
+ type ConnectButtonProps = {
2134
+ className?: string;
2135
+ style?: CSSProperties;
2136
+ };
2137
+ declare const ConnectButton: ({ className, style }?: ConnectButtonProps) => ReactElement;
1945
2138
 
1946
- export { ATTACH_FRAME_EVENT_KEY, account, assertAttachableFrameUrl, assertFetchableUrl, attachFrame, attachFramePermission, box, cloud, connect, connectButtonUrl, cookies, createVideoElementHandle, desktop, dgram$1 as dgram, dns$1 as dns, extension, fetch$1 as fetch, fetchCredentialedPermission, fetchLocalPermission, fetchPermission, fs, gotoPermission, handleRevivableModules, http, isBlockedFetchUrl, isBlockedFrameUrl, isExtensionExposed, isLocalNetworkUrl, isType, modifyRequestHeadersPermission, net$1 as net, permissions, promptInstall, readCookiePermission, relayWorker, removeRequestHeaderRule, revive, setMissingExtensionHandler, setRequestHeaderRule, type, waitForExtensionExposure };
1947
- export type { AttachFrameOptions, BoxedVideoElement, CookieDetails, FetchInit, Frame, GotoOptions, HeaderOperation, PermissionGrant, PermissionRequest, ProxyFetchRequest, RemoteVideoElement, RequestHeaderRule, SiteCookie, VideoElementState };
2139
+ export { ATTACH_FRAME_EVENT_KEY, ConnectButton, account, assertAttachableFrameUrl, assertFetchableUrl, attachFrame, attachFramePermission, box, cloud, connect, connectButtonUrl, cookies, createVideoElementHandle, desktop, dgram$1 as dgram, dns$1 as dns, evaluatePermission, extension, fetch$1 as fetch, fetchCredentialedPermission, fetchLocalPermission, fetchPermission, index$1 as fs, gotoPermission, handleRevivableModules, http, isBlockedFetchUrl, isBlockedFrameUrl, isExtensionExposed, isLocalNetworkUrl, isType, modifyRequestHeadersPermission, net$1 as net, index as nodeFs, opfs, permissions, promptInstall, readCookiePermission, relayWorker, removeRequestHeaderRule, revive, setMissingExtensionHandler, setRequestHeaderRule, type, waitForExtensionExposure };
2140
+ export type { AttachFrameOptions, BoxedVideoElement, ConnectButtonProps, CookieDetails, FetchInit, Frame, GotoOptions, HeaderOperation, PermissionGrant, PermissionRequest, ProxyFetchRequest, RemoteVideoElement, RequestHeaderRule, SiteCookie, VideoElementState };