@fkn/lib 0.6.1 → 0.6.2
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/{api-BYUraih6.d.ts → api-B0jZnr_N.d.ts} +56 -26
- package/cloud/net.d.ts +1 -1
- package/cloud-B4KIFGwa.cjs +1 -0
- package/{cloud-BFyf2uC7.js → cloud-Dsb33tl6.js} +29 -15
- package/{cloud-gklfa4ZN.d.ts → cloud-jJi2d0cs.d.ts} +2 -2
- package/cloud.cjs +1 -1
- package/cloud.d.ts +2 -2
- package/cloud.js +1 -1
- package/dgram.d.ts +1 -1
- package/http.d.ts +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +2 -2
- package/index.js +1 -1
- package/{net-BDW1AVX1.d.ts → net-5SVFcuzM.d.ts} +1 -1
- package/net.d.ts +1 -1
- package/package.json +1 -1
- package/cloud-5o7yJHeX.cjs +0 -1
|
@@ -90,27 +90,6 @@ type LocalTcpSocket = {
|
|
|
90
90
|
setOption: (option: TcpSocketOption) => Promise<void>;
|
|
91
91
|
};
|
|
92
92
|
//#endregion
|
|
93
|
-
//#region src/api/webvpn/packets/tcp-listener.d.ts
|
|
94
|
-
declare const parseServerMetadataTcpSocketListenerBoundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
95
|
-
readonly _type: 'ServerMetadataTcpSocketListenerBoundPacket';
|
|
96
|
-
readonly offset: number;
|
|
97
|
-
readonly id: number;
|
|
98
|
-
readonly socketId: number;
|
|
99
|
-
readonly localAddressType: 0 | 1;
|
|
100
|
-
readonly localAddress: import("ip-address").Address4 | import("ip-address").Address6;
|
|
101
|
-
readonly localPort: number;
|
|
102
|
-
readonly errorLength: number;
|
|
103
|
-
readonly error: string;
|
|
104
|
-
};
|
|
105
|
-
type ServerMetadataTcpSocketListenerBoundPacket = ReturnType<typeof parseServerMetadataTcpSocketListenerBoundPacket>;
|
|
106
|
-
declare const parseServerMetadataTcpSocketListenerUnboundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
107
|
-
readonly _type: 'ServerMetadataTcpSocketListenerUnboundPacket';
|
|
108
|
-
readonly offset: number;
|
|
109
|
-
readonly id: number;
|
|
110
|
-
readonly socketId: number;
|
|
111
|
-
};
|
|
112
|
-
type ServerMetadataTcpSocketListenerUnboundPacket = ReturnType<typeof parseServerMetadataTcpSocketListenerUnboundPacket>;
|
|
113
|
-
//#endregion
|
|
114
93
|
//#region src/api/webvpn/packets/udp.d.ts
|
|
115
94
|
declare const parseServerMetadataUdpSocketBoundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
116
95
|
readonly _type: 'ServerMetadataUdpSocketBoundPacket';
|
|
@@ -143,6 +122,17 @@ declare const parseServerMetadataUdpSocketConnectedPacket: (offset: number, buff
|
|
|
143
122
|
readonly error: string;
|
|
144
123
|
};
|
|
145
124
|
type ServerMetadataUdpSocketConnectedPacket = ReturnType<typeof parseServerMetadataUdpSocketConnectedPacket>;
|
|
125
|
+
declare const parseServerUdpDataPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
126
|
+
readonly _type: 'ServerUdpDataPacket';
|
|
127
|
+
readonly offset: number;
|
|
128
|
+
readonly socketId: number;
|
|
129
|
+
readonly remoteAddressType: 0 | 1 | 2;
|
|
130
|
+
readonly remoteAddress: import("ip-address").Address4 | import("ip-address").Address6 | undefined;
|
|
131
|
+
readonly remotePort: number | undefined;
|
|
132
|
+
readonly dataLength: number;
|
|
133
|
+
readonly data: ArrayBuffer;
|
|
134
|
+
};
|
|
135
|
+
type ServerUdpDataPacket = ReturnType<typeof parseServerUdpDataPacket>;
|
|
146
136
|
declare const UDP_OPTION_BROADCAST: 0;
|
|
147
137
|
declare const UDP_OPTION_TTL: 1;
|
|
148
138
|
declare const UDP_OPTION_MULTICAST_TTL_V4: 2;
|
|
@@ -202,6 +192,27 @@ declare const parseServerMetadataUdpSetOptionAckPacket: (offset: number, buffer:
|
|
|
202
192
|
};
|
|
203
193
|
type ServerMetadataUdpSetOptionAckPacket = ReturnType<typeof parseServerMetadataUdpSetOptionAckPacket>;
|
|
204
194
|
//#endregion
|
|
195
|
+
//#region src/api/webvpn/packets/tcp-listener.d.ts
|
|
196
|
+
declare const parseServerMetadataTcpSocketListenerBoundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
197
|
+
readonly _type: 'ServerMetadataTcpSocketListenerBoundPacket';
|
|
198
|
+
readonly offset: number;
|
|
199
|
+
readonly id: number;
|
|
200
|
+
readonly socketId: number;
|
|
201
|
+
readonly localAddressType: 0 | 1;
|
|
202
|
+
readonly localAddress: import("ip-address").Address4 | import("ip-address").Address6;
|
|
203
|
+
readonly localPort: number;
|
|
204
|
+
readonly errorLength: number;
|
|
205
|
+
readonly error: string;
|
|
206
|
+
};
|
|
207
|
+
type ServerMetadataTcpSocketListenerBoundPacket = ReturnType<typeof parseServerMetadataTcpSocketListenerBoundPacket>;
|
|
208
|
+
declare const parseServerMetadataTcpSocketListenerUnboundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
209
|
+
readonly _type: 'ServerMetadataTcpSocketListenerUnboundPacket';
|
|
210
|
+
readonly offset: number;
|
|
211
|
+
readonly id: number;
|
|
212
|
+
readonly socketId: number;
|
|
213
|
+
};
|
|
214
|
+
type ServerMetadataTcpSocketListenerUnboundPacket = ReturnType<typeof parseServerMetadataTcpSocketListenerUnboundPacket>;
|
|
215
|
+
//#endregion
|
|
205
216
|
//#region src/api/webvpn/packets/metadata.d.ts
|
|
206
217
|
declare const parseServerMetadataHeaderPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
207
218
|
readonly _type: 'ServerMetadataHeaderPacket';
|
|
@@ -214,13 +225,27 @@ declare const parseServerMetadataHeaderPacket: (offset: number, buffer: ArrayBuf
|
|
|
214
225
|
type ServerMetadataHeaderPacket = ReturnType<typeof parseServerMetadataHeaderPacket>;
|
|
215
226
|
type ServerMetadataPacket = ServerMetadataHeaderPacket | ServerMetadataTcpSocketConnectedPacket | ServerMetadataTcpSocketShutdownPacket | ServerMetadataTcpSocketListenerBoundPacket | ServerMetadataTcpSocketListenerUnboundPacket | ServerMetadataUdpSocketBoundPacket | ServerMetadataUdpSocketUnboundPacket | ServerMetadataUdpSocketConnectedPacket | ServerMetadataTcpSetOptionAckPacket | ServerMetadataUdpSetOptionAckPacket;
|
|
216
227
|
//#endregion
|
|
217
|
-
//#region src/api/webvpn/
|
|
228
|
+
//#region src/api/webvpn/session-core.d.ts
|
|
218
229
|
type BidirectionalStreams = {
|
|
219
230
|
readable: ReadableStream<Uint8Array>;
|
|
220
231
|
writable: WritableStream<Uint8Array>;
|
|
221
232
|
};
|
|
222
|
-
|
|
223
|
-
|
|
233
|
+
type TransportPrimitives = {
|
|
234
|
+
metadataReadable: ReadableStream<Uint8Array>;
|
|
235
|
+
metadataWriter: WritableStreamDefaultWriter<Uint8Array>;
|
|
236
|
+
datagramWriter: WritableStreamDefaultWriter<Uint8Array>;
|
|
237
|
+
incomingBidi: ReadableStream<BidirectionalStreams>;
|
|
238
|
+
incomingUni: ReadableStream<ReadableStream<Uint8Array>>;
|
|
239
|
+
serverDatagrams?: ReadableStream<ServerUdpDataPacket>;
|
|
240
|
+
closed: Promise<{
|
|
241
|
+
reason: string;
|
|
242
|
+
}>;
|
|
243
|
+
close: (reason: string) => void;
|
|
244
|
+
};
|
|
245
|
+
declare const makeWebVpnSession: (primitives: TransportPrimitives) => Promise<{
|
|
246
|
+
closed: Promise<{
|
|
247
|
+
reason: string;
|
|
248
|
+
}>;
|
|
224
249
|
isClosed: () => boolean;
|
|
225
250
|
getNewPacketId: () => number;
|
|
226
251
|
getTcpDataReadableStreamForSocketId: (socketId: number, options?: {
|
|
@@ -246,7 +271,10 @@ declare const makeWebVPNWebTransport: () => Promise<{
|
|
|
246
271
|
getDatagramWritableStream: () => WritableStream<Uint8Array<ArrayBufferLike>>;
|
|
247
272
|
presentRateToken: () => Promise<void>;
|
|
248
273
|
}>;
|
|
249
|
-
type
|
|
274
|
+
type WebVPNSession = Awaited<ReturnType<typeof makeWebVpnSession>>;
|
|
275
|
+
//#endregion
|
|
276
|
+
//#region src/api/webvpn/transport.d.ts
|
|
277
|
+
type WebVPNWebTransport = WebVPNSession;
|
|
250
278
|
//#endregion
|
|
251
279
|
//#region src/api/webvpn/tcp.d.ts
|
|
252
280
|
declare const processTcpSocket: ({
|
|
@@ -256,7 +284,8 @@ declare const processTcpSocket: ({
|
|
|
256
284
|
metadataReadableStream,
|
|
257
285
|
metadataWriter,
|
|
258
286
|
dataStreamAbort,
|
|
259
|
-
webVpnWebTransport
|
|
287
|
+
webVpnWebTransport,
|
|
288
|
+
ownsMetadataWriter
|
|
260
289
|
}: {
|
|
261
290
|
connectedPacket: ServerMetadataTcpSocketConnectedPacket;
|
|
262
291
|
dataReadableStream: ReadableStream<Uint8Array>;
|
|
@@ -265,6 +294,7 @@ declare const processTcpSocket: ({
|
|
|
265
294
|
metadataWriter: WritableStreamDefaultWriter<Uint8Array>;
|
|
266
295
|
dataStreamAbort?: AbortController;
|
|
267
296
|
webVpnWebTransport: WebVPNWebTransport;
|
|
297
|
+
ownsMetadataWriter?: boolean;
|
|
268
298
|
}) => Promise<{
|
|
269
299
|
localAddress: string;
|
|
270
300
|
localFamily: "IPv4" | "IPv6";
|
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-5SVFcuzM.js";
|
|
2
2
|
export { Server, Socket, _default, _default as default, connect, createConnection, createServer, isIP, isIPv4, isIPv6 };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-bPaU3-Cz.cjs"),n=require("./api-DD5v1qP9.cjs"),r=require("./dns.cjs"),i=require("./cloud/fs.cjs"),a=require("./net-CpuAhaQC.cjs"),o=require("./dgram-CE43gJq9.cjs"),s=require("./http.cjs");let c=require("osra");var l=`autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write`,u=2e4,d=65e3,f=3e4,p=5e3,m=new Set([`videoElement`]),h=()=>`https://fkn.app`,g=e=>!e||e===`about:blank`,_=e=>e?``:`incognito-${crypto.randomUUID()}`,v=({target:e,session:t})=>{let n=new URL(`/attach-frame`,h());return e&&n.searchParams.set(`url`,e),t&&n.searchParams.set(`session`,t),n.href},y=(e,t,n)=>{let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))},b=(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())},x=()=>Object.assign(Error(`cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe`),{name:t.v}),S=(e,t)=>{let n=[...e.split(`;`),...t.split(`;`)].map(e=>e.trim()).filter(Boolean);return[...new Set(n)].join(`; `)},C=[300,1200,4e3],w=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 C)setTimeout(t,e)},T=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`)},E=async({iframe:e,domains:n=[],syncCookies:r=!0,lockdown:i=!1})=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);if(i)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`);T(e);let a=e.getAttribute(`src`)??``,o=(()=>{if(g(a))return null;try{return new URL(e.src||a,location.href)}catch{throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${a}`)}})();if(o){let e=new URL(`/attach-frame`,h());if(o.origin===e.origin&&o.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 s=o?.href??``;s&&t.l(s);let C=s,E=_(r),D=new AbortController;if(e.referrerPolicy=`origin`,e.allow=S(l,e.allow),e.src=v({target:s,session:E}),!e.contentWindow)throw Error(`cloud.attachFrame: the iframe window is not available`);try{let n=await y((0,c.expose)({},{key:`fkn-attach-frame`,origin:h(),transport:{receive:window,emit:e.contentWindow},unregisterSignal:D.signal}),u,`cloud.attachFrame: timed out connecting to the render proxy page`);await y(n.ready(),d,`cloud.attachFrame: the render proxy never became ready`),s&&w(e),b(e,()=>D.abort());let r=e.contentWindow,i=()=>{if(!(!D.signal.aborted&&e.isConnected&&e.contentWindow===r))throw D.abort(),x()};return t.s({executeLocator:(e,r,a)=>m.has(r)?Promise.reject(t.y(r,`cloud`)):(i(),n.executeLocator(e,r,a)),ensurePermission:async()=>{},goto:async(t,r={})=>{let a=new URL(t,location.href).href;i();let{timeoutMs:o}=r;await y(n.goto(a,r),(o??f)+p,`cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded`),C=a,w(e)},url:()=>C})}catch(t){throw D.abort(),e.src=s||`about:blank`,t}},D=async()=>{let e=await n.t.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}},O=e.n({attachFrame:()=>E,available:()=>k,dgram:()=>o.i,dns:()=>r.t,fetch:()=>t.t,fs:()=>i.t,http:()=>s.t,net:()=>a.s,quota:()=>D}),k=()=>n.n;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return k}});
|
|
@@ -28,16 +28,30 @@ var m = "autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-re
|
|
|
28
28
|
}, E = () => Object.assign(/* @__PURE__ */ Error("cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe"), { name: i }), D = (e, t) => {
|
|
29
29
|
let n = [...e.split(";"), ...t.split(";")].map((e) => e.trim()).filter(Boolean);
|
|
30
30
|
return [...new Set(n)].join("; ");
|
|
31
|
-
}, O =
|
|
31
|
+
}, O = [
|
|
32
|
+
300,
|
|
33
|
+
1200,
|
|
34
|
+
4e3
|
|
35
|
+
], k = (e) => {
|
|
36
|
+
let t = () => {
|
|
37
|
+
if (!e.isConnected) return;
|
|
38
|
+
let t = e.style.height, n = e.getBoundingClientRect();
|
|
39
|
+
n.height && (e.style.height = `${n.height - 1}px`, setTimeout(() => {
|
|
40
|
+
e.style.height = t;
|
|
41
|
+
}, 50));
|
|
42
|
+
};
|
|
43
|
+
t();
|
|
44
|
+
for (let e of O) setTimeout(t, e);
|
|
45
|
+
}, A = (e) => {
|
|
32
46
|
let t = e.getAttribute("sandbox");
|
|
33
47
|
if (t === null) return;
|
|
34
48
|
let n = new Set(t.toLowerCase().split(/\s+/).filter(Boolean)), r = ["allow-scripts", "allow-same-origin"].filter((e) => !n.has(e));
|
|
35
49
|
if (r.length) throw Error(`cloud.attachFrame: the iframe's sandbox attribute must include ${r.join(" and ")} for the render proxy to load`);
|
|
36
|
-
},
|
|
50
|
+
}, j = async ({ iframe: e, domains: r = [], syncCookies: i = !0, lockdown: o = !1 }) => {
|
|
37
51
|
if (typeof window > "u") throw Error("cloud.attachFrame needs a window realm");
|
|
38
52
|
if (o) throw Error("cloud.attachFrame does not support lockdown; use the extension backend for a sealed frame");
|
|
39
53
|
if (!e.isConnected) throw Error("cloud.attachFrame: the iframe must be connected to the document before attaching");
|
|
40
|
-
|
|
54
|
+
A(e);
|
|
41
55
|
let s = e.getAttribute("src") ?? "", c = (() => {
|
|
42
56
|
if (x(s)) return null;
|
|
43
57
|
try {
|
|
@@ -67,25 +81,25 @@ var m = "autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-re
|
|
|
67
81
|
},
|
|
68
82
|
unregisterSignal: f.signal
|
|
69
83
|
}), h, "cloud.attachFrame: timed out connecting to the render proxy page");
|
|
70
|
-
await w(t.ready(), g, "cloud.attachFrame: the render proxy never became ready"), T(e, () => f.abort());
|
|
84
|
+
await w(t.ready(), g, "cloud.attachFrame: the render proxy never became ready"), l && k(e), T(e, () => f.abort());
|
|
71
85
|
let r = e.contentWindow, i = () => {
|
|
72
86
|
if (!(!f.signal.aborted && e.isConnected && e.contentWindow === r)) throw f.abort(), E();
|
|
73
87
|
};
|
|
74
88
|
return n({
|
|
75
89
|
executeLocator: (e, n, r) => y.has(n) ? Promise.reject(a(n, "cloud")) : (i(), t.executeLocator(e, n, r)),
|
|
76
90
|
ensurePermission: async () => {},
|
|
77
|
-
goto: async (
|
|
78
|
-
let
|
|
91
|
+
goto: async (n, r = {}) => {
|
|
92
|
+
let a = new URL(n, location.href).href;
|
|
79
93
|
i();
|
|
80
|
-
let { timeoutMs:
|
|
81
|
-
await w(t.goto(
|
|
94
|
+
let { timeoutMs: o } = r;
|
|
95
|
+
await w(t.goto(a, r), (o ?? _) + v, "cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded"), u = a, k(e);
|
|
82
96
|
},
|
|
83
97
|
url: () => u
|
|
84
98
|
});
|
|
85
99
|
} catch (t) {
|
|
86
100
|
throw f.abort(), e.src = l || "about:blank", t;
|
|
87
101
|
}
|
|
88
|
-
},
|
|
102
|
+
}, M = async () => {
|
|
89
103
|
let e = await s.then((e) => e.cloud.quota());
|
|
90
104
|
return {
|
|
91
105
|
premium: e.premium,
|
|
@@ -97,16 +111,16 @@ var m = "autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-re
|
|
|
97
111
|
bytesPerSecond: e.bytesPerSecond,
|
|
98
112
|
bitsPerSecond: e.bytesPerSecond * 8
|
|
99
113
|
};
|
|
100
|
-
},
|
|
101
|
-
attachFrame: () =>
|
|
102
|
-
available: () =>
|
|
114
|
+
}, N = /* @__PURE__ */ e({
|
|
115
|
+
attachFrame: () => j,
|
|
116
|
+
available: () => P,
|
|
103
117
|
dgram: () => d,
|
|
104
118
|
dns: () => c,
|
|
105
119
|
fetch: () => r,
|
|
106
120
|
fs: () => l,
|
|
107
121
|
http: () => f,
|
|
108
122
|
net: () => u,
|
|
109
|
-
quota: () =>
|
|
110
|
-
}),
|
|
123
|
+
quota: () => M
|
|
124
|
+
}), P = () => o;
|
|
111
125
|
//#endregion
|
|
112
|
-
export {
|
|
126
|
+
export { j as i, N as n, M as r, P as t };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as Resolvers } from "./api-
|
|
1
|
+
import { t as Resolvers } from "./api-B0jZnr_N.js";
|
|
2
2
|
import { b as Frame, y as AttachFrameOptions } from "./index-BJztAQIP.js";
|
|
3
3
|
import { t as dns_d_exports } from "./dns.js";
|
|
4
4
|
import { n as fs_d_exports } from "./fs-K7ROdxDx.js";
|
|
5
|
-
import { s as net_d_exports } from "./net-
|
|
5
|
+
import { s as net_d_exports } from "./net-5SVFcuzM.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
|
|
package/cloud.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-bPaU3-Cz.cjs"),t=require("./cloud-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-bPaU3-Cz.cjs"),t=require("./cloud-B4KIFGwa.cjs"),n=require("./dns.cjs"),r=require("./cloud/fs.cjs"),i=require("./net-CpuAhaQC.cjs"),a=require("./dgram-CE43gJq9.cjs"),o=require("./http.cjs");exports.attachFrame=t.i,exports.available=t.t,Object.defineProperty(exports,"dgram",{enumerable:!0,get:function(){return a.i}}),Object.defineProperty(exports,"dns",{enumerable:!0,get:function(){return n.t}}),exports.fetch=e.t,Object.defineProperty(exports,"fs",{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(exports,"http",{enumerable:!0,get:function(){return o.t}}),Object.defineProperty(exports,"net",{enumerable:!0,get:function(){return i.s}}),exports.quota=t.r;
|
package/cloud.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as attachFrame, i as quota, o as cloudFetch, r as QuotaStatus, t as available } from "./cloud-
|
|
1
|
+
import { a as attachFrame, i as quota, o as cloudFetch, r as QuotaStatus, t as available } from "./cloud-jJi2d0cs.js";
|
|
2
2
|
import { t as dns_d_exports } from "./dns.js";
|
|
3
3
|
import { n as fs_d_exports } from "./fs-K7ROdxDx.js";
|
|
4
|
-
import { s as net_d_exports } from "./net-
|
|
4
|
+
import { s as net_d_exports } from "./net-5SVFcuzM.js";
|
|
5
5
|
import { t as dgram_d_exports } from "./dgram.js";
|
|
6
6
|
import { t as http_d_exports } from "./http.js";
|
|
7
7
|
export { type QuotaStatus, attachFrame, available, dgram_d_exports as dgram, dns_d_exports as dns, cloudFetch as fetch, fs_d_exports as fs, http_d_exports as http, net_d_exports as net, quota };
|
package/cloud.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./proxy-C8SG1Beo.js";
|
|
2
|
-
import { i as t, r as n, t as r } from "./cloud-
|
|
2
|
+
import { i as t, r as n, t as r } from "./cloud-Dsb33tl6.js";
|
|
3
3
|
import { t as i } from "./dns.js";
|
|
4
4
|
import { t as a } from "./cloud/fs.js";
|
|
5
5
|
import { s as o } from "./net-DKMWPXb_.js";
|
package/dgram.d.ts
CHANGED
package/http.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as Socket, t as Server$1 } from "./net-
|
|
1
|
+
import { n as Socket, t as Server$1 } from "./net-5SVFcuzM.js";
|
|
2
2
|
import { Buffer } from "buffer";
|
|
3
3
|
import { Stream } from "stream";
|
|
4
4
|
import { IncomingHttpHeaders, OutgoingHttpHeaders, RequestOptions } from "http";
|
package/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-bPaU3-Cz.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./cloud-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./proxy-bPaU3-Cz.cjs"),t=require("./api-DD5v1qP9.cjs"),n=require("./cloud-B4KIFGwa.cjs"),r=require("./dns.cjs"),i=require("./net-CpuAhaQC.cjs"),a=require("./dgram-CE43gJq9.cjs"),o=require("./http.cjs"),s=require("./extension-D-NUXxzF.cjs"),c=require("./desktop.cjs"),l=require("./fs-BfmfMBiw.cjs"),u=require("./opfs.cjs"),d=require("./packages.cjs"),f=require("./account.cjs"),p=require("./connect-button-BBEjXzB3.cjs");let m=require("osra");var h=t=>s.r()||t.syncCookies!==!1?e.a(t):n.i(t),g=`https://fkn.app`,_=(e,n)=>{if(typeof window>`u`)throw Error(`FKN @fkn/lib: relayWorker must be called from the main thread`);if(!t.r?.contentWindow)throw Error(`FKN @fkn/lib: relayWorker called before the FKN iframe was injected`);(0,m.relay)({receive:window,emit:t.r.contentWindow},e,{key:`fkn-api`,originA:n?.originA??g,originB:n?.originB??`*`,unregisterSignal:n?.unregisterSignal})},v=async()=>typeof window>`u`?!1:(await t.t).connect.prompt(location.origin).catch(()=>!1);exports.ATTACH_FRAME_EVENT_KEY=e.i,Object.defineProperty(exports,"account",{enumerable:!0,get:function(){return f.t}}),exports.assertAttachableFrameUrl=e.l,exports.assertFetchableUrl=e.E,exports.assertLockdownApplicable=e.u,exports.attachFrame=h,exports.attachFramePermission=e.o,exports.box=e.R,Object.defineProperty(exports,"cloud",{enumerable:!0,get:function(){return n.n}}),exports.connect=v,exports.connectButtonUrl=p.t,exports.cookies=e.w,exports.createFrame=e.s,exports.createVideoElementHandle=e.z,Object.defineProperty(exports,"desktop",{enumerable:!0,get:function(){return c.t}}),Object.defineProperty(exports,"dgram",{enumerable:!0,get:function(){return a.i}}),Object.defineProperty(exports,"dns",{enumerable:!0,get:function(){return r.t}}),Object.defineProperty(exports,"extension",{enumerable:!0,get:function(){return s.t}}),exports.fetch=s.n,exports.fetchCredentialedPermission=e.O,exports.fetchLocalPermission=e.k,exports.fetchPermission=e.A,Object.defineProperty(exports,"fs",{enumerable:!0,get:function(){return l.c}}),exports.gotoPermission=e.c,exports.handleRevivableModules=e.L,Object.defineProperty(exports,"http",{enumerable:!0,get:function(){return o.t}}),exports.isBlockedFetchUrl=e.j,exports.isBlockedFrameUrl=e.d,exports.isExtensionExposed=e.P,exports.isLocalNetworkUrl=e.M,exports.isType=e.B,exports.modifyRequestHeadersPermission=e.x,Object.defineProperty(exports,"net",{enumerable:!0,get:function(){return i.s}}),Object.defineProperty(exports,"opfs",{enumerable:!0,get:function(){return u.t}}),Object.defineProperty(exports,"packages",{enumerable:!0,get:function(){return d.t}}),exports.permissions=e.r,exports.promptInstall=s.i,exports.readCookiePermission=e.T,exports.relayWorker=_,exports.removeRequestHeaderRule=e.S,exports.revive=e.V,exports.setMissingExtensionHandler=e.F,exports.setRequestHeaderRule=e.C,exports.type=e.H,exports.waitForExtensionExposure=e.I;
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as account_d_exports } from "./account.js";
|
|
2
2
|
import { p as packages_d_exports } from "./packages-D36R2vBv.js";
|
|
3
|
-
import { n as cloud_d_exports } from "./cloud-
|
|
3
|
+
import { n as cloud_d_exports } from "./cloud-jJi2d0cs.js";
|
|
4
4
|
import { A as RequestHeaderRule, B as assertFetchableUrl, C as attachFramePermission, D as assertLockdownApplicable, E as assertAttachableFrameUrl, F as SiteCookie, G as isBlockedFetchUrl, H as fetchCredentialedPermission, I as cookies, K as isLocalNetworkUrl, L as readCookiePermission, M as removeRequestHeaderRule, N as setRequestHeaderRule, O as isBlockedFrameUrl, P as CookieDetails, R as FetchInit, S as GotoOptions, T as gotoPermission, U as fetchLocalPermission, W as fetchPermission, _ as ATTACH_FRAME_EVENT_KEY, a as handleRevivableModules, b as Frame, c as VideoElementState, d as isType, f as revive, g as permissions, h as PermissionRequest, i as waitForExtensionExposure, j as modifyRequestHeadersPermission, k as HeaderOperation, l as box, m as PermissionGrant, n as isExtensionExposed, o as BoxedVideoElement, p as type, r as setMissingExtensionHandler, s as RemoteVideoElement, u as createVideoElementHandle, w as createFrame, x as FrameBackend, y as AttachFrameOptions, z as ProxyFetchRequest } from "./index-BJztAQIP.js";
|
|
5
5
|
import { t as dns_d_exports } from "./dns.js";
|
|
6
|
-
import { s as net_d_exports } from "./net-
|
|
6
|
+
import { s as net_d_exports } from "./net-5SVFcuzM.js";
|
|
7
7
|
import { t as dgram_d_exports } from "./dgram.js";
|
|
8
8
|
import { t as http_d_exports } from "./http.js";
|
|
9
9
|
import { t as desktop_d_exports } from "./desktop.js";
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { A as e, B as t, C as n, E as r, F as i, H as a, I as o, L as s, M as c, O as l, P as u, R as d, S as f, T as p, V as m, a as h, c as g, d as _, i as v, j as y, k as b, l as x, o as S, r as C, s as w, u as T, w as E, x as D, z as O } from "./proxy-C8SG1Beo.js";
|
|
2
2
|
import { r as k, t as A } from "./api--bnCFd4w.js";
|
|
3
|
-
import { i as j, n as M } from "./cloud-
|
|
3
|
+
import { i as j, n as M } from "./cloud-Dsb33tl6.js";
|
|
4
4
|
import { t as N } from "./dns.js";
|
|
5
5
|
import { s as P } from "./net-DKMWPXb_.js";
|
|
6
6
|
import { i as F } from "./dgram-wtjARbt0.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as TcpSocketOption, r as LocalTcpSocket, t as Resolvers } from "./api-
|
|
1
|
+
import { i as TcpSocketOption, r as LocalTcpSocket, t as Resolvers } from "./api-B0jZnr_N.js";
|
|
2
2
|
import { AddressInfo, ListenOptions, Server, ServerOpts, Socket, SocketConnectOpts, SocketConstructorOpts } from "net";
|
|
3
3
|
import { DuplexOptions, Stream } from "stream";
|
|
4
4
|
import { EventEmitter } from "events";
|
package/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-5SVFcuzM.js";
|
|
2
2
|
export { Server, Socket, _default, _default as default, connect, createConnection, createServer, isIP, isIPv4, isIPv6 };
|
package/package.json
CHANGED
package/cloud-5o7yJHeX.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-bPaU3-Cz.cjs"),n=require("./api-DD5v1qP9.cjs"),r=require("./dns.cjs"),i=require("./cloud/fs.cjs"),a=require("./net-CpuAhaQC.cjs"),o=require("./dgram-CE43gJq9.cjs"),s=require("./http.cjs");let c=require("osra");var l=`autoplay; fullscreen; encrypted-media; picture-in-picture; clipboard-read; clipboard-write`,u=2e4,d=65e3,f=3e4,p=5e3,m=new Set([`videoElement`]),h=()=>`https://fkn.app`,g=e=>!e||e===`about:blank`,_=e=>e?``:`incognito-${crypto.randomUUID()}`,v=({target:e,session:t})=>{let n=new URL(`/attach-frame`,h());return e&&n.searchParams.set(`url`,e),t&&n.searchParams.set(`session`,t),n.href},y=(e,t,n)=>{let r,i=new Promise((e,i)=>{r=setTimeout(()=>i(Error(n)),t)});return Promise.race([e,i]).finally(()=>clearTimeout(r))},b=(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())},x=()=>Object.assign(Error(`cloud.attachFrame: the attached iframe left the document or was reloaded; attach a fresh iframe`),{name:t.v}),S=(e,t)=>{let n=[...e.split(`;`),...t.split(`;`)].map(e=>e.trim()).filter(Boolean);return[...new Set(n)].join(`; `)},C=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`)},w=async({iframe:e,domains:n=[],syncCookies:r=!0,lockdown:i=!1})=>{if(typeof window>`u`)throw Error(`cloud.attachFrame needs a window realm`);if(i)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`);C(e);let a=e.getAttribute(`src`)??``,o=(()=>{if(g(a))return null;try{return new URL(e.src||a,location.href)}catch{throw Error(`cloud.attachFrame: the iframe src is not a valid URL: ${a}`)}})();if(o){let e=new URL(`/attach-frame`,h());if(o.origin===e.origin&&o.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 s=o?.href??``;s&&t.l(s);let w=s,T=_(r),E=new AbortController;if(e.referrerPolicy=`origin`,e.allow=S(l,e.allow),e.src=v({target:s,session:T}),!e.contentWindow)throw Error(`cloud.attachFrame: the iframe window is not available`);try{let n=await y((0,c.expose)({},{key:`fkn-attach-frame`,origin:h(),transport:{receive:window,emit:e.contentWindow},unregisterSignal:E.signal}),u,`cloud.attachFrame: timed out connecting to the render proxy page`);await y(n.ready(),d,`cloud.attachFrame: the render proxy never became ready`),b(e,()=>E.abort());let r=e.contentWindow,i=()=>{if(!(!E.signal.aborted&&e.isConnected&&e.contentWindow===r))throw E.abort(),x()};return t.s({executeLocator:(e,r,a)=>m.has(r)?Promise.reject(t.y(r,`cloud`)):(i(),n.executeLocator(e,r,a)),ensurePermission:async()=>{},goto:async(e,t={})=>{let r=new URL(e,location.href).href;i();let{timeoutMs:a}=t;await y(n.goto(r,t),(a??f)+p,`cloud.attachFrame: the render proxy did not answer goto; the frame may have been detached or its page reloaded`),w=r},url:()=>w})}catch(t){throw E.abort(),e.src=s||`about:blank`,t}},T=async()=>{let e=await n.t.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}},E=e.n({attachFrame:()=>w,available:()=>D,dgram:()=>o.i,dns:()=>r.t,fetch:()=>t.t,fs:()=>i.t,http:()=>s.t,net:()=>a.s,quota:()=>T}),D=()=>n.n;Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return D}});
|