typescript-virtual-container 1.4.8 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/.vscode/settings.json +1 -1
  2. package/README.md +118 -80
  3. package/builds/self-standalone.mjs +1768 -0
  4. package/builds/standalone-wo-sftp.js +735 -268
  5. package/builds/standalone.cjs +734 -267
  6. package/builds/web-full-api.min.js +0 -1
  7. package/builds/web.min.js +0 -1
  8. package/bun.lock +3 -3
  9. package/dist/Honeypot/index.d.ts +6 -0
  10. package/dist/Honeypot/index.d.ts.map +1 -1
  11. package/dist/Honeypot/index.js +20 -0
  12. package/dist/Honeypot/index.js.map +1 -1
  13. package/dist/SSHMimic/exec.js +2 -2
  14. package/dist/SSHMimic/exec.js.map +1 -1
  15. package/dist/SSHMimic/index.d.ts +6 -5
  16. package/dist/SSHMimic/index.d.ts.map +1 -1
  17. package/dist/SSHMimic/index.js +8 -6
  18. package/dist/SSHMimic/index.js.map +1 -1
  19. package/dist/SSHMimic/sftp.d.ts +1 -0
  20. package/dist/SSHMimic/sftp.d.ts.map +1 -1
  21. package/dist/SSHMimic/sftp.js +4 -3
  22. package/dist/SSHMimic/sftp.js.map +1 -1
  23. package/dist/VirtualFileSystem/index.d.ts +14 -0
  24. package/dist/VirtualFileSystem/index.d.ts.map +1 -1
  25. package/dist/VirtualFileSystem/index.js +51 -3
  26. package/dist/VirtualFileSystem/index.js.map +1 -1
  27. package/dist/VirtualFileSystem/internalTypes.d.ts +4 -0
  28. package/dist/VirtualFileSystem/internalTypes.d.ts.map +1 -1
  29. package/dist/VirtualFileSystem/journal.d.ts +1 -0
  30. package/dist/VirtualFileSystem/journal.d.ts.map +1 -1
  31. package/dist/VirtualFileSystem/journal.js +11 -5
  32. package/dist/VirtualFileSystem/journal.js.map +1 -1
  33. package/dist/VirtualShell/idleManager.d.ts +6 -2
  34. package/dist/VirtualShell/idleManager.d.ts.map +1 -1
  35. package/dist/VirtualShell/idleManager.js +10 -6
  36. package/dist/VirtualShell/idleManager.js.map +1 -1
  37. package/dist/VirtualShell/index.d.ts +13 -1
  38. package/dist/VirtualShell/index.d.ts.map +1 -1
  39. package/dist/VirtualShell/index.js +10 -5
  40. package/dist/VirtualShell/index.js.map +1 -1
  41. package/dist/VirtualShell/shell.js +12 -12
  42. package/dist/VirtualShell/shell.js.map +1 -1
  43. package/dist/VirtualUserManager/index.d.ts +4 -2
  44. package/dist/VirtualUserManager/index.d.ts.map +1 -1
  45. package/dist/VirtualUserManager/index.js +8 -12
  46. package/dist/VirtualUserManager/index.js.map +1 -1
  47. package/dist/commands/apt.js +3 -3
  48. package/dist/commands/apt.js.map +1 -1
  49. package/dist/commands/cd.d.ts.map +1 -1
  50. package/dist/commands/cd.js +2 -1
  51. package/dist/commands/cd.js.map +1 -1
  52. package/dist/commands/command-helpers.d.ts +5 -2
  53. package/dist/commands/command-helpers.d.ts.map +1 -1
  54. package/dist/commands/command-helpers.js.map +1 -1
  55. package/dist/commands/helpers.d.ts +1 -1
  56. package/dist/commands/helpers.d.ts.map +1 -1
  57. package/dist/commands/helpers.js +3 -2
  58. package/dist/commands/helpers.js.map +1 -1
  59. package/dist/commands/index.d.ts +1 -1
  60. package/dist/commands/index.d.ts.map +1 -1
  61. package/dist/commands/index.js +1 -1
  62. package/dist/commands/index.js.map +1 -1
  63. package/dist/commands/lsb-release.js +1 -1
  64. package/dist/commands/lsb-release.js.map +1 -1
  65. package/dist/commands/runtime.d.ts +2 -0
  66. package/dist/commands/runtime.d.ts.map +1 -1
  67. package/dist/commands/runtime.js +5 -1
  68. package/dist/commands/runtime.js.map +1 -1
  69. package/dist/index.d.ts +5 -2
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/modules/linuxRootfs.d.ts +9 -5
  73. package/dist/modules/linuxRootfs.d.ts.map +1 -1
  74. package/dist/modules/linuxRootfs.js +1079 -148
  75. package/dist/modules/linuxRootfs.js.map +1 -1
  76. package/dist/self-standalone.js +22 -12
  77. package/dist/self-standalone.js.map +1 -1
  78. package/docs/assets/hierarchy.js +1 -1
  79. package/docs/assets/navigation.js +1 -1
  80. package/docs/assets/search.js +1 -1
  81. package/docs/classes/HoneyPot.html +9 -9
  82. package/docs/classes/IdleManager.html +12 -9
  83. package/docs/classes/SshClient.html +18 -18
  84. package/docs/classes/VirtualFileSystem.html +34 -42
  85. package/docs/classes/VirtualPackageManager.html +13 -13
  86. package/docs/classes/VirtualSftpServer.html +3 -3
  87. package/docs/classes/VirtualShell.html +33 -29
  88. package/docs/classes/VirtualSshServer.html +12 -7
  89. package/docs/classes/VirtualUserManager.html +30 -30
  90. package/docs/functions/assertDiff.html +2 -2
  91. package/docs/functions/diffSnapshots.html +2 -2
  92. package/docs/functions/formatDiff.html +2 -2
  93. package/docs/functions/getArg.html +3 -3
  94. package/docs/functions/getFlag.html +2 -2
  95. package/docs/functions/ifFlag.html +2 -2
  96. package/docs/hierarchy.html +1 -1
  97. package/docs/index.html +11 -9
  98. package/docs/interfaces/AuditLogEntry.html +3 -3
  99. package/docs/interfaces/CommandContext.html +13 -13
  100. package/docs/interfaces/CommandResult.html +13 -13
  101. package/docs/interfaces/ExecStream.html +6 -6
  102. package/docs/interfaces/HoneyPotStats.html +5 -3
  103. package/docs/interfaces/IdleManagerOptions.html +3 -3
  104. package/docs/interfaces/InstalledPackage.html +11 -11
  105. package/docs/interfaces/NanoEditorSession.html +5 -5
  106. package/docs/interfaces/PackageDefinition.html +14 -14
  107. package/docs/interfaces/PackageFile.html +5 -5
  108. package/docs/interfaces/PasswordChallenge.html +16 -0
  109. package/docs/interfaces/RemoveOptions.html +3 -3
  110. package/docs/interfaces/ShellEnv.html +4 -4
  111. package/docs/interfaces/ShellModule.html +8 -8
  112. package/docs/interfaces/ShellProperties.html +5 -5
  113. package/docs/interfaces/ShellStream.html +7 -7
  114. package/docs/interfaces/SudoChallenge.html +9 -9
  115. package/docs/interfaces/VfsBaseNode.html +7 -7
  116. package/docs/interfaces/VfsDiff.html +6 -6
  117. package/docs/interfaces/VfsDiffEntry.html +4 -4
  118. package/docs/interfaces/VfsDiffModified.html +6 -6
  119. package/docs/interfaces/VfsDirectoryNode.html +8 -8
  120. package/docs/interfaces/VfsFileNode.html +9 -9
  121. package/docs/interfaces/VfsOptions.html +6 -6
  122. package/docs/interfaces/VfsSnapshot.html +3 -3
  123. package/docs/interfaces/VfsSnapshotBaseNode.html +4 -4
  124. package/docs/interfaces/VfsSnapshotDirectoryNode.html +5 -5
  125. package/docs/interfaces/VfsSnapshotFileNode.html +6 -6
  126. package/docs/interfaces/VirtualActiveSession.html +12 -0
  127. package/docs/interfaces/VirtualSftpServerOptions.html +7 -0
  128. package/docs/interfaces/VirtualShellVfsLike.html +15 -0
  129. package/docs/interfaces/VirtualShellVfsOptions.html +3 -0
  130. package/docs/interfaces/WriteFileOptions.html +4 -4
  131. package/docs/modules.html +1 -1
  132. package/docs/types/ArgParseOptions.html +4 -0
  133. package/docs/types/CommandMode.html +2 -2
  134. package/docs/types/CommandOutcome.html +2 -2
  135. package/docs/types/IdleState.html +1 -1
  136. package/docs/types/VfsNodeStats.html +2 -2
  137. package/docs/types/VfsNodeType.html +2 -2
  138. package/docs/types/VfsPersistenceMode.html +2 -2
  139. package/docs/types/VfsSnapshotNode.html +2 -2
  140. package/examples/web.min.js +0 -1
  141. package/package.json +11 -11
  142. package/scripts/generate-manuals-bundle.mjs +1 -1
  143. package/scripts/publish-package.sh +1 -1
  144. package/src/Honeypot/index.ts +24 -0
  145. package/src/SSHMimic/exec.ts +2 -2
  146. package/src/SSHMimic/index.ts +9 -6
  147. package/src/SSHMimic/sftp.ts +10 -3
  148. package/src/VirtualFileSystem/index.ts +46 -3
  149. package/src/VirtualFileSystem/internalTypes.ts +4 -0
  150. package/src/VirtualFileSystem/journal.ts +11 -5
  151. package/src/VirtualShell/idleManager.ts +10 -6
  152. package/src/VirtualShell/index.ts +18 -3
  153. package/src/VirtualShell/shell.ts +12 -12
  154. package/src/VirtualUserManager/index.ts +15 -13
  155. package/src/commands/apt.ts +3 -3
  156. package/src/commands/cd.ts +2 -1
  157. package/src/commands/command-helpers.ts +5 -1
  158. package/src/commands/helpers.ts +3 -2
  159. package/src/commands/index.ts +1 -1
  160. package/src/commands/lsb-release.ts +1 -1
  161. package/src/commands/runtime.ts +6 -1
  162. package/src/index.ts +5 -1
  163. package/src/modules/linuxRootfs.ts +1293 -207
  164. package/src/self-standalone.ts +26 -12
  165. package/tests/new-features.test.ts +2 -2
  166. package/tests/sftp.test.ts +13 -13
  167. package/typedoc.json +45 -0
  168. package/builds/self-standalone.js +0 -1300
  169. package/builds/self-standalone.js.map +0 -7
  170. package/builds/standalone-wo-sftp.js.map +0 -7
  171. package/builds/standalone.cjs.map +0 -7
  172. package/builds/web-full-api.min.js.map +0 -7
  173. package/builds/web.min.js.map +0 -7
@@ -10,4 +10,3 @@ var L=Object.defineProperty;var I=(o,e,t)=>e in o?L(o,e,{enumerable:!0,configura
10
10
  `),this.vfs.exists("/etc/hosts")||this.vfs.writeFile("/etc/hosts",`127.0.0.1 localhost
11
11
  ::1 localhost
12
12
  `),this.initialized=!0)}getCurrentWorkingDirectory(){return this.cwd}async executeCommandLine(e,t=!0){await this.ensureInitialized();let r=e.trim();if(!r)return{exitCode:0};let i=await D(r,this.env.vars,this.env.lastExitCode,a=>this.executeCommandLine(a,!1).then(c=>c.stdout??"")),s=E(i),n=await this.executeStatements(s.statements);return this.env.lastExitCode=n.exitCode??0,t&&await this.vfs.flushMirror(),n}async executeStatements(e){let t={exitCode:0},r=0;for(;r<e.length;){let i=e[r];if(t=await this.executePipeline(i.pipeline.commands),this.env.lastExitCode=t.exitCode??0,t.closeSession||t.switchUser)return t;let s=i.op;if(!(!s||s===";")){if(s==="&&"){if((t.exitCode??0)!==0)for(;r<e.length&&e[r]?.op==="&&";)r+=1}else if(s==="||"&&(t.exitCode??0)===0)for(;r<e.length&&e[r]?.op==="||";)r+=1}r+=1}return t}async executePipeline(e){return e.length===0?{exitCode:0}:e.length===1?this.executeSingleCommandWithRedirections(e[0]):this.executePipelineChain(e)}async executeSingleCommandWithRedirections(e){let t;if(e.inputFile){let i=u(e.inputFile,this.cwd);try{t=this.vfs.readFile(i)}catch{return{stderr:`${e.inputFile}: No such file or directory`,exitCode:1}}}let r=await this.executeCommand(e.name,e.args,t);if(e.outputFile){let i=u(e.outputFile,this.cwd),s=r.stdout??"";if(e.appendOutput&&this.vfs.exists(i)){let n=this.vfs.readFile(i);this.vfs.writeFile(i,`${n}${s}`)}else this.vfs.writeFile(i,s);return{...r,stdout:""}}return r}async executePipelineChain(e){let t="",r=0;for(let i=0;i<e.length;i+=1){let s=e[i];if(i===0&&s.inputFile){let a=u(s.inputFile,this.cwd);try{t=this.vfs.readFile(a)}catch{return{stderr:`${s.inputFile}: No such file or directory`,exitCode:1}}}let n=await this.executeCommand(s.name,s.args,t);t=n.stdout??"",r=n.exitCode??0}return{stdout:t,exitCode:r}}async executeCommand(e,t,r){let i=this.resolveCommand(e);if(!i)return{stderr:`${e}: command not found`,exitCode:127};let n={args:t.map(a=>w(a,this.env.vars,this.env.lastExitCode,this.env.vars.HOME)),stdin:r,cwd:this.cwd,env:this.env,rawInput:`${e} ${t.join(" ")}`.trim(),shell:this};try{let a=await i.run(n);return a.nextCwd&&(this.cwd=a.nextCwd,this.env.vars.PWD=a.nextCwd),a}catch(a){return{stderr:a instanceof Error?a.message:String(a),exitCode:1}}}};function O(o="typescript-vm",e={}){return new W(o,e)}var S=class{constructor(e="typescript-vm"){p(this,"shell");this.shell=O(e,{})}async ensureInitialized(){await this.shell.ensureInitialized()}async executeCommandLine(e){return this.shell.executeCommandLine(e)}async run(e){return this.executeCommandLine(e)}getVfs(){return this.shell.vfs}getHostname(){return this.shell.hostname}writeFileAsUser(e,t,r){return this.shell.vfs.writeFile(t,r)}getEnv(){return this.shell.env}addCommand(e,t,r){this.shell.register({name:e,params:t,aliases:[],description:"",run:r})}};function ce(o){return new S(o)}export{ce as createVirtualShellShim};
13
- //# sourceMappingURL=web-full-api.min.js.map
package/builds/web.min.js CHANGED
@@ -10,4 +10,3 @@ var R=Object.defineProperty;var F=(o,e,t)=>e in o?R(o,e,{enumerable:!0,configura
10
10
  `),this.vfs.exists("/etc/hosts")||this.vfs.writeFile("/etc/hosts",`127.0.0.1 localhost
11
11
  ::1 localhost
12
12
  `),this.initialized=!0)}getCurrentWorkingDirectory(){return this.cwd}async executeCommandLine(e,t=!0){await this.ensureInitialized();let r=e.trim();if(!r)return{exitCode:0};let n=await E(r,this.env.vars,this.env.lastExitCode,a=>this.executeCommandLine(a,!1).then(c=>c.stdout??"")),s=$(n),i=await this.executeStatements(s.statements);return this.env.lastExitCode=i.exitCode??0,t&&await this.vfs.flushMirror(),i}async executeStatements(e){let t={exitCode:0},r=0;for(;r<e.length;){let n=e[r];if(t=await this.executePipeline(n.pipeline.commands),this.env.lastExitCode=t.exitCode??0,t.closeSession||t.switchUser)return t;let s=n.op;if(!(!s||s===";")){if(s==="&&"){if((t.exitCode??0)!==0)for(;r<e.length&&e[r]?.op==="&&";)r+=1}else if(s==="||"&&(t.exitCode??0)===0)for(;r<e.length&&e[r]?.op==="||";)r+=1}r+=1}return t}async executePipeline(e){return e.length===0?{exitCode:0}:e.length===1?this.executeSingleCommandWithRedirections(e[0]):this.executePipelineChain(e)}async executeSingleCommandWithRedirections(e){let t;if(e.inputFile){let n=u(e.inputFile,this.cwd);try{t=this.vfs.readFile(n)}catch{return{stderr:`${e.inputFile}: No such file or directory`,exitCode:1}}}let r=await this.executeCommand(e.name,e.args,t);if(e.outputFile){let n=u(e.outputFile,this.cwd),s=r.stdout??"";if(e.appendOutput&&this.vfs.exists(n)){let i=this.vfs.readFile(n);this.vfs.writeFile(n,`${i}${s}`)}else this.vfs.writeFile(n,s);return{...r,stdout:""}}return r}async executePipelineChain(e){let t="",r=0;for(let n=0;n<e.length;n+=1){let s=e[n];if(n===0&&s.inputFile){let a=u(s.inputFile,this.cwd);try{t=this.vfs.readFile(a)}catch{return{stderr:`${s.inputFile}: No such file or directory`,exitCode:1}}}let i=await this.executeCommand(s.name,s.args,t);t=i.stdout??"",r=i.exitCode??0}return{stdout:t,exitCode:r}}async executeCommand(e,t,r){let n=this.resolveCommand(e);if(!n)return{stderr:`${e}: command not found`,exitCode:127};let i={args:t.map(a=>w(a,this.env.vars,this.env.lastExitCode,this.env.vars.HOME)),stdin:r,cwd:this.cwd,env:this.env,rawInput:`${e} ${t.join(" ")}`.trim(),shell:this};try{let a=await n.run(i);return a.nextCwd&&(this.cwd=a.nextCwd,this.env.vars.PWD=a.nextCwd),a}catch(a){return{stderr:a instanceof Error?a.message:String(a),exitCode:1}}}};function ie(o="typescript-vm",e={}){return new W(o,e)}export{N as IndexedDbMirrorVfs,W as WebShell,ie as createWebShell};
13
- //# sourceMappingURL=web.min.js.map
package/bun.lock CHANGED
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "devDependencies": {
11
11
  "@biomejs/biome": "^2.4.15",
12
- "@types/bun": "^1.3.13",
12
+ "@types/bun": "^1.3.14",
13
13
  "@types/node": "^25.7.0",
14
14
  "@types/ssh2": "^1.15.5",
15
15
  "gh-pages": "^6.3.0",
@@ -45,7 +45,7 @@
45
45
 
46
46
  "@nodelib/fs.walk": ["@nodelib/fs.walk@1.2.8", "", { "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg=="],
47
47
 
48
- "@types/bun": ["@types/bun@1.3.13", "", { "dependencies": { "bun-types": "1.3.13" } }, "sha512-9fqXWk5YIHGGnUau9TEi+qdlTYDAnOj+xLCmSTwXfAIqXr2x4tytJb43E9uCvt09zJURKXwAtkoH4nLQfzeTXw=="],
48
+ "@types/bun": ["@types/bun@1.3.14", "", { "dependencies": { "bun-types": "1.3.14" } }, "sha512-h1hFqFVcvAvD9j9K7ZW7vd82aSA+rTdznZa+5bwvCwqSB1jmmfLcbIWhOLx1/+boy/xmjgCs/OMUL8hRJSmnPw=="],
49
49
 
50
50
  "@types/node": ["@types/node@25.7.0", "", { "dependencies": { "undici-types": "~7.21.0" } }, "sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg=="],
51
51
 
@@ -63,7 +63,7 @@
63
63
 
64
64
  "buildcheck": ["buildcheck@0.0.7", "", {}, "sha512-lHblz4ahamxpTmnsk+MNTRWsjYKv965MwOrSJyeD588rR3Jcu7swE+0wN5F+PbL5cjgu/9ObkhfzEPuofEMwLA=="],
65
65
 
66
- "bun-types": ["bun-types@1.3.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-QXKeHLlOLqQX9LgYaHJfzdBaV21T63HhFJnvuRCcjZiaUDpbs5ED1MgxbMra71CsryN/1dAoXuJJJwIv/2drVA=="],
66
+ "bun-types": ["bun-types@1.3.14", "", { "dependencies": { "@types/node": "*" } }, "sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ=="],
67
67
 
68
68
  "commander": ["commander@13.1.0", "", {}, "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw=="],
69
69
 
@@ -37,6 +37,8 @@ export interface HoneyPotStats {
37
37
  userDeleted: number;
38
38
  clientConnects: number;
39
39
  clientDisconnects: number;
40
+ shellFreezes: number;
41
+ shellThaws: number;
40
42
  }
41
43
  /**
42
44
  * HoneyPot audit and event tracking utility.
@@ -48,6 +50,8 @@ export declare class HoneyPot {
48
50
  private auditLog;
49
51
  private stats;
50
52
  private maxLogSize;
53
+ /** Reference kept so VFS events can ping the shell's idle manager. */
54
+ private _shell;
51
55
  /**
52
56
  * Creates a new HoneyPot instance.
53
57
  *
@@ -70,6 +74,8 @@ export declare class HoneyPot {
70
74
  private attachVirtualShell;
71
75
  /**
72
76
  * Attaches to VirtualFileSystem events.
77
+ * Also pings the shell's idle manager so SFTP/direct VFS activity
78
+ * counts as activity and prevents spurious freezes.
73
79
  */
74
80
  private attachVirtualFileSystem;
75
81
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Honeypot/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAID;;;;;GAKG;AACH,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,KAAK,CAaX;IAEF,OAAO,CAAC,UAAU,CAAS;IAE3B;;;;OAIG;gBACS,UAAU,GAAE,MAAc;IAKtC;;;;;;;;OAQG;IACI,MAAM,CACZ,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,kBAAkB,EACzB,GAAG,CAAC,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,SAAS,GACd,IAAI;IAaP;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAoB/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;OAEG;IACH,OAAO,CAAC,cAAc;IAyCtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyCvB;;;;;;OAMG;IACH,OAAO,CAAC,GAAG;IAuBX;;;;;;OAMG;IACI,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IAQnE;;;;OAIG;IACI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IAK1C;;OAEG;IACI,KAAK,IAAI,IAAI;IAmBpB;;;;;OAKG;IACI,SAAS,CAAC,KAAK,GAAE,MAAY,GAAG,aAAa,EAAE;IAKtD;;;;OAIG;IACI,eAAe,IAAI,KAAK,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CAmDF;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Honeypot/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACnB;AAID;;;;;GAKG;AACH,qBAAa,QAAQ;IACpB,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,KAAK,CAeX;IAEF,OAAO,CAAC,UAAU,CAAS;IAC3B,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAA6B;IAE3C;;;;OAIG;gBACS,UAAU,GAAE,MAAc;IAKtC;;;;;;;;OAQG;IACI,MAAM,CACZ,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,iBAAiB,EACtB,KAAK,EAAE,kBAAkB,EACzB,GAAG,CAAC,EAAE,QAAQ,EACd,IAAI,CAAC,EAAE,SAAS,GACd,IAAI;IAcP;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;OAEG;IACH,OAAO,CAAC,cAAc;IAyCtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAyCvB;;;;;;OAMG;IACH,OAAO,CAAC,GAAG;IAuBX;;;;;;OAMG;IACI,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IAQnE;;;;OAIG;IACI,QAAQ,IAAI,QAAQ,CAAC,aAAa,CAAC;IAK1C;;OAEG;IACI,KAAK,IAAI,IAAI;IAqBpB;;;;;OAKG;IACI,SAAS,CAAC,KAAK,GAAE,MAAY,GAAG,aAAa,EAAE;IAKtD;;;;OAIG;IACI,eAAe,IAAI,KAAK,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACpC,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CAmDF;AAED,eAAe,QAAQ,CAAC"}
@@ -30,8 +30,12 @@ export class HoneyPot {
30
30
  userDeleted: 0,
31
31
  clientConnects: 0,
32
32
  clientDisconnects: 0,
33
+ shellFreezes: 0,
34
+ shellThaws: 0,
33
35
  };
34
36
  maxLogSize;
37
+ /** Reference kept so VFS events can ping the shell's idle manager. */
38
+ _shell = null;
35
39
  /**
36
40
  * Creates a new HoneyPot instance.
37
41
  *
@@ -52,6 +56,7 @@ export class HoneyPot {
52
56
  */
53
57
  attach(shell, vfs, users, ssh, sftp) {
54
58
  perf.mark("attach");
59
+ this._shell = shell;
55
60
  this.attachVirtualShell(shell);
56
61
  this.attachVirtualFileSystem(vfs);
57
62
  this.attachVirtualUserManager(users);
@@ -77,20 +82,33 @@ export class HoneyPot {
77
82
  this.stats.sessionStarts++;
78
83
  this.log("VirtualShell", "session:start", data);
79
84
  });
85
+ shell.on("shell:freeze", () => {
86
+ this.stats.shellFreezes++;
87
+ this.log("VirtualShell", "shell:freeze", {});
88
+ });
89
+ shell.on("shell:thaw", () => {
90
+ this.stats.shellThaws++;
91
+ this.log("VirtualShell", "shell:thaw", {});
92
+ });
80
93
  }
81
94
  /**
82
95
  * Attaches to VirtualFileSystem events.
96
+ * Also pings the shell's idle manager so SFTP/direct VFS activity
97
+ * counts as activity and prevents spurious freezes.
83
98
  */
84
99
  attachVirtualFileSystem(vfs) {
85
100
  vfs.on("file:read", (data) => {
86
101
  this.stats.fileReads++;
102
+ this._shell?.pingIdle();
87
103
  this.log("VirtualFileSystem", "file:read", data);
88
104
  });
89
105
  vfs.on("file:write", (data) => {
90
106
  this.stats.fileWrites++;
107
+ this._shell?.pingIdle();
91
108
  this.log("VirtualFileSystem", "file:write", data);
92
109
  });
93
110
  vfs.on("dir:create", (data) => {
111
+ this._shell?.pingIdle();
94
112
  this.log("VirtualFileSystem", "dir:create", data);
95
113
  });
96
114
  vfs.on("mirror:flush", () => {
@@ -239,6 +257,8 @@ export class HoneyPot {
239
257
  userDeleted: 0,
240
258
  clientConnects: 0,
241
259
  clientDisconnects: 0,
260
+ shellFreezes: 0,
261
+ shellThaws: 0,
242
262
  };
243
263
  }
244
264
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Honeypot/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAiCvD,MAAM,IAAI,GAAe,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IACZ,QAAQ,GAAoB,EAAE,CAAC;IAC/B,KAAK,GAAkB;QAC9B,YAAY,EAAE,CAAC;QACf,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,CAAC;QAChB,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,iBAAiB,EAAE,CAAC;KACpB,CAAC;IAEM,UAAU,CAAS;IAE3B;;;;OAIG;IACH,YAAY,aAAqB,KAAK;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CACZ,KAAmB,EACnB,GAAsB,EACtB,KAAyB,EACzB,GAAc,EACd,IAAgB;QAEhB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,KAAmB;QAC5C,KAAsB,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEF,KAAsB,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAA6B,EAAE,EAAE;YACvE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEF,KAAsB,CAAC,EAAE,CACzB,eAAe,EACf,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC,CACD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,GAAsB;QACpD,GAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,IAA6B,EAAE,EAAE;YACvE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEF,GAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAA6B,EAAE,EAAE;YACxE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEF,GAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,IAA6B,EAAE,EAAE;YACxE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEF,GAAoB,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,KAAyB;QACxD,KAAsB,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,EAAE;YAC9C,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEF,KAAsB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,IAA6B,EAAE,EAAE;YACxE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEF,KAAsB,CAAC,EAAE,CACzB,aAAa,EACb,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC,CACD,CAAC;QAED,KAAsB,CAAC,EAAE,CACzB,kBAAkB,EAClB,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC1D,CAAC,CACD,CAAC;QAED,KAAsB,CAAC,EAAE,CACzB,oBAAoB,EACpB,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC,CACD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAa;QAClC,GAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAA6B,EAAE,EAAE;YACnE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEF,GAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEF,GAAoB,CAAC,EAAE,CACvB,cAAc,EACd,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CACD,CAAC;QAED,GAAoB,CAAC,EAAE,CACvB,cAAc,EACd,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CACD,CAAC;QAED,GAAoB,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEF,GAAoB,CAAC,EAAE,CACvB,mBAAmB,EACnB,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACjD,CAAC,CACD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,IAAe;QACrC,IAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAA6B,EAAE,EAAE;YACpE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEF,IAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;YACtC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QAEF,IAAqB,CAAC,EAAE,CACxB,cAAc,EACd,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CACD,CAAC;QAED,IAAqB,CAAC,EAAE,CACxB,cAAc,EACd,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;QAC7C,CAAC,CACD,CAAC;QAED,IAAqB,CAAC,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAChD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEF,IAAqB,CAAC,EAAE,CACxB,mBAAmB,EACnB,CAAC,IAA6B,EAAE,EAAE;YACjC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC,CACD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,GAAG,CACV,MAAc,EACd,IAAY,EACZ,OAAgC;QAEhC,MAAM,KAAK,GAAkB;YAC5B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI;YACJ,MAAM;YACN,OAAO;SACP,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,+BAA+B;QAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,0CAA0C;QAC1C,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,SAAS,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,IAAa,EAAE,MAAe;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAC1B,CAAC,KAAK,EAAE,EAAE,CACT,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CACvE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,QAAQ;QACd,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,KAAK;QACX,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG;YACZ,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,CAAC;YACd,cAAc,EAAE,CAAC;YACjB,iBAAiB,EAAE,CAAC;SACpB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,SAAS,CAAC,QAAgB,GAAG;QACnC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACI,eAAe;QAKrB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7B,MAAM,SAAS,GAIV,EAAE,CAAC;QAER,yBAAyB;QACzB,IACC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,EACtD,CAAC;YACF,SAAS,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,wBAAwB;gBAC9B,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,sBAAsB,CAC9B,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,GAAG,CACzD,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;aACf,CAAC,CAAC;QACJ,CAAC;QAED,wCAAwC;QACxC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,mCAAmC;aACtE,CAAC,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,KAAK;gBACf,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,oBAAoB;aACnD,CAAC,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,mBAAmB;gBACzB,QAAQ,EAAE,QAAQ;gBAClB,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,wBAAwB;aACzD,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC;IAClB,CAAC;CACD;AAED,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Honeypot/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { makeDefaultEnv, runCommand } from "../commands";
1
+ import { makeDefaultEnv, runCommand, userHome } from "../commands";
2
2
  function toTtyLines(text) {
3
3
  return text
4
4
  .replace(/\r\n/g, "\n")
@@ -6,7 +6,7 @@ function toTtyLines(text) {
6
6
  .replace(/\n/g, "\r\n");
7
7
  }
8
8
  export function runExec(stream, cmd, authUser, hostname, shell) {
9
- Promise.resolve(runCommand(cmd, authUser, hostname, "exec", `/home/${authUser}`, shell, undefined, makeDefaultEnv(authUser, hostname)))
9
+ Promise.resolve(runCommand(cmd, authUser, hostname, "exec", userHome(authUser), shell, undefined, makeDefaultEnv(authUser, hostname)))
10
10
  .then((result) => {
11
11
  if (result.stdout) {
12
12
  stream.write(`${toTtyLines(result.stdout)}\r\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/SSHMimic/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzD,SAAS,UAAU,CAAC,IAAY;IAC/B,OAAO,IAAI;SACT,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CACtB,MAAkB,EAClB,GAAW,EACX,QAAgB,EAChB,QAAgB,EAChB,KAAmB;IAEnB,OAAO,CAAC,OAAO,CACd,UAAU,CACT,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,QAAQ,EAAE,EACnB,KAAK,EACL,SAAS,EACT,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAClC,CACD;SACC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAChB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/SSHMimic/exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAInE,SAAS,UAAU,CAAC,IAAY;IAC/B,OAAO,IAAI;SACT,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,OAAO,CACtB,MAAkB,EAClB,GAAW,EACX,QAAgB,EAChB,QAAgB,EAChB,KAAmB;IAEnB,OAAO,CAAC,OAAO,CACd,UAAU,CACT,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,CAAC,QAAQ,CAAC,EAClB,KAAK,EACL,SAAS,EACT,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAClC,CACD;SACC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAChB,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -13,11 +13,12 @@ declare class SshMimic extends EventEmitter {
13
13
  /**
14
14
  * Creates a new SSH mimic server instance.
15
15
  *
16
- * @param port TCP port to bind on localhost.
17
- * @param hostname Virtual hostname used for the SSH ident and default shell label.
18
- * @param shell Optional preconfigured virtual shell instance to reuse.
19
- * @param maxAuthAttempts Max failed attempts per IP before lockout (default: 5).
20
- * @param lockoutDurationMs Lockout window in ms after exceeding attempts (default: 60 000).
16
+ * @param options - Configuration object for the SSH server.
17
+ * @param options.port - TCP port to bind on localhost.
18
+ * @param options.hostname - Virtual hostname used for the SSH ident and default shell label.
19
+ * @param options.shell - Optional preconfigured virtual shell instance to reuse.
20
+ * @param options.maxAuthAttempts - Max failed attempts per IP before lockout (default: 5).
21
+ * @param options.lockoutDurationMs - Lockout window in ms after exceeding attempts (default: 60 000).
21
22
  */
22
23
  constructor({ port, hostname, shell, maxAuthAttempts, lockoutDurationMs, }: {
23
24
  port: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SSHMimic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+B/C,cAAM,QAAS,SAAQ,YAAY;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,KAAK,CAAe;IAE5B,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAElE;;;;;;;;OAQG;gBACS,EACX,IAAI,EACJ,QAA0B,EAC1B,KAAkC,EAClC,eAAmB,EACnB,iBAA0B,GAC1B,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAYD,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAcrB;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA0LrC;;OAEG;IACI,IAAI,IAAI,IAAI;IAYnB;;;OAGG;IACI,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/SSHMimic/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiC/C,cAAM,QAAS,SAAQ,YAAY;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,KAAK,CAAe;IAE5B,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqC;IAElE;;;;;;;;;OASG;gBACS,EACX,IAAI,EACJ,QAA0B,EAC1B,KAAkC,EAClC,eAAmB,EACnB,iBAA0B,GAC1B,EAAE;QACF,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAYD,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAcrB;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IA0LrC;;OAEG;IACI,IAAI,IAAI,IAAI;IAYnB;;;OAGG;IACI,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;CAGrC;AAED,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { EventEmitter } from "node:events";
2
2
  import { Server as SshServer } from "ssh2";
3
3
  import { VirtualShell } from "../VirtualShell";
4
+ import { userHome } from "../commands";
4
5
  import { createPerfLogger } from "../utils/perfLogger";
5
6
  import { runExec } from "./exec";
6
7
  import { loadOrCreateHostKey } from "./hostKey";
@@ -34,11 +35,12 @@ class SshMimic extends EventEmitter {
34
35
  /**
35
36
  * Creates a new SSH mimic server instance.
36
37
  *
37
- * @param port TCP port to bind on localhost.
38
- * @param hostname Virtual hostname used for the SSH ident and default shell label.
39
- * @param shell Optional preconfigured virtual shell instance to reuse.
40
- * @param maxAuthAttempts Max failed attempts per IP before lockout (default: 5).
41
- * @param lockoutDurationMs Lockout window in ms after exceeding attempts (default: 60 000).
38
+ * @param options - Configuration object for the SSH server.
39
+ * @param options.port - TCP port to bind on localhost.
40
+ * @param options.hostname - Virtual hostname used for the SSH ident and default shell label.
41
+ * @param options.shell - Optional preconfigured virtual shell instance to reuse.
42
+ * @param options.maxAuthAttempts - Max failed attempts per IP before lockout (default: 5).
43
+ * @param options.lockoutDurationMs - Lockout window in ms after exceeding attempts (default: 60 000).
42
44
  */
43
45
  constructor({ port, hostname = "typescript-vm", shell = new VirtualShell(hostname), maxAuthAttempts = 5, lockoutDurationMs = 60_000, }) {
44
46
  super();
@@ -75,7 +77,7 @@ class SshMimic extends EventEmitter {
75
77
  }
76
78
  // ── Home directory bootstrap ─────────────────────────────────────────────
77
79
  ensureHomeDir(authUser) {
78
- const homePath = `/home/${authUser}`;
80
+ const homePath = userHome(authUser);
79
81
  if (!this.shell.vfs.exists(homePath)) {
80
82
  this.shell.vfs.mkdir(homePath, 0o755);
81
83
  this.shell.vfs.writeFile(`${homePath}/README.txt`, `Welcome to ${this.shell.hostname}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SSHMimic/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/SSHMimic/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { Server as SshServer } from "ssh2";
4
4
  import type VirtualFileSystem from "../VirtualFileSystem";
5
5
  import { VirtualShell } from "../VirtualShell";
6
6
  import type { VirtualUserManager } from "../VirtualUserManager";
7
+ /** Options for {@link SftpMimic} constructor. */
7
8
  export interface SftpMimicOptions {
8
9
  port: number;
9
10
  hostname?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sftp.d.ts","sourceRoot":"","sources":["../../src/SSHMimic/sftp.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAI3C,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAmIhE,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,qBAAa,SAAU,SAAQ,YAAY;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,OAAO,CAAiC;gBAEpC,EACX,IAAI,EACJ,QAA0B,EAC1B,KAAK,EACL,GAAG,EACH,KAAK,GACL,EAAE,gBAAgB;IAwBnB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAuK9B,IAAI,IAAI,IAAI;IAUnB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;CAwa1B"}
1
+ {"version":3,"file":"sftp.d.ts","sourceRoot":"","sources":["../../src/SSHMimic/sftp.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAI3C,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAwIhE,iDAAiD;AACjD,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,qBAAa,SAAU,SAAQ,YAAY;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,OAAO,CAAiC;gBAEpC,EACX,IAAI,EACJ,QAA0B,EAC1B,KAAK,EACL,GAAG,EACH,KAAK,GACL,EAAE,gBAAgB;IAwBnB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,QAAQ;IAIH,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAuK9B,IAAI,IAAI,IAAI;IAUnB;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAiB1B;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,kBAAkB;CAwa1B"}
@@ -3,6 +3,7 @@ import { EventEmitter } from "node:events";
3
3
  import * as path from "node:path";
4
4
  import { Server as SshServer } from "ssh2";
5
5
  import { createPerfLogger } from "../utils/perfLogger";
6
+ import { userHome } from "../commands";
6
7
  import { VirtualShell } from "../VirtualShell";
7
8
  import { loadOrCreateHostKey } from "./hostKey";
8
9
  // ── Dev-mode logger — silent in production ────────────────────────────────────
@@ -103,7 +104,7 @@ export class SftpMimic extends EventEmitter {
103
104
  if (!this.getVfs().exists(homeRoot)) {
104
105
  this.getVfs().mkdir(homeRoot, 0o755);
105
106
  }
106
- const homePath = `/home/${authUser}`;
107
+ const homePath = userHome(authUser);
107
108
  if (!this.getVfs().exists(homePath)) {
108
109
  this.getVfs().mkdir(homePath, 0o755);
109
110
  this.getVfs().writeFile(`${homePath}/README.txt`, `Welcome to ${this.hostname}`);
@@ -211,7 +212,7 @@ export class SftpMimic extends EventEmitter {
211
212
  * This is standard SFTP behavior where the "working directory" is always the home.
212
213
  */
213
214
  resolveRequestPath(requestPath, authUser) {
214
- const homePath = `/home/${authUser}`;
215
+ const homePath = userHome(authUser);
215
216
  // Empty path or "." → resolve to home directory
216
217
  if (!requestPath || requestPath === ".") {
217
218
  return homePath;
@@ -232,7 +233,7 @@ export class SftpMimic extends EventEmitter {
232
233
  * @returns true if path is within home, false if traversal attempt detected
233
234
  */
234
235
  isPathWithinHome(targetPath, authUser) {
235
- const homePath = `/home/${authUser}`;
236
+ const homePath = userHome(authUser);
236
237
  const normalized = path.posix.normalize(targetPath);
237
238
  // Allow access to home directory itself
238
239
  if (normalized === homePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../src/SSHMimic/sftp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sftp.js","sourceRoot":"","sources":["../../src/SSHMimic/sftp.ts"],"names":[],"mappings":"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"}
@@ -145,6 +145,20 @@ declare class VirtualFileSystem extends EventEmitter {
145
145
  * @internal
146
146
  */
147
147
  importRootTree(root: InternalDirectoryNode): void;
148
+ /**
149
+ * Merge a static rootfs tree into the existing live tree.
150
+ * Used by `bootstrapLinuxRootfs` when a persisted snapshot already exists,
151
+ * to layer in missing system files without overwriting user data.
152
+ *
153
+ * Rules:
154
+ * - Directories: recurse — never overwrite a live dir with an empty one.
155
+ * - Files/stubs: only written if the path does NOT yet exist in the live tree.
156
+ * This ensures user-created files always win over static defaults.
157
+ *
158
+ * @internal
159
+ */
160
+ mergeRootTree(incoming: InternalDirectoryNode): void;
161
+ private _mergeDir;
148
162
  /** Serialise current tree to VFSB binary. Used for the static rootfs cache. */
149
163
  encodeBinary(): Buffer;
150
164
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/VirtualFileSystem/index.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,WAAW,EAIX,gBAAgB,EAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EACX,qBAAqB,EAIrB,MAAM,iBAAiB,CAAC;AAMzB;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,UAAU;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,cAAM,iBAAkB,SAAQ,YAAY;IAC3C,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,2FAA2F;IAC3F,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,mDAAmD;IACnD,OAAO,CAAC,iBAAiB,CAAK;IAC9B,gFAAgF;IAChF,OAAO,CAAC,WAAW,CAA+C;IAClE,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAS;IACvB,mEAAmE;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8D;IACrF,sEAAsE;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CACoE;gBAEzF,OAAO,GAAE,UAAe;IAsCpC,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,QAAQ;IAkBhB,OAAO,CAAC,QAAQ;IAKhB;;;;;OAKG;IACI,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,SAAQ,GAAG,IAAI;IAkBzE,OAAO,CAAC,cAAc;IA0BtB;;;;;;OAMG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC3C;;;;;;OAMG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzC,4CAA4C;IACrC,OAAO,IAAI,kBAAkB;IAIpC,qEAAqE;IAC9D,eAAe,IAAI,MAAM,GAAG,IAAI;IAMvC,qDAAqD;IAMrD,mEAAmE;YACrD,UAAU;IAKxB,iFAAiF;IACjF,OAAO,CAAC,UAAU;IAWlB;;;;;;;;;;;OAWG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3C;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAMxD;;;;;;;;;;;OAWG;IACI,aAAa,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAM3D,OAAO,CAAC,SAAS;IAuBjB,+EAA+E;IACxE,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,WAAW,IAAI,IAAI;IAK1B,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAS;IAE5B,8DAA8D;IAC9D,OAAO,CAAC,QAAQ;IAOhB,gEAAgE;IAChE,OAAO,CAAC,cAAc;IA4BtB;;;;OAIG;IACI,eAAe,IAAI,IAAI;IAM9B,OAAO,CAAC,SAAS;IAkBjB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA2BtB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CACX,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,EAAE,QAAe,EAAE,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GAC9C,IAAI;IAgBP;;;;OAIG;IACI,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOnC,8BAA8B;IACvB,SAAS,IAAI,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAMjF;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAqBZ,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAc,GAAG,IAAI;IAiB7D;;;OAGG;IACI,SAAS,CACf,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,OAAO,GAAE,gBAAqB,GAC5B,IAAI;IAiDP;;;OAGG;IACI,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAsB3C,+DAA+D;IACxD,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAuB9C,4DAA4D;IACrD,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAW1C,mCAAmC;IAC5B,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMpD,gDAAgD;IACzC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY;IAsE7C,2DAA2D;IACpD,IAAI,CAAC,OAAO,GAAE,MAAY,GAAG,MAAM,EAAE;IAgB5C,wDAAwD;IACjD,IAAI,CAAC,OAAO,GAAE,MAAY,GAAG,MAAM;IAU1C,OAAO,CAAC,eAAe;IAqBvB,gDAAgD;IACzC,aAAa,CAAC,UAAU,GAAE,MAAY,GAAG,MAAM;IAItD,OAAO,CAAC,YAAY;IAUpB,sDAAsD;IAC/C,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAY7C,oDAAoD;IAC7C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAY/C;;;OAGG;IACI,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IA8B1D,0DAA0D;IACnD,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAS7C;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM;IAsB7D,wCAAwC;IACjC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,IAAI;IAmCpE,+BAA+B;IACxB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAiCnD;;;;;OAKG;IACI,UAAU,IAAI,WAAW;IAIhC,OAAO,CAAC,YAAY;IA8BpB,OAAO,CAAC,aAAa;IAYrB;;;;;;;OAOG;WACW,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB;IAMpE;;;;;;;;OAQG;IACI,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAKlD,OAAO,CAAC,cAAc;CAoCtB;AAED,eAAe,iBAAiB,CAAC"}
@@ -61,10 +61,11 @@ class VirtualFileSystem extends EventEmitter {
61
61
  this.journalFile = path.resolve(options.snapshotPath, "vfs-journal.bin");
62
62
  this.evictionThreshold = options.evictionThresholdBytes ?? 64 * 1024; // 64 KB default
63
63
  this.flushAfterNWrites = options.flushAfterNWrites ?? 500;
64
- const intervalMs = options.flushIntervalMs ?? 30_000;
64
+ const intervalMs = options.flushIntervalMs ?? 1_000;
65
65
  if (intervalMs > 0) {
66
66
  this._flushTimer = setInterval(() => {
67
- if (this._dirty)
67
+ const dirty = this._dirty;
68
+ if (dirty)
68
69
  void this._autoFlush();
69
70
  }, intervalMs);
70
71
  // Don't block process exit on this timer
@@ -212,7 +213,8 @@ class VirtualFileSystem extends EventEmitter {
212
213
  }
213
214
  const dir = path.dirname(this.snapshotFile);
214
215
  fsSync.mkdirSync(dir, { recursive: true });
215
- const binary = encodeVfs(this.root);
216
+ const root = this.root;
217
+ const binary = encodeVfs(root);
216
218
  fsSync.writeFileSync(this.snapshotFile, binary);
217
219
  // Checkpoint complete — truncate the journal (entries are now in the snapshot)
218
220
  if (this.journalFile)
@@ -287,6 +289,52 @@ class VirtualFileSystem extends EventEmitter {
287
289
  this._replayMode = prev;
288
290
  }
289
291
  }
292
+ /**
293
+ * Merge a static rootfs tree into the existing live tree.
294
+ * Used by `bootstrapLinuxRootfs` when a persisted snapshot already exists,
295
+ * to layer in missing system files without overwriting user data.
296
+ *
297
+ * Rules:
298
+ * - Directories: recurse — never overwrite a live dir with an empty one.
299
+ * - Files/stubs: only written if the path does NOT yet exist in the live tree.
300
+ * This ensures user-created files always win over static defaults.
301
+ *
302
+ * @internal
303
+ */
304
+ mergeRootTree(incoming) {
305
+ const prev = this._replayMode;
306
+ this._replayMode = true;
307
+ try {
308
+ this._mergeDir(this.root, incoming);
309
+ }
310
+ finally {
311
+ this._replayMode = prev;
312
+ }
313
+ }
314
+ _mergeDir(live, incoming) {
315
+ for (const [name, node] of Object.entries(incoming.children)) {
316
+ const existing = live.children[name];
317
+ if (node.type === "directory") {
318
+ if (!existing) {
319
+ // Dir doesn't exist yet — add it
320
+ live.children[name] = node;
321
+ live._childCount++;
322
+ }
323
+ else if (existing.type === "directory") {
324
+ // Both dirs — recurse
325
+ this._mergeDir(existing, node);
326
+ }
327
+ // existing is a file where dir expected — leave user file alone
328
+ }
329
+ else {
330
+ // File or stub — only add if not already present
331
+ if (!existing) {
332
+ live.children[name] = node;
333
+ live._childCount++;
334
+ }
335
+ }
336
+ }
337
+ }
290
338
  /** Serialise current tree to VFSB binary. Used for the static rootfs cache. */
291
339
  encodeBinary() {
292
340
  return encodeVfs(this.root);