@poe-platform/safe-bash 0.1.679 → 0.1.681
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 +1 -1
- package/dist/safe-bash/commands/playwright/index.d.ts.map +1 -1
- package/dist/safe-bash/commands/playwright/index.js +77 -4
- package/dist/safe-bash/commands/playwright/index.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-runtime.js +1 -3
- package/dist/safe-bash/commands/text-programs/awk-runtime.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/regex.d.ts +3 -1
- package/dist/safe-bash/commands/text-programs/regex.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/regex.js +13 -7
- package/dist/safe-bash/commands/text-programs/regex.js.map +1 -1
- package/dist/safe-bash/core.browser.js +12 -9
- package/dist/safe-bash/core.browser.js.map +2 -2
- package/dist/safe-bash/playwright/abilities.d.ts +24 -5
- package/dist/safe-bash/playwright/abilities.d.ts.map +1 -1
- package/dist/safe-bash/playwright/abilities.js +9 -4
- package/dist/safe-bash/playwright/abilities.js.map +1 -1
- package/dist/safe-bash/playwright/ability-execution.d.ts +6 -1
- package/dist/safe-bash/playwright/ability-execution.d.ts.map +1 -1
- package/dist/safe-bash/playwright/ability-execution.js +77 -5
- package/dist/safe-bash/playwright/ability-execution.js.map +1 -1
- package/dist/safe-bash/playwright/adapter.d.ts +467 -11
- package/dist/safe-bash/playwright/adapter.d.ts.map +1 -1
- package/dist/safe-bash/playwright/adapter.js +213 -4
- package/dist/safe-bash/playwright/adapter.js.map +1 -1
- package/dist/safe-bash/playwright/builtins.d.ts +44 -4
- package/dist/safe-bash/playwright/builtins.d.ts.map +1 -1
- package/dist/safe-bash/playwright/builtins.js +14 -9
- package/dist/safe-bash/playwright/builtins.js.map +1 -1
- package/dist/safe-bash/playwright/canonical-locator-parser.d.ts +5 -0
- package/dist/safe-bash/playwright/canonical-locator-parser.d.ts.map +1 -0
- package/dist/safe-bash/playwright/canonical-locator-parser.js +146 -0
- package/dist/safe-bash/playwright/canonical-locator-parser.js.map +1 -0
- package/dist/safe-bash/playwright/capability-events.d.ts +15 -0
- package/dist/safe-bash/playwright/capability-events.d.ts.map +1 -0
- package/dist/safe-bash/playwright/capability-events.js +265 -0
- package/dist/safe-bash/playwright/capability-events.js.map +1 -0
- package/dist/safe-bash/playwright/capability-result.d.ts +33 -0
- package/dist/safe-bash/playwright/capability-result.d.ts.map +1 -0
- package/dist/safe-bash/playwright/capability-result.js +72 -0
- package/dist/safe-bash/playwright/capability-result.js.map +1 -0
- package/dist/safe-bash/playwright/config-ini.d.ts +3 -0
- package/dist/safe-bash/playwright/config-ini.d.ts.map +1 -0
- package/dist/safe-bash/playwright/config-ini.js +161 -0
- package/dist/safe-bash/playwright/config-ini.js.map +1 -0
- package/dist/safe-bash/playwright/controller.d.ts +39 -1
- package/dist/safe-bash/playwright/controller.d.ts.map +1 -1
- package/dist/safe-bash/playwright/controller.js +913 -77
- package/dist/safe-bash/playwright/controller.js.map +1 -1
- package/dist/safe-bash/playwright/devices.d.ts +229 -0
- package/dist/safe-bash/playwright/devices.d.ts.map +1 -0
- package/dist/safe-bash/playwright/devices.js +2740 -0
- package/dist/safe-bash/playwright/devices.js.map +1 -0
- package/dist/safe-bash/playwright/download-capabilities.d.ts +15 -0
- package/dist/safe-bash/playwright/download-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/download-capabilities.js +161 -0
- package/dist/safe-bash/playwright/download-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/drop-capability.d.ts +3 -0
- package/dist/safe-bash/playwright/drop-capability.d.ts.map +1 -0
- package/dist/safe-bash/playwright/drop-capability.js +50 -0
- package/dist/safe-bash/playwright/drop-capability.js.map +1 -0
- package/dist/safe-bash/playwright/find.d.ts +8 -0
- package/dist/safe-bash/playwright/find.d.ts.map +1 -0
- package/dist/safe-bash/playwright/find.js +68 -0
- package/dist/safe-bash/playwright/find.js.map +1 -0
- package/dist/safe-bash/playwright/generated-locator.d.ts +4 -0
- package/dist/safe-bash/playwright/generated-locator.d.ts.map +1 -0
- package/dist/safe-bash/playwright/generated-locator.js +22 -0
- package/dist/safe-bash/playwright/generated-locator.js.map +1 -0
- package/dist/safe-bash/playwright/help.d.ts +4 -3
- package/dist/safe-bash/playwright/help.d.ts.map +1 -1
- package/dist/safe-bash/playwright/help.js +7 -52
- package/dist/safe-bash/playwright/help.js.map +1 -1
- package/dist/safe-bash/playwright/highlight.d.ts +8 -0
- package/dist/safe-bash/playwright/highlight.d.ts.map +1 -0
- package/dist/safe-bash/playwright/highlight.js +82 -0
- package/dist/safe-bash/playwright/highlight.js.map +1 -0
- package/dist/safe-bash/playwright/index.d.ts +5 -0
- package/dist/safe-bash/playwright/index.d.ts.map +1 -1
- package/dist/safe-bash/playwright/index.js +4 -0
- package/dist/safe-bash/playwright/index.js.map +1 -1
- package/dist/safe-bash/playwright/invocation.d.ts +24 -0
- package/dist/safe-bash/playwright/invocation.d.ts.map +1 -1
- package/dist/safe-bash/playwright/invocation.js +42 -10
- package/dist/safe-bash/playwright/invocation.js.map +1 -1
- package/dist/safe-bash/playwright/locator-selector.d.ts +5 -0
- package/dist/safe-bash/playwright/locator-selector.d.ts.map +1 -0
- package/dist/safe-bash/playwright/locator-selector.js +70 -0
- package/dist/safe-bash/playwright/locator-selector.js.map +1 -0
- package/dist/safe-bash/playwright/modal-capabilities.d.ts +20 -0
- package/dist/safe-bash/playwright/modal-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/modal-capabilities.js +137 -0
- package/dist/safe-bash/playwright/modal-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/native-json-snapshot.d.ts +17 -0
- package/dist/safe-bash/playwright/native-json-snapshot.d.ts.map +1 -0
- package/dist/safe-bash/playwright/native-json-snapshot.js +94 -0
- package/dist/safe-bash/playwright/native-json-snapshot.js.map +1 -0
- package/dist/safe-bash/playwright/native-snapshot.d.ts +17 -0
- package/dist/safe-bash/playwright/native-snapshot.d.ts.map +1 -0
- package/dist/safe-bash/playwright/native-snapshot.js +164 -0
- package/dist/safe-bash/playwright/native-snapshot.js.map +1 -0
- package/dist/safe-bash/playwright/network-policy.d.ts +2 -0
- package/dist/safe-bash/playwright/network-policy.d.ts.map +1 -1
- package/dist/safe-bash/playwright/network-policy.js +1 -1
- package/dist/safe-bash/playwright/network-policy.js.map +1 -1
- package/dist/safe-bash/playwright/open-options.d.ts +14 -0
- package/dist/safe-bash/playwright/open-options.d.ts.map +1 -0
- package/dist/safe-bash/playwright/open-options.js +279 -0
- package/dist/safe-bash/playwright/open-options.js.map +1 -0
- package/dist/safe-bash/playwright/recording-capabilities.d.ts +6 -0
- package/dist/safe-bash/playwright/recording-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/recording-capabilities.js +83 -0
- package/dist/safe-bash/playwright/recording-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/resource-limit.d.ts +6 -0
- package/dist/safe-bash/playwright/resource-limit.d.ts.map +1 -0
- package/dist/safe-bash/playwright/resource-limit.js +8 -0
- package/dist/safe-bash/playwright/resource-limit.js.map +1 -0
- package/dist/safe-bash/playwright/response.d.ts +22 -0
- package/dist/safe-bash/playwright/response.d.ts.map +1 -0
- package/dist/safe-bash/playwright/response.js +43 -0
- package/dist/safe-bash/playwright/response.js.map +1 -0
- package/dist/safe-bash/playwright/route-capabilities.d.ts +25 -0
- package/dist/safe-bash/playwright/route-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/route-capabilities.js +138 -0
- package/dist/safe-bash/playwright/route-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/screenshot.d.ts +3 -1
- package/dist/safe-bash/playwright/screenshot.d.ts.map +1 -1
- package/dist/safe-bash/playwright/screenshot.js +15 -12
- package/dist/safe-bash/playwright/screenshot.js.map +1 -1
- package/dist/safe-bash/playwright/session-configuration.d.ts +35 -0
- package/dist/safe-bash/playwright/session-configuration.d.ts.map +1 -0
- package/dist/safe-bash/playwright/session-configuration.js +50 -0
- package/dist/safe-bash/playwright/session-configuration.js.map +1 -0
- package/dist/safe-bash/playwright/session-runtime.d.ts +8 -0
- package/dist/safe-bash/playwright/session-runtime.d.ts.map +1 -0
- package/dist/safe-bash/playwright/session-runtime.js +96 -0
- package/dist/safe-bash/playwright/session-runtime.js.map +1 -0
- package/dist/safe-bash/playwright/snapshot.d.ts +15 -2
- package/dist/safe-bash/playwright/snapshot.d.ts.map +1 -1
- package/dist/safe-bash/playwright/snapshot.js +66 -7
- package/dist/safe-bash/playwright/snapshot.js.map +1 -1
- package/dist/safe-bash/playwright/standard-capabilities.d.ts +4 -0
- package/dist/safe-bash/playwright/standard-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/standard-capabilities.js +248 -0
- package/dist/safe-bash/playwright/standard-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/storage-capabilities.d.ts +4 -0
- package/dist/safe-bash/playwright/storage-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/storage-capabilities.js +120 -0
- package/dist/safe-bash/playwright/storage-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/storage-state.d.ts +8 -0
- package/dist/safe-bash/playwright/storage-state.d.ts.map +1 -0
- package/dist/safe-bash/playwright/storage-state.js +122 -0
- package/dist/safe-bash/playwright/storage-state.js.map +1 -0
- package/dist/safe-bash/playwright/target-screenshot.d.ts +9 -0
- package/dist/safe-bash/playwright/target-screenshot.d.ts.map +1 -0
- package/dist/safe-bash/playwright/target-screenshot.js +28 -0
- package/dist/safe-bash/playwright/target-screenshot.js.map +1 -0
- package/dist/safe-bash/playwright/targets.d.ts +12 -0
- package/dist/safe-bash/playwright/targets.d.ts.map +1 -0
- package/dist/safe-bash/playwright/targets.js +36 -0
- package/dist/safe-bash/playwright/targets.js.map +1 -0
- package/dist/safe-bash/playwright/tracing-capabilities.d.ts +12 -0
- package/dist/safe-bash/playwright/tracing-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/tracing-capabilities.js +100 -0
- package/dist/safe-bash/playwright/tracing-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/webmcp-capabilities.d.ts +6 -0
- package/dist/safe-bash/playwright/webmcp-capabilities.d.ts.map +1 -0
- package/dist/safe-bash/playwright/webmcp-capabilities.js +122 -0
- package/dist/safe-bash/playwright/webmcp-capabilities.js.map +1 -0
- package/dist/safe-bash/playwright/workspace-assets.d.ts +5 -0
- package/dist/safe-bash/playwright/workspace-assets.d.ts.map +1 -0
- package/dist/safe-bash/playwright/workspace-assets.js +17 -0
- package/dist/safe-bash/playwright/workspace-assets.js.map +1 -0
- package/dist/safe-bash/playwright/workspace.d.ts +3 -0
- package/dist/safe-bash/playwright/workspace.d.ts.map +1 -0
- package/dist/safe-bash/playwright/workspace.js +48 -0
- package/dist/safe-bash/playwright/workspace.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../src/playwright/highlight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG5E;gFACgF;AAChF,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,uBAAuB,GAAG,SAAS,EAAE,OAAO,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D5K"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
2
|
+
/** Older Cloudflare clients have only a single temporary native highlight. This
|
|
3
|
+
* page-owned overlay supplies persistent styling/removal with no host state. */
|
|
4
|
+
export async function updatePlaywrightHighlight(page, target, options) {
|
|
5
|
+
const update = (input) => {
|
|
6
|
+
const browser = globalThis;
|
|
7
|
+
const key = Symbol.for('safe-bash.playwright.highlights');
|
|
8
|
+
let state = Reflect.get(globalThis, key);
|
|
9
|
+
const element = input.target;
|
|
10
|
+
if (input.hide) {
|
|
11
|
+
if (!state)
|
|
12
|
+
return true;
|
|
13
|
+
for (const [node, entry] of state.entries)
|
|
14
|
+
if (!element || node === element) {
|
|
15
|
+
entry.overlay.remove();
|
|
16
|
+
state.entries.delete(node);
|
|
17
|
+
}
|
|
18
|
+
if (!state.entries.size) {
|
|
19
|
+
browser.removeEventListener('scroll', state.refresh, true);
|
|
20
|
+
browser.removeEventListener('resize', state.refresh);
|
|
21
|
+
Reflect.deleteProperty(globalThis, key);
|
|
22
|
+
}
|
|
23
|
+
return true;
|
|
24
|
+
}
|
|
25
|
+
if (!element?.isConnected)
|
|
26
|
+
throw new Error('Highlight target is detached');
|
|
27
|
+
if (!state) {
|
|
28
|
+
const entries = new Map();
|
|
29
|
+
const holder = { entries, refresh() {
|
|
30
|
+
for (const entry of entries.values()) {
|
|
31
|
+
if (!entry.target.isConnected) {
|
|
32
|
+
entry.overlay.remove();
|
|
33
|
+
entries.delete(entry.target);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
const box = entry.target.getBoundingClientRect();
|
|
37
|
+
Object.assign(entry.overlay.style, { left: `${box.x}px`, top: `${box.y}px`, width: `${box.width}px`, height: `${box.height}px` });
|
|
38
|
+
}
|
|
39
|
+
} };
|
|
40
|
+
state = holder;
|
|
41
|
+
Reflect.set(globalThis, key, state);
|
|
42
|
+
browser.addEventListener('scroll', holder.refresh, true);
|
|
43
|
+
browser.addEventListener('resize', holder.refresh);
|
|
44
|
+
}
|
|
45
|
+
if (!state.entries.has(element) && state.entries.size >= 128)
|
|
46
|
+
return false;
|
|
47
|
+
let entry = state.entries.get(element);
|
|
48
|
+
if (!entry) {
|
|
49
|
+
const overlay = browser.document.createElement('div');
|
|
50
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
51
|
+
entry = { target: element, overlay };
|
|
52
|
+
state.entries.set(element, entry);
|
|
53
|
+
browser.document.documentElement.appendChild(overlay);
|
|
54
|
+
}
|
|
55
|
+
entry.overlay.style.cssText = 'position:fixed;pointer-events:none;z-index:2147483647;box-sizing:border-box;outline:2px solid #1a73e8;background:#1a73e833;' + (input.style ?? '');
|
|
56
|
+
state.refresh();
|
|
57
|
+
return true;
|
|
58
|
+
};
|
|
59
|
+
let result;
|
|
60
|
+
if (target)
|
|
61
|
+
result = await target.evaluate((node, { source, hide, style }) => {
|
|
62
|
+
const operation = eval(`(${source})`);
|
|
63
|
+
return operation({ target: node, hide, ...(style === undefined ? {} : { style }) });
|
|
64
|
+
}, { source: update.toString(), hide: options.hide, style: options.style });
|
|
65
|
+
else {
|
|
66
|
+
if (!page.evaluate)
|
|
67
|
+
throw new Error('Browser highlight evaluation unavailable');
|
|
68
|
+
const input = { target: undefined, hide: options.hide, ...(options.style === undefined ? {} : { style: options.style }) };
|
|
69
|
+
const frames = page.frames?.();
|
|
70
|
+
if (frames?.length && frames.every(frame => frame.evaluate)) {
|
|
71
|
+
result = true;
|
|
72
|
+
for (const frame of frames)
|
|
73
|
+
if (!await frame.evaluate(update, input))
|
|
74
|
+
result = false;
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
result = await page.evaluate(update, input);
|
|
78
|
+
}
|
|
79
|
+
if (!result)
|
|
80
|
+
throw new PlaywrightResourceLimitError('Playwright highlight retention limit exceeded');
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=highlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../src/playwright/highlight.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@ export * from './billing.js';
|
|
|
3
3
|
export * from './controller.js';
|
|
4
4
|
export * from './catalog.js';
|
|
5
5
|
export * from './network-policy.js';
|
|
6
|
+
export { parsePlaywrightStorageState } from './storage-state.js';
|
|
7
|
+
export { parsePlaywrightContextOptions } from './open-options.js';
|
|
8
|
+
export { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
9
|
+
export { parsePlaywrightSessionConfiguration, type PlaywrightSessionConfiguration } from './session-configuration.js';
|
|
10
|
+
export type { PlaywrightCommandResult } from './response.js';
|
|
6
11
|
export type { PlaywrightAbilities, PlaywrightAbility, PlaywrightAbilityRequest } from './abilities.js';
|
|
7
12
|
export type { PlaywrightInvocation } from './invocation.js';
|
|
8
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/playwright/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACvG,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/playwright/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mCAAmC,EAAE,KAAK,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACtH,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACvG,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -3,4 +3,8 @@ export * from './billing.js';
|
|
|
3
3
|
export * from './controller.js';
|
|
4
4
|
export * from './catalog.js';
|
|
5
5
|
export * from './network-policy.js';
|
|
6
|
+
export { parsePlaywrightStorageState } from './storage-state.js';
|
|
7
|
+
export { parsePlaywrightContextOptions } from './open-options.js';
|
|
8
|
+
export { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
9
|
+
export { parsePlaywrightSessionConfiguration } from './session-configuration.js';
|
|
6
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/playwright/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/playwright/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,mCAAmC,EAAuC,MAAM,4BAA4B,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { BrowserEngine, PlaywrightAdapter } from './adapter.js';
|
|
2
2
|
import { type PlaywrightCommand } from './catalog.js';
|
|
3
3
|
import type { RegisteredPlaywrightAbility } from './abilities.js';
|
|
4
|
+
import type { PlaywrightMouseButton, PlaywrightModifier } from './adapter.js';
|
|
4
5
|
export interface PlaywrightInvocation {
|
|
5
6
|
readonly args: readonly string[];
|
|
6
7
|
readonly env: Readonly<Record<string, string>>;
|
|
@@ -9,9 +10,23 @@ export interface PlaywrightInvocation {
|
|
|
9
10
|
readonly readArtifact?: ((filename: string, maxBytes: number) => Promise<Uint8Array>) | undefined;
|
|
10
11
|
readonly writeArtifact?: ((bytes: Uint8Array, filename?: string) => Promise<void>) | undefined;
|
|
11
12
|
readonly registerCleanup?: ((cleanup: () => Promise<void>) => void) | undefined;
|
|
13
|
+
readonly workspace?: {
|
|
14
|
+
readonly cwd: string;
|
|
15
|
+
readonly home?: string;
|
|
16
|
+
mkdir(path: string): Promise<void>;
|
|
17
|
+
exists(path: string): Promise<boolean>;
|
|
18
|
+
listFiles?(directory: string, maxEntries: number): Promise<readonly {
|
|
19
|
+
readonly filename: string;
|
|
20
|
+
readonly size: number;
|
|
21
|
+
readonly mtimeMs: number;
|
|
22
|
+
}[]>;
|
|
23
|
+
removeFile?(filename: string): Promise<void>;
|
|
24
|
+
};
|
|
12
25
|
}
|
|
13
26
|
export type ParsedInvocation = {
|
|
14
27
|
command: PlaywrightCommand;
|
|
28
|
+
json: boolean;
|
|
29
|
+
raw: boolean;
|
|
15
30
|
session: string;
|
|
16
31
|
args: readonly string[];
|
|
17
32
|
options: Readonly<Record<string, string | boolean | readonly string[]>>;
|
|
@@ -24,10 +39,19 @@ export type ParsedInvocation = {
|
|
|
24
39
|
filename?: string;
|
|
25
40
|
fullPage: boolean;
|
|
26
41
|
imageType: 'png' | 'jpeg';
|
|
42
|
+
button?: PlaywrightMouseButton;
|
|
43
|
+
modifiers?: PlaywrightModifier[];
|
|
44
|
+
scale: 'css' | 'device';
|
|
27
45
|
};
|
|
28
46
|
export declare function validatePlaywrightSessionName(session: unknown): asserts session is string;
|
|
29
47
|
export declare function parseInvocation(invocation: PlaywrightInvocation, abilities: ReadonlyMap<PlaywrightCommand, RegisteredPlaywrightAbility>, adapter?: PlaywrightAdapter): ParsedInvocation | {
|
|
30
48
|
command: 'help';
|
|
31
49
|
topic?: PlaywrightCommand | 'tab';
|
|
50
|
+
json: boolean;
|
|
51
|
+
raw: boolean;
|
|
52
|
+
} | {
|
|
53
|
+
command: 'version';
|
|
54
|
+
json: boolean;
|
|
55
|
+
raw: boolean;
|
|
32
56
|
};
|
|
33
57
|
//# sourceMappingURL=invocation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../src/playwright/invocation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,EAA4B,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IAClG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAC/F,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"invocation.d.ts","sourceRoot":"","sources":["../../src/playwright/invocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { playwrightCommandCatalog } from './catalog.js';
|
|
2
|
+
import { playwrightCommandReference } from './command-reference.js';
|
|
2
3
|
export function validatePlaywrightSessionName(session) {
|
|
3
4
|
if (typeof session !== 'string' || !session || session.length > 128 || [...session].some(char => !'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'.includes(char)))
|
|
4
5
|
throw new Error('Invalid session name');
|
|
@@ -9,6 +10,8 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
9
10
|
const knownOptions = new Map(Object.values(playwrightCommandCatalog).flatMap(command => Object.entries(command.options)));
|
|
10
11
|
knownOptions.set('headless', { type: 'boolean', description: '' });
|
|
11
12
|
knownOptions.set('session', { type: 'string', description: '' });
|
|
13
|
+
for (const flag of ['json', 'raw', 'version'])
|
|
14
|
+
knownOptions.set(flag, { type: 'boolean', description: '' });
|
|
12
15
|
let help = false;
|
|
13
16
|
let literal = false;
|
|
14
17
|
for (let index = 0; index < invocation.args.length; index++) {
|
|
@@ -26,14 +29,14 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
26
29
|
}
|
|
27
30
|
const separator = arg.indexOf('=');
|
|
28
31
|
const flag = separator === -1 ? arg : arg.slice(0, separator);
|
|
29
|
-
const key = flag === '-s' ? 'session' : flag === '-g' ? 'global' : flag.slice(2);
|
|
32
|
+
const key = flag === '-s' ? 'session' : flag === '-g' ? 'global' : flag === '-v' ? 'version' : flag.slice(2);
|
|
30
33
|
if ((flag === '-h' || flag === '--help') && separator === -1) {
|
|
31
34
|
help = true;
|
|
32
35
|
continue;
|
|
33
36
|
}
|
|
34
37
|
const definition = knownOptions.get(key);
|
|
35
|
-
if (!definition || flag !== '-s' && flag !== '-g' && !flag.startsWith('--'))
|
|
36
|
-
throw new Error(`
|
|
38
|
+
if (!definition || flag !== '-s' && flag !== '-g' && flag !== '-v' && !flag.startsWith('--'))
|
|
39
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
37
40
|
let value;
|
|
38
41
|
if (definition.type === 'boolean') {
|
|
39
42
|
if (separator !== -1)
|
|
@@ -57,17 +60,23 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
57
60
|
help = true;
|
|
58
61
|
positional.shift();
|
|
59
62
|
}
|
|
60
|
-
|
|
63
|
+
const json = supplied.has('json');
|
|
64
|
+
const raw = supplied.has('raw');
|
|
65
|
+
if (supplied.has('version'))
|
|
66
|
+
return { command: 'version', json, raw };
|
|
67
|
+
supplied.delete('json');
|
|
68
|
+
supplied.delete('raw');
|
|
69
|
+
if (!positional.length)
|
|
61
70
|
help = true;
|
|
62
71
|
if (help && (positional.length === 0 || positional.length === 1 && positional[0] === 'tab'))
|
|
63
|
-
return { command: 'help', ...(positional[0] === 'tab' ? { topic: 'tab' } : {}) };
|
|
72
|
+
return { command: 'help', json, raw, ...(positional[0] === 'tab' ? { topic: 'tab' } : {}) };
|
|
64
73
|
if (positional[0] === 'tab')
|
|
65
74
|
positional.splice(0, 2, `tab-${positional[1] ?? ''}`);
|
|
66
75
|
const command = positional.shift();
|
|
67
76
|
if (!Object.hasOwn(playwrightCommandCatalog, command))
|
|
68
77
|
throw new Error(`Unsupported command: ${command ?? ''}`);
|
|
69
78
|
if (help)
|
|
70
|
-
return { command: 'help', topic: command };
|
|
79
|
+
return { command: 'help', topic: command, json, raw };
|
|
71
80
|
const ability = abilities.get(command);
|
|
72
81
|
if (!ability)
|
|
73
82
|
throw new Error(`Playwright ability not enabled: ${command}`);
|
|
@@ -89,10 +98,11 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
89
98
|
const [min, max] = ability.arity;
|
|
90
99
|
if (positional.length < min || positional.length > max)
|
|
91
100
|
throw new Error(`Invalid arguments for ${command}`);
|
|
92
|
-
const
|
|
101
|
+
const reference = playwrightCommandReference[command];
|
|
102
|
+
const parsed = { command, json, raw: raw || ('raw' in reference && reference.raw), session, args: Object.freeze(positional), options: Object.freeze(options), browser: 'chromium', headless: true, fullPage: false, imageType: 'png', scale: 'css' };
|
|
93
103
|
if (ability.execute)
|
|
94
104
|
return parsed;
|
|
95
|
-
const browser = options.browser ?? 'chromium';
|
|
105
|
+
const browser = options.browser === 'chrome' ? 'chromium' : options.browser ?? 'chromium';
|
|
96
106
|
if (browser !== 'chromium' && browser !== 'firefox' && browser !== 'webkit')
|
|
97
107
|
throw new Error(`Unsupported browser: ${browser}`);
|
|
98
108
|
parsed.browser = browser;
|
|
@@ -100,6 +110,7 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
100
110
|
throw new Error('Invalid option: --headless');
|
|
101
111
|
parsed.headless = !options.headed;
|
|
102
112
|
parsed.fullPage = options['full-page'] === true;
|
|
113
|
+
parsed.scale = options.hires ? 'device' : 'css';
|
|
103
114
|
if (options.filename !== undefined) {
|
|
104
115
|
const filename = options.filename;
|
|
105
116
|
if (!filename)
|
|
@@ -126,6 +137,17 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
126
137
|
else if (!lower.endsWith('.png'))
|
|
127
138
|
throw new Error('Unsupported screenshot extension; use png or jpeg');
|
|
128
139
|
}
|
|
140
|
+
if (command === 'screenshot') {
|
|
141
|
+
if (options.type !== undefined) {
|
|
142
|
+
if (options.type !== 'png' && options.type !== 'jpeg')
|
|
143
|
+
throw new Error(`Unsupported screenshot type: ${String(options.type)}`);
|
|
144
|
+
parsed.imageType = options.type;
|
|
145
|
+
}
|
|
146
|
+
if (positional[0])
|
|
147
|
+
parsed.ref = positional[0];
|
|
148
|
+
if (parsed.ref && parsed.fullPage)
|
|
149
|
+
throw new Error('fullPage cannot be used with element screenshots.');
|
|
150
|
+
}
|
|
129
151
|
const url = command === 'open' || command === 'goto' || command === 'tab-new' ? positional[0] : undefined;
|
|
130
152
|
if (url !== undefined) {
|
|
131
153
|
const parsedUrl = new URL(url);
|
|
@@ -135,10 +157,20 @@ export function parseInvocation(invocation, abilities, adapter) {
|
|
|
135
157
|
}
|
|
136
158
|
if (command === 'click' || command === 'fill') {
|
|
137
159
|
const ref = positional[0];
|
|
138
|
-
if (ref
|
|
139
|
-
throw new Error('
|
|
160
|
+
if (!ref)
|
|
161
|
+
throw new Error('Missing target');
|
|
140
162
|
parsed.ref = ref;
|
|
141
163
|
}
|
|
164
|
+
if (command === 'click') {
|
|
165
|
+
const button = positional[1] ?? 'left';
|
|
166
|
+
if (!['left', 'right', 'middle'].includes(button))
|
|
167
|
+
throw new Error(`Unknown mouse button: ${button}`);
|
|
168
|
+
parsed.button = button;
|
|
169
|
+
const modifiers = options.modifiers === undefined ? [] : typeof options.modifiers === 'string' ? [options.modifiers] : options.modifiers;
|
|
170
|
+
if (!Array.isArray(modifiers) || modifiers.some(modifier => !['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift'].includes(modifier)))
|
|
171
|
+
throw new Error('Invalid click modifiers');
|
|
172
|
+
parsed.modifiers = modifiers;
|
|
173
|
+
}
|
|
142
174
|
if (command === 'fill')
|
|
143
175
|
parsed.value = positional[1];
|
|
144
176
|
if (command === 'press') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/playwright/invocation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/playwright/invocation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PlaywrightPage } from './adapter.js';
|
|
2
|
+
export declare function setPlaywrightTestIdAttribute(page: PlaywrightPage, attribute: string | undefined): void;
|
|
3
|
+
/** Parse standard generated locator syntax without evaluating agent code. */
|
|
4
|
+
export declare function playwrightLocatorSelector(page: PlaywrightPage, target: string): string;
|
|
5
|
+
//# sourceMappingURL=locator-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locator-selector.d.ts","sourceRoot":"","sources":["../../src/playwright/locator-selector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAItG;AAoCD,6EAA6E;AAC7E,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQtF"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { parseCanonicalPlaywrightLocator } from './canonical-locator-parser.js';
|
|
2
|
+
const testIdAttributes = new WeakMap();
|
|
3
|
+
export function setPlaywrightTestIdAttribute(page, attribute) {
|
|
4
|
+
const key = page.mainFrame?.() ?? page;
|
|
5
|
+
if (attribute === undefined)
|
|
6
|
+
testIdAttributes.delete(key);
|
|
7
|
+
else
|
|
8
|
+
testIdAttributes.set(key, attribute);
|
|
9
|
+
}
|
|
10
|
+
// The native generator prefers locator(...).contentFrame(); the CLI also
|
|
11
|
+
// accepts the equivalent frameLocator(...) spelling, including nth/first/last.
|
|
12
|
+
function normalizeFrameAliases(value) {
|
|
13
|
+
let output = '', start = 0, quote = '', escaped = false;
|
|
14
|
+
for (let index = 0; index < value.length; index++) {
|
|
15
|
+
const char = value[index];
|
|
16
|
+
if (quote) {
|
|
17
|
+
if (escaped)
|
|
18
|
+
escaped = false;
|
|
19
|
+
else if (char === '\\')
|
|
20
|
+
escaped = true;
|
|
21
|
+
else if (char === quote)
|
|
22
|
+
quote = '';
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if ('\'"`/'.includes(char)) {
|
|
26
|
+
quote = char;
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (!value.startsWith('locator(', index) || index && value[index - 1] !== '.')
|
|
30
|
+
continue;
|
|
31
|
+
let depth = 1, end = index + 'locator('.length, innerQuote = '', innerEscaped = false;
|
|
32
|
+
for (; end < value.length; end++) {
|
|
33
|
+
const next = value[end];
|
|
34
|
+
if (innerQuote) {
|
|
35
|
+
if (innerEscaped)
|
|
36
|
+
innerEscaped = false;
|
|
37
|
+
else if (next === '\\')
|
|
38
|
+
innerEscaped = true;
|
|
39
|
+
else if (next === innerQuote)
|
|
40
|
+
innerQuote = '';
|
|
41
|
+
}
|
|
42
|
+
else if ('\'"`/'.includes(next))
|
|
43
|
+
innerQuote = next;
|
|
44
|
+
else if (next === '(')
|
|
45
|
+
depth++;
|
|
46
|
+
else if (next === ')' && --depth === 0)
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
const suffix = value.slice(end + 1).match(/^(\.(?:first|last)\(\)|\.nth\(-?\d+\))?\.contentFrame\(\)/);
|
|
50
|
+
if (!suffix)
|
|
51
|
+
continue;
|
|
52
|
+
output += value.slice(start, index) + 'frameLocator' + value.slice(index + 'locator'.length, end + 1) + (suffix[1] ?? '');
|
|
53
|
+
index = end + suffix[0].length;
|
|
54
|
+
start = index + 1;
|
|
55
|
+
}
|
|
56
|
+
return output + value.slice(start);
|
|
57
|
+
}
|
|
58
|
+
/** Parse standard generated locator syntax without evaluating agent code. */
|
|
59
|
+
export function playwrightLocatorSelector(page, target) {
|
|
60
|
+
const expression = target.trim();
|
|
61
|
+
const method = expression.slice(0, expression.indexOf('(')).trim();
|
|
62
|
+
if (!['locator', 'frameLocator', 'getByRole', 'getByText', 'getByLabel', 'getByPlaceholder', 'getByAltText', 'getByTitle', 'getByTestId'].includes(method))
|
|
63
|
+
return target;
|
|
64
|
+
const { selector } = parseCanonicalPlaywrightLocator(expression, testIdAttributes.get(page.mainFrame?.() ?? page));
|
|
65
|
+
const digest = (value) => normalizeFrameAliases(value.replace(/\s/g, '')).replace(/\\?["`]/g, "'").replace(/,\{\}/g, '');
|
|
66
|
+
if (digest(page.locator(selector).toString()) !== digest(expression))
|
|
67
|
+
throw new Error(`Invalid Playwright locator: ${target}`);
|
|
68
|
+
return selector;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=locator-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locator-selector.js","sourceRoot":"","sources":["../../src/playwright/locator-selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PlaywrightAbility, PlaywrightAbilityRequest } from './abilities.js';
|
|
2
|
+
import type { PlaywrightContext, PlaywrightDialog, PlaywrightFileChooser, PlaywrightPage } from './adapter.js';
|
|
3
|
+
import type { PlaywrightCommand } from './catalog.js';
|
|
4
|
+
export type PlaywrightModal = {
|
|
5
|
+
kind: 'dialog';
|
|
6
|
+
dialog: PlaywrightDialog;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'filechooser';
|
|
9
|
+
fileChooser: PlaywrightFileChooser;
|
|
10
|
+
};
|
|
11
|
+
export declare function getPlaywrightModal(page: PlaywrightPage): PlaywrightModal | undefined;
|
|
12
|
+
export declare function onPlaywrightModal(page: PlaywrightPage, listener: (modal: PlaywrightModal | undefined) => void): () => void;
|
|
13
|
+
export declare function observePlaywrightModals(context: PlaywrightContext, registerCleanup: (cleanup: () => Promise<void>) => void): void;
|
|
14
|
+
export declare function readPlaywrightFiles(request: PlaywrightAbilityRequest, paths: readonly string[]): Promise<{
|
|
15
|
+
name: string;
|
|
16
|
+
mimeType: string;
|
|
17
|
+
buffer: Uint8Array;
|
|
18
|
+
}[]>;
|
|
19
|
+
export declare const playwrightModalAbilities: Partial<Record<PlaywrightCommand, PlaywrightAbility>>;
|
|
20
|
+
//# sourceMappingURL=modal-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-capabilities.d.ts","sourceRoot":"","sources":["../../src/playwright/modal-capabilities.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAItD,MAAM,MAAM,eAAe,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAazI,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAA6C;AAClI,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAI1H;AAQD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,IAAI,CAkCjI;AAYD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,EAAE,CAAC,CAaxK;AAqBD,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAG1F,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
2
|
+
import { capabilityResult, requirePage, requireSession, unsupported } from './capability-result.js';
|
|
3
|
+
import { basename } from '../contracts/path.js';
|
|
4
|
+
const pages = new WeakMap();
|
|
5
|
+
const contexts = new WeakSet();
|
|
6
|
+
function identity(page) { return page.mainFrame?.() ?? page; }
|
|
7
|
+
function state(page) {
|
|
8
|
+
const key = identity(page);
|
|
9
|
+
let result = pages.get(key);
|
|
10
|
+
if (!result) {
|
|
11
|
+
result = { listeners: new Set() };
|
|
12
|
+
pages.set(key, result);
|
|
13
|
+
}
|
|
14
|
+
return result;
|
|
15
|
+
}
|
|
16
|
+
export function getPlaywrightModal(page) { return pages.get(identity(page))?.modal; }
|
|
17
|
+
export function onPlaywrightModal(page, listener) {
|
|
18
|
+
const current = state(page);
|
|
19
|
+
current.listeners.add(listener);
|
|
20
|
+
return () => { current.listeners.delete(listener); };
|
|
21
|
+
}
|
|
22
|
+
function update(page, modal) {
|
|
23
|
+
const current = state(page);
|
|
24
|
+
if (modal)
|
|
25
|
+
current.modal = modal;
|
|
26
|
+
else
|
|
27
|
+
delete current.modal;
|
|
28
|
+
for (const listener of current.listeners)
|
|
29
|
+
listener(modal);
|
|
30
|
+
}
|
|
31
|
+
export function observePlaywrightModals(context, registerCleanup) {
|
|
32
|
+
if (contexts.has(context))
|
|
33
|
+
return;
|
|
34
|
+
contexts.add(context);
|
|
35
|
+
const observed = new Map();
|
|
36
|
+
let closed = false;
|
|
37
|
+
const attach = (page) => {
|
|
38
|
+
if (closed || observed.has(identity(page)))
|
|
39
|
+
return;
|
|
40
|
+
state(page);
|
|
41
|
+
const chooser = (fileChooser) => { if (!closed)
|
|
42
|
+
update(page, { kind: 'filechooser', fileChooser }); };
|
|
43
|
+
const close = () => { update(page, undefined); };
|
|
44
|
+
observed.set(identity(page), { page, chooser, close });
|
|
45
|
+
page.on?.('filechooser', chooser);
|
|
46
|
+
page.on?.('close', close);
|
|
47
|
+
};
|
|
48
|
+
const dialog = (dialog) => {
|
|
49
|
+
const page = dialog.page();
|
|
50
|
+
if (!closed && page) {
|
|
51
|
+
attach(page);
|
|
52
|
+
update(page, { kind: 'dialog', dialog });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
const close = async () => {
|
|
56
|
+
if (closed)
|
|
57
|
+
return;
|
|
58
|
+
closed = true;
|
|
59
|
+
context.off('page', attach);
|
|
60
|
+
context.off('dialog', dialog);
|
|
61
|
+
for (const [key, { page, chooser, close }] of observed) {
|
|
62
|
+
page.off?.('filechooser', chooser);
|
|
63
|
+
page.off?.('close', close);
|
|
64
|
+
update(page, undefined);
|
|
65
|
+
pages.delete(key);
|
|
66
|
+
}
|
|
67
|
+
observed.clear();
|
|
68
|
+
contexts.delete(context);
|
|
69
|
+
};
|
|
70
|
+
registerCleanup(close);
|
|
71
|
+
try {
|
|
72
|
+
context.on('page', attach);
|
|
73
|
+
context.on('dialog', dialog);
|
|
74
|
+
for (const page of context.pages())
|
|
75
|
+
attach(page);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
void close();
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const dialog = { scope: 'session', async execute(request) {
|
|
83
|
+
const page = requirePage(request);
|
|
84
|
+
const modal = getPlaywrightModal(page);
|
|
85
|
+
if (modal?.kind !== 'dialog')
|
|
86
|
+
throw new Error('No dialog visible');
|
|
87
|
+
if (request.command === 'dialog-accept')
|
|
88
|
+
await modal.dialog.accept(request.args[0]);
|
|
89
|
+
else
|
|
90
|
+
await modal.dialog.dismiss();
|
|
91
|
+
if (getPlaywrightModal(page) === modal)
|
|
92
|
+
update(page, undefined);
|
|
93
|
+
return capabilityResult('');
|
|
94
|
+
} };
|
|
95
|
+
export async function readPlaywrightFiles(request, paths) {
|
|
96
|
+
const maximum = Math.min(request.limits?.maxArtifactBytes ?? 8 * 1024 * 1024, request.limits?.maxCommandBytes ?? 1048576);
|
|
97
|
+
const files = [];
|
|
98
|
+
let total = 0;
|
|
99
|
+
for (const path of paths) {
|
|
100
|
+
request.signal.throwIfAborted();
|
|
101
|
+
const bytes = await request.readFile(path);
|
|
102
|
+
total += bytes.byteLength;
|
|
103
|
+
if (total > maximum)
|
|
104
|
+
throw new PlaywrightResourceLimitError('Playwright upload byte limit exceeded');
|
|
105
|
+
// Empty MIME delegates filename inference to the native Playwright provider.
|
|
106
|
+
files.push({ name: basename(path), mimeType: '', buffer: bytes });
|
|
107
|
+
}
|
|
108
|
+
return files;
|
|
109
|
+
}
|
|
110
|
+
const upload = { scope: 'session', async execute(request) {
|
|
111
|
+
const page = requirePage(request);
|
|
112
|
+
const modal = getPlaywrightModal(page);
|
|
113
|
+
if (modal?.kind !== 'filechooser')
|
|
114
|
+
throw new Error('No file chooser visible');
|
|
115
|
+
if (!modal.fileChooser.isMultiple() && request.args.length > 1)
|
|
116
|
+
throw new Error('Non-multiple file input can only accept a single file');
|
|
117
|
+
const session = requireSession(request);
|
|
118
|
+
if (!session.prepareFileBytes)
|
|
119
|
+
unsupported('native upload buffers');
|
|
120
|
+
const files = await readPlaywrightFiles(request, request.args);
|
|
121
|
+
request.signal.throwIfAborted();
|
|
122
|
+
const nativeFiles = files.map(file => {
|
|
123
|
+
const buffer = session.prepareFileBytes(file.buffer);
|
|
124
|
+
if (!(buffer instanceof Uint8Array) || buffer.byteLength !== file.buffer.byteLength)
|
|
125
|
+
throw new Error('Invalid native Playwright file buffer');
|
|
126
|
+
return { ...file, buffer };
|
|
127
|
+
});
|
|
128
|
+
await modal.fileChooser.setFiles(nativeFiles, { timeout: request.limits?.actionTimeoutMs ?? 30000 });
|
|
129
|
+
if (getPlaywrightModal(page) === modal)
|
|
130
|
+
update(page, undefined);
|
|
131
|
+
return capabilityResult(`await fileChooser.setFiles(${JSON.stringify(request.args)})`);
|
|
132
|
+
} };
|
|
133
|
+
export const playwrightModalAbilities = {
|
|
134
|
+
'dialog-accept': dialog, 'dialog-dismiss': dialog,
|
|
135
|
+
upload,
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=modal-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-capabilities.js","sourceRoot":"","sources":["../../src/playwright/modal-capabilities.ts"],"names":[],"mappings":"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"}
|