@fkn/lib 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/{background-Dk_vaVP1.cjs → background-CbU8TkWo.cjs} +1 -1
  2. package/{background-TtzKw6g0.js → background-DvQm1JHR.js} +8 -6
  3. package/cloud/dgram.cjs +1 -1
  4. package/cloud/dgram.d.ts +7 -3
  5. package/cloud/dgram.js +2 -2
  6. package/cloud/dns.d.ts +1 -1
  7. package/cloud/fs/promises.cjs +1 -1
  8. package/cloud/fs/promises.js +1 -1
  9. package/cloud/fs.cjs +1 -1
  10. package/cloud/fs.js +1 -1
  11. package/cloud/http.d.ts +2 -2
  12. package/cloud/net.d.ts +2 -2
  13. package/{cloud-BrY9dKwV.cjs → cloud-CWg9zCWm.cjs} +1 -1
  14. package/{cloud-C-LK4DWa.js → cloud-eLyGYzbA.js} +1 -1
  15. package/cloud.cjs +1 -1
  16. package/cloud.d.ts +3 -3
  17. package/cloud.js +3 -3
  18. package/connect-button-B_63ldmg.js +7 -0
  19. package/connect-button-poDZVmq2.cjs +1 -0
  20. package/dgram-B3WC4VdJ.cjs +1 -0
  21. package/{dgram-DS5_yPc5.js → dgram-c_Xk7ckJ.js} +27 -19
  22. package/dgram.cjs +1 -1
  23. package/dgram.d.ts +2 -2
  24. package/dgram.js +1 -1
  25. package/dns.d.ts +1 -1
  26. package/{extension-Dgz0UTy0.js → extension-BLkZiaAP.js} +65 -57
  27. package/extension-DAiRg5ny.cjs +1 -0
  28. package/extension.cjs +1 -1
  29. package/extension.d.ts +14 -7
  30. package/extension.js +3 -3
  31. package/fs/promises.cjs +1 -1
  32. package/fs/promises.d.ts +2 -0
  33. package/fs/promises.js +2 -2
  34. package/{fs-CQ-eWjXw.js → fs-BQs-x3_j.js} +1 -1
  35. package/{fs-Bc6087fG.cjs → fs-DI1maxcZ.cjs} +1 -1
  36. package/fs.cjs +1 -1
  37. package/fs.d.ts +4 -0
  38. package/fs.js +2 -2
  39. package/http.d.ts +2 -2
  40. package/index.cjs +1 -1
  41. package/index.d.ts +92 -30
  42. package/index.js +22 -34
  43. package/{locator-DxAsGV_o.js → locator-9s7jNIA2.js} +1 -1
  44. package/{locator-Cf7M3QKN.cjs → locator-CHfEe3Jv.cjs} +1 -1
  45. package/net.d.ts +2 -2
  46. package/{node-fs-Bd_UUx1m.js → node-fs-CdKPXPtW.js} +39 -16
  47. package/node-fs-DQn1TGJz.cjs +1 -0
  48. package/opfs/promises.cjs +1 -1
  49. package/opfs/promises.d.ts +22 -1
  50. package/opfs/promises.js +3 -3
  51. package/opfs.cjs +1 -1
  52. package/opfs.d.ts +58 -1
  53. package/opfs.js +31 -30
  54. package/package.json +6 -1
  55. package/react.cjs +1 -0
  56. package/react.d.ts +12 -0
  57. package/react.js +18 -0
  58. package/dgram-C5rGcbej.cjs +0 -1
  59. package/extension-9Uv_0HdS.cjs +0 -1
  60. package/favicon.svg +0 -5
  61. package/node-fs-lrlD_zqB.cjs +0 -1
package/index.d.ts CHANGED
@@ -33,7 +33,6 @@ import { EventEmitter } from 'events';
33
33
  import { Socket as Socket$3, SocketOptions, BindOptions, SocketType, RemoteInfo } from 'dgram';
34
34
  import { Buffer as Buffer$1 } from 'buffer';
35
35
  import { OutgoingHttpHeaders, IncomingHttpHeaders, RequestOptions } from 'http';
36
- import { CSSProperties, ReactElement } from 'react';
37
36
 
38
37
  declare const fetchPermission: {
39
38
  readonly scope: 'network.fetch';
@@ -562,6 +561,11 @@ type LocatorChain<L extends LocatorKindModule, Self> = {
562
561
  declare const ATTACH_FRAME_EVENT_KEY = "FKN_WEB_EXTENSION_ATTACH_FRAME_EVENT_KEY";
563
562
  declare const isBlockedFrameUrl: (raw: string) => boolean;
564
563
  declare const assertAttachableFrameUrl: (raw: string) => void;
564
+ declare const assertLockdownApplicable: ({ src, domains, lockdown }: {
565
+ src: string;
566
+ domains: string[];
567
+ lockdown: boolean;
568
+ }) => void;
565
569
  declare const attachFramePermission: {
566
570
  readonly scope: 'embed.iframe';
567
571
  readonly category: 'embed';
@@ -579,9 +583,10 @@ declare const gotoPermission: {
579
583
  declare const evaluatePermission: {
580
584
  readonly scope: 'embed.evaluate';
581
585
  readonly category: 'embed';
582
- readonly severity: 0;
583
- readonly title: 'Run app code inside an embedded frame';
584
- readonly description: "Lets the app execute its own code inside a page it embedded, to read back a computed result.";
586
+ readonly severity: 3;
587
+ readonly unsafe: true;
588
+ readonly title: 'Run app code inside an embedded site';
589
+ readonly description: 'Lets the app run its own code inside a page it embedded, where it can read and act on that site with your logged-in session.';
585
590
  };
586
591
  type GotoOptions = {
587
592
  waitUntil?: 'documentstart' | 'load';
@@ -682,9 +687,10 @@ declare const PERMISSIONS: readonly [{
682
687
  }, {
683
688
  readonly scope: 'embed.evaluate';
684
689
  readonly category: 'embed';
685
- readonly severity: 0;
686
- readonly title: 'Run app code inside an embedded frame';
687
- readonly description: "Lets the app execute its own code inside a page it embedded, to read back a computed result.";
690
+ readonly severity: 3;
691
+ readonly unsafe: true;
692
+ readonly title: 'Run app code inside an embedded site';
693
+ readonly description: 'Lets the app run its own code inside a page it embedded, where it can read and act on that site with your logged-in session.';
688
694
  }, {
689
695
  readonly scope: 'network.fetch';
690
696
  readonly category: 'network';
@@ -1132,7 +1138,7 @@ declare const resolvers: {
1132
1138
  readonly dns: {
1133
1139
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
1134
1140
  all?: T;
1135
- family: 0 | 4 | 6;
1141
+ family?: 0 | 4 | 6;
1136
1142
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
1137
1143
  };
1138
1144
  readonly fs: {
@@ -1291,7 +1297,7 @@ declare const resolvers: {
1291
1297
  }>;
1292
1298
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
1293
1299
  all?: T;
1294
- family: 0 | 4 | 6;
1300
+ family?: 0 | 4 | 6;
1295
1301
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
1296
1302
  readonly setOverlayHost: (push: (state: {
1297
1303
  modal: boolean;
@@ -1334,7 +1340,7 @@ declare const quota$1: () => Promise<QuotaStatus>;
1334
1340
 
1335
1341
  declare const lookup: <T extends boolean = false>(hostname: string, options?: {
1336
1342
  all?: T;
1337
- family: 0 | 4 | 6;
1343
+ family?: 0 | 4 | 6;
1338
1344
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
1339
1345
 
1340
1346
  type dns$1_AddressLookupResult = AddressLookupResult;
@@ -1415,13 +1421,13 @@ declare const promises$2: {
1415
1421
  access: (path: node_fs.PathLike) => Promise<void>;
1416
1422
  };
1417
1423
 
1418
- type fs$1_FileEntry = FileEntry;
1419
- type fs$1_Stats = Stats;
1420
- type fs$1_StorageQuota = StorageQuota;
1421
- declare const fs$1_quota: typeof quota;
1422
- declare namespace fs$1 {
1423
- export { available$4 as available, mkdir$2 as mkdir, promises$2 as promises, fs$1_quota as quota, readFile$2 as readFile, readdir$2 as readdir, rename$2 as rename, rm$2 as rm, stat$2 as stat, unlink$2 as unlink, writeFile$2 as writeFile };
1424
- export type { fs$1_FileEntry as FileEntry, fs$1_Stats as Stats, fs$1_StorageQuota as StorageQuota };
1424
+ type fs$2_FileEntry = FileEntry;
1425
+ type fs$2_Stats = Stats;
1426
+ type fs$2_StorageQuota = StorageQuota;
1427
+ declare const fs$2_quota: typeof quota;
1428
+ declare namespace fs$2 {
1429
+ export { available$4 as available, mkdir$2 as mkdir, promises$2 as promises, fs$2_quota as quota, readFile$2 as readFile, readdir$2 as readdir, rename$2 as rename, rm$2 as rm, stat$2 as stat, unlink$2 as unlink, writeFile$2 as writeFile };
1430
+ export type { fs$2_FileEntry as FileEntry, fs$2_Stats as Stats, fs$2_StorageQuota as StorageQuota };
1425
1431
  }
1426
1432
 
1427
1433
  declare const isIPv4: (input: string) => boolean;
@@ -1887,7 +1893,7 @@ declare const available$3: () => boolean;
1887
1893
  type cloud_QuotaStatus = QuotaStatus;
1888
1894
  declare const cloud_http: typeof http;
1889
1895
  declare namespace cloud {
1890
- export { available$3 as available, dgram$1 as dgram, dns$1 as dns, cloudFetch as fetch, fs$1 as fs, cloud_http as http, net$1 as net, quota$1 as quota };
1896
+ export { available$3 as available, dgram$1 as dgram, dns$1 as dns, cloudFetch as fetch, fs$2 as fs, cloud_http as http, net$1 as net, quota$1 as quota };
1891
1897
  export type { cloud_QuotaStatus as QuotaStatus };
1892
1898
  }
1893
1899
 
@@ -1916,6 +1922,7 @@ type extension_SiteCookie = SiteCookie;
1916
1922
  type extension_VideoElementState = VideoElementState;
1917
1923
  declare const extension_assertAttachableFrameUrl: typeof assertAttachableFrameUrl;
1918
1924
  declare const extension_assertFetchableUrl: typeof assertFetchableUrl;
1925
+ declare const extension_assertLockdownApplicable: typeof assertLockdownApplicable;
1919
1926
  declare const extension_attachFrame: typeof attachFrame;
1920
1927
  declare const extension_attachFramePermission: typeof attachFramePermission;
1921
1928
  declare const extension_box: typeof box;
@@ -1943,7 +1950,7 @@ declare const extension_setRequestHeaderRule: typeof setRequestHeaderRule;
1943
1950
  declare const extension_type: typeof type;
1944
1951
  declare const extension_waitForExtensionExposure: typeof waitForExtensionExposure;
1945
1952
  declare namespace extension {
1946
- 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 };
1953
+ export { extension_ATTACH_FRAME_EVENT_KEY as ATTACH_FRAME_EVENT_KEY, extension_assertAttachableFrameUrl as assertAttachableFrameUrl, extension_assertFetchableUrl as assertFetchableUrl, extension_assertLockdownApplicable as assertLockdownApplicable, 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 };
1947
1954
  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 };
1948
1955
  }
1949
1956
 
@@ -1960,7 +1967,7 @@ declare const net: {
1960
1967
  declare const dgram: {
1961
1968
  createSocket: (..._args: unknown[]) => never;
1962
1969
  };
1963
- declare const fs: {
1970
+ declare const fs$1: {
1964
1971
  available: () => Promise<boolean>;
1965
1972
  readFile: (..._args: unknown[]) => never;
1966
1973
  readFileSync: (..._args: unknown[]) => never;
@@ -1998,7 +2005,6 @@ declare const fs: {
1998
2005
  declare const desktop_dgram: typeof dgram;
1999
2006
  declare const desktop_dns: typeof dns;
2000
2007
  declare const desktop_fetch: typeof fetch;
2001
- declare const desktop_fs: typeof fs;
2002
2008
  declare const desktop_net: typeof net;
2003
2009
  declare namespace desktop {
2004
2010
  export {
@@ -2006,7 +2012,7 @@ declare namespace desktop {
2006
2012
  desktop_dgram as dgram,
2007
2013
  desktop_dns as dns,
2008
2014
  desktop_fetch as fetch,
2009
- desktop_fs as fs,
2015
+ fs$1 as fs,
2010
2016
  desktop_net as net,
2011
2017
  };
2012
2018
  }
@@ -2037,6 +2043,7 @@ declare const readdir$1: (path: node_fs.PathLike, a: unknown, b?: Callback<strin
2037
2043
  declare const mkdir$1: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
2038
2044
  declare const rm$1: (path: node_fs.PathLike, a: {
2039
2045
  recursive?: boolean;
2046
+ force?: boolean;
2040
2047
  } | Callback<void>, b?: Callback<void>) => void;
2041
2048
  declare const unlink$1: (path: node_fs.PathLike, callback: Callback<void>) => void;
2042
2049
  declare const rename$1: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
@@ -2051,6 +2058,7 @@ declare const promises$1: {
2051
2058
  mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
2052
2059
  rm: (path: node_fs.PathLike, options?: {
2053
2060
  recursive?: boolean;
2061
+ force?: boolean;
2054
2062
  }) => Promise<void>;
2055
2063
  rmdir: (path: node_fs.PathLike, options?: {
2056
2064
  recursive?: boolean;
@@ -2091,6 +2099,7 @@ declare const _default: {
2091
2099
  mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
2092
2100
  rm: (path: node_fs.PathLike, a: {
2093
2101
  recursive?: boolean;
2102
+ force?: boolean;
2094
2103
  } | Callback<void>, b?: Callback<void>) => void;
2095
2104
  unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
2096
2105
  rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
@@ -2105,6 +2114,7 @@ declare const _default: {
2105
2114
  mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
2106
2115
  rm: (path: node_fs.PathLike, options?: {
2107
2116
  recursive?: boolean;
2117
+ force?: boolean;
2108
2118
  }) => Promise<void>;
2109
2119
  rmdir: (path: node_fs.PathLike, options?: {
2110
2120
  recursive?: boolean;
@@ -2125,6 +2135,61 @@ declare namespace index$1 {
2125
2135
  export type { index$1_Stats as Stats };
2126
2136
  }
2127
2137
 
2138
+ declare const fs: {
2139
+ available: () => Promise<boolean>;
2140
+ readFileSync: (path: node_fs.PathLike, options?: ReadOptions) => Buffer | string;
2141
+ writeFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
2142
+ appendFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
2143
+ existsSync: (path: node_fs.PathLike) => boolean;
2144
+ statSync: (path: node_fs.PathLike) => Stats;
2145
+ lstatSync: (path: node_fs.PathLike) => Stats;
2146
+ readdirSync: (path: node_fs.PathLike) => string[];
2147
+ mkdirSync: (path: node_fs.PathLike, options?: MakeOptions) => void;
2148
+ rmSync: (path: node_fs.PathLike, options?: {
2149
+ recursive?: boolean;
2150
+ force?: boolean;
2151
+ }) => void;
2152
+ rmdirSync: (path: node_fs.PathLike, options?: {
2153
+ recursive?: boolean;
2154
+ }) => void;
2155
+ unlinkSync: (path: node_fs.PathLike) => void;
2156
+ renameSync: (from: node_fs.PathLike, to: node_fs.PathLike) => void;
2157
+ readFile: (path: node_fs.PathLike, a: ReadOptions | Callback<Buffer | string>, b?: Callback<Buffer | string>) => void;
2158
+ writeFile: (path: node_fs.PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
2159
+ appendFile: (path: node_fs.PathLike, data: WriteData, a: WriteOptions | Callback<void>, b?: Callback<void>) => void;
2160
+ stat: (path: node_fs.PathLike, callback: Callback<Stats>) => void;
2161
+ readdir: (path: node_fs.PathLike, a: unknown, b?: Callback<string[]>) => void;
2162
+ mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
2163
+ rm: (path: node_fs.PathLike, a: {
2164
+ recursive?: boolean;
2165
+ force?: boolean;
2166
+ } | Callback<void>, b?: Callback<void>) => void;
2167
+ unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
2168
+ rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
2169
+ exists: (path: node_fs.PathLike, callback: (exists: boolean) => void) => void;
2170
+ promises: {
2171
+ readFile: (path: node_fs.PathLike, options?: ReadOptions) => Promise<Buffer | string>;
2172
+ writeFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
2173
+ appendFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
2174
+ stat: (path: node_fs.PathLike) => Promise<Stats>;
2175
+ lstat: (path: node_fs.PathLike) => Promise<Stats>;
2176
+ readdir: (path: node_fs.PathLike) => Promise<string[]>;
2177
+ mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
2178
+ rm: (path: node_fs.PathLike, options?: {
2179
+ recursive?: boolean;
2180
+ force?: boolean;
2181
+ }) => Promise<void>;
2182
+ rmdir: (path: node_fs.PathLike, options?: {
2183
+ recursive?: boolean;
2184
+ }) => Promise<void>;
2185
+ unlink: (path: node_fs.PathLike) => Promise<void>;
2186
+ rename: (from: node_fs.PathLike, to: node_fs.PathLike) => Promise<void>;
2187
+ access: (path: node_fs.PathLike) => Promise<void>;
2188
+ };
2189
+ mount: () => Promise<void>;
2190
+ flush: () => Promise<void>;
2191
+ remount: () => Promise<void>;
2192
+ };
2128
2193
  declare const available: () => Promise<boolean>;
2129
2194
  declare const readFileSync: (path: node_fs.PathLike, options?: ReadOptions) => Buffer | string;
2130
2195
  declare const writeFileSync: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => void;
@@ -2151,6 +2216,7 @@ declare const readdir: (path: node_fs.PathLike, a: unknown, b?: Callback<string[
2151
2216
  declare const mkdir: (path: node_fs.PathLike, a: MakeOptions | Callback<void>, b?: Callback<void>) => void;
2152
2217
  declare const rm: (path: node_fs.PathLike, a: {
2153
2218
  recursive?: boolean;
2219
+ force?: boolean;
2154
2220
  } | Callback<void>, b?: Callback<void>) => void;
2155
2221
  declare const unlink: (path: node_fs.PathLike, callback: Callback<void>) => void;
2156
2222
  declare const rename: (from: node_fs.PathLike, to: node_fs.PathLike, callback: Callback<void>) => void;
@@ -2165,6 +2231,7 @@ declare const promises: {
2165
2231
  mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
2166
2232
  rm: (path: node_fs.PathLike, options?: {
2167
2233
  recursive?: boolean;
2234
+ force?: boolean;
2168
2235
  }) => Promise<void>;
2169
2236
  rmdir: (path: node_fs.PathLike, options?: {
2170
2237
  recursive?: boolean;
@@ -2206,7 +2273,7 @@ declare const index_unlinkSync: typeof unlinkSync;
2206
2273
  declare const index_writeFile: typeof writeFile;
2207
2274
  declare const index_writeFileSync: typeof writeFileSync;
2208
2275
  declare namespace index {
2209
- export { index_appendFile as appendFile, index_appendFileSync as appendFileSync, index_available as available, 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 };
2276
+ export { index_appendFile as appendFile, index_appendFileSync as appendFileSync, index_available as available, fs as default, 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 };
2210
2277
  export type { index_Stats as Stats };
2211
2278
  }
2212
2279
 
@@ -2244,11 +2311,6 @@ declare namespace account {
2244
2311
  }
2245
2312
 
2246
2313
  declare const connectButtonUrl: (origin?: string) => string;
2247
- type ConnectButtonProps = {
2248
- className?: string;
2249
- style?: CSSProperties;
2250
- };
2251
- declare const ConnectButton: ({ className, style }?: ConnectButtonProps) => ReactElement;
2252
2314
 
2253
- 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 opfs, permissions, promptInstall, readCookiePermission, relayWorker, removeRequestHeaderRule, revive, setMissingExtensionHandler, setRequestHeaderRule, type, waitForExtensionExposure };
2254
- export type { AttachFrameOptions, BoxedVideoElement, ConnectButtonProps, CookieDetails, FetchInit, Frame, GotoOptions, HeaderOperation, PermissionGrant, PermissionRequest, ProxyFetchRequest, RemoteVideoElement, RequestHeaderRule, SiteCookie, VideoElementState };
2315
+ export { ATTACH_FRAME_EVENT_KEY, account, assertAttachableFrameUrl, assertFetchableUrl, assertLockdownApplicable, 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 opfs, permissions, promptInstall, readCookiePermission, relayWorker, removeRequestHeaderRule, revive, setMissingExtensionHandler, setRequestHeaderRule, type, waitForExtensionExposure };
2316
+ export type { AttachFrameOptions, BoxedVideoElement, CookieDetails, FetchInit, Frame, GotoOptions, HeaderOperation, PermissionGrant, PermissionRequest, ProxyFetchRequest, RemoteVideoElement, RequestHeaderRule, SiteCookie, VideoElementState };
package/index.js CHANGED
@@ -1,46 +1,34 @@
1
- import { d as e, f as t, l as n, m as r, p as i, u as a } from "./locator-DxAsGV_o.js";
2
- import { C as o, D as s, E as c, O as l, S as u, _ as d, a as f, b as p, c as m, d as h, f as g, g as _, h as v, i as y, l as b, m as x, n as S, o as C, p as w, s as T, t as E, u as D, v as O, w as k, x as A } from "./extension-Dgz0UTy0.js";
3
- import { r as j, t as M } from "./api-ByfayMm1.js";
1
+ import { d as e, f as t, l as n, m as r, p as i, u as a } from "./locator-9s7jNIA2.js";
2
+ import { C as o, D as s, O as c, S as l, T as u, _ as d, a as f, c as p, d as m, f as h, g, h as _, i as v, k as y, l as b, m as x, n as S, o as C, p as w, s as T, t as E, u as D, v as O, w as k, x as A, y as j } from "./extension-BLkZiaAP.js";
3
+ import { r as M, t as N } from "./api-ByfayMm1.js";
4
4
  import "./proxy-wiZN4eTR.js";
5
- import { n as N } from "./cloud-C-LK4DWa.js";
6
- import { t as P } from "./dns.js";
7
- import "./node-fs-Bd_UUx1m.js";
5
+ import { n as P } from "./cloud-eLyGYzbA.js";
6
+ import { t as F } from "./dns.js";
7
+ import "./node-fs-CdKPXPtW.js";
8
8
  import "./storage-BcJfnkm3.js";
9
9
  import "./utils-CNydj3OT.js";
10
- import { s as F } from "./net-Bl6_W3bd.js";
11
- import { i as I } from "./dgram-DS5_yPc5.js";
12
- import { t as L } from "./http.js";
13
- import { t as R } from "./desktop.js";
14
- import { c as z } from "./fs-CQ-eWjXw.js";
15
- import { t as B } from "./opfs.js";
16
- import { t as V } from "./account.js";
17
- import { relay as H } from "osra";
18
- import { createElement as U } from "react";
10
+ import { s as I } from "./net-Bl6_W3bd.js";
11
+ import { i as L } from "./dgram-c_Xk7ckJ.js";
12
+ import { t as R } from "./http.js";
13
+ import { t as z } from "./desktop.js";
14
+ import { c as B } from "./fs-BQs-x3_j.js";
15
+ import { t as V } from "./opfs.js";
16
+ import { t as H } from "./account.js";
17
+ import { t as U } from "./connect-button-B_63ldmg.js";
18
+ import { relay as W } from "osra";
19
19
  //#region src/lib/relay.ts
20
- var W = "https://fkn.app", G = (e, t) => {
20
+ var G = "https://fkn.app", K = (e, t) => {
21
21
  if (typeof window > "u") throw Error("FKN @fkn/lib: relayWorker must be called from the main thread");
22
- if (!j?.contentWindow) throw Error("FKN @fkn/lib: relayWorker called before the FKN iframe was injected");
23
- H({
22
+ if (!M?.contentWindow) throw Error("FKN @fkn/lib: relayWorker called before the FKN iframe was injected");
23
+ W({
24
24
  receive: window,
25
- emit: j.contentWindow
25
+ emit: M.contentWindow
26
26
  }, e, {
27
27
  key: "fkn-api",
28
- originA: t?.originA ?? W,
28
+ originA: t?.originA ?? G,
29
29
  originB: t?.originB ?? "*",
30
30
  unregisterSignal: t?.unregisterSignal
31
31
  });
32
- }, K = async () => typeof window > "u" ? !1 : (await M).connect.prompt(location.origin).catch(() => !1), q = "https://fkn.app", J = (e = location.origin) => `${q}/connect-button?origin=${encodeURIComponent(e)}`, Y = ({ className: e, style: t } = {}) => U("iframe", {
33
- src: J(),
34
- title: "Connect your FKN account",
35
- className: e,
36
- style: {
37
- border: "none",
38
- width: 150,
39
- height: 40,
40
- background: "transparent",
41
- colorScheme: "normal",
42
- ...t
43
- }
44
- });
32
+ }, q = async () => typeof window > "u" ? !1 : (await N).connect.prompt(location.origin).catch(() => !1);
45
33
  //#endregion
46
- export { C as ATTACH_FRAME_EVENT_KEY, Y as ConnectButton, V as account, T as assertAttachableFrameUrl, O as assertFetchableUrl, m as attachFrame, b as attachFramePermission, a as box, N as cloud, K as connect, J as connectButtonUrl, _ as cookies, e as createVideoElementHandle, R as desktop, I as dgram, P as dns, D as evaluatePermission, E as extension, S as fetch, p as fetchCredentialedPermission, A as fetchLocalPermission, u as fetchPermission, z as fs, h as gotoPermission, n as handleRevivableModules, L as http, o as isBlockedFetchUrl, g as isBlockedFrameUrl, c as isExtensionExposed, k as isLocalNetworkUrl, t as isType, w as modifyRequestHeadersPermission, F as net, B as opfs, f as permissions, y as promptInstall, d as readCookiePermission, G as relayWorker, x as removeRequestHeaderRule, i as revive, s as setMissingExtensionHandler, v as setRequestHeaderRule, r as type, l as waitForExtensionExposure };
34
+ export { C as ATTACH_FRAME_EVENT_KEY, H as account, T as assertAttachableFrameUrl, j as assertFetchableUrl, p as assertLockdownApplicable, b as attachFrame, D as attachFramePermission, a as box, P as cloud, q as connect, U as connectButtonUrl, d as cookies, e as createVideoElementHandle, z as desktop, L as dgram, F as dns, m as evaluatePermission, E as extension, S as fetch, A as fetchCredentialedPermission, l as fetchLocalPermission, o as fetchPermission, B as fs, h as gotoPermission, n as handleRevivableModules, R as http, k as isBlockedFetchUrl, w as isBlockedFrameUrl, s as isExtensionExposed, u as isLocalNetworkUrl, t as isType, x as modifyRequestHeadersPermission, I as net, V as opfs, f as permissions, v as promptInstall, O as readCookiePermission, K as relayWorker, _ as removeRequestHeaderRule, i as revive, c as setMissingExtensionHandler, g as setRequestHeaderRule, r as type, y as waitForExtensionExposure };
@@ -318,7 +318,7 @@ var ge = (e) => {
318
318
  }), Se = "owner", Ce = (e) => {
319
319
  throw Error("owner: must be processed by the executor as an upward pivot");
320
320
  }, we = async () => {
321
- let { backgroundResolvers: e } = await import("./background-TtzKw6g0.js"), t = await (await e).getParentFrameId();
321
+ let { backgroundResolvers: e } = await import("./background-DvQm1JHR.js"), t = await (await e).getParentFrameId();
322
322
  if (!t) throw Error("owner: already at top frame");
323
323
  return t;
324
324
  }, Te = () => ({
@@ -1,4 +1,4 @@
1
- const e=require(`./chunk-B6C_zzib.cjs`);let t=require(`osra`);var n=(e,t)=>{let n=new EventTarget,r=new Map,i=EventTarget.prototype.addEventListener.bind(n),a=EventTarget.prototype.removeEventListener.bind(n);return Object.defineProperty(n,`addEventListener`,{configurable:!0,value:(a,o,s)=>{if(o!==null){if(!r.has(a)){let i=r=>{n.dispatchEvent(new CustomEvent(a,{detail:t(r,e),bubbles:r.bubbles,cancelable:r.cancelable,composed:r.composed}))};e.addEventListener(a,i),r.set(a,i)}i(a,o,s)}}}),Object.defineProperty(n,`removeEventListener`,{configurable:!0,value:(t,n,i)=>{if(n===null)return;a(t,n,i);let o=r.get(t);o&&(e.removeEventListener(t,o),r.delete(t))}}),n},r=e=>typeof e==`boolean`?e?1:0:e?.capture?1:0,i=e=>{let t=new WeakMap;return{addEventListener:(n,i,a)=>{if(i===null)return;let o=`${n}|${r(a)}`,s=t.get(i);if(s||(s=new Map,t.set(i,s)),s.has(o))return;let c=typeof a==`object`&&!!a&&!!a.once,l=t=>{c&&s.delete(o);let r=e.unenrich(t,n);typeof i==`function`?i.call(e.target,r):i.handleEvent(r)};s.set(o,l),e.remoteEvents.addEventListener(n,l,a)},removeEventListener:(n,i,a)=>{if(i===null)return;let o=`${n}|${r(a)}`,s=t.get(i),c=s?.get(o);c&&(e.remoteEvents.removeEventListener(n,c,a),s.delete(o))},dispatchEvent:t=>e.remoteEvents.dispatchEvent(t)}},a=e.n({box:()=>C,createVideoElementHandle:()=>x,isType:()=>S,revive:()=>w,type:()=>o}),o=`videoElement`,s=[`currentTime`,`volume`,`muted`,`playbackRate`,`src`,`loop`,`autoplay`,`preload`,`poster`,`disableRemotePlayback`],c=[`duration`,`paused`,`ended`,`seeking`,`readyState`,`currentSrc`],l=[`buffered`,`seekable`],u=Symbol.for(`fkn.remoteVideoElement`),d=Symbol.for(`fkn.remoteVideoElement.state`),f=Symbol.for(`fkn.remoteVideoElement.controller`),p=e=>e?Array.from({length:e.length},(t,n)=>[e.start(n),e.end(n)]):[],m=e=>{let t={};for(let n of[...s,...c])t[n]=e[n];for(let n of l)t[n]=p(e[n]);return t.error=e.error?{code:e.error.code,message:e.error.message}:null,t},h=e=>{let t=t=>{if(!Number.isInteger(t)||t<0||t>=e.length)throw new DOMException(`Index or size is negative or greater than the allowed amount`,`IndexSizeError`)};return{get length(){return e.length},start(n){return t(n),e[n][0]},end(n){return t(n),e[n][1]}}},g=e=>e?{code:e.code,message:e.message,MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4}:null,_=e=>n(e,(e,t)=>({originalDetail:e instanceof CustomEvent?e.detail:null,snapshot:m(t)})),v=async(e,t)=>{switch(t){case`play`:return await e.play(),null;case`pause`:return e.pause(),null;case`load`:return e.load(),null;case`requestPictureInPicture`:if(typeof e.requestPictureInPicture!=`function`)throw Error(`requestPictureInPicture is not supported in this environment`);return await e.requestPictureInPicture(),null;case`exitPictureInPicture`:{let t=e.ownerDocument;if(typeof t?.exitPictureInPicture!=`function`)throw Error(`exitPictureInPicture is not supported in this environment`);return await t.exitPictureInPicture(),null}default:throw Error(`videoElement: unknown method "${t}"`)}},y=e=>({call:async t=>v(e,t),set:async(t,n)=>{try{e[t]=n}catch{}return m(e)},events:_(e)}),b=(e,t)=>{let n=new EventTarget;Object.defineProperty(n,u,{value:!0}),Object.defineProperty(n,d,{value:e}),Object.defineProperty(n,f,{value:t});let r=i({target:n,remoteEvents:t.events,unenrich:(t,n)=>{if(!(t instanceof CustomEvent))return t;let r=t.detail;if(!r||!(`snapshot`in r))return t;Object.assign(e,r.snapshot);let i={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed};return r.originalDetail===null?new Event(n,i):new CustomEvent(n,{...i,detail:r.originalDetail})}}),a={addEventListener:{configurable:!0,value:r.addEventListener},removeEventListener:{configurable:!0,value:r.removeEventListener},dispatchEvent:{configurable:!0,value:r.dispatchEvent},error:{configurable:!0,enumerable:!0,get(){return g(e.error)}},play:{configurable:!0,value:()=>t.call(`play`,[])},pause:{configurable:!0,value:()=>{t.call(`pause`,[]).catch(()=>{})}},load:{configurable:!0,value:()=>{t.call(`load`,[]).catch(()=>{})}},requestPictureInPicture:{configurable:!0,value:()=>t.call(`requestPictureInPicture`,[])},exitPictureInPicture:{configurable:!0,value:()=>t.call(`exitPictureInPicture`,[])},HAVE_FUTURE_DATA:{enumerable:!0,value:3},HAVE_ENOUGH_DATA:{enumerable:!0,value:4}};for(let n of s)a[n]={configurable:!0,enumerable:!0,get(){return e[n]},set(r){e[n]=r,t.set(n,r).then(t=>{Object.assign(e,t)},()=>{})}};for(let t of c)a[t]={configurable:!0,enumerable:!0,get(){return e[t]}};for(let t of l)a[t]={configurable:!0,enumerable:!0,get(){return h(e[t])}};return Object.defineProperties(n,a),n},x=e=>b(m(e),y(e)),S=e=>typeof e==`object`&&!!e&&e[u]===!0,C=(e,n)=>{let r=e;return{...t.BoxBase,type:o,initialState:r[d],controller:(0,t.recursiveBox)(r[f],n)}},w=(e,n)=>{let r=(0,t.recursiveRevive)(e.controller,n);return b({...e.initialState},r)},T=e=>[a,...e],E=e=>typeof e==`object`&&!!e,ee=`PermissionDeniedError`,te=e=>e instanceof Error?e.name===ee:E(e)&&e.name===`PermissionDeniedError`,ne=3e4,re=50,ie=e=>{let t=e[e.length-1];return typeof t==`object`&&t?t:void 0},ae=e=>{let t=ie(e)?.timeout;return typeof t==`number`?t:ne},oe=async(e,t,n,r,i)=>{i&&await i(t,n,r);let a=e,o=ae(r),s=Date.now()+o,c=Error(`Locator timeout (${o}ms): ${n}`),{promise:l,reject:u}=Promise.withResolvers(),d=setTimeout(()=>u(c),o),f=c;try{for(;Date.now()<s;)try{return await Promise.race([a(t,n,r),l])}catch(e){if(e===c)break;if(te(e))throw e;f=e;let t=s-Date.now();if(t<=0)break;await new Promise(e=>setTimeout(e,Math.min(re,t)))}}finally{clearTimeout(d)}throw f},D=e.n({render:()=>le,resolve:()=>ce,type:()=>se}),se=`locator`,ce=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]),le=e=>({fragment:typeof e==`string`?e:`?`,separator:`descend`}),ue=`FKN_WEB_EXTENSION_FRAME_ANNOUNCE_REQUEST_KEY`,de=typeof chrome<`u`&&!!chrome.runtime?.id,fe=e=>E(e)&&e.FKN_WEB_EXTENSION_FRAME_ANNOUNCE_KEY===!0&&typeof e.frameId==`string`,O=new WeakMap,k=new WeakMap,A=new Set,pe=e=>(A.add(e),()=>A.delete(e));typeof window<`u`&&de&&window.addEventListener(`message`,e=>{if(!fe(e.data))return;e.stopImmediatePropagation();let t=e.source;if(!t||typeof t!=`object`)return;let n=t,r=O.get(n),i=e.data.frameId;if(O.set(n,i),r)for(let e of A)e(r);let a=k.get(n);if(a){k.delete(n);for(let e of a)e(i)}},{capture:!0});var me=e=>{let t=e.contentWindow;if(!t)return Promise.reject(Error(`frameLocator: <iframe> has no contentWindow`));let n=O.get(t);return n?Promise.resolve(n):new Promise(e=>{let n=k.get(t)??[];n.push(e),k.set(t,n),t.postMessage({[ue]:!0},`*`)})},j=e.n({render:()=>ve,resolve:()=>ge,resolvePeer:()=>_e,type:()=>he}),he=`frameLocator`,ge=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]).filter(e=>e instanceof HTMLIFrameElement),_e=async({parts:e,selfIndex:t,resolveLocal:n})=>{let r=n(e.slice(0,t+1))[0];if(!r)throw Error(`frameLocator: no <iframe> matched`);if(!(r instanceof HTMLIFrameElement))throw Error(`frameLocator: expected <iframe>, got <${r.tagName.toLowerCase()}>`);return me(r)},ve=e=>({fragment:typeof e==`string`?e:`?`,separator:`frame-down`}),ye=e.n({render:()=>Ce,resolve:()=>xe,resolvePeer:()=>Se,type:()=>be}),be=`owner`,xe=e=>{throw Error(`owner: must be processed by the executor as an upward pivot`)},Se=async()=>{let{backgroundResolvers:e}=await Promise.resolve().then(()=>require(`./background-Dk_vaVP1.cjs`)),t=await(await e).getParentFrameId();if(!t)throw Error(`owner: already at top frame`);return t},Ce=()=>({fragment:``,separator:`frame-up`}),we=class extends Error{reason;filename;line;column;source;constructor(e,t,n,r,i){super(`${e}:${n}:${r}: ${t}`),this.reason=t,this.filename=e,this.line=n,this.column=r,this.source=i}},Te=class{start;end;source;constructor(e,t,n){this.start=e,this.end=t,this.source=n}},M;(function(e){e.stylesheet=`stylesheet`,e.rule=`rule`,e.declaration=`declaration`,e.comment=`comment`,e.atRule=`at-rule`,e.container=`container`,e.charset=`charset`,e.counterStyle=`counter-style`,e.document=`document`,e.customMedia=`custom-media`,e.fontFace=`font-face`,e.fontFeatureValues=`font-feature-values`,e.host=`host`,e.import=`import`,e.keyframes=`keyframes`,e.keyframe=`keyframe`,e.layer=`layer`,e.media=`media`,e.namespace=`namespace`,e.page=`page`,e.pageMarginBox=`page-margin-box`,e.positionTry=`position-try`,e.property=`property`,e.scope=`scope`,e.startingStyle=`starting-style`,e.supports=`supports`,e.viewTransition=`view-transition`})(M||={});var N=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);if(e[o]!==`\\`)return o;r=o+2,i--}while(i>0);throw Error(`Too many escaping`)},P=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`(`,r)),n.push(e.indexOf(`"`,r)),n.push(e.indexOf(`'`,r)),n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);switch(e[o]){case`\\`:r=o+2;break;case`(`:{let t=P(e,[`)`],o+1);if(t===-1)return-1;r=t+1}break;case`"`:{let t=N(e,[`"`],o+1);if(t===-1)return-1;r=t+1}break;case`'`:{let t=N(e,[`'`],o+1);if(t===-1)return-1;r=t+1}break;default:return o}i--}while(i>0);throw Error(`Too many escaping`)},F=/\/\*[^]*?(?:\*\/|$)/g;function I(e){return e?e.trim():``}function L(e,t){let n=e&&typeof e.type==`string`,r=n?e:t;for(let t in e){let n=e[t];Array.isArray(n)?n.forEach(e=>{L(e,r)}):n&&typeof n==`object`&&L(n,r)}return n&&Object.defineProperty(e,`parent`,{configurable:!0,writable:!0,enumerable:!1,value:t||null}),e}var Ee=class{level=0;indentation=` `;compress=!1;constructor(e){typeof e?.indent==`string`&&(this.indentation=e?.indent),e?.compress&&(this.compress=!0)}emit(e,t){return e}indent(e){return this.level=this.level||1,e?(this.level+=e,``):Array(this.level).join(this.indentation)}visit(e){switch(e.type){case M.stylesheet:return this.stylesheet(e);case M.rule:return this.rule(e);case M.declaration:return this.declaration(e);case M.comment:return this.comment(e);case M.container:return this.container(e);case M.charset:return this.charset(e);case M.counterStyle:return this.counterStyle(e);case M.document:return this.document(e);case M.customMedia:return this.customMedia(e);case M.fontFace:return this.fontFace(e);case M.fontFeatureValues:return this.fontFeatureValues(e);case M.host:return this.host(e);case M.import:return this.import(e);case M.keyframes:return this.keyframes(e);case M.keyframe:return this.keyframe(e);case M.layer:return this.layer(e);case M.media:return this.media(e);case M.namespace:return this.namespace(e);case M.page:return this.page(e);case M.pageMarginBox:return this.pageMarginBox(e);case M.positionTry:return this.positionTry(e);case M.property:return this.property(e);case M.scope:return this.scope(e);case M.startingStyle:return this.startingStyle(e);case M.supports:return this.supports(e);case M.viewTransition:return this.viewTransition(e);case M.atRule:return this.genericAtRule(e)}}mapVisit(e,t){let n=``;t||=``;for(let r=0,i=e.length;r<i;r++)n+=this.visit(e[r]),t&&r<i-1&&(n+=this.emit(t));return n}compile(e){return this.compress?e.stylesheet.rules.map(this.visit,this).join(``):this.stylesheet(e)}stylesheet(e){return this.mapVisit(e.stylesheet.rules,`
1
+ const e=require(`./chunk-B6C_zzib.cjs`);let t=require(`osra`);var n=(e,t)=>{let n=new EventTarget,r=new Map,i=EventTarget.prototype.addEventListener.bind(n),a=EventTarget.prototype.removeEventListener.bind(n);return Object.defineProperty(n,`addEventListener`,{configurable:!0,value:(a,o,s)=>{if(o!==null){if(!r.has(a)){let i=r=>{n.dispatchEvent(new CustomEvent(a,{detail:t(r,e),bubbles:r.bubbles,cancelable:r.cancelable,composed:r.composed}))};e.addEventListener(a,i),r.set(a,i)}i(a,o,s)}}}),Object.defineProperty(n,`removeEventListener`,{configurable:!0,value:(t,n,i)=>{if(n===null)return;a(t,n,i);let o=r.get(t);o&&(e.removeEventListener(t,o),r.delete(t))}}),n},r=e=>typeof e==`boolean`?e?1:0:e?.capture?1:0,i=e=>{let t=new WeakMap;return{addEventListener:(n,i,a)=>{if(i===null)return;let o=`${n}|${r(a)}`,s=t.get(i);if(s||(s=new Map,t.set(i,s)),s.has(o))return;let c=typeof a==`object`&&!!a&&!!a.once,l=t=>{c&&s.delete(o);let r=e.unenrich(t,n);typeof i==`function`?i.call(e.target,r):i.handleEvent(r)};s.set(o,l),e.remoteEvents.addEventListener(n,l,a)},removeEventListener:(n,i,a)=>{if(i===null)return;let o=`${n}|${r(a)}`,s=t.get(i),c=s?.get(o);c&&(e.remoteEvents.removeEventListener(n,c,a),s.delete(o))},dispatchEvent:t=>e.remoteEvents.dispatchEvent(t)}},a=e.n({box:()=>C,createVideoElementHandle:()=>x,isType:()=>S,revive:()=>w,type:()=>o}),o=`videoElement`,s=[`currentTime`,`volume`,`muted`,`playbackRate`,`src`,`loop`,`autoplay`,`preload`,`poster`,`disableRemotePlayback`],c=[`duration`,`paused`,`ended`,`seeking`,`readyState`,`currentSrc`],l=[`buffered`,`seekable`],u=Symbol.for(`fkn.remoteVideoElement`),d=Symbol.for(`fkn.remoteVideoElement.state`),f=Symbol.for(`fkn.remoteVideoElement.controller`),p=e=>e?Array.from({length:e.length},(t,n)=>[e.start(n),e.end(n)]):[],m=e=>{let t={};for(let n of[...s,...c])t[n]=e[n];for(let n of l)t[n]=p(e[n]);return t.error=e.error?{code:e.error.code,message:e.error.message}:null,t},h=e=>{let t=t=>{if(!Number.isInteger(t)||t<0||t>=e.length)throw new DOMException(`Index or size is negative or greater than the allowed amount`,`IndexSizeError`)};return{get length(){return e.length},start(n){return t(n),e[n][0]},end(n){return t(n),e[n][1]}}},g=e=>e?{code:e.code,message:e.message,MEDIA_ERR_ABORTED:1,MEDIA_ERR_NETWORK:2,MEDIA_ERR_DECODE:3,MEDIA_ERR_SRC_NOT_SUPPORTED:4}:null,_=e=>n(e,(e,t)=>({originalDetail:e instanceof CustomEvent?e.detail:null,snapshot:m(t)})),v=async(e,t)=>{switch(t){case`play`:return await e.play(),null;case`pause`:return e.pause(),null;case`load`:return e.load(),null;case`requestPictureInPicture`:if(typeof e.requestPictureInPicture!=`function`)throw Error(`requestPictureInPicture is not supported in this environment`);return await e.requestPictureInPicture(),null;case`exitPictureInPicture`:{let t=e.ownerDocument;if(typeof t?.exitPictureInPicture!=`function`)throw Error(`exitPictureInPicture is not supported in this environment`);return await t.exitPictureInPicture(),null}default:throw Error(`videoElement: unknown method "${t}"`)}},y=e=>({call:async t=>v(e,t),set:async(t,n)=>{try{e[t]=n}catch{}return m(e)},events:_(e)}),b=(e,t)=>{let n=new EventTarget;Object.defineProperty(n,u,{value:!0}),Object.defineProperty(n,d,{value:e}),Object.defineProperty(n,f,{value:t});let r=i({target:n,remoteEvents:t.events,unenrich:(t,n)=>{if(!(t instanceof CustomEvent))return t;let r=t.detail;if(!r||!(`snapshot`in r))return t;Object.assign(e,r.snapshot);let i={bubbles:t.bubbles,cancelable:t.cancelable,composed:t.composed};return r.originalDetail===null?new Event(n,i):new CustomEvent(n,{...i,detail:r.originalDetail})}}),a={addEventListener:{configurable:!0,value:r.addEventListener},removeEventListener:{configurable:!0,value:r.removeEventListener},dispatchEvent:{configurable:!0,value:r.dispatchEvent},error:{configurable:!0,enumerable:!0,get(){return g(e.error)}},play:{configurable:!0,value:()=>t.call(`play`,[])},pause:{configurable:!0,value:()=>{t.call(`pause`,[]).catch(()=>{})}},load:{configurable:!0,value:()=>{t.call(`load`,[]).catch(()=>{})}},requestPictureInPicture:{configurable:!0,value:()=>t.call(`requestPictureInPicture`,[])},exitPictureInPicture:{configurable:!0,value:()=>t.call(`exitPictureInPicture`,[])},HAVE_FUTURE_DATA:{enumerable:!0,value:3},HAVE_ENOUGH_DATA:{enumerable:!0,value:4}};for(let n of s)a[n]={configurable:!0,enumerable:!0,get(){return e[n]},set(r){e[n]=r,t.set(n,r).then(t=>{Object.assign(e,t)},()=>{})}};for(let t of c)a[t]={configurable:!0,enumerable:!0,get(){return e[t]}};for(let t of l)a[t]={configurable:!0,enumerable:!0,get(){return h(e[t])}};return Object.defineProperties(n,a),n},x=e=>b(m(e),y(e)),S=e=>typeof e==`object`&&!!e&&e[u]===!0,C=(e,n)=>{let r=e;return{...t.BoxBase,type:o,initialState:r[d],controller:(0,t.recursiveBox)(r[f],n)}},w=(e,n)=>{let r=(0,t.recursiveRevive)(e.controller,n);return b({...e.initialState},r)},T=e=>[a,...e],E=e=>typeof e==`object`&&!!e,ee=`PermissionDeniedError`,te=e=>e instanceof Error?e.name===ee:E(e)&&e.name===`PermissionDeniedError`,ne=3e4,re=50,ie=e=>{let t=e[e.length-1];return typeof t==`object`&&t?t:void 0},ae=e=>{let t=ie(e)?.timeout;return typeof t==`number`?t:ne},oe=async(e,t,n,r,i)=>{i&&await i(t,n,r);let a=e,o=ae(r),s=Date.now()+o,c=Error(`Locator timeout (${o}ms): ${n}`),{promise:l,reject:u}=Promise.withResolvers(),d=setTimeout(()=>u(c),o),f=c;try{for(;Date.now()<s;)try{return await Promise.race([a(t,n,r),l])}catch(e){if(e===c)break;if(te(e))throw e;f=e;let t=s-Date.now();if(t<=0)break;await new Promise(e=>setTimeout(e,Math.min(re,t)))}}finally{clearTimeout(d)}throw f},D=e.n({render:()=>le,resolve:()=>ce,type:()=>se}),se=`locator`,ce=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]),le=e=>({fragment:typeof e==`string`?e:`?`,separator:`descend`}),ue=`FKN_WEB_EXTENSION_FRAME_ANNOUNCE_REQUEST_KEY`,de=typeof chrome<`u`&&!!chrome.runtime?.id,fe=e=>E(e)&&e.FKN_WEB_EXTENSION_FRAME_ANNOUNCE_KEY===!0&&typeof e.frameId==`string`,O=new WeakMap,k=new WeakMap,A=new Set,pe=e=>(A.add(e),()=>A.delete(e));typeof window<`u`&&de&&window.addEventListener(`message`,e=>{if(!fe(e.data))return;e.stopImmediatePropagation();let t=e.source;if(!t||typeof t!=`object`)return;let n=t,r=O.get(n),i=e.data.frameId;if(O.set(n,i),r)for(let e of A)e(r);let a=k.get(n);if(a){k.delete(n);for(let e of a)e(i)}},{capture:!0});var me=e=>{let t=e.contentWindow;if(!t)return Promise.reject(Error(`frameLocator: <iframe> has no contentWindow`));let n=O.get(t);return n?Promise.resolve(n):new Promise(e=>{let n=k.get(t)??[];n.push(e),k.set(t,n),t.postMessage({[ue]:!0},`*`)})},j=e.n({render:()=>ve,resolve:()=>ge,resolvePeer:()=>_e,type:()=>he}),he=`frameLocator`,ge=(e,t)=>e.elements.flatMap(e=>[...e.querySelectorAll(t)]).filter(e=>e instanceof HTMLIFrameElement),_e=async({parts:e,selfIndex:t,resolveLocal:n})=>{let r=n(e.slice(0,t+1))[0];if(!r)throw Error(`frameLocator: no <iframe> matched`);if(!(r instanceof HTMLIFrameElement))throw Error(`frameLocator: expected <iframe>, got <${r.tagName.toLowerCase()}>`);return me(r)},ve=e=>({fragment:typeof e==`string`?e:`?`,separator:`frame-down`}),ye=e.n({render:()=>Ce,resolve:()=>xe,resolvePeer:()=>Se,type:()=>be}),be=`owner`,xe=e=>{throw Error(`owner: must be processed by the executor as an upward pivot`)},Se=async()=>{let{backgroundResolvers:e}=await Promise.resolve().then(()=>require(`./background-CbU8TkWo.cjs`)),t=await(await e).getParentFrameId();if(!t)throw Error(`owner: already at top frame`);return t},Ce=()=>({fragment:``,separator:`frame-up`}),we=class extends Error{reason;filename;line;column;source;constructor(e,t,n,r,i){super(`${e}:${n}:${r}: ${t}`),this.reason=t,this.filename=e,this.line=n,this.column=r,this.source=i}},Te=class{start;end;source;constructor(e,t,n){this.start=e,this.end=t,this.source=n}},M;(function(e){e.stylesheet=`stylesheet`,e.rule=`rule`,e.declaration=`declaration`,e.comment=`comment`,e.atRule=`at-rule`,e.container=`container`,e.charset=`charset`,e.counterStyle=`counter-style`,e.document=`document`,e.customMedia=`custom-media`,e.fontFace=`font-face`,e.fontFeatureValues=`font-feature-values`,e.host=`host`,e.import=`import`,e.keyframes=`keyframes`,e.keyframe=`keyframe`,e.layer=`layer`,e.media=`media`,e.namespace=`namespace`,e.page=`page`,e.pageMarginBox=`page-margin-box`,e.positionTry=`position-try`,e.property=`property`,e.scope=`scope`,e.startingStyle=`starting-style`,e.supports=`supports`,e.viewTransition=`view-transition`})(M||={});var N=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);if(e[o]!==`\\`)return o;r=o+2,i--}while(i>0);throw Error(`Too many escaping`)},P=(e,t,n)=>{let r=n,i=1e4;do{let n=t.map(t=>e.indexOf(t,r));n.push(e.indexOf(`(`,r)),n.push(e.indexOf(`"`,r)),n.push(e.indexOf(`'`,r)),n.push(e.indexOf(`\\`,r));let a=n.filter(e=>e!==-1);if(a.length===0)return-1;let o=Math.min(...a);switch(e[o]){case`\\`:r=o+2;break;case`(`:{let t=P(e,[`)`],o+1);if(t===-1)return-1;r=t+1}break;case`"`:{let t=N(e,[`"`],o+1);if(t===-1)return-1;r=t+1}break;case`'`:{let t=N(e,[`'`],o+1);if(t===-1)return-1;r=t+1}break;default:return o}i--}while(i>0);throw Error(`Too many escaping`)},F=/\/\*[^]*?(?:\*\/|$)/g;function I(e){return e?e.trim():``}function L(e,t){let n=e&&typeof e.type==`string`,r=n?e:t;for(let t in e){let n=e[t];Array.isArray(n)?n.forEach(e=>{L(e,r)}):n&&typeof n==`object`&&L(n,r)}return n&&Object.defineProperty(e,`parent`,{configurable:!0,writable:!0,enumerable:!1,value:t||null}),e}var Ee=class{level=0;indentation=` `;compress=!1;constructor(e){typeof e?.indent==`string`&&(this.indentation=e?.indent),e?.compress&&(this.compress=!0)}emit(e,t){return e}indent(e){return this.level=this.level||1,e?(this.level+=e,``):Array(this.level).join(this.indentation)}visit(e){switch(e.type){case M.stylesheet:return this.stylesheet(e);case M.rule:return this.rule(e);case M.declaration:return this.declaration(e);case M.comment:return this.comment(e);case M.container:return this.container(e);case M.charset:return this.charset(e);case M.counterStyle:return this.counterStyle(e);case M.document:return this.document(e);case M.customMedia:return this.customMedia(e);case M.fontFace:return this.fontFace(e);case M.fontFeatureValues:return this.fontFeatureValues(e);case M.host:return this.host(e);case M.import:return this.import(e);case M.keyframes:return this.keyframes(e);case M.keyframe:return this.keyframe(e);case M.layer:return this.layer(e);case M.media:return this.media(e);case M.namespace:return this.namespace(e);case M.page:return this.page(e);case M.pageMarginBox:return this.pageMarginBox(e);case M.positionTry:return this.positionTry(e);case M.property:return this.property(e);case M.scope:return this.scope(e);case M.startingStyle:return this.startingStyle(e);case M.supports:return this.supports(e);case M.viewTransition:return this.viewTransition(e);case M.atRule:return this.genericAtRule(e)}}mapVisit(e,t){let n=``;t||=``;for(let r=0,i=e.length;r<i;r++)n+=this.visit(e[r]),t&&r<i-1&&(n+=this.emit(t));return n}compile(e){return this.compress?e.stylesheet.rules.map(this.visit,this).join(``):this.stylesheet(e)}stylesheet(e){return this.mapVisit(e.stylesheet.rules,`
2
2
 
3
3
  `)}comment(e){return this.compress?this.emit(``,e.position):this.emit(`${this.indent()}/*${e.comment}*/`,e.position)}container(e){return this.compress?this.emit(`@container ${e.container}`,e.position)+this.emit(`{`)+this.mapVisit(e.rules)+this.emit(`}`):this.emit(`${this.indent()}@container ${e.container}`,e.position)+this.emit(` {\n${this.indent(1)}`)+this.mapVisit(e.rules,`
4
4
 
package/net.d.ts CHANGED
@@ -282,7 +282,7 @@ declare const resolvers: {
282
282
  readonly dns: {
283
283
  readonly lookup: <T extends boolean = false>(hostname: string, options?: {
284
284
  all?: T;
285
- family: 0 | 4 | 6;
285
+ family?: 0 | 4 | 6;
286
286
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
287
287
  };
288
288
  readonly fs: {
@@ -441,7 +441,7 @@ declare const resolvers: {
441
441
  }>;
442
442
  readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
443
443
  all?: T;
444
- family: 0 | 4 | 6;
444
+ family?: 0 | 4 | 6;
445
445
  }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
446
446
  readonly setOverlayHost: (push: (state: {
447
447
  modal: boolean;
@@ -49,7 +49,8 @@ var t = {
49
49
  EEXIST: "file already exists",
50
50
  ENOTDIR: "not a directory",
51
51
  EISDIR: "illegal operation on a directory",
52
- ENOTEMPTY: "directory not empty"
52
+ ENOTEMPTY: "directory not empty",
53
+ ERR_FS_EISDIR: "is a directory"
53
54
  }[e] ?? e}, ${n} '${t}'`);
54
55
  return r.code = e, r.path = t, r.syscall = n, r;
55
56
  }, o = (e) => {
@@ -180,15 +181,18 @@ var t = {
180
181
  t && s.add(t.split("/")[0]);
181
182
  }
182
183
  return [...s];
183
- }, E = (e, n) => {
184
- let r = o(e);
185
- if (!t.get(r)) {
186
- if (n) return;
187
- throw a("ENOENT", e, "unlink");
184
+ }, E = (e, { op: n, recursive: r, force: i }) => {
185
+ let s = o(e), u = t.get(s);
186
+ if (!u) {
187
+ if (i || n === "rmdir" && r) return;
188
+ throw a("ENOENT", e, n === "rmdir" ? "rmdir" : "unlink");
188
189
  }
189
- let i = `${r}/`, s = [...t.keys()].filter((e) => e.startsWith(i));
190
- if (s.length && !n) throw a("ENOTEMPTY", e, "rmdir");
191
- for (let e of [r, ...s]) {
190
+ if (n === "unlink" && u.kind === "dir") throw a("EISDIR", e, "unlink");
191
+ if (n === "rmdir" && u.kind === "file") throw a("ENOTDIR", e, "rmdir");
192
+ if (n === "rm" && u.kind === "dir" && !r) throw a("ERR_FS_EISDIR", e, "rm");
193
+ let d = `${s}/`, f = [...t.keys()].filter((e) => e.startsWith(d));
194
+ if (f.length && !r) throw a("ENOTEMPTY", e, "rmdir");
195
+ for (let e of [s, ...f]) {
192
196
  let n = t.get(e);
193
197
  t.delete(e), n?.kind === "file" && (c.delete(e), l.add(e));
194
198
  }
@@ -214,7 +218,11 @@ var t = {
214
218
  let f = t.get(i);
215
219
  if (f) {
216
220
  if (f.kind !== u.kind) throw a(u.kind === "dir" ? "ENOTDIR" : "EISDIR", n, "rename");
217
- E(i, !0);
221
+ E(i, {
222
+ op: "rm",
223
+ recursive: !0,
224
+ force: !0
225
+ });
218
226
  }
219
227
  d(s(i));
220
228
  let p = `${r}/`, m = [r, ...[...t.keys()].filter((e) => e.startsWith(p))];
@@ -228,7 +236,13 @@ var t = {
228
236
  }, h = (e, t) => typeof e == "function" ? e : t, g = (e) => typeof e == "function" ? void 0 : e, _ = (e, t) => {
229
237
  e.then((e) => t(null, e), (e) => t(e));
230
238
  }, v = (e) => {
231
- let t = m(e), n = (e, n) => f(t.readFile(c(e)), n), r = (e, n, r) => t.writeFile(c(e), p(n, r), !1, u(r)), i = (e, n, r) => t.writeFile(c(e), p(n, r), !0, u(r)), o = (e) => t.exists(c(e)), s = (e) => t.stat(c(e)), l = (e) => t.readdir(c(e)), _ = (e, n) => t.mkdir(c(e), d(n)), v = (e, n) => t.remove(c(e), !!n?.recursive), y = (e, n) => t.remove(c(e), !!n?.recursive), b = (e) => t.remove(c(e), !1), x = (e, n) => t.rename(c(e), c(n)), S = (e, n) => {
239
+ let t = m(e), n = (e, n) => f(t.readFile(c(e)), n), r = (e, n, r) => t.writeFile(c(e), p(n, r), !1, u(r)), i = (e, n, r) => t.writeFile(c(e), p(n, r), !0, u(r)), o = (e) => t.exists(c(e)), s = (e) => t.stat(c(e)), l = (e) => t.readdir(c(e)), _ = (e, n) => t.mkdir(c(e), d(n)), v = (e, n) => t.remove(c(e), {
240
+ op: "rm",
241
+ ...n
242
+ }), y = (e, n) => t.remove(c(e), {
243
+ op: "rmdir",
244
+ ...n
245
+ }), b = (e) => t.remove(c(e), { op: "unlink" }), x = (e, n) => t.rename(c(e), c(n)), S = (e, n) => {
232
246
  t.mount().finally(() => {
233
247
  let t;
234
248
  try {
@@ -260,8 +274,11 @@ var t = {
260
274
  stat: (e, n) => S(() => t.stat(c(e)), n),
261
275
  readdir: (e, n, r) => S(() => t.readdir(c(e)), h(n, r)),
262
276
  mkdir: (e, n, r) => S(() => t.mkdir(c(e), d(g(n))), h(n, r)),
263
- rm: (e, n, r) => S(() => t.remove(c(e), !!g(n)?.recursive), h(n, r)),
264
- unlink: (e, n) => S(() => t.remove(c(e), !1), n),
277
+ rm: (e, n, r) => S(() => t.remove(c(e), {
278
+ op: "rm",
279
+ ...g(n)
280
+ }), h(n, r)),
281
+ unlink: (e, n) => S(() => t.remove(c(e), { op: "unlink" }), n),
265
282
  rename: (e, n, r) => S(() => t.rename(c(e), c(n)), r),
266
283
  exists: (e, n) => {
267
284
  t.mount().finally(() => n(t.exists(c(e))));
@@ -274,9 +291,15 @@ var t = {
274
291
  lstat: (e) => C(() => t.stat(c(e))),
275
292
  readdir: (e) => C(() => t.readdir(c(e))),
276
293
  mkdir: (e, n) => C(() => t.mkdir(c(e), d(n))),
277
- rm: (e, n) => C(() => t.remove(c(e), !!n?.recursive)),
278
- rmdir: (e, n) => C(() => t.remove(c(e), !!n?.recursive)),
279
- unlink: (e) => C(() => t.remove(c(e), !1)),
294
+ rm: (e, n) => C(() => t.remove(c(e), {
295
+ op: "rm",
296
+ ...n
297
+ })),
298
+ rmdir: (e, n) => C(() => t.remove(c(e), {
299
+ op: "rmdir",
300
+ ...n
301
+ })),
302
+ unlink: (e) => C(() => t.remove(c(e), { op: "unlink" })),
280
303
  rename: (e, n) => C(() => t.rename(c(e), c(n))),
281
304
  access: (e) => C(() => {
282
305
  if (!t.exists(c(e))) throw a("ENOENT", c(e), "access");
@@ -0,0 +1 @@
1
+ let e=require(`buffer`);var t={json:`application/json`,txt:`text/plain`,html:`text/html`,htm:`text/html`,css:`text/css`,js:`text/javascript`,mjs:`text/javascript`,xml:`application/xml`,csv:`text/csv`,md:`text/markdown`,svg:`image/svg+xml`,png:`image/png`,jpg:`image/jpeg`,jpeg:`image/jpeg`,gif:`image/gif`,webp:`image/webp`,pdf:`application/pdf`,wasm:`application/wasm`},n=(e,n)=>{if(n)return n;let r=e.split(`/`).pop()??``,i=r.lastIndexOf(`.`);if(!(i<=0))return t[r.slice(i+1).toLowerCase()]},r=(e,t)=>({size:e,mtimeMs:t,mtime:new Date(t),atimeMs:t,ctimeMs:t,mode:420,isFile:()=>!0,isDirectory:()=>!1,isSymbolicLink:()=>!1}),i=(e=0)=>({size:0,mtimeMs:e,mtime:new Date(e),atimeMs:e,ctimeMs:e,mode:493,isFile:()=>!1,isDirectory:()=>!0,isSymbolicLink:()=>!1}),a=(e,t,n)=>{let r=Error(`${e}: ${{ENOENT:`no such file or directory`,EEXIST:`file already exists`,ENOTDIR:`not a directory`,EISDIR:`illegal operation on a directory`,ENOTEMPTY:`directory not empty`,ERR_FS_EISDIR:`is a directory`}[e]??e}, ${n} '${t}'`);return r.code=e,r.path=t,r.syscall=n,r},o=e=>{let t=[];for(let n of e.split(`/`))if(!(!n||n===`.`)){if(n===`..`){t.pop();continue}t.push(n)}return t.join(`/`)},s=e=>e.split(`/`).slice(0,-1).join(`/`),c=e=>typeof e==`string`?e:e instanceof URL?decodeURIComponent(e.pathname):e.toString(),l=e=>typeof e==`string`?e:e?.encoding??void 0,u=e=>typeof e==`object`?e?.contentType:void 0,d=e=>typeof e==`object`&&!!e?.recursive,f=(t,n)=>{let r=l(n);return r?e.Buffer.from(t).toString(r):e.Buffer.from(t)},p=(t,n)=>{if(typeof t==`string`)return new Uint8Array(e.Buffer.from(t,l(n)??`utf8`));if(t instanceof Uint8Array)return t.slice();if(t instanceof ArrayBuffer)return new Uint8Array(t).slice();if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice();throw TypeError(`The "data" argument must be of type string, Buffer, TypedArray, or DataView`)},m=e=>{let t=new Map([[``,{kind:`dir`,mtimeMs:0}]]),c=new Set,l=new Set,u=()=>Date.now(),d=e=>{if(!e)return;let n=e.split(`/`),r=``;for(let e of n){r=r?`${r}/${e}`:e;let n=t.get(r);if(!n)t.set(r,{kind:`dir`,mtimeMs:u()});else if(n.kind===`file`)throw a(`ENOTDIR`,r,`mkdir`)}},f,p=()=>f??=(async()=>{let n=await e.list().catch(()=>[]);for(let r of n)try{let n=o(r.path);if(c.has(n))continue;let i=await(await e.readFile(r.path)).arrayBuffer();if(c.has(n)||l.has(n))continue;d(s(n));let a=Date.parse(r.updatedAt??``);t.set(n,{kind:`file`,data:new Uint8Array(i),mtimeMs:Number.isFinite(a)?a:u(),contentType:r.contentType??void 0})}catch{}})(),m=async()=>{f=void 0,await p()},h=async()=>{let r=[...c].map(async r=>{let i=t.get(r);if(i?.kind!==`file`){c.delete(r);return}let a=i.data,o=n(r,i.contentType);try{await e.writeFile(r,a,o?{contentType:o}:void 0);let n=t.get(r);n?.kind===`file`&&n.data===a&&c.delete(r)}catch{}}),i=[...l].map(async t=>{try{await e.remove(t),l.delete(t)}catch{}});await Promise.all([...r,...i])},g,_=()=>{g||=setTimeout(()=>{g=void 0,h().catch(()=>{})},250)};typeof addEventListener<`u`&&(addEventListener(`pagehide`,()=>{h().catch(()=>{})}),addEventListener(`visibilitychange`,()=>{typeof document<`u`&&document.visibilityState===`hidden`&&h().catch(()=>{})}));let v=e=>e.kind===`file`?r(e.data.byteLength,e.mtimeMs):i(e.mtimeMs),y=e=>t.has(o(e)),b=e=>{let n=t.get(o(e));if(!n)throw a(`ENOENT`,e,`stat`);return v(n)},x=e=>{let n=t.get(o(e));if(!n)throw a(`ENOENT`,e,`open`);if(n.kind===`dir`)throw a(`EISDIR`,e,`read`);return n.data},S=(e,t)=>{let n=new Uint8Array(e.byteLength+t.byteLength);return n.set(e,0),n.set(t,e.byteLength),n},C=(e,n,r,i)=>{let f=o(e);if(!f)throw a(`EISDIR`,e,`open`);let p=t.get(f);if(p?.kind===`dir`)throw a(`EISDIR`,e,`open`);d(s(f));let m=r&&p?.kind===`file`?S(p.data,n):n;t.set(f,{kind:`file`,data:m,mtimeMs:u(),contentType:i??(p?.kind===`file`?p.contentType:void 0)}),c.add(f),l.delete(f),_()},w=(e,n)=>{let r=o(e);if(r){if(t.has(r)){if(n)return;throw a(`EEXIST`,e,`mkdir`)}if(!n&&!t.has(s(r)))throw a(`ENOENT`,e,`mkdir`);d(r)}},T=e=>{let n=o(e),r=t.get(n);if(!r)throw a(`ENOENT`,e,`scandir`);if(r.kind===`file`)throw a(`ENOTDIR`,e,`scandir`);let i=n?`${n}/`:``,s=new Set;for(let e of t.keys()){if(!e||!e.startsWith(i))continue;let t=e.slice(i.length);t&&s.add(t.split(`/`)[0])}return[...s]},E=(e,{op:n,recursive:r,force:i})=>{let s=o(e),u=t.get(s);if(!u){if(i||n===`rmdir`&&r)return;throw a(`ENOENT`,e,n===`rmdir`?`rmdir`:`unlink`)}if(n===`unlink`&&u.kind===`dir`)throw a(`EISDIR`,e,`unlink`);if(n===`rmdir`&&u.kind===`file`)throw a(`ENOTDIR`,e,`rmdir`);if(n===`rm`&&u.kind===`dir`&&!r)throw a(`ERR_FS_EISDIR`,e,`rm`);let d=`${s}/`,f=[...t.keys()].filter(e=>e.startsWith(d));if(f.length&&!r)throw a(`ENOTEMPTY`,e,`rmdir`);for(let e of[s,...f]){let n=t.get(e);t.delete(e),n?.kind===`file`&&(c.delete(e),l.add(e))}_()};return{mount:p,remount:m,flush:h,exists:y,stat:b,readFile:x,writeFile:C,mkdir:w,readdir:T,remove:E,rename:(e,n)=>{let r=o(e),i=o(n);if(!r)throw a(`EBUSY`,e,`rename`);if(i===r||i.startsWith(`${r}/`))throw a(`EINVAL`,e,`rename`);let u=t.get(r);if(!u)throw a(`ENOENT`,e,`rename`);let f=t.get(i);if(f){if(f.kind!==u.kind)throw a(u.kind===`dir`?`ENOTDIR`:`EISDIR`,n,`rename`);E(i,{op:`rm`,recursive:!0,force:!0})}d(s(i));let p=`${r}/`,m=[r,...[...t.keys()].filter(e=>e.startsWith(p))];for(let e of m){let n=i+e.slice(r.length),a=t.get(e);t.set(n,a),t.delete(e),a.kind===`file`&&(c.add(n),l.delete(n),c.delete(e),l.add(e))}_()}}},h=(e,t)=>typeof e==`function`?e:t,g=e=>typeof e==`function`?void 0:e,_=(e,t)=>{e.then(e=>t(null,e),e=>t(e))},v=e=>{let t=m(e),n=(e,n)=>f(t.readFile(c(e)),n),r=(e,n,r)=>t.writeFile(c(e),p(n,r),!1,u(r)),i=(e,n,r)=>t.writeFile(c(e),p(n,r),!0,u(r)),o=e=>t.exists(c(e)),s=e=>t.stat(c(e)),l=e=>t.readdir(c(e)),_=(e,n)=>t.mkdir(c(e),d(n)),v=(e,n)=>t.remove(c(e),{op:`rm`,...n}),y=(e,n)=>t.remove(c(e),{op:`rmdir`,...n}),b=e=>t.remove(c(e),{op:`unlink`}),x=(e,n)=>t.rename(c(e),c(n)),S=(e,n)=>{t.mount().finally(()=>{let t;try{t=e()}catch(e){n(e);return}n(null,t)})},C=e=>t.mount().then(()=>e());return{available:e.available,readFileSync:n,writeFileSync:r,appendFileSync:i,existsSync:o,statSync:s,lstatSync:s,readdirSync:l,mkdirSync:_,rmSync:v,rmdirSync:y,unlinkSync:b,renameSync:x,readFile:(e,n,r)=>S(()=>f(t.readFile(c(e)),g(n)),h(n,r)),writeFile:(e,n,r,i)=>S(()=>t.writeFile(c(e),p(n,g(r)),!1,u(g(r))),h(r,i)),appendFile:(e,n,r,i)=>S(()=>t.writeFile(c(e),p(n,g(r)),!0,u(g(r))),h(r,i)),stat:(e,n)=>S(()=>t.stat(c(e)),n),readdir:(e,n,r)=>S(()=>t.readdir(c(e)),h(n,r)),mkdir:(e,n,r)=>S(()=>t.mkdir(c(e),d(g(n))),h(n,r)),rm:(e,n,r)=>S(()=>t.remove(c(e),{op:`rm`,...g(n)}),h(n,r)),unlink:(e,n)=>S(()=>t.remove(c(e),{op:`unlink`}),n),rename:(e,n,r)=>S(()=>t.rename(c(e),c(n)),r),exists:(e,n)=>{t.mount().finally(()=>n(t.exists(c(e))))},promises:{readFile:(e,n)=>C(()=>f(t.readFile(c(e)),n)),writeFile:(e,n,r)=>C(()=>t.writeFile(c(e),p(n,r),!1,u(r))),appendFile:(e,n,r)=>C(()=>t.writeFile(c(e),p(n,r),!0,u(r))),stat:e=>C(()=>t.stat(c(e))),lstat:e=>C(()=>t.stat(c(e))),readdir:e=>C(()=>t.readdir(c(e))),mkdir:(e,n)=>C(()=>t.mkdir(c(e),d(n))),rm:(e,n)=>C(()=>t.remove(c(e),{op:`rm`,...n})),rmdir:(e,n)=>C(()=>t.remove(c(e),{op:`rmdir`,...n})),unlink:e=>C(()=>t.remove(c(e),{op:`unlink`})),rename:(e,n)=>C(()=>t.rename(c(e),c(n))),access:e=>C(()=>{if(!t.exists(c(e)))throw a(`ENOENT`,c(e),`access`)})},mount:t.mount,flush:t.flush,remount:t.remount}},y=e=>{let t=async(t,n)=>{let r=await e.readFile(c(t));return f(new Uint8Array(await r.arrayBuffer()),n)},s=async(t,r,i)=>{let a=c(t),o=n(a,u(i));await e.writeFile(a,p(r,i),o?{contentType:o}:void 0)},l=t=>e.remove(c(t)),d=async(t,n)=>{let r=o(c(t)),i=o(c(n));if(r===i)return;let a=await e.readFile(r);await e.writeFile(i,a),await e.remove(r)},m=async t=>{let n=o(c(t)),r=n?`${n}/`:``,i=new Set;for(let t of await e.list()){let e=o(t.path);if(r&&!e.startsWith(r))continue;let n=e.slice(r.length);n&&i.add(n.split(`/`)[0])}return[...i]},v=async(e,t)=>{},y=async(t,n)=>{let r=o(c(t));if(!n?.recursive){await e.remove(c(t));return}let i=`${r}/`,a=await e.list();await Promise.all(a.filter(e=>{let t=o(e.path);return t===r||t.startsWith(i)}).map(t=>e.remove(t.path).catch(()=>{})))},b=async t=>{let n=o(c(t)),s=await e.list(),l=s.find(e=>o(e.path)===n);if(l){let e=Date.parse(l.updatedAt??``);return r(l.size,Number.isFinite(e)?e:0)}if(s.some(e=>o(e.path).startsWith(`${n}/`)))return i();throw a(`ENOENT`,c(t),`stat`)},x={readFile:t,writeFile:s,unlink:l,rename:d,readdir:m,mkdir:v,rm:y,rmdir:y,stat:b,lstat:b,access:async e=>{await b(e)}};return{available:e.available,promises:x,readFile:(e,n,r)=>_(t(e,g(n)),h(n,r)),writeFile:(e,t,n,r)=>_(s(e,t,g(n)),h(n,r)),unlink:(e,t)=>_(l(e),t),rename:(e,t,n)=>_(d(e,t),n),readdir:(e,t,n)=>_(m(e),h(t,n)),mkdir:(e,t,n)=>_(v(),h(t,n)),rm:(e,t,n)=>_(y(e,g(t)),h(t,n)),stat:(e,t)=>_(b(e),t)}};function b(e,t){return t.memfs?v(e):y(e)}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
package/opfs/promises.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../node-fs-lrlD_zqB.cjs`);var{readFile:e,writeFile:t,appendFile:n,unlink:r,rename:i,readdir:a,mkdir:o,rm:s,rmdir:c,stat:l,lstat:u,access:d}=require(`../opfs.cjs`).promises;exports.access=d,exports.appendFile=n,exports.lstat=u,exports.mkdir=o,exports.readFile=e,exports.readdir=a,exports.rename=i,exports.rm=s,exports.rmdir=c,exports.stat=l,exports.unlink=r,exports.writeFile=t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../node-fs-DQn1TGJz.cjs`);const e=require(`../opfs.cjs`);var{readFile:t,writeFile:n,appendFile:r,unlink:i,rename:a,readdir:o,mkdir:s,rm:c,rmdir:l,stat:u,lstat:d,access:f}=e.promises,p=e.promises;exports.access=f,exports.appendFile=r,exports.default=p,exports.lstat=d,exports.mkdir=s,exports.readFile=t,exports.readdir=o,exports.rename=a,exports.rm=c,exports.rmdir=l,exports.stat=u,exports.unlink=i,exports.writeFile=n;
@@ -26,6 +26,26 @@ type Stats = {
26
26
  isSymbolicLink: () => boolean;
27
27
  };
28
28
 
29
+ declare const promises: {
30
+ readFile: (path: node_fs.PathLike, options?: ReadOptions) => Promise<Buffer | string>;
31
+ writeFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
32
+ appendFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
33
+ stat: (path: node_fs.PathLike) => Promise<Stats>;
34
+ lstat: (path: node_fs.PathLike) => Promise<Stats>;
35
+ readdir: (path: node_fs.PathLike) => Promise<string[]>;
36
+ mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
37
+ rm: (path: node_fs.PathLike, options?: {
38
+ recursive?: boolean;
39
+ force?: boolean;
40
+ }) => Promise<void>;
41
+ rmdir: (path: node_fs.PathLike, options?: {
42
+ recursive?: boolean;
43
+ }) => Promise<void>;
44
+ unlink: (path: node_fs.PathLike) => Promise<void>;
45
+ rename: (from: node_fs.PathLike, to: node_fs.PathLike) => Promise<void>;
46
+ access: (path: node_fs.PathLike) => Promise<void>;
47
+ };
48
+
29
49
  declare const readFile: (path: node_fs.PathLike, options?: ReadOptions) => Promise<Buffer | string>;
30
50
  declare const writeFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
31
51
  declare const appendFile: (path: node_fs.PathLike, data: WriteData, options?: WriteOptions) => Promise<void>;
@@ -35,6 +55,7 @@ declare const readdir: (path: node_fs.PathLike) => Promise<string[]>;
35
55
  declare const mkdir: (path: node_fs.PathLike, options?: MakeOptions) => Promise<void>;
36
56
  declare const rm: (path: node_fs.PathLike, options?: {
37
57
  recursive?: boolean;
58
+ force?: boolean;
38
59
  }) => Promise<void>;
39
60
  declare const rmdir: (path: node_fs.PathLike, options?: {
40
61
  recursive?: boolean;
@@ -43,4 +64,4 @@ declare const stat: (path: node_fs.PathLike) => Promise<Stats>;
43
64
  declare const lstat: (path: node_fs.PathLike) => Promise<Stats>;
44
65
  declare const access: (path: node_fs.PathLike) => Promise<void>;
45
66
 
46
- export { access, appendFile, lstat, mkdir, readFile, readdir, rename, rm, rmdir, stat, unlink, writeFile };
67
+ export { access, appendFile, promises as default, lstat, mkdir, readFile, readdir, rename, rm, rmdir, stat, unlink, writeFile };
package/opfs/promises.js CHANGED
@@ -1,6 +1,6 @@
1
- import "../node-fs-Bd_UUx1m.js";
1
+ import "../node-fs-CdKPXPtW.js";
2
2
  import { promises as e } from "../opfs.js";
3
3
  //#region src/lib/opfs/promises.ts
4
- var { readFile: t, writeFile: n, appendFile: r, unlink: i, rename: a, readdir: o, mkdir: s, rm: c, rmdir: l, stat: u, lstat: d, access: f } = e;
4
+ var { readFile: t, writeFile: n, appendFile: r, unlink: i, rename: a, readdir: o, mkdir: s, rm: c, rmdir: l, stat: u, lstat: d, access: f } = e, p = e;
5
5
  //#endregion
6
- export { f as access, r as appendFile, d as lstat, s as mkdir, t as readFile, o as readdir, a as rename, c as rm, l as rmdir, u as stat, i as unlink, n as writeFile };
6
+ export { f as access, r as appendFile, p as default, d as lstat, s as mkdir, t as readFile, o as readdir, a as rename, c as rm, l as rmdir, u as stat, i as unlink, n as writeFile };