chore: version packages#2950
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@vertz/native-compiler@0.2.79
@vertz/native-compiler
0.2.76
Patch Changes
#2883
8a9546dThanks @viniciusdacal! - fix(compiler): recognize regex literals instrip_commentsso a backtick inside a regex body doesn't eat the rest of the fileCloses #2878.
The native compiler's
import_injectionpass scans source for helper usage viastrip_comments, which replaces string-literal contents with spaces sosignal()inside a template literal doesn't trigger a spurioussignalimport. A`inside a regex literal like/`([^`]+)`/was being treated as a template-literal opener — the scanner then consumed everything to EOF looking for a closing backtick and erased every subsequent helper call (__element,__flushMountFrame,__discardMountFrame, …). Those helpers then never made it into the generated import block and the bundled component crashed at runtime withReferenceError: __flushMountFrame is not definedas soon as it tried to render under SSR.strip_commentsnow detects regex literals (using the preceding-token heuristic —/after),],}, or an expression-valued identifier is division; anything else that isn't a//or/*comment starts a regex) and copies the regex body verbatim. Fixes pre-render for routes that transitively renderedpackages/landing/src/components/features.tsx(vertz.dev/and/openapi), which reached the landing page as the inner repro from bug(ui-primitives): List context lost during SSR — List.Item throws under vertz build #2878.Also adds a List SSR regression test in
@vertz/ui-primitivescovering<List><List.Item/></List>end-to-end throughssrRenderSinglePassso the Provider/context flow the original ticket worried about is exercised on the server path.0.2.73
Patch Changes
#2830
35eb962Thanks @viniciusdacal! - fix(compiler): transform JSX inside.map()callbacks with destructured paramsPreviously, when a
.map()callback used destructuring in its parameterlist, the JSX inside the callback was emitted verbatim, causing a
SyntaxError: Unexpected token '<'in the browser.The list classifier bailed to the generic-expression path whenever the
first parameter wasn't a plain
BindingIdentifier. It now accepts anybinding pattern (array or object destructuring) and preserves the raw
pattern source in the emitted render / key functions.
Closes compiler: destructured tuple/object param in .map() callback leaves JSX untransformed in output #2817.
#2828
0c0cf38Thanks @viniciusdacal! - fix(compiler): don't reactify ternaries inside callback bodies in JSX branchesWhen a conditional's non-JSX branch contained a nested callback with its
own ternary (e.g.,
onPick={(v) => selected = v ? env.id : null}), theJSX compiler would lift that inner ternary out of its closure, rewriting
it as
__conditional(() => v, () => env.id, () => null)at the call site.This produced a runtime
ReferenceError: v is not definedbecause thecallback parameter
vno longer existed in the outer scope.The branch-level
ConditionalSpanFindernow stops descending intofunction/arrow-function bodies that are strictly nested inside the target
branch span, so imperative ternaries inside callbacks stay in place while
genuine JSX-level nested ternaries (
a ? <X/> : b ? <Y/> : <Z/>) keeptheir reactive
__conditionalwrapping.Closes compiler: inline callback param in nested .map() hoisted out of scope, generating orphan reference #2816.
#2827
7e80041Thanks @viniciusdacal! - fix(compiler,ui): wrap multi-child component children in a DocumentFragmentPreviously, a component with multiple JSX children compiled to
Component({ children: () => [a, b] }). Consumers such asContext.Provider,Suspense, andErrorBoundarycallchildren()andexpect a single node — they got an array instead, which downstream
appendChildcalls rejected. This affected any component that treatschildrenas a renderable slot, so code likecrashed at mount with a generic
TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.The compiler now emits a
DocumentFragment-returning thunk formulti-child components, mirroring how
<>…</>fragments are alreadyhandled.
Context.Provideralso wraps any hand-written array result in aDocumentFragmentas a defensive fallback, replacing the previousdev-only throw (which was unreliable in the browser because
process.env.NODE_ENVis not polyfilled).Closes router: RouterContext.Provider with multiple JSX children throws generic appendChild error #2821.
#2833
5223868Thanks @viniciusdacal! - fix(jsx): honordefaultValue/defaultCheckedon<input>and<textarea>The React-style uncontrolled-initial-value props were silently dropped:
Both have no HTML content attribute, so the compiler's fallback to
setAttribute("defaultValue", ...)was a no-op in the browser.The native compiler and the test-time JSX runtime now route these through
the IDL property path (
el.defaultValue = "...",el.defaultChecked = true),matching how
value/checkedare already handled. The SSR DOM shimserializes them to the correct initial HTML —
value="..."for<input>,text content for
<textarea>, and thecheckedattribute for<input type="checkbox">— so the value is visible before hydration.Closes jsx: defaultValue on <textarea> and <input> is silently ignored #2820.
0.2.72
Patch Changes
#2799
d8e23a1Thanks @viniciusdacal! - fix(ui,compiler): emit numeric/boolean raw CSS declarations fromcss()andvariants()Raw object declarations inside nested selectors used to silently drop
non-string values. Numeric values now flow through the same kebab-case +
unitless/
pxrules as shorthand tokens, in both the runtime and the AOTcompiler.
UnaryExpression(-, NumericLiteral)andBooleanLiteralare also accepted.The unitless property list is shared between
packages/ui/src/css/unitless-properties.tsand
native/vertz-compiler-core/src/css_unitless.rs, with a parity testalready enforcing they stay in sync.
Closes compiler(css): extract_css_declarations drops numeric values like { opacity: 1 } #2783.
#2795
8bed545Thanks @viniciusdacal! - refactor(ui): drop shorthand-string CSS API in favour of object-formcss()+token.*The array-form
css()API is gone.css()andvariants()now accept onlyobject-form
StyleBlocktrees:Removed from the public API:
StyleEntry,StyleValue,UtilityClass,s,parseShorthand,resolveToken,ShorthandParseError,TokenResolveError,InlineStyleError,isKnownProperty,isValidColorToken, and alltoken-table helpers.
The Rust compiler (
@vertz/native-compiler) is smaller: the array-formshorthand parser, the 1,900-line token tables, and the diagnostic pass that
validated shorthand strings have all been deleted. Only object-form extraction
remains.
Closes fix(ui-server): SSR emits 10,663B of dead component CSS on every AOT page #1988.
#2798
e2db646Thanks @viniciusdacal! - fix(compiler): emit valid code for callbackrefprops on host elementsPreviously, the native compiler always emitted
{expr}.current = {el}forthe
refJSX prop, assuming an object ref. For a callback ref such asref={(el) => { /* ... */ }}, the output was the invalid JavaScript(el) => { /* ... */ }.current = __el0— a member expression cannotfollow an arrow function with a block body, so the module failed to parse
with "Unexpected token '.'".
The fix routes both forms through a new
__ref(el, value)runtime helper(matching the existing inline logic in
jsx-runtime/index.ts) that callsthe value if it is a function and otherwise assigns to
.current.Closes compiler: ref callback + innerHTML on host element emits invalid code #2788.
#2797
483dbe2Thanks @viniciusdacal! - fix(compiler): routeinnerHTMLthrough AOT content, not as an HTML attributeWhen a JSX element with an
innerHTMLprop was compiled through the AOT SSRpath (for example a
<BrandedIcon>sub-component), the attribute was beingserialized as the HTML attribute
innerHTML="..."rather than written intothe element's content slot. The DOM path (via
__html()) already handled itcorrectly; the AOT path missed it because
innerHTMLwas not in the skiplist and had no extraction helper.
The AOT transformer now mirrors
dangerouslySetInnerHTML: it skipsinnerHTMLduring attribute serialization and uses the expression as theelement's content.
Closes compiler: innerHTML prop set as HTML attribute (not DOM property) inside nested component JSX #2790.
0.2.67
Patch Changes
#2725
56e7e2fThanks @viniciusdacal! - fix(native-compiler): add repository/license/description fields to package.jsonnpm publish with
--provenancerejected the 0.2.66 publish with:The
@vertz/native-compilerpackage had never been published before, and its package.json was missingrepository,license, anddescription. npm's provenance attestation requires the manifest'srepository.urlto match the source repo recorded in the provenance bundle. Added all three fields matching the pattern used by the other@vertz/*packages.0.2.66
Patch Changes
4cc0aa9Thanks @viniciusdacal! - Fix false-positivebatchimport injection whenasync batch()appears as an object method definition0.1.1
Patch Changes
#2265
36b0f20Thanks @viniciusdacal! - feat(ui): add form-level onChange with per-input debounce<form onChange={handler}>fires when any child input changes, receiving all current form values as aFormValuesobject. Per-inputdebounce={ms}delays the callback for text inputs while immediate controls (selects, checkboxes) flush instantly.Breaking:
onChangeon<form>now receivesFormValuesinstead of a DOMEvent. Useref+addEventListenerfor the raw DOM event.@vertz/cli@0.2.79
Patch Changes
@vertz/cloudflare@0.2.79
Patch Changes
@vertz/codegen@0.2.79
Patch Changes
@vertz/core@0.2.79
Patch Changes
create-vertz@0.2.79
Patch Changes
@vertz/db@0.2.79
Patch Changes
@vertz/desktop@0.2.79
Patch Changes
@vertz/fetch@0.2.79
Patch Changes
@vertz/runtime@0.2.79
Patch Changes
#2940
7106c64Thanks @viniciusdacal! - fix(vtz): invalidate dependents' cache when a source file fails to compileCloses #2766.
The dev-server file-watcher loop
continued inside the compile-error branch, bypassingprocess_file_change. Consequence: if a user introduced a syntax error inutils.ts, transitive dependents ofutils.tskept their stale compiled cache entries until they were individually re-touched. After the error was fixed, those dependents could still serve stale code.Same shape as the delete-event bug fixed in #2764. The compile-error branch now falls through to
process_file_changeso the changed file and its transitive dependents are invalidated. The module-graph update is still skipped on error — we don't want to commit import edges scanned from broken source.As part of this fix, the per-change handler body was moved out of the file-watcher closure in
server::httpintoserver::file_change_handler::handle_file_changeso the pipeline is directly reachable from tests without spinning upstart_server_with_lifecycle.@vertz/schema@0.2.79
Patch Changes
@vertz/server@0.2.79
Patch Changes
@vertz/testing@0.2.79
Patch Changes
@vertz/theme-shadcn@0.2.79
Patch Changes
@vertz/tui@0.2.79
Patch Changes
@vertz/ui@0.2.79
Patch Changes
@vertz/ui-canvas@0.2.79
Patch Changes
@vertz/ui-primitives@0.2.79
Patch Changes
@vertz/ui-server@0.2.79
Patch Changes
vertz@0.2.79
Patch Changes
@vertz/compiler@0.2.79
@vertz/create-vertz-app@0.2.79
@vertz/errors@0.2.79
@vertz/icons@0.2.79
@vertz/test@0.2.79
@vertz-benchmarks/vertz-app@0.0.77
Patch Changes
@vertz-examples/task-manager@0.2.79
Patch Changes
@vertz/cli-runtime@0.2.79
Patch Changes
@vertz/native-compiler-darwin-arm64@0.2.79
@vertz/native-compiler-darwin-arm64
0.2.65
@vertz/native-compiler-darwin-x64@0.2.79
@vertz/native-compiler-darwin-x64
0.2.65
@vertz/native-compiler-linux-arm64@0.2.79
@vertz/native-compiler-linux-arm64
0.2.65
@vertz/native-compiler-linux-x64@0.2.79
@vertz/native-compiler-linux-x64
0.2.65
@vertz/runtime-darwin-arm64@0.2.79
@vertz/runtime-darwin-x64@0.2.79
@vertz/runtime-linux-arm64@0.2.79
@vertz/runtime-linux-x64@0.2.79