browser-debugger-cli 0.6.1 → 0.6.2
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 +55 -0
- package/dist/__tests__/smoke/error-handling.smoke.test.js +9 -4
- package/dist/__tests__/smoke/error-handling.smoke.test.js.map +1 -1
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js +27 -24
- package/dist/__tests__/smoke/session-lifecycle.smoke.test.js.map +1 -1
- package/dist/__testutils__/daemonHelpers.d.ts +13 -1
- package/dist/__testutils__/daemonHelpers.d.ts.map +1 -1
- package/dist/__testutils__/daemonHelpers.js +54 -5
- package/dist/__testutils__/daemonHelpers.js.map +1 -1
- package/dist/cdp/protocol.d.ts.map +1 -1
- package/dist/cdp/protocol.js +9 -7
- package/dist/cdp/protocol.js.map +1 -1
- package/dist/commands/cleanup.d.ts.map +1 -1
- package/dist/commands/cleanup.js +21 -6
- package/dist/commands/cleanup.js.map +1 -1
- package/dist/commands/dom/a11y.d.ts +18 -0
- package/dist/commands/dom/a11y.d.ts.map +1 -0
- package/dist/commands/dom/a11y.js +134 -0
- package/dist/commands/dom/a11y.js.map +1 -0
- package/dist/commands/dom/evalHelpers.js +1 -1
- package/dist/commands/dom/evalHelpers.js.map +1 -1
- package/dist/commands/dom/index.d.ts.map +1 -1
- package/dist/commands/dom/index.js +41 -20
- package/dist/commands/dom/index.js.map +1 -1
- package/dist/commands/peek.d.ts.map +1 -1
- package/dist/commands/peek.js +2 -0
- package/dist/commands/peek.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +12 -4
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/types.d.ts +3 -0
- package/dist/commands/types.d.ts.map +1 -1
- package/dist/constants.d.ts +6 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts +19 -0
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.d.ts.map +1 -0
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js +212 -0
- package/dist/daemon/__tests__/ipcServer.cleanup.unit.test.js.map +1 -0
- package/dist/daemon/launcher.d.ts.map +1 -1
- package/dist/daemon/launcher.js +4 -3
- package/dist/daemon/launcher.js.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.d.ts.map +1 -1
- package/dist/daemon/lifecycle/workerCleanup.js +1 -1
- package/dist/daemon/lifecycle/workerCleanup.js.map +1 -1
- package/dist/daemon/services/SessionService.js +1 -1
- package/dist/daemon/services/SessionService.js.map +1 -1
- package/dist/ipc/__tests__/client.contract.test.js +251 -19
- package/dist/ipc/__tests__/client.contract.test.js.map +1 -1
- package/dist/ipc/__tests__/jsonl.unit.test.js +19 -1
- package/dist/ipc/__tests__/jsonl.unit.test.js.map +1 -1
- package/dist/ipc/transport/jsonl.d.ts +16 -0
- package/dist/ipc/transport/jsonl.d.ts.map +1 -1
- package/dist/ipc/transport/jsonl.js +25 -0
- package/dist/ipc/transport/jsonl.js.map +1 -1
- package/dist/session/chrome.js +2 -2
- package/dist/session/chrome.js.map +1 -1
- package/dist/session/cleanup.d.ts +21 -0
- package/dist/session/cleanup.d.ts.map +1 -1
- package/dist/session/cleanup.js +101 -1
- package/dist/session/cleanup.js.map +1 -1
- package/dist/session/lock.js +1 -1
- package/dist/session/lock.js.map +1 -1
- package/dist/telemetry/__tests__/a11y.unit.test.d.ts +10 -0
- package/dist/telemetry/__tests__/a11y.unit.test.d.ts.map +1 -0
- package/dist/telemetry/__tests__/a11y.unit.test.js +265 -0
- package/dist/telemetry/__tests__/a11y.unit.test.js.map +1 -0
- package/dist/telemetry/a11y.d.ts +78 -0
- package/dist/telemetry/a11y.d.ts.map +1 -0
- package/dist/telemetry/a11y.js +280 -0
- package/dist/telemetry/a11y.js.map +1 -0
- package/dist/telemetry/dom.d.ts +1 -1
- package/dist/telemetry/dom.d.ts.map +1 -1
- package/dist/telemetry/dom.js +32 -1
- package/dist/telemetry/dom.js.map +1 -1
- package/dist/types.d.ts +77 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts +2 -0
- package/dist/ui/formatters/__tests__/semantic.unit.test.d.ts.map +1 -0
- package/dist/ui/formatters/__tests__/semantic.unit.test.js +111 -0
- package/dist/ui/formatters/__tests__/semantic.unit.test.js.map +1 -0
- package/dist/ui/formatters/a11y.d.ts +30 -0
- package/dist/ui/formatters/a11y.d.ts.map +1 -0
- package/dist/ui/formatters/a11y.js +178 -0
- package/dist/ui/formatters/a11y.js.map +1 -0
- package/dist/ui/formatters/preview.d.ts +2 -0
- package/dist/ui/formatters/preview.d.ts.map +1 -1
- package/dist/ui/formatters/preview.js +27 -4
- package/dist/ui/formatters/preview.js.map +1 -1
- package/dist/ui/formatters/semantic.d.ts +36 -0
- package/dist/ui/formatters/semantic.d.ts.map +1 -0
- package/dist/ui/formatters/semantic.js +98 -0
- package/dist/ui/formatters/semantic.js.map +1 -0
- package/dist/ui/formatters/status.js +1 -1
- package/dist/ui/formatters/status.js.map +1 -1
- package/dist/ui/messages/commands.d.ts +7 -0
- package/dist/ui/messages/commands.d.ts.map +1 -1
- package/dist/ui/messages/commands.js +9 -0
- package/dist/ui/messages/commands.js.map +1 -1
- package/dist/utils/__tests__/errors.unit.test.d.ts +12 -0
- package/dist/utils/__tests__/errors.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/errors.unit.test.js +255 -0
- package/dist/utils/__tests__/errors.unit.test.js.map +1 -0
- package/dist/utils/__tests__/http.unit.test.d.ts +12 -0
- package/dist/utils/__tests__/http.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/http.unit.test.js +218 -0
- package/dist/utils/__tests__/http.unit.test.js.map +1 -0
- package/dist/utils/__tests__/process.unit.test.d.ts +14 -0
- package/dist/utils/__tests__/process.unit.test.d.ts.map +1 -0
- package/dist/utils/__tests__/process.unit.test.js +124 -0
- package/dist/utils/__tests__/process.unit.test.js.map +1 -0
- package/dist/utils/__tests__/session.contract.test.js +1 -1
- package/dist/utils/__tests__/session.contract.test.js.map +1 -1
- package/package.json +22 -1
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IPC Server Cleanup Unit Tests
|
|
3
|
+
*
|
|
4
|
+
* Tests error handling in daemon cleanup paths.
|
|
5
|
+
* Verifies graceful handling of cleanup errors during shutdown.
|
|
6
|
+
*
|
|
7
|
+
* Following testing philosophy:
|
|
8
|
+
* - Test the BEHAVIOR: "Cleanup should be defensive and not throw"
|
|
9
|
+
* - Test the INVARIANT: "Stop is idempotent - multiple calls are safe"
|
|
10
|
+
* - Test the PROPERTY: "Cleanup attempts all files even if some fail"
|
|
11
|
+
*
|
|
12
|
+
* Note: We test cleanup behavior without heavy mocking to avoid interfering
|
|
13
|
+
* with the daemon's internal operations. The key behaviors we verify are:
|
|
14
|
+
* 1. Stop() doesn't throw even if files are missing
|
|
15
|
+
* 2. Stop() is idempotent (can be called multiple times)
|
|
16
|
+
* 3. Stop() attempts cleanup in correct order
|
|
17
|
+
*/
|
|
18
|
+
import assert from 'node:assert/strict';
|
|
19
|
+
import * as fs from 'node:fs';
|
|
20
|
+
import * as os from 'node:os';
|
|
21
|
+
import * as path from 'node:path';
|
|
22
|
+
import { afterEach, beforeEach, describe, it } from 'node:test';
|
|
23
|
+
import { IPCServer } from '../../daemon/ipcServer.js';
|
|
24
|
+
import { getSessionFilePath } from '../../session/paths.js';
|
|
25
|
+
void describe('IPC Server Cleanup Behavior', () => {
|
|
26
|
+
let tmpDir;
|
|
27
|
+
let originalHome;
|
|
28
|
+
let originalUserProfile;
|
|
29
|
+
beforeEach(() => {
|
|
30
|
+
// Create temp directory for test session files
|
|
31
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'bdg-cleanup-test-'));
|
|
32
|
+
// Override HOME to use temp directory
|
|
33
|
+
originalHome = process.env['HOME'];
|
|
34
|
+
originalUserProfile = process.env['USERPROFILE'];
|
|
35
|
+
process.env['HOME'] = tmpDir;
|
|
36
|
+
if (process.platform === 'win32') {
|
|
37
|
+
process.env['USERPROFILE'] = tmpDir;
|
|
38
|
+
}
|
|
39
|
+
// Create .bdg directory
|
|
40
|
+
const bdgDir = path.join(tmpDir, '.bdg');
|
|
41
|
+
fs.mkdirSync(bdgDir, { recursive: true });
|
|
42
|
+
});
|
|
43
|
+
afterEach(() => {
|
|
44
|
+
// Restore environment
|
|
45
|
+
if (originalHome !== undefined) {
|
|
46
|
+
process.env['HOME'] = originalHome;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
delete process.env['HOME'];
|
|
50
|
+
}
|
|
51
|
+
if (originalUserProfile !== undefined) {
|
|
52
|
+
process.env['USERPROFILE'] = originalUserProfile;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
delete process.env['USERPROFILE'];
|
|
56
|
+
}
|
|
57
|
+
// Cleanup temp directory
|
|
58
|
+
try {
|
|
59
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// Ignore cleanup errors
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
void describe('stop() idempotent behavior', () => {
|
|
66
|
+
void it('completes without throwing when called before start()', async () => {
|
|
67
|
+
const server = new IPCServer();
|
|
68
|
+
await assert.doesNotReject(async () => {
|
|
69
|
+
await server.stop();
|
|
70
|
+
}, 'Stop should not throw when called before start');
|
|
71
|
+
});
|
|
72
|
+
void it('completes without throwing when called multiple times', async () => {
|
|
73
|
+
const server = new IPCServer();
|
|
74
|
+
await server.start();
|
|
75
|
+
// First stop
|
|
76
|
+
await assert.doesNotReject(async () => {
|
|
77
|
+
await server.stop();
|
|
78
|
+
}, 'First stop should not throw');
|
|
79
|
+
// Second stop (files already cleaned up)
|
|
80
|
+
await assert.doesNotReject(async () => {
|
|
81
|
+
await server.stop();
|
|
82
|
+
}, 'Second stop should not throw (idempotent)');
|
|
83
|
+
// Third stop
|
|
84
|
+
await assert.doesNotReject(async () => {
|
|
85
|
+
await server.stop();
|
|
86
|
+
}, 'Third stop should not throw (idempotent)');
|
|
87
|
+
});
|
|
88
|
+
void it('removes both socket and PID files on successful cleanup', async () => {
|
|
89
|
+
const server = new IPCServer();
|
|
90
|
+
await server.start();
|
|
91
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
92
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
93
|
+
assert.ok(fs.existsSync(socketPath), 'Socket file should exist after start');
|
|
94
|
+
assert.ok(fs.existsSync(pidPath), 'PID file should exist after start');
|
|
95
|
+
// Stop and verify cleanup
|
|
96
|
+
await server.stop();
|
|
97
|
+
assert.ok(!fs.existsSync(socketPath), 'Socket file should be removed after stop');
|
|
98
|
+
assert.ok(!fs.existsSync(pidPath), 'PID file should be removed after stop');
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
void describe('stop() defensive behavior with missing files', () => {
|
|
102
|
+
void it('completes without throwing when socket file is already deleted', async () => {
|
|
103
|
+
const server = new IPCServer();
|
|
104
|
+
await server.start();
|
|
105
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
106
|
+
// Manually delete socket file before stop
|
|
107
|
+
fs.unlinkSync(socketPath);
|
|
108
|
+
await assert.doesNotReject(async () => {
|
|
109
|
+
await server.stop();
|
|
110
|
+
}, 'Stop should not throw when socket is already deleted');
|
|
111
|
+
});
|
|
112
|
+
void it('completes without throwing when PID file is already deleted', async () => {
|
|
113
|
+
const server = new IPCServer();
|
|
114
|
+
await server.start();
|
|
115
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
116
|
+
// Manually delete PID file before stop
|
|
117
|
+
fs.unlinkSync(pidPath);
|
|
118
|
+
await assert.doesNotReject(async () => {
|
|
119
|
+
await server.stop();
|
|
120
|
+
}, 'Stop should not throw when PID file is already deleted');
|
|
121
|
+
});
|
|
122
|
+
void it('completes without throwing when both files are already deleted', async () => {
|
|
123
|
+
const server = new IPCServer();
|
|
124
|
+
await server.start();
|
|
125
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
126
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
127
|
+
// Manually delete both files before stop
|
|
128
|
+
fs.unlinkSync(socketPath);
|
|
129
|
+
fs.unlinkSync(pidPath);
|
|
130
|
+
await assert.doesNotReject(async () => {
|
|
131
|
+
await server.stop();
|
|
132
|
+
}, 'Stop should not throw when both files are already deleted');
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
void describe('stop() attempts cleanup for all files', () => {
|
|
136
|
+
void it('attempts to remove PID file even if socket is already gone', async () => {
|
|
137
|
+
const server = new IPCServer();
|
|
138
|
+
await server.start();
|
|
139
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
140
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
141
|
+
// Delete socket but leave PID
|
|
142
|
+
fs.unlinkSync(socketPath);
|
|
143
|
+
assert.ok(fs.existsSync(pidPath), 'PID file should still exist');
|
|
144
|
+
await server.stop();
|
|
145
|
+
assert.ok(!fs.existsSync(pidPath), 'PID file should be removed despite socket being missing');
|
|
146
|
+
});
|
|
147
|
+
void it('attempts to remove socket file even if PID is already gone', async () => {
|
|
148
|
+
const server = new IPCServer();
|
|
149
|
+
await server.start();
|
|
150
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
151
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
152
|
+
// Delete PID but leave socket
|
|
153
|
+
fs.unlinkSync(pidPath);
|
|
154
|
+
assert.ok(fs.existsSync(socketPath), 'Socket file should still exist');
|
|
155
|
+
await server.stop();
|
|
156
|
+
assert.ok(!fs.existsSync(socketPath), 'Socket file should be removed despite PID being missing');
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
void describe('stop() cleanup with read-only directory simulation', () => {
|
|
160
|
+
void it('handles cleanup gracefully when directory permissions prevent deletion', async function () {
|
|
161
|
+
// Skip on Windows (chmod behavior differs)
|
|
162
|
+
if (process.platform === 'win32') {
|
|
163
|
+
this.skip();
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
const server = new IPCServer();
|
|
167
|
+
await server.start();
|
|
168
|
+
const bdgDir = path.join(tmpDir, '.bdg');
|
|
169
|
+
const socketPath = getSessionFilePath('DAEMON_SOCKET');
|
|
170
|
+
const pidPath = getSessionFilePath('DAEMON_PID');
|
|
171
|
+
// Make directory read-only (prevents deletion)
|
|
172
|
+
fs.chmodSync(bdgDir, 0o555);
|
|
173
|
+
try {
|
|
174
|
+
await assert.doesNotReject(async () => {
|
|
175
|
+
await server.stop();
|
|
176
|
+
}, 'Stop should not throw when file deletion fails due to permissions');
|
|
177
|
+
// Files should still exist (couldn't be deleted)
|
|
178
|
+
assert.ok(fs.existsSync(socketPath) || fs.existsSync(pidPath), 'At least one file should still exist due to permission denial');
|
|
179
|
+
}
|
|
180
|
+
finally {
|
|
181
|
+
// Restore permissions for cleanup
|
|
182
|
+
fs.chmodSync(bdgDir, 0o755);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
void describe('Defensive error handling invariants', () => {
|
|
187
|
+
void it('stop() never throws - always completes successfully', async () => {
|
|
188
|
+
const server = new IPCServer();
|
|
189
|
+
// Test multiple scenarios - none should throw
|
|
190
|
+
const scenarios = [
|
|
191
|
+
async () => {
|
|
192
|
+
// Scenario 1: Stop before start
|
|
193
|
+
await server.stop();
|
|
194
|
+
},
|
|
195
|
+
async () => {
|
|
196
|
+
// Scenario 2: Start then stop
|
|
197
|
+
await server.start();
|
|
198
|
+
await server.stop();
|
|
199
|
+
},
|
|
200
|
+
async () => {
|
|
201
|
+
// Scenario 3: Multiple stops
|
|
202
|
+
await server.stop();
|
|
203
|
+
await server.stop();
|
|
204
|
+
},
|
|
205
|
+
];
|
|
206
|
+
for (const scenario of scenarios) {
|
|
207
|
+
await assert.doesNotReject(scenario, 'Stop should never throw in any scenario');
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
//# sourceMappingURL=ipcServer.cleanup.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipcServer.cleanup.unit.test.js","sourceRoot":"","sources":["../../../src/daemon/__tests__/ipcServer.cleanup.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAgBlD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAgBlD;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAwG1D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAgBzC"}
|
package/dist/daemon/launcher.js
CHANGED
|
@@ -16,9 +16,9 @@ import { DaemonStartupError } from '../daemon/errors.js';
|
|
|
16
16
|
import { cleanupStaleSession } from '../session/cleanup.js';
|
|
17
17
|
import { acquireDaemonLock, releaseDaemonLock } from '../session/lock.js';
|
|
18
18
|
import { getSessionFilePath } from '../session/paths.js';
|
|
19
|
-
import { isProcessAlive } from '../session/process.js';
|
|
20
19
|
import { createLogger } from '../ui/logging/index.js';
|
|
21
20
|
import { EXIT_CODES } from '../utils/exitCodes.js';
|
|
21
|
+
import { isProcessAlive } from '../utils/process.js';
|
|
22
22
|
const __filename = fileURLToPath(import.meta.url);
|
|
23
23
|
const __dirname = dirname(__filename);
|
|
24
24
|
const log = createLogger('launcher');
|
|
@@ -82,8 +82,9 @@ export async function launchDaemon() {
|
|
|
82
82
|
throw new DaemonStartupError(`Daemon script not found at ${daemonScriptPath}. Did you run 'npm run build'?`, 'DAEMON_SCRIPT_NOT_FOUND');
|
|
83
83
|
}
|
|
84
84
|
log.debug(`Starting daemon: ${daemonScriptPath}`);
|
|
85
|
-
// Spawn the daemon worker
|
|
86
|
-
|
|
85
|
+
// Spawn the daemon worker using the same Node binary as the parent process
|
|
86
|
+
// This ensures compatibility with version managers (nvm, volta) and bundled environments
|
|
87
|
+
const daemon = spawn(process.execPath, [daemonScriptPath], {
|
|
87
88
|
detached: true,
|
|
88
89
|
stdio: 'ignore', // Fully detached - daemon must not depend on parent's stdio
|
|
89
90
|
env: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAIpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/daemon/launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerCleanup.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/workerCleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"workerCleanup.d.ts","sourceRoot":"","sources":["../../../src/daemon/lifecycle/workerCleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAIxE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAapD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,EACtC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CA6Df"}
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
import { getErrorMessage } from '../../connection/errors.js';
|
|
7
7
|
import { writeChromePid } from '../../session/chrome.js';
|
|
8
8
|
import { writeSessionOutput } from '../../session/output.js';
|
|
9
|
-
import { isProcessAlive, killChromeProcess } from '../../session/process.js';
|
|
10
9
|
import { collectDOM } from '../../telemetry/dom.js';
|
|
11
10
|
import { chromeExternalSkipTerminationMessage } from '../../ui/messages/chrome.js';
|
|
12
11
|
import { workerCollectingDOM, workerDOMCollected, workerDOMCollectionFailed, workerRunningCleanup, workerClosingCDP, workerShutdownComplete, workerWritingOutput, } from '../../ui/messages/debug.js';
|
|
12
|
+
import { isProcessAlive, killChromeProcess } from '../../utils/process.js';
|
|
13
13
|
/**
|
|
14
14
|
* Perform worker cleanup.
|
|
15
15
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerCleanup.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/workerCleanup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"workerCleanup.js","sourceRoot":"","sources":["../../../src/daemon/lifecycle/workerCleanup.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { acquireDaemonLock, releaseDaemonLock } from '../../session/lock.js';
|
|
|
9
9
|
import { readSessionMetadata, writeSessionMetadata } from '../../session/metadata.js';
|
|
10
10
|
import { getSessionFilePath } from '../../session/paths.js';
|
|
11
11
|
import { readPid, writePid } from '../../session/pid.js';
|
|
12
|
-
import { isProcessAlive } from '../../
|
|
12
|
+
import { isProcessAlive } from '../../utils/process.js';
|
|
13
13
|
/**
|
|
14
14
|
* Default implementation of session service using file system.
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionService.js","sourceRoot":"","sources":["../../../src/daemon/services/SessionService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SessionService.js","sourceRoot":"","sources":["../../../src/daemon/services/SessionService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA0EpD;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,OAAO;QACL,OAAO,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,QAAQ,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,OAAwC;QACnD,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,aAAa,CAAC,IAAqB;QACjC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,WAAW;QACT,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,WAAW;QACT,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,WAAW,CACT,QAAuF;QAEvF,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;CACF"}
|