typescript-virtual-container 1.5.1 → 1.5.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 (614) hide show
  1. package/.vscode/settings.json +2 -2
  2. package/README.md +34 -28
  3. package/build.js +22 -0
  4. package/builds/{fortune-nyx-v1.5.1-directbash-k6.1.0.mjs → fortune-nyx-v1.5.3-directbash-k6.1.0.mjs} +187 -191
  5. package/builds/{fortune-nyx-v1.5.1-ssh-nosftp.js → fortune-nyx-v1.5.3-ssh-nosftp.js} +214 -218
  6. package/builds/{fortune-nyx-v1.5.1-ssh.cjs → fortune-nyx-v1.5.3-ssh.cjs} +142 -146
  7. package/builds/fortune-nyx-v1.5.3-web.min.js +17036 -0
  8. package/bun.lock +74 -0
  9. package/dist/Honeypot/index.d.ts +0 -1
  10. package/dist/Honeypot/index.js +0 -1
  11. package/dist/SSHClient/index.d.ts +0 -1
  12. package/dist/SSHClient/index.js +0 -1
  13. package/dist/SSHMimic/exec.d.ts +0 -1
  14. package/dist/SSHMimic/exec.js +0 -1
  15. package/dist/SSHMimic/executor.d.ts +0 -1
  16. package/dist/SSHMimic/executor.js +0 -1
  17. package/dist/SSHMimic/hostKey.d.ts +0 -1
  18. package/dist/SSHMimic/hostKey.js +0 -1
  19. package/dist/SSHMimic/index.d.ts +0 -1
  20. package/dist/SSHMimic/index.js +0 -1
  21. package/dist/SSHMimic/loginBanner.d.ts +0 -1
  22. package/dist/SSHMimic/loginBanner.js +0 -1
  23. package/dist/SSHMimic/loginFormat.d.ts +0 -1
  24. package/dist/SSHMimic/loginFormat.js +0 -1
  25. package/dist/SSHMimic/prompt.d.ts +0 -1
  26. package/dist/SSHMimic/prompt.js +0 -1
  27. package/dist/SSHMimic/sftp.d.ts +0 -1
  28. package/dist/SSHMimic/sftp.js +0 -1
  29. package/dist/VirtualFileSystem/binaryPack.d.ts +0 -1
  30. package/dist/VirtualFileSystem/binaryPack.js +0 -1
  31. package/dist/VirtualFileSystem/index.d.ts +0 -1
  32. package/dist/VirtualFileSystem/index.js +0 -1
  33. package/dist/VirtualFileSystem/internalTypes.d.ts +0 -1
  34. package/dist/VirtualFileSystem/internalTypes.js +0 -1
  35. package/dist/VirtualFileSystem/journal.d.ts +0 -1
  36. package/dist/VirtualFileSystem/journal.js +0 -1
  37. package/dist/VirtualFileSystem/path.d.ts +0 -1
  38. package/dist/VirtualFileSystem/path.js +0 -1
  39. package/dist/VirtualPackageManager/index.d.ts +0 -1
  40. package/dist/VirtualPackageManager/index.js +3 -14
  41. package/dist/VirtualShell/idleManager.d.ts +0 -1
  42. package/dist/VirtualShell/idleManager.js +0 -1
  43. package/dist/VirtualShell/index.d.ts +3 -2
  44. package/dist/VirtualShell/index.js +4 -2
  45. package/dist/VirtualShell/shell.d.ts +0 -1
  46. package/dist/VirtualShell/shell.js +0 -1
  47. package/dist/VirtualShell/shellParser.d.ts +0 -1
  48. package/dist/VirtualShell/shellParser.js +0 -1
  49. package/dist/VirtualUserManager/index.d.ts +0 -1
  50. package/dist/VirtualUserManager/index.js +0 -1
  51. package/dist/commands/adduser.d.ts +0 -1
  52. package/dist/commands/adduser.js +0 -1
  53. package/dist/commands/alias.d.ts +0 -1
  54. package/dist/commands/alias.js +0 -1
  55. package/dist/commands/apt.d.ts +0 -1
  56. package/dist/commands/apt.js +0 -1
  57. package/dist/commands/awk.d.ts +0 -1
  58. package/dist/commands/awk.js +0 -1
  59. package/dist/commands/base64.d.ts +0 -1
  60. package/dist/commands/base64.js +0 -1
  61. package/dist/commands/cat.d.ts +0 -1
  62. package/dist/commands/cat.js +0 -1
  63. package/dist/commands/cd.d.ts +0 -1
  64. package/dist/commands/cd.js +0 -1
  65. package/dist/commands/chmod.d.ts +0 -1
  66. package/dist/commands/chmod.js +0 -1
  67. package/dist/commands/clear.d.ts +0 -1
  68. package/dist/commands/clear.js +0 -1
  69. package/dist/commands/command-helpers.d.ts +0 -1
  70. package/dist/commands/command-helpers.js +0 -1
  71. package/dist/commands/cp.d.ts +0 -1
  72. package/dist/commands/cp.js +0 -1
  73. package/dist/commands/curl.d.ts +0 -1
  74. package/dist/commands/curl.js +0 -1
  75. package/dist/commands/cut.d.ts +0 -1
  76. package/dist/commands/cut.js +0 -1
  77. package/dist/commands/date.d.ts +0 -1
  78. package/dist/commands/date.js +0 -1
  79. package/dist/commands/declare.d.ts +0 -1
  80. package/dist/commands/declare.js +0 -1
  81. package/dist/commands/deluser.d.ts +0 -1
  82. package/dist/commands/deluser.js +0 -1
  83. package/dist/commands/df.d.ts +0 -1
  84. package/dist/commands/df.js +0 -1
  85. package/dist/commands/diff.d.ts +0 -1
  86. package/dist/commands/diff.js +0 -1
  87. package/dist/commands/dpkg.d.ts +0 -1
  88. package/dist/commands/dpkg.js +0 -1
  89. package/dist/commands/du.d.ts +0 -1
  90. package/dist/commands/du.js +0 -1
  91. package/dist/commands/echo.d.ts +0 -1
  92. package/dist/commands/echo.js +0 -1
  93. package/dist/commands/env.d.ts +0 -1
  94. package/dist/commands/env.js +0 -1
  95. package/dist/commands/exit.d.ts +0 -1
  96. package/dist/commands/exit.js +0 -1
  97. package/dist/commands/export.d.ts +0 -1
  98. package/dist/commands/export.js +0 -1
  99. package/dist/commands/find.d.ts +0 -1
  100. package/dist/commands/find.js +0 -1
  101. package/dist/commands/free.d.ts +0 -1
  102. package/dist/commands/free.js +0 -1
  103. package/dist/commands/grep.d.ts +0 -1
  104. package/dist/commands/grep.js +0 -1
  105. package/dist/commands/groups.d.ts +0 -1
  106. package/dist/commands/groups.js +0 -1
  107. package/dist/commands/gzip.d.ts +0 -1
  108. package/dist/commands/gzip.js +0 -1
  109. package/dist/commands/head.d.ts +0 -1
  110. package/dist/commands/head.js +0 -1
  111. package/dist/commands/help.d.ts +0 -1
  112. package/dist/commands/help.js +0 -1
  113. package/dist/commands/helpers.d.ts +0 -1
  114. package/dist/commands/helpers.js +0 -1
  115. package/dist/commands/history.d.ts +0 -1
  116. package/dist/commands/history.js +0 -1
  117. package/dist/commands/hostname.d.ts +0 -1
  118. package/dist/commands/hostname.js +0 -1
  119. package/dist/commands/htop.d.ts +0 -1
  120. package/dist/commands/htop.js +0 -1
  121. package/dist/commands/id.d.ts +0 -1
  122. package/dist/commands/id.js +0 -1
  123. package/dist/commands/index.d.ts +0 -1
  124. package/dist/commands/index.js +0 -1
  125. package/dist/commands/kill.d.ts +0 -1
  126. package/dist/commands/kill.js +0 -1
  127. package/dist/commands/ln.d.ts +0 -1
  128. package/dist/commands/ln.js +0 -1
  129. package/dist/commands/ls.d.ts +0 -1
  130. package/dist/commands/ls.js +0 -1
  131. package/dist/commands/lsb-release.d.ts +0 -1
  132. package/dist/commands/lsb-release.js +0 -1
  133. package/dist/commands/man.d.ts +0 -1
  134. package/dist/commands/man.js +0 -1
  135. package/dist/commands/manuals-bundle.d.ts +0 -1
  136. package/dist/commands/manuals-bundle.js +0 -1
  137. package/dist/commands/mkdir.d.ts +0 -1
  138. package/dist/commands/mkdir.js +0 -1
  139. package/dist/commands/mv.d.ts +0 -1
  140. package/dist/commands/mv.js +0 -1
  141. package/dist/commands/nano.d.ts +0 -1
  142. package/dist/commands/nano.js +0 -1
  143. package/dist/commands/neofetch.d.ts +0 -1
  144. package/dist/commands/neofetch.js +0 -1
  145. package/dist/commands/node.d.ts +0 -1
  146. package/dist/commands/node.js +0 -1
  147. package/dist/commands/npm.d.ts +0 -1
  148. package/dist/commands/npm.js +0 -1
  149. package/dist/commands/passwd.d.ts +0 -1
  150. package/dist/commands/passwd.js +0 -1
  151. package/dist/commands/ping.d.ts +0 -1
  152. package/dist/commands/ping.js +0 -1
  153. package/dist/commands/printf.d.ts +0 -1
  154. package/dist/commands/printf.js +0 -1
  155. package/dist/commands/ps.d.ts +0 -1
  156. package/dist/commands/ps.js +0 -1
  157. package/dist/commands/pwd.d.ts +0 -1
  158. package/dist/commands/pwd.js +0 -1
  159. package/dist/commands/python.d.ts +0 -1
  160. package/dist/commands/python.js +0 -1
  161. package/dist/commands/read.d.ts +0 -1
  162. package/dist/commands/read.js +0 -1
  163. package/dist/commands/registry.d.ts +0 -1
  164. package/dist/commands/registry.js +0 -1
  165. package/dist/commands/rm.d.ts +0 -1
  166. package/dist/commands/rm.js +0 -1
  167. package/dist/commands/runtime.d.ts +0 -1
  168. package/dist/commands/runtime.js +139 -107
  169. package/dist/commands/sed.d.ts +0 -1
  170. package/dist/commands/sed.js +0 -1
  171. package/dist/commands/seq.d.ts +0 -1
  172. package/dist/commands/seq.js +0 -1
  173. package/dist/commands/set.d.ts +0 -1
  174. package/dist/commands/set.js +0 -1
  175. package/dist/commands/sh.d.ts +0 -1
  176. package/dist/commands/sh.js +0 -1
  177. package/dist/commands/shift.d.ts +0 -1
  178. package/dist/commands/shift.js +0 -1
  179. package/dist/commands/sleep.d.ts +0 -1
  180. package/dist/commands/sleep.js +0 -1
  181. package/dist/commands/sort.d.ts +0 -1
  182. package/dist/commands/sort.js +0 -1
  183. package/dist/commands/source.d.ts +0 -1
  184. package/dist/commands/source.js +0 -1
  185. package/dist/commands/stat.d.ts +0 -1
  186. package/dist/commands/stat.js +0 -1
  187. package/dist/commands/su.d.ts +0 -1
  188. package/dist/commands/su.js +0 -1
  189. package/dist/commands/sudo.d.ts +0 -1
  190. package/dist/commands/sudo.js +0 -1
  191. package/dist/commands/tail.d.ts +0 -1
  192. package/dist/commands/tail.js +0 -1
  193. package/dist/commands/tar.d.ts +0 -1
  194. package/dist/commands/tar.js +0 -1
  195. package/dist/commands/tee.d.ts +0 -1
  196. package/dist/commands/tee.js +0 -1
  197. package/dist/commands/test.d.ts +0 -1
  198. package/dist/commands/test.js +0 -1
  199. package/dist/commands/touch.d.ts +0 -1
  200. package/dist/commands/touch.js +0 -1
  201. package/dist/commands/tr.d.ts +0 -1
  202. package/dist/commands/tr.js +0 -1
  203. package/dist/commands/tree.d.ts +0 -1
  204. package/dist/commands/tree.js +0 -1
  205. package/dist/commands/true.d.ts +0 -1
  206. package/dist/commands/true.js +0 -1
  207. package/dist/commands/type.d.ts +0 -1
  208. package/dist/commands/type.js +0 -1
  209. package/dist/commands/uname.d.ts +0 -1
  210. package/dist/commands/uname.js +0 -1
  211. package/dist/commands/uniq.d.ts +0 -1
  212. package/dist/commands/uniq.js +0 -1
  213. package/dist/commands/unset.d.ts +0 -1
  214. package/dist/commands/unset.js +0 -1
  215. package/dist/commands/uptime.d.ts +0 -1
  216. package/dist/commands/uptime.js +0 -1
  217. package/dist/commands/wc.d.ts +0 -1
  218. package/dist/commands/wc.js +0 -1
  219. package/dist/commands/wget.d.ts +0 -1
  220. package/dist/commands/wget.js +0 -1
  221. package/dist/commands/which.d.ts +0 -1
  222. package/dist/commands/which.js +0 -1
  223. package/dist/commands/who.d.ts +0 -1
  224. package/dist/commands/who.js +0 -1
  225. package/dist/commands/whoami.d.ts +0 -1
  226. package/dist/commands/whoami.js +0 -1
  227. package/dist/commands/xargs.d.ts +0 -1
  228. package/dist/commands/xargs.js +0 -1
  229. package/dist/index.d.ts +0 -1
  230. package/dist/index.js +0 -1
  231. package/dist/modules/linuxRootfs.d.ts +0 -1
  232. package/dist/modules/linuxRootfs.js +0 -1
  233. package/dist/modules/neofetch.d.ts +0 -1
  234. package/dist/modules/neofetch.js +0 -1
  235. package/dist/modules/shellInteractive.d.ts +0 -1
  236. package/dist/modules/shellInteractive.js +0 -1
  237. package/dist/modules/shellRuntime.d.ts +0 -1
  238. package/dist/modules/shellRuntime.js +0 -1
  239. package/dist/self-standalone.d.ts +0 -1
  240. package/dist/self-standalone.js +0 -1
  241. package/dist/standalone-wo-sftp.d.ts +0 -1
  242. package/dist/standalone-wo-sftp.js +0 -1
  243. package/dist/standalone.d.ts +0 -1
  244. package/dist/standalone.js +0 -1
  245. package/dist/types/commands.d.ts +0 -1
  246. package/dist/types/commands.js +0 -1
  247. package/dist/types/pipeline.d.ts +0 -1
  248. package/dist/types/pipeline.js +0 -1
  249. package/dist/types/streams.d.ts +0 -1
  250. package/dist/types/streams.js +0 -1
  251. package/dist/types/vfs.d.ts +0 -1
  252. package/dist/types/vfs.js +0 -1
  253. package/dist/utils/expand.d.ts +0 -1
  254. package/dist/utils/expand.js +0 -1
  255. package/dist/utils/perfLogger.d.ts +0 -1
  256. package/dist/utils/perfLogger.js +0 -1
  257. package/dist/utils/tokenize.d.ts +0 -1
  258. package/dist/utils/tokenize.js +0 -1
  259. package/dist/utils/vfsDiff.d.ts +0 -1
  260. package/dist/utils/vfsDiff.js +0 -1
  261. package/docs/app.js +1751 -0
  262. package/docs/classes/HoneyPot.html +17 -17
  263. package/docs/classes/IdleManager.html +8 -8
  264. package/docs/classes/SshClient.html +34 -34
  265. package/docs/classes/VirtualFileSystem.html +38 -38
  266. package/docs/classes/VirtualPackageManager.html +19 -19
  267. package/docs/classes/VirtualSftpServer.html +3 -3
  268. package/docs/classes/VirtualShell.html +41 -40
  269. package/docs/classes/VirtualSshServer.html +8 -8
  270. package/docs/classes/VirtualUserManager.html +32 -32
  271. package/docs/demo.html +82 -0
  272. package/docs/functions/assertDiff.html +3 -3
  273. package/docs/functions/diffSnapshots.html +5 -5
  274. package/docs/functions/formatDiff.html +3 -3
  275. package/docs/functions/getArg.html +3 -3
  276. package/docs/functions/getFlag.html +2 -2
  277. package/docs/functions/ifFlag.html +2 -2
  278. package/docs/hierarchy.html +1 -1
  279. package/docs/index.html +41 -19
  280. package/docs/interfaces/AuditLogEntry.html +3 -3
  281. package/docs/interfaces/CommandContext.html +13 -13
  282. package/docs/interfaces/CommandResult.html +13 -13
  283. package/docs/interfaces/ExecStream.html +6 -6
  284. package/docs/interfaces/HoneyPotStats.html +3 -3
  285. package/docs/interfaces/IdleManagerOptions.html +3 -3
  286. package/docs/interfaces/InstalledPackage.html +11 -11
  287. package/docs/interfaces/NanoEditorSession.html +5 -5
  288. package/docs/interfaces/PackageDefinition.html +14 -14
  289. package/docs/interfaces/PackageFile.html +5 -5
  290. package/docs/interfaces/PasswordChallenge.html +9 -9
  291. package/docs/interfaces/RemoveOptions.html +3 -3
  292. package/docs/interfaces/ShellEnv.html +4 -4
  293. package/docs/interfaces/ShellModule.html +8 -8
  294. package/docs/interfaces/ShellProperties.html +5 -5
  295. package/docs/interfaces/ShellStream.html +7 -7
  296. package/docs/interfaces/SudoChallenge.html +9 -9
  297. package/docs/interfaces/VfsBaseNode.html +7 -7
  298. package/docs/interfaces/VfsDiff.html +7 -7
  299. package/docs/interfaces/VfsDiffEntry.html +4 -4
  300. package/docs/interfaces/VfsDiffModified.html +6 -6
  301. package/docs/interfaces/VfsDirectoryNode.html +8 -8
  302. package/docs/interfaces/VfsFileNode.html +9 -9
  303. package/docs/interfaces/VfsOptions.html +6 -6
  304. package/docs/interfaces/VfsSnapshot.html +3 -3
  305. package/docs/interfaces/VfsSnapshotBaseNode.html +4 -4
  306. package/docs/interfaces/VfsSnapshotDirectoryNode.html +5 -5
  307. package/docs/interfaces/VfsSnapshotFileNode.html +6 -6
  308. package/docs/interfaces/VirtualActiveSession.html +7 -7
  309. package/docs/interfaces/VirtualSftpServerOptions.html +3 -3
  310. package/docs/interfaces/VirtualShellVfsLike.html +4 -4
  311. package/docs/interfaces/VirtualShellVfsOptions.html +3 -3
  312. package/docs/interfaces/WriteFileOptions.html +4 -4
  313. package/docs/modules.html +1 -1
  314. package/docs/types/ArgParseOptions.html +3 -3
  315. package/docs/types/CommandMode.html +2 -2
  316. package/docs/types/CommandOutcome.html +2 -2
  317. package/docs/types/IdleState.html +1 -1
  318. package/docs/types/VfsNodeStats.html +2 -2
  319. package/docs/types/VfsNodeType.html +2 -2
  320. package/docs/types/VfsPersistenceMode.html +2 -2
  321. package/docs/types/VfsSnapshotNode.html +2 -2
  322. package/examples/app.js +1751 -28
  323. package/examples/app.ts +299 -0
  324. package/examples/build.js +27 -0
  325. package/examples/demo.html +33 -0
  326. package/examples/index.html +68 -13
  327. package/package.json +3 -2
  328. package/polyfills/buffer.js +117 -0
  329. package/polyfills/node_crypto/index.js +167 -7
  330. package/polyfills/node_fs/index.js +202 -8
  331. package/polyfills/node_path/index.js +23 -9
  332. package/polyfills/process.js +14 -0
  333. package/polyfills/ssh2/index.js +75 -0
  334. package/scripts/build-all.mjs +77 -49
  335. package/scripts/build-names.mjs +2 -3
  336. package/src/VirtualPackageManager/index.ts +4 -15
  337. package/src/VirtualShell/index.ts +5 -2
  338. package/src/commands/runtime.ts +44 -1
  339. package/tsconfig.json +6 -3
  340. package/typedoc.json +4 -2
  341. package/builds/fortune-nyx-v1.5.1-web-full.min.js +0 -12
  342. package/builds/fortune-nyx-v1.5.1-web.min.js +0 -12
  343. package/dist/Honeypot/index.d.ts.map +0 -1
  344. package/dist/Honeypot/index.js.map +0 -1
  345. package/dist/SSHClient/index.d.ts.map +0 -1
  346. package/dist/SSHClient/index.js.map +0 -1
  347. package/dist/SSHMimic/exec.d.ts.map +0 -1
  348. package/dist/SSHMimic/exec.js.map +0 -1
  349. package/dist/SSHMimic/executor.d.ts.map +0 -1
  350. package/dist/SSHMimic/executor.js.map +0 -1
  351. package/dist/SSHMimic/hostKey.d.ts.map +0 -1
  352. package/dist/SSHMimic/hostKey.js.map +0 -1
  353. package/dist/SSHMimic/index.d.ts.map +0 -1
  354. package/dist/SSHMimic/index.js.map +0 -1
  355. package/dist/SSHMimic/loginBanner.d.ts.map +0 -1
  356. package/dist/SSHMimic/loginBanner.js.map +0 -1
  357. package/dist/SSHMimic/loginFormat.d.ts.map +0 -1
  358. package/dist/SSHMimic/loginFormat.js.map +0 -1
  359. package/dist/SSHMimic/prompt.d.ts.map +0 -1
  360. package/dist/SSHMimic/prompt.js.map +0 -1
  361. package/dist/SSHMimic/sftp.d.ts.map +0 -1
  362. package/dist/SSHMimic/sftp.js.map +0 -1
  363. package/dist/VirtualFileSystem/binaryPack.d.ts.map +0 -1
  364. package/dist/VirtualFileSystem/binaryPack.js.map +0 -1
  365. package/dist/VirtualFileSystem/index.d.ts.map +0 -1
  366. package/dist/VirtualFileSystem/index.js.map +0 -1
  367. package/dist/VirtualFileSystem/internalTypes.d.ts.map +0 -1
  368. package/dist/VirtualFileSystem/internalTypes.js.map +0 -1
  369. package/dist/VirtualFileSystem/journal.d.ts.map +0 -1
  370. package/dist/VirtualFileSystem/journal.js.map +0 -1
  371. package/dist/VirtualFileSystem/path.d.ts.map +0 -1
  372. package/dist/VirtualFileSystem/path.js.map +0 -1
  373. package/dist/VirtualPackageManager/index.d.ts.map +0 -1
  374. package/dist/VirtualPackageManager/index.js.map +0 -1
  375. package/dist/VirtualShell/idleManager.d.ts.map +0 -1
  376. package/dist/VirtualShell/idleManager.js.map +0 -1
  377. package/dist/VirtualShell/index.d.ts.map +0 -1
  378. package/dist/VirtualShell/index.js.map +0 -1
  379. package/dist/VirtualShell/shell.d.ts.map +0 -1
  380. package/dist/VirtualShell/shell.js.map +0 -1
  381. package/dist/VirtualShell/shellParser.d.ts.map +0 -1
  382. package/dist/VirtualShell/shellParser.js.map +0 -1
  383. package/dist/VirtualUserManager/index.d.ts.map +0 -1
  384. package/dist/VirtualUserManager/index.js.map +0 -1
  385. package/dist/commands/adduser.d.ts.map +0 -1
  386. package/dist/commands/adduser.js.map +0 -1
  387. package/dist/commands/alias.d.ts.map +0 -1
  388. package/dist/commands/alias.js.map +0 -1
  389. package/dist/commands/apt.d.ts.map +0 -1
  390. package/dist/commands/apt.js.map +0 -1
  391. package/dist/commands/awk.d.ts.map +0 -1
  392. package/dist/commands/awk.js.map +0 -1
  393. package/dist/commands/base64.d.ts.map +0 -1
  394. package/dist/commands/base64.js.map +0 -1
  395. package/dist/commands/cat.d.ts.map +0 -1
  396. package/dist/commands/cat.js.map +0 -1
  397. package/dist/commands/cd.d.ts.map +0 -1
  398. package/dist/commands/cd.js.map +0 -1
  399. package/dist/commands/chmod.d.ts.map +0 -1
  400. package/dist/commands/chmod.js.map +0 -1
  401. package/dist/commands/clear.d.ts.map +0 -1
  402. package/dist/commands/clear.js.map +0 -1
  403. package/dist/commands/command-helpers.d.ts.map +0 -1
  404. package/dist/commands/command-helpers.js.map +0 -1
  405. package/dist/commands/cp.d.ts.map +0 -1
  406. package/dist/commands/cp.js.map +0 -1
  407. package/dist/commands/curl.d.ts.map +0 -1
  408. package/dist/commands/curl.js.map +0 -1
  409. package/dist/commands/cut.d.ts.map +0 -1
  410. package/dist/commands/cut.js.map +0 -1
  411. package/dist/commands/date.d.ts.map +0 -1
  412. package/dist/commands/date.js.map +0 -1
  413. package/dist/commands/declare.d.ts.map +0 -1
  414. package/dist/commands/declare.js.map +0 -1
  415. package/dist/commands/deluser.d.ts.map +0 -1
  416. package/dist/commands/deluser.js.map +0 -1
  417. package/dist/commands/df.d.ts.map +0 -1
  418. package/dist/commands/df.js.map +0 -1
  419. package/dist/commands/diff.d.ts.map +0 -1
  420. package/dist/commands/diff.js.map +0 -1
  421. package/dist/commands/dpkg.d.ts.map +0 -1
  422. package/dist/commands/dpkg.js.map +0 -1
  423. package/dist/commands/du.d.ts.map +0 -1
  424. package/dist/commands/du.js.map +0 -1
  425. package/dist/commands/echo.d.ts.map +0 -1
  426. package/dist/commands/echo.js.map +0 -1
  427. package/dist/commands/env.d.ts.map +0 -1
  428. package/dist/commands/env.js.map +0 -1
  429. package/dist/commands/exit.d.ts.map +0 -1
  430. package/dist/commands/exit.js.map +0 -1
  431. package/dist/commands/export.d.ts.map +0 -1
  432. package/dist/commands/export.js.map +0 -1
  433. package/dist/commands/find.d.ts.map +0 -1
  434. package/dist/commands/find.js.map +0 -1
  435. package/dist/commands/free.d.ts.map +0 -1
  436. package/dist/commands/free.js.map +0 -1
  437. package/dist/commands/grep.d.ts.map +0 -1
  438. package/dist/commands/grep.js.map +0 -1
  439. package/dist/commands/groups.d.ts.map +0 -1
  440. package/dist/commands/groups.js.map +0 -1
  441. package/dist/commands/gzip.d.ts.map +0 -1
  442. package/dist/commands/gzip.js.map +0 -1
  443. package/dist/commands/head.d.ts.map +0 -1
  444. package/dist/commands/head.js.map +0 -1
  445. package/dist/commands/help.d.ts.map +0 -1
  446. package/dist/commands/help.js.map +0 -1
  447. package/dist/commands/helpers.d.ts.map +0 -1
  448. package/dist/commands/helpers.js.map +0 -1
  449. package/dist/commands/history.d.ts.map +0 -1
  450. package/dist/commands/history.js.map +0 -1
  451. package/dist/commands/hostname.d.ts.map +0 -1
  452. package/dist/commands/hostname.js.map +0 -1
  453. package/dist/commands/htop.d.ts.map +0 -1
  454. package/dist/commands/htop.js.map +0 -1
  455. package/dist/commands/id.d.ts.map +0 -1
  456. package/dist/commands/id.js.map +0 -1
  457. package/dist/commands/index.d.ts.map +0 -1
  458. package/dist/commands/index.js.map +0 -1
  459. package/dist/commands/kill.d.ts.map +0 -1
  460. package/dist/commands/kill.js.map +0 -1
  461. package/dist/commands/ln.d.ts.map +0 -1
  462. package/dist/commands/ln.js.map +0 -1
  463. package/dist/commands/ls.d.ts.map +0 -1
  464. package/dist/commands/ls.js.map +0 -1
  465. package/dist/commands/lsb-release.d.ts.map +0 -1
  466. package/dist/commands/lsb-release.js.map +0 -1
  467. package/dist/commands/man.d.ts.map +0 -1
  468. package/dist/commands/man.js.map +0 -1
  469. package/dist/commands/manuals-bundle.d.ts.map +0 -1
  470. package/dist/commands/manuals-bundle.js.map +0 -1
  471. package/dist/commands/mkdir.d.ts.map +0 -1
  472. package/dist/commands/mkdir.js.map +0 -1
  473. package/dist/commands/mv.d.ts.map +0 -1
  474. package/dist/commands/mv.js.map +0 -1
  475. package/dist/commands/nano.d.ts.map +0 -1
  476. package/dist/commands/nano.js.map +0 -1
  477. package/dist/commands/neofetch.d.ts.map +0 -1
  478. package/dist/commands/neofetch.js.map +0 -1
  479. package/dist/commands/node.d.ts.map +0 -1
  480. package/dist/commands/node.js.map +0 -1
  481. package/dist/commands/npm.d.ts.map +0 -1
  482. package/dist/commands/npm.js.map +0 -1
  483. package/dist/commands/passwd.d.ts.map +0 -1
  484. package/dist/commands/passwd.js.map +0 -1
  485. package/dist/commands/ping.d.ts.map +0 -1
  486. package/dist/commands/ping.js.map +0 -1
  487. package/dist/commands/printf.d.ts.map +0 -1
  488. package/dist/commands/printf.js.map +0 -1
  489. package/dist/commands/ps.d.ts.map +0 -1
  490. package/dist/commands/ps.js.map +0 -1
  491. package/dist/commands/pwd.d.ts.map +0 -1
  492. package/dist/commands/pwd.js.map +0 -1
  493. package/dist/commands/python.d.ts.map +0 -1
  494. package/dist/commands/python.js.map +0 -1
  495. package/dist/commands/read.d.ts.map +0 -1
  496. package/dist/commands/read.js.map +0 -1
  497. package/dist/commands/registry.d.ts.map +0 -1
  498. package/dist/commands/registry.js.map +0 -1
  499. package/dist/commands/rm.d.ts.map +0 -1
  500. package/dist/commands/rm.js.map +0 -1
  501. package/dist/commands/runtime.d.ts.map +0 -1
  502. package/dist/commands/runtime.js.map +0 -1
  503. package/dist/commands/sed.d.ts.map +0 -1
  504. package/dist/commands/sed.js.map +0 -1
  505. package/dist/commands/seq.d.ts.map +0 -1
  506. package/dist/commands/seq.js.map +0 -1
  507. package/dist/commands/set.d.ts.map +0 -1
  508. package/dist/commands/set.js.map +0 -1
  509. package/dist/commands/sh.d.ts.map +0 -1
  510. package/dist/commands/sh.js.map +0 -1
  511. package/dist/commands/shift.d.ts.map +0 -1
  512. package/dist/commands/shift.js.map +0 -1
  513. package/dist/commands/sleep.d.ts.map +0 -1
  514. package/dist/commands/sleep.js.map +0 -1
  515. package/dist/commands/sort.d.ts.map +0 -1
  516. package/dist/commands/sort.js.map +0 -1
  517. package/dist/commands/source.d.ts.map +0 -1
  518. package/dist/commands/source.js.map +0 -1
  519. package/dist/commands/stat.d.ts.map +0 -1
  520. package/dist/commands/stat.js.map +0 -1
  521. package/dist/commands/su.d.ts.map +0 -1
  522. package/dist/commands/su.js.map +0 -1
  523. package/dist/commands/sudo.d.ts.map +0 -1
  524. package/dist/commands/sudo.js.map +0 -1
  525. package/dist/commands/tail.d.ts.map +0 -1
  526. package/dist/commands/tail.js.map +0 -1
  527. package/dist/commands/tar.d.ts.map +0 -1
  528. package/dist/commands/tar.js.map +0 -1
  529. package/dist/commands/tee.d.ts.map +0 -1
  530. package/dist/commands/tee.js.map +0 -1
  531. package/dist/commands/test.d.ts.map +0 -1
  532. package/dist/commands/test.js.map +0 -1
  533. package/dist/commands/touch.d.ts.map +0 -1
  534. package/dist/commands/touch.js.map +0 -1
  535. package/dist/commands/tr.d.ts.map +0 -1
  536. package/dist/commands/tr.js.map +0 -1
  537. package/dist/commands/tree.d.ts.map +0 -1
  538. package/dist/commands/tree.js.map +0 -1
  539. package/dist/commands/true.d.ts.map +0 -1
  540. package/dist/commands/true.js.map +0 -1
  541. package/dist/commands/type.d.ts.map +0 -1
  542. package/dist/commands/type.js.map +0 -1
  543. package/dist/commands/uname.d.ts.map +0 -1
  544. package/dist/commands/uname.js.map +0 -1
  545. package/dist/commands/uniq.d.ts.map +0 -1
  546. package/dist/commands/uniq.js.map +0 -1
  547. package/dist/commands/unset.d.ts.map +0 -1
  548. package/dist/commands/unset.js.map +0 -1
  549. package/dist/commands/uptime.d.ts.map +0 -1
  550. package/dist/commands/uptime.js.map +0 -1
  551. package/dist/commands/wc.d.ts.map +0 -1
  552. package/dist/commands/wc.js.map +0 -1
  553. package/dist/commands/wget.d.ts.map +0 -1
  554. package/dist/commands/wget.js.map +0 -1
  555. package/dist/commands/which.d.ts.map +0 -1
  556. package/dist/commands/which.js.map +0 -1
  557. package/dist/commands/who.d.ts.map +0 -1
  558. package/dist/commands/who.js.map +0 -1
  559. package/dist/commands/whoami.d.ts.map +0 -1
  560. package/dist/commands/whoami.js.map +0 -1
  561. package/dist/commands/xargs.d.ts.map +0 -1
  562. package/dist/commands/xargs.js.map +0 -1
  563. package/dist/index.d.ts.map +0 -1
  564. package/dist/index.js.map +0 -1
  565. package/dist/modules/linuxRootfs.d.ts.map +0 -1
  566. package/dist/modules/linuxRootfs.js.map +0 -1
  567. package/dist/modules/neofetch.d.ts.map +0 -1
  568. package/dist/modules/neofetch.js.map +0 -1
  569. package/dist/modules/shellInteractive.d.ts.map +0 -1
  570. package/dist/modules/shellInteractive.js.map +0 -1
  571. package/dist/modules/shellRuntime.d.ts.map +0 -1
  572. package/dist/modules/shellRuntime.js.map +0 -1
  573. package/dist/self-standalone.d.ts.map +0 -1
  574. package/dist/self-standalone.js.map +0 -1
  575. package/dist/standalone-wo-sftp.d.ts.map +0 -1
  576. package/dist/standalone-wo-sftp.js.map +0 -1
  577. package/dist/standalone.d.ts.map +0 -1
  578. package/dist/standalone.js.map +0 -1
  579. package/dist/types/commands.d.ts.map +0 -1
  580. package/dist/types/commands.js.map +0 -1
  581. package/dist/types/pipeline.d.ts.map +0 -1
  582. package/dist/types/pipeline.js.map +0 -1
  583. package/dist/types/streams.d.ts.map +0 -1
  584. package/dist/types/streams.js.map +0 -1
  585. package/dist/types/vfs.d.ts.map +0 -1
  586. package/dist/types/vfs.js.map +0 -1
  587. package/dist/utils/expand.d.ts.map +0 -1
  588. package/dist/utils/expand.js.map +0 -1
  589. package/dist/utils/perfLogger.d.ts.map +0 -1
  590. package/dist/utils/perfLogger.js.map +0 -1
  591. package/dist/utils/tokenize.d.ts.map +0 -1
  592. package/dist/utils/tokenize.js.map +0 -1
  593. package/dist/utils/vfsDiff.d.ts.map +0 -1
  594. package/dist/utils/vfsDiff.js.map +0 -1
  595. package/dist/web-api.d.ts +0 -26
  596. package/dist/web-api.d.ts.map +0 -1
  597. package/dist/web-api.js +0 -47
  598. package/dist/web-api.js.map +0 -1
  599. package/dist/web-full.d.ts +0 -4
  600. package/dist/web-full.d.ts.map +0 -1
  601. package/dist/web-full.js +0 -9
  602. package/dist/web-full.js.map +0 -1
  603. package/dist/web.d.ts +0 -108
  604. package/dist/web.d.ts.map +0 -1
  605. package/dist/web.js +0 -774
  606. package/dist/web.js.map +0 -1
  607. package/examples/app-iife.js +0 -58
  608. package/examples/index-cf.html +0 -27
  609. package/examples/web-iife.min.js +0 -13
  610. package/examples/web.min.js +0 -12
  611. package/src/web-api.ts +0 -62
  612. package/src/web-full.ts +0 -11
  613. package/src/web.ts +0 -930
  614. package/tests/web.test.ts +0 -182
package/docs/index.html CHANGED
@@ -1,11 +1,12 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>typescript-virtual-container - v1.5.1</h1></div><div class="tsd-panel tsd-typography"><h1 id="_" class="tsd-anchor-link"><code>typescript-virtual-container</code><a href="#_" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>typescript-virtual-container - v1.5.1</h1></div><div class="tsd-panel tsd-typography"><h1 id="_" class="tsd-anchor-link"><code>typescript-virtual-container</code><a href="#_" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h1>
2
2
  <blockquote>
3
3
  <p>A complete virtual Linux environment in pure TypeScript — runs as an SSH/SFTP server, a browser-based web shell, or a standalone CLI. Ships with a realistic Linux rootfs, a virtual package manager, a full shell interpreter, and a typed programmatic API for testing, automation, honeypots, and embedded shell experiences.</p>
4
4
  </blockquote>
5
5
  <p><a href="https://www.npmjs.com/package/typescript-virtual-container"><img src="https://badge.fury.io/js/typescript-virtual-container.svg" alt="npm version"></a>
6
6
  <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
7
7
  <a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-5.x-3178C6.svg?logo=typescript&amp;logoColor=white" alt="TypeScript"></a>
8
- <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/runtime-Node.js%20%7C%20Bun-43853D.svg" alt="Runtime"></a></p>
8
+ <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/runtime-Node.js%20%7C%20Bun-43853D.svg" alt="Runtime"></a>
9
+ <a href="https://itsrealfortune.fr/typescript-virtual-container/demo"><img src="https://img.shields.io/badge/demo-live-brightgreen.svg" alt="Live Demo"></a></p>
9
10
  <hr>
10
11
  <h2 id="table-of-contents" class="tsd-anchor-link">Table of Contents<a href="#table-of-contents" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
11
12
  <ul>
@@ -56,6 +57,7 @@
56
57
  </ul>
57
58
  <hr>
58
59
  <h2 id="three-ways-to-run" class="tsd-anchor-link">Three ways to run<a href="#three-ways-to-run" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
60
+ <!-- BUILD:mode-table -->
59
61
  <table>
60
62
  <thead>
61
63
  <tr>
@@ -72,20 +74,17 @@
72
74
  </tr>
73
75
  <tr>
74
76
  <td><strong>Web shell</strong></td>
75
- <td><!-- BUILD:web --></td>
76
- <td></td>
77
+ <td><code>builds/fortune-nyx-v1.5.1-web.min.js</code> (ESM)</td>
78
+ <td>Embedded terminals, interactive tutorials, browser demos</td>
77
79
  </tr>
78
80
  <tr>
79
- <td><code>builds/fortune-nyx-v1.5.1-web.min.js</code> / <code>builds/fortune-nyx-v1.5.1-web-full.min.js</code></td>
80
- <td></td>
81
- <td></td>
81
+ <td><strong>Standalone CLI</strong></td>
82
+ <td><code>builds/fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</code> (single file)</td>
83
+ <td>Local shell, one-liner demos, no install required</td>
82
84
  </tr>
83
85
  </tbody>
84
86
  </table>
85
- <!-- /BUILD:web --> (ESM) | Embedded terminals, interactive tutorials, browser demos |
86
- <p>| <strong>Standalone CLI</strong> | <!-- BUILD:selfStandalone -->
87
- <code>builds/fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</code></p>
88
- <!-- /BUILD:selfStandalone --> (single file) | Local shell, one-liner demos, no install required |
87
+ <!-- /BUILD:mode-table -->
89
88
  <p>All three modes share the same core: a pure in-memory VFS, a real shell interpreter, a virtual package manager, and a typed programmatic API.</p>
90
89
  <hr>
91
90
  <h2 id="get-started" class="tsd-anchor-link">Get Started<a href="#get-started" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -94,9 +93,20 @@
94
93
  </code><button type="button">Copy</button></pre>
95
94
 
96
95
  <h3 id="try-instantly-zero-install" class="tsd-anchor-link">Try instantly (zero install)<a href="#try-instantly-zero-install" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
97
- <pre><code class="bash"><span class="hl-1">&lt;!</span><span class="hl-0">--</span><span class="hl-1"> </span><span class="hl-2">BUILD:curl-start</span><span class="hl-1"> </span><span class="hl-4">--</span><span class="hl-1">&gt;</span><br/><span class="hl-3"># Interactive local shell — persists VFS in .vfs/ in the current directory</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.0-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-directbash.mjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-directbash.mjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-directbash.mjs</span><br/><br/><span class="hl-3"># SSH server (connect with any SSH client on port 2222)</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.0-ssh.cjs</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh.cjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh.cjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh.cjs</span><br/><br/><span class="hl-3"># SSH server without SFTP (lighter build)</span><br/><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.0-ssh-nosftp.js</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh-nosftp.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh-nosftp.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">rm</span><span class="hl-1"> </span><span class="hl-4">-f</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-ssh-nosftp.js</span><br/><span class="hl-1">&lt;!</span><span class="hl-0">--</span><span class="hl-1"> </span><span class="hl-2">BUILD:curl-end</span><span class="hl-1"> </span><span class="hl-4">--</span><span class="hl-1">&gt;</span>
96
+ <!-- BUILD:curl-start -->
97
+ <h4 id="interactivea-local-shell-persists-vfs-in-vfs-in-the-current-directory" class="tsd-anchor-link">Interactivea local shell — persists VFS in .vfs/ in the current directory<a href="#interactivea-local-shell-persists-vfs-in-vfs-in-the-current-directory" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4>
98
+ <pre><code class="bash"><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</span>
99
+ </code><button type="button">Copy</button></pre>
100
+
101
+ <h4 id="ssh-server-connect-with-any-ssh-client-on-port-2222" class="tsd-anchor-link">SSH server (connect with any SSH client on port 2222)<a href="#ssh-server-connect-with-any-ssh-client-on-port-2222" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4>
102
+ <pre><code class="bash"><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.1-ssh.cjs</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-ssh.cjs</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-ssh.cjs</span>
98
103
  </code><button type="button">Copy</button></pre>
99
104
 
105
+ <h4 id="ssh-server-without-sftp-lighter-build" class="tsd-anchor-link">SSH server without SFTP (lighter build)<a href="#ssh-server-without-sftp-lighter-build" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4>
106
+ <pre><code class="bash"><span class="hl-0">curl</span><span class="hl-1"> </span><span class="hl-4">-s</span><span class="hl-1"> </span><span class="hl-2">https://raw.githubusercontent.com/itsrealfortune/typescript-virtual-container/refs/heads/main/builds/fortune-nyx-v1.5.1-ssh-nosftp.js</span><span class="hl-1"> </span><span class="hl-4">-o</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-ssh-nosftp.js</span><span class="hl-1"> &amp;&amp; </span><span class="hl-0">node</span><span class="hl-1"> </span><span class="hl-2">fortune-nyx-v1.5.1-ssh-nosftp.js</span>
107
+ </code><button type="button">Copy</button></pre>
108
+
109
+ <!-- /BUILD:curl-start -->
100
110
  <div class="tsd-alert tsd-alert-note"><div class="tsd-alert-title"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><use href="assets/icons.svg#icon-alertNote"></use></svg><span>Note</span></div><p>
101
111
  The standalone builds are intended for quick demos and testing. For production use, it's recommended to install the package and import the relevant classes directly in your codebase for better performance, stability, and security.</p>
102
112
  </div>
@@ -113,7 +123,11 @@ The standalone builds are intended for quick demos and testing. For production u
113
123
  </code><button type="button">Copy</button></pre>
114
124
 
115
125
  <h3 id="web-shell-browser" class="tsd-anchor-link">Web shell (browser)<a href="#web-shell-browser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
126
+ <blockquote>
127
+ <p><strong><a href="https://itsrealfortune.fr/typescript-virtual-container/demo">🖥 Try the live demo →</a></strong></p>
128
+ </blockquote>
116
129
  <p>Two browser bundles are available:</p>
130
+ <!-- BUILD:web-table -->
117
131
  <table>
118
132
  <thead>
119
133
  <tr>
@@ -123,10 +137,15 @@ The standalone builds are intended for quick demos and testing. For production u
123
137
  <th>Use case</th>
124
138
  </tr>
125
139
  </thead>
140
+ <tbody>
141
+ <tr>
142
+ <td><code>builds/fortune-nyx-v1.5.1-web.min.js</code></td>
143
+ <td>ESM</td>
144
+ <td><code>createWebShell()</code></td>
145
+ <td>Embedded terminals, modern bundlers</td>
146
+ </tr>
147
+ </tbody>
126
148
  </table>
127
- <!-- BUILD:web-table -->
128
- <p>| <code>builds/fortune-nyx-v1.5.1-web.min.js</code> | ESM | <code>createWebShell()</code> | Embedded terminals, modern bundlers |
129
- | <code>builds/fortune-nyx-v1.5.1-web-full.min.js</code> | ESM | <code>createVirtualShellShim()</code> | Full <code>VirtualShell</code>-like API in the browser |</p>
130
149
  <!-- /BUILD:web-table -->
131
150
  <p>Both bundles persist the VFS in <strong>IndexedDB</strong> — state survives page reloads.</p>
132
151
  <pre><code class="bash"><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">web-build</span><span class="hl-1"> </span><span class="hl-3"># → builds/web.min.js + examples/web.min.js</span><br/><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">web-full-build</span><span class="hl-1"> </span><span class="hl-3"># → builds/web-full-api.min.js</span><br/><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build-all</span><span class="hl-1"> </span><span class="hl-3"># rebuild everything</span>
@@ -137,8 +156,8 @@ The standalone builds are intended for quick demos and testing. For production u
137
156
  <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createWebShell</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/fortune-nyx-v1.5.1-web.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createWebShell</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">, {</span><br/><span class="hl-11"> </span><span class="hl-5">vfs:</span><span class="hl-11"> { </span><span class="hl-5">databaseName:</span><span class="hl-11"> </span><span class="hl-2">&quot;virtual-env-js&quot;</span><span class="hl-11">, </span><span class="hl-5">storeName:</span><span class="hl-11"> </span><span class="hl-2">&quot;vfs&quot;</span><span class="hl-11"> },</span><br/><span class="hl-11"> });</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">out</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;ls /etc &amp;&amp; echo hello&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">out</span><span class="hl-11">.</span><span class="hl-5">stdout</span><span class="hl-11">);</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
138
157
  </code><button type="button">Copy</button></pre>
139
158
 
140
- <p><strong><code>fortune-nyx-v1.5.1-web-full.min.js</code></strong> — mirrors the <code>VirtualShell</code> programmatic API:</p>
141
- <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createVirtualShellShim</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/fortune-nyx-v1.5.1-web-full.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createVirtualShellShim</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;mkdir -p /app &amp;&amp; echo hello &gt; /app/file.txt&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">getVfs</span><span class="hl-11">().</span><span class="hl-0">readFile</span><span class="hl-11">(</span><span class="hl-2">&quot;/app/file.txt&quot;</span><span class="hl-11">)); </span><span class="hl-3">// hello</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
159
+ <p><strong><code>fortune-nyx-v1.5.1-web.min.js</code></strong> — mirrors the <code>VirtualShell</code> programmatic API:</p>
160
+ <pre><code class="html"><span class="hl-9">&lt;</span><span class="hl-10">script</span><span class="hl-11"> </span><span class="hl-12">type</span><span class="hl-11">=</span><span class="hl-13">&quot;module&quot;</span><span class="hl-9">&gt;</span><br/><span class="hl-11"> </span><span class="hl-6">import</span><span class="hl-11"> { </span><span class="hl-5">createVirtualShellShim</span><span class="hl-11"> } </span><span class="hl-6">from</span><span class="hl-11"> </span><span class="hl-2">&quot;./builds/fortune-nyx-v1.5.1-web.min.js&quot;</span><span class="hl-11">;</span><br/><br/><span class="hl-11"> </span><span class="hl-4">const</span><span class="hl-11"> </span><span class="hl-7">shell</span><span class="hl-11"> </span><span class="hl-1">=</span><span class="hl-11"> </span><span class="hl-0">createVirtualShellShim</span><span class="hl-11">(</span><span class="hl-2">&quot;web-vm&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">ensureInitialized</span><span class="hl-11">();</span><br/><span class="hl-11"> </span><span class="hl-6">await</span><span class="hl-11"> </span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">executeCommandLine</span><span class="hl-11">(</span><span class="hl-2">&quot;mkdir -p /app &amp;&amp; echo hello &gt; /app/file.txt&quot;</span><span class="hl-11">);</span><br/><span class="hl-11"> </span><span class="hl-5">console</span><span class="hl-11">.</span><span class="hl-0">log</span><span class="hl-11">(</span><span class="hl-5">shell</span><span class="hl-11">.</span><span class="hl-0">getVfs</span><span class="hl-11">().</span><span class="hl-0">readFile</span><span class="hl-11">(</span><span class="hl-2">&quot;/app/file.txt&quot;</span><span class="hl-11">)); </span><span class="hl-3">// hello</span><br/><span class="hl-9">&lt;/</span><span class="hl-10">script</span><span class="hl-9">&gt;</span>
142
161
  </code><button type="button">Copy</button></pre>
143
162
 
144
163
  <!-- /BUILD:web-options -->
@@ -146,6 +165,9 @@ The standalone builds are intended for quick demos and testing. For production u
146
165
  <pre><code class="bash"><span class="hl-0">bun</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">example-serve</span><br/><span class="hl-3"># Open http://localhost:8787/index.html</span>
147
166
  </code><button type="button">Copy</button></pre>
148
167
 
168
+ <blockquote>
169
+ <p>You can also try the hosted demo at <strong><a href="https://itsrealfortune.fr/typescript-virtual-container/demo">itsrealfortune.fr/typescript-virtual-container/demo</a></strong>.</p>
170
+ </blockquote>
149
171
  <h3 id="programmatic-api" class="tsd-anchor-link">Programmatic API<a href="#programmatic-api" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
150
172
  <pre><code class="typescript"><span class="hl-6">import</span><span class="hl-1"> { </span><span class="hl-5">SshClient</span><span class="hl-1">, </span><span class="hl-5">VirtualShell</span><span class="hl-1"> } </span><span class="hl-6">from</span><span class="hl-1"> </span><span class="hl-2">&quot;typescript-virtual-container&quot;</span><span class="hl-1">;</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">shell</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-0">VirtualShell</span><span class="hl-1">(</span><span class="hl-2">&quot;typescript-vm&quot;</span><span class="hl-1">);</span><br/><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-5">shell</span><span class="hl-1">.</span><span class="hl-0">ensureInitialized</span><span class="hl-1">();</span><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">client</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-0">SshClient</span><span class="hl-1">(</span><span class="hl-5">shell</span><span class="hl-1">, </span><span class="hl-2">&quot;root&quot;</span><span class="hl-1">);</span><br/><br/><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-5">client</span><span class="hl-1">.</span><span class="hl-0">mkdir</span><span class="hl-1">(</span><span class="hl-2">&quot;/app/config&quot;</span><span class="hl-1">, </span><span class="hl-4">true</span><span class="hl-1">);</span><br/><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-5">client</span><span class="hl-1">.</span><span class="hl-0">writeFile</span><span class="hl-1">(</span><span class="hl-2">&quot;/app/config/settings.json&quot;</span><span class="hl-1">, </span><span class="hl-7">JSON</span><span class="hl-1">.</span><span class="hl-0">stringify</span><span class="hl-1">({ </span><span class="hl-5">env:</span><span class="hl-1"> </span><span class="hl-2">&quot;dev&quot;</span><span class="hl-1"> }));</span><br/><br/><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">r</span><span class="hl-1"> = </span><span class="hl-6">await</span><span class="hl-1"> </span><span class="hl-5">client</span><span class="hl-1">.</span><span class="hl-0">exec</span><span class="hl-1">(</span><span class="hl-2">&quot;ls /app &amp;&amp; cat /app/config/settings.json&quot;</span><span class="hl-1">);</span><br/><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-5">r</span><span class="hl-1">.</span><span class="hl-5">stdout</span><span class="hl-1">);</span>
151
173
  </code><button type="button">Copy</button></pre>
@@ -1834,7 +1856,7 @@ Core operations are implemented. Extended attributes and symlinks return <code>O
1834
1856
  </ul>
1835
1857
  <!-- BUILD:changelog -->
1836
1858
  <ul>
1837
- <li>[x] Web shell bundles (<code>fortune-nyx-v1.5.1-web.min.js</code>, <code>fortune-nyx-v1.5.1-web-full.min.js</code>) — fully browser-native with IndexedDB VFS</li>
1859
+ <li>[x] Web shell bundles (<code>fortune-nyx-v1.5.1-web.min.js</code>) — fully browser-native with IndexedDB VFS</li>
1838
1860
  <li>[x] Self-standalone CLI (<code>fortune-nyx-v1.5.1-directbash-k6.1.0.mjs</code>) — single-file interactive shell, per-user history, tab completion</li>
1839
1861
  </ul>
1840
1862
  <!-- /BUILD:changelog -->
@@ -1844,4 +1866,4 @@ Core operations are implemented. Extended attributes and symlinks return <code>O
1844
1866
  <li>[x] <code>PasswordChallenge</code> type — generic interactive password flow for <code>adduser</code>, <code>passwd</code>, <code>deluser</code></li>
1845
1867
  <li>[x] <code>VirtualFileSystem.mount(vPath, hostPath, { readOnly })</code> — bind-mount host directories into the VM; read-only by default; browser-safe (silent no-op)</li>
1846
1868
  </ul>
1847
- </details></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#_"><span></span></a><ul><li><a href="#table-of-contents"><span>Table of <wbr/>Contents</span></a></li><li><a href="#three-ways-to-run"><span>Three ways to run</span></a></li><li><a href="#get-started"><span>Get <wbr/>Started</span></a></li><li><ul><li><a href="#install"><span>Install</span></a></li><li><a href="#try-instantly-zero-install"><span>Try instantly (zero install)</span></a></li><li><a href="#ssh-server"><span>SSH server</span></a></li><li><a href="#web-shell-browser"><span>Web shell (browser)</span></a></li><li><a href="#programmatic-api"><span>Programmatic <wbr/>API</span></a></li></ul></li><li><a href="#how-it-works"><span>How <wbr/>It <wbr/>Works</span></a></li><li><ul><li><a href="#_-1"><span></span></a></li><li><a href="#_-2"><span></span></a></li><li><a href="#_-3"><span></span></a></li><li><a href="#_-4"><span></span></a></li><li><ul><li><a href="#mount-api"><span>Mount <wbr/>API</span></a></li><li><a href="#vfsb-binary-format"><span>VFSB <wbr/>Binary <wbr/>Format</span></a></li></ul></li><li><a href="#_-5"><span></span></a></li><li><a href="#_-6"><span></span></a></li><li><a href="#snapshot-diff-tooling"><span>Snapshot <wbr/>Diff <wbr/>Tooling</span></a></li><li><a href="#_-7"><span></span></a></li><li><a href="#programmatic-api-1"><span> (<wbr/>Programmatic <wbr/>API)</span></a></li><li><a href="#key-types"><span>Key <wbr/>Types</span></a></li><li><a href="#command-helpers"><span>Command <wbr/>Helpers</span></a></li><li><a href="#ssh-server-with-events"><span>SSH <wbr/>Server with <wbr/>Events</span></a></li><li><a href="#ssh-sftp-with-shared-state"><span>SSH + <wbr/>SFTP with <wbr/>Shared <wbr/>State</span></a></li><li><a href="#multi-user-environment-with-quotas"><span>Multi-<wbr/>User <wbr/>Environment with <wbr/>Quotas</span></a></li><li><a href="#persistent-state"><span>Persistent <wbr/>State</span></a></li><li><a href="#public-key-authentication"><span>Public-<wbr/>Key <wbr/>Authentication</span></a></li><li><a href="#rate-limiting"><span>Rate <wbr/>Limiting</span></a></li><li><a href="#shell-operators-and-variables"><span>Shell <wbr/>Operators and <wbr/>Variables</span></a></li><li><a href="#shell-scripting"><span>Shell <wbr/>Scripting</span></a></li><li><a href="#snapshot-based-test-fixtures"><span>Snapshot-<wbr/>Based <wbr/>Test <wbr/>Fixtures</span></a></li><li><a href="#snapshot-diff-in-tests"><span>Snapshot <wbr/>Diff in <wbr/>Tests</span></a></li><li><a href="#symlinks"><span>Symlinks</span></a></li><li><a href="#security-auditing-with-honeypot"><span>Security <wbr/>Auditing with <wbr/>Honey<wbr/>Pot</span></a></li><li><a href="#concurrent-clients"><span>Concurrent <wbr/>Clients</span></a></li><li><a href="#bashrc"><span>.bashrc</span></a></li><li><a href="#navigation"><span>Navigation</span></a></li><li><a href="#files-filesystem"><span>Files &amp; <wbr/>Filesystem</span></a></li><li><a href="#text-processing"><span>Text <wbr/>Processing</span></a></li><li><a href="#archive-compression"><span>Archive &amp; <wbr/>Compression</span></a></li><li><a href="#system"><span>System</span></a></li><li><a href="#network"><span>Network</span></a></li><li><a href="#shell-scripting-1"><span>Shell &amp; <wbr/>Scripting</span></a></li><li><a href="#package-management"><span>Package <wbr/>Management</span></a></li><li><a href="#users-permissions"><span>Users &amp; <wbr/>Permissions</span></a></li><li><a href="#operators-and-redirections"><span>Operators and <wbr/>Redirections</span></a></li><li><a href="#variable-expansion"><span>Variable <wbr/>Expansion</span></a></li><li><a href="#arithmetic"><span>Arithmetic</span></a></li><li><a href="#conditionals"><span>Conditionals</span></a></li><li><a href="#loops"><span>Loops</span></a></li><li><a href="#functions-and-case"><span>Functions and case</span></a></li><li><a href="#script-files"><span>Script <wbr/>Files</span></a></li><li><a href="#bashrc-1"><span>.bashrc</span></a></li><li><a href="#directory-layout"><span>Directory <wbr/>Layout</span></a></li><li><a href="#vfs-path-resolution"><span>VFS <wbr/>PATH <wbr/>Resolution</span></a></li><li><a href="#built-in-package-registry-25-packages"><span>Built-<wbr/>in <wbr/>Package <wbr/>Registry (25 packages)</span></a></li><li><a href="#environment-variables"><span>Environment <wbr/>Variables</span></a></li><li><a href="#constructor-options"><span>Constructor <wbr/>Options</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><a href="#faq"><span>FAQ</span></a></li><li><a href="#contributing"><span>Contributing</span></a></li><li><a href="#security"><span>Security</span></a></li><li><a href="#compatibility"><span>Compatibility</span></a></li><li><a href="#license"><span>License</span></a></li><li><a href="#roadmap"><span>Roadmap</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
1869
+ </details></div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#_"><span></span></a><ul><li><a href="#table-of-contents"><span>Table of <wbr/>Contents</span></a></li><li><a href="#three-ways-to-run"><span>Three ways to run</span></a></li><li><a href="#get-started"><span>Get <wbr/>Started</span></a></li><li><ul><li><a href="#install"><span>Install</span></a></li><li><a href="#try-instantly-zero-install"><span>Try instantly (zero install)</span></a></li><li><ul><li><a href="#interactivea-local-shell-persists-vfs-in-vfs-in-the-current-directory"><span>Interactivea local shell — persists <wbr/>VFS in .vfs/ in the current directory</span></a></li><li><a href="#ssh-server-connect-with-any-ssh-client-on-port-2222"><span>SSH server (connect with any <wbr/>SSH client on port 2222)</span></a></li><li><a href="#ssh-server-without-sftp-lighter-build"><span>SSH server without <wbr/>SFTP (lighter build)</span></a></li></ul></li><li><a href="#ssh-server"><span>SSH server</span></a></li><li><a href="#web-shell-browser"><span>Web shell (browser)</span></a></li><li><a href="#programmatic-api"><span>Programmatic <wbr/>API</span></a></li></ul></li><li><a href="#how-it-works"><span>How <wbr/>It <wbr/>Works</span></a></li><li><ul><li><a href="#_-1"><span></span></a></li><li><a href="#_-2"><span></span></a></li><li><a href="#_-3"><span></span></a></li><li><a href="#_-4"><span></span></a></li><li><ul><li><a href="#mount-api"><span>Mount <wbr/>API</span></a></li><li><a href="#vfsb-binary-format"><span>VFSB <wbr/>Binary <wbr/>Format</span></a></li></ul></li><li><a href="#_-5"><span></span></a></li><li><a href="#_-6"><span></span></a></li><li><a href="#snapshot-diff-tooling"><span>Snapshot <wbr/>Diff <wbr/>Tooling</span></a></li><li><a href="#_-7"><span></span></a></li><li><a href="#programmatic-api-1"><span> (<wbr/>Programmatic <wbr/>API)</span></a></li><li><a href="#key-types"><span>Key <wbr/>Types</span></a></li><li><a href="#command-helpers"><span>Command <wbr/>Helpers</span></a></li><li><a href="#ssh-server-with-events"><span>SSH <wbr/>Server with <wbr/>Events</span></a></li><li><a href="#ssh-sftp-with-shared-state"><span>SSH + <wbr/>SFTP with <wbr/>Shared <wbr/>State</span></a></li><li><a href="#multi-user-environment-with-quotas"><span>Multi-<wbr/>User <wbr/>Environment with <wbr/>Quotas</span></a></li><li><a href="#persistent-state"><span>Persistent <wbr/>State</span></a></li><li><a href="#public-key-authentication"><span>Public-<wbr/>Key <wbr/>Authentication</span></a></li><li><a href="#rate-limiting"><span>Rate <wbr/>Limiting</span></a></li><li><a href="#shell-operators-and-variables"><span>Shell <wbr/>Operators and <wbr/>Variables</span></a></li><li><a href="#shell-scripting"><span>Shell <wbr/>Scripting</span></a></li><li><a href="#snapshot-based-test-fixtures"><span>Snapshot-<wbr/>Based <wbr/>Test <wbr/>Fixtures</span></a></li><li><a href="#snapshot-diff-in-tests"><span>Snapshot <wbr/>Diff in <wbr/>Tests</span></a></li><li><a href="#symlinks"><span>Symlinks</span></a></li><li><a href="#security-auditing-with-honeypot"><span>Security <wbr/>Auditing with <wbr/>Honey<wbr/>Pot</span></a></li><li><a href="#concurrent-clients"><span>Concurrent <wbr/>Clients</span></a></li><li><a href="#bashrc"><span>.bashrc</span></a></li><li><a href="#navigation"><span>Navigation</span></a></li><li><a href="#files-filesystem"><span>Files &amp; <wbr/>Filesystem</span></a></li><li><a href="#text-processing"><span>Text <wbr/>Processing</span></a></li><li><a href="#archive-compression"><span>Archive &amp; <wbr/>Compression</span></a></li><li><a href="#system"><span>System</span></a></li><li><a href="#network"><span>Network</span></a></li><li><a href="#shell-scripting-1"><span>Shell &amp; <wbr/>Scripting</span></a></li><li><a href="#package-management"><span>Package <wbr/>Management</span></a></li><li><a href="#users-permissions"><span>Users &amp; <wbr/>Permissions</span></a></li><li><a href="#operators-and-redirections"><span>Operators and <wbr/>Redirections</span></a></li><li><a href="#variable-expansion"><span>Variable <wbr/>Expansion</span></a></li><li><a href="#arithmetic"><span>Arithmetic</span></a></li><li><a href="#conditionals"><span>Conditionals</span></a></li><li><a href="#loops"><span>Loops</span></a></li><li><a href="#functions-and-case"><span>Functions and case</span></a></li><li><a href="#script-files"><span>Script <wbr/>Files</span></a></li><li><a href="#bashrc-1"><span>.bashrc</span></a></li><li><a href="#directory-layout"><span>Directory <wbr/>Layout</span></a></li><li><a href="#vfs-path-resolution"><span>VFS <wbr/>PATH <wbr/>Resolution</span></a></li><li><a href="#built-in-package-registry-25-packages"><span>Built-<wbr/>in <wbr/>Package <wbr/>Registry (25 packages)</span></a></li><li><a href="#environment-variables"><span>Environment <wbr/>Variables</span></a></li><li><a href="#constructor-options"><span>Constructor <wbr/>Options</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><a href="#faq"><span>FAQ</span></a></li><li><a href="#contributing"><span>Contributing</span></a></li><li><a href="#security"><span>Security</span></a></li><li><a href="#compatibility"><span>Compatibility</span></a></li><li><a href="#license"><span>License</span></a></li><li><a href="#roadmap"><span>Roadmap</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,6 +1,6 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AuditLogEntry | typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">AuditLogEntry</a></li></ul><h1>Interface AuditLogEntry</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Audit log entry recorded for each event.</p>
2
- </div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">AuditLogEntry</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#details">details</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#source">source</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#timestamp">timestamp</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#type">type</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/Honeypot/index.ts#L23">src/Honeypot/index.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#details" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>details</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AuditLogEntry | typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">AuditLogEntry</a></li></ul><h1>Interface AuditLogEntry</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Audit log entry recorded for each event.</p>
2
+ </div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">AuditLogEntry</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#details">details</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#source">source</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#timestamp">timestamp</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#type">type</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/Honeypot/index.ts#L23">src/Honeypot/index.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#details" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>details</span></a>
3
3
  <a href="#source" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>source</span></a>
4
4
  <a href="#timestamp" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>timestamp</span></a>
5
5
  <a href="#type" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>type</span></a>
6
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="details"><span>details</span><a href="#details" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">details</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/Honeypot/index.ts#L27">src/Honeypot/index.ts:27</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="source"><span>source</span><a href="#source" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/Honeypot/index.ts#L26">src/Honeypot/index.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="timestamp"><span>timestamp</span><a href="#timestamp" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">timestamp</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/Honeypot/index.ts#L24">src/Honeypot/index.ts:24</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="type"><span>type</span><a href="#type" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/Honeypot/index.ts#L25">src/Honeypot/index.ts:25</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#details"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>details</span></a><a href="#source"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>source</span></a><a href="#timestamp"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>timestamp</span></a><a href="#type"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>type</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
6
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="details"><span>details</span><a href="#details" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">details</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-signature-type">unknown</span><span class="tsd-signature-symbol">&gt;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/Honeypot/index.ts#L27">src/Honeypot/index.ts:27</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="source"><span>source</span><a href="#source" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">source</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/Honeypot/index.ts#L26">src/Honeypot/index.ts:26</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="timestamp"><span>timestamp</span><a href="#timestamp" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">timestamp</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/Honeypot/index.ts#L24">src/Honeypot/index.ts:24</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="type"><span>type</span><a href="#type" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/Honeypot/index.ts#L25">src/Honeypot/index.ts:25</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#details"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>details</span></a><a href="#source"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>source</span></a><a href="#timestamp"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>timestamp</span></a><a href="#type"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>type</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -1,5 +1,5 @@
1
- <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>CommandContext | typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">CommandContext</a></li></ul><h1>Interface CommandContext</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Runtime context object passed to each command module.</p>
2
- </div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">CommandContext</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#activesessions">activeSessions</a><span class="tsd-signature-symbol">:</span> <a href="VirtualActiveSession.html" class="tsd-signature-type tsd-kind-interface">VirtualActiveSession</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#args">args</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#authuser">authUser</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#cwd">cwd</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#env">env</a><span class="tsd-signature-symbol">:</span> <a href="ShellEnv.html" class="tsd-signature-type tsd-kind-interface">ShellEnv</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#hostname">hostname</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mode">mode</a><span class="tsd-signature-symbol">:</span> <a href="../types/CommandMode.html" class="tsd-signature-type tsd-kind-type-alias">CommandMode</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#rawinput">rawInput</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#shell">shell</a><span class="tsd-signature-symbol">:</span> <a href="../classes/VirtualShell.html" class="tsd-signature-type tsd-kind-class">VirtualShell</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#stdin">stdin</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L106">src/types/commands.ts:106</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#activesessions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>active<wbr/>Sessions</span></a>
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>CommandContext | typescript-virtual-container - v1.5.1</title><meta name="description" content="Documentation for typescript-virtual-container"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index" class="title">typescript-virtual-container - v1.5.1</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">CommandContext</a></li></ul><h1>Interface CommandContext</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Runtime context object passed to each command module.</p>
2
+ </div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface</span> <span class="tsd-kind-interface">CommandContext</span> <span class="tsd-signature-symbol">{</span><br/>    <a class="tsd-kind-property" href="#activesessions">activeSessions</a><span class="tsd-signature-symbol">:</span> <a href="VirtualActiveSession" class="tsd-signature-type tsd-kind-interface">VirtualActiveSession</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#args">args</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#authuser">authUser</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#cwd">cwd</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#env">env</a><span class="tsd-signature-symbol">:</span> <a href="ShellEnv" class="tsd-signature-type tsd-kind-interface">ShellEnv</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#hostname">hostname</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#mode">mode</a><span class="tsd-signature-symbol">:</span> <a href="../types/CommandMode" class="tsd-signature-type tsd-kind-type-alias">CommandMode</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#rawinput">rawInput</a><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#shell">shell</a><span class="tsd-signature-symbol">:</span> <a href="../classes/VirtualShell" class="tsd-signature-type tsd-kind-class">VirtualShell</a><span class="tsd-signature-symbol">;</span><br/>    <a class="tsd-kind-property" href="#stdin">stdin</a><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L106">src/types/commands.ts:106</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="#activesessions" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>active<wbr/>Sessions</span></a>
3
3
  <a href="#args" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>args</span></a>
4
4
  <a href="#authuser" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>auth<wbr/>User</span></a>
5
5
  <a href="#cwd" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>cwd</span></a>
@@ -9,14 +9,14 @@
9
9
  <a href="#rawinput" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>raw<wbr/>Input</span></a>
10
10
  <a href="#shell" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>shell</span></a>
11
11
  <a href="#stdin" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stdin?</span></a>
12
- </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="activesessions"><span>active<wbr/>Sessions</span><a href="#activesessions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">activeSessions</span><span class="tsd-signature-symbol">:</span> <a href="VirtualActiveSession.html" class="tsd-signature-type tsd-kind-interface">VirtualActiveSession</a><span class="tsd-signature-symbol">[]</span></div><div class="tsd-comment tsd-typography"><p>Snapshot of currently active user sessions.</p>
13
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L112">src/types/commands.ts:112</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="args"><span>args</span><a href="#args" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">args</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><div class="tsd-comment tsd-typography"><p>Tokenized arguments excluding command name.</p>
14
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L118">src/types/commands.ts:118</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="authuser"><span>auth<wbr/>User</span><a href="#authuser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">authUser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Authenticated user currently bound to stream.</p>
15
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L108">src/types/commands.ts:108</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="cwd"><span>cwd</span><a href="#cwd" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">cwd</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Current working directory for command execution.</p>
16
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L124">src/types/commands.ts:124</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="env"><span>env</span><a href="#env" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">env</span><span class="tsd-signature-symbol">:</span> <a href="ShellEnv.html" class="tsd-signature-type tsd-kind-interface">ShellEnv</a></div><div class="tsd-comment tsd-typography"><p>Per-session environment available to command modules.</p>
17
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L126">src/types/commands.ts:126</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="hostname"><span>hostname</span><a href="#hostname" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">hostname</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Virtual hostname shown in prompt and banners.</p>
18
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L110">src/types/commands.ts:110</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="mode"><span>mode</span><a href="#mode" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">mode</span><span class="tsd-signature-symbol">:</span> <a href="../types/CommandMode.html" class="tsd-signature-type tsd-kind-type-alias">CommandMode</a></div><div class="tsd-comment tsd-typography"><p>Invocation mode (interactive shell or direct exec).</p>
19
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L116">src/types/commands.ts:116</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="rawinput"><span>raw<wbr/>Input</span><a href="#rawinput" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">rawInput</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Original unparsed command line input.</p>
20
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L114">src/types/commands.ts:114</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="shell"><span>shell</span><a href="#shell" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">shell</span><span class="tsd-signature-symbol">:</span> <a href="../classes/VirtualShell.html" class="tsd-signature-type tsd-kind-class">VirtualShell</a></div><div class="tsd-comment tsd-typography"><p>Virtual shell instance.</p>
21
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L120">src/types/commands.ts:120</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="stdin"><code class="tsd-tag">Optional</code><span>stdin</span><a href="#stdin" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">stdin</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Optional stdin payload (used by pipes/redirections).</p>
22
- </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/6aa10e32d938703c886defa3dee9cdbf31ed343b/src/types/commands.ts#L122">src/types/commands.ts:122</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#activesessions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>active<wbr/>Sessions</span></a><a href="#args"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>args</span></a><a href="#authuser"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>auth<wbr/>User</span></a><a href="#cwd"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>cwd</span></a><a href="#env"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>env</span></a><a href="#hostname"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>hostname</span></a><a href="#mode"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>mode</span></a><a href="#rawinput"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>raw<wbr/>Input</span></a><a href="#shell"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>shell</span></a><a href="#stdin"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stdin</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
12
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Properties</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="activesessions"><span>active<wbr/>Sessions</span><a href="#activesessions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">activeSessions</span><span class="tsd-signature-symbol">:</span> <a href="VirtualActiveSession" class="tsd-signature-type tsd-kind-interface">VirtualActiveSession</a><span class="tsd-signature-symbol">[]</span></div><div class="tsd-comment tsd-typography"><p>Snapshot of currently active user sessions.</p>
13
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L112">src/types/commands.ts:112</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="args"><span>args</span><a href="#args" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">args</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><div class="tsd-comment tsd-typography"><p>Tokenized arguments excluding command name.</p>
14
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L118">src/types/commands.ts:118</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="authuser"><span>auth<wbr/>User</span><a href="#authuser" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">authUser</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Authenticated user currently bound to stream.</p>
15
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L108">src/types/commands.ts:108</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="cwd"><span>cwd</span><a href="#cwd" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">cwd</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Current working directory for command execution.</p>
16
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L124">src/types/commands.ts:124</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="env"><span>env</span><a href="#env" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">env</span><span class="tsd-signature-symbol">:</span> <a href="ShellEnv" class="tsd-signature-type tsd-kind-interface">ShellEnv</a></div><div class="tsd-comment tsd-typography"><p>Per-session environment available to command modules.</p>
17
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L126">src/types/commands.ts:126</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="hostname"><span>hostname</span><a href="#hostname" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">hostname</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Virtual hostname shown in prompt and banners.</p>
18
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L110">src/types/commands.ts:110</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="mode"><span>mode</span><a href="#mode" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">mode</span><span class="tsd-signature-symbol">:</span> <a href="../types/CommandMode" class="tsd-signature-type tsd-kind-type-alias">CommandMode</a></div><div class="tsd-comment tsd-typography"><p>Invocation mode (interactive shell or direct exec).</p>
19
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L116">src/types/commands.ts:116</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="rawinput"><span>raw<wbr/>Input</span><a href="#rawinput" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">rawInput</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Original unparsed command line input.</p>
20
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L114">src/types/commands.ts:114</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="shell"><span>shell</span><a href="#shell" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">shell</span><span class="tsd-signature-symbol">:</span> <a href="../classes/VirtualShell" class="tsd-signature-type tsd-kind-class">VirtualShell</a></div><div class="tsd-comment tsd-typography"><p>Virtual shell instance.</p>
21
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L120">src/types/commands.ts:120</a></li></ul></aside></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="stdin"><code class="tsd-tag">Optional</code><span>stdin</span><a href="#stdin" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">stdin</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span></div><div class="tsd-comment tsd-typography"><p>Optional stdin payload (used by pipes/redirections).</p>
22
+ </div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/itsrealfortune/typescript-virtual-container/blob/fb7be7571dd01ba1e3a43568d4e2981175b64fb5/src/types/commands.ts#L122">src/types/commands.ts:122</a></li></ul></aside></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#activesessions"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>active<wbr/>Sessions</span></a><a href="#args"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>args</span></a><a href="#authuser"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>auth<wbr/>User</span></a><a href="#cwd"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>cwd</span></a><a href="#env"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>env</span></a><a href="#hostname"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>hostname</span></a><a href="#mode"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>mode</span></a><a href="#rawinput"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>raw<wbr/>Input</span></a><a href="#shell"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>shell</span></a><a href="#stdin"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Property"><use href="../assets/icons.svg#icon-1024"></use></svg><span>stdin</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules">typescript-virtual-container - v1.5.1</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>