NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2274 most downloaded on npm
A CSS selector engine.
Last release 2 days ago
03 Oct 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
3 years old
282 releases · first in 2023
One column per quarter.
Use css-tree clone() instead of deep freeze by @asamuzaK in #362
Full Changelog: v9.2.3...v9.2.4
Add cacheSize field and update related logic by @asamuzaK in #359
Full Changelog: v9.2.2...v9.2.3
perf(startup): Use selective CSS-tree imports by @scttcper in #354
Full Changelog: v9.2.1...v9.2.2
Refine :lang subtag regex by @asamuzaK in #351
Add error field to check results by @asamuzaK in #347
Invalidate by @asamuzaK in #346
What's Changed Add types by @asamuzaK in #345 Full Changelog : v9.1.2...v9.1.3
perf(matcher): Speed up simple attribute equality checks by @scttcper in #335
Full Changelog: v9.1.1...v9.1.2
Fix selector validation for pseudo selectors by @asamuzaK in #334
Full Changelog: v9.1.0...v9.1.1
Split the Evaluator's responsibilities by @asamuzaK in #313
Full Changelog: v9.0.4...v9.1.0
perf(jsdom): Speed up simple attribute presence queries by @scttcper in #311
Full Changelog: v9.0.3...v9.0.4
perf(jsdom): Restore matches fast path by @scttcper in #309
Add isHTMLElement util and use in matcher by @asamuzaK in #307
Full Changelog: v9.0.1...v9.0.2
Lowercase HTML attribute names per flags by @asamuzaK in #305
Full Changelog: v9.0.0...v9.0.1
Fix case-insensitivity for attribute selectors by @asamuzaK in #300
Full Changelog: v8.3.0...v9.0.0
Full Changelog : v8.3.1...v8.3.2
Full Changelog: v8.3.1...v8.3.2
Full Changelog : v8.3.0...v8.3.1
Full Changelog: v8.3.0...v8.3.1
Use WeakMap for AST metadata caching by @asamuzaK in #290
Full Changelog: v8.2.5...v8.3.0
Fix performance regressions by @asamuzaK in #286
Add third filter parameter to tree walker creation by @asamuzaK in #285
Full Changelog: v8.2.3...v8.2.4
Use validity.valid for :valid/:invalid checks by @asamuzaK in #284
Full Changelog: v8.2.2...v8.2.3
Refactor cache manager into separate components by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/277
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.2.1...v8.2.2
Switch to generator by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/275
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.2.0...v8.2.1
Add test by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/270
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.1.5...v8.2.0
Improve QSA handling by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/268
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.1.4...v8.1.5
Let sort be true if branch length is > 1 by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/267
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.1.3...v8.1.4
Review and update selector regular expression by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/265
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.1.2...v8.1.3
Adjust regular expression for improved matching by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/264
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.1.1...v8.1.2
Add clearAll option to clear method by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/250
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.0.2...v8.1.1
Add new supports() method by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/246
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.0.1...v8.0.2
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.0.0...v8.0.1
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.0.0...v8.0.1
Split event tracker from finder by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/237
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.1.1...v8.0.0
Implement nwsapi internally by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/243
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v8.0.0-a.1...v8.0.0-a.2
Split event tracker from finder by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/237
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.1.1...v8.0.0-a.1
Check if the target is an element node by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/236
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.1.0...v7.1.1
Remove --parallel by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/233
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.10...v7.1.0
Use external generational-cache by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/227
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.9...v7.0.10
Split generational cache to new file by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/226
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.8...v7.0.9
Update cache handling by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/225
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.7...v7.0.8
Remove lru-cache by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/224
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.6...v7.0.7
Reduce the use of treeWalker and cache leaves by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/223
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.5...v7.0.6
Cache selectorAST by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/222
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.4...v7.0.5
Add fast pass for type selector by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/219
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.3...v7.0.4
Review matchAttributeSelector() by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/213
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.2...v7.0.3
Simplify code implementation by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/210
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.1...v7.0.2
Review _correspond() by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/209
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v7.0.0...v7.0.1
Make :popover-open to be unsupported by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/204
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.8.1...v7.0.0
Return empty string for top level & by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/203
& by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/203Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.8.0...v6.8.1
Include AST in check result by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/202
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.8...v6.8.0
Refactor scoped complex selector handling by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/201
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.7...v6.7.8
Update node.js.yml by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/195
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.6...v6.7.7
Sort if selector includes :scope by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/194
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.5...v6.7.6
Simplify regexp by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/192
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.4...v6.7.5
Stop when boundary node does not contain node by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/191
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.3...v6.7.4
Address regressions by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/189
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.2...v6.7.3
Fix attribute selector matcher by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/188
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.7.0...v6.7.2
Implement clear method by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/186
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.6.2...v6.7.0
Re-organize from v6.5.7 by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/184
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.6.1...v6.6.2
Update finder.js by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/182
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.6.0...v6.6.1
Clear cache on click by @asamuzaK in https://github.com/asamuzaK/domSelector/pull/181
Full Changelog: https://github.com/asamuzaK/domSelector/compare/v6.5.6...v6.5.7
Your coding agent can read these notes before it upgrades. Set up the MCP server →