@fkn/lib 0.9.37 → 0.9.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account.cjs +1 -1
- package/account.js +1 -1
- package/{api-CZI08srV.d.ts → api-BxXnHxbd.d.ts} +13 -7
- package/{api-CtiKFcK3.js → api-Dp-2AT3u.js} +84 -77
- package/api-jOTOA-5n.cjs +3 -0
- package/api.cjs +1 -1
- package/api.d.ts +2 -2
- package/api.js +1 -1
- package/cloud/dns.d.ts +1 -1
- package/cloud/fetch.cjs +1 -1
- package/cloud/fetch.d.ts +1 -1
- package/cloud/fetch.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.js +1 -1
- package/cloud/net.d.ts +1 -1
- package/{cloud-DCZv4XAf.d.ts → cloud-B8QYSmW3.d.ts} +3 -3
- package/cloud-BZIJFvPF.cjs +1 -0
- package/{cloud-EfyYfgVT.js → cloud-oMACx7NL.js} +75 -75
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +2 -2
- package/{contract-_nWuFitS.d.ts → contract-sDmsw-9f.d.ts} +72 -7
- package/contract.cjs +1 -1
- package/contract.d.ts +2 -2
- package/contract.js +6 -2
- package/dgram.cjs +1 -1
- package/dgram.d.ts +2 -2
- package/dgram.js +1 -1
- package/dns.cjs +1 -1
- package/dns.d.ts +1 -1
- package/dns.js +1 -1
- package/{extension-B7jDaJVp.cjs → extension-Bl5ZNj0d.cjs} +1 -1
- package/{extension-sNRjVbET.js → extension-ChZyZgAL.js} +3 -3
- package/{extension-CqOhrS15.d.ts → extension-DMU-CwMw.d.ts} +1 -1
- package/extension.cjs +1 -1
- package/extension.d.ts +2 -2
- package/extension.js +2 -2
- package/fs/promises.cjs +1 -1
- package/fs/promises.js +1 -1
- package/{fs-D8RCGFNc.cjs → fs-CaQFRiIT.cjs} +1 -1
- package/{fs-BvNZePtN.js → fs-D3IsGdnN.js} +1 -1
- package/fs.cjs +1 -1
- package/fs.js +1 -1
- package/http.d.ts +1 -1
- package/{index-BUviSXsX.d.ts → index-D2CA-NX5.d.ts} +35 -3
- package/index.cjs +1 -1
- package/index.d.ts +4 -4
- package/index.js +5 -5
- package/{lib-FD1Ssqjt.js → lib-BlyFPeSv.js} +16 -11
- package/lib-tQKlXzhv.cjs +53 -0
- package/{net-eCY_QD4P.d.ts → net-Qmt9L_7t.d.ts} +2 -2
- package/net.cjs +1 -1
- package/net.d.ts +1 -1
- package/net.js +1 -1
- package/package.json +1 -1
- package/packages.cjs +1 -1
- package/packages.d.ts +1 -1
- package/packages.js +1 -1
- package/{proxy-CrTXoFQK.d.ts → proxy-CxRQLGNG.d.ts} +2 -2
- package/{proxy-DDwY3AVG.js → proxy-DMTdQ4dN.js} +1 -1
- package/{proxy-CYcaW5ew.cjs → proxy-DjoPtJH9.cjs} +1 -1
- package/rooms.cjs +1 -1
- package/rooms.d.ts +39 -8
- package/rooms.js +117 -95
- package/{storage-dSi2dUKx.cjs → storage-BJd-mWHE.cjs} +1 -1
- package/{storage-BbcnDCnc.js → storage-DSvL-t80.js} +1 -1
- package/api-Djf-XdZ4.cjs +0 -3
- package/cloud-Beg4iCRU.cjs +0 -1
- package/lib-DYKLnpWs.cjs +0 -53
package/account.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./api-jOTOA-5n.cjs");var n=e.t({info:()=>a,login:()=>r,logout:()=>i,onChange:()=>u}),r=async()=>typeof window>`u`?!1:(await t.a).account.login(location.origin).catch(()=>!1),i=async()=>{typeof window<`u`&&await(await t.a).account.logout().catch(()=>{})},a=async()=>{if(typeof window>`u`)return null;let e=await t.a.then(e=>e.account.info()).catch(()=>null);return e?{name:e.name,image:e.image,premium:e.premium,premiumUntil:e.premiumUntil?Date.parse(e.premiumUntil):null}:null},o=new Set,s=()=>{for(let e of[...o])try{e()}catch{}},c=0,l=()=>{let e=t.s();e&&o.size!==0&&c!==e.epoch&&(c=e.epoch,Promise.resolve(e.remote.account.onChange(s)).catch(()=>{c===e.epoch&&(c=0)}))};typeof window<`u`&&t.l(l);var u=async e=>typeof window>`u`?()=>{}:(o.add(e),l(),()=>{o.delete(e)});exports.info=a,exports.login=r,exports.logout=i,exports.onChange=u,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
package/account.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as TcpSocketOption, v as UdpSocketOption } from "./wire-Gbo-D74t.js";
|
|
2
|
-
import {
|
|
2
|
+
import { A as OverlayState, At as WriteData, C as InstallOptions, Ct as UdpDatagram, F as PickOptions, G as RoomClaimOptions, I as Placement, N as PackagesErrorCode, Q as RoomMailbox, R as ProxyFetchInit, T as IpFamily, U as Resolvers, Y as RoomEvent, Z as RoomJoinOptions, c as ConflictChoice, d as ConnectAvailability, f as ConnectOptions, it as RoomsErrorCode, j as PackageQuery, l as ConflictRequest, nt as RoomPermission, o as AdoptRequest, s as AdoptState, tt as RoomOpenOptions, v as FrameConsentAnswer, wt as UdpSocketOptions, xt as TcpSocketOptions, y as FrameConsentRequest, yt as TcpSocketListenerOptions, z as ProxyFetchInput } from "./contract-sDmsw-9f.js";
|
|
3
3
|
import { Remote } from "osra";
|
|
4
4
|
//#region src/api-epochs.d.ts
|
|
5
5
|
type EpochListener<T> = (remote: T, epoch: number) => void;
|
|
@@ -298,6 +298,7 @@ declare const onApiEpoch: (listener: EpochListener<{
|
|
|
298
298
|
owner: string;
|
|
299
299
|
claimed: boolean;
|
|
300
300
|
mailbox: RoomMailbox | null;
|
|
301
|
+
temporaryClaims?: true;
|
|
301
302
|
defaults: () => Promise<{
|
|
302
303
|
readonly send: boolean;
|
|
303
304
|
readonly receive: boolean;
|
|
@@ -380,7 +381,7 @@ declare const onApiEpoch: (listener: EpochListener<{
|
|
|
380
381
|
} | {
|
|
381
382
|
ok: true;
|
|
382
383
|
}>;
|
|
383
|
-
claim: () => Promise<{
|
|
384
|
+
claim: (options?: RoomClaimOptions | undefined) => Promise<{
|
|
384
385
|
error: RoomsErrorCode;
|
|
385
386
|
message: string;
|
|
386
387
|
} | {
|
|
@@ -428,6 +429,7 @@ declare const onApiEpoch: (listener: EpochListener<{
|
|
|
428
429
|
owner: string;
|
|
429
430
|
claimed: boolean;
|
|
430
431
|
mailbox: RoomMailbox | null;
|
|
432
|
+
temporaryClaims?: true;
|
|
431
433
|
defaults: () => Promise<{
|
|
432
434
|
readonly send: boolean;
|
|
433
435
|
readonly receive: boolean;
|
|
@@ -510,7 +512,7 @@ declare const onApiEpoch: (listener: EpochListener<{
|
|
|
510
512
|
} | {
|
|
511
513
|
ok: true;
|
|
512
514
|
}>;
|
|
513
|
-
claim: () => Promise<{
|
|
515
|
+
claim: (options?: RoomClaimOptions | undefined) => Promise<{
|
|
514
516
|
error: RoomsErrorCode;
|
|
515
517
|
message: string;
|
|
516
518
|
} | {
|
|
@@ -558,6 +560,7 @@ declare const onApiEpoch: (listener: EpochListener<{
|
|
|
558
560
|
owner: string;
|
|
559
561
|
claimed: boolean;
|
|
560
562
|
mailbox: RoomMailbox | null;
|
|
563
|
+
temporaryClaims?: true;
|
|
561
564
|
defaults: () => Promise<{
|
|
562
565
|
readonly send: boolean;
|
|
563
566
|
readonly receive: boolean;
|
|
@@ -640,7 +643,7 @@ declare const onApiEpoch: (listener: EpochListener<{
|
|
|
640
643
|
} | {
|
|
641
644
|
ok: true;
|
|
642
645
|
}>;
|
|
643
|
-
claim: () => Promise<{
|
|
646
|
+
claim: (options?: RoomClaimOptions | undefined) => Promise<{
|
|
644
647
|
error: RoomsErrorCode;
|
|
645
648
|
message: string;
|
|
646
649
|
} | {
|
|
@@ -1011,6 +1014,7 @@ declare const currentApiEpoch: () => {
|
|
|
1011
1014
|
owner: string;
|
|
1012
1015
|
claimed: boolean;
|
|
1013
1016
|
mailbox: RoomMailbox | null;
|
|
1017
|
+
temporaryClaims?: true;
|
|
1014
1018
|
defaults: () => Promise<{
|
|
1015
1019
|
readonly send: boolean;
|
|
1016
1020
|
readonly receive: boolean;
|
|
@@ -1093,7 +1097,7 @@ declare const currentApiEpoch: () => {
|
|
|
1093
1097
|
} | {
|
|
1094
1098
|
ok: true;
|
|
1095
1099
|
}>;
|
|
1096
|
-
claim: () => Promise<{
|
|
1100
|
+
claim: (options?: RoomClaimOptions | undefined) => Promise<{
|
|
1097
1101
|
error: RoomsErrorCode;
|
|
1098
1102
|
message: string;
|
|
1099
1103
|
} | {
|
|
@@ -1141,6 +1145,7 @@ declare const currentApiEpoch: () => {
|
|
|
1141
1145
|
owner: string;
|
|
1142
1146
|
claimed: boolean;
|
|
1143
1147
|
mailbox: RoomMailbox | null;
|
|
1148
|
+
temporaryClaims?: true;
|
|
1144
1149
|
defaults: () => Promise<{
|
|
1145
1150
|
readonly send: boolean;
|
|
1146
1151
|
readonly receive: boolean;
|
|
@@ -1223,7 +1228,7 @@ declare const currentApiEpoch: () => {
|
|
|
1223
1228
|
} | {
|
|
1224
1229
|
ok: true;
|
|
1225
1230
|
}>;
|
|
1226
|
-
claim: () => Promise<{
|
|
1231
|
+
claim: (options?: RoomClaimOptions | undefined) => Promise<{
|
|
1227
1232
|
error: RoomsErrorCode;
|
|
1228
1233
|
message: string;
|
|
1229
1234
|
} | {
|
|
@@ -1271,6 +1276,7 @@ declare const currentApiEpoch: () => {
|
|
|
1271
1276
|
owner: string;
|
|
1272
1277
|
claimed: boolean;
|
|
1273
1278
|
mailbox: RoomMailbox | null;
|
|
1279
|
+
temporaryClaims?: true;
|
|
1274
1280
|
defaults: () => Promise<{
|
|
1275
1281
|
readonly send: boolean;
|
|
1276
1282
|
readonly receive: boolean;
|
|
@@ -1353,7 +1359,7 @@ declare const currentApiEpoch: () => {
|
|
|
1353
1359
|
} | {
|
|
1354
1360
|
ok: true;
|
|
1355
1361
|
}>;
|
|
1356
|
-
claim: () => Promise<{
|
|
1362
|
+
claim: (options?: RoomClaimOptions | undefined) => Promise<{
|
|
1357
1363
|
error: RoomsErrorCode;
|
|
1358
1364
|
message: string;
|
|
1359
1365
|
} | {
|
|
@@ -59,51 +59,51 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
59
59
|
width: Math.max(...e.map((e) => e.x + e.width)) - t,
|
|
60
60
|
height: Math.max(...e.map((e) => e.y + e.height)) - n
|
|
61
61
|
};
|
|
62
|
-
}, 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,
|
|
62
|
+
}, 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, re = (e, t, n) => {
|
|
63
63
|
let r = getComputedStyle(e);
|
|
64
64
|
return n !== 0 && /auto|scroll/.test(r.overflowY) && e.scrollHeight > e.clientHeight ? !0 : t !== 0 && /auto|scroll/.test(r.overflowX) && e.scrollWidth > e.clientWidth;
|
|
65
|
-
},
|
|
66
|
-
for (let r = e; r; r = r.parentElement) if (
|
|
65
|
+
}, ie = (e, t, n) => {
|
|
66
|
+
for (let r = e; r; r = r.parentElement) if (re(r, t, n)) return r;
|
|
67
67
|
return document.scrollingElement;
|
|
68
|
-
},
|
|
68
|
+
}, y = null, b = null, x = (e) => ({
|
|
69
69
|
width: e.offsetWidth || window.innerWidth,
|
|
70
70
|
height: e.offsetHeight || window.innerHeight
|
|
71
|
-
}),
|
|
72
|
-
if (!
|
|
71
|
+
}), S = (e) => {
|
|
72
|
+
if (!b || !y || !te(b, e.clientX, e.clientY)) return;
|
|
73
73
|
let t = document.elementFromPoint(e.clientX, e.clientY);
|
|
74
|
-
if (!t || t ===
|
|
75
|
-
let n = v(e.deltaX, e.deltaMode, window.innerWidth), r = v(e.deltaY, e.deltaMode, window.innerHeight), i =
|
|
74
|
+
if (!t || t === y) return;
|
|
75
|
+
let n = v(e.deltaX, e.deltaMode, window.innerWidth), r = v(e.deltaY, e.deltaMode, window.innerHeight), i = ie(t, n, r);
|
|
76
76
|
i && (i.scrollBy({
|
|
77
77
|
left: n,
|
|
78
78
|
top: r,
|
|
79
79
|
behavior: "instant"
|
|
80
80
|
}), e.cancelable && e.preventDefault());
|
|
81
|
-
},
|
|
82
|
-
let t =
|
|
83
|
-
|
|
81
|
+
}, ae = (e) => {
|
|
82
|
+
let t = b !== null;
|
|
83
|
+
b = e, t !== (e !== null) && (e ? window.addEventListener("wheel", S, {
|
|
84
84
|
capture: !0,
|
|
85
85
|
passive: !1
|
|
86
|
-
}) : window.removeEventListener("wheel",
|
|
87
|
-
},
|
|
88
|
-
if (e ===
|
|
89
|
-
|
|
86
|
+
}) : window.removeEventListener("wheel", S, { capture: !0 }));
|
|
87
|
+
}, C = 0, oe = (e) => {
|
|
88
|
+
if (e === C) return;
|
|
89
|
+
C = e;
|
|
90
90
|
let t = document.documentElement.style;
|
|
91
91
|
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"));
|
|
92
|
-
},
|
|
93
|
-
if (
|
|
92
|
+
}, w = (e, { modal: t, rects: n, inset: r }, i) => {
|
|
93
|
+
if (oe(r), !c) {
|
|
94
94
|
let r = t || n.length > 0;
|
|
95
95
|
e.style.setProperty("pointer-events", r ? "auto" : "none", "important"), e.style.setProperty("visibility", r ? "visible" : "hidden", "important");
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
98
|
let a = g(n, t, i), o = a === "none" || CSS.supports("clip-path", a) ? a : "inset(100%)";
|
|
99
|
-
e.style.setProperty("clip-path", o, "important"),
|
|
100
|
-
},
|
|
99
|
+
e.style.setProperty("clip-path", o, "important"), ae(t || o !== a ? null : _(n));
|
|
100
|
+
}, se = (e) => {
|
|
101
101
|
if (typeof e != "object" || !e) return 0;
|
|
102
102
|
let { top: t } = e;
|
|
103
103
|
return typeof t != "number" || !Number.isFinite(t) || t <= 0 ? 0 : Math.min(Math.round(t), s);
|
|
104
|
-
},
|
|
104
|
+
}, ce = (e) => {
|
|
105
105
|
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;
|
|
106
|
-
},
|
|
106
|
+
}, le = (e, t) => {
|
|
107
107
|
if (typeof e != "object" || !e) return null;
|
|
108
108
|
let { x: n, y: r, width: i, height: a } = e;
|
|
109
109
|
if (![
|
|
@@ -112,7 +112,7 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
112
112
|
i,
|
|
113
113
|
a
|
|
114
114
|
].every((e) => typeof e == "number" && Number.isFinite(e))) return null;
|
|
115
|
-
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 =
|
|
115
|
+
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 = ce(e.radius);
|
|
116
116
|
return {
|
|
117
117
|
x: c,
|
|
118
118
|
y: l,
|
|
@@ -120,64 +120,71 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
120
120
|
height: d - l,
|
|
121
121
|
...f ? { radius: f } : {}
|
|
122
122
|
};
|
|
123
|
-
},
|
|
123
|
+
}, T = {
|
|
124
124
|
"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",
|
|
125
125
|
clipped: "it is clipped away or positioned outside the viewport",
|
|
126
126
|
"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"
|
|
127
|
-
},
|
|
127
|
+
}, ue = (e) => Array.isArray(e) ? e.slice(0, o).flatMap((e) => {
|
|
128
128
|
if (typeof e != "object" || !e) return [];
|
|
129
129
|
let { kind: t, cause: n, level: r } = e;
|
|
130
|
-
return typeof t != "string" || t.length > 40 || typeof n != "string" || !(n in
|
|
130
|
+
return typeof t != "string" || t.length > 40 || typeof n != "string" || !(n in T) || r !== "full" && r !== "liveness" ? [] : [{
|
|
131
131
|
kind: t,
|
|
132
132
|
cause: n,
|
|
133
133
|
level: r
|
|
134
134
|
}];
|
|
135
|
-
}) : [],
|
|
136
|
-
for (let { kind: t, cause: n, level: r } of e)
|
|
135
|
+
}) : [], E = /* @__PURE__ */ new Set(), de = (e) => {
|
|
136
|
+
for (let { kind: t, cause: n, level: r } of e) E.has(t) || (E.add(t), console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${T[n]}. Nobody using this page can see or answer it.
|
|
137
137
|
@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" ? "\nThis browser reports limited detail, so the cause above is a best guess." : "")));
|
|
138
|
-
},
|
|
138
|
+
}, D = (e, t) => {
|
|
139
139
|
if (typeof e != "object" || !e) return null;
|
|
140
|
-
let n = e, r = (Array.isArray(n.rects) ? n.rects.slice(0, a) : []).map((e) =>
|
|
140
|
+
let n = e, r = (Array.isArray(n.rects) ? n.rects.slice(0, a) : []).map((e) => le(e, t)).filter((e) => e !== null && e.width > 0 && e.height > 0);
|
|
141
141
|
return {
|
|
142
142
|
modal: n.modal === !0,
|
|
143
143
|
rects: r,
|
|
144
|
-
hidden:
|
|
145
|
-
inset:
|
|
144
|
+
hidden: ue(n.hidden),
|
|
145
|
+
inset: se(n.inset)
|
|
146
146
|
};
|
|
147
|
-
},
|
|
148
|
-
if (!
|
|
149
|
-
let e =
|
|
150
|
-
t &&
|
|
151
|
-
},
|
|
152
|
-
typeof ResizeObserver < "u" && (
|
|
153
|
-
},
|
|
154
|
-
u(e),
|
|
147
|
+
}, fe = () => y !== null, O = null, k = null, A = () => {
|
|
148
|
+
if (!y || O === null) return;
|
|
149
|
+
let e = x(y), t = D(O, e);
|
|
150
|
+
t && w(y, t, e);
|
|
151
|
+
}, j = (e) => {
|
|
152
|
+
typeof ResizeObserver < "u" && (k ??= new ResizeObserver(A), k.disconnect(), k.observe(e));
|
|
153
|
+
}, M = (e) => {
|
|
154
|
+
u(e), w(e, {
|
|
155
155
|
modal: !1,
|
|
156
156
|
rects: [],
|
|
157
157
|
hidden: [],
|
|
158
158
|
inset: 0
|
|
159
|
-
},
|
|
160
|
-
},
|
|
161
|
-
if (!
|
|
162
|
-
let t =
|
|
163
|
-
n && (
|
|
164
|
-
},
|
|
159
|
+
}, x(e)), y = e, j(e);
|
|
160
|
+
}, N = (e) => {
|
|
161
|
+
if (!y) return;
|
|
162
|
+
let t = x(y), n = D(e, t);
|
|
163
|
+
n && (O = e, w(y, n, t), de(n.hidden));
|
|
164
|
+
}, P = [
|
|
165
165
|
"fkn.app",
|
|
166
166
|
"fkn.dev",
|
|
167
167
|
"sdbx.app"
|
|
168
|
-
],
|
|
169
|
-
let t =
|
|
170
|
-
return
|
|
171
|
-
},
|
|
168
|
+
], F = (e) => e.replace(/\.+$/, ""), I = (e) => {
|
|
169
|
+
let t = F(e);
|
|
170
|
+
return P.some((e) => t === e || t.endsWith(`.${e}`));
|
|
171
|
+
}, L = (e) => {
|
|
172
172
|
let t = typeof e == "string" ? e : e instanceof URL ? e.href : e.url, n;
|
|
173
173
|
try {
|
|
174
174
|
n = new URL(t);
|
|
175
175
|
} catch {
|
|
176
176
|
return;
|
|
177
177
|
}
|
|
178
|
-
if (
|
|
179
|
-
},
|
|
180
|
-
|
|
178
|
+
if (I(n.hostname)) throw Error(`fetch refuses FKN platform domains (${n.hostname})`);
|
|
179
|
+
}, R = /* @__PURE__ */ "autoplay.fullscreen.picture-in-picture.encrypted-media.screen-wake-lock.speaker-selection.captured-surface-control.camera.microphone.display-capture.geolocation.midi.usb.serial.hid.bluetooth.gamepad.keyboard-map.xr-spatial-tracking.accelerometer.gyroscope.magnetometer.ambient-light-sensor.compute-pressure.clipboard-read.clipboard-write.storage-access.window-management.local-fonts.idle-detection.web-share.sync-xhr.unload.payment.publickey-credentials-get.publickey-credentials-create.otp-credentials.identity-credentials-get.digital-credentials-get.local-network.local-network-access.loopback-network".split("."), z = () => {
|
|
180
|
+
try {
|
|
181
|
+
let e = globalThis.document?.featurePolicy?.features?.();
|
|
182
|
+
return e === void 0 ? void 0 : new Set(e);
|
|
183
|
+
} catch {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
}, B = (e = !0, t = z()) => [...R, ...e ? ["cross-origin-isolated"] : []].filter((e) => t === void 0 || t.has(e)).join("; "), V = "https://fkn.app", H = typeof globalThis < "u" && globalThis.document ? globalThis.document : void 0, U = typeof globalThis < "u" && globalThis.crossOriginIsolated === !0, W = `${V}/api${U ? "?coi=1" : ""}`, pe = "fkn-api-port", me = "fkn-api-port-ack", he = 2e3, ge = () => {
|
|
187
|
+
if (!H || typeof window > "u" || window.parent === window) return Promise.resolve(void 0);
|
|
181
188
|
let e;
|
|
182
189
|
try {
|
|
183
190
|
e = window.parent;
|
|
@@ -192,32 +199,32 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
192
199
|
} catch {}
|
|
193
200
|
n(e);
|
|
194
201
|
}, i = (e) => {
|
|
195
|
-
e.data?.type ===
|
|
196
|
-
}, a = setTimeout(() => r(void 0),
|
|
202
|
+
e.data?.type === me && r(t.port1);
|
|
203
|
+
}, a = setTimeout(() => r(void 0), he);
|
|
197
204
|
t.port1.addEventListener("message", i), t.port1.start();
|
|
198
205
|
try {
|
|
199
|
-
e.postMessage({ type:
|
|
206
|
+
e.postMessage({ type: pe }, V, [t.port2]);
|
|
200
207
|
} catch {
|
|
201
208
|
r(void 0);
|
|
202
209
|
}
|
|
203
210
|
});
|
|
204
|
-
},
|
|
205
|
-
if (
|
|
206
|
-
let e =
|
|
207
|
-
if (e)
|
|
211
|
+
}, G, _e = () => {
|
|
212
|
+
if (G || !H) return G;
|
|
213
|
+
let e = H.querySelector(`iframe[src="${W}"]`);
|
|
214
|
+
if (e) G = e;
|
|
208
215
|
else {
|
|
209
|
-
let e =
|
|
210
|
-
e.setAttribute("allow",
|
|
216
|
+
let e = H.createElement("iframe");
|
|
217
|
+
e.setAttribute("allow", B(U)), e.src = W, H.body.appendChild(e), G = e;
|
|
211
218
|
}
|
|
212
|
-
return
|
|
213
|
-
},
|
|
214
|
-
if (!
|
|
215
|
-
let e = await
|
|
219
|
+
return M(G), G;
|
|
220
|
+
}, K = (async () => {
|
|
221
|
+
if (!H) return;
|
|
222
|
+
let e = await ge();
|
|
216
223
|
if (e) return {
|
|
217
224
|
receive: e,
|
|
218
225
|
emit: e
|
|
219
226
|
};
|
|
220
|
-
let t =
|
|
227
|
+
let t = _e();
|
|
221
228
|
if (!t) return;
|
|
222
229
|
await i(t);
|
|
223
230
|
let n = t.contentWindow;
|
|
@@ -225,7 +232,7 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
225
232
|
receive: window,
|
|
226
233
|
emit: n
|
|
227
234
|
} : void 0;
|
|
228
|
-
})(),
|
|
235
|
+
})(), ve = (e) => {
|
|
229
236
|
let t, n = () => {}, r = new Promise((e) => {
|
|
230
237
|
n = e;
|
|
231
238
|
}), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = 0, s = 0;
|
|
@@ -294,14 +301,14 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
294
301
|
lastCall: () => o,
|
|
295
302
|
inFlight: () => s
|
|
296
303
|
};
|
|
297
|
-
},
|
|
298
|
-
if (typeof window < "u") return
|
|
304
|
+
}, ye = typeof window < "u" || typeof self < "u", q = async () => {
|
|
305
|
+
if (typeof window < "u") return K;
|
|
299
306
|
if (typeof self < "u") return {
|
|
300
307
|
receive: self,
|
|
301
308
|
emit: self
|
|
302
309
|
};
|
|
303
|
-
}, J =
|
|
304
|
-
let t = await
|
|
310
|
+
}, J = ve({ async *[Symbol.asyncIterator]() {
|
|
311
|
+
let t = await q();
|
|
305
312
|
if (!t) {
|
|
306
313
|
await new Promise(() => {});
|
|
307
314
|
return;
|
|
@@ -310,18 +317,18 @@ var t = 1e4, n = 16, r = (e) => {
|
|
|
310
317
|
key: "fkn-api",
|
|
311
318
|
transport: t
|
|
312
319
|
});
|
|
313
|
-
} }), Y = J.first.then(() => J.facade), X = 8e3,
|
|
320
|
+
} }), Y = J.first.then(() => J.facade), X = 8e3, be = 1e3, Z = !1, Q = class extends Error {
|
|
314
321
|
constructor(e, t) {
|
|
315
322
|
super(`@fkn/lib: no broker connection within ${t}ms, so ${e} could not be requested`), this.name = "BrokerUnreachableError";
|
|
316
323
|
}
|
|
317
|
-
},
|
|
318
|
-
let t = Z ?
|
|
324
|
+
}, xe = (e) => {
|
|
325
|
+
let t = Z ? be : X;
|
|
319
326
|
return Promise.race([Y, new Promise((n, r) => setTimeout(() => {
|
|
320
327
|
Z = !0, r(new Q(e, t));
|
|
321
328
|
}, t))]);
|
|
322
|
-
}, $ = J.onEpoch,
|
|
329
|
+
}, $ = J.onEpoch, Se = J.current, Ce = J.lastCall, we = J.inFlight;
|
|
323
330
|
$((e) => {
|
|
324
|
-
|
|
331
|
+
fe() && e.overlay.setHost(N, { exactClips: f() }).catch(() => {});
|
|
325
332
|
});
|
|
326
333
|
//#endregion
|
|
327
|
-
export { Y as a,
|
|
334
|
+
export { Y as a, ye as c, L as d, B as f, Ce as i, $ as l, Q as n, xe as o, we as r, Se as s, X as t, K as u };
|
package/api-jOTOA-5n.cjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
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,re=(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},ie=(e,t,n)=>{for(let r=e;r;r=r.parentElement)if(re(r,t,n))return r;return document.scrollingElement},y=null,b=null,x=e=>({width:e.offsetWidth||window.innerWidth,height:e.offsetHeight||window.innerHeight}),S=e=>{if(!b||!y||!te(b,e.clientX,e.clientY))return;let t=document.elementFromPoint(e.clientX,e.clientY);if(!t||t===y)return;let n=v(e.deltaX,e.deltaMode,window.innerWidth),r=v(e.deltaY,e.deltaMode,window.innerHeight),i=ie(t,n,r);i&&(i.scrollBy({left:n,top:r,behavior:`instant`}),e.cancelable&&e.preventDefault())},ae=e=>{let t=b!==null;b=e,t!==(e!==null)&&(e?window.addEventListener(`wheel`,S,{capture:!0,passive:!1}):window.removeEventListener(`wheel`,S,{capture:!0}))},C=0,oe=e=>{if(e===C)return;C=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`))},w=(e,{modal:t,rects:n,inset:r},i)=>{if(oe(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`),ae(t||o!==a?null:_(n))},se=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)},ce=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},le=(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=ce(e.radius);return{x:c,y:l,width:u-c,height:d-l,...f?{radius:f}:{}}},T={"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`},ue=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 T)||r!==`full`&&r!==`liveness`?[]:[{kind:t,cause:n,level:r}]}):[],E=new Set,de=e=>{for(let{kind:t,cause:n,level:r}of e)E.has(t)||(E.add(t),console.error(`[FKN] The FKN ${JSON.stringify(t)} is not visible on this page: ${T[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.`:``)))},D=(e,t)=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,a):[]).map(e=>le(e,t)).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r,hidden:ue(n.hidden),inset:se(n.inset)}},fe=()=>y!==null,O=null,k=null,A=()=>{if(!y||O===null)return;let e=x(y),t=D(O,e);t&&w(y,t,e)},j=e=>{typeof ResizeObserver<`u`&&(k??=new ResizeObserver(A),k.disconnect(),k.observe(e))},M=e=>{u(e),w(e,{modal:!1,rects:[],hidden:[],inset:0},x(e)),y=e,j(e)},N=e=>{if(!y)return;let t=x(y),n=D(e,t);n&&(O=e,w(y,n,t),de(n.hidden))},P=[`fkn.app`,`fkn.dev`,`sdbx.app`],F=e=>e.replace(/\.+$/,``),I=e=>{let t=F(e);return P.some(e=>t===e||t.endsWith(`.${e}`))},L=e=>{let t=typeof e==`string`?e:e instanceof URL?e.href:e.url,n;try{n=new URL(t)}catch{return}if(I(n.hostname))throw Error(`fetch refuses FKN platform domains (${n.hostname})`)},R=`autoplay.fullscreen.picture-in-picture.encrypted-media.screen-wake-lock.speaker-selection.captured-surface-control.camera.microphone.display-capture.geolocation.midi.usb.serial.hid.bluetooth.gamepad.keyboard-map.xr-spatial-tracking.accelerometer.gyroscope.magnetometer.ambient-light-sensor.compute-pressure.clipboard-read.clipboard-write.storage-access.window-management.local-fonts.idle-detection.web-share.sync-xhr.unload.payment.publickey-credentials-get.publickey-credentials-create.otp-credentials.identity-credentials-get.digital-credentials-get.local-network.local-network-access.loopback-network`.split(`.`),z=()=>{try{let e=globalThis.document?.featurePolicy?.features?.();return e===void 0?void 0:new Set(e)}catch{return}},B=(e=!0,t=z())=>[...R,...e?[`cross-origin-isolated`]:[]].filter(e=>t===void 0||t.has(e)).join(`; `),V=`https://fkn.app`,H=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,U=typeof globalThis<`u`&&globalThis.crossOriginIsolated===!0,W=`${V}/api${U?`?coi=1`:``}`,pe=`fkn-api-port`,me=`fkn-api-port-ack`,he=2e3,ge=()=>{if(!H||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===me&&r(t.port1)},a=setTimeout(()=>r(void 0),he);t.port1.addEventListener(`message`,i),t.port1.start();try{e.postMessage({type:pe},V,[t.port2])}catch{r(void 0)}})},G,_e=()=>{if(G||!H)return G;let e=H.querySelector(`iframe[src="${W}"]`);if(e)G=e;else{let e=H.createElement(`iframe`);e.setAttribute(`allow`,B(U)),e.src=W,H.body.appendChild(e),G=e}return M(G),G},K=(async()=>{if(!H)return;let e=await ge();if(e)return{receive:e,emit:e};let t=_e();if(!t)return;await i(t);let n=t.contentWindow;return n?{receive:window,emit:n}:void 0})(),ve=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}},ye=typeof window<`u`||typeof self<`u`,q=async()=>{if(typeof window<`u`)return K;if(typeof self<`u`)return{receive:self,emit:self}},J=ve({async*[Symbol.asyncIterator](){let t=await q();if(!t){await new Promise(()=>{});return}yield*(0,e.expose)({},{key:`fkn-api`,transport:t})}}),Y=J.first.then(()=>J.facade),X=8e3,be=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`}},xe=e=>{let t=Z?be:X;return Promise.race([Y,new Promise((n,r)=>setTimeout(()=>{Z=!0,r(new Q(e,t))},t))])},$=J.onEpoch,Se=J.current,Ce=J.lastCall,we=J.inFlight;$(e=>{fe()&&e.overlay.setHost(N,{exactClips:f()}).catch(()=>{})}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return ye}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ce}}),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 xe}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return we}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Se}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return K}});
|
package/api.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./api-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./api-jOTOA-5n.cjs");exports.API_DEADLINE_MS=e.t,exports.BrokerUnreachableError=e.n,exports.apiInFlight=e.r,exports.apiLastCall=e.i,exports.apiPromise=e.a,exports.apiWithin=e.o,exports.currentApiEpoch=e.s,exports.hasTransport=e.c,exports.onApiEpoch=e.l;
|
package/api.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as apiPromise, c as hasTransport, i as apiLastCall, l as onApiEpoch, n as BrokerUnreachableError, o as apiWithin, r as apiInFlight, s as currentApiEpoch, t as API_DEADLINE_MS } from "./api-
|
|
1
|
+
import { U as Resolvers } from "./contract-sDmsw-9f.js";
|
|
2
|
+
import { a as apiPromise, c as hasTransport, i as apiLastCall, l as onApiEpoch, n as BrokerUnreachableError, o as apiWithin, r as apiInFlight, s as currentApiEpoch, t as API_DEADLINE_MS } from "./api-BxXnHxbd.js";
|
|
3
3
|
export { API_DEADLINE_MS, BrokerUnreachableError, type Resolvers, apiInFlight, apiLastCall, apiPromise, apiWithin, currentApiEpoch, hasTransport, onApiEpoch };
|
package/api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./api-
|
|
1
|
+
import { a as e, c as t, i as n, l as r, n as i, o as a, r as o, s, t as c } from "./api-Dp-2AT3u.js";
|
|
2
2
|
export { c as API_DEADLINE_MS, i as BrokerUnreachableError, o as apiInFlight, n as apiLastCall, e as apiPromise, a as apiWithin, s as currentApiEpoch, t as hasTransport, r as onApiEpoch };
|
package/cloud/dns.d.ts
CHANGED
package/cloud/fetch.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../proxy-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../proxy-DjoPtJH9.cjs");exports.fetch=e.t;
|
package/cloud/fetch.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as cloudFetch } from "../proxy-
|
|
1
|
+
import { t as cloudFetch } from "../proxy-CxRQLGNG.js";
|
|
2
2
|
export { cloudFetch as fetch };
|
package/cloud/fetch.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../proxy-
|
|
1
|
+
import { t as e } from "../proxy-DMTdQ4dN.js";
|
|
2
2
|
export { e as fetch };
|
package/cloud/fs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime-BIInC43l.cjs"),t=require("../node-fs-BNTPsX5c.cjs"),n=require("../messages.cjs"),r=require("../storage-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime-BIInC43l.cjs"),t=require("../node-fs-BNTPsX5c.cjs"),n=require("../messages.cjs"),r=require("../storage-BJd-mWHE.cjs");var i=e.t({STORAGE_NOT_FOUND:()=>n.STORAGE_NOT_FOUND,StorageLockedError:()=>r.t,StorageNotFoundError:()=>r.n,available:()=>a,encryption:()=>r.i,isNotFound:()=>r.a,mkdir:()=>d,promises:()=>m,quota:()=>r.s,readFile:()=>o,readFileSealed:()=>r.l,readdir:()=>u,rename:()=>l,rm:()=>f,stat:()=>p,unlink:()=>c,unlock:()=>r.f,writeFile:()=>s}),{available:a,readFile:o,writeFile:s,unlink:c,rename:l,readdir:u,mkdir:d,rm:f,stat:p,promises:m}=t.t(r.d,{memfs:!1});exports.STORAGE_NOT_FOUND=n.STORAGE_NOT_FOUND,exports.StorageLockedError=r.t,exports.StorageNotFoundError=r.n,exports.available=a,exports.encryption=r.i,exports.isNotFound=r.a,exports.mkdir=d,exports.promises=m,exports.quota=r.s,exports.readFile=o,exports.readFileSealed=r.l,exports.readdir=u,exports.rename=l,exports.rm=f,exports.stat=p,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return i}}),exports.unlink=c,exports.unlock=r.f,exports.writeFile=s;
|
package/cloud/fs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as e } from "../rolldown-runtime-Dy4uBu1J.js";
|
|
2
2
|
import { t } from "../node-fs-BZy9bzKd.js";
|
|
3
3
|
import { STORAGE_NOT_FOUND as n } from "../messages.js";
|
|
4
|
-
import { a as r, d as i, f as a, i as o, l as s, n as c, s as l, t as u } from "../storage-
|
|
4
|
+
import { a as r, d as i, f as a, i as o, l as s, n as c, s as l, t as u } from "../storage-DSvL-t80.js";
|
|
5
5
|
//#region src/cloud/fs.ts
|
|
6
6
|
var d = /* @__PURE__ */ e({
|
|
7
7
|
STORAGE_NOT_FOUND: () => n,
|
package/cloud/net.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as createConnection, c as isIP, i as connect, l as isIPv4, n as Socket, o as createServer, r as _default, t as Server, u as isIPv6 } from "../net-
|
|
1
|
+
import { a as createConnection, c as isIP, i as connect, l as isIPv4, n as Socket, o as createServer, r as _default, t as Server, u as isIPv6 } from "../net-Qmt9L_7t.js";
|
|
2
2
|
export { Server, Socket, _default, _default as default, connect, createConnection, createServer, isIP, isIPv4, isIPv6 };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as AttachFrameFunction } from "./index-
|
|
2
|
-
import { t as cloudFetch } from "./proxy-
|
|
1
|
+
import { r as AttachFrameFunction } from "./index-D2CA-NX5.js";
|
|
2
|
+
import { t as cloudFetch } from "./proxy-CxRQLGNG.js";
|
|
3
3
|
import { t as dns_d_exports } from "./dns.js";
|
|
4
4
|
import { n as fs_d_exports } from "./fs--NhtUyYa.js";
|
|
5
|
-
import { s as net_d_exports } from "./net-
|
|
5
|
+
import { s as net_d_exports } from "./net-Qmt9L_7t.js";
|
|
6
6
|
import { t as dgram_d_exports } from "./dgram.js";
|
|
7
7
|
import { t as http_d_exports } from "./http.js";
|
|
8
8
|
//#region src/cloud/frame.d.ts
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-BIInC43l.cjs"),t=require("./lib-tQKlXzhv.cjs"),n=require("./hosts-9dYv63ud.cjs"),r=require("./api-jOTOA-5n.cjs"),i=require("./busy-Dv8wzE5M.cjs"),a=require("./proxy-DjoPtJH9.cjs"),o=require("./attach-policy.cjs"),s=require("./contract.cjs"),c=require("./dns.cjs"),l=require("./cloud/fs.cjs"),u=require("./net.cjs"),d=require("./dgram.cjs"),f=require("./http.cjs");let p=require("osra");var m=async()=>{let e=()=>r.o(`frame consent`);try{let t=await e();return{request:typeof t.frameConsent.request==`function`?t.frameConsent.request:void 0,ensure:t.frameConsent.ensure}}catch(t){if(!(t instanceof r.n))throw t;return{request:void 0,ensure:t=>e().then(e=>e.frameConsent.ensure(t))}}},h=3e4,g=()=>t.S(`frame.evaluate: the code did not settle within ${h}ms`,`evaluate`),_=`frame: this frame no longer holds the document the app attached it to`,v=!1,y=()=>{v||(v=!0,console.warn(`[fkn-frame] this FKN broker is too old to ask for permission categories, so nothing was asked for upfront and each capability is asked for as it is first used. Reloading the page picks up the current broker.`))},b=e=>[...e].flatMap(e=>{try{return[new URL(e).hostname]}catch{return[]}}),x=(e,t,n)=>n===null?`frame.${e}: the user did not grant ${t} here`:`frame.${e}: the user did not grant ${t} on ${n}`,S=e=>{let{assertLive:r,attach:i,current:a,declaredHosts:s,documentHost:c,ensure:l,request:u,session:d,approvedOrigins:f}=e,p=new Set,m=async()=>c?await c():(()=>{try{return new URL(a()).hostname}catch{return``}})(),h=()=>n.t([...s,...b(f)]),g=async e=>(await u([e]))[0]??!1;return{gate:async({operation:e,args:a,phase:c})=>{r();let v=n.m(e,a);if(v===null)return;let y=t.u(v);if(y===void 0||y===`auto`)return;if(e===`fetch`){let e=o.frameFetchVerdict({session:d,declaredHosts:s,approvedOrigins:f},c===`ensure`?void 0:a[0],{classifier:`fetchTarget`});if(c===`ensure`&&!d)throw t.C(e.kind===`refuse`?e.reason:``,`fetch`);if(c!==`ensure`&&e.kind===`refuse`)throw t.C(e.reason,`fetch`);if(!u){if(e.kind===`refuse`)throw t.C(e.reason,`fetch`);if(!await l({scope:n.c(a[0],a[1]).scope,hosts:e.promptHosts}))throw t.C(`frame.fetch: the user did not grant this`,`fetch`);return}let r=e.kind===`consent`?e.targetHost:await m(),i=n.t([r,...s]);if(!i.length)throw t.C(`frame: navigate the frame before fetch`,`fetch`);if(await g({category:`network`,hosts:i})===!1)throw t.C(x(`fetch`,`network`,r||null),`fetch`);return}let b=await m();if(!b)throw t.C(`frame: navigate the frame before ${e}`,e);if(!h().includes(b))throw t.C(_,e);if(!u)return;let S=t.l(v);if(S===void 0||y===`critical`&&p.has(`${v} ${b}`))return;let C=n.t([b,...s]),w=await g(y===`critical`?{key:v,hosts:C,attach:i}:{category:S,hosts:C});if(w===!1)throw t.C(x(e,S,null),e);if(w===`once`&&c!==`ensure`)for(let e of C)p.add(`${v} ${e}`)},requestCategories:async e=>{r();let a=await m(),o=n.t(a?[a,...s]:s);if(!o.length)throw TypeError(`frame.request: navigate the frame or declare domains first`);let c=e.map(e=>{let n=e.key;return{named:n,critical:n!==void 0&&t.u(n)===`critical`,category:e.category??(n===void 0?void 0:t.c(n))??`interaction`}}),l=({named:e,critical:t,category:n},r)=>({category:n,...t?{key:e}:{},hosts:o,allow:r});if(!u)return y(),c.map(e=>l(e,!1));let d=await u(c.map(({named:e,critical:t,category:n})=>t?{key:e,hosts:o,attach:i}:{category:n,hosts:o}));return c.map((e,t)=>l(e,d[t]!==void 0&&d[t]!==!1))},boundary:h}},C=e=>e,w=5e3,T=new Set([]),E=()=>`https://fkn.app`,D=e=>e?``:`incognito-${crypto.randomUUID()}`,O=(e,t,n)=>{let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(typeof n==`string`?Error(n):n()),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))},k=e=>Object.assign(Error(e),{name:t.b}),A=`frame.postMessage: this FKN page predates frame messaging; reload the app to load the current one`,j=!1,M=()=>{j||(j=!0,console.warn(`[fkn-frame] this FKN page predates frame messaging, so the page's messages and documents are never reported. Reloading the app loads the current one.`))},N=({from:e,origin:t,attach:n,signal:r})=>i=>{let a=r=>{if(r.source===null||r.source!==e()||r.origin!==t)return;let a=r.data;typeof a==`object`&&a&&a.type===`fkn-frame-message`&&a.attach===n&&typeof a.origin==`string`&&(a.kind===`message`?i({type:`message`,data:a.data,origin:a.origin,ports:r.ports}):a.kind===`document`&&i({type:`document`,origin:a.origin}))};return window.addEventListener(`message`,a,{signal:r}),()=>window.removeEventListener(`message`,a)},P=({control:e,target:n,session:r,declaredHosts:i,approvedOrigins:a,attach:o,assertLive:s,guard:c,consent:l,onNavigated:u,relay:d})=>{let f=n,p=Promise.resolve(),{gate:m,requestCategories:v,boundary:y}=S({session:r,declaredHosts:i,approvedOrigins:a,attach:o,assertLive:s,documentHost:typeof e.documentHost==`function`?()=>c(()=>e.documentHost()):void 0,current:()=>f,...l});return t.m({executor:{execute:(n,r,i)=>T.has(r)?Promise.reject(t.T(r,`cloud`)):(s(),c(()=>e.executeLocator(n,r,i))),highlight:async()=>{}},gate:m,request:v,evaluate:async(t,n)=>(s(),await m({parts:[],operation:`evaluate`,args:[t,n],phase:`execute`}),O(c(()=>e.executeLocator([],`evaluate`,[t,n])),h,g)),postMessage:(n,r,i)=>{if(s(),typeof e.messaging!=`function`)throw t.E(A,`postMessage`,`cloud`);if(r!==`*`&&!y().includes(new URL(r).hostname))throw t.C(_,`postMessage`);let{port1:a,port2:o}=new MessageChannel;a.postMessage({data:n,transfer:i},i);let l=[o,r],u=p.then(async()=>(await m({parts:[],operation:`postMessage`,args:l,phase:`execute`}),{answer:c(()=>e.executeLocator([],`postMessage`,l))}));return p=u.catch(()=>{}),u.then(async({answer:e})=>{await e})},listen:t=>(typeof e.messaging!=`function`&&M(),d(t)),goto:async(t,n={})=>{let r=new URL(t,location.href).href;s();let{timeoutMs:i}=n,o=(()=>{try{return new URL(r).origin}catch{return``}})(),l=o!==``&&!a.has(o);l&&a.add(o);try{await O(c(()=>e.goto(r,n)),(i??3e4)+w,`cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded`)}catch(e){throw l&&a.delete(o),e}f=r,u()},url:()=>f})},F=250,I=500,L=65e3,R=2e3,z=2e3,ee=2,te=2e3,ne=2e3,re=({origin:e,target:t,session:n,domains:r,attach:i})=>{let a=new URL(`/attach-window`,e);return a.searchParams.set(`attach`,i),t&&a.searchParams.set(`url`,t),n&&a.searchParams.set(`session`,n),r.length&&a.searchParams.set(`domains`,r.join(`,`)),a.href},ie=(e,t)=>{let n=document.createElement(`iframe`),r=new URL(`/attach-jar`,e);return r.searchParams.set(`attach`,t),n.src=r.href,n.tabIndex=-1,n.setAttribute(`aria-hidden`,`true`),n.setAttribute(`style`,`display:none`),(document.body??document.documentElement).appendChild(n),n},B=(e,t)=>{let n=new MutationObserver(()=>{e.isConnected||t.aborted||(n.disconnect(),console.warn(`cloud.attachFrame: the window's jar anchor was removed from this page, so a sign-in in the window no longer reaches this app's cookie jar`))});e.parentNode&&n.observe(e.parentNode,{childList:!0}),n.observe(document.documentElement,{childList:!0}),t.addEventListener(`abort`,()=>n.disconnect(),{once:!0})},V=()=>k(`cloud.attachFrame: the attached window closed, reloaded or left the page FKN attached; attach a fresh window`),H=()=>k(`cloud.attachFrame: the attached window stopped answering; attach a fresh window`),U=()=>k(`cloud.attachFrame: the window went away before it connected; attach a fresh window`),W=()=>k(`cloud.attachFrame: the window closed before it connected. Either the user closed it, or this page's Cross-Origin-Opener-Policy cut its link to the window`),G=async e=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);let{domains:r=[],syncCookies:a=!0,permissions:o}=e,{url:c,width:l,height:u}=t.s(e.window);if(window.origin===`null`)throw new t.f(`opaque-opener`);let d=E(),f=crypto.randomUUID(),m=D(a),h=n.t(r),g=new Set;c&&g.add(new URL(c).origin);let _=a?ie(d,f):null,v=window.open(re({origin:d,target:c,session:m,domains:h,attach:f}),`_blank`,`popup,width=${l},height=${u}`);if(!v)throw _?.remove(),new t.d;let y=new AbortController,b=!1,x=null,S=(e,t=!1)=>{if(x===null){x=e,y.abort(t?H():V());try{v.closed||v.postMessage({type:s.ATTACH_WINDOW_MESSAGE.detach,attach:f,...t?{unanswered:t}:{}},d)}catch{}_&&setTimeout(()=>_.remove(),ne)}};_&&B(_,y.signal);let w=new Promise((e,t)=>{y.signal.addEventListener(`abort`,()=>t(y.signal.reason),{once:!0})});w.catch(()=>{});let T=w.then(()=>{},()=>{}),k=()=>{if(y.signal.aborted)throw y.signal.reason},A=e=>y.signal.aborted?Promise.reject(y.signal.reason):Promise.race([e(),w]),j=e=>e.source===v&&e.origin===d;window.addEventListener(`message`,e=>{if(!j(e))return;let n=e.data;typeof n==`object`&&n&&n.attach===f&&(n.type===s.ATTACH_WINDOW_MESSAGE.refused?S(new t.f(n.reason)):n.type===s.ATTACH_WINDOW_MESSAGE.gone&&S(b?V():U()))},{signal:y.signal}),window.addEventListener(`pagehide`,()=>S(V()),{signal:y.signal});let M=()=>{try{v.postMessage({type:s.ATTACH_WINDOW_MESSAGE.hello,attach:f},d)}catch{}};M();let G=setInterval(M,F),K=setInterval(()=>{v.closed&&S(b?V():W())},I);y.signal.addEventListener(`abort`,()=>{clearInterval(G),clearInterval(K)},{once:!0});let q=async e=>{try{return await Promise.race([e,w])}catch(e){throw x??e}};try{let e=await q(O((0,p.expose)({},{key:s.ATTACH_WINDOW_KEY,transport:{emit:(e,t)=>v.postMessage(e,d,t??[]),receive:e=>{let t=t=>{j(t)&&e(t.data,{source:t.source,origin:t.origin})};return window.addEventListener(`message`,t),()=>window.removeEventListener(`message`,t)}},unregisterSignal:y.signal,revivableModules:C(t.nt)}),s.WINDOW_HANDSHAKE_TIMEOUT_MS,`cloud.attachFrame: timed out connecting to the window`));b=!0,clearInterval(G);let n=0,r=setInterval(()=>{O(A(()=>e.ping()),z,`ping`).then(()=>{n=0},()=>{y.signal.aborted||(document.visibilityState===`hidden`?n=0:++n>=ee&&S(H(),!0))})},R);y.signal.addEventListener(`abort`,()=>clearInterval(r),{once:!0}),await q(O(e.ready(),L,`cloud.attachFrame: the window never became ready`));let a=i.t(`attached frame`);y.signal.aborted?a():y.signal.addEventListener(`abort`,a,{once:!0});let l=P({control:e,target:c,session:m,declaredHosts:h,approvedOrigins:g,attach:f,assertLive:k,guard:A,consent:{request:t=>A(()=>e.requestConsent(t)),ensure:t=>A(()=>e.requestConsent([t])).then(([e])=>e!==void 0&&e!==!1)},onNavigated:()=>{},relay:N({from:()=>v,origin:d,attach:f,signal:y.signal})}),u=null,_=Object.assign(l,{close:()=>u??=(async()=>{y.signal.aborted||await O(Promise.allSettled([A(()=>e.flushCookies()),A(()=>e.sweepStorage())]),te,`close`).catch(()=>{});try{v.close()}catch{}S(V())})(),closed:T});return o?.length&&await q(_.request(o)),_}catch(e){let n=x??e;if(!(n instanceof t.f))try{v.close()}catch{}throw S(n),n}},K=2e4,q=65e3,J=e=>!e||e===`about:blank`,ae=({target:e,session:t,domains:n,attach:r})=>{let i=new URL(`/attach-frame`,E());return e&&i.searchParams.set(`url`,e),t&&i.searchParams.set(`session`,t),n.length&&i.searchParams.set(`domains`,n.join(`,`)),i.searchParams.set(`attach`,r),i.href},oe=(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())},se=()=>k(`cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe`),ce=(e,t)=>{let n=[...e.split(`;`),...t.split(`;`)].map(e=>e.trim()).filter(Boolean);return[...new Set(n)].join(`; `)},le=[300,1200,4e3],Y=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 le)setTimeout(t,e)},X=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`)},ue=async({iframe:e,domains:a=[],syncCookies:o=!0,lockdown:c=!1,permissions:l})=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);if(c)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`);X(e);let u=e.getAttribute(`src`)??``,d=(()=>{if(J(u))return null;try{return new URL(e.src||u,location.href)}catch{throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${u}`)}})();if(d){let e=new URL(`/attach-frame`,E());if(d.origin===e.origin&&d.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 f=d?.href??``;f&&t.g(f);let h=D(o),g=n.t(a),_=new Set;try{_.add(new URL(f).origin)}catch{}let v=new AbortController,y=e.referrerPolicy,b=e.allow,x=crypto.randomUUID();if(e.referrerPolicy=`origin`,e.allow=ce(r.f(),e.allow),e.src=ae({target:f,session:h,domains:g,attach:x}),!e.contentWindow)throw Error(`cloud.attachFrame: the iframe window is not available`);try{let n=await O((0,p.expose)({},{key:s.ATTACH_FRAME_KEY,origin:E(),transport:{receive:window,emit:e.contentWindow},unregisterSignal:v.signal,revivableModules:C(t.nt)}),K,`cloud.attachFrame: timed out connecting to the render proxy page`);await O(n.ready(),q,`cloud.attachFrame: the render proxy never became ready`),f&&Y(e),oe(e,()=>v.abort());let r=i.t(`attached frame`);v.signal.aborted?r():v.signal.addEventListener(`abort`,r,{once:!0});let a=e.contentWindow,o=P({control:n,target:f,session:h,declaredHosts:g,approvedOrigins:_,attach:x,assertLive:()=>{if(v.signal.aborted||!e.isConnected||e.contentWindow!==a)throw v.abort(),se()},guard:e=>e(),consent:await m(),onNavigated:()=>Y(e),relay:N({from:()=>a,origin:E(),attach:x,signal:v.signal})});return l?.length&&await o.request(l),o}catch(t){throw v.abort(),e.referrerPolicy=y,e.allow=b,e.src=f||`about:blank`,t}},Z=(async e=>t.o(e)===`window`?G(e):ue(e)),de=()=>typeof window<`u`&&!0,Q=async()=>{let e=await r.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}},fe=e.t({attachFrame:()=>Z,available:()=>$,dgram:()=>d.t,dns:()=>c.t,fetch:()=>a.t,fs:()=>l.t,http:()=>f.t,net:()=>u.t,quota:()=>Q}),$=()=>r.c;Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return de}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return $}});
|