feat(stage-web,stage-ui): beat sync (#621)

This commit is contained in:
Makito
2025-10-01 00:01:18 +08:00
committed by GitHub
parent 13f32255bd
commit 09d084bec2
9 changed files with 558 additions and 334 deletions
+2
View File
@@ -22,6 +22,7 @@
"@huggingface/transformers": "^3.7.3",
"@llama-flow/core": "^0.4.4",
"@moeru/std": "catalog:",
"@nekopaw/tempora": "0.3.1-alpha.1",
"@proj-airi/audio": "workspace:^",
"@proj-airi/ccc": "workspace:^",
"@proj-airi/drizzle-duckdb-wasm": "catalog:",
@@ -53,6 +54,7 @@
"@xsai/shared-chat": "catalog:",
"@xsai/stream-text": "catalog:",
"@xsai/utils-chat": "catalog:",
"animejs": "^4.1.3",
"colorjs.io": "^0.5.2",
"culori": "^4.0.2",
"date-fns": "^4.1.0",
@@ -0,0 +1,257 @@
<script setup lang="ts">
import type { AnalyserBeatEvent, AnalyserWorkletParameters } from '@nekopaw/tempora'
import { DEFAULT_ANALYSER_WORKLET_PARAMS } from '@nekopaw/tempora'
import { Button } from '@proj-airi/stage-ui/components'
import { useBeatSyncStore } from '@proj-airi/stage-ui/stores/beat-sync'
import { FieldCheckbox, FieldRange } from '@proj-airi/ui'
import { createTimeline } from 'animejs'
import { nanoid } from 'nanoid'
import { onMounted, onUnmounted, ref, watchEffect } from 'vue'
import { useI18n } from 'vue-i18n'
const beatSyncStore = useBeatSyncStore()
const { t } = useI18n()
const beatsHistory = ref<Array<{
id: string
energy: number
normalizedEnergy: number
}>>([])
const parameters = ref<AnalyserWorkletParameters>({ ...DEFAULT_ANALYSER_WORKLET_PARAMS })
watchEffect(() => {
beatSyncStore.updateParameters(parameters.value)
})
function normalizeEnergy(energy: number) {
const base = 2
const a = 0.5
return ((base ** energy - 1) / (base - 1)) ** a
}
onMounted(() => {
const onBeat = ({ energy }: AnalyserBeatEvent) => {
beatsHistory.value.unshift({
id: nanoid(),
energy,
normalizedEnergy: normalizeEnergy(energy),
})
}
beatSyncStore.on('beat', onBeat)
onUnmounted(() => {
beatSyncStore.off('beat', onBeat)
})
})
function onRippleEnter(el: Element, done: () => void) {
const beatId = (el as HTMLElement).dataset.beatId
createTimeline()
.set(el, {
opacity: 1,
scale: 0,
})
.add(el, {
opacity: 0,
scale: 1,
duration: 2000,
delay: 0,
ease: 'out(5)',
onComplete: () => {
if (!beatId)
return
const idx = beatsHistory.value.findIndex(b => b.id === beatId)
if (idx >= 0)
beatsHistory.value.splice(idx, 1)
done()
},
})
}
function resetDefaultParameters() {
parameters.value = { ...DEFAULT_ANALYSER_WORKLET_PARAMS }
}
</script>
<template>
<div flex="~ col md:row gap-6">
<div bg="neutral-100 dark:[rgba(0,0,0,0.3)]" rounded-xl p-4 flex="~ col gap-4" class="h-fit w-full md:w-[40%]">
<div flex="~ col gap-6">
<div flex="~ col gap-4">
<div>
<h2 class="text-lg text-neutral-500 md:text-2xl dark:text-neutral-500">
{{ t('settings.pages.modules.beat_sync.sections.audio_source.title') }}
</h2>
<div text="neutral-400 dark:neutral-400">
<span>{{ t('settings.pages.modules.beat_sync.sections.audio_source.description') }}</span>
</div>
</div>
<div max-w-full flex="~ row gap-4 wrap">
<template v-if="beatSyncStore.isActive">
<Button @click="beatSyncStore.stop">
{{ t('settings.pages.modules.beat_sync.sections.audio_source.actions.stop') }}
</Button>
</template>
<template v-else>
<Button @click="beatSyncStore.startFromScreenCapture">
{{ t('settings.pages.modules.beat_sync.sections.audio_source.actions.start_screen_capture') }}
</Button>
</template>
</div>
</div>
<div flex="~ col gap-4">
<div flex="~ row" items-center justify-between>
<div>
<h2 class="text-lg text-neutral-500 md:text-2xl dark:text-neutral-500">
{{ t('settings.pages.modules.beat_sync.sections.parameters.title') }}
</h2>
<div text="neutral-400 dark:neutral-400">
<span>{{ t('settings.pages.modules.beat_sync.sections.parameters.description') }}</span>
</div>
</div>
<button
title="Reset settings"
flex items-center justify-center rounded-full p-2
transition="all duration-250 ease-in-out"
text="neutral-500 dark:neutral-400"
bg="transparent dark:transparent hover:neutral-200 dark:hover:neutral-800 active:neutral-300 dark:active:neutral-700"
@click="resetDefaultParameters"
>
<div i-solar:refresh-bold-duotone text-xl />
</button>
</div>
<div max-w-full flex="~ col gap-4">
<FieldRange
v-model="parameters.sensitivity"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.sensitivity.label')"
:min="0"
:max="1"
:step="0.01"
:format-value="value => value.toFixed(1)"
/>
<FieldRange
v-model="parameters.minBeatInterval"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.min_beat_interval.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.min_beat_interval.description')"
:min="0.05"
:max="1"
:step="0.01"
:format-value="value => `${(60 / value).toFixed(1)} BPM / ${value.toFixed(2)} s`"
/>
<div>
<h3 class="text text-neutral-500 md:text-xl dark:text-neutral-500">
{{ t('settings.pages.modules.beat_sync.sections.parameters.advanced_parameters') }}
</h3>
</div>
<FieldRange
v-model="parameters.lowpassFilterFrequency"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.lowpass_filter_frequency.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.lowpass_filter_frequency.description')"
:min="20"
:max="600"
:step="10"
:format-value="value => `${value.toFixed(0)} Hz`"
/>
<FieldRange
v-model="parameters.highpassFilterFrequency"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.highpass_filter_frequency.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.highpass_filter_frequency.description')"
:min="150"
:max="2000"
:step="10"
:format-value="value => `${value.toFixed(0)} Hz`"
/>
<FieldRange
v-model="parameters.envelopeFilterFrequency"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.envelope_filter_frequency.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.envelope_filter_frequency.description')"
:min="20"
:max="200"
:step="10"
:format-value="value => `${value.toFixed(0)} Hz`"
/>
<FieldCheckbox
v-model="parameters.warmup"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.warmup.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.warmup.description')"
/>
<FieldCheckbox
v-model="parameters.adaptiveThreshold"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.adaptive_threshold.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.adaptive_threshold.description')"
/>
<FieldCheckbox
v-model="parameters.spectralFlux"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.spectral_flux.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.spectral_flux.description')"
/>
<FieldRange
v-model="parameters.bufferDuration"
:label="t('settings.pages.modules.beat_sync.sections.parameters.parameters.buffer_duration.label')"
:description="t('settings.pages.modules.beat_sync.sections.parameters.parameters.buffer_duration.description')"
:min="2"
:max="10"
:step="0.5"
:format-value="value => `${value.toFixed(1)} s`"
/>
</div>
</div>
</div>
</div>
<div flex="~ col gap-6" class="w-full md:w-[60%]">
<div w-full rounded-xl flex="~ col gap-4">
<h2 class="mb-4 text-lg text-neutral-500 md:text-2xl dark:text-neutral-400" w-full>
<div class="inline-flex items-center gap-4">
{{ t('settings.pages.modules.beat_sync.sections.beat_visualizer.title') }}
</div>
</h2>
<div flex="~ col gap-4 items-center">
<TransitionGroup
tag="div"
bg="neutral/10"
relative box-border aspect-square h-full max-h-400px max-w-400px w-full rounded-2xl
flex="~ row gap-2 wrap items-center"
:css="false"
@enter="onRippleEnter"
>
<div
v-for="beat in beatsHistory"
:key="beat.id"
:data-beat-id="beat.id"
absolute h-full w-full
rounded-full bg="primary/50"
/>
</TransitionGroup>
</div>
</div>
</div>
</div>
</template>
<route lang="yaml">
meta:
layout: settings
stageTransition:
name: slide
</route>
@@ -1,5 +1,6 @@
<script setup lang="ts">
import { IconStatusItem } from '@proj-airi/stage-ui/components'
import { useBeatSyncStore } from '@proj-airi/stage-ui/stores/beat-sync'
import { useConsciousnessStore } from '@proj-airi/stage-ui/stores/modules/consciousness'
import { useSpeechStore } from '@proj-airi/stage-ui/stores/modules/speech'
import { computed } from 'vue'
@@ -22,6 +23,8 @@ interface Module {
configured: boolean
}
const beatSyncStore = useBeatSyncStore()
// TODO: categorize modules, such as essential, messaging, gaming, etc.
const modulesList = computed<Module[]>(() => [
{
@@ -104,6 +107,14 @@ const modulesList = computed<Module[]>(() => [
to: '',
configured: false,
},
{
id: 'beat-sync',
name: t('settings.pages.modules.beat_sync.title'),
description: t('settings.pages.modules.beat_sync.description'),
icon: 'i-solar:music-notes-bold-duotone',
to: '/settings/modules/beat-sync',
configured: beatSyncStore.isActive,
},
])
const {
+3
View File
@@ -105,6 +105,7 @@ words:
- hfspaceup
- hfsup
- hfup
- highpass
- higress
- histoire
- hiyori
@@ -136,6 +137,7 @@ words:
- lobehub
- logg
- Lorebook
- lowpass
- lucide
- luoling
- Maekawa
@@ -243,6 +245,7 @@ words:
- tamagotchi
- tauri
- taze
- tempora
- togetherapi
- tolist
- tresjs
@@ -165,6 +165,49 @@ pages:
description: Configure 3D VRM models and settings
scene: Scene
modules:
beat_sync:
description: Vibe with beats from the audio source
title: Beat Sync
sections:
audio_source:
actions:
start_screen_capture: Start screen capture
stop: Stop
description: Select an audio source to detect beats from.
title: Audio source
beat_visualizer:
title: Beat visualizer
parameters:
advanced_parameters: Advanced Parameters
description: Tweak the beat detection parameters.
title: Parameters
parameters:
adaptive_threshold:
description: Whether to apply adaptive thresholds based on signal variance over time.
label: Adaptive threshold
buffer_duration:
description: Duration of the internal analysis buffer.
label: Buffer duration
envelope_filter_frequency:
description: Frequency for the envelope filter applied to smooth energy changes.
label: Envelope filter frequency
highpass_filter_frequency:
description: Frequency for the highpass filter applied to reduce low frequencies like sub-bass noises.
label: Highpass filter frequency
lowpass_filter_frequency:
description: Frequency for the lowpass filter applied to reduce high frequencies like vocals.
label: Lowpass filter frequency
min_beat_interval:
description: Maximum BPM or minimum interval between detected beats.
label: Max BPM / Min beat interval
sensitivity:
label: Sensitivity
spectral_flux:
description: Whether to enable spectral flux-based onset detection.
label: Spectral flux
warmup:
description: Whether to warm up before detecting beats for better accuracy.
label: Warmup
consciousness:
description: Personality, desired model, etc.
sections:
+1
View File
@@ -44,6 +44,7 @@
"@formkit/auto-animate": "^0.9.0",
"@huggingface/transformers": "^3.7.3",
"@lemonneko/crop-empty-pixels": "0.1.1",
"@nekopaw/tempora": "0.3.1-alpha.1",
"@pixi/app": "^6.5.10",
"@pixi/constants": "^6.5.10",
"@pixi/core": "^6.5.10",
@@ -11,6 +11,7 @@ import { computed, onMounted, onUnmounted, ref, shallowRef, toRef, watch } from
import { useLive2DIdleEyeFocus } from '../../../composables/live2d'
import { Emotion, EmotionNeutralMotionName } from '../../../constants/emotions'
import { useBeatSyncStore } from '../../../stores/beat-sync'
import { useLive2d } from '../../../stores/live2d'
import { useSettings } from '../../../stores/settings'
@@ -69,6 +70,13 @@ const modelSrcRef = toRef(() => props.modelSrc)
const modelLoading = ref(false)
// Beat Sync: Values are all in degrees
const beatSyncTargetY = ref<number>(0)
const beatSyncTargetZ = ref<number>(0)
const beatSyncVelocityY = ref<number>(0)
const beatSyncVelocityZ = ref<number>(0)
// End of Beat Sync
const offset = computed(() => parsePropsOffset())
const pixiApp = toRef(() => props.app)
@@ -220,12 +228,60 @@ async function loadModel() {
// This is hacky too
const hookedUpdate = motionManager.update as (model: CubismModel, now: number) => boolean
motionManager.update = function (model: CubismModel, now: number) {
const timeDelta = now - lastUpdateTime.value
// Beat Sync
{
// Semi-implicit Euler approach
const stiffness = 120 // Higher -> Snappier
const damping = 16 // Higher -> Less bounce
const mass = 1
let paramAngleY = coreModel.getParameterValueById('ParamAngleY') as number
let paramAngleZ = coreModel.getParameterValueById('ParamAngleZ') as number
// Y
{
const target = beatSyncTargetY.value
const pos = paramAngleY
const vel = beatSyncVelocityY.value
const accel = (stiffness * (target - pos) - damping * vel) / mass
beatSyncVelocityY.value = vel + accel * timeDelta
paramAngleY = pos + beatSyncVelocityY.value * timeDelta
// Snap
if (Math.abs(target - paramAngleY) < 0.01 && Math.abs(beatSyncVelocityY.value) < 0.01) {
paramAngleY = target
beatSyncVelocityY.value = 0
}
}
// Z
{
const target = beatSyncTargetZ.value
const pos = paramAngleZ
const vel = beatSyncVelocityZ.value
const accel = (stiffness * (target - pos) - damping * vel) / mass
beatSyncVelocityZ.value = vel + accel * timeDelta
paramAngleZ = pos + beatSyncVelocityZ.value * timeDelta
// Snap
if (Math.abs(target - paramAngleZ) < 0.01 && Math.abs(beatSyncVelocityZ.value) < 0.01) {
paramAngleZ = target
beatSyncVelocityZ.value = 0
}
}
coreModel.setParameterValueById('ParamAngleY', paramAngleY)
coreModel.setParameterValueById('ParamAngleZ', paramAngleZ)
}
lastUpdateTime.value = now
hookedUpdate?.call(this, model, now)
// Possibility 1: Only update eye focus when the model is idle
// Possibility 2: For models having no mo`ti`on groups, currentGroup will be undefined while groups can be { idle: ... }
// Possibility 2: For models having no motion groups, currentGroup will be undefined while groups can be { idle: ... }
if (!motionManager.state.currentGroup || motionManager.state.currentGroup === motionManager.groups.idle) {
idleEyeFocus.update(internalModel, now)
@@ -327,6 +383,21 @@ watch(focusAt, (value) => {
model.value.focus(value.x, value.y)
})
const beatSyncStore = useBeatSyncStore()
onMounted(() => {
const onBeat = () => {
beatSyncTargetY.value = Math.max(-5, Math.min(5, (beatSyncTargetY.value < 0 ? 10 : -10) * (0.5 + Math.random() * 0.3)))
beatSyncTargetZ.value = Math.max(-5, Math.min(5, (beatSyncTargetZ.value < 0 ? 10 : -10) * (0.5 + Math.random() * 0.3)))
}
beatSyncStore.on('beat', onBeat)
onUnmounted(() => {
beatSyncStore.off('beat', onBeat)
})
})
onMounted(async () => {
updateDropShadowFilter()
})
+138
View File
@@ -0,0 +1,138 @@
import type { Analyser, AnalyserListeners, AnalyserWorkletParameters } from '@nekopaw/tempora'
import analyserWorklet from '@nekopaw/tempora/worklet?url'
import { startAnalyser as startTemporaAnalyser } from '@nekopaw/tempora'
import { defineStore } from 'pinia'
import { readonly, ref, shallowRef } from 'vue'
export type BeatSyncEvent = 'beat'
export interface BeatSyncEventCallbacks {
beat: Required<AnalyserListeners>['onBeat']
}
export const useBeatSyncStore = defineStore('beat-sync', () => {
const context = shallowRef<AudioContext>()
const analyser = shallowRef<Analyser>()
const source = shallowRef<AudioNode>()
const isActive = ref(false)
let stopSource: (() => void) | undefined
const onBeatListeners: Array<Required<AnalyserListeners>['onBeat']> = []
const stop = () => {
if (!isActive.value)
return
isActive.value = false
stopSource?.()
stopSource = undefined
source.value?.disconnect()
source.value = undefined
analyser.value?.stop()
analyser.value = undefined
context.value?.close()
context.value = undefined
}
const start = async (createSource: (context: AudioContext) => Promise<AudioNode>) => {
stop()
context.value = new AudioContext()
analyser.value = await startTemporaAnalyser({
context: context.value,
worklet: analyserWorklet,
listeners: {
onBeat: (...args) => {
onBeatListeners.forEach(listener => listener(...args))
},
},
})
const node = await createSource(context.value)
node.connect(analyser.value.workletNode)
source.value = node
isActive.value = true
}
const updateParameters = (params: Partial<AnalyserWorkletParameters>) => {
analyser.value?.updateParameters(params)
}
const startFromScreenCapture = async () => start(async (context) => {
const stream = await navigator.mediaDevices.getDisplayMedia({
audio: {
echoCancellation: false,
noiseSuppression: false,
autoGainControl: false,
},
video: true,
})
if (stream.getAudioTracks().length === 0) {
throw new Error('No audio track available in the stream')
}
stream.getAudioTracks().forEach((track) => {
let stopCalled = false
track.addEventListener('ended', () => {
if (stopCalled)
return
stopCalled = true
stop()
})
})
const node = context.createMediaStreamSource(stream)
stopSource = () => {
stream.getTracks().forEach(track => track.stop())
}
return node
})
const on = <E extends BeatSyncEvent>(event: E, callback: BeatSyncEventCallbacks[E]) => {
switch (event) {
case 'beat':
onBeatListeners.push(callback)
break
default:
throw new Error(`Unknown event: ${event}`)
}
}
const off = <E extends BeatSyncEvent>(event: E, callback: BeatSyncEventCallbacks[E]) => {
switch (event) {
case 'beat': {
const index = onBeatListeners.indexOf(callback)
if (index !== -1)
onBeatListeners.splice(index, 1)
break
}
default:
throw new Error(`Unknown event: ${event}`)
}
}
return {
start,
updateParameters,
startFromScreenCapture,
stop,
on,
off,
isActive: readonly(isActive),
context: readonly(context),
analyser: readonly(analyser),
source: readonly(source),
}
})
+31 -333
View File
@@ -281,7 +281,7 @@ importers:
version: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-vue-devtools:
specifier: ^8.0.2
version: 8.0.2(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
version: 8.0.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
vite-plugin-vue-layouts:
specifier: ^0.11.0
version: 0.11.0(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
@@ -1068,6 +1068,9 @@ importers:
'@moeru/std':
specifier: 'catalog:'
version: 0.1.0-beta.7
'@nekopaw/tempora':
specifier: 0.3.1-alpha.1
version: 0.3.1-alpha.1
'@proj-airi/audio':
specifier: workspace:^
version: link:../../packages/audio
@@ -1161,6 +1164,9 @@ importers:
'@xsai/utils-chat':
specifier: 'catalog:'
version: 0.4.0-beta.4
animejs:
specifier: ^4.1.3
version: 4.1.4
colorjs.io:
specifier: ^0.5.2
version: 0.5.2
@@ -1259,7 +1265,7 @@ importers:
version: 4.5.1(vue@3.5.22(typescript@5.9.2))
vue-sonner:
specifier: ^2.0.8
version: 2.0.8(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(xml2js@0.6.2)(yaml@2.8.1)
version: 2.0.8(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(xml2js@0.6.2)(yaml@2.8.1)
workbox-window:
specifier: ^7.3.0
version: 7.3.0
@@ -1299,7 +1305,7 @@ importers:
version: 1.2.30
'@intlify/unplugin-vue-i18n':
specifier: ^11.0.1
version: 11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.36.0(jiti@2.5.1))(rollup@2.79.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
version: 11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.36.0(jiti@2.5.1))(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@proj-airi/lobe-icons':
specifier: ^1.0.11
version: 1.0.11
@@ -1353,22 +1359,22 @@ importers:
version: 4.4.1
unplugin-info:
specifier: ^1.2.4
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.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rollup@2.79.2)
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.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rollup@4.52.2)
unplugin-vue-macros:
specifier: ^2.14.5
version: 2.14.5(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))
version: 2.14.5(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))
unplugin-vue-router:
specifier: ^0.15.0
version: 0.15.0(@vue/compiler-sfc@3.5.22)(typescript@5.9.2)(vue-router@4.5.1(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
unplugin-yaml:
specifier: ^3.0.6
version: 3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)
version: 3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)
vite:
specifier: catalog:rolldown-vite
version: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-bundle-visualizer:
specifier: ^1.2.1
version: 1.2.1(rollup@2.79.2)
version: 1.2.1(rollup@4.52.2)
vite-plugin-pwa:
specifier: ^1.0.3
version: 1.0.3(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(workbox-build@7.3.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)
@@ -1513,7 +1519,7 @@ importers:
version: 0.1.3
unplugin-yaml:
specifier: ^3.0.6
version: 3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
version: 3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
vitepress:
specifier: ^2.0.0-alpha.12
version: 2.0.0-alpha.12(@types/node@24.5.2)(change-case@5.4.4)(fuse.js@7.1.0)(jiti@2.5.1)(jwt-decode@4.0.0)(less@4.4.1)(lightningcss@1.30.1)(nprogress@0.2.0)(postcss@8.5.6)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1)
@@ -1556,7 +1562,7 @@ importers:
devDependencies:
unplugin-yaml:
specifier: ^3.0.6
version: 3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
version: 3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
packages/memory-pgvector:
dependencies:
@@ -1627,6 +1633,9 @@ importers:
'@lemonneko/crop-empty-pixels':
specifier: 0.1.1
version: 0.1.1
'@nekopaw/tempora':
specifier: 0.3.1-alpha.1
version: 0.3.1-alpha.1
'@pixi/app':
specifier: ^6.5.10
version: 6.5.10(@pixi/core@6.5.10(@pixi/constants@6.5.10)(@pixi/extensions@6.5.10)(@pixi/math@6.5.10)(@pixi/runner@6.5.10)(@pixi/settings@6.5.10(@pixi/constants@6.5.10))(@pixi/ticker@6.5.10(@pixi/extensions@6.5.10)(@pixi/settings@6.5.10(@pixi/constants@6.5.10)))(@pixi/utils@6.5.10(@pixi/constants@6.5.10)(@pixi/settings@6.5.10(@pixi/constants@6.5.10))))(@pixi/display@6.5.10(@pixi/constants@6.5.10)(@pixi/math@6.5.10)(@pixi/settings@6.5.10(@pixi/constants@6.5.10))(@pixi/utils@6.5.10(@pixi/constants@6.5.10)(@pixi/settings@6.5.10(@pixi/constants@6.5.10))))(@pixi/math@6.5.10)(@pixi/utils@6.5.10(@pixi/constants@6.5.10)(@pixi/settings@6.5.10(@pixi/constants@6.5.10)))
@@ -2112,7 +2121,7 @@ importers:
version: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-vue-devtools:
specifier: ^8.0.2
version: 8.0.2(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
version: 8.0.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
vue-router:
specifier: ^4.5.1
version: 4.5.1(vue@3.5.22(typescript@5.9.2))
@@ -2146,7 +2155,7 @@ importers:
version: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-vue-devtools:
specifier: ^8.0.2
version: 8.0.2(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
version: 8.0.2(@nuxt/kit@4.0.3(magicast@0.3.5))(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
vue-router:
specifier: ^4.5.1
version: 4.5.1(vue@3.5.22(typescript@5.9.2))
@@ -4906,6 +4915,10 @@ packages:
'@napi-rs/wasm-runtime@1.0.5':
resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==}
'@nekopaw/tempora@0.3.1-alpha.1':
resolution: {integrity: sha512-PjckDovy+OFYgeCmyuVBcGnkePwIuMVEdtDAlj2c0rmppJtelwYyC/SV8CPhlcbUEjT5WlyL1Jx+f6XZ+gLx6A==}
engines: {node: '>=22.10.0'}
'@netlify/binary-info@1.0.0':
resolution: {integrity: sha512-4wMPu9iN3/HL97QblBsBay3E1etIciR84izI3U+4iALY+JHCrI+a2jO0qbAZ/nxKoegypYEaiiqWXylm+/zfrw==}
@@ -18548,30 +18561,6 @@ snapshots:
'@intlify/shared@11.1.12': {}
'@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.36.0(jiti@2.5.1))(rollup@2.79.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
'@intlify/bundle-utils': 11.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))
'@intlify/shared': 11.1.12
'@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@rollup/pluginutils': 5.3.0(rollup@2.79.2)
'@typescript-eslint/scope-manager': 8.44.1
'@typescript-eslint/typescript-estree': 8.44.1(typescript@5.9.2)
debug: 4.4.3
fast-glob: 3.3.3
pathe: 2.0.3
picocolors: 1.1.1
unplugin: 2.3.10
vue: 3.5.22(typescript@5.9.2)
optionalDependencies:
vue-i18n: 11.1.12(vue@3.5.22(typescript@5.9.2))
transitivePeerDependencies:
- '@vue/compiler-dom'
- eslint
- rollup
- supports-color
- typescript
'@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.36.0(jiti@2.5.1))(rollup@4.52.2)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.36.0(jiti@2.5.1))
@@ -18841,6 +18830,8 @@ snapshots:
'@tybys/wasm-util': 0.10.1
optional: true
'@nekopaw/tempora@0.3.1-alpha.1': {}
'@netlify/binary-info@1.0.0': {}
'@netlify/blobs@9.1.2':
@@ -19247,63 +19238,6 @@ snapshots:
transitivePeerDependencies:
- magicast
'@nuxt/vite-builder@4.0.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.5.1))(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.40)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))(yaml@2.8.1)':
dependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@rollup/plugin-replace': 6.0.2(rollup@2.79.2)
'@vitejs/plugin-vue': 6.0.1(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
'@vitejs/plugin-vue-jsx': 5.1.1(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
autoprefixer: 10.4.21(postcss@8.5.6)
consola: 3.4.2
cssnano: 7.1.1(postcss@8.5.6)
defu: 6.1.4
esbuild: 0.25.9
escape-string-regexp: 5.0.0
exsolve: 1.0.7
get-port-please: 3.2.0
h3: 1.15.4
jiti: 2.5.1
knitwork: 1.2.0
magic-string: 0.30.19
mlly: 1.8.0
mocked-exports: 0.1.1
pathe: 2.0.3
pkg-types: 2.3.0
postcss: 8.5.6
rollup-plugin-visualizer: 6.0.3(rolldown@1.0.0-beta.40)(rollup@2.79.2)
std-env: 3.9.0
ufo: 1.6.1
unenv: 2.0.0-rc.19
vite: 7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vite-plugin-checker: 0.10.3(eslint@9.36.0(jiti@2.5.1))(optionator@0.9.4)(typescript@5.9.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue-tsc@3.0.8(typescript@5.9.2))
vue: 3.5.22(typescript@5.9.2)
vue-bundle-renderer: 2.1.2
transitivePeerDependencies:
- '@biomejs/biome'
- '@types/node'
- eslint
- less
- lightningcss
- magicast
- meow
- optionator
- rolldown
- rollup
- sass
- sass-embedded
- stylelint
- stylus
- sugarss
- supports-color
- terser
- tsx
- typescript
- vls
- vti
- vue-tsc
- yaml
'@nuxt/vite-builder@4.0.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.5.1))(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))(yaml@2.8.1)':
dependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
@@ -20910,13 +20844,6 @@ snapshots:
magic-string: 0.25.9
rollup: 2.79.2
'@rollup/plugin-replace@6.0.2(rollup@2.79.2)':
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@2.79.2)
magic-string: 0.30.19
optionalDependencies:
rollup: 2.79.2
'@rollup/plugin-replace@6.0.2(rollup@4.52.2)':
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.52.2)
@@ -23447,108 +23374,6 @@ snapshots:
astring@1.9.0: {}
astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1):
dependencies:
'@astrojs/compiler': 2.12.2
'@astrojs/internal-helpers': 0.6.1
'@astrojs/markdown-remark': 6.3.2
'@astrojs/telemetry': 3.3.0
'@capsizecss/unpack': 2.4.0(encoding@0.1.13)
'@oslojs/encoding': 1.1.0
'@rollup/pluginutils': 5.3.0(rollup@2.79.2)
acorn: 8.15.0
aria-query: 5.3.2
axobject-query: 4.1.0
boxen: 8.0.1
ci-info: 4.3.0
clsx: 2.1.1
common-ancestor-path: 1.0.1
cookie: 1.0.2
cssesc: 3.0.0
debug: 4.4.3
deterministic-object-hash: 2.0.2
devalue: 5.3.2
diff: 5.2.0
dlv: 1.1.3
dset: 3.1.4
es-module-lexer: 1.7.0
esbuild: 0.25.9
estree-walker: 3.0.3
flattie: 1.1.1
fontace: 0.3.0
github-slugger: 2.0.0
html-escaper: 3.0.3
http-cache-semantics: 4.2.0
import-meta-resolve: 4.2.0
js-yaml: 4.1.0
kleur: 4.1.5
magic-string: 0.30.19
magicast: 0.3.5
mrmime: 2.0.1
neotraverse: 0.6.18
p-limit: 6.2.0
p-queue: 8.1.0
package-manager-detector: 1.3.0
picomatch: 4.0.3
prompts: 2.4.2
rehype: 13.0.2
semver: 7.7.2
shiki: 3.13.0
tinyexec: 0.3.2
tinyglobby: 0.2.15
tsconfck: 3.1.6(typescript@5.9.2)
ultrahtml: 1.6.0
unifont: 0.5.2
unist-util-visit: 5.0.0
unstorage: 1.17.0(@netlify/blobs@9.1.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)
vfile: 6.0.3
vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
vitefu: 1.1.1(vite@6.3.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
xxhash-wasm: 1.1.0
yargs-parser: 21.1.1
yocto-spinner: 0.2.3
zod: 3.25.76
zod-to-json-schema: 3.24.6(zod@3.25.76)
zod-to-ts: 1.2.0(typescript@5.9.2)(zod@3.25.76)
optionalDependencies:
sharp: 0.33.5
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'
- '@azure/data-tables'
- '@azure/identity'
- '@azure/keyvault-secrets'
- '@azure/storage-blob'
- '@capacitor/preferences'
- '@deno/kv'
- '@netlify/blobs'
- '@planetscale/database'
- '@types/node'
- '@upstash/redis'
- '@vercel/blob'
- '@vercel/functions'
- '@vercel/kv'
- aws4fetch
- db0
- encoding
- idb-keyval
- ioredis
- jiti
- less
- lightningcss
- rollup
- sass
- sass-embedded
- stylus
- sugarss
- supports-color
- terser
- tsx
- typescript
- uploadthing
- yaml
optional: true
astro@5.10.1(@netlify/blobs@9.1.2)(@types/node@24.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1):
dependencies:
'@astrojs/compiler': 2.12.2
@@ -28676,7 +28501,7 @@ snapshots:
dependencies:
boolbase: 1.0.0
nuxt@4.0.3(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(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.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(xml2js@0.6.2)(yaml@2.8.1):
dependencies:
'@nuxt/cli': 3.28.0(magicast@0.3.5)
'@nuxt/devalue': 2.0.2
@@ -28684,7 +28509,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.5.2)(eslint@9.36.0(jiti@2.5.1))(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.40)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))(yaml@2.8.1)
'@nuxt/vite-builder': 4.0.3(@types/node@24.5.2)(eslint@9.36.0(jiti@2.5.1))(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))(yaml@2.8.1)
'@unhead/vue': 2.0.14(vue@3.5.22(typescript@5.9.2))
'@vue/shared': 3.5.22
c12: 3.2.0(magicast@0.3.5)
@@ -30724,15 +30549,6 @@ snapshots:
'@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.40
'@rolldown/binding-win32-x64-msvc': 1.0.0-beta.40
rollup-plugin-visualizer@5.11.0(rollup@2.79.2):
dependencies:
open: 8.4.2
picomatch: 2.3.1
source-map: 0.7.4
yargs: 17.7.2
optionalDependencies:
rollup: 2.79.2
rollup-plugin-visualizer@5.11.0(rollup@4.52.2):
dependencies:
open: 8.4.2
@@ -30742,16 +30558,6 @@ snapshots:
optionalDependencies:
rollup: 4.52.2
rollup-plugin-visualizer@6.0.3(rolldown@1.0.0-beta.40)(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.40
rollup: 2.79.2
rollup-plugin-visualizer@6.0.3(rolldown@1.0.0-beta.40)(rollup@4.52.2):
dependencies:
open: 8.4.2
@@ -32098,14 +31904,6 @@ snapshots:
unpipe@1.0.0: {}
unplugin-combine@1.2.1(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(unplugin@1.16.1):
optionalDependencies:
esbuild: 0.25.9
rolldown: 1.0.0-beta.40
rollup: 2.79.2
unplugin: 1.16.1
vite: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-combine@1.2.1(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(unplugin@1.16.1):
optionalDependencies:
esbuild: 0.25.9
@@ -32114,21 +31912,6 @@ snapshots:
unplugin: 1.16.1
vite: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(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.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rollup@2.79.2):
dependencies:
ci-info: 4.3.0
git-url-parse: 16.1.0
simple-git: 3.28.0
unplugin: 2.3.10
optionalDependencies:
'@nuxt/kit': 4.0.3(magicast@0.3.5)
'@nuxt/schema': 4.0.3
esbuild: 0.25.9
rollup: 2.79.2
vite: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
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.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rollup@4.52.2):
dependencies:
ci-info: 4.3.0
@@ -32197,52 +31980,6 @@ snapshots:
transitivePeerDependencies:
- vue
unplugin-vue-macros@2.14.5(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2)):
dependencies:
'@vue-macros/better-define': 1.11.4(vue@3.5.22(typescript@5.9.2))
'@vue-macros/boolean-prop': 0.5.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/chain-call': 0.4.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/common': 1.16.1(vue@3.5.22(typescript@5.9.2))
'@vue-macros/config': 0.6.1(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-emit': 0.5.4(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-models': 1.3.5(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-prop': 0.6.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-props': 4.0.6(@vue-macros/reactivity-transform@1.1.6(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-props-refs': 1.3.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-render': 1.6.6(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-slots': 1.2.6(vue@3.5.22(typescript@5.9.2))
'@vue-macros/define-stylex': 0.2.3(vue@3.5.22(typescript@5.9.2))
'@vue-macros/devtools': 0.4.1(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(typescript@5.9.2)
'@vue-macros/export-expose': 0.3.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/export-props': 0.6.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/export-render': 0.3.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/hoist-static': 1.7.0(vue@3.5.22(typescript@5.9.2))
'@vue-macros/jsx-directive': 0.10.6(typescript@5.9.2)
'@vue-macros/named-template': 0.5.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/reactivity-transform': 1.1.6(vue@3.5.22(typescript@5.9.2))
'@vue-macros/script-lang': 0.2.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/setup-block': 0.4.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/setup-component': 0.18.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/setup-sfc': 0.18.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/short-bind': 1.1.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/short-emits': 1.6.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/short-vmodel': 1.5.5(vue@3.5.22(typescript@5.9.2))
'@vue-macros/volar': 0.30.15(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))
unplugin: 1.16.1
unplugin-combine: 1.2.1(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(unplugin@1.16.1)
unplugin-vue-define-options: 1.5.5(vue@3.5.22(typescript@5.9.2))
vue: 3.5.22(typescript@5.9.2)
transitivePeerDependencies:
- '@rspack/core'
- '@vueuse/core'
- esbuild
- rolldown
- rollup
- typescript
- vite
- vue-tsc
- webpack
unplugin-vue-macros@2.14.5(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(typescript@5.9.2)(vue-tsc@3.0.8(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2)):
dependencies:
'@vue-macros/better-define': 1.11.4(vue@3.5.22(typescript@5.9.2))
@@ -32335,20 +32072,6 @@ snapshots:
- tsx
- yaml
unplugin-yaml@3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@2.79.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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1)
esbuild: 0.25.9
rolldown: 1.0.0-beta.40
rollup: 2.79.2
vite: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-yaml@3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.52.2)
@@ -32377,7 +32100,7 @@ snapshots:
rollup: 4.52.2
vite: 6.3.6(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)
unplugin-yaml@3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(encoding@0.1.13)(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
unplugin-yaml@3.0.6(@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.5.2)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(ioredis@5.7.0)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(yaml@2.8.1))(esbuild@0.25.9)(rolldown@1.0.0-beta.40)(rollup@4.52.2)(vite@7.1.7(@types/node@24.5.2)(jiti@2.5.1)(less@4.4.1)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@rollup/pluginutils': 5.3.0(rollup@4.52.2)
unplugin: 2.3.10
@@ -32567,16 +32290,6 @@ snapshots:
'@types/unist': 3.0.3
vfile-message: 4.0.2
vite-bundle-visualizer@1.2.1(rollup@2.79.2):
dependencies:
cac: 6.7.14
import-from-esm: 1.3.3
rollup-plugin-visualizer: 5.11.0(rollup@2.79.2)
tmp: 0.2.5
transitivePeerDependencies:
- rollup
- supports-color
vite-bundle-visualizer@1.2.1(rollup@4.52.2):
dependencies:
cac: 6.7.14
@@ -32769,21 +32482,6 @@ snapshots:
- supports-color
- vue
vite-plugin-vue-devtools@8.0.2(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2)):
dependencies:
'@vue/devtools-core': 8.0.2(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(vue@3.5.22(typescript@5.9.2))
'@vue/devtools-kit': 8.0.2
'@vue/devtools-shared': 8.0.2
execa: 9.6.0
sirv: 3.0.2
vite: rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(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.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))
vite-plugin-vue-inspector: 5.3.2(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(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.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1)):
dependencies:
'@babel/core': 7.28.3
@@ -33024,11 +32722,11 @@ snapshots:
'@vue/devtools-api': 6.6.4
vue: 3.5.22(typescript@5.9.2)
vue-sonner@2.0.8(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(xml2js@0.6.2)(yaml@2.8.1):
vue-sonner@2.0.8(@netlify/blobs@9.1.2)(@parcel/watcher@2.5.0)(@types/node@24.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(xml2js@0.6.2)(yaml@2.8.1):
dependencies:
'@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.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@2.79.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(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.5.2)(@vue/compiler-sfc@3.5.22)(bufferutil@4.0.9)(db0@0.3.2(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7)))(drizzle-orm@0.44.5(@opentelemetry/api@1.9.0)(@types/pg@8.15.5)(gel@2.0.0)(pg@8.16.3)(postgres@3.4.7))(encoding@0.1.13)(eslint@9.36.0(jiti@2.5.1))(ioredis@5.7.0)(less@4.4.1)(lightningcss@1.30.1)(magicast@0.3.5)(optionator@0.9.4)(rolldown-vite@7.1.13(@types/node@24.5.2)(esbuild@0.25.9)(jiti@2.5.1)(less@4.4.1)(terser@5.43.1)(tsx@4.20.6)(yaml@2.8.1))(rolldown@1.0.0-beta.40)(rollup@4.52.2)(terser@5.43.1)(tsx@4.20.6)(typescript@5.9.2)(utf-8-validate@5.0.10)(vue-tsc@3.0.8(typescript@5.9.2))(xml2js@0.6.2)(yaml@2.8.1)
transitivePeerDependencies:
- '@azure/app-configuration'
- '@azure/cosmos'