@dyyz1993/agent-browser 0.13.2 → 0.24.0
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 +108 -0
- package/bin/agent-browser-darwin-arm64 +0 -0
- package/bin/agent-browser-darwin-x64 +0 -0
- package/bin/agent-browser-linux-arm64 +0 -0
- package/bin/agent-browser-linux-x64 +0 -0
- package/bin/agent-browser-win32-x64.exe +0 -0
- package/dist/__tests__/e2e/utils/test-helpers.d.ts +1 -0
- package/dist/__tests__/e2e/utils/test-helpers.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/test-helpers.js +14 -1
- package/dist/__tests__/e2e/utils/test-helpers.js.map +1 -1
- package/dist/__tests__/utils/free-port.d.ts +2 -0
- package/dist/__tests__/utils/free-port.d.ts.map +1 -0
- package/dist/__tests__/utils/free-port.js +18 -0
- package/dist/__tests__/utils/free-port.js.map +1 -0
- package/dist/__tests__/utils/parseCli.d.ts.map +1 -1
- package/dist/__tests__/utils/parseCli.js +83 -9
- package/dist/__tests__/utils/parseCli.js.map +1 -1
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +298 -9
- package/dist/actions.js.map +1 -1
- package/dist/browser.d.ts +11 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +75 -19
- package/dist/browser.js.map +1 -1
- package/dist/cli/commands.d.ts.map +1 -1
- package/dist/cli/commands.js +172 -15
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/connection.d.ts +13 -0
- package/dist/cli/connection.d.ts.map +1 -1
- package/dist/cli/connection.js +137 -48
- package/dist/cli/connection.js.map +1 -1
- package/dist/cli/flags.d.ts.map +1 -1
- package/dist/cli/flags.js +0 -1
- package/dist/cli/flags.js.map +1 -1
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +63 -22
- package/dist/cli/help.js.map +1 -1
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +0 -32
- package/dist/cli/output.js.map +1 -1
- package/dist/cli.js +20 -2
- package/dist/cli.js.map +1 -1
- package/dist/daemon.d.ts +1 -0
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +291 -264
- package/dist/daemon.js.map +1 -1
- package/dist/diff.d.ts.map +1 -1
- package/dist/diff.js +1 -1
- package/dist/diff.js.map +1 -1
- package/dist/flow/exporters/cypress.d.ts +9 -0
- package/dist/flow/exporters/cypress.d.ts.map +1 -0
- package/dist/flow/exporters/cypress.js +256 -0
- package/dist/flow/exporters/cypress.js.map +1 -0
- package/dist/flow/exporters/index.d.ts +6 -0
- package/dist/flow/exporters/index.d.ts.map +1 -0
- package/dist/flow/exporters/index.js +5 -0
- package/dist/flow/exporters/index.js.map +1 -0
- package/dist/flow/exporters/playwright.d.ts +20 -0
- package/dist/flow/exporters/playwright.d.ts.map +1 -0
- package/dist/flow/exporters/playwright.js +175 -0
- package/dist/flow/exporters/playwright.js.map +1 -0
- package/dist/flow/exporters/python.d.ts +20 -0
- package/dist/flow/exporters/python.d.ts.map +1 -0
- package/dist/flow/exporters/python.js +163 -0
- package/dist/flow/exporters/python.js.map +1 -0
- package/dist/flow/exporters/selenium.d.ts +9 -0
- package/dist/flow/exporters/selenium.d.ts.map +1 -0
- package/dist/flow/exporters/selenium.js +298 -0
- package/dist/flow/exporters/selenium.js.map +1 -0
- package/dist/flow/exporters/types.d.ts +13 -0
- package/dist/flow/exporters/types.d.ts.map +1 -0
- package/dist/flow/exporters/types.js +2 -0
- package/dist/flow/exporters/types.js.map +1 -0
- package/dist/flow/flow-executor.d.ts +57 -0
- package/dist/flow/flow-executor.d.ts.map +1 -0
- package/dist/flow/flow-executor.js +1263 -0
- package/dist/flow/flow-executor.js.map +1 -0
- package/dist/flow/index.d.ts +15 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +10 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/flow/output.d.ts +11 -0
- package/dist/flow/output.d.ts.map +1 -0
- package/dist/flow/output.js +84 -0
- package/dist/flow/output.js.map +1 -0
- package/dist/flow/plugin-system.d.ts +48 -0
- package/dist/flow/plugin-system.d.ts.map +1 -0
- package/dist/flow/plugin-system.js +132 -0
- package/dist/flow/plugin-system.js.map +1 -0
- package/dist/flow/plugins/file-output-plugin.d.ts +8 -0
- package/dist/flow/plugins/file-output-plugin.d.ts.map +1 -0
- package/dist/flow/plugins/file-output-plugin.js +31 -0
- package/dist/flow/plugins/file-output-plugin.js.map +1 -0
- package/dist/flow/plugins/index.d.ts +4 -0
- package/dist/flow/plugins/index.d.ts.map +1 -0
- package/dist/flow/plugins/index.js +4 -0
- package/dist/flow/plugins/index.js.map +1 -0
- package/dist/flow/plugins/logging-plugin.d.ts +7 -0
- package/dist/flow/plugins/logging-plugin.d.ts.map +1 -0
- package/dist/flow/plugins/logging-plugin.js +40 -0
- package/dist/flow/plugins/logging-plugin.js.map +1 -0
- package/dist/flow/plugins/webhook-plugin.d.ts +7 -0
- package/dist/flow/plugins/webhook-plugin.d.ts.map +1 -0
- package/dist/flow/plugins/webhook-plugin.js +24 -0
- package/dist/flow/plugins/webhook-plugin.js.map +1 -0
- package/dist/flow/presets/index.d.ts +10 -0
- package/dist/flow/presets/index.d.ts.map +1 -0
- package/dist/flow/presets/index.js +29 -0
- package/dist/flow/presets/index.js.map +1 -0
- package/dist/flow/recorder-to-flow.d.ts +70 -0
- package/dist/flow/recorder-to-flow.d.ts.map +1 -0
- package/dist/flow/recorder-to-flow.js +392 -0
- package/dist/flow/recorder-to-flow.js.map +1 -0
- package/dist/flow/site-manager.d.ts +24 -0
- package/dist/flow/site-manager.d.ts.map +1 -0
- package/dist/flow/site-manager.js +125 -0
- package/dist/flow/site-manager.js.map +1 -0
- package/dist/flow/types.d.ts +196 -0
- package/dist/flow/types.d.ts.map +1 -0
- package/dist/flow/types.js +2 -0
- package/dist/flow/types.js.map +1 -0
- package/dist/flow/yaml-parser.d.ts +15 -0
- package/dist/flow/yaml-parser.d.ts.map +1 -0
- package/dist/flow/yaml-parser.js +216 -0
- package/dist/flow/yaml-parser.js.map +1 -0
- package/dist/human-mouse.d.ts.map +1 -1
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +15 -11
- package/dist/protocol.js.map +1 -1
- package/dist/rc-config.d.ts.map +1 -1
- package/dist/rc-config.js +1 -2
- package/dist/rc-config.js.map +1 -1
- package/dist/recorder/inject.js +730 -332
- package/dist/snapshot-store.d.ts +83 -0
- package/dist/snapshot-store.d.ts.map +1 -0
- package/dist/snapshot-store.js +112 -0
- package/dist/snapshot-store.js.map +1 -0
- package/dist/snapshot.d.ts +6 -7
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +471 -17
- package/dist/snapshot.js.map +1 -1
- package/dist/stream-server-standalone.d.ts.map +1 -1
- package/dist/stream-server-standalone.js.map +1 -1
- package/dist/stream-server.d.ts.map +1 -1
- package/dist/stream-server.js +38 -13
- package/dist/stream-server.js.map +1 -1
- package/dist/test-live.js +5 -5
- package/dist/test-live.js.map +1 -1
- package/dist/types.d.ts +13 -9
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/viewer-script.d.ts.map +1 -1
- package/dist/viewer-script.js +12 -6
- package/dist/viewer-script.js.map +1 -1
- package/package.json +18 -5
- package/skills/agent-browser/SKILL.md +151 -3
- package/dist/ios-actions.d.ts +0 -11
- package/dist/ios-actions.d.ts.map +0 -1
- package/dist/ios-actions.js +0 -228
- package/dist/ios-actions.js.map +0 -1
- package/dist/ios-manager.d.ts +0 -266
- package/dist/ios-manager.d.ts.map +0 -1
- package/dist/ios-manager.js +0 -1076
- package/dist/ios-manager.js.map +0 -1
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SnapshotStore - In-memory store for snapshot data with stable selectors.
|
|
3
|
+
*
|
|
4
|
+
* Each snapshot gets a unique sequential ID (snap_1, snap_2, ...).
|
|
5
|
+
* Elements within each snapshot have stable CSS selectors and XPaths
|
|
6
|
+
* that can be retrieved later by snapshot_id + ref/index.
|
|
7
|
+
*/
|
|
8
|
+
export interface SnapshotElement {
|
|
9
|
+
/** Ref ID (e.g., "e1") */
|
|
10
|
+
ref: string;
|
|
11
|
+
/** Display index (1-based, e.g., 1, 2, 3) */
|
|
12
|
+
index: number;
|
|
13
|
+
/** ARIA role (e.g., "button", "link", "textbox") */
|
|
14
|
+
role: string;
|
|
15
|
+
/** Accessible name (e.g., "Submit") */
|
|
16
|
+
name?: string;
|
|
17
|
+
/** Stable CSS selector (e.g., "#su", "input[name='wd']") */
|
|
18
|
+
cssSelector: string;
|
|
19
|
+
/** Stable XPath (e.g., "//*[@id='su']") */
|
|
20
|
+
xpath: string;
|
|
21
|
+
}
|
|
22
|
+
export interface SnapshotEntry {
|
|
23
|
+
/** Unique snapshot ID (e.g., "snap_3") */
|
|
24
|
+
id: string;
|
|
25
|
+
/** Creation timestamp */
|
|
26
|
+
timestamp: number;
|
|
27
|
+
/** Page URL at snapshot time */
|
|
28
|
+
url: string;
|
|
29
|
+
/** Iframe path if snapshot was taken inside an iframe */
|
|
30
|
+
framePath?: string;
|
|
31
|
+
/** Elements keyed by ref ID (e.g., "e1" -> SnapshotElement) */
|
|
32
|
+
elements: Map<string, SnapshotElement>;
|
|
33
|
+
/** Whether stable selectors have been generated for this snapshot */
|
|
34
|
+
selectorsGenerated: boolean;
|
|
35
|
+
}
|
|
36
|
+
export declare class SnapshotStore {
|
|
37
|
+
private static readonly MAX_SNAPSHOTS;
|
|
38
|
+
private snapshots;
|
|
39
|
+
private counter;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new snapshot entry.
|
|
42
|
+
* @returns The generated snapshot ID (e.g., "snap_3")
|
|
43
|
+
*/
|
|
44
|
+
create(url: string, elements: SnapshotElement[], framePath?: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Get a snapshot entry by ID.
|
|
47
|
+
*/
|
|
48
|
+
get(id: string): SnapshotEntry | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* Get a specific element from a snapshot by ref or index.
|
|
51
|
+
*
|
|
52
|
+
* @param snapId - Snapshot ID (e.g., "snap_3")
|
|
53
|
+
* @param refOrIndex - Either a ref like "e1" or "@e1", or an index like "1"
|
|
54
|
+
* @returns The SnapshotElement or undefined
|
|
55
|
+
*/
|
|
56
|
+
getElement(snapId: string, refOrIndex: string): SnapshotElement | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Get all elements from a snapshot as an array, sorted by index.
|
|
59
|
+
*/
|
|
60
|
+
getElements(snapId: string): SnapshotElement[] | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* Get the current counter value (for testing/debugging).
|
|
63
|
+
*/
|
|
64
|
+
getCounter(): number;
|
|
65
|
+
/**
|
|
66
|
+
* Reset the store: clear all snapshots and reset counter to 0.
|
|
67
|
+
* Useful for test isolation.
|
|
68
|
+
*/
|
|
69
|
+
reset(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Check if a snapshot exists.
|
|
72
|
+
*/
|
|
73
|
+
has(id: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Mark selectors as generated for a snapshot.
|
|
76
|
+
*/
|
|
77
|
+
markSelectorsGenerated(id: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Check if selectors have been generated for a snapshot.
|
|
80
|
+
*/
|
|
81
|
+
isSelectorsGenerated(id: string): boolean;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=snapshot-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-store.d.ts","sourceRoot":"","sources":["../src/snapshot-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,eAAe;IAC9B,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACvC,qEAAqE;IACrE,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAO;IAC5C,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,OAAO,CAAa;IAE5B;;;OAGG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;IAsB5E;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C;;;;;;OAMG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAuB3E;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,SAAS;IAM1D;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAG1C"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SnapshotStore - In-memory store for snapshot data with stable selectors.
|
|
3
|
+
*
|
|
4
|
+
* Each snapshot gets a unique sequential ID (snap_1, snap_2, ...).
|
|
5
|
+
* Elements within each snapshot have stable CSS selectors and XPaths
|
|
6
|
+
* that can be retrieved later by snapshot_id + ref/index.
|
|
7
|
+
*/
|
|
8
|
+
export class SnapshotStore {
|
|
9
|
+
static MAX_SNAPSHOTS = 100;
|
|
10
|
+
snapshots = new Map();
|
|
11
|
+
counter = 0;
|
|
12
|
+
/**
|
|
13
|
+
* Create a new snapshot entry.
|
|
14
|
+
* @returns The generated snapshot ID (e.g., "snap_3")
|
|
15
|
+
*/
|
|
16
|
+
create(url, elements, framePath) {
|
|
17
|
+
const id = `snap_${++this.counter}`;
|
|
18
|
+
if (this.snapshots.size >= SnapshotStore.MAX_SNAPSHOTS) {
|
|
19
|
+
const firstKey = this.snapshots.keys().next().value;
|
|
20
|
+
if (firstKey) {
|
|
21
|
+
this.snapshots.delete(firstKey);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const elementMap = new Map(elements.map((e) => [e.ref, e]));
|
|
25
|
+
this.snapshots.set(id, {
|
|
26
|
+
id,
|
|
27
|
+
timestamp: Date.now(),
|
|
28
|
+
url,
|
|
29
|
+
framePath,
|
|
30
|
+
elements: elementMap,
|
|
31
|
+
selectorsGenerated: false,
|
|
32
|
+
});
|
|
33
|
+
return id;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get a snapshot entry by ID.
|
|
37
|
+
*/
|
|
38
|
+
get(id) {
|
|
39
|
+
return this.snapshots.get(id);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get a specific element from a snapshot by ref or index.
|
|
43
|
+
*
|
|
44
|
+
* @param snapId - Snapshot ID (e.g., "snap_3")
|
|
45
|
+
* @param refOrIndex - Either a ref like "e1" or "@e1", or an index like "1"
|
|
46
|
+
* @returns The SnapshotElement or undefined
|
|
47
|
+
*/
|
|
48
|
+
getElement(snapId, refOrIndex) {
|
|
49
|
+
const entry = this.snapshots.get(snapId);
|
|
50
|
+
if (!entry)
|
|
51
|
+
return undefined;
|
|
52
|
+
// Strip @ prefix if present (e.g., "@e1" -> "e1")
|
|
53
|
+
const cleaned = refOrIndex.startsWith('@') ? refOrIndex.slice(1) : refOrIndex;
|
|
54
|
+
// Try as ref first (e.g., "e1")
|
|
55
|
+
if (entry.elements.has(cleaned)) {
|
|
56
|
+
return entry.elements.get(cleaned);
|
|
57
|
+
}
|
|
58
|
+
// Try as index (e.g., "1")
|
|
59
|
+
const index = parseInt(cleaned, 10);
|
|
60
|
+
if (!isNaN(index)) {
|
|
61
|
+
for (const el of entry.elements.values()) {
|
|
62
|
+
if (el.index === index)
|
|
63
|
+
return el;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return undefined;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get all elements from a snapshot as an array, sorted by index.
|
|
70
|
+
*/
|
|
71
|
+
getElements(snapId) {
|
|
72
|
+
const entry = this.snapshots.get(snapId);
|
|
73
|
+
if (!entry)
|
|
74
|
+
return undefined;
|
|
75
|
+
return Array.from(entry.elements.values()).sort((a, b) => a.index - b.index);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get the current counter value (for testing/debugging).
|
|
79
|
+
*/
|
|
80
|
+
getCounter() {
|
|
81
|
+
return this.counter;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Reset the store: clear all snapshots and reset counter to 0.
|
|
85
|
+
* Useful for test isolation.
|
|
86
|
+
*/
|
|
87
|
+
reset() {
|
|
88
|
+
this.counter = 0;
|
|
89
|
+
this.snapshots.clear();
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if a snapshot exists.
|
|
93
|
+
*/
|
|
94
|
+
has(id) {
|
|
95
|
+
return this.snapshots.has(id);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Mark selectors as generated for a snapshot.
|
|
99
|
+
*/
|
|
100
|
+
markSelectorsGenerated(id) {
|
|
101
|
+
const entry = this.snapshots.get(id);
|
|
102
|
+
if (entry)
|
|
103
|
+
entry.selectorsGenerated = true;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Check if selectors have been generated for a snapshot.
|
|
107
|
+
*/
|
|
108
|
+
isSelectorsGenerated(id) {
|
|
109
|
+
return this.snapshots.get(id)?.selectorsGenerated ?? false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=snapshot-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot-store.js","sourceRoot":"","sources":["../src/snapshot-store.ts"],"names":[],"mappings":"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"}
|
package/dist/snapshot.d.ts
CHANGED
|
@@ -37,25 +37,24 @@ export interface EnhancedSnapshot {
|
|
|
37
37
|
refs: RefMap;
|
|
38
38
|
}
|
|
39
39
|
export interface SnapshotOptions {
|
|
40
|
-
/** Only include interactive elements (buttons, links, inputs, etc.) */
|
|
41
40
|
interactive?: boolean;
|
|
42
|
-
/** Include cursor-interactive elements (cursor:pointer, onclick, tabindex) */
|
|
43
41
|
cursor?: boolean;
|
|
44
|
-
/** Maximum depth of tree to include (0 = root only) */
|
|
45
42
|
maxDepth?: number;
|
|
46
|
-
/** Remove structural elements without meaningful content */
|
|
47
43
|
compact?: boolean;
|
|
48
|
-
/** CSS selector to scope the snapshot */
|
|
49
44
|
selector?: string;
|
|
50
|
-
/** Include xpath and cssPath in refs (requires selector) */
|
|
51
45
|
path?: boolean;
|
|
52
|
-
/** Include element attributes in refs (requires selector) */
|
|
53
46
|
attrs?: boolean;
|
|
47
|
+
selectors?: boolean;
|
|
48
|
+
all?: boolean;
|
|
54
49
|
}
|
|
55
50
|
/**
|
|
56
51
|
* Reset ref counter (call at start of each snapshot)
|
|
57
52
|
*/
|
|
58
53
|
export declare function resetRefs(): void;
|
|
54
|
+
export declare function generateStableSelectors(page: Page | Frame, refs: RefMap): Promise<Record<string, {
|
|
55
|
+
cssSelector: string;
|
|
56
|
+
xpath: string;
|
|
57
|
+
}>>;
|
|
59
58
|
/**
|
|
60
59
|
* Get enhanced snapshot with refs and optional filtering
|
|
61
60
|
*/
|
package/dist/snapshot.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAW,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1E,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,0EAA0E;QAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gDAAgD;QAChD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../src/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAW,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE1E,MAAM,WAAW,MAAM;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,0EAA0E;QAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,uCAAuC;QACvC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gDAAgD;QAChD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAKD;;GAEG;AACH,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAwTD,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,IAAI,GAAG,KAAK,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAuWjE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,YAAY,EACjC,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA0F3B;AAy5BD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB,CAUA;AA6BD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAYhE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAsB5E;AAmDD,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CA2C9E;AAyBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAS1E"}
|