diff --git a/cspell.config.yaml b/cspell.config.yaml index 3dda4e1..643dafa 100644 --- a/cspell.config.yaml +++ b/cspell.config.yaml @@ -27,6 +27,7 @@ words: - elevenlabs - gltf - hiyori + - huggingface - iconify - intlify - kwaa @@ -46,6 +47,7 @@ words: - pinia - pixi - pixiv + - pretrained - rehype - shiki - shikijs @@ -57,6 +59,7 @@ words: - unplugin - vrma - vueuse + - webgpu - xsai ignoreWords: [] import: [] diff --git a/packages/stage/src/typed-router.d.ts b/packages/stage/src/typed-router.d.ts index 378537d..507aa91 100644 --- a/packages/stage/src/typed-router.d.ts +++ b/packages/stage/src/typed-router.d.ts @@ -18,12 +18,5 @@ declare module 'vue-router/auto-routes' { * Route name map generated by unplugin-vue-router */ export interface RouteNamedMap { - '/': RouteRecordInfo<'/', '/', Record, Record>, - '/audio': RouteRecordInfo<'/audio', '/audio', Record, Record>, - '/queue': RouteRecordInfo<'/queue', '/queue', Record, Record>, - '/test/filter-message': RouteRecordInfo<'/test/filter-message', '/test/filter-message', Record, Record>, - '/test/queues/delays': RouteRecordInfo<'/test/queues/delays', '/test/queues/delays', Record, Record>, - '/test/queues/emotions': RouteRecordInfo<'/test/queues/emotions', '/test/queues/emotions', Record, Record>, - '/test/queues/messages': RouteRecordInfo<'/test/queues/messages', '/test/queues/messages', Record, Record>, } } diff --git a/packages/stt-realtime-webgpu/.dockerignore b/packages/stt-realtime-webgpu/.dockerignore new file mode 100644 index 0000000..f06235c --- /dev/null +++ b/packages/stt-realtime-webgpu/.dockerignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/packages/stt-realtime-webgpu/Dockerfile b/packages/stt-realtime-webgpu/Dockerfile new file mode 100644 index 0000000..3e3a684 --- /dev/null +++ b/packages/stt-realtime-webgpu/Dockerfile @@ -0,0 +1,18 @@ +FROM node:20-alpine as build-stage + +WORKDIR /app +RUN corepack enable + +COPY .npmrc package.json pnpm-lock.yaml ./ +RUN --mount=type=cache,id=pnpm-store,target=/root/.pnpm-store \ + pnpm install --frozen-lockfile + +COPY . . +RUN pnpm build + +FROM nginx:stable-alpine as production-stage + +COPY --from=build-stage /app/dist /usr/share/nginx/html +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"] diff --git a/packages/stt-realtime-webgpu/README.md b/packages/stt-realtime-webgpu/README.md new file mode 100644 index 0000000..2d7d4ab --- /dev/null +++ b/packages/stt-realtime-webgpu/README.md @@ -0,0 +1,7 @@ +# STT WebGPU Realtime + +## Acknowledgements + +Great thanks to what [Real-time Whisper WebGPU](https://huggingface.co/spaces/Xenova/realtime-whisper-webgpu) have done. + +> [Source code](https://github.com/huggingface/transformers.js/tree/7a58d6e11968dd85dc87ce37b2ab37213165889a/examples/webgpu-whisper) diff --git a/packages/stt-realtime-webgpu/index.html b/packages/stt-realtime-webgpu/index.html new file mode 100644 index 0000000..88764aa --- /dev/null +++ b/packages/stt-realtime-webgpu/index.html @@ -0,0 +1,27 @@ + + + + + Whisper Realtime (WebGPU) + + + + + + + + + + +
+ + + + diff --git a/packages/stt-realtime-webgpu/locales/en.yml b/packages/stt-realtime-webgpu/locales/en.yml new file mode 100644 index 0000000..a099745 --- /dev/null +++ b/packages/stt-realtime-webgpu/locales/en.yml @@ -0,0 +1,14 @@ +button: + about: About + back: Back + go: GO + home: Home + toggle_dark: Toggle dark mode + toggle_langs: Change languages +intro: + desc: Opinionated Vite Starter Template + dynamic-route: Demo of dynamic route + hi: Hi, {name}! + aka: Also known as + whats-your-name: What's your name? +not-found: Not found diff --git a/packages/stt-realtime-webgpu/locales/zh-CN.yml b/packages/stt-realtime-webgpu/locales/zh-CN.yml new file mode 100644 index 0000000..7d9ce76 --- /dev/null +++ b/packages/stt-realtime-webgpu/locales/zh-CN.yml @@ -0,0 +1,14 @@ +button: + about: 关于 + back: 返回 + go: 确定 + home: 首页 + toggle_dark: 切换深色模式 + toggle_langs: 切换语言 +intro: + desc: 固执己见的 Vite 项目模板 + dynamic-route: 动态路由演示 + hi: 你好,{name} + aka: 也叫 + whats-your-name: 输入你的名字 +not-found: 未找到页面 diff --git a/packages/stt-realtime-webgpu/netlify.toml b/packages/stt-realtime-webgpu/netlify.toml new file mode 100755 index 0000000..50e53d3 --- /dev/null +++ b/packages/stt-realtime-webgpu/netlify.toml @@ -0,0 +1,24 @@ +[build] +publish = "packages/stage/dist" +command = "pnpm run packages:stub && pnpm run build" + +[build.environment] +NODE_VERSION = "22" + +[[redirects]] +from = "/assets/*" +to = "/assets/:splat" +status = 200 +force = true + +[[redirects]] +from = "/*" +to = "/index.html" +status = 200 +force = false + +[[headers]] +for = "/manifest.webmanifest" + +[headers.values] +Content-Type = "application/manifest+json" diff --git a/packages/stt-realtime-webgpu/package.json b/packages/stt-realtime-webgpu/package.json new file mode 100644 index 0000000..a046d1e --- /dev/null +++ b/packages/stt-realtime-webgpu/package.json @@ -0,0 +1,58 @@ +{ + "name": "@airi-proj/stt-realtime-webgpu", + "type": "module", + "private": true, + "packageManager": "pnpm@9.14.4", + "description": "Yet another WebGPU based Whisper Realtime STT re-implemented", + "author": { + "name": "Neko Ayaka", + "email": "neko@ayaka.moe", + "url": "https://github.com/nekomeowww" + }, + "license": "MIT", + "scripts": { + "build": "vite build", + "dev": "vite", + "lint": "eslint .", + "preview": "vite preview", + "typecheck": "vue-tsc --noEmit" + }, + "dependencies": { + "@unhead/vue": "^1.11.13", + "@unocss/reset": "^0.65.0", + "@vueuse/core": "^12.0.0", + "@vueuse/head": "^2.0.0", + "nprogress": "^0.2.0", + "ofetch": "^1.4.1", + "pinia": "^2.2.8", + "vue": "^3.5.13", + "vue-demi": "^0.14.10", + "vue-i18n": "^10.0.5", + "vue-router": "^4.5.0" + }, + "devDependencies": { + "@huggingface/transformers": "^3.1.2", + "@iconify-json/carbon": "^1.2.4", + "@iconify-json/eos-icons": "^1.2.1", + "@iconify-json/solar": "^1.2.1", + "@intlify/unplugin-vue-i18n": "^6.0.0", + "@shikijs/markdown-it": "^1.24.0", + "@types/markdown-it-link-attributes": "^3.0.5", + "@types/nprogress": "^0.2.3", + "@vitejs/plugin-vue": "^5.2.1", + "@vue-macros/volar": "^0.30.6", + "markdown-it-link-attributes": "^4.0.1", + "shiki": "^1.24.0", + "unplugin-auto-import": "^0.18.6", + "unplugin-vue-components": "^0.27.5", + "unplugin-vue-macros": "^2.13.4", + "unplugin-vue-markdown": "^0.27.1", + "unplugin-vue-router": "^0.10.8", + "vite-bundle-visualizer": "^1.2.1", + "vite-plugin-pwa": "^0.21.1", + "vite-plugin-vue-devtools": "^7.6.7", + "vite-plugin-vue-layouts": "^0.11.0", + "vite-plugin-webfont-dl": "^3.10.2", + "vue-tsc": "^2.1.10" + } +} diff --git a/packages/stt-realtime-webgpu/public/banner.png b/packages/stt-realtime-webgpu/public/banner.png new file mode 100644 index 0000000..b9b0e75 Binary files /dev/null and b/packages/stt-realtime-webgpu/public/banner.png differ diff --git a/packages/stt-realtime-webgpu/public/logo.png b/packages/stt-realtime-webgpu/public/logo.png new file mode 100644 index 0000000..fc3b13f Binary files /dev/null and b/packages/stt-realtime-webgpu/public/logo.png differ diff --git a/packages/stt-realtime-webgpu/src/App.vue b/packages/stt-realtime-webgpu/src/App.vue new file mode 100644 index 0000000..7c2aa3f --- /dev/null +++ b/packages/stt-realtime-webgpu/src/App.vue @@ -0,0 +1,3 @@ + diff --git a/packages/stt-realtime-webgpu/src/auto-imports.d.ts b/packages/stt-realtime-webgpu/src/auto-imports.d.ts new file mode 100644 index 0000000..802d2cd --- /dev/null +++ b/packages/stt-realtime-webgpu/src/auto-imports.d.ts @@ -0,0 +1,608 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +// biome-ignore lint: disable +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] + const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] + const computed: typeof import('vue')['computed'] + const computedAsync: typeof import('@vueuse/core')['computedAsync'] + const computedEager: typeof import('@vueuse/core')['computedEager'] + const computedInject: typeof import('@vueuse/core')['computedInject'] + const computedWithControl: typeof import('@vueuse/core')['computedWithControl'] + const controlledComputed: typeof import('@vueuse/core')['controlledComputed'] + const controlledRef: typeof import('@vueuse/core')['controlledRef'] + const createApp: typeof import('vue')['createApp'] + const createEventHook: typeof import('@vueuse/core')['createEventHook'] + const createGlobalState: typeof import('@vueuse/core')['createGlobalState'] + const createInjectionState: typeof import('@vueuse/core')['createInjectionState'] + const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn'] + const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate'] + const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable'] + const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise'] + const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn'] + const customRef: typeof import('vue')['customRef'] + const debouncedRef: typeof import('@vueuse/core')['debouncedRef'] + const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const defineLoader: typeof import('vue-router/auto')['defineLoader'] + const definePage: typeof import('unplugin-vue-router/runtime')['definePage'] + const eagerComputed: typeof import('@vueuse/core')['eagerComputed'] + const effectScope: typeof import('vue')['effectScope'] + const extendRef: typeof import('@vueuse/core')['extendRef'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch'] + const inject: typeof import('vue')['inject'] + const injectLocal: typeof import('@vueuse/core')['injectLocal'] + const isDark: typeof import('./composables/dark')['isDark'] + const isDefined: typeof import('@vueuse/core')['isDefined'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onClickOutside: typeof import('@vueuse/core')['onClickOutside'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke'] + const onLongPress: typeof import('@vueuse/core')['onLongPress'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onStartTyping: typeof import('@vueuse/core')['onStartTyping'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] + const pausableWatch: typeof import('@vueuse/core')['pausableWatch'] + const preferredDark: typeof import('./composables/dark')['preferredDark'] + const provide: typeof import('vue')['provide'] + const provideLocal: typeof import('@vueuse/core')['provideLocal'] + const reactify: typeof import('@vueuse/core')['reactify'] + const reactifyObject: typeof import('@vueuse/core')['reactifyObject'] + const reactive: typeof import('vue')['reactive'] + const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed'] + const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit'] + const reactivePick: typeof import('@vueuse/core')['reactivePick'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const refAutoReset: typeof import('@vueuse/core')['refAutoReset'] + const refDebounced: typeof import('@vueuse/core')['refDebounced'] + const refDefault: typeof import('@vueuse/core')['refDefault'] + const refThrottled: typeof import('@vueuse/core')['refThrottled'] + const refWithControl: typeof import('@vueuse/core')['refWithControl'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const resolveRef: typeof import('@vueuse/core')['resolveRef'] + const resolveUnref: typeof import('@vueuse/core')['resolveUnref'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const syncRef: typeof import('@vueuse/core')['syncRef'] + const syncRefs: typeof import('@vueuse/core')['syncRefs'] + const templateRef: typeof import('@vueuse/core')['templateRef'] + const throttledRef: typeof import('@vueuse/core')['throttledRef'] + const throttledWatch: typeof import('@vueuse/core')['throttledWatch'] + const toRaw: typeof import('vue')['toRaw'] + const toReactive: typeof import('@vueuse/core')['toReactive'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const toggleDark: typeof import('./composables/dark')['toggleDark'] + const triggerRef: typeof import('vue')['triggerRef'] + const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount'] + const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount'] + const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted'] + const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose'] + const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted'] + const unref: typeof import('vue')['unref'] + const unrefElement: typeof import('@vueuse/core')['unrefElement'] + const until: typeof import('@vueuse/core')['until'] + const useActiveElement: typeof import('@vueuse/core')['useActiveElement'] + const useAnimate: typeof import('@vueuse/core')['useAnimate'] + const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference'] + const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery'] + const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter'] + const useArrayFind: typeof import('@vueuse/core')['useArrayFind'] + const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex'] + const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast'] + const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes'] + const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin'] + const useArrayMap: typeof import('@vueuse/core')['useArrayMap'] + const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce'] + const useArraySome: typeof import('@vueuse/core')['useArraySome'] + const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique'] + const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue'] + const useAsyncState: typeof import('@vueuse/core')['useAsyncState'] + const useAttrs: typeof import('vue')['useAttrs'] + const useAudioContext: typeof import('./stores/audio')['useAudioContext'] + const useBase64: typeof import('@vueuse/core')['useBase64'] + const useBattery: typeof import('@vueuse/core')['useBattery'] + const useBluetooth: typeof import('@vueuse/core')['useBluetooth'] + const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints'] + const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel'] + const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation'] + const useCached: typeof import('@vueuse/core')['useCached'] + const useClipboard: typeof import('@vueuse/core')['useClipboard'] + const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems'] + const useCloned: typeof import('@vueuse/core')['useCloned'] + const useColorMode: typeof import('@vueuse/core')['useColorMode'] + const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog'] + const useCounter: typeof import('@vueuse/core')['useCounter'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVar: typeof import('@vueuse/core')['useCssVar'] + const useCssVars: typeof import('vue')['useCssVars'] + const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement'] + const useCycleList: typeof import('@vueuse/core')['useCycleList'] + const useDark: typeof import('@vueuse/core')['useDark'] + const useDateFormat: typeof import('@vueuse/core')['useDateFormat'] + const useDebounce: typeof import('@vueuse/core')['useDebounce'] + const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn'] + const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory'] + const useDelayMessageQueue: typeof import('./composables/queues')['useDelayMessageQueue'] + const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion'] + const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] + const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] + const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] + const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] + const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] + const useDraggable: typeof import('@vueuse/core')['useDraggable'] + const useDropZone: typeof import('@vueuse/core')['useDropZone'] + const useElementBounding: typeof import('@vueuse/core')['useElementBounding'] + const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint'] + const useElementHover: typeof import('@vueuse/core')['useElementHover'] + const useElementSize: typeof import('@vueuse/core')['useElementSize'] + const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility'] + const useEmotionsMessageQueue: typeof import('./composables/queues')['useEmotionsMessageQueue'] + const useEventBus: typeof import('@vueuse/core')['useEventBus'] + const useEventListener: typeof import('@vueuse/core')['useEventListener'] + const useEventSource: typeof import('@vueuse/core')['useEventSource'] + const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper'] + const useFavicon: typeof import('@vueuse/core')['useFavicon'] + const useFetch: typeof import('@vueuse/core')['useFetch'] + const useFileDialog: typeof import('@vueuse/core')['useFileDialog'] + const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess'] + const useFocus: typeof import('@vueuse/core')['useFocus'] + const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin'] + const useFps: typeof import('@vueuse/core')['useFps'] + const useFullscreen: typeof import('@vueuse/core')['useFullscreen'] + const useGamepad: typeof import('@vueuse/core')['useGamepad'] + const useGeolocation: typeof import('@vueuse/core')['useGeolocation'] + const useHead: typeof import('@vueuse/head')['useHead'] + const useI18n: typeof import('vue-i18n')['useI18n'] + const useId: typeof import('vue')['useId'] + const useIdle: typeof import('@vueuse/core')['useIdle'] + const useImage: typeof import('@vueuse/core')['useImage'] + const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll'] + const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver'] + const useInterval: typeof import('@vueuse/core')['useInterval'] + const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn'] + const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] + const useLLM: typeof import('./stores/llm')['useLLM'] + const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] + const useLink: typeof import('vue-router/auto')['useLink'] + const useLlmmarkerParser: typeof import('./composables/llmmarkerParser')['useLlmmarkerParser'] + const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] + const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] + const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] + const useMarkdown: typeof import('./composables/markdown')['useMarkdown'] + const useMediaControls: typeof import('@vueuse/core')['useMediaControls'] + const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] + const useMemoize: typeof import('@vueuse/core')['useMemoize'] + const useMemory: typeof import('@vueuse/core')['useMemory'] + const useMessageContentQueue: typeof import('./composables/queues')['useMessageContentQueue'] + const useModel: typeof import('vue')['useModel'] + const useMounted: typeof import('@vueuse/core')['useMounted'] + const useMouse: typeof import('@vueuse/core')['useMouse'] + const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] + const useMousePressed: typeof import('@vueuse/core')['useMousePressed'] + const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] + const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] + const useNetwork: typeof import('@vueuse/core')['useNetwork'] + const useNow: typeof import('@vueuse/core')['useNow'] + const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] + const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] + const useOnline: typeof import('@vueuse/core')['useOnline'] + const usePageLeave: typeof import('@vueuse/core')['usePageLeave'] + const useParallax: typeof import('@vueuse/core')['useParallax'] + const useParentElement: typeof import('@vueuse/core')['useParentElement'] + const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver'] + const usePermission: typeof import('@vueuse/core')['usePermission'] + const usePointer: typeof import('@vueuse/core')['usePointer'] + const usePointerLock: typeof import('@vueuse/core')['usePointerLock'] + const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe'] + const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme'] + const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast'] + const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark'] + const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages'] + const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion'] + const usePrevious: typeof import('@vueuse/core')['usePrevious'] + const useQueue: typeof import('./composables/queue')['useQueue'] + const useRafFn: typeof import('@vueuse/core')['useRafFn'] + const useRefHistory: typeof import('@vueuse/core')['useRefHistory'] + const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation'] + const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea'] + const useScriptTag: typeof import('@vueuse/core')['useScriptTag'] + const useScroll: typeof import('@vueuse/core')['useScroll'] + const useScrollLock: typeof import('@vueuse/core')['useScrollLock'] + const useSeoMeta: typeof import('@vueuse/head')['useSeoMeta'] + const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage'] + const useSettings: typeof import('./stores/settings')['useSettings'] + const useShare: typeof import('@vueuse/core')['useShare'] + const useSlots: typeof import('vue')['useSlots'] + const useSorted: typeof import('@vueuse/core')['useSorted'] + const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition'] + const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis'] + const useStepper: typeof import('@vueuse/core')['useStepper'] + const useStorage: typeof import('@vueuse/core')['useStorage'] + const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync'] + const useStyleTag: typeof import('@vueuse/core')['useStyleTag'] + const useSupported: typeof import('@vueuse/core')['useSupported'] + const useSwipe: typeof import('@vueuse/core')['useSwipe'] + const useTemplateRef: typeof import('vue')['useTemplateRef'] + const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList'] + const useTextDirection: typeof import('@vueuse/core')['useTextDirection'] + const useTextSelection: typeof import('@vueuse/core')['useTextSelection'] + const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize'] + const useThrottle: typeof import('@vueuse/core')['useThrottle'] + const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn'] + const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory'] + const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo'] + const useTimeout: typeof import('@vueuse/core')['useTimeout'] + const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn'] + const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll'] + const useTimestamp: typeof import('@vueuse/core')['useTimestamp'] + const useTitle: typeof import('@vueuse/core')['useTitle'] + const useToNumber: typeof import('@vueuse/core')['useToNumber'] + const useToString: typeof import('@vueuse/core')['useToString'] + const useToggle: typeof import('@vueuse/core')['useToggle'] + const useTransition: typeof import('@vueuse/core')['useTransition'] + const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams'] + const useUserMedia: typeof import('@vueuse/core')['useUserMedia'] + const useUserStore: typeof import('./stores/user')['useUserStore'] + const useVModel: typeof import('@vueuse/core')['useVModel'] + const useVModels: typeof import('@vueuse/core')['useVModels'] + const useVibrate: typeof import('@vueuse/core')['useVibrate'] + const useVirtualList: typeof import('@vueuse/core')['useVirtualList'] + const useWakeLock: typeof import('@vueuse/core')['useWakeLock'] + const useWebNotification: typeof import('@vueuse/core')['useWebNotification'] + const useWebSocket: typeof import('@vueuse/core')['useWebSocket'] + const useWebWorker: typeof import('@vueuse/core')['useWebWorker'] + const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn'] + const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus'] + const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll'] + const useWindowSize: typeof import('@vueuse/core')['useWindowSize'] + const watch: typeof import('vue')['watch'] + const watchArray: typeof import('@vueuse/core')['watchArray'] + const watchAtMost: typeof import('@vueuse/core')['watchAtMost'] + const watchDebounced: typeof import('@vueuse/core')['watchDebounced'] + const watchDeep: typeof import('@vueuse/core')['watchDeep'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable'] + const watchImmediate: typeof import('@vueuse/core')['watchImmediate'] + const watchOnce: typeof import('@vueuse/core')['watchOnce'] + const watchPausable: typeof import('@vueuse/core')['watchPausable'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] + const watchThrottled: typeof import('@vueuse/core')['watchThrottled'] + const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable'] + const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter'] + const whenever: typeof import('@vueuse/core')['whenever'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + import('vue') +} + +// for vue template auto import +import { UnwrapRef } from 'vue' +declare module 'vue' { + interface GlobalComponents {} + interface ComponentCustomProperties { + readonly EffectScope: UnwrapRef + readonly asyncComputed: UnwrapRef + readonly autoResetRef: UnwrapRef + readonly computed: UnwrapRef + readonly computedAsync: UnwrapRef + readonly computedEager: UnwrapRef + readonly computedInject: UnwrapRef + readonly computedWithControl: UnwrapRef + readonly controlledComputed: UnwrapRef + readonly controlledRef: UnwrapRef + readonly createApp: UnwrapRef + readonly createEventHook: UnwrapRef + readonly createGlobalState: UnwrapRef + readonly createInjectionState: UnwrapRef + readonly createReactiveFn: UnwrapRef + readonly createReusableTemplate: UnwrapRef + readonly createSharedComposable: UnwrapRef + readonly createTemplatePromise: UnwrapRef + readonly createUnrefFn: UnwrapRef + readonly customRef: UnwrapRef + readonly debouncedRef: UnwrapRef + readonly debouncedWatch: UnwrapRef + readonly defineAsyncComponent: UnwrapRef + readonly defineComponent: UnwrapRef + readonly eagerComputed: UnwrapRef + readonly effectScope: UnwrapRef + readonly extendRef: UnwrapRef + readonly getCurrentInstance: UnwrapRef + readonly getCurrentScope: UnwrapRef + readonly h: UnwrapRef + readonly ignorableWatch: UnwrapRef + readonly inject: UnwrapRef + readonly injectLocal: UnwrapRef + readonly isDefined: UnwrapRef + readonly isProxy: UnwrapRef + readonly isReactive: UnwrapRef + readonly isReadonly: UnwrapRef + readonly isRef: UnwrapRef + readonly makeDestructurable: UnwrapRef + readonly markRaw: UnwrapRef + readonly nextTick: UnwrapRef + readonly onActivated: UnwrapRef + readonly onBeforeMount: UnwrapRef + readonly onBeforeRouteLeave: UnwrapRef + readonly onBeforeRouteUpdate: UnwrapRef + readonly onBeforeUnmount: UnwrapRef + readonly onBeforeUpdate: UnwrapRef + readonly onClickOutside: UnwrapRef + readonly onDeactivated: UnwrapRef + readonly onErrorCaptured: UnwrapRef + readonly onKeyStroke: UnwrapRef + readonly onLongPress: UnwrapRef + readonly onMounted: UnwrapRef + readonly onRenderTracked: UnwrapRef + readonly onRenderTriggered: UnwrapRef + readonly onScopeDispose: UnwrapRef + readonly onServerPrefetch: UnwrapRef + readonly onStartTyping: UnwrapRef + readonly onUnmounted: UnwrapRef + readonly onUpdated: UnwrapRef + readonly onWatcherCleanup: UnwrapRef + readonly pausableWatch: UnwrapRef + readonly provide: UnwrapRef + readonly provideLocal: UnwrapRef + readonly reactify: UnwrapRef + readonly reactifyObject: UnwrapRef + readonly reactive: UnwrapRef + readonly reactiveComputed: UnwrapRef + readonly reactiveOmit: UnwrapRef + readonly reactivePick: UnwrapRef + readonly readonly: UnwrapRef + readonly ref: UnwrapRef + readonly refAutoReset: UnwrapRef + readonly refDebounced: UnwrapRef + readonly refDefault: UnwrapRef + readonly refThrottled: UnwrapRef + readonly refWithControl: UnwrapRef + readonly resolveComponent: UnwrapRef + readonly resolveRef: UnwrapRef + readonly resolveUnref: UnwrapRef + readonly shallowReactive: UnwrapRef + readonly shallowReadonly: UnwrapRef + readonly shallowRef: UnwrapRef + readonly syncRef: UnwrapRef + readonly syncRefs: UnwrapRef + readonly templateRef: UnwrapRef + readonly throttledRef: UnwrapRef + readonly throttledWatch: UnwrapRef + readonly toRaw: UnwrapRef + readonly toReactive: UnwrapRef + readonly toRef: UnwrapRef + readonly toRefs: UnwrapRef + readonly toValue: UnwrapRef + readonly triggerRef: UnwrapRef + readonly tryOnBeforeMount: UnwrapRef + readonly tryOnBeforeUnmount: UnwrapRef + readonly tryOnMounted: UnwrapRef + readonly tryOnScopeDispose: UnwrapRef + readonly tryOnUnmounted: UnwrapRef + readonly unref: UnwrapRef + readonly unrefElement: UnwrapRef + readonly until: UnwrapRef + readonly useActiveElement: UnwrapRef + readonly useAnimate: UnwrapRef + readonly useArrayDifference: UnwrapRef + readonly useArrayEvery: UnwrapRef + readonly useArrayFilter: UnwrapRef + readonly useArrayFind: UnwrapRef + readonly useArrayFindIndex: UnwrapRef + readonly useArrayFindLast: UnwrapRef + readonly useArrayIncludes: UnwrapRef + readonly useArrayJoin: UnwrapRef + readonly useArrayMap: UnwrapRef + readonly useArrayReduce: UnwrapRef + readonly useArraySome: UnwrapRef + readonly useArrayUnique: UnwrapRef + readonly useAsyncQueue: UnwrapRef + readonly useAsyncState: UnwrapRef + readonly useAttrs: UnwrapRef + readonly useBase64: UnwrapRef + readonly useBattery: UnwrapRef + readonly useBluetooth: UnwrapRef + readonly useBreakpoints: UnwrapRef + readonly useBroadcastChannel: UnwrapRef + readonly useBrowserLocation: UnwrapRef + readonly useCached: UnwrapRef + readonly useClipboard: UnwrapRef + readonly useClipboardItems: UnwrapRef + readonly useCloned: UnwrapRef + readonly useColorMode: UnwrapRef + readonly useConfirmDialog: UnwrapRef + readonly useCounter: UnwrapRef + readonly useCssModule: UnwrapRef + readonly useCssVar: UnwrapRef + readonly useCssVars: UnwrapRef + readonly useCurrentElement: UnwrapRef + readonly useCycleList: UnwrapRef + readonly useDark: UnwrapRef + readonly useDateFormat: UnwrapRef + readonly useDebounce: UnwrapRef + readonly useDebounceFn: UnwrapRef + readonly useDebouncedRefHistory: UnwrapRef + readonly useDeviceMotion: UnwrapRef + readonly useDeviceOrientation: UnwrapRef + readonly useDevicePixelRatio: UnwrapRef + readonly useDevicesList: UnwrapRef + readonly useDisplayMedia: UnwrapRef + readonly useDocumentVisibility: UnwrapRef + readonly useDraggable: UnwrapRef + readonly useDropZone: UnwrapRef + readonly useElementBounding: UnwrapRef + readonly useElementByPoint: UnwrapRef + readonly useElementHover: UnwrapRef + readonly useElementSize: UnwrapRef + readonly useElementVisibility: UnwrapRef + readonly useEventBus: UnwrapRef + readonly useEventListener: UnwrapRef + readonly useEventSource: UnwrapRef + readonly useEyeDropper: UnwrapRef + readonly useFavicon: UnwrapRef + readonly useFetch: UnwrapRef + readonly useFileDialog: UnwrapRef + readonly useFileSystemAccess: UnwrapRef + readonly useFocus: UnwrapRef + readonly useFocusWithin: UnwrapRef + readonly useFps: UnwrapRef + readonly useFullscreen: UnwrapRef + readonly useGamepad: UnwrapRef + readonly useGeolocation: UnwrapRef + readonly useHead: UnwrapRef + readonly useI18n: UnwrapRef + readonly useId: UnwrapRef + readonly useIdle: UnwrapRef + readonly useImage: UnwrapRef + readonly useInfiniteScroll: UnwrapRef + readonly useIntersectionObserver: UnwrapRef + readonly useInterval: UnwrapRef + readonly useIntervalFn: UnwrapRef + readonly useKeyModifier: UnwrapRef + readonly useLastChanged: UnwrapRef + readonly useLink: UnwrapRef + readonly useLocalStorage: UnwrapRef + readonly useMagicKeys: UnwrapRef + readonly useManualRefHistory: UnwrapRef + readonly useMediaControls: UnwrapRef + readonly useMediaQuery: UnwrapRef + readonly useMemoize: UnwrapRef + readonly useMemory: UnwrapRef + readonly useModel: UnwrapRef + readonly useMounted: UnwrapRef + readonly useMouse: UnwrapRef + readonly useMouseInElement: UnwrapRef + readonly useMousePressed: UnwrapRef + readonly useMutationObserver: UnwrapRef + readonly useNavigatorLanguage: UnwrapRef + readonly useNetwork: UnwrapRef + readonly useNow: UnwrapRef + readonly useObjectUrl: UnwrapRef + readonly useOffsetPagination: UnwrapRef + readonly useOnline: UnwrapRef + readonly usePageLeave: UnwrapRef + readonly useParallax: UnwrapRef + readonly useParentElement: UnwrapRef + readonly usePerformanceObserver: UnwrapRef + readonly usePermission: UnwrapRef + readonly usePointer: UnwrapRef + readonly usePointerLock: UnwrapRef + readonly usePointerSwipe: UnwrapRef + readonly usePreferredColorScheme: UnwrapRef + readonly usePreferredContrast: UnwrapRef + readonly usePreferredDark: UnwrapRef + readonly usePreferredLanguages: UnwrapRef + readonly usePreferredReducedMotion: UnwrapRef + readonly usePrevious: UnwrapRef + readonly useRafFn: UnwrapRef + readonly useRefHistory: UnwrapRef + readonly useResizeObserver: UnwrapRef + readonly useRoute: UnwrapRef + readonly useRouter: UnwrapRef + readonly useScreenOrientation: UnwrapRef + readonly useScreenSafeArea: UnwrapRef + readonly useScriptTag: UnwrapRef + readonly useScroll: UnwrapRef + readonly useScrollLock: UnwrapRef + readonly useSeoMeta: UnwrapRef + readonly useSessionStorage: UnwrapRef + readonly useShare: UnwrapRef + readonly useSlots: UnwrapRef + readonly useSorted: UnwrapRef + readonly useSpeechRecognition: UnwrapRef + readonly useSpeechSynthesis: UnwrapRef + readonly useStepper: UnwrapRef + readonly useStorage: UnwrapRef + readonly useStorageAsync: UnwrapRef + readonly useStyleTag: UnwrapRef + readonly useSupported: UnwrapRef + readonly useSwipe: UnwrapRef + readonly useTemplateRef: UnwrapRef + readonly useTemplateRefsList: UnwrapRef + readonly useTextDirection: UnwrapRef + readonly useTextSelection: UnwrapRef + readonly useTextareaAutosize: UnwrapRef + readonly useThrottle: UnwrapRef + readonly useThrottleFn: UnwrapRef + readonly useThrottledRefHistory: UnwrapRef + readonly useTimeAgo: UnwrapRef + readonly useTimeout: UnwrapRef + readonly useTimeoutFn: UnwrapRef + readonly useTimeoutPoll: UnwrapRef + readonly useTimestamp: UnwrapRef + readonly useTitle: UnwrapRef + readonly useToNumber: UnwrapRef + readonly useToString: UnwrapRef + readonly useToggle: UnwrapRef + readonly useTransition: UnwrapRef + readonly useUrlSearchParams: UnwrapRef + readonly useUserMedia: UnwrapRef + readonly useVModel: UnwrapRef + readonly useVModels: UnwrapRef + readonly useVibrate: UnwrapRef + readonly useVirtualList: UnwrapRef + readonly useWakeLock: UnwrapRef + readonly useWebNotification: UnwrapRef + readonly useWebSocket: UnwrapRef + readonly useWebWorker: UnwrapRef + readonly useWebWorkerFn: UnwrapRef + readonly useWindowFocus: UnwrapRef + readonly useWindowScroll: UnwrapRef + readonly useWindowSize: UnwrapRef + readonly watch: UnwrapRef + readonly watchArray: UnwrapRef + readonly watchAtMost: UnwrapRef + readonly watchDebounced: UnwrapRef + readonly watchDeep: UnwrapRef + readonly watchEffect: UnwrapRef + readonly watchIgnorable: UnwrapRef + readonly watchImmediate: UnwrapRef + readonly watchOnce: UnwrapRef + readonly watchPausable: UnwrapRef + readonly watchPostEffect: UnwrapRef + readonly watchSyncEffect: UnwrapRef + readonly watchThrottled: UnwrapRef + readonly watchTriggerable: UnwrapRef + readonly watchWithFilter: UnwrapRef + readonly whenever: UnwrapRef + } +} \ No newline at end of file diff --git a/packages/stt-realtime-webgpu/src/components/AudioVisualizer.vue b/packages/stt-realtime-webgpu/src/components/AudioVisualizer.vue new file mode 100644 index 0000000..8e9850f --- /dev/null +++ b/packages/stt-realtime-webgpu/src/components/AudioVisualizer.vue @@ -0,0 +1,88 @@ + + + diff --git a/packages/stt-realtime-webgpu/src/components/Progress.vue b/packages/stt-realtime-webgpu/src/components/Progress.vue new file mode 100644 index 0000000..068b137 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/components/Progress.vue @@ -0,0 +1,25 @@ + + + diff --git a/packages/stt-realtime-webgpu/src/components/WhisperLanguageSelect.vue b/packages/stt-realtime-webgpu/src/components/WhisperLanguageSelect.vue new file mode 100644 index 0000000..b513598 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/components/WhisperLanguageSelect.vue @@ -0,0 +1,129 @@ + + + diff --git a/packages/stt-realtime-webgpu/src/constants/index.ts b/packages/stt-realtime-webgpu/src/constants/index.ts new file mode 100644 index 0000000..ec2492e --- /dev/null +++ b/packages/stt-realtime-webgpu/src/constants/index.ts @@ -0,0 +1,2 @@ +export const appName = 'Whisper Realtime (WebGPU) - Project アイリ' +export const appDescription = 'Whisper Realtime (WebGPU) - Project アイリ' diff --git a/packages/stt-realtime-webgpu/src/layouts/default.vue b/packages/stt-realtime-webgpu/src/layouts/default.vue new file mode 100644 index 0000000..f295004 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/layouts/default.vue @@ -0,0 +1,19 @@ + + + diff --git a/packages/stt-realtime-webgpu/src/libs/worker.js b/packages/stt-realtime-webgpu/src/libs/worker.js new file mode 100644 index 0000000..2fadc07 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/libs/worker.js @@ -0,0 +1,132 @@ +import { AutoProcessor, AutoTokenizer, full, TextStreamer, WhisperForConditionalGeneration } from '@huggingface/transformers' + +const MAX_NEW_TOKENS = 64 + +/** + * This class uses the Singleton pattern to ensure that only one instance of the model is loaded. + */ +class AutomaticSpeechRecognitionPipeline { + static model_id = null + static tokenizer = null + static processor = null + static model = null + + static async getInstance(progress_callback = null) { + this.model_id = 'onnx-community/whisper-base' + + this.tokenizer ??= AutoTokenizer.from_pretrained(this.model_id, { + progress_callback, + }) + + this.processor ??= AutoProcessor.from_pretrained(this.model_id, { + progress_callback, + }) + + this.model ??= WhisperForConditionalGeneration.from_pretrained(this.model_id, { + dtype: { + encoder_model: 'fp32', // 'fp16' works too + decoder_model_merged: 'q4', // or 'fp32' ('fp16' is broken) + }, + device: 'webgpu', + progress_callback, + }) + + return Promise.all([this.tokenizer, this.processor, this.model]) + } +} + +let processing = false +async function generate({ audio, language }) { + if (processing) + return + processing = true + + // Tell the main thread we are starting + globalThis.postMessage({ status: 'start' }) + + // Retrieve the text-generation pipeline. + const [tokenizer, processor, model] = await AutomaticSpeechRecognitionPipeline.getInstance() + + let startTime + let numTokens = 0 + const callback_function = (output) => { + startTime ??= performance.now() + + let tps + if (numTokens++ > 0) { + tps = numTokens / (performance.now() - startTime) * 1000 + } + globalThis.postMessage({ + status: 'update', + output, + tps, + numTokens, + }) + } + + const streamer = new TextStreamer(tokenizer, { + skip_prompt: true, + skip_special_tokens: true, + callback_function, + }) + + const inputs = await processor(audio) + + const outputs = await model.generate({ + ...inputs, + max_new_tokens: MAX_NEW_TOKENS, + language, + streamer, + }) + + const outputText = tokenizer.batch_decode(outputs, { skip_special_tokens: true }) + + // Send the output back to the main thread + globalThis.postMessage({ + status: 'complete', + output: outputText, + }) + processing = false +} + +async function load() { + globalThis.postMessage({ + status: 'loading', + data: 'Loading model...', + }) + + // Load the pipeline and save it for future use. + // eslint-disable-next-line no-unused-vars, unused-imports/no-unused-vars + const [tokenizer, processor, model] = await AutomaticSpeechRecognitionPipeline.getInstance((x) => { + // We also add a progress callback to the pipeline so that we can + // track model loading. + globalThis.postMessage(x) + }) + + globalThis.postMessage({ + status: 'loading', + data: 'Compiling shaders and warming up model...', + }) + + // Run model with dummy input to compile shaders + await model.generate({ + input_features: full([1, 80, 3000], 0.0), + max_new_tokens: 1, + }) + + globalThis.postMessage({ status: 'ready' }) +} +// Listen for messages from the main thread +globalThis.addEventListener('message', async (e) => { + const { type, data } = e.data + + switch (type) { + case 'load': + load() + break + + case 'generate': + generate(data) + break + } +}) diff --git a/packages/stt-realtime-webgpu/src/main.ts b/packages/stt-realtime-webgpu/src/main.ts new file mode 100644 index 0000000..10cd936 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/main.ts @@ -0,0 +1,39 @@ +import Tres from '@tresjs/core' +import NProgress from 'nprogress' +import { createPinia } from 'pinia' +import { setupLayouts } from 'virtual:generated-layouts' +import { createRouter, createWebHistory } from 'vue-router' +import { routes } from 'vue-router/auto-routes' + +import App from './App.vue' + +import i18n from './modules/i18n' +import '@unocss/reset/tailwind.css' +import './styles/main.css' +import 'uno.css' + +const pinia = createPinia() +const router = createRouter({ routes: setupLayouts(routes), history: createWebHistory() }) + +router.beforeEach((to, from) => { + if (to.path !== from.path) + NProgress.start() +}) + +router.afterEach(() => { + NProgress.done() +}) + +router.isReady() + .then(async () => { + const { registerSW } = await import('virtual:pwa-register') + registerSW({ immediate: true }) + }) + .catch(() => { }) + +createApp(App) + .use(router) + .use(pinia) + .use(i18n) + .use(Tres) + .mount('#app') diff --git a/packages/stt-realtime-webgpu/src/modules/i18n.ts b/packages/stt-realtime-webgpu/src/modules/i18n.ts new file mode 100644 index 0000000..5ab864f --- /dev/null +++ b/packages/stt-realtime-webgpu/src/modules/i18n.ts @@ -0,0 +1,52 @@ +import type { Plugin } from 'vue' +import type { Locale } from 'vue-i18n' +import { createI18n } from 'vue-i18n' + +// Import i18n resources +// https://vitejs.dev/guide/features.html#glob-import +// +// Don't need this? Try vitesse-lite: https://github.com/antfu/vitesse-lite +const i18n = createI18n({ + legacy: false, + locale: '', + messages: {}, +}) + +const localesMap = Object.fromEntries( + Object.entries(import.meta.glob('../../locales/*.yml')) + .map(([path, loadLocale]) => [path.match(/([\w-]*)\.yml$/)?.[1], loadLocale]), +) as Record Promise<{ default: Record }>> + +export const availableLocales = Object.keys(localesMap) + +const loadedLanguages: string[] = [] + +function setI18nLanguage(lang: Locale) { + i18n.global.locale.value = lang as any + if (typeof document !== 'undefined') + document.querySelector('html')?.setAttribute('lang', lang) + return lang +} + +export async function loadLanguageAsync(lang: string): Promise { + // If the same language + if (i18n.global.locale.value === lang) + return setI18nLanguage(lang) + + // If the language was already loaded + if (loadedLanguages.includes(lang)) + return setI18nLanguage(lang) + + // If the language hasn't been loaded yet + const messages = await localesMap[lang]() + i18n.global.setLocaleMessage(lang, messages.default) + loadedLanguages.push(lang) + return setI18nLanguage(lang) +} + +export default { + install: (app) => { + app.use(i18n) + loadLanguageAsync('en') + }, +} satisfies Plugin diff --git a/packages/stt-realtime-webgpu/src/pages/index.vue b/packages/stt-realtime-webgpu/src/pages/index.vue new file mode 100644 index 0000000..3d710b7 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/pages/index.vue @@ -0,0 +1,311 @@ + + + + + + meta: + layout: default + diff --git a/packages/stt-realtime-webgpu/src/shims.d.ts b/packages/stt-realtime-webgpu/src/shims.d.ts new file mode 100644 index 0000000..c1bffb0 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/shims.d.ts @@ -0,0 +1,18 @@ +declare interface Window { + // extend the window +} + +// with unplugin-vue-markdown, markdown files can be treated as Vue components +declare module '*.md' { + import type { DefineComponent } from 'vue' + + const component: DefineComponent + export default component +} + +declare module '*.vue' { + import type { DefineComponent } from 'vue' + + const component: DefineComponent + export default component +} diff --git a/packages/stt-realtime-webgpu/src/styles/main.css b/packages/stt-realtime-webgpu/src/styles/main.css new file mode 100755 index 0000000..bd2316c --- /dev/null +++ b/packages/stt-realtime-webgpu/src/styles/main.css @@ -0,0 +1,54 @@ +html, +body, +#app { + height: 100%; + margin: 0; + padding: 0; +} + +html.dark { + background: #121212; + color-scheme: dark; +} + +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + background: rgb(13, 148, 136); + opacity: 0.75; + position: fixed; + z-index: 1031; + top: 0; + left: 0; + width: 100%; + height: 2px; +} + +.scrollbar-thin::-webkit-scrollbar { + @apply w-2; +} + +.scrollbar-thin::-webkit-scrollbar-track { + @apply rounded-full bg-gray-100 dark:bg-gray-700; +} + +.scrollbar-thin::-webkit-scrollbar-thumb { + @apply rounded-full bg-gray-300 dark:bg-gray-600; +} + +.scrollbar-thin::-webkit-scrollbar-thumb:hover { + @apply bg-gray-500; +} + +.animation-delay-200 { + animation-delay: 200ms; +} +.animation-delay-400 { + animation-delay: 400ms; +} + +.overflow-wrap-anywhere { + overflow-wrap: anywhere; +} diff --git a/packages/stt-realtime-webgpu/src/typed-router.d.ts b/packages/stt-realtime-webgpu/src/typed-router.d.ts new file mode 100644 index 0000000..507aa91 --- /dev/null +++ b/packages/stt-realtime-webgpu/src/typed-router.d.ts @@ -0,0 +1,22 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-router. ‼️ DO NOT MODIFY THIS FILE ‼️ +// It's recommended to commit this file. +// Make sure to add this file to your tsconfig.json file as an "includes" or "files" entry. + +declare module 'vue-router/auto-routes' { + import type { + RouteRecordInfo, + ParamValue, + ParamValueOneOrMore, + ParamValueZeroOrMore, + ParamValueZeroOrOne, + } from 'vue-router' + + /** + * Route name map generated by unplugin-vue-router + */ + export interface RouteNamedMap { + } +} diff --git a/packages/stt-realtime-webgpu/tsconfig.json b/packages/stt-realtime-webgpu/tsconfig.json new file mode 100644 index 0000000..c9c9ecf --- /dev/null +++ b/packages/stt-realtime-webgpu/tsconfig.json @@ -0,0 +1,38 @@ +{ + "compilerOptions": { + "target": "ESNext", + "jsx": "preserve", + "lib": ["DOM", "ESNext"], + "baseUrl": ".", + "module": "ESNext", + "moduleResolution": "Bundler", + "paths": { + "~/*": ["src/*"] + }, + "resolveJsonModule": true, + "types": [ + "vitest", + "vite/client", + "vite-plugin-vue-layouts/client", + "vite-plugin-pwa/client", + "unplugin-vue-macros/macros-global", + "unplugin-vue-router/client" + ], + "allowJs": true, + "strict": true, + "strictNullChecks": true, + "noUnusedLocals": true, + "noEmit": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "isolatedModules": true, + "skipLibCheck": true + }, + "vueCompilerOptions": { + "plugins": [ + "@vue-macros/volar/define-models", + "@vue-macros/volar/define-slots" + ] + }, + "exclude": ["dist", "node_modules", "cypress"] +} diff --git a/packages/stt-realtime-webgpu/uno.config.ts b/packages/stt-realtime-webgpu/uno.config.ts new file mode 100644 index 0000000..150f2e0 --- /dev/null +++ b/packages/stt-realtime-webgpu/uno.config.ts @@ -0,0 +1,3 @@ +import UnoCSSConfig from '../../uno.config' + +export default UnoCSSConfig diff --git a/packages/stt-realtime-webgpu/vite.config.ts b/packages/stt-realtime-webgpu/vite.config.ts new file mode 100644 index 0000000..b09fe5e --- /dev/null +++ b/packages/stt-realtime-webgpu/vite.config.ts @@ -0,0 +1,123 @@ +import path from 'node:path' + +import VueI18n from '@intlify/unplugin-vue-i18n/vite' +import { templateCompilerOptions } from '@tresjs/core' +import Vue from '@vitejs/plugin-vue' +import Unocss from 'unocss/vite' +import AutoImport from 'unplugin-auto-import/vite' +import Components from 'unplugin-vue-components/vite' +import VueMacros from 'unplugin-vue-macros/vite' +import { VueRouterAutoImports } from 'unplugin-vue-router' +import VueRouter from 'unplugin-vue-router/vite' +import { defineConfig } from 'vite' +import { VitePWA } from 'vite-plugin-pwa' +import VueDevTools from 'vite-plugin-vue-devtools' +import Layouts from 'vite-plugin-vue-layouts' +import WebfontDownload from 'vite-plugin-webfont-dl' + +import { appName } from './src/constants' + +export default defineConfig({ + optimizeDeps: { + exclude: [ + 'public/assets/*', + ], + }, + + resolve: { + alias: { + '~/': `${path.resolve(__dirname, 'src')}/`, + }, + }, + + plugins: [ + VueMacros({ + plugins: { + vue: Vue({ + include: [/\.vue$/, /\.md$/], + ...templateCompilerOptions, + }), + }, + }), + + // https://github.com/posva/unplugin-vue-router + VueRouter({ + extensions: ['.vue', '.md'], + dts: path.resolve(__dirname, 'src/typed-router.d.ts'), + }), + + // https://github.com/JohnCampionJr/vite-plugin-vue-layouts + Layouts(), + + // https://github.com/antfu/unplugin-auto-import + AutoImport({ + imports: [ + 'vue', + 'vue-i18n', + '@vueuse/head', + '@vueuse/core', + VueRouterAutoImports, + { + // add any other imports you were relying on + 'vue-router/auto': ['useLink'], + }, + ], + dts: 'src/auto-imports.d.ts', + dirs: [ + 'src/composables', + 'src/stores', + ], + vueTemplate: true, + }), + + // https://github.com/antfu/unplugin-vue-components + Components({ + // allow auto load markdown components under `./src/components/` + extensions: ['vue', 'md'], + // allow auto import and register components used in markdown + include: [/\.vue$/, /\.vue\?vue/, /\.md$/], + dts: 'src/components.d.ts', + }), + + // https://github.com/antfu/unocss + // see uno.config.ts for config + Unocss(), + + // https://github.com/antfu/vite-plugin-pwa + VitePWA({ + registerType: 'autoUpdate', + includeAssets: ['favicon.svg', 'apple-touch-icon.png'], + manifest: { + name: appName, + short_name: appName, + theme_color: '#ffffff', + icons: [ + { + src: '/web-app-manifest-192x192.png', + sizes: '192x192', + type: 'image/png', + }, + { + src: '/web-app-manifest-512x512.png', + sizes: '512x512', + type: 'image/png', + }, + ], + }, + }), + + // https://github.com/intlify/bundle-tools/tree/main/packages/unplugin-vue-i18n + VueI18n({ + runtimeOnly: true, + compositionOnly: true, + fullInstall: true, + include: [path.resolve(__dirname, 'locales/**')], + }), + + // https://github.com/feat-agency/vite-plugin-webfont-dl + WebfontDownload(), + + // https://github.com/webfansplz/vite-plugin-vue-devtools + VueDevTools(), + ], +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ea2722..f0b49f4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -240,7 +240,7 @@ importers: version: 1.2.1 '@intlify/unplugin-vue-i18n': specifier: ^6.0.0 - version: 6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0(jiti@2.4.0))(rollup@2.79.1)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + version: 6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0(jiti@2.4.0))(rollup@4.28.0)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) '@shikijs/markdown-it': specifier: ^1.24.0 version: 1.24.0 @@ -256,6 +256,112 @@ importers: '@vitejs/plugin-vue': specifier: ^5.2.1 version: 5.2.1(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/volar': + specifier: ^0.30.6 + version: 0.30.6(rollup@4.28.0)(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) + markdown-it-link-attributes: + specifier: ^4.0.1 + version: 4.0.1 + shiki: + specifier: ^1.24.0 + version: 1.24.0 + unplugin-auto-import: + specifier: ^0.18.6 + version: 0.18.6(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@4.28.0) + unplugin-vue-components: + specifier: ^0.27.5 + version: 0.27.5(@babel/parser@7.26.2)(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin-vue-macros: + specifier: ^2.13.4 + version: 2.13.4(@vueuse/core@12.0.0(typescript@5.7.2))(esbuild@0.24.0)(rollup@4.28.0)(typescript@5.7.2)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) + unplugin-vue-markdown: + specifier: ^0.27.1 + version: 0.27.1(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)) + unplugin-vue-router: + specifier: ^0.10.8 + version: 0.10.8(rollup@4.28.0)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + vite-bundle-visualizer: + specifier: ^1.2.1 + version: 1.2.1(rollup@4.28.0) + vite-plugin-pwa: + specifier: ^0.21.1 + version: 0.21.1(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + vite-plugin-vue-devtools: + specifier: ^7.6.7 + version: 7.6.7(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue@3.5.13(typescript@5.7.2)) + vite-plugin-vue-layouts: + specifier: ^0.11.0 + version: 0.11.0(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + vite-plugin-webfont-dl: + specifier: ^3.10.2 + version: 3.10.2(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)) + vue-tsc: + specifier: ^2.1.10 + version: 2.1.10(typescript@5.7.2) + + packages/stt-realtime-webgpu: + dependencies: + '@unhead/vue': + specifier: ^1.11.13 + version: 1.11.13(vue@3.5.13(typescript@5.7.2)) + '@unocss/reset': + specifier: ^0.65.0 + version: 0.65.0 + '@vueuse/core': + specifier: ^12.0.0 + version: 12.0.0(typescript@5.7.2) + '@vueuse/head': + specifier: ^2.0.0 + version: 2.0.0(vue@3.5.13(typescript@5.7.2)) + nprogress: + specifier: ^0.2.0 + version: 0.2.0 + ofetch: + specifier: ^1.4.1 + version: 1.4.1 + pinia: + specifier: ^2.2.8 + version: 2.2.8(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)) + vue: + specifier: ^3.5.13 + version: 3.5.13(typescript@5.7.2) + vue-demi: + specifier: ^0.14.10 + version: 0.14.10(vue@3.5.13(typescript@5.7.2)) + vue-i18n: + specifier: ^10.0.5 + version: 10.0.5(vue@3.5.13(typescript@5.7.2)) + vue-router: + specifier: ^4.5.0 + version: 4.5.0(vue@3.5.13(typescript@5.7.2)) + devDependencies: + '@huggingface/transformers': + specifier: ^3.1.2 + version: 3.1.2 + '@iconify-json/carbon': + specifier: ^1.2.4 + version: 1.2.4 + '@iconify-json/eos-icons': + specifier: ^1.2.1 + version: 1.2.1 + '@iconify-json/solar': + specifier: ^1.2.1 + version: 1.2.1 + '@intlify/unplugin-vue-i18n': + specifier: ^6.0.0 + version: 6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0(jiti@2.4.0))(rollup@2.79.1)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + '@shikijs/markdown-it': + specifier: ^1.24.0 + version: 1.24.0 + '@types/markdown-it-link-attributes': + specifier: ^3.0.5 + version: 3.0.5 + '@types/nprogress': + specifier: ^0.2.3 + version: 0.2.3 + '@vitejs/plugin-vue': + specifier: ^5.2.1 + version: 5.2.1(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue@3.5.13(typescript@5.7.2)) '@vue-macros/volar': specifier: ^0.30.6 version: 0.30.6(rollup@2.79.1)(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) @@ -1629,6 +1735,13 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} + '@huggingface/jinja@0.3.2': + resolution: {integrity: sha512-F2FvuIc+w1blGsaqJI/OErRbWH6bVJDCBI8Rm5D86yZ2wlwrGERsfIaru7XUv9eYC3DMP3ixDRRtF0h6d8AZcQ==} + engines: {node: '>=18'} + + '@huggingface/transformers@3.1.2': + resolution: {integrity: sha512-+YKHashFDkZbjqTKPyhfRHiIxe1fl5/KqOr3zIHzXmUKhDSH4pwQ2Q58iXT5CUL6iSaZd93x+ep4VmvW6dLAlw==} + '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} @@ -1664,6 +1777,111 @@ packages: '@iconify/utils@2.1.33': resolution: {integrity: sha512-jP9h6v/g0BIZx0p7XGJJVtkVnydtbgTgt9mVNcGDYwaa7UhdHdI9dvoq+gKj9sijMSJKxUPEG2JyjsgXjxL7Kw==} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + '@intlify/bundle-utils@10.0.0': resolution: {integrity: sha512-BR5yLOkF2dzrARTbAg7RGAIPcx9Aark7p1K/0O285F7rfzso9j2dsa+S4dA67clZ0rToZ10NSSTfbyUptVu7Bg==} engines: {node: '>= 18'} @@ -1727,6 +1945,14 @@ packages: vue-i18n: optional: true + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@isaacs/fs-minipass@4.0.1': + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} + '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -1977,6 +2203,10 @@ packages: '@pixiv/types-vrmc-vrm-animation-1.0@3.3.0': resolution: {integrity: sha512-jgmiBPldGmrWbn0EUMt51bb8cSZqBw43bUYHcQfTar70OyVC1h25aV1B34nTNzl1IDPX2QnV2FdOPASpRtRYAA==} + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + '@pkgr/core@0.1.0': resolution: {integrity: sha512-Zwq5OCzuwJC2jwqmpEQt7Ds1DTi6BWSwoGkbb1n9pO3hzb35BoJELx7c0T23iDkBGkh2e7tvOtjF3tr3OaQHDQ==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -1984,6 +2214,36 @@ packages: '@polka/url@1.0.0-next.24': resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} + '@protobufjs/aspromise@1.1.2': + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + + '@protobufjs/base64@1.1.2': + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + + '@protobufjs/codegen@2.0.4': + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + + '@protobufjs/eventemitter@1.1.0': + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + + '@protobufjs/fetch@1.1.0': + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + + '@protobufjs/float@1.0.2': + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + + '@protobufjs/inquire@1.1.0': + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + + '@protobufjs/path@1.1.2': + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + + '@protobufjs/pool@1.1.0': + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + + '@protobufjs/utf8@1.1.0': + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + '@rollup/plugin-alias@5.1.1': resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==} engines: {node: '>=14.0.0'} @@ -3099,6 +3359,10 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chownr@3.0.0: + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} + ci-info@4.0.0: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} @@ -3133,6 +3397,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -3398,6 +3669,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -3434,6 +3709,9 @@ packages: earcut@2.2.4: resolution: {integrity: sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==} + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -3460,6 +3738,9 @@ packages: emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@1.0.2: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} @@ -3900,6 +4181,9 @@ packages: flat-cache@6.1.2: resolution: {integrity: sha512-WakhGOkx886u7DJGpgMpUU81VUYHyQlXuqPDI53g6lIVHf7Shepr/XGo7Qa0yYOPwyMItQs34dG7X0KgnHwWtQ==} + flatbuffers@1.12.0: + resolution: {integrity: sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==} + flatted@3.3.1: resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} @@ -3915,6 +4199,10 @@ packages: for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + form-data-encoder@4.0.2: resolution: {integrity: sha512-KQVhvhK8ZkWzxKxOr56CPulAhH3dobtuQ4+hNQ+HekH/Wp5gSOafqRAeTphQUJAIk0GBvHZgJ2ZGRWd5kphMuw==} engines: {node: '>= 18'} @@ -4033,6 +4321,10 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported @@ -4083,6 +4375,9 @@ packages: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} + guid-typescript@1.0.9: + resolution: {integrity: sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==} + gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -4252,6 +4547,9 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -4415,6 +4713,9 @@ packages: itty-time@1.0.6: resolution: {integrity: sha512-+P8IZaLLBtFv8hCkIjcymZOp4UJ+xW6bSlQsXGqrkmJh7vSiMFSlNne0mCYagEE0N7HDNR5jJBRxwN0oYv61Rw==} + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + jake@10.8.6: resolution: {integrity: sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA==} engines: {node: '>=10'} @@ -4590,6 +4891,9 @@ packages: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} + long@5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -4600,6 +4904,9 @@ packages: loupe@3.1.2: resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -4847,10 +5154,18 @@ packages: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} + minizlib@3.0.1: + resolution: {integrity: sha512-umcy022ILvb5/3Djuu8LWeqUa8D68JaBzlttKeMWen48SjabqS3iY5w/vzeMzMUNhLDifyhbOwKDSznB1vvrwg==} + engines: {node: '>= 18'} + mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -4859,6 +5174,11 @@ packages: engines: {node: '>=10'} hasBin: true + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + mkdist@1.6.0: resolution: {integrity: sha512-nD7J/mx33Lwm4Q4qoPgRBVA9JQNKgyE7fLo5vdPWVDdjz96pXglGERp/fRnGPCTB37Kykfxs5bDdXa9BWOT9nw==} hasBin: true @@ -5026,6 +5346,19 @@ packages: oniguruma-to-es@0.7.0: resolution: {integrity: sha512-HRaRh09cE0gRS3+wi2zxekB+I5L8C/gN60S+vb11eADHUaB/q4u8wGGOX3GvwvitG8ixaeycZfeoyruKQzUgNg==} + onnxruntime-common@1.20.1: + resolution: {integrity: sha512-YiU0s0IzYYC+gWvqD1HzLc46Du1sXpSiwzKb63PACIJr6LfL27VsXSXQvt68EzD3V0D5Bc0vyJTjmMxp0ylQiw==} + + onnxruntime-common@1.21.0-dev.20241205-6ed77cc374: + resolution: {integrity: sha512-U4DGq/dZiboIEK0Zv1KUuWJesJ/txUALpWSXwI8kqOCSxe8GrI65xfRFeMbqYFhPVGAWZPsBpT1zo1s4ksrlrg==} + + onnxruntime-node@1.20.1: + resolution: {integrity: sha512-di/I4HDXRw+FLgq+TyHmQEDd3cEp9iFFZm0r4uJ1Wd7b/WE1VXtKWo8yemex347c6GNF/3Pv86ZfPhIWxORr0w==} + os: [win32, darwin, linux] + + onnxruntime-web@1.21.0-dev.20241205-d27fecd3d3: + resolution: {integrity: sha512-neeC9mv1sFWjUFrTaDl7enufNxbtSSTwR5V2i35ga4yXWS6r1MbpUwWwD1X+VKANujbSG8M5pk/ohRAOm2QhMQ==} + open@10.1.0: resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} engines: {node: '>=18'} @@ -5061,6 +5394,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + package-manager-detector@0.2.5: resolution: {integrity: sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ==} @@ -5113,6 +5449,10 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -5189,6 +5529,9 @@ packages: pkg-types@1.2.1: resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + platform@1.3.6: + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -5426,6 +5769,10 @@ packages: property-information@6.5.0: resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + protobufjs@7.4.0: + resolution: {integrity: sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==} + engines: {node: '>=12.0.0'} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -5603,6 +5950,10 @@ packages: rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + rollup-plugin-dts@6.1.1: resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} engines: {node: '>=16'} @@ -5723,6 +6074,10 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -5752,6 +6107,9 @@ packages: resolution: {integrity: sha512-tgqwPUMDcNDhuf1Xf6KTUsyeqGdgKMhzaH4PAZZuzguOgTl5uuyeYe/8mWgAr6IBxB5V06uqEf6Dy37gIWDtDg==} hasBin: true + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -5869,6 +6227,10 @@ packages: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + string-width@7.0.0: resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} engines: {node: '>=18'} @@ -5990,6 +6352,10 @@ packages: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} + tar@7.4.3: + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + taze@0.18.0: resolution: {integrity: sha512-aL8g+4tZvfhsn147u9dRP2eUE2MV+HfJe1sAtSJp46b0Gd8AjyqlJ2uDwnJfM1XNv301Mvh98RkXQw27sco5tQ==} hasBin: true @@ -6735,6 +7101,10 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + wrap-ansi@9.0.0: resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} engines: {node: '>=18'} @@ -6782,6 +7152,10 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@5.0.0: + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} + yaml-eslint-parser@1.2.3: resolution: {integrity: sha512-4wZWvE398hCP7O8n3nXKu/vdq1HcH01ixYlCREaJL5NUMwQ0g3MaGFUBNSlmBtKmhbtVG/Cm6lyYmSVTEVil8A==} engines: {node: ^14.17.0 || >=16.0.0} @@ -8097,6 +8471,15 @@ snapshots: '@fastify/busboy@2.1.1': {} + '@huggingface/jinja@0.3.2': {} + + '@huggingface/transformers@3.1.2': + dependencies: + '@huggingface/jinja': 0.3.2 + onnxruntime-node: 1.20.1 + onnxruntime-web: 1.21.0-dev.20241205-d27fecd3d3 + sharp: 0.33.5 + '@humanfs/core@0.19.1': {} '@humanfs/node@0.16.6': @@ -8136,43 +8519,118 @@ snapshots: transitivePeerDependencies: - supports-color - '@intlify/bundle-utils@10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))': - dependencies: - '@intlify/message-compiler': 11.0.0-beta.2 - '@intlify/shared': 11.0.0-beta.2 - acorn: 8.14.0 - escodegen: 2.1.0 - estree-walker: 2.0.2 - jsonc-eslint-parser: 2.4.0 - mlly: 1.7.3 - source-map-js: 1.2.1 - yaml-eslint-parser: 1.2.3 + '@img/sharp-darwin-arm64@0.33.5': optionalDependencies: - vue-i18n: 10.0.5(vue@3.5.13(typescript@5.7.2)) + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true - '@intlify/core-base@10.0.5': - dependencies: - '@intlify/message-compiler': 10.0.5 - '@intlify/shared': 10.0.5 + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true - '@intlify/message-compiler@10.0.5': - dependencies: - '@intlify/shared': 10.0.5 - source-map-js: 1.2.1 + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true - '@intlify/message-compiler@11.0.0-beta.2': - dependencies: - '@intlify/shared': 11.0.0-beta.2 - source-map-js: 1.2.1 + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true - '@intlify/shared@10.0.5': {} + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true - '@intlify/shared@11.0.0-beta.2': {} + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true - '@intlify/unplugin-vue-i18n@6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0(jiti@2.4.0))(rollup@2.79.1)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': - dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) - '@intlify/bundle-utils': 10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2))) + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@intlify/bundle-utils@10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))': + dependencies: + '@intlify/message-compiler': 11.0.0-beta.2 + '@intlify/shared': 11.0.0-beta.2 + acorn: 8.14.0 + escodegen: 2.1.0 + estree-walker: 2.0.2 + jsonc-eslint-parser: 2.4.0 + mlly: 1.7.3 + source-map-js: 1.2.1 + yaml-eslint-parser: 1.2.3 + optionalDependencies: + vue-i18n: 10.0.5(vue@3.5.13(typescript@5.7.2)) + + '@intlify/core-base@10.0.5': + dependencies: + '@intlify/message-compiler': 10.0.5 + '@intlify/shared': 10.0.5 + + '@intlify/message-compiler@10.0.5': + dependencies: + '@intlify/shared': 10.0.5 + source-map-js: 1.2.1 + + '@intlify/message-compiler@11.0.0-beta.2': + dependencies: + '@intlify/shared': 11.0.0-beta.2 + source-map-js: 1.2.1 + + '@intlify/shared@10.0.5': {} + + '@intlify/shared@11.0.0-beta.2': {} + + '@intlify/unplugin-vue-i18n@6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0(jiti@2.4.0))(rollup@2.79.1)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) + '@intlify/bundle-utils': 10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2))) '@intlify/shared': 10.0.5 '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) '@rollup/pluginutils': 5.1.3(rollup@2.79.1) @@ -8196,6 +8654,33 @@ snapshots: - supports-color - typescript + '@intlify/unplugin-vue-i18n@6.0.0(@vue/compiler-dom@3.5.13)(eslint@9.16.0(jiti@2.4.0))(rollup@4.28.0)(typescript@5.7.2)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.0)) + '@intlify/bundle-utils': 10.0.0(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2))) + '@intlify/shared': 10.0.5 + '@intlify/vue-i18n-extensions': 7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@typescript-eslint/scope-manager': 8.16.0 + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) + debug: 4.3.7 + fast-glob: 3.3.2 + js-yaml: 4.1.0 + json5: 2.2.3 + pathe: 1.1.2 + picocolors: 1.1.1 + source-map-js: 1.2.1 + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + optionalDependencies: + vue-i18n: 10.0.5(vue@3.5.13(typescript@5.7.2)) + transitivePeerDependencies: + - '@vue/compiler-dom' + - eslint + - rollup + - supports-color + - typescript + '@intlify/vue-i18n-extensions@7.0.0(@intlify/shared@10.0.5)(@vue/compiler-dom@3.5.13)(vue-i18n@10.0.5(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2))': dependencies: '@babel/parser': 7.26.2 @@ -8205,6 +8690,19 @@ snapshots: vue: 3.5.13(typescript@5.7.2) vue-i18n: 10.0.5(vue@3.5.13(typescript@5.7.2)) + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/fs-minipass@4.0.1': + dependencies: + minipass: 7.1.2 + '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -8449,10 +8947,36 @@ snapshots: dependencies: '@pixiv/types-vrmc-vrm-1.0': 2.0.3 + '@pkgjs/parseargs@0.11.0': + optional: true + '@pkgr/core@0.1.0': {} '@polka/url@1.0.0-next.24': {} + '@protobufjs/aspromise@1.1.2': {} + + '@protobufjs/base64@1.1.2': {} + + '@protobufjs/codegen@2.0.4': {} + + '@protobufjs/eventemitter@1.1.0': {} + + '@protobufjs/fetch@1.1.0': + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/inquire': 1.1.0 + + '@protobufjs/float@1.0.2': {} + + '@protobufjs/inquire@1.1.0': {} + + '@protobufjs/path@1.1.2': {} + + '@protobufjs/pool@1.1.0': {} + + '@protobufjs/utf8@1.1.0': {} + '@rollup/plugin-alias@5.1.1(rollup@4.28.0)': optionalDependencies: rollup: 4.28.0 @@ -9135,6 +9659,15 @@ snapshots: - rollup - vue + '@vue-macros/api@0.13.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@babel/types': 7.26.0 + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + oxc-resolver: 2.0.1 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/better-define@1.11.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/api': 0.13.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9144,6 +9677,15 @@ snapshots: - rollup - vue + '@vue-macros/better-define@1.11.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/api': 0.13.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/boolean-prop@0.5.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9152,6 +9694,14 @@ snapshots: - rollup - vue + '@vue-macros/boolean-prop@0.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-core': 3.5.13 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/chain-call@0.4.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9160,6 +9710,14 @@ snapshots: - rollup - vue + '@vue-macros/chain-call@0.4.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/common@1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@babel/types': 7.26.0 @@ -9173,6 +9731,19 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/common@1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@babel/types': 7.26.0 + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@vue/compiler-sfc': 3.5.13 + ast-kit: 1.3.1 + local-pkg: 0.5.1 + magic-string-ast: 0.6.2 + optionalDependencies: + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/config@0.5.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9183,6 +9754,16 @@ snapshots: - supports-color - vue + '@vue-macros/config@0.5.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + make-synchronized: 0.2.9 + unconfig: 0.6.0 + transitivePeerDependencies: + - rollup + - supports-color + - vue + '@vue-macros/define-emit@0.5.1(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9191,6 +9772,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/define-emit@0.5.1(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/define-models@1.3.2(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9202,6 +9791,17 @@ snapshots: - rollup - vue + '@vue-macros/define-models@1.3.2(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + ast-walker-scope: 0.6.2 + unplugin: 1.16.0 + optionalDependencies: + '@vueuse/core': 12.0.0(typescript@5.7.2) + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/define-prop@0.6.1(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/api': 0.13.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9211,6 +9811,15 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/define-prop@0.6.1(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/api': 0.13.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/define-props-refs@1.3.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9219,6 +9828,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/define-props-refs@1.3.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/define-props@4.0.3(@vue-macros/reactivity-transform@1.1.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)))(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9228,6 +9845,15 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/define-props@4.0.3(@vue-macros/reactivity-transform@1.1.3(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)))(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/reactivity-transform': 1.1.3(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/define-render@1.6.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9236,6 +9862,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/define-render@1.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/define-slots@1.2.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9244,6 +9878,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/define-slots@1.2.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/define-stylex@0.2.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9253,6 +9895,15 @@ snapshots: - rollup - vue + '@vue-macros/define-stylex@0.2.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-dom': 3.5.13 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/devtools@0.4.0(typescript@5.7.2)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))': dependencies: sirv: 2.0.4 @@ -9271,6 +9922,15 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/export-expose@0.3.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-sfc': 3.5.13 + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/export-props@0.6.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9279,6 +9939,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/export-props@0.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/export-render@0.3.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9287,6 +9955,14 @@ snapshots: transitivePeerDependencies: - rollup + '@vue-macros/export-render@0.3.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + '@vue-macros/hoist-static@1.6.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9295,6 +9971,14 @@ snapshots: - rollup - vue + '@vue-macros/hoist-static@1.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/jsx-directive@0.9.3(rollup@2.79.1)(typescript@5.7.2)': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9304,6 +9988,15 @@ snapshots: - rollup - typescript + '@vue-macros/jsx-directive@0.9.3(rollup@4.28.0)(typescript@5.7.2)': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + - typescript + '@vue-macros/named-template@0.5.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9313,6 +10006,15 @@ snapshots: - rollup - vue + '@vue-macros/named-template@0.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-dom': 3.5.13 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/reactivity-transform@1.1.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@babel/parser': 7.26.2 @@ -9325,24 +10027,69 @@ snapshots: transitivePeerDependencies: - rollup - '@vue-macros/script-lang@0.2.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': + '@vue-macros/reactivity-transform@1.1.3(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@babel/parser': 7.26.2 + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + magic-string: 0.30.14 + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + + '@vue-macros/script-lang@0.2.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + + '@vue-macros/script-lang@0.2.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - rollup + + '@vue-macros/setup-block@0.4.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-dom': 3.5.13 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + + '@vue-macros/setup-block@0.4.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-dom': 3.5.13 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + + '@vue-macros/setup-component@0.18.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) unplugin: 1.16.0 - vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: - rollup + - vue - '@vue-macros/setup-block@0.4.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': + '@vue-macros/setup-component@0.18.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': dependencies: - '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) - '@vue/compiler-dom': 3.5.13 + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) unplugin: 1.16.0 transitivePeerDependencies: - rollup - vue - '@vue-macros/setup-component@0.18.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': + '@vue-macros/setup-sfc@0.18.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) unplugin: 1.16.0 @@ -9350,9 +10097,9 @@ snapshots: - rollup - vue - '@vue-macros/setup-sfc@0.18.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': + '@vue-macros/setup-sfc@0.18.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': dependencies: - '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) unplugin: 1.16.0 transitivePeerDependencies: - rollup @@ -9366,6 +10113,14 @@ snapshots: - rollup - vue + '@vue-macros/short-bind@1.1.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-core': 3.5.13 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/short-emits@1.6.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9374,6 +10129,14 @@ snapshots: - rollup - vue + '@vue-macros/short-emits@1.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/short-vmodel@1.5.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9382,6 +10145,14 @@ snapshots: - rollup - vue + '@vue-macros/short-vmodel@1.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/compiler-core': 3.5.13 + transitivePeerDependencies: + - rollup + - vue + '@vue-macros/volar@0.30.6(rollup@2.79.1)(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue-macros/boolean-prop': 0.5.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -9399,6 +10170,23 @@ snapshots: - typescript - vue + '@vue-macros/volar@0.30.6(rollup@4.28.0)(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2))': + dependencies: + '@vue-macros/boolean-prop': 0.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/config': 0.5.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/short-bind': 1.1.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/short-vmodel': 1.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue/language-core': 2.1.10(typescript@5.7.2) + muggle-string: 0.4.1 + optionalDependencies: + vue-tsc: 2.1.10(typescript@5.7.2) + transitivePeerDependencies: + - rollup + - supports-color + - typescript + - vue + '@vue/babel-helper-vue-transform-on@1.1.5': {} '@vue/babel-plugin-jsx@1.1.5(@babel/core@7.25.2)': @@ -9928,6 +10716,8 @@ snapshots: chownr@2.0.0: {} + chownr@3.0.0: {} + ci-info@4.0.0: {} citty@0.1.6: @@ -9963,6 +10753,16 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + colord@2.9.3: {} colorette@2.0.20: {} @@ -10207,6 +11007,8 @@ snapshots: destroy@1.2.0: {} + detect-libc@2.0.3: {} + detect-node@2.1.0: {} devlop@1.1.0: @@ -10243,6 +11045,8 @@ snapshots: earcut@2.2.4: {} + eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} ejs@3.1.9: @@ -10273,6 +11077,8 @@ snapshots: emoji-regex@8.0.0: {} + emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} enhanced-resolve@5.17.1: @@ -10981,6 +11787,8 @@ snapshots: flatted: 3.3.1 hookified: 1.5.1 + flatbuffers@1.12.0: {} + flatted@3.3.1: {} follow-redirects@1.15.2: {} @@ -10989,6 +11797,11 @@ snapshots: dependencies: is-callable: 1.2.7 + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + form-data-encoder@4.0.2: {} form-data@4.0.0: @@ -11114,6 +11927,15 @@ snapshots: glob-to-regexp@0.4.1: {} + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@7.2.3: dependencies: fs.realpath: 1.0.0 @@ -11168,6 +11990,8 @@ snapshots: section-matter: 1.0.0 strip-bom-string: 1.0.0 + guid-typescript@1.0.9: {} + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 @@ -11365,6 +12189,8 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 @@ -11492,6 +12318,12 @@ snapshots: itty-time@1.0.6: {} + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jake@10.8.6: dependencies: async: 3.2.4 @@ -11676,6 +12508,8 @@ snapshots: strip-ansi: 7.1.0 wrap-ansi: 9.0.0 + long@5.2.3: {} + longest-streak@3.1.0: {} loose-envify@1.4.0: @@ -11685,6 +12519,8 @@ snapshots: loupe@3.1.2: {} + lru-cache@10.4.3: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -12110,15 +12946,24 @@ snapshots: minipass@5.0.0: {} + minipass@7.1.2: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 + minizlib@3.0.1: + dependencies: + minipass: 7.1.2 + rimraf: 5.0.10 + mitt@3.0.1: {} mkdirp@1.0.4: {} + mkdirp@3.0.1: {} + mkdist@1.6.0(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2)): dependencies: autoprefixer: 10.4.20(postcss@8.4.49) @@ -12268,6 +13113,24 @@ snapshots: regex: 5.0.2 regex-recursion: 4.3.0 + onnxruntime-common@1.20.1: {} + + onnxruntime-common@1.21.0-dev.20241205-6ed77cc374: {} + + onnxruntime-node@1.20.1: + dependencies: + onnxruntime-common: 1.20.1 + tar: 7.4.3 + + onnxruntime-web@1.21.0-dev.20241205-d27fecd3d3: + dependencies: + flatbuffers: 1.12.0 + guid-typescript: 1.0.9 + long: 5.2.3 + onnxruntime-common: 1.21.0-dev.20241205-6ed77cc374 + platform: 1.3.6 + protobufjs: 7.4.0 + open@10.1.0: dependencies: default-browser: 5.2.1 @@ -12322,6 +13185,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.1: {} + package-manager-detector@0.2.5: {} parent-module@1.0.1: @@ -12363,6 +13228,11 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-to-regexp@0.1.7: {} path-to-regexp@6.3.0: {} @@ -12419,6 +13289,8 @@ snapshots: mlly: 1.7.3 pathe: 1.1.2 + platform@1.3.6: {} + pluralize@8.0.0: {} pnpm@9.14.4: {} @@ -12626,6 +13498,21 @@ snapshots: property-information@6.5.0: {} + protobufjs@7.4.0: + dependencies: + '@protobufjs/aspromise': 1.1.2 + '@protobufjs/base64': 1.1.2 + '@protobufjs/codegen': 2.0.4 + '@protobufjs/eventemitter': 1.1.0 + '@protobufjs/fetch': 1.1.0 + '@protobufjs/float': 1.0.2 + '@protobufjs/inquire': 1.1.0 + '@protobufjs/path': 1.1.2 + '@protobufjs/pool': 1.1.0 + '@protobufjs/utf8': 1.1.0 + '@types/node': 22.10.1 + long: 5.2.3 + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -12832,6 +13719,10 @@ snapshots: rfdc@1.4.1: {} + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + rollup-plugin-dts@6.1.1(rollup@4.28.0)(typescript@5.7.2): dependencies: magic-string: 0.30.14 @@ -12859,6 +13750,15 @@ snapshots: optionalDependencies: rollup: 2.79.1 + rollup-plugin-visualizer@5.11.0(rollup@4.28.0): + dependencies: + open: 8.4.2 + picomatch: 2.3.1 + source-map: 0.7.4 + yargs: 17.7.2 + optionalDependencies: + rollup: 4.28.0 + rollup-pluginutils@2.8.2: dependencies: estree-walker: 0.6.1 @@ -12998,6 +13898,32 @@ snapshots: setprototypeof@1.2.0: {} + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -13028,6 +13954,10 @@ snapshots: simple-git-hooks@2.11.1: {} + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.24 @@ -13149,6 +14079,12 @@ snapshots: is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + string-width@7.0.0: dependencies: emoji-regex: 10.3.0 @@ -13288,6 +14224,15 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 + tar@7.4.3: + dependencies: + '@isaacs/fs-minipass': 4.0.1 + chownr: 3.0.0 + minipass: 7.1.2 + minizlib: 3.0.1 + mkdirp: 3.0.1 + yallist: 5.0.0 + taze@0.18.0: dependencies: '@antfu/ni': 0.23.1 @@ -13589,6 +14534,25 @@ snapshots: transitivePeerDependencies: - rollup + unimport@3.14.2(rollup@4.28.0): + dependencies: + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + acorn: 8.14.0 + escape-string-regexp: 5.0.0 + estree-walker: 3.0.3 + local-pkg: 0.5.1 + magic-string: 0.30.14 + mlly: 1.7.3 + pathe: 1.1.2 + picomatch: 4.0.2 + pkg-types: 1.2.1 + scule: 1.3.0 + strip-literal: 2.1.1 + tinyglobby: 0.2.10 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -13664,6 +14628,21 @@ snapshots: transitivePeerDependencies: - rollup + unplugin-auto-import@0.18.6(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@4.28.0): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + fast-glob: 3.3.2 + local-pkg: 0.5.1 + magic-string: 0.30.14 + minimatch: 9.0.5 + unimport: 3.14.2(rollup@4.28.0) + unplugin: 1.16.0 + optionalDependencies: + '@vueuse/core': 12.0.0(typescript@5.7.2) + transitivePeerDependencies: + - rollup + unplugin-combine@1.0.3(esbuild@0.24.0)(rollup@2.79.1)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): dependencies: '@antfu/utils': 0.7.10 @@ -13673,6 +14652,15 @@ snapshots: rollup: 2.79.1 vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0) + unplugin-combine@1.0.3(esbuild@0.24.0)(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): + dependencies: + '@antfu/utils': 0.7.10 + unplugin: 1.16.0 + optionalDependencies: + esbuild: 0.24.0 + rollup: 4.28.0 + vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0) + unplugin-vue-components@0.27.5(@babel/parser@7.26.2)(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)): dependencies: '@antfu/utils': 0.7.10 @@ -13692,6 +14680,25 @@ snapshots: - rollup - supports-color + unplugin-vue-components@0.27.5(@babel/parser@7.26.2)(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + chokidar: 3.6.0 + debug: 4.3.7 + fast-glob: 3.3.2 + local-pkg: 0.5.1 + magic-string: 0.30.14 + minimatch: 9.0.5 + mlly: 1.7.3 + unplugin: 1.16.0 + vue: 3.5.13(typescript@5.7.2) + optionalDependencies: + '@babel/parser': 7.26.2 + transitivePeerDependencies: + - rollup + - supports-color + unplugin-vue-define-options@1.5.2(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)): dependencies: '@vue-macros/common': 1.15.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -13701,6 +14708,15 @@ snapshots: - rollup - vue + unplugin-vue-define-options@1.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + ast-walker-scope: 0.6.2 + unplugin: 1.16.0 + transitivePeerDependencies: + - rollup + - vue + unplugin-vue-macros@2.13.4(@vueuse/core@12.0.0(typescript@5.7.2))(esbuild@0.24.0)(rollup@2.79.1)(typescript@5.7.2)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)): dependencies: '@vue-macros/better-define': 1.11.0(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -13748,6 +14764,53 @@ snapshots: - vue-tsc - webpack + unplugin-vue-macros@2.13.4(@vueuse/core@12.0.0(typescript@5.7.2))(esbuild@0.24.0)(rollup@4.28.0)(typescript@5.7.2)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@vue-macros/better-define': 1.11.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/boolean-prop': 0.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/chain-call': 0.4.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/config': 0.5.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-emit': 0.5.1(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-models': 1.3.2(@vueuse/core@12.0.0(typescript@5.7.2))(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-prop': 0.6.1(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-props': 4.0.3(@vue-macros/reactivity-transform@1.1.3(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)))(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-props-refs': 1.3.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-render': 1.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-slots': 1.2.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/define-stylex': 0.2.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/devtools': 0.4.0(typescript@5.7.2)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)) + '@vue-macros/export-expose': 0.3.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/export-props': 0.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/export-render': 0.3.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/hoist-static': 1.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/jsx-directive': 0.9.3(rollup@4.28.0)(typescript@5.7.2) + '@vue-macros/named-template': 0.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/reactivity-transform': 1.1.3(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/script-lang': 0.2.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/setup-block': 0.4.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/setup-component': 0.18.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/setup-sfc': 0.18.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/short-bind': 1.1.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/short-emits': 1.6.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/short-vmodel': 1.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + '@vue-macros/volar': 0.30.6(rollup@4.28.0)(typescript@5.7.2)(vue-tsc@2.1.10(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) + unplugin: 1.16.0 + unplugin-combine: 1.0.3(esbuild@0.24.0)(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)) + unplugin-vue-define-options: 1.5.2(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + vue: 3.5.13(typescript@5.7.2) + transitivePeerDependencies: + - '@rspack/core' + - '@vueuse/core' + - esbuild + - rolldown + - rollup + - supports-color + - typescript + - vite + - vue-tsc + - webpack + unplugin-vue-markdown@0.27.1(rollup@2.79.1)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): dependencies: '@mdit-vue/plugin-component': 2.1.3 @@ -13762,6 +14825,20 @@ snapshots: transitivePeerDependencies: - rollup + unplugin-vue-markdown@0.27.1(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): + dependencies: + '@mdit-vue/plugin-component': 2.1.3 + '@mdit-vue/plugin-frontmatter': 2.1.3 + '@mdit-vue/types': 2.1.0 + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + markdown-it-async: 0.1.3 + unplugin: 1.16.0 + vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0) + transitivePeerDependencies: + - rollup + unplugin-vue-router@0.10.8(rollup@2.79.1)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)): dependencies: '@babel/types': 7.26.0 @@ -13784,6 +14861,28 @@ snapshots: - rollup - vue + unplugin-vue-router@0.10.8(rollup@4.28.0)(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@babel/types': 7.26.0 + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + '@vue-macros/common': 1.15.0(rollup@4.28.0)(vue@3.5.13(typescript@5.7.2)) + ast-walker-scope: 0.6.2 + chokidar: 3.6.0 + fast-glob: 3.3.2 + json5: 2.2.3 + local-pkg: 0.5.1 + magic-string: 0.30.14 + mlly: 1.7.3 + pathe: 1.1.2 + scule: 1.3.0 + unplugin: 1.16.0 + yaml: 2.5.0 + optionalDependencies: + vue-router: 4.5.0(vue@3.5.13(typescript@5.7.2)) + transitivePeerDependencies: + - rollup + - vue + unplugin@1.16.0: dependencies: acorn: 8.14.0 @@ -13851,6 +14950,16 @@ snapshots: - rollup - supports-color + vite-bundle-visualizer@1.2.1(rollup@4.28.0): + dependencies: + cac: 6.7.14 + import-from-esm: 1.3.3 + rollup-plugin-visualizer: 5.11.0(rollup@4.28.0) + tmp: 0.2.3 + transitivePeerDependencies: + - rollup + - supports-color + vite-hot-client@0.2.4(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): dependencies: vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0) @@ -13905,6 +15014,22 @@ snapshots: - rollup - supports-color + vite-plugin-inspect@0.8.8(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): + dependencies: + '@antfu/utils': 0.7.10 + '@rollup/pluginutils': 5.1.3(rollup@4.28.0) + debug: 4.3.7 + error-stack-parser-es: 0.1.5 + fs-extra: 11.2.0 + open: 10.1.0 + perfect-debounce: 1.0.0 + picocolors: 1.1.1 + sirv: 3.0.0 + vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0) + transitivePeerDependencies: + - rollup + - supports-color + vite-plugin-pwa@0.21.1(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.3.7 @@ -13932,6 +15057,22 @@ snapshots: - supports-color - vue + vite-plugin-vue-devtools@7.6.7(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue@3.5.13(typescript@5.7.2)): + dependencies: + '@vue/devtools-core': 7.6.7(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0))(vue@3.5.13(typescript@5.7.2)) + '@vue/devtools-kit': 7.6.7 + '@vue/devtools-shared': 7.6.7 + execa: 9.5.1 + sirv: 3.0.0 + vite: 6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0) + vite-plugin-inspect: 0.8.8(rollup@4.28.0)(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)) + vite-plugin-vue-inspector: 5.3.1(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)) + transitivePeerDependencies: + - '@nuxt/kit' + - rollup + - supports-color + - vue + vite-plugin-vue-inspector@5.3.1(vite@6.0.2(@types/node@22.10.1)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.5.0)): dependencies: '@babel/core': 7.25.2 @@ -14302,6 +15443,12 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + wrap-ansi@9.0.0: dependencies: ansi-styles: 6.2.1 @@ -14330,6 +15477,8 @@ snapshots: yallist@4.0.0: {} + yallist@5.0.0: {} + yaml-eslint-parser@1.2.3: dependencies: eslint-visitor-keys: 3.4.3