Repository navigation
build(deps)!: upgrade coordinated DOM dependencies - #1210
Conversation
Bumps [htmlparser2](https://github.com/fb55/htmlparser2) from 10.1.0 to 12.0.0. - [Release notes](https://github.com/fb55/htmlparser2/releases) - [Commits](fb55/htmlparser2@v10.1.0...v12.0.0) --- updated-dependencies: - dependency-name: htmlparser2 dependency-version: 12.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review |
|
There was a problem hiding this comment.
🟡 Changes recommended
The CommonJS export becomes unusable with ESM-only dependencies, and public extension exports are removed without a major-version plan.
3 open findings
What changed in this PR
Upgrades the HTML parsing/DOM dependency stack to ESM-only major versions and raises the minimum Node.js version.
Changes:
- Upgrades htmlparser2 and related DOM dependencies.
- Adapts source and tests to updated APIs and ESM execution.
- Updates CI and Dependabot configuration.
| File | Description |
|---|---|
package.json |
Updates dependencies, Jest ESM configuration, and Node requirement. |
package-lock.json |
Locks upgraded dependency graph. |
src/index.ts |
Adapts css-select and domhandler APIs. |
test/sizzle.spec.ts |
Migrates parsing helpers to parseDocument. |
test/tools/sizzle-testinit.ts |
Updates ESM fixture loading and DOM APIs. |
.github/workflows/nodejs-test.yml |
Tests supported Node versions. |
.github/dependabot.yml |
Groups related DOM dependencies. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.


The DOM dependencies now use boolbase 2, css-select 7, css-what 8, domhandler 6, domutils 4 and htmlparser2 12 together, with a Dependabot group for future updates. cheerio-select uses css-select’s exported _compileUnsafe entry point and domhandler’s isTag, and its test helpers use parseDocument and ESM fixture paths.
CommonJS and ESM package exports are retained.
Breaking changes: Removes the exported aliases, filters and pseudos extension tables, and requires Node >=20.19.0. Custom pseudo definitions can use the existing options.pseudos API. This change requires a major release.
Validation: clean dependency install; CJS and ESM builds; test type check; lint; all 46 tests and 3 snapshots on Node 20.19.0; both package export formats and positional selectors verified on the same minimum; changed workflow actionlint passes.
Combines css-select, domutils, domhandler, css-what and boolbase. TypeScript and TypeDoc stay independently updated.