3.2.10 (2026-04-15)
- runtime: infer Exposed type for defineComponent (9b9dc62)
3.2.9 (2026-04-04)
- compiler/vdom: cleanup scope identifiers and improve slot tracking (1ae1239)
- compiler/vdom: should optimize in optional defineComponent (27e3b45)
- macros: direct TSNonNullExpression checks (c6b2200)
- runtime/vapor: make NodeChild generic (f74e3b5)
- runtime/vdom: remove _c flag for normalizeSlot (61d5bb6)
- compiler/vdom: add optimize option and replace optimizeSlots (e598555)
- runtime: support
v-slotstypes indefineComponentand (1e7f259)
3.2.8 (2026-03-30)
- compiler/vdom: remove withCtx for normalizeSlot (b1568de)
3.2.7 (2026-03-29)
- compiler/vdom: mark element as block if prop has jsx (406ec74)
- compiler/vdom: prevent optimize in for statement (7d456fa)
- runtime/vdom: invalidate detached v-for memo vnodes after unmount (3bc38eb)
3.2.6 (2026-03-25)
- compiler/vapor: avoid delegating same-event handlers when sibling (b9dce34)
- compiler/vapor: normalize default dynamic slot names in transform (dc47bdf)
- compiler/vdom: collect scope identifiers for slot optimization (d82ef13)
- compiler/vdom: handle Fragment block usage for conditional (dcf7851)
3.2.5 (2026-03-22)
- compiler/vapor: add block_shape for v-if IR (8a18c2d)
- compiler/vdom: collect scope identifiers for slots flag detection (7ae5cb6)
- compiler/vdom: mark Fragment stable only when used as a block (4d66cad)
3.2.4 (2026-03-16)
- compiler/vdom: mark Provider components as dynamic slots (72ac0cb)
- runtime/vdom: set PatchFlags.BAIL for normalizeVNode (c72d5d8)
- compiler/vdom: compile slots.xx component as a slot (6cde1ee)
- compiler/vdom: add optimizeSlots option (8bceb59)
3.2.3 (2026-03-12)
- compiler/vdom: use hash_string for VDOM cache keys (ba2dc81)
- compiler: treat valueless attributes as boolean true (fc3d292)
- macros: close inheritAttrs if only a rest prop (1661760)
- runtime: use a computed Proxy to merge props and attrs (b63c312)
- types: allow JSX elements to be arrays (0564d64), closes #54
3.2.2 (2026-03-08)
- compiler/vdom: prevent cache this-expression (932a6ae)
- compiler/vdom: prevent hoisted this-expression (470e6b8)
- compiler/vdom: transform JSX in expression with assignment targets (7c24536)
- macros: remove import shim (14d4c6d), closes #53
3.2.1 (2026-03-01)
- compiler/vdom: don't convert plain text to
normalizeNodewhen an (2b6b74d), closes #51 - compiler/vdom: only optimize JSX in functional scope (6f0ac81)
- compiler/vdom: slot element and condition expression co-usage (2b45f51)
- compiler/vdom: use createElementBlock instead of createBlock for (aebec9a)
- compiler: ignore codegen text as plain child (9341fcd)
- compiler: preserve when trimming text (fedff20)
- compiler: resolve dynamic prop names starting with underscores (2149e83)
- macros/volar: collect scopes to detect slot element's scope (6c73397), closes #52
- runtime/vdom: wrap array items in normalizeVNode (966ffc4)
3.2.0 (2026-02-26)
- compiler: ignore filename query for source_type (9a8725c), closes #50
- compiler: visit simple assignment target (5bba443)
- runtime: support HyperScript (24c1b2e)
3.1.23 (2026-02-19)
- compiler/vapor: skip empty expressions when detecting (5f0b847)
- compiler: ensure static directive is a string (190511f)
- compiler: introduce oxc_semantic to determine whether components (06f2bc1), closes #38
- compiler: use fast-path matching for is_jsx_component (4eb14ce)
3.1.22 (2026-02-13)
- compiler/vapor: prevent generate template when fragment has (997d963)
- compiler: remove unused defineVaporComponent for SSR (9639575)
- hmr: use reload instead of rerender for functional component (d3f65fb)
- macros/volar: unwrapRef for exposed (60b6c63)
- macros/volar: use defineVaporComponent instead of functional component (33bf5ce)
3.1.21 (2026-02-11)
- compiler/vapor: always set index for if IR (eef760d)
- compiler/vapor: skip static key (505db7e)
- compiler: ensure JSX is compiled to Vapor in defineVaporComponent (148746b)
- runtime: set __proxyed for createProxyComponent directly (e6de6aa)
3.1.20 (2026-02-03)
- compiler/vapor: handle invalid table nesting with dynamic child (712ec26)
- compiler: use createNodes instead of setNodes for fragment (37be7f2)
- use regex instead of string for filterId (fac1483)
- compiler/vapor: support nested fragments (38d2925)
3.1.19 (2026-02-01)
- compiler/vapor: add key for transition if-branches (f711dc6)
- compiler/vapor: do not escape quotes in root-level text nodes (d843400)
- compiler/vapor: enhance v-slot prop destructuring support (5c7ef06)
- compiler/vapor: merge component v-model onUpdate handlers (01ed414)
- compiler/vapor: prevent event handler execution during emits lookup (946fa2f)
- compiler/vapor: support v-if and v-for on the same (33d97ef)
- compiler/vapor: wrap handler values in functions for dynamic v-on (514a200)
- use regex instead of string for filter.id (f54d685)
- compiler/vapor: more accurate fallthrough attr support (4c571ef)
- compiler/vapor: only apply v-on key modifiers to keyboard events (1bb06d8)
- compiler/vapor: prevent nested components from inheriting parent (f5539ec)
- volar/jsx-element: refine type inference (dc21389)
- compiler/vapor: support merging multiple event handlers on (4471831)
- macros/volar: support auto infer slot types for defineComponent (1f7f474)
- compiler/vdom: merge v-model and onUpdate handlers (501dfb6), closes #43
- macros: use proxy slots to keep reactivity (e834f13)
- runtime: remove NO_SIDE_EFFECTS flag (41d6e8d)
- macros/volar: support auto infer slot type (c1325cd)
- compiler/vdom: prevent generate redundant normalizeVNode when with (f83bf65), closes #42
- compiler: prevent mark _temp as static for LogicalExpression (f5ef8f5), closes #41
- compiler/vapor: add withVaporCtx helper to manage currentInstance (47929f9)
- compiler/vapor: support defineVaporCustomElement (420c903)
- compiler/vapor: support slot (1e0767b)
- compiler/vdom: support slot (9b3d7e8)
- support custom-element (82dd87f)
- runtime: expose SSR (9c8ff33)
- compiler/vapor: support svg and MathML (98f47f4)
- compiler/vdom: prevent mark condition expression as static (a6c0cb5)
- compiler/vapor: remove empty_text child (bf87609)
- compiler: preserve non-breaking spaces in JSX (c104e6a)
- compiler: regist ssr moduels for defineVaporSSRComponent (f4d25a7)
- compiler/vapor: hydration (e3722c6)
- compiler/vapor: v-html and v-text work with component (24d8cd8)
- support hydration (3f235d9)
- compiler: escape HTML chars (9a9ae27)
- compiler: prevent process JSXEmptyExpression for props (e67b463)
- compiler: prevent process value prop as directive (cc9c31a)
- compiler: wrapping resolveDirective for custom directive (e1a37b8)
- compiler: support Transition and TransitionGroup (13bd49b)
- hmr: support defineComponentName option (1664b82), closes #35
- vapor: support key (89b502d)
- compiler: remove IIFE that only returns an expression (ac72506)
- compiler: use oxc_ast_visit instead of oxc_traverse (32b789e)
- macros: add code filter hooks (fe8d82f)
- vapor: use Direcives struct instead of find_prop (ede1ab3)
- compiler: remove IIFE that only returns an expression (ac72506)
- compiler: use oxc_ast_visit instead of oxc_traverse (32b789e)
- macros: add code filter hooks (fe8d82f)
- vapor: use Direcives struct instead of find_prop (ede1ab3)
- vue-jsx-vapor: use virtual helper modules to prevent deps on (654da93)
- compiler/dom: slots in v-for should be dynamic (d6fd49e)
- compiler/vdom: prevent cache include slot props's events for (0ce3a55), closes #30
- compiler: add missing _temp variable (2b4b691), closes #31
- compiler: remove unused withCtx helper for Fragment (afdec4a)
- compiler: use cache for LogicalExpression (f3e14b3)
- runtime: use Text instead of Comment to support undefined ref (e0e5a4d)
- compiler: convert ObjectExpression and FunctionExpression to (38e6057), closes #29
- compiler: support LogicalExpression with coalesce (0f48e4c)
- hmr: support rerender render function (4c394e5), closes #28
- vue-jsx-vapor: add compiler options (1bb3932)
- compiler/vdom: use take_in instead of clone_in for JSXExpression (76c53bd)
- compiler: remove empty_text (c796b83)
- add index for createVNodeCache (0c9af89)
- compiler/vdom: check key for v-memo in v-for (6f7f1a3)
- compiler/vdom: support map expression (ab16f06)
- compiler: use createElementBlock instead of createBlock for v-for (7a86c07)
- compiler: prevent v-for error in browser (1cf005b)
- compiler/vdom: prevent JSXText.raw unwrap error in browser (85699ae)
- normalize setup-fn result (8fa28ad)
- macros: sync localValue with prop changes for defineModel (95d2d89)
- compiler-rs: prevent compiler functional component to vapor when (2e30262)
- compiler-rs: move context.slots to block.slots for nested slots (717a6ac)
- vue-jsx-vapor: move macros before compiler-rs (7332859)
- compiler: prevent transforming v-slot with non-ObjectExpression (73be347)
- compiler: escape html for safer template output (d02e238)
- compiler: treat template v-for with single component child as component (f657781)
- macros: add placeholder after removed params (e7b81c1)
- macros: prevent handle dts files (a34b23c)
- runtime: correct expose types for VaporComponentInstance (ebe60a6)
- runtime: handle undefined default slot for Fragment (8a349d1)
- volar/jsx-element: return VaporInstance for functional component (3b14249)
- compiler: adjust children generation order for hydration (128eb21)
- volar: introduce jsx-element (264c7be)
- babel: import createComponentWithFallback from vue-jsx-vapor (0c5b966)
- runtime: correct props type for h (443945b)
- runtime: normalizeNode slots for createComponentWithFallback (2f8e6fc)
- compiler: add withFallback option to compile components to createComponentWithFallback (0c2d470)
- macros: add verification feature for return keyword (65c6a5e)
- macros: correct types for defineComponent and defineVaporComponent (8a79bdb)
- macros: allow VariableStatement for defineModel (9769f27)
- macros: prevent return defineComponent for generic component (dc64b7f)
- macros: return DefineComponent type for defineComponent (5803b5e)
- compiler: add fast-remove flag (4e549e1)
- compiler: support JSXComponent in JSXExpressionContainer (c69e8ca)
- eslint: support template literal interpolation for define-style (5be5080)
- macros/volar: allow define styles after the ReturnStatement (255479b)
- vue-jsx-vapor: support h and Fragment (c4e0bbe)
- ts-macro: prevent useSelector undefined error (1800b44)
- vue-jsx-vapor: generate correct HMR (27179f6)
- compiler: remove compiler error for v-slots (033d62f)
- compiler: use underscores instead of colons for cached name (0ffd1c6)
- compiler: generate more efficient runtime code for specific interpolation patterns (3c22e74)
- compiler: support JSXNamespacedName for v-model (941fb83)
- vue-jsx-vapor: add getCurrentInstance (067f018)
- compiler: use parseExpression instead of walkIdentifiers (13fa2f4)
- support functional component in interop mode (26afc8c)
- compiler-vapor: properly locate last if node (9633b9c)
- compiler: correct execution order of operations (485e709)
- compiler: prevent v-for components from being single root (9c10b3b)
- eslint: enhance offset calculation for defineStyle formatting (7d53c74)
- macros: improve handling of required props in defineComponent (1889468)
- vue-jsx-vapor: expose jsx-runtime/dom (2802d74)
- compiler: use createNodes instead of setNodes for v-slot (1c5cf09)
- vue-jsx-vapor: support array expression (bccb5ef)
- vue-jsx-vapor: expose correct jsx-runtime type (bdd3613)
- macros: use vue-jsx-vapor/runtime to support browser environments (20be1a0)
- babel: add typescript plugin for parse (2d0cd50)
- vue-jsx-vapor/volar: correct passing macros's options (21d8b0a)
- macros/define-style: support navigation for css-modules (710127d)
- macros: add JSX support for auto generate props (4cfcc0d)
- macros: props allowed to be overridden for defineComponent (2f5ce4a)
- vue-jsx-vapor: add pauseTracking and pauseTracking for createNodes (617eb2f)
- vue-jsx-vapor: introduce useProps and useFullProps (69041a7)
- vue-jsx-vapor: support custom HTMLAttributes for jsx-runtime (22fb370)
- vue-jsx-vapor: support vaporComponent for createNodes (403a800)
- macros: support :slotted for defineStyle (fb10489)
- eslint/jsx-sort-props: correct sort for reservedProps (7ddd014)
- macros: make alias option optional (d459bd1)
- compiler: defaults prop.value to true when it is null (e653e77)
- macros: automatically infer type from default value (d7b31d6)
- macros: automatically infer type from default value for defineModel (47c139e)
- macros/volar: add semicolon for defineComponent (1289cb3)
- introduce eslint (f241afa)
- macros/defineComponent: support auto return functional component for SSR (c0b310f)
- vue-jsx-vapor: support SSR (1ae4fe9)
- vue-jsx-vapor: prevent register HMR in production environment (cab7de4)
- macros/volar: use __MACROS_ctx to infer type (0a5b315)
- macors/volar: optimize infer type performance (bebec2b)
- compiler: use modelValueModifiers instead of modelModifiers (563b2f0)
- macros: remove lib option (9548729)
- compiler: support v-text directive (98a24d6)
- vue-jsx-vapor: use virtual code to support browser environments (db1660e)
- compiler: move next, child and nthChild before the setInsertionState (d12a086)
- compiler: remove log (a1b9df0)
- compiler: missing modifiers (32849a7)
- compiler: remove empty modifiers (dce2e83)
- compiler: use setInsertionState instead of insert (2fae757)
- compiler: support empty expression for event with modifiers (187bf8c)
- lint (9b7737d)
- vue-jsx-vapor: add jsxImportSource support (b5e051d)
- macros: add semicolon prefix for defineExpose (1f7171e)
- lint (a93b1e0)
- volar: auto infer type for useRef (0e44f13)
- babel: compatibility with CommonJS (00744bc)
- babel: prevent slot errors by excluding conditional expressions (c8b0171)
- build error (7bea325)
- compiler: prevent handle comment node for v-slot (5919124)
- correct export path for api (a6ec3a3)
- lint (1289392)
- lint (73c3534)
- lint (1d08537)
- lint (03a7140)
- lint (b9edbb7)
- lint (1cda436)
- lint (ba64de1)
- lint (2abc350)
- remove any (abf0d0c)
- typecheck (ecbbbab)
- typecheck (31787c2)
- unplugin: correct type for raw.ts (ba206e6)
- unplugin: typecheck (ab8cbfe)
- add interop mode (f46592c)
- babel: support nested source maps (3e69eba)
- babel: support source map (17d7ea7)
- compiler: remove babel/parser (ac494d1)
- compiler: support native v-if directive (18b77fc)
- compiler: support native v-slot directive (9db436d)
- compiler: support nested component slot (a17e04e)
- compiler: support string source (4293948)
- compiler: support v-once directive (16a6b49)
- compiler: support v-text directive (e1445ae)
- introducing babel-plugin (dd2e384)
- support AST node compilation (06eb0a3)
- unplugin: add filename option for source map (10a6909)
- unplugin: add volar plugin (7bf1284)
- unplugin: expose raw to support browser environments (4dc2ffc)