@fkn/lib 0.6.1 → 0.7.0
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-CI4d96Ty.d.ts} +156 -24
- package/{background-B_VgpARk.cjs → background-Bu7dBd_Z.cjs} +1 -1
- package/{background-BVBbBOmL.js → background-DLnt6fYS.js} +5 -5
- package/cloud/dgram.cjs +1 -1
- package/cloud/dgram.js +1 -1
- package/cloud/fs.cjs +1 -1
- package/cloud/fs.d.ts +2 -2
- package/cloud/fs.js +18 -15
- package/cloud/net.cjs +1 -1
- package/cloud/net.d.ts +1 -1
- package/cloud/net.js +3 -3
- package/{cloud-gklfa4ZN.d.ts → cloud-BxPdeAuj.d.ts} +4 -4
- package/cloud-DevROE3T.cjs +1 -0
- package/{cloud-BFyf2uC7.js → cloud-Pibu_mY3.js} +32 -18
- package/cloud.cjs +1 -1
- package/cloud.d.ts +3 -3
- package/cloud.js +4 -4
- package/desktop.d.ts +6 -0
- package/{dgram-wtjARbt0.js → dgram-CKRbKVzG.js} +140 -86
- package/dgram-DcvdNkg6.cjs +1 -0
- package/dgram.cjs +1 -1
- package/dgram.d.ts +16 -1
- package/dgram.js +1 -1
- package/{extension-CPj10qwa.js → extension-4ib5y95s.js} +1 -1
- package/{extension-D-NUXxzF.cjs → extension-DVHdBvOz.cjs} +1 -1
- package/extension.cjs +1 -1
- package/extension.js +2 -2
- package/fs/promises.cjs +1 -1
- package/fs/promises.js +1 -1
- package/{fs-D6nNf1mR.js → fs-7E0-tE2x.js} +11 -11
- package/{fs-K7ROdxDx.d.ts → fs-BEfsbriO.d.ts} +14 -2
- package/{fs-BfmfMBiw.cjs → fs-BN4hkppN.cjs} +1 -1
- package/fs.cjs +1 -1
- package/fs.js +1 -1
- package/http.cjs +1 -1
- package/http.d.ts +1 -1
- package/http.js +1 -1
- package/index.cjs +1 -1
- package/index.d.ts +3 -3
- package/index.js +6 -6
- package/{net-DKMWPXb_.js → net-BFYMbE4N.js} +49 -26
- package/net-BPpdNdpy.cjs +1 -0
- package/{net-BDW1AVX1.d.ts → net-Cx8lDWau.d.ts} +13 -4
- package/net.cjs +1 -1
- package/net.d.ts +1 -1
- package/net.js +3 -3
- package/package.json +1 -1
- package/{packages-D36R2vBv.d.ts → packages-CErlrrLB.d.ts} +2 -2
- package/packages.d.ts +2 -2
- package/{proxy-C8SG1Beo.js → proxy-Cusnx9Ex.js} +1 -1
- package/{proxy-bPaU3-Cz.cjs → proxy-Du95zAKk.cjs} +1 -1
- package/storage-DMETg6sP.js +30 -0
- package/storage-ezLkqmQR.cjs +1 -0
- package/{utils-DPtyxGQu.js → utils-DVlbuXmW.js} +6 -4
- package/utils-QfNXtEhb.cjs +1 -0
- package/cloud-5o7yJHeX.cjs +0 -1
- package/dgram-CE43gJq9.cjs +0 -1
- package/net-CpuAhaQC.cjs +0 -1
- package/storage-OkwsFLN1.cjs +0 -1
- package/storage-TmeyhZGt.js +0 -19
- package/utils-CoimMjf9.cjs +0 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S as PackageResult, T as PickOptions, b as InstalledPackage, v as ConnectOptions, w as PackagesFail, x as PackageQuery, y as InstallOptions } from "./packages-CErlrrLB.js";
|
|
2
2
|
import { t as AddressLookupResult } from "./lookup-BtwWaCZJ.js";
|
|
3
|
-
import { Address4, Address6 } from "ip-address";
|
|
4
|
-
|
|
5
3
|
//#region src/api/storage.d.ts
|
|
6
4
|
type StorageEntry = {
|
|
7
5
|
path: string;
|
|
8
6
|
size: number;
|
|
9
7
|
contentType: string | null;
|
|
10
8
|
updatedAt: string;
|
|
9
|
+
encryption: string | null;
|
|
11
10
|
};
|
|
12
11
|
type StorageQuota = {
|
|
13
12
|
usedBytes: number;
|
|
@@ -110,6 +109,22 @@ declare const parseServerMetadataTcpSocketListenerUnboundPacket: (offset: number
|
|
|
110
109
|
readonly socketId: number;
|
|
111
110
|
};
|
|
112
111
|
type ServerMetadataTcpSocketListenerUnboundPacket = ReturnType<typeof parseServerMetadataTcpSocketListenerUnboundPacket>;
|
|
112
|
+
declare const parseServerMetadataTcpSocketAcceptedPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
113
|
+
readonly _type: 'ServerMetadataTcpSocketAcceptedPacket';
|
|
114
|
+
readonly offset: number;
|
|
115
|
+
readonly id: number;
|
|
116
|
+
readonly socketId: number;
|
|
117
|
+
readonly listenerSocketId: number;
|
|
118
|
+
readonly localAddressType: 0 | 1;
|
|
119
|
+
readonly localAddress: import("ip-address").Address4 | import("ip-address").Address6;
|
|
120
|
+
readonly localPort: number;
|
|
121
|
+
readonly remoteAddressType: 0 | 1;
|
|
122
|
+
readonly remoteAddress: import("ip-address").Address4 | import("ip-address").Address6;
|
|
123
|
+
readonly remotePort: number;
|
|
124
|
+
readonly errorLength: number;
|
|
125
|
+
readonly error: string;
|
|
126
|
+
};
|
|
127
|
+
type ServerMetadataTcpSocketAcceptedPacket = ReturnType<typeof parseServerMetadataTcpSocketAcceptedPacket>;
|
|
113
128
|
//#endregion
|
|
114
129
|
//#region src/api/webvpn/packets/udp.d.ts
|
|
115
130
|
declare const parseServerMetadataUdpSocketBoundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
@@ -143,6 +158,26 @@ declare const parseServerMetadataUdpSocketConnectedPacket: (offset: number, buff
|
|
|
143
158
|
readonly error: string;
|
|
144
159
|
};
|
|
145
160
|
type ServerMetadataUdpSocketConnectedPacket = ReturnType<typeof parseServerMetadataUdpSocketConnectedPacket>;
|
|
161
|
+
declare const parseServerMetadataUdpSocketDisconnectedPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
162
|
+
readonly _type: 'ServerMetadataUdpSocketDisconnectedPacket';
|
|
163
|
+
readonly offset: number;
|
|
164
|
+
readonly id: number;
|
|
165
|
+
readonly socketId: number;
|
|
166
|
+
readonly errorLength: number;
|
|
167
|
+
readonly error: string;
|
|
168
|
+
};
|
|
169
|
+
type ServerMetadataUdpSocketDisconnectedPacket = ReturnType<typeof parseServerMetadataUdpSocketDisconnectedPacket>;
|
|
170
|
+
declare const parseServerUdpDataPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
171
|
+
readonly _type: 'ServerUdpDataPacket';
|
|
172
|
+
readonly offset: number;
|
|
173
|
+
readonly socketId: number;
|
|
174
|
+
readonly remoteAddressType: 0 | 1 | 2;
|
|
175
|
+
readonly remoteAddress: import("ip-address").Address4 | import("ip-address").Address6 | undefined;
|
|
176
|
+
readonly remotePort: number | undefined;
|
|
177
|
+
readonly dataLength: number;
|
|
178
|
+
readonly data: ArrayBuffer;
|
|
179
|
+
};
|
|
180
|
+
type ServerUdpDataPacket = ReturnType<typeof parseServerUdpDataPacket>;
|
|
146
181
|
declare const UDP_OPTION_BROADCAST: 0;
|
|
147
182
|
declare const UDP_OPTION_TTL: 1;
|
|
148
183
|
declare const UDP_OPTION_MULTICAST_TTL_V4: 2;
|
|
@@ -212,17 +247,61 @@ declare const parseServerMetadataHeaderPacket: (offset: number, buffer: ArrayBuf
|
|
|
212
247
|
readonly version: string;
|
|
213
248
|
};
|
|
214
249
|
type ServerMetadataHeaderPacket = ReturnType<typeof parseServerMetadataHeaderPacket>;
|
|
215
|
-
|
|
250
|
+
declare const parseServerMetadataAccountStatusPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
251
|
+
readonly _type: 'ServerMetadataAccountStatusPacket';
|
|
252
|
+
readonly offset: number;
|
|
253
|
+
readonly id: number;
|
|
254
|
+
readonly adopted: boolean;
|
|
255
|
+
readonly errorLength: number;
|
|
256
|
+
readonly error: string;
|
|
257
|
+
};
|
|
258
|
+
type ServerMetadataAccountStatusPacket = ReturnType<typeof parseServerMetadataAccountStatusPacket>;
|
|
259
|
+
declare const parseServerMetadataAccountClearedPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
|
|
260
|
+
readonly _type: 'ServerMetadataAccountClearedPacket';
|
|
261
|
+
readonly offset: number;
|
|
262
|
+
readonly id: number;
|
|
263
|
+
readonly errorLength: number;
|
|
264
|
+
readonly error: string;
|
|
265
|
+
};
|
|
266
|
+
type ServerMetadataAccountClearedPacket = ReturnType<typeof parseServerMetadataAccountClearedPacket>;
|
|
267
|
+
type ServerMetadataPacket = ServerMetadataHeaderPacket | ServerMetadataTcpSocketConnectedPacket | ServerMetadataTcpSocketShutdownPacket | ServerMetadataTcpSocketListenerBoundPacket | ServerMetadataTcpSocketListenerUnboundPacket | ServerMetadataUdpSocketBoundPacket | ServerMetadataUdpSocketUnboundPacket | ServerMetadataUdpSocketConnectedPacket | ServerMetadataTcpSetOptionAckPacket | ServerMetadataUdpSetOptionAckPacket | ServerMetadataUdpSocketDisconnectedPacket | ServerMetadataAccountStatusPacket | ServerMetadataAccountClearedPacket | ServerMetadataTcpSocketAcceptedPacket;
|
|
216
268
|
//#endregion
|
|
217
|
-
//#region src/api/webvpn/
|
|
269
|
+
//#region src/api/webvpn/session-core.d.ts
|
|
270
|
+
type MetadataRequestOptions = {
|
|
271
|
+
timeoutMs?: number;
|
|
272
|
+
what?: string;
|
|
273
|
+
signal?: AbortSignal;
|
|
274
|
+
};
|
|
218
275
|
type BidirectionalStreams = {
|
|
219
276
|
readable: ReadableStream<Uint8Array>;
|
|
220
277
|
writable: WritableStream<Uint8Array>;
|
|
221
278
|
};
|
|
222
|
-
|
|
223
|
-
|
|
279
|
+
type TransportPrimitives = {
|
|
280
|
+
metadataReadable: ReadableStream<Uint8Array>;
|
|
281
|
+
metadataWriter: WritableStreamDefaultWriter<Uint8Array>;
|
|
282
|
+
datagramWriter: WritableStreamDefaultWriter<Uint8Array>;
|
|
283
|
+
incomingBidi: ReadableStream<BidirectionalStreams>;
|
|
284
|
+
incomingUni: ReadableStream<ReadableStream<Uint8Array>>;
|
|
285
|
+
openUniStream?: () => Promise<WritableStream<Uint8Array>>;
|
|
286
|
+
serverDatagrams?: ReadableStream<ServerUdpDataPacket>;
|
|
287
|
+
closed: Promise<{
|
|
288
|
+
reason: string;
|
|
289
|
+
}>;
|
|
290
|
+
close: (reason: string) => void;
|
|
291
|
+
};
|
|
292
|
+
declare const makeWebVpnSession: (primitives: TransportPrimitives) => Promise<{
|
|
293
|
+
closed: Promise<{
|
|
294
|
+
reason: string;
|
|
295
|
+
}>;
|
|
224
296
|
isClosed: () => boolean;
|
|
297
|
+
isProvenAlive: () => boolean;
|
|
298
|
+
fail: (reason: string) => void;
|
|
299
|
+
relayVersion: string;
|
|
225
300
|
getNewPacketId: () => number;
|
|
301
|
+
requestMetadataPacket: (requestWriter: WritableStreamDefaultWriter<Uint8Array>, packRequest: (packetId: number) => Uint8Array, options?: MetadataRequestOptions) => Promise<ServerMetadataPacket>;
|
|
302
|
+
tombstoneMetadataRequest: (packetId: number) => void;
|
|
303
|
+
retireSocketId: (socketId: number) => void;
|
|
304
|
+
bindToSessionClosed: (handler: (err: Error) => void) => (() => void);
|
|
226
305
|
getTcpDataReadableStreamForSocketId: (socketId: number, options?: {
|
|
227
306
|
signal?: AbortSignal;
|
|
228
307
|
}) => Promise<BidirectionalStreams>;
|
|
@@ -231,22 +310,31 @@ declare const makeWebVPNWebTransport: () => Promise<{
|
|
|
231
310
|
readonly offset: number;
|
|
232
311
|
readonly socketId: number;
|
|
233
312
|
readonly remoteAddressType: 0 | 1 | 2;
|
|
234
|
-
readonly remoteAddress: Address4 | Address6 | undefined;
|
|
313
|
+
readonly remoteAddress: import("ip-address").Address4 | import("ip-address").Address6 | undefined;
|
|
235
314
|
readonly remotePort: number | undefined;
|
|
236
315
|
readonly dataLength: number;
|
|
237
316
|
readonly data: ArrayBuffer;
|
|
238
317
|
}>;
|
|
239
318
|
claimUdpRawStream: (socketId: number, sink: (packetBytes: Uint8Array) => void) => void;
|
|
240
319
|
releaseUdpRawStream: (socketId: number) => void;
|
|
241
|
-
getPacketForId: (packetId: number
|
|
320
|
+
getPacketForId: (packetId: number, options?: {
|
|
321
|
+
signal?: AbortSignal;
|
|
322
|
+
}) => Promise<ServerMetadataPacket>;
|
|
242
323
|
getMetadataReadableStreamForSocketId: (socketId: number) => ReadableStream<ServerMetadataPacket>;
|
|
243
|
-
|
|
244
|
-
getMetadataReadableStreamForLocalPort: (port: number) => ReadableStream<ServerMetadataPacket>;
|
|
324
|
+
getMetadataReadableStreamForListenerSocketId: (listenerSocketId: number) => ReadableStream<ServerMetadataPacket>;
|
|
245
325
|
getMetadataWritableStream: () => WritableStream<Uint8Array<ArrayBufferLike>>;
|
|
246
326
|
getDatagramWritableStream: () => WritableStream<Uint8Array<ArrayBufferLike>>;
|
|
327
|
+
openUdpUploadStream: ((socketId: number) => Promise<WritableStreamDefaultWriter<Uint8Array<ArrayBufferLike>>>) | undefined;
|
|
328
|
+
claimUdpBidiStream: ((socketId: number, options?: {
|
|
329
|
+
signal?: AbortSignal;
|
|
330
|
+
}) => Promise<WritableStreamDefaultWriter<Uint8Array<ArrayBufferLike>>>) | undefined;
|
|
247
331
|
presentRateToken: () => Promise<void>;
|
|
332
|
+
clearAccount: () => Promise<void>;
|
|
248
333
|
}>;
|
|
249
|
-
type
|
|
334
|
+
type WebVPNSession = Awaited<ReturnType<typeof makeWebVpnSession>>;
|
|
335
|
+
//#endregion
|
|
336
|
+
//#region src/api/webvpn/transport.d.ts
|
|
337
|
+
type WebVPNWebTransport = WebVPNSession;
|
|
250
338
|
//#endregion
|
|
251
339
|
//#region src/api/webvpn/tcp.d.ts
|
|
252
340
|
declare const processTcpSocket: ({
|
|
@@ -256,15 +344,17 @@ declare const processTcpSocket: ({
|
|
|
256
344
|
metadataReadableStream,
|
|
257
345
|
metadataWriter,
|
|
258
346
|
dataStreamAbort,
|
|
259
|
-
webVpnWebTransport
|
|
347
|
+
webVpnWebTransport,
|
|
348
|
+
ownsMetadataWriter
|
|
260
349
|
}: {
|
|
261
|
-
connectedPacket: ServerMetadataTcpSocketConnectedPacket;
|
|
350
|
+
connectedPacket: ServerMetadataTcpSocketConnectedPacket | ServerMetadataTcpSocketAcceptedPacket;
|
|
262
351
|
dataReadableStream: ReadableStream<Uint8Array>;
|
|
263
352
|
dataWritableStream: WritableStream<Uint8Array>;
|
|
264
353
|
metadataReadableStream: ReadableStream<ServerMetadataPacket>;
|
|
265
354
|
metadataWriter: WritableStreamDefaultWriter<Uint8Array>;
|
|
266
355
|
dataStreamAbort?: AbortController;
|
|
267
356
|
webVpnWebTransport: WebVPNWebTransport;
|
|
357
|
+
ownsMetadataWriter?: boolean;
|
|
268
358
|
}) => Promise<{
|
|
269
359
|
localAddress: string;
|
|
270
360
|
localFamily: "IPv4" | "IPv6";
|
|
@@ -320,23 +410,35 @@ declare const resolvers: {
|
|
|
320
410
|
readonly readFile: (path: string) => Promise<Uint8Array>;
|
|
321
411
|
readonly writeFile: (path: string, data: WriteData, contentType: string | null) => Promise<void>;
|
|
322
412
|
readonly remove: (path: string) => Promise<void>;
|
|
413
|
+
readonly encryption: () => Promise<{
|
|
414
|
+
accountEnabled: boolean;
|
|
415
|
+
appMode: string;
|
|
416
|
+
unlocked: boolean;
|
|
417
|
+
}>;
|
|
418
|
+
readonly unlock: () => Promise<boolean>;
|
|
323
419
|
};
|
|
324
420
|
readonly webvpn: {
|
|
325
421
|
readonly tcpSocket: ({
|
|
326
422
|
remoteAddress: _remoteAddress,
|
|
327
|
-
remotePort
|
|
423
|
+
remotePort,
|
|
424
|
+
usageTag
|
|
328
425
|
}: {
|
|
329
426
|
remoteAddress: string;
|
|
330
427
|
remotePort: number;
|
|
428
|
+
usageTag?: string;
|
|
331
429
|
}) => Promise<LocalTcpSocket>;
|
|
332
430
|
readonly tcpSocketListener: ({
|
|
333
431
|
localAddress: _localAddress,
|
|
334
432
|
localPort,
|
|
335
|
-
onConnection
|
|
433
|
+
onConnection,
|
|
434
|
+
onClose,
|
|
435
|
+
usageTag
|
|
336
436
|
}: {
|
|
337
437
|
localAddress: string;
|
|
338
438
|
localPort: number;
|
|
339
|
-
onConnection: (connection: TcpSocketResult) => void
|
|
439
|
+
onConnection: (connection: TcpSocketResult) => void | Promise<void>;
|
|
440
|
+
onClose?: (error?: Error) => void | Promise<void>;
|
|
441
|
+
usageTag?: string;
|
|
340
442
|
}) => Promise<{
|
|
341
443
|
localAddress: string;
|
|
342
444
|
localFamily: "IPv4" | "IPv6";
|
|
@@ -347,15 +449,21 @@ declare const resolvers: {
|
|
|
347
449
|
type,
|
|
348
450
|
port,
|
|
349
451
|
address,
|
|
350
|
-
dataPort
|
|
452
|
+
dataPort,
|
|
453
|
+
usageTag
|
|
351
454
|
}: {
|
|
352
455
|
type: 'udp4' | 'udp6';
|
|
353
456
|
port: number;
|
|
354
457
|
address: string;
|
|
355
458
|
dataPort?: boolean;
|
|
459
|
+
usageTag?: string;
|
|
356
460
|
}) => Promise<{
|
|
357
461
|
socketId: number;
|
|
358
462
|
dataPort: MessagePort | undefined;
|
|
463
|
+
dataPortAcks: true | undefined;
|
|
464
|
+
closed: Promise<{
|
|
465
|
+
reason: string;
|
|
466
|
+
}>;
|
|
359
467
|
localAddress: string;
|
|
360
468
|
localFamily: "IPv4" | "IPv6";
|
|
361
469
|
localPort: number;
|
|
@@ -372,7 +480,13 @@ declare const resolvers: {
|
|
|
372
480
|
}: {
|
|
373
481
|
remoteAddress: string;
|
|
374
482
|
remotePort: number;
|
|
375
|
-
}) => Promise<
|
|
483
|
+
}) => Promise<{
|
|
484
|
+
local: boolean;
|
|
485
|
+
address: string;
|
|
486
|
+
family: "IPv4" | "IPv6";
|
|
487
|
+
port: number;
|
|
488
|
+
}>;
|
|
489
|
+
disconnect: () => Promise<void>;
|
|
376
490
|
send: ({
|
|
377
491
|
message,
|
|
378
492
|
address: _remoteAddress,
|
|
@@ -442,19 +556,25 @@ declare const resolvers: {
|
|
|
442
556
|
}) => Promise<Response>;
|
|
443
557
|
readonly webVpnTcpSocket: ({
|
|
444
558
|
remoteAddress: _remoteAddress,
|
|
445
|
-
remotePort
|
|
559
|
+
remotePort,
|
|
560
|
+
usageTag
|
|
446
561
|
}: {
|
|
447
562
|
remoteAddress: string;
|
|
448
563
|
remotePort: number;
|
|
564
|
+
usageTag?: string;
|
|
449
565
|
}) => Promise<LocalTcpSocket>;
|
|
450
566
|
readonly webVpnTcpSocketListener: ({
|
|
451
567
|
localAddress: _localAddress,
|
|
452
568
|
localPort,
|
|
453
|
-
onConnection
|
|
569
|
+
onConnection,
|
|
570
|
+
onClose,
|
|
571
|
+
usageTag
|
|
454
572
|
}: {
|
|
455
573
|
localAddress: string;
|
|
456
574
|
localPort: number;
|
|
457
|
-
onConnection: (connection: TcpSocketResult) => void
|
|
575
|
+
onConnection: (connection: TcpSocketResult) => void | Promise<void>;
|
|
576
|
+
onClose?: (error?: Error) => void | Promise<void>;
|
|
577
|
+
usageTag?: string;
|
|
458
578
|
}) => Promise<{
|
|
459
579
|
localAddress: string;
|
|
460
580
|
localFamily: "IPv4" | "IPv6";
|
|
@@ -465,15 +585,21 @@ declare const resolvers: {
|
|
|
465
585
|
type,
|
|
466
586
|
port,
|
|
467
587
|
address,
|
|
468
|
-
dataPort
|
|
588
|
+
dataPort,
|
|
589
|
+
usageTag
|
|
469
590
|
}: {
|
|
470
591
|
type: 'udp4' | 'udp6';
|
|
471
592
|
port: number;
|
|
472
593
|
address: string;
|
|
473
594
|
dataPort?: boolean;
|
|
595
|
+
usageTag?: string;
|
|
474
596
|
}) => Promise<{
|
|
475
597
|
socketId: number;
|
|
476
598
|
dataPort: MessagePort | undefined;
|
|
599
|
+
dataPortAcks: true | undefined;
|
|
600
|
+
closed: Promise<{
|
|
601
|
+
reason: string;
|
|
602
|
+
}>;
|
|
477
603
|
localAddress: string;
|
|
478
604
|
localFamily: "IPv4" | "IPv6";
|
|
479
605
|
localPort: number;
|
|
@@ -490,7 +616,13 @@ declare const resolvers: {
|
|
|
490
616
|
}: {
|
|
491
617
|
remoteAddress: string;
|
|
492
618
|
remotePort: number;
|
|
493
|
-
}) => Promise<
|
|
619
|
+
}) => Promise<{
|
|
620
|
+
local: boolean;
|
|
621
|
+
address: string;
|
|
622
|
+
family: "IPv4" | "IPv6";
|
|
623
|
+
port: number;
|
|
624
|
+
}>;
|
|
625
|
+
disconnect: () => Promise<void>;
|
|
494
626
|
send: ({
|
|
495
627
|
message,
|
|
496
628
|
address: _remoteAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-bPaU3-Cz.cjs");let n=require("osra");var r=e.t(((e,t)=>{(function(n,r){if(typeof define==`function`&&define.amd)define(`webextension-polyfill`,[`module`],r);else if(e!==void 0)r(t);else{var i={exports:{}};r(i),n.browser=i.exports}})(typeof globalThis<`u`?globalThis:typeof self<`u`?self:e,function(e){"use strict";if(!(globalThis.chrome&&globalThis.chrome.runtime&&globalThis.chrome.runtime.id))throw Error(`This script should only be loaded in a browser extension.`);globalThis.browser&&globalThis.browser.runtime&&globalThis.browser.runtime.id?e.exports=globalThis.browser:e.exports=(e=>{let t={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(Object.keys(t).length===0)throw Error(`api-metadata.json has not been included in browser-polyfill`);class n extends WeakMap{constructor(e,t=void 0){super(t),this.createItem=e}get(e){return this.has(e)||this.set(e,this.createItem(e)),super.get(e)}}let r=e=>e&&typeof e==`object`&&typeof e.then==`function`,i=(t,n)=>(...r)=>{e.runtime.lastError?t.reject(Error(e.runtime.lastError.message)):n.singleCallbackArg||r.length<=1&&n.singleCallbackArg!==!1?t.resolve(r[0]):t.resolve(r)},a=e=>e==1?`argument`:`arguments`,o=(e,t)=>function(n,...r){if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((a,o)=>{if(t.fallbackToNoCallback)try{n[e](...r,i({resolve:a,reject:o},t))}catch(i){console.warn(`${e} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `,i),n[e](...r),t.fallbackToNoCallback=!1,t.noCallback=!0,a()}else t.noCallback?(n[e](...r),a()):n[e](...r,i({resolve:a,reject:o},t))})},s=(e,t,n)=>new Proxy(t,{apply(t,r,i){return n.call(r,e,...i)}}),c=Function.call.bind(Object.prototype.hasOwnProperty),l=(e,t={},n={})=>{let r=Object.create(null),i={has(t,n){return n in e||n in r},get(i,a,u){if(a in r)return r[a];if(!(a in e))return;let d=e[a];if(typeof d==`function`)if(typeof t[a]==`function`)d=s(e,e[a],t[a]);else if(c(n,a)){let t=o(a,n[a]);d=s(e,e[a],t)}else d=d.bind(e);else if(typeof d==`object`&&d&&(c(t,a)||c(n,a)))d=l(d,t[a],n[a]);else if(c(n,`*`))d=l(d,t[a],n[`*`]);else return Object.defineProperty(r,a,{configurable:!0,enumerable:!0,get(){return e[a]},set(t){e[a]=t}}),d;return r[a]=d,d},set(t,n,i,a){return n in r?r[n]=i:e[n]=i,!0},defineProperty(e,t,n){return Reflect.defineProperty(r,t,n)},deleteProperty(e,t){return Reflect.deleteProperty(r,t)}},a=Object.create(e);return new Proxy(a,i)},u=e=>({addListener(t,n,...r){t.addListener(e.get(n),...r)},hasListener(t,n){return t.hasListener(e.get(n))},removeListener(t,n){t.removeListener(e.get(n))}}),d=new n(e=>typeof e==`function`?function(t){e(l(t,{},{getContent:{minArgs:0,maxArgs:0}}))}:e),f=new n(e=>typeof e==`function`?function(t,n,i){let a=!1,o,s=new Promise(e=>{o=function(t){a=!0,e(t)}}),c;try{c=e(t,n,o)}catch(e){c=Promise.reject(e)}let l=c!==!0&&r(c);return c!==!0&&!l&&!a?!1:((e=>{e.then(e=>{i(e)},e=>{let t;t=e&&(e instanceof Error||typeof e.message==`string`)?e.message:`An unexpected error occurred`,i({__mozWebExtensionPolyfillReject__:!0,message:t})}).catch(e=>{console.error(`Failed to send onMessage rejected reply`,e)})})(l?c:s),!0)}:e),p=({reject:t,resolve:n},r)=>{e.runtime.lastError?e.runtime.lastError.message===`The message port closed before a response was received.`?n():t(Error(e.runtime.lastError.message)):r&&r.__mozWebExtensionPolyfillReject__?t(Error(r.message)):n(r)},m=(e,t,n,...r)=>{if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((e,t)=>{let i=p.bind(null,{resolve:e,reject:t});r.push(i),n.sendMessage(...r)})},h={devtools:{network:{onRequestFinished:u(d)}},runtime:{onMessage:u(f),onMessageExternal:u(f),sendMessage:m.bind(null,`sendMessage`,{minArgs:1,maxArgs:3})},tabs:{sendMessage:m.bind(null,`sendMessage`,{minArgs:2,maxArgs:3})}},g={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return t.privacy={network:{"*":g},services:{"*":g},websites:{"*":g}},l(e,h,t)})(chrome)})}))(),i=`FKN_WEB_EXTENSION_BACKGROUND_COMMUNICATION_OSRA_KEY`,a=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`,o=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY`,s=e=>t.b(e)&&e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY===!0&&typeof e.from==`string`&&t.b(e.message),c=new Map,l=e=>{let i=c.get(e);if(i)return i;let{promise:s,resolve:l}=Promise.withResolvers(),{promise:u,resolve:d}=Promise.withResolvers(),f={resolvers:(0,n.expose)(O,{key:a,revivableModules:t.L,transport:{isJson:!0,receive:e=>l(e),emit:t=>{r.runtime.sendMessage({[o]:!0,target:e,message:t}).catch(()=>{})}}}),listener:s,stale:u,markStale:d};return c.set(e,f),f};r.runtime.onMessage.addListener((e,t)=>{s(e)&&(0,n.checkOsraMessageKey)(e.message,`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`)&&l(e.from).listener.then(n=>n(e.message,{sender:t}))}),t._(e=>{let t=c.get(e);t&&(t.markStale(),c.delete(e))});var u=async e=>{let t=l(e);return{resolvers:await Promise.race([t.resolvers,t.stale.then(()=>{throw Error(`peer ${e} became stale before connect completed`)})]),stale:t.stale}},d=[`position: fixed`,`border: 2px solid oklch(63% 0.24 25)`,`border-radius: 4px`,`background: oklch(63% 0.24 25 / 0.12)`,`box-shadow: 0 0 0 2px oklch(63% 0.24 25 / 0.5), 0 0 0 100vmax oklch(0% 0 0 / 0.5)`,`z-index: 2147483647`,`pointer-events: none`,`box-sizing: border-box`],f=(e,t)=>{let n=t.getBoundingClientRect();e.setAttribute(`style`,[...d,`left: ${n.left}px`,`top: ${n.top}px`,`width: ${n.width}px`,`height: ${n.height}px`].map(e=>`${e} !important`).join(`; `))},p=e=>{let t=e.getBoundingClientRect();return{clientX:t.left+t.width/2,clientY:t.top+t.height/2}},m=0,h=e=>{m^=1;let{clientX:t,clientY:n}=p(e),r={bubbles:!0,cancelable:!0,composed:!0,clientX:t+m,clientY:n};e.dispatchEvent(new PointerEvent(`pointermove`,{...r,pointerType:`mouse`,pointerId:1,isPrimary:!0})),e.dispatchEvent(new MouseEvent(`mousemove`,r))},g=[[PointerEvent,`pointerover`,!0],[PointerEvent,`pointerenter`,!1],[MouseEvent,`mouseover`,!0],[MouseEvent,`mouseenter`,!1]],_=[[PointerEvent,`pointerout`,!0],[PointerEvent,`pointerleave`,!1],[MouseEvent,`mouseout`,!0],[MouseEvent,`mouseleave`,!1]],v=(e,t)=>t.forEach(([t,n,r])=>e.dispatchEvent(new t(n,{bubbles:r,cancelable:!0,composed:!0,...p(e)}))),y=e=>{v(e,g),h(e)},b=e=>v(e,_),x=null,S=e=>{C();try{e.scrollIntoView({block:`center`,inline:`center`})}catch{}let t=document.createElement(`div`);(document.body??document.documentElement).appendChild(t),y(e);let n=requestAnimationFrame(function r(){f(t,e),n=requestAnimationFrame(r)}),r=window.setInterval(()=>h(e),300);x={stop:()=>{cancelAnimationFrame(n),clearInterval(r),b(e),t.remove()}}},C=()=>{x?.stop(),x=null},w={[t.p]:t.f,[t.h]:t.m},T=e=>{let t=w[e.locatorType];if(!t)throw Error(`Unknown locator kind: "${e.locatorType}"`);let n=t.selectorModules.find(t=>t.type===e.type);if(!n)throw Error(`Unknown selector: "${e.locatorType}.${e.type}"`);return n},E=e=>e.reduce((e,t)=>T(t).resolve({elements:e},...t.args),[document.documentElement]),D=e=>{for(let t=0;t<e.length;t++){let n=T(e[t]);if(n.resolvePeer)return{module:n,index:t}}return null},O={contentScriptDummy:()=>{},executeLocator:async(e,n,r)=>{let i=D(e);if(i){let t=await i.module.resolvePeer({parts:e,selfIndex:i.index,resolveLocal:E}),{resolvers:a,stale:o}=await u(t),s=e.slice(i.index+1);return Promise.race([a.executeLocator(s,n,r),o.then(()=>{throw Error(`peer ${t} became stale during call, retrying`)})])}if(n===`__fkn_highlight`){if(r[0]?.on){let n=E(e)[0];n&&(t.g(!0),S(n))}else C(),t.g(!1);return}let a=[...t.f.operationModules,...t.m.operationModules].find(e=>e.type===n);if(!a)throw Error(`Unknown operation: "${n}"`);return a.resolve({elements:E(e)},...r)}},k=(0,n.expose)(O,{key:i,transport:{isJson:!0,receive:r.runtime.onMessage,emit:r.runtime}});exports.backgroundResolvers=k;
|
|
1
|
+
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-Du95zAKk.cjs");let n=require("osra");var r=e.t(((e,t)=>{(function(n,r){if(typeof define==`function`&&define.amd)define(`webextension-polyfill`,[`module`],r);else if(e!==void 0)r(t);else{var i={exports:{}};r(i),n.browser=i.exports}})(typeof globalThis<`u`?globalThis:typeof self<`u`?self:e,function(e){"use strict";if(!(globalThis.chrome&&globalThis.chrome.runtime&&globalThis.chrome.runtime.id))throw Error(`This script should only be loaded in a browser extension.`);globalThis.browser&&globalThis.browser.runtime&&globalThis.browser.runtime.id?e.exports=globalThis.browser:e.exports=(e=>{let t={alarms:{clear:{minArgs:0,maxArgs:1},clearAll:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getAll:{minArgs:0,maxArgs:0}},bookmarks:{create:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},getChildren:{minArgs:1,maxArgs:1},getRecent:{minArgs:1,maxArgs:1},getSubTree:{minArgs:1,maxArgs:1},getTree:{minArgs:0,maxArgs:0},move:{minArgs:2,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeTree:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}},browserAction:{disable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},enable:{minArgs:0,maxArgs:1,fallbackToNoCallback:!0},getBadgeBackgroundColor:{minArgs:1,maxArgs:1},getBadgeText:{minArgs:1,maxArgs:1},getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},openPopup:{minArgs:0,maxArgs:0},setBadgeBackgroundColor:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setBadgeText:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},browsingData:{remove:{minArgs:2,maxArgs:2},removeCache:{minArgs:1,maxArgs:1},removeCookies:{minArgs:1,maxArgs:1},removeDownloads:{minArgs:1,maxArgs:1},removeFormData:{minArgs:1,maxArgs:1},removeHistory:{minArgs:1,maxArgs:1},removeLocalStorage:{minArgs:1,maxArgs:1},removePasswords:{minArgs:1,maxArgs:1},removePluginData:{minArgs:1,maxArgs:1},settings:{minArgs:0,maxArgs:0}},commands:{getAll:{minArgs:0,maxArgs:0}},contextMenus:{remove:{minArgs:1,maxArgs:1},removeAll:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},cookies:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:1,maxArgs:1},getAllCookieStores:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},devtools:{inspectedWindow:{eval:{minArgs:1,maxArgs:2,singleCallbackArg:!1}},panels:{create:{minArgs:3,maxArgs:3,singleCallbackArg:!0},elements:{createSidebarPane:{minArgs:1,maxArgs:1}}}},downloads:{cancel:{minArgs:1,maxArgs:1},download:{minArgs:1,maxArgs:1},erase:{minArgs:1,maxArgs:1},getFileIcon:{minArgs:1,maxArgs:2},open:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},pause:{minArgs:1,maxArgs:1},removeFile:{minArgs:1,maxArgs:1},resume:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},extension:{isAllowedFileSchemeAccess:{minArgs:0,maxArgs:0},isAllowedIncognitoAccess:{minArgs:0,maxArgs:0}},history:{addUrl:{minArgs:1,maxArgs:1},deleteAll:{minArgs:0,maxArgs:0},deleteRange:{minArgs:1,maxArgs:1},deleteUrl:{minArgs:1,maxArgs:1},getVisits:{minArgs:1,maxArgs:1},search:{minArgs:1,maxArgs:1}},i18n:{detectLanguage:{minArgs:1,maxArgs:1},getAcceptLanguages:{minArgs:0,maxArgs:0}},identity:{launchWebAuthFlow:{minArgs:1,maxArgs:1}},idle:{queryState:{minArgs:1,maxArgs:1}},management:{get:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},getSelf:{minArgs:0,maxArgs:0},setEnabled:{minArgs:2,maxArgs:2},uninstallSelf:{minArgs:0,maxArgs:1}},notifications:{clear:{minArgs:1,maxArgs:1},create:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:0},getPermissionLevel:{minArgs:0,maxArgs:0},update:{minArgs:2,maxArgs:2}},pageAction:{getPopup:{minArgs:1,maxArgs:1},getTitle:{minArgs:1,maxArgs:1},hide:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setIcon:{minArgs:1,maxArgs:1},setPopup:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},setTitle:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0},show:{minArgs:1,maxArgs:1,fallbackToNoCallback:!0}},permissions:{contains:{minArgs:1,maxArgs:1},getAll:{minArgs:0,maxArgs:0},remove:{minArgs:1,maxArgs:1},request:{minArgs:1,maxArgs:1}},runtime:{getBackgroundPage:{minArgs:0,maxArgs:0},getPlatformInfo:{minArgs:0,maxArgs:0},openOptionsPage:{minArgs:0,maxArgs:0},requestUpdateCheck:{minArgs:0,maxArgs:0},sendMessage:{minArgs:1,maxArgs:3},sendNativeMessage:{minArgs:2,maxArgs:2},setUninstallURL:{minArgs:1,maxArgs:1}},sessions:{getDevices:{minArgs:0,maxArgs:1},getRecentlyClosed:{minArgs:0,maxArgs:1},restore:{minArgs:0,maxArgs:1}},storage:{local:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}},managed:{get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1}},sync:{clear:{minArgs:0,maxArgs:0},get:{minArgs:0,maxArgs:1},getBytesInUse:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}}},tabs:{captureVisibleTab:{minArgs:0,maxArgs:2},create:{minArgs:1,maxArgs:1},detectLanguage:{minArgs:0,maxArgs:1},discard:{minArgs:0,maxArgs:1},duplicate:{minArgs:1,maxArgs:1},executeScript:{minArgs:1,maxArgs:2},get:{minArgs:1,maxArgs:1},getCurrent:{minArgs:0,maxArgs:0},getZoom:{minArgs:0,maxArgs:1},getZoomSettings:{minArgs:0,maxArgs:1},goBack:{minArgs:0,maxArgs:1},goForward:{minArgs:0,maxArgs:1},highlight:{minArgs:1,maxArgs:1},insertCSS:{minArgs:1,maxArgs:2},move:{minArgs:2,maxArgs:2},query:{minArgs:1,maxArgs:1},reload:{minArgs:0,maxArgs:2},remove:{minArgs:1,maxArgs:1},removeCSS:{minArgs:1,maxArgs:2},sendMessage:{minArgs:2,maxArgs:3},setZoom:{minArgs:1,maxArgs:2},setZoomSettings:{minArgs:1,maxArgs:2},update:{minArgs:1,maxArgs:2}},topSites:{get:{minArgs:0,maxArgs:0}},webNavigation:{getAllFrames:{minArgs:1,maxArgs:1},getFrame:{minArgs:1,maxArgs:1}},webRequest:{handlerBehaviorChanged:{minArgs:0,maxArgs:0}},windows:{create:{minArgs:0,maxArgs:1},get:{minArgs:1,maxArgs:2},getAll:{minArgs:0,maxArgs:1},getCurrent:{minArgs:0,maxArgs:1},getLastFocused:{minArgs:0,maxArgs:1},remove:{minArgs:1,maxArgs:1},update:{minArgs:2,maxArgs:2}}};if(Object.keys(t).length===0)throw Error(`api-metadata.json has not been included in browser-polyfill`);class n extends WeakMap{constructor(e,t=void 0){super(t),this.createItem=e}get(e){return this.has(e)||this.set(e,this.createItem(e)),super.get(e)}}let r=e=>e&&typeof e==`object`&&typeof e.then==`function`,i=(t,n)=>(...r)=>{e.runtime.lastError?t.reject(Error(e.runtime.lastError.message)):n.singleCallbackArg||r.length<=1&&n.singleCallbackArg!==!1?t.resolve(r[0]):t.resolve(r)},a=e=>e==1?`argument`:`arguments`,o=(e,t)=>function(n,...r){if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((a,o)=>{if(t.fallbackToNoCallback)try{n[e](...r,i({resolve:a,reject:o},t))}catch(i){console.warn(`${e} API method doesn't seem to support the callback parameter, falling back to call it without a callback: `,i),n[e](...r),t.fallbackToNoCallback=!1,t.noCallback=!0,a()}else t.noCallback?(n[e](...r),a()):n[e](...r,i({resolve:a,reject:o},t))})},s=(e,t,n)=>new Proxy(t,{apply(t,r,i){return n.call(r,e,...i)}}),c=Function.call.bind(Object.prototype.hasOwnProperty),l=(e,t={},n={})=>{let r=Object.create(null),i={has(t,n){return n in e||n in r},get(i,a,u){if(a in r)return r[a];if(!(a in e))return;let d=e[a];if(typeof d==`function`)if(typeof t[a]==`function`)d=s(e,e[a],t[a]);else if(c(n,a)){let t=o(a,n[a]);d=s(e,e[a],t)}else d=d.bind(e);else if(typeof d==`object`&&d&&(c(t,a)||c(n,a)))d=l(d,t[a],n[a]);else if(c(n,`*`))d=l(d,t[a],n[`*`]);else return Object.defineProperty(r,a,{configurable:!0,enumerable:!0,get(){return e[a]},set(t){e[a]=t}}),d;return r[a]=d,d},set(t,n,i,a){return n in r?r[n]=i:e[n]=i,!0},defineProperty(e,t,n){return Reflect.defineProperty(r,t,n)},deleteProperty(e,t){return Reflect.deleteProperty(r,t)}},a=Object.create(e);return new Proxy(a,i)},u=e=>({addListener(t,n,...r){t.addListener(e.get(n),...r)},hasListener(t,n){return t.hasListener(e.get(n))},removeListener(t,n){t.removeListener(e.get(n))}}),d=new n(e=>typeof e==`function`?function(t){e(l(t,{},{getContent:{minArgs:0,maxArgs:0}}))}:e),f=new n(e=>typeof e==`function`?function(t,n,i){let a=!1,o,s=new Promise(e=>{o=function(t){a=!0,e(t)}}),c;try{c=e(t,n,o)}catch(e){c=Promise.reject(e)}let l=c!==!0&&r(c);return c!==!0&&!l&&!a?!1:((e=>{e.then(e=>{i(e)},e=>{let t;t=e&&(e instanceof Error||typeof e.message==`string`)?e.message:`An unexpected error occurred`,i({__mozWebExtensionPolyfillReject__:!0,message:t})}).catch(e=>{console.error(`Failed to send onMessage rejected reply`,e)})})(l?c:s),!0)}:e),p=({reject:t,resolve:n},r)=>{e.runtime.lastError?e.runtime.lastError.message===`The message port closed before a response was received.`?n():t(Error(e.runtime.lastError.message)):r&&r.__mozWebExtensionPolyfillReject__?t(Error(r.message)):n(r)},m=(e,t,n,...r)=>{if(r.length<t.minArgs)throw Error(`Expected at least ${t.minArgs} ${a(t.minArgs)} for ${e}(), got ${r.length}`);if(r.length>t.maxArgs)throw Error(`Expected at most ${t.maxArgs} ${a(t.maxArgs)} for ${e}(), got ${r.length}`);return new Promise((e,t)=>{let i=p.bind(null,{resolve:e,reject:t});r.push(i),n.sendMessage(...r)})},h={devtools:{network:{onRequestFinished:u(d)}},runtime:{onMessage:u(f),onMessageExternal:u(f),sendMessage:m.bind(null,`sendMessage`,{minArgs:1,maxArgs:3})},tabs:{sendMessage:m.bind(null,`sendMessage`,{minArgs:2,maxArgs:3})}},g={clear:{minArgs:1,maxArgs:1},get:{minArgs:1,maxArgs:1},set:{minArgs:1,maxArgs:1}};return t.privacy={network:{"*":g},services:{"*":g},websites:{"*":g}},l(e,h,t)})(chrome)})}))(),i=`FKN_WEB_EXTENSION_BACKGROUND_COMMUNICATION_OSRA_KEY`,a=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`,o=`FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY`,s=e=>t.b(e)&&e.FKN_WEB_EXTENSION_CONTENT_SCRIPT_RELAY_ENVELOPE_KEY===!0&&typeof e.from==`string`&&t.b(e.message),c=new Map,l=e=>{let i=c.get(e);if(i)return i;let{promise:s,resolve:l}=Promise.withResolvers(),{promise:u,resolve:d}=Promise.withResolvers(),f={resolvers:(0,n.expose)(O,{key:a,revivableModules:t.L,transport:{isJson:!0,receive:e=>l(e),emit:t=>{r.runtime.sendMessage({[o]:!0,target:e,message:t}).catch(()=>{})}}}),listener:s,stale:u,markStale:d};return c.set(e,f),f};r.runtime.onMessage.addListener((e,t)=>{s(e)&&(0,n.checkOsraMessageKey)(e.message,`FKN_WEB_EXTENSION_CONTENT_SCRIPT_PEER_OSRA_KEY`)&&l(e.from).listener.then(n=>n(e.message,{sender:t}))}),t._(e=>{let t=c.get(e);t&&(t.markStale(),c.delete(e))});var u=async e=>{let t=l(e);return{resolvers:await Promise.race([t.resolvers,t.stale.then(()=>{throw Error(`peer ${e} became stale before connect completed`)})]),stale:t.stale}},d=[`position: fixed`,`border: 2px solid oklch(63% 0.24 25)`,`border-radius: 4px`,`background: oklch(63% 0.24 25 / 0.12)`,`box-shadow: 0 0 0 2px oklch(63% 0.24 25 / 0.5), 0 0 0 100vmax oklch(0% 0 0 / 0.5)`,`z-index: 2147483647`,`pointer-events: none`,`box-sizing: border-box`],f=(e,t)=>{let n=t.getBoundingClientRect();e.setAttribute(`style`,[...d,`left: ${n.left}px`,`top: ${n.top}px`,`width: ${n.width}px`,`height: ${n.height}px`].map(e=>`${e} !important`).join(`; `))},p=e=>{let t=e.getBoundingClientRect();return{clientX:t.left+t.width/2,clientY:t.top+t.height/2}},m=0,h=e=>{m^=1;let{clientX:t,clientY:n}=p(e),r={bubbles:!0,cancelable:!0,composed:!0,clientX:t+m,clientY:n};e.dispatchEvent(new PointerEvent(`pointermove`,{...r,pointerType:`mouse`,pointerId:1,isPrimary:!0})),e.dispatchEvent(new MouseEvent(`mousemove`,r))},g=[[PointerEvent,`pointerover`,!0],[PointerEvent,`pointerenter`,!1],[MouseEvent,`mouseover`,!0],[MouseEvent,`mouseenter`,!1]],_=[[PointerEvent,`pointerout`,!0],[PointerEvent,`pointerleave`,!1],[MouseEvent,`mouseout`,!0],[MouseEvent,`mouseleave`,!1]],v=(e,t)=>t.forEach(([t,n,r])=>e.dispatchEvent(new t(n,{bubbles:r,cancelable:!0,composed:!0,...p(e)}))),y=e=>{v(e,g),h(e)},b=e=>v(e,_),x=null,S=e=>{C();try{e.scrollIntoView({block:`center`,inline:`center`})}catch{}let t=document.createElement(`div`);(document.body??document.documentElement).appendChild(t),y(e);let n=requestAnimationFrame(function r(){f(t,e),n=requestAnimationFrame(r)}),r=window.setInterval(()=>h(e),300);x={stop:()=>{cancelAnimationFrame(n),clearInterval(r),b(e),t.remove()}}},C=()=>{x?.stop(),x=null},w={[t.p]:t.f,[t.h]:t.m},T=e=>{let t=w[e.locatorType];if(!t)throw Error(`Unknown locator kind: "${e.locatorType}"`);let n=t.selectorModules.find(t=>t.type===e.type);if(!n)throw Error(`Unknown selector: "${e.locatorType}.${e.type}"`);return n},E=e=>e.reduce((e,t)=>T(t).resolve({elements:e},...t.args),[document.documentElement]),D=e=>{for(let t=0;t<e.length;t++){let n=T(e[t]);if(n.resolvePeer)return{module:n,index:t}}return null},O={contentScriptDummy:()=>{},executeLocator:async(e,n,r)=>{let i=D(e);if(i){let t=await i.module.resolvePeer({parts:e,selfIndex:i.index,resolveLocal:E}),{resolvers:a,stale:o}=await u(t),s=e.slice(i.index+1);return Promise.race([a.executeLocator(s,n,r),o.then(()=>{throw Error(`peer ${t} became stale during call, retrying`)})])}if(n===`__fkn_highlight`){if(r[0]?.on){let n=E(e)[0];n&&(t.g(!0),S(n))}else C(),t.g(!1);return}let a=[...t.f.operationModules,...t.m.operationModules].find(e=>e.type===n);if(!a)throw Error(`Unknown operation: "${n}"`);return a.resolve({elements:E(e)},...r)}},k=(globalThis.browser??globalThis.chrome).runtime,A=(0,n.expose)(O,{key:i,transport:{isJson:!0,receive:k.onMessage,emit:k}});exports.backgroundResolvers=A;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
-
import { L as t, _ as n, b as r, f as i, g as a, h as o, m as s, p as c } from "./proxy-
|
|
2
|
+
import { L as t, _ as n, b as r, f as i, g as a, h as o, m as s, p as c } from "./proxy-Cusnx9Ex.js";
|
|
3
3
|
import { checkOsraMessageKey as l, expose as u } from "osra";
|
|
4
4
|
//#endregion
|
|
5
5
|
//#region node_modules/@mfkn/web-extension/lib/background/constants.js
|
|
@@ -1016,13 +1016,13 @@ var v = async (e) => {
|
|
|
1016
1016
|
if (!o) throw Error(`Unknown operation: "${t}"`);
|
|
1017
1017
|
return o.resolve({ elements: P(e) }, ...n);
|
|
1018
1018
|
}
|
|
1019
|
-
}, L = u(I, {
|
|
1019
|
+
}, L = (globalThis.browser ?? globalThis.chrome).runtime, R = u(I, {
|
|
1020
1020
|
key: f,
|
|
1021
1021
|
transport: {
|
|
1022
1022
|
isJson: !0,
|
|
1023
|
-
receive:
|
|
1024
|
-
emit:
|
|
1023
|
+
receive: L.onMessage,
|
|
1024
|
+
emit: L
|
|
1025
1025
|
}
|
|
1026
1026
|
});
|
|
1027
1027
|
//#endregion
|
|
1028
|
-
export {
|
|
1028
|
+
export { R as backgroundResolvers };
|
package/cloud/dgram.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../dgram-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../dgram-DcvdNkg6.cjs");exports.Socket=e.t,exports.createSocket=e.n,exports.default=e.r;
|
package/cloud/dgram.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, r as t, t as n } from "../dgram-
|
|
1
|
+
import { n as e, r as t, t as n } from "../dgram-CKRbKVzG.js";
|
|
2
2
|
export { n as Socket, e as createSocket, t as default };
|
package/cloud/fs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime-Doa5O59j.cjs"),t=require("../node-fs-C0eKnboT.cjs"),n=require("../storage-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../rolldown-runtime-Doa5O59j.cjs"),t=require("../node-fs-C0eKnboT.cjs"),n=require("../storage-ezLkqmQR.cjs");var r=e.n({StorageLockedError:()=>n.t,available:()=>i,encryption:()=>n.r,mkdir:()=>u,promises:()=>p,quota:()=>n.a,readFile:()=>a,readdir:()=>l,rename:()=>c,rm:()=>d,stat:()=>f,unlink:()=>s,unlock:()=>n.l,writeFile:()=>o}),{available:i,readFile:a,writeFile:o,unlink:s,rename:c,readdir:l,mkdir:u,rm:d,stat:f,promises:p}=t.t(n.c,{memfs:!1});exports.StorageLockedError=n.t,exports.available=i,exports.encryption=n.r,exports.mkdir=u,exports.promises=p,exports.quota=n.a,exports.readFile=a,exports.readdir=l,exports.rename=c,exports.rm=d,exports.stat=f,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return r}}),exports.unlink=s,exports.unlock=n.l,exports.writeFile=o;
|
package/cloud/fs.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { i as Stats } from "../index-C6ZoDJg8.js";
|
|
2
|
-
import { a as readFile, c as rm, d as writeFile, f as
|
|
3
|
-
export { type FileEntry, type Stats, type StorageQuota, available, mkdir, promises, quota, readFile, readdir, rename, rm, stat, unlink, writeFile };
|
|
2
|
+
import { _ as quota, a as readFile, c as rm, d as writeFile, f as EncryptionStatus, g as encryption, h as StorageQuota, i as promises, l as stat, m as StorageLockedError, o as readdir, p as FileEntry, r as mkdir, s as rename, t as available, u as unlink, v as unlock } from "../fs-BEfsbriO.js";
|
|
3
|
+
export { type EncryptionStatus, type FileEntry, type Stats, StorageLockedError, type StorageQuota, available, encryption, mkdir, promises, quota, readFile, readdir, rename, rm, stat, unlink, unlock, writeFile };
|
package/cloud/fs.js
CHANGED
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { n as e } from "../rolldown-runtime-DF993M8W.js";
|
|
2
2
|
import { t } from "../node-fs-Dbf93qP7.js";
|
|
3
|
-
import {
|
|
3
|
+
import { a as n, c as r, l as i, r as a, t as o } from "../storage-DMETg6sP.js";
|
|
4
4
|
//#region src/lib/cloud/fs.ts
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
var s = /* @__PURE__ */ e({
|
|
6
|
+
StorageLockedError: () => o,
|
|
7
|
+
available: () => c,
|
|
8
|
+
encryption: () => a,
|
|
9
|
+
mkdir: () => m,
|
|
10
|
+
promises: () => _,
|
|
11
|
+
quota: () => n,
|
|
12
|
+
readFile: () => l,
|
|
13
|
+
readdir: () => p,
|
|
14
|
+
rename: () => f,
|
|
15
|
+
rm: () => h,
|
|
16
|
+
stat: () => g,
|
|
17
|
+
unlink: () => d,
|
|
18
|
+
unlock: () => i,
|
|
19
|
+
writeFile: () => u
|
|
20
|
+
}), { available: c, readFile: l, writeFile: u, unlink: d, rename: f, readdir: p, mkdir: m, rm: h, stat: g, promises: _ } = t(r, { memfs: !1 });
|
|
18
21
|
//#endregion
|
|
19
|
-
export {
|
|
22
|
+
export { o as StorageLockedError, c as available, a as encryption, m as mkdir, _ as promises, n as quota, l as readFile, p as readdir, f as rename, h as rm, g as stat, s as t, d as unlink, i as unlock, u as writeFile };
|
package/cloud/net.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../utils-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../utils-QfNXtEhb.cjs"),t=require("../net-BPpdNdpy.cjs");exports.Server=t.t,exports.Socket=t.n,exports._default=t.r,exports.default=t.r,exports.connect=t.i,exports.createConnection=t.a,exports.createServer=t.o,exports.isIP=e.r,exports.isIPv4=e.i,exports.isIPv6=e.a;
|
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-Cx8lDWau.js";
|
|
2
2
|
export { Server, Socket, _default, _default as default, connect, createConnection, createServer, isIP, isIPv4, isIPv6 };
|
package/cloud/net.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as r, i, n as a, o, r as s, t as c } from "../net-
|
|
3
|
-
export { c as Server, a as Socket, s as _default, s as default, i as connect, r as createConnection, o as createServer, n as isIP,
|
|
1
|
+
import { a as e, i as t, r as n } from "../utils-DVlbuXmW.js";
|
|
2
|
+
import { a as r, i, n as a, o, r as s, t as c } from "../net-BFYMbE4N.js";
|
|
3
|
+
export { c as Server, a as Socket, s as _default, s as default, i as connect, r as createConnection, o as createServer, n as isIP, t as isIPv4, e as isIPv6 };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as Resolvers } from "./api-
|
|
1
|
+
import { t as Resolvers } from "./api-CI4d96Ty.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
|
-
import { n as fs_d_exports } from "./fs-
|
|
5
|
-
import { s as net_d_exports } from "./net-
|
|
4
|
+
import { n as fs_d_exports } from "./fs-BEfsbriO.js";
|
|
5
|
+
import { s as net_d_exports } from "./net-Cx8lDWau.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
|
|
|
@@ -24,7 +24,7 @@ type QuotaStatus = {
|
|
|
24
24
|
/** the user has a paid subscription, throttle never applies */premium: boolean; /** today's free-tier volume is spent (true even for premium, see `throttled`) */
|
|
25
25
|
overQuota: boolean; /** transfers are actually being rate-limited right now (overQuota and not premium) */
|
|
26
26
|
throttled: boolean;
|
|
27
|
-
/** bytes egressed through FKN relays today (per anonymized IP), saturates at limitBytes:
|
|
27
|
+
/** bytes egressed through FKN relays today (per connected account or anonymized IP), saturates at limitBytes:
|
|
28
28
|
* consumption past the free-tier volume is private and never reported */
|
|
29
29
|
usedBytes: number; /** free-tier daily volume before throttling kicks in */
|
|
30
30
|
limitBytes: number; /** bytes of free-tier volume left today */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./proxy-Du95zAKk.cjs"),n=require("./api-DD5v1qP9.cjs"),r=require("./dns.cjs"),i=require("./cloud/fs.cjs"),a=require("./net-BPpdNdpy.cjs"),o=require("./dgram-DcvdNkg6.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}});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as e } from "./rolldown-runtime-DF993M8W.js";
|
|
2
|
-
import { l as t, s as n, t as r, v as i, y as a } from "./proxy-
|
|
2
|
+
import { l as t, s as n, t as r, v as i, y as a } from "./proxy-Cusnx9Ex.js";
|
|
3
3
|
import { n as o, t as s } from "./api--bnCFd4w.js";
|
|
4
4
|
import { t as c } from "./dns.js";
|
|
5
5
|
import { t as l } from "./cloud/fs.js";
|
|
6
|
-
import { s as u } from "./net-
|
|
7
|
-
import { i as d } from "./dgram-
|
|
6
|
+
import { s as u } from "./net-BFYMbE4N.js";
|
|
7
|
+
import { i as d } from "./dgram-CKRbKVzG.js";
|
|
8
8
|
import { t as f } from "./http.js";
|
|
9
9
|
import { expose as p } from "osra";
|
|
10
10
|
//#region src/lib/cloud/frame.ts
|
|
@@ -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 };
|