@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