@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canonical-locator-parser.js","sourceRoot":"","sources":["../../src/playwright/canonical-locator-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { PlaywrightAbility } from './abilities.js';
|
|
2
|
+
import type { PlaywrightContext, PlaywrightPage } from './adapter.js';
|
|
3
|
+
import type { PlaywrightCommand } from './catalog.js';
|
|
4
|
+
import type { PlaywrightSessionConfiguration } from './session-configuration.js';
|
|
5
|
+
export declare function observePlaywrightCapabilities(context: PlaywrightContext, registerCleanup: (cleanup: () => Promise<void>) => void, limits: {
|
|
6
|
+
maxCommandBytes: number;
|
|
7
|
+
maxArtifactBytes: number;
|
|
8
|
+
}): void;
|
|
9
|
+
/** Publish only new admitted console entries; explicit console queries retain every record. */
|
|
10
|
+
export declare function flushPlaywrightConsole(context: PlaywrightContext, page: PlaywrightPage, options: {
|
|
11
|
+
configuration?: PlaywrightSessionConfiguration;
|
|
12
|
+
writeArtifact(bytes: Uint8Array, filename: string): Promise<void>;
|
|
13
|
+
}): Promise<string | undefined>;
|
|
14
|
+
export declare const playwrightEventAbilities: Partial<Record<PlaywrightCommand, PlaywrightAbility>>;
|
|
15
|
+
//# sourceMappingURL=capability-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-events.d.ts","sourceRoot":"","sources":["../../src/playwright/capability-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAA4B,MAAM,gBAAgB,CAAC;AAClF,OAAO,KAAK,EAA4B,iBAAiB,EAAuD,cAAc,EAAE,MAAM,cAAc,CAAC;AACrJ,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAmBjF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAC/H,MAAM,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA2DrE;AAcD,+FAA+F;AAC/F,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE;IACtG,aAAa,CAAC,EAAE,8BAA8B,CAAC;IAC/C,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkB9B;AAkGD,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAG1F,CAAC"}
|
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
2
|
+
import { capabilityArtifact, capabilityArtifactName, capabilityResult, numeric, requirePage, requireSession, unsupported } from './capability-result.js';
|
|
3
|
+
const states = new WeakMap();
|
|
4
|
+
// A host may wrap Page navigation methods while native events retain the raw Page.
|
|
5
|
+
// Playwright's main frame remains stable across those wrappers and navigations.
|
|
6
|
+
function pageIdentity(page) { return page.mainFrame?.() ?? page; }
|
|
7
|
+
export function observePlaywrightCapabilities(context, registerCleanup, limits) {
|
|
8
|
+
if (states.has(context))
|
|
9
|
+
return;
|
|
10
|
+
const state = { pages: new Map(), maxBytes: limits.maxCommandBytes, maxArtifactBytes: limits.maxArtifactBytes };
|
|
11
|
+
states.set(context, state);
|
|
12
|
+
const requests = new WeakMap();
|
|
13
|
+
let bytes = 0, count = 0, closed = false;
|
|
14
|
+
const admit = (text) => {
|
|
15
|
+
bytes += new TextEncoder().encode(text).byteLength;
|
|
16
|
+
if (++count > 4096 || bytes > state.maxBytes)
|
|
17
|
+
throw new PlaywrightResourceLimitError('Playwright event retention limit exceeded');
|
|
18
|
+
};
|
|
19
|
+
const pageEvents = (page) => {
|
|
20
|
+
const identity = pageIdentity(page);
|
|
21
|
+
let events = state.pages.get(identity);
|
|
22
|
+
if (!events) {
|
|
23
|
+
events = { requests: [], generation: 0, console: [], startedAt: Date.now(), consoleCursor: 0 };
|
|
24
|
+
state.pages.set(identity, events);
|
|
25
|
+
}
|
|
26
|
+
return events;
|
|
27
|
+
};
|
|
28
|
+
const observe = (action) => {
|
|
29
|
+
if (closed || state.failure)
|
|
30
|
+
return;
|
|
31
|
+
try {
|
|
32
|
+
action();
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
state.failure = error instanceof Error ? error : new Error(String(error));
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
const onRequest = (native) => observe(() => {
|
|
39
|
+
let frame;
|
|
40
|
+
try {
|
|
41
|
+
frame = native.frame();
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return;
|
|
45
|
+
} // Worker-only requests have no selected page.
|
|
46
|
+
const page = frame.page();
|
|
47
|
+
const events = pageEvents(page);
|
|
48
|
+
if (native.isNavigationRequest() && frame.parentFrame() === null) {
|
|
49
|
+
events.requests = [];
|
|
50
|
+
events.generation++;
|
|
51
|
+
events.startedAt = Date.now();
|
|
52
|
+
delete events.log;
|
|
53
|
+
events.consoleCursor = events.console.length;
|
|
54
|
+
}
|
|
55
|
+
const record = { native, url: native.url(), method: native.method(), type: native.resourceType(), headers: { ...native.headers() }, body: native.postData() };
|
|
56
|
+
admit(JSON.stringify({ url: record.url, method: record.method, type: record.type, headers: record.headers, body: record.body }));
|
|
57
|
+
requests.set(native, record);
|
|
58
|
+
events.requests.push(record);
|
|
59
|
+
});
|
|
60
|
+
const onResponse = (native) => observe(() => {
|
|
61
|
+
const record = requests.get(native.request());
|
|
62
|
+
if (!record)
|
|
63
|
+
return;
|
|
64
|
+
const response = { native, status: native.status(), statusText: native.statusText(), headers: { ...native.headers() } };
|
|
65
|
+
admit(JSON.stringify({ status: response.status, statusText: response.statusText, headers: response.headers }));
|
|
66
|
+
record.response = response;
|
|
67
|
+
});
|
|
68
|
+
const onConsole = (message) => observe(() => {
|
|
69
|
+
const page = message.page();
|
|
70
|
+
if (!page)
|
|
71
|
+
return;
|
|
72
|
+
const events = pageEvents(page);
|
|
73
|
+
const location = message.location();
|
|
74
|
+
const timestamp = message.timestamp?.() ?? Date.now();
|
|
75
|
+
const record = { type: message.type(), text: message.text(), location: `${location.url}:${location.lineNumber}`, generation: events.generation, timestamp };
|
|
76
|
+
admit(record.type + record.text + record.location);
|
|
77
|
+
events.console.push(record);
|
|
78
|
+
});
|
|
79
|
+
const close = async () => {
|
|
80
|
+
if (closed)
|
|
81
|
+
return;
|
|
82
|
+
closed = true;
|
|
83
|
+
context.off('request', onRequest);
|
|
84
|
+
context.off('response', onResponse);
|
|
85
|
+
context.off('console', onConsole);
|
|
86
|
+
state.pages.clear();
|
|
87
|
+
states.delete(context);
|
|
88
|
+
};
|
|
89
|
+
registerCleanup(close);
|
|
90
|
+
try {
|
|
91
|
+
context.on('request', onRequest);
|
|
92
|
+
context.on('response', onResponse);
|
|
93
|
+
context.on('console', onConsole);
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
void close();
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const consoleLevels = ['error', 'warning', 'info', 'debug'];
|
|
101
|
+
function consoleLevel(type) {
|
|
102
|
+
if (type === 'assert' || type === 'error')
|
|
103
|
+
return 'error';
|
|
104
|
+
if (type === 'warning')
|
|
105
|
+
return 'warning';
|
|
106
|
+
if (['clear', 'debug', 'endGroup', 'profile', 'profileEnd', 'startGroup', 'startGroupCollapsed', 'trace'].includes(type))
|
|
107
|
+
return 'debug';
|
|
108
|
+
return 'info';
|
|
109
|
+
}
|
|
110
|
+
function includeConsole(level, message) {
|
|
111
|
+
return consoleLevels.indexOf(consoleLevel(message.type)) <= consoleLevels.indexOf(level);
|
|
112
|
+
}
|
|
113
|
+
function consoleText(message) { return `[${message.type.toUpperCase()}] ${message.text} @ ${message.location}`; }
|
|
114
|
+
/** Publish only new admitted console entries; explicit console queries retain every record. */
|
|
115
|
+
export async function flushPlaywrightConsole(context, page, options) {
|
|
116
|
+
const state = states.get(context);
|
|
117
|
+
if (!state)
|
|
118
|
+
return;
|
|
119
|
+
if (state.failure)
|
|
120
|
+
throw state.failure;
|
|
121
|
+
const events = state.pages.get(pageIdentity(page));
|
|
122
|
+
if (!events)
|
|
123
|
+
return;
|
|
124
|
+
const cursor = events.console.length;
|
|
125
|
+
const messages = events.console.slice(events.consoleCursor, cursor).filter(message => includeConsole(options.configuration?.console?.level ?? 'info', message));
|
|
126
|
+
if (!messages.length) {
|
|
127
|
+
events.consoleCursor = cursor;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
const log = events.log ??= { filename: capabilityArtifactName('console', 'log', options.configuration), content: '', lines: 0 };
|
|
131
|
+
const chunk = messages.map(message => `[${String(Math.round(message.timestamp - events.startedAt)).padStart(8, ' ')}ms] ${consoleText(message)}\n`).join('');
|
|
132
|
+
const content = log.content + chunk;
|
|
133
|
+
const bytes = new TextEncoder().encode(content);
|
|
134
|
+
if (bytes.byteLength > state.maxArtifactBytes)
|
|
135
|
+
throw new PlaywrightResourceLimitError('Playwright console log byte limit exceeded');
|
|
136
|
+
await options.writeArtifact(bytes, log.filename);
|
|
137
|
+
const firstLine = log.lines + 1;
|
|
138
|
+
log.content = content;
|
|
139
|
+
log.lines += chunk.split('\n').length - 1;
|
|
140
|
+
events.consoleCursor = cursor;
|
|
141
|
+
return `${log.filename}#L${firstLine}${firstLine === log.lines ? '' : `-L${log.lines}`}`;
|
|
142
|
+
}
|
|
143
|
+
function observed(request) {
|
|
144
|
+
const session = requireSession(request);
|
|
145
|
+
const state = states.get(session.context);
|
|
146
|
+
if (!state)
|
|
147
|
+
unsupported('browser event observation');
|
|
148
|
+
if (state.failure)
|
|
149
|
+
throw state.failure;
|
|
150
|
+
return { state, events: state.pages.get(pageIdentity(requirePage(request))) ?? { requests: [], generation: 0, console: [] } };
|
|
151
|
+
}
|
|
152
|
+
async function textResult(request, text, label, prefix) {
|
|
153
|
+
const max = request.limits?.maxCommandBytes ?? 1048576;
|
|
154
|
+
if (text.length > max || new TextEncoder().encode(text).length > max)
|
|
155
|
+
throw new PlaywrightResourceLimitError('Playwright result byte limit exceeded');
|
|
156
|
+
if (request.options.filename)
|
|
157
|
+
return capabilityArtifact(request, new TextEncoder().encode(text), prefix, 'txt', label, () => '', request.options.filename);
|
|
158
|
+
return capabilityResult('', text);
|
|
159
|
+
}
|
|
160
|
+
function headers(values) { return Object.entries(values).map(([key, value]) => `${key}: ${value}`).join('\n'); }
|
|
161
|
+
function requestLine(record) {
|
|
162
|
+
const response = record.response;
|
|
163
|
+
const failure = record.native.failure();
|
|
164
|
+
return `[${record.method.toUpperCase()}] ${record.url}${response ? ` => [${response.status}] ${response.statusText}` : failure ? ` => [FAILED] ${failure.errorText}` : ''}`;
|
|
165
|
+
}
|
|
166
|
+
const requestsAbility = { scope: 'session', options: 'all', async execute(request) {
|
|
167
|
+
const { events } = observed(request);
|
|
168
|
+
let matches;
|
|
169
|
+
if (request.options.filter !== undefined) {
|
|
170
|
+
const page = requirePage(request);
|
|
171
|
+
if (!page.evaluate)
|
|
172
|
+
unsupported('request filter evaluation');
|
|
173
|
+
// User regular expressions run in the isolated browser, never on the host event loop.
|
|
174
|
+
matches = await page.evaluate(({ pattern, urls }) => {
|
|
175
|
+
const regex = new RegExp(pattern);
|
|
176
|
+
return urls.map(url => regex.test(url));
|
|
177
|
+
}, { pattern: request.options.filter, urls: events.requests.map(record => record.url) });
|
|
178
|
+
}
|
|
179
|
+
const lines = [];
|
|
180
|
+
let hidden = 0;
|
|
181
|
+
for (const [index, record] of events.requests.entries()) {
|
|
182
|
+
if (!request.options.static && !['fetch', 'xhr'].includes(record.type) && record.response && record.response.status < 400) {
|
|
183
|
+
hidden++;
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
if (matches && !matches[index])
|
|
187
|
+
continue;
|
|
188
|
+
lines.push(`${index + 1}. ${requestLine(record)}`);
|
|
189
|
+
}
|
|
190
|
+
if (hidden)
|
|
191
|
+
lines.push(`\nNote: ${hidden} static request${hidden === 1 ? '' : 's'} not shown, run with --static option to see ${hidden === 1 ? 'it' : 'them'}.`);
|
|
192
|
+
return textResult(request, lines.join('\n'), 'Network', 'network');
|
|
193
|
+
} };
|
|
194
|
+
const requestAbility = { scope: 'session', options: 'all', async execute(request) {
|
|
195
|
+
const { state, events } = observed(request);
|
|
196
|
+
const index = numeric(request.args[0], 'request index');
|
|
197
|
+
const record = Number.isSafeInteger(index) && index > 0 ? events.requests[index - 1] : undefined;
|
|
198
|
+
if (!record)
|
|
199
|
+
throw new Error(`Request #${index} not found. Use browser_network_requests to see available indexes.`);
|
|
200
|
+
if (request.command === 'request-headers')
|
|
201
|
+
return textResult(request, headers(record.headers), 'Request headers', 'request');
|
|
202
|
+
if (request.command === 'request-body')
|
|
203
|
+
return textResult(request, record.body ?? '', 'Request body', 'request');
|
|
204
|
+
const response = record.response;
|
|
205
|
+
if (request.command === 'response-headers')
|
|
206
|
+
return textResult(request, response ? headers(response.headers) : '', 'Response headers', 'response');
|
|
207
|
+
if (request.command === 'response-body') {
|
|
208
|
+
if (!response || response.status === 204 || response.status === 304 || response.status < 200)
|
|
209
|
+
return capabilityResult('');
|
|
210
|
+
const maximum = Math.min(state.maxArtifactBytes, request.limits?.maxArtifactBytes ?? state.maxArtifactBytes);
|
|
211
|
+
const declared = response.headers['content-length'];
|
|
212
|
+
if (declared !== undefined && Number(declared) > maximum)
|
|
213
|
+
throw new PlaywrightResourceLimitError('Playwright response body byte limit exceeded');
|
|
214
|
+
const data = await response.native.body();
|
|
215
|
+
request.signal.throwIfAborted();
|
|
216
|
+
if (data.length > maximum)
|
|
217
|
+
throw new PlaywrightResourceLimitError('Playwright response body byte limit exceeded');
|
|
218
|
+
const mime = response.headers['content-type']?.split(';')[0]?.trim() ?? '';
|
|
219
|
+
if (mime.startsWith('text/') || mime.includes('json') || mime.includes('xml') || mime.includes('javascript') || mime === 'application/x-www-form-urlencoded')
|
|
220
|
+
return textResult(request, new TextDecoder().decode(data), 'Response body', 'response');
|
|
221
|
+
const extension = mime === 'image/png' ? 'png' : mime === 'image/jpeg' ? 'jpg' : mime === 'application/pdf' ? 'pdf' : 'bin';
|
|
222
|
+
return capabilityArtifact(request, data, 'response', extension, 'Response body', () => '', request.options.filename);
|
|
223
|
+
}
|
|
224
|
+
const lines = [`#${index} [${record.method.toUpperCase()}] ${record.url}`, '', ' General'];
|
|
225
|
+
if (response)
|
|
226
|
+
lines.push(` status: [${response.status}] ${response.statusText}`);
|
|
227
|
+
else if (record.native.failure())
|
|
228
|
+
lines.push(` status: [FAILED] ${record.native.failure().errorText}`);
|
|
229
|
+
const timing = record.native.timing?.();
|
|
230
|
+
if (timing && timing.responseEnd >= 0)
|
|
231
|
+
lines.push(` duration: ${Math.round(timing.responseEnd)}ms`);
|
|
232
|
+
lines.push(` type: ${record.type}`);
|
|
233
|
+
if (response?.headers['content-type'])
|
|
234
|
+
lines.push(` mimeType: ${response.headers['content-type'].split(';')[0].trim()}`);
|
|
235
|
+
for (const [label, values] of [['Request headers', record.headers], ['Response headers', response?.headers]]) {
|
|
236
|
+
if (values && Object.keys(values).length)
|
|
237
|
+
lines.push('', ` ${label}`, ...Object.entries(values).map(([key, value]) => ` ${key}: ${value}`));
|
|
238
|
+
}
|
|
239
|
+
const hints = [];
|
|
240
|
+
if (record.body)
|
|
241
|
+
hints.push(`Run \`request-body ${index}\` to read the request body.`);
|
|
242
|
+
if (response && response.status >= 200 && response.status !== 204 && response.status !== 304)
|
|
243
|
+
hints.push(`Run \`response-body ${index}\` to read the response body.`);
|
|
244
|
+
if (hints.length)
|
|
245
|
+
lines.push('', ...hints);
|
|
246
|
+
return textResult(request, lines.join('\n'), 'Request', 'request');
|
|
247
|
+
} };
|
|
248
|
+
const consoleAbility = { scope: 'session', options: 'all', async execute(request) {
|
|
249
|
+
const { events } = observed(request);
|
|
250
|
+
const level = request.args[0] ?? 'info';
|
|
251
|
+
if (!consoleLevels.includes(level))
|
|
252
|
+
throw new Error(`Invalid console level: ${level}`);
|
|
253
|
+
const all = request.options.all ? events.console : events.console.filter(message => message.generation === events.generation);
|
|
254
|
+
const filtered = all.filter(message => includeConsole(level, message));
|
|
255
|
+
const lines = [`Total messages: ${all.length} (Errors: ${all.filter(message => message.type === 'error').length}, Warnings: ${all.filter(message => ['warning', 'warn'].includes(message.type)).length})`];
|
|
256
|
+
if (filtered.length !== all.length)
|
|
257
|
+
lines.push(`Returning ${filtered.length} messages for level "${level}"`);
|
|
258
|
+
lines.push('', ...filtered.map(consoleText));
|
|
259
|
+
return textResult(request, lines.join('\n'), 'Console', 'console');
|
|
260
|
+
} };
|
|
261
|
+
export const playwrightEventAbilities = {
|
|
262
|
+
requests: requestsAbility, console: consoleAbility,
|
|
263
|
+
...Object.fromEntries(['request', 'request-headers', 'request-body', 'response-headers', 'response-body'].map(command => [command, requestAbility])),
|
|
264
|
+
};
|
|
265
|
+
//# sourceMappingURL=capability-events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-events.js","sourceRoot":"","sources":["../../src/playwright/capability-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PlaywrightAbilityRequest } from './abilities.js';
|
|
2
|
+
import type { PlaywrightCommandResult } from './response.js';
|
|
3
|
+
import type { PlaywrightSessionConfiguration } from './session-configuration.js';
|
|
4
|
+
import type { PlaywrightCodegenAction } from './adapter.js';
|
|
5
|
+
export declare function capabilityResult(code: string, text?: string): PlaywrightCommandResult;
|
|
6
|
+
export declare function capabilityActionCode(request: PlaywrightAbilityRequest, action: PlaywrightCodegenAction, fallback: string): string;
|
|
7
|
+
export declare function capabilityLocator(target: string, request?: PlaywrightAbilityRequest): string;
|
|
8
|
+
export declare function requireSession(request: PlaywrightAbilityRequest): {
|
|
9
|
+
readonly configuration?: PlaywrightSessionConfiguration;
|
|
10
|
+
readonly context: import("./adapter.js").PlaywrightContext;
|
|
11
|
+
readonly page: import("./adapter.js").PlaywrightPage | undefined;
|
|
12
|
+
resolveTarget(ref: string): Promise<import("./adapter.js").PlaywrightElementHandle>;
|
|
13
|
+
targetLocator?(target: string): string;
|
|
14
|
+
selectPage(page: import("./adapter.js").PlaywrightPage): Promise<void>;
|
|
15
|
+
replaceContext?(state: import("./adapter.js").PlaywrightStorageState): Promise<void>;
|
|
16
|
+
invalidateTargets?(): Promise<void>;
|
|
17
|
+
runAction?(action: () => Promise<void>): Promise<void>;
|
|
18
|
+
readonly captureArtifact?: import("./adapter.js").PlaywrightArtifactCapture;
|
|
19
|
+
readonly captureTrace?: import("./adapter.js").PlaywrightTraceCapture;
|
|
20
|
+
readonly executeCode?: import("./adapter.js").PlaywrightCodeExecutor;
|
|
21
|
+
readonly generateActionCode?: import("./adapter.js").PlaywrightActionCodeGenerator;
|
|
22
|
+
readonly prepareFileBytes?: (bytes: Uint8Array) => Uint8Array;
|
|
23
|
+
registerCleanup(cleanup: () => Promise<void>): void;
|
|
24
|
+
};
|
|
25
|
+
export declare function requirePage(request: PlaywrightAbilityRequest): import("./adapter.js").PlaywrightPage;
|
|
26
|
+
export declare function capabilityAction(request: PlaywrightAbilityRequest, action: () => Promise<void>): Promise<void>;
|
|
27
|
+
export declare function numeric(value: string | boolean | readonly string[] | undefined, name: string): number;
|
|
28
|
+
export declare function unsupported(name: string): never;
|
|
29
|
+
export declare function capabilityArtifactName(prefix: string, extension: string, configuration?: PlaywrightSessionConfiguration): string;
|
|
30
|
+
/** Resolve a generated basename beneath the session's virtual output directory. */
|
|
31
|
+
export declare function capabilityOutputPath(basename: string, configuration?: PlaywrightSessionConfiguration): string;
|
|
32
|
+
export declare function capabilityArtifact(request: PlaywrightAbilityRequest, bytes: Uint8Array, prefix: string, extension: string, label: string, code: (filename: string) => string, filename?: string): Promise<PlaywrightCommandResult>;
|
|
33
|
+
//# sourceMappingURL=capability-result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-result.d.ts","sourceRoot":"","sources":["../../src/playwright/capability-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,uBAAuB,EAA2B,MAAM,eAAe,CAAC;AAGtF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AACjF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAK5D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,uBAAuB,CAKrF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWjI;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAG5F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,wBAAwB;;;;;;;;;;;;;;;;EAI/D;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,wBAAwB,yCAI5D;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpH;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrG;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAqE;AAErH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,8BAA8B,GAAG,MAAM,CAGhI;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,8BAA8B,GAAG,MAAM,CAG7G;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,wBAAwB,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAIxO"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { playwrightArtifactName, playwrightCodeString } from './response.js';
|
|
2
|
+
import { isPlaywrightSnapshotRef } from './targets.js';
|
|
3
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
4
|
+
let artifactSequence = 0;
|
|
5
|
+
export function capabilityResult(code, text) {
|
|
6
|
+
const sections = [];
|
|
7
|
+
if (text !== undefined)
|
|
8
|
+
sections.push({ title: 'Result', content: text });
|
|
9
|
+
if (code)
|
|
10
|
+
sections.push({ title: 'Ran Playwright code', content: code, codeframe: 'js' });
|
|
11
|
+
return { sections };
|
|
12
|
+
}
|
|
13
|
+
export function capabilityActionCode(request, action, fallback) {
|
|
14
|
+
const session = requireSession(request);
|
|
15
|
+
const language = session.configuration?.codegen ?? 'typescript';
|
|
16
|
+
if (language === 'none')
|
|
17
|
+
return '';
|
|
18
|
+
if (!session.generateActionCode) {
|
|
19
|
+
if (language !== 'typescript')
|
|
20
|
+
unsupported('native action code generation');
|
|
21
|
+
return fallback;
|
|
22
|
+
}
|
|
23
|
+
const code = session.generateActionCode({ language, action });
|
|
24
|
+
if (typeof code !== 'string' || new TextEncoder().encode(code).byteLength > (request.limits?.maxCommandBytes ?? 1048576))
|
|
25
|
+
throw new PlaywrightResourceLimitError('Playwright generated code byte limit exceeded');
|
|
26
|
+
return code;
|
|
27
|
+
}
|
|
28
|
+
export function capabilityLocator(target, request) {
|
|
29
|
+
if (request?.browserSession?.targetLocator)
|
|
30
|
+
return request.browserSession.targetLocator(target);
|
|
31
|
+
return `page.locator(${playwrightCodeString(isPlaywrightSnapshotRef(target) ? `aria-ref=${target}` : target)})`;
|
|
32
|
+
}
|
|
33
|
+
export function requireSession(request) {
|
|
34
|
+
request.signal.throwIfAborted();
|
|
35
|
+
if (!request.browserSession)
|
|
36
|
+
throw new Error('An open browser session is required');
|
|
37
|
+
return request.browserSession;
|
|
38
|
+
}
|
|
39
|
+
export function requirePage(request) {
|
|
40
|
+
const page = requireSession(request).page;
|
|
41
|
+
if (!page)
|
|
42
|
+
throw new Error('No open browser tab');
|
|
43
|
+
return page;
|
|
44
|
+
}
|
|
45
|
+
export async function capabilityAction(request, action) {
|
|
46
|
+
const session = requireSession(request);
|
|
47
|
+
if (session.runAction)
|
|
48
|
+
await session.runAction(action);
|
|
49
|
+
else
|
|
50
|
+
await action();
|
|
51
|
+
}
|
|
52
|
+
export function numeric(value, name) {
|
|
53
|
+
if (typeof value !== 'string' || !value.trim() || !Number.isFinite(Number(value)))
|
|
54
|
+
throw new Error(`Invalid ${name}`);
|
|
55
|
+
return Number(value);
|
|
56
|
+
}
|
|
57
|
+
export function unsupported(name) { throw new Error(`Playwright provider does not support ${name}`); }
|
|
58
|
+
export function capabilityArtifactName(prefix, extension, configuration) {
|
|
59
|
+
const generated = playwrightArtifactName(prefix, extension, ++artifactSequence);
|
|
60
|
+
return capabilityOutputPath(generated.slice(generated.lastIndexOf('/') + 1), configuration);
|
|
61
|
+
}
|
|
62
|
+
/** Resolve a generated basename beneath the session's virtual output directory. */
|
|
63
|
+
export function capabilityOutputPath(basename, configuration) {
|
|
64
|
+
const directory = configuration?.outputDir ?? '.playwright-cli';
|
|
65
|
+
return `${directory}${directory.endsWith('/') ? '' : '/'}${basename}`;
|
|
66
|
+
}
|
|
67
|
+
export async function capabilityArtifact(request, bytes, prefix, extension, label, code, filename) {
|
|
68
|
+
const name = filename ?? capabilityArtifactName(prefix, extension, request.browserSession?.configuration);
|
|
69
|
+
await request.writeArtifact(bytes, name);
|
|
70
|
+
return capabilityResult(code(name), `- [${label}](${name})`);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=capability-result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability-result.js","sourceRoot":"","sources":["../../src/playwright/capability-result.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-ini.d.ts","sourceRoot":"","sources":["../../src/playwright/config-ini.ts"],"names":[],"mappings":"AA2HA,mFAAmF;AACnF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM9E"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { PlaywrightResourceLimitError } from './resource-limit.js';
|
|
2
|
+
const types = new Map();
|
|
3
|
+
function fields(prefix, type, names) {
|
|
4
|
+
for (const name of names.split(' '))
|
|
5
|
+
types.set(prefix + name, type);
|
|
6
|
+
}
|
|
7
|
+
fields('browser.', 'string', 'browserName userDataDir cdpEndpoint remoteEndpoint');
|
|
8
|
+
fields('browser.', 'boolean', 'isolated');
|
|
9
|
+
fields('browser.', 'number', 'cdpTimeout');
|
|
10
|
+
fields('browser.', 'string[]', 'initPage initScript');
|
|
11
|
+
fields('browser.launchOptions.', 'string', 'channel executablePath downloadsPath tracesDir proxy.server proxy.bypass proxy.username proxy.password');
|
|
12
|
+
fields('browser.launchOptions.', 'boolean', 'headless chromiumSandbox handleSIGHUP handleSIGINT handleSIGTERM');
|
|
13
|
+
fields('browser.launchOptions.', 'number', 'slowMo timeout');
|
|
14
|
+
fields('browser.launchOptions.', 'string[]', 'args');
|
|
15
|
+
fields('browser.contextOptions.', 'string', 'baseURL colorScheme contrast forcedColors locale reducedMotion serviceWorkers storageState timezoneId userAgent');
|
|
16
|
+
fields('browser.contextOptions.', 'boolean', 'acceptDownloads bypassCSP hasTouch ignoreHTTPSErrors isMobile javaScriptEnabled offline strictSelectors');
|
|
17
|
+
fields('browser.contextOptions.', 'number', 'deviceScaleFactor');
|
|
18
|
+
fields('browser.contextOptions.', 'string[]', 'permissions');
|
|
19
|
+
fields('browser.contextOptions.', 'size', 'screen viewport');
|
|
20
|
+
fields('', 'string', 'outputDir imageResponses codegen testIdAttribute server.host console.level snapshot.mode');
|
|
21
|
+
fields('', 'boolean', 'extension saveSession sharedBrowserContext allowUnrestrictedFileAccess snapshot.boxes');
|
|
22
|
+
fields('', 'number', 'outputMaxSize server.port timeouts.action timeouts.idle timeouts.navigation timeouts.settle');
|
|
23
|
+
fields('', 'string[]', 'capabilities server.allowedHosts network.allowedOrigins network.blockedOrigins');
|
|
24
|
+
fields('', 'size', 'saveVideo');
|
|
25
|
+
function token(source) {
|
|
26
|
+
const text = source.trim();
|
|
27
|
+
const quote = text[0];
|
|
28
|
+
if ((quote === '"' || quote === "'") && text.at(-1) === quote) {
|
|
29
|
+
const unquoted = quote === "'" ? text.slice(1, -1) : text;
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(unquoted);
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return unquoted;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
let result = '';
|
|
38
|
+
for (let i = 0; i < text.length; i++) {
|
|
39
|
+
const char = text[i];
|
|
40
|
+
if (char === ';' || char === '#')
|
|
41
|
+
break;
|
|
42
|
+
if (char === '\\' && text[i + 1] && '\\;#'.includes(text[i + 1]))
|
|
43
|
+
result += text[++i];
|
|
44
|
+
else
|
|
45
|
+
result += char;
|
|
46
|
+
}
|
|
47
|
+
return result.trim();
|
|
48
|
+
}
|
|
49
|
+
function safePath(parts) {
|
|
50
|
+
if (parts.some(part => ['__proto__', 'constructor', 'prototype'].includes(part)))
|
|
51
|
+
throw new Error('Invalid INI configuration path');
|
|
52
|
+
}
|
|
53
|
+
function assign(root, parts, value) {
|
|
54
|
+
safePath(parts);
|
|
55
|
+
let current = root;
|
|
56
|
+
for (const part of parts.slice(0, -1)) {
|
|
57
|
+
const previous = Object.hasOwn(current, part) ? current[part] : undefined;
|
|
58
|
+
if (!previous || typeof previous !== 'object')
|
|
59
|
+
current[part] = {};
|
|
60
|
+
current = current[part];
|
|
61
|
+
}
|
|
62
|
+
current[parts.at(-1)] = value;
|
|
63
|
+
}
|
|
64
|
+
function sectionParts(name) {
|
|
65
|
+
const parts = [''];
|
|
66
|
+
for (let i = 0; i < name.length; i++) {
|
|
67
|
+
const char = name[i];
|
|
68
|
+
if (char === '\\' && name[i + 1] === '.') {
|
|
69
|
+
parts[parts.length - 1] = parts.at(-1) + '.';
|
|
70
|
+
i++;
|
|
71
|
+
}
|
|
72
|
+
else if (char === '.')
|
|
73
|
+
parts.push('');
|
|
74
|
+
else
|
|
75
|
+
parts[parts.length - 1] = parts.at(-1) + char;
|
|
76
|
+
}
|
|
77
|
+
return parts;
|
|
78
|
+
}
|
|
79
|
+
function readEntries(text) {
|
|
80
|
+
const entries = {};
|
|
81
|
+
let current = entries;
|
|
82
|
+
for (const line of text.split('\r').join('\n').split('\n')) {
|
|
83
|
+
const trimmed = line.trim();
|
|
84
|
+
if (!trimmed || trimmed.startsWith(';') || trimmed.startsWith('#'))
|
|
85
|
+
continue;
|
|
86
|
+
if (line.startsWith('[') && line.indexOf(']') === line.trimEnd().length - 1) {
|
|
87
|
+
const name = String(token(line.slice(1, line.indexOf(']'))));
|
|
88
|
+
if (name === '__proto__') {
|
|
89
|
+
current = {};
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
safePath(sectionParts(name));
|
|
93
|
+
if (!Object.hasOwn(entries, name))
|
|
94
|
+
entries[name] = {};
|
|
95
|
+
const section = entries[name];
|
|
96
|
+
if (!section || typeof section !== 'object' || Array.isArray(section))
|
|
97
|
+
throw new Error('Invalid INI section');
|
|
98
|
+
current = section;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
const equal = line.indexOf('=');
|
|
102
|
+
if (equal === 0)
|
|
103
|
+
continue;
|
|
104
|
+
const rawKey = String(token(equal < 0 ? line : line.slice(0, equal)));
|
|
105
|
+
const array = rawKey.length > 2 && rawKey.endsWith('[]');
|
|
106
|
+
const key = array ? rawKey.slice(0, -2) : rawKey;
|
|
107
|
+
if (key === '__proto__')
|
|
108
|
+
continue;
|
|
109
|
+
safePath(key.split('.'));
|
|
110
|
+
const raw = equal < 0 ? true : token(line.slice(equal + 1));
|
|
111
|
+
const value = raw === 'true' ? true : raw === 'false' ? false : raw === 'null' ? null : raw;
|
|
112
|
+
if (array && !Array.isArray(current[key]))
|
|
113
|
+
current[key] = Object.hasOwn(current, key) ? [current[key]] : [];
|
|
114
|
+
const previous = current[key];
|
|
115
|
+
if (Array.isArray(previous))
|
|
116
|
+
previous.push(value);
|
|
117
|
+
else
|
|
118
|
+
current[key] = value;
|
|
119
|
+
}
|
|
120
|
+
for (const [name, value] of Object.entries(entries)) {
|
|
121
|
+
if (typeof value !== 'object' || Array.isArray(value))
|
|
122
|
+
continue;
|
|
123
|
+
const parts = sectionParts(name);
|
|
124
|
+
if (parts.length === 1 && parts[0] === name)
|
|
125
|
+
continue;
|
|
126
|
+
assign(entries, parts, value);
|
|
127
|
+
delete entries[name];
|
|
128
|
+
}
|
|
129
|
+
return entries;
|
|
130
|
+
}
|
|
131
|
+
function coerce(value, type) {
|
|
132
|
+
if (type === 'string')
|
|
133
|
+
return String(value);
|
|
134
|
+
if (type === 'number')
|
|
135
|
+
return Number(value);
|
|
136
|
+
if (type === 'boolean')
|
|
137
|
+
return typeof value === 'boolean' ? value : value === 'true' || value === '1';
|
|
138
|
+
if (type === 'string[]')
|
|
139
|
+
return (Array.isArray(value) ? value : [value]).map(String);
|
|
140
|
+
if (type === 'size') {
|
|
141
|
+
if (typeof value !== 'string' || !value.includes('x'))
|
|
142
|
+
return undefined;
|
|
143
|
+
const [width, height] = value.split('x').map(Number);
|
|
144
|
+
return width !== undefined && height !== undefined && !Number.isNaN(width) && !Number.isNaN(height) && width > 0 && height > 0 ? { width, height } : undefined;
|
|
145
|
+
}
|
|
146
|
+
if (typeof value !== 'string' || !value.trim())
|
|
147
|
+
return value;
|
|
148
|
+
const number = Number(value.trim());
|
|
149
|
+
return Number.isNaN(number) ? value : number;
|
|
150
|
+
}
|
|
151
|
+
/** Native INI longhand coercion; ordinary config validation runs after parsing. */
|
|
152
|
+
export function parsePlaywrightIniConfig(text) {
|
|
153
|
+
const maximum = 8 * 1024 * 1024;
|
|
154
|
+
if (text.length > maximum || new TextEncoder().encode(text).byteLength > maximum)
|
|
155
|
+
throw new PlaywrightResourceLimitError('Playwright INI configuration byte limit exceeded');
|
|
156
|
+
const config = {};
|
|
157
|
+
for (const [path, value] of Object.entries(readEntries(text)))
|
|
158
|
+
assign(config, path.split('.'), coerce(value, types.get(path)));
|
|
159
|
+
return config;
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=config-ini.js.map
|