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
- The repository appears actively maintained, with a most recent upstream push on 2026-05-02 and two version updates in late 2025 (v0.13.0 and v0.13.1).
- The update cadence looks irregular, with a long gap from v0.12.1 in 2023-04-22 to v0.13.0 in 2025-12-21, followed by a quick follow-up to v0.13.1 on 2025-12-22.
AI summary generated Today
Recent updates
v0.13.1
5 months agov0.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
5 months agoRelease 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
4/22/2023Release 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
2/23/2023v0.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
8/19/2022v0.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
1/29/2022No 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
12/6/2021v0.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
12/5/2021No 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
11/10/2021Release 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.