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.
- package/README.md +43 -23
- package/dist/.tsbuildinfo +1 -0
- package/dist/SSHMimic/executor.js +23 -5
- package/dist/VirtualPackageManager/index.js +10 -0
- package/dist/commands/basename.d.ts +13 -0
- package/dist/commands/basename.js +45 -0
- package/dist/commands/file.d.ts +8 -0
- package/dist/commands/file.js +57 -0
- package/dist/commands/fun.d.ts +32 -0
- package/dist/commands/fun.js +172 -0
- package/dist/commands/ifconfig.d.ts +7 -0
- package/dist/commands/ifconfig.js +52 -0
- package/dist/commands/last.d.ts +13 -0
- package/dist/commands/last.js +68 -0
- package/dist/commands/manuals-bundle.js +598 -6
- package/dist/commands/registry.js +24 -2
- package/dist/commands/runtime.js +22 -2
- package/dist/commands/sh.js +5 -0
- package/dist/commands/tput.d.ts +13 -0
- package/dist/commands/tput.js +76 -0
- package/dist/commands/w.d.ts +7 -0
- package/dist/commands/w.js +38 -0
- package/dist/utils/expand.d.ts +12 -0
- package/dist/utils/expand.js +84 -0
- package/package.json +9 -3
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -50
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -31
- package/.github/dependabot.yml +0 -27
- package/.github/pull_request_template.md +0 -21
- package/.github/workflows/create-pull-request.yml +0 -85
- package/.github/workflows/publish.yml +0 -25
- package/.github/workflows/test-battery.yml +0 -102
- package/.vscode/settings.json +0 -20
- package/CODE_OF_CONDUCT.md +0 -39
- package/CONTRIBUTING.md +0 -59
- package/HONEYPOT.md +0 -358
- package/SECURITY.md +0 -33
- package/benchmark-results.txt +0 -40
- package/benchmark-virtualshell.ts +0 -88
- package/biome.json +0 -37
- package/build.js +0 -22
- package/builds/fortune-nyx-v1.5.3-directbash-k6.1.0.mjs +0 -1764
- package/builds/fortune-nyx-v1.5.3-ssh-nosftp.js +0 -1764
- package/builds/fortune-nyx-v1.5.3-ssh.cjs +0 -1765
- package/builds/fortune-nyx-v1.5.3-web.min.js +0 -17036
- package/bun.lock +0 -244
- package/docs/.nojekyll +0 -1
- package/docs/app.js +0 -1751
- package/docs/assets/hierarchy.js +0 -1
- package/docs/assets/highlight.css +0 -162
- package/docs/assets/icons.js +0 -18
- package/docs/assets/icons.svg +0 -1
- package/docs/assets/main.js +0 -60
- package/docs/assets/navigation.js +0 -1
- package/docs/assets/search.js +0 -1
- package/docs/assets/style.css +0 -1633
- package/docs/classes/HoneyPot.html +0 -31
- package/docs/classes/IdleManager.html +0 -162
- package/docs/classes/SshClient.html +0 -66
- package/docs/classes/VirtualFileSystem.html +0 -279
- package/docs/classes/VirtualPackageManager.html +0 -63
- package/docs/classes/VirtualSftpServer.html +0 -169
- package/docs/classes/VirtualShell.html +0 -285
- package/docs/classes/VirtualSshServer.html +0 -182
- package/docs/classes/VirtualUserManager.html +0 -276
- package/docs/demo.html +0 -82
- package/docs/functions/assertDiff.html +0 -6
- package/docs/functions/diffSnapshots.html +0 -7
- package/docs/functions/formatDiff.html +0 -6
- package/docs/functions/getArg.html +0 -13
- package/docs/functions/getFlag.html +0 -15
- package/docs/functions/ifFlag.html +0 -11
- package/docs/hierarchy.html +0 -1
- package/docs/index.html +0 -1869
- package/docs/interfaces/AuditLogEntry.html +0 -6
- package/docs/interfaces/CommandContext.html +0 -22
- package/docs/interfaces/CommandResult.html +0 -26
- package/docs/interfaces/ExecStream.html +0 -11
- package/docs/interfaces/HoneyPotStats.html +0 -16
- package/docs/interfaces/IdleManagerOptions.html +0 -7
- package/docs/interfaces/InstalledPackage.html +0 -20
- package/docs/interfaces/NanoEditorSession.html +0 -8
- package/docs/interfaces/PackageDefinition.html +0 -30
- package/docs/interfaces/PackageFile.html +0 -8
- package/docs/interfaces/PasswordChallenge.html +0 -16
- package/docs/interfaces/RemoveOptions.html +0 -4
- package/docs/interfaces/ShellEnv.html +0 -6
- package/docs/interfaces/ShellModule.html +0 -14
- package/docs/interfaces/ShellProperties.html +0 -14
- package/docs/interfaces/ShellStream.html +0 -11
- package/docs/interfaces/SudoChallenge.html +0 -24
- package/docs/interfaces/VfsBaseNode.html +0 -12
- package/docs/interfaces/VfsDiff.html +0 -10
- package/docs/interfaces/VfsDiffEntry.html +0 -6
- package/docs/interfaces/VfsDiffModified.html +0 -10
- package/docs/interfaces/VfsDirectoryNode.html +0 -15
- package/docs/interfaces/VfsFileNode.html +0 -17
- package/docs/interfaces/VfsOptions.html +0 -26
- package/docs/interfaces/VfsSnapshot.html +0 -3
- package/docs/interfaces/VfsSnapshotBaseNode.html +0 -8
- package/docs/interfaces/VfsSnapshotDirectoryNode.html +0 -10
- package/docs/interfaces/VfsSnapshotFileNode.html +0 -12
- package/docs/interfaces/VirtualActiveSession.html +0 -12
- package/docs/interfaces/VirtualSftpServerOptions.html +0 -7
- package/docs/interfaces/VirtualShellVfsLike.html +0 -15
- package/docs/interfaces/VirtualShellVfsOptions.html +0 -3
- package/docs/interfaces/WriteFileOptions.html +0 -6
- package/docs/media/LICENSE +0 -21
- package/docs/modules.html +0 -1
- package/docs/types/ArgParseOptions.html +0 -4
- package/docs/types/CommandMode.html +0 -2
- package/docs/types/CommandOutcome.html +0 -2
- package/docs/types/IdleState.html +0 -1
- package/docs/types/VfsNodeStats.html +0 -2
- package/docs/types/VfsNodeType.html +0 -2
- package/docs/types/VfsPersistenceMode.html +0 -5
- package/docs/types/VfsSnapshotNode.html +0 -2
- package/examples/README.md +0 -288
- package/examples/app.js +0 -1751
- package/examples/app.ts +0 -299
- package/examples/build.js +0 -27
- package/examples/demo.html +0 -33
- package/examples/honeypot-audit.ts +0 -180
- package/examples/honeypot-export.ts +0 -253
- package/examples/honeypot-quickstart.ts +0 -110
- package/examples/index.html +0 -82
- package/examples/server.js +0 -55
- package/polyfills/buffer.js +0 -117
- package/polyfills/node_child_process/index.js +0 -2
- package/polyfills/node_crypto/index.js +0 -167
- package/polyfills/node_events/index.js +0 -9
- package/polyfills/node_fs/index.js +0 -202
- package/polyfills/node_fs/promises.js +0 -4
- package/polyfills/node_os/index.js +0 -9
- package/polyfills/node_path/index.js +0 -28
- package/polyfills/node_vm/index.js +0 -7
- package/polyfills/node_zlib/index.js +0 -3
- package/polyfills/process.js +0 -14
- package/polyfills/ssh2/index.js +0 -75
- package/scripts/build-all.mjs +0 -226
- package/scripts/build-names.mjs +0 -43
- package/scripts/generate-manuals-bundle.mjs +0 -49
- package/scripts/postinstall.js +0 -42
- package/scripts/publish-package.sh +0 -70
- package/src/Honeypot/index.ts +0 -457
- package/src/SSHClient/index.ts +0 -270
- package/src/SSHMimic/exec.ts +0 -49
- package/src/SSHMimic/executor.ts +0 -251
- package/src/SSHMimic/hostKey.ts +0 -21
- package/src/SSHMimic/index.ts +0 -337
- package/src/SSHMimic/loginBanner.ts +0 -36
- package/src/SSHMimic/loginFormat.ts +0 -10
- package/src/SSHMimic/prompt.ts +0 -14
- package/src/SSHMimic/sftp.ts +0 -883
- package/src/VirtualFileSystem/binaryPack.ts +0 -258
- package/src/VirtualFileSystem/index.ts +0 -1193
- package/src/VirtualFileSystem/internalTypes.ts +0 -43
- package/src/VirtualFileSystem/journal.ts +0 -171
- package/src/VirtualFileSystem/path.ts +0 -74
- package/src/VirtualPackageManager/index.ts +0 -996
- package/src/VirtualShell/idleManager.ts +0 -137
- package/src/VirtualShell/index.ts +0 -475
- package/src/VirtualShell/shell.ts +0 -700
- package/src/VirtualShell/shellParser.ts +0 -285
- package/src/VirtualUserManager/index.ts +0 -758
- package/src/bun.d.ts +0 -1
- package/src/commands/adduser.ts +0 -103
- package/src/commands/alias.ts +0 -69
- package/src/commands/apt.ts +0 -233
- package/src/commands/awk.ts +0 -168
- package/src/commands/base64.ts +0 -29
- package/src/commands/cat.ts +0 -52
- package/src/commands/cd.ts +0 -25
- package/src/commands/chmod.ts +0 -85
- package/src/commands/clear.ts +0 -15
- package/src/commands/command-helpers.ts +0 -286
- package/src/commands/cp.ts +0 -83
- package/src/commands/curl.ts +0 -147
- package/src/commands/cut.ts +0 -36
- package/src/commands/date.ts +0 -30
- package/src/commands/declare.ts +0 -49
- package/src/commands/deluser.ts +0 -98
- package/src/commands/df.ts +0 -23
- package/src/commands/diff.ts +0 -43
- package/src/commands/dpkg.ts +0 -180
- package/src/commands/du.ts +0 -56
- package/src/commands/echo.ts +0 -58
- package/src/commands/env.ts +0 -23
- package/src/commands/exit.ts +0 -18
- package/src/commands/export.ts +0 -34
- package/src/commands/find.ts +0 -68
- package/src/commands/free.ts +0 -47
- package/src/commands/grep.ts +0 -116
- package/src/commands/groups.ts +0 -19
- package/src/commands/gzip.ts +0 -88
- package/src/commands/head.ts +0 -52
- package/src/commands/help.ts +0 -152
- package/src/commands/helpers.ts +0 -234
- package/src/commands/history.ts +0 -34
- package/src/commands/hostname.ts +0 -14
- package/src/commands/htop.ts +0 -20
- package/src/commands/id.ts +0 -19
- package/src/commands/index.ts +0 -9
- package/src/commands/kill.ts +0 -19
- package/src/commands/ln.ts +0 -71
- package/src/commands/ls.ts +0 -243
- package/src/commands/lsb-release.ts +0 -63
- package/src/commands/man.ts +0 -31
- package/src/commands/manuals/adduser.txt +0 -11
- package/src/commands/manuals/apt-cache.txt +0 -12
- package/src/commands/manuals/apt.txt +0 -20
- package/src/commands/manuals/awk.txt +0 -13
- package/src/commands/manuals/cat.txt +0 -14
- package/src/commands/manuals/cd.txt +0 -16
- package/src/commands/manuals/chmod.txt +0 -16
- package/src/commands/manuals/clear.txt +0 -10
- package/src/commands/manuals/cp.txt +0 -10
- package/src/commands/manuals/curl.txt +0 -20
- package/src/commands/manuals/date.txt +0 -14
- package/src/commands/manuals/declare.txt +0 -12
- package/src/commands/manuals/deluser.txt +0 -10
- package/src/commands/manuals/df.txt +0 -10
- package/src/commands/manuals/dpkg-query.txt +0 -11
- package/src/commands/manuals/dpkg.txt +0 -14
- package/src/commands/manuals/du.txt +0 -11
- package/src/commands/manuals/echo.txt +0 -11
- package/src/commands/manuals/false.txt +0 -10
- package/src/commands/manuals/find.txt +0 -11
- package/src/commands/manuals/free.txt +0 -12
- package/src/commands/manuals/grep.txt +0 -13
- package/src/commands/manuals/groups.txt +0 -10
- package/src/commands/manuals/gzip.txt +0 -11
- package/src/commands/manuals/head.txt +0 -10
- package/src/commands/manuals/help.txt +0 -11
- package/src/commands/manuals/history.txt +0 -11
- package/src/commands/manuals/hostname.txt +0 -10
- package/src/commands/manuals/id.txt +0 -10
- package/src/commands/manuals/kill.txt +0 -13
- package/src/commands/manuals/ls.txt +0 -20
- package/src/commands/manuals/lsb_release.txt +0 -14
- package/src/commands/manuals/mkdir.txt +0 -10
- package/src/commands/manuals/mv.txt +0 -10
- package/src/commands/manuals/nano.txt +0 -11
- package/src/commands/manuals/neofetch.txt +0 -10
- package/src/commands/manuals/node.txt +0 -13
- package/src/commands/manuals/npm.txt +0 -13
- package/src/commands/manuals/npx.txt +0 -13
- package/src/commands/manuals/passwd.txt +0 -11
- package/src/commands/manuals/ping.txt +0 -10
- package/src/commands/manuals/printf.txt +0 -11
- package/src/commands/manuals/ps.txt +0 -10
- package/src/commands/manuals/pwd.txt +0 -10
- package/src/commands/manuals/python3.txt +0 -13
- package/src/commands/manuals/readlink.txt +0 -10
- package/src/commands/manuals/return.txt +0 -10
- package/src/commands/manuals/rm.txt +0 -10
- package/src/commands/manuals/sed.txt +0 -11
- package/src/commands/manuals/set.txt +0 -11
- package/src/commands/manuals/shift.txt +0 -10
- package/src/commands/manuals/sleep.txt +0 -10
- package/src/commands/manuals/sort.txt +0 -12
- package/src/commands/manuals/source.txt +0 -11
- package/src/commands/manuals/ssh.txt +0 -11
- package/src/commands/manuals/stat.txt +0 -10
- package/src/commands/manuals/su.txt +0 -13
- package/src/commands/manuals/sudo.txt +0 -11
- package/src/commands/manuals/tail.txt +0 -10
- package/src/commands/manuals/tar.txt +0 -19
- package/src/commands/manuals/tee.txt +0 -10
- package/src/commands/manuals/test.txt +0 -11
- package/src/commands/manuals/touch.txt +0 -11
- package/src/commands/manuals/tr.txt +0 -10
- package/src/commands/manuals/trap.txt +0 -10
- package/src/commands/manuals/true.txt +0 -10
- package/src/commands/manuals/type.txt +0 -10
- package/src/commands/manuals/uname.txt +0 -12
- package/src/commands/manuals/uniq.txt +0 -12
- package/src/commands/manuals/unset.txt +0 -10
- package/src/commands/manuals/uptime.txt +0 -11
- package/src/commands/manuals/wc.txt +0 -12
- package/src/commands/manuals/wget.txt +0 -12
- package/src/commands/manuals/which.txt +0 -10
- package/src/commands/manuals/whoami.txt +0 -10
- package/src/commands/manuals/xargs.txt +0 -10
- package/src/commands/manuals-bundle.ts +0 -898
- package/src/commands/mkdir.ts +0 -31
- package/src/commands/mv.ts +0 -50
- package/src/commands/nano.ts +0 -38
- package/src/commands/neofetch.ts +0 -53
- package/src/commands/node.ts +0 -341
- package/src/commands/npm.ts +0 -132
- package/src/commands/passwd.ts +0 -50
- package/src/commands/ping.ts +0 -32
- package/src/commands/printf.ts +0 -129
- package/src/commands/ps.ts +0 -58
- package/src/commands/pwd.ts +0 -9
- package/src/commands/python.ts +0 -2229
- package/src/commands/read.ts +0 -46
- package/src/commands/registry.ts +0 -249
- package/src/commands/rm.ts +0 -42
- package/src/commands/runtime.ts +0 -421
- package/src/commands/sed.ts +0 -68
- package/src/commands/seq.ts +0 -43
- package/src/commands/set.ts +0 -29
- package/src/commands/sh.ts +0 -467
- package/src/commands/shift.ts +0 -63
- package/src/commands/sleep.ts +0 -20
- package/src/commands/sort.ts +0 -46
- package/src/commands/source.ts +0 -52
- package/src/commands/stat.ts +0 -61
- package/src/commands/su.ts +0 -72
- package/src/commands/sudo.ts +0 -76
- package/src/commands/tail.ts +0 -53
- package/src/commands/tar.ts +0 -102
- package/src/commands/tee.ts +0 -36
- package/src/commands/test.ts +0 -137
- package/src/commands/touch.ts +0 -28
- package/src/commands/tr.ts +0 -70
- package/src/commands/tree.ts +0 -20
- package/src/commands/true.ts +0 -27
- package/src/commands/type.ts +0 -48
- package/src/commands/uname.ts +0 -29
- package/src/commands/uniq.ts +0 -39
- package/src/commands/unset.ts +0 -17
- package/src/commands/uptime.ts +0 -54
- package/src/commands/wc.ts +0 -55
- package/src/commands/wget.ts +0 -148
- package/src/commands/which.ts +0 -37
- package/src/commands/who.ts +0 -25
- package/src/commands/whoami.ts +0 -14
- package/src/commands/xargs.ts +0 -31
- package/src/index.ts +0 -67
- package/src/modules/linuxRootfs.ts +0 -1961
- package/src/modules/neofetch.ts +0 -358
- package/src/modules/shellInteractive.ts +0 -57
- package/src/modules/shellRuntime.ts +0 -76
- package/src/self-standalone.ts +0 -542
- package/src/standalone-wo-sftp.ts +0 -38
- package/src/standalone.ts +0 -72
- package/src/types/commands.ts +0 -146
- package/src/types/pipeline.ts +0 -52
- package/src/types/streams.ts +0 -32
- package/src/types/tar-stream.d.ts +0 -38
- package/src/types/vfs.ts +0 -98
- package/src/utils/expand.ts +0 -491
- package/src/utils/perfLogger.ts +0 -72
- package/src/utils/tokenize.ts +0 -98
- package/src/utils/vfsDiff.ts +0 -275
- package/tests/command-helpers.test.ts +0 -116
- package/tests/commands-admin-net.test.ts +0 -441
- package/tests/commands-advanced.test.ts +0 -456
- package/tests/commands-core.test.ts +0 -562
- package/tests/commands-missing.test.ts +0 -570
- package/tests/commands-specific-units.test.ts +0 -327
- package/tests/commands-text-sys.test.ts +0 -445
- package/tests/expand.test.ts +0 -170
- package/tests/helpers.test.ts +0 -97
- package/tests/new-features.test.ts +0 -1036
- package/tests/parser-executor.test.ts +0 -37
- package/tests/sftp.test.ts +0 -323
- package/tests/ssh-exec.test.ts +0 -45
- package/tests/test-helper.ts +0 -79
- package/tests/users.test.ts +0 -86
- package/tsconfig.json +0 -49
- 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."
|
package/.vscode/settings.json
DELETED
|
@@ -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
|
-
}
|
package/CODE_OF_CONDUCT.md
DELETED
|
@@ -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.
|
package/benchmark-results.txt
DELETED
|
@@ -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
|