@lifo-sh/core 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -0
- package/dist/awk-B6L8oRkp.js +123 -0
- package/dist/{basename-C33A_Zse.js → basename-CgA_lsvv.js} +1 -1
- package/dist/{cat-Crmqa4-2.js → cat-UKg6GIpI.js} +1 -1
- package/dist/{chmod-CcGyvoCX.js → chmod-DHB58pfa.js} +1 -1
- package/dist/{chown-CErsnGQX.js → chown-D1bGwvZd.js} +1 -1
- package/dist/commands/registry.d.ts.map +1 -1
- package/dist/commands/text/awk.d.ts.map +1 -1
- package/dist/commands/text/cut.d.ts.map +1 -1
- package/dist/commands/text/diff.d.ts.map +1 -1
- package/dist/commands/text/grep.d.ts.map +1 -1
- package/dist/commands/text/head.d.ts.map +1 -1
- package/dist/commands/text/nl.d.ts.map +1 -1
- package/dist/commands/text/rev.d.ts.map +1 -1
- package/dist/commands/text/sed.d.ts.map +1 -1
- package/dist/commands/text/sort.d.ts.map +1 -1
- package/dist/commands/text/tail.d.ts.map +1 -1
- package/dist/commands/text/uniq.d.ts.map +1 -1
- package/dist/commands/text/wc.d.ts.map +1 -1
- package/dist/commands/vcs/git.d.ts +4 -0
- package/dist/commands/vcs/git.d.ts.map +1 -0
- package/dist/{cp-CpjwiLUF.js → cp-hsOMjGjb.js} +1 -1
- package/dist/cut-BxA2sLod.js +65 -0
- package/dist/diff-BgH1-ECz.js +150 -0
- package/dist/{dirname-C5L53RA2.js → dirname-BsNcj76E.js} +1 -1
- package/dist/{du-B0shJpEL.js → du-Dz7i5Bf4.js} +1 -1
- package/dist/{file-C2epVYvH.js → file-CiWscEov.js} +1 -1
- package/dist/{find-DA-rpvsC.js → find-CWXxOQ3D.js} +1 -1
- package/dist/git-mHSHRpnj.js +603 -0
- package/dist/{grep-Bynq2w2E.js → grep-BQsxs32R.js} +33 -26
- package/dist/gunzip-DF-BdBEb.js +47 -0
- package/dist/{gzip-CkXnPp5J.js → gzip-lYiTGRe_.js} +4 -5
- package/dist/head-BtcClCUM.js +53 -0
- package/dist/{index-Be1wosKt.js → index-Do_xqri5.js} +2769 -1498
- package/dist/index.d.ts +11 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -45
- package/dist/kernel/index.d.ts +2 -1
- package/dist/kernel/index.d.ts.map +1 -1
- package/dist/kernel/persistence/PersistenceManager.d.ts +3 -1
- package/dist/kernel/persistence/PersistenceManager.d.ts.map +1 -1
- package/dist/kernel/persistence/backends.d.ts +22 -0
- package/dist/kernel/persistence/backends.d.ts.map +1 -0
- package/dist/kernel/persistence/index.d.ts +6 -0
- package/dist/kernel/persistence/index.d.ts.map +1 -0
- package/dist/kernel/persistence/serializer.d.ts +8 -0
- package/dist/kernel/persistence/serializer.d.ts.map +1 -1
- package/dist/kernel/storage/BlobStore.d.ts +31 -0
- package/dist/kernel/storage/BlobStore.d.ts.map +1 -0
- package/dist/kernel/storage/ContentStore.d.ts +52 -0
- package/dist/kernel/storage/ContentStore.d.ts.map +1 -0
- package/dist/kernel/storage/index.d.ts +7 -0
- package/dist/kernel/storage/index.d.ts.map +1 -0
- package/dist/kernel/vfs/VFS.d.ts +31 -3
- package/dist/kernel/vfs/VFS.d.ts.map +1 -1
- package/dist/kernel/vfs/index.d.ts +4 -1
- package/dist/kernel/vfs/index.d.ts.map +1 -1
- package/dist/kernel/vfs/providers/NativeFsProvider.d.ts +63 -0
- package/dist/kernel/vfs/providers/NativeFsProvider.d.ts.map +1 -0
- package/dist/kernel/vfs/types.d.ts +27 -0
- package/dist/kernel/vfs/types.d.ts.map +1 -1
- package/dist/{ls-CSeazevv.js → ls-BX03h4IP.js} +1 -1
- package/dist/{mkdir-B7p8krsP.js → mkdir-DGGZuAyh.js} +1 -1
- package/dist/{mktemp-88Nhvd7h.js → mktemp-C537o9DE.js} +1 -1
- package/dist/{mv-DRVvz9oK.js → mv-46W3dEtX.js} +1 -1
- package/dist/{nl-G2vK3rR3.js → nl-vZH6hOSG.js} +13 -10
- package/dist/node-compat/buffer.d.ts +29 -2
- package/dist/node-compat/buffer.d.ts.map +1 -1
- package/dist/node-compat/fs.d.ts +62 -0
- package/dist/node-compat/fs.d.ts.map +1 -1
- package/dist/{realpath-C-kisl-F.js → realpath-Ubp4BElh.js} +1 -1
- package/dist/rev-Dqg_gF2D.js +39 -0
- package/dist/{rm-BXSq9iqP.js → rm-FnbVRwGK.js} +1 -1
- package/dist/{rmdir-CWgZ6q8D.js → rmdir-B2a-CeUJ.js} +3 -3
- package/dist/sandbox/HeadlessTerminal.d.ts +2 -1
- package/dist/sandbox/HeadlessTerminal.d.ts.map +1 -1
- package/dist/sandbox/Sandbox.d.ts +31 -0
- package/dist/sandbox/Sandbox.d.ts.map +1 -1
- package/dist/sandbox/SandboxFs.d.ts +4 -0
- package/dist/sandbox/SandboxFs.d.ts.map +1 -1
- package/dist/sandbox/types.d.ts +22 -2
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/sed-BHijDEOD.js +95 -0
- package/dist/shell/Shell.d.ts +2 -2
- package/dist/shell/Shell.d.ts.map +1 -1
- package/dist/{sort-B7K83hAD.js → sort-CheGhnUV.js} +19 -14
- package/dist/{stat-C0qs7xMV.js → stat-YSBnw2tJ.js} +1 -1
- package/dist/tail-9Z1OE7L7.js +52 -0
- package/dist/{tar-mMS7gfb-.js → tar-Dc-wpdQT.js} +15 -16
- package/dist/{tee-B8bXFHbI.js → tee-C4QkabXH.js} +1 -1
- package/dist/terminal/ITerminal.d.ts +10 -0
- package/dist/terminal/ITerminal.d.ts.map +1 -0
- package/dist/{touch-CdAHKfLv.js → touch-BeFpZeqv.js} +1 -1
- package/dist/{tree-BiWLXiUu.js → tree-BiBsUSQR.js} +1 -1
- package/dist/uniq-BeGU0UTU.js +54 -0
- package/dist/{unzip-DP4I991d.js → unzip-SUXLk4bS.js} +18 -19
- package/dist/utils/mime.d.ts +4 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/wc-BLupYdzi.js +69 -0
- package/dist/{wget-DIPI0-I3.js → wget-ALEPUtGk.js} +1 -1
- package/dist/{zip-B_gQ6LXC.js → zip-V6SMbx7b.js} +11 -12
- package/package.json +37 -10
- package/dist/archive-D220So0m.js +0 -192
- package/dist/awk-rMPdpM91.js +0 -118
- package/dist/cut-GfN8py4j.js +0 -60
- package/dist/diff-2wbVWmCT.js +0 -129
- package/dist/gunzip-B9b1Vph1.js +0 -48
- package/dist/head-DZJVLF1k.js +0 -48
- package/dist/rev-9puwegeh.js +0 -34
- package/dist/sed-BRxd2DlZ.js +0 -90
- package/dist/tail-CYBTYnn3.js +0 -47
- package/dist/terminal/Terminal.d.ts +0 -13
- package/dist/terminal/Terminal.d.ts.map +0 -1
- package/dist/uniq-BZMOwoCc.js +0 -51
- package/dist/wc-CpE5K4ZI.js +0 -60
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { p
|
|
2
|
-
import { r as u, V as
|
|
3
|
-
const
|
|
1
|
+
import { p } from "./args-CG6b9cZt.js";
|
|
2
|
+
import { r as m, i as u, c as h, V as f } from "./index-Do_xqri5.js";
|
|
3
|
+
const w = {
|
|
4
4
|
"body-numbering": { type: "string", short: "b" },
|
|
5
5
|
"number-width": { type: "string", short: "w" }
|
|
6
|
-
},
|
|
7
|
-
const { flags:
|
|
6
|
+
}, $ = async (e) => {
|
|
7
|
+
const { flags: a, positional: n } = p(e.args, w), o = a["body-numbering"] || "t", l = parseInt(a["number-width"] || "6", 10);
|
|
8
8
|
let s;
|
|
9
9
|
if (n.length === 0 || n[0] === "-")
|
|
10
10
|
if (e.stdin)
|
|
@@ -13,11 +13,14 @@ const p = {
|
|
|
13
13
|
return e.stderr.write(`nl: missing operand
|
|
14
14
|
`), 1;
|
|
15
15
|
else {
|
|
16
|
-
const r =
|
|
16
|
+
const r = m(e.cwd, n[0]);
|
|
17
|
+
if (u(h(r)))
|
|
18
|
+
return e.stderr.write(`nl: ${n[0]}: binary file, skipping
|
|
19
|
+
`), 1;
|
|
17
20
|
try {
|
|
18
21
|
s = e.vfs.readFileString(r);
|
|
19
22
|
} catch (t) {
|
|
20
|
-
if (t instanceof
|
|
23
|
+
if (t instanceof f)
|
|
21
24
|
return e.stderr.write(`nl: ${n[0]}: ${t.message}
|
|
22
25
|
`), 1;
|
|
23
26
|
throw t;
|
|
@@ -31,9 +34,9 @@ const p = {
|
|
|
31
34
|
const t = i[r];
|
|
32
35
|
if (r === i.length - 1 && g && t === "")
|
|
33
36
|
break;
|
|
34
|
-
(
|
|
37
|
+
(o === "a" ? !0 : (
|
|
35
38
|
// all lines
|
|
36
|
-
|
|
39
|
+
o === "t" ? t.length > 0 : (
|
|
37
40
|
// non-empty (default)
|
|
38
41
|
!1
|
|
39
42
|
)
|
|
@@ -44,5 +47,5 @@ const p = {
|
|
|
44
47
|
return 0;
|
|
45
48
|
};
|
|
46
49
|
export {
|
|
47
|
-
|
|
50
|
+
$ as default
|
|
48
51
|
};
|
|
@@ -1,17 +1,44 @@
|
|
|
1
1
|
export declare class Buffer extends Uint8Array {
|
|
2
2
|
static from(value: string | Uint8Array | number[] | ArrayBuffer | ArrayLike<number> | Iterable<number>, encodingOrMapFn?: string | ((v: number, k: number) => number), _thisArg?: unknown): Buffer;
|
|
3
3
|
static alloc(size: number, fill?: number): Buffer;
|
|
4
|
+
static allocUnsafe(size: number): Buffer;
|
|
4
5
|
static isBuffer(obj: unknown): obj is Buffer;
|
|
5
6
|
static concat(list: (Uint8Array | Buffer)[], totalLength?: number): Buffer;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
static byteLength(str: string, encoding?: string): number;
|
|
8
|
+
toString(encoding?: string, start?: number, end?: number): string;
|
|
9
|
+
write(str: string, offset?: number, length?: number, encoding?: string): number;
|
|
8
10
|
toJSON(): {
|
|
9
11
|
type: 'Buffer';
|
|
10
12
|
data: number[];
|
|
11
13
|
};
|
|
12
14
|
copy(target: Buffer | Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
|
|
13
15
|
equals(other: Uint8Array): boolean;
|
|
16
|
+
compare(other: Uint8Array): number;
|
|
14
17
|
slice(start?: number, end?: number): Buffer;
|
|
18
|
+
subarray(start?: number, end?: number): Buffer;
|
|
19
|
+
readUInt8(offset?: number): number;
|
|
20
|
+
readUInt16BE(offset?: number): number;
|
|
21
|
+
readUInt32BE(offset?: number): number;
|
|
22
|
+
readInt8(offset?: number): number;
|
|
23
|
+
readInt16BE(offset?: number): number;
|
|
24
|
+
readInt32BE(offset?: number): number;
|
|
25
|
+
readUInt16LE(offset?: number): number;
|
|
26
|
+
readUInt32LE(offset?: number): number;
|
|
27
|
+
readInt16LE(offset?: number): number;
|
|
28
|
+
readInt32LE(offset?: number): number;
|
|
29
|
+
writeUInt8(value: number, offset?: number): number;
|
|
30
|
+
writeUInt16BE(value: number, offset?: number): number;
|
|
31
|
+
writeUInt32BE(value: number, offset?: number): number;
|
|
32
|
+
writeInt8(value: number, offset?: number): number;
|
|
33
|
+
writeInt16BE(value: number, offset?: number): number;
|
|
34
|
+
writeInt32BE(value: number, offset?: number): number;
|
|
35
|
+
writeUInt16LE(value: number, offset?: number): number;
|
|
36
|
+
writeUInt32LE(value: number, offset?: number): number;
|
|
37
|
+
writeInt16LE(value: number, offset?: number): number;
|
|
38
|
+
writeInt32LE(value: number, offset?: number): number;
|
|
39
|
+
indexOf(value: number | Uint8Array | string, byteOffset?: number, encoding?: string): number;
|
|
40
|
+
lastIndexOf(value: number | Uint8Array | string, byteOffset?: number, encoding?: string): number;
|
|
41
|
+
includes(value: number | Uint8Array | string, byteOffset?: number, encoding?: string): boolean;
|
|
15
42
|
}
|
|
16
43
|
export default Buffer;
|
|
17
44
|
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/node-compat/buffer.ts"],"names":[],"mappings":"AAGA,qBAAa,MAAO,SAAQ,UAAU;IAEpC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,EAAE,GAAG,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM;IAuClM,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAMjD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM;IAI5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;IAa1E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/node-compat/buffer.ts"],"names":[],"mappings":"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"}
|
package/dist/node-compat/fs.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { VFS } from '../kernel/vfs/index.js';
|
|
2
|
+
import { Readable, Writable } from './stream.js';
|
|
3
|
+
import { EventEmitter } from './events.js';
|
|
2
4
|
interface NodeStat {
|
|
3
5
|
dev: number;
|
|
4
6
|
ino: number;
|
|
@@ -60,7 +62,21 @@ export declare function createFs(vfs: VFS, cwd: string): {
|
|
|
60
62
|
renameSync: (oldPath: string | URL, newPath: string | URL) => void;
|
|
61
63
|
copyFileSync: (src: string | URL, dest: string | URL) => void;
|
|
62
64
|
chmodSync: (_path: string | URL, _mode: number) => void;
|
|
65
|
+
chownSync: (_path: string | URL, _uid: number, _gid: number) => void;
|
|
63
66
|
accessSync: (path: string | URL, _mode?: number) => void;
|
|
67
|
+
realpathSync: (path: string | URL) => string;
|
|
68
|
+
truncateSync: (path: string | URL, len?: number) => void;
|
|
69
|
+
openSync: (path: string | URL, flags?: string | number, _mode?: number) => number;
|
|
70
|
+
closeSync: (fd: number) => void;
|
|
71
|
+
readSync: (fd: number, buffer: Uint8Array, offset: number, length: number, position: number | null) => number;
|
|
72
|
+
writeSync: (fd: number, bufferOrString: Uint8Array | string, offsetOrPosition?: number, lengthOrEncoding?: number | string, position?: number | null) => number;
|
|
73
|
+
fstatSync: (fd: number) => NodeStat;
|
|
74
|
+
ftruncateSync: (fd: number, len?: number) => void;
|
|
75
|
+
fsyncSync: (_fd: number) => void;
|
|
76
|
+
fdatasyncSync: (_fd: number) => void;
|
|
77
|
+
symlinkSync: (_target: string, _path: string, _type?: string) => void;
|
|
78
|
+
linkSync: (_existingPath: string, _newPath: string) => void;
|
|
79
|
+
readlinkSync: (path: string | URL) => string;
|
|
64
80
|
readFile: (path: string | URL, optionsOrCb: string | {
|
|
65
81
|
encoding?: string;
|
|
66
82
|
} | Callback<string | Uint8Array>, cb?: Callback<string | Uint8Array>) => void;
|
|
@@ -68,6 +84,7 @@ export declare function createFs(vfs: VFS, cwd: string): {
|
|
|
68
84
|
encoding?: string;
|
|
69
85
|
} | Callback<void>, cb?: Callback<void>) => void;
|
|
70
86
|
stat: (path: string | URL, cb: Callback<NodeStat>) => void;
|
|
87
|
+
lstat: (path: string | URL, cb: Callback<NodeStat>) => void;
|
|
71
88
|
mkdir: (path: string | URL, optionsOrCb: {
|
|
72
89
|
recursive?: boolean;
|
|
73
90
|
} | Callback<void>, cb?: Callback<void>) => void;
|
|
@@ -78,6 +95,25 @@ export declare function createFs(vfs: VFS, cwd: string): {
|
|
|
78
95
|
rename: (oldPath: string | URL, newPath: string | URL, cb: Callback<void>) => void;
|
|
79
96
|
access: (path: string | URL, modeOrCb: number | Callback<void>, cb?: Callback<void>) => void;
|
|
80
97
|
exists: (path: string | URL, cb: (exists: boolean) => void) => void;
|
|
98
|
+
open: (path: string | URL, flagsOrCb: string | number | Callback<number>, modeOrCb?: number | Callback<number>, cb?: Callback<number>) => void;
|
|
99
|
+
close: (fd: number, cb: Callback<void>) => void;
|
|
100
|
+
read: (fd: number, buffer: Uint8Array, offset: number, length: number, position: number | null, cb: Callback<number>) => void;
|
|
101
|
+
fstat: (fd: number, cb: Callback<NodeStat>) => void;
|
|
102
|
+
createReadStream: (path: string | URL, options?: {
|
|
103
|
+
encoding?: string;
|
|
104
|
+
start?: number;
|
|
105
|
+
end?: number;
|
|
106
|
+
highWaterMark?: number;
|
|
107
|
+
}) => Readable;
|
|
108
|
+
createWriteStream: (path: string | URL, options?: {
|
|
109
|
+
flags?: string;
|
|
110
|
+
encoding?: string;
|
|
111
|
+
}) => Writable;
|
|
112
|
+
watch: (filename: string | URL, optionsOrListener?: {
|
|
113
|
+
persistent?: boolean;
|
|
114
|
+
recursive?: boolean;
|
|
115
|
+
encoding?: string;
|
|
116
|
+
} | ((eventType: string, filename: string) => void), listener?: (eventType: string, filename: string) => void) => EventEmitter;
|
|
81
117
|
promises: {
|
|
82
118
|
readFile: (path: string | URL, options?: string | {
|
|
83
119
|
encoding?: string;
|
|
@@ -97,6 +133,23 @@ export declare function createFs(vfs: VFS, cwd: string): {
|
|
|
97
133
|
rename: (oldPath: string | URL, newPath: string | URL) => Promise<void>;
|
|
98
134
|
copyFile: (src: string | URL, dest: string | URL) => Promise<void>;
|
|
99
135
|
access: (path: string | URL, mode?: number) => Promise<void>;
|
|
136
|
+
realpath: (path: string | URL) => Promise<string>;
|
|
137
|
+
truncate: (path: string | URL, len?: number) => Promise<void>;
|
|
138
|
+
chmod: (_path: string | URL, _mode: number) => Promise<void>;
|
|
139
|
+
chown: (_path: string | URL, _uid: number, _gid: number) => Promise<void>;
|
|
140
|
+
open: (path: string | URL, flags?: string | number, mode?: number) => Promise<{
|
|
141
|
+
fd: number;
|
|
142
|
+
close: () => Promise<void>;
|
|
143
|
+
read: (buffer: Uint8Array, offset: number, length: number, position: number | null) => Promise<{
|
|
144
|
+
bytesRead: number;
|
|
145
|
+
buffer: Uint8Array<ArrayBufferLike>;
|
|
146
|
+
}>;
|
|
147
|
+
write: (data: Uint8Array | string) => Promise<{
|
|
148
|
+
bytesWritten: number;
|
|
149
|
+
}>;
|
|
150
|
+
stat: () => Promise<NodeStat>;
|
|
151
|
+
truncate: (len?: number) => Promise<void>;
|
|
152
|
+
}>;
|
|
100
153
|
rm: (path: string | URL, options?: {
|
|
101
154
|
recursive?: boolean;
|
|
102
155
|
force?: boolean;
|
|
@@ -107,6 +160,15 @@ export declare function createFs(vfs: VFS, cwd: string): {
|
|
|
107
160
|
R_OK: number;
|
|
108
161
|
W_OK: number;
|
|
109
162
|
X_OK: number;
|
|
163
|
+
O_RDONLY: number;
|
|
164
|
+
O_WRONLY: number;
|
|
165
|
+
O_RDWR: number;
|
|
166
|
+
O_CREAT: number;
|
|
167
|
+
O_TRUNC: number;
|
|
168
|
+
O_APPEND: number;
|
|
169
|
+
COPYFILE_EXCL: number;
|
|
170
|
+
COPYFILE_FICLONE: number;
|
|
171
|
+
COPYFILE_FICLONE_FORCE: number;
|
|
110
172
|
};
|
|
111
173
|
};
|
|
112
174
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/node-compat/fs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAKlD,UAAU,QAAQ;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B,aAAa,EAAE,MAAM,OAAO,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,OAAO,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/node-compat/fs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { r as o, i as a, c as d, V as f } from "./index-Do_xqri5.js";
|
|
2
|
+
function i(e) {
|
|
3
|
+
return e.split(`
|
|
4
|
+
`).map((s) => [...s].reverse().join("")).join(`
|
|
5
|
+
`);
|
|
6
|
+
}
|
|
7
|
+
const g = async (e) => {
|
|
8
|
+
if (e.args.length === 0) {
|
|
9
|
+
if (e.stdin) {
|
|
10
|
+
const r = await e.stdin.readAll();
|
|
11
|
+
return e.stdout.write(i(r)), 0;
|
|
12
|
+
}
|
|
13
|
+
return e.stderr.write(`rev: missing operand
|
|
14
|
+
`), 1;
|
|
15
|
+
}
|
|
16
|
+
let s = 0;
|
|
17
|
+
for (const r of e.args) {
|
|
18
|
+
const t = o(e.cwd, r);
|
|
19
|
+
try {
|
|
20
|
+
if (e.vfs.stat(t), a(d(t))) {
|
|
21
|
+
e.stderr.write(`rev: ${r}: binary file, skipping
|
|
22
|
+
`);
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const n = e.vfs.readFileString(t);
|
|
26
|
+
e.stdout.write(i(n));
|
|
27
|
+
} catch (n) {
|
|
28
|
+
if (n instanceof f)
|
|
29
|
+
e.stderr.write(`rev: ${r}: ${n.message}
|
|
30
|
+
`), s = 1;
|
|
31
|
+
else
|
|
32
|
+
throw n;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return s;
|
|
36
|
+
};
|
|
37
|
+
export {
|
|
38
|
+
g as default
|
|
39
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { p } from "./args-CG6b9cZt.js";
|
|
2
|
-
import { r as
|
|
2
|
+
import { r as m, k as n, V as d } from "./index-Do_xqri5.js";
|
|
3
3
|
const f = {
|
|
4
4
|
parents: { type: "boolean", short: "p" }
|
|
5
5
|
}, g = async (e) => {
|
|
@@ -9,7 +9,7 @@ const f = {
|
|
|
9
9
|
`), 1;
|
|
10
10
|
let t = 0;
|
|
11
11
|
for (const a of s) {
|
|
12
|
-
const o =
|
|
12
|
+
const o = m(e.cwd, a);
|
|
13
13
|
try {
|
|
14
14
|
if (e.vfs.rmdir(o), i.parents) {
|
|
15
15
|
let r = n(o);
|
|
@@ -21,7 +21,7 @@ const f = {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
} catch (r) {
|
|
24
|
-
if (r instanceof
|
|
24
|
+
if (r instanceof d)
|
|
25
25
|
e.stderr.write(`rmdir: ${a}: ${r.message}
|
|
26
26
|
`), t = 1;
|
|
27
27
|
else
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { ITerminal } from '../terminal/ITerminal.js';
|
|
1
2
|
/**
|
|
2
3
|
* A Terminal-shaped class that captures output without xterm.js.
|
|
3
4
|
* Used for headless/programmatic Sandbox usage (AI agents, tests, etc.)
|
|
4
5
|
*/
|
|
5
|
-
export declare class HeadlessTerminal {
|
|
6
|
+
export declare class HeadlessTerminal implements ITerminal {
|
|
6
7
|
private dataCallback;
|
|
7
8
|
write(_data: string): void;
|
|
8
9
|
writeln(_data: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeadlessTerminal.d.ts","sourceRoot":"","sources":["../../src/sandbox/HeadlessTerminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,
|
|
1
|
+
{"version":3,"file":"HeadlessTerminal.d.ts","sourceRoot":"","sources":["../../src/sandbox/HeadlessTerminal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,OAAO,CAAC,YAAY,CAAyC;IAE7D,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI1B,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5B,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI;IAEb,KAAK,IAAI,IAAI;IAEb,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAG7B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Kernel } from '../kernel/index.js';
|
|
2
2
|
import { Shell } from '../shell/Shell.js';
|
|
3
|
+
import { NativeFsModule } from '../kernel/vfs/providers/NativeFsProvider.js';
|
|
3
4
|
import { SandboxOptions, SandboxCommands, SandboxFs } from './types.js';
|
|
4
5
|
export declare class Sandbox {
|
|
5
6
|
/** Programmatic command execution */
|
|
@@ -20,6 +21,28 @@ export declare class Sandbox {
|
|
|
20
21
|
* Orchestrates all boot steps: Kernel, VFS, Registry, Shell, config sourcing.
|
|
21
22
|
*/
|
|
22
23
|
static create(options?: SandboxOptions): Promise<Sandbox>;
|
|
24
|
+
/**
|
|
25
|
+
* Mount a native filesystem directory into the virtual filesystem.
|
|
26
|
+
* Only works in Node.js environments (or when a custom fsModule is provided).
|
|
27
|
+
*
|
|
28
|
+
* Once mounted, all VFS operations (and therefore the node-compat fs shim)
|
|
29
|
+
* on paths under `virtualPath` will be delegated through the VFS mount system
|
|
30
|
+
* to the NativeFsProvider, which in turn delegates to the real node:fs module.
|
|
31
|
+
*
|
|
32
|
+
* @param virtualPath - Path inside the virtual filesystem (e.g. "/mnt/project")
|
|
33
|
+
* @param hostPath - Host filesystem path to mount (e.g. "/home/user/my-project")
|
|
34
|
+
* @param options - Optional settings: readOnly, fsModule
|
|
35
|
+
*/
|
|
36
|
+
mountNative(virtualPath: string, hostPath: string, options?: {
|
|
37
|
+
readOnly?: boolean;
|
|
38
|
+
fsModule?: NativeFsModule;
|
|
39
|
+
}): void;
|
|
40
|
+
/**
|
|
41
|
+
* Unmount a previously mounted filesystem.
|
|
42
|
+
*
|
|
43
|
+
* @param virtualPath - The virtual path that was passed to mountNative()
|
|
44
|
+
*/
|
|
45
|
+
unmountNative(virtualPath: string): void;
|
|
23
46
|
/**
|
|
24
47
|
* Attach a headless sandbox to a DOM element, enabling visual mode.
|
|
25
48
|
*/
|
|
@@ -28,6 +51,14 @@ export declare class Sandbox {
|
|
|
28
51
|
* Detach from visual mode.
|
|
29
52
|
*/
|
|
30
53
|
detach(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Export the entire VFS as a tar.gz snapshot.
|
|
56
|
+
*/
|
|
57
|
+
exportSnapshot(): Promise<Uint8Array>;
|
|
58
|
+
/**
|
|
59
|
+
* Restore VFS from a tar.gz snapshot.
|
|
60
|
+
*/
|
|
61
|
+
importSnapshot(data: Uint8Array): Promise<void>;
|
|
31
62
|
/**
|
|
32
63
|
* Destroy the sandbox, releasing all resources.
|
|
33
64
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/Sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Sandbox.d.ts","sourceRoot":"","sources":["../../src/sandbox/Sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAe1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAElF,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAK7E,qBAAa,OAAO;IAClB,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,4BAA4B;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAGrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAEtB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO;IAcP,gCAAgC;IAChC,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAEnB;IAED;;;OAGG;WACU,MAAM,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiG/D;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI;IAgCrH;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACG,MAAM,CAAC,SAAS,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUnD;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;IAI3C;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -34,5 +34,9 @@ export declare class SandboxFsImpl implements ISandboxFs {
|
|
|
34
34
|
path: string;
|
|
35
35
|
content: string | Uint8Array;
|
|
36
36
|
}>): Promise<void>;
|
|
37
|
+
/** Directories to skip during export (virtual providers) */
|
|
38
|
+
private static SKIP_DIRS;
|
|
39
|
+
exportSnapshot(): Promise<Uint8Array>;
|
|
40
|
+
importSnapshot(data: Uint8Array): Promise<void>;
|
|
37
41
|
}
|
|
38
42
|
//# sourceMappingURL=SandboxFs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SandboxFs.d.ts","sourceRoot":"","sources":["../../src/sandbox/SandboxFs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"SandboxFs.d.ts","sourceRoot":"","sources":["../../src/sandbox/SandboxFs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAK1D;;;GAGG;AACH,qBAAa,aAAc,YAAW,UAAU;IAE5C,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;gBADN,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,MAAM;IAG9B,OAAO,CAAC,WAAW;IAInB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IASrD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC,CAAC;IAKnF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAMxF,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7F,4DAA4D;IAC5D,OAAO,CAAC,MAAM,CAAC,SAAS,CAA8B;IAEhD,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;IA0CrC,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAyBtD"}
|
package/dist/sandbox/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Command } from '../commands/types.js';
|
|
2
2
|
import { Kernel } from '../kernel/index.js';
|
|
3
3
|
import { Shell } from '../shell/Shell.js';
|
|
4
|
+
import { ITerminal } from '../terminal/ITerminal.js';
|
|
5
|
+
import { NativeFsModule } from '../kernel/vfs/providers/NativeFsProvider.js';
|
|
4
6
|
export interface SandboxOptions {
|
|
5
7
|
/** Enable IndexedDB persistence (default: false) */
|
|
6
8
|
persist?: boolean;
|
|
@@ -10,8 +12,22 @@ export interface SandboxOptions {
|
|
|
10
12
|
cwd?: string;
|
|
11
13
|
/** Pre-populate files: path → content */
|
|
12
14
|
files?: Record<string, string | Uint8Array>;
|
|
13
|
-
/** Attach to a DOM element for visual mode (CSS selector or element) */
|
|
14
|
-
terminal?: string | HTMLElement;
|
|
15
|
+
/** Attach to a DOM element for visual mode (CSS selector or element), or pass a pre-created ITerminal */
|
|
16
|
+
terminal?: string | HTMLElement | ITerminal;
|
|
17
|
+
/**
|
|
18
|
+
* Mount native filesystem directories into the virtual filesystem at boot time.
|
|
19
|
+
* Only works in Node.js environments (or when a custom fsModule is provided).
|
|
20
|
+
*/
|
|
21
|
+
mounts?: Array<{
|
|
22
|
+
/** Path inside the virtual filesystem where the mount will appear */
|
|
23
|
+
virtualPath: string;
|
|
24
|
+
/** Host filesystem path to mount */
|
|
25
|
+
hostPath: string;
|
|
26
|
+
/** If true, the mount is read-only (default: false) */
|
|
27
|
+
readOnly?: boolean;
|
|
28
|
+
/** Custom fs module implementing NativeFsModule. If omitted, node:fs is used. */
|
|
29
|
+
fsModule?: NativeFsModule;
|
|
30
|
+
}>;
|
|
15
31
|
}
|
|
16
32
|
export interface RunOptions {
|
|
17
33
|
/** Working directory for this command */
|
|
@@ -64,6 +80,10 @@ export interface SandboxFs {
|
|
|
64
80
|
path: string;
|
|
65
81
|
content: string | Uint8Array;
|
|
66
82
|
}>): Promise<void>;
|
|
83
|
+
/** Export entire VFS as a tar.gz snapshot */
|
|
84
|
+
exportSnapshot(): Promise<Uint8Array>;
|
|
85
|
+
/** Restore VFS from a tar.gz snapshot */
|
|
86
|
+
importSnapshot(data: Uint8Array): Promise<void>;
|
|
67
87
|
}
|
|
68
88
|
export interface SandboxInternals {
|
|
69
89
|
kernel: Kernel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sandbox/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sandbox/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { r as c, i as g, c as h, V as m } from "./index-Do_xqri5.js";
|
|
2
|
+
function w(e) {
|
|
3
|
+
if (e === "d")
|
|
4
|
+
return { type: "d" };
|
|
5
|
+
if (e === "p")
|
|
6
|
+
return { type: "p" };
|
|
7
|
+
if (e.startsWith("s")) {
|
|
8
|
+
const p = e[1];
|
|
9
|
+
if (!p) return null;
|
|
10
|
+
const n = [];
|
|
11
|
+
let l = "", f = !1;
|
|
12
|
+
for (let r = 2; r < e.length; r++)
|
|
13
|
+
f ? (l += e[r], f = !1) : e[r] === "\\" ? (f = !0, l += "\\") : e[r] === p ? (n.push(l), l = "") : l += e[r];
|
|
14
|
+
if (n.push(l), n.length < 2) return null;
|
|
15
|
+
const u = n[0], d = n[1], s = n[2] || "", t = s.includes("g"), i = s.includes("i");
|
|
16
|
+
let o;
|
|
17
|
+
try {
|
|
18
|
+
let r = "";
|
|
19
|
+
t && (r += "g"), i && (r += "i"), o = new RegExp(u, r);
|
|
20
|
+
} catch {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return { type: "s", pattern: o, replacement: d, global: t };
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const v = async (e) => {
|
|
28
|
+
let p = !1;
|
|
29
|
+
const n = [], l = [];
|
|
30
|
+
for (let s = 0; s < e.args.length; s++) {
|
|
31
|
+
const t = e.args[s];
|
|
32
|
+
t === "-i" ? p = !0 : t === "-e" && s + 1 < e.args.length ? n.push(e.args[++s]) : n.length === 0 && !t.startsWith("-") ? n.push(t) : l.push(t);
|
|
33
|
+
}
|
|
34
|
+
if (n.length === 0)
|
|
35
|
+
return e.stderr.write(`sed: missing expression
|
|
36
|
+
`), 1;
|
|
37
|
+
const f = [];
|
|
38
|
+
for (const s of n) {
|
|
39
|
+
const t = w(s);
|
|
40
|
+
if (!t)
|
|
41
|
+
return e.stderr.write(`sed: invalid expression: ${s}
|
|
42
|
+
`), 1;
|
|
43
|
+
f.push(t);
|
|
44
|
+
}
|
|
45
|
+
function u(s) {
|
|
46
|
+
const t = s.replace(/\n$/, "").split(`
|
|
47
|
+
`), i = [];
|
|
48
|
+
for (let o of t) {
|
|
49
|
+
let r = !1;
|
|
50
|
+
for (const a of f)
|
|
51
|
+
if (a.type === "s" && a.pattern && a.replacement !== void 0)
|
|
52
|
+
o = o.replace(a.pattern, a.replacement);
|
|
53
|
+
else if (a.type === "d") {
|
|
54
|
+
r = !0;
|
|
55
|
+
break;
|
|
56
|
+
} else a.type === "p" && i.push(o);
|
|
57
|
+
r || i.push(o);
|
|
58
|
+
}
|
|
59
|
+
return i.join(`
|
|
60
|
+
`) + `
|
|
61
|
+
`;
|
|
62
|
+
}
|
|
63
|
+
if (l.length === 0) {
|
|
64
|
+
if (e.stdin) {
|
|
65
|
+
const s = await e.stdin.readAll();
|
|
66
|
+
e.stdout.write(u(s));
|
|
67
|
+
} else
|
|
68
|
+
return e.stderr.write(`sed: missing file operand
|
|
69
|
+
`), 1;
|
|
70
|
+
return 0;
|
|
71
|
+
}
|
|
72
|
+
let d = 0;
|
|
73
|
+
for (const s of l) {
|
|
74
|
+
const t = c(e.cwd, s);
|
|
75
|
+
try {
|
|
76
|
+
if (e.vfs.stat(t), g(h(t))) {
|
|
77
|
+
e.stderr.write(`sed: ${s}: binary file, skipping
|
|
78
|
+
`);
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const i = e.vfs.readFileString(t), o = u(i);
|
|
82
|
+
p ? e.vfs.writeFile(t, o) : e.stdout.write(o);
|
|
83
|
+
} catch (i) {
|
|
84
|
+
if (i instanceof m)
|
|
85
|
+
e.stderr.write(`sed: ${s}: ${i.message}
|
|
86
|
+
`), d = 1;
|
|
87
|
+
else
|
|
88
|
+
throw i;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return d;
|
|
92
|
+
};
|
|
93
|
+
export {
|
|
94
|
+
v as default
|
|
95
|
+
};
|
package/dist/shell/Shell.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ITerminal } from '../terminal/ITerminal.js';
|
|
2
2
|
import { VFS } from '../kernel/vfs/index.js';
|
|
3
3
|
import { CommandRegistry } from '../commands/registry.js';
|
|
4
4
|
import { JobTable } from './jobs.js';
|
|
@@ -32,7 +32,7 @@ export declare class Shell {
|
|
|
32
32
|
private jobTable;
|
|
33
33
|
private builtins;
|
|
34
34
|
private tabCount;
|
|
35
|
-
constructor(terminal:
|
|
35
|
+
constructor(terminal: ITerminal, vfs: VFS, registry: CommandRegistry, env: Record<string, string>);
|
|
36
36
|
private registerBuiltins;
|
|
37
37
|
getJobTable(): JobTable;
|
|
38
38
|
getCwd(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/shell/Shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Shell.d.ts","sourceRoot":"","sources":["../../src/shell/Shell.ts"],"names":[],"mappings":"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"}
|