@poe-platform/safe-bash 0.1.680 → 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/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
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { createFrameSnapshot } from './frame-snapshot.js';
|
|
2
|
+
import { captureNativePlaywrightSnapshot } from './native-snapshot.js';
|
|
3
|
+
import { captureNativePlaywrightJSON } from './native-json-snapshot.js';
|
|
2
4
|
export function createSnapshotEngine(limits, nextRef) {
|
|
3
5
|
for (const value of [limits?.maxSnapshotBytes, limits?.maxSnapshotRefs])
|
|
4
6
|
if (!Number.isSafeInteger(value) || value < 1)
|
|
@@ -72,8 +74,24 @@ export function createSnapshotEngine(limits, nextRef) {
|
|
|
72
74
|
await retire([]);
|
|
73
75
|
}
|
|
74
76
|
};
|
|
75
|
-
const capture = async (page, signal) => {
|
|
77
|
+
const capture = async (page, signal, options = {}) => {
|
|
76
78
|
signal?.throwIfAborted();
|
|
79
|
+
if (!page.ariaSnapshot && !page._snapshotForAI && (options.root || options.depth || options.boxes))
|
|
80
|
+
throw new Error('Native snapshot options unsupported by this browser');
|
|
81
|
+
if (page.ariaSnapshot || page._snapshotForAI) {
|
|
82
|
+
await invalidate();
|
|
83
|
+
const capturedEpoch = epoch;
|
|
84
|
+
const captured = await captureNativePlaywrightSnapshot(page, { maxBytes: maxSnapshotBytes, maxRefs: maxSnapshotRefs,
|
|
85
|
+
nextRef: nextRef ?? (() => `e${++sequence}`), ...(signal ? { signal } : {}),
|
|
86
|
+
...options,
|
|
87
|
+
});
|
|
88
|
+
signal?.throwIfAborted();
|
|
89
|
+
if (capturedEpoch !== epoch)
|
|
90
|
+
throw new Error('Snapshot stale during capture');
|
|
91
|
+
for (const [issued, ref] of captured.refs)
|
|
92
|
+
refs.set(issued, { kind: 'native', page, ref });
|
|
93
|
+
return captured.text;
|
|
94
|
+
}
|
|
77
95
|
if (typeof page.frames !== 'function')
|
|
78
96
|
throw new Error('Snapshot engine unsupported: public frame evaluation required');
|
|
79
97
|
const frames = page.frames();
|
|
@@ -96,26 +114,26 @@ export function createSnapshotEngine(limits, nextRef) {
|
|
|
96
114
|
signal?.throwIfAborted();
|
|
97
115
|
const admission = await capsule.evaluate(value => ({ status: value.status, count: value.count }), undefined);
|
|
98
116
|
if (admission.status === 'ref-limit' || admission.count > maxSnapshotRefs - pending.size)
|
|
99
|
-
throw new
|
|
117
|
+
throw new PlaywrightResourceLimitError('Snapshot ref limit exceeded');
|
|
100
118
|
if (admission.status !== 'ok' || !Number.isSafeInteger(admission.count) || admission.count < 0)
|
|
101
119
|
throw new Error('Snapshot capture failed');
|
|
102
120
|
const frameRefs = [];
|
|
103
121
|
for (let slot = 0; slot < admission.count; slot++) {
|
|
104
122
|
const ref = nextRef?.() ?? `e${++sequence}`;
|
|
105
123
|
frameRefs.push(ref);
|
|
106
|
-
pending.set(ref, { capsule, slot });
|
|
124
|
+
pending.set(ref, { kind: 'capsule', capsule, slot });
|
|
107
125
|
}
|
|
108
126
|
signal?.throwIfAborted();
|
|
109
127
|
const rendered = await capsule.evaluate((value, frameRefs) => value.render(frameRefs), frameRefs);
|
|
110
128
|
if (rendered.status === 'byte-limit')
|
|
111
|
-
throw new
|
|
129
|
+
throw new PlaywrightResourceLimitError('Snapshot byte limit exceeded');
|
|
112
130
|
if (rendered.status !== 'ok' || typeof rendered.text !== 'string')
|
|
113
131
|
throw new Error('Snapshot capture failed');
|
|
114
132
|
if (rendered.text.length > maxSnapshotBytes - bytes)
|
|
115
|
-
throw new
|
|
133
|
+
throw new PlaywrightResourceLimitError('Snapshot byte limit exceeded');
|
|
116
134
|
bytes += new TextEncoder().encode(rendered.text).byteLength;
|
|
117
135
|
if (bytes > maxSnapshotBytes)
|
|
118
|
-
throw new
|
|
136
|
+
throw new PlaywrightResourceLimitError('Snapshot byte limit exceeded');
|
|
119
137
|
text += rendered.text;
|
|
120
138
|
}
|
|
121
139
|
signal?.throwIfAborted();
|
|
@@ -142,6 +160,31 @@ export function createSnapshotEngine(limits, nextRef) {
|
|
|
142
160
|
if (!reference)
|
|
143
161
|
throw new Error(`Unknown or stale snapshot ref: ${ref}; snapshot again`);
|
|
144
162
|
const capturedEpoch = epoch;
|
|
163
|
+
if (reference.kind === 'native') {
|
|
164
|
+
if (!reference.native) {
|
|
165
|
+
const locator = reference.page.locator(`aria-ref=${reference.ref}`);
|
|
166
|
+
if (!locator.elementHandle)
|
|
167
|
+
throw new Error('Native snapshot target resolution unavailable');
|
|
168
|
+
let handle;
|
|
169
|
+
try {
|
|
170
|
+
handle = await locator.elementHandle({ timeout: 30000 });
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
throw new Error(`Snapshot ref stale: ${ref}; snapshot again`);
|
|
174
|
+
}
|
|
175
|
+
if (!handle || capturedEpoch !== epoch) {
|
|
176
|
+
if (handle)
|
|
177
|
+
await retire([handle]);
|
|
178
|
+
throw new Error(`Snapshot ref stale: ${ref}; snapshot again`);
|
|
179
|
+
}
|
|
180
|
+
resources.add(handle);
|
|
181
|
+
reference.native = handle;
|
|
182
|
+
}
|
|
183
|
+
const connected = await reference.native.evaluate(node => node.isConnected);
|
|
184
|
+
if (!connected || capturedEpoch !== epoch)
|
|
185
|
+
throw new Error(`Snapshot ref stale: ${ref}; snapshot again`);
|
|
186
|
+
return reference.native;
|
|
187
|
+
}
|
|
145
188
|
let connected = false;
|
|
146
189
|
try {
|
|
147
190
|
connected = await reference.capsule.evaluate((capsule, slot) => {
|
|
@@ -166,6 +209,22 @@ export function createSnapshotEngine(limits, nextRef) {
|
|
|
166
209
|
}
|
|
167
210
|
return reference.native;
|
|
168
211
|
};
|
|
169
|
-
|
|
212
|
+
const captureJSON = async (page, signal, options = {}) => {
|
|
213
|
+
await invalidate();
|
|
214
|
+
const capturedEpoch = epoch;
|
|
215
|
+
const captured = await captureNativePlaywrightJSON(page, { maxBytes: maxSnapshotBytes, maxRefs: maxSnapshotRefs,
|
|
216
|
+
nextRef: nextRef ?? (() => `e${++sequence}`), ...(signal ? { signal } : {}), ...options });
|
|
217
|
+
signal?.throwIfAborted();
|
|
218
|
+
if (capturedEpoch !== epoch)
|
|
219
|
+
throw new Error('Snapshot stale during capture');
|
|
220
|
+
for (const [issued, ref] of captured.refs)
|
|
221
|
+
refs.set(issued, { kind: 'native', page, ref });
|
|
222
|
+
return captured.tree;
|
|
223
|
+
};
|
|
224
|
+
return { capture, captureJSON, resolve, invalidate, withReferences, nativeSelector(ref) {
|
|
225
|
+
const reference = refs.get(ref);
|
|
226
|
+
return reference?.kind === 'native' ? `aria-ref=${reference.ref}` : undefined;
|
|
227
|
+
} };
|
|
170
228
|
}
|
|
229
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
171
230
|
//# sourceMappingURL=snapshot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/playwright/snapshot.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAW1D,MAAM,UAAU,oBAAoB,CAAC,MAAsB,EAAE,OAAsB;IACjF,KAAK,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,CAAC;QAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,wBAAwB,CAAC,CAAC;IACvK,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACrD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiB,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6B,CAAC;IAClD,MAAM,cAAc,GAAG,CAAS,MAA6B,EAAmB,EAAE;QAChF,MAAM,SAAS,GAAG,CAAC,KAAK,IAAI,EAAE;YAC5B,OAAO,EAAE,CAAC;YACV,IAAI,MAAe,CAAC;YACpB,IAAI,OAAuC,CAAC;YAC5C,IAAI,CAAC;gBAAC,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;YAAC,CAAC;YAChC,OAAO,KAAK,EAAE,CAAC;gBAAC,OAAO,GAAG,EAAE,KAAK,EAAE,CAAC;YAAC,CAAC;YACtC,OAAO,EAAE,CAAC;YACV,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;gBACrC,eAAe,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC;oBAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBAC9B,OAAO,KAAK,EAAE,CAAC;oBACb,IAAI,OAAO;wBAAE,MAAM,IAAI,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,oCAAoC,CAAC,CAAC;oBACpG,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YACD,IAAI,OAAO;gBAAE,MAAM,OAAO,CAAC,KAAK,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,KAAK,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,EAAE,OAAoC,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAAC,CAAC;QAC9G,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9F,IAAI,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;IACzF,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,EAAE;QAChD,KAAK,EAAE,CAAC;QACR,MAAM,OAAO,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;QAC/B,SAAS,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,MAAM,IAAI,OAAO;gBAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1D,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;;YAAM,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;YACpC,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,IAAoB,EAAE,MAAoB,EAAmB,EAAE;QACpF,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACxH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,CAAC,cAAc,KAAK,UAAU,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACvJ,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;QACrD,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,EAAE,cAAc,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,cAAe,CAAC,mBAAmB,EAAE;oBAC/D,gBAAgB,EAAE,gBAAgB,GAAG,KAAK;oBAC1C,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI;iBAChD,CAAC,CAAC;gBACH,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACtB,MAAM,EAAE,cAAc,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;gBAC7G,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,KAAK,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;gBACzI,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,GAAG,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC3I,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;oBAClD,MAAM,GAAG,GAAG,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,QAAQ,EAAE,CAAC;oBAC5C,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpB,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtC,CAAC;gBACD,MAAM,EAAE,cAAc,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClG,IAAI,QAAQ,CAAC,MAAM,KAAK,YAAY;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACtF,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC9G,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,gBAAgB,GAAG,KAAK;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBACrG,KAAK,IAAI,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;gBAC5D,IAAI,KAAK,GAAG,gBAAgB;oBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC9E,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC;YACxB,CAAC;YACD,MAAM,EAAE,cAAc,EAAE,CAAC;YACzB,IAAI,aAAa,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC9E,KAAK,MAAM,QAAQ,IAAI,QAAQ;gBAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,OAAO;gBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBAAC,MAAM,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;YAAC,CAAC;YACpC,OAAO,OAAO,EAAE,CAAC;gBACf,MAAM,IAAI,cAAc,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,YAAY,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAAC;YAChJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAoC,EAAE;QACtE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,kBAAkB,CAAC,CAAC;QACzF,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;gBAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC;YAChI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS,GAAG,KAAK,CAAC;QAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,IAAI,aAAa,KAAK,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,CAAC;QACzG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAC9G,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;gBACvC,MAAM,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,CAAC;YAChE,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;QAC5B,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;AAC1D,CAAC"}
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/playwright/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PlaywrightAbility } from './abilities.js';
|
|
2
|
+
import type { PlaywrightCommand } from './catalog.js';
|
|
3
|
+
export declare const playwrightStandardAbilities: Partial<Record<PlaywrightCommand, PlaywrightAbility>>;
|
|
4
|
+
//# sourceMappingURL=standard-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-capabilities.d.ts","sourceRoot":"","sources":["../../src/playwright/standard-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA2ItD,eAAO,MAAM,2BAA2B,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAgF7F,CAAC"}
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { capabilityAction, capabilityActionCode, capabilityArtifact, capabilityLocator, capabilityResult, numeric, requirePage, requireSession, unsupported } from './capability-result.js';
|
|
2
|
+
import { playwrightLocatorSelector } from './locator-selector.js';
|
|
3
|
+
import { playwrightStorageAbilities } from './storage-capabilities.js';
|
|
4
|
+
import { playwrightEventAbilities } from './capability-events.js';
|
|
5
|
+
import { playwrightTracingStart, playwrightTracingStop } from './tracing-capabilities.js';
|
|
6
|
+
import { playwrightModalAbilities } from './modal-capabilities.js';
|
|
7
|
+
import { playwrightDrop } from './drop-capability.js';
|
|
8
|
+
import { playwrightWebMCPAbilities } from './webmcp-capabilities.js';
|
|
9
|
+
import { playwrightRecordingAbilities } from './recording-capabilities.js';
|
|
10
|
+
import { playwrightRouteAbilities } from './route-capabilities.js';
|
|
11
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
12
|
+
function button(value) {
|
|
13
|
+
if (value === undefined)
|
|
14
|
+
return 'left';
|
|
15
|
+
if (value !== 'left' && value !== 'right' && value !== 'middle')
|
|
16
|
+
throw new Error(`Invalid mouse button: ${value}`);
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
const navigation = { scope: 'session', async execute(request) {
|
|
20
|
+
const page = requirePage(request);
|
|
21
|
+
const method = request.command === 'go-back' ? 'goBack' : request.command === 'go-forward' ? 'goForward' : 'reload';
|
|
22
|
+
if (!page[method])
|
|
23
|
+
unsupported(method);
|
|
24
|
+
await requireSession(request).invalidateTargets?.();
|
|
25
|
+
await capabilityAction(request, async () => { await page[method]({ timeout: request.limits?.navigationTimeoutMs ?? 60000 }); });
|
|
26
|
+
return capabilityResult(`await page.${method}();`);
|
|
27
|
+
} };
|
|
28
|
+
const keyboard = { scope: 'session', options: 'all', async execute(request) {
|
|
29
|
+
const page = requirePage(request);
|
|
30
|
+
const value = request.args[0];
|
|
31
|
+
const method = request.command === 'keydown' ? 'down' : request.command === 'keyup' ? 'up' : 'insertText';
|
|
32
|
+
if (!page.keyboard[method])
|
|
33
|
+
unsupported(`keyboard.${method}`);
|
|
34
|
+
await capabilityAction(request, async () => {
|
|
35
|
+
await page.keyboard[method](value);
|
|
36
|
+
if (request.options.submit)
|
|
37
|
+
await page.keyboard.press('Enter');
|
|
38
|
+
});
|
|
39
|
+
return capabilityResult(`await page.keyboard.${method}(${JSON.stringify(value)});${request.options.submit ? "\nawait page.keyboard.press('Enter');" : ''}`);
|
|
40
|
+
} };
|
|
41
|
+
const mouse = { scope: 'session', async execute(request) {
|
|
42
|
+
const mouse = requirePage(request).mouse;
|
|
43
|
+
if (!mouse)
|
|
44
|
+
unsupported('mouse');
|
|
45
|
+
const method = request.command.slice('mouse'.length);
|
|
46
|
+
if (method === 'down' || method === 'up') {
|
|
47
|
+
const options = { button: button(request.args[0]) };
|
|
48
|
+
await capabilityAction(request, () => mouse[method](options));
|
|
49
|
+
return capabilityResult(`await page.mouse.${method}(${JSON.stringify(options)});`);
|
|
50
|
+
}
|
|
51
|
+
const x = numeric(request.args[0], 'mouse coordinate');
|
|
52
|
+
const y = numeric(request.args[1], 'mouse coordinate');
|
|
53
|
+
await capabilityAction(request, () => method === 'move' ? mouse.move(x, y) : mouse.wheel(x, y));
|
|
54
|
+
return capabilityResult(`await page.mouse.${method}(${x}, ${y});`);
|
|
55
|
+
} };
|
|
56
|
+
const element = { scope: 'session', options: 'all', async execute(request) {
|
|
57
|
+
const session = requireSession(request);
|
|
58
|
+
const target = await session.resolveTarget(request.args[0]);
|
|
59
|
+
const locator = capabilityLocator(request.args[0], request);
|
|
60
|
+
const selector = session.generateActionCode && session.configuration?.codegen !== 'none'
|
|
61
|
+
? playwrightLocatorSelector(requirePage(request), locator.slice('page.'.length)) : request.args[0];
|
|
62
|
+
const method = request.command;
|
|
63
|
+
if (method === 'select') {
|
|
64
|
+
if (!target.selectOption)
|
|
65
|
+
unsupported('selectOption');
|
|
66
|
+
await capabilityAction(request, async () => { await target.selectOption(request.args[1], { timeout: request.limits?.actionTimeoutMs ?? 30000 }); });
|
|
67
|
+
return capabilityResult(capabilityActionCode(request, { name: 'select', selector, options: [request.args[1]] }, `await ${locator}.selectOption(${JSON.stringify(request.args[1])});`));
|
|
68
|
+
}
|
|
69
|
+
if (!target[method])
|
|
70
|
+
unsupported(method);
|
|
71
|
+
const options = { timeout: request.limits?.actionTimeoutMs ?? 30000 };
|
|
72
|
+
if (method === 'dblclick') {
|
|
73
|
+
options.button = button(request.args[1]);
|
|
74
|
+
if (request.options.modifiers) {
|
|
75
|
+
const modifiers = Array.isArray(request.options.modifiers) ? request.options.modifiers : [request.options.modifiers];
|
|
76
|
+
if (modifiers.some(value => !['Alt', 'Control', 'ControlOrMeta', 'Meta', 'Shift'].includes(value)))
|
|
77
|
+
throw new Error('Invalid click modifier');
|
|
78
|
+
options.modifiers = modifiers;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
await capabilityAction(request, () => target[method](options));
|
|
82
|
+
const fallback = `await ${locator}.${method}(${method === 'dblclick' ? JSON.stringify({ button: options.button, ...(options.modifiers ? { modifiers: options.modifiers } : {}) }) : ''});`;
|
|
83
|
+
if (method !== 'dblclick')
|
|
84
|
+
return capabilityResult(capabilityActionCode(request, { name: method, selector }, fallback));
|
|
85
|
+
const modifiers = options.modifiers ?? [];
|
|
86
|
+
const mask = (modifiers.includes('Alt') ? 1 : 0) | (modifiers.includes('Control') || modifiers.includes('ControlOrMeta') ? 2 : 0) | (modifiers.includes('Meta') ? 4 : 0) | (modifiers.includes('Shift') ? 8 : 0);
|
|
87
|
+
return capabilityResult(capabilityActionCode(request, { name: 'click', selector, button: options.button, modifiers: mask, clickCount: 2 }, fallback));
|
|
88
|
+
} };
|
|
89
|
+
const drag = { scope: 'session', async execute(request) {
|
|
90
|
+
const session = requireSession(request);
|
|
91
|
+
const mouse = requirePage(request).mouse;
|
|
92
|
+
if (!mouse)
|
|
93
|
+
unsupported('mouse');
|
|
94
|
+
const start = await session.resolveTarget(request.args[0]);
|
|
95
|
+
const end = await session.resolveTarget(request.args[1]);
|
|
96
|
+
if (!start.boundingBox || !end.boundingBox)
|
|
97
|
+
unsupported('element boundingBox');
|
|
98
|
+
const first = await start.boundingBox(), last = await end.boundingBox();
|
|
99
|
+
if (!first || !last)
|
|
100
|
+
throw new Error('Drag target is not visible');
|
|
101
|
+
await capabilityAction(request, async () => {
|
|
102
|
+
await mouse.move(first.x + first.width / 2, first.y + first.height / 2);
|
|
103
|
+
await mouse.down();
|
|
104
|
+
try {
|
|
105
|
+
await mouse.move(last.x + last.width / 2, last.y + last.height / 2);
|
|
106
|
+
await mouse.move(last.x + last.width / 2, last.y + last.height / 2);
|
|
107
|
+
}
|
|
108
|
+
finally {
|
|
109
|
+
await mouse.up();
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return capabilityResult(`await ${capabilityLocator(request.args[0], request)}.dragTo(${capabilityLocator(request.args[1], request)});`);
|
|
113
|
+
} };
|
|
114
|
+
const evaluate = { scope: 'session', options: 'all', async execute(request) {
|
|
115
|
+
const page = requirePage(request);
|
|
116
|
+
const expression = request.args[0];
|
|
117
|
+
const maxBytes = request.limits?.maxCommandBytes ?? 1048576;
|
|
118
|
+
const input = { expression, maxBytes };
|
|
119
|
+
let serialized;
|
|
120
|
+
await capabilityAction(request, async () => {
|
|
121
|
+
if (request.args[1] !== undefined) {
|
|
122
|
+
const element = await requireSession(request).resolveTarget(request.args[1]);
|
|
123
|
+
serialized = await element.evaluate(async (element, { expression, maxBytes }) => {
|
|
124
|
+
// This function executes in the isolated page, never in the host runtime.
|
|
125
|
+
const value = eval(`(${expression})`);
|
|
126
|
+
const result = await (typeof value === 'function' ? value(element) : value);
|
|
127
|
+
const text = JSON.stringify(result, null, 2) ?? 'undefined';
|
|
128
|
+
if (text.length > maxBytes || new TextEncoder().encode(text).length > maxBytes)
|
|
129
|
+
return null;
|
|
130
|
+
return text;
|
|
131
|
+
}, input);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
if (!page.evaluate)
|
|
135
|
+
unsupported('evaluate');
|
|
136
|
+
serialized = await page.evaluate(async ({ expression, maxBytes }) => {
|
|
137
|
+
const value = eval(`(${expression})`);
|
|
138
|
+
const result = await (typeof value === 'function' ? value() : value);
|
|
139
|
+
const text = JSON.stringify(result, null, 2) ?? 'undefined';
|
|
140
|
+
if (text.length > maxBytes || new TextEncoder().encode(text).length > maxBytes)
|
|
141
|
+
return null;
|
|
142
|
+
return text;
|
|
143
|
+
}, input);
|
|
144
|
+
}
|
|
145
|
+
if (serialized === null)
|
|
146
|
+
throw new PlaywrightResourceLimitError('Playwright evaluation result byte limit exceeded');
|
|
147
|
+
});
|
|
148
|
+
const code = `await ${request.args[1] ? capabilityLocator(request.args[1], request) : 'page'}.evaluate(${JSON.stringify(expression)});`;
|
|
149
|
+
if (request.options.filename && typeof serialized === 'string')
|
|
150
|
+
return capabilityArtifact(request, new TextEncoder().encode(serialized), 'result', 'json', 'Evaluation result', () => code, request.options.filename);
|
|
151
|
+
return capabilityResult(code, serialized ?? undefined);
|
|
152
|
+
} };
|
|
153
|
+
export const playwrightStandardAbilities = {
|
|
154
|
+
...playwrightStorageAbilities,
|
|
155
|
+
...playwrightEventAbilities,
|
|
156
|
+
...playwrightModalAbilities,
|
|
157
|
+
...playwrightWebMCPAbilities,
|
|
158
|
+
...playwrightRecordingAbilities,
|
|
159
|
+
...playwrightRouteAbilities,
|
|
160
|
+
drop: playwrightDrop,
|
|
161
|
+
'tracing-start': playwrightTracingStart, 'tracing-stop': playwrightTracingStop,
|
|
162
|
+
'go-back': navigation, 'go-forward': navigation, reload: navigation,
|
|
163
|
+
type: keyboard, keydown: keyboard, keyup: keyboard,
|
|
164
|
+
mousemove: mouse, mousedown: mouse, mouseup: mouse, mousewheel: mouse,
|
|
165
|
+
dblclick: element, hover: element, select: element, check: element, uncheck: element, drag,
|
|
166
|
+
eval: evaluate,
|
|
167
|
+
'video-show-actions': { scope: 'session', options: 'all', async execute(request) {
|
|
168
|
+
const screencast = requirePage(request).screencast;
|
|
169
|
+
if (!screencast?.showActions)
|
|
170
|
+
unsupported('native action annotations');
|
|
171
|
+
const options = {};
|
|
172
|
+
if (request.options.duration !== undefined)
|
|
173
|
+
options.duration = numeric(request.options.duration, 'annotation duration');
|
|
174
|
+
const position = request.options.position;
|
|
175
|
+
if (position !== undefined) {
|
|
176
|
+
if (typeof position !== 'string' || !['top-left', 'top', 'top-right', 'bottom-left', 'bottom', 'bottom-right'].includes(position))
|
|
177
|
+
throw new Error('Invalid annotation position');
|
|
178
|
+
options.position = position;
|
|
179
|
+
}
|
|
180
|
+
const cursor = request.options.cursor;
|
|
181
|
+
if (cursor !== undefined) {
|
|
182
|
+
if (cursor !== 'none' && cursor !== 'pointer')
|
|
183
|
+
throw new Error('Invalid annotation cursor');
|
|
184
|
+
options.cursor = cursor;
|
|
185
|
+
}
|
|
186
|
+
await screencast.showActions(options);
|
|
187
|
+
return capabilityResult('', 'Action annotations enabled.');
|
|
188
|
+
} },
|
|
189
|
+
'video-hide-actions': { scope: 'session', async execute(request) {
|
|
190
|
+
const screencast = requirePage(request).screencast;
|
|
191
|
+
if (!screencast?.hideActions)
|
|
192
|
+
unsupported('native action annotations');
|
|
193
|
+
await screencast.hideActions();
|
|
194
|
+
return capabilityResult('', 'Action annotations disabled.');
|
|
195
|
+
} },
|
|
196
|
+
'run-code': { scope: 'session', options: 'all', async execute(request) {
|
|
197
|
+
const source = request.options.filename !== undefined
|
|
198
|
+
? new TextDecoder('utf-8', { fatal: true }).decode(await request.readFile(request.options.filename))
|
|
199
|
+
: request.args[0];
|
|
200
|
+
if (typeof source !== 'string' || !source.trim())
|
|
201
|
+
throw new Error('Code or --filename is required');
|
|
202
|
+
const maxOutputBytes = request.limits?.maxCommandBytes ?? 1048576;
|
|
203
|
+
if (new TextEncoder().encode(source).byteLength > maxOutputBytes)
|
|
204
|
+
throw new PlaywrightResourceLimitError('Playwright code source byte limit exceeded');
|
|
205
|
+
const session = requireSession(request);
|
|
206
|
+
if (!session.executeCode)
|
|
207
|
+
unsupported('native code execution');
|
|
208
|
+
const page = requirePage(request);
|
|
209
|
+
let output;
|
|
210
|
+
await capabilityAction(request, async () => {
|
|
211
|
+
const result = await session.executeCode({ page, source, signal: request.signal,
|
|
212
|
+
timeoutMs: request.limits?.codeExecutionTimeoutMs ?? 30000, maxOutputBytes, maxPages: request.limits?.maxPages ?? 16 });
|
|
213
|
+
if (result !== undefined) {
|
|
214
|
+
output = JSON.stringify(result);
|
|
215
|
+
if (output !== undefined && new TextEncoder().encode(output).byteLength > maxOutputBytes)
|
|
216
|
+
throw new PlaywrightResourceLimitError('Playwright code result byte limit exceeded');
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
return capabilityResult(`await (${source})(page);`, output);
|
|
220
|
+
} },
|
|
221
|
+
resize: { scope: 'session', async execute(request) {
|
|
222
|
+
const page = requirePage(request);
|
|
223
|
+
if (!page.setViewportSize)
|
|
224
|
+
unsupported('setViewportSize');
|
|
225
|
+
const width = numeric(request.args[0], 'viewport width'), height = numeric(request.args[1], 'viewport height');
|
|
226
|
+
if (![width, height].every(value => Number.isSafeInteger(value) && value > 0 && value <= 32768))
|
|
227
|
+
throw new Error('Invalid viewport size');
|
|
228
|
+
await page.setViewportSize({ width, height });
|
|
229
|
+
return capabilityResult(`await page.setViewportSize({ width: ${width}, height: ${height} });`);
|
|
230
|
+
} },
|
|
231
|
+
pdf: { scope: 'session', options: 'all', async execute(request) {
|
|
232
|
+
const page = requirePage(request);
|
|
233
|
+
if (!page.pdf)
|
|
234
|
+
unsupported('pdf');
|
|
235
|
+
return capabilityArtifact(request, await page.pdf(), 'page', 'pdf', 'PDF', filename => `await page.pdf({ path: ${JSON.stringify(filename)} });`, request.options.filename);
|
|
236
|
+
} },
|
|
237
|
+
'network-state-set': { scope: 'session', async execute(request) {
|
|
238
|
+
const context = requireSession(request).context;
|
|
239
|
+
if (!context.setOffline)
|
|
240
|
+
unsupported('setOffline');
|
|
241
|
+
const state = request.args[0];
|
|
242
|
+
if (state !== 'online' && state !== 'offline')
|
|
243
|
+
throw new Error('Invalid network state');
|
|
244
|
+
await context.setOffline(state === 'offline');
|
|
245
|
+
return capabilityResult(`await page.context().setOffline(${state === 'offline'});`, `Network is now ${state}`);
|
|
246
|
+
} },
|
|
247
|
+
};
|
|
248
|
+
//# sourceMappingURL=standard-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"standard-capabilities.js","sourceRoot":"","sources":["../../src/playwright/standard-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-capabilities.d.ts","sourceRoot":"","sources":["../../src/playwright/storage-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAA4B,MAAM,gBAAgB,CAAC;AAGlF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AA4FtD,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAI5F,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
2
|
+
import { capabilityArtifact, capabilityResult, numeric, requirePage, requireSession, unsupported } from './capability-result.js';
|
|
3
|
+
import { parsePlaywrightStorageState } from './storage-state.js';
|
|
4
|
+
const stateSave = { scope: 'session', options: 'all', async execute(request) {
|
|
5
|
+
const context = requireSession(request).context;
|
|
6
|
+
if (!context.storageState)
|
|
7
|
+
unsupported('storageState');
|
|
8
|
+
// CLI 0.1.20 does not request IndexedDB. Its state-load accepts explicitly
|
|
9
|
+
// supplied state and passes all supported state fields to the native browser.
|
|
10
|
+
const state = await context.storageState();
|
|
11
|
+
request.signal.throwIfAborted();
|
|
12
|
+
return capabilityArtifact(request, new TextEncoder().encode(JSON.stringify(state, null, 2)), 'storage-state', 'json', 'Storage state', filename => `await page.context().storageState({ path: ${JSON.stringify(filename)} });`, request.args[0]);
|
|
13
|
+
} };
|
|
14
|
+
const stateLoad = { scope: 'session', async execute(request) {
|
|
15
|
+
const session = requireSession(request);
|
|
16
|
+
const bytes = await request.readFile(request.args[0]);
|
|
17
|
+
const state = parsePlaywrightStorageState(JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(bytes)), { maxBytes: request.limits?.maxCommandBytes ?? 1048576 });
|
|
18
|
+
request.signal.throwIfAborted();
|
|
19
|
+
if (session.context.setStorageState)
|
|
20
|
+
await session.context.setStorageState(state);
|
|
21
|
+
else if (session.replaceContext)
|
|
22
|
+
await session.replaceContext(state);
|
|
23
|
+
else
|
|
24
|
+
unsupported('storage state replacement');
|
|
25
|
+
return capabilityResult(`await page.context().setStorageState(${JSON.stringify(request.args[0])});`, `Storage state restored from ${request.args[0]}`);
|
|
26
|
+
} };
|
|
27
|
+
const cookies = { scope: 'session', options: 'all', async execute(request) {
|
|
28
|
+
const context = requireSession(request).context;
|
|
29
|
+
const name = request.args[0];
|
|
30
|
+
if (request.command === 'cookie-list' || request.command === 'cookie-get') {
|
|
31
|
+
if (!context.cookies)
|
|
32
|
+
unsupported('cookies');
|
|
33
|
+
let values = await context.cookies();
|
|
34
|
+
if (request.options.domain)
|
|
35
|
+
values = values.filter(cookie => cookie.domain.includes(request.options.domain));
|
|
36
|
+
if (request.options.path)
|
|
37
|
+
values = values.filter(cookie => cookie.path.startsWith(request.options.path));
|
|
38
|
+
const cookie = values.find(item => item.name === name);
|
|
39
|
+
const text = request.command === 'cookie-get'
|
|
40
|
+
? cookie ? `${cookie.name}=${cookie.value} (domain: ${cookie.domain}, path: ${cookie.path}, httpOnly: ${cookie.httpOnly}, secure: ${cookie.secure}, sameSite: ${cookie.sameSite})` : `Cookie '${name}' not found`
|
|
41
|
+
: values.length ? values.map(cookie => `${cookie.name}=${cookie.value} (domain: ${cookie.domain}, path: ${cookie.path})`).join('\n') : 'No cookies found';
|
|
42
|
+
return capabilityResult('await page.context().cookies();', text);
|
|
43
|
+
}
|
|
44
|
+
if (request.command === 'cookie-set') {
|
|
45
|
+
if (!context.addCookies)
|
|
46
|
+
unsupported('addCookies');
|
|
47
|
+
const cookie = { name, value: request.args[1], domain: request.options.domain || new URL(requirePage(request).url()).hostname, path: request.options.path || '/' };
|
|
48
|
+
if (request.options.expires !== undefined)
|
|
49
|
+
cookie.expires = numeric(request.options.expires, 'cookie expires');
|
|
50
|
+
if (request.options.httpOnly !== undefined)
|
|
51
|
+
cookie.httpOnly = request.options.httpOnly === true;
|
|
52
|
+
if (request.options.secure !== undefined)
|
|
53
|
+
cookie.secure = request.options.secure === true;
|
|
54
|
+
if (request.options.sameSite !== undefined) {
|
|
55
|
+
const value = request.options.sameSite;
|
|
56
|
+
if (value !== 'Strict' && value !== 'Lax' && value !== 'None')
|
|
57
|
+
throw new Error('Invalid cookie sameSite');
|
|
58
|
+
cookie.sameSite = value;
|
|
59
|
+
}
|
|
60
|
+
await context.addCookies([cookie]);
|
|
61
|
+
return capabilityResult(`await page.context().addCookies([${JSON.stringify(cookie)}]);`);
|
|
62
|
+
}
|
|
63
|
+
if (!context.clearCookies)
|
|
64
|
+
unsupported('clearCookies');
|
|
65
|
+
const filter = request.command === 'cookie-delete' ? { name } : undefined;
|
|
66
|
+
await context.clearCookies(filter);
|
|
67
|
+
return capabilityResult(`await page.context().clearCookies(${filter ? `{ name: ${JSON.stringify(name)} }` : ''});`);
|
|
68
|
+
} };
|
|
69
|
+
async function webStorage(request) {
|
|
70
|
+
const page = requirePage(request);
|
|
71
|
+
if (!page.evaluate)
|
|
72
|
+
unsupported('evaluate');
|
|
73
|
+
const storage = request.command.startsWith('local') ? 'localStorage' : 'sessionStorage';
|
|
74
|
+
const operation = request.command.slice(request.command.indexOf('-') + 1);
|
|
75
|
+
const key = request.args[0] ?? '';
|
|
76
|
+
const value = request.args[1] ?? '';
|
|
77
|
+
const result = await page.evaluate(({ storage, operation, key, value, maxBytes }) => {
|
|
78
|
+
const browser = globalThis;
|
|
79
|
+
const target = browser[storage];
|
|
80
|
+
if (operation === 'set') {
|
|
81
|
+
target.setItem(key, value);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
if (operation === 'delete') {
|
|
85
|
+
target.removeItem(key);
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
if (operation === 'clear') {
|
|
89
|
+
target.clear();
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
const values = [];
|
|
93
|
+
let bytes = 0;
|
|
94
|
+
for (let index = 0; index < (operation === 'get' ? 1 : target.length); index++) {
|
|
95
|
+
const name = operation === 'get' ? key : target.key(index);
|
|
96
|
+
if (name === null)
|
|
97
|
+
continue;
|
|
98
|
+
const value = target.getItem(name);
|
|
99
|
+
if (value === null)
|
|
100
|
+
continue;
|
|
101
|
+
bytes += new TextEncoder().encode(name).length + new TextEncoder().encode(value).length + 2;
|
|
102
|
+
if (bytes > maxBytes)
|
|
103
|
+
return false;
|
|
104
|
+
values.push({ name, value });
|
|
105
|
+
}
|
|
106
|
+
return values;
|
|
107
|
+
}, { storage, operation, key, value, maxBytes: request.limits?.maxCommandBytes ?? 1048576 });
|
|
108
|
+
if (result === false)
|
|
109
|
+
throw new PlaywrightResourceLimitError('Playwright storage result byte limit exceeded');
|
|
110
|
+
const method = { list: 'items', get: 'getItem', set: 'setItem', delete: 'removeItem', clear: 'clear' }[operation];
|
|
111
|
+
const args = ['get', 'set', 'delete'].includes(operation) ? [key, ...(operation === 'set' ? [value] : [])].map(item => JSON.stringify(item)).join(', ') : '';
|
|
112
|
+
const text = result === null ? undefined : result.length ? result.map(item => `${item.name}=${item.value}`).join('\n') : operation === 'get' ? `${storage} key '${key}' not found` : `No ${storage} items found`;
|
|
113
|
+
return capabilityResult(`await page.${storage}.${method}(${args});`, text);
|
|
114
|
+
}
|
|
115
|
+
export const playwrightStorageAbilities = {
|
|
116
|
+
'state-save': stateSave, 'state-load': stateLoad,
|
|
117
|
+
...Object.fromEntries(['cookie-list', 'cookie-get', 'cookie-set', 'cookie-delete', 'cookie-clear'].map(command => [command, cookies])),
|
|
118
|
+
...Object.fromEntries(['localstorage', 'sessionstorage'].flatMap(prefix => ['list', 'get', 'set', 'delete', 'clear'].map(operation => [`${prefix}-${operation}`, { scope: 'session', execute: webStorage }]))),
|
|
119
|
+
};
|
|
120
|
+
//# sourceMappingURL=storage-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-capabilities.js","sourceRoot":"","sources":["../../src/playwright/storage-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PlaywrightStorageState } from './adapter.js';
|
|
2
|
+
/** Validate the portable native storage-state format before handing it to a browser. */
|
|
3
|
+
export declare function parsePlaywrightStorageState(value: unknown, options?: {
|
|
4
|
+
maxBytes?: number;
|
|
5
|
+
maxNodes?: number;
|
|
6
|
+
maxDepth?: number;
|
|
7
|
+
}): PlaywrightStorageState;
|
|
8
|
+
//# sourceMappingURL=storage-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-state.d.ts","sourceRoot":"","sources":["../../src/playwright/storage-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,wFAAwF;AACxF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,sBAAsB,CAiF7J"}
|