release: @gpuix/native@0.11.0, @gpuix/react@0.11.0, @gpuix/solid@0.11.0, @gpuix/cli@0.1.2, disktree@0.2.1

Consume the pending changesets into a minor release. Users get the
terminal renderer, a headless Dialog with an Escape layer stack, default
Tab focus navigation, focus-visible styles and a headless Button,
createPortal, onLayout and onScrollChange, native scrollbars, new CSS
styles, registerFont, BGRA image uploads, getElementsAt, idle GC,
display-link frame pacing on macOS and Windows ARM64 builds.

Bump the native Cargo crate, napi loader version checks, native, React
and Solid packages to 0.11.0, @gpuix/cli to 0.1.2 and disktree to 0.2.1.

Fixes #73
Fixes #74
Fixes #75
Fixes #76
Fixes #77
Fixes #78
Fixes #84
Fixes #91
Fixes #93
Fixes #95
Fixes #96
Fixes #97
Fixes #98
Fixes #99

Discord: https://discord.com/channels/1422625037164351591/1562091690376962111
Session: ses_ea68cd52affex3PxfjqF4PhYyY
This commit is contained in:
Tommy D. Rossi committed 2026-10-20 15:20:56 +02:00
1 parent 2bef0c19c6
commit 2e31b47ff6
54 files changed
+288 -558

No files matched your search

-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`getElementBounds()`, automation `click()`, and the text selection start region now use an element's real box when it has padding. Before, the box was shifted right and down by the padding, so a click near the right or bottom edge of a padded element could land outside it.
-6
View File
@@ -1,6 +0,0 @@
---
'@gpuix/native': patch
'@gpuix/react': patch
---
`collectGarbageWhenIdle()` runs one full garbage collection once the app has stopped committing for a while, so the heap of a long session comes back down after a burst of work. It watches the new `appliedBatchCount()` and the process's CPU, and returns a function that stops it.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/react': minor
---
Added `createPortal(children, target)`, which mounts children into an element that is already mounted. Take `target` from a `ref`. The portal's children are appended to the target and kept in key order, so a toast layer, a drag preview or an overlay root can live in another part of the tree than the component that renders it. See "Portals" in the README.
-33
View File
@@ -1,33 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
Add a headless `Dialog`, and make Escape close only the top open overlay.
```tsx
import * as Dialog from '@gpuix/react/dialog' // or '@gpuix/solid/dialog'
<Dialog.Root>
<Dialog.Trigger>Settings</Dialog.Trigger>
<Dialog.Portal>
<Dialog.Backdrop style={{ backgroundColor: '#00000080' }} />
<Dialog.Popup style={{ width: 420, padding: 16, backgroundColor: '#232323' }}>
<Dialog.Title>Settings</Dialog.Title>
<Dialog.Close>Done</Dialog.Close>
</Dialog.Popup>
</Dialog.Portal>
</Dialog.Root>
```
- Same parts as Base UI: `Root`, `Trigger`, `Portal`, `Backdrop`, `Popup`, `Title`, `Description`, `Close`
- `Portal` is a full-window deferred layer, so the dialog paints over `<virtual-list>`. A modal dialog blocks clicks and the wheel behind it
- The popup takes focus on open, keeps Tab inside while modal, and gives focus back to the trigger on close
- A press on `Backdrop` closes it, unless `disablePointerDismissal` is set
Escape is now a default action on one layer stack per window. Every open Dialog, Select, Combobox, and Tooltip is a layer. Escape closes only the most recently opened one, so a Select inside a Dialog closes first. It works when nothing is focused, and `event.preventDefault()` in any `onKeyDown` keeps the layer open. A layer mounted inside another stays above it, even when both open in one commit. Custom overlays join the stack with `<DismissableLayer onEscapeKeyDown>`, or `pushDismissLayer(renderer, layer)` without a framework.
`<anchored fill="window">` covers the whole window and follows a resize in the same frame, because native reads the viewport size during render. `Dialog.Portal` uses it, so it no longer polls the window size from JavaScript every 100 ms, and a resize never leaves an uncovered strip that clicks could reach.
A raw `<anchored>` with an explicit `backgroundColor: "transparent"` now paints no fill. Without any fill in its style it still paints `#1A1A1A`.
-17
View File
@@ -1,17 +0,0 @@
---
'@gpuix/native': patch
'@gpuix/react': minor
'@gpuix/solid': minor
---
`Dialog.Popup` takes `initialFocus` and `finalFocus`, like Base UI.
```tsx
<Dialog.Popup initialFocus={searchRef} finalFocus={composerRef}>
```
Each accepts `true` (default), `false` (focus stays), a ref or element, or a function that returns one of these. `initialFocus` defaults to the popup itself. `finalFocus` defaults to the trigger, else to the element focused when the popup opened, so a dialog opened from app state with no `Trigger` now returns focus on close. The Popup no longer takes `autoFocus` for this.
`focusElement(id)` now keeps the request until that element's focus handle exists. Before, a frame that rendered before the element's batch arrived dropped it. This happened with Solid, which applies mutations in a microtask, and on Windows and Linux, which render on their own thread. The test renderer now uses the same path.
Focus moves through the dismiss layer stack, so nested dialogs that open together focus the inner one, and closing both together returns focus to the outer one's target. An explicit `initialFocus` beats an `autoFocus` inside the popup. A pending `focusElement` request is dropped when focus moves any other way first (Tab, a click), so an element created later cannot steal focus.
-5
View File
@@ -1,5 +0,0 @@
---
'disktree': patch
---
Reduce memory retained after large scans by keeping directory-only data off file tiles. On a 350,000-file scan, the retained Bun tree heap fell from about 32 MiB to 24 MiB without changing scan totals or the treemap.
-10
View File
@@ -1,10 +0,0 @@
---
'disktree': patch
---
Use Explorer on Windows, Finder on macOS, and `xdg-open` on Linux for the
selection panel's file-manager action. The button names the platform's file
manager, and launch errors appear in the panel instead of crashing the app.
On Linux, selecting a file opens its containing folder.
Fixes #75
-9
View File
@@ -1,9 +0,0 @@
---
'disktree': patch
---
Fix the scan/navigation snapshot on Windows by normalizing the actual displayed
fixture path instead of assuming Unix path separators. The test still checks
the same scan totals and selection panel contents.
Fixes #76
-7
View File
@@ -1,7 +0,0 @@
---
'@gpuix/react': patch
---
Document existing Node.js runtime support and distinguish Bun's hot-remount development workflow from normal app startup.
Fixes #84
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`getElementsAt(x, y)` lists the elements under a window point, topmost first, like the DOM's `elementsFromPoint`. It clips at `overflow: hidden | scroll`, skips `pointer-events: none`, and puts a deferred `<anchored>` layer above the rest. The test renderer has it too.
-21
View File
@@ -1,21 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
Focus is now visible by default, and there is a headless `Button`.
- `focusVisible` nested style, like `hover` and `active`. It applies after keyboard focus only, like CSS `:focus-visible`, on text fields too. GPUI applies it natively
- `outlineWidth`, `outlineColor`, `outlineOffset`: a line outside the border box that takes no layout space, so a focus ring added with `focusVisible` moves nothing. It follows `borderRadius`
- default keyboard focus look, with no ring: while a control (`Button`, a `tabIndex` div) has keyboard focus, every other focusable element renders at 40% of its opacity, so the focused one stands out and every Tab target is visible. A focused `<input>` or `<textarea>` dims nothing. The dim is independent of `focusVisible`, so an element with its own ring still dims while another control has focus. `style.keyboardFocusDim: false` keeps one element at full opacity
- `keyboardFocusDim: false` in `render()` or `createTestRoot()` turns the dim off for the whole window, so you can draw your own focus look with `focusVisible`
- keyboard focus survives small pointer jitter: an idle mouse move within 8px of where typing began keeps focus-visible styles and the dim. A larger move, a drag or a press ends them. Fixed in GPUI ([remorses/zed@ea042f2](https://github.com/remorses/zed/commit/ea042f2f04))
- `Select.Content` and `Dialog.Popup` set `keyboardFocusDim: false`; they are focused only to receive keys
- `@gpuix/solid` exports the `HostElement` type, for refs such as `initialFocus={() => field}`
- `Button` (`@gpuix/react/button`, `@gpuix/solid/button`), shaped like Base UI: a tab stop with `role="button"` that fires `onClick` on press, Enter key down (not on repeat) and Space key up. `disabled` removes it from the Tab order, `focusableWhenDisabled` keeps it. `buttonProps()` gives the same behavior to your own parts; `Dialog.Trigger` and `Dialog.Close` now use it, so Space activates them on release
```tsx
<Button onClick={save} disabled={saving}>Save</Button>
<div tabIndex={0} style={{ focusVisible: { outlineWidth: 2, outlineColor: '#89b4fa', outlineOffset: 2 } }} />
```
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
Every frame no longer walks every element to find the ones that take focus. The tree now keeps that set up to date as props and listeners change, so an idle frame of a tree with thousands of elements costs about a third less CPU. Focus, tab order, `autoFocus`, and `onKeyDown`/`onFocus`/`onBlur` behave as before.
-16
View File
@@ -1,16 +0,0 @@
---
'@gpuix/native': patch
---
Typing in a find-in-page query no longer rebuilds the search for every block of text. The query is lowercased and compiled once per keystroke and shared by all the text it is matched against, so each keystroke over a long document costs a few percent less CPU. Matches stay leftmost, non-overlapping, and case-insensitive by default.
Fix Unicode matching in both `findRanges` and native highlights. Exact uppercase
Greek words match correctly, partial lowercase expansions such as `İ` / `i`
cover the complete original character, and ranges keep their original offsets.
Whole-word searches no longer treat combining marks as word boundaries, so
`cafe` does not match the prefix of `cafe\u0301` with `wholeWord: true`.
Matching still uses Unicode lowercasing, not accent removal or full case folding.
Fixes #95
Fixes #96
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
Leaving the window ends hover. The `hover` style of the element the pointer last touched used to stay painted, and the cursor and tooltips stayed with it, until the pointer came back. `onMouseLeave` already fired. The test renderer gains `simulateMouseExit` and `nativeSimulateMouseExit`.
-13
View File
@@ -1,13 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
`setImagePixels` on an `<img>` ref takes an optional `{ format: 'rgba' | 'bgra' }`. The default stays `'rgba'`. `'bgra'` is GPUI's native byte order, so the upload skips a full per-pixel swizzle on the UI thread. ffmpeg (`-pix_fmt bgra`), VideoToolbox, and node-canvas `toBuffer('raw')` already produce BGRA.
```ts
img.current?.setImagePixels(width, height, canvas.toBuffer('raw'), { format: 'bgra' })
```
An unknown format throws. node-canvas raw buffers are premultiplied, so use them only for opaque canvases.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`applyBatch` asks the window to repaint only when the batch changed something a frame would draw. A batch that only resends the style, text, listeners or custom props an element already has no longer rebuilds and re-lays-out the whole element tree for a frame that comes out identical.
-13
View File
@@ -1,13 +0,0 @@
---
'@gpuix/native': patch
---
Fix Linux apps silently opening no window under X11. Enable GPUI's Wayland and
X11 compositor-selection features alongside the platform backends, including
in release builds without `test-support`. No application changes are needed.
The upstream search found PR #56322, which fixes the inverse feature mismatch
in GPUI examples, not this addon's disabled compositor selection:
https://github.com/zed-industries/zed/pull/56322
Fixes #93
-20
View File
@@ -1,20 +0,0 @@
---
'@gpuix/native': patch
'@gpuix/react': patch
'@gpuix/solid': patch
---
Pace macOS frames with GPUI's display link instead of an independent 8 ms timer.
The pump stays non-blocking, so Bun and Node.js I/O can run between frames.
Wakes coalesce while JavaScript is busy. A 100 ms fallback handles hidden or
occluded windows; input then waits for that fallback. This does not eliminate
idle CPU use while a visible window's display link is running.
`startFrameLoop(renderer, { frameMs })` keeps explicit timer polling.
`renderer.setFrameWakeCallback(callback | null)` exposes the native wake for
manual pumps and returns whether the platform supports it.
The GPUI hook lives in the GPUIX fork. The upstream embedding discussion is
https://github.com/zed-industries/zed/pull/63077 (closed as a stale draft).
Fixes #91
-13
View File
@@ -1,13 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
New styles for what gpui already draws and GPUIX did not expose:
- `aspectRatio` sizes the axis that has no definite size.
- `borderStyle: "dashed"` draws every border side dashed.
- `boxShadow` accepts an array of shadows, and each shadow takes `inset: true`.
- `alignItems` accepts `"stretch"` and `"baseline"`, which `alignSelf` already did.
- `justifyContent` accepts `"space-evenly"`, which `alignContent` already did.
@@ -1,7 +0,0 @@
---
'@gpuix/native': patch
'@gpuix/react': patch
'@gpuix/solid': patch
---
Reduce memory retained by large UI trees. Host elements without listeners or custom props no longer carry two empty hash maps; the maps are allocated only for nodes that use them and released when the last listener or prop is removed. A real 75,000-element chat uses 33.6 MB of Rust tree heap instead of 44.5 MB, with unchanged element behavior.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`scrollbarColor` and `scrollbarWidth` paint a native scrollbar thumb over a container with `overflow: "scroll"`, on each axis that has more to show. The thumb follows the scroll offset in the frame it paints, with no JavaScript in the loop and no extra frame, and it takes no pointer input.
-9
View File
@@ -1,9 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
`onLayout` on `<div>` and `<text>` reports the element's border box after its first paint and each time its size changes, with no polling of `getElementBounds`. The event payload gains `width` and `height`.
`visibility: "hidden"` elements have never reported bounds, because gpui paints nothing for them and nothing inside them. The canvas fallback that claimed otherwise could not run and is gone.
-7
View File
@@ -1,7 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
`onScrollChange` reports the scroll offset of an `overflow: "scroll"` element after it moves, whatever moved it: the wheel, a scrollbar drag, `scrollTo` or `scrollIntoView`. `onScroll` still reports only wheel input. The event payload gains `scrollX` and `scrollY`.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/react': patch
---
Reduce React renderer memory for large trees by releasing temporary child-placement lists after each host node mounts. A real 5,000-turn chat uses about 2 MiB less retained JavaScript heap, with no change to rendering or the mutation protocol.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/react': minor
---
`@gpuix/react` now uses `react-reconciler@^0.33.0` and peers on `react@^19.2.0`. React 19.2 pairs with reconciler 0.33, and the old `^0.31.0` pin forced every app on 19.2 to override it. The `^18.0.0` half of the old peer range was never true, since reconciler 0.31 already required React 19.
-7
View File
@@ -1,7 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
`registerFont(bytes)` loads a TrueType or OpenType font so `fontFamily` can name it. Text that asked for the family before it was registered picks the font up on the next frame. Fonts GPUI would abort on, or cannot use, are rejected with an error instead.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/react': patch
---
`root.render()` no longer re-renders every `useGpuix()` consumer. The root's context value was a new object on each call, so calling `render()` again (a hot reload, a test, an app that renders the root with new props) counted as a context change and re-rendered each consumer and, through its new callbacks, every `memo` row below it. In the chat example this was 305 row renders and about 9 ms per keystroke of a find bar; it is now 0.2 ms.
@@ -1,10 +0,0 @@
---
'@gpuix/native': patch
---
Subscribe before delivering the initial value in `observeSelectedText`, so a
synchronous selection change made by that callback is delivered too. Remove
the subscription if the initial read or callback throws, then propagate the
original error.
Fixes #98
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
Shift+Tab now moves focus out of an `<input>` or `<textarea>`. The editor tracks its focus handle on a wrapper and on the text element inside it, and GPUI's tab order counted that as two stops, so moving backwards landed on the same field. Fixed in the GPUI fork: a handle tracked twice is one tab stop.
@@ -1,11 +0,0 @@
---
'@gpuix/react': patch
'@gpuix/native': patch
'@gpuix/solid': patch
---
A re-render no longer resends styles and custom props that did not change. React calls `commitUpdate` for every element a parent re-rendered, and the reconciler used to serialize and send each one's `style` every time, which cost a JSON round trip and a style intern per element per commit. It now compares values, so `style={{ ... }}` rebuilt with the same contents sends nothing. The custom prop diff is linear instead of quadratic in the number of props, and the event handler diff walks the props an element has instead of every event GPUIX knows.
A style change on an element React has hidden (Suspense, Activity) no longer makes it visible again: it keeps `visibility: hidden` until React unhides it.
`@gpuix/native/host` exports `sameMutationValue(left, right)` and `EVENT_TYPE_BY_PROP` for adapters that diff the same payloads.
-37
View File
@@ -1,37 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
Tab and Shift+Tab now move focus by default, like a browser. Any `onKeyDown` can cancel it.
The default runs after every element `onKeyDown` and the window `onKeyDown` of that keystroke. Key events now carry DOM-style controls:
```tsx
<div
tabIndex={0}
onKeyDown={(event) => {
if (event.key !== 'tab') return
event.preventDefault() // keep this Tab, for example to indent
insertIndent()
}}
/>
```
- `event.preventDefault()` cancels the default focus move
- `event.stopPropagation()` skips ancestor `onKeyDown` handlers and the window `onKeyDown`
- `event.defaultPrevented` reports an earlier `preventDefault()`
- `render(<App />, { tabNavigation: false })` turns the default off
Apps that called `renderer.focusNext()` from a window `onKeyDown` for Tab must remove that call, or Tab moves twice.
Tab no longer types a tab character into `<input>` or `<textarea>`. Each key event also has a `keystrokeId`, shared by all events of one keystroke.
Headless controls follow Base UI focus rules:
- `Select`, `Combobox`, and `Tooltip` triggers are tab stops, also with `asChild`. An explicit `tabIndex` on the part or on the child still wins
- An open Select popup keeps Tab inside, like Base UI's modal popup
- A press outside an open Select no longer pulls focus back to the trigger, so clicking into another input keeps focus there
- A Combobox closes when focus leaves its input, so a prevented Tab keeps it open
- Solid `asChild` now keeps the child's own event handlers and children
-26
View File
@@ -1,26 +0,0 @@
---
'@gpuix/native': minor
'@gpuix/react': minor
'@gpuix/solid': minor
---
Add `terminal: true` to render an app inside the current terminal instead of a
native window, on macOS and Linux. `GPUIX_TERMINAL=1` turns it on without a code
change.
```tsx
render(<App />, { terminal: true })
```
Frames are rendered offscreen and shown with the kitty graphics protocol, in kitty
and Ghostty. On the same machine they go through shared memory. Over SSH, or when
the terminal cannot open the shared memory, each frame is sent inline, zlib
compressed; at most two frames wait in the link, so input stays responsive. Mouse,
hover, scroll, keyboard with key-up, paste, focus and resize all reach the app.
ctrl-c quits, also from a focused text field. The terminal is restored on quit,
SIGTERM, SIGINT, a native panic and `process.exit()`. Output printed while the
app runs is shown after it exits; on Node, only for streams that had not printed
before `render()`.
`isTerminal()`, exported by `@gpuix/react` and `@gpuix/solid`, tells an app it is
in a terminal, so it can drop the space it reserves for the macOS traffic lights.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`onFocus` and `onBlur` now fire in the test renderer. Its offscreen window was never active, and GPUI reports focus changes only for an active window, so focus listeners never ran in tests. The test window now reports itself active without taking the desktop keyboard.
@@ -1,7 +0,0 @@
---
'@gpuix/native': patch
---
`<div>` and `<text>` no longer add a hidden child element to record their bounds. Each host element used to carry an extra `canvas` node, which doubled the nodes gpui laid out, prepainted and painted every frame. The bounds now come from the element's own paint, so a frame over the same tree is about 15% cheaper. An element with `visibility: hidden` keeps the child, because gpui does not paint a hidden element and its layout box must stay readable.
`getElementBounds()`, automation locators and text selection regions now use the element's border box. They used the padding box before, which was narrower by the border width on an element with a `borderWidth`.
-10
View File
@@ -1,10 +0,0 @@
---
'@gpuix/native': patch
---
Return each element once from chained automation locators, in tree order, even
when the matching parent roots overlap. A single descendant under nested
containers no longer produces duplicate `all()` results, an inflated `count()`,
or a false ambiguity error from `element()` and actions.
Fixes #99
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`padding` on a `<virtual-list>` now insets its rows on the left and right as well as the top and bottom. Rows used to span the list's full width and ignore left and right padding. A `scrollbarColor` thumb stays at the list's own edge, past the padding.
-5
View File
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
`scrollbarColor` and `scrollbarWidth` now also draw a thumb on a `<virtual-list>`. It is painted over the list in the frame the list scrolls, from the heights the list has measured, so it never lags the scroll position and costs no frame of its own. The list's layout is unchanged.
@@ -1,5 +0,0 @@
---
'@gpuix/native': patch
---
The thumb of a `<virtual-list>` counts the rows the list has not measured yet as the average measured row, not as `estimatedItemHeight`. A list of tall rows with a short estimate no longer draws a thumb several times too long that shrinks as rows scroll into view; the thumb is right once a few rows have been measured.
-10
View File
@@ -1,10 +0,0 @@
---
'@gpuix/native': patch
---
Return independent window measurement snapshots, including separate safe-area,
IME, and effective insets. Mutating a result from `readWindowSize` or
`readWindowInsets` no longer changes later reads, other inset fields, or a
custom host's own values. The React and Solid window primitives share this fix.
Fixes #97
-19
View File
@@ -1,19 +0,0 @@
---
'@gpuix/native': patch
'@gpuix/examples': patch
---
Add Windows ARM64 builds alongside x64. CI uses a native `windows-11-arm`
runner, configures Visual Studio's ARM64 Clang, and runs the existing Windows
binding, renderer, React, Solid, and example checks on both architectures.
Fix the shared paint-report import so native builds compile on Windows and Linux.
The release pipeline publishes `@gpuix/native-win32-arm64-msvc` and includes
`example-chat-aarch64-pc-windows-msvc.exe` in the chat release assets.
Use ARM64 Node.js or Bun to load the ARM64 addon. An x64 runtime on an ARM64
machine still selects the x64 package. The README includes ARM64 source-build
prerequisites and PowerShell commands for local development.
Fixes #73
Fixes #78
-10
View File
@@ -1,10 +0,0 @@
---
'disktree': patch
'@gpuix/cli': patch
---
Fix source builds on Windows by replacing the shell `chmod` command with
Node.js file permissions on Unix. Both CLI entry points remain executable
on macOS and Linux; Windows no longer needs an extra Unix tool.
Fixes #74
-10
View File
@@ -1,10 +0,0 @@
---
'disktree': patch
'@gpuix/examples': patch
---
Keep the native Windows title bar in the chat and disktree examples so users
can drag, minimize, maximize, and close the window. Other platforms retain
their existing custom chrome. No new native binding is needed.
Fixes #77
+156
View File
@@ -1,5 +1,161 @@
# Changelog
## 0.11.0
1. **Run an app inside the terminal.** `terminal: true` renders into the current terminal instead of a native window, on macOS and Linux. `GPUIX_TERMINAL=1` turns it on without a code change.
```tsx
render(<App />, { terminal: true })
```
Frames render offscreen and are shown with the kitty graphics protocol, in kitty and Ghostty. On the same machine they go through shared memory. Over SSH each frame is sent inline, zlib compressed, with at most two frames in flight so input stays responsive. Mouse, hover, scroll, keyboard with key-up, paste, focus and resize all reach the app. ctrl-c quits, also from a focused text field. The terminal is restored on quit, SIGTERM, SIGINT, a native panic and `process.exit()`.
`isTerminal()`, exported by `@gpuix/react` and `@gpuix/solid`, tells an app it runs in a terminal, so it can drop the space reserved for the macOS traffic lights. See [Run in a terminal](./README.md#run-in-a-terminal).
2. **Add a headless `Dialog`, and make Escape close only the top overlay.** Same parts as Base UI:
```tsx
import * as Dialog from '@gpuix/react/dialog' // or '@gpuix/solid/dialog'
<Dialog.Root>
<Dialog.Trigger>Settings</Dialog.Trigger>
<Dialog.Portal>
<Dialog.Backdrop style={{ backgroundColor: '#00000080' }} />
<Dialog.Popup initialFocus={searchRef} finalFocus={composerRef}>
<Dialog.Title>Settings</Dialog.Title>
<Dialog.Close>Done</Dialog.Close>
</Dialog.Popup>
</Dialog.Portal>
</Dialog.Root>
```
- `Portal` is a full-window deferred layer, so the dialog paints over `<virtual-list>`. A modal dialog blocks clicks and the wheel behind it
- The popup takes focus on open, keeps Tab inside while modal, and returns focus on close. `initialFocus` and `finalFocus` take `true`, `false`, a ref or element, or a function returning one. Without a `Trigger`, focus returns to the element focused when the popup opened
- A press on `Backdrop` closes it, unless `disablePointerDismissal` is set
Escape now runs on one layer stack per window. Every open Dialog, Select, Combobox and Tooltip is a layer, and Escape closes only the most recent one, so a Select inside a Dialog closes first. `event.preventDefault()` in any `onKeyDown` keeps the layer open. Custom overlays join with `<DismissableLayer onEscapeKeyDown>`, or `pushDismissLayer(renderer, layer)` without a framework.
`<anchored fill="window">` covers the whole window and follows a resize in the same frame. An `<anchored>` with an explicit `backgroundColor: "transparent"` now paints no fill.
3. **Tab and Shift+Tab move focus by default**, like a browser. Any `onKeyDown` can cancel it:
```tsx
<div
tabIndex={0}
onKeyDown={(event) => {
if (event.key !== 'tab') return
event.preventDefault() // keep this Tab, for example to indent
insertIndent()
}}
/>
```
- `event.preventDefault()` cancels the focus move, `event.stopPropagation()` skips ancestor and window `onKeyDown` handlers, `event.defaultPrevented` reports an earlier `preventDefault()`
- `render(<App />, { tabNavigation: false })` turns the default off
- every key event has a `keystrokeId`, shared by all events of one keystroke
- Tab no longer types a tab character into `<input>` or `<textarea>`, and Shift+Tab now leaves them
- `Select`, `Combobox` and `Tooltip` triggers are tab stops. An open Select keeps Tab inside. A Combobox closes when focus leaves its input. A press outside an open Select no longer pulls focus back to the trigger
- `focusElement(id)` waits until that element exists, so a request made in the same commit that creates it is no longer dropped
**Breaking:** apps that called `renderer.focusNext()` from a window `onKeyDown` for Tab must remove that call, or Tab moves twice.
4. **Visible keyboard focus, and a headless `Button`.**
```tsx
import { Button } from '@gpuix/react/button' // or '@gpuix/solid/button'
<Button onClick={save} disabled={saving}>Save</Button>
<div tabIndex={0} style={{ focusVisible: { outlineWidth: 2, outlineColor: '#89b4fa', outlineOffset: 2 } }} />
```
- `focusVisible` nested style, like `hover` and `active`. It applies after keyboard focus only, like CSS `:focus-visible`
- `outlineWidth`, `outlineColor`, `outlineOffset` draw a line outside the border box that takes no layout space and follows `borderRadius`
- default focus look: while a control has keyboard focus, every other focusable element renders at 40% opacity. A focused text field dims nothing. Opt out per element with `style.keyboardFocusDim: false`, or for the window with `keyboardFocusDim: false` in `render()` / `createTestRoot()`
- small pointer jitter (under 8px) no longer ends keyboard focus styles
- `Button` is a tab stop with `role="button"` that fires `onClick` on press, Enter key down and Space key up. `disabled` removes it from the Tab order, `focusableWhenDisabled` keeps it. `buttonProps()` gives the same behavior to your own parts
5. **Add `createPortal(children, target)` to `@gpuix/react`.** It mounts children into an element that is already mounted. Take `target` from a `ref`. Use it for a toast layer, a drag preview or an overlay root. See "Portals" in the README.
6. **Add `onLayout` and `onScrollChange` events.**
- `onLayout` on `<div>` and `<text>` reports the border box after the first paint and each time the size changes. The payload gains `width` and `height`
- `onScrollChange` reports the offset of an `overflow: "scroll"` element after it moves, by wheel, scrollbar drag, `scrollTo` or `scrollIntoView`. The payload gains `scrollX` and `scrollY`. `onScroll` still reports only wheel input
7. **Native scrollbars.** `scrollbarColor` and `scrollbarWidth` paint a scrollbar thumb on an `overflow: "scroll"` container and on a `<virtual-list>`. The thumb moves in the same frame as the content, with no JavaScript in the loop, and takes no pointer input. On a `<virtual-list>`, rows not measured yet count as the average measured row, so the thumb length is right after a few rows.
8. **New styles** for what GPUI already draws:
- `aspectRatio`
- `borderStyle: "dashed"`
- `boxShadow` takes an array of shadows, and each shadow takes `inset: true`
- `alignItems: "stretch" | "baseline"` and `justifyContent: "space-evenly"`
9. **Add `registerFont(bytes)`** to load a TrueType or OpenType font so `fontFamily` can name it:
```tsx
renderer.registerFont?.(readFileSync('./Inter-Regular.ttf'))
```
Text that asked for the family earlier picks it up on the next frame. Fonts GPUI cannot use are rejected with an error.
10. **`setImagePixels` takes `{ format: 'bgra' }`.** BGRA is GPUI's native order, so the upload skips a per-pixel swizzle. ffmpeg (`-pix_fmt bgra`), VideoToolbox and node-canvas raw buffers already produce it.
```ts
img.current?.setImagePixels(width, height, canvas.toBuffer('raw'), { format: 'bgra' })
```
11. **Add `getElementsAt(x, y)`**, like the DOM's `elementsFromPoint`. It returns the elements under a window point, topmost first, and respects clipping, `pointerEvents: "none"` and deferred `<anchored>` layers. The test renderer has it too.
12. **Add `collectGarbageWhenIdle()`** to `@gpuix/react`. It runs one full garbage collection after the app stops committing for a while, so a long session's heap comes back down after a burst of work. It returns a function that stops it.
13. **macOS frames follow the display link** instead of an 8 ms timer. The pump stays non-blocking, so Bun and Node.js I/O run between frames. A 100 ms fallback handles hidden windows. `startFrameLoop(renderer, { frameMs })` keeps timer polling, and `renderer.setFrameWakeCallback(callback | null)` exposes the native wake for manual pumps.
14. **Windows ARM64 builds.** `@gpuix/native-win32-arm64-msvc` ships alongside x64, and the release includes `example-chat-aarch64-pc-windows-msvc.exe`. Use an ARM64 Node.js or Bun to load it. The chat example now keeps the native Windows title bar.
15. **`@gpuix/react` uses `react-reconciler@^0.33.0` and peers on `react@^19.2.0`.** Apps on React 19.2 no longer need an override.
16. **Fixed Linux apps opening no window under X11.** GPUI's Wayland and X11 compositor selection is now enabled in release builds.
17. **Element boxes are correct.** `getElementBounds()`, automation `click()` and text selection regions now use the border box. Before, padding shifted the box right and down, and a border made it narrower.
18. **Leaving the window ends hover.** The `hover` style, cursor and tooltips no longer stay on the last element until the pointer returns. The test renderer gains `simulateMouseExit` and `nativeSimulateMouseExit`.
19. **`padding` on a `<virtual-list>` insets rows left and right**, not only top and bottom.
20. **Search handles Unicode correctly.** `findRanges` and native highlights match uppercase Greek, cover the full original character for expansions such as `İ`, and keep original offsets. `wholeWord: true` no longer treats combining marks as word boundaries.
21. **Smaller fixes**
- `onFocus` and `onBlur` fire in the test renderer
- `readWindowSize` and `readWindowInsets` return independent snapshots, so mutating one result no longer changes later reads
- `observeSelectedText` also delivers a selection change made by its own initial callback
- chained automation locators return each element once, so `count()` and `element()` are no longer inflated by overlapping parents
- a style change on an element hidden by Suspense or Activity keeps it hidden
- docs cover the Node.js runtime and separate `bun --hot` development from normal startup
22. **Faster and leaner**
- a re-render no longer resends styles and custom props that did not change, and `applyBatch` repaints only when a batch changes something drawn
- `root.render()` no longer re-renders every `useGpuix()` consumer. A find bar keystroke in the chat example dropped from about 9 ms to 0.2 ms
- `<div>` and `<text>` no longer carry a hidden child to record bounds, so a frame is about 15% cheaper
- idle frames no longer walk the whole tree to find focusable elements, about a third less CPU on large trees
- find-in-page compiles the query once per keystroke
- a 75,000-element chat uses 33.6 MB of native tree heap instead of 44.5 MB, and React releases temporary child lists after mount
`@gpuix/native/host` exports `sameMutationValue(left, right)` and `EVENT_TYPE_BY_PROP` for adapters.
Fixes https://github.com/remorses/gpuix/issues/73
Fixes https://github.com/remorses/gpuix/issues/77
Fixes https://github.com/remorses/gpuix/issues/78
Fixes https://github.com/remorses/gpuix/issues/84
Fixes https://github.com/remorses/gpuix/issues/91
Fixes https://github.com/remorses/gpuix/issues/93
Fixes https://github.com/remorses/gpuix/issues/95
Fixes https://github.com/remorses/gpuix/issues/96
Fixes https://github.com/remorses/gpuix/issues/97
Fixes https://github.com/remorses/gpuix/issues/98
Fixes https://github.com/remorses/gpuix/issues/99
## 0.10.0
1. **Add the official Solid 1 renderer** as `@gpuix/solid`. Solid applications run through normal Bun commands with a preload. The framework-neutral JavaScript runtime now lives in `@gpuix/native`.
+5 -5
View File
@@ -18,7 +18,7 @@
},
"cli": {
"name": "@gpuix/cli",
"version": "0.1.1",
"version": "0.1.2",
"bin": "./dist/cli.js",
"dependencies": {
"goke": "^6.14.1",
@@ -31,7 +31,7 @@
},
"disktree": {
"name": "disktree",
"version": "0.2.0",
"version": "0.2.1",
"bin": "dist/cli.js",
"dependencies": {
"@gpuix/native": "workspace:^",
@@ -85,7 +85,7 @@
},
"packages/native": {
"name": "@gpuix/native",
"version": "0.10.0",
"version": "0.11.0",
"dependencies": {
"eventsource-parser": "^4.1.0",
"zod": "^4.4.3",
@@ -99,7 +99,7 @@
},
"packages/react": {
"name": "@gpuix/react",
"version": "0.10.0",
"version": "0.11.0",
"dependencies": {
"@gpuix/native": "workspace:^",
"react-reconciler": "^0.33.0",
@@ -119,7 +119,7 @@
},
"packages/solid": {
"name": "@gpuix/solid",
"version": "0.10.0",
"version": "0.11.0",
"dependencies": {
"@babel/core": "^7.28.0",
"@babel/preset-typescript": "^7.27.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@gpuix/cli",
"version": "0.1.1",
"version": "0.1.2",
"description": "Create a GPUIX app from the official example template",
"license": "Apache-2.0",
"type": "module",
+12
View File
@@ -1,5 +1,17 @@
# disktree
## 0.2.1
1. **Windows support fixes** — the native Windows title bar stays, so the window can be dragged, minimized, maximized and closed. Source builds no longer need the Unix `chmod` tool.
2. **Platform file manager** — the selection panel opens Explorer on Windows, Finder on macOS and `xdg-open` on Linux, and names it on the button. On Linux, selecting a file opens its folder. Launch errors show in the panel instead of crashing.
3. **Lower memory after large scans** — a 350,000-file scan retains about 24 MiB of tree heap instead of 32 MiB.
4. **Built on `@gpuix/react` 0.11.0**.
Fixes https://github.com/remorses/gpuix/issues/74
Fixes https://github.com/remorses/gpuix/issues/75
Fixes https://github.com/remorses/gpuix/issues/76
Fixes https://github.com/remorses/gpuix/issues/77
## 0.2.0
1. **Runs on plain Node** — Bun is no longer required:
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "disktree",
"version": "0.2.0",
"version": "0.2.1",
"description": "See what fills your disk: a GPU-rendered treemap of any folder, built with GPUIX",
"license": "Apache-2.0",
"type": "module",
+1 -1
View File
@@ -2609,7 +2609,7 @@ dependencies = [
[[package]]
name = "gpuix-native"
version = "0.10.0"
version = "0.11.0"
dependencies = [
"anyhow",
"base64",
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "gpuix-native"
version = "0.10.0"
version = "0.11.0"
edition = "2021"
description = "GPUI bindings for Node.js via napi-rs"
license = "Apache-2.0"
+54 -54
View File
@@ -89,8 +89,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-android-arm64')
const bindingPackageVersion = require('@gpuix/native-android-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -105,8 +105,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-android-arm-eabi')
const bindingPackageVersion = require('@gpuix/native-android-arm-eabi/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -126,8 +126,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-x64-gnu')
const bindingPackageVersion = require('@gpuix/native-win32-x64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -142,8 +142,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-x64-msvc')
const bindingPackageVersion = require('@gpuix/native-win32-x64-msvc/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -159,8 +159,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-ia32-msvc')
const bindingPackageVersion = require('@gpuix/native-win32-ia32-msvc/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -175,8 +175,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-arm64-msvc')
const bindingPackageVersion = require('@gpuix/native-win32-arm64-msvc/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -194,8 +194,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-darwin-universal')
const bindingPackageVersion = require('@gpuix/native-darwin-universal/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -210,8 +210,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-darwin-x64')
const bindingPackageVersion = require('@gpuix/native-darwin-x64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -226,8 +226,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-darwin-arm64')
const bindingPackageVersion = require('@gpuix/native-darwin-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -246,8 +246,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-freebsd-x64')
const bindingPackageVersion = require('@gpuix/native-freebsd-x64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -262,8 +262,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-freebsd-arm64')
const bindingPackageVersion = require('@gpuix/native-freebsd-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -283,8 +283,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-x64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-x64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -299,8 +299,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-x64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-x64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -317,8 +317,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-arm64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -333,8 +333,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-arm64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -351,8 +351,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm-musleabihf')
const bindingPackageVersion = require('@gpuix/native-linux-arm-musleabihf/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -367,8 +367,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm-gnueabihf')
const bindingPackageVersion = require('@gpuix/native-linux-arm-gnueabihf/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -385,8 +385,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-loong64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-loong64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -401,8 +401,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-loong64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-loong64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -419,8 +419,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-riscv64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-riscv64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -435,8 +435,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-riscv64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-riscv64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -452,8 +452,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-ppc64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-ppc64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -468,8 +468,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-s390x-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-s390x-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -488,8 +488,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-openharmony-arm64')
const bindingPackageVersion = require('@gpuix/native-openharmony-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -504,8 +504,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-openharmony-x64')
const bindingPackageVersion = require('@gpuix/native-openharmony-x64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -520,8 +520,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-openharmony-arm')
const bindingPackageVersion = require('@gpuix/native-openharmony-arm/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -661,8 +661,8 @@ if (!nativeBinding || forceWasi) {
if (!candidateFailed) {
if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
const bindingPackageVersion = require('@gpuix/native-wasm32-wasi/package.json').version
if (bindingPackageVersion !== '0.10.0') {
throw new Error(`WASI binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0') {
throw new Error(`WASI binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
}
wasiBinding = require('@gpuix/native-wasm32-wasi')
+54 -54
View File
@@ -92,8 +92,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-android-arm64')
const bindingPackageVersion = require('@gpuix/native-android-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -108,8 +108,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-android-arm-eabi')
const bindingPackageVersion = require('@gpuix/native-android-arm-eabi/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -129,8 +129,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-x64-gnu')
const bindingPackageVersion = require('@gpuix/native-win32-x64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -145,8 +145,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-x64-msvc')
const bindingPackageVersion = require('@gpuix/native-win32-x64-msvc/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -162,8 +162,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-ia32-msvc')
const bindingPackageVersion = require('@gpuix/native-win32-ia32-msvc/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -178,8 +178,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-win32-arm64-msvc')
const bindingPackageVersion = require('@gpuix/native-win32-arm64-msvc/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -197,8 +197,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-darwin-universal')
const bindingPackageVersion = require('@gpuix/native-darwin-universal/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -213,8 +213,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-darwin-x64')
const bindingPackageVersion = require('@gpuix/native-darwin-x64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -229,8 +229,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-darwin-arm64')
const bindingPackageVersion = require('@gpuix/native-darwin-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -249,8 +249,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-freebsd-x64')
const bindingPackageVersion = require('@gpuix/native-freebsd-x64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -265,8 +265,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-freebsd-arm64')
const bindingPackageVersion = require('@gpuix/native-freebsd-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -286,8 +286,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-x64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-x64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -302,8 +302,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-x64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-x64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -320,8 +320,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-arm64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -336,8 +336,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-arm64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -354,8 +354,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm-musleabihf')
const bindingPackageVersion = require('@gpuix/native-linux-arm-musleabihf/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -370,8 +370,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-arm-gnueabihf')
const bindingPackageVersion = require('@gpuix/native-linux-arm-gnueabihf/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -388,8 +388,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-loong64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-loong64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -404,8 +404,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-loong64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-loong64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -422,8 +422,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-riscv64-musl')
const bindingPackageVersion = require('@gpuix/native-linux-riscv64-musl/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -438,8 +438,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-riscv64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-riscv64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -455,8 +455,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-ppc64-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-ppc64-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -471,8 +471,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-linux-s390x-gnu')
const bindingPackageVersion = require('@gpuix/native-linux-s390x-gnu/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -491,8 +491,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-openharmony-arm64')
const bindingPackageVersion = require('@gpuix/native-openharmony-arm64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -507,8 +507,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-openharmony-x64')
const bindingPackageVersion = require('@gpuix/native-openharmony-x64/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -523,8 +523,8 @@ function requireNative() {
try {
const binding = require('@gpuix/native-openharmony-arm')
const bindingPackageVersion = require('@gpuix/native-openharmony-arm/package.json').version
if (bindingPackageVersion !== '0.10.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0' && process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
throw new Error(`Native binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
return binding
} catch (e) {
@@ -664,8 +664,8 @@ if (!nativeBinding || forceWasi) {
if (!candidateFailed) {
if (process.env.NAPI_RS_ENFORCE_VERSION_CHECK && process.env.NAPI_RS_ENFORCE_VERSION_CHECK !== '0') {
const bindingPackageVersion = require('@gpuix/native-wasm32-wasi/package.json').version
if (bindingPackageVersion !== '0.10.0') {
throw new Error(`WASI binding package version mismatch, expected 0.10.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
if (bindingPackageVersion !== '0.11.0') {
throw new Error(`WASI binding package version mismatch, expected 0.11.0 but got ${bindingPackageVersion}. You can reinstall dependencies to fix this issue.`)
}
}
wasiBinding = require('@gpuix/native-wasm32-wasi')
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@gpuix/native",
"version": "0.10.0",
"version": "0.11.0",
"license": "Apache-2.0",
"type": "module",
"main": "./index.js",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@gpuix/react",
"version": "0.10.0",
"version": "0.11.0",
"license": "Apache-2.0",
"type": "module",
"main": "dist/index.js",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@gpuix/solid",
"version": "0.10.0",
"version": "0.11.0",
"description": "Solid renderer for GPUIX",
"license": "Apache-2.0",
"type": "module",