typescript-virtual-container 1.1.1 → 1.1.3
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 -1
- package/dist/SSHClient/index.d.ts +138 -0
- package/dist/SSHClient/index.d.ts.map +1 -0
- package/dist/SSHClient/index.js +216 -0
- package/dist/SSHMimic/exec.d.ts +4 -0
- package/dist/SSHMimic/exec.d.ts.map +1 -0
- package/dist/SSHMimic/exec.js +21 -0
- package/dist/SSHMimic/executor.d.ts +9 -0
- package/dist/SSHMimic/executor.d.ts.map +1 -0
- package/dist/SSHMimic/executor.js +131 -0
- package/dist/SSHMimic/hostKey.d.ts +2 -0
- package/dist/SSHMimic/hostKey.d.ts.map +1 -0
- package/dist/SSHMimic/hostKey.js +17 -0
- package/dist/SSHMimic/index.d.ts +39 -0
- package/dist/SSHMimic/index.d.ts.map +1 -0
- package/dist/SSHMimic/index.js +113 -0
- package/dist/SSHMimic/loginFormat.d.ts +2 -0
- package/dist/SSHMimic/loginFormat.d.ts.map +1 -0
- package/dist/SSHMimic/loginFormat.js +10 -0
- package/dist/SSHMimic/prompt.d.ts +2 -0
- package/dist/SSHMimic/prompt.d.ts.map +1 -0
- package/dist/SSHMimic/prompt.js +9 -0
- package/dist/VirtualFileSystem/archive.d.ts +5 -0
- package/dist/VirtualFileSystem/archive.d.ts.map +1 -0
- package/dist/VirtualFileSystem/archive.js +56 -0
- package/dist/VirtualFileSystem/index.d.ts +131 -0
- package/dist/VirtualFileSystem/index.d.ts.map +1 -0
- package/dist/VirtualFileSystem/index.js +355 -0
- package/dist/VirtualFileSystem/internalTypes.d.ts +18 -0
- package/dist/VirtualFileSystem/internalTypes.d.ts.map +1 -0
- package/dist/VirtualFileSystem/internalTypes.js +0 -0
- package/dist/VirtualFileSystem/path.d.ts +9 -0
- package/dist/VirtualFileSystem/path.d.ts.map +1 -0
- package/dist/VirtualFileSystem/path.js +49 -0
- package/dist/VirtualFileSystem/snapshot.d.ts +5 -0
- package/dist/VirtualFileSystem/snapshot.d.ts.map +1 -0
- package/dist/VirtualFileSystem/snapshot.js +59 -0
- package/dist/VirtualFileSystem/tree.d.ts +3 -0
- package/dist/VirtualFileSystem/tree.d.ts.map +1 -0
- package/dist/VirtualFileSystem/tree.js +19 -0
- package/dist/VirtualShell/index.d.ts +86 -0
- package/dist/VirtualShell/index.d.ts.map +1 -0
- package/dist/VirtualShell/index.js +129 -0
- package/dist/VirtualShell/shell.d.ts +5 -0
- package/dist/VirtualShell/shell.d.ts.map +1 -0
- package/dist/VirtualShell/shell.js +473 -0
- package/dist/VirtualShell/shellParser.d.ts +4 -0
- package/dist/VirtualShell/shellParser.d.ts.map +1 -0
- package/dist/VirtualShell/shellParser.js +207 -0
- package/dist/VirtualUserManager/index.d.ts +175 -0
- package/dist/VirtualUserManager/index.d.ts.map +1 -0
- package/dist/VirtualUserManager/index.js +390 -0
- package/dist/commands/adduser.d.ts +3 -0
- package/dist/commands/adduser.d.ts.map +1 -0
- package/dist/commands/adduser.js +18 -0
- package/dist/commands/cat.d.ts +3 -0
- package/dist/commands/cat.d.ts.map +1 -0
- package/dist/commands/cat.js +15 -0
- package/dist/commands/cd.d.ts +3 -0
- package/dist/commands/cd.d.ts.map +1 -0
- package/dist/commands/cd.js +17 -0
- package/dist/commands/clear.d.ts +3 -0
- package/dist/commands/clear.d.ts.map +1 -0
- package/dist/commands/clear.js +5 -0
- package/dist/commands/command-helpers.d.ts +23 -0
- package/dist/commands/command-helpers.d.ts.map +1 -0
- package/dist/commands/command-helpers.js +139 -0
- package/dist/commands/curl.d.ts +3 -0
- package/dist/commands/curl.d.ts.map +1 -0
- package/dist/commands/curl.js +44 -0
- package/dist/commands/deluser.d.ts +3 -0
- package/dist/commands/deluser.d.ts.map +1 -0
- package/dist/commands/deluser.js +15 -0
- package/dist/commands/echo.d.ts +3 -0
- package/dist/commands/echo.d.ts.map +1 -0
- package/dist/commands/echo.js +22 -0
- package/dist/commands/env.d.ts +3 -0
- package/dist/commands/env.d.ts.map +1 -0
- package/dist/commands/env.js +18 -0
- package/dist/commands/exit.d.ts +3 -0
- package/dist/commands/exit.d.ts.map +1 -0
- package/dist/commands/exit.js +5 -0
- package/dist/commands/export.d.ts +3 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +34 -0
- package/dist/commands/grep.d.ts +3 -0
- package/dist/commands/grep.d.ts.map +1 -0
- package/dist/commands/grep.js +69 -0
- package/dist/commands/help.d.ts +3 -0
- package/dist/commands/help.d.ts.map +1 -0
- package/dist/commands/help.js +7 -0
- package/dist/commands/helpers.d.ts +26 -0
- package/dist/commands/helpers.d.ts.map +1 -0
- package/dist/commands/helpers.js +160 -0
- package/dist/commands/hostname.d.ts +3 -0
- package/dist/commands/hostname.d.ts.map +1 -0
- package/dist/commands/hostname.js +5 -0
- package/dist/commands/htop.d.ts +3 -0
- package/dist/commands/htop.d.ts.map +1 -0
- package/dist/commands/htop.js +10 -0
- package/dist/commands/index.d.ts +8 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +214 -0
- package/dist/commands/ls.d.ts +3 -0
- package/dist/commands/ls.d.ts.map +1 -0
- package/dist/commands/ls.js +47 -0
- package/dist/commands/mkdir.d.ts +3 -0
- package/dist/commands/mkdir.d.ts.map +1 -0
- package/dist/commands/mkdir.js +21 -0
- package/dist/commands/nano.d.ts +3 -0
- package/dist/commands/nano.d.ts.map +1 -0
- package/dist/commands/nano.js +27 -0
- package/dist/commands/neofetch.d.ts +3 -0
- package/dist/commands/neofetch.d.ts.map +1 -0
- package/dist/commands/neofetch.js +32 -0
- package/dist/commands/passwd.d.ts +3 -0
- package/dist/commands/passwd.d.ts.map +1 -0
- package/dist/commands/passwd.js +21 -0
- package/dist/commands/pwd.d.ts +3 -0
- package/dist/commands/pwd.d.ts.map +1 -0
- package/dist/commands/pwd.js +5 -0
- package/dist/commands/rm.d.ts +3 -0
- package/dist/commands/rm.d.ts.map +1 -0
- package/dist/commands/rm.js +29 -0
- package/dist/commands/set.d.ts +7 -0
- package/dist/commands/set.d.ts.map +1 -0
- package/dist/commands/set.js +64 -0
- package/dist/commands/sh.d.ts +4 -0
- package/dist/commands/sh.d.ts.map +1 -0
- package/dist/commands/sh.js +45 -0
- package/dist/commands/su.d.ts +3 -0
- package/dist/commands/su.d.ts.map +1 -0
- package/dist/commands/su.js +24 -0
- package/dist/commands/sudo.d.ts +3 -0
- package/dist/commands/sudo.d.ts.map +1 -0
- package/dist/commands/sudo.js +47 -0
- package/dist/commands/touch.d.ts +3 -0
- package/dist/commands/touch.d.ts.map +1 -0
- package/dist/commands/touch.js +18 -0
- package/dist/commands/tree.d.ts +3 -0
- package/dist/commands/tree.d.ts.map +1 -0
- package/dist/commands/tree.js +11 -0
- package/dist/commands/unset.d.ts +3 -0
- package/dist/commands/unset.d.ts.map +1 -0
- package/dist/commands/unset.js +15 -0
- package/dist/commands/wget.d.ts +3 -0
- package/dist/commands/wget.d.ts.map +1 -0
- package/dist/commands/wget.js +113 -0
- package/dist/commands/who.d.ts +3 -0
- package/dist/commands/who.d.ts.map +1 -0
- package/dist/commands/who.js +15 -0
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +5 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/modules/neofetch.d.ts +19 -0
- package/dist/modules/neofetch.d.ts.map +1 -0
- package/dist/modules/neofetch.js +283 -0
- package/dist/modules/shellInteractive.d.ts +6 -0
- package/dist/modules/shellInteractive.d.ts.map +1 -0
- package/dist/modules/shellInteractive.js +26 -0
- package/dist/modules/shellRuntime.d.ts +11 -0
- package/dist/modules/shellRuntime.d.ts.map +1 -0
- package/dist/modules/shellRuntime.js +52 -0
- package/dist/standalone.d.ts +2 -0
- package/dist/standalone.d.ts.map +1 -0
- package/dist/standalone.js +25 -0
- package/dist/types/commands.d.ts +89 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +0 -0
- package/dist/types/pipeline.d.ts +23 -0
- package/dist/types/pipeline.d.ts.map +1 -0
- package/dist/types/pipeline.js +0 -0
- package/dist/types/streams.d.ts +32 -0
- package/dist/types/streams.d.ts.map +1 -0
- package/dist/types/streams.js +0 -0
- package/dist/types/vfs.d.ts +71 -0
- package/dist/types/vfs.d.ts.map +1 -0
- package/dist/types/vfs.js +0 -0
- package/package.json +4 -2
- package/src/VirtualShell/shell.ts +3 -3
- package/src/VirtualUserManager/index.ts +18 -0
- package/src/commands/index.ts +2 -0
- package/src/commands/neofetch.ts +1 -1
- package/src/commands/passwd.ts +25 -0
- package/{modules → src/modules}/neofetch.ts +55 -52
- package/{modules → src/modules}/shellInteractive.ts +16 -4
- package/tests/users.test.ts +13 -0
- package/tsconfig.json +20 -8
- /package/{modules → src/modules}/shellRuntime.ts +0 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { type ChildProcessWithoutNullStreams, spawn } from "node:child_process";
|
|
2
|
-
import type { ShellStream } from "../
|
|
3
|
-
import {
|
|
2
|
+
import type { ShellStream } from "../types/streams";
|
|
3
|
+
import {
|
|
4
|
+
shellQuote,
|
|
5
|
+
type TerminalSize,
|
|
6
|
+
withTerminalSize,
|
|
7
|
+
} from "./shellRuntime";
|
|
4
8
|
|
|
5
9
|
function spawnScriptProcess(
|
|
6
10
|
command: string,
|
|
@@ -33,7 +37,11 @@ export function spawnNanoEditorProcess(
|
|
|
33
37
|
terminalSize: TerminalSize,
|
|
34
38
|
stream: ShellStream,
|
|
35
39
|
): ChildProcessWithoutNullStreams {
|
|
36
|
-
return spawnScriptProcess(
|
|
40
|
+
return spawnScriptProcess(
|
|
41
|
+
`nano -- ${shellQuote(tempPath)}`,
|
|
42
|
+
terminalSize,
|
|
43
|
+
stream,
|
|
44
|
+
);
|
|
37
45
|
}
|
|
38
46
|
|
|
39
47
|
export function spawnHtopProcess(
|
|
@@ -41,5 +49,9 @@ export function spawnHtopProcess(
|
|
|
41
49
|
terminalSize: TerminalSize,
|
|
42
50
|
stream: ShellStream,
|
|
43
51
|
): ChildProcessWithoutNullStreams {
|
|
44
|
-
return spawnScriptProcess(
|
|
52
|
+
return spawnScriptProcess(
|
|
53
|
+
`htop -p ${shellQuote(pidList)}`,
|
|
54
|
+
terminalSize,
|
|
55
|
+
stream,
|
|
56
|
+
);
|
|
45
57
|
}
|
package/tests/users.test.ts
CHANGED
|
@@ -38,6 +38,19 @@ describe("VirtualUserManager auto sudo", () => {
|
|
|
38
38
|
expect(users.isSudoer("bob")).toBe(false);
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
|
+
|
|
42
|
+
test("updates password for existing user", async () => {
|
|
43
|
+
await withTempVfs(async (vfs) => {
|
|
44
|
+
const users = new VirtualUserManager(vfs, "root-pass");
|
|
45
|
+
await users.initialize();
|
|
46
|
+
await users.addUser("alice", "alice-pass");
|
|
47
|
+
|
|
48
|
+
await users.setPassword("alice", "new-pass");
|
|
49
|
+
|
|
50
|
+
expect(users.verifyPassword("alice", "new-pass")).toBe(true);
|
|
51
|
+
expect(users.verifyPassword("alice", "alice-pass")).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
41
54
|
});
|
|
42
55
|
|
|
43
56
|
describe("VirtualUserManager quotas", () => {
|
package/tsconfig.json
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
// Environment setup & latest features
|
|
4
|
-
"lib": [
|
|
4
|
+
"lib": [
|
|
5
|
+
"ESNext"
|
|
6
|
+
],
|
|
5
7
|
"target": "ESNext",
|
|
6
8
|
"module": "Preserve",
|
|
7
9
|
"moduleDetection": "force",
|
|
8
10
|
"jsx": "react-jsx",
|
|
9
11
|
"allowJs": true,
|
|
10
|
-
|
|
12
|
+
|
|
11
13
|
// Bundler mode
|
|
12
14
|
"moduleResolution": "bundler",
|
|
13
|
-
"allowImportingTsExtensions": true,
|
|
14
15
|
"verbatimModuleSyntax": true,
|
|
15
|
-
"noEmit":
|
|
16
|
-
|
|
16
|
+
"noEmit": false,
|
|
17
|
+
|
|
17
18
|
// Best practices
|
|
18
19
|
"strict": true,
|
|
19
20
|
"skipLibCheck": true,
|
|
@@ -25,7 +26,18 @@
|
|
|
25
26
|
"noUnusedLocals": false,
|
|
26
27
|
"noUnusedParameters": false,
|
|
27
28
|
"noPropertyAccessFromIndexSignature": false,
|
|
29
|
+
"types": [
|
|
30
|
+
"node",
|
|
31
|
+
"bun"
|
|
32
|
+
],
|
|
28
33
|
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
"esModuleInterop": true,
|
|
35
|
+
"forceConsistentCasingInFileNames": true,
|
|
36
|
+
"resolveJsonModule": true,
|
|
37
|
+
"declaration": true,
|
|
38
|
+
"declarationMap": true,
|
|
39
|
+
"rootDir": "src",
|
|
40
|
+
"outDir": "dist",
|
|
41
|
+
},
|
|
42
|
+
"include": ["src/**/*"]
|
|
43
|
+
}
|
|
File without changes
|