cbrowser 7.4.17 → 7.4.19
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/dist/browser.d.ts +26 -3
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +127 -4
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +149 -6
- package/dist/cli.js.map +1 -1
- package/dist/mcp-server-remote.d.ts.map +1 -1
- package/dist/mcp-server-remote.js +28 -10
- package/dist/mcp-server-remote.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +26 -8
- package/dist/mcp-server.js.map +1 -1
- package/dist/performance/metrics.d.ts +9 -3
- package/dist/performance/metrics.d.ts.map +1 -1
- package/dist/performance/metrics.js +106 -10
- package/dist/performance/metrics.js.map +1 -1
- package/dist/types.d.ts +54 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
package/dist/browser.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { type Page } from "playwright";
|
|
7
7
|
import { type CBrowserConfig } from "./config.js";
|
|
8
|
-
import type { SavedSession, NavigationResult, ClickResult, ExtractResult, JourneyResult, CleanupOptions, CleanupResult, JourneyOptions, NetworkMock, NetworkRequest, PerformanceMetrics, PerformanceAuditResult, SmartRetryResult, AssertionResult, SelectorCacheEntry, SelectorCacheStats, PageAnalysis, TestGenerationResult, DismissOverlayOptions, DismissOverlayResult } from "./types.js";
|
|
8
|
+
import type { SavedSession, NavigationResult, ClickResult, ExtractResult, JourneyResult, CleanupOptions, CleanupResult, JourneyOptions, NetworkMock, NetworkRequest, PerformanceMetrics, PerformanceAuditResult, SmartRetryResult, AssertionResult, SelectorCacheEntry, SelectorCacheStats, PageAnalysis, TestGenerationResult, DismissOverlayOptions, DismissOverlayResult, SessionMetadata, LoadSessionResult } from "./types.js";
|
|
9
9
|
export declare class CBrowser {
|
|
10
10
|
private config;
|
|
11
11
|
private paths;
|
|
@@ -307,15 +307,38 @@ export declare class CBrowser {
|
|
|
307
307
|
/**
|
|
308
308
|
* Load a saved session.
|
|
309
309
|
*/
|
|
310
|
-
loadSession(name: string): Promise<
|
|
310
|
+
loadSession(name: string): Promise<LoadSessionResult>;
|
|
311
311
|
/**
|
|
312
|
-
* List all saved
|
|
312
|
+
* List all saved session names.
|
|
313
313
|
*/
|
|
314
314
|
listSessions(): string[];
|
|
315
|
+
/**
|
|
316
|
+
* List all saved sessions with rich metadata.
|
|
317
|
+
*/
|
|
318
|
+
listSessionsDetailed(): SessionMetadata[];
|
|
319
|
+
/**
|
|
320
|
+
* Get detailed info for a single session.
|
|
321
|
+
*/
|
|
322
|
+
getSessionDetails(name: string): SavedSession | null;
|
|
315
323
|
/**
|
|
316
324
|
* Delete a saved session.
|
|
317
325
|
*/
|
|
318
326
|
deleteSession(name: string): boolean;
|
|
327
|
+
/**
|
|
328
|
+
* Delete sessions older than a given number of days.
|
|
329
|
+
*/
|
|
330
|
+
cleanupSessions(olderThanDays: number): {
|
|
331
|
+
deleted: string[];
|
|
332
|
+
kept: string[];
|
|
333
|
+
};
|
|
334
|
+
/**
|
|
335
|
+
* Export a session to a portable JSON file.
|
|
336
|
+
*/
|
|
337
|
+
exportSession(name: string, outputPath: string): boolean;
|
|
338
|
+
/**
|
|
339
|
+
* Import a session from a JSON file.
|
|
340
|
+
*/
|
|
341
|
+
importSession(inputPath: string, name: string): boolean;
|
|
319
342
|
/**
|
|
320
343
|
* Run an autonomous journey.
|
|
321
344
|
*/
|
package/dist/browser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAA2C,KAAK,IAAI,EAAiD,MAAM,YAAY,CAAC;AAI/H,OAAO,EAAE,KAAK,cAAc,EAAgE,MAAM,aAAa,CAAC;AAEhH,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,aAAa,EAKb,cAAc,EACd,aAAa,EACb,cAAc,EAEd,WAAW,EACX,cAAc,EAId,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAEhB,eAAe,EAEf,kBAAkB,EAElB,kBAAkB,EAElB,YAAY,EAIZ,oBAAoB,EA6DpB,qBAAqB,EAErB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
CHANGED
|
@@ -2350,11 +2350,31 @@ class CBrowser {
|
|
|
2350
2350
|
async loadSession(name) {
|
|
2351
2351
|
const sessionPath = (0, path_1.join)(this.paths.sessionsDir, `${name}.json`);
|
|
2352
2352
|
if (!(0, fs_1.existsSync)(sessionPath)) {
|
|
2353
|
-
return false;
|
|
2353
|
+
return { success: false, name, cookiesRestored: 0, localStorageKeysRestored: 0, sessionStorageKeysRestored: 0 };
|
|
2354
2354
|
}
|
|
2355
2355
|
const session = JSON.parse((0, fs_1.readFileSync)(sessionPath, "utf-8"));
|
|
2356
2356
|
const page = await this.getPage();
|
|
2357
2357
|
const context = this.context;
|
|
2358
|
+
const result = {
|
|
2359
|
+
success: true,
|
|
2360
|
+
name,
|
|
2361
|
+
cookiesRestored: session.cookies.length,
|
|
2362
|
+
localStorageKeysRestored: Object.keys(session.localStorage).length,
|
|
2363
|
+
sessionStorageKeysRestored: Object.keys(session.sessionStorage).length,
|
|
2364
|
+
};
|
|
2365
|
+
// Cross-domain warning
|
|
2366
|
+
const currentUrl = page.url();
|
|
2367
|
+
if (currentUrl && currentUrl !== "about:blank") {
|
|
2368
|
+
try {
|
|
2369
|
+
const currentDomain = new URL(currentUrl).hostname;
|
|
2370
|
+
if (session.domain && currentDomain !== session.domain) {
|
|
2371
|
+
result.warning = `Session '${name}' was saved for ${session.domain} but current page is ${currentDomain}. Some cookies may not apply.`;
|
|
2372
|
+
}
|
|
2373
|
+
}
|
|
2374
|
+
catch {
|
|
2375
|
+
// URL parsing failed, skip warning
|
|
2376
|
+
}
|
|
2377
|
+
}
|
|
2358
2378
|
// Restore cookies
|
|
2359
2379
|
if (session.cookies.length > 0) {
|
|
2360
2380
|
await context.addCookies(session.cookies);
|
|
@@ -2378,14 +2398,59 @@ class CBrowser {
|
|
|
2378
2398
|
// Update lastUsed
|
|
2379
2399
|
session.lastUsed = new Date().toISOString();
|
|
2380
2400
|
(0, fs_1.writeFileSync)(sessionPath, JSON.stringify(session, null, 2));
|
|
2381
|
-
return
|
|
2401
|
+
return result;
|
|
2382
2402
|
}
|
|
2383
2403
|
/**
|
|
2384
|
-
* List all saved
|
|
2404
|
+
* List all saved session names.
|
|
2385
2405
|
*/
|
|
2386
2406
|
listSessions() {
|
|
2387
2407
|
const files = (0, fs_1.readdirSync)(this.paths.sessionsDir);
|
|
2388
|
-
return files.filter((f) => f.endsWith(".json")).map((f) => f.replace(".json", ""));
|
|
2408
|
+
return files.filter((f) => f.endsWith(".json") && f !== "last-session.json").map((f) => f.replace(".json", ""));
|
|
2409
|
+
}
|
|
2410
|
+
/**
|
|
2411
|
+
* List all saved sessions with rich metadata.
|
|
2412
|
+
*/
|
|
2413
|
+
listSessionsDetailed() {
|
|
2414
|
+
const files = (0, fs_1.readdirSync)(this.paths.sessionsDir);
|
|
2415
|
+
const sessions = [];
|
|
2416
|
+
for (const file of files) {
|
|
2417
|
+
if (!file.endsWith(".json") || file === "last-session.json")
|
|
2418
|
+
continue;
|
|
2419
|
+
const filePath = (0, path_1.join)(this.paths.sessionsDir, file);
|
|
2420
|
+
try {
|
|
2421
|
+
const data = JSON.parse((0, fs_1.readFileSync)(filePath, "utf-8"));
|
|
2422
|
+
const stats = (0, fs_1.statSync)(filePath);
|
|
2423
|
+
sessions.push({
|
|
2424
|
+
name: data.name || file.replace(".json", ""),
|
|
2425
|
+
created: data.created,
|
|
2426
|
+
lastUsed: data.lastUsed,
|
|
2427
|
+
domain: data.domain,
|
|
2428
|
+
url: data.url,
|
|
2429
|
+
cookies: data.cookies?.length || 0,
|
|
2430
|
+
localStorageKeys: Object.keys(data.localStorage || {}).length,
|
|
2431
|
+
sessionStorageKeys: Object.keys(data.sessionStorage || {}).length,
|
|
2432
|
+
sizeBytes: stats.size,
|
|
2433
|
+
});
|
|
2434
|
+
}
|
|
2435
|
+
catch {
|
|
2436
|
+
// Skip malformed session files
|
|
2437
|
+
}
|
|
2438
|
+
}
|
|
2439
|
+
return sessions.sort((a, b) => new Date(b.lastUsed).getTime() - new Date(a.lastUsed).getTime());
|
|
2440
|
+
}
|
|
2441
|
+
/**
|
|
2442
|
+
* Get detailed info for a single session.
|
|
2443
|
+
*/
|
|
2444
|
+
getSessionDetails(name) {
|
|
2445
|
+
const sessionPath = (0, path_1.join)(this.paths.sessionsDir, `${name}.json`);
|
|
2446
|
+
if (!(0, fs_1.existsSync)(sessionPath))
|
|
2447
|
+
return null;
|
|
2448
|
+
try {
|
|
2449
|
+
return JSON.parse((0, fs_1.readFileSync)(sessionPath, "utf-8"));
|
|
2450
|
+
}
|
|
2451
|
+
catch {
|
|
2452
|
+
return null;
|
|
2453
|
+
}
|
|
2389
2454
|
}
|
|
2390
2455
|
/**
|
|
2391
2456
|
* Delete a saved session.
|
|
@@ -2398,6 +2463,64 @@ class CBrowser {
|
|
|
2398
2463
|
}
|
|
2399
2464
|
return false;
|
|
2400
2465
|
}
|
|
2466
|
+
/**
|
|
2467
|
+
* Delete sessions older than a given number of days.
|
|
2468
|
+
*/
|
|
2469
|
+
cleanupSessions(olderThanDays) {
|
|
2470
|
+
const cutoff = Date.now() - olderThanDays * 24 * 60 * 60 * 1000;
|
|
2471
|
+
const deleted = [];
|
|
2472
|
+
const kept = [];
|
|
2473
|
+
const files = (0, fs_1.readdirSync)(this.paths.sessionsDir);
|
|
2474
|
+
for (const file of files) {
|
|
2475
|
+
if (!file.endsWith(".json") || file === "last-session.json")
|
|
2476
|
+
continue;
|
|
2477
|
+
const filePath = (0, path_1.join)(this.paths.sessionsDir, file);
|
|
2478
|
+
const name = file.replace(".json", "");
|
|
2479
|
+
try {
|
|
2480
|
+
const data = JSON.parse((0, fs_1.readFileSync)(filePath, "utf-8"));
|
|
2481
|
+
const lastUsed = new Date(data.lastUsed).getTime();
|
|
2482
|
+
if (lastUsed < cutoff) {
|
|
2483
|
+
(0, fs_1.unlinkSync)(filePath);
|
|
2484
|
+
deleted.push(name);
|
|
2485
|
+
}
|
|
2486
|
+
else {
|
|
2487
|
+
kept.push(name);
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
catch {
|
|
2491
|
+
kept.push(name);
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2494
|
+
return { deleted, kept };
|
|
2495
|
+
}
|
|
2496
|
+
/**
|
|
2497
|
+
* Export a session to a portable JSON file.
|
|
2498
|
+
*/
|
|
2499
|
+
exportSession(name, outputPath) {
|
|
2500
|
+
const sessionPath = (0, path_1.join)(this.paths.sessionsDir, `${name}.json`);
|
|
2501
|
+
if (!(0, fs_1.existsSync)(sessionPath))
|
|
2502
|
+
return false;
|
|
2503
|
+
const data = (0, fs_1.readFileSync)(sessionPath, "utf-8");
|
|
2504
|
+
(0, fs_1.writeFileSync)(outputPath, data);
|
|
2505
|
+
return true;
|
|
2506
|
+
}
|
|
2507
|
+
/**
|
|
2508
|
+
* Import a session from a JSON file.
|
|
2509
|
+
*/
|
|
2510
|
+
importSession(inputPath, name) {
|
|
2511
|
+
if (!(0, fs_1.existsSync)(inputPath))
|
|
2512
|
+
return false;
|
|
2513
|
+
try {
|
|
2514
|
+
const data = JSON.parse((0, fs_1.readFileSync)(inputPath, "utf-8"));
|
|
2515
|
+
data.name = name;
|
|
2516
|
+
const sessionPath = (0, path_1.join)(this.paths.sessionsDir, `${name}.json`);
|
|
2517
|
+
(0, fs_1.writeFileSync)(sessionPath, JSON.stringify(data, null, 2));
|
|
2518
|
+
return true;
|
|
2519
|
+
}
|
|
2520
|
+
catch {
|
|
2521
|
+
return false;
|
|
2522
|
+
}
|
|
2523
|
+
}
|
|
2401
2524
|
// =========================================================================
|
|
2402
2525
|
// Journeys
|
|
2403
2526
|
// =========================================================================
|