npm / playwright / 1.65.0-alpha-2026-10-22
playwright 1.65.0-alpha-2026-10-22
- Source
- https://github.com/microsoft/playwright
- Artifact scanned
playwright-1.65.0-alpha-2026-10-22.tgz- Compared with
playwright-1.65.0-alpha-2026-10-21.tgz(0 signals introduced since)- Files
- 55 scanned, 5 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 60 info
- Scan time
- 29.6 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 32 of 32 warn and critical signals; 32 demoted to info.
- Disclude version
- 4.3.0
- Scanned (UTC)
- 2026-10-24 00:09
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
-
process.env. = "true"; const = ; const babelResult = ;likely benign Loads the internal babel transform bundle through a path helper.Reasoning
The require resolves an internal bundled helper path via libPath("transform", "babelBundle") and then calls babelTransform on source code. This is an ordinary internal module load inside a test runner's transform pipeline, with no decoding or network activity visible.
-
const fileName = import_url2..; const ;likely benign Uses eval to perform a native dynamic import of a local file URL for ESM test loading.Reasoning
eval is used only to wrap a dynamic import() of a file URL built with JSON.stringify. This is a known workaround so that a CommonJS-compiled build keeps native ESM import semantics. Eval is a risky construct, but the input is a local file path and no attacker-controlled data reaches it.
-
return await .;likely benign Uses eval to dynamically import a preflight module next to a test file.Reasoning
Same eval(import(...)) workaround, here loading a sibling '.esm.preflight' file for source-map setup. The specifier is derived from the test file path, and the surrounding code handles errors and calls a debug logger. No obfuscation or malicious behavior is present.
-
} const result = ; const depsCollector = ;likely benign Requires a test file path during test loading.Reasoning
require(file) loads the test file being run, which is the core job of a test runner. The file comes from the project's own test discovery, and the surrounding code only collects dependencies.
-
return "string" === typeof type || "function" === typeof type || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || "object" === typeof type && null !== type && -
var REACT_ELEMENT_TYPE = /* @__PURE__ */ Symbol., REACT_PORTAL_TYPE = /* @__PURE__ */ Symbol., REACT_FRAGMENT_TYPE = /* @__PURE__ */ Symbol., REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol., REACT_PROFILER_TYPE = /* -
return "string" === typeof type || "function" === typeof type || type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || "object" === typeof type && null !== type && -
exports2. = /||| -
var astralIdentifierStartCodes =dismissed A long array literal of Unicode code point ranges used for identifier parsing.Reasoning
The long line is a numeric table of Unicode astral identifier-start code points, the kind of data emitted by Babel-style identifier tables. It is a data constant, not executable obfuscation.
-
const moduleUrl = ; const importedModule = awaitlikely benign Dynamically imports a user module by file URL in a module loader.Reasoning
This dynamic import of pathToFileURL(filePath) with a webpackIgnore hint is the standard module loader for user-configured files in a test framework's ESM support. The path comes from configuration, not untrusted input.
-
} const requiredModule = ;likely benign CommonJS fallback that requires a user module by path.Reasoning
This require(filePath) is the CommonJS fallback of the same module loader. It loads a configured module path and then applies interop handling, which is ordinary loader behavior.
-
const message = pass ? -
const message = pass ? -
const message = pass ? : -
const message = pass ? -
const packageRoot = import_path..; const packageJSON = ;likely benign Reads the package's own package.json for its metadata.Reasoning
This require loads the package's own package.json from a path built relative to __dirname. It is a standard metadata read with no dynamic execution or remote data.
-
likely benign Decodes base64-encoded stdio data from a test worker into a chunk.
Reasoning
atob or Buffer.from decodes base64 stdio chunks forwarded from worker processes. The decoded data is treated as text output and stored in result objects. It is not fetched or evaluated, and the base64 path is a standard transport for stdout forwarding.
-
const ; const libCoverage = ; const libReport = ; const reports = ;likely benign Loads the istanbul coverage library for report generation.Reasoning
The require targets istanbul-lib-coverage, resolved from the configured config directory. This is the normal way a test runner loads coverage tooling for reporting.
-
const libCoverage = ; const libReport = ; const reports = ; const context = libReport.likely benign Loads the istanbul report library for coverage output.Reasoning
The require targets istanbul-lib-report, which is part of the standard coverage reporting stack, and is resolved relative to the project config. It matches the surrounding coverage setup.
-
const libReport = ; const reports = ; const context = libReport.likely benign Loads the istanbul reports package for coverage reporters.Reasoning
The require targets the istanbul-reports package, used to generate coverage reporters. This is the standard coverage reporting setup and has no suspicious behavior.
-
var -
var astralIdentifierStartCodes =likely benign Generated Unicode astral identifier-start code table inside a Babel bundle.Reasoning
A 2269-character line of numeric code-point ranges (astralIdentifierStartCodes) is the standard generated Unicode identifier table used by Babel's parser. Long lines are typical of minified or generated bundles and carry no execution.
-
exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. -
exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2.likely benign Long chained exports assignment of Babel AST node type constructors.Reasoning
The long line is a chained export assignment list for Babel AST node types (JSXIdentifier, InterpreterDirective and so on). It is generated bundler output with no dynamic behaviour.
-
exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = explikely benign Long chained exports assignment of Babel TypeScript AST node types.Reasoning
Same pattern as the neighbouring line: a long chain of TypeScript AST node exports from Babel's generated types module. Length alone is not suspicious in a bundle.
-
exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. -
exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = exports2. = e -
var astralIdentifierStartCodes =likely benign Repeated generated Unicode identifier-start code table in the bundle.Reasoning
This is a duplicate of the astral identifier table at line 3079, present again because the bundle inlines the same parser module twice. It is a numeric data array.
-
var reservedWordLikeSet = /* @__PURE__ */ -
var _node$directive, _node$decorators, _node$optional, _node$typeAnnotation, _node$accessibility, _node$decorators2, _node$override, _node$readonly, _node$static, _node$declare, _node$returnType, _node$typeParameters, _node$optional2, _node$optional3, _node$accessibility2, _node$readonly2, _node$static2, _node$ -
exports2. = /||| -
module2.. = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u06likely benign Large generated regex of Unicode ID_Start code point ranges.Reasoning
The line is a large regex character class of Unicode ID_Start ranges, as generated by regenerate tooling for the unicode-property tables of a parser. It is data and does not execute anything.
-
module2.. = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\ulikely benign Large generated regex of Unicode ID_Continue code point ranges.Reasoning
A Unicode ID_Continue regex class of the same generated kind as ID_Start. It is a lookup table with no behaviour beyond matching.
-
var a = -
let g = null != e2 ? e2 : , q = -
e3., n2 > e3 && < e3. && -
module2. = -
module2. =likely benign Bundled caniuse-lite browser compatibility data object.Reasoning
The 31k-character line is a caniuse-lite browser-support data object (feature keys with version and percentage values). It is static data bundled with browserslist, not code.
-
module2. = -
} var queries = ;likely benign Browserslist loading a config module via require.resolve with a variable name.Reasoning
Browserslist resolves custom config or query modules with require.resolve over a caller-supplied name and paths, which is the documented way to load shared configs. The target is a local module resolved from the project's own configuration, not a remote payload.
-
} var stats =likely benign Browserslist reading its browserslist-stats.json data file via require.resolve.Reasoning
This loads browserslist-stats.json from a resolved package path, using forward-slash normalisation for Windows. It is a standard data read with a fixed filename.
-
likely benign Browserslist loading caniuse-lite region data by code.
Reasoning
Browserslist requires caniuse-lite region data using a concatenated region code, wrapped in try/catch that rethrows a BrowserslistError on failure. This is the library's normal data lookup, and the path is confined to the caniuse-lite data directory.
-
likely benign Browserslist loading caniuse-lite feature data by name.
Reasoning
Browserslist loads caniuse-lite feature data by name under caniuse-lite/data/features, with a try/catch error path. The concatenated name is confined to a fixed data directory, which is ordinary behaviour.
-
likely benign Base64 decode helper used for inline source-map comments in the bundle.
Reasoning
decodeBase64WithAtob sits beside stripComment, which points to inline source-map handling. It decodes an embedded base64 sourcemap comment to a UTF-8 string, which is a common and benign technique. The snippet shows no fetch or eval consuming the output.
-
var json = this.; return ; } -
; }likely benign A helper that wraps dynamic import() of a file path, as build tooling commonly does.Reasoning
The function wraps a dynamic import() of a caller-supplied path. This is a common helper for loading config or plugin modules in build tooling, and the snippet shows no decoding, network access or hidden payload.
-
-
path. -
acc. -
...plugins, ...pluginsEpilogue. ], compact: false,likely benign Babel config plugin names are resolved via require at runtime.Reasoning
Plugin names from the user's Babel configuration are resolved with require(name). This is the standard way Babel loads plugins, and nothing in the snippet is obfuscated or malicious.
-
module2.. = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u06dismissed A generated Unicode ID_Start regex table on one long line.Reasoning
A very long line holding Unicode ID_Start character-class ranges. This is generated lookup-table data from a Unicode regex library, a known false positive for the raw long-line signal.
-
module2.. = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\udismissed A generated Unicode ID_Continue regex table on one long line.Reasoning
Same as the ID_Start finding: a generated Unicode ID_Continue range table, typical minified or generated library data with no executable payload.
-
process.env. = "true"; const = ; const babelResult = ;likely benign Internal require of a bundled transform module via a computed path.Reasoning
The require path is built from a bundled package's libPath helper and resolves to the package's own transform module. It is internal module loading inside the library, not a remote or attacker-chosen specifier.
-
const fileName = import_url2..; const ;likely benign eval used to emit a native dynamic import() of a local file URL, hidden from the bundler.Reasoning
eval wraps import() of a file URL built with JSON.stringify from a local file path. This is a known pattern for hiding import() from bundlers so it stays a native dynamic import at runtime. The input is a local test or config path, not untrusted network data, so the eval is not an obvious dropper.
-
return await .;likely benign eval of import() of a local .esm.preflight file, with errors caught and logged.Reasoning
Same pattern as the sibling eval: a preflight module import of a local file path derived from the file name, wrapped in eval so bundlers leave it alone. It is a legitimate ESM loader technique and the input is not attacker-controlled.
-
} const result = ; const depsCollector = ;likely benign Loader requires a user-supplied test or config file by path.Reasoning
This is the ESM loader requiring the user's test or config file by path, which is its core purpose. Without the surrounding code it is not possible to see the origin of the path, but the context is a standard file loader with dependency collection.
-
var -
const snapshotPath = template..... -
video: VideoMode | /** deprecated */ 'retry-with-video' |
Reproduce This Scan
Run disclude locally to verify. These commands scan the published file; the "new in this release" marks come from comparing it with the previous release's file, which they don't repeat. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
|
&&