@fkn/lib 0.5.5 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/account.cjs +1 -1
  2. package/account.d.ts +9 -11
  3. package/account.js +2 -2
  4. package/api-BYUraih6.d.ts +524 -0
  5. package/{api-CDb2pv7C.cjs → api-DD5v1qP9.cjs} +1 -1
  6. package/{background-DvQm1JHR.js → background-BVBbBOmL.js} +41 -68
  7. package/background-B_VgpARk.cjs +1 -0
  8. package/cloud/dgram.cjs +1 -1
  9. package/cloud/dgram.d.ts +2 -541
  10. package/cloud/dgram.js +1 -3
  11. package/cloud/dns.cjs +1 -1
  12. package/cloud/dns.d.ts +3 -12
  13. package/cloud/dns.js +0 -1
  14. package/cloud/fs/promises.cjs +1 -1
  15. package/cloud/fs/promises.d.ts +7 -43
  16. package/cloud/fs/promises.js +0 -3
  17. package/cloud/fs.cjs +1 -1
  18. package/cloud/fs.d.ts +3 -75
  19. package/cloud/fs.js +3 -4
  20. package/cloud/http.cjs +1 -1
  21. package/cloud/http.d.ts +2 -767
  22. package/cloud/http.js +0 -3
  23. package/cloud/net.cjs +1 -1
  24. package/cloud/net.d.ts +2 -606
  25. package/cloud/net.js +2 -3
  26. package/cloud-5o7yJHeX.cjs +1 -0
  27. package/cloud-BFyf2uC7.js +112 -0
  28. package/cloud-gklfa4ZN.d.ts +41 -0
  29. package/cloud.cjs +1 -1
  30. package/cloud.d.ts +7 -1053
  31. package/cloud.js +8 -12
  32. package/{connect-button-poDZVmq2.cjs → connect-button-BBEjXzB3.cjs} +1 -1
  33. package/connect-button-D8KXSL6s.d.ts +4 -0
  34. package/desktop.cjs +1 -1
  35. package/desktop.d.ts +37 -34
  36. package/desktop.js +1 -1
  37. package/dgram-CE43gJq9.cjs +1 -0
  38. package/{dgram-c_Xk7ckJ.js → dgram-wtjARbt0.js} +3 -3
  39. package/dgram.cjs +1 -1
  40. package/dgram.d.ts +83 -533
  41. package/dgram.js +1 -3
  42. package/dns.cjs +1 -1
  43. package/dns.d.ts +9 -9
  44. package/dns.js +2 -2
  45. package/extension-3pxUYwrA.d.ts +16 -0
  46. package/extension-CPj10qwa.js +67 -0
  47. package/extension-D-NUXxzF.cjs +1 -0
  48. package/extension.cjs +1 -1
  49. package/extension.d.ts +3 -859
  50. package/extension.js +3 -5
  51. package/fs/promises.cjs +1 -1
  52. package/fs/promises.d.ts +8 -63
  53. package/fs/promises.js +1 -4
  54. package/fs-BfmfMBiw.cjs +1 -0
  55. package/{fs-BQs-x3_j.js → fs-D6nNf1mR.js} +4 -4
  56. package/fs-K7ROdxDx.d.ts +41 -0
  57. package/fs.cjs +1 -1
  58. package/fs.d.ts +81 -131
  59. package/fs.js +1 -4
  60. package/http.cjs +2 -2
  61. package/http.d.ts +152 -733
  62. package/http.js +7 -7
  63. package/index-BJztAQIP.d.ts +721 -0
  64. package/index-C6ZoDJg8.d.ts +31 -0
  65. package/index.cjs +1 -1
  66. package/index.d.ts +25 -2313
  67. package/index.js +23 -26
  68. package/lookup-BtwWaCZJ.d.ts +7 -0
  69. package/net-BDW1AVX1.d.ts +140 -0
  70. package/net-CpuAhaQC.cjs +1 -0
  71. package/{net-Bl6_W3bd.js → net-DKMWPXb_.js} +3 -3
  72. package/net.cjs +1 -1
  73. package/net.d.ts +2 -606
  74. package/net.js +2 -3
  75. package/{node-fs-DQn1TGJz.cjs → node-fs-C0eKnboT.cjs} +1 -1
  76. package/{node-fs-CdKPXPtW.js → node-fs-Dbf93qP7.js} +1 -1
  77. package/opfs/promises.cjs +1 -1
  78. package/opfs/promises.d.ts +8 -63
  79. package/opfs/promises.js +0 -1
  80. package/{opfs-BfcYLPGb.js → opfs-7_GmzQ93.js} +1 -1
  81. package/opfs-uClkgnb5.cjs +1 -0
  82. package/opfs.cjs +1 -1
  83. package/opfs.d.ts +80 -130
  84. package/opfs.js +3 -3
  85. package/package.json +6 -1
  86. package/packages-D36R2vBv.d.ts +108 -0
  87. package/packages.cjs +1 -0
  88. package/packages.d.ts +2 -0
  89. package/packages.js +150 -0
  90. package/{locator-9s7jNIA2.js → proxy-C8SG1Beo.js} +542 -344
  91. package/proxy-bPaU3-Cz.cjs +53 -0
  92. package/react.cjs +1 -1
  93. package/react.d.ts +11 -9
  94. package/react.js +1 -1
  95. package/{chunk-CPXzm0be.js → rolldown-runtime-DF993M8W.js} +1 -1
  96. package/rolldown-runtime-Doa5O59j.cjs +1 -0
  97. package/storage-OkwsFLN1.cjs +1 -0
  98. package/{storage-BcJfnkm3.js → storage-TmeyhZGt.js} +2 -2
  99. package/{utils-BsNRWMfl.cjs → utils-CoimMjf9.cjs} +1 -1
  100. package/background-CbU8TkWo.cjs +0 -1
  101. package/chunk-B6C_zzib.cjs +0 -1
  102. package/cloud-CWg9zCWm.cjs +0 -1
  103. package/cloud-eLyGYzbA.js +0 -33
  104. package/dgram-B3WC4VdJ.cjs +0 -1
  105. package/extension-BLkZiaAP.js +0 -253
  106. package/extension-DAiRg5ny.cjs +0 -1
  107. package/fs-DI1maxcZ.cjs +0 -1
  108. package/locator-CHfEe3Jv.cjs +0 -53
  109. package/net-C5kWnI4C.cjs +0 -1
  110. package/opfs-Dsi4FkJU.cjs +0 -1
  111. package/proxy-A9UvWUaF.cjs +0 -1
  112. package/proxy-wiZN4eTR.js +0 -14
  113. package/storage-C2-_-bTO.cjs +0 -1
  114. /package/{api-ByfayMm1.js → api--bnCFd4w.js} +0 -0
  115. /package/{connect-button-B_63ldmg.js → connect-button-Ds9KpXHe.js} +0 -0
  116. /package/{utils-CNydj3OT.js → utils-DPtyxGQu.js} +0 -0
package/account.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./chunk-B6C_zzib.cjs`),t=require(`./api-CDb2pv7C.cjs`);var n=e.n({info:()=>a,login:()=>r,logout:()=>i,onChange:()=>o}),r=async()=>typeof window>`u`?!1:(await t.t).account.login(location.origin).catch(()=>!1),i=async()=>{typeof window>`u`||await(await t.t).account.logout().catch(()=>{})},a=async()=>{if(typeof window>`u`)return null;let e=await t.t.then(e=>e.account.info()).catch(()=>null);return e?{name:e.name,image:e.image,premium:e.premium,premiumUntil:e.premiumUntil?Date.parse(e.premiumUntil):null}:null},o=async e=>{if(typeof window>`u`)return()=>{};let n=await t.t.catch(()=>null);if(!n)return()=>{};let r=await n.account.onChange(e).catch(()=>null);return typeof r==`function`?r:()=>{}};exports.info=a,exports.login=r,exports.logout=i,exports.onChange=o,Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return n}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rolldown-runtime-Doa5O59j.cjs"),t=require("./api-DD5v1qP9.cjs");var n=e.n({info:()=>a,login:()=>r,logout:()=>i,onChange:()=>o}),r=async()=>typeof window>`u`?!1:(await t.t).account.login(location.origin).catch(()=>!1),i=async()=>{typeof window>`u`||await(await t.t).account.logout().catch(()=>{})},a=async()=>{if(typeof window>`u`)return null;let e=await t.t.then(e=>e.account.info()).catch(()=>null);return e?{name:e.name,image:e.image,premium:e.premium,premiumUntil:e.premiumUntil?Date.parse(e.premiumUntil):null}:null},o=async e=>{if(typeof window>`u`)return()=>{};let n=await t.t.catch(()=>null);if(!n)return()=>{};let r=await n.account.onChange(e).catch(()=>null);return typeof r==`function`?r:()=>{}};exports.info=a,exports.login=r,exports.logout=i,exports.onChange=o,Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
package/account.d.ts CHANGED
@@ -1,17 +1,15 @@
1
+ declare namespace account_d_exports {
2
+ export { AccountInfo, info, login, logout, onChange };
3
+ }
1
4
  type AccountInfo = {
2
- /** the account's display name (a username, not necessarily a real name) */
3
- name: string;
4
- /** profile image URL, or null if none is set */
5
- image: string | null;
6
- /** the account has an active paid subscription */
7
- premium: boolean;
8
- /** when the current subscription lapses, as a ms epoch, or null when not subscribed */
9
- premiumUntil: number | null;
5
+ /** the account's display name (a username, not necessarily a real name) */name: string; /** profile image URL, or null if none is set */
6
+ image: string | null; /** the account has an active paid subscription */
7
+ premium: boolean; /** when the current subscription lapses, as a ms epoch, or null when not subscribed */
8
+ premiumUntil: number | null;
10
9
  };
11
10
  declare const login: () => Promise<boolean>;
12
11
  declare const logout: () => Promise<void>;
13
12
  declare const info: () => Promise<AccountInfo | null>;
14
13
  declare const onChange: (callback: () => void) => Promise<() => void>;
15
-
16
- export { info, login, logout, onChange };
17
- export type { AccountInfo };
14
+ //#endregion
15
+ export { AccountInfo, info, login, logout, onChange, account_d_exports as t };
package/account.js CHANGED
@@ -1,5 +1,5 @@
1
- import { n as e } from "./chunk-CPXzm0be.js";
2
- import { t } from "./api-ByfayMm1.js";
1
+ import { n as e } from "./rolldown-runtime-DF993M8W.js";
2
+ import { t } from "./api--bnCFd4w.js";
3
3
  //#region src/lib/account.ts
4
4
  var n = /* @__PURE__ */ e({
5
5
  info: () => a,
@@ -0,0 +1,524 @@
1
+ import { C as PackagesFail, _ as ConnectOptions, b as PackageQuery, v as InstallOptions, w as PickOptions, x as PackageResult, y as InstalledPackage } from "./packages-D36R2vBv.js";
2
+ import { t as AddressLookupResult } from "./lookup-BtwWaCZJ.js";
3
+ import { Address4, Address6 } from "ip-address";
4
+
5
+ //#region src/api/storage.d.ts
6
+ type StorageEntry = {
7
+ path: string;
8
+ size: number;
9
+ contentType: string | null;
10
+ updatedAt: string;
11
+ };
12
+ type StorageQuota = {
13
+ usedBytes: number;
14
+ limitBytes: number;
15
+ remaining: number;
16
+ objects: number;
17
+ maxObjects: number;
18
+ };
19
+ type WriteData = ArrayBuffer | Uint8Array | string;
20
+ //#endregion
21
+ //#region src/api/webvpn/packets/tcp.d.ts
22
+ declare const parseServerMetadataTcpSocketConnectedPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
23
+ readonly _type: 'ServerMetadataTcpSocketConnectedPacket';
24
+ readonly offset: number;
25
+ readonly id: number;
26
+ readonly socketId: number;
27
+ readonly localAddressType: 0 | 1;
28
+ readonly localAddress: import("ip-address").Address4 | import("ip-address").Address6;
29
+ readonly localPort: number;
30
+ readonly remoteAddressType: 0 | 1;
31
+ readonly remoteAddress: import("ip-address").Address4 | import("ip-address").Address6;
32
+ readonly remotePort: number;
33
+ readonly errorLength: number;
34
+ readonly error: string;
35
+ };
36
+ type ServerMetadataTcpSocketConnectedPacket = ReturnType<typeof parseServerMetadataTcpSocketConnectedPacket>;
37
+ declare const parseServerMetadataTcpSocketShutdownPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
38
+ readonly _type: 'ServerMetadataTcpSocketShutdownPacket';
39
+ readonly offset: number;
40
+ readonly id: number;
41
+ readonly socketId: number;
42
+ };
43
+ type ServerMetadataTcpSocketShutdownPacket = ReturnType<typeof parseServerMetadataTcpSocketShutdownPacket>;
44
+ declare const TCP_OPTION_NODELAY: 0;
45
+ declare const TCP_OPTION_TTL: 1;
46
+ declare const TCP_OPTION_KEEPALIVE: 2;
47
+ declare const TCP_OPTION_SEND_BUFFER_SIZE: 3;
48
+ declare const TCP_OPTION_RECV_BUFFER_SIZE: 4;
49
+ type TcpSocketOption = {
50
+ type: typeof TCP_OPTION_NODELAY;
51
+ value: boolean;
52
+ } | {
53
+ type: typeof TCP_OPTION_TTL;
54
+ value: number;
55
+ } | {
56
+ type: typeof TCP_OPTION_KEEPALIVE;
57
+ enabled: boolean;
58
+ initialDelaySeconds: number;
59
+ } | {
60
+ type: typeof TCP_OPTION_SEND_BUFFER_SIZE;
61
+ value: number;
62
+ } | {
63
+ type: typeof TCP_OPTION_RECV_BUFFER_SIZE;
64
+ value: number;
65
+ };
66
+ declare const parseServerMetadataTcpSetOptionAckPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
67
+ _type: 'ServerMetadataTcpSetOptionAckPacket';
68
+ offset: number;
69
+ id: number;
70
+ socketId: number;
71
+ errorLength: number;
72
+ error: string;
73
+ };
74
+ type ServerMetadataTcpSetOptionAckPacket = ReturnType<typeof parseServerMetadataTcpSetOptionAckPacket>;
75
+ //#endregion
76
+ //#region src/api/local-net/index.d.ts
77
+ type LocalTcpSocket = {
78
+ localAddress: string;
79
+ localFamily: 'IPv4' | 'IPv6';
80
+ localPort: number;
81
+ remoteAddress: string;
82
+ remoteFamily: 'IPv4' | 'IPv6';
83
+ remotePort: number;
84
+ dataReadableStream: ReadableStream<Uint8Array>;
85
+ dataWritableStream: WritableStream<Uint8Array>;
86
+ end: () => Promise<void>;
87
+ destroy: () => Promise<void>;
88
+ destroySoon: () => Promise<void>;
89
+ resetAndDestroy: () => Promise<void>;
90
+ setOption: (option: TcpSocketOption) => Promise<void>;
91
+ };
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
+ //#region src/api/webvpn/packets/udp.d.ts
115
+ declare const parseServerMetadataUdpSocketBoundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
116
+ readonly _type: 'ServerMetadataUdpSocketBoundPacket';
117
+ readonly offset: number;
118
+ readonly id: number;
119
+ readonly socketId: number;
120
+ readonly localAddressType: 0 | 1;
121
+ readonly localAddress: import("ip-address").Address4 | import("ip-address").Address6;
122
+ readonly localPort: number;
123
+ readonly errorLength: number;
124
+ readonly error: string;
125
+ };
126
+ type ServerMetadataUdpSocketBoundPacket = ReturnType<typeof parseServerMetadataUdpSocketBoundPacket>;
127
+ declare const parseServerMetadataUdpSocketUnboundPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
128
+ readonly _type: 'ServerMetadataUdpSocketUnboundPacket';
129
+ readonly offset: number;
130
+ readonly id: number;
131
+ readonly socketId: number;
132
+ };
133
+ type ServerMetadataUdpSocketUnboundPacket = ReturnType<typeof parseServerMetadataUdpSocketUnboundPacket>;
134
+ declare const parseServerMetadataUdpSocketConnectedPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
135
+ readonly _type: 'ServerMetadataUdpSocketConnectedPacket';
136
+ readonly offset: number;
137
+ readonly id: number;
138
+ readonly socketId: number;
139
+ readonly remoteAddressType: 0 | 1;
140
+ readonly remoteAddress: import("ip-address").Address4 | import("ip-address").Address6;
141
+ readonly remotePort: number;
142
+ readonly errorLength: number;
143
+ readonly error: string;
144
+ };
145
+ type ServerMetadataUdpSocketConnectedPacket = ReturnType<typeof parseServerMetadataUdpSocketConnectedPacket>;
146
+ declare const UDP_OPTION_BROADCAST: 0;
147
+ declare const UDP_OPTION_TTL: 1;
148
+ declare const UDP_OPTION_MULTICAST_TTL_V4: 2;
149
+ declare const UDP_OPTION_MULTICAST_LOOP_V4: 3;
150
+ declare const UDP_OPTION_MULTICAST_LOOP_V6: 4;
151
+ declare const UDP_OPTION_ADD_MEMBERSHIP_V4: 5;
152
+ declare const UDP_OPTION_DROP_MEMBERSHIP_V4: 6;
153
+ declare const UDP_OPTION_ADD_MEMBERSHIP_V6: 7;
154
+ declare const UDP_OPTION_DROP_MEMBERSHIP_V6: 8;
155
+ declare const UDP_OPTION_SEND_BUFFER_SIZE: 9;
156
+ declare const UDP_OPTION_RECV_BUFFER_SIZE: 10;
157
+ type UdpSocketOption = {
158
+ type: typeof UDP_OPTION_BROADCAST;
159
+ value: boolean;
160
+ } | {
161
+ type: typeof UDP_OPTION_TTL;
162
+ value: number;
163
+ } | {
164
+ type: typeof UDP_OPTION_MULTICAST_TTL_V4;
165
+ value: number;
166
+ } | {
167
+ type: typeof UDP_OPTION_MULTICAST_LOOP_V4;
168
+ value: boolean;
169
+ } | {
170
+ type: typeof UDP_OPTION_MULTICAST_LOOP_V6;
171
+ value: boolean;
172
+ } | {
173
+ type: typeof UDP_OPTION_ADD_MEMBERSHIP_V4;
174
+ group: Uint8Array;
175
+ interface: Uint8Array;
176
+ } | {
177
+ type: typeof UDP_OPTION_DROP_MEMBERSHIP_V4;
178
+ group: Uint8Array;
179
+ interface: Uint8Array;
180
+ } | {
181
+ type: typeof UDP_OPTION_ADD_MEMBERSHIP_V6;
182
+ group: Uint8Array;
183
+ ifIndex: number;
184
+ } | {
185
+ type: typeof UDP_OPTION_DROP_MEMBERSHIP_V6;
186
+ group: Uint8Array;
187
+ ifIndex: number;
188
+ } | {
189
+ type: typeof UDP_OPTION_SEND_BUFFER_SIZE;
190
+ value: number;
191
+ } | {
192
+ type: typeof UDP_OPTION_RECV_BUFFER_SIZE;
193
+ value: number;
194
+ };
195
+ declare const parseServerMetadataUdpSetOptionAckPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
196
+ _type: 'ServerMetadataUdpSetOptionAckPacket';
197
+ offset: number;
198
+ id: number;
199
+ socketId: number;
200
+ errorLength: number;
201
+ error: string;
202
+ };
203
+ type ServerMetadataUdpSetOptionAckPacket = ReturnType<typeof parseServerMetadataUdpSetOptionAckPacket>;
204
+ //#endregion
205
+ //#region src/api/webvpn/packets/metadata.d.ts
206
+ declare const parseServerMetadataHeaderPacket: (offset: number, buffer: ArrayBuffer, view: DataView) => {
207
+ readonly _type: 'ServerMetadataHeaderPacket';
208
+ readonly offset: number;
209
+ readonly agentLength: number;
210
+ readonly agent: string;
211
+ readonly versionLength: number;
212
+ readonly version: string;
213
+ };
214
+ type ServerMetadataHeaderPacket = ReturnType<typeof parseServerMetadataHeaderPacket>;
215
+ type ServerMetadataPacket = ServerMetadataHeaderPacket | ServerMetadataTcpSocketConnectedPacket | ServerMetadataTcpSocketShutdownPacket | ServerMetadataTcpSocketListenerBoundPacket | ServerMetadataTcpSocketListenerUnboundPacket | ServerMetadataUdpSocketBoundPacket | ServerMetadataUdpSocketUnboundPacket | ServerMetadataUdpSocketConnectedPacket | ServerMetadataTcpSetOptionAckPacket | ServerMetadataUdpSetOptionAckPacket;
216
+ //#endregion
217
+ //#region src/api/webvpn/webtransport.d.ts
218
+ type BidirectionalStreams = {
219
+ readable: ReadableStream<Uint8Array>;
220
+ writable: WritableStream<Uint8Array>;
221
+ };
222
+ declare const makeWebVPNWebTransport: () => Promise<{
223
+ webtransport: WebTransport;
224
+ isClosed: () => boolean;
225
+ getNewPacketId: () => number;
226
+ getTcpDataReadableStreamForSocketId: (socketId: number, options?: {
227
+ signal?: AbortSignal;
228
+ }) => Promise<BidirectionalStreams>;
229
+ getUdpDataReadableStreamForSocketId: (socketId: number) => ReadableStream<{
230
+ readonly _type: 'ServerUdpDataPacket';
231
+ readonly offset: number;
232
+ readonly socketId: number;
233
+ readonly remoteAddressType: 0 | 1 | 2;
234
+ readonly remoteAddress: Address4 | Address6 | undefined;
235
+ readonly remotePort: number | undefined;
236
+ readonly dataLength: number;
237
+ readonly data: ArrayBuffer;
238
+ }>;
239
+ claimUdpRawStream: (socketId: number, sink: (packetBytes: Uint8Array) => void) => void;
240
+ releaseUdpRawStream: (socketId: number) => void;
241
+ getPacketForId: (packetId: number) => Promise<ServerMetadataPacket>;
242
+ getMetadataReadableStreamForSocketId: (socketId: number) => ReadableStream<ServerMetadataPacket>;
243
+ getMetadataReadableStreamForLocalAddress: (address: Address4 | Address6) => ReadableStream<ServerMetadataPacket>;
244
+ getMetadataReadableStreamForLocalPort: (port: number) => ReadableStream<ServerMetadataPacket>;
245
+ getMetadataWritableStream: () => WritableStream<Uint8Array<ArrayBufferLike>>;
246
+ getDatagramWritableStream: () => WritableStream<Uint8Array<ArrayBufferLike>>;
247
+ presentRateToken: () => Promise<void>;
248
+ }>;
249
+ type WebVPNWebTransport = Awaited<ReturnType<typeof makeWebVPNWebTransport>>;
250
+ //#endregion
251
+ //#region src/api/webvpn/tcp.d.ts
252
+ declare const processTcpSocket: ({
253
+ connectedPacket,
254
+ dataReadableStream,
255
+ dataWritableStream,
256
+ metadataReadableStream,
257
+ metadataWriter,
258
+ dataStreamAbort,
259
+ webVpnWebTransport
260
+ }: {
261
+ connectedPacket: ServerMetadataTcpSocketConnectedPacket;
262
+ dataReadableStream: ReadableStream<Uint8Array>;
263
+ dataWritableStream: WritableStream<Uint8Array>;
264
+ metadataReadableStream: ReadableStream<ServerMetadataPacket>;
265
+ metadataWriter: WritableStreamDefaultWriter<Uint8Array>;
266
+ dataStreamAbort?: AbortController;
267
+ webVpnWebTransport: WebVPNWebTransport;
268
+ }) => Promise<{
269
+ localAddress: string;
270
+ localFamily: "IPv4" | "IPv6";
271
+ localPort: number;
272
+ remoteAddress: string;
273
+ remoteFamily: "IPv4" | "IPv6";
274
+ remotePort: number;
275
+ dataReadableStream: ReadableStream<Uint8Array<ArrayBufferLike>>;
276
+ dataWritableStream: WritableStream<Uint8Array<ArrayBufferLike>>;
277
+ end: () => Promise<void>;
278
+ destroy: () => Promise<void>;
279
+ destroySoon: () => Promise<void>;
280
+ resetAndDestroy: () => Promise<void>;
281
+ setOption: (option: TcpSocketOption) => Promise<void>;
282
+ }>;
283
+ type TcpSocketResult = Awaited<ReturnType<typeof processTcpSocket>>;
284
+ //#endregion
285
+ //#region src/api/quota.d.ts
286
+ type Quota = {
287
+ overQuota: boolean;
288
+ remaining: number;
289
+ usedBytes: number;
290
+ limitBytes: number;
291
+ premium: boolean;
292
+ bytesPerSecond: number;
293
+ };
294
+ //#endregion
295
+ //#region src/api/account.d.ts
296
+ type Account = {
297
+ name: string;
298
+ image: string | null;
299
+ premium: boolean;
300
+ premiumUntil: string | null;
301
+ };
302
+ //#endregion
303
+ //#region src/api/index.d.ts
304
+ declare const resolvers: {
305
+ readonly cloud: {
306
+ readonly fetch: (input: string | Request | URL, init?: (RequestInit | undefined) & {
307
+ render?: boolean;
308
+ }) => Promise<Response>;
309
+ readonly quota: () => Promise<Quota>;
310
+ readonly dns: {
311
+ readonly lookup: <T extends boolean = false>(hostname: string, options?: {
312
+ all?: T;
313
+ family?: 0 | 4 | 6;
314
+ }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
315
+ };
316
+ readonly fs: {
317
+ readonly available: () => Promise<boolean>;
318
+ readonly list: () => Promise<StorageEntry[]>;
319
+ readonly quota: () => Promise<StorageQuota>;
320
+ readonly readFile: (path: string) => Promise<Uint8Array>;
321
+ readonly writeFile: (path: string, data: WriteData, contentType: string | null) => Promise<void>;
322
+ readonly remove: (path: string) => Promise<void>;
323
+ };
324
+ readonly webvpn: {
325
+ readonly tcpSocket: ({
326
+ remoteAddress: _remoteAddress,
327
+ remotePort
328
+ }: {
329
+ remoteAddress: string;
330
+ remotePort: number;
331
+ }) => Promise<LocalTcpSocket>;
332
+ readonly tcpSocketListener: ({
333
+ localAddress: _localAddress,
334
+ localPort,
335
+ onConnection
336
+ }: {
337
+ localAddress: string;
338
+ localPort: number;
339
+ onConnection: (connection: TcpSocketResult) => void;
340
+ }) => Promise<{
341
+ localAddress: string;
342
+ localFamily: "IPv4" | "IPv6";
343
+ localPort: number;
344
+ close: () => Promise<void>;
345
+ }>;
346
+ readonly udpSocket: ({
347
+ type,
348
+ port,
349
+ address,
350
+ dataPort
351
+ }: {
352
+ type: 'udp4' | 'udp6';
353
+ port: number;
354
+ address: string;
355
+ dataPort?: boolean;
356
+ }) => Promise<{
357
+ socketId: number;
358
+ dataPort: MessagePort | undefined;
359
+ localAddress: string;
360
+ localFamily: "IPv4" | "IPv6";
361
+ localPort: number;
362
+ dataReadableStream: ReadableStream<{
363
+ data: ArrayBuffer;
364
+ size: number;
365
+ family: 'IPv4' | 'IPv6';
366
+ address: string;
367
+ port: number;
368
+ }>;
369
+ connect: ({
370
+ remoteAddress: _remoteAddress,
371
+ remotePort
372
+ }: {
373
+ remoteAddress: string;
374
+ remotePort: number;
375
+ }) => Promise<void>;
376
+ send: ({
377
+ message,
378
+ address: _remoteAddress,
379
+ port: remotePort
380
+ }: {
381
+ message: ArrayBuffer;
382
+ address?: string;
383
+ port?: number;
384
+ }) => Promise<void>;
385
+ close: () => Promise<void>;
386
+ setOption: (option: UdpSocketOption) => Promise<void>;
387
+ }>;
388
+ };
389
+ };
390
+ readonly overlay: {
391
+ readonly setHost: (push: (state: {
392
+ modal: boolean;
393
+ rects: {
394
+ x: number;
395
+ y: number;
396
+ width: number;
397
+ height: number;
398
+ }[];
399
+ }) => unknown) => void;
400
+ };
401
+ readonly installPrompt: {
402
+ readonly show: (reason?: string) => Promise<void>;
403
+ readonly hide: () => void;
404
+ };
405
+ readonly connect: {
406
+ readonly prompt: (consumerOrigin: string) => Promise<boolean>;
407
+ };
408
+ readonly packages: {
409
+ search: (query: PackageQuery) => Promise<{
410
+ results: PackageResult[];
411
+ } | PackagesFail>;
412
+ pick: (query: PackageQuery, options?: PickOptions) => Promise<{
413
+ results: PackageResult[];
414
+ failed: string[];
415
+ } | {
416
+ declined: true;
417
+ } | PackagesFail>;
418
+ install: (uri: string, options?: InstallOptions) => Promise<{
419
+ installed: InstalledPackage;
420
+ } | {
421
+ declined: true;
422
+ } | PackagesFail>;
423
+ list: () => Promise<{
424
+ results: InstalledPackage[];
425
+ }>;
426
+ uninstall: (uri: string) => Promise<{
427
+ ok: true;
428
+ } | PackagesFail>;
429
+ connect: (uri: string, options?: ConnectOptions) => Promise<{
430
+ port: MessagePort;
431
+ closed: Promise<void>;
432
+ } | PackagesFail>;
433
+ };
434
+ readonly account: {
435
+ readonly info: () => Promise<Account | null>;
436
+ readonly login: (consumerOrigin: string) => Promise<boolean>;
437
+ readonly logout: () => void;
438
+ readonly onChange: (listener: () => void) => (() => void);
439
+ };
440
+ readonly proxyFetch: (input: string | Request | URL, init?: (RequestInit | undefined) & {
441
+ render?: boolean;
442
+ }) => Promise<Response>;
443
+ readonly webVpnTcpSocket: ({
444
+ remoteAddress: _remoteAddress,
445
+ remotePort
446
+ }: {
447
+ remoteAddress: string;
448
+ remotePort: number;
449
+ }) => Promise<LocalTcpSocket>;
450
+ readonly webVpnTcpSocketListener: ({
451
+ localAddress: _localAddress,
452
+ localPort,
453
+ onConnection
454
+ }: {
455
+ localAddress: string;
456
+ localPort: number;
457
+ onConnection: (connection: TcpSocketResult) => void;
458
+ }) => Promise<{
459
+ localAddress: string;
460
+ localFamily: "IPv4" | "IPv6";
461
+ localPort: number;
462
+ close: () => Promise<void>;
463
+ }>;
464
+ readonly webVpnUdpSocket: ({
465
+ type,
466
+ port,
467
+ address,
468
+ dataPort
469
+ }: {
470
+ type: 'udp4' | 'udp6';
471
+ port: number;
472
+ address: string;
473
+ dataPort?: boolean;
474
+ }) => Promise<{
475
+ socketId: number;
476
+ dataPort: MessagePort | undefined;
477
+ localAddress: string;
478
+ localFamily: "IPv4" | "IPv6";
479
+ localPort: number;
480
+ dataReadableStream: ReadableStream<{
481
+ data: ArrayBuffer;
482
+ size: number;
483
+ family: 'IPv4' | 'IPv6';
484
+ address: string;
485
+ port: number;
486
+ }>;
487
+ connect: ({
488
+ remoteAddress: _remoteAddress,
489
+ remotePort
490
+ }: {
491
+ remoteAddress: string;
492
+ remotePort: number;
493
+ }) => Promise<void>;
494
+ send: ({
495
+ message,
496
+ address: _remoteAddress,
497
+ port: remotePort
498
+ }: {
499
+ message: ArrayBuffer;
500
+ address?: string;
501
+ port?: number;
502
+ }) => Promise<void>;
503
+ close: () => Promise<void>;
504
+ setOption: (option: UdpSocketOption) => Promise<void>;
505
+ }>;
506
+ readonly dnsLookup: <T extends boolean = false>(hostname: string, options?: {
507
+ all?: T;
508
+ family?: 0 | 4 | 6;
509
+ }) => Promise<T extends true ? AddressLookupResult[] : AddressLookupResult | undefined>;
510
+ readonly setOverlayHost: (push: (state: {
511
+ modal: boolean;
512
+ rects: {
513
+ x: number;
514
+ y: number;
515
+ width: number;
516
+ height: number;
517
+ }[];
518
+ }) => unknown) => void;
519
+ readonly showInstallPrompt: (reason?: string) => Promise<void>;
520
+ readonly hideInstallPrompt: () => void;
521
+ };
522
+ type Resolvers = typeof resolvers;
523
+ //#endregion
524
+ export { TcpSocketOption as i, UdpSocketOption as n, LocalTcpSocket as r, Resolvers as t };
@@ -1 +1 @@
1
- let e=require(`osra`);var t=32,n=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),r=e=>{let t=e.style;t.setProperty(`display`,`block`,`important`),t.setProperty(`position`,`fixed`,`important`),t.setProperty(`top`,`0`,`important`),t.setProperty(`left`,`0`,`important`),t.setProperty(`width`,`100%`,`important`),t.setProperty(`height`,`100%`,`important`),t.setProperty(`border`,`none`,`important`),t.setProperty(`clip-path`,`inset(100%)`,`important`),t.setProperty(`background`,`transparent`),t.setProperty(`color-scheme`,`normal`),t.setProperty(`z-index`,`2147483647`),e.setAttribute(`title`,`FKN`)},i=({x:e,y:t,width:n,height:r})=>`M${e} ${t}h${n}v${r}h${-n}Z`,a=(e,{modal:t,rects:r})=>{if(!n){let n=t||r.length>0;e.style.setProperty(`pointer-events`,n?`auto`:`none`,`important`),e.style.setProperty(`visibility`,n?`visible`:`hidden`,`important`);return}let a=t?`none`:r.length===0?`inset(100%)`:`path('${r.map(i).join(``)}')`,o=a===`none`||CSS.supports(`clip-path`,a)?a:`inset(100%)`;e.style.setProperty(`clip-path`,o,`important`)},o=e=>{if(typeof e!=`object`||!e)return null;let{x:t,y:n,width:r,height:i}=e;if(![t,n,r,i].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let a=window.innerWidth,o=window.innerHeight,s=Math.max(0,Math.min(Math.round(t),a)),c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(s,Math.min(Math.round(t+r),a)),u=Math.max(c,Math.min(Math.round(n+i),o));return{x:s,y:c,width:l-s,height:u-c}},s=e=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,t):[]).map(o).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r}},c=null,l=()=>c!==null,u=e=>{r(e),a(e,{modal:!1,rects:[]}),c=e},d=e=>{if(!c)return;let t=s(e);t&&a(c,t)},f=`https://fkn.app`,p=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,m=p?.querySelector(`iframe[src="${f}/api"]`)??null,h=p?.createElement(`iframe`)??null;!m&&h&&p&&(h.src=`${f}/api`,p.body.appendChild(h));var g=m??h,_=g?.contentWindow??null;g&&p&&u(g);var v=(()=>{if(typeof window<`u`)return _?{receive:window,emit:_}:void 0;if(typeof self<`u`)return{receive:self,emit:self}})(),y=v!==void 0,b=v?(0,e.expose)({},{key:`fkn-api`,transport:v}):new Promise(()=>{});b.then(e=>{l()&&e.overlay.setHost(d)},()=>{}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return b}});
1
+ let e=require("osra");var t=32,n=typeof CSS<`u`&&CSS.supports(`clip-path`,`path('M0 0H1V1H0Z')`),r=e=>{let t=e.style;t.setProperty(`display`,`block`,`important`),t.setProperty(`position`,`fixed`,`important`),t.setProperty(`top`,`0`,`important`),t.setProperty(`left`,`0`,`important`),t.setProperty(`width`,`100%`,`important`),t.setProperty(`height`,`100%`,`important`),t.setProperty(`border`,`none`,`important`),t.setProperty(`clip-path`,`inset(100%)`,`important`),t.setProperty(`background`,`transparent`),t.setProperty(`color-scheme`,`normal`),t.setProperty(`z-index`,`2147483647`),e.setAttribute(`title`,`FKN`)},i=({x:e,y:t,width:n,height:r})=>`M${e} ${t}h${n}v${r}h${-n}Z`,a=(e,{modal:t,rects:r})=>{if(!n){let n=t||r.length>0;e.style.setProperty(`pointer-events`,n?`auto`:`none`,`important`),e.style.setProperty(`visibility`,n?`visible`:`hidden`,`important`);return}let a=t?`none`:r.length===0?`inset(100%)`:`path('${r.map(i).join(``)}')`,o=a===`none`||CSS.supports(`clip-path`,a)?a:`inset(100%)`;e.style.setProperty(`clip-path`,o,`important`)},o=e=>{if(typeof e!=`object`||!e)return null;let{x:t,y:n,width:r,height:i}=e;if(![t,n,r,i].every(e=>typeof e==`number`&&Number.isFinite(e)))return null;let a=window.innerWidth,o=window.innerHeight,s=Math.max(0,Math.min(Math.round(t),a)),c=Math.max(0,Math.min(Math.round(n),o)),l=Math.max(s,Math.min(Math.round(t+r),a)),u=Math.max(c,Math.min(Math.round(n+i),o));return{x:s,y:c,width:l-s,height:u-c}},s=e=>{if(typeof e!=`object`||!e)return null;let n=e,r=(Array.isArray(n.rects)?n.rects.slice(0,t):[]).map(o).filter(e=>e!==null&&e.width>0&&e.height>0);return{modal:n.modal===!0,rects:r}},c=null,l=()=>c!==null,u=e=>{r(e),a(e,{modal:!1,rects:[]}),c=e},d=e=>{if(!c)return;let t=s(e);t&&a(c,t)},f=`https://fkn.app`,p=typeof globalThis<`u`&&globalThis.document?globalThis.document:void 0,m=p?.querySelector(`iframe[src="${f}/api"]`)??null,h=p?.createElement(`iframe`)??null;!m&&h&&p&&(h.src=`${f}/api`,p.body.appendChild(h));var g=m??h,_=g?.contentWindow??null;g&&p&&u(g);var v=(()=>{if(typeof window<`u`)return _?{receive:window,emit:_}:void 0;if(typeof self<`u`)return{receive:self,emit:self}})(),y=v!==void 0,b=v?(0,e.expose)({},{key:`fkn-api`,transport:v}):new Promise(()=>{});b.then(e=>{l()&&e.overlay.setHost(d)},()=>{}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return b}});