Releases: shellscape/postcss-values-parser
v7.0.0
7.0.0
Highlights
- Major rewrite: parser now builds on
css-treefor correctness and performance. - Package is pure ESM and uses
exports; no CommonJS output. - Walker helpers are exposed via
registerWalkers()and can enablewalk*methods likewalkWords.
Breaking changes
- ESM‑only:
require('postcss-values-parser')is no longer supported. Useimport. - Node.js 20.19+ required (per
engines). - Walker helpers aren’t attached by default. If you relied on
root.walkWords(...)in v6, callregisterWalkers(Container)once to add thewalk*methods. - Internal AST is compatible but not identical (migrated to css-tree under the hood). Class names like
Word,Numeric,Func, etc., remain.
Migration
-
Replace CommonJS with ESM imports.
-
Register walker helpers before using any
walk*APIs:import { parse, Container, registerWalkers } from 'postcss-values-parser';
registerWalkers(Container);const root = parse('var(--foo)');
root.walkWords((word) => {
if (word.isVariable) console.log(word.value);
}); -
Review docs for updated node shapes and stringifier behavior.
Commits since v6.0.2
- 58c3ac0 feat!: use css-tree, rewrite package for ESM (#149) — Andrew Powell
- 1d367aa docs: update docs for v7 — shellscape
- c8b1647 chore: add github workflows — shellscape
- b19c7eb chore: use nvmrc — shellscape
Merged pull requests
- #149 use css-tree, rewrite package for ESM — Andrew Powell
Full Changelog: v6.0.2...v7.0.0
v6.0.2
v6.0.0
v4.0.0
v3.2.0
v3.0.5
v3.0.4
Updates
- Dependency updates and
npm auditupdate
v3.0.3
v3.0.2
v3.0.0
Major Version 3
This is a major rewrite from top to bottom and contains many breaking changes. The rewrite leverages PostCSS itself under the hood. That means it uses the same tokenizer and parser, with some modifications. The last major update to PostCSS provided consumers with an outstanding model to inherit and extend from the base classes to create derived parsers. That means we now benefit from the rock-solid tokenizing in PostCSS without having to reinvent the wheel, and without introducing new bugs.
This also allows for use of the base PostCSS Node classes, without redefining or duplicating their functionality. Tasks like walking nodes, or inspecting Node properties you'd expect in PostCSS are now identical.
Breaking Changes
Some Node types have changed. Most notably, all characters which can be considered "punctuation" have been moved into the Punctuation Node. Additionally, decorative property names on Nodes have changed in some instances. The full API documentation has more details.
| Old Node Type | New Node Type |
|---|---|
| AtWord | AtWord |
| Colon | Punctuation |
| Comma | Punctuation |
| Comment | Comment |
| Func | Func |
| Numbr | Numeric |
| Operator | Operator |
| Paren | Punctuation |
| Str | Quoted |
| UnicodeRange | UnicodeRange |
| Word | Word |