From 3c8e7788a070d45d8346b17bef3b0797bd597d10 Mon Sep 17 00:00:00 2001 From: LemonNeko Date: Fri, 3 Jan 2025 00:57:59 -0800 Subject: [PATCH] feat: desktop tamagotchi (#7) * rebase origin main * exclude packages/desktop/out * tmp commit * use mobile ui instead of desktop ui * fix lockfile * send ipc event to move window * load zip file * rename folder * remove `less` * add correct prefix for script * use airi logo instead of electron default logo * remove duplicate icon * use import.meta instead of __dirname --- package.json | 2 + packages/stage/package.json | 5 +- .../Layouts/MobileInteractiveArea.vue | 1 + .../Layouts/TamagotchiInteractiveArea.vue | 129 ++ .../stage/src/components/Widgets/Stage.vue | 7 +- .../Widgets/TamagotchiChatHistory.vue | 76 + .../components/Widgets/TamagotchiSettings.vue | 202 ++ packages/stage/src/constants/emotions.ts | 13 +- packages/stage/src/electron.d.ts | 7 + packages/stage/src/utils/live2d-zip-loader.ts | 33 + packages/stage/src/utils/platform.ts | 3 + packages/stage/tamagotchi/App.vue | 49 + packages/stage/tamagotchi/index.html | 19 + packages/stage/tamagotchi/main.css | 30 + packages/stage/tamagotchi/main.ts | 21 + packages/stage/tamagotchi/themes.css | 13 + packages/stage/tamagotchi/transitions.css | 18 + packages/stage/vite.config.ts | 562 ++--- packages/tamagotchi/.gitignore | 1 + packages/tamagotchi/README.md | 38 + .../tamagotchi/build/entitlements.mac.plist | 12 + packages/tamagotchi/build/icon.icns | Bin 0 -> 55607 bytes packages/tamagotchi/build/icon.ico | Bin 0 -> 7856 bytes packages/tamagotchi/build/icon.png | Bin 0 -> 12366 bytes packages/tamagotchi/electron-builder.yml | 43 + packages/tamagotchi/electron.vite.config.ts | 20 + packages/tamagotchi/package.json | 40 + packages/tamagotchi/src/main/index.ts | 97 + packages/tamagotchi/src/preload/index.d.ts | 8 + packages/tamagotchi/src/preload/index.ts | 25 + packages/tamagotchi/src/renderer/index.html | 17 + packages/tamagotchi/tsconfig.json | 4 + packages/tamagotchi/tsconfig.node.json | 8 + packages/tamagotchi/tsconfig.web.json | 18 + pnpm-lock.yaml | 1841 ++++++++++++++++- 35 files changed, 2985 insertions(+), 377 deletions(-) create mode 100644 packages/stage/src/components/Layouts/TamagotchiInteractiveArea.vue create mode 100644 packages/stage/src/components/Widgets/TamagotchiChatHistory.vue create mode 100644 packages/stage/src/components/Widgets/TamagotchiSettings.vue create mode 100644 packages/stage/src/electron.d.ts create mode 100644 packages/stage/src/utils/live2d-zip-loader.ts create mode 100644 packages/stage/src/utils/platform.ts create mode 100644 packages/stage/tamagotchi/App.vue create mode 100644 packages/stage/tamagotchi/index.html create mode 100644 packages/stage/tamagotchi/main.css create mode 100644 packages/stage/tamagotchi/main.ts create mode 100644 packages/stage/tamagotchi/themes.css create mode 100644 packages/stage/tamagotchi/transitions.css create mode 100644 packages/tamagotchi/.gitignore create mode 100644 packages/tamagotchi/README.md create mode 100644 packages/tamagotchi/build/entitlements.mac.plist create mode 100644 packages/tamagotchi/build/icon.icns create mode 100644 packages/tamagotchi/build/icon.ico create mode 100644 packages/tamagotchi/build/icon.png create mode 100644 packages/tamagotchi/electron-builder.yml create mode 100644 packages/tamagotchi/electron.vite.config.ts create mode 100644 packages/tamagotchi/package.json create mode 100644 packages/tamagotchi/src/main/index.ts create mode 100644 packages/tamagotchi/src/preload/index.d.ts create mode 100644 packages/tamagotchi/src/preload/index.ts create mode 100644 packages/tamagotchi/src/renderer/index.html create mode 100644 packages/tamagotchi/tsconfig.json create mode 100644 packages/tamagotchi/tsconfig.node.json create mode 100644 packages/tamagotchi/tsconfig.web.json diff --git a/package.json b/package.json index 0abae54..e58f64a 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,9 @@ "typecheck": "pnpm -r --filter=./packages/* run build", "dev": "pnpm packages:dev", "build": "pnpm packages:build", + "dev:tamagotchi": "pnpm packages:dev:tamagotchi", "packages:dev": "pnpm -r --filter=./packages/* --parallel run dev", + "packages:dev:tamagotchi": "pnpm -r --filter=./packages/* --parallel run dev:tamagotchi", "packages:stub": "pnpm -r --filter=./packages/* run stub", "packages:build": "pnpm -r --filter=./packages/* run build", "packages:publish": "pnpm -r --filter=./packages/* run package:publish", diff --git a/packages/stage/package.json b/packages/stage/package.json index 17d5d9b..e9dc281 100644 --- a/packages/stage/package.json +++ b/packages/stage/package.json @@ -15,7 +15,9 @@ "dev": "vite", "lint": "eslint .", "preview": "vite preview", - "typecheck": "vue-tsc --noEmit" + "typecheck": "vue-tsc --noEmit", + "dev:tamagotchi": "vite --mode tamagotchi", + "build:tamagotchi": "vite build --mode tamagotchi" }, "dependencies": { "@11labs/client": "^0.0.4", @@ -54,6 +56,7 @@ "@xsai/shared-chat": "^0.0.22", "@xsai/stream-text": "^0.0.22", "defu": "^6.1.4", + "jszip": "^3.10.1", "nprogress": "^0.2.0", "ofetch": "^1.4.1", "onnxruntime-web": "^1.20.1", diff --git a/packages/stage/src/components/Layouts/MobileInteractiveArea.vue b/packages/stage/src/components/Layouts/MobileInteractiveArea.vue index 7a3a07a..98a02b4 100644 --- a/packages/stage/src/components/Layouts/MobileInteractiveArea.vue +++ b/packages/stage/src/components/Layouts/MobileInteractiveArea.vue @@ -10,6 +10,7 @@ import { useMicVAD } from '../../composables/micvad' // import { useAudioContext } from '../../stores/audio' import { useChatStore } from '../../stores/chat' import { useSettings } from '../../stores/settings' +import BasicTextarea from '../BasicTextarea.vue' import MobileChatHistory from '../Widgets/MobileChatHistory.vue' import MobileSettings from '../Widgets/MobileSettings.vue' diff --git a/packages/stage/src/components/Layouts/TamagotchiInteractiveArea.vue b/packages/stage/src/components/Layouts/TamagotchiInteractiveArea.vue new file mode 100644 index 0000000..ed6735e --- /dev/null +++ b/packages/stage/src/components/Layouts/TamagotchiInteractiveArea.vue @@ -0,0 +1,129 @@ + + + diff --git a/packages/stage/src/components/Widgets/Stage.vue b/packages/stage/src/components/Widgets/Stage.vue index d9190a8..53531a6 100644 --- a/packages/stage/src/components/Widgets/Stage.vue +++ b/packages/stage/src/components/Widgets/Stage.vue @@ -9,15 +9,18 @@ import { useQueue } from '../../composables/queue' import { useDelayMessageQueue, useEmotionsMessageQueue, useMessageContentQueue } from '../../composables/queues' import { llmInferenceEndToken } from '../../constants' import { Voice } from '../../constants/elevenlabs' -import { EMOTION_EmotionMotionName_value, EMOTION_VRMExpressionName_value, EmotionThinkMotionName } from '../../constants/emotions' +import { EMOTION_EmotionMotionName_value, EMOTION_VRMExpressionName_value, EmotionThinkMotionName } from '../../constants/emotions' import { useAudioContext, useSpeakingStore } from '../../stores/audio' import { useChatStore } from '../../stores/chat' import { useLLM } from '../../stores/llm' import { useSettings } from '../../stores/settings' import Live2DScene from '../Scenes/Live2D.vue' + import VRMScene from '../Scenes/VRM.vue' +import '../../utils/live2d-zip-loader' + const live2DViewerRef = ref<{ setMotion: (motionName: string) => Promise }>() const vrmViewerRef = ref<{ setExpression: (expression: string) => void }>() @@ -183,7 +186,7 @@ onUnmounted(() => { v-if="stageView === '2d'" ref="live2DViewerRef" :mouth-open-size="mouthOpenSize" - model="/assets/live2d/models/hiyori_pro_zh/runtime/hiyori_pro_t11.model3.json" + model="./assets/live2d/models/hiyori_pro_zh.zip" min-w="50% +import { useElementBounding, useScroll } from '@vueuse/core' +import { storeToRefs } from 'pinia' + +import { nextTick, ref } from 'vue' +import { useMarkdown } from '../../composables/markdown' +import { useChatStore } from '../../stores/chat' + +const chatHistoryRef = ref() + +const { messages } = storeToRefs(useChatStore()) +const bounding = useElementBounding(chatHistoryRef, { immediate: true, windowScroll: true, windowResize: true }) +const { y: chatHistoryContainerY } = useScroll(chatHistoryRef) + +const { process } = useMarkdown() +const { onBeforeMessageComposed, onTokenLiteral } = useChatStore() + +onBeforeMessageComposed(async () => { + // Scroll down to the new sent message + nextTick().then(() => { + bounding.update() + chatHistoryContainerY.value = bounding.height.value + }) +}) + +onTokenLiteral(async () => { + // Scroll down to the new responding message + nextTick().then(() => { + bounding.update() + chatHistoryContainerY.value = bounding.height.value + }) +}) + + + diff --git a/packages/stage/src/components/Widgets/TamagotchiSettings.vue b/packages/stage/src/components/Widgets/TamagotchiSettings.vue new file mode 100644 index 0000000..f7390d0 --- /dev/null +++ b/packages/stage/src/components/Widgets/TamagotchiSettings.vue @@ -0,0 +1,202 @@ + + + diff --git a/packages/stage/src/constants/emotions.ts b/packages/stage/src/constants/emotions.ts index 6f1ab16..a477864 100644 --- a/packages/stage/src/constants/emotions.ts +++ b/packages/stage/src/constants/emotions.ts @@ -18,13 +18,14 @@ export enum Emotion { export const EMOTION_VALUES = Object.values(Emotion) -export const EmotionHappyMotionName = 'EmotionHappy' +// FIXME: need a editor to remap the motion +export const EmotionHappyMotionName = 'Tap' export const EmotionSadMotionName = 'EmotionSad' -export const EmotionAngryMotionName = 'EmotionAngry' -export const EmotionAwkwardMotionName = 'EmotionAwkward' -export const EmotionThinkMotionName = 'EmotionThink' -export const EmotionSurpriseMotionName = 'EmotionSurprise' -export const EmotionQuestionMotionName = 'EmotionQuestion' +export const EmotionAngryMotionName = 'Tap@Body' +export const EmotionAwkwardMotionName = 'FlickDown' +export const EmotionThinkMotionName = 'Flick' +export const EmotionSurpriseMotionName = 'Flick' +export const EmotionQuestionMotionName = 'Flick@Body' export const EMOTION_EmotionMotionName_value = { [Emotion.Happy]: EmotionHappyMotionName, diff --git a/packages/stage/src/electron.d.ts b/packages/stage/src/electron.d.ts new file mode 100644 index 0000000..3a5c922 --- /dev/null +++ b/packages/stage/src/electron.d.ts @@ -0,0 +1,7 @@ +declare interface Window { + electron: { + ipcRenderer: { + send: (channel: string, ...args: any[]) => void + } + } +} diff --git a/packages/stage/src/utils/live2d-zip-loader.ts b/packages/stage/src/utils/live2d-zip-loader.ts new file mode 100644 index 0000000..64bb088 --- /dev/null +++ b/packages/stage/src/utils/live2d-zip-loader.ts @@ -0,0 +1,33 @@ +import JSZip from 'jszip' +import { ZipLoader } from 'pixi-live2d-display/cubism4' + +ZipLoader.zipReader = (data: Blob, _url: string) => JSZip.loadAsync(data) + +ZipLoader.readText = (jsZip: JSZip, path: string) => { + const file = jsZip.file(path) + + if (!file) { + throw new Error(`Cannot find file: ${path}`) + } + + return file.async('text') +} + +ZipLoader.getFilePaths = (jsZip: JSZip) => { + const paths: string[] = [] + + jsZip.forEach(relativePath => paths.push(relativePath)) + + return Promise.resolve(paths) +} + +ZipLoader.getFiles = (jsZip: JSZip, paths: string[]) => + Promise.all(paths.map( + async (path) => { + const fileName = path.slice(path.lastIndexOf('/') + 1) + + const blob = await jsZip.file(path)!.async('blob') + + return new File([blob], fileName) + }, + )) diff --git a/packages/stage/src/utils/platform.ts b/packages/stage/src/utils/platform.ts new file mode 100644 index 0000000..7eed72a --- /dev/null +++ b/packages/stage/src/utils/platform.ts @@ -0,0 +1,3 @@ +export function isPlatformTamagotchi() { + return import.meta.env.MODE === 'tamagotchi' +} diff --git a/packages/stage/tamagotchi/App.vue b/packages/stage/tamagotchi/App.vue new file mode 100644 index 0000000..b9c6843 --- /dev/null +++ b/packages/stage/tamagotchi/App.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/packages/stage/tamagotchi/index.html b/packages/stage/tamagotchi/index.html new file mode 100644 index 0000000..56db236 --- /dev/null +++ b/packages/stage/tamagotchi/index.html @@ -0,0 +1,19 @@ + + + + + アイリ + + + + + + + + + +
+ + + + diff --git a/packages/stage/tamagotchi/main.css b/packages/stage/tamagotchi/main.css new file mode 100644 index 0000000..69dc331 --- /dev/null +++ b/packages/stage/tamagotchi/main.css @@ -0,0 +1,30 @@ +@import './themes.css'; +@import './transitions.css'; + +html, +body, +#app { + height: 100%; + margin: 0; + padding: 0; + overscroll-behavior: none; +} + +html { + transition: all 0.3s ease-in-out; +} + +#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; +} diff --git a/packages/stage/tamagotchi/main.ts b/packages/stage/tamagotchi/main.ts new file mode 100644 index 0000000..322471f --- /dev/null +++ b/packages/stage/tamagotchi/main.ts @@ -0,0 +1,21 @@ +import { autoAnimatePlugin } from '@formkit/auto-animate/vue' +import Tres from '@tresjs/core' +import { MotionPlugin } from '@vueuse/motion' +import { createPinia } from 'pinia' +import { createApp } from 'vue' +import { i18n } from '../src/modules/i18n' +import App from './App.vue' + +import '@unocss/reset/tailwind.css' +import 'uno.css' +import './main.css' + +const pinia = createPinia() + +createApp(App) + .use(MotionPlugin) + .use(autoAnimatePlugin) + .use(pinia) + .use(i18n) + .use(Tres) + .mount('#app') diff --git a/packages/stage/tamagotchi/themes.css b/packages/stage/tamagotchi/themes.css new file mode 100644 index 0000000..8eb8ab5 --- /dev/null +++ b/packages/stage/tamagotchi/themes.css @@ -0,0 +1,13 @@ +:root { + --airi-theme-primary-50: #fff0f2; + --airi-theme-primary-100: #ffe3e6; + --airi-theme-primary-200: #ffcad4; + --airi-theme-primary-300: #ff9fb0; + --airi-theme-primary-400: #ff6988; + --airi-theme-primary-500: #fe456e; + --airi-theme-primary-600: #ec124d; + --airi-theme-primary-700: #c70941; + --airi-theme-primary-800: #a70a3e; + --airi-theme-primary-900: #8e0d3b; + --airi-theme-primary-950: #50011b; +} diff --git a/packages/stage/tamagotchi/transitions.css b/packages/stage/tamagotchi/transitions.css new file mode 100644 index 0000000..82ae842 --- /dev/null +++ b/packages/stage/tamagotchi/transitions.css @@ -0,0 +1,18 @@ +.slide-away-enter-active, +.slide-away-leave-active { + transition: + transform 0.3s ease-in-out, + opacity 0.3s ease-in-out; +} + +.slide-away-enter, +.slide-away-leave-to { + transform: translateY(-10px); + opacity: 0; +} + +.slide-away-enter-from, +.slide-away-leave { + transform: translateY(10px); + opacity: 0; +} diff --git a/packages/stage/vite.config.ts b/packages/stage/vite.config.ts index 4ef4031..f421e2f 100644 --- a/packages/stage/vite.config.ts +++ b/packages/stage/vite.config.ts @@ -1,7 +1,7 @@ import { Buffer } from 'node:buffer' -import { copyFile, cp, mkdir, readFile, writeFile } from 'node:fs/promises' +import { copyFile, cp, mkdir, writeFile } from 'node:fs/promises' import path, { join, resolve } from 'node:path' -import { env } from 'node:process' +import { cwd, env } from 'node:process' import VueI18n from '@intlify/unplugin-vue-i18n/vite' import { templateCompilerOptions } from '@tresjs/core' @@ -21,295 +21,321 @@ import { exists } from './scripts/fs' import { unzip } from './scripts/unzip' import { appName } from './src/constants' -export default defineConfig({ - optimizeDeps: { - exclude: [ - 'public/assets/*', - '@framework/live2dcubismframework', - '@framework/math/cubismmatrix44', - '@framework/type/csmvector', - '@framework/math/cubismviewmatrix', - '@framework/cubismdefaultparameterid', - '@framework/cubismmodelsettingjson', - '@framework/effect/cubismbreath', - '@framework/effect/cubismeyeblink', - '@framework/model/cubismusermodel', - '@framework/motion/acubismmotion', - '@framework/motion/cubismmotionqueuemanager', - '@framework/type/csmmap', - '@framework/utils/cubismdebug', - '@framework/model/cubismmoc', - ], - }, - - build: { - rollupOptions: { - external: [ - 'virtual:pwa-register', +export default defineConfig(({ mode }) => { + return { + optimizeDeps: { + exclude: [ + 'public/assets/*', + '@framework/live2dcubismframework', + '@framework/math/cubismmatrix44', + '@framework/type/csmvector', + '@framework/math/cubismviewmatrix', + '@framework/cubismdefaultparameterid', + '@framework/cubismmodelsettingjson', + '@framework/effect/cubismbreath', + '@framework/effect/cubismeyeblink', + '@framework/model/cubismusermodel', + '@framework/motion/acubismmotion', + '@framework/motion/cubismmotionqueuemanager', + '@framework/type/csmmap', + '@framework/utils/cubismdebug', + '@framework/model/cubismmoc', ], }, - }, - - 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(), + build: { + rollupOptions: { + external: [ + 'virtual:pwa-register', + ], + }, + }, - // https://github.com/antfu/unplugin-vue-components - Components({ + base: mode === 'tamagotchi' ? './' : '', + root: mode === 'tamagotchi' ? 'tamagotchi' : '', + + 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-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 - ...(env.TARGET_HUGGINGFACE_SPACE - ? [] - : [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/webfansplz/vite-plugin-vue-devtools - VueDevTools(), - - { - name: 'live2d-cubism-sdk', - async configResolved(config) { - const cacheDir = resolve(join(config.root, '.cache')) - const publicDir = resolve(join(config.root, 'public')) - - try { - if (!(await exists(resolve(join(cacheDir, 'assets/js/CubismSdkForWeb-5-r.1'))))) { - console.log('Downloading Cubism SDK...') - const stream = await ofetch('https://dist.ayaka.moe/npm/live2d-cubism/CubismSdkForWeb-5-r.1.zip', { responseType: 'arrayBuffer' }) - - console.log('Unzipping Cubism SDK...') - await mkdir(join(cacheDir, 'assets/js'), { recursive: true }) - await unzip(Buffer.from(stream), join(cacheDir, 'assets/js')) - - console.log('Cubism SDK downloaded and unzipped.') + 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 + ...(env.TARGET_HUGGINGFACE_SPACE || mode === 'tamagotchi' + ? [] + : [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/webfansplz/vite-plugin-vue-devtools + VueDevTools(), + + { + name: 'live2d-cubism-sdk', + async configResolved(config) { + const cacheDir = resolve(join(config.root, '.cache')) + const publicDir = resolve(join(config.root, 'public')) + + try { + if (!(await exists(resolve(join(cacheDir, 'assets/js/CubismSdkForWeb-5-r.1'))))) { + console.log('Downloading Cubism SDK...') + const stream = await ofetch('https://dist.ayaka.moe/npm/live2d-cubism/CubismSdkForWeb-5-r.1.zip', { responseType: 'arrayBuffer' }) + + console.log('Unzipping Cubism SDK...') + await mkdir(join(cacheDir, 'assets/js'), { recursive: true }) + await unzip(Buffer.from(stream), join(cacheDir, 'assets/js')) + + console.log('Cubism SDK downloaded and unzipped.') + } + + if (!(await exists(resolve(join(publicDir, 'assets/js/CubismSdkForWeb-5-r.1'))))) { + await mkdir(join(publicDir, 'assets/js/CubismSdkForWeb-5-r.1/Core'), { recursive: true }).catch(() => {}) + await copyFile(join(cacheDir, 'assets/js/CubismSdkForWeb-5-r.1/Core/live2dcubismcore.min.js'), join(publicDir, 'assets/js/CubismSdkForWeb-5-r.1/Core/live2dcubismcore.min.js')) + } } - - if (!(await exists(resolve(join(publicDir, 'assets/js/CubismSdkForWeb-5-r.1'))))) { - await mkdir(join(publicDir, 'assets/js/CubismSdkForWeb-5-r.1/Core'), { recursive: true }).catch(() => {}) - await copyFile(join(cacheDir, 'assets/js/CubismSdkForWeb-5-r.1/Core/live2dcubismcore.min.js'), join(publicDir, 'assets/js/CubismSdkForWeb-5-r.1/Core/live2dcubismcore.min.js')) + catch (err) { + console.error(err) + throw err } - } - catch (err) { - console.error(err) - throw err - } + }, }, - }, - { - name: 'live2d-models-hiyori-free', - async configResolved(config) { - const cacheDir = resolve(join(config.root, '.cache')) - const publicDir = resolve(join(config.root, 'public')) - - try { - if (!(await exists(resolve(join(cacheDir, 'assets/live2d/models/hiyori_free_zh'))))) { - console.log('Downloading Demo Live2D Model - Hiyori Free...') - const stream = await ofetch('https://dist.ayaka.moe/live2d-models/hiyori_free_zh.zip', { responseType: 'arrayBuffer' }) - - console.log('Unzipping Demo Live2D Model - Hiyori Free...') - await mkdir(join(cacheDir, 'assets/live2d/models'), { recursive: true }) - await unzip(Buffer.from(stream), join(cacheDir, 'assets/live2d/models')) - - console.log('Demo Live2D Model - Hiyori Free downloaded and unzipped.') + { + name: 'live2d-models-hiyori-free', + async configResolved(config) { + const cacheDir = resolve(join(config.root, '.cache')) + const publicDir = resolve(join(config.root, 'public')) + + try { + if (!(await exists(resolve(join(cacheDir, 'assets/live2d/models/hiyori_free_zh'))))) { + console.log('Downloading Demo Live2D Model - Hiyori Free...') + const stream = await ofetch('https://dist.ayaka.moe/live2d-models/hiyori_free_zh.zip', { responseType: 'arrayBuffer' }) + + console.log('Unzipping Demo Live2D Model - Hiyori Free...') + await mkdir(join(cacheDir, 'assets/live2d/models'), { recursive: true }) + await unzip(Buffer.from(stream), join(cacheDir, 'assets/live2d/models')) + console.log('Demo Live2D Model - Hiyori Free downloaded and unzipped.') + } + + if (!(await exists(resolve(join(publicDir, 'assets/live2d/models/hiyori_free_zh'))))) { + await mkdir(join(publicDir, 'assets/live2d/models'), { recursive: true }).catch(() => { }) + await cp(join(cacheDir, 'assets/live2d/models/hiyori_free_zh'), join(publicDir, 'assets/live2d/models/hiyori_free_zh'), { recursive: true }) + } } - - if (!(await exists(resolve(join(publicDir, 'assets/live2d/models/hiyori_free_zh'))))) { - await mkdir(join(publicDir, 'assets/live2d/models'), { recursive: true }).catch(() => { }) - await cp(join(cacheDir, 'assets/live2d/models/hiyori_free_zh'), join(publicDir, 'assets/live2d/models/hiyori_free_zh'), { recursive: true }) + catch (err) { + console.error(err) + throw err } - } - catch (err) { - console.error(err) - throw err - } + }, }, - }, - { - name: 'live2d-models-hiyori-pro', - async configResolved(config) { - const cacheDir = resolve(join(config.root, '.cache')) - const publicDir = resolve(join(config.root, 'public')) - - try { - if (!(await exists(resolve(join(cacheDir, 'assets/live2d/models/hiyori_pro_zh'))))) { - console.log('Downloading Demo Live2D Model - Hiyori Pro...') - const stream = await ofetch('https://dist.ayaka.moe/live2d-models/hiyori_pro_zh.zip', { responseType: 'arrayBuffer' }) - - console.log('Unzipping Demo Live2D Model - Hiyori Pro...') - await mkdir(join(cacheDir, 'assets/live2d/models'), { recursive: true }) - await unzip(Buffer.from(stream), join(cacheDir, 'assets/live2d/models')) - - console.log('Demo Live2D Model - Hiyori Pro downloaded and unzipped.') + { + name: 'live2d-models-hiyori-pro', + async configResolved(config) { + const cacheDir = resolve(join(config.root, '.cache')) + const publicDir = resolve(join(config.root, 'public')) + + try { + if (!(await exists(resolve(join(cacheDir, 'assets/live2d/models/hiyori_pro_zh'))))) { + console.log('Downloading Demo Live2D Model - Hiyori Pro...') + const stream = await ofetch('https://dist.ayaka.moe/live2d-models/hiyori_pro_zh.zip', { responseType: 'arrayBuffer' }) + + console.log('Unzipping Demo Live2D Model - Hiyori Pro...') + await mkdir(join(cacheDir, 'assets/live2d/models'), { recursive: true }) + // await unzip(Buffer.from(stream), join(cacheDir, 'assets/live2d/models')) + await writeFile(join(cacheDir, 'assets/live2d/models/hiyori_pro_zh.zip'), Buffer.from(stream)) + + console.log('Demo Live2D Model - Hiyori Pro downloaded.') + } + + if (!(await exists(resolve(join(publicDir, 'assets/live2d/models/hiyori_pro_zh.zip'))))) { + await mkdir(join(publicDir, 'assets/live2d/models'), { recursive: true }).catch(() => { }) + await cp(join(cacheDir, 'assets/live2d/models/hiyori_pro_zh.zip'), join(publicDir, 'assets/live2d/models/hiyori_pro_zh.zip'), { recursive: true }) + } + + // TODO: use motion editor to remap emotions + // const hiyoriEmotions = { + // Idle: [ + // { + // File: 'motion/hiyori_m01.motion3.json', + // }, + // { + // File: 'motion/hiyori_m05.motion3.json', + // }, + // ], + // EmotionHappy: [{ File: 'motion/hiyori_m08.motion3.json' }], + // EmotionSad: [{ File: 'motion/hiyori_m10.motion3.json' }], + // EmotionAngry: [{ File: 'motion/hiyori_m09.motion3.json' }], + // EmotionAwkward: [{ File: 'motion/hiyori_m04.motion3.json' }], + // EmotionThink: [{ File: 'motion/hiyori_m03.motion3.json' }], + // EmotionSurprise: [{ File: 'motion/hiyori_m03.motion3.json' }], + // EmotionQuestion: [{ File: 'motion/hiyori_m10.motion3.json' }], + // } + + // const read = await readFile(join(publicDir, 'assets/live2d/models/hiyori_pro_zh/runtime/hiyori_pro_t11.model3.json'), 'utf-8') + // const model = JSON.parse(read.toString()) as { FileReferences: { Motions: Record } } + // Object.assign(model.FileReferences.Motions, hiyoriEmotions) + // await writeFile(join(publicDir, 'assets/live2d/models/hiyori_pro_zh/runtime/hiyori_pro_t11.model3.json'), JSON.stringify(model, null, 4), 'utf-8') } - - if (!(await exists(resolve(join(publicDir, 'assets/live2d/models/hiyori_pro_zh'))))) { - await mkdir(join(publicDir, 'assets/live2d/models'), { recursive: true }).catch(() => { }) - await cp(join(cacheDir, 'assets/live2d/models/hiyori_pro_zh'), join(publicDir, 'assets/live2d/models/hiyori_pro_zh'), { recursive: true }) - } - - const hiyoriEmotions = { - Idle: [ - { - File: 'motion/hiyori_m01.motion3.json', - }, - { - File: 'motion/hiyori_m05.motion3.json', - }, - ], - EmotionHappy: [{ File: 'motion/hiyori_m08.motion3.json' }], - EmotionSad: [{ File: 'motion/hiyori_m10.motion3.json' }], - EmotionAngry: [{ File: 'motion/hiyori_m09.motion3.json' }], - EmotionAwkward: [{ File: 'motion/hiyori_m04.motion3.json' }], - EmotionThink: [{ File: 'motion/hiyori_m03.motion3.json' }], - EmotionSurprise: [{ File: 'motion/hiyori_m03.motion3.json' }], - EmotionQuestion: [{ File: 'motion/hiyori_m10.motion3.json' }], + catch (err) { + console.error(err) + throw err } - - const read = await readFile(join(publicDir, 'assets/live2d/models/hiyori_pro_zh/runtime/hiyori_pro_t11.model3.json'), 'utf-8') - const model = JSON.parse(read.toString()) as { FileReferences: { Motions: Record } } - Object.assign(model.FileReferences.Motions, hiyoriEmotions) - await writeFile(join(publicDir, 'assets/live2d/models/hiyori_pro_zh/runtime/hiyori_pro_t11.model3.json'), JSON.stringify(model, null, 4), 'utf-8') - } - catch (err) { - console.error(err) - throw err - } + }, }, - }, - { - name: 'vrm-models-sample-a', - async configResolved(config) { - const cacheDir = resolve(join(config.root, '.cache')) - const publicDir = resolve(join(config.root, 'public')) + { + name: 'vrm-models-sample-a', + async configResolved(config) { + const cacheDir = resolve(join(config.root, '.cache')) + const publicDir = resolve(join(config.root, 'public')) - try { - if (!(await exists(resolve(join(cacheDir, 'assets/vrm/models/AvatarSample-A'))))) { - await mkdir(join(cacheDir, 'assets/vrm/models/AvatarSample-A'), { recursive: true }) + try { + if (!(await exists(resolve(join(cacheDir, 'assets/vrm/models/AvatarSample-A'))))) { + await mkdir(join(cacheDir, 'assets/vrm/models/AvatarSample-A'), { recursive: true }) - console.log('Downloading VRM Model - Avatar Sample A...') - const res = await ofetch('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-A/AvatarSample_A.vrm', { responseType: 'arrayBuffer' }) + console.log('Downloading VRM Model - Avatar Sample A...') + const res = await ofetch('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-A/AvatarSample_A.vrm', { responseType: 'arrayBuffer' }) - console.log('Saving VRM Model - Avatar Sample A...') - await writeFile(join(cacheDir, 'assets/vrm/models/AvatarSample-A/AvatarSample_A.vrm'), Buffer.from(res)) + console.log('Saving VRM Model - Avatar Sample A...') + await writeFile(join(cacheDir, 'assets/vrm/models/AvatarSample-A/AvatarSample_A.vrm'), Buffer.from(res)) - console.log('VRM Model - Avatar Sample A downloaded and saved.') - } + console.log('VRM Model - Avatar Sample A downloaded and saved.') + } - if (!(await exists(resolve(join(publicDir, 'assets/vrm/models/AvatarSample-A'))))) { - await mkdir(join(publicDir, 'assets/vrm/models/AvatarSample-A'), { recursive: true }).catch(() => { }) - await cp(join(cacheDir, 'assets/vrm/models/AvatarSample-A'), join(publicDir, 'assets/vrm/models/AvatarSample-A'), { recursive: true }) + if (!(await exists(resolve(join(publicDir, 'assets/vrm/models/AvatarSample-A'))))) { + await mkdir(join(publicDir, 'assets/vrm/models/AvatarSample-A'), { recursive: true }).catch(() => { }) + await cp(join(cacheDir, 'assets/vrm/models/AvatarSample-A'), join(publicDir, 'assets/vrm/models/AvatarSample-A'), { recursive: true }) + } + } + catch (err) { + console.error(err) + throw err } - } - catch (err) { - console.error(err) - throw err - } + }, }, - }, - { - name: 'vrm-models-sample-b', - async configResolved(config) { - const cacheDir = resolve(join(config.root, '.cache')) - const publicDir = resolve(join(config.root, 'public')) - - try { - if (!(await exists(resolve(join(cacheDir, 'assets/vrm/models/AvatarSample-B'))))) { - await mkdir(join(cacheDir, 'assets/vrm/models/AvatarSample-B'), { recursive: true }) - - console.log('Downloading VRM Model - Avatar Sample B...') - const res = await ofetch('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-B/AvatarSample_B.vrm', { responseType: 'arrayBuffer' }) - - console.log('Saving VRM Model - Avatar Sample B...') - await writeFile(join(cacheDir, 'assets/vrm/models/AvatarSample-B/AvatarSample_B.vrm'), Buffer.from(res)) + { + name: 'vrm-models-sample-b', + async configResolved(config) { + const cacheDir = resolve(join(config.root, '.cache')) + const publicDir = resolve(join(config.root, 'public')) + + try { + if (!(await exists(resolve(join(cacheDir, 'assets/vrm/models/AvatarSample-B'))))) { + await mkdir(join(cacheDir, 'assets/vrm/models/AvatarSample-B'), { recursive: true }) + + console.log('Downloading VRM Model - Avatar Sample B...') + const res = await ofetch('https://dist.ayaka.moe/vrm-models/VRoid-Hub/AvatarSample-B/AvatarSample_B.vrm', { responseType: 'arrayBuffer' }) + + console.log('Saving VRM Model - Avatar Sample B...') + await writeFile(join(cacheDir, 'assets/vrm/models/AvatarSample-B/AvatarSample_B.vrm'), Buffer.from(res)) + } + + if (!(await exists(resolve(join(publicDir, 'assets/vrm/models/AvatarSample-B'))))) { + await mkdir(join(publicDir, 'assets/vrm/models/AvatarSample-B'), { recursive: true }).catch(() => { }) + await cp(join(cacheDir, 'assets/vrm/models/AvatarSample-B'), join(publicDir, 'assets/vrm/models/AvatarSample-B'), { recursive: true }) + } } - - if (!(await exists(resolve(join(publicDir, 'assets/vrm/models/AvatarSample-B'))))) { - await mkdir(join(publicDir, 'assets/vrm/models/AvatarSample-B'), { recursive: true }).catch(() => { }) - await cp(join(cacheDir, 'assets/vrm/models/AvatarSample-B'), join(publicDir, 'assets/vrm/models/AvatarSample-B'), { recursive: true }) + catch (err) { + console.error(err) + throw err } - } - catch (err) { - console.error(err) - throw err - } + }, }, - }, - // HuggingFace Spaces - LFS({ - extraGlobs: [ - '*.vrm', - '*.cmo3', - '*.png', - '*.jpg', - '*.jpeg', - '*.gif', - '*.webp', - '*.bmp', - ], - }), - SpaceCard({ - title: 'アイリ VTuber', - emoji: '🧸', - colorFrom: 'pink', - colorTo: 'pink', - sdk: 'static', - pinned: false, - license: 'mit', - models: ['onnx-community/whisper-base'], - short_description: 'アイリ VTuber. LLM powered Live2D/VRM living character.', - }), - ], + // HuggingFace Spaces + LFS({ + extraGlobs: [ + '*.vrm', + '*.cmo3', + '*.png', + '*.jpg', + '*.jpeg', + '*.gif', + '*.webp', + '*.bmp', + ], + }), + SpaceCard({ + title: 'アイリ VTuber', + emoji: '🧸', + colorFrom: 'pink', + colorTo: 'pink', + sdk: 'static', + pinned: false, + license: 'mit', + models: ['onnx-community/whisper-base'], + short_description: 'アイリ VTuber. LLM powered Live2D/VRM living character.', + }), + { + name: 'write-port-number-to-file-when-dev', + apply: 'serve', + configureServer(server) { + if (mode !== 'tamagotchi') + return + + if (!server.httpServer) + return + + server.httpServer.once('listening', () => { + const address = server.httpServer!.address() + if (!address || typeof address !== 'object' || !('port' in address)) + return + writeFile(join(cwd(), 'stage.dev.json'), JSON.stringify({ + address, + })) + }) + }, + }, + ], + } }) diff --git a/packages/tamagotchi/.gitignore b/packages/tamagotchi/.gitignore new file mode 100644 index 0000000..89f9ac0 --- /dev/null +++ b/packages/tamagotchi/.gitignore @@ -0,0 +1 @@ +out/ diff --git a/packages/tamagotchi/README.md b/packages/tamagotchi/README.md new file mode 100644 index 0000000..e46fd58 --- /dev/null +++ b/packages/tamagotchi/README.md @@ -0,0 +1,38 @@ +# たまごっち アイリ + +A desktop application for たまごっち アイリ. + +## Project Setup + +### Install + +```bash +$ pnpm install +``` + +### Development + +```bash +$ cd /packages/stage +$ pnpm dev:tamagotchi +``` + +Then open another terminal and run: + +```bash +$ cd /packages/tamagotchi +$ pnpm dev:tamagotchi +``` + +### Build + +```bash +# For windows +$ pnpm build:win + +# For macOS +$ pnpm build:mac + +# For Linux +$ pnpm build:linux +``` diff --git a/packages/tamagotchi/build/entitlements.mac.plist b/packages/tamagotchi/build/entitlements.mac.plist new file mode 100644 index 0000000..38c887b --- /dev/null +++ b/packages/tamagotchi/build/entitlements.mac.plist @@ -0,0 +1,12 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/packages/tamagotchi/build/icon.icns b/packages/tamagotchi/build/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..b713545e6b9f9d8cf8d04de2c4ac4c9feebcf07b GIT binary patch literal 55607 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 KrTUV4%zpp^N<&Kk literal 0 HcmV?d00001 diff --git a/packages/tamagotchi/build/icon.ico b/packages/tamagotchi/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..ee3c5ff9d45adc4e6187d19abde8c67250042001 GIT binary patch literal 7856 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 QA?FNeJkVAxS4M^YKXL*x9RL6T literal 0 HcmV?d00001 diff --git a/packages/tamagotchi/build/icon.png b/packages/tamagotchi/build/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..14fa1397f016c736957747a582d7bdc7f705b9ae GIT binary patch literal 12366 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 { + mainWindow.show() + }) + + mainWindow.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url) + return { action: 'deny' } + }) + + mainWindow.show() + + // HMR for renderer base on electron-vite cli. + // Load the remote URL for development or the local html file for production. + + if (is.dev) { + // try to read port number from stage.dev.json + const devFile = readFileSync(join(import.meta.dirname, '../../../stage/stage.dev.json'), 'utf-8') + const devInfo = JSON.parse(devFile) as { address: { address: string, family: string, port: number } } + mainWindow.loadURL(`http://localhost:${devInfo.address.port}`).catch((e) => { + console.error('Failed to load URL', e) + }) + } + else { + mainWindow.loadFile(join(import.meta.dirname, '..', '..', 'out', 'renderer', 'index.html')) + } + + ipcMain.on('move-window', (_, dx, dy) => { + const [currentX, currentY] = mainWindow.getPosition() + mainWindow.setPosition(currentX + dx, currentY + dy) + }) +} + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.whenReady().then(() => { + // Set app user model id for windows + electronApp.setAppUserModelId('com.github.moeru-ai.airi-tamagotchi') + + // Default open or close DevTools by F12 in development + // and ignore CommandOrControl + R in production. + // see https://github.com/alex8088/electron-toolkit/tree/master/packages/utils + app.on('browser-window-created', (_, window) => { + optimizer.watchWindowShortcuts(window) + }) + + // IPC test + ipcMain.on('quit', () => app.quit()) + + createWindow() + + app.on('activate', () => { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) { + createWindow() + } + }) +}) + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on('window-all-closed', () => { + if (platform !== 'darwin') { + app.quit() + } +}) + +// In this file you can include the rest of your app"s specific main process +// code. You can also put them in separate files and require them here. diff --git a/packages/tamagotchi/src/preload/index.d.ts b/packages/tamagotchi/src/preload/index.d.ts new file mode 100644 index 0000000..e85d4c8 --- /dev/null +++ b/packages/tamagotchi/src/preload/index.d.ts @@ -0,0 +1,8 @@ +import type { ElectronAPI } from '@electron-toolkit/preload' + +declare global { + interface Window { + electron: ElectronAPI + api: unknown + } +} diff --git a/packages/tamagotchi/src/preload/index.ts b/packages/tamagotchi/src/preload/index.ts new file mode 100644 index 0000000..5e0bfb6 --- /dev/null +++ b/packages/tamagotchi/src/preload/index.ts @@ -0,0 +1,25 @@ +import { contextIsolated } from 'node:process' +import { electronAPI } from '@electron-toolkit/preload' +import { contextBridge } from 'electron' + +// Custom APIs for renderer +const api = {} + +// Use `contextBridge` APIs to expose Electron APIs to +// renderer only if context isolation is enabled, otherwise +// just add to the DOM global. +if (contextIsolated) { + try { + contextBridge.exposeInMainWorld('electron', electronAPI) + contextBridge.exposeInMainWorld('api', api) + } + catch (error) { + console.error(error) + } +} +else { + // @ts-expect-error (define in dts) + window.electron = electronAPI + // @ts-expect-error (define in dts) + window.api = api +} diff --git a/packages/tamagotchi/src/renderer/index.html b/packages/tamagotchi/src/renderer/index.html new file mode 100644 index 0000000..3d8ae1d --- /dev/null +++ b/packages/tamagotchi/src/renderer/index.html @@ -0,0 +1,17 @@ + + + + + アイリ + + + + + + +

PLACE HOLDER, YOU SHOULD NOT SEE THIS DURING DEVELOPMENT

+ + diff --git a/packages/tamagotchi/tsconfig.json b/packages/tamagotchi/tsconfig.json new file mode 100644 index 0000000..6668d7c --- /dev/null +++ b/packages/tamagotchi/tsconfig.json @@ -0,0 +1,4 @@ +{ + "references": [{ "path": "./tsconfig.node.json" }, { "path": "./tsconfig.web.json" }], + "files": [] +} diff --git a/packages/tamagotchi/tsconfig.node.json b/packages/tamagotchi/tsconfig.node.json new file mode 100644 index 0000000..f742f06 --- /dev/null +++ b/packages/tamagotchi/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", + "compilerOptions": { + "composite": true, + "types": ["electron-vite/node"] + }, + "include": ["electron.vite.config.*", "src/main/**/*", "src/preload/**/*"] +} diff --git a/packages/tamagotchi/tsconfig.web.json b/packages/tamagotchi/tsconfig.web.json new file mode 100644 index 0000000..d4a55be --- /dev/null +++ b/packages/tamagotchi/tsconfig.web.json @@ -0,0 +1,18 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.web.json", + "compilerOptions": { + "composite": true, + "baseUrl": ".", + "paths": { + "@renderer/*": [ + "src/renderer/src/*" + ] + } + }, + "include": [ + "src/renderer/src/env.d.ts", + "src/renderer/src/**/*", + "src/renderer/src/**/*.vue", + "src/preload/*.d.ts" + ] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15dd002..181b860 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@antfu/eslint-config': specifier: ^3.12.1 - version: 3.12.1(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@unocss/eslint-plugin@0.65.3(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint-plugin-format@0.1.3(eslint@9.17.0(jiti@2.4.0)))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6)) + version: 3.12.1(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@unocss/eslint-plugin@0.65.3(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint-plugin-format@0.1.3(eslint@9.17.0(jiti@2.4.0)))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6)) '@antfu/ni': specifier: ^0.23.2 version: 0.23.2 @@ -67,16 +67,16 @@ importers: version: 3.0.0-rc.11(typescript@5.7.2)(vue-tsc@2.2.0(typescript@5.7.2)) unocss: specifier: ^0.65.3 - version: 0.65.3(postcss@8.4.49)(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 0.65.3(postcss@8.4.49)(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) vite: specifier: ^6.0.6 - version: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + version: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) vite-plugin-inspect: specifier: ^0.10.6 - version: 0.10.6(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + version: 0.10.6(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6) + version: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6) packages/cute-ui: {} @@ -96,7 +96,7 @@ importers: version: 4.0.3 vite: specifier: ^6.0.6 - version: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + version: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) packages/llm-proxy: dependencies: @@ -149,7 +149,7 @@ importers: version: 0.171.0 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@webgpu/types': specifier: ^0.1.52 version: 0.1.52 @@ -270,6 +270,9 @@ importers: defu: specifier: ^6.1.4 version: 6.1.4 + jszip: + specifier: ^3.10.1 + version: 3.10.1 nprogress: specifier: ^0.2.0 version: 0.2.0 @@ -369,7 +372,7 @@ importers: version: 0.171.0 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@vue-macros/volar': specifier: ^0.30.8 version: 0.30.8(rollup@2.79.1)(typescript@5.7.2)(vue-tsc@2.2.0(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) @@ -384,10 +387,10 @@ importers: version: 4.0.1 unocss-preset-animations: specifier: ^1.1.0 - version: 1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))) + version: 1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))) unocss-preset-shadcn: specifier: ^0.3.1 - version: 0.3.1(unocss-preset-animations@1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))))(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))) + version: 0.3.1(unocss-preset-animations@1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))))(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))) unocss-preset-theme: specifier: ^0.14.1 version: 0.14.1(@unocss/core@0.65.3) @@ -399,10 +402,10 @@ importers: version: 0.28.0(@babel/parser@7.26.3)(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) unplugin-vue-macros: specifier: ^2.13.6 - version: 2.13.6(@vueuse/core@12.2.0(typescript@5.7.2))(esbuild@0.24.2)(rollup@2.79.1)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) + version: 2.13.6(@vueuse/core@12.2.0(typescript@5.7.2))(esbuild@0.24.2)(rollup@2.79.1)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) unplugin-vue-markdown: specifier: ^0.28.0 - version: 0.28.0(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + version: 0.28.0(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) unplugin-vue-router: specifier: ^0.10.9 version: 0.10.9(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)) @@ -411,20 +414,69 @@ importers: version: 1.2.1(rollup@2.79.1) vite-plugin-pwa: specifier: ^0.21.1 - version: 0.21.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 0.21.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0) vite-plugin-vue-devtools: specifier: ^7.6.8 - version: 7.6.8(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 7.6.8(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) vite-plugin-vue-layouts: specifier: ^0.11.0 - version: 0.11.0(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)) + version: 0.11.0(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(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.3 - version: 3.10.3(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + version: 3.10.3(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) vue-tsc: specifier: ^2.2.0 version: 2.2.0(typescript@5.7.2) + packages/tamagotchi: + dependencies: + '@electron-toolkit/preload': + specifier: ^3.0.0 + version: 3.0.1(electron@31.7.6) + '@electron-toolkit/utils': + specifier: ^3.0.0 + version: 3.0.0(electron@31.7.6) + devDependencies: + '@electron-toolkit/eslint-config': + specifier: ^1.0.2 + version: 1.0.2(eslint@9.17.0(jiti@2.4.0)) + '@electron-toolkit/eslint-config-ts': + specifier: ^2.0.0 + version: 2.0.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + '@electron-toolkit/tsconfig': + specifier: ^1.0.1 + version: 1.0.1(@types/node@20.17.10) + '@rushstack/eslint-patch': + specifier: ^1.10.3 + version: 1.10.4 + '@types/node': + specifier: ^20.14.8 + version: 20.17.10 + '@vitejs/plugin-vue': + specifier: ^5.0.5 + version: 5.2.1(vite@5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6))(vue@3.5.13(typescript@5.7.2)) + electron: + specifier: ^31.0.2 + version: 31.7.6 + electron-builder: + specifier: ^24.13.3 + version: 24.13.3(electron-builder-squirrel-windows@24.13.3) + electron-vite: + specifier: ^2.3.0 + version: 2.3.0(vite@5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6)) + typescript: + specifier: ^5.5.2 + version: 5.7.2 + vite: + specifier: ^5.3.1 + version: 5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6) + vue: + specifier: ^3.4.30 + version: 3.5.13(typescript@5.7.2) + vue-tsc: + specifier: ^2.0.22 + version: 2.2.0(typescript@5.7.2) + packages/whisper-webgpu: dependencies: '@unocss/reset': @@ -445,7 +497,7 @@ importers: version: 3.2.4 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + version: 5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@webgpu/types': specifier: ^0.1.52 version: 0.1.52 @@ -458,6 +510,9 @@ importers: packages: + 7zip-bin@5.2.0: + resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} + '@11labs/client@0.0.4': resolution: {integrity: sha512-BldXyZsTtiS8Db3RTDxuk1B+Gx7pj7xxUWS5MJA3CfvKegDJeX979l3s3ZJ4StBLM2VaOTf3b2c5NUTy41a3nQ==} @@ -1132,6 +1187,10 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + '@develar/schema-utils@2.6.5': + resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} + engines: {node: '>= 8.9.0'} + '@dprint/formatter@0.3.0': resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==} @@ -1141,6 +1200,57 @@ packages: '@dprint/toml@0.6.3': resolution: {integrity: sha512-zQ42I53sb4WVHA+5yoY1t59Zk++Ot02AvUgtNKLzTT8mPyVqVChFcePa3on/xIoKEgH+RoepgPHzqfk9837YFw==} + '@electron-toolkit/eslint-config-ts@2.0.0': + resolution: {integrity: sha512-NGXadMyWH9+ZsgYe/u5E0mqK2qTDq01kKKnyo7oiq/7v/dWoMoPhqSkn69NZvt7WmnFNOm57l71fv6128mAx3Q==} + peerDependencies: + eslint: '>=8.56.0' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@electron-toolkit/eslint-config@1.0.2': + resolution: {integrity: sha512-GJVuMsxBHfVARfmUoSTCHT0e/QfWlVbXcGk3tgoku0ad6tLjydbv2LpvKi02+Sy2WiEz9L9SkGSw090ukT/F0A==} + peerDependencies: + eslint: '>= 8.0.0' + + '@electron-toolkit/preload@3.0.1': + resolution: {integrity: sha512-EzoQmpK8jqqU8YnM5jRe0GJjGVJPke2KtANqz8QtN2JPT96ViOvProBdK5C6riCm0j1T8jjAGVQCZLQy9OVoIA==} + peerDependencies: + electron: '>=13.0.0' + + '@electron-toolkit/tsconfig@1.0.1': + resolution: {integrity: sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==} + peerDependencies: + '@types/node': '*' + + '@electron-toolkit/utils@3.0.0': + resolution: {integrity: sha512-GaXHDhiT7KCvMJjXdp/QqpYinq69T/Pdl49Z1XLf8mKGf63dnsODMWyrmIjEQ0z/vG7dO8qF3fvmI6Eb2lUNZA==} + peerDependencies: + electron: '>=13.0.0' + + '@electron/asar@3.2.17': + resolution: {integrity: sha512-OcWImUI686w8LkghQj9R2ynZ2ME693Ek6L1SiaAgqGKzBaTIZw3fHDqN82Rcl+EU1Gm9EgkJ5KLIY/q5DCRbbA==} + engines: {node: '>=10.12.0'} + hasBin: true + + '@electron/get@2.0.3': + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + + '@electron/notarize@2.2.1': + resolution: {integrity: sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==} + engines: {node: '>= 10.0.0'} + + '@electron/osx-sign@1.0.5': + resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==} + engines: {node: '>=12.0.0'} + hasBin: true + + '@electron/universal@1.5.1': + resolution: {integrity: sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==} + engines: {node: '>=8.6'} + '@emnapi/core@1.3.1': resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} @@ -2208,6 +2318,14 @@ packages: '@keyv/serialize@1.0.1': resolution: {integrity: sha512-kKXeynfORDGPUEEl2PvTExM2zs+IldC6ZD8jPcfvI351MDNtfMlw9V9s4XZXuJNDK2qR5gbEKxRyoYx3quHUVQ==} + '@malept/cross-spawn-promise@1.1.1': + resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} + engines: {node: '>= 10'} + + '@malept/flatpak-bundler@0.4.0': + resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} + engines: {node: '>= 10.0.0'} + '@mdit-vue/plugin-component@2.1.3': resolution: {integrity: sha512-9AG17beCgpEw/4ldo/M6Y/1Rh4E1bqMmr/rCkWKmCAxy9tJz3lzY7HQJanyHMJufwsb3WL5Lp7Om/aPcQTZ9SA==} @@ -2886,6 +3004,9 @@ packages: cpu: [x64] os: [win32] + '@rushstack/eslint-patch@1.10.4': + resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} + '@sec-ant/readable-stream@0.4.1': resolution: {integrity: sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==} @@ -2907,6 +3028,10 @@ packages: '@shikijs/vscode-textmate@9.3.1': resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} @@ -2927,6 +3052,10 @@ packages: '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + '@tanstack/virtual-core@3.11.2': resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} @@ -2935,6 +3064,10 @@ packages: peerDependencies: vue: ^2.7.0 || ^3.0.0 + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + '@tresjs/cientos@4.0.3': resolution: {integrity: sha512-6urkgwGtXzxj7JBZh0HjX5sJwaoNVHXXclFNwFyWVIOBHBikAxFF52GhxTaAlOYfMnun2YKBW/StjnWutq7zAQ==} peerDependencies: @@ -2961,6 +3094,9 @@ packages: '@types/audioworklet@0.0.65': resolution: {integrity: sha512-JnPJtR94nLPBBQ2iUuZ3Te6FzeABVXXuATR3zw3Hl/EvSYvU8Ipd2tI8/svvTmZ5sPUEnT/fDUF7f2kSjXWC3w==} + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + '@types/debug@4.1.12': resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} @@ -2979,12 +3115,21 @@ packages: '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + '@types/fs-extra@9.0.13': + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + '@types/linkify-it@5.0.0': resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} @@ -3009,6 +3154,9 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + '@types/node@20.17.10': + resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==} + '@types/node@22.10.1': resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} @@ -3024,9 +3172,15 @@ packages: '@types/offscreencanvas@2019.7.3': resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} + '@types/plist@3.0.5': + resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==} + '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + '@types/stats.js@0.17.3': resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} @@ -3039,6 +3193,9 @@ packages: '@types/unist@3.0.0': resolution: {integrity: sha512-MFETx3tbTjE7Uk6vvnWINA/1iJ7LuMdO4fcq8UfF0pRbj01aGLduVvQcRyswuACJdpnHgg8E3rQLhaRdNEJS0w==} + '@types/verror@1.10.10': + resolution: {integrity: sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==} + '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -3067,6 +3224,17 @@ packages: valibot: optional: true + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + '@typescript-eslint/parser': ^7.0.0 + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/eslint-plugin@8.18.2': resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3075,6 +3243,16 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/parser@8.18.2': resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3082,6 +3260,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/scope-manager@8.18.1': resolution: {integrity: sha512-HxfHo2b090M5s2+/9Z3gkBhI6xBH8OJCFjH9MhQ+nnoZqxU3wNxkLT+VWXWSFWc3UF3Z+CfPAyqdCTdoXtDPCQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3090,6 +3272,16 @@ packages: resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/type-utils@8.18.2': resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3097,6 +3289,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/types@8.18.1': resolution: {integrity: sha512-7uoAUsCj66qdNQNpH2G8MyTFlgerum8ubf21s3TSM3XmKXuIn+H2Sifh/ES2nPOPiYSRJWAk0fDkW0APBWcpfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3105,6 +3301,15 @@ packages: resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + '@typescript-eslint/typescript-estree@8.18.1': resolution: {integrity: sha512-z8U21WI5txzl2XYOW7i9hJhxoKKNG1kcU4RzyNvKrdZDmbjkmLBo8bgeiOJmA06kizLI76/CCBAAGlTlEeUfyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3117,6 +3322,12 @@ packages: peerDependencies: typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + '@typescript-eslint/utils@8.18.1': resolution: {integrity: sha512-8vikiIj2ebrC4WRdcAdDcmnu9Q/MXXwg+STf40BVfT8exDqBCUPdypvzcUPxEqRGKg9ALagZ0UWcYCtn+4W2iQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3131,6 +3342,10 @@ packages: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} + '@typescript-eslint/visitor-keys@8.18.1': resolution: {integrity: sha512-Vj0WLm5/ZsD013YeUKn+K0y8p1M0jPpxOkKdbD1wB0ns53a5piVY02zjf072TblEweAbcYiFiPoSMF3kp+VhhQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3615,6 +3830,10 @@ packages: '@webgpu/types@0.1.52': resolution: {integrity: sha512-eI883Nlag2hGIkhXxAnq8s4APpqXWuPL3Gbn2ghiU12UjLvfCbVqHK4XfXl3eLRTatqcMmeK7jws7IwWsGfbzw==} + '@xmldom/xmldom@0.8.10': + resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==} + engines: {node: '>=10.0.0'} + '@xsai/generate-speech@0.0.22': resolution: {integrity: sha512-8z/3WbLkrydKHrExCUZQ2edXeOOGVij+sY5CBbP8BTlBrtuy5XxNF+874Ulrjsfk7EDE4W0FmWVn5MEeGtYwTA==} @@ -3658,10 +3877,19 @@ packages: engines: {node: '>=0.4.0'} hasBin: true + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + agent-base@7.1.1: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} @@ -3698,9 +3926,31 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + app-builder-bin@4.0.0: + resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==} + + app-builder-lib@24.13.3: + resolution: {integrity: sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==} + engines: {node: '>=14.0.0'} + peerDependencies: + dmg-builder: 24.13.3 + electron-builder-squirrel-windows: 24.13.3 + appdata-path@1.0.0: resolution: {integrity: sha512-ZbH3ezXfnT/YE3NdqduIt4lBV+H0ybvA2Qx3K76gIjQvh8gROpDFdDLpx6B1QJtW7zxisCbpTlCLhKqoR8cDBw==} + archiver-utils@2.1.0: + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} + + archiver-utils@3.0.4: + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} + + archiver@5.3.2: + resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} + engines: {node: '>= 10'} + are-docs-informative@0.0.2: resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} engines: {node: '>=14'} @@ -3725,6 +3975,10 @@ packages: resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} engines: {node: '>=0.10.0'} + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + array-uniq@1.0.3: resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} engines: {node: '>=0.10.0'} @@ -3736,6 +3990,10 @@ packages: as-table@1.0.55: resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==} + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -3752,6 +4010,14 @@ packages: resolution: {integrity: sha512-1UWOyC50xI3QZkRuDj6PqDtpm1oHWtYs+NQGwqL/2R11eN3Q81PHAHPM0SWW3BNQm53UDwS//Jv8L4CCVLM1bQ==} engines: {node: '>=16.14.0'} + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-exit-hook@2.0.1: + resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} + engines: {node: '>=0.12.0'} + async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} @@ -3810,9 +4076,18 @@ packages: birpc@0.2.19: resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + blake3-wasm@2.1.5: resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==} + bluebird-lst@1.0.9: + resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + body-parser@1.20.1: resolution: {integrity: sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -3820,6 +4095,10 @@ packages: boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} @@ -3838,12 +4117,26 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + builder-util-runtime@9.2.4: + resolution: {integrity: sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==} + engines: {node: '>=12.0.0'} + + builder-util@24.13.1: + resolution: {integrity: sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==} + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} @@ -3883,6 +4176,14 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + cacheable@1.8.5: resolution: {integrity: sha512-sRdiC3/Va8SAqZcnvcfxQAP3p3uipWl9MZpnNmAzHteyMVDRb5QllQO/JRcHGeDzYzPTfOBPH/27hoTpcREF1A==} @@ -3956,6 +4257,13 @@ packages: resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} engines: {node: '>=18'} + chromium-pickle-js@0.2.0: + resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + ci-info@4.0.0: resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} engines: {node: '>=8'} @@ -3975,6 +4283,10 @@ packages: resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} engines: {node: '>=18'} + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + cli-truncate@4.0.0: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} @@ -3983,6 +4295,9 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -4020,6 +4335,10 @@ packages: commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + commander@7.2.0: resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} engines: {node: '>= 10'} @@ -4035,9 +4354,17 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-version@0.1.2: + resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==} + engines: {node: '>=0.10.0'} + compatx@0.1.8: resolution: {integrity: sha512-jcbsEAR81Bt5s1qOFymBufmCbXCXbk0Ql+K5ouj6gCyx2yHlu6AgmGIi9HxfKixpUDO5bCFJUHQ5uM6ecbTebw==} + compress-commons@4.1.2: + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} + compressible@2.0.18: resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} engines: {node: '>= 0.6'} @@ -4052,6 +4379,9 @@ packages: confbox@0.1.8: resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + config-file-ts@0.2.6: + resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==} + consola@3.2.3: resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4082,6 +4412,9 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + copy-anything@3.0.5: resolution: {integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==} engines: {node: '>=12.13'} @@ -4089,6 +4422,9 @@ packages: core-js-compat@3.39.0: resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4096,6 +4432,18 @@ packages: resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} engines: {node: '>= 0.10'} + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + + crc32-stream@4.0.3: + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} + + crc@3.8.0: + resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} + cross-env@7.0.3: resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} @@ -4221,6 +4569,10 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + deep-eql@5.0.2: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} @@ -4240,6 +4592,10 @@ packages: resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} engines: {node: '>=18'} + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + define-data-property@1.1.4: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} @@ -4288,6 +4644,22 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dir-compare@3.3.0: + resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + dmg-builder@24.13.3: + resolution: {integrity: sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==} + + dmg-license@1.0.11: + resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} + engines: {node: '>=8'} + os: [darwin] + hasBin: true + doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -4305,10 +4677,17 @@ packages: domutils@3.1.0: resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + dotenv-expand@5.1.0: + resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} + dotenv@16.4.6: resolution: {integrity: sha512-JhcR/+KIjkkjiU8yEpaB/USlzVi3i5whwOjpIRNGi9svKEXZSe+Qp6IWAjFjv+2GViAoDRCUv/QLNziQxsLqDg==} engines: {node: '>=12'} + dotenv@9.0.2: + resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} + engines: {node: '>=10'} + draco3d@1.5.7: resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==} @@ -4329,9 +4708,36 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + electron-builder-squirrel-windows@24.13.3: + resolution: {integrity: sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==} + + electron-builder@24.13.3: + resolution: {integrity: sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==} + engines: {node: '>=14.0.0'} + hasBin: true + + electron-publish@24.13.1: + resolution: {integrity: sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==} + electron-to-chromium@1.5.63: resolution: {integrity: sha512-ddeXKuY9BHo/mw145axlyWjlJ1UBt4WK3AlvkT7W2AbqfRQoacVoRUCF6wL3uIx/8wT9oLKXzI+rFqHHscByaA==} + electron-vite@2.3.0: + resolution: {integrity: sha512-lsN2FymgJlp4k6MrcsphGqZQ9fKRdJKasoaiwIrAewN1tapYI/KINLdfEL7n10LuF0pPSNf/IqjzZbB5VINctg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@swc/core': ^1.0.0 + vite: ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + '@swc/core': + optional: true + + electron@31.7.6: + resolution: {integrity: sha512-fc2kMaEc/zxGTW6oCxbuE7BQNOlDucSo+351AiovBAcp7G0iQkVu3k2kHIQolSsD38+tPdBj/N02DVpZTzi7rg==} + engines: {node: '>= 12.20.55'} + hasBin: true + elevenlabs@1.50.2: resolution: {integrity: sha512-Zq5fFACjctRB1Ix1k5dLnx+GLPy3Z3fKrilmXGDAdEA7WOT6GL4SA6aH7/v13Tw5CSKu/z/XzBz/7T3JeyK8LA==} @@ -4354,6 +4760,9 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -4362,10 +4771,21 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + environment@1.1.0: resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} engines: {node: '>=18'} + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -4395,6 +4815,9 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + esbuild-runner@2.2.2: resolution: {integrity: sha512-fRFVXcmYVmSmtYm2mL8RlUASt2TDkGh3uRcvHFOKNr/T58VrfVeKD9uT9nlgxk96u0LS0ehS/GY7Da/bXWKkhw==} hasBin: true @@ -4718,6 +5141,15 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + extsprintf@1.4.1: + resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} + engines: {'0': node >=0.6.0} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -4737,6 +5169,9 @@ packages: fastq@1.15.0: resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + fdir@6.4.2: resolution: {integrity: sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==} peerDependencies: @@ -4849,6 +5284,13 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -4905,6 +5347,10 @@ packages: get-source@2.0.12: resolution: {integrity: sha512-X5+4+iD+HoSeEED+uwrQ07BOQr0kEDFMVqqpBuI+RaZBpBpHCuXxo70bjar6f0b0u/DQJsJ7ssurpP0V60Az+w==} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -4952,6 +5398,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -4976,6 +5426,10 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + globby@14.0.2: resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} engines: {node: '>=18'} @@ -4996,6 +5450,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -5078,6 +5536,10 @@ packages: hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + hpack.js@2.1.6: resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} @@ -5092,6 +5554,9 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + http-deceiver@1.2.7: resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} @@ -5099,14 +5564,26 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + https-localhost@4.7.1: resolution: {integrity: sha512-rl+NFV0l67/0W7fZwk4LB5gS6HdhtSFLpCpf1N+KD5WQAXtPXX1QE8H0cP8VNJii18rtpTkE9eAHdUfJ0goAnQ==} hasBin: true + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + https-proxy-agent@7.0.5: resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} engines: {node: '>= 14'} @@ -5123,6 +5600,11 @@ packages: resolution: {integrity: sha512-/1/GPCpDUCCYwlERiYjxoczfP0zfvZMU/OWgQPMya9AbAE24vseigFdhAMObpc8Q4lc/kjutPfUddDYyAmejnA==} engines: {node: '>=18.18.0'} + iconv-corefoundation@1.1.7: + resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} + engines: {node: ^8.11.2 || >=10} + os: [darwin] + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -5145,6 +5627,14 @@ packages: resolution: {integrity: sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==} engines: {node: '>= 4'} + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -5210,6 +5700,10 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} @@ -5327,6 +5821,9 @@ packages: is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + is-what@4.1.16: resolution: {integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==} engines: {node: '>=12.13'} @@ -5348,6 +5845,14 @@ packages: isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isbinaryfile@5.0.4: + resolution: {integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==} + engines: {node: '>= 18.0.0'} + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -5424,6 +5929,9 @@ packages: json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} @@ -5446,6 +5954,9 @@ packages: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} @@ -5470,6 +5981,18 @@ packages: kolorist@1.8.0: resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + lazystream@1.0.1: + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} + + less@4.2.1: + resolution: {integrity: sha512-CasaJidTIhWmjcqv0Uj5vccMI7pJgfD9lMkKtlnTHAdJdYK/7l8pM9tumLyJ0zhbD4KJLo/YvTj+xznQd5NBhg==} + engines: {node: '>=6'} + hasBin: true + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} @@ -5478,6 +6001,9 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + lilconfig@3.1.3: resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} @@ -5516,6 +6042,18 @@ packages: lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + lodash.defaults@4.2.0: + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + + lodash.difference@4.5.0: + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + + lodash.flatten@4.4.0: + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} @@ -5525,6 +6063,9 @@ packages: lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + lodash.union@4.6.0: + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} @@ -5551,12 +6092,20 @@ packages: loupe@3.1.2: resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + magic-string-ast@0.6.2: resolution: {integrity: sha512-oN3Bcd7ZVt+0VGEs7402qR/tjgjbM7kPlH/z7ufJnzTLVBzXJITRHOJiwMmmYMgZfdoWQsfQcY+iKlxiBppnMA==} engines: {node: '>=16.14.0'} @@ -5574,6 +6123,10 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} @@ -5594,6 +6147,10 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + mdast-util-find-and-replace@3.0.1: resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} @@ -5764,6 +6321,11 @@ packages: engines: {node: '>=4'} hasBin: true + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} @@ -5777,6 +6339,14 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -5800,6 +6370,9 @@ packages: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} @@ -5889,10 +6462,18 @@ packages: resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} engines: {node: '>=18'} + needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} engines: {node: '>= 0.6'} + node-addon-api@1.7.2: + resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} + node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} @@ -5923,6 +6504,10 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} @@ -6040,6 +6625,10 @@ packages: oxc-resolver@2.1.1: resolution: {integrity: sha512-xPkFYfaR5zJXoaGvYF8FAb1JY4mKoyhIyShj7nwWKeald5Cee03ktPzxdW77PubSl3w8Kle0bHsNm37+gxyY1g==} + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -6066,6 +6655,9 @@ packages: package-manager-detector@0.2.5: resolution: {integrity: sha512-3dS7y28uua+UDbRCLBqltMBrbI+A5U2mI9YuxHRxIWYmLj3DwntEBmERYzIAQ4DMeuCUOBSak7dBHHoXKpOTYQ==} + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -6086,6 +6678,10 @@ packages: resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==} engines: {node: '>=18'} + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -6125,6 +6721,10 @@ packages: path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + path-type@5.0.0: resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} engines: {node: '>=12'} @@ -6162,7 +6762,11 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pinia@2.3.0: + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pinia@2.3.0: resolution: {integrity: sha512-ohZj3jla0LL0OH5PlLTDMzqKiVw2XARmC1XYLdLWIPBMdhDW/123ZWr4zVAhtJm+aoSkFa13pYXskAvAscIkhQ==} peerDependencies: typescript: '>=4.4.4' @@ -6202,6 +6806,10 @@ packages: platform@1.3.6: resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} + plist@3.1.0: + resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==} + engines: {node: '>=10.4.0'} + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} @@ -6431,6 +7039,14 @@ packages: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} engines: {node: '>= 0.6.0'} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -6453,6 +7069,12 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -6479,6 +7101,10 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + radix-vue@1.9.11: resolution: {integrity: sha512-C+MtJ66jf8J28DO5bKgNwhGCi6WQYuEosD/tY/Orry9BTDcuF/Mps4HlFd2Tq4YlXF44BEPLQ2Paz89Mz70ZgA==} peerDependencies: @@ -6502,6 +7128,10 @@ packages: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} + read-config-file@6.3.2: + resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==} + engines: {node: '>=12.0.0'} + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -6524,6 +7154,9 @@ packages: resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -6602,6 +7235,9 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -6613,10 +7249,17 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + restore-cursor@5.0.0: resolution: {integrity: sha512-Hp93f349DvdEqJFHiPyzNzVjT7lDDFtQJWRotQVQNl3CHr4j7oMHStQB9UH/CJSHTrevAZXFvomgzy8lXjrK0w==} engines: {node: '>=18'} + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} @@ -6628,6 +7271,10 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + rollup-plugin-dts@6.1.1: resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==} engines: {node: '>=16'} @@ -6691,6 +7338,12 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -6713,6 +7366,9 @@ packages: resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} engines: {node: '>=10'} + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + semver@5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} hasBin: true @@ -6730,6 +7386,10 @@ packages: resolution: {integrity: sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==} engines: {node: '>= 0.8.0'} + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -6745,6 +7405,9 @@ packages: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -6784,6 +7447,10 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + simple-update-notifier@2.0.0: + resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} + engines: {node: '>=10'} + sirv@3.0.0: resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} engines: {node: '>=18'} @@ -6791,6 +7458,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + slash@5.1.0: resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} engines: {node: '>=14.16'} @@ -6798,6 +7469,10 @@ packages: slashes@3.0.12: resolution: {integrity: sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==} + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + slice-ansi@5.0.0: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} @@ -6806,6 +7481,10 @@ packages: resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} engines: {node: '>=18'} + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smob@1.5.0: resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} @@ -6864,6 +7543,9 @@ packages: sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + stable-hash@0.0.4: resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==} @@ -6873,6 +7555,10 @@ packages: stacktracey@2.1.8: resolution: {integrity: sha512-Kpij9riA+UNg7TnphqjH7/CzctQ/owJGNbFkfEeve4Z4uxT5+JapVLFXcsurIfN34gnTWZNJ/f7NMG0E8JDzTw==} + stat-mode@1.0.0: + resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} + engines: {node: '>= 6'} + stats-gl@2.4.2: resolution: {integrity: sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==} peerDependencies: @@ -6990,6 +7676,10 @@ packages: peerDependencies: postcss: ^8.4.31 + sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + superjson@2.2.1: resolution: {integrity: sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==} engines: {node: '>=16'} @@ -7025,6 +7715,10 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + tar@6.2.1: resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} @@ -7041,6 +7735,9 @@ packages: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} + temp-file@3.4.0: + resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} + tempy@0.6.0: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} @@ -7102,6 +7799,9 @@ packages: resolution: {integrity: sha512-rv8LUyez4Ygkopqn+M6OLItAOT9FF3REpPQDkdMx5ix8w4qkuE7Vo2o/vw1nxKQYmJDV8JpAMJQr1b+lTKf0FA==} hasBin: true + tmp-promise@3.0.3: + resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} + tmp@0.2.3: resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} engines: {node: '>=14.14'} @@ -7146,6 +7846,9 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + ts-api-utils@1.3.0: resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -7170,6 +7873,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} @@ -7242,6 +7949,9 @@ packages: unctx@2.4.0: resolution: {integrity: sha512-VSwGlVn3teRLkFS9OH4JoZ25ky133vVPQkS6qHv/itYVrqHBa+7SO46Yh07Zve1WEi9A1X135g9DR6KMv6ZsJg==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} @@ -7460,6 +8170,9 @@ packages: resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} engines: {node: '>= 0.4'} + utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -7496,6 +8209,10 @@ packages: radix-vue: ^1.4.0 vue: ^3.3.0 + verror@1.10.1: + resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} + engines: {node: '>=0.6.0'} + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} @@ -7872,6 +8589,10 @@ packages: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} + xmlbuilder@15.1.1: + resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} + engines: {node: '>=8.0'} + xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} @@ -7913,6 +8634,9 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yauzl@3.2.0: resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} engines: {node: '>=12'} @@ -7931,6 +8655,10 @@ packages: zhead@2.2.4: resolution: {integrity: sha512-8F0OI5dpWIA5IGG5NHUg9staDwz/ZPxZtvGVf01j7vHqSyZ0raHY+78atOVxRqb73AotX22uV1pXt3gYSstGag==} + zip-stream@4.1.1: + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} + zod@3.24.1: resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} @@ -7939,6 +8667,8 @@ packages: snapshots: + 7zip-bin@5.2.0: {} + '@11labs/client@0.0.4': {} '@aashutoshrathi/word-wrap@1.2.6': {} @@ -7950,7 +8680,7 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@antfu/eslint-config@3.12.1(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@unocss/eslint-plugin@0.65.3(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint-plugin-format@0.1.3(eslint@9.17.0(jiti@2.4.0)))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6))': + '@antfu/eslint-config@3.12.1(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@unocss/eslint-plugin@0.65.3(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(@vue/compiler-sfc@3.5.13)(eslint-plugin-format@0.1.3(eslint@9.17.0(jiti@2.4.0)))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6))': dependencies: '@antfu/install-pkg': 0.5.0 '@clack/prompts': 0.9.0 @@ -7959,7 +8689,7 @@ snapshots: '@stylistic/eslint-plugin': 2.12.1(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) '@typescript-eslint/eslint-plugin': 8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) '@typescript-eslint/parser': 8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) - '@vitest/eslint-plugin': 1.1.20(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6)) + '@vitest/eslint-plugin': 1.1.20(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6)) eslint: 9.17.0(jiti@2.4.0) eslint-config-flat-gitignore: 0.3.0(eslint@9.17.0(jiti@2.4.0)) eslint-flat-config-utils: 0.4.0 @@ -8036,12 +8766,12 @@ snapshots: '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) '@babel/helpers': 7.26.0 - '@babel/parser': 7.26.2 + '@babel/parser': 7.26.3 '@babel/template': 7.25.9 '@babel/traverse': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 convert-source-map: 2.0.0 - debug: 4.3.7 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -8188,7 +8918,7 @@ snapshots: '@babel/helpers@7.26.0': dependencies: '@babel/template': 7.25.9 - '@babel/types': 7.26.0 + '@babel/types': 7.26.3 '@babel/parser@7.26.2': dependencies: @@ -8718,7 +9448,7 @@ snapshots: '@babel/parser': 7.26.2 '@babel/template': 7.25.9 '@babel/types': 7.26.0 - debug: 4.3.7 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color @@ -8771,12 +9501,94 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 + '@develar/schema-utils@2.6.5': + dependencies: + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + '@dprint/formatter@0.3.0': {} '@dprint/markdown@0.17.8': {} '@dprint/toml@0.6.3': {} + '@electron-toolkit/eslint-config-ts@2.0.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': + dependencies: + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + '@typescript-eslint/parser': 7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + eslint: 9.17.0(jiti@2.4.0) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@electron-toolkit/eslint-config@1.0.2(eslint@9.17.0(jiti@2.4.0))': + dependencies: + eslint: 9.17.0(jiti@2.4.0) + + '@electron-toolkit/preload@3.0.1(electron@31.7.6)': + dependencies: + electron: 31.7.6 + + '@electron-toolkit/tsconfig@1.0.1(@types/node@20.17.10)': + dependencies: + '@types/node': 20.17.10 + + '@electron-toolkit/utils@3.0.0(electron@31.7.6)': + dependencies: + electron: 31.7.6 + + '@electron/asar@3.2.17': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.2 + + '@electron/get@2.0.3': + dependencies: + debug: 4.4.0 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@electron/notarize@2.2.1': + dependencies: + debug: 4.4.0 + fs-extra: 9.1.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@electron/osx-sign@1.0.5': + dependencies: + compare-version: 0.1.2 + debug: 4.4.0 + fs-extra: 10.1.0 + isbinaryfile: 4.0.10 + minimist: 1.2.8 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + + '@electron/universal@1.5.1': + dependencies: + '@electron/asar': 3.2.17 + '@malept/cross-spawn-promise': 1.1.1 + debug: 4.4.0 + dir-compare: 3.3.0 + fs-extra: 9.1.0 + minimatch: 3.1.2 + plist: 3.1.0 + transitivePeerDependencies: + - supports-color + '@emnapi/core@1.3.1': dependencies: '@emnapi/wasi-threads': 1.0.1 @@ -9512,6 +10324,19 @@ snapshots: dependencies: buffer: 6.0.3 + '@malept/cross-spawn-promise@1.1.1': + dependencies: + cross-spawn: 7.0.6 + + '@malept/flatpak-bundler@0.4.0': + dependencies: + debug: 4.4.0 + fs-extra: 9.1.0 + lodash: 4.17.21 + tmp-promise: 3.0.3 + transitivePeerDependencies: + - supports-color + '@mdit-vue/plugin-component@2.1.3': dependencies: '@types/markdown-it': 14.1.2 @@ -10206,6 +11031,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.29.1': optional: true + '@rushstack/eslint-patch@1.10.4': {} + '@sec-ant/readable-stream@0.4.1': {} '@shikijs/core@1.24.4': @@ -10240,6 +11067,8 @@ snapshots: '@shikijs/vscode-textmate@9.3.1': {} + '@sindresorhus/is@4.6.0': {} + '@sindresorhus/merge-streams@2.3.0': optional: true @@ -10268,6 +11097,10 @@ snapshots: dependencies: tslib: 2.8.1 + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + '@tanstack/virtual-core@3.11.2': {} '@tanstack/vue-virtual@3.11.2(vue@3.5.13(typescript@5.7.2))': @@ -10275,6 +11108,8 @@ snapshots: '@tanstack/virtual-core': 3.11.2 vue: 3.5.13(typescript@5.7.2) + '@tootallnate/once@2.0.0': {} + '@tresjs/cientos@4.0.3(@tresjs/core@4.3.1(three@0.172.0)(vue@3.5.13(typescript@5.7.2)))(@types/three@0.171.0)(react@18.3.1)(three@0.172.0)(vue@3.5.13(typescript@5.7.2))': dependencies: '@tresjs/core': 4.3.1(three@0.172.0)(vue@3.5.13(typescript@5.7.2)) @@ -10313,6 +11148,13 @@ snapshots: '@types/audioworklet@0.0.65': {} + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 22.10.3 + '@types/responselike': 1.0.3 + '@types/debug@4.1.12': dependencies: '@types/ms': 0.7.34 @@ -10327,12 +11169,22 @@ snapshots: '@types/estree@1.0.6': {} + '@types/fs-extra@9.0.13': + dependencies: + '@types/node': 22.10.3 + '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.0 + '@types/http-cache-semantics@4.0.4': {} + '@types/json-schema@7.0.15': {} + '@types/keyv@3.1.4': + dependencies: + '@types/node': 22.10.3 + '@types/linkify-it@5.0.0': {} '@types/long@4.0.2': {} @@ -10358,6 +11210,10 @@ snapshots: dependencies: '@types/node': 22.10.3 + '@types/node@20.17.10': + dependencies: + undici-types: 6.19.8 + '@types/node@22.10.1': dependencies: undici-types: 6.20.0 @@ -10372,8 +11228,18 @@ snapshots: '@types/offscreencanvas@2019.7.3': {} + '@types/plist@3.0.5': + dependencies: + '@types/node': 22.10.3 + xmlbuilder: 15.1.1 + optional: true + '@types/resolve@1.20.2': {} + '@types/responselike@1.0.3': + dependencies: + '@types/node': 22.10.3 + '@types/stats.js@0.17.3': {} '@types/three@0.171.0': @@ -10389,6 +11255,9 @@ snapshots: '@types/unist@3.0.0': {} + '@types/verror@1.10.10': + optional: true + '@types/web-bluetooth@0.0.20': {} '@types/webxr@0.5.20': {} @@ -10410,6 +11279,24 @@ snapshots: transitivePeerDependencies: - '@types/json-schema' + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 9.17.0(jiti@2.4.0) + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 1.3.0(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/eslint-plugin@8.18.2(@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 @@ -10427,6 +11314,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': + dependencies: + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + eslint: 9.17.0(jiti@2.4.0) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 8.18.2 @@ -10439,6 +11339,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/scope-manager@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + '@typescript-eslint/scope-manager@8.18.1': dependencies: '@typescript-eslint/types': 8.18.1 @@ -10449,6 +11354,18 @@ snapshots: '@typescript-eslint/types': 8.18.2 '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/type-utils@7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + '@typescript-eslint/utils': 7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) + debug: 4.4.0 + eslint: 9.17.0(jiti@2.4.0) + ts-api-utils: 1.3.0(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/type-utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': dependencies: '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) @@ -10460,10 +11377,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/types@7.18.0': {} + '@typescript-eslint/types@8.18.1': {} '@typescript-eslint/types@8.18.2': {} + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.7.2) + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/typescript-estree@8.18.1(typescript@5.7.2)': dependencies: '@typescript-eslint/types': 8.18.1 @@ -10492,6 +11426,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/utils@7.18.0(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@2.4.0)) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2) + eslint: 9.17.0(jiti@2.4.0) + transitivePeerDependencies: + - supports-color + - typescript + '@typescript-eslint/utils@8.18.1(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0(jiti@2.4.0)) @@ -10514,6 +11459,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + '@typescript-eslint/visitor-keys@8.18.1': dependencies: '@typescript-eslint/types': 8.18.1 @@ -10577,25 +11527,25 @@ snapshots: unhead: 1.11.14 vue: 3.5.13(typescript@5.7.2) - '@unocss/astro@0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@unocss/astro@0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: '@unocss/core': 0.65.3 '@unocss/reset': 0.65.3 - '@unocss/vite': 0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@unocss/vite': 0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) optionalDependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - rollup - supports-color - vue - '@unocss/astro@0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@unocss/astro@0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: '@unocss/core': 0.65.3 '@unocss/reset': 0.65.3 - '@unocss/vite': 0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@unocss/vite': 0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) optionalDependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - rollup - supports-color @@ -10770,7 +11720,7 @@ snapshots: dependencies: '@unocss/core': 0.65.3 - '@unocss/vite@0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@unocss/vite@0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.4(rollup@2.79.1) @@ -10780,13 +11730,13 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.17 tinyglobby: 0.2.10 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - rollup - supports-color - vue - '@unocss/vite@0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@unocss/vite@0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.4(rollup@4.29.1) @@ -10796,24 +11746,29 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.17 tinyglobby: 0.2.10 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - rollup - supports-color - vue - '@vitejs/plugin-vue@5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6))(vue@3.5.13(typescript@5.7.2))': + dependencies: + vite: 5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6) + vue: 3.5.13(typescript@5.7.2) + + '@vitejs/plugin-vue@5.2.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) vue: 3.5.13(typescript@5.7.2) - '@vitest/eslint-plugin@1.1.20(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6))': + '@vitest/eslint-plugin@1.1.20(@typescript-eslint/utils@8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2))(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6))': dependencies: '@typescript-eslint/utils': 8.18.2(eslint@9.17.0(jiti@2.4.0))(typescript@5.7.2) eslint: 9.17.0(jiti@2.4.0) optionalDependencies: typescript: 5.7.2 - vitest: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6) + vitest: 2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6) '@vitest/expect@2.1.8': dependencies: @@ -10822,13 +11777,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.3)(terser@5.17.6))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.11(@types/node@22.10.3)(terser@5.17.6) + vite: 5.4.11(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6) '@vitest/pretty-format@2.1.8': dependencies: @@ -11013,12 +11968,12 @@ snapshots: - rollup - vue - '@vue-macros/devtools@0.4.1(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))': + '@vue-macros/devtools@0.4.1(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))': dependencies: sirv: 3.0.0 vue: 3.5.13(typescript@5.7.2) optionalDependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - typescript @@ -11214,14 +12169,14 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-core@7.6.8(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': + '@vue/devtools-core@7.6.8(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue/devtools-kit': 7.6.8 '@vue/devtools-shared': 7.6.8 mitt: 3.0.1 nanoid: 5.0.9 pathe: 1.1.2 - vite-hot-client: 0.2.4(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + vite-hot-client: 0.2.4(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: - vite @@ -11389,6 +12344,8 @@ snapshots: '@webgpu/types@0.1.52': {} + '@xmldom/xmldom@0.8.10': {} + '@xsai/generate-speech@0.0.22': dependencies: '@xsai/shared': 0.0.22 @@ -11434,6 +12391,12 @@ snapshots: acorn@8.14.0: {} + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + agent-base@7.1.1: dependencies: debug: 4.4.0 @@ -11441,6 +12404,10 @@ snapshots: - supports-color optional: true + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + ajv@6.12.6: dependencies: fast-deep-equal: 3.1.3 @@ -11478,8 +12445,80 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 + app-builder-bin@4.0.0: {} + + app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3): + dependencies: + '@develar/schema-utils': 2.6.5 + '@electron/notarize': 2.2.1 + '@electron/osx-sign': 1.0.5 + '@electron/universal': 1.5.1 + '@malept/flatpak-bundler': 0.4.0 + '@types/fs-extra': 9.0.13 + async-exit-hook: 2.0.1 + bluebird-lst: 1.0.9 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chromium-pickle-js: 0.2.0 + debug: 4.4.0 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + ejs: 3.1.9 + electron-builder-squirrel-windows: 24.13.3(dmg-builder@24.13.3) + electron-publish: 24.13.1 + form-data: 4.0.0 + fs-extra: 10.1.0 + hosted-git-info: 4.1.0 + is-ci: 3.0.1 + isbinaryfile: 5.0.4 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + minimatch: 5.1.6 + read-config-file: 6.3.2 + sanitize-filename: 1.6.3 + semver: 7.6.3 + tar: 6.2.1 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + appdata-path@1.0.0: {} + archiver-utils@2.1.0: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 2.3.8 + + archiver-utils@3.0.4: + dependencies: + glob: 7.2.3 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash.defaults: 4.2.0 + lodash.difference: 4.5.0 + lodash.flatten: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.union: 4.6.0 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver@5.3.2: + dependencies: + archiver-utils: 2.1.0 + async: 3.2.4 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 2.2.0 + zip-stream: 4.1.1 + are-docs-informative@0.0.2: {} argparse@1.0.10: @@ -11503,6 +12542,8 @@ snapshots: dependencies: array-uniq: 1.0.3 + array-union@2.1.0: {} + array-uniq@1.0.3: {} arraybuffer.prototype.slice@1.0.2: @@ -11519,6 +12560,9 @@ snapshots: dependencies: printable-characters: 1.0.42 + assert-plus@1.0.0: + optional: true + assertion-error@2.0.1: {} ast-kit@1.3.1: @@ -11536,6 +12580,11 @@ snapshots: '@babel/parser': 7.26.2 ast-kit: 1.3.1 + astral-regex@2.0.0: + optional: true + + async-exit-hook@2.0.1: {} + async@2.6.4: dependencies: lodash: 4.17.21 @@ -11600,8 +12649,20 @@ snapshots: birpc@0.2.19: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + blake3-wasm@2.1.5: {} + bluebird-lst@1.0.9: + dependencies: + bluebird: 3.7.2 + + bluebird@3.7.2: {} + body-parser@1.20.1: dependencies: bytes: 3.1.2 @@ -11621,6 +12682,9 @@ snapshots: boolbase@1.0.0: {} + boolean@3.2.0: + optional: true + brace-expansion@1.1.11: dependencies: balanced-match: 1.0.2 @@ -11643,13 +12707,48 @@ snapshots: buffer-crc32@0.2.13: {} + buffer-equal@1.0.1: {} + buffer-from@1.1.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + buffer@6.0.3: dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + builder-util-runtime@9.2.4: + dependencies: + debug: 4.4.0 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + + builder-util@24.13.1: + dependencies: + 7zip-bin: 5.2.0 + '@types/debug': 4.1.12 + app-builder-bin: 4.0.0 + bluebird-lst: 1.0.9 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + fs-extra: 10.1.0 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-ci: 3.0.1 + js-yaml: 4.1.0 + source-map-support: 0.5.21 + stat-mode: 1.0.0 + temp-file: 3.4.0 + transitivePeerDependencies: + - supports-color + builtin-modules@3.3.0: {} bumpp@9.9.2: @@ -11696,6 +12795,18 @@ snapshots: cac@6.7.14: {} + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + cacheable@1.8.5: dependencies: hookified: 1.5.1 @@ -11728,7 +12839,7 @@ snapshots: capnp-ts@0.7.0: dependencies: - debug: 4.3.7 + debug: 4.4.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color @@ -11778,6 +12889,10 @@ snapshots: chownr@3.0.0: {} + chromium-pickle-js@0.2.0: {} + + ci-info@3.9.0: {} + ci-info@4.0.0: {} citty@0.1.6: @@ -11796,6 +12911,12 @@ snapshots: dependencies: restore-cursor: 5.0.0 + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + optional: true + cli-truncate@4.0.0: dependencies: slice-ansi: 5.0.0 @@ -11807,6 +12928,10 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -11839,6 +12964,8 @@ snapshots: commander@2.20.3: {} + commander@5.1.0: {} + commander@7.2.0: {} comment-parser@1.4.1: {} @@ -11847,9 +12974,18 @@ snapshots: commondir@1.0.1: {} + compare-version@0.1.2: {} + compatx@0.1.8: optional: true + compress-commons@4.1.2: + dependencies: + buffer-crc32: 0.2.13 + crc32-stream: 4.0.3 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + compressible@2.0.18: dependencies: mime-db: 1.52.0 @@ -11870,6 +13006,11 @@ snapshots: confbox@0.1.8: {} + config-file-ts@0.2.6: + dependencies: + glob: 10.4.5 + typescript: 5.7.2 + consola@3.2.3: {} consola@3.3.1: {} @@ -11888,6 +13029,11 @@ snapshots: cookie@0.7.2: {} + copy-anything@2.0.6: + dependencies: + is-what: 3.14.1 + optional: true + copy-anything@3.0.5: dependencies: is-what: 4.1.16 @@ -11896,6 +13042,9 @@ snapshots: dependencies: browserslist: 4.24.2 + core-util-is@1.0.2: + optional: true + core-util-is@1.0.3: {} cors@2.8.5: @@ -11903,6 +13052,18 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 + crc-32@1.2.2: {} + + crc32-stream@4.0.3: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + crc@3.8.0: + dependencies: + buffer: 5.7.1 + optional: true + cross-env@7.0.3: dependencies: cross-spawn: 7.0.6 @@ -12036,6 +13197,10 @@ snapshots: dependencies: character-entities: 2.0.2 + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + deep-eql@5.0.2: {} deep-is@0.1.4: {} @@ -12049,6 +13214,8 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.0 + defer-to-connect@2.0.1: {} + define-data-property@1.1.4: dependencies: es-define-property: 1.0.0 @@ -12084,6 +13251,41 @@ snapshots: dependencies: dequal: 2.0.3 + dir-compare@3.3.0: + dependencies: + buffer-equal: 1.0.1 + minimatch: 3.1.2 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + fs-extra: 10.1.0 + iconv-lite: 0.6.3 + js-yaml: 4.1.0 + optionalDependencies: + dmg-license: 1.0.11 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + + dmg-license@1.0.11: + dependencies: + '@types/plist': 3.0.5 + '@types/verror': 1.10.10 + ajv: 6.12.6 + crc: 3.8.0 + iconv-corefoundation: 1.1.7 + plist: 3.1.0 + smart-buffer: 4.2.0 + verror: 1.10.1 + optional: true + doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -12106,8 +13308,12 @@ snapshots: domelementtype: 2.3.0 domhandler: 5.0.3 + dotenv-expand@5.1.0: {} + dotenv@16.4.6: {} + dotenv@9.0.2: {} + draco3d@1.5.7: {} duplexer@0.1.2: {} @@ -12122,8 +13328,67 @@ snapshots: dependencies: jake: 10.8.6 + electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3): + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + archiver: 5.3.2 + builder-util: 24.13.1 + fs-extra: 10.1.0 + transitivePeerDependencies: + - dmg-builder + - supports-color + + electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3): + dependencies: + app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3) + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + dmg-builder: 24.13.3(electron-builder-squirrel-windows@24.13.3) + fs-extra: 10.1.0 + is-ci: 3.0.1 + lazy-val: 1.0.5 + read-config-file: 6.3.2 + simple-update-notifier: 2.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - electron-builder-squirrel-windows + - supports-color + + electron-publish@24.13.1: + dependencies: + '@types/fs-extra': 9.0.13 + builder-util: 24.13.1 + builder-util-runtime: 9.2.4 + chalk: 4.1.2 + fs-extra: 10.1.0 + lazy-val: 1.0.5 + mime: 2.6.0 + transitivePeerDependencies: + - supports-color + electron-to-chromium@1.5.63: {} + electron-vite@2.3.0(vite@5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6)): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + cac: 6.7.14 + esbuild: 0.21.5 + magic-string: 0.30.17 + picocolors: 1.1.1 + vite: 5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6) + transitivePeerDependencies: + - supports-color + + electron@31.7.6: + dependencies: + '@electron/get': 2.0.3 + '@types/node': 20.17.10 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + elevenlabs@1.50.2: dependencies: command-exists: 1.2.9 @@ -12150,6 +13415,10 @@ snapshots: encodeurl@1.0.2: {} + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -12157,8 +13426,17 @@ snapshots: entities@4.5.0: {} + env-paths@2.2.1: {} + environment@1.1.0: {} + err-code@2.0.3: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -12227,6 +13505,9 @@ snapshots: is-date-object: 1.0.5 is-symbol: 1.0.4 + es6-error@4.1.1: + optional: true + esbuild-runner@2.2.2(esbuild@0.24.2): dependencies: esbuild: 0.24.2 @@ -12801,6 +14082,19 @@ snapshots: extend@3.0.2: {} + extract-zip@2.0.1: + dependencies: + debug: 4.4.0 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + extsprintf@1.4.1: + optional: true + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -12821,6 +14115,10 @@ snapshots: dependencies: reusify: 1.0.4 + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + fdir@6.4.2(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -12929,6 +14227,14 @@ snapshots: fresh@0.5.2: {} + fs-constants@1.0.0: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.0 + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -12989,6 +14295,10 @@ snapshots: data-uri-to-buffer: 2.0.2 source-map: 0.6.1 + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -13056,6 +14366,16 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.6.3 + serialize-error: 7.0.1 + optional: true + globals@11.12.0: {} globals@13.24.0: @@ -13072,6 +14392,15 @@ snapshots: dependencies: define-properties: 1.2.0 + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.2 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + globby@14.0.2: dependencies: '@sindresorhus/merge-streams': 2.3.0 @@ -13102,6 +14431,20 @@ snapshots: dependencies: get-intrinsic: 1.2.4 + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + graceful-fs@4.2.11: {} graphemer@1.4.0: {} @@ -13192,6 +14535,10 @@ snapshots: hosted-git-info@2.8.9: {} + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + hpack.js@2.1.6: dependencies: inherits: 2.0.4 @@ -13208,6 +14555,8 @@ snapshots: html-void-elements@3.0.0: {} + http-cache-semantics@4.1.1: {} + http-deceiver@1.2.7: {} http-errors@2.0.0: @@ -13218,6 +14567,14 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.1 @@ -13226,6 +14583,11 @@ snapshots: - supports-color optional: true + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + https-localhost@4.7.1: dependencies: appdata-path: 1.0.0 @@ -13237,6 +14599,13 @@ snapshots: transitivePeerDependencies: - supports-color + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + https-proxy-agent@7.0.5: dependencies: agent-base: 7.1.1 @@ -13251,6 +14620,12 @@ snapshots: human-signals@8.0.0: {} + iconv-corefoundation@1.1.7: + dependencies: + cli-truncate: 2.1.0 + node-addon-api: 1.7.2 + optional: true + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -13258,7 +14633,6 @@ snapshots: iconv-lite@0.6.3: dependencies: safer-buffer: 2.1.2 - optional: true idb@7.1.1: {} @@ -13269,6 +14643,11 @@ snapshots: ignore@6.0.2: optional: true + image-size@0.5.5: + optional: true + + immediate@3.0.6: {} + import-fresh@3.3.0: dependencies: parent-module: 1.0.1 @@ -13286,7 +14665,7 @@ snapshots: importx@0.5.0: dependencies: bundle-require: 5.0.0(esbuild@0.23.1) - debug: 4.3.7 + debug: 4.4.0 esbuild: 0.23.1 jiti: 2.4.0 pathe: 1.1.2 @@ -13342,6 +14721,10 @@ snapshots: is-callable@1.2.7: {} + is-ci@3.0.1: + dependencies: + ci-info: 3.9.0 + is-core-module@2.13.1: dependencies: hasown: 2.0.0 @@ -13430,6 +14813,9 @@ snapshots: dependencies: call-bind: 1.0.7 + is-what@3.14.1: + optional: true + is-what@4.1.16: {} is-wsl@2.2.0: @@ -13446,6 +14832,10 @@ snapshots: isarray@2.0.5: {} + isbinaryfile@4.0.10: {} + + isbinaryfile@5.0.4: {} + isexe@2.0.0: {} itty-time@1.0.6: {} @@ -13527,6 +14917,9 @@ snapshots: json-stable-stringify-without-jsonify@1.0.1: {} + json-stringify-safe@5.0.1: + optional: true + json5@2.2.3: {} jsonc-eslint-parser@2.4.0: @@ -13550,6 +14943,13 @@ snapshots: jsonpointer@5.0.1: {} + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + keyv@4.5.4: dependencies: json-buffer: 3.0.1 @@ -13570,6 +14970,27 @@ snapshots: kolorist@1.8.0: {} + lazy-val@1.0.5: {} + + lazystream@1.0.1: + dependencies: + readable-stream: 2.3.8 + + less@4.2.1: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.8.1 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + optional: true + leven@3.1.0: {} levn@0.4.1: @@ -13577,6 +14998,10 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lie@3.3.0: + dependencies: + immediate: 3.0.6 + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -13626,12 +15051,22 @@ snapshots: lodash.debounce@4.0.8: {} + lodash.defaults@4.2.0: {} + + lodash.difference@4.5.0: {} + + lodash.flatten@4.4.0: {} + + lodash.isplainobject@4.0.6: {} + lodash.memoize@4.1.2: {} lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} + lodash.union@4.6.0: {} + lodash.uniq@4.5.0: {} lodash@4.17.21: {} @@ -13657,15 +15092,21 @@ snapshots: loupe@3.1.2: {} + lowercase-keys@2.0.0: {} + lru-cache@10.4.3: {} lru-cache@5.1.1: dependencies: yallist: 3.1.1 + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + magic-string-ast@0.6.2: dependencies: - magic-string: 0.30.14 + magic-string: 0.30.17 magic-string-ast@0.6.3: dependencies: @@ -13683,6 +15124,12 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.1 + optional: true + make-dir@3.1.0: dependencies: semver: 6.3.1 @@ -13707,6 +15154,11 @@ snapshots: markdown-table@3.0.4: {} + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + optional: true + mdast-util-find-and-replace@3.0.1: dependencies: '@types/mdast': 4.0.4 @@ -14013,7 +15465,7 @@ snapshots: micromark@4.0.1: dependencies: '@types/debug': 4.1.12 - debug: 4.3.7 + debug: 4.4.0 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.2 @@ -14045,12 +15497,18 @@ snapshots: mime@1.6.0: {} + mime@2.6.0: {} + mime@3.0.0: {} mimic-fn@2.1.0: {} mimic-fn@4.0.0: {} + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + min-indent@1.0.1: {} miniflare@3.20241218.0: @@ -14086,6 +15544,8 @@ snapshots: dependencies: brace-expansion: 2.0.1 + minimist@1.2.8: {} + minipass@3.3.6: dependencies: yallist: 4.0.0 @@ -14156,8 +15616,17 @@ snapshots: natural-orderby@5.0.0: {} + needle@3.3.1: + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + optional: true + negotiator@0.6.3: {} + node-addon-api@1.7.2: + optional: true + node-fetch-native@1.6.4: {} node-fetch@2.7.0: @@ -14179,6 +15648,8 @@ snapshots: normalize-range@0.1.2: {} + normalize-url@6.1.0: {} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -14337,6 +15808,8 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 2.1.1 '@oxc-resolver/binding-win32-x64-msvc': 2.1.1 + p-cancelable@2.1.1: {} + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -14359,6 +15832,8 @@ snapshots: package-manager-detector@0.2.5: {} + pako@1.0.11: {} + parent-module@1.0.1: dependencies: callsites: 3.1.0 @@ -14379,6 +15854,9 @@ snapshots: parse-ms@4.0.0: {} + parse-node-version@1.0.1: + optional: true + parse5@7.1.2: dependencies: entities: 4.5.0 @@ -14407,6 +15885,8 @@ snapshots: path-to-regexp@6.3.0: {} + path-type@4.0.0: {} + path-type@5.0.0: optional: true @@ -14428,6 +15908,9 @@ snapshots: pify@2.3.0: {} + pify@4.0.1: + optional: true + pinia@2.3.0(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)): dependencies: '@vue/devtools-api': 6.6.4 @@ -14509,6 +15992,12 @@ snapshots: platform@1.3.6: {} + plist@3.1.0: + dependencies: + '@xmldom/xmldom': 0.8.10 + base64-js: 1.5.1 + xmlbuilder: 15.1.1 + pluralize@8.0.0: {} pnpm@9.15.2: {} @@ -14711,6 +16200,13 @@ snapshots: process@0.11.10: {} + progress@2.0.3: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -14756,6 +16252,14 @@ snapshots: proxy-from-env@1.1.0: {} + prr@1.0.1: + optional: true + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + punycode.js@2.3.1: {} punycode@1.4.1: {} @@ -14776,6 +16280,8 @@ snapshots: queue-microtask@1.2.3: {} + quick-lru@5.1.1: {} + radix-vue@1.9.11(vue@3.5.13(typescript@5.7.2)): dependencies: '@floating-ui/dom': 1.6.12 @@ -14816,6 +16322,15 @@ snapshots: loose-envify: 1.4.0 optional: true + read-config-file@6.3.2: + dependencies: + config-file-ts: 0.2.6 + dotenv: 9.0.2 + dotenv-expand: 5.1.0 + js-yaml: 4.1.0 + json5: 2.2.3 + lazy-val: 1.0.5 + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 @@ -14860,6 +16375,10 @@ snapshots: process: 0.11.10 string_decoder: 1.3.0 + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.6 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -14951,6 +16470,8 @@ snapshots: require-from-string@2.0.2: {} + resolve-alpn@1.2.1: {} + resolve-from@4.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -14961,11 +16482,17 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + restore-cursor@5.0.0: dependencies: onetime: 6.0.0 signal-exit: 4.1.0 + retry@0.12.0: {} + reusify@1.0.4: {} rfdc@1.4.1: {} @@ -14974,6 +16501,16 @@ snapshots: dependencies: glob: 10.4.5 + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.3 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true + rollup-plugin-dts@6.1.1(rollup@4.29.1)(typescript@5.7.2): dependencies: magic-string: 0.30.17 @@ -15062,6 +16599,12 @@ snapshots: safer-buffer@2.1.2: {} + sanitize-filename@1.6.3: + dependencies: + truncate-utf8-bytes: 1.0.2 + + sax@1.4.1: {} + saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -15087,6 +16630,9 @@ snapshots: '@types/node-forge': 1.3.11 node-forge: 1.3.1 + semver-compare@1.0.0: + optional: true + semver@5.7.1: {} semver@6.3.1: {} @@ -15111,6 +16657,11 @@ snapshots: transitivePeerDependencies: - supports-color + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + optional: true + serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -15139,6 +16690,8 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + setimmediate@1.0.5: {} + setprototypeof@1.2.0: {} sharp@0.33.5: @@ -15201,6 +16754,10 @@ snapshots: dependencies: is-arrayish: 0.3.2 + simple-update-notifier@2.0.0: + dependencies: + semver: 7.6.3 + sirv@3.0.0: dependencies: '@polka/url': 1.0.0-next.24 @@ -15209,11 +16766,20 @@ snapshots: sisteransi@1.0.5: {} + slash@3.0.0: {} + slash@5.1.0: optional: true slashes@3.0.12: {} + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + optional: true + slice-ansi@5.0.0: dependencies: ansi-styles: 6.2.1 @@ -15224,6 +16790,9 @@ snapshots: ansi-styles: 6.2.1 is-fullwidth-code-point: 5.0.0 + smart-buffer@4.2.0: + optional: true + smob@1.5.0: {} source-map-js@1.2.1: {} @@ -15266,7 +16835,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.7 + debug: 4.4.0 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -15289,6 +16858,9 @@ snapshots: sprintf-js@1.0.3: {} + sprintf-js@1.1.3: + optional: true + stable-hash@0.0.4: {} stackback@0.0.2: {} @@ -15298,6 +16870,8 @@ snapshots: as-table: 1.0.55 get-source: 2.0.12 + stat-mode@1.0.0: {} + stats-gl@2.4.2(@types/three@0.171.0)(three@0.172.0): dependencies: '@types/three': 0.171.0 @@ -15424,6 +16998,12 @@ snapshots: postcss: 8.4.49 postcss-selector-parser: 6.1.2 + sumchecker@3.0.1: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + superjson@2.2.1: dependencies: copy-anything: 3.0.5 @@ -15460,6 +17040,14 @@ snapshots: tapable@2.2.1: {} + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + tar@6.2.1: dependencies: chownr: 2.0.0 @@ -15492,6 +17080,11 @@ snapshots: temp-dir@2.0.0: {} + temp-file@3.4.0: + dependencies: + async-exit-hook: 2.0.1 + fs-extra: 10.1.0 + tempy@0.6.0: dependencies: is-stream: 2.0.1 @@ -15556,6 +17149,10 @@ snapshots: tldts-core: 6.1.61 optional: true + tmp-promise@3.0.3: + dependencies: + tmp: 0.2.3 + tmp@0.2.3: {} to-regex-range@5.0.1: @@ -15594,6 +17191,10 @@ snapshots: trough@2.2.0: {} + truncate-utf8-bytes@1.0.2: + dependencies: + utf8-byte-length: 1.0.5 + ts-api-utils@1.3.0(typescript@5.7.2): dependencies: typescript: 5.7.2 @@ -15623,6 +17224,9 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-fest@0.13.1: + optional: true + type-fest@0.16.0: {} type-fest@0.20.2: {} @@ -15730,6 +17334,8 @@ snapshots: unplugin: 2.0.0 optional: true + undici-types@6.19.8: {} + undici-types@6.20.0: {} undici@5.28.4: @@ -15783,7 +17389,7 @@ snapshots: escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 0.5.1 - magic-string: 0.30.14 + magic-string: 0.30.17 mlly: 1.7.3 pathe: 1.1.2 picomatch: 4.0.2 @@ -15803,7 +17409,7 @@ snapshots: escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 0.5.1 - magic-string: 0.30.14 + magic-string: 0.30.17 mlly: 1.7.3 pathe: 1.1.2 picomatch: 4.0.2 @@ -15866,24 +17472,24 @@ snapshots: universalify@2.0.0: {} - unocss-preset-animations@1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))): + unocss-preset-animations@1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))): dependencies: '@unocss/preset-wind': 0.65.3 - unocss: 0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + unocss: 0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) - unocss-preset-shadcn@0.3.1(unocss-preset-animations@1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))))(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))): + unocss-preset-shadcn@0.3.1(unocss-preset-animations@1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))))(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))): dependencies: - unocss: 0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) - unocss-preset-animations: 1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))) + unocss: 0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + unocss-preset-animations: 1.1.0(@unocss/preset-wind@0.65.3)(unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2))) unocss-preset-theme@0.14.1(@unocss/core@0.65.3): dependencies: '@unocss/core': 0.65.3 '@unocss/rule-utils': 0.63.6 - unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)): + unocss@0.65.3(postcss@8.4.49)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)): dependencies: - '@unocss/astro': 0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@unocss/astro': 0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@unocss/cli': 0.65.3(rollup@2.79.1) '@unocss/core': 0.65.3 '@unocss/postcss': 0.65.3(postcss@8.4.49) @@ -15899,18 +17505,18 @@ snapshots: '@unocss/transformer-compile-class': 0.65.3 '@unocss/transformer-directives': 0.65.3 '@unocss/transformer-variant-group': 0.65.3 - '@unocss/vite': 0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@unocss/vite': 0.65.3(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) optionalDependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - postcss - rollup - supports-color - vue - unocss@0.65.3(postcss@8.4.49)(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)): + unocss@0.65.3(postcss@8.4.49)(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)): dependencies: - '@unocss/astro': 0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@unocss/astro': 0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@unocss/cli': 0.65.3(rollup@4.29.1) '@unocss/core': 0.65.3 '@unocss/postcss': 0.65.3(postcss@8.4.49) @@ -15926,9 +17532,9 @@ snapshots: '@unocss/transformer-compile-class': 0.65.3 '@unocss/transformer-directives': 0.65.3 '@unocss/transformer-variant-group': 0.65.3 - '@unocss/vite': 0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@unocss/vite': 0.65.3(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) optionalDependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - postcss - rollup @@ -15952,14 +17558,14 @@ snapshots: transitivePeerDependencies: - rollup - unplugin-combine@1.0.3(esbuild@0.24.2)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + unplugin-combine@1.0.3(esbuild@0.24.2)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@antfu/utils': 0.7.10 unplugin: 1.16.0 optionalDependencies: esbuild: 0.24.2 rollup: 2.79.1 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) unplugin-vue-components@0.28.0(@babel/parser@7.26.3)(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)): dependencies: @@ -15990,7 +17596,7 @@ snapshots: - rollup - vue - unplugin-vue-macros@2.13.6(@vueuse/core@12.2.0(typescript@5.7.2))(esbuild@0.24.2)(rollup@2.79.1)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)): + unplugin-vue-macros@2.13.6(@vueuse/core@12.2.0(typescript@5.7.2))(esbuild@0.24.2)(rollup@2.79.1)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-tsc@2.2.0(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)): dependencies: '@vue-macros/better-define': 1.11.1(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) '@vue-macros/boolean-prop': 0.5.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -16005,7 +17611,7 @@ snapshots: '@vue-macros/define-render': 1.6.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) '@vue-macros/define-slots': 1.2.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) '@vue-macros/define-stylex': 0.2.1(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) - '@vue-macros/devtools': 0.4.1(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + '@vue-macros/devtools': 0.4.1(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) '@vue-macros/export-expose': 0.3.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) '@vue-macros/export-props': 0.6.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) '@vue-macros/export-render': 0.3.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) @@ -16022,7 +17628,7 @@ snapshots: '@vue-macros/short-vmodel': 1.5.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) '@vue-macros/volar': 0.30.8(rollup@2.79.1)(typescript@5.7.2)(vue-tsc@2.2.0(typescript@5.7.2))(vue@3.5.13(typescript@5.7.2)) unplugin: 1.16.0 - unplugin-combine: 1.0.3(esbuild@0.24.2)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + unplugin-combine: 1.0.3(esbuild@0.24.2)(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) unplugin-vue-define-options: 1.5.3(rollup@2.79.1)(vue@3.5.13(typescript@5.7.2)) vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: @@ -16037,7 +17643,7 @@ snapshots: - vue-tsc - webpack - unplugin-vue-markdown@0.28.0(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + unplugin-vue-markdown@0.28.0(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@mdit-vue/plugin-component': 2.1.3 '@mdit-vue/plugin-frontmatter': 2.1.3 @@ -16047,7 +17653,7 @@ snapshots: markdown-it: 14.1.0 markdown-it-async: 0.1.3 unplugin: 2.1.0 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - rollup @@ -16125,6 +17731,8 @@ snapshots: punycode: 1.4.1 qs: 6.13.1 + utf8-byte-length@1.0.5: {} + util-deprecate@1.0.2: {} utils-merge@1.0.1: {} @@ -16152,6 +17760,13 @@ snapshots: transitivePeerDependencies: - '@vue/composition-api' + verror@1.10.1: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.4.1 + optional: true + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.0 @@ -16172,17 +17787,17 @@ snapshots: - rollup - supports-color - vite-hot-client@0.2.4(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + vite-hot-client@0.2.4(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) - vite-node@2.1.8(@types/node@22.10.3)(terser@5.17.6): + vite-node@2.1.8(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6): dependencies: cac: 6.7.14 debug: 4.3.7 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.3)(terser@5.17.6) + vite: 5.4.11(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6) transitivePeerDependencies: - '@types/node' - less @@ -16194,7 +17809,7 @@ snapshots: - supports-color - terser - vite-plugin-inspect@0.10.6(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-inspect@0.10.6(rollup@4.29.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.4(rollup@4.29.1) @@ -16205,12 +17820,12 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.1 sirv: 3.0.0 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - rollup - supports-color - vite-plugin-inspect@0.8.9(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-inspect@0.8.9(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.3(rollup@2.79.1) @@ -16221,41 +17836,41 @@ snapshots: perfect-debounce: 1.0.0 picocolors: 1.1.1 sirv: 3.0.0 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) optionalDependencies: '@nuxt/kit': 3.14.1592(rollup@2.79.1) transitivePeerDependencies: - rollup - supports-color - vite-plugin-pwa@0.21.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(workbox-build@7.3.0)(workbox-window@7.3.0): dependencies: debug: 4.3.7 pretty-bytes: 6.1.1 tinyglobby: 0.2.10 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) workbox-build: 7.3.0 workbox-window: 7.3.0 transitivePeerDependencies: - supports-color - vite-plugin-vue-devtools@7.6.8(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)): + vite-plugin-vue-devtools@7.6.8(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)): dependencies: - '@vue/devtools-core': 7.6.8(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) + '@vue/devtools-core': 7.6.8(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.2)) '@vue/devtools-kit': 7.6.8 '@vue/devtools-shared': 7.6.8 execa: 9.5.1 sirv: 3.0.0 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) - vite-plugin-inspect: 0.8.9(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) - vite-plugin-vue-inspector: 5.3.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite-plugin-inspect: 0.8.9(@nuxt/kit@3.14.1592(rollup@2.79.1))(rollup@2.79.1)(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) + vite-plugin-vue-inspector: 5.3.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)) transitivePeerDependencies: - '@nuxt/kit' - rollup - supports-color - vue - vite-plugin-vue-inspector@5.3.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-vue-inspector@5.3.1(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@babel/core': 7.26.0 '@babel/plugin-proposal-decorators': 7.23.5(@babel/core@7.26.0) @@ -16266,31 +17881,42 @@ snapshots: '@vue/compiler-dom': 3.5.13 kolorist: 1.8.0 magic-string: 0.30.17 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - vite-plugin-vue-layouts@0.11.0(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)): + vite-plugin-vue-layouts@0.11.0(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1))(vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)))(vue@3.5.13(typescript@5.7.2)): dependencies: debug: 4.3.7 fast-glob: 3.3.2 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) vue: 3.5.13(typescript@5.7.2) vue-router: 4.5.0(vue@3.5.13(typescript@5.7.2)) transitivePeerDependencies: - supports-color - vite-plugin-webfont-dl@3.10.3(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-webfont-dl@3.10.3(vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1)): dependencies: axios: 1.4.0 clean-css: 5.3.2 flat-cache: 6.1.2 picocolors: 1.1.1 - vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - debug - vite@5.4.11(@types/node@22.10.3)(terser@5.17.6): + vite@5.4.11(@types/node@20.17.10)(less@4.2.1)(terser@5.17.6): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.49 + rollup: 4.29.1 + optionalDependencies: + '@types/node': 20.17.10 + fsevents: 2.3.3 + less: 4.2.1 + terser: 5.17.6 + + vite@5.4.11(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -16298,9 +17924,10 @@ snapshots: optionalDependencies: '@types/node': 22.10.3 fsevents: 2.3.3 + less: 4.2.1 terser: 5.17.6 - vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1): + vite@6.0.6(@types/node@22.10.3)(jiti@2.4.0)(less@4.2.1)(terser@5.17.6)(tsx@4.19.2)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.4.49 @@ -16309,14 +17936,15 @@ snapshots: '@types/node': 22.10.3 fsevents: 2.3.3 jiti: 2.4.0 + less: 4.2.1 terser: 5.17.6 tsx: 4.19.2 yaml: 2.6.1 - vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(terser@5.17.6): + vitest@2.1.8(@types/node@22.10.3)(jsdom@25.0.1)(less@4.2.1)(terser@5.17.6): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.3)(terser@5.17.6)) + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -16332,8 +17960,8 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.3)(terser@5.17.6) - vite-node: 2.1.8(@types/node@22.10.3)(terser@5.17.6) + vite: 5.4.11(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6) + vite-node: 2.1.8(@types/node@22.10.3)(less@4.2.1)(terser@5.17.6) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.3 @@ -16643,6 +18271,8 @@ snapshots: xml-name-validator@5.0.0: optional: true + xmlbuilder@15.1.1: {} + xmlchars@2.2.0: optional: true @@ -16678,6 +18308,11 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + yauzl@3.2.0: dependencies: buffer-crc32: 0.2.13 @@ -16695,6 +18330,12 @@ snapshots: zhead@2.2.4: {} + zip-stream@4.1.1: + dependencies: + archiver-utils: 3.0.4 + compress-commons: 4.1.2 + readable-stream: 3.6.2 + zod@3.24.1: {} zwitch@2.0.4: {}