@lifo-sh/core 0.4.6 → 0.5.5
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/README.md +7 -3
- package/dist/{awk-BFrGImnt.js → awk-Bhywv7pU.js} +1 -1
- package/dist/base64-ncdb27yL.js +72 -0
- package/dist/{basename-MGz8cBxd.js → basename-D-_r1VN_.js} +1 -1
- package/dist/browser-Bymgnrli.js +35 -0
- package/dist/{cat-BnEyWWFr.js → cat-DSe6FHma.js} +1 -1
- package/dist/{chmod-CdrI3hZV.js → chmod-BZIlNR2-.js} +1 -1
- package/dist/{chown-7yY3iC6J.js → chown-BAOEOuMn.js} +1 -1
- package/dist/commands/net/curl.d.ts +2 -2
- package/dist/commands/net/curl.d.ts.map +1 -1
- package/dist/commands/net/forward.d.ts +14 -0
- package/dist/commands/net/forward.d.ts.map +1 -0
- package/dist/commands/net/host.d.ts +14 -0
- package/dist/commands/net/host.d.ts.map +1 -0
- package/dist/commands/net/ifconfig.d.ts +8 -0
- package/dist/commands/net/ifconfig.d.ts.map +1 -0
- package/dist/commands/net/ip.d.ts +14 -0
- package/dist/commands/net/ip.d.ts.map +1 -0
- package/dist/commands/net/netstat.d.ts +8 -0
- package/dist/commands/net/netstat.d.ts.map +1 -0
- package/dist/commands/net/ports.d.ts +8 -0
- package/dist/commands/net/ports.d.ts.map +1 -0
- package/dist/commands/net/route.d.ts +8 -0
- package/dist/commands/net/route.d.ts.map +1 -0
- package/dist/commands/net/test-registry.d.ts +8 -0
- package/dist/commands/net/test-registry.d.ts.map +1 -0
- package/dist/commands/net/tunnel-v2.d.ts +4 -0
- package/dist/commands/net/tunnel-v2.d.ts.map +1 -0
- package/dist/commands/net/tunnel.d.ts +6 -0
- package/dist/commands/net/tunnel.d.ts.map +1 -0
- package/dist/commands/registry.d.ts +1 -0
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/system/fastfetch.d.ts +4 -0
- package/dist/commands/system/fastfetch.d.ts.map +1 -0
- package/dist/commands/system/kill.d.ts +2 -2
- package/dist/commands/system/kill.d.ts.map +1 -1
- package/dist/commands/system/lifo.d.ts +17 -0
- package/dist/commands/system/lifo.d.ts.map +1 -1
- package/dist/commands/system/logout.d.ts +5 -0
- package/dist/commands/system/logout.d.ts.map +1 -0
- package/dist/commands/system/man.d.ts.map +1 -1
- package/dist/commands/system/newtab.d.ts +8 -0
- package/dist/commands/system/newtab.d.ts.map +1 -0
- package/dist/commands/system/node.d.ts +2 -2
- package/dist/commands/system/node.d.ts.map +1 -1
- package/dist/commands/system/npm.d.ts +20 -7
- package/dist/commands/system/npm.d.ts.map +1 -1
- package/dist/commands/system/ps.d.ts +3 -2
- package/dist/commands/system/ps.d.ts.map +1 -1
- package/dist/commands/system/sha256sum.d.ts +4 -0
- package/dist/commands/system/sha256sum.d.ts.map +1 -0
- package/dist/commands/system/sl.d.ts +4 -0
- package/dist/commands/system/sl.d.ts.map +1 -0
- package/dist/commands/system/systemctl.d.ts +4 -0
- package/dist/commands/system/systemctl.d.ts.map +1 -0
- package/dist/commands/system/top.d.ts +2 -2
- package/dist/commands/system/top.d.ts.map +1 -1
- package/dist/commands/system/whoami.d.ts.map +1 -1
- package/dist/commands/text/base64.d.ts +4 -0
- package/dist/commands/text/base64.d.ts.map +1 -0
- package/dist/commands/text/less.d.ts +4 -0
- package/dist/commands/text/less.d.ts.map +1 -0
- package/dist/commands/text/nano.d.ts +4 -0
- package/dist/commands/text/nano.d.ts.map +1 -0
- package/dist/commands/text/seq.d.ts +4 -0
- package/dist/commands/text/seq.d.ts.map +1 -0
- package/dist/commands/text/strings.d.ts +4 -0
- package/dist/commands/text/strings.d.ts.map +1 -0
- package/dist/commands/text/tac.d.ts +4 -0
- package/dist/commands/text/tac.d.ts.map +1 -0
- package/dist/commands/types.d.ts +1 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/{cp-7dOXCu3Q.js → cp-DOXzF2_m.js} +1 -1
- package/dist/{cut-vn4vxL9L.js → cut-B4rQvMRc.js} +1 -1
- package/dist/{diff-DnKPewP-.js → diff-BndHU0Ne.js} +1 -1
- package/dist/{dirname-B3ciBZhS.js → dirname-wtPE8QZ6.js} +1 -1
- package/dist/{du-i2qiYYnL.js → du-BLkl3BkN.js} +1 -1
- package/dist/fastfetch-aPM9Z3ym.js +310 -0
- package/dist/{file-Dd6iLk05.js → file-DfmI5Gyk.js} +1 -1
- package/dist/{find-Cz4GdaPT.js → find-Wdkys9OU.js} +1 -1
- package/dist/{grep-DYSAPbxr.js → grep-xmx3I05f.js} +1 -1
- package/dist/{gunzip-BHAbNGHO.js → gunzip-Dbr2fm5t.js} +1 -1
- package/dist/{gzip-JLrrHn6u.js → gzip-D1GwSnNe.js} +1 -1
- package/dist/{head-bFamSv7p.js → head-DUXuKw3m.js} +1 -1
- package/dist/index-Djm2onjx.js +13915 -0
- package/dist/index.d.ts +28 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -65
- package/dist/kernel/ServiceManager.d.ts +51 -0
- package/dist/kernel/ServiceManager.d.ts.map +1 -0
- package/dist/kernel/index.d.ts +11 -0
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/network/Bridge.d.ts +110 -0
- package/dist/kernel/network/Bridge.d.ts.map +1 -0
- package/dist/kernel/network/DNSResolver.d.ts +55 -0
- package/dist/kernel/network/DNSResolver.d.ts.map +1 -0
- package/dist/kernel/network/NetworkInterface.d.ts +83 -0
- package/dist/kernel/network/NetworkInterface.d.ts.map +1 -0
- package/dist/kernel/network/NetworkNamespace.d.ts +98 -0
- package/dist/kernel/network/NetworkNamespace.d.ts.map +1 -0
- package/dist/kernel/network/NetworkStack.d.ts +178 -0
- package/dist/kernel/network/NetworkStack.d.ts.map +1 -0
- package/dist/kernel/network/NetworkStack.example.d.ts +8 -0
- package/dist/kernel/network/NetworkStack.example.d.ts.map +1 -0
- package/dist/kernel/network/NetworkStack.test.d.ts +2 -0
- package/dist/kernel/network/NetworkStack.test.d.ts.map +1 -0
- package/dist/kernel/network/PortBridge.d.ts +49 -0
- package/dist/kernel/network/PortBridge.d.ts.map +1 -0
- package/dist/kernel/network/RoutingTable.d.ts +55 -0
- package/dist/kernel/network/RoutingTable.d.ts.map +1 -0
- package/dist/kernel/network/Socket.d.ts +65 -0
- package/dist/kernel/network/Socket.d.ts.map +1 -0
- package/dist/kernel/network/index.d.ts +11 -0
- package/dist/kernel/network/index.d.ts.map +1 -0
- package/dist/kernel/network/tunnel/BaseTunnel.d.ts +55 -0
- package/dist/kernel/network/tunnel/BaseTunnel.d.ts.map +1 -0
- package/dist/kernel/network/tunnel/VETHPair.d.ts +71 -0
- package/dist/kernel/network/tunnel/VETHPair.d.ts.map +1 -0
- package/dist/kernel/network/tunnel/WebSocketTunnel.d.ts +89 -0
- package/dist/kernel/network/tunnel/WebSocketTunnel.d.ts.map +1 -0
- package/dist/kernel/network/types.d.ts +159 -0
- package/dist/kernel/network/types.d.ts.map +1 -0
- package/dist/kernel/storage/ContentStore.d.ts +3 -1
- package/dist/kernel/storage/ContentStore.d.ts.map +1 -1
- package/dist/kernel/unit-parser.d.ts +22 -0
- package/dist/kernel/unit-parser.d.ts.map +1 -0
- package/dist/less-VW-Lb-t9.js +230 -0
- package/dist/{ls-BSsn2qVd.js → ls-DjuSFYCA.js} +1 -1
- package/dist/{man-CJ5pI0_W.js → man-Dg26tZ-a.js} +19 -6
- package/dist/{mkdir-CF_ugDtu.js → mkdir-qMgrbMfK.js} +1 -1
- package/dist/{mktemp-CaEiJi87.js → mktemp-BNrdUgqA.js} +1 -1
- package/dist/{mv-BSS_QQM-.js → mv-DxovuvmA.js} +1 -1
- package/dist/nano-CVa6vpFX.js +304 -0
- package/dist/{nl-D30ka89P.js → nl-E4qmf3dZ.js} +1 -1
- package/dist/node-compat/crypto.d.ts +8 -1
- package/dist/node-compat/crypto.d.ts.map +1 -1
- package/dist/node-compat/dns.d.ts +117 -0
- package/dist/node-compat/dns.d.ts.map +1 -0
- package/dist/node-compat/esbuild.d.ts +10 -0
- package/dist/node-compat/esbuild.d.ts.map +1 -0
- package/dist/node-compat/fs.d.ts +25 -5
- package/dist/node-compat/fs.d.ts.map +1 -1
- package/dist/node-compat/http.d.ts +54 -9
- package/dist/node-compat/http.d.ts.map +1 -1
- package/dist/node-compat/index.d.ts.map +1 -1
- package/dist/node-compat/module.d.ts +55 -0
- package/dist/node-compat/module.d.ts.map +1 -0
- package/dist/node-compat/path.d.ts +28 -0
- package/dist/node-compat/path.d.ts.map +1 -1
- package/dist/node-compat/process.d.ts +67 -2
- package/dist/node-compat/process.d.ts.map +1 -1
- package/dist/node-compat/readline.d.ts +79 -0
- package/dist/node-compat/readline.d.ts.map +1 -0
- package/dist/node-compat/rimraf.d.ts +23 -0
- package/dist/node-compat/rimraf.d.ts.map +1 -0
- package/dist/node-compat/tty.d.ts +32 -0
- package/dist/node-compat/tty.d.ts.map +1 -0
- package/dist/node-compat/url.d.ts +4 -0
- package/dist/node-compat/url.d.ts.map +1 -1
- package/dist/node-compat/util.d.ts +21 -1
- package/dist/node-compat/util.d.ts.map +1 -1
- package/dist/{realpath-BWqrTa-J.js → realpath-BaYc6QSr.js} +1 -1
- package/dist/{rev-Cfja5xbl.js → rev-CtqOEUEH.js} +1 -1
- package/dist/{rm-DUR35EZn.js → rm-DtLSFhWn.js} +1 -1
- package/dist/{rmdir-DXjx17-Z.js → rmdir-k65U0Fef.js} +1 -1
- package/dist/sandbox/Sandbox.d.ts.map +1 -1
- package/dist/sandbox/types.d.ts +2 -2
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/{sed-YKJ5wcuu.js → sed-BpypU_CO.js} +1 -1
- package/dist/seq-B01YKIbO.js +37 -0
- package/dist/sha256sum-x-mlDY9n.js +64 -0
- package/dist/shell/ProcessRegistry.d.ts +144 -0
- package/dist/shell/ProcessRegistry.d.ts.map +1 -0
- package/dist/shell/ProcessRegistry.example.d.ts +8 -0
- package/dist/shell/ProcessRegistry.example.d.ts.map +1 -0
- package/dist/shell/ProcessRegistry.test.d.ts +2 -0
- package/dist/shell/ProcessRegistry.test.d.ts.map +1 -0
- package/dist/shell/Shell.d.ts +10 -2
- package/dist/shell/Shell.d.ts.map +1 -1
- package/dist/shell/interpreter.d.ts +4 -0
- package/dist/shell/interpreter.d.ts.map +1 -1
- package/dist/shell/terminal-stdin.d.ts +4 -0
- package/dist/shell/terminal-stdin.d.ts.map +1 -1
- package/dist/sl-Dv4iPBN6.js +138 -0
- package/dist/{sort-C2sQ841N.js → sort-C1n7kWmJ.js} +1 -1
- package/dist/{stat-gLLpq3JZ.js → stat-Co_5pgto.js} +1 -1
- package/dist/strings-tFgYFAvp.js +42 -0
- package/dist/tac-BQvVvnoM.js +31 -0
- package/dist/{tail-FnC8M40k.js → tail-CLWVwfZD.js} +1 -1
- package/dist/{tar-tfiT1iFt.js → tar-wo7UUSK5.js} +1 -1
- package/dist/{tee-CoymtuKa.js → tee-DlyeS1Yd.js} +1 -1
- package/dist/{touch-C4pyouV6.js → touch-DVzPgqSy.js} +1 -1
- package/dist/{tree-DfPczgli.js → tree-DHBQhXD7.js} +1 -1
- package/dist/{uniq-Dhsoj7Lk.js → uniq-CmmP6k_t.js} +1 -1
- package/dist/{unzip-CqIKZ8NK.js → unzip-BIOvH2jT.js} +1 -1
- package/dist/{wc-DBPO6xRf.js → wc-DfI1Q3lo.js} +1 -1
- package/dist/{wget-CYImxeOz.js → wget-Dd25MxcO.js} +1 -1
- package/dist/whoami-C_q-p-Vo.js +25 -0
- package/dist/{zip-TPdwPkrA.js → zip-Cc3IoNSB.js} +1 -1
- package/package.json +6 -3
- package/dist/index-BVIfyOAv.js +0 -8578
- package/dist/whoami-B1237V5e.js +0 -8
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ export { Sandbox } from './sandbox/index.js';
|
|
|
2
2
|
export type { SandboxOptions, RunOptions, CommandResult, SandboxCommands, SandboxFs, } from './sandbox/index.js';
|
|
3
3
|
export { Kernel } from './kernel/index.js';
|
|
4
4
|
export type { VirtualRequest, VirtualResponse, VirtualRequestHandler } from './kernel/index.js';
|
|
5
|
+
export { NetworkStack } from './kernel/network/index.js';
|
|
6
|
+
export type { IPAddress, SocketType, SocketAddress, NetworkInterface as INetworkInterface, RouteEntry, NetworkTunnel, TunnelType, } from './kernel/network/index.js';
|
|
7
|
+
export { VETHPair } from './kernel/network/tunnel/VETHPair.js';
|
|
8
|
+
export { WebSocketTunnel } from './kernel/network/tunnel/WebSocketTunnel.js';
|
|
9
|
+
export { Bridge } from './kernel/network/Bridge.js';
|
|
5
10
|
export { VFS, VFSError, ErrorCode } from './kernel/vfs/index.js';
|
|
6
11
|
export { getMimeType, getFileCategory, isBinaryMime } from './kernel/vfs/index.js';
|
|
7
12
|
export { NativeFsProvider } from './kernel/vfs/index.js';
|
|
@@ -12,6 +17,8 @@ export type { BlobStore } from './kernel/storage/index.js';
|
|
|
12
17
|
export { PersistenceManager } from './kernel/persistence/index.js';
|
|
13
18
|
export { IndexedDBPersistenceBackend, MemoryPersistenceBackend } from './kernel/persistence/index.js';
|
|
14
19
|
export type { PersistenceBackend } from './kernel/persistence/index.js';
|
|
20
|
+
export { serialize, deserialize } from './kernel/persistence/index.js';
|
|
21
|
+
export type { SerializedNode } from './kernel/persistence/index.js';
|
|
15
22
|
export { CommandRegistry, createDefaultRegistry } from './commands/registry.js';
|
|
16
23
|
export type { Command, CommandContext, CommandOutputStream, CommandInputStream, } from './commands/types.js';
|
|
17
24
|
export { createPsCommand } from './commands/system/ps.js';
|
|
@@ -21,10 +28,29 @@ export { createWatchCommand } from './commands/system/watch.js';
|
|
|
21
28
|
export { createHelpCommand } from './commands/system/help.js';
|
|
22
29
|
export { createNodeCommand } from './commands/system/node.js';
|
|
23
30
|
export { createCurlCommand } from './commands/net/curl.js';
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
31
|
+
export { createTunnelCommandV2 } from './commands/net/tunnel-v2.js';
|
|
32
|
+
export { createIfconfigCommand } from './commands/net/ifconfig.js';
|
|
33
|
+
export { createRouteCommand } from './commands/net/route.js';
|
|
34
|
+
export { createNetstatCommand } from './commands/net/netstat.js';
|
|
35
|
+
export { createHostCommand } from './commands/net/host.js';
|
|
36
|
+
export { createIPCommand } from './commands/net/ip.js';
|
|
37
|
+
export { createTunnelCommand } from './commands/net/tunnel.js';
|
|
38
|
+
export { createForwardCommand, createUnforwardCommand } from './commands/net/forward.js';
|
|
39
|
+
export { createPortsCommand } from './commands/net/ports.js';
|
|
40
|
+
export { createTestRegistryCommand } from './commands/net/test-registry.js';
|
|
41
|
+
export { createLifoPkgCommand, bootLifoPackages, rehydrateGlobalPackages } from './commands/system/lifo.js';
|
|
42
|
+
export { createNpmCommand, createNpxCommand } from './commands/system/npm.js';
|
|
43
|
+
export { createLogoutCommand } from './commands/system/logout.js';
|
|
44
|
+
export { createSystemctlCommand } from './commands/system/systemctl.js';
|
|
45
|
+
export { createNewtabCommand } from './commands/system/newtab.js';
|
|
46
|
+
export { ServiceManager } from './kernel/ServiceManager.js';
|
|
47
|
+
export type { ServiceInfo } from './kernel/ServiceManager.js';
|
|
48
|
+
export type { UnitFile } from './kernel/unit-parser.js';
|
|
49
|
+
export { parseUnitFile } from './kernel/unit-parser.js';
|
|
26
50
|
export { Shell } from './shell/Shell.js';
|
|
27
51
|
export { JobTable } from './shell/jobs.js';
|
|
52
|
+
export { ProcessRegistry } from './shell/ProcessRegistry.js';
|
|
53
|
+
export type { Process, SpawnOptions } from './shell/ProcessRegistry.js';
|
|
28
54
|
export type { ITerminal } from './terminal/ITerminal.js';
|
|
29
55
|
export { HeadlessTerminal } from './sandbox/HeadlessTerminal.js';
|
|
30
56
|
export { createLifoCommand, readLifoManifest } from './pkg/lifo-runtime.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,76 +1,101 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as s, B as r, n as o, o as t, q as m, s as n, t as d, u as c, v as i, w as C, C as l, x as E, y as T, z as B, A as g, D as N, E as R, G as I, H as L, I as H, F as P, J as y, K as k, L as S, M as b, N as M, O as f, P as u, Q as G, S as D, T as p, U as x, W as A, R as _, X as F, Y as U, Z as v, _ as w, $ as h, a0 as K, V as O, a1 as W, a2 as z, a3 as V, b as Y, a4 as J, a5 as j, a6 as q, a7 as Z, a8 as Q, a9 as X, aa as $, ab as aa, ac as ea, ad as sa, ae as ra, af as oa, ag as ta, ah as ma, ai as na, aj as da, ak as ca, al as ia, am as Ca, an as la, ao as Ea, ap as Ta, aq as Ba, ar as ga, as as Na, at as Ra, au as Ia, av as La, aw as Ha, ax as Pa, ay as ya, az as ka, aA as Sa, k as ba, e as Ma, aB as fa, c as ua, aC as Ga, aD as Da, i as pa, aE as xa, aF as Aa, aG as _a, aH as Fa, aI as Ua, aJ as va, aK as wa, aL as ha, aM as Ka, r as Oa, aN as Wa, aO as za, aP as Va } from "./index-Djm2onjx.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
3
|
+
s as BLUE,
|
|
4
4
|
r as BOLD,
|
|
5
5
|
o as BRIGHT_BLUE,
|
|
6
|
-
|
|
6
|
+
t as BRIGHT_CYAN,
|
|
7
7
|
m as BRIGHT_GREEN,
|
|
8
|
-
|
|
8
|
+
n as BRIGHT_MAGENTA,
|
|
9
9
|
d as BRIGHT_RED,
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
c as BRIGHT_YELLOW,
|
|
11
|
+
i as Bridge,
|
|
12
|
+
C as Buffer,
|
|
12
13
|
l as CHUNK_SIZE,
|
|
13
14
|
E as CHUNK_THRESHOLD,
|
|
14
|
-
|
|
15
|
+
T as CYAN,
|
|
15
16
|
B as CommandRegistry,
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
g as ContentStore,
|
|
18
|
+
N as DIM,
|
|
18
19
|
R as ErrorCode,
|
|
19
20
|
I as GREEN,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
U as
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
K as
|
|
42
|
-
O as
|
|
43
|
-
W as
|
|
44
|
-
|
|
45
|
-
V as
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
sa as
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
ia as
|
|
65
|
-
|
|
66
|
-
la as
|
|
67
|
-
Ea as
|
|
68
|
-
|
|
69
|
-
Ba as
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
Ra as
|
|
73
|
-
Ia as
|
|
74
|
-
|
|
75
|
-
|
|
21
|
+
L as HeadlessTerminal,
|
|
22
|
+
H as ITALIC,
|
|
23
|
+
P as IndexedDBBlobStore,
|
|
24
|
+
y as IndexedDBPersistenceBackend,
|
|
25
|
+
k as JobTable,
|
|
26
|
+
S as Kernel,
|
|
27
|
+
b as MAGENTA,
|
|
28
|
+
M as MemoryBlobStore,
|
|
29
|
+
f as MemoryPersistenceBackend,
|
|
30
|
+
u as NativeFsProvider,
|
|
31
|
+
G as NetworkStack,
|
|
32
|
+
D as PersistenceManager,
|
|
33
|
+
p as ProcessExitError,
|
|
34
|
+
x as ProcessRegistry,
|
|
35
|
+
A as RED,
|
|
36
|
+
_ as RESET,
|
|
37
|
+
F as Sandbox,
|
|
38
|
+
U as ServiceManager,
|
|
39
|
+
v as Shell,
|
|
40
|
+
w as UNDERLINE,
|
|
41
|
+
h as VETHPair,
|
|
42
|
+
K as VFS,
|
|
43
|
+
O as VFSError,
|
|
44
|
+
W as WHITE,
|
|
45
|
+
z as WebSocketTunnel,
|
|
46
|
+
V as YELLOW,
|
|
47
|
+
Y as basename,
|
|
48
|
+
J as blue,
|
|
49
|
+
j as bold,
|
|
50
|
+
q as bootLifoPackages,
|
|
51
|
+
Z as createCurlCommand,
|
|
52
|
+
Q as createDefaultRegistry,
|
|
53
|
+
X as createForwardCommand,
|
|
54
|
+
$ as createHelpCommand,
|
|
55
|
+
aa as createHostCommand,
|
|
56
|
+
ea as createIPCommand,
|
|
57
|
+
sa as createIfconfigCommand,
|
|
58
|
+
ra as createKillCommand,
|
|
59
|
+
oa as createLifoCommand,
|
|
60
|
+
ta as createLifoPkgCommand,
|
|
61
|
+
ma as createLogoutCommand,
|
|
62
|
+
na as createModuleMap,
|
|
63
|
+
da as createNetstatCommand,
|
|
64
|
+
ca as createNewtabCommand,
|
|
65
|
+
ia as createNodeCommand,
|
|
66
|
+
Ca as createNpmCommand,
|
|
67
|
+
la as createNpxCommand,
|
|
68
|
+
Ea as createPortsCommand,
|
|
69
|
+
Ta as createPsCommand,
|
|
70
|
+
Ba as createRouteCommand,
|
|
71
|
+
ga as createSystemctlCommand,
|
|
72
|
+
Na as createTestRegistryCommand,
|
|
73
|
+
Ra as createTopCommand,
|
|
74
|
+
Ia as createTunnelCommand,
|
|
75
|
+
La as createTunnelCommandV2,
|
|
76
|
+
Ha as createUnforwardCommand,
|
|
77
|
+
Pa as createWatchCommand,
|
|
78
|
+
ya as cyan,
|
|
79
|
+
ka as deserialize,
|
|
80
|
+
Sa as dim,
|
|
81
|
+
ba as dirname,
|
|
82
|
+
Ma as extname,
|
|
83
|
+
fa as getFileCategory,
|
|
84
|
+
ua as getMimeType,
|
|
85
|
+
Ga as green,
|
|
86
|
+
Da as hashBytes,
|
|
87
|
+
pa as isBinaryMime,
|
|
88
|
+
xa as join,
|
|
89
|
+
Aa as linkPackage,
|
|
90
|
+
_a as loadDevLinks,
|
|
91
|
+
Fa as magenta,
|
|
92
|
+
Ua as normalize,
|
|
93
|
+
va as parseUnitFile,
|
|
94
|
+
wa as readLifoManifest,
|
|
95
|
+
ha as red,
|
|
96
|
+
Ka as rehydrateGlobalPackages,
|
|
97
|
+
Oa as resolve,
|
|
98
|
+
Wa as serialize,
|
|
99
|
+
za as unlinkPackage,
|
|
100
|
+
Va as yellow
|
|
76
101
|
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { VFS } from './vfs/index.js';
|
|
2
|
+
import { CommandRegistry } from '../commands/registry.js';
|
|
3
|
+
export interface ServiceInfo {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
loaded: boolean;
|
|
7
|
+
active: 'active' | 'inactive' | 'failed' | 'activating';
|
|
8
|
+
sub: 'running' | 'dead' | 'exited' | 'start-pre' | 'auto-restart';
|
|
9
|
+
enabled: boolean;
|
|
10
|
+
pid: number | null;
|
|
11
|
+
startedAt: number | null;
|
|
12
|
+
exitCode: number | null;
|
|
13
|
+
}
|
|
14
|
+
export declare class ServiceManager {
|
|
15
|
+
private vfs;
|
|
16
|
+
private registry;
|
|
17
|
+
private defaultEnv;
|
|
18
|
+
private services;
|
|
19
|
+
private unitCache;
|
|
20
|
+
constructor(vfs: VFS, registry: CommandRegistry, defaultEnv: Record<string, string>);
|
|
21
|
+
/** Reload unit files from disk */
|
|
22
|
+
daemonReload(): void;
|
|
23
|
+
private resolveUnit;
|
|
24
|
+
private baseName;
|
|
25
|
+
start(name: string): Promise<{
|
|
26
|
+
ok: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
}>;
|
|
29
|
+
private handleServiceExit;
|
|
30
|
+
stop(name: string): Promise<{
|
|
31
|
+
ok: boolean;
|
|
32
|
+
message: string;
|
|
33
|
+
}>;
|
|
34
|
+
restart(name: string): Promise<{
|
|
35
|
+
ok: boolean;
|
|
36
|
+
message: string;
|
|
37
|
+
}>;
|
|
38
|
+
status(name: string): ServiceInfo;
|
|
39
|
+
enable(name: string): {
|
|
40
|
+
ok: boolean;
|
|
41
|
+
message: string;
|
|
42
|
+
};
|
|
43
|
+
disable(name: string): {
|
|
44
|
+
ok: boolean;
|
|
45
|
+
message: string;
|
|
46
|
+
};
|
|
47
|
+
private isEnabled;
|
|
48
|
+
listUnits(): ServiceInfo[];
|
|
49
|
+
bootEnabledServices(): Promise<void>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=ServiceManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceManager.d.ts","sourceRoot":"","sources":["../../src/kernel/ServiceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK/D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,YAAY,CAAC;IACxD,GAAG,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAmBD,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,SAAS,CAA+B;gBAEpC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMnF,kCAAkC;IAClC,YAAY,IAAI,IAAI;IAIpB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,QAAQ;IAIV,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqFpE,OAAO,CAAC,iBAAiB;IAgBnB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IA+C7D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAStE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAwDjC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAiBtD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAiBvD,OAAO,CAAC,SAAS;IAIjB,SAAS,IAAI,WAAW,EAAE;IA2BpB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAW3C"}
|
package/dist/kernel/index.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { VFS } from './vfs/index.js';
|
|
2
2
|
import { PersistenceBackend } from './persistence/backends.js';
|
|
3
|
+
import { ProcessRegistry } from '../shell/ProcessRegistry.js';
|
|
4
|
+
import { NetworkStack } from './network/NetworkStack.js';
|
|
5
|
+
import { PortBridge } from './network/PortBridge.js';
|
|
6
|
+
import { ServiceManager } from './ServiceManager.js';
|
|
7
|
+
import { CommandRegistry } from '../commands/registry.js';
|
|
3
8
|
export interface VirtualRequest {
|
|
4
9
|
method: string;
|
|
5
10
|
url: string;
|
|
@@ -15,12 +20,18 @@ export type VirtualRequestHandler = (req: VirtualRequest, res: VirtualResponse)
|
|
|
15
20
|
export declare class Kernel {
|
|
16
21
|
vfs: VFS;
|
|
17
22
|
portRegistry: Map<number, VirtualRequestHandler>;
|
|
23
|
+
portBridge: PortBridge;
|
|
24
|
+
processRegistry: ProcessRegistry;
|
|
25
|
+
networkStack: NetworkStack;
|
|
26
|
+
serviceManager: ServiceManager | null;
|
|
18
27
|
private persistence;
|
|
19
28
|
constructor(backend?: PersistenceBackend);
|
|
20
29
|
boot(options?: {
|
|
21
30
|
persist?: boolean;
|
|
22
31
|
}): Promise<void>;
|
|
23
32
|
initFilesystem(): void;
|
|
33
|
+
initServiceManager(registry: CommandRegistry, defaultEnv: Record<string, string>): void;
|
|
34
|
+
bootServices(): Promise<void>;
|
|
24
35
|
getDefaultEnv(): Record<string, string>;
|
|
25
36
|
}
|
|
26
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAKrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kernel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAKrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AA2C/D,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;AAExF,qBAAa,MAAM;IAClB,GAAG,EAAE,GAAG,CAAC;IACT,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAa;IAC7D,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAQ;IAC7C,OAAO,CAAC,WAAW,CAAqB;gBAE5B,OAAO,CAAC,EAAE,kBAAkB;IAUlC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B1D,cAAc,IAAI,IAAI;IA6DtB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjF,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;CAWvC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { Packet } from './types.js';
|
|
2
|
+
import { NetworkInterface } from './NetworkInterface.js';
|
|
3
|
+
import { NetworkStack } from './NetworkStack.js';
|
|
4
|
+
/**
|
|
5
|
+
* Bridge Device - Virtual Network Switch (like Linux bridge)
|
|
6
|
+
*
|
|
7
|
+
* Acts as a Layer 2 switch, forwarding packets between connected interfaces.
|
|
8
|
+
* Similar to Linux 'ip link add br0 type bridge' or Docker's docker0 bridge.
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* ip link add br0 type bridge
|
|
12
|
+
* ip link set veth0 master br0
|
|
13
|
+
* ip link set veth1 master br0
|
|
14
|
+
*/
|
|
15
|
+
export declare class Bridge {
|
|
16
|
+
name: string;
|
|
17
|
+
interface: NetworkInterface;
|
|
18
|
+
state: 'up' | 'down';
|
|
19
|
+
private ports;
|
|
20
|
+
private macTable;
|
|
21
|
+
private ageingTime;
|
|
22
|
+
private lastSeen;
|
|
23
|
+
constructor(name: string, _networkStack: NetworkStack, namespace?: string);
|
|
24
|
+
/**
|
|
25
|
+
* Bring bridge up
|
|
26
|
+
*/
|
|
27
|
+
up(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Bring bridge down
|
|
30
|
+
*/
|
|
31
|
+
down(): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Add interface to bridge (make it a bridge port)
|
|
34
|
+
*/
|
|
35
|
+
addPort(iface: NetworkInterface): void;
|
|
36
|
+
/**
|
|
37
|
+
* Remove interface from bridge
|
|
38
|
+
*/
|
|
39
|
+
removePort(ifaceName: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Get all bridge ports
|
|
42
|
+
*/
|
|
43
|
+
getPorts(): NetworkInterface[];
|
|
44
|
+
/**
|
|
45
|
+
* Check if interface is a bridge port
|
|
46
|
+
*/
|
|
47
|
+
hasPort(ifaceName: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Forward packet through bridge (like a network switch)
|
|
50
|
+
*
|
|
51
|
+
* This is the core bridge logic:
|
|
52
|
+
* 1. Learn source MAC address
|
|
53
|
+
* 2. Look up destination MAC in forwarding table
|
|
54
|
+
* 3. Forward to specific port or flood to all ports
|
|
55
|
+
*/
|
|
56
|
+
forward(packet: Packet, ingressPort: string): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Learn MAC address -> port mapping
|
|
59
|
+
*/
|
|
60
|
+
private learn;
|
|
61
|
+
/**
|
|
62
|
+
* Forward packet to specific port
|
|
63
|
+
*/
|
|
64
|
+
private forwardToPort;
|
|
65
|
+
/**
|
|
66
|
+
* Flood packet to all ports except ingress
|
|
67
|
+
*/
|
|
68
|
+
private flood;
|
|
69
|
+
/**
|
|
70
|
+
* Age out old MAC table entries
|
|
71
|
+
*/
|
|
72
|
+
private ageEntries;
|
|
73
|
+
/**
|
|
74
|
+
* Get source MAC from packet (simplified)
|
|
75
|
+
*/
|
|
76
|
+
private getSourceMAC;
|
|
77
|
+
/**
|
|
78
|
+
* Get destination MAC from packet (simplified)
|
|
79
|
+
*/
|
|
80
|
+
private getDestMAC;
|
|
81
|
+
/**
|
|
82
|
+
* Show bridge MAC address table
|
|
83
|
+
*/
|
|
84
|
+
showFdb(): string[];
|
|
85
|
+
/**
|
|
86
|
+
* Get bridge status string
|
|
87
|
+
*/
|
|
88
|
+
toString(): string;
|
|
89
|
+
/**
|
|
90
|
+
* Get detailed bridge info
|
|
91
|
+
*/
|
|
92
|
+
getInfo(): string[];
|
|
93
|
+
/**
|
|
94
|
+
* Set ageing time
|
|
95
|
+
*/
|
|
96
|
+
setAgeingTime(seconds: number): void;
|
|
97
|
+
/**
|
|
98
|
+
* Clear MAC table
|
|
99
|
+
*/
|
|
100
|
+
clearFdb(): void;
|
|
101
|
+
/**
|
|
102
|
+
* Generate MAC address for bridge
|
|
103
|
+
*/
|
|
104
|
+
private generateBridgeMAC;
|
|
105
|
+
/**
|
|
106
|
+
* Get statistics
|
|
107
|
+
*/
|
|
108
|
+
getStats(): import('./types.js').InterfaceStats;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=Bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bridge.d.ts","sourceRoot":"","sources":["../../../src/kernel/network/Bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;GAUG;AACH,qBAAa,MAAM;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,gBAAgB,CAAC;IAC5B,KAAK,EAAE,IAAI,GAAG,MAAM,CAAU;IAG9B,OAAO,CAAC,KAAK,CAAuC;IAGpD,OAAO,CAAC,QAAQ,CAA6B;IAG7C,OAAO,CAAC,UAAU,CAAO;IAGzB,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,SAAY;IAQ5E;;OAEG;IACG,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;IAczB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAYtC;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAkBtC;;OAEG;IACH,QAAQ,IAAI,gBAAgB,EAAE;IAI9B;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAInC;;;;;;;OAOG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjE;;OAEG;IACH,OAAO,CAAC,KAAK;IAQb;;OAEG;YACW,aAAa;IAe3B;;OAEG;YACW,KAAK;IAoBnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,UAAU;IAMlB;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE;IAuBnB;;OAEG;IACH,QAAQ,IAAI,MAAM;IAQlB;;OAEG;IACH,OAAO,IAAI,MAAM,EAAE;IAwBnB;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAKhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,QAAQ;CAGT"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { DNSRecord, DNSRecordType } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* DNS resolver with caching
|
|
4
|
+
* Supports both local records and external resolution
|
|
5
|
+
*/
|
|
6
|
+
export declare class DNSResolver {
|
|
7
|
+
private cache;
|
|
8
|
+
private hosts;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Add static host entry
|
|
12
|
+
*/
|
|
13
|
+
addHost(hostname: string, ip: string): void;
|
|
14
|
+
/**
|
|
15
|
+
* Remove host entry
|
|
16
|
+
*/
|
|
17
|
+
removeHost(hostname: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Get host IP
|
|
20
|
+
*/
|
|
21
|
+
getHost(hostname: string): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Add DNS record to cache
|
|
24
|
+
*/
|
|
25
|
+
addRecord(record: DNSRecord): void;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve hostname to IP address
|
|
28
|
+
*/
|
|
29
|
+
resolve(hostname: string, type?: DNSRecordType): Promise<string>;
|
|
30
|
+
/**
|
|
31
|
+
* Lookup DNS record in cache
|
|
32
|
+
*/
|
|
33
|
+
lookup(name: string, type?: DNSRecordType): DNSRecord | null;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve using external DNS (browser DNS-over-HTTPS or real DNS)
|
|
36
|
+
*/
|
|
37
|
+
private resolveExternal;
|
|
38
|
+
/**
|
|
39
|
+
* Reverse lookup (IP to hostname)
|
|
40
|
+
*/
|
|
41
|
+
reverseLookup(ip: string): string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Clear DNS cache
|
|
44
|
+
*/
|
|
45
|
+
clearCache(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get all cached records
|
|
48
|
+
*/
|
|
49
|
+
getCachedRecords(): DNSRecord[];
|
|
50
|
+
/**
|
|
51
|
+
* Load /etc/hosts file
|
|
52
|
+
*/
|
|
53
|
+
loadHostsFile(content: string): void;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=DNSResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DNSResolver.d.ts","sourceRoot":"","sources":["../../../src/kernel/network/DNSResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,KAAK,CAA6B;;IAQ1C;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAU3C;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI7C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IASlC;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,aAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3E;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,aAAmB,GAAG,SAAS,GAAG,IAAI;IA0BjE;;OAEG;YACW,eAAe;IAkC7B;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASxC;;OAEG;IACH,UAAU,IAAI,IAAI;IAYlB;;OAEG;IACH,gBAAgB,IAAI,SAAS,EAAE;IAQ/B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAmBrC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { NetworkInterface as INetworkInterface, InterfaceState, InterfaceStats, IPAddress, Packet } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Virtual network interface implementation
|
|
4
|
+
* Represents a network device like eth0, lo, tun0, etc.
|
|
5
|
+
*/
|
|
6
|
+
export declare class NetworkInterface implements INetworkInterface {
|
|
7
|
+
name: string;
|
|
8
|
+
type: 'loopback' | 'ethernet' | 'tunnel';
|
|
9
|
+
state: InterfaceState;
|
|
10
|
+
mtu: number;
|
|
11
|
+
addresses: IPAddress[];
|
|
12
|
+
mac?: string;
|
|
13
|
+
stats: InterfaceStats;
|
|
14
|
+
namespace: string;
|
|
15
|
+
private packetQueue;
|
|
16
|
+
private listeners;
|
|
17
|
+
constructor(name: string, type: 'loopback' | 'ethernet' | 'tunnel', namespace: string, options?: {
|
|
18
|
+
mtu?: number;
|
|
19
|
+
mac?: string;
|
|
20
|
+
addresses?: IPAddress[];
|
|
21
|
+
});
|
|
22
|
+
/**
|
|
23
|
+
* Bring interface up
|
|
24
|
+
*/
|
|
25
|
+
up(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Bring interface down
|
|
28
|
+
*/
|
|
29
|
+
down(): void;
|
|
30
|
+
/**
|
|
31
|
+
* Add IP address to interface
|
|
32
|
+
*/
|
|
33
|
+
addAddress(address: IPAddress): void;
|
|
34
|
+
/**
|
|
35
|
+
* Remove IP address from interface
|
|
36
|
+
*/
|
|
37
|
+
removeAddress(address: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Check if interface has address
|
|
40
|
+
*/
|
|
41
|
+
hasAddress(address: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Send packet through interface
|
|
44
|
+
*/
|
|
45
|
+
send(packet: Packet): void;
|
|
46
|
+
/**
|
|
47
|
+
* Receive packet on interface
|
|
48
|
+
*/
|
|
49
|
+
receive(packet: Packet): void;
|
|
50
|
+
/**
|
|
51
|
+
* Register packet listener
|
|
52
|
+
*/
|
|
53
|
+
onPacket(listener: (packet: Packet) => void): void;
|
|
54
|
+
/**
|
|
55
|
+
* Emit packet to all listeners
|
|
56
|
+
*/
|
|
57
|
+
private emit;
|
|
58
|
+
/**
|
|
59
|
+
* Get next packet from queue
|
|
60
|
+
*/
|
|
61
|
+
nextPacket(): Packet | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Generate random MAC address
|
|
64
|
+
*/
|
|
65
|
+
private generateMAC;
|
|
66
|
+
/**
|
|
67
|
+
* Get interface info as string (for ifconfig)
|
|
68
|
+
*/
|
|
69
|
+
toString(): string;
|
|
70
|
+
/**
|
|
71
|
+
* Format bytes for display
|
|
72
|
+
*/
|
|
73
|
+
private formatBytes;
|
|
74
|
+
/**
|
|
75
|
+
* Set MTU (Maximum Transmission Unit)
|
|
76
|
+
*/
|
|
77
|
+
setMTU(mtu: number): void;
|
|
78
|
+
/**
|
|
79
|
+
* Get interface statistics
|
|
80
|
+
*/
|
|
81
|
+
getStats(): InterfaceStats;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=NetworkInterface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkInterface.d.ts","sourceRoot":"","sources":["../../../src/kernel/network/NetworkInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,IAAI,iBAAiB,EACrC,cAAc,EACd,cAAc,EACd,SAAS,EACT,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,SAAS,CAAoC;gBAGnD,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,EACxC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;KACzB;IAqBH;;OAEG;IACH,EAAE,IAAI,IAAI;IAIV;;OAEG;IACH,IAAI,IAAI,IAAI;IAIZ;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,GAAG,IAAI;IAUpC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAuB1B;;OAEG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAY7B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIlD;;OAEG;IACH,OAAO,CAAC,IAAI;IAUZ;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,QAAQ,IAAI,MAAM;IA8BlB;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIzB;;OAEG;IACH,QAAQ,IAAI,cAAc;CAG3B"}
|