fix: build & typecheck
This commit is contained in:
@@ -18,7 +18,6 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify/vue": "^5.0.0",
|
||||
"@types/node": "^24.1.0",
|
||||
"@unocss/reset": "^66.3.3",
|
||||
"@vitejs/plugin-vue": "^6.0.1",
|
||||
"typescript": "~5.9.2",
|
||||
|
||||
@@ -6,7 +6,7 @@ import { onMounted, ref } from 'vue'
|
||||
const containerRef = ref<HTMLDivElement>()
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode
|
||||
const analyser = ref<AnalyserNode>()
|
||||
const analyserDataBuffer = ref<Uint8Array>()
|
||||
const analyserDataBuffer = ref<Uint8Array<ArrayBuffer>>()
|
||||
const { audioContext } = useAudioContext()
|
||||
const canvasElemRef = ref<HTMLCanvasElement>()
|
||||
const isDark = useDark()
|
||||
|
||||
@@ -27,10 +27,6 @@
|
||||
"types": "./dist/audio-context/processor.worklet.d.mts",
|
||||
"default": "./dist/audio-context/processor.worklet.mjs"
|
||||
},
|
||||
"./vue": {
|
||||
"types": "./dist/vue/index.d.mts",
|
||||
"default": "./dist/vue/index.mjs"
|
||||
},
|
||||
"./encoding": {
|
||||
"types": "./dist/encoding/index.d.mts",
|
||||
"default": "./dist/encoding/index.mjs"
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
import type { MaybeRefOrGetter } from 'vue'
|
||||
|
||||
import { computed, onUnmounted, ref, toRef, watch } from 'vue'
|
||||
|
||||
import { createAudioGainNode, createAudioSource, getAudioContext, getCurrentTime, initializeAudioContext, removeAudioGainNode, removeAudioSource } from '../audio-context'
|
||||
|
||||
export function useAudioPlayback(src: MaybeRefOrGetter<MediaStream | undefined>) {
|
||||
const audioContext = getAudioContext()
|
||||
const sourceStream = toRef(src)
|
||||
|
||||
const isEnabled = ref(false)
|
||||
const volume = ref(50) // 0-100
|
||||
const error = ref('')
|
||||
|
||||
// Audio nodes for playback
|
||||
const source = ref<MediaStreamAudioSourceNode>()
|
||||
const gainNode = ref<GainNode>()
|
||||
|
||||
const actualVolume = computed(() => volume.value / 100)
|
||||
|
||||
async function setupPlayback() {
|
||||
if (!sourceStream.value || !isEnabled.value)
|
||||
return
|
||||
|
||||
try {
|
||||
error.value = ''
|
||||
|
||||
// Ensure audio context is ready
|
||||
await initializeAudioContext()
|
||||
|
||||
// Clean up existing playback
|
||||
cleanupPlayback()
|
||||
|
||||
// Create new nodes
|
||||
source.value = createAudioSource(sourceStream.value)
|
||||
gainNode.value = createAudioGainNode(actualVolume.value)
|
||||
|
||||
// Connect: source -> gain -> destination
|
||||
source.value.connect(gainNode.value)
|
||||
gainNode.value.connect(audioContext!.destination)
|
||||
}
|
||||
catch (err) {
|
||||
error.value = err instanceof Error ? err.message : String(err)
|
||||
console.error('Failed to setup audio playback:', err)
|
||||
}
|
||||
}
|
||||
|
||||
function cleanupPlayback() {
|
||||
if (source.value) {
|
||||
removeAudioSource(source.value)
|
||||
source.value = undefined
|
||||
}
|
||||
|
||||
if (gainNode.value) {
|
||||
removeAudioGainNode(gainNode.value)
|
||||
gainNode.value = undefined
|
||||
}
|
||||
}
|
||||
|
||||
// Watch for changes
|
||||
watch([sourceStream, isEnabled], async () => {
|
||||
if (isEnabled.value && sourceStream.value) {
|
||||
await setupPlayback()
|
||||
}
|
||||
else {
|
||||
cleanupPlayback()
|
||||
}
|
||||
})
|
||||
|
||||
watch(actualVolume, (newVolume) => {
|
||||
if (gainNode.value) {
|
||||
// Smooth volume changes to prevent clicks
|
||||
const currentTime = getCurrentTime()
|
||||
gainNode.value.gain.cancelScheduledValues(currentTime)
|
||||
gainNode.value.gain.setValueAtTime(gainNode.value.gain.value, currentTime)
|
||||
gainNode.value.gain.linearRampToValueAtTime(newVolume, currentTime + 0.1)
|
||||
}
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
cleanupPlayback()
|
||||
})
|
||||
|
||||
return {
|
||||
// State
|
||||
isEnabled,
|
||||
volume,
|
||||
error,
|
||||
|
||||
// Manual control
|
||||
setupPlayback,
|
||||
cleanupPlayback,
|
||||
}
|
||||
}
|
||||
@@ -1,203 +0,0 @@
|
||||
import type { MaybeRefOrGetter } from 'vue'
|
||||
|
||||
import { onUnmounted, ref, toRef } from 'vue'
|
||||
|
||||
import { createAudioAnalyser, createAudioSource, getAudioContext, getCurrentTime, initializeAudioContext } from '../audio-context'
|
||||
|
||||
export interface AudioStreamConfig {
|
||||
deviceId: string
|
||||
sampleRate?: number
|
||||
echoCancellation?: boolean
|
||||
noiseSuppression?: boolean
|
||||
autoGainControl?: boolean
|
||||
}
|
||||
|
||||
export interface AudioAnalysisData {
|
||||
volumeLevel: number
|
||||
frequencyData: Uint8Array
|
||||
timeDomainData: Float32Array
|
||||
timestamp: number
|
||||
}
|
||||
|
||||
export type AudioAnalysisCallback = (data: AudioAnalysisData) => void
|
||||
export type AudioChunkCallback = (chunk: Float32Array, sampleRate: number) => void
|
||||
|
||||
export function useAudioStream(cfg: MaybeRefOrGetter<AudioStreamConfig | undefined>) {
|
||||
const config = toRef(cfg)
|
||||
|
||||
const isActive = ref(false)
|
||||
const error = ref<string>('')
|
||||
const isInitializing = ref(false) // Add loading state
|
||||
|
||||
// Stream-specific state
|
||||
const mediaStream = ref<MediaStream>()
|
||||
const source = ref<MediaStreamAudioSourceNode>()
|
||||
const analyser = ref<AnalyserNode>()
|
||||
|
||||
// Callbacks for different types of analysis
|
||||
const analysisCallbacks = new Set<AudioAnalysisCallback>()
|
||||
const chunkCallbacks = new Set<AudioChunkCallback>()
|
||||
|
||||
// Audio data arrays
|
||||
const dataArray = ref<Uint8Array>()
|
||||
const timeDataArray = ref<Float32Array>()
|
||||
|
||||
// Helper function to wait for audio context
|
||||
async function waitForAudioContext(maxRetries = 10, delay = 100) {
|
||||
for (let i = 0; i < maxRetries; i++) {
|
||||
const audioContext = getAudioContext()
|
||||
if (audioContext && audioContext.state !== 'closed') {
|
||||
return audioContext
|
||||
}
|
||||
await new Promise(resolve => setTimeout(resolve, delay))
|
||||
}
|
||||
throw new Error('Audio context failed to initialize within timeout')
|
||||
}
|
||||
|
||||
async function start() {
|
||||
if (isActive.value || isInitializing.value)
|
||||
return
|
||||
|
||||
try {
|
||||
isInitializing.value = true
|
||||
error.value = ''
|
||||
|
||||
// Initialize global audio context and wait for it
|
||||
await initializeAudioContext(config.value?.sampleRate || 16000)
|
||||
await waitForAudioContext()
|
||||
|
||||
// Get user media
|
||||
mediaStream.value = await navigator.mediaDevices.getUserMedia({
|
||||
audio: {
|
||||
deviceId: config.value?.deviceId,
|
||||
sampleRate: config.value?.sampleRate || 16000,
|
||||
echoCancellation: config.value?.echoCancellation ?? true,
|
||||
noiseSuppression: config.value?.noiseSuppression ?? true,
|
||||
autoGainControl: config.value?.autoGainControl ?? true,
|
||||
},
|
||||
})
|
||||
|
||||
// Ensure we still have a valid audio context after getUserMedia
|
||||
const currentAudioContext = getAudioContext()
|
||||
if (!currentAudioContext) {
|
||||
throw new Error('Audio context became unavailable')
|
||||
}
|
||||
|
||||
// Create audio nodes using global context
|
||||
source.value = createAudioSource(mediaStream.value)
|
||||
analyser.value = createAudioAnalyser({
|
||||
fftSize: 512,
|
||||
smoothingTimeConstant: 0.1,
|
||||
})
|
||||
|
||||
// Connect nodes
|
||||
source.value.connect(analyser.value)
|
||||
|
||||
// Setup data arrays
|
||||
const bufferLength = analyser.value.frequencyBinCount
|
||||
dataArray.value = new Uint8Array(bufferLength)
|
||||
timeDataArray.value = new Float32Array(analyser.value.fftSize)
|
||||
|
||||
isActive.value = true
|
||||
startAnalysis()
|
||||
}
|
||||
catch (err) {
|
||||
error.value = err instanceof Error ? err.message : String(err)
|
||||
console.error('Failed to start audio stream:', err)
|
||||
}
|
||||
finally {
|
||||
isInitializing.value = false
|
||||
}
|
||||
}
|
||||
|
||||
function startAnalysis() {
|
||||
const analyze = () => {
|
||||
const audioContext = getAudioContext()
|
||||
if (!audioContext || !analyser.value || !dataArray.value || !timeDataArray.value)
|
||||
return
|
||||
|
||||
// Get frequency and time domain data
|
||||
analyser.value.getByteFrequencyData(dataArray.value)
|
||||
analyser.value.getFloatTimeDomainData(timeDataArray.value)
|
||||
|
||||
// Calculate volume level
|
||||
let sum = 0
|
||||
for (let i = 0; i < dataArray.value.length; i++) {
|
||||
sum += dataArray.value[i] * dataArray.value[i]
|
||||
}
|
||||
const rms = Math.sqrt(sum / dataArray.value.length)
|
||||
const volumeLevel = Math.min(100, (rms / 255) * 100 * 3)
|
||||
|
||||
// Create analysis data
|
||||
const analysisData: AudioAnalysisData = {
|
||||
volumeLevel,
|
||||
frequencyData: new Uint8Array(dataArray.value),
|
||||
timeDomainData: new Float32Array(timeDataArray.value),
|
||||
timestamp: getCurrentTime(),
|
||||
}
|
||||
|
||||
// Notify analysis callbacks
|
||||
analysisCallbacks.forEach((callback) => {
|
||||
try {
|
||||
callback(analysisData)
|
||||
}
|
||||
catch (err) {
|
||||
console.error('Audio analysis callback error:', err)
|
||||
}
|
||||
})
|
||||
|
||||
// Notify chunk callbacks with fresh audioContext reference
|
||||
chunkCallbacks.forEach((callback) => {
|
||||
try {
|
||||
callback(
|
||||
new Float32Array(timeDataArray.value),
|
||||
audioContext.sampleRate,
|
||||
)
|
||||
}
|
||||
catch (err) {
|
||||
console.error('Audio chunk callback error:', err)
|
||||
}
|
||||
})
|
||||
|
||||
// Only continue if still active
|
||||
if (isActive.value) {
|
||||
requestAnimationFrame(analyze)
|
||||
}
|
||||
}
|
||||
|
||||
analyze()
|
||||
}
|
||||
|
||||
// Callback management
|
||||
function addAnalysisCallback(callback: AudioAnalysisCallback) {
|
||||
analysisCallbacks.add(callback)
|
||||
return () => analysisCallbacks.delete(callback)
|
||||
}
|
||||
|
||||
function addChunkCallback(callback: AudioChunkCallback) {
|
||||
chunkCallbacks.add(callback)
|
||||
return () => chunkCallbacks.delete(callback)
|
||||
}
|
||||
|
||||
function stop() {
|
||||
mediaStream.value?.getTracks().forEach(track => track.stop())
|
||||
}
|
||||
|
||||
// Cleanup
|
||||
onUnmounted(() => {
|
||||
stop()
|
||||
})
|
||||
|
||||
return {
|
||||
isActive,
|
||||
error,
|
||||
mediaStream,
|
||||
isInitializing,
|
||||
|
||||
start,
|
||||
stop,
|
||||
|
||||
addAnalysisCallback,
|
||||
addChunkCallback,
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
export * from './audio-playback'
|
||||
export * from './audio-stream'
|
||||
@@ -6,7 +6,6 @@ export default defineConfig({
|
||||
'audio-context/index': 'src/audio-context/index.ts',
|
||||
'audio-context/processor.worklet': 'src/audio-context/processor.worklet.ts',
|
||||
'encoding/index': 'src/encoding/index.ts',
|
||||
'vue/index': 'src/vue/index.ts',
|
||||
},
|
||||
unbundle: true,
|
||||
fixedExtension: true,
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
"unocss": "^66.3.3",
|
||||
"unplugin-info": "^1.2.4",
|
||||
"unplugin-yaml": "^3.0.2",
|
||||
"vite": "^7.0.6",
|
||||
"vite": "^6.3.5",
|
||||
"vue": "^3.5.18"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ const errorMessage = ref<string>('')
|
||||
|
||||
const audioContext = ref<AudioContext>()
|
||||
const analyser = ref<AnalyserNode>()
|
||||
const dataArray = ref<Uint8Array>()
|
||||
const dataArray = ref<Uint8Array<ArrayBuffer>>()
|
||||
const animationFrame = ref<number>()
|
||||
const volumeLevel = ref(0) // 0-100
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ import { ref } from 'vue'
|
||||
|
||||
export function useAudioAnalyzer() {
|
||||
const analyzer = ref<AnalyserNode>()
|
||||
const dataArray = ref<Uint8Array>()
|
||||
const dataArray = ref<Uint8Array<ArrayBuffer>>()
|
||||
const animationFrame = ref<number>()
|
||||
|
||||
const onAnalyzerUpdateHooks = ref<Array<(volumeLevel: number) => void | Promise<void>>>([])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export interface AudioManagerType {
|
||||
audioContext: AudioContext
|
||||
analyser: AnalyserNode
|
||||
dataBuffer: Float32Array
|
||||
dataBuffer: Float32Array<ArrayBuffer>
|
||||
frameId: number | null
|
||||
onVolumeChange?: (volume: number) => void
|
||||
}
|
||||
|
||||
Generated
+99
-29
@@ -255,9 +255,6 @@ importers:
|
||||
'@iconify/vue':
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0(vue@3.5.18(typescript@5.9.2))
|
||||
'@types/node':
|
||||
specifier: ^24.1.0
|
||||
version: 24.1.0
|
||||
'@unocss/reset':
|
||||
specifier: ^66.3.3
|
||||
version: 66.3.3
|
||||
@@ -1482,7 +1479,7 @@ importers:
|
||||
version: 5.2.6
|
||||
'@histoire/plugin-vue':
|
||||
specifier: 1.0.0-alpha.2
|
||||
version: 1.0.0-alpha.2(histoire@1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
version: 1.0.0-alpha.2(histoire@1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
'@iconify-json/carbon':
|
||||
specifier: ^1.2.11
|
||||
version: 1.2.11
|
||||
@@ -1524,7 +1521,7 @@ importers:
|
||||
version: 66.3.3
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: ^6.0.1
|
||||
version: 6.0.1(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
version: 6.0.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
clustr:
|
||||
specifier: ^1.0.2
|
||||
version: 1.0.2
|
||||
@@ -1533,19 +1530,19 @@ importers:
|
||||
version: 3.1.3
|
||||
histoire:
|
||||
specifier: 1.0.0-alpha.2
|
||||
version: 1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
version: 1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
unocss:
|
||||
specifier: ^66.3.3
|
||||
version: 66.3.3(postcss@8.5.6)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
version: 66.3.3(postcss@8.5.6)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
unplugin-info:
|
||||
specifier: ^1.2.4
|
||||
version: 1.2.4(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(esbuild@0.25.8)(rollup@4.46.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
version: 1.2.4(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(esbuild@0.25.8)(rollup@4.46.2)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
unplugin-yaml:
|
||||
specifier: ^3.0.2
|
||||
version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(astro@5.10.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.0))(esbuild@0.25.8)(rolldown@1.0.0-beta.30)(rollup@4.46.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
version: 3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(astro@5.10.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.0))(esbuild@0.25.8)(rolldown@1.0.0-beta.30)(rollup@4.46.2)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
vite:
|
||||
specifier: ^7.0.6
|
||||
version: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
specifier: ^6.3.5
|
||||
version: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vue:
|
||||
specifier: ^3.5.18
|
||||
version: 3.5.18(typescript@5.9.2)
|
||||
@@ -14626,17 +14623,17 @@ snapshots:
|
||||
|
||||
'@guiiai/logg@1.0.10': {}
|
||||
|
||||
'@histoire/app@1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
|
||||
'@histoire/app@1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@histoire/controls': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/controls': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/vendors': 1.0.0-alpha.2
|
||||
fuse.js: 7.1.0
|
||||
shiki: 3.9.1
|
||||
transitivePeerDependencies:
|
||||
- vite
|
||||
|
||||
'@histoire/controls@1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
|
||||
'@histoire/controls@1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@codemirror/commands': 6.8.0
|
||||
'@codemirror/lang-json': 6.0.1
|
||||
@@ -14645,26 +14642,26 @@ snapshots:
|
||||
'@codemirror/state': 6.5.2
|
||||
'@codemirror/theme-one-dark': 6.1.2
|
||||
'@codemirror/view': 6.36.4
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/vendors': 1.0.0-alpha.2
|
||||
transitivePeerDependencies:
|
||||
- vite
|
||||
|
||||
'@histoire/plugin-vue@1.0.0-alpha.2(histoire@1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
'@histoire/plugin-vue@1.0.0-alpha.2(histoire@1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)))(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@histoire/controls': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/controls': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/vendors': 1.0.0-alpha.2
|
||||
change-case: 5.4.4
|
||||
globby: 14.0.2
|
||||
histoire: 1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
histoire: 1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
launch-editor: 2.10.0
|
||||
pathe: 1.1.2
|
||||
vue: 3.5.18(typescript@5.9.2)
|
||||
transitivePeerDependencies:
|
||||
- vite
|
||||
|
||||
'@histoire/shared@1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
|
||||
'@histoire/shared@1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))':
|
||||
dependencies:
|
||||
'@histoire/vendors': 1.0.0-alpha.2
|
||||
'@types/fs-extra': 11.0.4
|
||||
@@ -14672,7 +14669,7 @@ snapshots:
|
||||
chokidar: 4.0.3
|
||||
pathe: 1.1.2
|
||||
picocolors: 1.1.1
|
||||
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
|
||||
'@histoire/vendors@1.0.0-alpha.2': {}
|
||||
|
||||
@@ -16711,6 +16708,16 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- vue
|
||||
|
||||
'@unocss/astro@66.3.3(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@unocss/core': 66.3.3
|
||||
'@unocss/reset': 66.3.3
|
||||
'@unocss/vite': 66.3.3(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
optionalDependencies:
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- vue
|
||||
|
||||
'@unocss/astro@66.3.3(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@unocss/core': 66.3.3
|
||||
@@ -16901,6 +16908,21 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- vue
|
||||
|
||||
'@unocss/vite@66.3.3(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
'@unocss/config': 66.3.3
|
||||
'@unocss/core': 66.3.3
|
||||
'@unocss/inspector': 66.3.3(vue@3.5.18(typescript@5.9.2))
|
||||
chokidar: 3.6.0
|
||||
magic-string: 0.30.17
|
||||
pathe: 2.0.3
|
||||
tinyglobby: 0.2.14
|
||||
unplugin-utils: 0.2.4
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- vue
|
||||
|
||||
'@unocss/vite@66.3.3(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@ampproject/remapping': 2.3.0
|
||||
@@ -17030,6 +17052,12 @@ snapshots:
|
||||
vite: rolldown-vite@7.0.12(@types/node@24.1.0)(esbuild@0.25.8)(jiti@2.5.1)(less@4.4.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vue: 3.5.18(typescript@5.9.2)
|
||||
|
||||
'@vitejs/plugin-vue@6.0.1(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@rolldown/pluginutils': 1.0.0-beta.29
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vue: 3.5.18(typescript@5.9.2)
|
||||
|
||||
'@vitejs/plugin-vue@6.0.1(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))':
|
||||
dependencies:
|
||||
'@rolldown/pluginutils': 1.0.0-beta.29
|
||||
@@ -20777,12 +20805,12 @@ snapshots:
|
||||
|
||||
highlight.js@10.7.3: {}
|
||||
|
||||
histoire@1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
|
||||
histoire@1.0.0-alpha.2(@types/node@24.1.0)(bufferutil@4.0.9)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(utf-8-validate@5.0.10)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
|
||||
dependencies:
|
||||
'@akryum/tinypool': 0.3.1
|
||||
'@histoire/app': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/controls': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/app': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/controls': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/shared': 1.0.0-alpha.2(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))
|
||||
'@histoire/vendors': 1.0.0-alpha.2
|
||||
'@types/markdown-it': 14.1.2
|
||||
birpc: 0.2.19
|
||||
@@ -20807,7 +20835,7 @@ snapshots:
|
||||
sade: 1.8.1
|
||||
shiki: 3.9.1
|
||||
sirv: 3.0.1
|
||||
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vite-node: 0.34.7(@types/node@24.1.0)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
@@ -24935,6 +24963,34 @@ snapshots:
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
unocss@66.3.3(postcss@8.5.6)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2)):
|
||||
dependencies:
|
||||
'@unocss/astro': 66.3.3(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
'@unocss/cli': 66.3.3
|
||||
'@unocss/core': 66.3.3
|
||||
'@unocss/postcss': 66.3.3(postcss@8.5.6)
|
||||
'@unocss/preset-attributify': 66.3.3
|
||||
'@unocss/preset-icons': 66.3.3
|
||||
'@unocss/preset-mini': 66.3.3
|
||||
'@unocss/preset-tagify': 66.3.3
|
||||
'@unocss/preset-typography': 66.3.3
|
||||
'@unocss/preset-uno': 66.3.3
|
||||
'@unocss/preset-web-fonts': 66.3.3
|
||||
'@unocss/preset-wind': 66.3.3
|
||||
'@unocss/preset-wind3': 66.3.3
|
||||
'@unocss/preset-wind4': 66.3.3
|
||||
'@unocss/transformer-attributify-jsx': 66.3.3
|
||||
'@unocss/transformer-compile-class': 66.3.3
|
||||
'@unocss/transformer-directives': 66.3.3
|
||||
'@unocss/transformer-variant-group': 66.3.3
|
||||
'@unocss/vite': 66.3.3(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
optionalDependencies:
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- postcss
|
||||
- supports-color
|
||||
- vue
|
||||
|
||||
unocss@66.3.3(postcss@8.5.6)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2)):
|
||||
dependencies:
|
||||
'@unocss/astro': 66.3.3(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0))(vue@3.5.18(typescript@5.9.2))
|
||||
@@ -25011,7 +25067,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
unplugin-info@1.2.4(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(esbuild@0.25.8)(rollup@4.46.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
|
||||
unplugin-info@1.2.4(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(esbuild@0.25.8)(rollup@4.46.2)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
|
||||
dependencies:
|
||||
ci-info: 4.3.0
|
||||
git-url-parse: 16.1.0
|
||||
@@ -25022,7 +25078,7 @@ snapshots:
|
||||
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.46.2)
|
||||
esbuild: 0.25.8
|
||||
rollup: 4.46.2
|
||||
vite: 7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -25221,6 +25277,20 @@ snapshots:
|
||||
rollup: 4.46.2
|
||||
vite: rolldown-vite@7.0.12(@types/node@24.1.0)(esbuild@0.25.8)(jiti@2.5.1)(less@4.4.0)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
|
||||
unplugin-yaml@3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(astro@5.10.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.0))(esbuild@0.25.8)(rolldown@1.0.0-beta.30)(rollup@4.46.2)(vite@6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.2.0(rollup@4.46.2)
|
||||
unplugin: 2.3.5
|
||||
yaml: 2.8.0
|
||||
optionalDependencies:
|
||||
'@nuxt/kit': 3.14.1592(magicast@0.3.5)(rollup@4.46.2)
|
||||
'@nuxt/schema': 3.14.1592(magicast@0.3.5)(rollup@4.46.2)
|
||||
astro: 5.10.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.0)
|
||||
esbuild: 0.25.8
|
||||
rolldown: 1.0.0-beta.30
|
||||
rollup: 4.46.2
|
||||
vite: 6.3.5(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)
|
||||
|
||||
unplugin-yaml@3.0.2(@nuxt/kit@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(@nuxt/schema@3.14.1592(magicast@0.3.5)(rollup@4.46.2))(astro@5.10.1(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(rollup@4.46.2)(terser@5.43.1)(tsx@4.20.3)(typescript@5.9.2)(yaml@2.8.0))(esbuild@0.25.8)(rolldown@1.0.0-beta.30)(rollup@4.46.2)(vite@7.0.6(@types/node@24.1.0)(jiti@2.5.1)(less@4.4.0)(lightningcss@1.30.1)(terser@5.43.1)(tsx@4.20.3)(yaml@2.8.0)):
|
||||
dependencies:
|
||||
'@rollup/pluginutils': 5.2.0(rollup@4.46.2)
|
||||
|
||||
Reference in New Issue
Block a user