@tsrx/ripple@0.1.37
Ripple-TS/ripple@tsrx/ripple@0.1.37Jul 7, 2026by github-actions[bot]
AI Summary
This release refactors AST handling to return raw parser types instead of Ripple-normalized types. It introduces copy-on-write behavior for the analyzer and transforms, improving performance and restoring IDE support for scoped CSS.
Key Highlights
- `parse()` now returns raw parser AST (JSX shapes) instead of Ripple-normalized AST
- Analyzer and transforms use copy-on-write (non-mutating)
- Improved performance by removing unnecessary tree cloning
- Restored Volar source walk mappings for scoped CSS
Breaking Changes
- The `parse()` method now returns raw parser AST types instead of Ripple-normalized types.
New Features
- Improved IDE hover and go-to-definition mappings for scoped elements
Full Release Notes
### Patch Changes - [#1324](https://github.com/Ripple-TS/ripple/pull/1324) [`1925074`](https://github.com/Ripple-TS/ripple/commit/1925074254de0e61c8578cba136c50ea8f89cd35) Thanks [@leonidaz](https://github.com/leonidaz)! - `parse()` now returns the parser's raw AST instead of the Ripple-normalized one: template nodes keep their JSX shapes (`JSXElement`, `JSXFragment`, `JSXText`, `JSXExpressionContainer`, `JSXAttribute`, `JSXStyleElement`) and control-flow directives keep their `JSX…Expression` forms. The Ripple-specific `Element`/`TsrxFragment`/`Text`/`TSRXExpression`/`Attribute`/`SpreadAttribute` node types are no longer produced; the analyzer and client/server transforms consume the parser AST directly. The analyzer and transforms are also copy-on-write now — they never mutate the parsed AST — so `compile_to_volar_mappings` no longer clones the tree, and the Volar source walk sees the analyzer's scoped-CSS metadata: class attributes on scoped elements get their CSS hover and go-to-definition mappings back. - Updated dependencies [[`1925074`](https://github.com/Ripple-TS/ripple/commit/1925074254de0e61c8578cba136c50ea8f89cd35)]: - @tsrx/core@0.1.36