@cereworker/browser 26.324.3 → 26.324.5
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/backend.d.ts +24 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +2 -0
- package/dist/backend.js.map +1 -0
- package/dist/cdp.d.ts +23 -6
- package/dist/cdp.d.ts.map +1 -1
- package/dist/cdp.js +156 -24
- package/dist/cdp.js.map +1 -1
- package/dist/extension-backend.d.ts +22 -0
- package/dist/extension-backend.d.ts.map +1 -0
- package/dist/extension-backend.js +57 -0
- package/dist/extension-backend.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/puppeteer.d.ts +24 -14
- package/dist/puppeteer.d.ts.map +1 -1
- package/dist/puppeteer.js +149 -101
- package/dist/puppeteer.js.map +1 -1
- package/dist/relay.d.ts +32 -0
- package/dist/relay.d.ts.map +1 -0
- package/dist/relay.js +139 -0
- package/dist/relay.js.map +1 -0
- package/dist/tools.d.ts +46 -17
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +109 -94
- package/dist/tools.js.map +1 -1
- package/extension/background.js +339 -0
- package/extension/icons/icon128.png +0 -0
- package/extension/icons/icon16.png +0 -0
- package/extension/icons/icon32.png +0 -0
- package/extension/icons/icon48.png +0 -0
- package/extension/manifest.json +37 -0
- package/extension/options.html +34 -0
- package/extension/options.js +53 -0
- package/package.json +7 -4
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface TabInfo {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
url: string;
|
|
5
|
+
active: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface BrowserBackend {
|
|
8
|
+
navigate(url: string): Promise<string>;
|
|
9
|
+
getPageText(): Promise<string>;
|
|
10
|
+
screenshot(path?: string): Promise<string>;
|
|
11
|
+
click(selector: string): Promise<string>;
|
|
12
|
+
type(selector: string, text: string): Promise<string>;
|
|
13
|
+
evaluate(code: string): Promise<string>;
|
|
14
|
+
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
15
|
+
getPageUrl(): Promise<string>;
|
|
16
|
+
listTabs(): Promise<TabInfo[]>;
|
|
17
|
+
switchTab(tabId: string): Promise<string>;
|
|
18
|
+
newTab(url?: string): Promise<string>;
|
|
19
|
+
closeTab(tabId?: string): Promise<string>;
|
|
20
|
+
connect(): Promise<string>;
|
|
21
|
+
disconnect(): Promise<void>;
|
|
22
|
+
isConnected(): boolean;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAE7B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAG9B,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAG1C,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC;CACxB"}
|
package/dist/backend.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":""}
|
package/dist/cdp.d.ts
CHANGED
|
@@ -1,11 +1,28 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BrowserBackend, TabInfo } from './backend.js';
|
|
2
2
|
export interface CdpConnectionOptions {
|
|
3
|
-
/** Chrome remote debugging port (default: 9222) */
|
|
4
3
|
port?: number;
|
|
5
|
-
/** Direct WebSocket endpoint URL */
|
|
6
4
|
wsEndpoint?: string;
|
|
7
5
|
}
|
|
8
|
-
export declare
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
export declare class CdpBackend implements BrowserBackend {
|
|
7
|
+
private browser;
|
|
8
|
+
private page;
|
|
9
|
+
private options;
|
|
10
|
+
constructor(options?: CdpConnectionOptions);
|
|
11
|
+
private ensureConnected;
|
|
12
|
+
navigate(url: string): Promise<string>;
|
|
13
|
+
getPageText(): Promise<string>;
|
|
14
|
+
screenshot(path?: string): Promise<string>;
|
|
15
|
+
click(selector: string): Promise<string>;
|
|
16
|
+
type(selector: string, text: string): Promise<string>;
|
|
17
|
+
evaluate(code: string): Promise<string>;
|
|
18
|
+
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
19
|
+
getPageUrl(): Promise<string>;
|
|
20
|
+
listTabs(): Promise<TabInfo[]>;
|
|
21
|
+
switchTab(tabId: string): Promise<string>;
|
|
22
|
+
newTab(url?: string): Promise<string>;
|
|
23
|
+
closeTab(tabId?: string): Promise<string>;
|
|
24
|
+
connect(): Promise<string>;
|
|
25
|
+
disconnect(): Promise<void>;
|
|
26
|
+
isConnected(): boolean;
|
|
27
|
+
}
|
|
11
28
|
//# sourceMappingURL=cdp.d.ts.map
|
package/dist/cdp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,CAAC,EAAE,oBAAoB;YAI5B,eAAe;IAuBvB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAK7B,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAW9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBzC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,WAAW,IAAI,OAAO;CAGvB"}
|
package/dist/cdp.js
CHANGED
|
@@ -1,28 +1,160 @@
|
|
|
1
1
|
import puppeteer from 'puppeteer';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
2
|
+
export class CdpBackend {
|
|
3
|
+
browser = null;
|
|
4
|
+
page = null;
|
|
5
|
+
options;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options ?? {};
|
|
8
|
+
}
|
|
9
|
+
async ensureConnected() {
|
|
10
|
+
if (this.browser && this.page)
|
|
11
|
+
return { browser: this.browser, page: this.page };
|
|
12
|
+
try {
|
|
13
|
+
let wsEndpoint = this.options.wsEndpoint;
|
|
14
|
+
if (!wsEndpoint) {
|
|
15
|
+
const port = this.options.port ?? 9222;
|
|
16
|
+
const response = await fetch(`http://localhost:${port}/json/version`);
|
|
17
|
+
const data = (await response.json());
|
|
18
|
+
wsEndpoint = data.webSocketDebuggerUrl;
|
|
19
|
+
}
|
|
20
|
+
this.browser = await puppeteer.connect({ browserWSEndpoint: wsEndpoint });
|
|
21
|
+
const pages = await this.browser.pages();
|
|
22
|
+
this.page = pages[0] ?? (await this.browser.newPage());
|
|
23
|
+
return { browser: this.browser, page: this.page };
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
27
|
+
throw new Error(`Cannot connect to Chrome via CDP (${msg}). ` +
|
|
28
|
+
'Start Chrome with --remote-debugging-port=9222, or use httpFetch/shell tools instead.');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async navigate(url) {
|
|
32
|
+
const { page } = await this.ensureConnected();
|
|
33
|
+
await page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 });
|
|
34
|
+
return `Navigated to ${page.url()} - Title: ${await page.title()}`;
|
|
35
|
+
}
|
|
36
|
+
async getPageText() {
|
|
37
|
+
const { page } = await this.ensureConnected();
|
|
38
|
+
const text = await page.evaluate(() => document.body.innerText);
|
|
39
|
+
const maxLen = 10000;
|
|
40
|
+
return text.length > maxLen ? text.slice(0, maxLen) + '\n... (truncated)' : text;
|
|
41
|
+
}
|
|
42
|
+
async screenshot(path) {
|
|
43
|
+
const { page } = await this.ensureConnected();
|
|
44
|
+
const filePath = path ?? `/tmp/cereworker-screenshot-${Date.now()}.png`;
|
|
45
|
+
await page.screenshot({ path: filePath, fullPage: false });
|
|
46
|
+
return `Screenshot saved to ${filePath}`;
|
|
47
|
+
}
|
|
48
|
+
async click(selector) {
|
|
49
|
+
const { page } = await this.ensureConnected();
|
|
50
|
+
try {
|
|
51
|
+
await page.click(selector);
|
|
52
|
+
return `Clicked: ${selector}`;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return `Element not found: ${selector}`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async type(selector, text) {
|
|
59
|
+
const { page } = await this.ensureConnected();
|
|
60
|
+
try {
|
|
61
|
+
await page.type(selector, text);
|
|
62
|
+
return `Typed into: ${selector}`;
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return `Element not found: ${selector}`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async evaluate(code) {
|
|
69
|
+
const { page } = await this.ensureConnected();
|
|
70
|
+
try {
|
|
71
|
+
const result = await page.evaluate(code);
|
|
72
|
+
return String(result ?? '(no result)');
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
return `Error: ${err instanceof Error ? err.message : String(err)}`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async waitForSelector(selector, timeoutMs = 5000) {
|
|
79
|
+
const { page } = await this.ensureConnected();
|
|
80
|
+
try {
|
|
81
|
+
await page.waitForSelector(selector, { timeout: timeoutMs });
|
|
82
|
+
return `Found: ${selector}`;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return `Timeout waiting for: ${selector}`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async getPageUrl() {
|
|
89
|
+
const { page } = await this.ensureConnected();
|
|
90
|
+
return page.url();
|
|
91
|
+
}
|
|
92
|
+
async listTabs() {
|
|
93
|
+
const { browser, page } = await this.ensureConnected();
|
|
94
|
+
const pages = await browser.pages();
|
|
95
|
+
return pages.map((p, i) => ({
|
|
96
|
+
id: String(i),
|
|
97
|
+
title: '',
|
|
98
|
+
url: p.url(),
|
|
99
|
+
active: p === page,
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
async switchTab(tabId) {
|
|
103
|
+
const { browser } = await this.ensureConnected();
|
|
104
|
+
const pages = await browser.pages();
|
|
105
|
+
const idx = parseInt(tabId, 10);
|
|
106
|
+
if (isNaN(idx) || idx < 0 || idx >= pages.length) {
|
|
107
|
+
return `Invalid tab id: ${tabId}. Use browserListTabs to see available tabs.`;
|
|
108
|
+
}
|
|
109
|
+
this.page = pages[idx];
|
|
110
|
+
await this.page.bringToFront();
|
|
111
|
+
return `Switched to tab ${idx}: ${this.page.url()}`;
|
|
112
|
+
}
|
|
113
|
+
async newTab(url) {
|
|
114
|
+
const { browser } = await this.ensureConnected();
|
|
115
|
+
const page = await browser.newPage();
|
|
116
|
+
if (url) {
|
|
117
|
+
await page.goto(url, { waitUntil: 'networkidle2', timeout: 30000 });
|
|
118
|
+
}
|
|
119
|
+
this.page = page;
|
|
120
|
+
const pages = await browser.pages();
|
|
121
|
+
return `Opened new tab (${pages.length} total)${url ? `: ${page.url()}` : ''}`;
|
|
122
|
+
}
|
|
123
|
+
async closeTab(tabId) {
|
|
124
|
+
const { browser } = await this.ensureConnected();
|
|
125
|
+
const pages = await browser.pages();
|
|
126
|
+
if (pages.length <= 1)
|
|
127
|
+
return 'Cannot close the last tab.';
|
|
128
|
+
if (tabId !== undefined) {
|
|
129
|
+
const idx = parseInt(tabId, 10);
|
|
130
|
+
if (isNaN(idx) || idx < 0 || idx >= pages.length)
|
|
131
|
+
return `Invalid tab id: ${tabId}`;
|
|
132
|
+
const wasActive = pages[idx] === this.page;
|
|
133
|
+
await pages[idx].close();
|
|
134
|
+
if (wasActive) {
|
|
135
|
+
const remaining = await browser.pages();
|
|
136
|
+
this.page = remaining[remaining.length - 1];
|
|
137
|
+
}
|
|
138
|
+
return `Closed tab ${idx}`;
|
|
139
|
+
}
|
|
140
|
+
await this.page.close();
|
|
141
|
+
const remaining = await browser.pages();
|
|
142
|
+
this.page = remaining[remaining.length - 1];
|
|
143
|
+
return `Closed current tab. Now on: ${this.page.url()}`;
|
|
144
|
+
}
|
|
145
|
+
async connect() {
|
|
146
|
+
const { page } = await this.ensureConnected();
|
|
147
|
+
return `Connected to Chrome via CDP. Current page: ${page.url()}`;
|
|
148
|
+
}
|
|
149
|
+
async disconnect() {
|
|
150
|
+
if (this.browser) {
|
|
151
|
+
this.browser.disconnect();
|
|
152
|
+
this.browser = null;
|
|
153
|
+
this.page = null;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
isConnected() {
|
|
157
|
+
return this.browser !== null && this.browser.connected;
|
|
23
158
|
}
|
|
24
|
-
}
|
|
25
|
-
export function getCdpSession() {
|
|
26
|
-
return cdpSession;
|
|
27
159
|
}
|
|
28
160
|
//# sourceMappingURL=cdp.js.map
|
package/dist/cdp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"cdp.js","sourceRoot":"","sources":["../src/cdp.ts"],"names":[],"mappings":"AAAA,OAAO,SAAsC,MAAM,WAAW,CAAC;AAQ/D,MAAM,OAAO,UAAU;IACb,OAAO,GAAmB,IAAI,CAAC;IAC/B,IAAI,GAAgB,IAAI,CAAC;IACzB,OAAO,CAAuB;IAEtC,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;IAC/B,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACjF,IAAI,CAAC;YACH,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;YACzC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;gBACvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,eAAe,CAAC,CAAC;gBACtE,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqC,CAAC;gBACzE,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACpD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,qCAAqC,GAAG,KAAK;gBAC7C,uFAAuF,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,OAAO,gBAAgB,IAAI,CAAC,GAAG,EAAE,aAAa,MAAM,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC;QACrB,OAAO,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAa;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,IAAI,8BAA8B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;QACxE,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3D,OAAO,uBAAuB,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO,YAAY,QAAQ,EAAE,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,sBAAsB,QAAQ,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,IAAY;QACvC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,eAAe,QAAQ,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,sBAAsB,QAAQ,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,UAAU,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACtE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,SAAS,GAAG,IAAI;QACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7D,OAAO,UAAU,QAAQ,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,wBAAwB,QAAQ,EAAE,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1B,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;YACb,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;YACZ,MAAM,EAAE,CAAC,KAAK,IAAI;SACnB,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAChC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjD,OAAO,mBAAmB,KAAK,8CAA8C,CAAC;QAChF,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,OAAO,mBAAmB,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY;QACvB,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,mBAAmB,KAAK,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc;QAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,4BAA4B,CAAC;QAE3D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM;gBAAE,OAAO,mBAAmB,KAAK,EAAE,CAAC;YACpF,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC;YAC3C,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBACxC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,cAAc,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,CAAC,IAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5C,OAAO,+BAA+B,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,OAAO,8CAA8C,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;IACzD,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { BrowserBackend, TabInfo } from './backend.js';
|
|
2
|
+
import type { BrowserRelay } from './relay.js';
|
|
3
|
+
export declare class ExtensionBackend implements BrowserBackend {
|
|
4
|
+
private relay;
|
|
5
|
+
constructor(relay: BrowserRelay);
|
|
6
|
+
navigate(url: string): Promise<string>;
|
|
7
|
+
getPageText(): Promise<string>;
|
|
8
|
+
screenshot(path?: string): Promise<string>;
|
|
9
|
+
click(selector: string): Promise<string>;
|
|
10
|
+
type(selector: string, text: string): Promise<string>;
|
|
11
|
+
evaluate(code: string): Promise<string>;
|
|
12
|
+
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
13
|
+
getPageUrl(): Promise<string>;
|
|
14
|
+
listTabs(): Promise<TabInfo[]>;
|
|
15
|
+
switchTab(tabId: string): Promise<string>;
|
|
16
|
+
newTab(url?: string): Promise<string>;
|
|
17
|
+
closeTab(tabId?: string): Promise<string>;
|
|
18
|
+
connect(): Promise<string>;
|
|
19
|
+
disconnect(): Promise<void>;
|
|
20
|
+
isConnected(): boolean;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=extension-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-backend.d.ts","sourceRoot":"","sources":["../src/extension-backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,KAAK,CAAe;gBAEhB,KAAK,EAAE,YAAY;IAIzB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAK9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAU1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,WAAW,IAAI,OAAO;CAGvB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export class ExtensionBackend {
|
|
2
|
+
relay;
|
|
3
|
+
constructor(relay) {
|
|
4
|
+
this.relay = relay;
|
|
5
|
+
}
|
|
6
|
+
async navigate(url) {
|
|
7
|
+
return this.relay.send('navigate', { url });
|
|
8
|
+
}
|
|
9
|
+
async getPageText() {
|
|
10
|
+
return this.relay.send('getPageText');
|
|
11
|
+
}
|
|
12
|
+
async screenshot(path) {
|
|
13
|
+
return this.relay.send('screenshot', { path });
|
|
14
|
+
}
|
|
15
|
+
async click(selector) {
|
|
16
|
+
return this.relay.send('click', { selector });
|
|
17
|
+
}
|
|
18
|
+
async type(selector, text) {
|
|
19
|
+
return this.relay.send('type', { selector, text });
|
|
20
|
+
}
|
|
21
|
+
async evaluate(code) {
|
|
22
|
+
return this.relay.send('evaluate', { code });
|
|
23
|
+
}
|
|
24
|
+
async waitForSelector(selector, timeoutMs = 5000) {
|
|
25
|
+
return this.relay.send('waitForSelector', { selector, timeout: timeoutMs }, timeoutMs + 5000);
|
|
26
|
+
}
|
|
27
|
+
async getPageUrl() {
|
|
28
|
+
return this.relay.send('getPageUrl');
|
|
29
|
+
}
|
|
30
|
+
async listTabs() {
|
|
31
|
+
const result = await this.relay.send('listTabs');
|
|
32
|
+
return JSON.parse(result);
|
|
33
|
+
}
|
|
34
|
+
async switchTab(tabId) {
|
|
35
|
+
return this.relay.send('switchTab', { tabId });
|
|
36
|
+
}
|
|
37
|
+
async newTab(url) {
|
|
38
|
+
return this.relay.send('newTab', { url });
|
|
39
|
+
}
|
|
40
|
+
async closeTab(tabId) {
|
|
41
|
+
return this.relay.send('closeTab', { tabId });
|
|
42
|
+
}
|
|
43
|
+
async connect() {
|
|
44
|
+
if (!this.relay.isExtensionConnected()) {
|
|
45
|
+
throw new Error('Chrome extension not connected. Load the CereWorker extension in Chrome, ' +
|
|
46
|
+
'configure the relay port and token in extension options, then click the extension icon.');
|
|
47
|
+
}
|
|
48
|
+
return 'Connected to Chrome via extension';
|
|
49
|
+
}
|
|
50
|
+
async disconnect() {
|
|
51
|
+
// Extension stays connected — nothing to tear down from backend side
|
|
52
|
+
}
|
|
53
|
+
isConnected() {
|
|
54
|
+
return this.relay.isExtensionConnected();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=extension-backend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension-backend.js","sourceRoot":"","sources":["../src/extension-backend.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,gBAAgB;IACnB,KAAK,CAAe;IAE5B,YAAY,KAAmB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAa;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAgB,EAAE,IAAY;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,SAAS,GAAG,IAAI;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAc,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,2EAA2E;gBAC3E,yFAAyF,CAC1F,CAAC;QACJ,CAAC;QACD,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,UAAU;QACd,qEAAqE;IACvE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;IAC3C,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
export type { BrowserBackend, TabInfo } from './backend.js';
|
|
2
|
+
export { PuppeteerBackend, type BrowserSession } from './puppeteer.js';
|
|
3
|
+
export { CdpBackend, type CdpConnectionOptions } from './cdp.js';
|
|
4
|
+
export { createBrowserTools, type BrowserTools, type BrowserToolName } from './tools.js';
|
|
5
|
+
export { BrowserRelay, type RelayConfig, type RelayCommand, type RelayResult } from './relay.js';
|
|
6
|
+
export { ExtensionBackend } from './extension-backend.js';
|
|
4
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
export { PuppeteerBackend } from './puppeteer.js';
|
|
2
|
+
export { CdpBackend } from './cdp.js';
|
|
3
|
+
export { createBrowserTools } from './tools.js';
|
|
4
|
+
export { BrowserRelay } from './relay.js';
|
|
5
|
+
export { ExtensionBackend } from './extension-backend.js';
|
|
4
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAuB,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,UAAU,EAA6B,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAA2C,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,YAAY,EAAyD,MAAM,YAAY,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/puppeteer.d.ts
CHANGED
|
@@ -1,20 +1,30 @@
|
|
|
1
1
|
import { type Browser, type Page } from 'puppeteer';
|
|
2
|
-
import {
|
|
2
|
+
import type { BrowserBackend, TabInfo } from './backend.js';
|
|
3
3
|
export interface BrowserSession {
|
|
4
4
|
browser: Browser;
|
|
5
5
|
page: Page;
|
|
6
6
|
}
|
|
7
|
-
export declare
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
export declare class PuppeteerBackend implements BrowserBackend {
|
|
8
|
+
private session;
|
|
9
|
+
private headless;
|
|
10
|
+
constructor(options?: {
|
|
11
|
+
headless?: boolean;
|
|
12
|
+
});
|
|
13
|
+
private getSession;
|
|
14
|
+
navigate(url: string): Promise<string>;
|
|
15
|
+
getPageText(): Promise<string>;
|
|
16
|
+
screenshot(path?: string): Promise<string>;
|
|
17
|
+
click(selector: string): Promise<string>;
|
|
18
|
+
type(selector: string, text: string): Promise<string>;
|
|
19
|
+
evaluate(code: string): Promise<string>;
|
|
20
|
+
waitForSelector(selector: string, timeoutMs?: number): Promise<string>;
|
|
21
|
+
getPageUrl(): Promise<string>;
|
|
22
|
+
listTabs(): Promise<TabInfo[]>;
|
|
23
|
+
switchTab(tabId: string): Promise<string>;
|
|
24
|
+
newTab(url?: string): Promise<string>;
|
|
25
|
+
closeTab(tabId?: string): Promise<string>;
|
|
26
|
+
connect(): Promise<string>;
|
|
27
|
+
disconnect(): Promise<void>;
|
|
28
|
+
isConnected(): boolean;
|
|
29
|
+
}
|
|
20
30
|
//# sourceMappingURL=puppeteer.d.ts.map
|
package/dist/puppeteer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"puppeteer.d.ts","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"puppeteer.d.ts","sourceRoot":"","sources":["../src/puppeteer.ts"],"names":[],"mappings":"AAAA,OAAkB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,QAAQ,CAAU;gBAEd,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;YAI9B,UAAU;IAoBlB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMtC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAO9B,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO1C,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUvC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAK7B,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAW9B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAazC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAarC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,WAAW,IAAI,OAAO;CAGvB"}
|