feat(vite-plugin-warpdrive): new Vite plugin for uploading large assets to S3 compatible storages

This commit is contained in:
Neko Ayaka
2025-11-26 21:46:32 +08:00
parent 35bf4ec8a2
commit 53e5ce6798
16 changed files with 964 additions and 139 deletions
@@ -15,6 +15,9 @@ import { DownloadLive2DSDK } from '@proj-airi/unplugin-live2d-sdk'
import { templateCompilerOptions } from '@tresjs/core'
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
const stageUIAssetsRoot = resolve(join(import.meta.dirname, '..', '..', 'packages', 'stage-ui', 'src', 'assets'))
const sharedCacheDir = resolve(join(import.meta.dirname, '..', '..', '.cache'))
export default defineConfig({
main: {
plugins: [externalizeDepsPlugin()],
@@ -130,10 +133,10 @@ export default defineConfig({
}),
DownloadLive2DSDK(),
Download('https://dist.ayaka.moe/live2d-models/hiyori_free_zh.zip', 'hiyori_free_zh.zip', 'assets/live2d/models'),
Download('https://dist.ayaka.moe/live2d-models/hiyori_pro_zh.zip', 'hiyori_pro_zh.zip', 'assets/live2d/models'),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-A/AvatarSample_A.vrm', 'AvatarSample_A.vrm', 'assets/vrm/models/AvatarSample-A'),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-B/AvatarSample_B.vrm', 'AvatarSample_B.vrm', 'assets/vrm/models/AvatarSample-B'),
Download('https://dist.ayaka.moe/live2d-models/hiyori_free_zh.zip', 'hiyori_free_zh.zip', 'live2d/models', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
Download('https://dist.ayaka.moe/live2d-models/hiyori_pro_zh.zip', 'hiyori_pro_zh.zip', 'live2d/models', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-A/AvatarSample_A.vrm', 'AvatarSample_A.vrm', 'vrm/models/AvatarSample-A', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-B/AvatarSample_B.vrm', 'AvatarSample_B.vrm', 'vrm/models/AvatarSample-B', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
],
},
})
+1 -1
View File
@@ -135,7 +135,7 @@
"@proj-airi/lobe-icons": "^1.0.14",
"@proj-airi/stage-shared": "workspace:^",
"@proj-airi/ui-transitions": "workspace:^",
"@proj-airi/unplugin-fetch": "^0.1.7",
"@proj-airi/unplugin-fetch": "^0.2.0",
"@proj-airi/unplugin-live2d-sdk": "^0.1.6",
"@shikijs/markdown-it": "^3.15.0",
"@types/culori": "^4.0.1",
+2 -1
View File
@@ -105,8 +105,9 @@
"@iconify-json/vscode-icons": "^1.2.34",
"@intlify/unplugin-vue-i18n": "^11.0.1",
"@proj-airi/lobe-icons": "^1.0.14",
"@proj-airi/unplugin-fetch": "^0.1.7",
"@proj-airi/unplugin-fetch": "^0.2.0",
"@proj-airi/unplugin-live2d-sdk": "^0.1.6",
"@proj-airi/vite-plugin-warpdrive": "workspace:*",
"@shikijs/markdown-it": "^3.15.0",
"@types/audioworklet": "^0.0.91",
"@types/culori": "^4.0.1",
+51 -4
View File
@@ -13,11 +13,15 @@ import Layouts from 'vite-plugin-vue-layouts'
import { Download } from '@proj-airi/unplugin-fetch/vite'
import { DownloadLive2DSDK } from '@proj-airi/unplugin-live2d-sdk/vite'
import { createS3Provider, WarpDrivePlugin } from '@proj-airi/vite-plugin-warpdrive'
import { templateCompilerOptions } from '@tresjs/core'
import { LFS, SpaceCard } from 'hfup/vite'
import { defineConfig } from 'vite'
import { VitePWA } from 'vite-plugin-pwa'
const stageUIAssetsRoot = resolve(join(import.meta.dirname, '..', '..', 'packages', 'stage-ui', 'src', 'assets'))
const sharedCacheDir = resolve(join(import.meta.dirname, '..', '..', '.cache'))
export default defineConfig({
optimizeDeps: {
exclude: [
@@ -63,6 +67,7 @@ export default defineConfig({
],
},
},
plugins: [
Info(),
@@ -153,10 +158,10 @@ export default defineConfig({
VueDevTools(),
DownloadLive2DSDK(),
Download('https://dist.ayaka.moe/live2d-models/hiyori_free_zh.zip', 'hiyori_free_zh.zip', 'assets/live2d/models'),
Download('https://dist.ayaka.moe/live2d-models/hiyori_pro_zh.zip', 'hiyori_pro_zh.zip', 'assets/live2d/models'),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-A/AvatarSample_A.vrm', 'AvatarSample_A.vrm', 'assets/vrm/models/AvatarSample-A'),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-B/AvatarSample_B.vrm', 'AvatarSample_B.vrm', 'assets/vrm/models/AvatarSample-B'),
Download('https://dist.ayaka.moe/live2d-models/hiyori_free_zh.zip', 'hiyori_free_zh.zip', 'live2d/models', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
Download('https://dist.ayaka.moe/live2d-models/hiyori_pro_zh.zip', 'hiyori_pro_zh.zip', 'live2d/models', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-A/AvatarSample_A.vrm', 'AvatarSample_A.vrm', 'vrm/models/AvatarSample-A', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
Download('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-B/AvatarSample_B.vrm', 'AvatarSample_B.vrm', 'vrm/models/AvatarSample-B', { parentDir: stageUIAssetsRoot, cacheDir: sharedCacheDir }),
// HuggingFace Spaces
LFS({ root: cwd(), extraGlobs: ['*.vrm', '*.vrma', '*.hdr', '*.cmo3', '*.png', '*.jpg', '*.jpeg', '*.gif', '*.webp', '*.bmp', '*.ttf'] }),
@@ -175,5 +180,47 @@ export default defineConfig({
],
short_description: 'AI driven VTuber & Companion, supports Live2D and VRM.',
}),
// For the following example assets:
//
// dist/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm 21,596.01 kB │ gzip: 5,121.95 kB
// dist/assets/XiaolaiSC-Regular-SNWuh554.ttf 22,183.94 kB
// dist/assets/cjkFonts_allseto_v1.11-ByBdljxl.ttf 31,337.14 kB
// dist/assets/duckdb-coi-CSr8FQO4.wasm 32,320.49 kB │ gzip: 7,194.65 kB
// dist/assets/duckdb-eh-BJOC5S4x.wasm 32,604.02 kB │ gzip: 7,133.37 kB
// dist/assets/duckdb-mvp-8HYqhb4i.wasm 37,345.64 kB │ gzip: 8,099.69 kB
//
// they are too large to be able to put into deployments like Cloudflare Workers or Pages,
// we need to upload them to external storage and use renderBuiltUrl to rewrite their URLs.
...((!env.S3_ENDPOINT || !env.S3_ACCESS_KEY_ID || !env.S3_SECRET_ACCESS_KEY)
? []
: [
WarpDrivePlugin({
prefix: 'proj-airi/stage-web/',
include: [/\.wasm$/i, /\.ttf$/i, /\.vrm$/i, /\.zip$/i], // in existing assets, wasm, ttf, vrm files are the largest ones
manifest: true,
contentTypeBy: (filename: string) => {
if (filename.endsWith('.wasm')) {
return 'application/wasm'
}
if (filename.endsWith('.ttf')) {
return 'font/ttf'
}
if (filename.endsWith('.vrm')) {
return 'application/octet-stream'
}
if (filename.endsWith('.zip')) {
return 'application/zip'
}
},
provider: createS3Provider({
endpoint: env.S3_ENDPOINT,
accessKeyId: env.S3_ACCESS_KEY_ID,
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
region: env.S3_REGION,
publicBaseUrl: env.WARP_DRIVE_PUBLIC_BASE ?? env.S3_ENDPOINT,
}),
}),
]),
],
})
-3
View File
@@ -2,9 +2,6 @@ name = "airi"
compatibility_date = "2025-04-01"
preview_urls = true
[build]
command = "pnpm -F @proj-airi/stage-web run build && pnpm -F @proj-airi/docs run build:base && mv ./docs/.vitepress/dist ./apps/stage-web/dist/docs && cp ./apps/stage-web/dist/docs/sitemap.xml ./apps/stage-web/dist/sitemap.xml && pnpm -F @proj-airi/stage-ui run story:build && mv ./packages/stage-ui/.histoire/dist ./apps/stage-web/dist/ui"
[assets]
directory = "./dist"
not_found_handling = "single-page-application"
+1
View File
@@ -289,6 +289,7 @@ words:
- vtuber
- vueuse
- waapi
- warpdrive
- Warudo
- wavefile
- webgpu
+1
View File
@@ -156,6 +156,7 @@
"@iconify-json/vscode-icons": "^1.2.34",
"@moeru/std": "catalog:",
"@proj-airi/lobe-icons": "^1.0.14",
"@proj-airi/vite-plugin-warpdrive": "workspace:*",
"@types/audioworklet": "^0.0.91",
"@types/culori": "^4.0.1",
"@types/three": "^0.181.0",
+41
View File
@@ -1,12 +1,14 @@
import type { Plugin } from 'vite'
import { join, resolve } from 'node:path'
import { env } from 'node:process'
import Vue from '@vitejs/plugin-vue'
import Unocss from 'unocss/vite'
import Yaml from 'unplugin-yaml/vite'
import Inspect from 'vite-plugin-inspect'
import { createS3Provider, WarpDrivePlugin } from '@proj-airi/vite-plugin-warpdrive'
import { defineConfig } from 'vite'
// For Histoire
@@ -47,5 +49,44 @@ export default defineConfig({
// TODO: Type wrong for `unplugin-yaml` in Histoire required
// Vite version, wait until Histoire updates to support Vite 7
Inspect() as Plugin,
// For the following example assets:
//
// dist/assets/ort-wasm-simd-threaded.jsep-B0T3yYHD.wasm 21,596.01 kB │ gzip: 5,121.95 kB
// dist/assets/XiaolaiSC-Regular-SNWuh554.ttf 22,183.94 kB
// dist/assets/cjkFonts_allseto_v1.11-ByBdljxl.ttf 31,337.14 kB
//
// they are too large to be able to put into deployments like Cloudflare Workers or Pages,
// we need to upload them to external storage and use renderBuiltUrl to rewrite their URLs.
...((!env.S3_ENDPOINT || !env.S3_ACCESS_KEY_ID || !env.S3_SECRET_ACCESS_KEY)
? []
: [
WarpDrivePlugin({
prefix: 'proj-airi/stage-ui/',
include: [/\.wasm$/i, /\.ttf$/i, /\.vrm$/i, /\.zip$/i], // in existing assets, wasm, ttf, vrm files are the largest ones
manifest: true,
contentTypeBy: (filename: string) => {
if (filename.endsWith('.wasm')) {
return 'application/wasm'
}
if (filename.endsWith('.ttf')) {
return 'font/ttf'
}
if (filename.endsWith('.vrm')) {
return 'application/octet-stream'
}
if (filename.endsWith('.zip')) {
return 'application/zip'
}
},
provider: createS3Provider({
endpoint: env.S3_ENDPOINT,
accessKeyId: env.S3_ACCESS_KEY_ID,
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
region: env.S3_REGION,
publicBaseUrl: env.WARP_DRIVE_PUBLIC_BASE ?? env.S3_ENDPOINT,
}),
}),
]),
],
})
+66
View File
@@ -0,0 +1,66 @@
# @proj-airi/vite-plugin-warpdrive
Vite plugin that rewrites selected build assets (large WASM/TTF/VRM, etc.) to remote object storage and uploads them after build. It uses Vite's `renderBuiltUrl` hook so the generated bundles reference the remote URL while keeping the local file for upload.
## Why
- Keep HTML/JS bundles lean while serving heavy assets (WASM, fonts, models) from object storage/CDN.
- Simple provider abstraction; ships with an S3-compatible implementation via [`s3mini`](https://github.com/good-lly/s3mini).
- Emits an optional manifest (`remote-assets.manifest.json`) that maps built filenames to remote URLs plus hostId/hostType for debugging.
## Install
```bash
pnpm add -D @proj-airi/vite-plugin-warpdrive
```
## Usage
```ts
import { createS3Provider, WarpDrivePlugin } from '@proj-airi/vite-plugin-warpdrive'
// vite.config.ts
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
WarpDrivePlugin({
prefix: 'remote-assets', // optional path prefix in the bucket
include: [/\.wasm$/i, /\.ttf$/i, /\.vrm$/i], // which assets to rewrite/upload
// includeBy: (file, ctx) => ctx.hostId?.includes('duckdb'),
// contentType: (file) => file.endsWith('.wasm') ? 'application/wasm' : undefined,
manifest: true, // emit remote-assets.manifest.json in dist
provider: createS3Provider({
endpoint: process.env.S3_ENDPOINT!,
accessKeyId: process.env.S3_ACCESS_KEY_ID!,
secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
region: process.env.S3_REGION,
publicBaseUrl: process.env.WARP_DRIVE_PUBLIC_BASE, // defaults to endpoint
}),
}),
],
})
```
### Options
- `prefix`: string path prefix for uploaded keys and URLs (e.g. `remote-assets` -> `remote-assets/assets/foo.wasm`).
- `include`: array of regex or predicate functions to decide which assets to rewrite/upload.
- `includeBy`: optional `(filename, ctx) => boolean` for finer control (ctx has `hostId`, `hostType`).
- `manifest`: when true, emits `remote-assets.manifest.json` describing fileName/key/url/hostId/hostType/size.
- `contentType`: optional `(filename) => string | undefined` resolver passed to the provider upload.
- `logger`: optional logger ({ info, warn, error }) for custom logging sinks.
- `provider`: any object implementing `{ getPublicUrl(key): string; upload(localPath, key, contentType?): Promise<void> }`.
### createS3Provider
Light wrapper around `s3mini`. Required fields:
- `endpoint`: full bucket URL (e.g. `https://s3.example.com/my-bucket`).
- `accessKeyId`, `secretAccessKey`: credentials.
- Optional: `region`, `requestSizeInBytes`, `requestAbortTimeout`, `publicBaseUrl` (override public URL base).
## How it works
1. `renderBuiltUrl` returns the remote URL for matching assets while remembering the key/hostId/hostType.
2. In `generateBundle`, local artifacts are uploaded via the provider.
3. Optional manifest is emitted for traceability/debugging.
@@ -0,0 +1,40 @@
{
"name": "@proj-airi/vite-plugin-warpdrive",
"type": "module",
"version": "0.0.0",
"private": true,
"description": "Vite plugin to rewrite and upload heavy build assets to remote object storage",
"author": {
"name": "Moeru AI Project AIRI Team",
"email": "airi@moeru.ai",
"url": "https://github.com/moeru-ai"
},
"license": "MIT",
"exports": {
".": {
"types": "./dist/index.d.mts",
"default": "./dist/index.mjs"
}
},
"main": "./dist/index.mjs",
"types": "./dist/index.d.mts",
"files": [
"README.md",
"dist",
"package.json"
],
"scripts": {
"build": "tsdown",
"typecheck": "tsc --noEmit"
},
"peerDependencies": {
"vite": "^5.0.0 || ^6.0.0"
},
"dependencies": {
"rolldown": "1.0.0-beta.51",
"s3mini": "^0.7.0"
},
"devDependencies": {
"@moeru/std": "catalog:"
}
}
+282
View File
@@ -0,0 +1,282 @@
import type { OutputAsset } from 'rollup'
import type { Plugin, RenderBuiltAssetUrl, ResolvedConfig } from 'vite'
import type { UploadProvider } from './providers/types'
import { Buffer } from 'node:buffer'
import { rm } from 'node:fs/promises'
import { join, resolve } from 'node:path'
import { cwd } from 'node:process'
export { createS3Provider } from './providers/s3'
export type { S3ProviderOptions } from './providers/s3'
export type { UploadProvider } from './providers/types'
type IncludeMatcher = RegExp | ((filename: string) => boolean)
export interface WarpDrivePluginOptions {
provider: UploadProvider
/**
* Prefix to prepend before the asset filename when uploading and when rewriting URLs.
* e.g. `remote-assets` will produce `remote-assets/assets/duckdb-eh-123.wasm`.
*/
prefix?: string
/**
* Restrict which assets are rewritten/uploaded.
*/
include?: IncludeMatcher[]
/**
* Optional extra predicate that receives filename + host info to decide inclusion.
*/
includeBy?: (filename: string, ctx: { hostId?: string, hostType?: string }) => boolean
/**
* Optional content-type resolver. If omitted, uploads use the provider default.
*/
contentTypeBy?: (filename: string) => Promise<string | undefined> | string | undefined
/**
* Emit a manifest with module id + URL for debugging.
*/
manifest?: boolean
/**
* Delete the uploaded local asset from disk after upload completes. Enabled by default.
*/
delete?: boolean
/**
* Clean the remote prefix before uploading (delete existing objects). Enabled by default.
*/
clean?: boolean
/**
* When enabled, skip cleaning and uploading; emit manifest/rewrite URLs only.
*/
dryRun?: boolean
/**
* Skip uploading assets that are already present and not modified. Enabled by default when supported.
*/
skipNotModified?: boolean
}
export function WarpDrivePlugin(options: WarpDrivePluginOptions): Plugin {
const include = options.include ?? []
const prefix = normalizePrefix(options.prefix ?? 'remote-assets')
const pluginName = 'proj-airi-warpdrive'
const shouldDeleteLocalAsset = options.delete !== false
const shouldCleanRemote = options.clean !== false
const shouldSkipNotModified = options.skipNotModified !== false
const isDryRun = options.dryRun === true
const tracked = new Map<string, { key: string, url: string, hostId?: string, hostType?: string }>()
const manifest: Array<{
fileName: string
url: string
key: string
hostId?: string
hostType?: string
size: number
}> = []
let resolvedConfig: ResolvedConfig | undefined
let cleanedRemote = false
const pendingUploads: Array<{
fileName: string
key: string
localPath: string
contentType?: string
}> = []
const shouldHandle = (filename: string, ctx: { hostId?: string, hostType?: string }) => {
const includeMatch = include.some((matcher) => {
if (matcher instanceof RegExp)
return matcher.test(filename)
return matcher(filename)
})
if (!includeMatch)
return false
if (options.includeBy)
return options.includeBy(filename, ctx)
return true
}
const renderBuiltUrl: RenderBuiltAssetUrl = (filename, ctx) => {
if (!shouldHandle(filename, ctx))
return
if (!options.provider)
return
const key = prefix ? `${prefix}/${filename}` : filename
const url = options.provider.getPublicUrl(key)
tracked.set(filename, {
key,
url,
hostId: ctx.hostId,
hostType: ctx.hostType,
})
return url
}
return {
name: pluginName,
apply: 'build',
enforce: 'post',
config: () => {
return {
experimental: {
renderBuiltUrl,
},
}
},
configResolved(config) {
resolvedConfig = config
},
async generateBundle(_, bundle) {
if (!resolvedConfig) {
console.warn?.(`[${pluginName}] Vite config not resolved, skipping upload step`)
return
}
if (!options.provider) {
resolvedConfig.logger?.warn?.(`[${pluginName}] no upload provider configured, skipping upload step`)
return
}
const root = resolvedConfig.root || cwd()
const outDir = resolve(root, resolvedConfig.build.outDir)
for (const [fileName, output] of Object.entries(bundle)) {
if (output.type !== 'asset')
continue
const trackedMeta = tracked.get(fileName)
if (!trackedMeta)
continue
const key = trackedMeta.key
const url = trackedMeta.url
const localPath = join(outDir, fileName)
const size = getAssetSize(output)
const contentType = await options.contentTypeBy?.(fileName)
manifest.push({
fileName,
url,
key,
hostId: trackedMeta.hostId,
hostType: trackedMeta.hostType,
size,
})
pendingUploads.push({ fileName, key, localPath, contentType })
resolvedConfig.logger.info(`[${pluginName}] scheduled uploading: ${fileName} -> ${key} (${size} bytes)`)
}
if (options.manifest && manifest.length) {
this.emitFile({
type: 'asset',
fileName: 'remote-assets.manifest.json',
source: JSON.stringify({ assets: manifest }, null, 2),
})
}
},
async closeBundle() {
if (!resolvedConfig) {
console.warn?.(`[${pluginName}] Vite config not resolved, skipping upload step`)
return
}
if (!options.provider) {
resolvedConfig.logger?.warn?.(`[${pluginName}] no upload provider configured, skipping upload step`)
return
}
if (!pendingUploads.length)
return
if (isDryRun) {
resolvedConfig.logger.info?.(
`[${pluginName}] dry run enabled; skipping clean/upload for ${pendingUploads.length} assets`,
)
return
}
if (shouldCleanRemote && !cleanedRemote) {
if (!prefix) {
resolvedConfig.logger?.warn?.(`[${pluginName}] skipping clean step because no prefix provided`)
}
else if (typeof options.provider.cleanPrefix === 'function') {
resolvedConfig.logger.info?.(`[${pluginName}] cleaning remote prefix: ${prefix}`)
await options.provider.cleanPrefix(prefix)
resolvedConfig.logger.info?.(`[${pluginName}] cleaned remote prefix: ${prefix}`)
cleanedRemote = true
}
else {
resolvedConfig.logger?.warn?.(
`[${pluginName}] clean is enabled but provider does not support prefix cleaning; skipping`,
)
}
}
resolvedConfig.logger.info(`[${pluginName}] uploading ${pendingUploads.length} assets to remote storage...`)
const uploads: Array<Promise<void>> = []
for (const { fileName, key, localPath, contentType } of pendingUploads) {
uploads.push((async () => {
if (shouldSkipNotModified && typeof options.provider.shouldSkipUpload === 'function') {
try {
const skip = await options.provider.shouldSkipUpload(localPath, key)
if (skip) {
resolvedConfig.logger.info?.(
`[${pluginName}] skipped upload (not modified): ${fileName} -> ${key}`,
)
if (shouldDeleteLocalAsset) {
try {
await rm(localPath, { force: true })
resolvedConfig.logger.info(`[${pluginName}] deleted local asset: ${fileName}`)
}
catch (error) {
resolvedConfig.logger.warn?.(`[${pluginName}] failed to delete local asset ${fileName}: ${error}`)
}
}
return
}
}
catch (error) {
resolvedConfig.logger.warn?.(
`[${pluginName}] could not determine if upload should be skipped for ${fileName}: ${error}`,
)
}
}
try {
await options.provider.upload(localPath, key, contentType)
}
catch (error) {
resolvedConfig.logger.error(`[${pluginName}] upload failed, file: ${fileName} -> ${key}: ${error}`, { error })
throw error
}
if (shouldDeleteLocalAsset) {
try {
await rm(localPath, { force: true })
resolvedConfig.logger.info(`[${pluginName}] deleted local asset: ${fileName}`)
}
catch (error) {
resolvedConfig.logger.warn?.(`[${pluginName}] failed to delete local asset ${fileName}: ${error}`)
}
}
})())
}
await Promise.all(uploads)
resolvedConfig.logger.info(`[${pluginName}] upload complete`)
},
}
}
function normalizePrefix(prefix: string) {
return prefix.replace(/^\/*/, '').replace(/\/*$/, '')
}
function getAssetSize(asset: OutputAsset) {
if (typeof asset.source === 'string')
return Buffer.byteLength(asset.source)
return asset.source?.byteLength ?? 0
}
@@ -0,0 +1,100 @@
import { createHash } from 'node:crypto'
import { readFile } from 'node:fs/promises'
import { join } from 'node:path'
import { S3mini } from 's3mini'
import type { UploadProvider } from './types'
export interface S3ProviderOptions {
endpoint: string
accessKeyId: string
secretAccessKey: string
region?: string
requestSizeInBytes?: number
requestAbortTimeout?: number
/**
* Skip uploading when the remote object ETag matches the local content hash (MD5). Enabled by default.
*/
skipNotModified?: boolean
/**
* Public base URL used in rewritten assets. Defaults to endpoint.
*/
publicBaseUrl?: string
}
export function createS3Provider(options: S3ProviderOptions): UploadProvider {
const client = new S3mini({
accessKeyId: options.accessKeyId,
secretAccessKey: options.secretAccessKey,
endpoint: options.endpoint,
region: options.region ?? 'auto',
requestAbortTimeout: options.requestAbortTimeout,
requestSizeInBytes: options.requestSizeInBytes,
})
const publicBaseUrl = options.publicBaseUrl ?? options.endpoint
const skipNotModified = options.skipNotModified !== false
return {
async upload(localPath: string, key: string, contentType?: string) {
const data = await readFile(localPath)
await client.putObject(normalizeKey(key), data, contentType ?? 'application/octet-stream')
},
async cleanPrefix(prefix: string) {
const normalizedPrefix = normalizePrefix(prefix)
if (!normalizedPrefix)
return
const objects = await client.listObjects('/', `${normalizedPrefix}/`)
if (!objects?.length)
return
const keys = objects.map(obj => obj.Key)
await client.deleteObjects(keys)
},
async shouldSkipUpload(localPath: string, key: string) {
if (!skipNotModified)
return false
const data = await readFile(localPath)
return isMd5HashMatched(client, key, data)
},
getPublicUrl(key: string) {
return joinUrl(publicBaseUrl, key)
},
}
}
async function isMd5HashMatched(client: S3mini, key: string, data: Buffer) {
try {
const etag = await client.getEtag(normalizeKey(key))
if (!etag)
return false
const normalizedEtag = sanitizeEtag(etag)
if (!normalizedEtag || normalizedEtag.includes('-'))
return false
const localHash = createHash('md5').update(data).digest('hex')
return normalizedEtag.toLowerCase() === localHash.toLowerCase()
}
catch {
return false
}
}
function normalizePrefix(prefix: string) {
return prefix.replace(/^\/*/, '').replace(/\/*$/, '')
}
function normalizeKey(key: string) {
return key.replace(/^\/*/, '')
}
function joinUrl(base: string, path: string) {
return `${base.replace(/\/+$/, '')}/${path.replace(/^\/+/, '')}`
}
function sanitizeEtag(etag: string) {
return etag.replace(/^"+|"+$/g, '')
}
@@ -0,0 +1,12 @@
export interface UploadProvider {
getPublicUrl: (key: string) => string
upload: (localPath: string, key: string, contentType?: string) => Promise<void>
/**
* Optionally clean a remote prefix before uploading new assets.
*/
cleanPrefix?: (prefix: string) => Promise<void>
/**
* Optionally determine if an upload can be skipped (e.g., hash/etag match).
*/
shouldSkipUpload?: (localPath: string, key: string) => Promise<boolean>
}
@@ -0,0 +1,18 @@
{
"compilerOptions": {
"target": "ESNext",
"lib": [
"ESNext"
],
"module": "ESNext",
"moduleResolution": "bundler",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"verbatimModuleSyntax": true,
"skipLibCheck": true
},
"include": [
"src/**/*.ts"
]
}
@@ -0,0 +1,9 @@
import { defineConfig } from 'tsdown'
export default defineConfig({
entry: [
'./src/index.ts',
],
dts: true,
sourcemap: true,
})
+333 -126
View File
@@ -571,8 +571,8 @@ importers:
specifier: workspace:^
version: link:../../packages/ui-transitions
'@proj-airi/unplugin-fetch':
specifier: ^0.1.7
version: 0.1.7(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
specifier: ^0.2.0
version: 0.2.0(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
'@proj-airi/unplugin-live2d-sdk':
specifier: ^0.1.6
version: 0.1.6(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
@@ -872,7 +872,7 @@ importers:
version: 4.6.3(vue@3.5.24(typescript@5.9.3))
vue-sonner:
specifier: ^2.0.9
version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1))
version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1))
workbox-window:
specifier: ^7.3.0
version: 7.3.0
@@ -920,11 +920,14 @@ importers:
specifier: ^1.0.14
version: 1.0.14
'@proj-airi/unplugin-fetch':
specifier: ^0.1.7
version: 0.1.7(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
specifier: ^0.2.0
version: 0.2.0(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
'@proj-airi/unplugin-live2d-sdk':
specifier: ^0.1.6
version: 0.1.6(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
'@proj-airi/vite-plugin-warpdrive':
specifier: workspace:*
version: link:../../packages/vite-plugin-warpdrive
'@shikijs/markdown-it':
specifier: ^3.15.0
version: 3.15.0
@@ -969,13 +972,13 @@ importers:
version: 1.2.4(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rollup@2.79.2)
unplugin-vue-macros:
specifier: ^2.14.5
version: 2.14.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))
version: 2.14.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))
unplugin-vue-router:
specifier: ^0.17.0
version: 0.17.0(@vue/compiler-sfc@3.5.24)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))
unplugin-yaml:
specifier: ^3.0.7
version: 3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)
version: 3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)
vite:
specifier: catalog:rolldown-vite
version: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
@@ -1053,7 +1056,7 @@ importers:
version: 11.1.12(vue@3.5.24(typescript@5.9.3))
vue-sonner:
specifier: ^2.0.9
version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1))
version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1))
devDependencies:
'@iconify-json/lucide':
specifier: ^1.2.73
@@ -1132,7 +1135,7 @@ importers:
version: 0.1.3
unplugin-yaml:
specifier: ^3.0.7
version: 3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
version: 3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
vitepress:
specifier: ^2.0.0-alpha.13
version: 2.0.0-alpha.13(@types/node@24.10.1)(change-case@5.4.4)(fuse.js@7.1.0)(jiti@2.6.1)(jwt-decode@4.0.0)(less@4.4.2)(lightningcss@1.30.2)(nprogress@0.2.0)(oxc-minify@0.80.0)(postcss@8.5.6)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
@@ -1588,7 +1591,7 @@ importers:
version: 4.6.3(vue@3.5.24(typescript@5.9.3))
vue-sonner:
specifier: ^2.0.9
version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1))
version: 2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1))
vue-tsc:
specifier: ^3.1.4
version: 3.1.4(typescript@5.9.3)
@@ -1665,6 +1668,9 @@ importers:
'@proj-airi/lobe-icons':
specifier: ^1.0.14
version: 1.0.14
'@proj-airi/vite-plugin-warpdrive':
specifier: workspace:*
version: link:../vite-plugin-warpdrive
'@types/audioworklet':
specifier: ^0.0.91
version: 0.0.91
@@ -1697,7 +1703,7 @@ importers:
version: 1.2.4(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(esbuild@0.25.9)(rollup@4.53.2)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
unplugin-yaml:
specifier: ^3.0.7
version: 3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
version: 3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
vite:
specifier: ^6.4.1
version: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
@@ -1827,7 +1833,7 @@ importers:
version: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-vue-devtools:
specifier: ^8.0.3
version: 8.0.3(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))
version: 8.0.3(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))
vue-router:
specifier: ^4.6.3
version: 4.6.3(vue@3.5.24(typescript@5.9.3))
@@ -1861,7 +1867,7 @@ importers:
version: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-vue-devtools:
specifier: ^8.0.3
version: 8.0.3(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))
version: 8.0.3(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))
vue-router:
specifier: ^4.6.3
version: 4.6.3(vue@3.5.24(typescript@5.9.3))
@@ -1887,6 +1893,22 @@ importers:
specifier: '>=66'
version: 66.5.6
packages/vite-plugin-warpdrive:
dependencies:
rolldown:
specifier: 1.0.0-beta.51
version: 1.0.0-beta.51
s3mini:
specifier: ^0.7.0
version: 0.7.0
vite:
specifier: ^5.0.0 || ^6.0.0
version: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
devDependencies:
'@moeru/std':
specifier: 'catalog:'
version: 0.1.0-beta.13
plugins/airi-plugin-claude-code:
dependencies:
'@guiiai/logg':
@@ -5505,6 +5527,9 @@ packages:
'@oxc-project/types@0.97.0':
resolution: {integrity: sha512-lxmZK4xFrdvU0yZiDwgVQTCvh2gHWBJCBk5ALsrtsBWhs0uDIi+FTOnXRQeQfs304imdvTdaakT/lqwQ8hkOXQ==}
'@oxc-project/types@0.98.0':
resolution: {integrity: sha512-Vzmd6FsqVuz5HQVcRC/hrx7Ujo3WEVeQP7C2UNP5uy1hUY4SQvMB+93jxkI1KRHz9a/6cni3glPOtvteN+zpsw==}
'@oxc-resolver/binding-darwin-arm64@4.2.0':
resolution: {integrity: sha512-DP+KY4nXRJvL5XayKda0P7NCjcP1zZ5x6RZznMM/bMPCBrjcYNG4XKV9v/EbkSq3Et24mEJFYOM55WmPxtqf0w==}
cpu: [arm64]
@@ -6219,8 +6244,10 @@ packages:
'@proj-airi/unocss-preset-chromatic@1.0.2':
resolution: {integrity: sha512-qotJTmQcP58ZECsdgzP9nQPWpkLA7PB2qcamkDtjNkLNt0hr9MZMQteTt7bLvSYCTcMVOmJznoOBlTc0P1vi6Q==}
'@proj-airi/unplugin-fetch@0.1.7':
resolution: {integrity: sha512-hov3cEfFSTcq6nsGH6TZiPAt0LD/hFQ1KRiiVJNZ+YJNR6k+E6kZiy7y4TFGJBvUnPXQUfttQcYIeZdGYKePXA==}
'@proj-airi/unplugin-fetch@0.2.0':
resolution: {integrity: sha512-Y6uSShPcNfjKezK4TAGIUD7z8eW8MAMfUoXrZgaBu+zz3DhoeBup9vLPrkNv812N7hsJH/huNGF8yGaiHGt+/Q==}
peerDependencies:
vite: '>= 7'
'@proj-airi/unplugin-live2d-sdk@0.1.6':
resolution: {integrity: sha512-0rTQVPErYWjx6T1dCrUZRoawd9YgQkosVVF97CLmtWm40CqRAr+N4Ro1FJg/M/mnhACftVpyXNUJR2CxbVQRKQ==}
@@ -6282,89 +6309,175 @@ packages:
cpu: [arm64]
os: [android]
'@rolldown/binding-android-arm64@1.0.0-beta.51':
resolution: {integrity: sha512-Ctn8FUXKWWQI9pWC61P1yumS9WjQtelNS9riHwV7oCkknPGaAry4o7eFx2KgoLMnI2BgFJYpW7Im8/zX3BuONg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
'@rolldown/binding-darwin-arm64@1.0.0-beta.50':
resolution: {integrity: sha512-+JRqKJhoFlt5r9q+DecAGPLZ5PxeLva+wCMtAuoFMWPoZzgcYrr599KQ+Ix0jwll4B4HGP43avu9My8KtSOR+w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
'@rolldown/binding-darwin-arm64@1.0.0-beta.51':
resolution: {integrity: sha512-EL1aRW2Oq15ShUEkBPsDtLMO8GTqfb/ktM/dFaVzXKQiEE96Ss6nexMgfgQrg8dGnNpndFyffVDb5IdSibsu1g==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
'@rolldown/binding-darwin-x64@1.0.0-beta.50':
resolution: {integrity: sha512-fFXDjXnuX7/gQZQm/1FoivVtRcyAzdjSik7Eo+9iwPQ9EgtA5/nB2+jmbzaKtMGG3q+BnZbdKHCtOacmNrkIDA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
'@rolldown/binding-darwin-x64@1.0.0-beta.51':
resolution: {integrity: sha512-uGtYKlFen9pMIPvkHPWZVDtmYhMQi5g5Ddsndg1gf3atScKYKYgs5aDP4DhHeTwGXQglhfBG7lEaOIZ4UAIWww==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
'@rolldown/binding-freebsd-x64@1.0.0-beta.50':
resolution: {integrity: sha512-F1b6vARy49tjmT/hbloplzgJS7GIvwWZqt+tAHEstCh0JIh9sa8FAMVqEmYxDviqKBaAI8iVvUREm/Kh/PD26Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
'@rolldown/binding-freebsd-x64@1.0.0-beta.51':
resolution: {integrity: sha512-JRoVTQtHYbZj1P07JLiuTuXjiBtIa7ag7/qgKA6CIIXnAcdl4LrOf7nfDuHPJcuRKaP5dzecMgY99itvWfmUFQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.50':
resolution: {integrity: sha512-U6cR76N8T8M6lHj7EZrQ3xunLPxSvYYxA8vJsBKZiFZkT8YV4kjgCO3KwMJL0NOjQCPGKyiXO07U+KmJzdPGRw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51':
resolution: {integrity: sha512-BKATVnpPZ0TYBW9XfDwyd4kPGgvf964HiotIwUgpMrFOFYWqpZ+9ONNzMV4UFAYC7Hb5C2qgYQk/qj2OnAd4RQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.50':
resolution: {integrity: sha512-ONgyjofCrrE3bnh5GZb8EINSFyR/hmwTzZ7oVuyUB170lboza1VMCnb8jgE6MsyyRgHYmN8Lb59i3NKGrxrYjw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51':
resolution: {integrity: sha512-xLd7da5jkfbVsBCm1buIRdWtuXY8+hU3+6ESXY/Tk5X5DPHaifrUblhYDgmA34dQt6WyNC2kfXGgrduPEvDI6Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.50':
resolution: {integrity: sha512-L0zRdH2oDPkmB+wvuTl+dJbXCsx62SkqcEqdM+79LOcB+PxbAxxjzHU14BuZIQdXcAVDzfpMfaHWzZuwhhBTcw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.51':
resolution: {integrity: sha512-EQFXTgHxxTzv3t5EmjUP/DfxzFYx9sMndfLsYaAY4DWF6KsK1fXGYsiupif6qPTViPC9eVmRm78q0pZU/kuIPg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.50':
resolution: {integrity: sha512-gyoI8o/TGpQd3OzkJnh1M2kxy1Bisg8qJ5Gci0sXm9yLFzEXIFdtc4EAzepxGvrT2ri99ar5rdsmNG0zP0SbIg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.51':
resolution: {integrity: sha512-p5P6Xpa68w3yFaAdSzIZJbj+AfuDnMDqNSeglBXM7UlJT14Q4zwK+rV+8Mhp9MiUb4XFISZtbI/seBprhkQbiQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-musl@1.0.0-beta.50':
resolution: {integrity: sha512-zti8A7M+xFDpKlghpcCAzyOi+e5nfUl3QhU023ce5NCgUxRG5zGP2GR9LTydQ1rnIPwZUVBWd4o7NjZDaQxaXA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-linux-x64-musl@1.0.0-beta.51':
resolution: {integrity: sha512-sNVVyLa8HB8wkFipdfz1s6i0YWinwpbMWk5hO5S+XAYH2UH67YzUT13gs6wZTKg2x/3gtgXzYnHyF5wMIqoDAw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@rolldown/binding-openharmony-arm64@1.0.0-beta.50':
resolution: {integrity: sha512-eZUssog7qljrrRU9Mi0eqYEPm3Ch0UwB+qlWPMKSUXHNqhm3TvDZarJQdTevGEfu3EHAXJvBIe0YFYr0TPVaMA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
'@rolldown/binding-openharmony-arm64@1.0.0-beta.51':
resolution: {integrity: sha512-e/JMTz9Q8+T3g/deEi8DK44sFWZWGKr9AOCW5e8C8SCVWzAXqYXAG7FXBWBNzWEZK0Rcwo9TQHTQ9Q0gXgdCaA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
'@rolldown/binding-wasm32-wasi@1.0.0-beta.50':
resolution: {integrity: sha512-nmCN0nIdeUnmgeDXiQ+2HU6FT162o+rxnF7WMkBm4M5Ds8qTU7Dzv2Wrf22bo4ftnlrb2hKK6FSwAJSAe2FWLg==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
'@rolldown/binding-wasm32-wasi@1.0.0-beta.51':
resolution: {integrity: sha512-We3LWqSu6J9s5Y0MK+N7fUiiu37aBGPG3Pc347EoaROuAwkCS2u9xJ5dpIyLW4B49CIbS3KaPmn4kTgPb3EyPw==}
engines: {node: '>=14.0.0'}
cpu: [wasm32]
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.50':
resolution: {integrity: sha512-7kcNLi7Ua59JTTLvbe1dYb028QEPaJPJQHqkmSZ5q3tJueUeb6yjRtx8mw4uIqgWZcnQHAR3PrLN4XRJxvgIkA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51':
resolution: {integrity: sha512-fj56buHRuMM+r/cb6ZYfNjNvO/0xeFybI6cTkTROJatdP4fvmQ1NS8D/Lm10FCSDEOkqIz8hK3TGpbAThbPHsA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.50':
resolution: {integrity: sha512-lL70VTNvSCdSZkDPPVMwWn/M2yQiYvSoXw9hTLgdIWdUfC3g72UaruezusR6ceRuwHCY1Ayu2LtKqXkBO5LIwg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51':
resolution: {integrity: sha512-fkqEqaeEx8AySXiDm54b/RdINb3C0VovzJA3osMhZsbn6FoD73H0AOIiaVAtGr6x63hefruVKTX8irAm4Jkt2w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.50':
resolution: {integrity: sha512-4qU4x5DXWB4JPjyTne/wBNPqkbQU8J45bl21geERBKtEittleonioACBL1R0PsBu0Aq21SwMK5a9zdBkWSlQtQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.51':
resolution: {integrity: sha512-CWuLG/HMtrVcjKGa0C4GnuxONrku89g0+CsH8nT0SNhOtREXuzwgjIXNJImpE/A/DMf9JF+1Xkrq/YRr+F/rCg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
'@rolldown/pluginutils@1.0.0-beta.29':
resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==}
'@rolldown/pluginutils@1.0.0-beta.50':
resolution: {integrity: sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==}
'@rolldown/pluginutils@1.0.0-beta.51':
resolution: {integrity: sha512-51/8cNXMrqWqX3o8DZidhwz1uYq0BhHDDSfVygAND1Skx5s1TDw3APSSxCMcFFedwgqGcx34gRouwY+m404BBQ==}
'@rollup/plugin-alias@5.1.1':
resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==}
engines: {node: '>=14.0.0'}
@@ -13975,6 +14088,11 @@ packages:
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
rolldown@1.0.0-beta.51:
resolution: {integrity: sha512-ZRLgPlS91l4JztLYEZnmMcd3Umcla1hkXJgiEiR4HloRJBBoeaX8qogTu5Jfu36rRMVLndzqYv0h+M5gJAkUfg==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
rollup-plugin-visualizer@5.11.0:
resolution: {integrity: sha512-exM0Ms2SN3AgTzMeW7y46neZQcyLY7eKwWAop1ZoRTCZwyrIRdMMJ6JjToAJbML77X/9N8ZEpmXG4Z/Clb9k8g==}
engines: {node: '>=14'}
@@ -14031,6 +14149,10 @@ packages:
rxjs@7.8.1:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
s3mini@0.7.0:
resolution: {integrity: sha512-f0oNjWm1gMkv0iF/ad11x69n3S/F3sdFlSRTy/AnQKrhayoVGBYQ30uSP7X/yIyhptqIvT38CaEgKUqZGxNAig==}
engines: {node: '>=20'}
sade@1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
@@ -19466,7 +19588,7 @@ snapshots:
- magicast
optional: true
'@nuxt/vite-builder@4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)':
'@nuxt/vite-builder@4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)':
dependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@rollup/plugin-replace': 6.0.2(rollup@2.79.2)
@@ -19489,7 +19611,7 @@ snapshots:
pathe: 2.0.3
pkg-types: 2.3.0
postcss: 8.5.6
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.50)(rollup@2.79.2)
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.51)(rollup@2.79.2)
std-env: 3.10.0
ufo: 1.6.1
unenv: 2.0.0-rc.19
@@ -19524,7 +19646,7 @@ snapshots:
- yaml
optional: true
'@nuxt/vite-builder@4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)':
'@nuxt/vite-builder@4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)':
dependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@rollup/plugin-replace': 6.0.2(rollup@4.53.2)
@@ -19547,7 +19669,7 @@ snapshots:
pathe: 2.0.3
pkg-types: 2.3.0
postcss: 8.5.6
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.50)(rollup@4.53.2)
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.51)(rollup@4.53.2)
std-env: 3.10.0
ufo: 1.6.1
unenv: 2.0.0-rc.19
@@ -20368,6 +20490,8 @@ snapshots:
'@oxc-project/types@0.97.0': {}
'@oxc-project/types@0.98.0': {}
'@oxc-resolver/binding-darwin-arm64@4.2.0':
optional: true
@@ -20963,22 +21087,10 @@ snapshots:
'@proj-airi/unocss-preset-chromatic@1.0.2': {}
'@proj-airi/unplugin-fetch@0.1.7(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)':
'@proj-airi/unplugin-fetch@0.2.0(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))':
dependencies:
ofetch: 1.5.1
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
transitivePeerDependencies:
- '@types/node'
- jiti
- less
- lightningcss
- sass
- sass-embedded
- stylus
- sugarss
- terser
- tsx
- yaml
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
'@proj-airi/unplugin-live2d-sdk@0.1.6(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)':
dependencies:
@@ -21053,51 +21165,97 @@ snapshots:
'@rolldown/binding-android-arm64@1.0.0-beta.50':
optional: true
'@rolldown/binding-android-arm64@1.0.0-beta.51':
optional: true
'@rolldown/binding-darwin-arm64@1.0.0-beta.50':
optional: true
'@rolldown/binding-darwin-arm64@1.0.0-beta.51':
optional: true
'@rolldown/binding-darwin-x64@1.0.0-beta.50':
optional: true
'@rolldown/binding-darwin-x64@1.0.0-beta.51':
optional: true
'@rolldown/binding-freebsd-x64@1.0.0-beta.50':
optional: true
'@rolldown/binding-freebsd-x64@1.0.0-beta.51':
optional: true
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.50':
optional: true
'@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.51':
optional: true
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.50':
optional: true
'@rolldown/binding-linux-arm64-gnu@1.0.0-beta.51':
optional: true
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.50':
optional: true
'@rolldown/binding-linux-arm64-musl@1.0.0-beta.51':
optional: true
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.50':
optional: true
'@rolldown/binding-linux-x64-gnu@1.0.0-beta.51':
optional: true
'@rolldown/binding-linux-x64-musl@1.0.0-beta.50':
optional: true
'@rolldown/binding-linux-x64-musl@1.0.0-beta.51':
optional: true
'@rolldown/binding-openharmony-arm64@1.0.0-beta.50':
optional: true
'@rolldown/binding-openharmony-arm64@1.0.0-beta.51':
optional: true
'@rolldown/binding-wasm32-wasi@1.0.0-beta.50':
dependencies:
'@napi-rs/wasm-runtime': 1.0.7
optional: true
'@rolldown/binding-wasm32-wasi@1.0.0-beta.51':
dependencies:
'@napi-rs/wasm-runtime': 1.0.7
optional: true
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.50':
optional: true
'@rolldown/binding-win32-arm64-msvc@1.0.0-beta.51':
optional: true
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.50':
optional: true
'@rolldown/binding-win32-ia32-msvc@1.0.0-beta.51':
optional: true
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.50':
optional: true
'@rolldown/binding-win32-x64-msvc@1.0.0-beta.51':
optional: true
'@rolldown/pluginutils@1.0.0-beta.29': {}
'@rolldown/pluginutils@1.0.0-beta.50': {}
'@rolldown/pluginutils@1.0.0-beta.51': {}
'@rollup/plugin-alias@5.1.1(rollup@4.53.2)':
optionalDependencies:
rollup: 4.53.2
@@ -22355,7 +22513,7 @@ snapshots:
'@babel/core': 7.28.3
'@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.3)
'@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.3)
'@rolldown/pluginutils': 1.0.0-beta.50
'@rolldown/pluginutils': 1.0.0-beta.51
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.3)
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vue: 3.5.24(typescript@5.9.3)
@@ -28931,7 +29089,7 @@ snapshots:
next-tick@1.1.0: {}
nitropack@2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.50)(xml2js@0.6.2):
nitropack@2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.51)(xml2js@0.6.2):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.0
'@netlify/functions': 3.1.10(encoding@0.1.13)(rollup@4.53.2)
@@ -28985,7 +29143,7 @@ snapshots:
pretty-bytes: 6.1.1
radix3: 1.1.2
rollup: 4.53.2
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.50)(rollup@4.53.2)
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.51)(rollup@4.53.2)
scule: 1.3.0
semver: 7.7.3
serve-placeholder: 2.0.2
@@ -29204,7 +29362,7 @@ snapshots:
dependencies:
boolbase: 1.0.0
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1):
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1):
dependencies:
'@nuxt/cli': 3.28.0(magicast@0.3.5)
'@nuxt/devalue': 2.0.2
@@ -29212,7 +29370,7 @@ snapshots:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
'@nuxt/telemetry': 2.6.6(magicast@0.3.5)
'@nuxt/vite-builder': 4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)
'@nuxt/vite-builder': 4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)
'@unhead/vue': 2.0.14(vue@3.5.24(typescript@5.9.3))
'@vue/shared': 3.5.24
c12: 3.3.0(magicast@0.3.5)
@@ -29239,7 +29397,7 @@ snapshots:
mlly: 1.8.0
mocked-exports: 0.1.1
nanotar: 0.2.0
nitropack: 2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.50)(xml2js@0.6.2)
nitropack: 2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.51)(xml2js@0.6.2)
nypm: 0.6.1
ofetch: 1.5.1
ohash: 2.0.11
@@ -29329,7 +29487,7 @@ snapshots:
- yaml
optional: true
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1):
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1):
dependencies:
'@nuxt/cli': 3.28.0(magicast@0.3.5)
'@nuxt/devalue': 2.0.2
@@ -29337,7 +29495,7 @@ snapshots:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
'@nuxt/telemetry': 2.6.6(magicast@0.3.5)
'@nuxt/vite-builder': 4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)
'@nuxt/vite-builder': 4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)
'@unhead/vue': 2.0.14(vue@3.5.24(typescript@5.9.3))
'@vue/shared': 3.5.24
c12: 3.3.0(magicast@0.3.5)
@@ -29364,7 +29522,7 @@ snapshots:
mlly: 1.8.0
mocked-exports: 0.1.1
nanotar: 0.2.0
nitropack: 2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.50)(xml2js@0.6.2)
nitropack: 2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.51)(xml2js@0.6.2)
nypm: 0.6.1
ofetch: 1.5.1
ohash: 2.0.11
@@ -29454,7 +29612,7 @@ snapshots:
- yaml
optional: true
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1):
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1):
dependencies:
'@nuxt/cli': 3.28.0(magicast@0.3.5)
'@nuxt/devalue': 2.0.2
@@ -29462,7 +29620,7 @@ snapshots:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
'@nuxt/telemetry': 2.6.6(magicast@0.3.5)
'@nuxt/vite-builder': 4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)
'@nuxt/vite-builder': 4.0.3(@types/node@24.10.1)(eslint@9.39.1(jiti@2.6.1))(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))(yaml@2.8.1)
'@unhead/vue': 2.0.14(vue@3.5.24(typescript@5.9.3))
'@vue/shared': 3.5.24
c12: 3.3.0(magicast@0.3.5)
@@ -29489,7 +29647,7 @@ snapshots:
mlly: 1.8.0
mocked-exports: 0.1.1
nanotar: 0.2.0
nitropack: 2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.50)(xml2js@0.6.2)
nitropack: 2.12.4(@netlify/blobs@9.1.2)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(rolldown@1.0.0-beta.51)(xml2js@0.6.2)
nypm: 0.6.1
ofetch: 1.5.1
ohash: 2.0.11
@@ -31413,6 +31571,26 @@ snapshots:
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.50
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.50
rolldown@1.0.0-beta.51:
dependencies:
'@oxc-project/types': 0.98.0
'@rolldown/pluginutils': 1.0.0-beta.51
optionalDependencies:
'@rolldown/binding-android-arm64': 1.0.0-beta.51
'@rolldown/binding-darwin-arm64': 1.0.0-beta.51
'@rolldown/binding-darwin-x64': 1.0.0-beta.51
'@rolldown/binding-freebsd-x64': 1.0.0-beta.51
'@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.51
'@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.51
'@rolldown/binding-linux-arm64-musl': 1.0.0-beta.51
'@rolldown/binding-linux-x64-gnu': 1.0.0-beta.51
'@rolldown/binding-linux-x64-musl': 1.0.0-beta.51
'@rolldown/binding-openharmony-arm64': 1.0.0-beta.51
'@rolldown/binding-wasm32-wasi': 1.0.0-beta.51
'@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.51
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.51
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.51
rollup-plugin-visualizer@5.11.0(rollup@2.79.2):
dependencies:
open: 8.4.2
@@ -31431,25 +31609,25 @@ snapshots:
optionalDependencies:
rollup: 4.53.2
rollup-plugin-visualizer@6.0.3(rolldown@1.0.0-beta.50)(rollup@2.79.2):
rollup-plugin-visualizer@6.0.3(rolldown@1.0.0-beta.51)(rollup@2.79.2):
dependencies:
open: 8.4.2
picomatch: 4.0.3
source-map: 0.7.4
yargs: 17.7.2
optionalDependencies:
rolldown: 1.0.0-beta.50
rolldown: 1.0.0-beta.51
rollup: 2.79.2
optional: true
rollup-plugin-visualizer@6.0.3(rolldown@1.0.0-beta.50)(rollup@4.53.2):
rollup-plugin-visualizer@6.0.3(rolldown@1.0.0-beta.51)(rollup@4.53.2):
dependencies:
open: 8.4.2
picomatch: 4.0.3
source-map: 0.7.4
yargs: 17.7.2
optionalDependencies:
rolldown: 1.0.0-beta.50
rolldown: 1.0.0-beta.51
rollup: 4.53.2
optional: true
@@ -31510,6 +31688,8 @@ snapshots:
tslib: 2.8.1
optional: true
s3mini@0.7.0: {}
sade@1.8.1:
dependencies:
mri: 1.2.0
@@ -32841,14 +33021,6 @@ snapshots:
unpipe@1.0.0: {}
unplugin-combine@1.2.1(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(unplugin@1.16.1):
optionalDependencies:
esbuild: 0.25.9
rolldown: 1.0.0-beta.50
rollup: 2.79.2
unplugin: 1.16.1
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-combine@1.2.1(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@4.53.2)(unplugin@1.16.1):
optionalDependencies:
esbuild: 0.25.9
@@ -32857,6 +33029,14 @@ snapshots:
unplugin: 1.16.1
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-combine@1.2.1(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(unplugin@1.16.1):
optionalDependencies:
esbuild: 0.25.9
rolldown: 1.0.0-beta.51
rollup: 2.79.2
unplugin: 1.16.1
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-info@1.2.4(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rollup@2.79.2):
dependencies:
ci-info: 4.3.1
@@ -32940,52 +33120,6 @@ snapshots:
transitivePeerDependencies:
- vue
unplugin-vue-macros@2.14.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vue-macros/better-define': 1.11.4(vue@3.5.24(typescript@5.9.3))
'@vue-macros/boolean-prop': 0.5.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/chain-call': 0.4.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/common': 1.16.1(vue@3.5.24(typescript@5.9.3))
'@vue-macros/config': 0.6.1(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-emit': 0.5.4(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-models': 1.3.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-prop': 0.6.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-props': 4.0.6(@vue-macros/reactivity-transform@1.1.6(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-props-refs': 1.3.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-render': 1.6.6(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-slots': 1.2.6(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-stylex': 0.2.3(vue@3.5.24(typescript@5.9.3))
'@vue-macros/devtools': 0.4.1(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.3)
'@vue-macros/export-expose': 0.3.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/export-props': 0.6.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/export-render': 0.3.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/hoist-static': 1.7.0(vue@3.5.24(typescript@5.9.3))
'@vue-macros/jsx-directive': 0.10.6(typescript@5.9.3)
'@vue-macros/named-template': 0.5.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/reactivity-transform': 1.1.6(vue@3.5.24(typescript@5.9.3))
'@vue-macros/script-lang': 0.2.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/setup-block': 0.4.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/setup-component': 0.18.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/setup-sfc': 0.18.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/short-bind': 1.1.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/short-emits': 1.6.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/short-vmodel': 1.5.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/volar': 0.30.15(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))
unplugin: 1.16.1
unplugin-combine: 1.2.1(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(unplugin@1.16.1)
unplugin-vue-define-options: 1.5.5(vue@3.5.24(typescript@5.9.3))
vue: 3.5.24(typescript@5.9.3)
transitivePeerDependencies:
- '@rspack/core'
- '@vueuse/core'
- esbuild
- rolldown
- rollup
- typescript
- vite
- vue-tsc
- webpack
unplugin-vue-macros@2.14.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@4.53.2)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vue-macros/better-define': 1.11.4(vue@3.5.24(typescript@5.9.3))
@@ -33032,6 +33166,52 @@ snapshots:
- vue-tsc
- webpack
unplugin-vue-macros@2.14.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vue-macros/better-define': 1.11.4(vue@3.5.24(typescript@5.9.3))
'@vue-macros/boolean-prop': 0.5.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/chain-call': 0.4.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/common': 1.16.1(vue@3.5.24(typescript@5.9.3))
'@vue-macros/config': 0.6.1(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-emit': 0.5.4(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-models': 1.3.5(@vueuse/core@14.0.0(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-prop': 0.6.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-props': 4.0.6(@vue-macros/reactivity-transform@1.1.6(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-props-refs': 1.3.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-render': 1.6.6(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-slots': 1.2.6(vue@3.5.24(typescript@5.9.3))
'@vue-macros/define-stylex': 0.2.3(vue@3.5.24(typescript@5.9.3))
'@vue-macros/devtools': 0.4.1(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.3)
'@vue-macros/export-expose': 0.3.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/export-props': 0.6.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/export-render': 0.3.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/hoist-static': 1.7.0(vue@3.5.24(typescript@5.9.3))
'@vue-macros/jsx-directive': 0.10.6(typescript@5.9.3)
'@vue-macros/named-template': 0.5.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/reactivity-transform': 1.1.6(vue@3.5.24(typescript@5.9.3))
'@vue-macros/script-lang': 0.2.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/setup-block': 0.4.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/setup-component': 0.18.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/setup-sfc': 0.18.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/short-bind': 1.1.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/short-emits': 1.6.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/short-vmodel': 1.5.5(vue@3.5.24(typescript@5.9.3))
'@vue-macros/volar': 0.30.15(typescript@5.9.3)(vue-tsc@3.1.4(typescript@5.9.3))(vue@3.5.24(typescript@5.9.3))
unplugin: 1.16.1
unplugin-combine: 1.2.1(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(unplugin@1.16.1)
unplugin-vue-define-options: 1.5.5(vue@3.5.24(typescript@5.9.3))
vue: 3.5.24(typescript@5.9.3)
transitivePeerDependencies:
- '@rspack/core'
- '@vueuse/core'
- esbuild
- rolldown
- rollup
- typescript
- vite
- vue-tsc
- webpack
unplugin-vue-router@0.15.0(@vue/compiler-sfc@3.5.24)(typescript@5.9.3)(vue-router@4.6.3(vue@3.5.24(typescript@5.9.3)))(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vue-macros/common': 3.0.0-beta.16(vue@3.5.24(typescript@5.9.3))
@@ -33107,7 +33287,7 @@ snapshots:
- tsx
- yaml
unplugin-yaml@3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2):
unplugin-yaml@3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@2.79.2)
unplugin: 2.3.10
@@ -33117,7 +33297,7 @@ snapshots:
'@nuxt/schema': 4.0.3
astro: 5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
esbuild: 0.25.9
rolldown: 1.0.0-beta.50
rolldown: 1.0.0-beta.51
rollup: 2.79.2
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
@@ -33135,20 +33315,6 @@ snapshots:
rollup: 4.53.2
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-yaml@3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2)
unplugin: 2.3.10
yaml: 2.8.1
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
astro: 5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
esbuild: 0.25.9
rolldown: 1.0.0-beta.50
rollup: 4.53.2
vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-yaml@3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2)
@@ -33163,6 +33329,34 @@ snapshots:
rollup: 4.53.2
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-yaml@3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2)
unplugin: 2.3.10
yaml: 2.8.1
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
astro: 5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
esbuild: 0.25.9
rolldown: 1.0.0-beta.51
rollup: 4.53.2
vite: 6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-yaml@3.0.7(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.53.2)
unplugin: 2.3.10
yaml: 2.8.1
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
astro: 5.10.1(@netlify/blobs@9.1.2)(@types/node@24.10.1)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(yaml@2.8.1)
esbuild: 0.25.9
rolldown: 1.0.0-beta.51
rollup: 4.53.2
vite: 7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin@1.16.1:
dependencies:
acorn: 8.15.0
@@ -33481,7 +33675,6 @@ snapshots:
'@nuxt/kit': 3.18.1(magicast@0.3.5)
transitivePeerDependencies:
- supports-color
optional: true
vite-plugin-inspect@11.3.3(@nuxt/kit@3.18.1(magicast@0.3.5))(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
@@ -33560,6 +33753,20 @@ snapshots:
- supports-color
- vue
vite-plugin-vue-devtools@8.0.3(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3)):
dependencies:
'@vue/devtools-core': 8.0.3(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.24(typescript@5.9.3))
'@vue/devtools-kit': 8.0.3
'@vue/devtools-shared': 8.0.3
sirv: 3.0.2
vite: rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-inspect: 11.3.3(@nuxt/kit@3.18.1(magicast@0.3.5))(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
vite-plugin-vue-inspector: 5.3.2(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
transitivePeerDependencies:
- '@nuxt/kit'
- supports-color
- vue
vite-plugin-vue-inspector@5.3.2(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@babel/core': 7.28.3
@@ -33803,23 +34010,23 @@ snapshots:
'@vue/devtools-api': 6.6.4
vue: 3.5.24(typescript@5.9.3)
vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)):
vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)):
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.50)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)
nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.2.5(@types/node@24.10.1)(esbuild@0.25.9)(jiti@2.6.1)(less@4.4.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.51)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)
vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)):
vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)):
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)
nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@6.4.1(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)
vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)):
vue-sonner@2.0.9(@nuxt/kit@4.0.3(magicast@0.3.5))(@nuxt/schema@4.0.3)(nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)):
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.50)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)
nuxt: 4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.10.1)(@vue/compiler-sfc@3.5.24)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(@types/pg@8.15.6)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(eslint@9.39.1(jiti@2.6.1))(ioredis@5.7.0)(less@4.4.2)(lightningcss@1.30.2)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.51)(rollup@4.53.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.3)(utf-8-validate@5.0.10)(vite@7.2.2(@types/node@24.10.1)(jiti@2.6.1)(less@4.4.2)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.1.4(typescript@5.9.3))(xml2js@0.6.2)(yaml@2.8.1)
vue-tsc@3.1.4(typescript@5.9.3):
dependencies: