@playwright-repl/core 0.18.0 → 0.20.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.
@@ -58,6 +58,9 @@ export async function verifyUrl(page, text) {
58
58
  if (!url.includes(text))
59
59
  throw new Error('URL "' + url + '" does not contain "' + text + '"');
60
60
  }
61
+ export async function waitForText(page, text) {
62
+ await page.getByText(text).first().waitFor({ state: 'visible', timeout: 10000 });
63
+ }
61
64
  export async function verifyNoText(page, text) {
62
65
  if (await page.getByText(text).filter({ visible: true }).count() > 0)
63
66
  throw new Error('Text still visible: ' + text);
@@ -66,63 +69,151 @@ export async function verifyNoElement(page, role, name) {
66
69
  if (await page.getByRole(role, { name }).count() > 0)
67
70
  throw new Error('Element still exists: ' + role + ' "' + name + '"');
68
71
  }
69
- // ─── Text locator actions ───────────────────────────────────────────────────
70
- export async function actionByText(page, text, action, nth) {
71
- let loc = page.getByText(text, { exact: true });
72
+ export async function verifyVisible(page, role, name) {
73
+ if (!(await page.getByRole(role, { name }).isVisible()))
74
+ throw new Error('Element not visible: ' + role + ' "' + name + '"');
75
+ }
76
+ export async function verifyInputValue(page, label, expected) {
77
+ let loc = page.getByLabel(label);
78
+ if (await loc.count() === 0)
79
+ loc = page.getByRole('spinbutton', { name: label });
72
80
  if (await loc.count() === 0)
73
- loc = page.getByRole('button', { name: text });
81
+ loc = page.getByRole('textbox', { name: label });
74
82
  if (await loc.count() === 0)
75
- loc = page.getByRole('link', { name: text });
83
+ loc = page.getByRole('combobox', { name: label });
76
84
  if (await loc.count() === 0)
77
- loc = page.getByText(text);
85
+ throw new Error('Element not found for label: ' + label);
86
+ const el = loc.first();
87
+ const inputType = await el.evaluate(e => e instanceof HTMLInputElement ? e.type : '');
88
+ if (inputType === 'checkbox') {
89
+ const isChecked = await el.isChecked();
90
+ const expectChecked = ['checked', 'true', 'yes', '1'].includes(expected.toLowerCase());
91
+ if (isChecked !== expectChecked)
92
+ throw new Error('Expected "' + label + '" to be ' + expected + ', but was ' + (isChecked ? 'checked' : 'unchecked'));
93
+ return;
94
+ }
95
+ const value = await el.inputValue();
96
+ if (String(value) !== String(expected))
97
+ throw new Error('Expected "' + expected + '", got "' + value + '" for "' + label + '"');
98
+ }
99
+ // ─── Text locator actions ───────────────────────────────────────────────────
100
+ export async function actionByText(page, text, action, nth, exact) {
101
+ let loc = page.getByText(text, { exact: true });
102
+ if (!exact) {
103
+ if (await loc.count() === 0)
104
+ loc = page.getByRole('button', { name: text });
105
+ if (await loc.count() === 0)
106
+ loc = page.getByRole('link', { name: text });
107
+ if (await loc.count() === 0)
108
+ loc = page.getByRole('textbox', { name: text });
109
+ if (await loc.count() === 0)
110
+ loc = page.getByRole('combobox', { name: text });
111
+ if (await loc.count() === 0)
112
+ loc = page.getByPlaceholder(text);
113
+ if (await loc.count() === 0)
114
+ loc = page.getByText(text);
115
+ }
78
116
  if (nth !== undefined)
79
117
  loc = loc.filter({ visible: true }).nth(nth);
80
118
  await loc[action]();
81
119
  }
82
- export async function fillByText(page, text, value, nth) {
120
+ export async function fillByText(page, text, value, nth, exact) {
83
121
  let loc = page.getByLabel(text);
84
- if (await loc.count() === 0)
85
- loc = page.getByPlaceholder(text);
86
- if (await loc.count() === 0)
87
- loc = page.getByRole('textbox', { name: text });
122
+ if (!exact) {
123
+ if (await loc.count() === 0)
124
+ loc = page.getByPlaceholder(text);
125
+ if (await loc.count() === 0)
126
+ loc = page.getByRole('textbox', { name: text });
127
+ }
88
128
  if (nth !== undefined)
89
129
  loc = loc.filter({ visible: true }).nth(nth);
90
130
  await loc.fill(value);
91
131
  }
92
- export async function selectByText(page, text, value, nth) {
132
+ export async function selectByText(page, text, value, nth, exact) {
93
133
  let loc = page.getByLabel(text);
94
- if (await loc.count() === 0)
95
- loc = page.getByRole('combobox', { name: text });
134
+ if (!exact) {
135
+ if (await loc.count() === 0)
136
+ loc = page.getByRole('combobox', { name: text });
137
+ }
96
138
  if (nth !== undefined)
97
139
  loc = loc.filter({ visible: true }).nth(nth);
98
140
  await loc.selectOption(value);
99
141
  }
100
- export async function checkByText(page, text, nth) {
101
- const item = page.getByRole('listitem').filter({ hasText: text });
102
- if (await item.count() > 0) {
103
- const target = nth !== undefined ? item.filter({ visible: true }).nth(nth) : item;
104
- await target.getByRole('checkbox').check();
105
- return;
142
+ export async function checkByText(page, text, nth, exact) {
143
+ if (!exact) {
144
+ const item = page.getByRole('listitem').filter({ hasText: text });
145
+ if (await item.count() > 0) {
146
+ const target = nth !== undefined ? item.filter({ visible: true }).nth(nth) : item;
147
+ await target.getByRole('checkbox').check();
148
+ return;
149
+ }
106
150
  }
107
151
  let loc = page.getByLabel(text);
108
- if (await loc.count() === 0)
109
- loc = page.getByRole('checkbox', { name: text });
152
+ if (!exact) {
153
+ if (await loc.count() === 0)
154
+ loc = page.getByRole('checkbox', { name: text });
155
+ }
110
156
  if (nth !== undefined)
111
157
  loc = loc.filter({ visible: true }).nth(nth);
112
158
  await loc.check();
113
159
  }
114
- export async function uncheckByText(page, text, nth) {
115
- const item = page.getByRole('listitem').filter({ hasText: text });
116
- if (await item.count() > 0) {
117
- const target = nth !== undefined ? item.filter({ visible: true }).nth(nth) : item;
118
- await target.getByRole('checkbox').uncheck();
119
- return;
160
+ export async function uncheckByText(page, text, nth, exact) {
161
+ if (!exact) {
162
+ const item = page.getByRole('listitem').filter({ hasText: text });
163
+ if (await item.count() > 0) {
164
+ const target = nth !== undefined ? item.filter({ visible: true }).nth(nth) : item;
165
+ await target.getByRole('checkbox').uncheck();
166
+ return;
167
+ }
120
168
  }
121
169
  let loc = page.getByLabel(text);
122
- if (await loc.count() === 0)
123
- loc = page.getByRole('checkbox', { name: text });
170
+ if (!exact) {
171
+ if (await loc.count() === 0)
172
+ loc = page.getByRole('checkbox', { name: text });
173
+ }
124
174
  if (nth !== undefined)
125
175
  loc = loc.filter({ visible: true }).nth(nth);
126
176
  await loc.uncheck();
127
177
  }
178
+ // ─── Role-based actions ─────────────────────────────────────────────────────
179
+ export async function actionByRole(page, role, name, action, nth, inRole, inText) {
180
+ let loc = page.getByRole(role, { name, exact: true });
181
+ if (inRole !== undefined && inText !== undefined) {
182
+ const cr = ({ list: 'listitem' })[inRole] || inRole;
183
+ loc = page.getByRole(cr).filter({ hasText: inText }).getByRole(role, { name, exact: true });
184
+ }
185
+ if (nth !== undefined)
186
+ loc = loc.nth(nth);
187
+ await loc[action]();
188
+ }
189
+ export async function fillByRole(page, role, name, value, nth, inRole, inText) {
190
+ let loc = page.getByRole(role, { name, exact: true });
191
+ if (inRole !== undefined && inText !== undefined) {
192
+ const cr = ({ list: 'listitem' })[inRole] || inRole;
193
+ loc = page.getByRole(cr).filter({ hasText: inText }).getByRole(role, { name, exact: true });
194
+ }
195
+ if (nth !== undefined)
196
+ loc = loc.nth(nth);
197
+ await loc.fill(value);
198
+ }
199
+ export async function selectByRole(page, role, name, value, nth, inRole, inText) {
200
+ let loc = page.getByRole(role, { name, exact: true });
201
+ if (inRole !== undefined && inText !== undefined) {
202
+ const cr = ({ list: 'listitem' })[inRole] || inRole;
203
+ loc = page.getByRole(cr).filter({ hasText: inText }).getByRole(role, { name, exact: true });
204
+ }
205
+ if (nth !== undefined)
206
+ loc = loc.nth(nth);
207
+ await loc.selectOption(value);
208
+ }
209
+ export async function pressKeyByRole(page, role, name, key, nth, inRole, inText) {
210
+ let loc = page.getByRole(role, { name, exact: true });
211
+ if (inRole !== undefined && inText !== undefined) {
212
+ const cr = ({ list: 'listitem' })[inRole] || inRole;
213
+ loc = page.getByRole(cr).filter({ hasText: inText }).getByRole(role, { name, exact: true });
214
+ }
215
+ if (nth !== undefined)
216
+ loc = loc.nth(nth);
217
+ await loc.press(key);
218
+ }
128
219
  //# sourceMappingURL=page-scripts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-scripts.js","sourceRoot":"","sources":["../src/page-scripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-scripts.js","sourceRoot":"","sources":["../src/page-scripts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6C1C,CAAC;AAIF,eAAO,MAAM,cAAc,aAGzB,CAAC;AAIH,eAAO,MAAM,YAAY,EAAE,MAAM,EAA0B,CAAC;AA6C5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAsC1D"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6C1C,CAAC;AAIF,eAAO,MAAM,cAAc,aAGzB,CAAC;AAIH,eAAO,MAAM,YAAY,EAAE,MAAM,EAA0B,CAAC;AA6C5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CA8C1D"}
package/dist/parser.js CHANGED
@@ -52,7 +52,7 @@ export const ALIASES = {
52
52
  // ─── Known boolean options ───────────────────────────────────────────────────
53
53
  export const booleanOptions = new Set([
54
54
  'headed', 'persistent', 'extension', 'submit', 'clear',
55
- 'fullPage', 'includeStatic',
55
+ 'fullPage', 'static', 'exact',
56
56
  ]);
57
57
  // ─── All known commands ──────────────────────────────────────────────────────
58
58
  export const ALL_COMMANDS = Object.keys(COMMANDS);
@@ -113,6 +113,13 @@ export function parseInput(line) {
113
113
  const rest = line.slice(cmdLen).trim();
114
114
  return rest ? { _: [tokens[0], rest] } : { _: [tokens[0]] };
115
115
  }
116
+ // Pre-process --in <role> <text> → --in-role <role> --in-text <text>
117
+ for (let i = 0; i < tokens.length; i++) {
118
+ if (tokens[i] === '--in' && i + 2 < tokens.length && !tokens[i + 1].startsWith('--') && !tokens[i + 2].startsWith('--')) {
119
+ tokens.splice(i, 3, '--in-role', tokens[i + 1], '--in-text', tokens[i + 2]);
120
+ break;
121
+ }
122
+ }
116
123
  // Parse with minimist (same lib and boolean set as playwright-cli)
117
124
  const args = minimist(tokens, { boolean: [...booleanOptions] });
118
125
  // Stringify non-boolean values (playwright-cli does this)
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
package/dist/resolve.d.ts CHANGED
@@ -13,5 +13,7 @@ export interface CommandInfo {
13
13
  }
14
14
  export declare const COMMANDS: Record<string, CommandInfo>;
15
15
  export declare const CATEGORIES: Record<string, string[]>;
16
+ /** Commands that mutate the page — snapshot should be attached when includeSnapshot is on. */
17
+ export declare const UPDATE_COMMANDS: Set<string>;
16
18
  export declare const JS_CATEGORIES: Record<string, string[]>;
17
19
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,EAAE,MAAM,EAAE,CAAA;CAAwB,CAAC;AAG3I,eAAO,MAAM,WAAW,EAAE,MAA2C,CAAC;AAItE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAoGhD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAU/C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASlD,CAAC"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,eAAO,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,EAAE,MAAM,EAAE,CAAA;CAAwB,CAAC;AAG3I,eAAO,MAAM,WAAW,EAAE,MAA2C,CAAC;AAItE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA6IhD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAW/C,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,eAAe,aAO1B,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASlD,CAAC"}
package/dist/resolve.js CHANGED
@@ -18,13 +18,14 @@ export const COMMANDS = {
18
18
  'go-forward': { desc: 'Go forward', options: [] },
19
19
  'reload': { desc: 'Reload page', options: [] },
20
20
  'click': { desc: 'Click an element', options: ['--button', '--modifiers'],
21
- usage: 'click <text> | click <ref>',
22
- examples: ['click "Submit"', 'click e5', 'click "Submit" --button right'] },
21
+ usage: 'click [role] <text> | click <ref>',
22
+ examples: ['click "Submit"', 'click button "Submit"', 'click e5', 'click link "About" --button right'] },
23
23
  'dblclick': { desc: 'Double-click', options: ['--button', '--modifiers'],
24
- usage: 'dblclick <text> | dblclick <ref>' },
24
+ usage: 'dblclick [role] <text> | dblclick <ref>',
25
+ examples: ['dblclick "Buy groceries"', 'dblclick listitem "Buy groceries"'] },
25
26
  'fill': { desc: 'Fill a form field', options: ['--submit'],
26
- usage: 'fill <text|ref> <value>',
27
- examples: ['fill "Email" "user@test.com"', 'fill e3 "hello"', 'fill "Search" "query" --submit'] },
27
+ usage: 'fill [role] <text|ref> <value>',
28
+ examples: ['fill textbox "Email" "user@test.com"', 'fill "Email" "user@test.com"', 'fill e3 "hello"', 'fill "Search" "query" --submit'] },
28
29
  'type': { desc: 'Type text key by key', options: ['--submit'],
29
30
  usage: 'type <text>',
30
31
  examples: ['type "hello world"'] },
@@ -32,14 +33,17 @@ export const COMMANDS = {
32
33
  usage: 'press <key> | press <ref> <key>',
33
34
  examples: ['press Enter', 'press e5 Tab'] },
34
35
  'hover': { desc: 'Hover over element', options: [],
35
- usage: 'hover <text> | hover <ref>' },
36
+ usage: 'hover [role] <text> | hover <ref>',
37
+ examples: ['hover "Menu"', 'hover link "About"'] },
36
38
  'select': { desc: 'Select dropdown option', options: [],
37
- usage: 'select <text|ref> <value>',
38
- examples: ['select "Country" "US"'] },
39
+ usage: 'select [role] <text|ref> <value>',
40
+ examples: ['select combobox "Country" "US"', 'select "Country" "US"'] },
39
41
  'check': { desc: 'Check a checkbox', options: [],
40
- usage: 'check <text> | check <ref>' },
42
+ usage: 'check [role] <text> | check <ref>',
43
+ examples: ['check "Remember me"', 'check checkbox "Remember me"'] },
41
44
  'uncheck': { desc: 'Uncheck a checkbox', options: [],
42
- usage: 'uncheck <text> | uncheck <ref>' },
45
+ usage: 'uncheck [role] <text> | uncheck <ref>',
46
+ examples: ['uncheck "Newsletter"', 'uncheck checkbox "Newsletter"'] },
43
47
  'upload': { desc: 'Upload a file', options: [],
44
48
  usage: 'upload <ref> <filepath>' },
45
49
  'drag': { desc: 'Drag and drop', options: [],
@@ -53,8 +57,8 @@ export const COMMANDS = {
53
57
  examples: ['eval document.title', 'eval document.querySelectorAll("a").length'] },
54
58
  'console': { desc: 'Console messages', options: ['--clear'],
55
59
  usage: 'console [--clear]' },
56
- 'network': { desc: 'Network requests', options: ['--clear', '--includeStatic'],
57
- usage: 'network [--clear] [--includeStatic]' },
60
+ 'network': { desc: 'Network requests', options: ['--clear', '--static'],
61
+ usage: 'network [--clear] [--static]' },
58
62
  'run-code': { desc: 'Run Playwright code', options: [],
59
63
  usage: 'run-code <code>',
60
64
  examples: ['run-code await page.goto("https://example.com")'] },
@@ -104,6 +108,43 @@ export const COMMANDS = {
104
108
  'pdf': { desc: 'Save as PDF', options: ['--filename'],
105
109
  usage: 'pdf [--filename <file>]' },
106
110
  'config-print': { desc: 'Print config', options: [] },
111
+ 'verify': { desc: 'Assert page state', options: [],
112
+ usage: 'verify <sub> <args>',
113
+ examples: ['verify title "Example"', 'verify url "/dashboard"'] },
114
+ 'verify-text': { desc: 'Assert text is visible', options: [],
115
+ usage: 'verify-text <text>',
116
+ examples: ['verify-text "Welcome"'] },
117
+ 'verify-no-text': { desc: 'Assert text is not visible', options: [],
118
+ usage: 'verify-no-text <text>' },
119
+ 'verify-element': { desc: 'Assert element exists by role and name', options: [],
120
+ usage: 'verify-element <role> <name>',
121
+ examples: ['verify-element button "Submit"', 'verify-element heading "Dashboard"'] },
122
+ 'verify-no-element': { desc: 'Assert element does not exist', options: [],
123
+ usage: 'verify-no-element <role> <name>' },
124
+ 'verify-value': { desc: 'Assert input value', options: [],
125
+ usage: 'verify-value <ref> <expected>',
126
+ examples: ['verify-value e3 "hello"'] },
127
+ 'verify-visible': { desc: 'Assert element is visible', options: [],
128
+ usage: 'verify-visible <role> <name>',
129
+ examples: ['verify-visible button "Submit"'] },
130
+ 'verify-input-value': { desc: 'Assert input value by label', options: [],
131
+ usage: 'verify-input-value <label> <expected>',
132
+ examples: ['verify-input-value "Email" "user@test.com"'] },
133
+ 'verify-list': { desc: 'Assert list contains items', options: [],
134
+ usage: 'verify-list <role> <name> <items...>' },
135
+ 'verify-title': { desc: 'Assert page title', options: [],
136
+ usage: 'verify-title <text>' },
137
+ 'verify-url': { desc: 'Assert page URL', options: [],
138
+ usage: 'verify-url <text>' },
139
+ 'wait-for-text': { desc: 'Wait until text appears', options: [],
140
+ usage: 'wait-for-text <text>',
141
+ examples: ['wait-for-text "Loading complete"'] },
142
+ 'highlight': { desc: 'Highlight an element', options: [],
143
+ usage: 'highlight [role] <text> | highlight <ref>',
144
+ examples: ['highlight "Submit"', 'highlight button "Submit"'] },
145
+ 'locator': { desc: 'Generate Playwright locator for a ref', options: [],
146
+ usage: 'locator <ref>',
147
+ examples: ['locator e5'] },
107
148
  'install-browser': { desc: 'Install browser', options: [] },
108
149
  'list': { desc: 'List sessions', options: [] },
109
150
  'close-all': { desc: 'Close all sessions', options: [] },
@@ -112,7 +153,8 @@ export const COMMANDS = {
112
153
  export const CATEGORIES = {
113
154
  'Navigation': ['goto', 'open', 'go-back', 'go-forward', 'reload'],
114
155
  'Interaction': ['click', 'dblclick', 'fill', 'type', 'press', 'hover', 'select', 'check', 'uncheck', 'drag'],
115
- 'Inspection': ['snapshot', 'screenshot', 'eval', 'console', 'network', 'run-code'],
156
+ 'Inspection': ['snapshot', 'locator', 'screenshot', 'eval', 'console', 'network', 'run-code', 'highlight'],
157
+ 'Assertions': ['verify', 'verify-text', 'verify-no-text', 'verify-element', 'verify-no-element', 'verify-value', 'verify-visible', 'verify-input-value', 'verify-list', 'verify-title', 'verify-url', 'wait-for-text'],
116
158
  'Tabs': ['tab-list', 'tab-new', 'tab-close', 'tab-select'],
117
159
  'Cookies': ['cookie-list', 'cookie-get', 'cookie-set', 'cookie-delete', 'cookie-clear'],
118
160
  'LocalStorage': ['localstorage-list', 'localstorage-get', 'localstorage-set', 'localstorage-delete', 'localstorage-clear'],
@@ -120,6 +162,15 @@ export const CATEGORIES = {
120
162
  'State': ['state-save', 'state-load'],
121
163
  'Other': ['dialog-accept', 'dialog-dismiss', 'route', 'route-list', 'unroute', 'resize', 'pdf', 'upload', 'config-print'],
122
164
  };
165
+ /** Commands that mutate the page — snapshot should be attached when includeSnapshot is on. */
166
+ export const UPDATE_COMMANDS = new Set([
167
+ // Navigation
168
+ 'goto', 'go-back', 'go-forward', 'reload',
169
+ // Interaction
170
+ 'click', 'dblclick', 'fill', 'type', 'press', 'hover', 'select', 'check', 'uncheck', 'drag', 'upload',
171
+ // Wait
172
+ 'wait-for-text',
173
+ ]);
123
174
  export const JS_CATEGORIES = {
124
175
  'Navigation': ['page.goto(url)', 'page.goBack()', 'page.reload()', '...'],
125
176
  'Locators': ['page.getByRole(role)', 'page.getByText(text)', 'page.locator(sel)', 'page.getByTestId(id)', '...'],
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolve.js","sourceRoot":"","sources":["../src/resolve.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface SnapshotNode {
2
+ text: string;
3
+ ref?: string;
4
+ value?: string;
5
+ children: SnapshotNode[];
6
+ }
7
+ export declare function parseSnapshot(yamlText: string): SnapshotNode | null;
8
+ export interface LocatorResult {
9
+ js: string;
10
+ pw: string;
11
+ }
12
+ export declare function refToLocator(snapshotYaml: string, ref: string): LocatorResult | null;
13
+ export interface RefLocatorEntry {
14
+ ref: string;
15
+ js: string;
16
+ pw: string;
17
+ }
18
+ export declare function allRefLocators(snapshotYaml: string): RefLocatorEntry[];
19
+ //# sourceMappingURL=snapshot-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-parser.d.ts","sourceRoot":"","sources":["../src/snapshot-parser.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC5B;AAID,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAMnE;AA8BD,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAYpF;AAED,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,EAAE,CAatE"}
@@ -0,0 +1,121 @@
1
+ import yaml from 'js-yaml';
2
+ // ─── Snapshot parsing ───────────────────────────────────────────────────────
3
+ export function parseSnapshot(yamlText) {
4
+ let parsed;
5
+ try {
6
+ parsed = yaml.load(yamlText);
7
+ }
8
+ catch {
9
+ return null;
10
+ }
11
+ if (!Array.isArray(parsed))
12
+ return null;
13
+ const nodes = toNodes(parsed);
14
+ return nodes[0] ?? null;
15
+ }
16
+ function toNodes(parsed) {
17
+ return parsed.map(item => {
18
+ if (typeof item === 'string') {
19
+ return { text: item, ref: extractRef(item), children: [] };
20
+ }
21
+ // Object: { "document [ref=e1]": [...children] } or { "textbox [ref=e5]": "value" }
22
+ const obj = item;
23
+ const key = Object.keys(obj)[0];
24
+ const val = obj[key];
25
+ const isScalar = typeof val === 'string' || typeof val === 'number';
26
+ const children = Array.isArray(val) ? toNodes(val) : [];
27
+ const text = isScalar ? `${key}: ${String(val)}` : key;
28
+ return {
29
+ text,
30
+ ref: extractRef(key),
31
+ value: isScalar ? String(val) : undefined,
32
+ children,
33
+ };
34
+ });
35
+ }
36
+ // "document [ref=e1]" → "e1"
37
+ function extractRef(text) {
38
+ return text.match(/\[ref=(e\d+)\]/)?.[1];
39
+ }
40
+ export function refToLocator(snapshotYaml, ref) {
41
+ const root = parseSnapshot(snapshotYaml);
42
+ if (!root)
43
+ return null;
44
+ const node = findByRef(root, ref);
45
+ if (!node)
46
+ return null;
47
+ const { role, name } = parseRoleName(node.text);
48
+ // Check if role+name is unique in the tree
49
+ const matches = findAllByRoleName(root, role, name);
50
+ const nth = matches.length > 1 ? matches.findIndex(n => n.ref === ref) : -1;
51
+ return buildLocator(role, name, nth >= 0 ? nth : undefined);
52
+ }
53
+ export function allRefLocators(snapshotYaml) {
54
+ const root = parseSnapshot(snapshotYaml);
55
+ if (!root)
56
+ return [];
57
+ const nodes = collectRefNodes(root);
58
+ const results = [];
59
+ for (const node of nodes) {
60
+ const { role, name } = parseRoleName(node.text);
61
+ const matches = findAllByRoleName(root, role, name);
62
+ const nth = matches.length > 1 ? matches.findIndex(n => n.ref === node.ref) : -1;
63
+ const loc = buildLocator(role, name, nth >= 0 ? nth : undefined);
64
+ results.push({ ref: node.ref, ...loc });
65
+ }
66
+ return results;
67
+ }
68
+ function collectRefNodes(node) {
69
+ const nodes = [];
70
+ if (node.ref)
71
+ nodes.push(node);
72
+ for (const child of node.children)
73
+ nodes.push(...collectRefNodes(child));
74
+ return nodes;
75
+ }
76
+ function findByRef(node, ref) {
77
+ if (node.ref === ref)
78
+ return node;
79
+ for (const child of node.children) {
80
+ const found = findByRef(child, ref);
81
+ if (found)
82
+ return found;
83
+ }
84
+ return null;
85
+ }
86
+ function findAllByRoleName(node, role, name) {
87
+ const results = [];
88
+ const { role: r, name: n } = parseRoleName(node.text);
89
+ if (r === role && n === name)
90
+ results.push(node);
91
+ for (const child of node.children) {
92
+ results.push(...findAllByRoleName(child, role, name));
93
+ }
94
+ return results;
95
+ }
96
+ function buildLocator(role, name, nth) {
97
+ const nthJs = nth !== undefined ? `.nth(${nth})` : '';
98
+ const nthPw = nth !== undefined ? ` --nth ${nth}` : '';
99
+ if (name) {
100
+ const escaped = name.replace(/'/g, "\\'");
101
+ return {
102
+ js: `page.getByRole('${role}', { name: '${escaped}', exact: true })${nthJs}`,
103
+ pw: `${role} "${name}"${nthPw}`,
104
+ };
105
+ }
106
+ return {
107
+ js: `page.getByRole('${role}')${nthJs}`,
108
+ pw: `${role}${nthPw}`,
109
+ };
110
+ }
111
+ function parseRoleName(text) {
112
+ // Strip all bracketed attrs including [ref=eN], [level=2], [checked], etc.
113
+ const withoutAttrs = text.replace(/\s*\[.*?\]/g, '').trim();
114
+ // Strip value suffix — e.g. `textbox "Search": dddd` → `textbox "Search"`
115
+ const withoutValue = withoutAttrs.replace(/":\s.*$/, '"');
116
+ const match = withoutValue.match(/^(\S+?)(?:\s+"(.*)")?$/);
117
+ if (!match)
118
+ return { role: text };
119
+ return { role: match[1], name: match[2] };
120
+ }
121
+ //# sourceMappingURL=snapshot-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-parser.js","sourceRoot":"","sources":["../src/snapshot-parser.ts"],"names":[],"mappings":"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"}