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: the upstream GitHub push was 2026-05-02, and the most recent published package update was v0.13.1 on 2025-12-22.
- Update cadence looks intermittent rather than steady: releases were clustered in late 2025 (v0.13.0 on 2025-12-21, v0.13.1 on 2025-12-22), with much longer gaps before that (for example, v0.12.1 in 2023).
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.