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
|
@@ -236,18 +236,15 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
236
236
|
});
|
|
237
237
|
void describe('connectToDaemon()', () => {
|
|
238
238
|
void it('connects to daemon and receives handshake response', async () => {
|
|
239
|
-
// Test the CONTRACT: Client connects → daemon responds
|
|
240
239
|
const response = await ipcClient.connectToDaemon();
|
|
241
|
-
// Verify response structure (contract)
|
|
242
240
|
assert.equal(response.type, 'handshake_response');
|
|
243
241
|
assert.equal(response.status, 'ok');
|
|
244
|
-
assert.ok(response.sessionId);
|
|
245
|
-
assert.ok(response.message);
|
|
242
|
+
assert.ok(response.sessionId);
|
|
243
|
+
assert.ok(response.message);
|
|
246
244
|
});
|
|
247
245
|
void it('throws error when daemon is not running', async () => {
|
|
248
246
|
// Stop daemon to simulate not running
|
|
249
247
|
await mockDaemon.stop();
|
|
250
|
-
// Test the CONTRACT: No daemon → connection error
|
|
251
248
|
await assert.rejects(async () => {
|
|
252
249
|
await ipcClient.connectToDaemon();
|
|
253
250
|
}, {
|
|
@@ -258,7 +255,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
258
255
|
void it('throws error on timeout (5s)', async () => {
|
|
259
256
|
// Configure mock daemon to be slow (10s delay)
|
|
260
257
|
mockDaemon.mode = 'slow';
|
|
261
|
-
// Test the CONTRACT: Slow response → timeout error
|
|
262
258
|
await assert.rejects(async () => {
|
|
263
259
|
await ipcClient.connectToDaemon();
|
|
264
260
|
}, {
|
|
@@ -269,7 +265,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
269
265
|
void it('throws error on malformed response', async () => {
|
|
270
266
|
// Configure mock daemon to send invalid JSON
|
|
271
267
|
mockDaemon.mode = 'malformed';
|
|
272
|
-
// Test the CONTRACT: Invalid JSON → parse error
|
|
273
268
|
await assert.rejects(async () => {
|
|
274
269
|
await ipcClient.connectToDaemon();
|
|
275
270
|
}, {
|
|
@@ -280,7 +275,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
280
275
|
void it('throws error when connection closes early', async () => {
|
|
281
276
|
// Configure mock daemon to close connection immediately
|
|
282
277
|
mockDaemon.mode = 'close_early';
|
|
283
|
-
// Test the CONTRACT: Early close → connection closed error
|
|
284
278
|
await assert.rejects(async () => {
|
|
285
279
|
await ipcClient.connectToDaemon();
|
|
286
280
|
}, {
|
|
@@ -291,9 +285,7 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
291
285
|
});
|
|
292
286
|
void describe('getStatus()', () => {
|
|
293
287
|
void it('requests status and receives response', async () => {
|
|
294
|
-
// Test the CONTRACT: Status request → status response
|
|
295
288
|
const response = await ipcClient.getStatus();
|
|
296
|
-
// Verify response structure (contract)
|
|
297
289
|
assert.equal(response.type, 'status_response');
|
|
298
290
|
assert.equal(response.status, 'ok');
|
|
299
291
|
assert.ok(response.data);
|
|
@@ -303,7 +295,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
303
295
|
void it('throws error when daemon is not running', async () => {
|
|
304
296
|
// Stop daemon
|
|
305
297
|
await mockDaemon.stop();
|
|
306
|
-
// Test the CONTRACT: No daemon → connection error
|
|
307
298
|
await assert.rejects(async () => {
|
|
308
299
|
await ipcClient.getStatus();
|
|
309
300
|
}, {
|
|
@@ -314,7 +305,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
314
305
|
void it('throws error on timeout', async () => {
|
|
315
306
|
// Configure mock daemon to be slow
|
|
316
307
|
mockDaemon.mode = 'slow';
|
|
317
|
-
// Test the CONTRACT: Slow response → timeout
|
|
318
308
|
await assert.rejects(async () => {
|
|
319
309
|
await ipcClient.getStatus();
|
|
320
310
|
}, {
|
|
@@ -325,7 +315,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
325
315
|
void it('propagates daemon errors', async () => {
|
|
326
316
|
// Configure mock daemon to send error response
|
|
327
317
|
mockDaemon.mode = 'error';
|
|
328
|
-
// Test the CONTRACT: Daemon error → client receives error
|
|
329
318
|
// Note: Current implementation doesn't check status in response
|
|
330
319
|
// This test documents current behavior
|
|
331
320
|
const response = await ipcClient.getStatus();
|
|
@@ -372,7 +361,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
372
361
|
});
|
|
373
362
|
void describe('Concurrent requests', () => {
|
|
374
363
|
void it('handles multiple concurrent requests', async () => {
|
|
375
|
-
// Test the INVARIANT: Multiple concurrent requests all succeed
|
|
376
364
|
const requests = [
|
|
377
365
|
ipcClient.connectToDaemon(),
|
|
378
366
|
ipcClient.getStatus(),
|
|
@@ -380,7 +368,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
380
368
|
ipcClient.getStatus(),
|
|
381
369
|
];
|
|
382
370
|
const responses = await Promise.all(requests);
|
|
383
|
-
// Verify all requests succeeded
|
|
384
371
|
assert.equal(responses.length, 4);
|
|
385
372
|
assert.equal(responses[0]?.type, 'handshake_response');
|
|
386
373
|
assert.equal(responses[1]?.type, 'status_response');
|
|
@@ -404,14 +391,12 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
404
391
|
});
|
|
405
392
|
void describe('JSONL protocol', () => {
|
|
406
393
|
void it('handles requests with unique session IDs', async () => {
|
|
407
|
-
// Test the PROPERTY: Each request has unique session ID
|
|
408
394
|
const response1 = await ipcClient.connectToDaemon();
|
|
409
395
|
const response2 = await ipcClient.connectToDaemon();
|
|
410
396
|
// Session IDs should be different (UUID random)
|
|
411
397
|
assert.notEqual(response1.sessionId, response2.sessionId);
|
|
412
398
|
});
|
|
413
399
|
void it('preserves session ID in response', async () => {
|
|
414
|
-
// Test the INVARIANT: Response sessionId matches request sessionId
|
|
415
400
|
// This is tested implicitly by the mock daemon echoing back sessionId
|
|
416
401
|
const response = await ipcClient.getStatus();
|
|
417
402
|
// Mock daemon echoes sessionId, so if we get a response, it matched
|
|
@@ -423,7 +408,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
423
408
|
void it('handles silent daemon (no response)', async () => {
|
|
424
409
|
// Configure daemon to receive but not respond
|
|
425
410
|
mockDaemon.mode = 'silent';
|
|
426
|
-
// Test the CONTRACT: No response → timeout
|
|
427
411
|
await assert.rejects(async () => {
|
|
428
412
|
await ipcClient.getStatus();
|
|
429
413
|
}, {
|
|
@@ -444,7 +428,6 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
444
428
|
await new Promise((resolve) => {
|
|
445
429
|
partialServer.listen(socketPath, resolve);
|
|
446
430
|
});
|
|
447
|
-
// Test the CONTRACT: Partial response → connection closed error
|
|
448
431
|
await assert.rejects(async () => {
|
|
449
432
|
await ipcClient.getStatus();
|
|
450
433
|
}, {
|
|
@@ -457,5 +440,254 @@ void describe('IPC Client Contract Tests', () => {
|
|
|
457
440
|
});
|
|
458
441
|
});
|
|
459
442
|
});
|
|
443
|
+
void describe('getDetails()', () => {
|
|
444
|
+
void it('fetches network request details by ID', async () => {
|
|
445
|
+
// Create custom mock that responds to worker_details_request
|
|
446
|
+
await mockDaemon.stop();
|
|
447
|
+
const detailsServer = net.createServer((socket) => {
|
|
448
|
+
let buffer = '';
|
|
449
|
+
socket.on('data', (chunk) => {
|
|
450
|
+
buffer += chunk.toString('utf-8');
|
|
451
|
+
const lines = buffer.split('\n');
|
|
452
|
+
buffer = lines.pop() ?? '';
|
|
453
|
+
for (const line of lines) {
|
|
454
|
+
if (line.trim()) {
|
|
455
|
+
const request = JSON.parse(line);
|
|
456
|
+
if (request.type === 'worker_details_request') {
|
|
457
|
+
const response = {
|
|
458
|
+
type: 'worker_details_response',
|
|
459
|
+
sessionId: request.sessionId,
|
|
460
|
+
status: 'ok',
|
|
461
|
+
data: {
|
|
462
|
+
item: {
|
|
463
|
+
requestId: request.id,
|
|
464
|
+
url: 'https://example.com/api',
|
|
465
|
+
method: 'GET',
|
|
466
|
+
status: 200,
|
|
467
|
+
headers: { 'content-type': 'application/json' },
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
};
|
|
471
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
await new Promise((resolve) => {
|
|
478
|
+
detailsServer.listen(socketPath, resolve);
|
|
479
|
+
});
|
|
480
|
+
const response = await ipcClient.getDetails('network', 'req-123');
|
|
481
|
+
assert.equal(response.type, 'worker_details_response');
|
|
482
|
+
assert.equal(response.status, 'ok');
|
|
483
|
+
assert.ok(response.data);
|
|
484
|
+
assert.ok(response.data.item);
|
|
485
|
+
// Cleanup
|
|
486
|
+
await new Promise((resolve) => {
|
|
487
|
+
detailsServer.close(() => resolve());
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
void it('fetches console message details by ID', async () => {
|
|
491
|
+
// Create custom mock that responds to worker_details_request
|
|
492
|
+
await mockDaemon.stop();
|
|
493
|
+
const detailsServer = net.createServer((socket) => {
|
|
494
|
+
let buffer = '';
|
|
495
|
+
socket.on('data', (chunk) => {
|
|
496
|
+
buffer += chunk.toString('utf-8');
|
|
497
|
+
const lines = buffer.split('\n');
|
|
498
|
+
buffer = lines.pop() ?? '';
|
|
499
|
+
for (const line of lines) {
|
|
500
|
+
if (line.trim()) {
|
|
501
|
+
const request = JSON.parse(line);
|
|
502
|
+
if (request.type === 'worker_details_request') {
|
|
503
|
+
const response = {
|
|
504
|
+
type: 'worker_details_response',
|
|
505
|
+
sessionId: request.sessionId,
|
|
506
|
+
status: 'ok',
|
|
507
|
+
data: {
|
|
508
|
+
item: {
|
|
509
|
+
type: 'log',
|
|
510
|
+
timestamp: Date.now(),
|
|
511
|
+
text: 'Test log message',
|
|
512
|
+
stackTrace: { callFrames: [] },
|
|
513
|
+
},
|
|
514
|
+
},
|
|
515
|
+
};
|
|
516
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
});
|
|
522
|
+
await new Promise((resolve) => {
|
|
523
|
+
detailsServer.listen(socketPath, resolve);
|
|
524
|
+
});
|
|
525
|
+
const response = await ipcClient.getDetails('console', 'msg-456');
|
|
526
|
+
assert.equal(response.type, 'worker_details_response');
|
|
527
|
+
assert.equal(response.status, 'ok');
|
|
528
|
+
assert.ok(response.data);
|
|
529
|
+
assert.ok(response.data.item);
|
|
530
|
+
// Cleanup
|
|
531
|
+
await new Promise((resolve) => {
|
|
532
|
+
detailsServer.close(() => resolve());
|
|
533
|
+
});
|
|
534
|
+
});
|
|
535
|
+
void it('throws error when daemon is not running', async () => {
|
|
536
|
+
// Stop daemon
|
|
537
|
+
await mockDaemon.stop();
|
|
538
|
+
await assert.rejects(async () => {
|
|
539
|
+
await ipcClient.getDetails('network', 'req-123');
|
|
540
|
+
}, {
|
|
541
|
+
name: 'IPCConnectionError',
|
|
542
|
+
message: /IPC worker_details connection error/,
|
|
543
|
+
});
|
|
544
|
+
});
|
|
545
|
+
});
|
|
546
|
+
void describe('callCDP()', () => {
|
|
547
|
+
void it('executes CDP method and returns result', async () => {
|
|
548
|
+
// Create custom mock that responds to cdp_call_request
|
|
549
|
+
await mockDaemon.stop();
|
|
550
|
+
const cdpServer = net.createServer((socket) => {
|
|
551
|
+
let buffer = '';
|
|
552
|
+
socket.on('data', (chunk) => {
|
|
553
|
+
buffer += chunk.toString('utf-8');
|
|
554
|
+
const lines = buffer.split('\n');
|
|
555
|
+
buffer = lines.pop() ?? '';
|
|
556
|
+
for (const line of lines) {
|
|
557
|
+
if (line.trim()) {
|
|
558
|
+
const request = JSON.parse(line);
|
|
559
|
+
if (request.type === 'cdp_call_request') {
|
|
560
|
+
const response = {
|
|
561
|
+
type: 'cdp_call_response',
|
|
562
|
+
sessionId: request.sessionId,
|
|
563
|
+
status: 'ok',
|
|
564
|
+
data: {
|
|
565
|
+
result: {
|
|
566
|
+
cookies: [
|
|
567
|
+
{ name: 'session', value: 'abc123' },
|
|
568
|
+
{ name: 'user_id', value: '42' },
|
|
569
|
+
],
|
|
570
|
+
},
|
|
571
|
+
},
|
|
572
|
+
};
|
|
573
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
});
|
|
578
|
+
});
|
|
579
|
+
await new Promise((resolve) => {
|
|
580
|
+
cdpServer.listen(socketPath, resolve);
|
|
581
|
+
});
|
|
582
|
+
const response = await ipcClient.callCDP('Network.getCookies', {});
|
|
583
|
+
assert.equal(response.type, 'cdp_call_response');
|
|
584
|
+
assert.equal(response.status, 'ok');
|
|
585
|
+
assert.ok(response.data);
|
|
586
|
+
assert.ok(response.data.result);
|
|
587
|
+
// Cleanup
|
|
588
|
+
await new Promise((resolve) => {
|
|
589
|
+
cdpServer.close(() => resolve());
|
|
590
|
+
});
|
|
591
|
+
});
|
|
592
|
+
void it('forwards CDP method parameters correctly', async () => {
|
|
593
|
+
// Create custom mock that echoes back the method and params
|
|
594
|
+
await mockDaemon.stop();
|
|
595
|
+
let receivedRequest = null;
|
|
596
|
+
const cdpServer = net.createServer((socket) => {
|
|
597
|
+
let buffer = '';
|
|
598
|
+
socket.on('data', (chunk) => {
|
|
599
|
+
buffer += chunk.toString('utf-8');
|
|
600
|
+
const lines = buffer.split('\n');
|
|
601
|
+
buffer = lines.pop() ?? '';
|
|
602
|
+
for (const line of lines) {
|
|
603
|
+
if (line.trim()) {
|
|
604
|
+
const request = JSON.parse(line);
|
|
605
|
+
if (request.type === 'cdp_call_request') {
|
|
606
|
+
// Capture the request for verification
|
|
607
|
+
receivedRequest = { method: request.method, params: request.params };
|
|
608
|
+
const response = {
|
|
609
|
+
type: 'cdp_call_response',
|
|
610
|
+
sessionId: request.sessionId,
|
|
611
|
+
status: 'ok',
|
|
612
|
+
data: {
|
|
613
|
+
result: { success: true },
|
|
614
|
+
},
|
|
615
|
+
};
|
|
616
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
});
|
|
621
|
+
});
|
|
622
|
+
await new Promise((resolve) => {
|
|
623
|
+
cdpServer.listen(socketPath, resolve);
|
|
624
|
+
});
|
|
625
|
+
await ipcClient.callCDP('Network.setCookie', {
|
|
626
|
+
name: 'test',
|
|
627
|
+
value: 'value123',
|
|
628
|
+
domain: 'example.com',
|
|
629
|
+
});
|
|
630
|
+
assert.ok(receivedRequest, 'Request should have been received');
|
|
631
|
+
const req = receivedRequest;
|
|
632
|
+
assert.equal(req.method, 'Network.setCookie');
|
|
633
|
+
assert.ok(req.params);
|
|
634
|
+
assert.equal(req.params['name'], 'test');
|
|
635
|
+
assert.equal(req.params['value'], 'value123');
|
|
636
|
+
assert.equal(req.params['domain'], 'example.com');
|
|
637
|
+
// Cleanup
|
|
638
|
+
await new Promise((resolve) => {
|
|
639
|
+
cdpServer.close(() => resolve());
|
|
640
|
+
});
|
|
641
|
+
});
|
|
642
|
+
void it('handles CDP method without parameters', async () => {
|
|
643
|
+
// Create custom mock
|
|
644
|
+
await mockDaemon.stop();
|
|
645
|
+
const cdpServer = net.createServer((socket) => {
|
|
646
|
+
let buffer = '';
|
|
647
|
+
socket.on('data', (chunk) => {
|
|
648
|
+
buffer += chunk.toString('utf-8');
|
|
649
|
+
const lines = buffer.split('\n');
|
|
650
|
+
buffer = lines.pop() ?? '';
|
|
651
|
+
for (const line of lines) {
|
|
652
|
+
if (line.trim()) {
|
|
653
|
+
const request = JSON.parse(line);
|
|
654
|
+
if (request.type === 'cdp_call_request') {
|
|
655
|
+
const response = {
|
|
656
|
+
type: 'cdp_call_response',
|
|
657
|
+
sessionId: request.sessionId,
|
|
658
|
+
status: 'ok',
|
|
659
|
+
data: {
|
|
660
|
+
result: { userAgent: 'Mozilla/5.0' },
|
|
661
|
+
},
|
|
662
|
+
};
|
|
663
|
+
socket.write(JSON.stringify(response) + '\n');
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
});
|
|
668
|
+
});
|
|
669
|
+
await new Promise((resolve) => {
|
|
670
|
+
cdpServer.listen(socketPath, resolve);
|
|
671
|
+
});
|
|
672
|
+
const response = await ipcClient.callCDP('Browser.getVersion');
|
|
673
|
+
assert.equal(response.type, 'cdp_call_response');
|
|
674
|
+
assert.equal(response.status, 'ok');
|
|
675
|
+
assert.ok(response.data);
|
|
676
|
+
// Cleanup
|
|
677
|
+
await new Promise((resolve) => {
|
|
678
|
+
cdpServer.close(() => resolve());
|
|
679
|
+
});
|
|
680
|
+
});
|
|
681
|
+
void it('throws error when daemon is not running', async () => {
|
|
682
|
+
// Stop daemon
|
|
683
|
+
await mockDaemon.stop();
|
|
684
|
+
await assert.rejects(async () => {
|
|
685
|
+
await ipcClient.callCDP('Network.getCookies', {});
|
|
686
|
+
}, {
|
|
687
|
+
name: 'IPCConnectionError',
|
|
688
|
+
message: /IPC cdp_call connection error/,
|
|
689
|
+
});
|
|
690
|
+
});
|
|
691
|
+
});
|
|
460
692
|
});
|
|
461
693
|
//# sourceMappingURL=client.contract.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.contract.test.js","sourceRoot":"","sources":["../../../src/ipc/__tests__/client.contract.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.contract.test.js","sourceRoot":"","sources":["../../../src/ipc/__tests__/client.contract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import assert from 'node:assert/strict';
|
|
7
7
|
import { describe, it } from 'node:test';
|
|
8
|
-
import { JSONLBuffer, parseJSONLFrame, toJSONLFrame } from '../../ipc/transport/jsonl.js';
|
|
8
|
+
import { JSONLBuffer, JSONLBufferOverflowError, parseJSONLFrame, toJSONLFrame, } from '../../ipc/transport/jsonl.js';
|
|
9
9
|
void describe('JSONLBuffer', () => {
|
|
10
10
|
void it('handles partial frames across chunks', () => {
|
|
11
11
|
const buffer = new JSONLBuffer();
|
|
@@ -38,6 +38,24 @@ void describe('JSONLBuffer', () => {
|
|
|
38
38
|
const lines = buffer.process('{"new":"message"}\n');
|
|
39
39
|
assert.deepEqual(lines, ['{"new":"message"}']);
|
|
40
40
|
});
|
|
41
|
+
void it('throws on buffer overflow', () => {
|
|
42
|
+
const buffer = new JSONLBuffer();
|
|
43
|
+
// Create a chunk larger than MAX_JSONL_BUFFER_SIZE (10MB) without newlines
|
|
44
|
+
const largeChunk = 'x'.repeat(11 * 1024 * 1024); // 11MB
|
|
45
|
+
assert.throws(() => {
|
|
46
|
+
buffer.process(largeChunk);
|
|
47
|
+
}, (error) => {
|
|
48
|
+
return error instanceof JSONLBufferOverflowError && error.message.includes('10485760');
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
void it('allows chunks under buffer limit', () => {
|
|
52
|
+
const buffer = new JSONLBuffer();
|
|
53
|
+
// Create a chunk just under the limit
|
|
54
|
+
const largeButValidChunk = '{"data":"' + 'x'.repeat(9 * 1024 * 1024) + '"}\n';
|
|
55
|
+
// Should not throw
|
|
56
|
+
const lines = buffer.process(largeButValidChunk);
|
|
57
|
+
assert.equal(lines.length, 1);
|
|
58
|
+
});
|
|
41
59
|
});
|
|
42
60
|
void describe('parseJSONLFrame', () => {
|
|
43
61
|
void it('parses valid JSON string', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.unit.test.js","sourceRoot":"","sources":["../../../src/ipc/__tests__/jsonl.unit.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,
|
|
1
|
+
{"version":3,"file":"jsonl.unit.test.js","sourceRoot":"","sources":["../../../src/ipc/__tests__/jsonl.unit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,27 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Utilities for parsing newline-delimited JSON streams.
|
|
5
5
|
*/
|
|
6
|
+
/**
|
|
7
|
+
* Error thrown when JSONL buffer exceeds maximum size.
|
|
8
|
+
*/
|
|
9
|
+
export declare class JSONLBufferOverflowError extends Error {
|
|
10
|
+
constructor(bufferSize: number, maxSize: number);
|
|
11
|
+
}
|
|
6
12
|
/**
|
|
7
13
|
* JSONL buffer for accumulating partial frames.
|
|
14
|
+
*
|
|
15
|
+
* Enforces a maximum buffer size to prevent OOM attacks from processes
|
|
16
|
+
* that send unbounded data without newlines.
|
|
8
17
|
*/
|
|
9
18
|
export declare class JSONLBuffer {
|
|
10
19
|
private buffer;
|
|
20
|
+
/**
|
|
21
|
+
* Process incoming chunk and extract complete JSONL frames.
|
|
22
|
+
*
|
|
23
|
+
* @param chunk - Incoming data chunk
|
|
24
|
+
* @returns Array of complete JSONL frames (lines)
|
|
25
|
+
* @throws JSONLBufferOverflowError if buffer exceeds MAX_JSONL_BUFFER_SIZE
|
|
26
|
+
*/
|
|
11
27
|
process(chunk: string): string[];
|
|
12
28
|
clear(): void;
|
|
13
29
|
getBuffer(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/ipc/transport/jsonl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/ipc/transport/jsonl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;gBACrC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAOhD;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAM;IAEpB;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAahC,KAAK,IAAI,IAAI;IAIb,SAAS,IAAI,MAAM;CAGpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjD"}
|
|
@@ -3,13 +3,38 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Utilities for parsing newline-delimited JSON streams.
|
|
5
5
|
*/
|
|
6
|
+
import { MAX_JSONL_BUFFER_SIZE } from '../../constants.js';
|
|
7
|
+
/**
|
|
8
|
+
* Error thrown when JSONL buffer exceeds maximum size.
|
|
9
|
+
*/
|
|
10
|
+
export class JSONLBufferOverflowError extends Error {
|
|
11
|
+
constructor(bufferSize, maxSize) {
|
|
12
|
+
super(`JSONL buffer overflow: ${bufferSize} bytes exceeds maximum ${maxSize} bytes. ` +
|
|
13
|
+
`Possible malicious or buggy process sending data without newlines.`);
|
|
14
|
+
this.name = 'JSONLBufferOverflowError';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
6
17
|
/**
|
|
7
18
|
* JSONL buffer for accumulating partial frames.
|
|
19
|
+
*
|
|
20
|
+
* Enforces a maximum buffer size to prevent OOM attacks from processes
|
|
21
|
+
* that send unbounded data without newlines.
|
|
8
22
|
*/
|
|
9
23
|
export class JSONLBuffer {
|
|
10
24
|
buffer = '';
|
|
25
|
+
/**
|
|
26
|
+
* Process incoming chunk and extract complete JSONL frames.
|
|
27
|
+
*
|
|
28
|
+
* @param chunk - Incoming data chunk
|
|
29
|
+
* @returns Array of complete JSONL frames (lines)
|
|
30
|
+
* @throws JSONLBufferOverflowError if buffer exceeds MAX_JSONL_BUFFER_SIZE
|
|
31
|
+
*/
|
|
11
32
|
process(chunk) {
|
|
12
33
|
this.buffer += chunk;
|
|
34
|
+
// Check buffer size before processing to prevent OOM
|
|
35
|
+
if (this.buffer.length > MAX_JSONL_BUFFER_SIZE) {
|
|
36
|
+
throw new JSONLBufferOverflowError(this.buffer.length, MAX_JSONL_BUFFER_SIZE);
|
|
37
|
+
}
|
|
13
38
|
const lines = this.buffer.split('\n');
|
|
14
39
|
this.buffer = lines.pop() ?? '';
|
|
15
40
|
return lines.filter((line) => line.trim());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../../src/ipc/transport/jsonl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,GAAG,EAAE,CAAC;IAEpB,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../../src/ipc/transport/jsonl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,YAAY,UAAkB,EAAE,OAAe;QAC7C,KAAK,CACH,0BAA0B,UAAU,0BAA0B,OAAO,UAAU;YAC7E,oEAAoE,CACvE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,GAAG,EAAE,CAAC;IAEpB;;;;;;OAMG;IACH,OAAO,CAAC,KAAa;QACnB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QAErB,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;YAC/C,MAAM,IAAI,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAI,IAAY;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AACpC,CAAC"}
|
package/dist/session/chrome.js
CHANGED
|
@@ -8,8 +8,8 @@ import * as fs from 'fs';
|
|
|
8
8
|
import { getErrorMessage } from '../connection/errors.js';
|
|
9
9
|
import { createLogger } from '../ui/logging/index.js';
|
|
10
10
|
import { AtomicFileWriter } from '../utils/atomicFile.js';
|
|
11
|
+
import { isProcessAlive } from '../utils/process.js';
|
|
11
12
|
import { getSessionFilePath, ensureSessionDir } from './paths.js';
|
|
12
|
-
import { isProcessAlive } from './process.js';
|
|
13
13
|
const log = createLogger('chrome');
|
|
14
14
|
/**
|
|
15
15
|
* Parse Chrome PID from cache file content.
|
|
@@ -130,7 +130,7 @@ export async function cleanupStaleChrome() {
|
|
|
130
130
|
const { cleanupChromeAttemptingMessage, cleanupChromePidNotFoundMessage, cleanupChromeKillingMessage, cleanupChromeSuccessMessage, cleanupChromeFailedMessage, cleanupChromeProcessFailedMessage, } = await import('../ui/messages/chrome.js');
|
|
131
131
|
console.error(cleanupChromeAttemptingMessage());
|
|
132
132
|
try {
|
|
133
|
-
const { killChromeProcess } = await import('
|
|
133
|
+
const { killChromeProcess } = await import('../utils/process.js');
|
|
134
134
|
const chromePid = readChromePid();
|
|
135
135
|
if (!chromePid) {
|
|
136
136
|
console.error(cleanupChromePidNotFoundMessage());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/session/chrome.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"chrome.js","sourceRoot":"","sources":["../../src/session/chrome.ts"],"names":[],"mappings":"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"}
|