typescript-virtual-container 1.4.7 → 1.4.9
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 +1 -2
- package/benchmark-results.txt +21 -21
- package/builds/self-standalone.js +979 -168
- package/builds/standalone-wo-sftp.js +982 -173
- package/builds/standalone.cjs +989 -179
- package/builds/web-full-api.min.js +0 -1
- package/builds/web.min.js +0 -1
- package/dist/Honeypot/index.d.ts +6 -0
- package/dist/Honeypot/index.d.ts.map +1 -1
- package/dist/Honeypot/index.js +20 -0
- package/dist/Honeypot/index.js.map +1 -1
- package/dist/SSHMimic/index.d.ts +6 -5
- package/dist/SSHMimic/index.d.ts.map +1 -1
- package/dist/SSHMimic/index.js +8 -5
- package/dist/SSHMimic/index.js.map +1 -1
- package/dist/SSHMimic/sftp.d.ts +1 -0
- package/dist/SSHMimic/sftp.d.ts.map +1 -1
- package/dist/SSHMimic/sftp.js.map +1 -1
- package/dist/VirtualFileSystem/binaryPack.d.ts.map +1 -1
- package/dist/VirtualFileSystem/binaryPack.js +21 -9
- package/dist/VirtualFileSystem/binaryPack.js.map +1 -1
- package/dist/VirtualFileSystem/index.d.ts +25 -0
- package/dist/VirtualFileSystem/index.d.ts.map +1 -1
- package/dist/VirtualFileSystem/index.js +152 -47
- package/dist/VirtualFileSystem/index.js.map +1 -1
- package/dist/VirtualFileSystem/internalTypes.d.ts +23 -4
- package/dist/VirtualFileSystem/internalTypes.d.ts.map +1 -1
- package/dist/VirtualFileSystem/journal.d.ts +1 -0
- package/dist/VirtualFileSystem/journal.d.ts.map +1 -1
- package/dist/VirtualFileSystem/journal.js.map +1 -1
- package/dist/VirtualFileSystem/path.js +1 -1
- package/dist/VirtualFileSystem/path.js.map +1 -1
- package/dist/VirtualShell/idleManager.d.ts +69 -0
- package/dist/VirtualShell/idleManager.d.ts.map +1 -0
- package/dist/VirtualShell/idleManager.js +110 -0
- package/dist/VirtualShell/idleManager.js.map +1 -0
- package/dist/VirtualShell/index.d.ts +41 -1
- package/dist/VirtualShell/index.d.ts.map +1 -1
- package/dist/VirtualShell/index.js +54 -1
- package/dist/VirtualShell/index.js.map +1 -1
- package/dist/VirtualUserManager/index.d.ts +4 -2
- package/dist/VirtualUserManager/index.d.ts.map +1 -1
- package/dist/VirtualUserManager/index.js +0 -1
- package/dist/VirtualUserManager/index.js.map +1 -1
- package/dist/commands/command-helpers.d.ts +5 -2
- package/dist/commands/command-helpers.d.ts.map +1 -1
- package/dist/commands/command-helpers.js.map +1 -1
- package/dist/commands/man.d.ts.map +1 -1
- package/dist/commands/man.js +5 -28
- package/dist/commands/man.js.map +1 -1
- package/dist/commands/manuals-bundle.d.ts +11 -0
- package/dist/commands/manuals-bundle.d.ts.map +1 -0
- package/dist/commands/manuals-bundle.js +898 -0
- package/dist/commands/manuals-bundle.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/linuxRootfs.d.ts +8 -1
- package/dist/modules/linuxRootfs.d.ts.map +1 -1
- package/dist/modules/linuxRootfs.js +47 -14
- package/dist/modules/linuxRootfs.js.map +1 -1
- package/dist/self-standalone.js +15 -0
- package/dist/self-standalone.js.map +1 -1
- package/dist/standalone.js +22 -0
- package/dist/standalone.js.map +1 -1
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/HoneyPot.html +9 -9
- package/docs/classes/IdleManager.html +162 -0
- package/docs/classes/SshClient.html +18 -18
- package/docs/classes/VirtualFileSystem.html +50 -33
- package/docs/classes/VirtualPackageManager.html +13 -13
- package/docs/classes/VirtualSftpServer.html +3 -3
- package/docs/classes/VirtualShell.html +47 -28
- package/docs/classes/VirtualSshServer.html +12 -7
- package/docs/classes/VirtualUserManager.html +30 -30
- package/docs/functions/assertDiff.html +2 -2
- package/docs/functions/diffSnapshots.html +2 -2
- package/docs/functions/formatDiff.html +2 -2
- package/docs/functions/getArg.html +3 -3
- package/docs/functions/getFlag.html +2 -2
- package/docs/functions/ifFlag.html +2 -2
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +4 -5
- package/docs/interfaces/AuditLogEntry.html +3 -3
- package/docs/interfaces/CommandContext.html +13 -13
- package/docs/interfaces/CommandResult.html +13 -13
- package/docs/interfaces/ExecStream.html +6 -6
- package/docs/interfaces/HoneyPotStats.html +5 -3
- package/docs/interfaces/IdleManagerOptions.html +7 -0
- package/docs/interfaces/InstalledPackage.html +11 -11
- package/docs/interfaces/NanoEditorSession.html +5 -5
- package/docs/interfaces/PackageDefinition.html +14 -14
- package/docs/interfaces/PackageFile.html +5 -5
- package/docs/interfaces/PasswordChallenge.html +16 -0
- package/docs/interfaces/RemoveOptions.html +3 -3
- package/docs/interfaces/ShellEnv.html +4 -4
- package/docs/interfaces/ShellModule.html +8 -8
- package/docs/interfaces/ShellProperties.html +5 -5
- package/docs/interfaces/ShellStream.html +7 -7
- package/docs/interfaces/SudoChallenge.html +9 -9
- package/docs/interfaces/VfsBaseNode.html +7 -7
- package/docs/interfaces/VfsDiff.html +6 -6
- package/docs/interfaces/VfsDiffEntry.html +4 -4
- package/docs/interfaces/VfsDiffModified.html +6 -6
- package/docs/interfaces/VfsDirectoryNode.html +8 -8
- package/docs/interfaces/VfsFileNode.html +9 -9
- package/docs/interfaces/VfsOptions.html +18 -4
- package/docs/interfaces/VfsSnapshot.html +3 -3
- package/docs/interfaces/VfsSnapshotBaseNode.html +4 -4
- package/docs/interfaces/VfsSnapshotDirectoryNode.html +5 -5
- package/docs/interfaces/VfsSnapshotFileNode.html +6 -6
- package/docs/interfaces/VirtualActiveSession.html +12 -0
- package/docs/interfaces/VirtualSftpServerOptions.html +7 -0
- package/docs/interfaces/VirtualShellVfsLike.html +15 -0
- package/docs/interfaces/VirtualShellVfsOptions.html +3 -0
- package/docs/interfaces/WriteFileOptions.html +4 -4
- package/docs/modules.html +1 -1
- package/docs/types/ArgParseOptions.html +4 -0
- package/docs/types/CommandMode.html +2 -2
- package/docs/types/CommandOutcome.html +2 -2
- package/docs/types/IdleState.html +1 -0
- package/docs/types/VfsNodeStats.html +2 -2
- package/docs/types/VfsNodeType.html +2 -2
- package/docs/types/VfsPersistenceMode.html +2 -2
- package/docs/types/VfsSnapshotNode.html +2 -2
- package/examples/web.min.js +0 -1
- package/package.json +13 -12
- package/scripts/generate-manuals-bundle.mjs +49 -0
- package/scripts/publish-package.sh +1 -1
- package/src/Honeypot/index.ts +24 -0
- package/src/SSHMimic/index.ts +9 -5
- package/src/SSHMimic/sftp.ts +6 -0
- package/src/VirtualFileSystem/binaryPack.ts +21 -9
- package/src/VirtualFileSystem/index.ts +151 -53
- package/src/VirtualFileSystem/internalTypes.ts +24 -4
- package/src/VirtualFileSystem/journal.ts +1 -0
- package/src/VirtualFileSystem/path.ts +1 -1
- package/src/VirtualShell/idleManager.ts +137 -0
- package/src/VirtualShell/index.ts +64 -1
- package/src/VirtualUserManager/index.ts +4 -2
- package/src/commands/command-helpers.ts +5 -1
- package/src/commands/man.ts +5 -37
- package/src/commands/manuals-bundle.ts +898 -0
- package/src/index.ts +7 -1
- package/src/modules/linuxRootfs.ts +58 -14
- package/src/self-standalone.ts +13 -0
- package/src/standalone.ts +23 -0
- package/typedoc.json +45 -0
- package/builds/self-standalone.js.map +0 -7
- package/builds/standalone-wo-sftp.js.map +0 -7
- package/builds/standalone.cjs.map +0 -7
- package/builds/web-full-api.min.js.map +0 -7
- package/builds/web.min.js.map +0 -7
|
@@ -83,18 +83,19 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
83
83
|
}
|
|
84
84
|
// ── Internal helpers ──────────────────────────────────────────────────────
|
|
85
85
|
makeDir(name, mode) {
|
|
86
|
-
const now =
|
|
86
|
+
const now = Date.now();
|
|
87
87
|
return {
|
|
88
88
|
type: "directory",
|
|
89
89
|
name,
|
|
90
90
|
mode,
|
|
91
91
|
createdAt: now,
|
|
92
92
|
updatedAt: now,
|
|
93
|
-
children:
|
|
93
|
+
children: Object.create(null),
|
|
94
|
+
_childCount: 0,
|
|
94
95
|
};
|
|
95
96
|
}
|
|
96
97
|
makeFile(name, content, mode, compressed) {
|
|
97
|
-
const now =
|
|
98
|
+
const now = Date.now();
|
|
98
99
|
return {
|
|
99
100
|
type: "file",
|
|
100
101
|
name,
|
|
@@ -105,6 +106,30 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
105
106
|
updatedAt: now,
|
|
106
107
|
};
|
|
107
108
|
}
|
|
109
|
+
makeStub(name, content, mode) {
|
|
110
|
+
const now = Date.now();
|
|
111
|
+
return { type: "stub", name, stubContent: content, mode, createdAt: now, updatedAt: now };
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Write a lazy stub — stores content as a plain string with no Buffer allocation.
|
|
115
|
+
* Use for static rootfs files that may never be read. On first `writeFile()`,
|
|
116
|
+
* the stub is promoted to a real `InternalFileNode`.
|
|
117
|
+
* Parent directories are created when missing.
|
|
118
|
+
*/
|
|
119
|
+
writeStub(targetPath, content, mode = 0o644) {
|
|
120
|
+
const normalized = normalizePath(targetPath);
|
|
121
|
+
const { parent, name } = getParentDirectory(this.root, normalized, true, (p) => this.mkdirRecursive(p, 0o755));
|
|
122
|
+
const existing = parent.children[name];
|
|
123
|
+
if (existing?.type === "directory") {
|
|
124
|
+
throw new Error(`Cannot write stub '${normalized}': path is a directory.`);
|
|
125
|
+
}
|
|
126
|
+
// Don't overwrite a real file or an already-promoted node
|
|
127
|
+
if (existing?.type === "file")
|
|
128
|
+
return;
|
|
129
|
+
if (!existing)
|
|
130
|
+
parent._childCount++;
|
|
131
|
+
parent.children[name] = this.makeStub(name, content, mode);
|
|
132
|
+
}
|
|
108
133
|
mkdirRecursive(targetPath, mode) {
|
|
109
134
|
const normalized = normalizePath(targetPath);
|
|
110
135
|
if (normalized === "/")
|
|
@@ -114,10 +139,11 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
114
139
|
let builtPath = "";
|
|
115
140
|
for (const part of parts) {
|
|
116
141
|
builtPath += `/${part}`;
|
|
117
|
-
let child = current.children
|
|
142
|
+
let child = current.children[part];
|
|
118
143
|
if (!child) {
|
|
119
144
|
child = this.makeDir(part, mode);
|
|
120
|
-
current.children
|
|
145
|
+
current.children[part] = child;
|
|
146
|
+
current._childCount++;
|
|
121
147
|
this.emit("dir:create", { path: builtPath, mode });
|
|
122
148
|
this._journal({ op: JournalOp.MKDIR, path: builtPath, mode });
|
|
123
149
|
}
|
|
@@ -245,7 +271,36 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
245
271
|
if (this._dirty)
|
|
246
272
|
await this.flushMirror();
|
|
247
273
|
}
|
|
248
|
-
|
|
274
|
+
/**
|
|
275
|
+
* Replace the entire root tree — used internally by `bootstrapLinuxRootfs`
|
|
276
|
+
* to hot-swap the static rootfs snapshot without going through importSnapshot
|
|
277
|
+
* (which would re-journal every node in fs mode).
|
|
278
|
+
* @internal
|
|
279
|
+
*/
|
|
280
|
+
importRootTree(root) {
|
|
281
|
+
const prev = this._replayMode;
|
|
282
|
+
this._replayMode = true;
|
|
283
|
+
try {
|
|
284
|
+
this.root = root;
|
|
285
|
+
}
|
|
286
|
+
finally {
|
|
287
|
+
this._replayMode = prev;
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
/** Serialise current tree to VFSB binary. Used for the static rootfs cache. */
|
|
291
|
+
encodeBinary() {
|
|
292
|
+
return encodeVfs(this.root);
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Release the in-memory VFS tree, freeing all InternalNode objects for GC.
|
|
296
|
+
* The tree MUST be restored via `importRootTree()` before any VFS operation.
|
|
297
|
+
* Called by IdleManager when freezing an idle shell.
|
|
298
|
+
* @internal
|
|
299
|
+
*/
|
|
300
|
+
releaseTree() {
|
|
301
|
+
// Replace root with a minimal stub — keeps the object alive but frees all children
|
|
302
|
+
this.root = this.makeDir("", 0o755);
|
|
303
|
+
}
|
|
249
304
|
/** Set to true during journal replay to suppress re-journaling. */
|
|
250
305
|
_replayMode = false;
|
|
251
306
|
/** Append a journal entry if in fs mode and not replaying. */
|
|
@@ -305,11 +360,11 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
305
360
|
this._evictDir(this.root);
|
|
306
361
|
}
|
|
307
362
|
_evictDir(dir) {
|
|
308
|
-
for (const node of dir.children
|
|
363
|
+
for (const node of Object.values(dir.children)) {
|
|
309
364
|
if (node.type === "directory") {
|
|
310
365
|
this._evictDir(node);
|
|
311
366
|
}
|
|
312
|
-
else if (!node.evicted) {
|
|
367
|
+
else if (node.type === "file" && !node.evicted) {
|
|
313
368
|
const rawSize = node.compressed
|
|
314
369
|
? (node.size ?? node.content.length * 2) // estimate uncompressed
|
|
315
370
|
: node.content.length;
|
|
@@ -319,6 +374,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
319
374
|
node.evicted = true;
|
|
320
375
|
}
|
|
321
376
|
}
|
|
377
|
+
// stubs: nothing to evict — content is already a plain string, not a Buffer
|
|
322
378
|
}
|
|
323
379
|
}
|
|
324
380
|
/**
|
|
@@ -339,7 +395,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
339
395
|
for (const part of parts) {
|
|
340
396
|
if (cur.type !== "directory")
|
|
341
397
|
return;
|
|
342
|
-
const next = cur.children
|
|
398
|
+
const next = cur.children[part];
|
|
343
399
|
if (!next)
|
|
344
400
|
return;
|
|
345
401
|
cur = next;
|
|
@@ -461,7 +517,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
461
517
|
}
|
|
462
518
|
const normalized = normalizePath(targetPath);
|
|
463
519
|
const { parent, name } = getParentDirectory(this.root, normalized, true, (p) => this.mkdirRecursive(p, 0o755));
|
|
464
|
-
const existing = parent.children
|
|
520
|
+
const existing = parent.children[name];
|
|
465
521
|
if (existing?.type === "directory") {
|
|
466
522
|
throw new Error(`Cannot write file '${normalized}': path is a directory.`);
|
|
467
523
|
}
|
|
@@ -471,15 +527,19 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
471
527
|
const shouldCompress = options.compress ?? false;
|
|
472
528
|
const storedContent = shouldCompress ? gzipSync(rawContent) : rawContent;
|
|
473
529
|
const mode = options.mode ?? 0o644;
|
|
474
|
-
if (existing) {
|
|
530
|
+
if (existing && existing.type === "file") {
|
|
531
|
+
// Update real file in place
|
|
475
532
|
const f = existing;
|
|
476
533
|
f.content = storedContent;
|
|
477
534
|
f.compressed = shouldCompress;
|
|
478
535
|
f.mode = mode;
|
|
479
|
-
f.updatedAt =
|
|
536
|
+
f.updatedAt = Date.now();
|
|
480
537
|
}
|
|
481
538
|
else {
|
|
482
|
-
|
|
539
|
+
// Create new real file — also promotes stubs (no _childCount change for stubs)
|
|
540
|
+
if (!existing)
|
|
541
|
+
parent._childCount++;
|
|
542
|
+
parent.children[name] = this.makeFile(name, storedContent, mode, shouldCompress);
|
|
483
543
|
}
|
|
484
544
|
this.emit("file:write", { path: normalized, size: storedContent.length });
|
|
485
545
|
this._journal({ op: JournalOp.WRITE, path: normalized, content: rawContent, mode });
|
|
@@ -497,6 +557,10 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
497
557
|
}
|
|
498
558
|
const normalized = normalizePath(targetPath);
|
|
499
559
|
const node = getNode(this.root, normalized);
|
|
560
|
+
if (node.type === "stub") {
|
|
561
|
+
this.emit("file:read", { path: normalized, size: node.stubContent.length });
|
|
562
|
+
return node.stubContent;
|
|
563
|
+
}
|
|
500
564
|
if (node.type !== "file") {
|
|
501
565
|
throw new Error(`Cannot read '${targetPath}': not a file.`);
|
|
502
566
|
}
|
|
@@ -517,6 +581,11 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
517
581
|
}
|
|
518
582
|
const normalized = normalizePath(targetPath);
|
|
519
583
|
const node = getNode(this.root, normalized);
|
|
584
|
+
if (node.type === "stub") {
|
|
585
|
+
const buf = Buffer.from(node.stubContent, "utf8");
|
|
586
|
+
this.emit("file:read", { path: normalized, size: buf.length });
|
|
587
|
+
return buf;
|
|
588
|
+
}
|
|
520
589
|
if (node.type !== "file") {
|
|
521
590
|
throw new Error(`Cannot read '${targetPath}': not a file.`);
|
|
522
591
|
}
|
|
@@ -580,6 +649,19 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
580
649
|
const normalized = normalizePath(targetPath);
|
|
581
650
|
const node = getNode(this.root, normalized);
|
|
582
651
|
const name = normalized === "/" ? "" : path.posix.basename(normalized);
|
|
652
|
+
if (node.type === "stub") {
|
|
653
|
+
const s = node;
|
|
654
|
+
return {
|
|
655
|
+
type: "file",
|
|
656
|
+
name,
|
|
657
|
+
path: normalized,
|
|
658
|
+
mode: s.mode,
|
|
659
|
+
createdAt: new Date(s.createdAt),
|
|
660
|
+
updatedAt: new Date(s.updatedAt),
|
|
661
|
+
compressed: false,
|
|
662
|
+
size: s.stubContent.length,
|
|
663
|
+
};
|
|
664
|
+
}
|
|
583
665
|
if (node.type === "file") {
|
|
584
666
|
const f = node;
|
|
585
667
|
return {
|
|
@@ -587,8 +669,8 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
587
669
|
name,
|
|
588
670
|
path: normalized,
|
|
589
671
|
mode: f.mode,
|
|
590
|
-
createdAt: f.createdAt,
|
|
591
|
-
updatedAt: f.updatedAt,
|
|
672
|
+
createdAt: new Date(f.createdAt),
|
|
673
|
+
updatedAt: new Date(f.updatedAt),
|
|
592
674
|
compressed: f.compressed,
|
|
593
675
|
size: f.evicted ? (f.size ?? 0) : f.content.length,
|
|
594
676
|
};
|
|
@@ -599,9 +681,9 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
599
681
|
name,
|
|
600
682
|
path: normalized,
|
|
601
683
|
mode: d.mode,
|
|
602
|
-
createdAt: d.createdAt,
|
|
603
|
-
updatedAt: d.updatedAt,
|
|
604
|
-
childrenCount: d.
|
|
684
|
+
createdAt: new Date(d.createdAt),
|
|
685
|
+
updatedAt: new Date(d.updatedAt),
|
|
686
|
+
childrenCount: d._childCount,
|
|
605
687
|
};
|
|
606
688
|
}
|
|
607
689
|
/** Lists direct children names of a directory (sorted). */
|
|
@@ -622,7 +704,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
622
704
|
if (node.type !== "directory") {
|
|
623
705
|
throw new Error(`Cannot list '${dirPath}': not a directory.`);
|
|
624
706
|
}
|
|
625
|
-
return
|
|
707
|
+
return Object.keys(node.children).sort();
|
|
626
708
|
}
|
|
627
709
|
/** Renders ASCII tree view of a directory hierarchy. */
|
|
628
710
|
tree(dirPath = "/") {
|
|
@@ -636,10 +718,10 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
636
718
|
}
|
|
637
719
|
renderTreeLines(dir, label) {
|
|
638
720
|
const lines = [label];
|
|
639
|
-
const entries =
|
|
721
|
+
const entries = Object.keys(dir.children).sort();
|
|
640
722
|
for (let i = 0; i < entries.length; i++) {
|
|
641
723
|
const name = entries[i];
|
|
642
|
-
const child = dir.children
|
|
724
|
+
const child = dir.children[name];
|
|
643
725
|
const isLast = i === entries.length - 1;
|
|
644
726
|
const connector = isLast ? "└── " : "├── ";
|
|
645
727
|
const nextPrefix = isLast ? " " : "│ ";
|
|
@@ -661,8 +743,10 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
661
743
|
computeUsage(node) {
|
|
662
744
|
if (node.type === "file")
|
|
663
745
|
return node.content.length;
|
|
746
|
+
if (node.type === "stub")
|
|
747
|
+
return node.stubContent.length;
|
|
664
748
|
let total = 0;
|
|
665
|
-
for (const child of node.children
|
|
749
|
+
for (const child of Object.values(node.children)) {
|
|
666
750
|
total += this.computeUsage(child);
|
|
667
751
|
}
|
|
668
752
|
return total;
|
|
@@ -676,7 +760,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
676
760
|
if (!f.compressed) {
|
|
677
761
|
f.content = gzipSync(f.content);
|
|
678
762
|
f.compressed = true;
|
|
679
|
-
f.updatedAt =
|
|
763
|
+
f.updatedAt = Date.now();
|
|
680
764
|
}
|
|
681
765
|
}
|
|
682
766
|
/** Decompresses a gzip-compressed file in place. */
|
|
@@ -688,7 +772,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
688
772
|
if (f.compressed) {
|
|
689
773
|
f.content = gunzipSync(f.content);
|
|
690
774
|
f.compressed = false;
|
|
691
|
-
f.updatedAt =
|
|
775
|
+
f.updatedAt = Date.now();
|
|
692
776
|
}
|
|
693
777
|
}
|
|
694
778
|
/**
|
|
@@ -707,10 +791,11 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
707
791
|
content: Buffer.from(normalizedTarget, "utf8"),
|
|
708
792
|
mode: 0o120777,
|
|
709
793
|
compressed: false,
|
|
710
|
-
createdAt:
|
|
711
|
-
updatedAt:
|
|
794
|
+
createdAt: Date.now(),
|
|
795
|
+
updatedAt: Date.now(),
|
|
712
796
|
};
|
|
713
|
-
parent.children
|
|
797
|
+
parent.children[name] = symNode;
|
|
798
|
+
parent._childCount++;
|
|
714
799
|
// Journal before emit
|
|
715
800
|
this._journal({ op: JournalOp.SYMLINK, path: normalizedLink, dest: normalizedTarget });
|
|
716
801
|
this.emit("symlink:create", {
|
|
@@ -775,12 +860,13 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
775
860
|
const node = getNode(this.root, normalized);
|
|
776
861
|
if (node.type === "directory") {
|
|
777
862
|
const dir = node;
|
|
778
|
-
if (!options.recursive && dir.
|
|
863
|
+
if (!options.recursive && dir._childCount > 0) {
|
|
779
864
|
throw new Error(`Directory '${normalized}' is not empty. Use recursive option.`);
|
|
780
865
|
}
|
|
781
866
|
}
|
|
782
867
|
const { parent, name } = getParentDirectory(this.root, normalized, false, () => { });
|
|
783
|
-
parent.children
|
|
868
|
+
delete parent.children[name];
|
|
869
|
+
parent._childCount--;
|
|
784
870
|
this.emit("node:remove", { path: normalized });
|
|
785
871
|
this._journal({ op: JournalOp.REMOVE, path: normalized });
|
|
786
872
|
}
|
|
@@ -798,9 +884,11 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
798
884
|
this.mkdirRecursive(path.posix.dirname(toNormalized), 0o755);
|
|
799
885
|
const { parent: destParent, name: destName } = getParentDirectory(this.root, toNormalized, false, () => { });
|
|
800
886
|
const { parent: srcParent, name: srcName } = getParentDirectory(this.root, fromNormalized, false, () => { });
|
|
801
|
-
srcParent.children
|
|
887
|
+
delete srcParent.children[srcName];
|
|
888
|
+
srcParent._childCount--;
|
|
802
889
|
node.name = destName;
|
|
803
|
-
destParent.children
|
|
890
|
+
destParent.children[destName] = node;
|
|
891
|
+
destParent._childCount++;
|
|
804
892
|
this._journal({ op: JournalOp.MOVE, path: fromNormalized, dest: toNormalized });
|
|
805
893
|
}
|
|
806
894
|
// ── Snapshot serialisation ─────────────────────────────────────────────────
|
|
@@ -815,17 +903,32 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
815
903
|
}
|
|
816
904
|
serializeDir(dir) {
|
|
817
905
|
const children = [];
|
|
818
|
-
for (const child of dir.children
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
906
|
+
for (const child of Object.values(dir.children)) {
|
|
907
|
+
if (child.type === "stub") {
|
|
908
|
+
// Serialize stub as a regular file node
|
|
909
|
+
children.push({
|
|
910
|
+
type: "file",
|
|
911
|
+
name: child.name,
|
|
912
|
+
mode: child.mode,
|
|
913
|
+
createdAt: new Date(child.createdAt).toISOString(),
|
|
914
|
+
updatedAt: new Date(child.updatedAt).toISOString(),
|
|
915
|
+
compressed: false,
|
|
916
|
+
contentBase64: Buffer.from(child.stubContent, "utf8").toString("base64"),
|
|
917
|
+
});
|
|
918
|
+
}
|
|
919
|
+
else if (child.type === "file") {
|
|
920
|
+
children.push(this.serializeFile(child));
|
|
921
|
+
}
|
|
922
|
+
else {
|
|
923
|
+
children.push(this.serializeDir(child));
|
|
924
|
+
}
|
|
822
925
|
}
|
|
823
926
|
return {
|
|
824
927
|
type: "directory",
|
|
825
928
|
name: dir.name,
|
|
826
929
|
mode: dir.mode,
|
|
827
|
-
createdAt: dir.createdAt.toISOString(),
|
|
828
|
-
updatedAt: dir.updatedAt.toISOString(),
|
|
930
|
+
createdAt: new Date(dir.createdAt).toISOString(),
|
|
931
|
+
updatedAt: new Date(dir.updatedAt).toISOString(),
|
|
829
932
|
children,
|
|
830
933
|
};
|
|
831
934
|
}
|
|
@@ -834,8 +937,8 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
834
937
|
type: "file",
|
|
835
938
|
name: file.name,
|
|
836
939
|
mode: file.mode,
|
|
837
|
-
createdAt: file.createdAt.toISOString(),
|
|
838
|
-
updatedAt: file.updatedAt.toISOString(),
|
|
940
|
+
createdAt: new Date(file.createdAt).toISOString(),
|
|
941
|
+
updatedAt: new Date(file.updatedAt).toISOString(),
|
|
839
942
|
compressed: file.compressed,
|
|
840
943
|
contentBase64: file.content.toString("base64"),
|
|
841
944
|
};
|
|
@@ -871,27 +974,29 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
871
974
|
type: "directory",
|
|
872
975
|
name,
|
|
873
976
|
mode: snap.mode,
|
|
874
|
-
createdAt:
|
|
875
|
-
updatedAt:
|
|
876
|
-
children:
|
|
977
|
+
createdAt: Date.parse(snap.createdAt),
|
|
978
|
+
updatedAt: Date.parse(snap.updatedAt),
|
|
979
|
+
children: Object.create(null),
|
|
980
|
+
_childCount: 0,
|
|
877
981
|
};
|
|
878
982
|
for (const child of snap.children) {
|
|
879
983
|
if (child.type === "file") {
|
|
880
984
|
const f = child;
|
|
881
|
-
dir.children
|
|
985
|
+
dir.children[f.name] = {
|
|
882
986
|
type: "file",
|
|
883
987
|
name: f.name,
|
|
884
988
|
mode: f.mode,
|
|
885
|
-
createdAt:
|
|
886
|
-
updatedAt:
|
|
989
|
+
createdAt: Date.parse(f.createdAt),
|
|
990
|
+
updatedAt: Date.parse(f.updatedAt),
|
|
887
991
|
compressed: f.compressed,
|
|
888
992
|
content: Buffer.from(f.contentBase64, "base64"),
|
|
889
|
-
}
|
|
993
|
+
};
|
|
890
994
|
}
|
|
891
995
|
else {
|
|
892
996
|
const sub = this.deserializeDir(child, child.name);
|
|
893
|
-
dir.children
|
|
997
|
+
dir.children[child.name] = sub;
|
|
894
998
|
}
|
|
999
|
+
dir._childCount++;
|
|
895
1000
|
}
|
|
896
1001
|
return dir;
|
|
897
1002
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VirtualFileSystem/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/VirtualFileSystem/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/** @internal */
|
|
2
|
+
export type InternalNode = InternalFileNode | InternalStubNode | InternalDirectoryNode;
|
|
2
3
|
interface InternalBaseNode {
|
|
3
4
|
name: string;
|
|
4
5
|
mode: number;
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
/** Unix timestamp in ms — avoids Date object overhead (~80 bytes each). */
|
|
7
|
+
createdAt: number;
|
|
8
|
+
/** Unix timestamp in ms. */
|
|
9
|
+
updatedAt: number;
|
|
7
10
|
}
|
|
11
|
+
/** @internal */
|
|
8
12
|
export interface InternalFileNode extends InternalBaseNode {
|
|
9
13
|
type: "file";
|
|
10
14
|
content: Buffer;
|
|
@@ -14,9 +18,24 @@ export interface InternalFileNode extends InternalBaseNode {
|
|
|
14
18
|
/** Byte length of the original (uncompressed) content — preserved when evicted. */
|
|
15
19
|
size?: number;
|
|
16
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Lazy stub — stores static rootfs file content as a plain string.
|
|
23
|
+
* No Buffer allocation until the file is actually read or written.
|
|
24
|
+
* On first write, promoted to a real InternalFileNode.
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
export interface InternalStubNode extends InternalBaseNode {
|
|
28
|
+
type: "stub";
|
|
29
|
+
/** Raw UTF-8 content — never compressed, never evicted. */
|
|
30
|
+
stubContent: string;
|
|
31
|
+
}
|
|
32
|
+
/** @internal */
|
|
17
33
|
export interface InternalDirectoryNode extends InternalBaseNode {
|
|
18
34
|
type: "directory";
|
|
19
|
-
|
|
35
|
+
/** Null-prototype object — avoids Map overhead (~40% less RAM per entry). */
|
|
36
|
+
children: Record<string, InternalNode>;
|
|
37
|
+
/** Cached child count — avoids O(n) Object.keys() on hot paths. */
|
|
38
|
+
_childCount: number;
|
|
20
39
|
}
|
|
21
40
|
export {};
|
|
22
41
|
//# sourceMappingURL=internalTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/internalTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/internalTypes.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;AAEvF,UAAU,gBAAgB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,gBAAgB;AAChB,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,qFAAqF;IACrF,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,gBAAgB;AAChB,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC9D,IAAI,EAAE,WAAW,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,uEAAuE;AAIvE,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAO,SAAS,CAAC;IACnB,IAAI,EAAK,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAI,MAAM,CAAC;IAChB,IAAI,CAAC,EAAI,MAAM,CAAC;CAChB;AAWD,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAsCnD;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CA6CzD;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAQjF;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAK/D;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEzD"}
|
|
1
|
+
{"version":3,"file":"journal.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/journal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,uEAAuE;AAIvE,eAAO,MAAM,SAAS;;;;;;;CAOZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEjE,gBAAgB;AAChB,MAAM,WAAW,YAAY;IAC5B,EAAE,EAAO,SAAS,CAAC;IACnB,IAAI,EAAK,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAI,MAAM,CAAC;IAChB,IAAI,CAAC,EAAI,MAAM,CAAC;CAChB;AAWD,uCAAuC;AACvC,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAsCnD;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CA6CzD;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAQjF;AAED,2FAA2F;AAC3F,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAK/D;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAEzD"}
|