@fkn/lib 0.9.33 → 0.9.35

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 (96) hide show
  1. package/account.cjs +1 -1
  2. package/account.d.ts +6 -6
  3. package/account.js +3 -3
  4. package/{api-Cc5qxCHP.d.ts → api-CfmRAze5.d.ts} +3 -1
  5. package/{api-BlAtp6lc.js → api-CtiKFcK3.js} +62 -47
  6. package/api-Djf-XdZ4.cjs +3 -0
  7. package/api.cjs +1 -1
  8. package/api.d.ts +2 -2
  9. package/api.js +1 -1
  10. package/attach-policy.cjs +1 -1
  11. package/attach-policy.d.ts +32 -7
  12. package/attach-policy.js +16 -18
  13. package/cloud/dns.d.ts +1 -1
  14. package/cloud/fetch.cjs +1 -1
  15. package/cloud/fetch.d.ts +1 -1
  16. package/cloud/fetch.js +1 -1
  17. package/cloud/fs/promises.d.ts +3 -4
  18. package/cloud/fs.cjs +1 -1
  19. package/cloud/fs.d.ts +2 -2
  20. package/cloud/fs.js +2 -2
  21. package/cloud/net.d.ts +1 -1
  22. package/cloud-B9Sd7V1g.js +422 -0
  23. package/cloud-DCWD_0sd.cjs +1 -0
  24. package/{cloud-D0Ebu5bX.d.ts → cloud-DxitkM7z.d.ts} +9 -5
  25. package/cloud.cjs +1 -1
  26. package/cloud.d.ts +4 -4
  27. package/cloud.js +2 -2
  28. package/{contract-CahPObYc.d.ts → contract-D37GGkou.d.ts} +146 -1
  29. package/contract.cjs +1 -0
  30. package/contract.d.ts +2 -2
  31. package/contract.js +28 -0
  32. package/desktop.d.ts +7 -7
  33. package/dgram.cjs +1 -1
  34. package/dgram.d.ts +5 -5
  35. package/dgram.js +1 -1
  36. package/dns.cjs +1 -1
  37. package/dns.d.ts +3 -3
  38. package/dns.js +1 -1
  39. package/extension-DJQ0oYdk.js +89 -0
  40. package/extension-DSrUjoLw.cjs +1 -0
  41. package/{extension-DNkuFy1Y.d.ts → extension-TRYu_aG-.d.ts} +36 -157
  42. package/extension.cjs +1 -1
  43. package/extension.d.ts +3 -3
  44. package/extension.js +3 -3
  45. package/fs/promises.cjs +1 -1
  46. package/fs/promises.d.ts +3 -3
  47. package/fs/promises.js +1 -1
  48. package/{fs-CYcErwc4.d.ts → fs--NhtUyYa.d.ts} +1 -1
  49. package/{fs-BSsWw8HM.js → fs-BvNZePtN.js} +4 -4
  50. package/{fs-DxDxbvRS.cjs → fs-D8RCGFNc.cjs} +1 -1
  51. package/fs.cjs +1 -1
  52. package/fs.d.ts +2 -2
  53. package/fs.js +1 -1
  54. package/hosts-C4-8lWwz.js +161 -0
  55. package/hosts-DD4rDeQH.cjs +1 -0
  56. package/http.d.ts +20 -20
  57. package/{index-DH3_12nU.d.ts → index-C_Lqta5o.d.ts} +385 -7
  58. package/{index-Cg6y_FTi.d.ts → index-kuPqkS_-.d.ts} +26 -3
  59. package/index.cjs +1 -1
  60. package/index.d.ts +25 -10
  61. package/index.js +68 -62
  62. package/{lib-duLPF_WZ.js → lib-B-jGWfsv.js} +597 -396
  63. package/lib-Cjd91q7g.cjs +53 -0
  64. package/{net-BXPEJToS.d.ts → net-0SlODFSM.d.ts} +2 -2
  65. package/net.cjs +1 -1
  66. package/net.d.ts +1 -1
  67. package/net.js +1 -1
  68. package/node-fs-BNTPsX5c.cjs +1 -0
  69. package/{node-fs-C9ECR_9H.js → node-fs-BZy9bzKd.js} +2 -2
  70. package/opfs/promises.d.ts +2 -2
  71. package/opfs.cjs +1 -1
  72. package/opfs.d.ts +2 -2
  73. package/opfs.js +1 -1
  74. package/package.json +1 -1
  75. package/packages.cjs +1 -1
  76. package/packages.d.ts +27 -27
  77. package/packages.js +1 -1
  78. package/{proxy-DxiJU5Y_.d.ts → proxy-Bmb2wxG1.d.ts} +2 -2
  79. package/proxy-CYcaW5ew.cjs +1 -0
  80. package/proxy-DDwY3AVG.js +60 -0
  81. package/react.d.ts +3 -3
  82. package/rooms.cjs +1 -1
  83. package/rooms.d.ts +8 -8
  84. package/rooms.js +1 -1
  85. package/{storage-Bo01npo9.js → storage-BbcnDCnc.js} +1 -1
  86. package/{storage-WZEvw3KN.d.ts → storage-ZrY4Y4L5.d.ts} +21 -2
  87. package/{storage-DEjjVCT2.cjs → storage-dSi2dUKx.cjs} +1 -1
  88. package/api-Beky02FK.cjs +0 -3
  89. package/cloud-BZmduWyX.cjs +0 -1
  90. package/cloud-DaVb11IV.js +0 -174
  91. package/extension-D70dtUvW.cjs +0 -1
  92. package/extension-DdXNlt9_.js +0 -84
  93. package/lib-DLM2M3_i.cjs +0 -53
  94. package/node-fs-DZPGCYWg.cjs +0 -1
  95. package/proxy-DexG-Wmk.cjs +0 -1
  96. package/proxy-VY0HRl2E.js +0 -75
@@ -0,0 +1,60 @@
1
+ import { a as e, d as t } from "./api-CtiKFcK3.js";
2
+ import { t as n } from "./busy-B189uX--.js";
3
+ //#region src/proxy.ts
4
+ var r = typeof FinalizationRegistry > "u" ? void 0 : new FinalizationRegistry((e) => e()), i = (e) => {
5
+ let t = e.body;
6
+ if (!t) return e;
7
+ let i = n("streamed response"), a = t.getReader(), o = new ReadableStream({
8
+ pull: async (e) => {
9
+ try {
10
+ let { done: t, value: n } = await a.read();
11
+ if (t) {
12
+ i(), e.close();
13
+ return;
14
+ }
15
+ e.enqueue(n);
16
+ } catch (t) {
17
+ i(), e.error(t);
18
+ }
19
+ },
20
+ cancel: async (e) => {
21
+ i(), await a.cancel(e).catch(() => {});
22
+ }
23
+ }), s = new Response(o, {
24
+ status: e.status,
25
+ statusText: e.statusText,
26
+ headers: e.headers
27
+ });
28
+ return r?.register(s, i), s;
29
+ }, a = async (e) => {
30
+ if (e != null) return typeof e == "string" || e instanceof ArrayBuffer || ArrayBuffer.isView(e) ? e : new Request("https://body.invalid/", {
31
+ method: "POST",
32
+ body: e,
33
+ duplex: "half"
34
+ }).arrayBuffer();
35
+ }, o = async (e) => {
36
+ if (e.method === "GET" || e.method === "HEAD") return;
37
+ let t = await e.clone().arrayBuffer();
38
+ return t.byteLength ? t : void 0;
39
+ }, s = async (n, r) => {
40
+ if (t(n), typeof n == "object" && n && !(n instanceof URL) && typeof n.url == "string") {
41
+ let t = n, s = {};
42
+ t.headers.forEach((e, t) => {
43
+ s[t] = e;
44
+ });
45
+ let c = await a(r?.body === void 0 ? await o(t) : r.body);
46
+ return e.then((e) => e.cloud.fetch(t.url, {
47
+ ...r,
48
+ method: r?.method ?? t.method,
49
+ headers: r?.headers ?? s,
50
+ body: c
51
+ })).then(i);
52
+ }
53
+ let s = n instanceof URL ? n.href : n, c = await a(r?.body);
54
+ return e.then((e) => e.cloud.fetch(s, r?.body === void 0 ? r : {
55
+ ...r,
56
+ body: c
57
+ })).then(i);
58
+ };
59
+ //#endregion
60
+ export { s as t };
package/react.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { t as connectButtonUrl } from "./connect-button-Cp0NS95-.js";
2
2
  import { CSSProperties, ReactElement } from "react";
3
3
  //#region src/react.d.ts
4
- type ConnectButtonProps = {
4
+ export type ConnectButtonProps = {
5
5
  className?: string;
6
6
  style?: CSSProperties;
7
7
  };
8
- declare const ConnectButton: ({ className, style }?: ConnectButtonProps) => ReactElement;
8
+ export declare const ConnectButton: ({ className, style }?: ConnectButtonProps) => ReactElement;
9
9
  //#endregion
10
- export { ConnectButton, ConnectButtonProps, connectButtonUrl };
10
+ export { connectButtonUrl };
package/rooms.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-Beky02FK.cjs"),n=require("./busy-Dv8wzE5M.cjs");var r=e.t({available:()=>f,create:()=>m,join:()=>h,open:()=>p}),i={wrongKey:`rooms: wrong room key`,inviteNoKey:`rooms: the invite carries no key`,badName:`rooms: the name is not one a room can have`,badKeyOption:`rooms: the key is not 32 bytes base64url`,noSuchMember:`rooms: no such member`,noSuchMessage:`rooms: no such message`,roomFull:`rooms: the room is full`,tooManyConnections:`rooms: too many connections`,tooManyBlocks:`rooms: too many blocks`,tooManyClaims:`rooms: too many claims`,mailboxFull:`rooms: the mailbox is full`,outOfStorage:`rooms: the owner is out of storage`,outOfQuota:`rooms: out of daily bandwidth`,blocked:`rooms: you are blocked from this room`,cannotSend:`rooms: you cannot send here`,permissionDenied:`rooms: permission denied`,notOwner:`rooms: not the room owner`,ownerNotRemovable:`rooms: the owner cannot be removed`,ownerKeepsEvery:`rooms: the owner keeps every permission`,removeYourself:`rooms: you cannot remove yourself`,needsAccount:`rooms: claiming needs an account`,needsPremium:`rooms: claiming needs premium`,nameClaimed:`rooms: the name is claimed`,notClaimed:`rooms: the room is not claimed`,noMailbox:`rooms: the room keeps no messages`,badLimit:`rooms: the limit is out of range`,tooFast:`rooms: sending too fast`,tooLarge:`rooms: the message is too large`,unavailable:`rooms: rooms are unavailable`,notEnabled:`rooms: rooms are not available`,alreadyJoined:`rooms: already joined`,notJoined:`rooms: not joined`,malformed:`rooms: malformed frame`,ended:`rooms: the room has ended`},a=(e,t)=>Object.assign(Error(t),{code:e}),o=e=>e instanceof Error&&typeof e.code==`string`,s={send:!0,receive:!0,maxMessageBytes:262144},c=async()=>{if(!t.c)return;let e=(await t.o(`a room`).catch(()=>void 0))?.rooms;return typeof e?.open==`function`?e:void 0},l=()=>{throw a(`unavailable`,i.unavailable)},u=e=>e===`blocked`?`blocked`:e===`not-found`?`ended`:`unavailable`,d=async e=>{let r=e.invite,c=e,l=0,d=e.self,f=e.owner,p=e.claimed,m=e.mailbox,h=await e.defaults().catch(()=>s),g=!1,_=new Set,v=new Set,y=n.t(`room`),b=()=>{},x=()=>{},S=new Promise(e=>{x=e}),C=e=>{let t=[...v];v.clear();for(let n of t)try{n(e)}catch{}},w=e=>{g||(g=!0,b(),_.clear(),y(),C(a(`closed`,i.ended)),x({reason:e}))},T=e=>{if(!g){e.type===`defaults`&&(h=e.defaults),e.type===`permissions`&&e.id===d.id&&(d={id:d.id,permissions:e.permissions,maxMessageBytes:e.maxMessageBytes}),e.type===`claim`&&(p=e.claimed,f=e.owner,p||(m=null));for(let t of[..._])try{t(e)}catch{}}},E=(e,t)=>{Promise.resolve(e.on(T)).catch(()=>{}),Promise.resolve(e.closed).then(e=>{t===l&&w(e.reason)},()=>{})},D=async(e,t)=>{if(typeof e?.join!=`function`)return w(`unavailable`);let n=await e.join(r).catch(()=>void 0);if(g||t!==l)return;if(!n)return w(`unavailable`);if(`error`in n)return w(u(n.error));if(n.self.id!==d.id)return Promise.resolve(n.leave()).catch(()=>{}),w(`unavailable`);c=n,d=n.self,f=n.owner,p=n.claimed,m=n.mailbox,E(n,t);let i=await n.defaults().catch(()=>void 0);i&&!g&&t===l&&(h=i)};b=t.l((e,t)=>{let n=l;l=t,!(g||n===0||n===t)&&(C(a(`unavailable`,i.unavailable)),D(e.rooms,t))}),E(e,l);let O=async e=>{if(g)throw a(`closed`,i.ended);let t=()=>{},n=new Promise((e,n)=>{t=n});v.add(t);try{return await Promise.race([Promise.resolve(e(c)),n])}catch(e){throw o(e)?e:a(`unavailable`,i.unavailable)}finally{v.delete(t)}},k=async e=>{let t=await O(e);if(`error`in t)throw a(t.error,t.message)},A=async e=>{let t=await O(e);if(typeof t==`object`&&t&&`error`in t)throw a(t.error,t.message);return t};return{id:e.id,name:e.name,key:e.key,invite:r,get self(){return d},get owner(){return f},get claimed(){return p},get mailbox(){return m},defaults:()=>h,members:()=>O(e=>e.members()),send:e=>k(t=>t.send(e)),edit:(e,t)=>k(n=>n.edit(e,t)),delete:(e,t)=>k(n=>n.delete(e,t)),backlog:(e,t)=>A(n=>n.backlog(e,t)),setDefault:(e,t)=>k(n=>n.setDefault(e,t)),limit:(e,t)=>k(n=>n.limit(e,t)),grant:(e,t)=>k(n=>n.grant(e,t)),revoke:(e,t)=>k(n=>n.revoke(e,t)),remove:e=>k(t=>t.remove(e)),block:e=>k(t=>t.block(e)),unblock:e=>k(t=>t.unblock(e)),claim:()=>k(e=>e.claim()),release:()=>k(e=>e.release()),usage:async()=>{let e=await A(e=>e.usage());return m=e,e},on:async e=>g?()=>{}:(_.add(e),()=>{_.delete(e)}),leave:async()=>{await Promise.resolve(c.leave()).catch(()=>{}),w(`left`)},closed:S}},f=async()=>{let e=await c();return e?e.available().catch(()=>!1):!1},p=async(e,t)=>{if(typeof e!=`string`||e.length===0||e.length>72)throw a(`invalid`,i.badName);let n=await c();if(!n)throw a(`unavailable`,i.unavailable);let r=await n.open(e,t).catch(l);if(`error`in r)throw a(r.error,r.message);return d(r)},m=async e=>{let t=await c();if(!t)throw a(`unavailable`,i.unavailable);let n=await t.create(e).catch(l);if(`error`in n)throw a(n.error,n.message);return d(n)},h=async(e,t)=>{let n=typeof e==`string`?e.indexOf(`.`):-1;if(n<=0||n===e.length-1)throw a(`invalid`,i.inviteNoKey);let r=await c();if(!r)throw a(`unavailable`,i.unavailable);let o=await r.join(e,t).catch(l);if(`error`in o)throw a(o.error,o.message);return d(o)};exports.available=f,exports.create=m,exports.join=h,exports.open=p,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-Djf-XdZ4.cjs"),n=require("./busy-Dv8wzE5M.cjs");var r=e.t({available:()=>f,create:()=>m,join:()=>h,open:()=>p}),i={wrongKey:`rooms: wrong room key`,inviteNoKey:`rooms: the invite carries no key`,badName:`rooms: the name is not one a room can have`,badKeyOption:`rooms: the key is not 32 bytes base64url`,noSuchMember:`rooms: no such member`,noSuchMessage:`rooms: no such message`,roomFull:`rooms: the room is full`,tooManyConnections:`rooms: too many connections`,tooManyBlocks:`rooms: too many blocks`,tooManyClaims:`rooms: too many claims`,mailboxFull:`rooms: the mailbox is full`,outOfStorage:`rooms: the owner is out of storage`,outOfQuota:`rooms: out of daily bandwidth`,blocked:`rooms: you are blocked from this room`,cannotSend:`rooms: you cannot send here`,permissionDenied:`rooms: permission denied`,notOwner:`rooms: not the room owner`,ownerNotRemovable:`rooms: the owner cannot be removed`,ownerKeepsEvery:`rooms: the owner keeps every permission`,removeYourself:`rooms: you cannot remove yourself`,needsAccount:`rooms: claiming needs an account`,needsPremium:`rooms: claiming needs premium`,nameClaimed:`rooms: the name is claimed`,notClaimed:`rooms: the room is not claimed`,noMailbox:`rooms: the room keeps no messages`,badLimit:`rooms: the limit is out of range`,tooFast:`rooms: sending too fast`,tooLarge:`rooms: the message is too large`,unavailable:`rooms: rooms are unavailable`,notEnabled:`rooms: rooms are not available`,alreadyJoined:`rooms: already joined`,notJoined:`rooms: not joined`,malformed:`rooms: malformed frame`,ended:`rooms: the room has ended`},a=(e,t)=>Object.assign(Error(t),{code:e}),o=e=>e instanceof Error&&typeof e.code==`string`,s={send:!0,receive:!0,maxMessageBytes:262144},c=async()=>{if(!t.c)return;let e=(await t.o(`a room`).catch(()=>void 0))?.rooms;return typeof e?.open==`function`?e:void 0},l=()=>{throw a(`unavailable`,i.unavailable)},u=e=>e===`blocked`?`blocked`:e===`not-found`?`ended`:`unavailable`,d=async e=>{let r=e.invite,c=e,l=0,d=e.self,f=e.owner,p=e.claimed,m=e.mailbox,h=await e.defaults().catch(()=>s),g=!1,_=new Set,v=new Set,y=n.t(`room`),b=()=>{},x=()=>{},S=new Promise(e=>{x=e}),C=e=>{let t=[...v];v.clear();for(let n of t)try{n(e)}catch{}},w=e=>{g||(g=!0,b(),_.clear(),y(),C(a(`closed`,i.ended)),x({reason:e}))},T=e=>{if(!g){e.type===`defaults`&&(h=e.defaults),e.type===`permissions`&&e.id===d.id&&(d={id:d.id,permissions:e.permissions,maxMessageBytes:e.maxMessageBytes}),e.type===`claim`&&(p=e.claimed,f=e.owner,p||(m=null));for(let t of[..._])try{t(e)}catch{}}},E=(e,t)=>{Promise.resolve(e.on(T)).catch(()=>{}),Promise.resolve(e.closed).then(e=>{t===l&&w(e.reason)},()=>{})},D=async(e,t)=>{if(typeof e?.join!=`function`)return w(`unavailable`);let n=await e.join(r).catch(()=>void 0);if(g||t!==l)return;if(!n)return w(`unavailable`);if(`error`in n)return w(u(n.error));if(n.self.id!==d.id)return Promise.resolve(n.leave()).catch(()=>{}),w(`unavailable`);c=n,d=n.self,f=n.owner,p=n.claimed,m=n.mailbox,E(n,t);let i=await n.defaults().catch(()=>void 0);i&&!g&&t===l&&(h=i)};b=t.l((e,t)=>{let n=l;l=t,!(g||n===0||n===t)&&(C(a(`unavailable`,i.unavailable)),D(e.rooms,t))}),E(e,l);let O=async e=>{if(g)throw a(`closed`,i.ended);let t=()=>{},n=new Promise((e,n)=>{t=n});v.add(t);try{return await Promise.race([Promise.resolve(e(c)),n])}catch(e){throw o(e)?e:a(`unavailable`,i.unavailable)}finally{v.delete(t)}},k=async e=>{let t=await O(e);if(`error`in t)throw a(t.error,t.message)},A=async e=>{let t=await O(e);if(typeof t==`object`&&t&&`error`in t)throw a(t.error,t.message);return t};return{id:e.id,name:e.name,key:e.key,invite:r,get self(){return d},get owner(){return f},get claimed(){return p},get mailbox(){return m},defaults:()=>h,members:()=>O(e=>e.members()),send:e=>k(t=>t.send(e)),edit:(e,t)=>k(n=>n.edit(e,t)),delete:(e,t)=>k(n=>n.delete(e,t)),backlog:(e,t)=>A(n=>n.backlog(e,t)),setDefault:(e,t)=>k(n=>n.setDefault(e,t)),limit:(e,t)=>k(n=>n.limit(e,t)),grant:(e,t)=>k(n=>n.grant(e,t)),revoke:(e,t)=>k(n=>n.revoke(e,t)),remove:e=>k(t=>t.remove(e)),block:e=>k(t=>t.block(e)),unblock:e=>k(t=>t.unblock(e)),claim:()=>k(e=>e.claim()),release:()=>k(e=>e.release()),usage:async()=>{let e=await A(e=>e.usage());return m=e,e},on:async e=>g?()=>{}:(_.add(e),()=>{_.delete(e)}),leave:async()=>{await Promise.resolve(c.leave()).catch(()=>{}),w(`left`)},closed:S}},f=async()=>{let e=await c();return e?e.available().catch(()=>!1):!1},p=async(e,t)=>{if(typeof e!=`string`||e.length===0||e.length>72)throw a(`invalid`,i.badName);let n=await c();if(!n)throw a(`unavailable`,i.unavailable);let r=await n.open(e,t).catch(l);if(`error`in r)throw a(r.error,r.message);return d(r)},m=async e=>{let t=await c();if(!t)throw a(`unavailable`,i.unavailable);let n=await t.create(e).catch(l);if(`error`in n)throw a(n.error,n.message);return d(n)},h=async(e,t)=>{let n=typeof e==`string`?e.indexOf(`.`):-1;if(n<=0||n===e.length-1)throw a(`invalid`,i.inviteNoKey);let r=await c();if(!r)throw a(`unavailable`,i.unavailable);let o=await r.join(e,t).catch(l);if(`error`in o)throw a(o.error,o.message);return d(o)};exports.available=f,exports.create=m,exports.join=h,exports.open=p,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}});
package/rooms.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { F as RoomBacklog, G as RoomOpenOptions, H as RoomMailbox, I as RoomCreateOptions, J as RoomsErrorCode, K as RoomPermission, L as RoomDefaults, R as RoomEnd, U as RoomMember, V as RoomJoinOptions, W as RoomMessage, q as RoomPermissions, z as RoomEvent } from "./contract-CahPObYc.js";
1
+ import { $ as RoomPermissions, G as RoomEvent, H as RoomCreateOptions, J as RoomMailbox, Q as RoomPermission, U as RoomDefaults, V as RoomBacklog, W as RoomEnd, X as RoomMessage, Y as RoomMember, Z as RoomOpenOptions, et as RoomsErrorCode, q as RoomJoinOptions } from "./contract-D37GGkou.js";
2
2
  declare namespace rooms_d_exports {
3
3
  export { RoomCreateOptions as CreateOptions, RoomJoinOptions as JoinOptions, RoomOpenOptions as OpenOptions, Room, RoomBacklog, RoomDefaults, RoomEnd, RoomEvent, RoomMailbox, RoomMember, RoomMessage, RoomPermission, RoomPermissions, RoomsError, RoomsErrorCode, available, create, join, open };
4
4
  }
5
5
  /** Thrown by every member of this namespace. Match on `code`, never on the message. */
6
- type RoomsError = Error & {
6
+ export type RoomsError = Error & {
7
7
  code: RoomsErrorCode;
8
8
  };
9
9
  /**
10
10
  * A joined room. The same object survives a broker replacement, so it is safe to hold for as long
11
11
  * as the chat lasts.
12
12
  */
13
- type Room = {
13
+ export type Room = {
14
14
  /** `<scope>/<name>`: the name under this app's own scope, or under `global` */
15
15
  readonly id: string;
16
16
  readonly name: string;
@@ -55,16 +55,16 @@ type Room = {
55
55
  readonly closed: Promise<RoomEnd>;
56
56
  };
57
57
  /** Whether this realm can join a room: false in Node, false in a worker nothing bridged, false against a shell older than named rooms. Answers rather than rejecting. */
58
- declare const available: () => Promise<boolean>;
58
+ export declare const available: () => Promise<boolean>;
59
59
  /**
60
60
  * Open a room by name: a name under this app's own scope, or `global/<name>` for the shared one.
61
61
  * Nobody there means the room comes into being with you as its owner; somebody there means you join
62
62
  * them, and the key has to match theirs. Share `room.invite` to let anyone else in.
63
63
  */
64
- declare const open: (name: string, options?: RoomOpenOptions) => Promise<Room>;
64
+ export declare const open: (name: string, options?: RoomOpenOptions) => Promise<Room>;
65
65
  /** Open a room under a random name and become its owner. Share `room.invite` to let anyone else in. */
66
- declare const create: (options?: RoomCreateOptions) => Promise<Room>;
66
+ export declare const create: (options?: RoomCreateOptions) => Promise<Room>;
67
67
  /** `invite` is `room.invite`: a key and a room id joined by a dot. */
68
- declare const join: (invite: string, options?: RoomJoinOptions) => Promise<Room>;
68
+ export declare const join: (invite: string, options?: RoomJoinOptions) => Promise<Room>;
69
69
  //#endregion
70
- export { type RoomCreateOptions as CreateOptions, type RoomJoinOptions as JoinOptions, type RoomOpenOptions as OpenOptions, Room, type RoomBacklog, type RoomDefaults, type RoomEnd, type RoomEvent, type RoomMailbox, type RoomMember, type RoomMessage, type RoomPermission, type RoomPermissions, RoomsError, type RoomsErrorCode, available, create, join, open, rooms_d_exports as t };
70
+ export { type RoomCreateOptions as CreateOptions, type RoomJoinOptions as JoinOptions, type RoomOpenOptions as OpenOptions, type RoomBacklog, type RoomDefaults, type RoomEnd, type RoomEvent, type RoomMailbox, type RoomMember, type RoomMessage, type RoomPermission, type RoomPermissions, type RoomsErrorCode, rooms_d_exports as t };
package/rooms.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { c as t, l as n, o as r } from "./api-BlAtp6lc.js";
2
+ import { c as t, l as n, o as r } from "./api-CtiKFcK3.js";
3
3
  import { t as i } from "./busy-B189uX--.js";
4
4
  //#region src/rooms.ts
5
5
  var a = /* @__PURE__ */ e({
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { a as t } from "./api-BlAtp6lc.js";
2
+ import { a as t } from "./api-CtiKFcK3.js";
3
3
  import { STORAGE_NOT_FOUND as n } from "./messages.js";
4
4
  //#region src/storage.ts
5
5
  var r = /* @__PURE__ */ e({
@@ -1,4 +1,6 @@
1
- //#region src/storage.d.ts
1
+ declare namespace storage_d_exports {
2
+ export { CloudAvailability, EncryptionStatus, FileEntry, SealedRead, StorageLockedError, StorageNotFoundError, StorageQuota, WriteData, availability, available, encryption, isNotFound, list, quota, readFile, readFileSealed, remove, unlock, writeFile };
3
+ }
2
4
  type FileEntry = {
3
5
  path: string;
4
6
  size: number;
@@ -18,6 +20,7 @@ type EncryptionStatus = {
18
20
  enrolled: boolean;
19
21
  keyEpoch: number | null;
20
22
  };
23
+ type WriteData = Blob | ArrayBuffer | Uint8Array | string;
21
24
  declare class StorageLockedError extends Error {
22
25
  code: string;
23
26
  constructor();
@@ -42,7 +45,19 @@ declare class StorageNotFoundError extends Error {
42
45
  }
43
46
  /** Whether an error from this module means the path is empty, as opposed to unreadable. */
44
47
  declare const isNotFound: (error: unknown) => boolean;
48
+ declare const available: () => Promise<boolean>;
49
+ type CloudAvailability = 'connected' | 'disconnected' | 'unknown';
50
+ /**
51
+ * Whether the cloud half is backed by an account, as three answers rather than two:
52
+ * 'disconnected' is an ANSWER (signed out, or the api refusing the stored token), 'unknown'
53
+ * means nobody could be asked, including a broker that never came up. Always settles within
54
+ * the probe deadline. A caller owing data to the cloud may drop that obligation only on
55
+ * 'disconnected'; treating 'unknown' the same silently loses the write.
56
+ */
57
+ declare const availability: () => Promise<CloudAvailability>;
58
+ declare const list: () => Promise<FileEntry[]>;
45
59
  declare const quota: () => Promise<StorageQuota>;
60
+ declare const readFile: (path: string) => Promise<Blob>;
46
61
  /** The bytes of a cloud object and the seal time they carry, as an ISO string or null. */
47
62
  type SealedRead = {
48
63
  data: Uint8Array;
@@ -63,7 +78,11 @@ type SealedRead = {
63
78
  * describe the bytes returned beside it. `readFile` is unchanged and unaffected.
64
79
  */
65
80
  declare const readFileSealed: (path: string) => Promise<SealedRead>;
81
+ declare const writeFile: (path: string, data: WriteData, opts?: {
82
+ contentType?: string;
83
+ }) => Promise<void>;
84
+ declare const remove: (path: string) => Promise<void>;
66
85
  declare const encryption: () => Promise<EncryptionStatus>;
67
86
  declare const unlock: () => Promise<boolean>;
68
87
  //#endregion
69
- export { StorageNotFoundError as a, isNotFound as c, unlock as d, StorageLockedError as i, quota as l, FileEntry as n, StorageQuota as o, SealedRead as r, encryption as s, EncryptionStatus as t, readFileSealed as u };
88
+ export { StorageNotFoundError as a, isNotFound as c, storage_d_exports as d, unlock as f, StorageLockedError as i, quota as l, FileEntry as n, StorageQuota as o, SealedRead as r, encryption as s, EncryptionStatus as t, readFileSealed as u };
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-Beky02FK.cjs"),n=require("./messages.cjs");var r=e.t({StorageLockedError:()=>i,StorageNotFoundError:()=>a,availability:()=>p,available:()=>c,encryption:()=>x,isNotFound:()=>o,list:()=>m,quota:()=>h,readFile:()=>g,readFileSealed:()=>v,remove:()=>b,unlock:()=>S,writeFile:()=>y}),i=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: connect the app again to open encrypted data`)}},a=class extends Error{code=n.STORAGE_NOT_FOUND;constructor(e=`storage: no object at that path`){super(e)}},o=e=>e?.code===n.STORAGE_NOT_FOUND,s=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new i:o(e)||e instanceof Error&&(/^not found$/i.test(e.message)||/\(404\)$/.test(e.message))?new a(e.message):e},c=()=>t.a.then(e=>e.cloud.fs.available()).catch(()=>!1),l=8e3,u=1e3,d=!1,f=async()=>{let e=(await t.a).cloud.fs;return typeof e.availability==`function`?e.availability():await e.available()?`connected`:`disconnected`},p=async()=>{let e=d?u:l,t=await new Promise(t=>{let n=setTimeout(()=>t(`timeout`),e);f().then(e=>{clearTimeout(n),t(e)},()=>{clearTimeout(n),t(`unknown`)})});return t===`timeout`?(d=!0,`unknown`):(d=!1,t)},m=()=>t.a.then(e=>e.cloud.fs.list()),h=()=>t.a.then(e=>e.cloud.fs.quota()),g=async e=>{let n=await(await t.a).cloud.fs.readFile(e).catch(s);return new Blob([n])},_=e=>{if(e===null||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()},v=async e=>{let n=(await t.a).cloud.fs;if(typeof n.readFileSealed!=`function`)return{data:await n.readFile(e).catch(s),sealedAt:null};let r=await n.readFileSealed(e).catch(s);return{data:r.bytes,sealedAt:_(r.sealedAt)}},y=async(e,n,r)=>{let i=await t.a,a=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await i.cloud.fs.writeFile(e,a,r?.contentType??null).catch(s)},b=e=>t.a.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),x=()=>t.a.then(e=>e.cloud.fs.encryption()),S=()=>t.a.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});
1
+ const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-Djf-XdZ4.cjs"),n=require("./messages.cjs");var r=e.t({StorageLockedError:()=>i,StorageNotFoundError:()=>a,availability:()=>p,available:()=>c,encryption:()=>x,isNotFound:()=>o,list:()=>m,quota:()=>h,readFile:()=>g,readFileSealed:()=>v,remove:()=>b,unlock:()=>S,writeFile:()=>y}),i=class extends Error{code=`FKN_E2E_LOCKED`;constructor(){super(`storage locked: connect the app again to open encrypted data`)}},a=class extends Error{code=n.STORAGE_NOT_FOUND;constructor(e=`storage: no object at that path`){super(e)}},o=e=>e?.code===n.STORAGE_NOT_FOUND,s=e=>{throw e instanceof Error&&e.message.startsWith(`fkn:e2e-locked`)?new i:o(e)||e instanceof Error&&(/^not found$/i.test(e.message)||/\(404\)$/.test(e.message))?new a(e.message):e},c=()=>t.a.then(e=>e.cloud.fs.available()).catch(()=>!1),l=8e3,u=1e3,d=!1,f=async()=>{let e=(await t.a).cloud.fs;return typeof e.availability==`function`?e.availability():await e.available()?`connected`:`disconnected`},p=async()=>{let e=d?u:l,t=await new Promise(t=>{let n=setTimeout(()=>t(`timeout`),e);f().then(e=>{clearTimeout(n),t(e)},()=>{clearTimeout(n),t(`unknown`)})});return t===`timeout`?(d=!0,`unknown`):(d=!1,t)},m=()=>t.a.then(e=>e.cloud.fs.list()),h=()=>t.a.then(e=>e.cloud.fs.quota()),g=async e=>{let n=await(await t.a).cloud.fs.readFile(e).catch(s);return new Blob([n])},_=e=>{if(e===null||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:t.toISOString()},v=async e=>{let n=(await t.a).cloud.fs;if(typeof n.readFileSealed!=`function`)return{data:await n.readFile(e).catch(s),sealedAt:null};let r=await n.readFileSealed(e).catch(s);return{data:r.bytes,sealedAt:_(r.sealedAt)}},y=async(e,n,r)=>{let i=await t.a,a=n instanceof Blob?new Uint8Array(await n.arrayBuffer()):n;await i.cloud.fs.writeFile(e,a,r?.contentType??null).catch(s)},b=e=>t.a.then(t=>t.cloud.fs.remove(e)).then(()=>void 0),x=()=>t.a.then(e=>e.cloud.fs.encryption()),S=()=>t.a.then(e=>e.cloud.fs.unlock());Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return b}});
package/api-Beky02FK.cjs DELETED
@@ -1,3 +0,0 @@
1
- let e=require("osra");var t=1e4,n=16,r=e=>{let t;try{t=e.contentWindow}catch{return!0}if(!t)return!0;try{let e=t.location.href;return e!==``&&e!==`about:blank`}catch{return!0}},i=(e,i=t)=>new Promise(t=>{if(r(e))return t();let a=()=>{clearInterval(o),clearTimeout(s),e.removeEventListener(`load`,a),t()},o=setInterval(()=>{r(e)&&a()},n),s=setTimeout(a,i);e.addEventListener(`load`,a)}),a=32,o=8,s=120,c=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),l=typeof CSS<`u`&&CSS.supports(`clip-path`,`polygon(nonzero, 0px 0px, 1px 0px, 1px 1px)`),u=e=>{let t=e.style;t.setProperty(`display`,`block`,`important`),t.setProperty(`position`,`fixed`,`important`),t.setProperty(`top`,`0`,`important`),t.setProperty(`left`,`0`,`important`),t.setProperty(`width`,`100%`,`important`),t.setProperty(`height`,`100%`,`important`),t.setProperty(`border`,`none`,`important`),t.setProperty(`padding`,`0`,`important`),t.setProperty(`box-sizing`,`border-box`,`important`),t.setProperty(`clip-path`,`inset(100%)`,`important`),t.setProperty(`background`,`transparent`),t.setProperty(`color-scheme`,`normal`),t.setProperty(`z-index`,`2147483647`),e.setAttribute(`title`,`FKN`)},d=({x:e,y:t,width:n,height:r,radius:i})=>{if(!i)return`M${e} ${t}h${n}v${r}h${-n}Z`;let a=Math.min(n,r)/2,[o,s,c,l]=i.map(e=>Math.max(0,Math.min(e,a)));return`M${e+o} ${t}h${n-o-s}a${s} ${s} 0 0 1 ${s} ${s}v${r-s-c}a${c} ${c} 0 0 1 ${-c} ${c}h${-(n-c-l)}a${l} ${l} 0 0 1 ${-l} ${-l}v${-(r-l-o)}a${o} ${o} 0 0 1 ${o} ${-o}Z`},f=()=>c&&l,p=({x:e,y:t,width:n,height:r})=>[[e,t],[e+n,t],[e+n,t+r],[e,t+r],[e,t]],ee=e=>{let t=e[0];if(!t)return[];let n=p(t)[0],r=[];return e.forEach((t,i)=>{r.push(...p(t)),i>0&&i<e.length-1&&r.push(n)}),r},m=e=>`polygon(nonzero, ${ee(e).map(([e,t])=>`${e}px ${t}px`).join(`, `)})`,h=({x:e,y:t,width:n,height:r,radius:i},a)=>{let o=`${t}px ${a.width-e-n}px ${a.height-t-r}px ${e}px`;return i?`inset(${o} round ${i.map(e=>`${e}px`).join(` `)})`:`inset(${o})`},g=(e,t,n)=>{if(t)return`none`;if(e.length===0)return`inset(100%)`;let r=e.length===1?e[0]:void 0;return r?h(r,n):l&&e.length<=5&&!e.some(e=>e.radius)?m(e):`path('${e.map(d).join(``)}')`},_=e=>{if(e.length<2)return null;let t=Math.min(...e.map(e=>e.x)),n=Math.min(...e.map(e=>e.y));return{x:t,y:n,width:Math.max(...e.map(e=>e.x+e.width))-t,height:Math.max(...e.map(e=>e.y+e.height))-n}},te=(e,t,n)=>t>=e.x&&t<e.x+e.width&&n>=e.y&&n<e.y+e.height,ne=16,v=(e,t,n)=>t===1?e*ne:t===2?e*n:e,y=(e,t,n)=>{let r=getComputedStyle(e);return n!==0&&/auto|scroll/.test(r.overflowY)&&e.scrollHeight>e.clientHeight?!0:t!==0&&/auto|scroll/.test(r.overflowX)&&e.scrollWidth>e.clientWidth},re=(e,t,n)=>{for(let r=e;r;r=r.parentElement)if(y(r,t,n))return r;return document.scrollingElement},b=null,x=null,S=e=>({width:e.offsetWidth||window.innerWidth,height:e.offsetHeight||window.innerHeight}),C=e=>{if(!x||!b||!te(x,e.clientX,e.clientY))return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t||t===b)return;let n=v(e.deltaX,e.deltaMode,window.innerWidth),r=v(e.deltaY,e.deltaMode,window.innerHeight),i=re(t,n,r);i&&(i.scrollBy({left:n,top:r,behavior:`instant`}),e.cancelable&&e.preventDefault())},ie=e=>{let t=x!==null;x=e,t!==(e!==null)&&(e?window.addEventListener(`wheel`,C,{capture:!0,passive:!1}):window.removeEventListener(`wheel`,C,{capture:!0}))},w=0,ae=e=>{if(e===w)return;w=e;let t=document.documentElement.style;e>0?(t.setProperty(`margin-top`,`${e}px`,`important`),t.setProperty(`--fkn-inset-top`,`${e}px`)):(t.removeProperty(`margin-top`),t.removeProperty(`--fkn-inset-top`))},T=(e,{modal:t,rects:n,inset:r},i)=>{if(ae(r),!c){let r=t||n.length>0;e.style.setProperty(`pointer-events`,r?`auto`:`none`,`important`),e.style.setProperty(`visibility`,r?`visible`:`hidden`,`important`);return}let a=g(n,t,i),o=a===`none`||CSS.supports(`clip-path`,a)?a:`inset(100%)`;e.style.setProperty(`clip-path`,o,`important`),ie(t||o!==a?null:_(n))},E=e=>{if(typeof e!=`object`||!e)return 0;let{top:t}=e;return typeof t!=`number`||!Number.isFinite(t)||t<=0?0:Math.min(Math.round(t),s)},D=e=>{if(!(!Array.isArray(e)||e.length!==4)&&e.every(e=>typeof e==`number`&&Number.isFinite(e)&&e>=0))return e.some(e=>e>0)?e:void 0},oe=(e,t)=>{if(typeof e!=`object`||!e)return null;let{x:n,y:r,width:i,height:a}=e;if(![n,r,i,a].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let o=t.width,s=t.height,c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(0,Math.min(Math.round(r),s)),u=Math.max(c,Math.min(Math.round(n+i),o)),d=Math.max(l,Math.min(Math.round(r+a),s)),f=D(e.radius);return{x:c,y:l,width:u-c,height:d-l,...f?{radius:f}:{}}},O={"not-rendered":`this page is not painting it at all, so it or an ancestor is display:none, or the frame was moved out of the layout`,clipped:`it is clipped away or positioned outside the viewport`,"not-shown":`it is rendered but would not be seen, so either something is drawn over it, or it or an ancestor has opacity below 1, visibility:hidden, or a filter`},se=e=>Array.isArray(e)?e.slice(0,o).flatMap(e=>{if(typeof e!=`object`||!e)return[];let{kind:t,cause:n,level:r}=e;return typeof t!=`string`||t.length>40||typeof n!=`string`||!(n in O)||r!==`full`&&r!==`liveness`?[]:[{kind:t,cause:n,level:r}]}):[],k=new Set,ce=e=>{for(let{kind:t,cause:n,level:r}of e)k.has(t)||(k.add(t),console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${O[n]}. Nobody using this page can see or answer it.
2
- @fkn/lib draws its UI inside <iframe title="FKN"> and sets display, position, top, left, width, height, border, padding, box-sizing, clip-path and z-index on that element. Leave those as they are, then check for an ancestor with opacity, visibility, display or a clipping transform, and for an element stacked above it.`+(r===`liveness`?`
3
- This browser reports limited detail, so the cause above is a best guess.`:``)))},A=(e,t)=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,a):[]).map(e=>oe(e,t)).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r,hidden:se(n.hidden),inset:E(n.inset)}},le=()=>b!==null,j=null,M=null,N=()=>{if(!b||j===null)return;let e=S(b),t=A(j,e);t&&T(b,t,e)},P=e=>{typeof ResizeObserver>`u`||(M??=new ResizeObserver(N),M.disconnect(),M.observe(e))},F=e=>{u(e),T(e,{modal:!1,rects:[],hidden:[],inset:0},S(e)),b=e,P(e)},I=e=>{if(!b)return;let t=S(b),n=A(e,t);n&&(j=e,T(b,n,t),ce(n.hidden))},L=`https://fkn.app`,R=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,z=typeof globalThis<`u`&&globalThis.crossOriginIsolated===!0,B=`${L}/api${z?`?coi=1`:``}`,V=`fkn-api-port`,H=`fkn-api-port-ack`,U=2e3,W=()=>{if(!R||typeof window>`u`||window.parent===window)return Promise.resolve(void 0);let e;try{e=window.parent}catch{return Promise.resolve(void 0)}let t=new MessageChannel;return new Promise(n=>{let r=e=>{if(clearTimeout(a),t.port1.removeEventListener(`message`,i),!e)try{t.port1.close()}catch{}n(e)},i=e=>{e.data?.type===H&&r(t.port1)},a=setTimeout(()=>r(void 0),U);t.port1.addEventListener(`message`,i),t.port1.start();try{e.postMessage({type:V},L,[t.port2])}catch{r(void 0)}})},G=`fullscreen; clipboard-write`,ue=`${G}; cross-origin-isolated`,K,de=()=>{if(K||!R)return K;let e=R.querySelector(`iframe[src="${B}"]`);if(e)K=e;else{let e=R.createElement(`iframe`);e.setAttribute(`allow`,z?ue:G),e.src=B,R.body.appendChild(e),K=e}return F(K),K},q=(async()=>{if(!R)return;let e=await W();if(e)return{receive:e,emit:e};let t=de();if(!t)return;await i(t);let n=t.contentWindow;return n?{receive:window,emit:n}:void 0})(),fe=e=>{let t,n=()=>{},r=new Promise(e=>{n=e}),i=new Set,a=new Set,o=0,s=0;(async()=>{for await(let r of e){let e=(t?.epoch??0)+1;t={remote:r,epoch:e},e===1&&n(r);let o=[...a];a.clear();let s=Error(`FKN: the broker was replaced while this call was pending; retry it`);for(let e of o)try{e(s)}catch{}for(let t of[...i])try{t(r,e)}catch{}}})().catch(()=>{});let c=async(e,n)=>{let i=t?.remote??await r;for(let t of e.slice(0,-1))i=i[t];let c=i[e[e.length-1]??``];o=Date.now(),s+=1;let l=()=>{},u=new Promise((e,t)=>{l=t});a.add(l);try{return await Promise.race([Promise.resolve(c.apply(i,n)),u])}finally{--s,a.delete(l),o=Date.now()}},l=new Map,u=e=>{let n=e.join(`\0`),r=l.get(n);if(r)return r;let i=new Proxy(function(){},{get:(n,r)=>{if(typeof r!=`string`||r===`then`)return;let i=t;if(i){let t=i.remote;for(let n of e)t=t?.[n];if(t?.[r]===void 0)return}return u([...e,r])},apply:(t,n,r)=>c(e,r)});return l.set(n,i),i};return{facade:u([]),first:r.then(()=>{}),current:()=>t,onEpoch:e=>{if(i.add(e),t)try{e(t.remote,t.epoch)}catch{}return()=>{i.delete(e)}},lastCall:()=>o,inFlight:()=>s}},pe=typeof window<`u`||typeof self<`u`,me=async()=>{if(typeof window<`u`)return q;if(typeof self<`u`)return{receive:self,emit:self}},J=fe({async*[Symbol.asyncIterator](){let t=await me();if(!t){await new Promise(()=>{});return}yield*(0,e.expose)({},{key:`fkn-api`,transport:t})}}),Y=J.first.then(()=>J.facade),X=8e3,he=1e3,Z=!1,Q=class extends Error{constructor(e,t){super(`@fkn/lib: no broker connection within ${t}ms, so ${e} could not be requested`),this.name=`BrokerUnreachableError`}},ge=e=>{let t=Z?he:X;return Promise.race([Y,new Promise((n,r)=>setTimeout(()=>{Z=!0,r(new Q(e,t))},t))])},$=J.onEpoch,_e=J.current,ve=J.lastCall,ye=J.inFlight;$(e=>{le()&&e.overlay.setHost(I,{exactClips:f()}).catch(()=>{})}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return q}});
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./lib-DLM2M3_i.cjs"),n=require("./api-Beky02FK.cjs"),r=require("./busy-Dv8wzE5M.cjs"),i=require("./proxy-DexG-Wmk.cjs"),a=require("./attach-policy.cjs"),o=require("./dns.cjs"),s=require("./cloud/fs.cjs"),c=require("./net.cjs"),l=require("./dgram.cjs"),u=require("./http.cjs");let d=require("osra");var f={scope:`frame.fetchRead`,category:`network`,severity:3,unsafe:!0,title:`Read your account data on this site`,description:`Lets the app read pages and data from this site as you, using the session in the frame.`},p={scope:`frame.fetchWrite`,category:`network`,severity:3,unsafe:!0,title:`Change your account data on this site`,description:`Lets the app send changes to this site as you, using the session in the frame.`},m=new Set([`GET`,`HEAD`,`OPTIONS`]),h=(e,t)=>m.has((t?.method??`GET`).toUpperCase())?f:p,g=e=>e,_=`autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write`,v=2e4,y=65e3,b=3e4,x=5e3,S=new Set([]),C=()=>`https://fkn.app`,w=e=>!e||e===`about:blank`,T=e=>e?``:`incognito-${crypto.randomUUID()}`,E=({target:e,session:t,domains:n})=>{let r=new URL(`/attach-frame`,C());return e&&r.searchParams.set(`url`,e),t&&r.searchParams.set(`session`,t),n.length&&r.searchParams.set(`domains`,n.join(`,`)),r.href},D=(e,t,n)=>{let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))},O=(e,t)=>{let n=()=>{a(),t()},r=e.parentNode,i=new MutationObserver(()=>{(!e.isConnected||e.parentNode!==r)&&(a(),t())}),a=()=>{window.removeEventListener(`pagehide`,n),i.disconnect()};window.addEventListener(`pagehide`,n,{once:!0}),r&&i.observe(r,{childList:!0}),e.isConnected||(a(),t())},k=()=>Object.assign(Error(`cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe`),{name:t.u}),A=(e,t)=>{let n=[...e.split(`;`),...t.split(`;`)].map(e=>e.trim()).filter(Boolean);return[...new Set(n)].join(`; `)},j=[300,1200,4e3],M=e=>{let t=()=>{if(!e.isConnected)return;let t=e.style.height,n=e.getBoundingClientRect();n.height&&(e.style.height=`${n.height-1}px`,setTimeout(()=>{e.style.height=t},50))};t();for(let e of j)setTimeout(t,e)},N=e=>{let t=e.getAttribute(`sandbox`);if(t===null)return;let n=new Set(t.toLowerCase().split(/\s+/).filter(Boolean)),r=[`allow-scripts`,`allow-same-origin`].filter(e=>!n.has(e));if(r.length)throw Error(`cloud.attachFrame: the iframe's sandbox attribute must include ${r.join(` and `)} for the render proxy to load`)},P=async({iframe:e,domains:i=[],syncCookies:o=!0,lockdown:s=!1})=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);if(s)throw Error(`cloud.attachFrame does not support lockdown; use the extension backend for a sealed frame`);if(!e.isConnected)throw Error(`cloud.attachFrame: the iframe must be connected to the document before attaching`);N(e);let c=e.getAttribute(`src`)??``,l=(()=>{if(w(c))return null;try{return new URL(e.src||c,location.href)}catch{throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${c}`)}})();if(l){let e=new URL(`/attach-frame`,C());if(l.origin===e.origin&&l.pathname===e.pathname)throw Error(`cloud.attachFrame: this iframe is already attached; navigate with the Frame returned by that attach or use a fresh iframe`)}let u=l?.href??``;u&&t.s(u);let f=u,p=T(o),m=a.normalizeDeclaredHosts(i),j=new Set;try{j.add(new URL(u).origin)}catch{}let P=new AbortController,F=e.referrerPolicy,I=e.allow;if(e.referrerPolicy=`origin`,e.allow=A(_,e.allow),e.src=E({target:u,session:p,domains:m}),!e.contentWindow)throw Error(`cloud.attachFrame: the iframe window is not available`);try{let i=await D((0,d.expose)({},{key:`fkn-attach-frame`,origin:C(),transport:{receive:window,emit:e.contentWindow},unregisterSignal:P.signal,revivableModules:g(t.W)}),v,`cloud.attachFrame: timed out connecting to the render proxy page`);await D(i.ready(),y,`cloud.attachFrame: the render proxy never became ready`),u&&M(e),O(e,()=>P.abort());let o=r.t(`attached frame`);P.signal.aborted?o():P.signal.addEventListener(`abort`,o,{once:!0});let s=e.contentWindow,c=()=>{if(!(!P.signal.aborted&&e.isConnected&&e.contentWindow===s))throw P.abort(),k()};return t.a({executor:{execute:(e,n,r)=>S.has(n)?Promise.reject(t.d(n,`cloud`)):(c(),i.executeLocator(e,n,r)),highlight:async()=>{}},gate:async e=>{if(e.operation!==`fetch`)return;let r=a.frameFetchVerdict({session:p,declaredHosts:m,approvedOrigins:j},e.args[0]);if(r.kind===`refuse`)throw t.m(r.reason,`fetch`);if(!await(await n.a).frameConsent.ensure({scope:h(e.args[0],e.args[1]).scope,hosts:r.promptHosts}))throw t.m(`frame.fetch: the user did not grant this`,`fetch`)},goto:async(t,n={})=>{let r=new URL(t,location.href).href;c();let{timeoutMs:a}=n;await D(i.goto(r,n),(a??b)+x,`cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded`),f=r;try{j.add(new URL(r).origin)}catch{}M(e)},url:()=>f})}catch(t){throw P.abort(),e.referrerPolicy=F,e.allow=I,e.src=u||`about:blank`,t}},F=()=>typeof window<`u`&&!0,I=async()=>{let e=await n.a.then(e=>e.cloud.quota());return{premium:e.premium,overQuota:e.overQuota,throttled:e.overQuota&&!e.premium,usedBytes:e.usedBytes,limitBytes:e.limitBytes,remainingBytes:e.remaining,bytesPerSecond:e.bytesPerSecond,bitsPerSecond:e.bytesPerSecond*8}},L=e.t({attachFrame:()=>P,available:()=>R,dgram:()=>l.t,dns:()=>o.t,fetch:()=>i.t,fs:()=>s.t,http:()=>u.t,net:()=>c.t,quota:()=>I}),R=()=>n.c;Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return R}});
package/cloud-DaVb11IV.js DELETED
@@ -1,174 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { W as t, a as n, d as r, m as i, s as a, u as o } from "./lib-duLPF_WZ.js";
3
- import { a as s, c } from "./api-BlAtp6lc.js";
4
- import { t as l } from "./busy-B189uX--.js";
5
- import { t as u } from "./proxy-VY0HRl2E.js";
6
- import { frameFetchVerdict as d, normalizeDeclaredHosts as f } from "./attach-policy.js";
7
- import { t as p } from "./dns.js";
8
- import { t as m } from "./cloud/fs.js";
9
- import { t as h } from "./net.js";
10
- import { t as g } from "./dgram.js";
11
- import { t as _ } from "./http.js";
12
- import { expose as v } from "osra";
13
- //#region ../web-extension/lib/lib/locator-permissions.js
14
- var y = {
15
- scope: "frame.fetchRead",
16
- category: "network",
17
- severity: 3,
18
- unsafe: !0,
19
- title: "Read your account data on this site",
20
- description: "Lets the app read pages and data from this site as you, using the session in the frame."
21
- }, b = {
22
- scope: "frame.fetchWrite",
23
- category: "network",
24
- severity: 3,
25
- unsafe: !0,
26
- title: "Change your account data on this site",
27
- description: "Lets the app send changes to this site as you, using the session in the frame."
28
- }, x = /* @__PURE__ */ new Set([
29
- "GET",
30
- "HEAD",
31
- "OPTIONS"
32
- ]), S = (e, t) => x.has((t?.method ?? "GET").toUpperCase()) ? y : b, C = (e) => e, w = "autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write", T = 2e4, E = 65e3, D = 3e4, O = 5e3, k = /* @__PURE__ */ new Set([]), A = () => "https://fkn.app", j = (e) => !e || e === "about:blank", M = (e) => e ? "" : `incognito-${crypto.randomUUID()}`, N = ({ target: e, session: t, domains: n }) => {
33
- let r = new URL("/attach-frame", A());
34
- return e && r.searchParams.set("url", e), t && r.searchParams.set("session", t), n.length && r.searchParams.set("domains", n.join(",")), r.href;
35
- }, P = (e, t, n) => {
36
- let r, i = new Promise((e, i) => {
37
- r = setTimeout(() => i(Error(n)), t);
38
- });
39
- return Promise.race([e, i]).finally(() => clearTimeout(r));
40
- }, F = (e, t) => {
41
- let n = () => {
42
- a(), t();
43
- }, r = e.parentNode, i = new MutationObserver(() => {
44
- (!e.isConnected || e.parentNode !== r) && (a(), t());
45
- }), a = () => {
46
- window.removeEventListener("pagehide", n), i.disconnect();
47
- };
48
- window.addEventListener("pagehide", n, { once: !0 }), r && i.observe(r, { childList: !0 }), e.isConnected || (a(), t());
49
- }, I = () => Object.assign(/* @__PURE__ */ Error("cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe"), { name: o }), L = (e, t) => {
50
- let n = [...e.split(";"), ...t.split(";")].map((e) => e.trim()).filter(Boolean);
51
- return [...new Set(n)].join("; ");
52
- }, R = [
53
- 300,
54
- 1200,
55
- 4e3
56
- ], z = (e) => {
57
- let t = () => {
58
- if (!e.isConnected) return;
59
- let t = e.style.height, n = e.getBoundingClientRect();
60
- n.height && (e.style.height = `${n.height - 1}px`, setTimeout(() => {
61
- e.style.height = t;
62
- }, 50));
63
- };
64
- t();
65
- for (let e of R) setTimeout(t, e);
66
- }, B = (e) => {
67
- let t = e.getAttribute("sandbox");
68
- if (t === null) return;
69
- let n = new Set(t.toLowerCase().split(/\s+/).filter(Boolean)), r = ["allow-scripts", "allow-same-origin"].filter((e) => !n.has(e));
70
- if (r.length) throw Error(`cloud.attachFrame: the iframe's sandbox attribute must include ${r.join(" and ")} for the render proxy to load`);
71
- }, V = async ({ iframe: e, domains: o = [], syncCookies: c = !0, lockdown: u = !1 }) => {
72
- if (typeof window > "u") throw Error("cloud.attachFrame needs a window realm");
73
- if (u) throw Error("cloud.attachFrame does not support lockdown; use the extension backend for a sealed frame");
74
- if (!e.isConnected) throw Error("cloud.attachFrame: the iframe must be connected to the document before attaching");
75
- B(e);
76
- let p = e.getAttribute("src") ?? "", m = (() => {
77
- if (j(p)) return null;
78
- try {
79
- return new URL(e.src || p, location.href);
80
- } catch {
81
- throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${p}`);
82
- }
83
- })();
84
- if (m) {
85
- let e = new URL("/attach-frame", A());
86
- if (m.origin === e.origin && m.pathname === e.pathname) throw Error("cloud.attachFrame: this iframe is already attached; navigate with the Frame returned by that attach or use a fresh iframe");
87
- }
88
- let h = m?.href ?? "";
89
- h && a(h);
90
- let g = h, _ = M(c), y = f(o), b = /* @__PURE__ */ new Set();
91
- try {
92
- b.add(new URL(h).origin);
93
- } catch {}
94
- let x = new AbortController(), R = e.referrerPolicy, V = e.allow;
95
- if (e.referrerPolicy = "origin", e.allow = L(w, e.allow), e.src = N({
96
- target: h,
97
- session: _,
98
- domains: y
99
- }), !e.contentWindow) throw Error("cloud.attachFrame: the iframe window is not available");
100
- try {
101
- let a = await P(v({}, {
102
- key: "fkn-attach-frame",
103
- origin: A(),
104
- transport: {
105
- receive: window,
106
- emit: e.contentWindow
107
- },
108
- unregisterSignal: x.signal,
109
- revivableModules: C(t)
110
- }), T, "cloud.attachFrame: timed out connecting to the render proxy page");
111
- await P(a.ready(), E, "cloud.attachFrame: the render proxy never became ready"), h && z(e), F(e, () => x.abort());
112
- let o = l("attached frame");
113
- x.signal.aborted ? o() : x.signal.addEventListener("abort", o, { once: !0 });
114
- let c = e.contentWindow, u = () => {
115
- if (!(!x.signal.aborted && e.isConnected && e.contentWindow === c)) throw x.abort(), I();
116
- };
117
- return n({
118
- executor: {
119
- execute: (e, t, n) => k.has(t) ? Promise.reject(r(t, "cloud")) : (u(), a.executeLocator(e, t, n)),
120
- highlight: async () => {}
121
- },
122
- gate: async (e) => {
123
- if (e.operation !== "fetch") return;
124
- let t = d({
125
- session: _,
126
- declaredHosts: y,
127
- approvedOrigins: b
128
- }, e.args[0]);
129
- if (t.kind === "refuse") throw i(t.reason, "fetch");
130
- if (!await (await s).frameConsent.ensure({
131
- scope: S(e.args[0], e.args[1]).scope,
132
- hosts: t.promptHosts
133
- })) throw i("frame.fetch: the user did not grant this", "fetch");
134
- },
135
- goto: async (t, n = {}) => {
136
- let r = new URL(t, location.href).href;
137
- u();
138
- let { timeoutMs: i } = n;
139
- await P(a.goto(r, n), (i ?? D) + O, "cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded"), g = r;
140
- try {
141
- b.add(new URL(r).origin);
142
- } catch {}
143
- z(e);
144
- },
145
- url: () => g
146
- });
147
- } catch (t) {
148
- throw x.abort(), e.referrerPolicy = R, e.allow = V, e.src = h || "about:blank", t;
149
- }
150
- }, H = () => typeof window < "u" && !0, U = async () => {
151
- let e = await s.then((e) => e.cloud.quota());
152
- return {
153
- premium: e.premium,
154
- overQuota: e.overQuota,
155
- throttled: e.overQuota && !e.premium,
156
- usedBytes: e.usedBytes,
157
- limitBytes: e.limitBytes,
158
- remainingBytes: e.remaining,
159
- bytesPerSecond: e.bytesPerSecond,
160
- bitsPerSecond: e.bytesPerSecond * 8
161
- };
162
- }, W = /* @__PURE__ */ e({
163
- attachFrame: () => V,
164
- available: () => G,
165
- dgram: () => g,
166
- dns: () => p,
167
- fetch: () => u,
168
- fs: () => m,
169
- http: () => _,
170
- net: () => h,
171
- quota: () => U
172
- }), G = () => c;
173
- //#endregion
174
- export { H as a, V as i, W as n, U as r, G as t };
@@ -1 +0,0 @@
1
- const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./lib-DLM2M3_i.cjs"),n=require("./api-Beky02FK.cjs"),r=require("./proxy-DexG-Wmk.cjs"),i=require("./desktop.cjs");var a=async e=>{if(typeof window>`u`)return!1;if(t.F())return!0;let r=await n.a,i=null,a=new Promise(e=>{i=()=>{t.F()&&e(!0)},t.P.addEventListener(`statuschange`,i)}),o=r.installPrompt.show(e).then(()=>!1),s=await Promise.race([a,o]);return i&&t.P.removeEventListener(`statuschange`,i),await r.installPrompt.hide().catch(()=>{}),s},o=null;t.L(()=>(o||=a().then(()=>void 0).finally(()=>{o=null}),o));var s=()=>typeof document<`u`&&t.F(),c=async(e,n)=>{if(r.n(e),n?.credentials===`include`){if(typeof document>`u`)throw Error(`fetch with credentials needs the FKN extension, which only exists in window realms`);return t.w(e,n)}return s()?t.w(e,{...n,credentials:`omit`}):i.available()?i.fetch(e,n):r.t(e,n)},l=e.t({ATTACH_FRAME_EVENT_KEY:()=>t.n,EXTENSION_ABI:()=>1,ExtensionOperationUnsupportedError:()=>t.B,ExtensionOutdatedError:()=>t.V,FORGEABLE_HEADERS:()=>t.A,LOCATOR_DENIED:()=>t.p,LOCATOR_ERROR:()=>t.g,LOCATOR_UNSUPPORTED:()=>t.u,REQUIRED_EXTENSION_ABI:()=>0,assertAttachableFrameUrl:()=>t.s,assertFetchableUrl:()=>t.C,assertForgeableHeaders:()=>t.j,assertLockdownApplicable:()=>t.c,assertOneCookieIdentity:()=>t.M,attachFrame:()=>t.r,attachFramePermission:()=>t.i,available:()=>s,box:()=>t.G,cookies:()=>t.x,createFrame:()=>t.a,createVideoElementHandle:()=>t.K,events:()=>t.P,extension:()=>t.P,fetch:()=>t.w,fetchCredentialedPermission:()=>t.T,fetchLocalPermission:()=>t.E,fetchPermission:()=>t.D,gotoPermission:()=>t.o,handleRevivableModules:()=>t.W,hasForgedCookie:()=>t.N,isBlockedFetchUrl:()=>t.O,isBlockedFrameUrl:()=>t.l,isExtensionExposed:()=>t.F,isLocalNetworkUrl:()=>t.k,isLocatorDenied:()=>t.h,isLocatorUnsupported:()=>t._,isTerminalError:()=>t.f,isType:()=>t.q,modifyRequestHeadersPermission:()=>t.v,permissions:()=>t.t,promptInstall:()=>a,readCookiePermission:()=>t.S,readExtensionHandshake:()=>t.I,removeRequestHeaderRule:()=>t.y,revive:()=>t.J,setMissingExtensionHandler:()=>t.L,setRequestHeaderRule:()=>t.b,supportsOperation:()=>t.U,type:()=>t.Y,waitForExtensionExposure:()=>t.R});Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
@@ -1,84 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { A as t, B as n, C as r, D as i, E as a, F as o, G as s, I as c, J as l, K as u, L as d, M as f, N as p, O as m, P as h, R as g, S as _, T as v, U as y, V as b, W as x, Y as S, _ as C, a as w, b as T, c as E, f as D, g as O, h as k, i as A, j, k as M, l as N, n as ee, o as P, p as F, q as I, r as L, s as R, t as z, u as B, v as V, w as H, x as U, y as W } from "./lib-duLPF_WZ.js";
3
- import { a as G } from "./api-BlAtp6lc.js";
4
- import { n as K, t as q } from "./proxy-VY0HRl2E.js";
5
- import { available as J, fetch as Y } from "./desktop.js";
6
- //#region src/extension-prompt.ts
7
- var X = async (e) => {
8
- if (typeof window > "u") return !1;
9
- if (o()) return !0;
10
- let t = await G, n = null, r = new Promise((e) => {
11
- n = () => {
12
- o() && e(!0);
13
- }, h.addEventListener("statuschange", n);
14
- }), i = t.installPrompt.show(e).then(() => !1), a = await Promise.race([r, i]);
15
- return n && h.removeEventListener("statuschange", n), await t.installPrompt.hide().catch(() => {}), a;
16
- }, Z = null;
17
- d(() => (Z ||= X().then(() => void 0).finally(() => {
18
- Z = null;
19
- }), Z));
20
- //#endregion
21
- //#region src/auto.ts
22
- var Q = () => typeof document < "u" && o(), $ = async (e, t) => {
23
- if (K(e), t?.credentials === "include") {
24
- if (typeof document > "u") throw Error("fetch with credentials needs the FKN extension, which only exists in window realms");
25
- return H(e, t);
26
- }
27
- return Q() ? H(e, {
28
- ...t,
29
- credentials: "omit"
30
- }) : J() ? Y(e, t) : q(e, t);
31
- }, te = /* @__PURE__ */ e({
32
- ATTACH_FRAME_EVENT_KEY: () => ee,
33
- EXTENSION_ABI: () => 1,
34
- ExtensionOperationUnsupportedError: () => n,
35
- ExtensionOutdatedError: () => b,
36
- FORGEABLE_HEADERS: () => t,
37
- LOCATOR_DENIED: () => F,
38
- LOCATOR_ERROR: () => O,
39
- LOCATOR_UNSUPPORTED: () => B,
40
- REQUIRED_EXTENSION_ABI: () => 0,
41
- assertAttachableFrameUrl: () => R,
42
- assertFetchableUrl: () => r,
43
- assertForgeableHeaders: () => j,
44
- assertLockdownApplicable: () => E,
45
- assertOneCookieIdentity: () => f,
46
- attachFrame: () => L,
47
- attachFramePermission: () => A,
48
- available: () => Q,
49
- box: () => s,
50
- cookies: () => U,
51
- createFrame: () => w,
52
- createVideoElementHandle: () => u,
53
- events: () => h,
54
- extension: () => h,
55
- fetch: () => H,
56
- fetchCredentialedPermission: () => v,
57
- fetchLocalPermission: () => a,
58
- fetchPermission: () => i,
59
- gotoPermission: () => P,
60
- handleRevivableModules: () => x,
61
- hasForgedCookie: () => p,
62
- isBlockedFetchUrl: () => m,
63
- isBlockedFrameUrl: () => N,
64
- isExtensionExposed: () => o,
65
- isLocalNetworkUrl: () => M,
66
- isLocatorDenied: () => k,
67
- isLocatorUnsupported: () => C,
68
- isTerminalError: () => D,
69
- isType: () => I,
70
- modifyRequestHeadersPermission: () => V,
71
- permissions: () => z,
72
- promptInstall: () => X,
73
- readCookiePermission: () => _,
74
- readExtensionHandshake: () => c,
75
- removeRequestHeaderRule: () => W,
76
- revive: () => l,
77
- setMissingExtensionHandler: () => d,
78
- setRequestHeaderRule: () => T,
79
- supportsOperation: () => y,
80
- type: () => S,
81
- waitForExtensionExposure: () => g
82
- });
83
- //#endregion
84
- export { X as i, $ as n, Q as r, te as t };