a reactive (signals based) hypermedia web framework (wip) stormlightlabs.github.io/volt/
hypermedia frontend signals
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: setup gh-pages deployment

* rename volt to voltx

+438 -81
+61
.github/workflows/deploy-docs.yml
··· 1 + name: Deploy Documentation 2 + 3 + on: 4 + push: 5 + branches: 6 + - main 7 + paths: 8 + - 'docs/**' 9 + - '.github/workflows/deploy-docs.yml' 10 + workflow_dispatch: 11 + 12 + permissions: 13 + contents: read 14 + pages: write 15 + id-token: write 16 + 17 + concurrency: 18 + group: pages 19 + cancel-in-progress: false 20 + 21 + jobs: 22 + build: 23 + runs-on: ubuntu-latest 24 + steps: 25 + - name: Checkout 26 + uses: actions/checkout@v4 27 + with: 28 + fetch-depth: 0 29 + 30 + - name: Setup pnpm 31 + uses: pnpm/action-setup@v4 32 + with: 33 + version: 9 34 + 35 + - name: Setup Node.js 36 + uses: actions/setup-node@v4 37 + with: 38 + node-version: '20' 39 + cache: 'pnpm' 40 + 41 + - name: Install dependencies 42 + run: pnpm install --frozen-lockfile 43 + 44 + - name: Build documentation 45 + run: pnpm docs:build 46 + 47 + - name: Upload artifact 48 + uses: actions/upload-pages-artifact@v3 49 + with: 50 + path: docs/.vitepress/dist 51 + 52 + deploy: 53 + environment: 54 + name: github-pages 55 + url: ${{ steps.deployment.outputs.page_url }} 56 + needs: build 57 + runs-on: ubuntu-latest 58 + steps: 59 + - name: Deploy to GitHub Pages 60 + id: deployment 61 + uses: actions/deploy-pages@v4
+3 -1
README.md
··· 1 - # Volt.js 1 + # VoltX.js 2 + 3 + > ⚠️ **Pre-release Software**: VoltX.js is in active development. Breaking changes are expected until v1.0. Use in production at your own risk. 2 4 3 5 ## Philosophy/Goals 4 6
+2 -1
docs/.vitepress/config.ts
··· 5 5 * @see https://vitepress.dev/reference/site-config 6 6 */ 7 7 export default defineConfig({ 8 - title: "Volt.js", 8 + title: "VoltX.js", 9 9 description: "A reactive, hypermedia framework.", 10 + base: "/volt/", 10 11 appearance: "dark", 11 12 themeConfig: { 12 13 nav: [{ text: "Home", link: "/" }, { text: "Overview", link: "/overview" }, { text: "CSS", link: "/css/volt-css" }],
+2 -2
docs/api/binder.md
··· 5 5 6 6 # binder 7 7 8 - Binder system for mounting and managing Volt.js bindings 8 + Binder system for mounting and managing VoltX.js bindings 9 9 10 10 ## mount 11 11 12 - Mount Volt.js on a root element and its descendants and binds all data-volt-* attributes to the provided scope. 12 + Mount VoltX.js on a root element and its descendants and binds all data-volt-* attributes to the provided scope. 13 13 Returns a cleanup function to unmount and dispose all bindings. 14 14 15 15 ```typescript
+3 -3
docs/api/events.md
··· 5 5 6 6 # Event Handling 7 7 8 - Volt.js provides declarative event handling through `data-volt-on-*` attributes with automatic access to special scoped references. 8 + VoltX provides declarative event handling through `data-volt-on-*` attributes with automatic access to special scoped references. 9 9 10 10 ## Event Binding Syntax 11 11 ··· 35 35 36 36 ## Event Types 37 37 38 - Volt.js aims to support all standard DOM events through `data-volt-on-*`: 38 + VoltX.js aims to support all standard DOM events through `data-volt-on-*`: 39 39 40 40 **Mouse Events:** 41 41 ··· 66 66 67 67 ## Implementation Details 68 68 69 - When an event handler is bound, Volt.js: 69 + When an event handler is bound, VoltX.js: 70 70 71 71 1. Creates a new scope that extends the component scope 72 72 2. Injects `$el` (the bound element) and `$event` (the event object) into this scope
+1 -1
docs/api/lifecycle.md
··· 5 5 6 6 # lifecycle 7 7 8 - Global lifecycle hook system for Volt.js 8 + Global lifecycle hook system for VoltX.js 9 9 Provides beforeMount, afterMount, beforeUnmount, and afterUnmount hooks 10 10 11 11 ## registerGlobalHook
+2 -2
docs/api/plugin.md
··· 5 5 6 6 # plugin 7 7 8 - Plugin system for extending Volt.js with custom bindings 8 + Plugin system for extending VoltX.js with custom bindings 9 9 10 10 ## registerPlugin 11 11 12 12 Register a custom plugin with a given name. 13 - Plugins extend Volt.js with custom data-volt-* attribute bindings. 13 + Plugins extend VoltX.js with custom data-volt-* attribute bindings. 14 14 15 15 ```typescript 16 16 export function registerPlugin(name: string, handler: PluginHandler): void
+4 -3
docs/bindings.md
··· 1 - # Volt Bindings 1 + # VoltX Bindings 2 2 3 3 Bindings connect reactive state to the DOM using `data-volt-*` attributes. Each binding evaluates expressions and updates the DOM when dependencies change. 4 4 ··· 56 56 57 57 Each key in the object is a class name. When the corresponding value is truthy, the class is added; when falsy, the class is removed. 58 58 59 - Class names with hyphens or spaces must be quoted. The binding preserves existing classes not managed by Volt.js. 59 + Class names with hyphens or spaces must be quoted. The binding preserves existing classes not managed by VoltX.js. 60 60 61 61 ## Event Bindings 62 62 ··· 372 372 Register custom bindings for domain-specific behavior using the plugin API: 373 373 374 374 ```js 375 - import { registerPlugin } from '@voltjs/volt'; 375 + import { registerPlugin } from 'voltx.js'; 376 + // or: import { registerPlugin } from '@voltx/core'; 376 377 377 378 registerPlugin('tooltip', (ctx) => { 378 379 const message = ctx.evaluate(ctx.element.getAttribute('data-volt-tooltip'));
+1 -1
docs/css/volt-css.md
··· 335 335 336 336 ## License 337 337 338 - Part of the Volt.js project. MIT licensed. 338 + Part of the VoltX project. MIT licensed. 339 339 340 340 ## Further Reading 341 341
+1 -1
docs/expressions.md
··· 1 1 # Expression Evaluation 2 2 3 - Volt.js evaluates JavaScript-like expressions in HTML templates using a sandboxed recursive descent parser. 3 + VoltX.js evaluates JavaScript-like expressions in HTML templates using a sandboxed recursive descent parser. 4 4 The evaluator is CSP-compliant and does not use `eval()` or `new Function()`. 5 5 6 6 ## Supported Syntax
+6 -3
docs/index.md
··· 3 3 layout: home 4 4 5 5 hero: 6 - name: "Volt.js" 7 - text: "A reactive, hypermedia framework." 8 - tagline: A reactive, hypermedia framework. 6 + name: "VoltX.js" 7 + # text: "A reactive, hypermedia framework." 8 + tagline: | 9 + A reactive, hypermedia framework. 10 + 11 + ⚠️ Pre-release software: Breaking changes expected 9 12 actions: 10 13 - theme: brand 11 14 text: Overview
+33 -20
docs/installation.md
··· 1 1 # Installation 2 2 3 - <!-- TODO: Figure out actual project path @voltjs/volt --> 4 - 5 - Volt.js can be installed via CDN or package manager. Choose the method that best fits your project setup. 3 + VoltX.js can be installed via CDN or package manager. Choose the method that best fits your project setup. 6 4 7 5 ## CDN (unpkg) 8 6 9 - The simplest way to get started is loading Volt.js directly from a CDN. This approach requires no build tools and works immediately in any HTML file. 7 + The simplest way to get started is loading VoltX.js directly from a CDN. This approach requires no build tools and works immediately in any HTML file. 10 8 11 9 ### ES Modules 12 10 ··· 14 12 15 13 ```html 16 14 <script type="module"> 17 - import { charge, registerPlugin } from 'https://unpkg.com/@voltjs/volt@latest/dist/volt.js'; 15 + import { charge, registerPlugin } from 'https://unpkg.com/voltx.js@latest/dist/volt.js'; 18 16 charge(); 19 17 </script> 20 18 ``` ··· 23 21 24 22 ```html 25 23 <script type="module"> 26 - import { charge } from 'https://unpkg.com/@voltjs/volt@0.1.0/dist/volt.js'; 24 + import { charge } from 'https://unpkg.com/voltx.js@0.1.0/dist/volt.js'; 27 25 charge(); 28 26 </script> 29 27 ``` 30 28 31 29 ## Package Manager 32 30 33 - For applications using node based tools, install Volt.js via npm or similar: 31 + For applications using node based tools, install VoltX.js via npm or JSR: 32 + 33 + ### npm 34 + 35 + ```bash 36 + npm install voltx.js 37 + ``` 38 + 39 + ```bash 40 + pnpm add voltx.js 41 + ``` 42 + 43 + ### JSR (Deno, Node.js, Bun) 34 44 35 45 ```bash 36 - npm install @voltjs/volt 46 + npx jsr add @voltx/core 37 47 ``` 38 48 39 49 ```bash 40 - pnpm add @voltjs/volt 50 + deno add jsr:@voltx/core 41 51 ``` 42 52 43 53 ### Module Imports ··· 45 55 Import only the functions you need to minimize bundle size: 46 56 47 57 ```js 48 - import { charge, registerPlugin } from '@voltjs/volt'; 49 - import { persistPlugin } from '@voltjs/volt/plugins'; 58 + // npm 59 + import { charge, registerPlugin } from 'voltx.js'; 60 + 61 + // JSR 62 + import { charge, registerPlugin } from '@voltx/core'; 50 63 51 64 registerPlugin('persist', persistPlugin); 52 65 charge(); ··· 56 69 57 70 ## TypeScript 58 71 59 - Volt.js is written in TypeScript and includes complete type definitions. 72 + VoltX.js is written in TypeScript and includes complete type definitions. 60 73 61 74 TypeScript users get automatic type inference for: 62 75 ··· 77 90 <head> 78 91 <meta charset="UTF-8"> 79 92 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 80 - <title>Volt.js App</title> 93 + <title>VoltX.js App</title> 81 94 </head> 82 95 <body> 83 96 <div data-volt data-volt-state='{"count": 0}'> ··· 86 99 </div> 87 100 88 101 <script type="module"> 89 - import { charge } from 'https://unpkg.com/@voltjs/volt@latest/dist/volt.js'; 102 + import { charge } from 'https://unpkg.com/voltx.js@latest/dist/volt.js'; 90 103 charge(); 91 104 </script> 92 105 </body> ··· 101 114 102 115 ```html 103 116 <script type="module"> 104 - import { mount, signal } from 'https://unpkg.com/@voltjs/volt@latest/dist/volt.js'; 117 + import { mount, signal } from 'https://unpkg.com/voltx.js@latest/dist/volt.js'; 105 118 106 119 const count = signal(0); 107 120 ··· 120 133 121 134 ```html 122 135 <script type="module"> 123 - import { hydrate } from '@voltjs/volt'; 136 + import { hydrate } from 'voltx.js'; 137 + // or: import { hydrate } from '@voltx/core'; 124 138 hydrate(); 125 139 </script> 126 140 ``` ··· 129 143 130 144 ## Plugin Setup 131 145 132 - Volt.js includes several built-in plugins that must be registered before use: 146 + VoltX.js includes several built-in plugins that must be registered before use: 133 147 134 148 ```html 135 149 <script type="module"> 136 - import { charge, registerPlugin } from '@voltjs/volt'; 137 - import { persistPlugin, scrollPlugin, urlPlugin } from '@voltjs/volt/plugins'; 150 + import { charge, registerPlugin, persistPlugin, scrollPlugin, urlPlugin } from 'voltx.js'; 138 151 139 152 registerPlugin('persist', persistPlugin); 140 153 registerPlugin('scroll', scrollPlugin); ··· 148 161 149 162 ## Browser Compatibility 150 163 151 - Volt.js requires modern browsers with support for: 164 + VoltX.js requires modern browsers with support for: 152 165 153 166 - ES2020 syntax (optional chaining, nullish coalescing) 154 167 - ES modules
+4 -4
docs/lifecycle.md
··· 1 1 # Server-Side Rendering & Lifecycle 2 2 3 - Server-Side Rendering (SSR) with Volt.js enables you to render initial HTML on the server and seamlessly hydrate it on the client without re-rendering or flash of unstyled content. 3 + Server-Side Rendering (SSR) with VoltX enables you to render initial HTML on the server and seamlessly hydrate it on the client without re-rendering or flash of unstyled content. 4 4 5 5 ## When to use SSR 6 6 ··· 27 27 28 28 ### Client-Side: Hydration 29 29 30 - Instead of re-rendering the DOM, Volt.js "hydrates" the existing server-rendered HTML by: 30 + Instead of re-rendering the DOM, VoltX.js "hydrates" the existing server-rendered HTML by: 31 31 32 32 1. Reading the embedded state from the `<script>` tag 33 33 2. Recreating reactive signals from the serialized values ··· 70 70 71 71 ### CSS-Based Hiding 72 72 73 - Hide content until Volt.js hydrates: 73 + Hide content until VoltX.js hydrates: 74 74 75 75 ```html 76 76 <style> ··· 133 133 134 134 <input type="email" name="email" required> 135 135 136 - <!-- Enhanced with Volt.js for client-side validation --> 136 + <!-- Enhanced with VoltX.js for client-side validation --> 137 137 <p data-volt-if="submitted" data-volt-text="'Thank you!'"></p> 138 138 139 139 <button type="submit">Submit</button>
+1 -1
docs/overview.md
··· 4 4 5 5 # Framework Overview 6 6 7 - Volt.js is a lightweight, hypermedia based reactive framework for building declarative UIs. 7 + VoltX is a lightweight, hypermedia based reactive framework for building declarative UIs. 8 8 9 9 It combines HTML-driven behavior via `data-volt-*` attributes with signal-based reactivity. 10 10
+2 -2
docs/package.json
··· 1 1 { 2 - "name": "@volt/docs", 2 + "name": "@voltx/docs", 3 3 "version": "0.1.0", 4 4 "private": true, 5 5 "type": "module", 6 6 "scripts": { "dev": "vitepress dev", "build": "vitepress build", "preview": "vitepress preview" }, 7 - "devDependencies": { "vitepress": "^1.6.4", "vue": "^3.5.22" } 7 + "devDependencies": { "esbuild": "^0.25.11", "vitepress": "^1.6.4", "vue": "^3.5.22" } 8 8 }
+1 -1
docs/spec/plugin-spec.md
··· 98 98 99 99 ## Built-in Plugins 100 100 101 - Volt.js ships with three built-in plugins that must be explicitly registered. 101 + VoltX.js ships with three built-in plugins that must be explicitly registered. 102 102 103 103 ### data-volt-persist 104 104
+2 -2
docs/state.md
··· 1 1 # State Management 2 2 3 - Volt.js uses signal-based reactivity for state management. State changes automatically trigger DOM updates without virtual DOM diffing or reconciliation. 3 + VoltX uses signal-based reactivity for state management. State changes automatically trigger DOM updates without virtual DOM diffing or reconciliation. 4 4 5 5 ## Reactive Primitives 6 6 ··· 124 124 125 125 - Use browser DevTools to set breakpoints in signal `.set()` calls 126 126 - Subscribe to signals and log changes for debugging 127 - - Enable Volt.js lifecycle hooks to observe mount and binding creation 127 + - Enable VoltX.js lifecycle hooks to observe mount and binding creation 128 128 129 129 All errors in effects and subscriptions are caught and logged rather than thrown, preventing cascade failures.
+6 -7
docs/usage/counter.md
··· 1 1 # Building a Counter 2 2 3 - This tutorial walks through building a simple counter application to demonstrate Volt.js fundamentals: reactive state, event handling, computed values, and declarative markup. 3 + This tutorial walks through building a simple counter application to demonstrate VoltX.js fundamentals: reactive state, event handling, computed values, and declarative markup. 4 4 5 5 ## Basic Counter (Declarative) 6 6 ··· 14 14 <head> 15 15 <meta charset="UTF-8"> 16 16 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 17 - <title>Counter - Volt.js</title> 17 + <title>Counter - VoltX.js</title> 18 18 </head> 19 19 <body> 20 20 <div data-volt data-volt-state='{"count": 0}'> ··· 23 23 </div> 24 24 25 25 <script type="module"> 26 - import { charge } from 'https://unpkg.com/@voltjs/volt@latest/dist/volt.js'; 26 + import { charge } from 'https://unpkg.com/voltx.js@latest/dist/volt.js'; 27 27 charge(); 28 28 </script> 29 29 </body> ··· 159 159 </div> 160 160 161 161 <script type="module"> 162 - import { charge, registerPlugin } from 'https://unpkg.com/@voltjs/volt@latest/dist/volt.js'; 163 - import { persistPlugin } from 'https://unpkg.com/@voltjs/volt@latest/dist/plugins.js'; 162 + import { charge, registerPlugin, persistPlugin } from 'https://unpkg.com/voltx.js@latest/dist/volt.js'; 164 163 165 164 registerPlugin('persist', persistPlugin); 166 165 charge(); ··· 227 226 228 227 ```html 229 228 <script type="module"> 230 - import { mount, signal, computed } from 'https://unpkg.com/@voltjs/volt@latest/dist/volt.js'; 229 + import { mount, signal, computed } from 'https://unpkg.com/voltx.js@latest/dist/volt.js'; 231 230 232 231 const count = signal(0); 233 232 const message = computed(() => { ··· 270 269 271 270 ## Summary 272 271 273 - This counter demonstrates core Volt.js concepts: 272 + This counter demonstrates core VoltX.js concepts: 274 273 275 274 - Reactive state with signals 276 275 - Event handling with `data-volt-on-*`
+6 -1
lib/README.md
··· 1 1 # VoltX.js 2 2 3 + > [!WARNING] 4 + > VoltX.js is in active development. 5 + > 6 + > Breaking changes are expected until v1.0. Use in production at your own risk. 7 + 3 8 A lightweight reactive framework for declarative UIs. Build interactive applications using only HTML attributes powered by signals. 4 9 5 10 ## Features ··· 61 66 62 67 ## Documentation 63 68 64 - Full documentation available at [your-docs-url] 69 + Full documentation available at [https://stormlightlabs.github.io/volt/](https://stormlightlabs.github.io/volt/) 65 70 66 71 ## License 67 72
+3 -3
package.json
··· 10 10 "test": "pnpm -r test", 11 11 "test:ui": "pnpm --filter voltx.js test:ui", 12 12 "test:run": "pnpm -r test:run", 13 - "docs:dev": "pnpm --filter @volt/docs dev", 14 - "docs:build": "pnpm --filter @volt/docs build", 15 - "docs:preview": "pnpm --filter @volt/docs preview", 13 + "docs:dev": "pnpm --filter @voltx/docs dev", 14 + "docs:build": "pnpm --filter @voltx/docs build", 15 + "docs:preview": "pnpm --filter @voltx/docs preview", 16 16 "typecheck": "pnpm -r typecheck" 17 17 }, 18 18 "devDependencies": {
+294 -22
pnpm-lock.yaml
··· 37 37 version: 8.46.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) 38 38 vitest: 39 39 specifier: ^3.2.4 40 - version: 3.2.4(@types/node@24.8.1)(jiti@2.6.1)(jsdom@27.0.0)(terser@5.44.0)(yaml@2.8.1) 40 + version: 3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1) 41 41 42 42 dev: 43 43 dependencies: ··· 63 63 64 64 docs: 65 65 devDependencies: 66 + esbuild: 67 + specifier: ^0.25.11 68 + version: 0.25.11 66 69 vitepress: 67 70 specifier: ^1.6.4 68 - version: 1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(change-case@5.4.4)(jiti@2.6.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.0)(typescript@5.9.3)(yaml@2.8.1) 71 + version: 1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(change-case@5.4.4)(esbuild@0.25.11)(jiti@2.6.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.0)(typescript@5.9.3)(yaml@2.8.1) 69 72 vue: 70 73 specifier: ^3.5.22 71 74 version: 3.5.22(typescript@5.9.3) ··· 80 83 version: 6.9.1 81 84 '@vitest/coverage-v8': 82 85 specifier: 3.2.4 83 - version: 3.2.4(vitest@3.2.4(@types/node@24.8.1)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1)) 86 + version: 3.2.4(vitest@3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1)) 84 87 cssnano: 85 88 specifier: ^7.1.1 86 89 version: 7.1.1(postcss@8.5.6) ··· 101 104 version: 16.1.1(postcss@8.5.6) 102 105 vite: 103 106 specifier: npm:rolldown-vite@7.1.14 104 - version: rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 107 + version: rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 105 108 106 109 packages: 107 110 ··· 341 344 '@emnapi/wasi-threads@1.1.0': 342 345 resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} 343 346 347 + '@esbuild/aix-ppc64@0.25.11': 348 + resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} 349 + engines: {node: '>=18'} 350 + cpu: [ppc64] 351 + os: [aix] 352 + 353 + '@esbuild/android-arm64@0.25.11': 354 + resolution: {integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==} 355 + engines: {node: '>=18'} 356 + cpu: [arm64] 357 + os: [android] 358 + 359 + '@esbuild/android-arm@0.25.11': 360 + resolution: {integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==} 361 + engines: {node: '>=18'} 362 + cpu: [arm] 363 + os: [android] 364 + 365 + '@esbuild/android-x64@0.25.11': 366 + resolution: {integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==} 367 + engines: {node: '>=18'} 368 + cpu: [x64] 369 + os: [android] 370 + 371 + '@esbuild/darwin-arm64@0.25.11': 372 + resolution: {integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==} 373 + engines: {node: '>=18'} 374 + cpu: [arm64] 375 + os: [darwin] 376 + 377 + '@esbuild/darwin-x64@0.25.11': 378 + resolution: {integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==} 379 + engines: {node: '>=18'} 380 + cpu: [x64] 381 + os: [darwin] 382 + 383 + '@esbuild/freebsd-arm64@0.25.11': 384 + resolution: {integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==} 385 + engines: {node: '>=18'} 386 + cpu: [arm64] 387 + os: [freebsd] 388 + 389 + '@esbuild/freebsd-x64@0.25.11': 390 + resolution: {integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==} 391 + engines: {node: '>=18'} 392 + cpu: [x64] 393 + os: [freebsd] 394 + 395 + '@esbuild/linux-arm64@0.25.11': 396 + resolution: {integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==} 397 + engines: {node: '>=18'} 398 + cpu: [arm64] 399 + os: [linux] 400 + 401 + '@esbuild/linux-arm@0.25.11': 402 + resolution: {integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==} 403 + engines: {node: '>=18'} 404 + cpu: [arm] 405 + os: [linux] 406 + 407 + '@esbuild/linux-ia32@0.25.11': 408 + resolution: {integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==} 409 + engines: {node: '>=18'} 410 + cpu: [ia32] 411 + os: [linux] 412 + 413 + '@esbuild/linux-loong64@0.25.11': 414 + resolution: {integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==} 415 + engines: {node: '>=18'} 416 + cpu: [loong64] 417 + os: [linux] 418 + 419 + '@esbuild/linux-mips64el@0.25.11': 420 + resolution: {integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==} 421 + engines: {node: '>=18'} 422 + cpu: [mips64el] 423 + os: [linux] 424 + 425 + '@esbuild/linux-ppc64@0.25.11': 426 + resolution: {integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==} 427 + engines: {node: '>=18'} 428 + cpu: [ppc64] 429 + os: [linux] 430 + 431 + '@esbuild/linux-riscv64@0.25.11': 432 + resolution: {integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==} 433 + engines: {node: '>=18'} 434 + cpu: [riscv64] 435 + os: [linux] 436 + 437 + '@esbuild/linux-s390x@0.25.11': 438 + resolution: {integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==} 439 + engines: {node: '>=18'} 440 + cpu: [s390x] 441 + os: [linux] 442 + 443 + '@esbuild/linux-x64@0.25.11': 444 + resolution: {integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==} 445 + engines: {node: '>=18'} 446 + cpu: [x64] 447 + os: [linux] 448 + 449 + '@esbuild/netbsd-arm64@0.25.11': 450 + resolution: {integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==} 451 + engines: {node: '>=18'} 452 + cpu: [arm64] 453 + os: [netbsd] 454 + 455 + '@esbuild/netbsd-x64@0.25.11': 456 + resolution: {integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==} 457 + engines: {node: '>=18'} 458 + cpu: [x64] 459 + os: [netbsd] 460 + 461 + '@esbuild/openbsd-arm64@0.25.11': 462 + resolution: {integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==} 463 + engines: {node: '>=18'} 464 + cpu: [arm64] 465 + os: [openbsd] 466 + 467 + '@esbuild/openbsd-x64@0.25.11': 468 + resolution: {integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==} 469 + engines: {node: '>=18'} 470 + cpu: [x64] 471 + os: [openbsd] 472 + 473 + '@esbuild/openharmony-arm64@0.25.11': 474 + resolution: {integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==} 475 + engines: {node: '>=18'} 476 + cpu: [arm64] 477 + os: [openharmony] 478 + 479 + '@esbuild/sunos-x64@0.25.11': 480 + resolution: {integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==} 481 + engines: {node: '>=18'} 482 + cpu: [x64] 483 + os: [sunos] 484 + 485 + '@esbuild/win32-arm64@0.25.11': 486 + resolution: {integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==} 487 + engines: {node: '>=18'} 488 + cpu: [arm64] 489 + os: [win32] 490 + 491 + '@esbuild/win32-ia32@0.25.11': 492 + resolution: {integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==} 493 + engines: {node: '>=18'} 494 + cpu: [ia32] 495 + os: [win32] 496 + 497 + '@esbuild/win32-x64@0.25.11': 498 + resolution: {integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==} 499 + engines: {node: '>=18'} 500 + cpu: [x64] 501 + os: [win32] 502 + 344 503 '@eslint-community/eslint-utils@4.9.0': 345 504 resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} 346 505 engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} ··· 786 945 resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} 787 946 engines: {node: ^18.0.0 || >=20.0.0} 788 947 peerDependencies: 789 - vite: npm:rolldown-vite@7.1.14 948 + vite: ^5.0.0 || ^6.0.0 790 949 vue: ^3.2.25 791 950 792 951 '@vitest/coverage-v8@3.2.4': ··· 805 964 resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} 806 965 peerDependencies: 807 966 msw: ^2.4.9 808 - vite: npm:rolldown-vite@7.1.14 967 + vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 809 968 peerDependenciesMeta: 810 969 msw: 811 970 optional: true ··· 1324 1483 1325 1484 es-module-lexer@1.7.0: 1326 1485 resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1486 + 1487 + esbuild@0.25.11: 1488 + resolution: {integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==} 1489 + engines: {node: '>=18'} 1490 + hasBin: true 1327 1491 1328 1492 escalade@3.2.0: 1329 1493 resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} ··· 3008 3172 tslib: 2.8.1 3009 3173 optional: true 3010 3174 3175 + '@esbuild/aix-ppc64@0.25.11': 3176 + optional: true 3177 + 3178 + '@esbuild/android-arm64@0.25.11': 3179 + optional: true 3180 + 3181 + '@esbuild/android-arm@0.25.11': 3182 + optional: true 3183 + 3184 + '@esbuild/android-x64@0.25.11': 3185 + optional: true 3186 + 3187 + '@esbuild/darwin-arm64@0.25.11': 3188 + optional: true 3189 + 3190 + '@esbuild/darwin-x64@0.25.11': 3191 + optional: true 3192 + 3193 + '@esbuild/freebsd-arm64@0.25.11': 3194 + optional: true 3195 + 3196 + '@esbuild/freebsd-x64@0.25.11': 3197 + optional: true 3198 + 3199 + '@esbuild/linux-arm64@0.25.11': 3200 + optional: true 3201 + 3202 + '@esbuild/linux-arm@0.25.11': 3203 + optional: true 3204 + 3205 + '@esbuild/linux-ia32@0.25.11': 3206 + optional: true 3207 + 3208 + '@esbuild/linux-loong64@0.25.11': 3209 + optional: true 3210 + 3211 + '@esbuild/linux-mips64el@0.25.11': 3212 + optional: true 3213 + 3214 + '@esbuild/linux-ppc64@0.25.11': 3215 + optional: true 3216 + 3217 + '@esbuild/linux-riscv64@0.25.11': 3218 + optional: true 3219 + 3220 + '@esbuild/linux-s390x@0.25.11': 3221 + optional: true 3222 + 3223 + '@esbuild/linux-x64@0.25.11': 3224 + optional: true 3225 + 3226 + '@esbuild/netbsd-arm64@0.25.11': 3227 + optional: true 3228 + 3229 + '@esbuild/netbsd-x64@0.25.11': 3230 + optional: true 3231 + 3232 + '@esbuild/openbsd-arm64@0.25.11': 3233 + optional: true 3234 + 3235 + '@esbuild/openbsd-x64@0.25.11': 3236 + optional: true 3237 + 3238 + '@esbuild/openharmony-arm64@0.25.11': 3239 + optional: true 3240 + 3241 + '@esbuild/sunos-x64@0.25.11': 3242 + optional: true 3243 + 3244 + '@esbuild/win32-arm64@0.25.11': 3245 + optional: true 3246 + 3247 + '@esbuild/win32-ia32@0.25.11': 3248 + optional: true 3249 + 3250 + '@esbuild/win32-x64@0.25.11': 3251 + optional: true 3252 + 3011 3253 '@eslint-community/eslint-utils@4.9.0(eslint@9.38.0(jiti@2.6.1))': 3012 3254 dependencies: 3013 3255 eslint: 9.38.0(jiti@2.6.1) ··· 3437 3679 3438 3680 '@ungap/structured-clone@1.3.0': {} 3439 3681 3440 - '@vitejs/plugin-vue@5.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': 3682 + '@vitejs/plugin-vue@5.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3))': 3441 3683 dependencies: 3442 - vite: rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 3684 + vite: rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 3443 3685 vue: 3.5.22(typescript@5.9.3) 3444 3686 3445 - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@24.8.1)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1))': 3687 + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1))': 3446 3688 dependencies: 3447 3689 '@ampproject/remapping': 2.3.0 3448 3690 '@bcoe/v8-coverage': 1.0.2 ··· 3457 3699 std-env: 3.10.0 3458 3700 test-exclude: 7.0.1 3459 3701 tinyrainbow: 2.0.0 3460 - vitest: 3.2.4(@types/node@24.8.1)(jiti@2.6.1)(jsdom@27.0.0)(terser@5.44.0)(yaml@2.8.1) 3702 + vitest: 3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1) 3461 3703 transitivePeerDependencies: 3462 3704 - supports-color 3463 3705 ··· 3469 3711 chai: 5.3.3 3470 3712 tinyrainbow: 2.0.0 3471 3713 3472 - '@vitest/mocker@3.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1))': 3714 + '@vitest/mocker@3.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1))': 3473 3715 dependencies: 3474 3716 '@vitest/spy': 3.2.4 3475 3717 estree-walker: 3.0.3 3476 3718 magic-string: 0.30.19 3477 3719 optionalDependencies: 3478 - vite: rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 3720 + vite: rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 3479 3721 3480 3722 '@vitest/pretty-format@3.2.4': 3481 3723 dependencies: ··· 4028 4270 4029 4271 es-module-lexer@1.7.0: {} 4030 4272 4273 + esbuild@0.25.11: 4274 + optionalDependencies: 4275 + '@esbuild/aix-ppc64': 0.25.11 4276 + '@esbuild/android-arm': 0.25.11 4277 + '@esbuild/android-arm64': 0.25.11 4278 + '@esbuild/android-x64': 0.25.11 4279 + '@esbuild/darwin-arm64': 0.25.11 4280 + '@esbuild/darwin-x64': 0.25.11 4281 + '@esbuild/freebsd-arm64': 0.25.11 4282 + '@esbuild/freebsd-x64': 0.25.11 4283 + '@esbuild/linux-arm': 0.25.11 4284 + '@esbuild/linux-arm64': 0.25.11 4285 + '@esbuild/linux-ia32': 0.25.11 4286 + '@esbuild/linux-loong64': 0.25.11 4287 + '@esbuild/linux-mips64el': 0.25.11 4288 + '@esbuild/linux-ppc64': 0.25.11 4289 + '@esbuild/linux-riscv64': 0.25.11 4290 + '@esbuild/linux-s390x': 0.25.11 4291 + '@esbuild/linux-x64': 0.25.11 4292 + '@esbuild/netbsd-arm64': 0.25.11 4293 + '@esbuild/netbsd-x64': 0.25.11 4294 + '@esbuild/openbsd-arm64': 0.25.11 4295 + '@esbuild/openbsd-x64': 0.25.11 4296 + '@esbuild/openharmony-arm64': 0.25.11 4297 + '@esbuild/sunos-x64': 0.25.11 4298 + '@esbuild/win32-arm64': 0.25.11 4299 + '@esbuild/win32-ia32': 0.25.11 4300 + '@esbuild/win32-x64': 0.25.11 4301 + 4031 4302 escalade@3.2.0: {} 4032 4303 4033 4304 escape-string-regexp@1.0.5: {} ··· 4957 5228 - oxc-resolver 4958 5229 - supports-color 4959 5230 4960 - rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1): 5231 + rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1): 4961 5232 dependencies: 4962 5233 '@oxc-project/runtime': 0.92.0 4963 5234 fdir: 6.5.0(picomatch@4.0.3) ··· 4968 5239 tinyglobby: 0.2.15 4969 5240 optionalDependencies: 4970 5241 '@types/node': 24.8.1 5242 + esbuild: 0.25.11 4971 5243 fsevents: 2.3.3 4972 5244 jiti: 2.6.1 4973 5245 terser: 5.44.0 ··· 5298 5570 '@types/unist': 3.0.3 5299 5571 vfile-message: 4.0.3 5300 5572 5301 - vite-node@3.2.4(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1): 5573 + vite-node@3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1): 5302 5574 dependencies: 5303 5575 cac: 6.7.14 5304 5576 debug: 4.4.3 5305 5577 es-module-lexer: 1.7.0 5306 5578 pathe: 2.0.3 5307 - vite: rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5579 + vite: rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5308 5580 transitivePeerDependencies: 5309 5581 - '@types/node' 5310 5582 - esbuild ··· 5319 5591 - tsx 5320 5592 - yaml 5321 5593 5322 - vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(change-case@5.4.4)(jiti@2.6.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.0)(typescript@5.9.3)(yaml@2.8.1): 5594 + vitepress@1.6.4(@algolia/client-search@5.40.1)(@types/node@24.8.1)(change-case@5.4.4)(esbuild@0.25.11)(jiti@2.6.1)(postcss@8.5.6)(search-insights@2.17.3)(terser@5.44.0)(typescript@5.9.3)(yaml@2.8.1): 5323 5595 dependencies: 5324 5596 '@docsearch/css': 3.8.2 5325 5597 '@docsearch/js': 3.8.2(@algolia/client-search@5.40.1)(search-insights@2.17.3) ··· 5328 5600 '@shikijs/transformers': 2.5.0 5329 5601 '@shikijs/types': 2.5.0 5330 5602 '@types/markdown-it': 14.1.2 5331 - '@vitejs/plugin-vue': 5.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) 5603 + '@vitejs/plugin-vue': 5.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.3)) 5332 5604 '@vue/devtools-api': 7.7.7 5333 5605 '@vue/shared': 3.5.22 5334 5606 '@vueuse/core': 12.8.2(typescript@5.9.3) ··· 5337 5609 mark.js: 8.11.1 5338 5610 minisearch: 7.2.0 5339 5611 shiki: 2.5.0 5340 - vite: rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5612 + vite: rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5341 5613 vue: 3.5.22(typescript@5.9.3) 5342 5614 optionalDependencies: 5343 5615 postcss: 8.5.6 ··· 5371 5643 - universal-cookie 5372 5644 - yaml 5373 5645 5374 - vitest@3.2.4(@types/node@24.8.1)(jiti@2.6.1)(jsdom@27.0.0)(terser@5.44.0)(yaml@2.8.1): 5646 + vitest@3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(jsdom@27.0.0(postcss@8.5.6))(terser@5.44.0)(yaml@2.8.1): 5375 5647 dependencies: 5376 5648 '@types/chai': 5.2.2 5377 5649 '@vitest/expect': 3.2.4 5378 - '@vitest/mocker': 3.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1)) 5650 + '@vitest/mocker': 3.2.4(rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1)) 5379 5651 '@vitest/pretty-format': 3.2.4 5380 5652 '@vitest/runner': 3.2.4 5381 5653 '@vitest/snapshot': 3.2.4 ··· 5393 5665 tinyglobby: 0.2.15 5394 5666 tinypool: 1.1.1 5395 5667 tinyrainbow: 2.0.0 5396 - vite: rolldown-vite@7.1.14(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5397 - vite-node: 3.2.4(@types/node@24.8.1)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5668 + vite: rolldown-vite@7.1.14(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5669 + vite-node: 3.2.4(@types/node@24.8.1)(esbuild@0.25.11)(jiti@2.6.1)(terser@5.44.0)(yaml@2.8.1) 5398 5670 why-is-node-running: 2.3.0 5399 5671 optionalDependencies: 5400 5672 '@types/node': 24.8.1