npm / playwright / 1.65.0-alpha-2026-10-17
playwright 1.65.0-alpha-2026-10-17
- Source
- https://github.com/microsoft/playwright
- Commit scanned
6bbe2475ba79- Directory
packages/playwright- Compared with
034f230cc68b(0 signals introduced since)- Files
- 132 scanned, 13 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 12 info
- Scan time
- 8.8 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 10 of 10 warn and critical signals; 10 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-17 22:56
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
info
warn→ info by reviewdynamic-executionpackages/playwright/src/isomorphic/teleReceiver.ts:462:90privatelikely benign Decodes base64 test stdio payloads in the browser-compatible reporter receiver.Reasoning
atob is used as a fallback to decode base64 stdio chunks sent by the test runner. It only runs when Buffer is unavailable, and the decoded data is output text, not fetched or evaluated. This is a routine decoding step.
-
; ; : stringlikely benign Loads the package's own package.json via a computed path.Reasoning
The require target is path.join of the package root and the literal 'package.json'. This reads the tool's own manifest, which is a standard pattern.
-
const ; const libCoverage = ; const libReport = ; const reports = ;likely benign Loads the istanbul coverage library, resolved from the config directory.Reasoning
The specifier comes from require.resolve for the fixed name 'istanbul-lib-coverage', resolved relative to the configured directory. The module name is hardcoded, so this is a normal optional-dependency load.
-
const libCoverage = ; const libReport = ; const reports = ; const context = libReport.likely benign Loads the istanbul report library through a resolved path.Reasoning
Same pattern as the previous line: a hardcoded module name resolved from the config directory for istanbul-lib-report.
-
const libReport = ; const reports = ; const context = libReport.likely benign Loads the istanbul reports module through a resolved path.Reasoning
Same pattern: a fixed istanbul-reports module name resolved from the config directory. No attacker-controlled input is involved.
-
...plugins, ...pluginsEpilogue., ], compact: false,likely benign Requires Babel plugins named in the project configuration.Reasoning
Plugin names come from the user's own Babel/test configuration and are loaded by design. The variable specifier is expected for a plugin system, and the user controls the config.
-
const : = ; const babelResult = ;likely benign Lazily loads the internal babelBundle transform module.Reasoning
The module path is libPath of the fixed name 'transform/babelBundle', which is the package's own bundled transform module. This is an internal lazy load.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:286:29const fileName = url.; const ; // For ESM imports handled by the asynchronous loader, issue a preflight to populatelikely benign Uses eval to issue a native dynamic import of the test file's URL.Reasoning
eval is used to construct a dynamic import() so that the CJS-to-ESM compiler does not rewrite it into require. The only interpolated value is JSON.stringify of a file URL for a local test file, which is a known workaround and not an injection path. The eval pattern still warrants a look, though.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:293:13likely benign Uses eval to dynamically import an ESM preflight marker for a test file.Reasoning
Same eval-wrapped import() trick, here for a preflight module path built from a local file name with JSON.stringify. The input is controlled by the runner, not untrusted data, so this is a deliberate loader workaround.
-
} const result = ; const depsCollector = cc.;likely benign Requires the test file being loaded by the test runner.Reasoning
The runner requires the test file it is loading. The path comes from the test discovery list, which is the core purpose of the loader. This is expected behavior.
-
interface TsConfig -
video: VideoMode | /** deprecated */ 'retry-with-video' |
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&