typescript-virtual-container 1.4.6 → 1.4.7
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/.vscode/settings.json +1 -0
- package/builds/self-standalone.js +296 -296
- package/builds/self-standalone.js.map +4 -4
- package/builds/standalone-wo-sftp.js +160 -160
- package/builds/standalone-wo-sftp.js.map +4 -4
- package/builds/standalone.cjs +156 -156
- package/builds/standalone.cjs.map +4 -4
- package/dist/SSHMimic/exec.d.ts.map +1 -1
- package/dist/SSHMimic/exec.js +0 -1
- package/dist/SSHMimic/exec.js.map +1 -1
- package/dist/SSHMimic/index.js +1 -1
- package/dist/SSHMimic/index.js.map +1 -1
- package/dist/SSHMimic/sftp.d.ts.map +1 -1
- package/dist/SSHMimic/sftp.js +0 -6
- package/dist/SSHMimic/sftp.js.map +1 -1
- package/dist/VirtualFileSystem/index.d.ts +68 -0
- package/dist/VirtualFileSystem/index.d.ts.map +1 -1
- package/dist/VirtualFileSystem/index.js +213 -3
- package/dist/VirtualFileSystem/index.js.map +1 -1
- package/dist/VirtualFileSystem/internalTypes.d.ts +4 -0
- package/dist/VirtualFileSystem/internalTypes.d.ts.map +1 -1
- package/dist/VirtualFileSystem/journal.d.ts +47 -0
- package/dist/VirtualFileSystem/journal.d.ts.map +1 -0
- package/dist/VirtualFileSystem/journal.js +178 -0
- package/dist/VirtualFileSystem/journal.js.map +1 -0
- package/dist/VirtualShell/shell.js +4 -4
- package/dist/VirtualShell/shell.js.map +1 -1
- package/dist/commands/man.d.ts.map +1 -1
- package/dist/commands/man.js +2 -1
- package/dist/commands/man.js.map +1 -1
- package/dist/self-standalone.js +1 -1
- package/dist/self-standalone.js.map +1 -1
- package/package.json +1 -1
- package/src/SSHMimic/exec.ts +0 -1
- package/src/SSHMimic/index.ts +1 -1
- package/src/SSHMimic/sftp.ts +0 -6
- package/src/VirtualFileSystem/index.ts +222 -3
- package/src/VirtualFileSystem/internalTypes.ts +4 -0
- package/src/VirtualFileSystem/journal.ts +163 -0
- package/src/VirtualShell/shell.ts +4 -4
- package/src/commands/man.ts +3 -1
- package/src/self-standalone.ts +1 -1
- package/builds/standalone.js +0 -491
- package/builds/standalone.js.map +0 -7
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
/** biome-ignore-all lint/style/useNamingConvention: NW ? */
|
|
1
2
|
import { EventEmitter } from "node:events";
|
|
2
3
|
import * as fsSync from "node:fs";
|
|
3
4
|
import * as path from "node:path";
|
|
4
5
|
import { gunzipSync, gzipSync } from "node:zlib";
|
|
5
6
|
import { decodeVfs, encodeVfs, isBinarySnapshot } from "./binaryPack";
|
|
7
|
+
import { appendJournalEntry, JournalOp, readJournal, truncateJournal } from "./journal";
|
|
6
8
|
import { getNode, getParentDirectory, normalizePath } from "./path";
|
|
7
9
|
// ── VirtualFileSystem ─────────────────────────────────────────────────────────
|
|
8
10
|
/**
|
|
@@ -32,6 +34,18 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
32
34
|
root;
|
|
33
35
|
mode;
|
|
34
36
|
snapshotFile;
|
|
37
|
+
/** Path to the WAL journal file (null in memory mode). */
|
|
38
|
+
journalFile;
|
|
39
|
+
/** Eviction threshold in bytes (0 = disabled). Files above this are purged after flush. */
|
|
40
|
+
evictionThreshold;
|
|
41
|
+
/** Max writes between forced flushes (0 = disabled). */
|
|
42
|
+
flushAfterNWrites;
|
|
43
|
+
/** Pending write counter since last checkpoint. */
|
|
44
|
+
_writesSinceFlush = 0;
|
|
45
|
+
/** NodeJS timer handle for periodic auto-flush (null = disabled or stopped). */
|
|
46
|
+
_flushTimer = null;
|
|
47
|
+
/** True if the VFS has unflushed changes. */
|
|
48
|
+
_dirty = false;
|
|
35
49
|
/** Active host-directory mounts: vPath → { hostPath, readOnly } */
|
|
36
50
|
mounts = new Map();
|
|
37
51
|
/** True when running in a browser environment (no host FS access). */
|
|
@@ -44,9 +58,26 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
44
58
|
throw new Error('VirtualFileSystem: "snapshotPath" is required when mode is "fs".');
|
|
45
59
|
}
|
|
46
60
|
this.snapshotFile = path.resolve(options.snapshotPath, "vfs-snapshot.vfsb");
|
|
61
|
+
this.journalFile = path.resolve(options.snapshotPath, "vfs-journal.bin");
|
|
62
|
+
this.evictionThreshold = options.evictionThresholdBytes ?? 64 * 1024; // 64 KB default
|
|
63
|
+
this.flushAfterNWrites = options.flushAfterNWrites ?? 500;
|
|
64
|
+
const intervalMs = options.flushIntervalMs ?? 30_000;
|
|
65
|
+
if (intervalMs > 0) {
|
|
66
|
+
this._flushTimer = setInterval(() => {
|
|
67
|
+
if (this._dirty)
|
|
68
|
+
void this._autoFlush();
|
|
69
|
+
}, intervalMs);
|
|
70
|
+
// Don't block process exit on this timer
|
|
71
|
+
if (typeof this._flushTimer === "object" && this._flushTimer !== null && "unref" in this._flushTimer) {
|
|
72
|
+
this._flushTimer.unref();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
47
75
|
}
|
|
48
76
|
else {
|
|
49
77
|
this.snapshotFile = null;
|
|
78
|
+
this.journalFile = null;
|
|
79
|
+
this.evictionThreshold = 0; // disabled in memory mode
|
|
80
|
+
this.flushAfterNWrites = 0;
|
|
50
81
|
}
|
|
51
82
|
this.root = this.makeDir("", 0o755);
|
|
52
83
|
}
|
|
@@ -88,6 +119,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
88
119
|
child = this.makeDir(part, mode);
|
|
89
120
|
current.children.set(part, child);
|
|
90
121
|
this.emit("dir:create", { path: builtPath, mode });
|
|
122
|
+
this._journal({ op: JournalOp.MKDIR, path: builtPath, mode });
|
|
91
123
|
}
|
|
92
124
|
else if (child.type !== "directory") {
|
|
93
125
|
throw new Error(`Cannot create directory '${builtPath}': path is a file.`);
|
|
@@ -106,8 +138,15 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
106
138
|
async restoreMirror() {
|
|
107
139
|
if (this.mode !== "fs" || !this.snapshotFile)
|
|
108
140
|
return;
|
|
109
|
-
if (!fsSync.existsSync(this.snapshotFile))
|
|
141
|
+
if (!fsSync.existsSync(this.snapshotFile)) {
|
|
142
|
+
// No snapshot yet — but replay journal if it exists (crash after writes, before first flush)
|
|
143
|
+
if (this.journalFile) {
|
|
144
|
+
const entries = readJournal(this.journalFile);
|
|
145
|
+
if (entries.length > 0)
|
|
146
|
+
this._replayJournal(entries);
|
|
147
|
+
}
|
|
110
148
|
return;
|
|
149
|
+
}
|
|
111
150
|
try {
|
|
112
151
|
const raw = fsSync.readFileSync(this.snapshotFile);
|
|
113
152
|
if (isBinarySnapshot(raw)) {
|
|
@@ -121,6 +160,12 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
121
160
|
console.info("[VirtualFileSystem] Migrating legacy JSON snapshot to binary format.");
|
|
122
161
|
}
|
|
123
162
|
this.emit("snapshot:restore", { path: this.snapshotFile });
|
|
163
|
+
// Replay WAL journal on top of the loaded snapshot
|
|
164
|
+
if (this.journalFile) {
|
|
165
|
+
const entries = readJournal(this.journalFile);
|
|
166
|
+
if (entries.length > 0)
|
|
167
|
+
this._replayJournal(entries);
|
|
168
|
+
}
|
|
124
169
|
}
|
|
125
170
|
catch (err) {
|
|
126
171
|
// Corrupt or unreadable snapshot — start fresh and warn
|
|
@@ -143,7 +188,14 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
143
188
|
fsSync.mkdirSync(dir, { recursive: true });
|
|
144
189
|
const binary = encodeVfs(this.root);
|
|
145
190
|
fsSync.writeFileSync(this.snapshotFile, binary);
|
|
191
|
+
// Checkpoint complete — truncate the journal (entries are now in the snapshot)
|
|
192
|
+
if (this.journalFile)
|
|
193
|
+
truncateJournal(this.journalFile);
|
|
194
|
+
this._dirty = false;
|
|
195
|
+
this._writesSinceFlush = 0;
|
|
146
196
|
this.emit("mirror:flush", { path: this.snapshotFile });
|
|
197
|
+
// Evict large files from RAM now that the snapshot is on disk
|
|
198
|
+
this.evictLargeFiles();
|
|
147
199
|
}
|
|
148
200
|
/** Returns the current persistence mode. */
|
|
149
201
|
getMode() {
|
|
@@ -155,6 +207,153 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
155
207
|
}
|
|
156
208
|
// ── Public filesystem API ─────────────────────────────────────────────────
|
|
157
209
|
/** Creates a directory (and any missing parents). */
|
|
210
|
+
// ── Auto-flush scheduler ──────────────────────────────────────────────────
|
|
211
|
+
/** Internal: flush triggered by timer or write-count threshold. */
|
|
212
|
+
async _autoFlush() {
|
|
213
|
+
if (!this._dirty)
|
|
214
|
+
return;
|
|
215
|
+
await this.flushMirror();
|
|
216
|
+
}
|
|
217
|
+
/** Mark VFS as having unflushed writes and trigger threshold flush if needed. */
|
|
218
|
+
_markDirty() {
|
|
219
|
+
this._dirty = true;
|
|
220
|
+
if (this.flushAfterNWrites > 0) {
|
|
221
|
+
this._writesSinceFlush++;
|
|
222
|
+
if (this._writesSinceFlush >= this.flushAfterNWrites) {
|
|
223
|
+
this._writesSinceFlush = 0;
|
|
224
|
+
void this._autoFlush();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Stop the automatic flush timer and perform a final checkpoint.
|
|
230
|
+
* Call this when shutting down to ensure all data is persisted.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```ts
|
|
234
|
+
* process.on("SIGINT", async () => {
|
|
235
|
+
* await shell.vfs.stopAutoFlush();
|
|
236
|
+
* process.exit(0);
|
|
237
|
+
* });
|
|
238
|
+
* ```
|
|
239
|
+
*/
|
|
240
|
+
async stopAutoFlush() {
|
|
241
|
+
if (this._flushTimer !== null) {
|
|
242
|
+
clearInterval(this._flushTimer);
|
|
243
|
+
this._flushTimer = null;
|
|
244
|
+
}
|
|
245
|
+
if (this._dirty)
|
|
246
|
+
await this.flushMirror();
|
|
247
|
+
}
|
|
248
|
+
// ── WAL Journal helpers ───────────────────────────────────────────────────
|
|
249
|
+
/** Set to true during journal replay to suppress re-journaling. */
|
|
250
|
+
_replayMode = false;
|
|
251
|
+
/** Append a journal entry if in fs mode and not replaying. */
|
|
252
|
+
_journal(entry) {
|
|
253
|
+
if (this.journalFile && !this._replayMode) {
|
|
254
|
+
appendJournalEntry(this.journalFile, entry);
|
|
255
|
+
this._markDirty();
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/** Replay a list of journal entries onto the in-memory tree. */
|
|
259
|
+
_replayJournal(entries) {
|
|
260
|
+
this._replayMode = true;
|
|
261
|
+
try {
|
|
262
|
+
for (const e of entries) {
|
|
263
|
+
try {
|
|
264
|
+
if (e.op === JournalOp.WRITE) {
|
|
265
|
+
this.writeFile(e.path, e.content ?? Buffer.alloc(0), { mode: e.mode });
|
|
266
|
+
}
|
|
267
|
+
else if (e.op === JournalOp.MKDIR) {
|
|
268
|
+
this.mkdir(e.path, e.mode);
|
|
269
|
+
}
|
|
270
|
+
else if (e.op === JournalOp.REMOVE) {
|
|
271
|
+
if (this.exists(e.path))
|
|
272
|
+
this.remove(e.path, { recursive: true });
|
|
273
|
+
}
|
|
274
|
+
else if (e.op === JournalOp.CHMOD) {
|
|
275
|
+
if (this.exists(e.path))
|
|
276
|
+
this.chmod(e.path, e.mode ?? 0o644);
|
|
277
|
+
}
|
|
278
|
+
else if (e.op === JournalOp.MOVE) {
|
|
279
|
+
if (this.exists(e.path) && e.dest)
|
|
280
|
+
this.move(e.path, e.dest);
|
|
281
|
+
}
|
|
282
|
+
else if (e.op === JournalOp.SYMLINK) {
|
|
283
|
+
if (e.dest)
|
|
284
|
+
this.symlink(e.dest, e.path);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
catch { /* ignore individual replay errors — best-effort */ }
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
finally {
|
|
291
|
+
this._replayMode = false;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
// ── RAM eviction ──────────────────────────────────────────────────────────
|
|
295
|
+
/**
|
|
296
|
+
* Walk the in-memory tree and evict file contents that exceed
|
|
297
|
+
* `evictionThreshold`. Called automatically after `flushMirror()`.
|
|
298
|
+
* Safe to call at any time — evicted files are reloaded on demand.
|
|
299
|
+
*/
|
|
300
|
+
evictLargeFiles() {
|
|
301
|
+
if (!this.snapshotFile || this.evictionThreshold === 0)
|
|
302
|
+
return;
|
|
303
|
+
if (!fsSync.existsSync(this.snapshotFile))
|
|
304
|
+
return;
|
|
305
|
+
this._evictDir(this.root);
|
|
306
|
+
}
|
|
307
|
+
_evictDir(dir) {
|
|
308
|
+
for (const node of dir.children.values()) {
|
|
309
|
+
if (node.type === "directory") {
|
|
310
|
+
this._evictDir(node);
|
|
311
|
+
}
|
|
312
|
+
else if (!node.evicted) {
|
|
313
|
+
const rawSize = node.compressed
|
|
314
|
+
? (node.size ?? node.content.length * 2) // estimate uncompressed
|
|
315
|
+
: node.content.length;
|
|
316
|
+
if (rawSize > this.evictionThreshold) {
|
|
317
|
+
node.size = rawSize;
|
|
318
|
+
node.content = Buffer.alloc(0); // free heap
|
|
319
|
+
node.evicted = true;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Reload a single evicted file node's content from the current snapshot.
|
|
326
|
+
* No-op if the node is not evicted.
|
|
327
|
+
*/
|
|
328
|
+
_reloadEvicted(node, normalizedPath) {
|
|
329
|
+
if (!node.evicted || !this.snapshotFile)
|
|
330
|
+
return;
|
|
331
|
+
if (!fsSync.existsSync(this.snapshotFile))
|
|
332
|
+
return;
|
|
333
|
+
try {
|
|
334
|
+
// Load and parse the snapshot to find this specific node
|
|
335
|
+
const raw = fsSync.readFileSync(this.snapshotFile);
|
|
336
|
+
const tmpRoot = decodeVfs(raw);
|
|
337
|
+
const parts = normalizedPath.split("/").filter(Boolean);
|
|
338
|
+
let cur = tmpRoot;
|
|
339
|
+
for (const part of parts) {
|
|
340
|
+
if (cur.type !== "directory")
|
|
341
|
+
return;
|
|
342
|
+
const next = cur.children.get(part);
|
|
343
|
+
if (!next)
|
|
344
|
+
return;
|
|
345
|
+
cur = next;
|
|
346
|
+
}
|
|
347
|
+
if (cur.type === "file") {
|
|
348
|
+
node.content = cur.content;
|
|
349
|
+
node.compressed = cur.compressed;
|
|
350
|
+
node.evicted = undefined;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
// Snapshot unreadable — leave evicted; caller will get empty content
|
|
355
|
+
}
|
|
356
|
+
}
|
|
158
357
|
// ── Mount API ─────────────────────────────────────────────────────────────
|
|
159
358
|
/**
|
|
160
359
|
* Mount a host directory into the VFS at `vPath`.
|
|
@@ -283,6 +482,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
283
482
|
parent.children.set(name, this.makeFile(name, storedContent, mode, shouldCompress));
|
|
284
483
|
}
|
|
285
484
|
this.emit("file:write", { path: normalized, size: storedContent.length });
|
|
485
|
+
this._journal({ op: JournalOp.WRITE, path: normalized, content: rawContent, mode });
|
|
286
486
|
}
|
|
287
487
|
/**
|
|
288
488
|
* Reads file content as a UTF-8 string.
|
|
@@ -301,6 +501,8 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
301
501
|
throw new Error(`Cannot read '${targetPath}': not a file.`);
|
|
302
502
|
}
|
|
303
503
|
const f = node;
|
|
504
|
+
if (f.evicted)
|
|
505
|
+
this._reloadEvicted(f, normalized);
|
|
304
506
|
const raw = f.compressed ? gunzipSync(f.content) : f.content;
|
|
305
507
|
this.emit("file:read", { path: normalized, size: raw.length });
|
|
306
508
|
return raw.toString("utf8");
|
|
@@ -319,6 +521,8 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
319
521
|
throw new Error(`Cannot read '${targetPath}': not a file.`);
|
|
320
522
|
}
|
|
321
523
|
const f = node;
|
|
524
|
+
if (f.evicted)
|
|
525
|
+
this._reloadEvicted(f, normalized);
|
|
322
526
|
const raw = f.compressed ? gunzipSync(f.content) : f.content;
|
|
323
527
|
this.emit("file:read", { path: normalized, size: raw.length });
|
|
324
528
|
return raw;
|
|
@@ -338,7 +542,9 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
338
542
|
}
|
|
339
543
|
/** Updates mode bits on a node. */
|
|
340
544
|
chmod(targetPath, mode) {
|
|
341
|
-
|
|
545
|
+
const normalized = normalizePath(targetPath);
|
|
546
|
+
getNode(this.root, normalized).mode = mode;
|
|
547
|
+
this._journal({ op: JournalOp.CHMOD, path: normalized, mode });
|
|
342
548
|
}
|
|
343
549
|
/** Returns metadata for a file or directory. */
|
|
344
550
|
stat(targetPath) {
|
|
@@ -384,7 +590,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
384
590
|
createdAt: f.createdAt,
|
|
385
591
|
updatedAt: f.updatedAt,
|
|
386
592
|
compressed: f.compressed,
|
|
387
|
-
size: f.content.length,
|
|
593
|
+
size: f.evicted ? (f.size ?? 0) : f.content.length,
|
|
388
594
|
};
|
|
389
595
|
}
|
|
390
596
|
const d = node;
|
|
@@ -505,6 +711,8 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
505
711
|
updatedAt: new Date(),
|
|
506
712
|
};
|
|
507
713
|
parent.children.set(name, symNode);
|
|
714
|
+
// Journal before emit
|
|
715
|
+
this._journal({ op: JournalOp.SYMLINK, path: normalizedLink, dest: normalizedTarget });
|
|
508
716
|
this.emit("symlink:create", {
|
|
509
717
|
link: normalizedLink,
|
|
510
718
|
target: normalizedTarget,
|
|
@@ -574,6 +782,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
574
782
|
const { parent, name } = getParentDirectory(this.root, normalized, false, () => { });
|
|
575
783
|
parent.children.delete(name);
|
|
576
784
|
this.emit("node:remove", { path: normalized });
|
|
785
|
+
this._journal({ op: JournalOp.REMOVE, path: normalized });
|
|
577
786
|
}
|
|
578
787
|
/** Moves or renames a node. */
|
|
579
788
|
move(fromPath, toPath) {
|
|
@@ -592,6 +801,7 @@ class VirtualFileSystem extends EventEmitter {
|
|
|
592
801
|
srcParent.children.delete(srcName);
|
|
593
802
|
node.name = destName;
|
|
594
803
|
destParent.children.set(destName, node);
|
|
804
|
+
this._journal({ op: JournalOp.MOVE, path: fromNormalized, dest: toNormalized });
|
|
595
805
|
}
|
|
596
806
|
// ── Snapshot serialisation ─────────────────────────────────────────────────
|
|
597
807
|
/**
|
|
@@ -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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"}
|
|
@@ -9,6 +9,10 @@ export interface InternalFileNode extends InternalBaseNode {
|
|
|
9
9
|
type: "file";
|
|
10
10
|
content: Buffer;
|
|
11
11
|
compressed: boolean;
|
|
12
|
+
/** When true, content has been purged from RAM. Reloaded from snapshot on demand. */
|
|
13
|
+
evicted?: true;
|
|
14
|
+
/** Byte length of the original (uncompressed) content — preserved when evicted. */
|
|
15
|
+
size?: number;
|
|
12
16
|
}
|
|
13
17
|
export interface InternalDirectoryNode extends InternalBaseNode {
|
|
14
18
|
type: "directory";
|
|
@@ -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;AAEpE,UAAU,gBAAgB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"internalTypes.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/internalTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;AAEpE,UAAU,gBAAgB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CAChB;AAED,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,MAAM,WAAW,qBAAsB,SAAQ,gBAAgB;IAC9D,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACpC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* journal.ts — Write-Ahead Log for VirtualFileSystem "fs" mode.
|
|
3
|
+
*
|
|
4
|
+
* Each mutating VFS operation is appended to `vfs-journal.bin` immediately.
|
|
5
|
+
* On `restoreMirror()` the base snapshot is loaded first, then the journal
|
|
6
|
+
* is replayed on top. On `flushMirror()` a new checkpoint is written and
|
|
7
|
+
* the journal is truncated.
|
|
8
|
+
*
|
|
9
|
+
* Entry format (binary, little-endian):
|
|
10
|
+
* [1B op] [2B path_len] [path bytes] [payload per op]
|
|
11
|
+
*
|
|
12
|
+
* Op codes:
|
|
13
|
+
* 0x01 WRITE — [4B content_len] [content bytes] [4B mode]
|
|
14
|
+
* 0x02 MKDIR — [4B mode]
|
|
15
|
+
* 0x03 REMOVE — (no payload)
|
|
16
|
+
* 0x04 CHMOD — [4B mode]
|
|
17
|
+
* 0x05 MOVE — [2B dest_len] [dest bytes]
|
|
18
|
+
* 0x06 SYMLINK — [2B target_len] [target bytes]
|
|
19
|
+
*/
|
|
20
|
+
/** biome-ignore-all lint/style/useNamingConvention: JournalOp modes */
|
|
21
|
+
export declare const JournalOp: {
|
|
22
|
+
readonly WRITE: 1;
|
|
23
|
+
readonly MKDIR: 2;
|
|
24
|
+
readonly REMOVE: 3;
|
|
25
|
+
readonly CHMOD: 4;
|
|
26
|
+
readonly MOVE: 5;
|
|
27
|
+
readonly SYMLINK: 6;
|
|
28
|
+
};
|
|
29
|
+
export type JournalOp = typeof JournalOp[keyof typeof JournalOp];
|
|
30
|
+
export interface JournalEntry {
|
|
31
|
+
op: JournalOp;
|
|
32
|
+
path: string;
|
|
33
|
+
content?: Buffer;
|
|
34
|
+
mode?: number;
|
|
35
|
+
dest?: string;
|
|
36
|
+
}
|
|
37
|
+
/** Serialise one entry to a Buffer. */
|
|
38
|
+
export declare function encodeEntry(e: JournalEntry): Buffer;
|
|
39
|
+
/** Parse all entries from a journal Buffer. Returns empty array on corrupt data. */
|
|
40
|
+
export declare function decodeJournal(buf: Buffer): JournalEntry[];
|
|
41
|
+
/** Append a single entry to the journal file (O_APPEND, atomic write). */
|
|
42
|
+
export declare function appendJournalEntry(journalPath: string, entry: JournalEntry): void;
|
|
43
|
+
/** Read and decode all entries from a journal file. Returns [] if file is absent/empty. */
|
|
44
|
+
export declare function readJournal(journalPath: string): JournalEntry[];
|
|
45
|
+
/** Delete the journal file (after a successful checkpoint). */
|
|
46
|
+
export declare function truncateJournal(journalPath: string): void;
|
|
47
|
+
//# sourceMappingURL=journal.d.ts.map
|
|
@@ -0,0 +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"}
|