| parseResponse(String, String, Path) |  | 0% |  | 0% | 11 | 11 | 27 | 27 | 1 | 1 |
| start() |  | 0% |  | 0% | 2 | 2 | 15 | 15 | 1 | 1 |
| readWithTimeout(Path, String) |   | 25% |   | 25% | 2 | 3 | 14 | 19 | 0 | 1 |
| scan(Path, List) |  | 0% |  | 0% | 3 | 3 | 9 | 9 | 1 | 1 |
| buildRequestLine(String, Path, List) |  | 0% |  | 0% | 2 | 2 | 8 | 8 | 1 | 1 |
| lambda$startStderrDrainer$1(Process, int, long) |   | 43% |   | 16% | 3 | 4 | 5 | 10 | 0 | 1 |
| parseRedactionResponse(String, String, Path) |   | 86% |   | 60% | 8 | 11 | 2 | 16 | 0 | 1 |
| isAlive() |  | 0% |  | 0% | 3 | 3 | 1 | 1 | 1 | 1 |
| redact(Path, String) |   | 91% |   | 50% | 2 | 3 | 1 | 13 | 0 | 1 |
| fsReadPath(Path) |   | 75% | | n/a | 0 | 1 | 2 | 5 | 0 | 1 |
| pid() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| start(Path) |  | 99% |   | 50% | 2 | 3 | 0 | 16 | 0 | 1 |
| kill(String) |  | 100% |   | 50% | 4 | 5 | 0 | 10 | 0 | 1 |
| buildCommand(Path) |  | 100% |   | 50% | 2 | 3 | 0 | 9 | 0 | 1 |
| TypeScriptWorker(Path, NodeEnvironment, long, int) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| startStderrDrainer(Process, int, long) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$newReaderExecutor$0(int, Runnable) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| newReaderExecutor(int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |