Skip to content

Fix Minimatch and Elliptic Dependabot update failures - #407

Merged
Vladimir Morozov (vmoroz) merged 1 commit into
microsoft:mainfrom
vmoroz:PR/dependabot-security-updates
Nov 7, 2026
Merged

Vladimir Morozov (vmoroz) merged 1 commit into
microsoft:mainfrom
vmoroz:PR/dependabot-security-updates

Conversation

@vmoroz

@vmoroz Vladimir Morozov (vmoroz) commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

Summary

Registry access is fixed, but this Dependabot security update
still cannot update Minimatch or Elliptic.

  • Parser tooling: use compatible Glob 14/Minimatch 11.0.3 together so the
    patched matcher still discovers files. Keep legacy 3.x/5.x callers unchanged
    and add wildcard-discovery regression tests.
  • Widgets benchmark: move to Webpack 5 and a compatible CLI, removing the
    obsolete browser-crypto dependency chain that brings in unpatched Elliptic.
    Preserve the output location and ES5 runtime target.

Deepmerge has no patched release and is unchanged. Registry configuration,
eight-day gates, README files, and the pre-generated benchmark bundle/map are
also unchanged.

Test Plan

Local validation with the documented anonymous PackageFeedProxy environment:

  • .\dev npm-source-lint: passed, 12 projects, 0 violations.
  • node --test --test-reporter=dot .\.ado\scripts\npm-source-lint.test.ts: passed, 54 tests.
  • node .\.yarn\releases\yarn-4.13.0.cjs --cwd .\tools\hermes-parser\js install --immutable: passed.
  • node .\.yarn\releases\yarn-4.13.0.cjs --cwd .\tools\hermes-parser\js test --runInBand --runTestsByPath .\__tests__\tooling-glob-test.js .\hermes-parser\__tests__\getModuleDocblock-test.js --coverage --collectCoverageFrom=hermes-parser/src/getModuleDocblock.js --coverageReporters=text-summary: passed, 2 suites, 9 tests.
  • npm --prefix .\benchmarks\widgets\original\es5 ci --no-audit --no-fund: passed, cold restore.
  • npm --prefix .\benchmarks\widgets\original\es5 run build -- --stats=errors-warnings: passed.
  • node .\.ado\scripts\node_modules\prettier\bin\prettier.cjs --check .\tools\hermes-parser\js\__tests__\tooling-glob-test.js: passed.

Additional local checks passed for all four affected Minimatch consumers,
legacy callers, and identical scene-diff output from the regenerated and
committed bundles after 5,000 iterations each.

The hermes-parser Jest checks are local; CI does not currently run that suite.
The full parser suite was not run because the generated WASM parser fixture is
absent. Native build was not run; no native code changed.

Microsoft Reviewers: Open in CodeFlow

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@vmoroz Vladimir Morozov (vmoroz) added the dependencies Pull requests that update a dependency file label Nov 7, 2026
Copilot AI balanced review requested due to automatic review settings November 7, 2026 01:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are identified for the dependency and build-tool updates.

No open issues 🎉

What changed in this PR

This PR addresses Dependabot update failures in Hermes parser tooling and the widgets benchmark without changing native engine code or committed benchmark bundles.

Changes:

  • Aligns modern Glob consumers with Glob 14 and patched Minimatch 11.0.3, leaving legacy Minimatch callers unchanged.
  • Adds regression tests for wildcard file discovery and coverage exclusions.
  • Upgrades the widgets build to Webpack 5, removing the Elliptic dependency chain while preserving the output location and ES5 runtime target.
File Description
tools/​hermes-parser/​js/​yarn.lock Locks updated Glob and Minimatch dependencies and removes obsolete transitive packages.
tools/​hermes-parser/​js/​package.json Adds targeted Glob and Minimatch resolutions.
tools/​hermes-parser/​js/​__tests__/​tooling-glob-test.js Tests Jest and coverage file discovery with the updated dependencies.
benchmarks/​widgets/​original/​es5/​webpack.config.js Sets the ES5 runtime target, preserves the output directory, and updates source-map configuration.
benchmarks/​widgets/​original/​es5/​package.json Upgrades Webpack and its CLI and updates the build command.
benchmarks/​widgets/​original/​es5/​package-lock.json Locks the upgraded build tools and removes the browser-crypto chain containing Elliptic.

Review effort: Balanced

@github-actions

github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown

Benchmark Results

Total benchmarks: 204

Inputs: baseline/baseline.json, bench_result.json

v8 (6176ms, 5214ms) -15.6%
v8 hermes (CI) hermes (CI)
v8-crypto 622.6ms 392.8ms
v8-deltablue 739.4ms 624.4ms
v8-raytrace 127.8ms 94.6ms
v8-regexp 593ms 532.4ms
v8-richards 937ms 721.8ms
v8-splay 225.2ms 208.2ms
v8-crypto (static) 452ms 314ms
v8-deltablue (static) 661.6ms 574.2ms
v8-raytrace (static) 91.8ms 84.8ms
v8-regexp (static) 749.2ms 727.6ms
v8-richards (static) 781.4ms 718ms
v8-splay (static) 195ms 221ms
test-suites (317886ms, 240139ms) -24.5%
test-suites hermes (CI) hermes (CI)
box2d 2949.8ms 1894.6ms
earley-boyer 2564.8ms 1829.2ms
navier-stokes 5743.8ms 3187ms
pdfjs 1038.2ms 666.6ms
gbemu 2296ms 1617ms
code-load 4472.8ms 4520ms
typescript 3381.8ms 2887.6ms
simpleSum 8855.4ms 5963ms
propAccess 2691.2ms 1953.6ms
allocObj 252ms 192.4ms
allocObjLit 6371.8ms 4309.2ms
allocNewObj 20053ms 13575ms
allocArray 249ms 193.2ms
allocNewArray 34956.8ms 23405.2ms
arrayRead 115.6ms 74.4ms
arrayReadByIndex 550ms 297.8ms
largeArrayRead 827.2ms 428.4ms
arrayWrite 261.8ms 164.6ms
largeArrayWrite 2218ms 1345.4ms
interp-dispatch 2880ms 1865.2ms
wb-perf 8327ms 5143.2ms
arrayReverse 40.6ms 30.6ms
arrayMap 1472.6ms 944.6ms
arrayIndexOf 143.2ms 121.8ms
arrayLastIndexOf 148.6ms 125.6ms
arrayEvery 2308.8ms 1353.6ms
arraySome 2174.4ms 1359.8ms
arrayFill 2401.2ms 1582.4ms
arrayFilter 1866.4ms 1185ms
arrayFind 3207ms 2146.2ms
arrayFindIndex 3322ms 2163.4ms
arrayPop 1031.4ms 676.8ms
arrayReduce 1994.2ms 1290.2ms
arrayReduceRight 2075.8ms 1288.4ms
arrayShift 2065.8ms 1250.4ms
arrayUnshift 2109.4ms 1277ms
arrayIncludes 1216.6ms 744.8ms
arrayFrom 1102.8ms 816.8ms
arrayCopyWithin 1487ms 903ms
stringFromCharCode 92.6ms 60.4ms
arraySlice 786.2ms 525.6ms
arraySplice 26.8ms 28.8ms
arrayOf 1048.8ms 680ms
stringCharAt 1346.6ms 803ms
stringMatch 3192.4ms 2281.6ms
stringSearch 3508.2ms 2283ms
stringStartsWith 701ms 392.6ms
stringEndsWith 650.4ms 353.2ms
stringIncludes 1520.6ms 1451.2ms
stringIndexOf 1555.6ms 1763.8ms
stringLastIndexOf 1821.4ms 1658.4ms
stringSplit 822ms 534.2ms
stringSlice 490ms 366.8ms
stringPadStart 2910.8ms 2017ms
stringPadEnd 2910ms 2036.6ms
regExpMatch 1506.2ms 1149.4ms
regExpSearch 1227ms 1318ms
regExpToString 1204ms 919.4ms
stringReplace 1394.8ms 1575.2ms
regExpReplace 3309.2ms 644ms
regExpFlags 956.8ms 656.6ms
regExpSplit 1307.8ms 943ms
numberArrayReadWrite 2477.8ms 1718.2ms
protoCache 3594.6ms 1791ms
box2d (static) 1792.6ms 1552.6ms
earley-boyer (static) 1875.6ms 1668ms
navier-stokes (static) 3410.2ms 2669.2ms
pdfjs (static) 812.8ms 689.4ms
gbemu (static) 1797ms 1429.8ms
code-load (static) 4199.2ms 4505.8ms
typescript (static) 2685.6ms 2730.2ms
simpleSum (static) 936.2ms 683.2ms
propAccess (static) 2298ms 2132.8ms
allocObj (static) 0.2ms 0ms
allocObjLit (static) 4154.4ms 3791ms
allocNewObj (static) 15749.2ms 13176ms
allocArray (static) 0.6ms 0.4ms
allocNewArray (static) 28494.2ms 22792.4ms
arrayRead (static) 74.2ms 57.8ms
arrayReadByIndex (static) 453.2ms 378ms
largeArrayRead (static) 552.2ms 461.4ms
arrayWrite (static) 178.4ms 130ms
largeArrayWrite (static) 1568.6ms 1189.2ms
interp-dispatch (static) 1918.8ms 1550.4ms
wb-perf (static) 8991.2ms 7521.6ms
arrayReverse (static) 37ms 31.6ms
arrayMap (static) 1064.8ms 869.6ms
arrayIndexOf (static) 128.2ms 127.8ms
arrayLastIndexOf (static) 138.8ms 128ms
arrayEvery (static) 1397.6ms 1190.8ms
arraySome (static) 1406.6ms 1179.6ms
arrayFill (static) 1969.2ms 1572.8ms
arrayFilter (static) 1061ms 875.6ms
arrayFind (static) 2242.2ms 1961ms
arrayFindIndex (static) 2235.8ms 1976.6ms
arrayPop (static) 878ms 687ms
arrayReduce (static) 1311.8ms 1178.8ms
arrayReduceRight (static) 1322.6ms 1182.2ms
arrayShift (static) 1512ms 1261.2ms
arrayUnshift (static) 1568.2ms 1280.2ms
arrayIncludes (static) 963.4ms 752.2ms
arrayFrom (static) 1030.6ms 778.8ms
arrayCopyWithin (static) 1109.6ms 906.2ms
stringFromCharCode (static) 77ms 54.6ms
arraySlice (static) 571.6ms 526.8ms
arraySplice (static) 26ms 29.8ms
arrayOf (static) 868.8ms 661.4ms
stringCharAt (static) 1100.6ms 780.8ms
stringMatch (static) 2227.6ms 2297.8ms
stringSearch (static) 2219.2ms 2296ms
stringStartsWith (static) 494.2ms 394ms
stringEndsWith (static) 457.8ms 350.6ms
stringIncludes (static) 1437.4ms 1428.8ms
stringIndexOf (static) 1440.8ms 2419.2ms
stringLastIndexOf (static) 1956.6ms 1987.2ms
stringSplit (static) 651.2ms 549ms
stringSlice (static) 445.6ms 359.8ms
stringPadStart (static) 2294.4ms 2013.8ms
stringPadEnd (static) 2499.2ms 2009.6ms
regExpMatch (static) 1483.2ms 1194.6ms
regExpSearch (static) 1296.2ms 1322.2ms
regExpToString (static) 1326.6ms 1113.4ms
stringReplace (static) 1455.6ms 1677.4ms
regExpReplace (static) 851.8ms 667.6ms
regExpFlags (static) 870.6ms 644.6ms
regExpSplit (static) 1200ms 941.2ms
numberArrayReadWrite (static) 2132.8ms 1591.8ms
protoCache (static) 3595.8ms 3053.4ms
micros (60876ms, 58639ms) -3.7%
micros hermes (CI) hermes (CI)
getNodeById.js 5273ms 3468.4ms
setInsert.js 2864.8ms 2163ms
stringify-number.js 1823.4ms 1269.2ms
typed-array-sort.js 22381ms 22866ms
getNodeById.js (static) 3941ms 3175.8ms
setInsert.js (static) 2517.6ms 2299.6ms
stringify-number.js (static) 1663.6ms 1192.6ms
typed-array-sort.js (static) 20411.4ms 22204.6ms
jit-benches (8563ms, 5927ms) -30.8%
jit-benches hermes (CI) hermes (CI)
idisp.js 2810.2ms 1859ms
idispn.js 3395.8ms 2195.8ms
idisp.js (static) 1906ms 1563ms
idispn.js (static) 450.8ms 309.2ms
many-subclasses (73437ms, 57045ms) -22.3%
many-subclasses hermes (CI) hermes (CI)
many.js 19104.8ms 15900ms
many-sh-1.js 7322.8ms 5283ms
many-sh-2.js 7329ms 5310.4ms
many-sh-3.js 7083.6ms 5167.6ms
many-sh-4.js 7235ms 5141.2ms
many.js (static) 15996ms 12351ms
many-sh-1.js (static) 2285.2ms 1852.2ms
many-sh-2.js (static) 2387ms 2136.2ms
many-sh-3.js (static) 2347.2ms 1948ms
many-sh-4.js (static) 2346ms 1955.4ms
map-objects (3627ms, 2841ms) -21.7%
map-objects hermes (CI) hermes (CI)
map-objects-untyped.js 1023.6ms 739.6ms
map-objects-typed.js 957.6ms 689.4ms
map-objects-untyped.js (static) 917.2ms 778ms
map-objects-typed.js (static) 728.8ms 633.6ms
map-strings (4335ms, 3699ms) -14.7%
map-strings hermes (CI) hermes (CI)
map-strings-untyped.js 1196.8ms 968.2ms
map-strings-typed.js 1139.2ms 914.8ms
map-strings-untyped.js (static) 1092.2ms 992.6ms
map-strings-typed.js (static) 906.8ms 823.6ms
nbody (3448ms, 2243ms) -35.0%
nbody hermes (CI) hermes (CI)
original/nbody.js 839.6ms 500.2ms
fully-typed/nbody.js 710ms 393.8ms
fully-typed/nbody.ts 865.2ms 500.4ms
original/nbody.js (static) 449.2ms 369.2ms
fully-typed/nbody.js (static) 135ms 111ms
fully-typed/nbody.ts (static) 449.2ms 368.2ms
string-switch (6503ms, 5535ms) -14.9%
string-switch (string-switch/plain) hermes (CI) hermes (CI)
bench.js 1316ms 966.4ms
bench.js (static) 5187ms 4568.2ms
raytracer (5608ms, 4548ms) -18.9%
raytracer (raytracer/original) hermes (CI) hermes (CI)
bench-raytracer.js 1550.4ms 1173.2ms
raytracer.ts 1667.6ms 1209.4ms
bench-raytracer.js (static) 1198.4ms 1078.8ms
raytracer.ts (static) 1191.8ms 1086.6ms
MiniReact (30332ms, 25120ms) -17.2%
MiniReact hermes (CI) hermes (CI)
no-objects/out/simple-stripped.js 2239.2ms 1755ms
no-objects/out/simple-lowered.js 2270.8ms 1790ms
no-objects/out/music-stripped.js 42.6ms 41.4ms
no-objects/out/music-lowered.js 47.2ms 45.6ms
no-deps/stripped/MiniReact.js 5004ms 3678ms
no-deps/MiniReact.js 5256.2ms 3650.8ms
no-objects/out/simple.js 2260.4ms 1753.8ms
no-objects/out/music.js 45.6ms 44.2ms
no-objects/out/simple-stripped.js (static) 1725.2ms 1598.4ms
no-objects/out/simple-lowered.js (static) 1725.4ms 1699.6ms
no-objects/out/music-stripped.js (static) 18.8ms 21.6ms
no-objects/out/music-lowered.js (static) 19.4ms 21.2ms
no-deps/stripped/MiniReact.js (static) 4024.8ms 3740.8ms
no-deps/MiniReact.js (static) 3938.2ms 3663.8ms
no-objects/out/simple.js (static) 1695.2ms 1594.6ms
no-objects/out/music.js (static) 19ms 21ms
widgets (12934ms, 10077ms) -22.1%
widgets hermes (CI) hermes (CI)
simple-classes/widgets.js 1758.2ms 1133ms
original/es5/widgets.js 2798.8ms 2024.2ms
single-file/es5/widgets.js 2775.2ms 2020.8ms
simple-classes/widgets.js (static) 1012ms 902.4ms
original/es5/widgets.js (static) 2283.2ms 1993.6ms
single-file/es5/widgets.js (static) 2306.2ms 2003.2ms

@vmoroz
Vladimir Morozov (vmoroz) merged commit 5465d9c into microsoft:main Nov 7, 2026
19 checks passed
@vmoroz
Vladimir Morozov (vmoroz) deleted the PR/dependabot-security-updates branch November 7, 2026 07:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants