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.
Files changed (192) hide show
  1. package/README.md +1 -1
  2. package/dist/SSHClient/index.d.ts +138 -0
  3. package/dist/SSHClient/index.d.ts.map +1 -0
  4. package/dist/SSHClient/index.js +216 -0
  5. package/dist/SSHMimic/exec.d.ts +4 -0
  6. package/dist/SSHMimic/exec.d.ts.map +1 -0
  7. package/dist/SSHMimic/exec.js +21 -0
  8. package/dist/SSHMimic/executor.d.ts +9 -0
  9. package/dist/SSHMimic/executor.d.ts.map +1 -0
  10. package/dist/SSHMimic/executor.js +131 -0
  11. package/dist/SSHMimic/hostKey.d.ts +2 -0
  12. package/dist/SSHMimic/hostKey.d.ts.map +1 -0
  13. package/dist/SSHMimic/hostKey.js +17 -0
  14. package/dist/SSHMimic/index.d.ts +39 -0
  15. package/dist/SSHMimic/index.d.ts.map +1 -0
  16. package/dist/SSHMimic/index.js +113 -0
  17. package/dist/SSHMimic/loginFormat.d.ts +2 -0
  18. package/dist/SSHMimic/loginFormat.d.ts.map +1 -0
  19. package/dist/SSHMimic/loginFormat.js +10 -0
  20. package/dist/SSHMimic/prompt.d.ts +2 -0
  21. package/dist/SSHMimic/prompt.d.ts.map +1 -0
  22. package/dist/SSHMimic/prompt.js +9 -0
  23. package/dist/VirtualFileSystem/archive.d.ts +5 -0
  24. package/dist/VirtualFileSystem/archive.d.ts.map +1 -0
  25. package/dist/VirtualFileSystem/archive.js +56 -0
  26. package/dist/VirtualFileSystem/index.d.ts +131 -0
  27. package/dist/VirtualFileSystem/index.d.ts.map +1 -0
  28. package/dist/VirtualFileSystem/index.js +355 -0
  29. package/dist/VirtualFileSystem/internalTypes.d.ts +18 -0
  30. package/dist/VirtualFileSystem/internalTypes.d.ts.map +1 -0
  31. package/dist/VirtualFileSystem/internalTypes.js +0 -0
  32. package/dist/VirtualFileSystem/path.d.ts +9 -0
  33. package/dist/VirtualFileSystem/path.d.ts.map +1 -0
  34. package/dist/VirtualFileSystem/path.js +49 -0
  35. package/dist/VirtualFileSystem/snapshot.d.ts +5 -0
  36. package/dist/VirtualFileSystem/snapshot.d.ts.map +1 -0
  37. package/dist/VirtualFileSystem/snapshot.js +59 -0
  38. package/dist/VirtualFileSystem/tree.d.ts +3 -0
  39. package/dist/VirtualFileSystem/tree.d.ts.map +1 -0
  40. package/dist/VirtualFileSystem/tree.js +19 -0
  41. package/dist/VirtualShell/index.d.ts +86 -0
  42. package/dist/VirtualShell/index.d.ts.map +1 -0
  43. package/dist/VirtualShell/index.js +129 -0
  44. package/dist/VirtualShell/shell.d.ts +5 -0
  45. package/dist/VirtualShell/shell.d.ts.map +1 -0
  46. package/dist/VirtualShell/shell.js +473 -0
  47. package/dist/VirtualShell/shellParser.d.ts +4 -0
  48. package/dist/VirtualShell/shellParser.d.ts.map +1 -0
  49. package/dist/VirtualShell/shellParser.js +207 -0
  50. package/dist/VirtualUserManager/index.d.ts +175 -0
  51. package/dist/VirtualUserManager/index.d.ts.map +1 -0
  52. package/dist/VirtualUserManager/index.js +390 -0
  53. package/dist/commands/adduser.d.ts +3 -0
  54. package/dist/commands/adduser.d.ts.map +1 -0
  55. package/dist/commands/adduser.js +18 -0
  56. package/dist/commands/cat.d.ts +3 -0
  57. package/dist/commands/cat.d.ts.map +1 -0
  58. package/dist/commands/cat.js +15 -0
  59. package/dist/commands/cd.d.ts +3 -0
  60. package/dist/commands/cd.d.ts.map +1 -0
  61. package/dist/commands/cd.js +17 -0
  62. package/dist/commands/clear.d.ts +3 -0
  63. package/dist/commands/clear.d.ts.map +1 -0
  64. package/dist/commands/clear.js +5 -0
  65. package/dist/commands/command-helpers.d.ts +23 -0
  66. package/dist/commands/command-helpers.d.ts.map +1 -0
  67. package/dist/commands/command-helpers.js +139 -0
  68. package/dist/commands/curl.d.ts +3 -0
  69. package/dist/commands/curl.d.ts.map +1 -0
  70. package/dist/commands/curl.js +44 -0
  71. package/dist/commands/deluser.d.ts +3 -0
  72. package/dist/commands/deluser.d.ts.map +1 -0
  73. package/dist/commands/deluser.js +15 -0
  74. package/dist/commands/echo.d.ts +3 -0
  75. package/dist/commands/echo.d.ts.map +1 -0
  76. package/dist/commands/echo.js +22 -0
  77. package/dist/commands/env.d.ts +3 -0
  78. package/dist/commands/env.d.ts.map +1 -0
  79. package/dist/commands/env.js +18 -0
  80. package/dist/commands/exit.d.ts +3 -0
  81. package/dist/commands/exit.d.ts.map +1 -0
  82. package/dist/commands/exit.js +5 -0
  83. package/dist/commands/export.d.ts +3 -0
  84. package/dist/commands/export.d.ts.map +1 -0
  85. package/dist/commands/export.js +34 -0
  86. package/dist/commands/grep.d.ts +3 -0
  87. package/dist/commands/grep.d.ts.map +1 -0
  88. package/dist/commands/grep.js +69 -0
  89. package/dist/commands/help.d.ts +3 -0
  90. package/dist/commands/help.d.ts.map +1 -0
  91. package/dist/commands/help.js +7 -0
  92. package/dist/commands/helpers.d.ts +26 -0
  93. package/dist/commands/helpers.d.ts.map +1 -0
  94. package/dist/commands/helpers.js +160 -0
  95. package/dist/commands/hostname.d.ts +3 -0
  96. package/dist/commands/hostname.d.ts.map +1 -0
  97. package/dist/commands/hostname.js +5 -0
  98. package/dist/commands/htop.d.ts +3 -0
  99. package/dist/commands/htop.d.ts.map +1 -0
  100. package/dist/commands/htop.js +10 -0
  101. package/dist/commands/index.d.ts +8 -0
  102. package/dist/commands/index.d.ts.map +1 -0
  103. package/dist/commands/index.js +214 -0
  104. package/dist/commands/ls.d.ts +3 -0
  105. package/dist/commands/ls.d.ts.map +1 -0
  106. package/dist/commands/ls.js +47 -0
  107. package/dist/commands/mkdir.d.ts +3 -0
  108. package/dist/commands/mkdir.d.ts.map +1 -0
  109. package/dist/commands/mkdir.js +21 -0
  110. package/dist/commands/nano.d.ts +3 -0
  111. package/dist/commands/nano.d.ts.map +1 -0
  112. package/dist/commands/nano.js +27 -0
  113. package/dist/commands/neofetch.d.ts +3 -0
  114. package/dist/commands/neofetch.d.ts.map +1 -0
  115. package/dist/commands/neofetch.js +32 -0
  116. package/dist/commands/passwd.d.ts +3 -0
  117. package/dist/commands/passwd.d.ts.map +1 -0
  118. package/dist/commands/passwd.js +21 -0
  119. package/dist/commands/pwd.d.ts +3 -0
  120. package/dist/commands/pwd.d.ts.map +1 -0
  121. package/dist/commands/pwd.js +5 -0
  122. package/dist/commands/rm.d.ts +3 -0
  123. package/dist/commands/rm.d.ts.map +1 -0
  124. package/dist/commands/rm.js +29 -0
  125. package/dist/commands/set.d.ts +7 -0
  126. package/dist/commands/set.d.ts.map +1 -0
  127. package/dist/commands/set.js +64 -0
  128. package/dist/commands/sh.d.ts +4 -0
  129. package/dist/commands/sh.d.ts.map +1 -0
  130. package/dist/commands/sh.js +45 -0
  131. package/dist/commands/su.d.ts +3 -0
  132. package/dist/commands/su.d.ts.map +1 -0
  133. package/dist/commands/su.js +24 -0
  134. package/dist/commands/sudo.d.ts +3 -0
  135. package/dist/commands/sudo.d.ts.map +1 -0
  136. package/dist/commands/sudo.js +47 -0
  137. package/dist/commands/touch.d.ts +3 -0
  138. package/dist/commands/touch.d.ts.map +1 -0
  139. package/dist/commands/touch.js +18 -0
  140. package/dist/commands/tree.d.ts +3 -0
  141. package/dist/commands/tree.d.ts.map +1 -0
  142. package/dist/commands/tree.js +11 -0
  143. package/dist/commands/unset.d.ts +3 -0
  144. package/dist/commands/unset.d.ts.map +1 -0
  145. package/dist/commands/unset.js +15 -0
  146. package/dist/commands/wget.d.ts +3 -0
  147. package/dist/commands/wget.d.ts.map +1 -0
  148. package/dist/commands/wget.js +113 -0
  149. package/dist/commands/who.d.ts +3 -0
  150. package/dist/commands/who.d.ts.map +1 -0
  151. package/dist/commands/who.js +15 -0
  152. package/dist/commands/whoami.d.ts +3 -0
  153. package/dist/commands/whoami.d.ts.map +1 -0
  154. package/dist/commands/whoami.js +5 -0
  155. package/dist/index.d.ts +11 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +7 -0
  158. package/dist/modules/neofetch.d.ts +19 -0
  159. package/dist/modules/neofetch.d.ts.map +1 -0
  160. package/dist/modules/neofetch.js +283 -0
  161. package/dist/modules/shellInteractive.d.ts +6 -0
  162. package/dist/modules/shellInteractive.d.ts.map +1 -0
  163. package/dist/modules/shellInteractive.js +26 -0
  164. package/dist/modules/shellRuntime.d.ts +11 -0
  165. package/dist/modules/shellRuntime.d.ts.map +1 -0
  166. package/dist/modules/shellRuntime.js +52 -0
  167. package/dist/standalone.d.ts +2 -0
  168. package/dist/standalone.d.ts.map +1 -0
  169. package/dist/standalone.js +25 -0
  170. package/dist/types/commands.d.ts +89 -0
  171. package/dist/types/commands.d.ts.map +1 -0
  172. package/dist/types/commands.js +0 -0
  173. package/dist/types/pipeline.d.ts +23 -0
  174. package/dist/types/pipeline.d.ts.map +1 -0
  175. package/dist/types/pipeline.js +0 -0
  176. package/dist/types/streams.d.ts +32 -0
  177. package/dist/types/streams.d.ts.map +1 -0
  178. package/dist/types/streams.js +0 -0
  179. package/dist/types/vfs.d.ts +71 -0
  180. package/dist/types/vfs.d.ts.map +1 -0
  181. package/dist/types/vfs.js +0 -0
  182. package/package.json +4 -2
  183. package/src/VirtualShell/shell.ts +3 -3
  184. package/src/VirtualUserManager/index.ts +18 -0
  185. package/src/commands/index.ts +2 -0
  186. package/src/commands/neofetch.ts +1 -1
  187. package/src/commands/passwd.ts +25 -0
  188. package/{modules → src/modules}/neofetch.ts +55 -52
  189. package/{modules → src/modules}/shellInteractive.ts +16 -4
  190. package/tests/users.test.ts +13 -0
  191. package/tsconfig.json +20 -8
  192. /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 "../src/types/streams";
3
- import { shellQuote, type TerminalSize, withTerminalSize } from "./shellRuntime";
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(`nano -- ${shellQuote(tempPath)}`, terminalSize, stream);
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(`htop -p ${shellQuote(pidList)}`, terminalSize, stream);
52
+ return spawnScriptProcess(
53
+ `htop -p ${shellQuote(pidList)}`,
54
+ terminalSize,
55
+ stream,
56
+ );
45
57
  }
@@ -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": ["ESNext"],
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": true,
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
- "types": ["node", "bun"]
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