parseley is a JavaScript and Deno parser for CSS selector strings. It converts selector strings into structured objects (AST), can serialize and normalize selectors, and computes selector specificity to help with processing or analysis of CSS selectors.
Project status
- Actively maintained: Evidence suggests ongoing work, with an upstream GitHub push on 2026-05-02 and published updates as recently as 2025-12-22 (v0.13.1).
- Update cadence: Recent cadence shows at least two updates within weeks in late 2025 (v0.13.0 on 2025-12-21, v0.13.1 on 2025-12-22), but there is a long gap before that (next earlier published update shown is v0.12.1 from 2023-04-22), so overall it appears bursty rather than continuous.
AI summary generated
Recent updates
v0.13.1
v0.13.1 is a very small release with mostly metadata and documentation updates. The only potentially user-impacting change in the diff is an adjustment to how TypeScript declaration files are referenced in package.json.
v0.13.0
Release v0.13.0 introduces parsing and AST support for pseudo-classes (including functional pseudo-classes :is(), :where(), :not()) and adds a dedicated serializer module. It also changes normalize() from an array-order canonicalizer into a configurable canonicalizer that can case-fold names and attribute value handling. No publisher release notes were provided for v0.13.0, so the main behavioral and API changes below are effectively undocumented in the release notes.
v0.12.1
Release v0.12.1 was published on 2023-04-22, but no release notes were provided by the publisher. As a result, this release cannot be reliably analyzed for developer-impacting changes (API, behavior, fixes, or migration requirements) from the release notes alone.
v0.12.0
v0.12.0 significantly upgrades CSS selector parsing and serialization to follow CSS selectors-3 lexing and cssom serialization rules. The main behavioral change is spec-compliant handling of escapes, including unescaping identifiers and string values during parsing, and escaping identifiers consistently during serialization.
Featuresv0.11.0
v0.11.0 updates the library targeting Node.js 14 and ES2020 and makes the project more compatible with denoify for Deno consumers. The main code change is in the selector parser implementation, plus runtime dependency bumps for the underlying lexer/parser libraries.
Breakingv0.10.0
No release notes were provided for v0.10.0. The code diff shows primarily dependency upgrades (including Deno runtime dependencies and dev tooling) plus changes to tests and Deno parser imports that likely alter parsing error output.
v0.9.1
v0.9.1 updates selector parsing internals (notably around namespace-qualified identifiers and universal selectors) and modifies the build pipeline. There were no publisher release notes provided for this version, so most behavioral and dependency changes are only visible from the code diff.
v0.9.0
No release notes were provided for v0.9.0. The code diff shows a major internal rewrite of the CSS selector parser, replacing the previous moo+nearley (grammar.ne) approach with a TypeScript parser built on leac and peberminta, plus new Deno build artifacts.
v0.8.0
Release v0.8.0 was published on 2021-11-10, but the publisher did not provide any release notes. As a result, there is no documented information here about new features, bug fixes, breaking changes, security updates, or migration steps.