@monoes/monomindcli 1.10.29 → 1.10.31

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.
Files changed (111) hide show
  1. package/.claude/helpers/auto-memory-hook.mjs +39 -4
  2. package/.claude/helpers/handlers/adr-draft-handler.cjs +64 -0
  3. package/.claude/helpers/handlers/agent-start-handler.cjs +99 -0
  4. package/.claude/helpers/handlers/edit-handler.cjs +145 -0
  5. package/.claude/helpers/handlers/graph-status-handler.cjs +38 -0
  6. package/.claude/helpers/handlers/route-handler.cjs +393 -0
  7. package/.claude/helpers/handlers/session-handler.cjs +167 -0
  8. package/.claude/helpers/handlers/session-restore-handler.cjs +348 -0
  9. package/.claude/helpers/handlers/task-handler.cjs +329 -0
  10. package/.claude/helpers/hook-handler.cjs +120 -2431
  11. package/.claude/helpers/intelligence.cjs +21 -2
  12. package/.claude/helpers/learning-service.mjs +166 -8
  13. package/.claude/helpers/memory-palace.cjs +72 -12
  14. package/.claude/helpers/router.cjs +79 -5
  15. package/.claude/helpers/statusline.cjs +193 -399
  16. package/.claude/helpers/utils/micro-agents.cjs +338 -0
  17. package/.claude/helpers/utils/monograph.cjs +349 -0
  18. package/.claude/helpers/utils/telemetry.cjs +144 -0
  19. package/.claude/skills/agent-browser-testing/SKILL.md +3 -2
  20. package/.claude/skills/monomind/browse-agentcore.md +116 -0
  21. package/.claude/skills/monomind/browse-electron.md +189 -0
  22. package/.claude/skills/monomind/browse-qa.md +229 -0
  23. package/.claude/skills/monomind/browse-references/authentication.md +162 -0
  24. package/.claude/skills/monomind/browse-references/trust-boundaries.md +41 -0
  25. package/.claude/skills/monomind/browse-references/video-recording.md +84 -0
  26. package/.claude/skills/monomind/browse-slack.md +189 -0
  27. package/.claude/skills/monomind/browse-vercel.md +240 -0
  28. package/.claude/skills/monomind/browse.md +724 -0
  29. package/dist/src/browser/actions.d.ts +28 -0
  30. package/dist/src/browser/actions.d.ts.map +1 -0
  31. package/dist/src/browser/actions.js +292 -0
  32. package/dist/src/browser/actions.js.map +1 -0
  33. package/dist/src/browser/batch.d.ts +13 -0
  34. package/dist/src/browser/batch.d.ts.map +1 -0
  35. package/dist/src/browser/batch.js +11 -0
  36. package/dist/src/browser/batch.js.map +1 -0
  37. package/dist/src/browser/browser.d.ts +14 -0
  38. package/dist/src/browser/browser.d.ts.map +1 -0
  39. package/dist/src/browser/browser.js +198 -0
  40. package/dist/src/browser/browser.js.map +1 -0
  41. package/dist/src/browser/cdp.d.ts +17 -0
  42. package/dist/src/browser/cdp.d.ts.map +1 -0
  43. package/dist/src/browser/cdp.js +106 -0
  44. package/dist/src/browser/cdp.js.map +1 -0
  45. package/dist/src/browser/console-log.d.ts +22 -0
  46. package/dist/src/browser/console-log.d.ts.map +1 -0
  47. package/dist/src/browser/console-log.js +55 -0
  48. package/dist/src/browser/console-log.js.map +1 -0
  49. package/dist/src/browser/dialog.d.ts +11 -0
  50. package/dist/src/browser/dialog.d.ts.map +1 -0
  51. package/dist/src/browser/dialog.js +36 -0
  52. package/dist/src/browser/dialog.js.map +1 -0
  53. package/dist/src/browser/emulation.d.ts +15 -0
  54. package/dist/src/browser/emulation.d.ts.map +1 -0
  55. package/dist/src/browser/emulation.js +62 -0
  56. package/dist/src/browser/emulation.js.map +1 -0
  57. package/dist/src/browser/find.d.ts +21 -0
  58. package/dist/src/browser/find.d.ts.map +1 -0
  59. package/dist/src/browser/find.js +118 -0
  60. package/dist/src/browser/find.js.map +1 -0
  61. package/dist/src/browser/index.d.ts +18 -0
  62. package/dist/src/browser/index.d.ts.map +1 -0
  63. package/dist/src/browser/index.js +18 -0
  64. package/dist/src/browser/index.js.map +1 -0
  65. package/dist/src/browser/network.d.ts +11 -0
  66. package/dist/src/browser/network.d.ts.map +1 -0
  67. package/dist/src/browser/network.js +81 -0
  68. package/dist/src/browser/network.js.map +1 -0
  69. package/dist/src/browser/pdf.d.ts +15 -0
  70. package/dist/src/browser/pdf.d.ts.map +1 -0
  71. package/dist/src/browser/pdf.js +27 -0
  72. package/dist/src/browser/pdf.js.map +1 -0
  73. package/dist/src/browser/screenshot.d.ts +15 -0
  74. package/dist/src/browser/screenshot.d.ts.map +1 -0
  75. package/dist/src/browser/screenshot.js +36 -0
  76. package/dist/src/browser/screenshot.js.map +1 -0
  77. package/dist/src/browser/session.d.ts +8 -0
  78. package/dist/src/browser/session.d.ts.map +1 -0
  79. package/dist/src/browser/session.js +50 -0
  80. package/dist/src/browser/session.js.map +1 -0
  81. package/dist/src/browser/snapshot.d.ts +12 -0
  82. package/dist/src/browser/snapshot.d.ts.map +1 -0
  83. package/dist/src/browser/snapshot.js +147 -0
  84. package/dist/src/browser/snapshot.js.map +1 -0
  85. package/dist/src/browser/storage.d.ts +11 -0
  86. package/dist/src/browser/storage.d.ts.map +1 -0
  87. package/dist/src/browser/storage.js +43 -0
  88. package/dist/src/browser/storage.js.map +1 -0
  89. package/dist/src/browser/tabs.d.ts +8 -0
  90. package/dist/src/browser/tabs.d.ts.map +1 -0
  91. package/dist/src/browser/tabs.js +25 -0
  92. package/dist/src/browser/tabs.js.map +1 -0
  93. package/dist/src/browser/types.d.ts +109 -0
  94. package/dist/src/browser/types.d.ts.map +1 -0
  95. package/dist/src/browser/types.js +16 -0
  96. package/dist/src/browser/types.js.map +1 -0
  97. package/dist/src/browser/wait.d.ts +4 -0
  98. package/dist/src/browser/wait.d.ts.map +1 -0
  99. package/dist/src/browser/wait.js +122 -0
  100. package/dist/src/browser/wait.js.map +1 -0
  101. package/dist/src/commands/browse.d.ts +8 -0
  102. package/dist/src/commands/browse.d.ts.map +1 -0
  103. package/dist/src/commands/browse.js +1494 -0
  104. package/dist/src/commands/browse.js.map +1 -0
  105. package/dist/src/commands/index.d.ts.map +1 -1
  106. package/dist/src/commands/index.js +2 -0
  107. package/dist/src/commands/index.js.map +1 -1
  108. package/dist/src/ui/dashboard-v2.html +1857 -0
  109. package/dist/src/ui/server.mjs +71 -1
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +2 -1
@@ -0,0 +1,106 @@
1
+ import { WebSocket } from 'ws';
2
+ export class CdpClient {
3
+ ws = null;
4
+ pendingCommands = new Map();
5
+ eventListeners = new Map();
6
+ nextId = 1;
7
+ connected = false;
8
+ async connect(wsUrl) {
9
+ return new Promise((resolve, reject) => {
10
+ this.ws = new WebSocket(wsUrl);
11
+ this.ws.on('open', () => {
12
+ this.connected = true;
13
+ resolve();
14
+ });
15
+ this.ws.on('error', (err) => {
16
+ if (!this.connected)
17
+ reject(err);
18
+ });
19
+ this.ws.on('close', () => {
20
+ this.connected = false;
21
+ for (const { reject: r } of this.pendingCommands.values()) {
22
+ r(new Error('CDP connection closed'));
23
+ }
24
+ this.pendingCommands.clear();
25
+ });
26
+ this.ws.on('message', (data) => {
27
+ try {
28
+ const msg = JSON.parse(data.toString());
29
+ if (msg.id !== undefined && this.pendingCommands.has(msg.id)) {
30
+ const handler = this.pendingCommands.get(msg.id);
31
+ this.pendingCommands.delete(msg.id);
32
+ if (msg.error) {
33
+ handler.reject(new Error(`CDP error ${msg.error.code}: ${msg.error.message}`));
34
+ }
35
+ else {
36
+ handler.resolve(msg);
37
+ }
38
+ }
39
+ else if (msg.method) {
40
+ const listeners = this.eventListeners.get(msg.method);
41
+ if (listeners) {
42
+ for (const fn of listeners)
43
+ fn(msg.params ?? {}, msg.sessionId);
44
+ }
45
+ }
46
+ }
47
+ catch {
48
+ // ignore malformed messages
49
+ }
50
+ });
51
+ });
52
+ }
53
+ send(method, params, sessionId) {
54
+ return new Promise((resolve, reject) => {
55
+ if (!this.ws || !this.connected) {
56
+ reject(new Error('CDP not connected'));
57
+ return;
58
+ }
59
+ const id = this.nextId++;
60
+ const cmd = { id, method, params };
61
+ if (sessionId)
62
+ cmd.sessionId = sessionId;
63
+ this.pendingCommands.set(id, {
64
+ resolve: (r) => resolve((r.result ?? {})),
65
+ reject,
66
+ });
67
+ this.ws.send(JSON.stringify(cmd));
68
+ });
69
+ }
70
+ on(event, fn) {
71
+ if (!this.eventListeners.has(event)) {
72
+ this.eventListeners.set(event, new Set());
73
+ }
74
+ this.eventListeners.get(event).add(fn);
75
+ return () => this.eventListeners.get(event)?.delete(fn);
76
+ }
77
+ once(event) {
78
+ return new Promise((resolve) => {
79
+ const off = this.on(event, (params) => {
80
+ off();
81
+ resolve(params);
82
+ });
83
+ });
84
+ }
85
+ close() {
86
+ this.ws?.close();
87
+ this.ws = null;
88
+ this.connected = false;
89
+ }
90
+ isConnected() {
91
+ return this.connected;
92
+ }
93
+ }
94
+ export async function fetchTargets(port) {
95
+ const res = await fetch(`http://127.0.0.1:${port}/json/list`);
96
+ if (!res.ok)
97
+ throw new Error(`Failed to fetch targets: ${res.statusText}`);
98
+ return res.json();
99
+ }
100
+ export async function fetchNewTarget(port, url) {
101
+ const res = await fetch(`http://127.0.0.1:${port}/json/new?${encodeURIComponent(url)}`);
102
+ if (!res.ok)
103
+ throw new Error(`Failed to create target: ${res.statusText}`);
104
+ return res.json();
105
+ }
106
+ //# sourceMappingURL=cdp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../../src/browser/cdp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { CdpClient } from './cdp.js';
2
+ export interface ConsoleMessage {
3
+ type: 'log' | 'error' | 'warn' | 'info' | 'debug' | 'verbose';
4
+ text: string;
5
+ timestamp: number;
6
+ url?: string;
7
+ lineNumber?: number;
8
+ }
9
+ export interface PageError {
10
+ text: string;
11
+ url?: string;
12
+ lineNumber?: number;
13
+ columnNumber?: number;
14
+ timestamp: number;
15
+ }
16
+ export declare function setupConsoleCapture(client: CdpClient, sessionId: string): void;
17
+ export declare function enableConsoleCapture(client: CdpClient, sessionId: string): Promise<void>;
18
+ export declare function getConsoleMessages(): ConsoleMessage[];
19
+ export declare function clearConsoleMessages(): void;
20
+ export declare function getPageErrors(): PageError[];
21
+ export declare function clearPageErrors(): void;
22
+ //# sourceMappingURL=console-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-log.d.ts","sourceRoot":"","sources":["../../../src/browser/console-log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA0C9E;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE9F;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,aAAa,IAAI,SAAS,EAAE,CAE3C;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -0,0 +1,55 @@
1
+ let consoleMessages = [];
2
+ let pageErrors = [];
3
+ export function setupConsoleCapture(client, sessionId) {
4
+ client.on('Runtime.consoleAPICalled', (params, sid) => {
5
+ if (sid !== sessionId)
6
+ return;
7
+ const args = params.args ?? [];
8
+ const text = args.map((a) => a.description ?? String(a.value ?? '')).join(' ');
9
+ consoleMessages.push({
10
+ type: params.type ?? 'log',
11
+ text,
12
+ timestamp: Date.now(),
13
+ });
14
+ });
15
+ client.on('Log.entryAdded', (params, sid) => {
16
+ if (sid !== sessionId)
17
+ return;
18
+ const entry = params.entry;
19
+ consoleMessages.push({
20
+ type: entry.level ?? 'log',
21
+ text: entry.text ?? '',
22
+ timestamp: Date.now(),
23
+ url: entry.url,
24
+ lineNumber: entry.lineNumber,
25
+ });
26
+ });
27
+ client.on('Runtime.exceptionThrown', (params, sid) => {
28
+ if (sid !== sessionId)
29
+ return;
30
+ const detail = params.exceptionDetails;
31
+ pageErrors.push({
32
+ text: detail.text ?? 'Unknown error',
33
+ url: detail.url,
34
+ lineNumber: detail.lineNumber,
35
+ columnNumber: detail.columnNumber,
36
+ timestamp: Date.now(),
37
+ });
38
+ });
39
+ }
40
+ export async function enableConsoleCapture(client, sessionId) {
41
+ await client.send('Log.enable', {}, sessionId);
42
+ }
43
+ export function getConsoleMessages() {
44
+ return [...consoleMessages];
45
+ }
46
+ export function clearConsoleMessages() {
47
+ consoleMessages = [];
48
+ }
49
+ export function getPageErrors() {
50
+ return [...pageErrors];
51
+ }
52
+ export function clearPageErrors() {
53
+ pageErrors = [];
54
+ }
55
+ //# sourceMappingURL=console-log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console-log.js","sourceRoot":"","sources":["../../../src/browser/console-log.ts"],"names":[],"mappings":"AAkBA,IAAI,eAAe,GAAqB,EAAE,CAAC;AAC3C,IAAI,UAAU,GAAgB,EAAE,CAAC;AAEjC,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,SAAiB;IACtE,MAAM,CAAC,EAAE,CAAC,0BAA0B,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACpD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9B,MAAM,IAAI,GAAI,MAAM,CAAC,IAAyD,IAAI,EAAE,CAAC;QACrF,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/E,eAAe,CAAC,IAAI,CAAC;YACnB,IAAI,EAAG,MAAM,CAAC,IAA+B,IAAI,KAAK;YACtD,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC1C,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAA6E,CAAC;QACnG,eAAe,CAAC,IAAI,CAAC;YACnB,IAAI,EAAG,KAAK,CAAC,KAAgC,IAAI,KAAK;YACtD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;YACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QACnD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,gBAKrB,CAAC;QACF,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,eAAe;YACpC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAiB,EAAE,SAAiB;IAC7E,MAAM,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,eAAe,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,UAAU,GAAG,EAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CdpClient } from './cdp.js';
2
+ export interface DialogInfo {
3
+ type: 'alert' | 'confirm' | 'prompt' | 'beforeunload';
4
+ message: string;
5
+ defaultPrompt?: string;
6
+ }
7
+ export declare function setupDialogAutoHandling(client: CdpClient, sessionId: string, autoAccept?: boolean): void;
8
+ export declare function acceptDialog(client: CdpClient, sessionId: string, text?: string): Promise<void>;
9
+ export declare function dismissDialog(client: CdpClient, sessionId: string): Promise<void>;
10
+ export declare function getDialogStatus(): DialogInfo | null;
11
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/browser/dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAC;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,IAAI,CAqBrG;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrG;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvF;AAED,wBAAgB,eAAe,IAAI,UAAU,GAAG,IAAI,CAEnD"}
@@ -0,0 +1,36 @@
1
+ let pendingDialog = null;
2
+ export function setupDialogAutoHandling(client, sessionId, autoAccept = true) {
3
+ client.on('Page.javascriptDialogOpening', async (params, sid) => {
4
+ if (sid !== sessionId)
5
+ return;
6
+ const info = {
7
+ type: params.type,
8
+ message: params.message,
9
+ defaultPrompt: params.defaultPrompt,
10
+ };
11
+ pendingDialog = info;
12
+ if (autoAccept && (info.type === 'alert' || info.type === 'beforeunload')) {
13
+ await client.send('Page.handleJavaScriptDialog', { accept: true }, sessionId);
14
+ pendingDialog = null;
15
+ }
16
+ });
17
+ client.on('Page.javascriptDialogClosed', (_, sid) => {
18
+ if (sid === sessionId)
19
+ pendingDialog = null;
20
+ });
21
+ }
22
+ export async function acceptDialog(client, sessionId, text) {
23
+ await client.send('Page.handleJavaScriptDialog', {
24
+ accept: true,
25
+ promptText: text,
26
+ }, sessionId);
27
+ pendingDialog = null;
28
+ }
29
+ export async function dismissDialog(client, sessionId) {
30
+ await client.send('Page.handleJavaScriptDialog', { accept: false }, sessionId);
31
+ pendingDialog = null;
32
+ }
33
+ export function getDialogStatus() {
34
+ return pendingDialog;
35
+ }
36
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/browser/dialog.ts"],"names":[],"mappings":"AAQA,IAAI,aAAa,GAAsB,IAAI,CAAC;AAE5C,MAAM,UAAU,uBAAuB,CAAC,MAAiB,EAAE,SAAiB,EAAE,UAAU,GAAG,IAAI;IAC7F,MAAM,CAAC,EAAE,CAAC,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAC9D,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO;QAE9B,MAAM,IAAI,GAAe;YACvB,IAAI,EAAE,MAAM,CAAC,IAA0B;YACvC,OAAO,EAAE,MAAM,CAAC,OAAiB;YACjC,aAAa,EAAE,MAAM,CAAC,aAAmC;SAC1D,CAAC;QAEF,aAAa,GAAG,IAAI,CAAC;QAErB,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,CAAC;YAC1E,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9E,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,6BAA6B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,aAAa,GAAG,IAAI,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAiB,EAAE,SAAiB,EAAE,IAAa;IACpF,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;QAC/C,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,IAAI;KACjB,EAAE,SAAS,CAAC,CAAC;IACd,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAiB,EAAE,SAAiB;IACtE,MAAM,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAC/E,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { CdpClient } from './cdp.js';
2
+ export interface DeviceProfile {
3
+ width: number;
4
+ height: number;
5
+ deviceScaleFactor: number;
6
+ mobile: boolean;
7
+ userAgent: string;
8
+ }
9
+ export declare function emulateDevice(client: CdpClient, sessionId: string, deviceName: string): Promise<void>;
10
+ export declare function setGeolocation(client: CdpClient, sessionId: string, latitude: number, longitude: number, accuracy?: number): Promise<void>;
11
+ export declare function setOfflineMode(client: CdpClient, sessionId: string, offline: boolean): Promise<void>;
12
+ export declare function setColorScheme(client: CdpClient, sessionId: string, scheme: 'dark' | 'light' | 'no-preference'): Promise<void>;
13
+ export declare function setBasicAuth(client: CdpClient, sessionId: string, username: string, password: string): Promise<void>;
14
+ export declare function listDevices(): string[];
15
+ //# sourceMappingURL=emulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulation.d.ts","sourceRoot":"","sources":["../../../src/browser/emulation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAyBD,wBAAsB,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe3G;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,SAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1G;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,eAAe,GACzC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAgB,WAAW,IAAI,MAAM,EAAE,CAEtC"}
@@ -0,0 +1,62 @@
1
+ const DEVICES = {
2
+ 'iPhone 14': {
3
+ width: 390, height: 844, deviceScaleFactor: 3, mobile: true,
4
+ userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1',
5
+ },
6
+ 'iPhone SE': {
7
+ width: 375, height: 667, deviceScaleFactor: 2, mobile: true,
8
+ userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1',
9
+ },
10
+ 'iPad': {
11
+ width: 768, height: 1024, deviceScaleFactor: 2, mobile: true,
12
+ userAgent: 'Mozilla/5.0 (iPad; CPU OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1',
13
+ },
14
+ 'Galaxy S21': {
15
+ width: 360, height: 800, deviceScaleFactor: 3, mobile: true,
16
+ userAgent: 'Mozilla/5.0 (Linux; Android 11; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Mobile Safari/537.36',
17
+ },
18
+ 'Pixel 5': {
19
+ width: 393, height: 851, deviceScaleFactor: 2.75, mobile: true,
20
+ userAgent: 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Mobile Safari/537.36',
21
+ },
22
+ };
23
+ export async function emulateDevice(client, sessionId, deviceName) {
24
+ const device = DEVICES[deviceName];
25
+ if (!device) {
26
+ throw new Error(`Unknown device: "${deviceName}". Available: ${Object.keys(DEVICES).join(', ')}`);
27
+ }
28
+ await client.send('Emulation.setDeviceMetricsOverride', {
29
+ width: device.width,
30
+ height: device.height,
31
+ deviceScaleFactor: device.deviceScaleFactor,
32
+ mobile: device.mobile,
33
+ }, sessionId);
34
+ await client.send('Emulation.setUserAgentOverride', { userAgent: device.userAgent }, sessionId);
35
+ await client.send('Emulation.setTouchEmulationEnabled', { enabled: device.mobile }, sessionId);
36
+ }
37
+ export async function setGeolocation(client, sessionId, latitude, longitude, accuracy = 100) {
38
+ await client.send('Emulation.setGeolocationOverride', { latitude, longitude, accuracy }, sessionId);
39
+ }
40
+ export async function setOfflineMode(client, sessionId, offline) {
41
+ await client.send('Network.emulateNetworkConditions', {
42
+ offline,
43
+ latency: 0,
44
+ downloadThroughput: -1,
45
+ uploadThroughput: -1,
46
+ }, sessionId);
47
+ }
48
+ export async function setColorScheme(client, sessionId, scheme) {
49
+ await client.send('Emulation.setEmulatedMedia', {
50
+ features: [{ name: 'prefers-color-scheme', value: scheme }],
51
+ }, sessionId);
52
+ }
53
+ export async function setBasicAuth(client, sessionId, username, password) {
54
+ const encoded = Buffer.from(`${username}:${password}`).toString('base64');
55
+ await client.send('Network.setExtraHTTPHeaders', {
56
+ headers: { Authorization: `Basic ${encoded}` },
57
+ }, sessionId);
58
+ }
59
+ export function listDevices() {
60
+ return Object.keys(DEVICES);
61
+ }
62
+ //# sourceMappingURL=emulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulation.js","sourceRoot":"","sources":["../../../src/browser/emulation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CdpClient } from './cdp.js';
2
+ import type { ElementRef } from './types.js';
3
+ export type FindAction = 'click' | 'fill' | 'type' | 'hover' | 'focus' | 'check' | 'uncheck' | 'text';
4
+ export interface FindOptions {
5
+ name?: string;
6
+ exact?: boolean;
7
+ nth?: number;
8
+ first?: boolean;
9
+ last?: boolean;
10
+ }
11
+ export declare function findBySelector(client: CdpClient, sessionId: string, selector: string, options?: FindOptions): Promise<string | null>;
12
+ export declare function findByRole(client: CdpClient, sessionId: string, refs: Map<string, ElementRef>, role: string, options?: FindOptions): Promise<ElementRef | null>;
13
+ export declare function findByText(client: CdpClient, sessionId: string, refs: Map<string, ElementRef>, text: string, options?: FindOptions): Promise<ElementRef | null>;
14
+ export declare function findByLabel(client: CdpClient, sessionId: string, refs: Map<string, ElementRef>, label: string, options?: FindOptions): Promise<ElementRef | null>;
15
+ export declare function findByTestId(client: CdpClient, sessionId: string, testId: string): Promise<string | null>;
16
+ export declare function isVisible(client: CdpClient, sessionId: string, ref: ElementRef): Promise<boolean>;
17
+ export declare function isEnabled(client: CdpClient, sessionId: string, ref: ElementRef): Promise<boolean>;
18
+ export declare function isChecked(client: CdpClient, sessionId: string, ref: ElementRef): Promise<boolean>;
19
+ export declare function scrollIntoView(client: CdpClient, sessionId: string, ref: ElementRef): Promise<void>;
20
+ export declare function highlightElement(client: CdpClient, sessionId: string, ref: ElementRef): Promise<void>;
21
+ //# sourceMappingURL=find.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../src/browser/find.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI7C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtG,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAUxB;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAgB5B;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQ5B;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAC7B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAE5B;AAED,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAWxB;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAiBvG;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAEvG;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAUvG;AAED,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAQzG;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAiB3G"}
@@ -0,0 +1,118 @@
1
+ import { evaluateJs } from './actions.js';
2
+ import { getObjectIdForRef } from './snapshot.js';
3
+ export async function findBySelector(client, sessionId, selector, options = {}) {
4
+ let expr;
5
+ if (options.nth !== undefined) {
6
+ expr = `document.querySelectorAll(${JSON.stringify(selector)})[${options.nth - 1}]?.outerHTML ?? null`;
7
+ }
8
+ else if (options.last) {
9
+ expr = `Array.from(document.querySelectorAll(${JSON.stringify(selector)})).at(-1)?.outerHTML ?? null`;
10
+ }
11
+ else {
12
+ expr = `document.querySelector(${JSON.stringify(selector)})?.outerHTML ?? null`;
13
+ }
14
+ return evaluateJs(client, sessionId, expr);
15
+ }
16
+ export async function findByRole(client, sessionId, refs, role, options = {}) {
17
+ const lowerRole = role.toLowerCase();
18
+ const candidates = [...refs.values()].filter((r) => r.role.toLowerCase() === lowerRole);
19
+ let matches = candidates;
20
+ if (options.name) {
21
+ const nameLower = options.name.toLowerCase();
22
+ matches = options.exact
23
+ ? candidates.filter((r) => r.name.toLowerCase() === nameLower)
24
+ : candidates.filter((r) => r.name.toLowerCase().includes(nameLower));
25
+ }
26
+ if (matches.length === 0)
27
+ return null;
28
+ if (options.nth !== undefined)
29
+ return matches[options.nth - 1] ?? null;
30
+ if (options.last)
31
+ return matches[matches.length - 1];
32
+ return matches[0];
33
+ }
34
+ export async function findByText(client, sessionId, refs, text, options = {}) {
35
+ const lower = text.toLowerCase();
36
+ const candidates = [...refs.values()].filter((r) => options.exact ? r.name.toLowerCase() === lower : r.name.toLowerCase().includes(lower));
37
+ if (options.nth !== undefined)
38
+ return candidates[options.nth - 1] ?? null;
39
+ if (options.last)
40
+ return candidates[candidates.length - 1];
41
+ return candidates[0] ?? null;
42
+ }
43
+ export async function findByLabel(client, sessionId, refs, label, options = {}) {
44
+ return findByText(client, sessionId, refs, label, options);
45
+ }
46
+ export async function findByTestId(client, sessionId, testId) {
47
+ const selectors = [
48
+ `[data-testid="${testId}"]`,
49
+ `[data-test-id="${testId}"]`,
50
+ `[data-test="${testId}"]`,
51
+ ];
52
+ for (const sel of selectors) {
53
+ const result = await evaluateJs(client, sessionId, `!!document.querySelector(${JSON.stringify(sel)})`);
54
+ if (result)
55
+ return sel;
56
+ }
57
+ return null;
58
+ }
59
+ export async function isVisible(client, sessionId, ref) {
60
+ const objectId = await getObjectIdForRef(client, sessionId, ref);
61
+ if (!objectId)
62
+ return false;
63
+ const result = await client.send('Runtime.callFunctionOn', {
64
+ functionDeclaration: `function() {
65
+ const rect = this.getBoundingClientRect();
66
+ const style = window.getComputedStyle(this);
67
+ return rect.width > 0 && rect.height > 0 &&
68
+ style.display !== 'none' &&
69
+ style.visibility !== 'hidden' &&
70
+ style.opacity !== '0';
71
+ }`,
72
+ objectId,
73
+ returnByValue: true,
74
+ }, sessionId);
75
+ return result.result?.value ?? false;
76
+ }
77
+ export async function isEnabled(client, sessionId, ref) {
78
+ return !ref.disabled;
79
+ }
80
+ export async function isChecked(client, sessionId, ref) {
81
+ const objectId = await getObjectIdForRef(client, sessionId, ref);
82
+ if (!objectId)
83
+ return false;
84
+ const result = await client.send('Runtime.callFunctionOn', {
85
+ functionDeclaration: 'function() { return !!this.checked; }',
86
+ objectId,
87
+ returnByValue: true,
88
+ }, sessionId);
89
+ return result.result?.value ?? false;
90
+ }
91
+ export async function scrollIntoView(client, sessionId, ref) {
92
+ const objectId = await getObjectIdForRef(client, sessionId, ref);
93
+ if (!objectId)
94
+ throw new Error(`Cannot scroll: ref @${ref.ref} not found in DOM`);
95
+ await client.send('Runtime.callFunctionOn', {
96
+ functionDeclaration: 'function() { this.scrollIntoView({ behavior: "smooth", block: "center" }); }',
97
+ objectId,
98
+ }, sessionId);
99
+ }
100
+ export async function highlightElement(client, sessionId, ref) {
101
+ const objectId = await getObjectIdForRef(client, sessionId, ref);
102
+ if (!objectId)
103
+ return;
104
+ await client.send('Runtime.callFunctionOn', {
105
+ functionDeclaration: `function() {
106
+ const prev = this.style.outline;
107
+ const prevBg = this.style.backgroundColor;
108
+ this.style.outline = '3px solid #ff5722';
109
+ this.style.backgroundColor = 'rgba(255, 87, 34, 0.1)';
110
+ setTimeout(() => {
111
+ this.style.outline = prev;
112
+ this.style.backgroundColor = prevBg;
113
+ }, 2000);
114
+ }`,
115
+ objectId,
116
+ }, sessionId);
117
+ }
118
+ //# sourceMappingURL=find.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../src/browser/find.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export * from './types.js';
2
+ export * from './cdp.js';
3
+ export * from './browser.js';
4
+ export * from './snapshot.js';
5
+ export * from './actions.js';
6
+ export * from './wait.js';
7
+ export * from './network.js';
8
+ export * from './screenshot.js';
9
+ export * from './session.js';
10
+ export * from './tabs.js';
11
+ export * from './dialog.js';
12
+ export * from './console-log.js';
13
+ export * from './storage.js';
14
+ export * from './find.js';
15
+ export * from './pdf.js';
16
+ export * from './emulation.js';
17
+ export * from './batch.js';
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,18 @@
1
+ export * from './types.js';
2
+ export * from './cdp.js';
3
+ export * from './browser.js';
4
+ export * from './snapshot.js';
5
+ export * from './actions.js';
6
+ export * from './wait.js';
7
+ export * from './network.js';
8
+ export * from './screenshot.js';
9
+ export * from './session.js';
10
+ export * from './tabs.js';
11
+ export * from './dialog.js';
12
+ export * from './console-log.js';
13
+ export * from './storage.js';
14
+ export * from './find.js';
15
+ export * from './pdf.js';
16
+ export * from './emulation.js';
17
+ export * from './batch.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { CdpClient } from './cdp.js';
2
+ import type { CdpCookie, NetworkRoute } from './types.js';
3
+ export declare function getCookies(client: CdpClient, sessionId: string): Promise<CdpCookie[]>;
4
+ export declare function setCookies(client: CdpClient, sessionId: string, cookies: CdpCookie[]): Promise<void>;
5
+ export declare function clearCookies(client: CdpClient, sessionId: string): Promise<void>;
6
+ export declare function setExtraHeaders(client: CdpClient, sessionId: string, headers: Record<string, string>): Promise<void>;
7
+ export declare function enableInterception(client: CdpClient, sessionId: string): Promise<void>;
8
+ export declare function setupRoutes(client: CdpClient, sessionId: string, routes: NetworkRoute[]): Promise<void>;
9
+ export declare function getLocalStorage(client: CdpClient, sessionId: string): Promise<Record<string, string>>;
10
+ export declare function setLocalStorage(client: CdpClient, sessionId: string, data: Record<string, string>): Promise<void>;
11
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/browser/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAG3F;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1G;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtF;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5F;AAED,wBAAsB,WAAW,CAC/B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAU3G;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAKf"}