typescript-virtual-container 1.5.3 → 1.5.4

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 (365) hide show
  1. package/README.md +43 -23
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/SSHMimic/executor.js +23 -5
  4. package/dist/VirtualPackageManager/index.js +10 -0
  5. package/dist/commands/basename.d.ts +13 -0
  6. package/dist/commands/basename.js +45 -0
  7. package/dist/commands/file.d.ts +8 -0
  8. package/dist/commands/file.js +57 -0
  9. package/dist/commands/fun.d.ts +32 -0
  10. package/dist/commands/fun.js +172 -0
  11. package/dist/commands/ifconfig.d.ts +7 -0
  12. package/dist/commands/ifconfig.js +52 -0
  13. package/dist/commands/last.d.ts +13 -0
  14. package/dist/commands/last.js +68 -0
  15. package/dist/commands/manuals-bundle.js +598 -6
  16. package/dist/commands/registry.js +24 -2
  17. package/dist/commands/runtime.js +22 -2
  18. package/dist/commands/sh.js +5 -0
  19. package/dist/commands/tput.d.ts +13 -0
  20. package/dist/commands/tput.js +76 -0
  21. package/dist/commands/w.d.ts +7 -0
  22. package/dist/commands/w.js +38 -0
  23. package/dist/utils/expand.d.ts +12 -0
  24. package/dist/utils/expand.js +84 -0
  25. package/package.json +9 -3
  26. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -50
  27. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -31
  28. package/.github/dependabot.yml +0 -27
  29. package/.github/pull_request_template.md +0 -21
  30. package/.github/workflows/create-pull-request.yml +0 -85
  31. package/.github/workflows/publish.yml +0 -25
  32. package/.github/workflows/test-battery.yml +0 -102
  33. package/.vscode/settings.json +0 -20
  34. package/CODE_OF_CONDUCT.md +0 -39
  35. package/CONTRIBUTING.md +0 -59
  36. package/HONEYPOT.md +0 -358
  37. package/SECURITY.md +0 -33
  38. package/benchmark-results.txt +0 -40
  39. package/benchmark-virtualshell.ts +0 -88
  40. package/biome.json +0 -37
  41. package/build.js +0 -22
  42. package/builds/fortune-nyx-v1.5.3-directbash-k6.1.0.mjs +0 -1764
  43. package/builds/fortune-nyx-v1.5.3-ssh-nosftp.js +0 -1764
  44. package/builds/fortune-nyx-v1.5.3-ssh.cjs +0 -1765
  45. package/builds/fortune-nyx-v1.5.3-web.min.js +0 -17036
  46. package/bun.lock +0 -244
  47. package/docs/.nojekyll +0 -1
  48. package/docs/app.js +0 -1751
  49. package/docs/assets/hierarchy.js +0 -1
  50. package/docs/assets/highlight.css +0 -162
  51. package/docs/assets/icons.js +0 -18
  52. package/docs/assets/icons.svg +0 -1
  53. package/docs/assets/main.js +0 -60
  54. package/docs/assets/navigation.js +0 -1
  55. package/docs/assets/search.js +0 -1
  56. package/docs/assets/style.css +0 -1633
  57. package/docs/classes/HoneyPot.html +0 -31
  58. package/docs/classes/IdleManager.html +0 -162
  59. package/docs/classes/SshClient.html +0 -66
  60. package/docs/classes/VirtualFileSystem.html +0 -279
  61. package/docs/classes/VirtualPackageManager.html +0 -63
  62. package/docs/classes/VirtualSftpServer.html +0 -169
  63. package/docs/classes/VirtualShell.html +0 -285
  64. package/docs/classes/VirtualSshServer.html +0 -182
  65. package/docs/classes/VirtualUserManager.html +0 -276
  66. package/docs/demo.html +0 -82
  67. package/docs/functions/assertDiff.html +0 -6
  68. package/docs/functions/diffSnapshots.html +0 -7
  69. package/docs/functions/formatDiff.html +0 -6
  70. package/docs/functions/getArg.html +0 -13
  71. package/docs/functions/getFlag.html +0 -15
  72. package/docs/functions/ifFlag.html +0 -11
  73. package/docs/hierarchy.html +0 -1
  74. package/docs/index.html +0 -1869
  75. package/docs/interfaces/AuditLogEntry.html +0 -6
  76. package/docs/interfaces/CommandContext.html +0 -22
  77. package/docs/interfaces/CommandResult.html +0 -26
  78. package/docs/interfaces/ExecStream.html +0 -11
  79. package/docs/interfaces/HoneyPotStats.html +0 -16
  80. package/docs/interfaces/IdleManagerOptions.html +0 -7
  81. package/docs/interfaces/InstalledPackage.html +0 -20
  82. package/docs/interfaces/NanoEditorSession.html +0 -8
  83. package/docs/interfaces/PackageDefinition.html +0 -30
  84. package/docs/interfaces/PackageFile.html +0 -8
  85. package/docs/interfaces/PasswordChallenge.html +0 -16
  86. package/docs/interfaces/RemoveOptions.html +0 -4
  87. package/docs/interfaces/ShellEnv.html +0 -6
  88. package/docs/interfaces/ShellModule.html +0 -14
  89. package/docs/interfaces/ShellProperties.html +0 -14
  90. package/docs/interfaces/ShellStream.html +0 -11
  91. package/docs/interfaces/SudoChallenge.html +0 -24
  92. package/docs/interfaces/VfsBaseNode.html +0 -12
  93. package/docs/interfaces/VfsDiff.html +0 -10
  94. package/docs/interfaces/VfsDiffEntry.html +0 -6
  95. package/docs/interfaces/VfsDiffModified.html +0 -10
  96. package/docs/interfaces/VfsDirectoryNode.html +0 -15
  97. package/docs/interfaces/VfsFileNode.html +0 -17
  98. package/docs/interfaces/VfsOptions.html +0 -26
  99. package/docs/interfaces/VfsSnapshot.html +0 -3
  100. package/docs/interfaces/VfsSnapshotBaseNode.html +0 -8
  101. package/docs/interfaces/VfsSnapshotDirectoryNode.html +0 -10
  102. package/docs/interfaces/VfsSnapshotFileNode.html +0 -12
  103. package/docs/interfaces/VirtualActiveSession.html +0 -12
  104. package/docs/interfaces/VirtualSftpServerOptions.html +0 -7
  105. package/docs/interfaces/VirtualShellVfsLike.html +0 -15
  106. package/docs/interfaces/VirtualShellVfsOptions.html +0 -3
  107. package/docs/interfaces/WriteFileOptions.html +0 -6
  108. package/docs/media/LICENSE +0 -21
  109. package/docs/modules.html +0 -1
  110. package/docs/types/ArgParseOptions.html +0 -4
  111. package/docs/types/CommandMode.html +0 -2
  112. package/docs/types/CommandOutcome.html +0 -2
  113. package/docs/types/IdleState.html +0 -1
  114. package/docs/types/VfsNodeStats.html +0 -2
  115. package/docs/types/VfsNodeType.html +0 -2
  116. package/docs/types/VfsPersistenceMode.html +0 -5
  117. package/docs/types/VfsSnapshotNode.html +0 -2
  118. package/examples/README.md +0 -288
  119. package/examples/app.js +0 -1751
  120. package/examples/app.ts +0 -299
  121. package/examples/build.js +0 -27
  122. package/examples/demo.html +0 -33
  123. package/examples/honeypot-audit.ts +0 -180
  124. package/examples/honeypot-export.ts +0 -253
  125. package/examples/honeypot-quickstart.ts +0 -110
  126. package/examples/index.html +0 -82
  127. package/examples/server.js +0 -55
  128. package/polyfills/buffer.js +0 -117
  129. package/polyfills/node_child_process/index.js +0 -2
  130. package/polyfills/node_crypto/index.js +0 -167
  131. package/polyfills/node_events/index.js +0 -9
  132. package/polyfills/node_fs/index.js +0 -202
  133. package/polyfills/node_fs/promises.js +0 -4
  134. package/polyfills/node_os/index.js +0 -9
  135. package/polyfills/node_path/index.js +0 -28
  136. package/polyfills/node_vm/index.js +0 -7
  137. package/polyfills/node_zlib/index.js +0 -3
  138. package/polyfills/process.js +0 -14
  139. package/polyfills/ssh2/index.js +0 -75
  140. package/scripts/build-all.mjs +0 -226
  141. package/scripts/build-names.mjs +0 -43
  142. package/scripts/generate-manuals-bundle.mjs +0 -49
  143. package/scripts/postinstall.js +0 -42
  144. package/scripts/publish-package.sh +0 -70
  145. package/src/Honeypot/index.ts +0 -457
  146. package/src/SSHClient/index.ts +0 -270
  147. package/src/SSHMimic/exec.ts +0 -49
  148. package/src/SSHMimic/executor.ts +0 -251
  149. package/src/SSHMimic/hostKey.ts +0 -21
  150. package/src/SSHMimic/index.ts +0 -337
  151. package/src/SSHMimic/loginBanner.ts +0 -36
  152. package/src/SSHMimic/loginFormat.ts +0 -10
  153. package/src/SSHMimic/prompt.ts +0 -14
  154. package/src/SSHMimic/sftp.ts +0 -883
  155. package/src/VirtualFileSystem/binaryPack.ts +0 -258
  156. package/src/VirtualFileSystem/index.ts +0 -1193
  157. package/src/VirtualFileSystem/internalTypes.ts +0 -43
  158. package/src/VirtualFileSystem/journal.ts +0 -171
  159. package/src/VirtualFileSystem/path.ts +0 -74
  160. package/src/VirtualPackageManager/index.ts +0 -996
  161. package/src/VirtualShell/idleManager.ts +0 -137
  162. package/src/VirtualShell/index.ts +0 -475
  163. package/src/VirtualShell/shell.ts +0 -700
  164. package/src/VirtualShell/shellParser.ts +0 -285
  165. package/src/VirtualUserManager/index.ts +0 -758
  166. package/src/bun.d.ts +0 -1
  167. package/src/commands/adduser.ts +0 -103
  168. package/src/commands/alias.ts +0 -69
  169. package/src/commands/apt.ts +0 -233
  170. package/src/commands/awk.ts +0 -168
  171. package/src/commands/base64.ts +0 -29
  172. package/src/commands/cat.ts +0 -52
  173. package/src/commands/cd.ts +0 -25
  174. package/src/commands/chmod.ts +0 -85
  175. package/src/commands/clear.ts +0 -15
  176. package/src/commands/command-helpers.ts +0 -286
  177. package/src/commands/cp.ts +0 -83
  178. package/src/commands/curl.ts +0 -147
  179. package/src/commands/cut.ts +0 -36
  180. package/src/commands/date.ts +0 -30
  181. package/src/commands/declare.ts +0 -49
  182. package/src/commands/deluser.ts +0 -98
  183. package/src/commands/df.ts +0 -23
  184. package/src/commands/diff.ts +0 -43
  185. package/src/commands/dpkg.ts +0 -180
  186. package/src/commands/du.ts +0 -56
  187. package/src/commands/echo.ts +0 -58
  188. package/src/commands/env.ts +0 -23
  189. package/src/commands/exit.ts +0 -18
  190. package/src/commands/export.ts +0 -34
  191. package/src/commands/find.ts +0 -68
  192. package/src/commands/free.ts +0 -47
  193. package/src/commands/grep.ts +0 -116
  194. package/src/commands/groups.ts +0 -19
  195. package/src/commands/gzip.ts +0 -88
  196. package/src/commands/head.ts +0 -52
  197. package/src/commands/help.ts +0 -152
  198. package/src/commands/helpers.ts +0 -234
  199. package/src/commands/history.ts +0 -34
  200. package/src/commands/hostname.ts +0 -14
  201. package/src/commands/htop.ts +0 -20
  202. package/src/commands/id.ts +0 -19
  203. package/src/commands/index.ts +0 -9
  204. package/src/commands/kill.ts +0 -19
  205. package/src/commands/ln.ts +0 -71
  206. package/src/commands/ls.ts +0 -243
  207. package/src/commands/lsb-release.ts +0 -63
  208. package/src/commands/man.ts +0 -31
  209. package/src/commands/manuals/adduser.txt +0 -11
  210. package/src/commands/manuals/apt-cache.txt +0 -12
  211. package/src/commands/manuals/apt.txt +0 -20
  212. package/src/commands/manuals/awk.txt +0 -13
  213. package/src/commands/manuals/cat.txt +0 -14
  214. package/src/commands/manuals/cd.txt +0 -16
  215. package/src/commands/manuals/chmod.txt +0 -16
  216. package/src/commands/manuals/clear.txt +0 -10
  217. package/src/commands/manuals/cp.txt +0 -10
  218. package/src/commands/manuals/curl.txt +0 -20
  219. package/src/commands/manuals/date.txt +0 -14
  220. package/src/commands/manuals/declare.txt +0 -12
  221. package/src/commands/manuals/deluser.txt +0 -10
  222. package/src/commands/manuals/df.txt +0 -10
  223. package/src/commands/manuals/dpkg-query.txt +0 -11
  224. package/src/commands/manuals/dpkg.txt +0 -14
  225. package/src/commands/manuals/du.txt +0 -11
  226. package/src/commands/manuals/echo.txt +0 -11
  227. package/src/commands/manuals/false.txt +0 -10
  228. package/src/commands/manuals/find.txt +0 -11
  229. package/src/commands/manuals/free.txt +0 -12
  230. package/src/commands/manuals/grep.txt +0 -13
  231. package/src/commands/manuals/groups.txt +0 -10
  232. package/src/commands/manuals/gzip.txt +0 -11
  233. package/src/commands/manuals/head.txt +0 -10
  234. package/src/commands/manuals/help.txt +0 -11
  235. package/src/commands/manuals/history.txt +0 -11
  236. package/src/commands/manuals/hostname.txt +0 -10
  237. package/src/commands/manuals/id.txt +0 -10
  238. package/src/commands/manuals/kill.txt +0 -13
  239. package/src/commands/manuals/ls.txt +0 -20
  240. package/src/commands/manuals/lsb_release.txt +0 -14
  241. package/src/commands/manuals/mkdir.txt +0 -10
  242. package/src/commands/manuals/mv.txt +0 -10
  243. package/src/commands/manuals/nano.txt +0 -11
  244. package/src/commands/manuals/neofetch.txt +0 -10
  245. package/src/commands/manuals/node.txt +0 -13
  246. package/src/commands/manuals/npm.txt +0 -13
  247. package/src/commands/manuals/npx.txt +0 -13
  248. package/src/commands/manuals/passwd.txt +0 -11
  249. package/src/commands/manuals/ping.txt +0 -10
  250. package/src/commands/manuals/printf.txt +0 -11
  251. package/src/commands/manuals/ps.txt +0 -10
  252. package/src/commands/manuals/pwd.txt +0 -10
  253. package/src/commands/manuals/python3.txt +0 -13
  254. package/src/commands/manuals/readlink.txt +0 -10
  255. package/src/commands/manuals/return.txt +0 -10
  256. package/src/commands/manuals/rm.txt +0 -10
  257. package/src/commands/manuals/sed.txt +0 -11
  258. package/src/commands/manuals/set.txt +0 -11
  259. package/src/commands/manuals/shift.txt +0 -10
  260. package/src/commands/manuals/sleep.txt +0 -10
  261. package/src/commands/manuals/sort.txt +0 -12
  262. package/src/commands/manuals/source.txt +0 -11
  263. package/src/commands/manuals/ssh.txt +0 -11
  264. package/src/commands/manuals/stat.txt +0 -10
  265. package/src/commands/manuals/su.txt +0 -13
  266. package/src/commands/manuals/sudo.txt +0 -11
  267. package/src/commands/manuals/tail.txt +0 -10
  268. package/src/commands/manuals/tar.txt +0 -19
  269. package/src/commands/manuals/tee.txt +0 -10
  270. package/src/commands/manuals/test.txt +0 -11
  271. package/src/commands/manuals/touch.txt +0 -11
  272. package/src/commands/manuals/tr.txt +0 -10
  273. package/src/commands/manuals/trap.txt +0 -10
  274. package/src/commands/manuals/true.txt +0 -10
  275. package/src/commands/manuals/type.txt +0 -10
  276. package/src/commands/manuals/uname.txt +0 -12
  277. package/src/commands/manuals/uniq.txt +0 -12
  278. package/src/commands/manuals/unset.txt +0 -10
  279. package/src/commands/manuals/uptime.txt +0 -11
  280. package/src/commands/manuals/wc.txt +0 -12
  281. package/src/commands/manuals/wget.txt +0 -12
  282. package/src/commands/manuals/which.txt +0 -10
  283. package/src/commands/manuals/whoami.txt +0 -10
  284. package/src/commands/manuals/xargs.txt +0 -10
  285. package/src/commands/manuals-bundle.ts +0 -898
  286. package/src/commands/mkdir.ts +0 -31
  287. package/src/commands/mv.ts +0 -50
  288. package/src/commands/nano.ts +0 -38
  289. package/src/commands/neofetch.ts +0 -53
  290. package/src/commands/node.ts +0 -341
  291. package/src/commands/npm.ts +0 -132
  292. package/src/commands/passwd.ts +0 -50
  293. package/src/commands/ping.ts +0 -32
  294. package/src/commands/printf.ts +0 -129
  295. package/src/commands/ps.ts +0 -58
  296. package/src/commands/pwd.ts +0 -9
  297. package/src/commands/python.ts +0 -2229
  298. package/src/commands/read.ts +0 -46
  299. package/src/commands/registry.ts +0 -249
  300. package/src/commands/rm.ts +0 -42
  301. package/src/commands/runtime.ts +0 -421
  302. package/src/commands/sed.ts +0 -68
  303. package/src/commands/seq.ts +0 -43
  304. package/src/commands/set.ts +0 -29
  305. package/src/commands/sh.ts +0 -467
  306. package/src/commands/shift.ts +0 -63
  307. package/src/commands/sleep.ts +0 -20
  308. package/src/commands/sort.ts +0 -46
  309. package/src/commands/source.ts +0 -52
  310. package/src/commands/stat.ts +0 -61
  311. package/src/commands/su.ts +0 -72
  312. package/src/commands/sudo.ts +0 -76
  313. package/src/commands/tail.ts +0 -53
  314. package/src/commands/tar.ts +0 -102
  315. package/src/commands/tee.ts +0 -36
  316. package/src/commands/test.ts +0 -137
  317. package/src/commands/touch.ts +0 -28
  318. package/src/commands/tr.ts +0 -70
  319. package/src/commands/tree.ts +0 -20
  320. package/src/commands/true.ts +0 -27
  321. package/src/commands/type.ts +0 -48
  322. package/src/commands/uname.ts +0 -29
  323. package/src/commands/uniq.ts +0 -39
  324. package/src/commands/unset.ts +0 -17
  325. package/src/commands/uptime.ts +0 -54
  326. package/src/commands/wc.ts +0 -55
  327. package/src/commands/wget.ts +0 -148
  328. package/src/commands/which.ts +0 -37
  329. package/src/commands/who.ts +0 -25
  330. package/src/commands/whoami.ts +0 -14
  331. package/src/commands/xargs.ts +0 -31
  332. package/src/index.ts +0 -67
  333. package/src/modules/linuxRootfs.ts +0 -1961
  334. package/src/modules/neofetch.ts +0 -358
  335. package/src/modules/shellInteractive.ts +0 -57
  336. package/src/modules/shellRuntime.ts +0 -76
  337. package/src/self-standalone.ts +0 -542
  338. package/src/standalone-wo-sftp.ts +0 -38
  339. package/src/standalone.ts +0 -72
  340. package/src/types/commands.ts +0 -146
  341. package/src/types/pipeline.ts +0 -52
  342. package/src/types/streams.ts +0 -32
  343. package/src/types/tar-stream.d.ts +0 -38
  344. package/src/types/vfs.ts +0 -98
  345. package/src/utils/expand.ts +0 -491
  346. package/src/utils/perfLogger.ts +0 -72
  347. package/src/utils/tokenize.ts +0 -98
  348. package/src/utils/vfsDiff.ts +0 -275
  349. package/tests/command-helpers.test.ts +0 -116
  350. package/tests/commands-admin-net.test.ts +0 -441
  351. package/tests/commands-advanced.test.ts +0 -456
  352. package/tests/commands-core.test.ts +0 -562
  353. package/tests/commands-missing.test.ts +0 -570
  354. package/tests/commands-specific-units.test.ts +0 -327
  355. package/tests/commands-text-sys.test.ts +0 -445
  356. package/tests/expand.test.ts +0 -170
  357. package/tests/helpers.test.ts +0 -97
  358. package/tests/new-features.test.ts +0 -1036
  359. package/tests/parser-executor.test.ts +0 -37
  360. package/tests/sftp.test.ts +0 -323
  361. package/tests/ssh-exec.test.ts +0 -45
  362. package/tests/test-helper.ts +0 -79
  363. package/tests/users.test.ts +0 -86
  364. package/tsconfig.json +0 -49
  365. package/typedoc.json +0 -47
@@ -1,102 +0,0 @@
1
- name: Test battery
2
-
3
- on:
4
- pull_request:
5
- branches:
6
-
7
- permissions:
8
- contents: read
9
-
10
- jobs:
11
- setup:
12
- runs-on: ubuntu-latest
13
- steps:
14
- - name: Checkout repository
15
- uses: actions/checkout@v4
16
-
17
- - name: Setup Bun
18
- uses: oven-sh/setup-bun@v1
19
- with:
20
- bun-version: latest
21
-
22
- - name: Install dependencies
23
- run: bun install
24
-
25
- - name: Cache dependencies
26
- uses: actions/cache@v3
27
- with:
28
- path: node_modules
29
- key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }}
30
-
31
- typecheck:
32
- needs: setup
33
- runs-on: ubuntu-latest
34
- steps:
35
- - name: Checkout repository
36
- uses: actions/checkout@v4
37
-
38
- - name: Setup Bun
39
- uses: oven-sh/setup-bun@v1
40
- with:
41
- bun-version: latest
42
-
43
- - name: Restore dependencies
44
- uses: actions/cache@v3
45
- with:
46
- path: node_modules
47
- key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }}
48
-
49
- - name: Run typecheck
50
- run: bun check
51
-
52
- lint:
53
- needs: setup
54
- runs-on: ubuntu-latest
55
- steps:
56
- - name: Checkout repository
57
- uses: actions/checkout@v4
58
-
59
- - name: Setup Bun
60
- uses: oven-sh/setup-bun@v1
61
- with:
62
- bun-version: latest
63
-
64
- - name: Restore dependencies
65
- uses: actions/cache@v3
66
- with:
67
- path: node_modules
68
- key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }}
69
-
70
- - name: Run lint
71
- run: bun lint
72
-
73
- tests:
74
- needs: setup
75
- runs-on: ubuntu-latest
76
- steps:
77
- - name: Checkout repository
78
- uses: actions/checkout@v4
79
-
80
- - name: Setup Bun
81
- uses: oven-sh/setup-bun@v1
82
- with:
83
- bun-version: latest
84
-
85
- - name: Restore dependencies
86
- uses: actions/cache@v3
87
- with:
88
- path: node_modules
89
- key: ${{ runner.os }}-bun-${{ hashFiles('bun.lockb') }}
90
-
91
- - name: Run tests
92
- run: bun test
93
-
94
- test-battery:
95
- needs:
96
- - typecheck
97
- - lint
98
- - tests
99
- runs-on: ubuntu-latest
100
- steps:
101
- - name: Test battery passed
102
- run: echo "Typecheck, lint and tests succeeded."
@@ -1,20 +0,0 @@
1
- {
2
- "files.exclude": {
3
- "**/.git": true,
4
- "**/.hg": true,
5
- "**/.svn": true,
6
- "**/.DS_Store": true,
7
- "**/Thumbs.db": true,
8
- "**/node_modules": true,
9
-
10
- ".ssh-mimic": true,
11
- // ".vfs": true,
12
- // "builds": true,
13
- "docs": true,
14
- // "examples": true,
15
-
16
- "LICENSE": true,
17
- "tsconfig.tsbuildinfo": true
18
- },
19
- "js/ts.tsdk.path": "node_modules/typescript/lib"
20
- }
@@ -1,39 +0,0 @@
1
- # Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- We are committed to making participation in this project a harassment-free experience for everyone.
6
-
7
- ## Our Standards
8
-
9
- Examples of behavior that contributes to a positive environment include:
10
-
11
- - Being respectful and inclusive
12
- - Giving and receiving constructive feedback
13
- - Focusing on what is best for the community
14
- - Showing empathy toward other contributors
15
-
16
- Examples of unacceptable behavior include:
17
-
18
- - Harassment, insults, or discriminatory language
19
- - Trolling or personal attacks
20
- - Publishing private information without consent
21
- - Any conduct that is inappropriate in a professional setting
22
-
23
- ## Enforcement Responsibilities
24
-
25
- Project maintainers are responsible for clarifying and enforcing standards and may remove, edit, or reject comments, commits, code, issues, and other contributions that are not aligned with this Code of Conduct.
26
-
27
- ## Scope
28
-
29
- This Code of Conduct applies within project spaces and in public spaces when an individual is officially representing the project.
30
-
31
- ## Enforcement
32
-
33
- If you experience or witness unacceptable behavior, report it through the repository maintainers.
34
-
35
- Maintainers will review and investigate reports and respond in a way they deem appropriate to the circumstances.
36
-
37
- ## Attribution
38
-
39
- This document is inspired by the Contributor Covenant, version 2.1.
package/CONTRIBUTING.md DELETED
@@ -1,59 +0,0 @@
1
- # Contributing
2
-
3
- Thanks for contributing to typescript-virtual-container.
4
-
5
- ## Development Setup
6
-
7
- 1. Fork and clone the repository.
8
- 2. Install dependencies:
9
-
10
- ```bash
11
- bun install
12
- ```
13
-
14
- 3. Run checks before opening a pull request:
15
-
16
- ```bash
17
- bun format
18
- bun check
19
- ```
20
-
21
- ## Branch and Commit Style
22
-
23
- - Create focused branches (example: feat/programmatic-client-timeout).
24
- - Keep commits small and descriptive.
25
- - Prefer conventional commit prefixes when possible:
26
- - feat:
27
- - fix:
28
- - docs:
29
- - refactor:
30
- - test:
31
- - chore:
32
-
33
- ## Coding Guidelines
34
-
35
- - Use TypeScript with explicit, readable types.
36
- - Avoid introducing any without a strong reason.
37
- - Preserve existing API behavior unless the change is intentional and documented.
38
- - Keep command behavior deterministic for tests and CI use cases.
39
-
40
- ## Pull Request Checklist
41
-
42
- - I ran format and checks locally.
43
- - I added or updated documentation for public behavior changes.
44
- - I added tests for bug fixes or new behavior when applicable.
45
- - I kept changes scoped to one objective.
46
-
47
- ## Reporting Issues
48
-
49
- When opening an issue, include:
50
-
51
- - Package version
52
- - Runtime (Node or Bun) and version
53
- - Minimal reproduction steps
54
- - Expected behavior and actual behavior
55
-
56
- ## Security
57
-
58
- Please do not open public issues for vulnerabilities.
59
- See SECURITY.md for responsible disclosure details.
package/HONEYPOT.md DELETED
@@ -1,358 +0,0 @@
1
- # HoneyPot Implementation Guide
2
-
3
- ## Overview
4
-
5
- The `HoneyPot` class is a comprehensive auditing and event tracking utility that monitors all activity across your virtual environment. It provides real-time event logging, statistics collection, and anomaly detection.
6
-
7
- ## Installation
8
-
9
- `HoneyPot` is included in the main `typescript-virtual-container` package:
10
-
11
- ```bash
12
- npm install typescript-virtual-container
13
- ```
14
-
15
- Then import it:
16
-
17
- ```typescript
18
- import { HoneyPot } from "typescript-virtual-container";
19
- ```
20
-
21
- ## Basic Setup
22
-
23
- ### Step 1: Create Your Environment
24
-
25
- ```typescript
26
- import {
27
- VirtualSshServer,
28
- VirtualShell,
29
- HoneyPot,
30
- } from "typescript-virtual-container";
31
-
32
- // Create shell and SSH server
33
- const shell = new VirtualShell("my-environment");
34
- const ssh = new VirtualSshServer({ port: 2222, shell });
35
- await ssh.start();
36
-
37
- // Get references to key components
38
- const users = ssh.getUsers()!;
39
- const vfs = ssh.getVfs()!;
40
- ```
41
-
42
- ### Step 2: Initialize HoneyPot
43
-
44
- ```typescript
45
- // Create HoneyPot with optional log size limit
46
- const honeypot = new HoneyPot(5000); // Keep last 5000 entries
47
- ```
48
-
49
- ### Step 3: Attach to Components
50
-
51
- ```typescript
52
- // Attach HoneyPot to all components
53
- // Now all events are automatically tracked
54
- honeypot.attach(shell, vfs, users, ssh);
55
- ```
56
-
57
- ## Core Operations
58
-
59
- ### Collecting Statistics
60
-
61
- ```typescript
62
- const stats = honeypot.getStats();
63
-
64
- console.log(`Successful logins: ${stats.authSuccesses}`);
65
- console.log(`Failed logins: ${stats.authFailures}`);
66
- console.log(`Commands executed: ${stats.commands}`);
67
- console.log(`File operations: ${stats.fileWrites + stats.fileReads}`);
68
- ```
69
-
70
- ### Retrieving Audit Logs
71
-
72
- ```typescript
73
- // Get all entries
74
- const allEntries = honeypot.getAuditLog();
75
-
76
- // Filter by event type
77
- const authFailures = honeypot.getAuditLog("auth:failure");
78
-
79
- // Filter by source component
80
- const sshEvents = honeypot.getAuditLog(undefined, "SshMimic");
81
-
82
- // Combined filter
83
- const sshAuthEvents = honeypot.getAuditLog("auth:success", "SshMimic");
84
- ```
85
-
86
- ### Getting Recent Events
87
-
88
- ```typescript
89
- // Last 10 events (default)
90
- const recent10 = honeypot.getRecent();
91
-
92
- // Last 100 events
93
- const recent100 = honeypot.getRecent(100);
94
-
95
- // Process events
96
- recent100.forEach((entry) => {
97
- console.log(`[${entry.timestamp}] ${entry.source}: ${entry.type}`);
98
- console.log(` Details: ${JSON.stringify(entry.details)}`);
99
- });
100
- ```
101
-
102
- ### Detecting Anomalies
103
-
104
- ```typescript
105
- const anomalies = honeypot.detectAnomalies();
106
-
107
- anomalies.forEach((anomaly) => {
108
- console.log(`Severity: ${anomaly.severity}`);
109
- console.log(`Type: ${anomaly.type}`);
110
- console.log(`Message: ${anomaly.message}`);
111
- });
112
-
113
- // Severity levels: "low", "medium", "high"
114
- ```
115
-
116
- ## Common Patterns
117
-
118
- ### Pattern 1: Real-Time Monitoring
119
-
120
- ```typescript
121
- async function monitorAuthAttempts() {
122
- const honeypot = new HoneyPot();
123
- honeypot.attach(shell, vfs, users, ssh);
124
-
125
- // Monitor continuously
126
- setInterval(() => {
127
- const stats = honeypot.getStats();
128
-
129
- if (stats.authFailures > 10) {
130
- console.log("🚨 High number of failed auth attempts!");
131
- const failures = honeypot.getAuditLog("auth:failure");
132
- console.log(failures.map((f) => f.details.username));
133
- }
134
- }, 5000); // Check every 5 seconds
135
- }
136
- ```
137
-
138
- ### Pattern 2: Post-Execution Analysis
139
-
140
- ```typescript
141
- async function runTestAndAnalyze() {
142
- const shell = new VirtualShell("test-env");
143
- const ssh = new VirtualSshServer({ port: 2222, shell });
144
- await ssh.start();
145
-
146
- const honeypot = new HoneyPot();
147
- honeypot.attach(shell, vfs, users, ssh);
148
-
149
- // ... run your tests/operations ...
150
-
151
- // Generate report
152
- const report = {
153
- executedAt: new Date().toISOString(),
154
- statistics: honeypot.getStats(),
155
- anomalies: honeypot.detectAnomalies(),
156
- allEvents: honeypot.getAuditLog(),
157
- };
158
-
159
- return report;
160
- }
161
- ```
162
-
163
- ### Pattern 3: Security Analysis by User
164
-
165
- ```typescript
166
- function analyzeUserActivity(honeypot, username) {
167
- // Get all events related to this user
168
- const userEvents = honeypot
169
- .getAuditLog()
170
- .filter((entry) => entry.details.username === username);
171
-
172
- const analysis = {
173
- totalActions: userEvents.length,
174
- fileWrites: userEvents.filter(
175
- (e) => e.type === "file:write",
176
- ).length,
177
- failedAuthAttempts: userEvents.filter(
178
- (e) => e.type === "auth:failure",
179
- ).length,
180
- commands: userEvents.filter((e) => e.type === "command").length,
181
- timeline: userEvents.map((e) => ({
182
- time: e.timestamp,
183
- action: e.type,
184
- details: e.details,
185
- })),
186
- };
187
-
188
- return analysis;
189
- }
190
- ```
191
-
192
- ### Pattern 4: Compliance Export
193
-
194
- ```typescript
195
- function generateComplianceReport(honeypot) {
196
- const timestamp = new Date().toISOString();
197
- const stats = honeypot.getStats();
198
-
199
- return {
200
- reportDate: timestamp,
201
- auditTrail: {
202
- totalEvents: stats.authAttempts + stats.commands,
203
- authenticationEvents: {
204
- attempts: stats.authAttempts,
205
- successes: stats.authSuccesses,
206
- failures: stats.authFailures,
207
- },
208
- commandExecution: {
209
- total: stats.commands,
210
- fileOperations: stats.fileWrites + stats.fileReads,
211
- },
212
- },
213
- anomalyDetection: honeypot.detectAnomalies(),
214
- detailedLog: honeypot.getAuditLog(),
215
- };
216
- }
217
- ```
218
-
219
- ## Event Types
220
-
221
- ### Authentication Events
222
-
223
- - `auth:success` - User authenticated successfully
224
- - `auth:failure` - Authentication failed
225
-
226
- ### File System Events
227
-
228
- - `file:read` - File read operation
229
- - `file:write` - File write operation
230
- - `dir:create` - Directory created
231
-
232
- ### User Management Events
233
-
234
- - `user:add` - User account created
235
- - `user:delete` - User account deleted
236
-
237
- ### Session Events
238
-
239
- - `session:register` - Session started
240
- - `session:unregister` - Session ended
241
-
242
- ### Command Execution
243
-
244
- - `command` - Command executed
245
-
246
- ## Integration Examples
247
-
248
- ### With a Database
249
-
250
- ```typescript
251
- const honeypot = new HoneyPot();
252
- honeypot.attach(shell, vfs, users, ssh);
253
-
254
- // Later, export to database
255
- async function exportToDatabase() {
256
- const entries = honeypot.getAuditLog();
257
-
258
- for (const entry of entries) {
259
- await db.collection("audit_logs").insertOne({
260
- timestamp: entry.timestamp,
261
- type: entry.type,
262
- source: entry.source,
263
- details: entry.details,
264
- });
265
- }
266
- }
267
- ```
268
-
269
- ### With a Logging Service
270
-
271
- ```typescript
272
- const honeypot = new HoneyPot();
273
- honeypot.attach(shell, vfs, users, ssh);
274
-
275
- // Export to external logging
276
- const report = honeypot.getRecent(1000);
277
- await loggingService.send({
278
- environment: "production",
279
- auditTrail: report,
280
- timestamp: new Date().toISOString(),
281
- });
282
- ```
283
-
284
- ### With Monitoring/Alerting
285
-
286
- ```typescript
287
- const honeypot = new HoneyPot();
288
- honeypot.attach(shell, vfs, users, ssh);
289
-
290
- // Check for anomalies periodically
291
- setInterval(() => {
292
- const anomalies = honeypot.detectAnomalies();
293
-
294
- anomalies.forEach((a) => {
295
- if (a.severity === "high") {
296
- alerting.triggerAlert({
297
- type: a.type,
298
- message: a.message,
299
- timestamp: new Date().toISOString(),
300
- });
301
- }
302
- });
303
- }, 10000);
304
- ```
305
-
306
- ## Performance Considerations
307
-
308
- - HoneyPot maintains an in-memory buffer with configurable max size
309
- - Older entries are automatically trimmed when limit is reached
310
- - All operations are O(1) or O(n) where n is reasonable
311
- - Statistics computation is cached and efficient
312
- - For long-running processes, consider periodic exports and resets
313
-
314
- ## Cleanup and Reset
315
-
316
- ```typescript
317
- // Clear all logs and reset statistics
318
- honeypot.reset();
319
-
320
- // Continues to listen for new events after reset
321
- // Useful for clearing after each test phase
322
- ```
323
-
324
- ## Best Practices
325
-
326
- 1. **Initialize Early**: Attach HoneyPot right after creating components
327
- 2. **Export Regularly**: Don't rely solely on in-memory storage
328
- 3. **Monitor Continuously**: Use periodic checks for real-time monitoring
329
- 4. **Archive Audit Trails**: Save audit logs for compliance/forensics
330
- 5. **Set Appropriate Log Size**: Balance memory usage with data retention
331
- 6. **Use Filters**: Filter large logs by type or source for analysis
332
- 7. **Automate Anomaly Response**: Set up automated responses to detected anomalies
333
-
334
- ## Troubleshooting
335
-
336
- ### No events recorded?
337
-
338
- - Ensure `honeypot.attach()` is called after all components are initialized
339
- - Verify that actual operations are being performed (commands, file ops, etc.)
340
- - Check that components extend EventEmitter (they should by default)
341
-
342
- ### Memory growing?
343
-
344
- - Reduce `maxLogSize` in the constructor
345
- - Call `honeypot.reset()` between test phases
346
- - Export logs periodically to external storage
347
-
348
- ### Missing specific events?
349
-
350
- - Check the exact event name in the events list
351
- - Use `honeypot.getAuditLog()` to verify events exist
352
- - Filter by source and type to narrow down search
353
-
354
- ## See Also
355
-
356
- - [API Reference](../README.md#honeypot-auditing--event-tracking)
357
- - [Example 8: Security Auditing](../README.md#example-8-security-auditing-with-honeypot)
358
- - [Examples Directory](./README.md)
package/SECURITY.md DELETED
@@ -1,33 +0,0 @@
1
- # Security Policy
2
-
3
- ## Supported Versions
4
-
5
- Security fixes are prioritized for the latest published release.
6
-
7
- ## Reporting a Vulnerability
8
-
9
- Please report vulnerabilities privately.
10
-
11
- Preferred channel:
12
-
13
- - Open a private GitHub security advisory for this repository.
14
-
15
- If advisory tooling is unavailable, open an issue with minimal details and request private contact.
16
- Do not include exploit details or sensitive information in a public issue.
17
-
18
- ## What to Include
19
-
20
- Please include:
21
-
22
- - A clear description of the issue
23
- - Impact assessment
24
- - Reproduction steps or proof of concept
25
- - Affected versions
26
- - Suggested remediation if available
27
-
28
- ## Disclosure Process
29
-
30
- - We will acknowledge receipt as soon as possible.
31
- - We will validate, triage, and work on a fix.
32
- - We may request additional technical details.
33
- - We will publish a patch and release notes after remediation.
@@ -1,40 +0,0 @@
1
- Benchmarking VirtualShell concurrency:
2
-
3
- Running 1 shells...
4
- Initialized 1 shells in 58ms, RSS 98 MB
5
- Executed shell commands in 5ms, RSS now 98 MB (+1 MB)
6
-
7
- Running 2 shells...
8
- Initialized 2 shells in 10ms, RSS 102 MB
9
- Executed shell commands in 1ms, RSS now 102 MB (+0 MB)
10
-
11
- Running 5 shells...
12
- Initialized 5 shells in 21ms, RSS 113 MB
13
- Executed shell commands in 1ms, RSS now 113 MB (+0 MB)
14
-
15
- Running 10 shells...
16
- Initialized 10 shells in 43ms, RSS 132 MB
17
- Executed shell commands in 6ms, RSS now 132 MB (+1 MB)
18
-
19
- Running 20 shells...
20
- Initialized 20 shells in 107ms, RSS 150 MB
21
- Executed shell commands in 4ms, RSS now 150 MB (+0 MB)
22
-
23
- Running 50 shells...
24
- Initialized 50 shells in 177ms, RSS 178 MB
25
- Executed shell commands in 5ms, RSS now 179 MB (+0 MB)
26
-
27
- Running 100 shells...
28
- Initialized 100 shells in 302ms, RSS 190 MB
29
- Executed shell commands in 9ms, RSS now 190 MB (+0 MB)
30
-
31
- Summary:
32
-
33
- count init_ms cmd_ms init_rss final_rss delta_rss
34
- 1 58 5 98 MB 98 MB 1 MB
35
- 2 10 1 102 MB 102 MB 0 MB
36
- 5 21 1 113 MB 113 MB 0 MB
37
- 10 43 6 132 MB 132 MB 1 MB
38
- 20 107 4 150 MB 150 MB 0 MB
39
- 50 177 5 178 MB 179 MB 0 MB
40
- 100 302 9 190 MB 190 MB 0 MB