From 3da4d4456d36922cb6a24639672e6de043ef8f13 Mon Sep 17 00:00:00 2001 From: MidnightCrowing <110297461+MidnightCrowing@users.noreply.github.com> Date: Fri, 19 Sep 2025 15:41:01 +0800 Subject: [PATCH 1/7] feat(scanner): implement VSCode recent projects detection and enhance file/folder dialog options --- electron/ipc/dialog.ts | 13 +- electron/ipc/folder.ts | 40 -- electron/ipc/index.ts | 5 +- electron/ipc/scanner.ts | 8 +- electron/main.ts | 1 + electron/preload.ts | 13 +- electron/utils/vscodeRecent.ts | 76 ++++ icons/jetBrains.svg | 17 + jetv-ui/gallery/pages/InputGallery.vue | 7 +- jetv-ui/icons/anyType.svg | 6 + jetv-ui/icons/anyType_dark.svg | 6 + jetv-ui/pnpm-lock.yaml | 3 - jetv-ui/src/assets/jet-icons.json | 8 +- jetv-ui/src/components/Button/JeSwitch.vue | 5 +- .../src/components/Input/JeFileInputField.vue | 60 ++- .../src/components/Input/JeSearchField.vue | 27 +- jetv-ui/src/components/Input/types.ts | 18 + jetv-ui/src/components/Menu/JeMiniMenu.vue | 6 +- jetv-ui/src/components/Tabs/JeTabs.vue | 7 +- jetv-ui/src/global.d.ts | 8 +- package.json | 7 +- pnpm-lock.yaml | 334 ++++++++++++++++- src/assets/icons.json | 7 +- .../RemoveProjectDialog.vue | 2 +- src/components/SettingPathCard.vue | 16 +- src/components/SettingsGroup.vue | 21 ++ src/global.d.ts | 13 +- .../ProjectOverview/ProjectOverviewHeader.vue | 4 +- src/views/SettingsView/SettingsView.vue | 2 + .../SettingsView/pages/AutoProjectScanner.vue | 353 ++++++++++++++---- unocss.config.ts | 2 + 31 files changed, 896 insertions(+), 199 deletions(-) delete mode 100644 electron/ipc/folder.ts create mode 100644 electron/utils/vscodeRecent.ts create mode 100644 icons/jetBrains.svg create mode 100644 jetv-ui/icons/anyType.svg create mode 100644 jetv-ui/icons/anyType_dark.svg create mode 100644 src/components/SettingsGroup.vue diff --git a/electron/ipc/dialog.ts b/electron/ipc/dialog.ts index a7ad3d1..71a045b 100644 --- a/electron/ipc/dialog.ts +++ b/electron/ipc/dialog.ts @@ -1,18 +1,25 @@ import { dialog, ipcMain } from 'electron' // 打开文件夹选择对话框 -ipcMain.handle('dialog:open-folder', async (): Promise => { +ipcMain.handle('dialog:open-folder', async (_, options?: { + title?: string +}): Promise => { const result = await dialog.showOpenDialog({ + title: options?.title, properties: ['openDirectory'], // 只能选择文件夹 }) return result.filePaths }) // 打开文件选择对话框 -ipcMain.handle('dialog:open-file', async (_, fileTypes: { name: string, extensions: string[] }[] = []): Promise => { +ipcMain.handle('dialog:open-file', async (_, options?: { + title?: string + fileTypes?: { name: string, extensions: string[] }[] +}): Promise => { const result = await dialog.showOpenDialog({ + title: options?.title, + filters: options?.fileTypes, // 如果有文件类型,设置过滤器 properties: ['openFile'], // 只能选择文件 - filters: fileTypes.length > 0 ? fileTypes : undefined, // 如果有文件类型,设置过滤器 }) return result.filePaths }) diff --git a/electron/ipc/folder.ts b/electron/ipc/folder.ts deleted file mode 100644 index 95207a0..0000000 --- a/electron/ipc/folder.ts +++ /dev/null @@ -1,40 +0,0 @@ -import * as path from 'node:path' - -import { ipcMain } from 'electron' -import fs from 'fs-extra' - -// 获取目录下的文件夹列表 -ipcMain.handle('folder:get-list', async (_, folderPath: string): Promise<{ folders: string[], error?: string }> => { - try { - const stat = await fs.stat(folderPath) - - // 检查是否是目录 - if (!stat.isDirectory()) { - return { folders: [], error: 'Provided path is not a directory' } - } - - // 读取目录内容并过滤出文件夹,返回绝对路径 - const items = await fs.readdir(folderPath) - const folders: string[] = [] - - for (const item of items) { - const itemPath = path.join(folderPath, item) - const itemStat = await fs.stat(itemPath) - if (itemStat.isDirectory()) { - folders.push(itemPath) - } - } - - return { folders } - } - catch (error: unknown) { - if (error instanceof Error) { - console.error('Error getting folder list:', error.message) - return { folders: [], error: error.message } - } - else { - console.error('Unknown error:', error) - return { folders: [], error: 'Unknown error occurred' } - } - } -}) diff --git a/electron/ipc/index.ts b/electron/ipc/index.ts index e17908b..d865dd2 100644 --- a/electron/ipc/index.ts +++ b/electron/ipc/index.ts @@ -1,10 +1,9 @@ import './dataFile' -import './theme' import './dialog' -import './folder' import './path' import './project' +import './scanner' import './settings' import './system' +import './theme' import './update' -import './scanner' diff --git a/electron/ipc/scanner.ts b/electron/ipc/scanner.ts index 534a5f9..e5058e1 100644 --- a/electron/ipc/scanner.ts +++ b/electron/ipc/scanner.ts @@ -2,6 +2,8 @@ import { Worker } from 'node:worker_threads' import { ipcMain } from 'electron' +import { detectVscodeStateDbPath } from '../utils/vscodeRecent' + interface ScanPayload { roots: string[] existingPaths: string[] @@ -103,7 +105,7 @@ ipcMain.handle('scanner:start', (event, payload: ScanPayload): { sessionId: numb return { sessionId } }) -ipcMain.handle('scanner:stop', (_event, sessionId: number) => { +ipcMain.handle('scanner:stop', (_, sessionId: number) => { const worker = sessions.get(sessionId) if (worker) { try { @@ -116,3 +118,7 @@ ipcMain.handle('scanner:stop', (_event, sessionId: number) => { } return { stopped: false } }) + +ipcMain.handle('scanner:detect-vsc-state-db-path', (_) => { + return detectVscodeStateDbPath() +}) diff --git a/electron/main.ts b/electron/main.ts index 56f5b19..e47e4a3 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -1,4 +1,5 @@ import './ipc/index' +import './utils/vscodeRecent' import * as path from 'node:path' import { fileURLToPath } from 'node:url' diff --git a/electron/preload.ts b/electron/preload.ts index 0c944cd..3ebc81c 100644 --- a/electron/preload.ts +++ b/electron/preload.ts @@ -2,11 +2,13 @@ import { contextBridge, ipcRenderer } from 'electron' contextBridge.exposeInMainWorld('api', { // dialog - openFolderDialog: () => ipcRenderer.invoke('dialog:open-folder'), - openFileDialog: (fileTypes: { name: string, extensions: string[] }[] = []) => ipcRenderer.invoke('dialog:open-file', fileTypes), - - // folder - getFolderList: (folderPath: string) => ipcRenderer.invoke('folder:get-list', folderPath), + openFolderDialog: (options?: { + title?: string + }) => ipcRenderer.invoke('dialog:open-folder', options), + openFileDialog: (options?: { + title?: string + fileTypes?: { name: string, extensions: string[] }[] + }) => ipcRenderer.invoke('dialog:open-file', options), // path formatPath: (filePath: string) => ipcRenderer.invoke('path:format', filePath), @@ -61,6 +63,7 @@ contextBridge.exposeInMainWorld('api', { ipcRenderer.on('scanner:error', handler) return () => ipcRenderer.removeListener('scanner:error', handler) }, + detectVscodeStateDbPath: () => ipcRenderer.invoke('scanner:detect-vsc-state-db-path'), // theme setWindowTheme: (currentTheme: 'light' | 'dark') => ipcRenderer.invoke('theme:set', currentTheme), diff --git a/electron/utils/vscodeRecent.ts b/electron/utils/vscodeRecent.ts new file mode 100644 index 0000000..1a11c43 --- /dev/null +++ b/electron/utils/vscodeRecent.ts @@ -0,0 +1,76 @@ +import fs from 'node:fs' +import path from 'node:path' +import process from 'node:process' + +import Database from 'better-sqlite3' +import { app } from 'electron' + +export interface VscodeRecentEntry { + folderUri?: string + fileUri?: string + workspace?: string + label?: string +} + +/** + * 获取 VSCode 最近打开项目列表 + * @param dbPath VSCode state.vscdb 文件路径 + */ +export function getVscodeRecentProjects(dbPath: string): VscodeRecentEntry[] { + if (!fs.existsSync(dbPath)) { + throw new Error(`VSCode state file not found: ${dbPath}`) + } + + const db = new Database(dbPath, { readonly: true }) + const row = db + .prepare('SELECT value FROM ItemTable WHERE key = \'history.recentlyOpenedPathsList\'') + .get() as { value: string } + + if (!row) + return [] + + try { + const history = JSON.parse(row.value.toString()) + return history.entries || [] + } + catch (e) { + console.error('Failed to parse VSCode recent list:', e) + return [] + } +} + +/** + * 自动检测 VSCode state.vscdb 路径 + * 全平台通用 + */ +export function detectVscodeStateDbPath(): string | null { + let dbPath: string + + switch (process.platform) { + case 'win32': + dbPath = path.join(app.getPath('appData'), 'Code', 'User', 'globalStorage', 'state.vscdb') + break + case 'darwin': + dbPath = path.join( + app.getPath('home'), + 'Library', + 'Application Support', + 'Code', + 'User', + 'globalStorage', + 'state.vscdb', + ) + break + default: // linux + dbPath = path.join( + app.getPath('home'), + '.config', + 'Code', + 'User', + 'globalStorage', + 'state.vscdb', + ) + } + + return fs.existsSync(dbPath) ? dbPath : null +} diff --git a/icons/jetBrains.svg b/icons/jetBrains.svg new file mode 100644 index 0000000..2476341 --- /dev/null +++ b/icons/jetBrains.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/jetv-ui/gallery/pages/InputGallery.vue b/jetv-ui/gallery/pages/InputGallery.vue index bb7b9a0..bd711d5 100644 --- a/jetv-ui/gallery/pages/InputGallery.vue +++ b/jetv-ui/gallery/pages/InputGallery.vue @@ -10,6 +10,7 @@ const dropdownValue = ref('option1') const toolbarDropdownValue = ref('tool1') const comboboxValue = ref('') const searchValue = ref('') +const folderValue = ref(null) const fileValue = ref(null) const dropdownOptions = [ @@ -73,7 +74,11 @@ const comboOptions = [ - + +
+ File: {{ folderValue }} +
+
File: {{ fileValue }}
diff --git a/jetv-ui/icons/anyType.svg b/jetv-ui/icons/anyType.svg new file mode 100644 index 0000000..d2edc47 --- /dev/null +++ b/jetv-ui/icons/anyType.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/jetv-ui/icons/anyType_dark.svg b/jetv-ui/icons/anyType_dark.svg new file mode 100644 index 0000000..3ebb0ee --- /dev/null +++ b/jetv-ui/icons/anyType_dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/jetv-ui/pnpm-lock.yaml b/jetv-ui/pnpm-lock.yaml index 99dfb27..abef044 100644 --- a/jetv-ui/pnpm-lock.yaml +++ b/jetv-ui/pnpm-lock.yaml @@ -4,9 +4,6 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false -overrides: - '@electron/node-gyp': git+https://github.com/electron/node-gyp.git - importers: .: diff --git a/jetv-ui/src/assets/jet-icons.json b/jetv-ui/src/assets/jet-icons.json index e84ef58..b841f91 100644 --- a/jetv-ui/src/assets/jet-icons.json +++ b/jetv-ui/src/assets/jet-icons.json @@ -1,6 +1,6 @@ { "prefix": "jet", - "lastModified": 1758096806, + "lastModified": 1758252197, "icons": { "add": { "body": "" @@ -8,6 +8,12 @@ "add-dark": { "body": "" }, + "anytype": { + "body": "" + }, + "anytype-dark": { + "body": "" + }, "checked": { "body": "" }, diff --git a/jetv-ui/src/components/Button/JeSwitch.vue b/jetv-ui/src/components/Button/JeSwitch.vue index 9287c0b..6057eb9 100644 --- a/jetv-ui/src/components/Button/JeSwitch.vue +++ b/jetv-ui/src/components/Button/JeSwitch.vue @@ -9,7 +9,10 @@ const props = withDefaults(defineProps(), { }) const emit = defineEmits(['update:modelValue']) -const isOn = ref(props.modelValue) +const isOn = computed({ + get: () => props.modelValue, + set: val => emit('update:modelValue', val), +}) // 监听 `modelValue` 的变化,确保外部绑定的值保持一致 watch(() => props.modelValue, (newVal) => { diff --git a/jetv-ui/src/components/Input/JeFileInputField.vue b/jetv-ui/src/components/Input/JeFileInputField.vue index c01d082..c0233f3 100644 --- a/jetv-ui/src/components/Input/JeFileInputField.vue +++ b/jetv-ui/src/components/Input/JeFileInputField.vue @@ -5,22 +5,40 @@ import type { JeFileInputFieldProps } from './types.ts' const props = withDefaults(defineProps(), { validated: false, disabled: false, + mode: 'folder', }) const emit = defineEmits(['update:modelValue', 'update:validated']) -const folderPath = ref(props.modelValue) +const filePath = computed({ + get: () => props.modelValue, + set: val => emit('update:modelValue', val), +}) -// 监听 folderPath 的变化,将值传递回父组件 -watch(folderPath, (newValue) => { +watch(filePath, (newValue) => { emit('update:modelValue', newValue) }) -// 打开文件夹选择对话框 -async function openFolder() { - if (!props.disabled) { - const selectedPaths = await window.api.openFolderDialog() - if (selectedPaths.length > 0) { - folderPath.value = selectedPaths[0] +// 打开文件/文件夹选择对话框 +async function openPicker() { + if (props.disabled) { + return + } + + if (props.mode === 'file') { + const selectedPaths = await window.api.openFileDialog({ + title: props.dialogTitle, + fileTypes: props.fileTypes, + }) + if (selectedPaths && selectedPaths.length > 0) { + filePath.value = selectedPaths[0] + } + } + else { + const selectedPaths = await window.api.openFolderDialog({ + title: props.dialogTitle, + }) + if (selectedPaths && selectedPaths.length > 0) { + filePath.value = selectedPaths[0] } } } @@ -30,7 +48,7 @@ async function openFolder() { - + @@ -58,6 +80,10 @@ async function openFolder() { @apply relative flex-items-center; } +.je-file-input-filed__input :deep(.je-input-field__input) { + @apply w-full pr-27px; +} + .je-file-input-filed__icon-wrapper { @apply absolute right-5px top-50% translate-y--50%; @apply size-19px rounded-3px; @@ -88,10 +114,10 @@ async function openFolder() { @apply light:i-jet:folder dark:i-jet:folder-dark; } - - diff --git a/jetv-ui/src/components/Input/JeSearchField.vue b/jetv-ui/src/components/Input/JeSearchField.vue index 928e6cc..762dcd2 100644 --- a/jetv-ui/src/components/Input/JeSearchField.vue +++ b/jetv-ui/src/components/Input/JeSearchField.vue @@ -9,7 +9,10 @@ const props = withDefaults(defineProps(), { }) const emit = defineEmits(['update:modelValue', 'update:validated']) -const searchContent = ref(props.modelValue) +const searchContent = computed({ + get: () => props.modelValue, + set: val => emit('update:modelValue', val), +}) // 监听 searchContent 的变化,将值传递回父组件 watch(searchContent, (newValue) => { @@ -61,6 +64,16 @@ function clearInput() { @apply light:i-jet:search dark:i-jet:search-dark; } +:deep(.je-input-field__input) { + .je-search-filed__input & { + @apply m-0 pl-25px pr-23px; + } + + .je-search-filed__input--in-editor & { + @apply outline-0; + } +} + .je-search-filed__icon-clear { @apply absolute top-0 bottom-0 right-0; @apply mx-3px my-auto; @@ -81,15 +94,3 @@ function clearInput() { } } - - diff --git a/jetv-ui/src/components/Input/types.ts b/jetv-ui/src/components/Input/types.ts index 8c7b0f1..54e680d 100644 --- a/jetv-ui/src/components/Input/types.ts +++ b/jetv-ui/src/components/Input/types.ts @@ -223,6 +223,24 @@ export interface JeFileInputFieldProps { */ modelValue: string | null + /** + * 选择模式:文件夹或文件 + * - 默认为 'folder' + */ + mode?: 'folder' | 'file' + + /** + * 对话框标题 + */ + dialogTitle?: string + + /** + * 在文件模式下可选的文件类型过滤器。 + * 仅当 selectType 为 'file' 时生效,将透传给 openFileDialog 以限制可选扩展名。 + * 例如:[{ name: 'JSON', extensions: ['json'] }] + */ + fileTypes?: { name: string, extensions: string[] }[] + /** * 文件输入字段的验证状态。 * diff --git a/jetv-ui/src/components/Menu/JeMiniMenu.vue b/jetv-ui/src/components/Menu/JeMiniMenu.vue index 82c76f8..1968245 100644 --- a/jetv-ui/src/components/Menu/JeMiniMenu.vue +++ b/jetv-ui/src/components/Menu/JeMiniMenu.vue @@ -23,9 +23,9 @@ const visibleProxy = computed({ /> - - diff --git a/src/components/SettingsGroup.vue b/src/components/SettingsGroup.vue new file mode 100644 index 0000000..1454bc8 --- /dev/null +++ b/src/components/SettingsGroup.vue @@ -0,0 +1,21 @@ + + + diff --git a/src/global.d.ts b/src/global.d.ts index 478acdc..a10b869 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -5,11 +5,13 @@ declare global { interface Window { api: { // dialog - openFolderDialog: () => Promise - openFileDialog: (fileTypes?: { name: string, extensions: string[] }[]) => Promise - - // folder - getFolderList: (folderPath: string) => Promise<{ folders: string[], error?: string }> + openFolderDialog: (options?: { + title?: string + }) => Promise + openFileDialog: (options?: { + title?: string + fileTypes?: { name: string, extensions: string[] }[] + }) => Promise // path formatPath: (filePath: string) => Promise @@ -88,6 +90,7 @@ declare global { ) => () => void onScannerDone: (cb: (data: { sessionId: number }) => void) => () => void onScannerError: (cb: (data: { sessionId: number, error: string }) => void) => () => void + detectVscodeStateDbPath: () => Promise // theme setWindowTheme: (currentTheme: ThemeEnum) => void diff --git a/src/views/HomeView/ProjectOverview/ProjectOverviewHeader.vue b/src/views/HomeView/ProjectOverview/ProjectOverviewHeader.vue index 145dc8d..a60787e 100644 --- a/src/views/HomeView/ProjectOverview/ProjectOverviewHeader.vue +++ b/src/views/HomeView/ProjectOverview/ProjectOverviewHeader.vue @@ -42,8 +42,8 @@ watch(searchInputValue, (newSearchValue) => { - diff --git a/src/views/SettingsView/SettingsView.vue b/src/views/SettingsView/SettingsView.vue index 83cb984..0cfb150 100644 --- a/src/views/SettingsView/SettingsView.vue +++ b/src/views/SettingsView/SettingsView.vue @@ -76,11 +76,13 @@ onUnmounted(() => { >
diff --git a/src/views/SettingsView/pages/AutoProjectScanner.vue b/src/views/SettingsView/pages/AutoProjectScanner.vue index 7b3a0f5..c4cabec 100644 --- a/src/views/SettingsView/pages/AutoProjectScanner.vue +++ b/src/views/SettingsView/pages/AutoProjectScanner.vue @@ -1,27 +1,40 @@ + + diff --git a/unocss.config.ts b/unocss.config.ts index 52b34f6..4c652de 100644 --- a/unocss.config.ts +++ b/unocss.config.ts @@ -38,6 +38,8 @@ export default defineConfig({ // Color 'text-primary': 'light:color-$gray-1 dark:color-$gray-12', 'text-secondary': 'color-$gray-7', + // Layout + 'settings-section': 'pl-30px', }, safelist: editorIconClasses, transformers: [ From 5125bfab7273fb1ff713635d79db441b9792d5bf Mon Sep 17 00:00:00 2001 From: MidnightCrowing <110297461+MidnightCrowing@users.noreply.github.com> Date: Fri, 19 Sep 2025 17:46:22 +0800 Subject: [PATCH 2/7] refactor(ipc): refactor and move ipc function to services --- electron/ipc.ts | 49 ++++ electron/ipc/dataFile.ts | 63 ----- electron/ipc/dialog.ts | 25 -- electron/ipc/index.ts | 9 - electron/ipc/path.ts | 27 --- electron/ipc/settings.ts | 33 --- electron/main.ts | 3 +- electron/preload.ts | 156 ++++++++----- electron/services/dataFileService.ts | 85 +++++++ electron/services/dialogService.ts | 20 ++ .../pathUtils.ts => services/pathService.ts} | 25 +- .../project.ts => services/projectService.ts} | 27 +-- .../scanner.ts => services/scannerService.ts} | 60 +++-- .../system.ts => services/systemService.ts} | 22 +- .../theme.ts => services/themeService.ts} | 6 +- .../update.ts => services/updateService.ts} | 9 +- electron/utils/vscodeRecent.ts | 39 ---- src/global.d.ts | 218 ++++++++++++------ src/views/SettingsView/SettingsView.vue | 2 +- 19 files changed, 485 insertions(+), 393 deletions(-) create mode 100644 electron/ipc.ts delete mode 100644 electron/ipc/dataFile.ts delete mode 100644 electron/ipc/dialog.ts delete mode 100644 electron/ipc/index.ts delete mode 100644 electron/ipc/path.ts delete mode 100644 electron/ipc/settings.ts create mode 100644 electron/services/dataFileService.ts create mode 100644 electron/services/dialogService.ts rename electron/{utils/pathUtils.ts => services/pathService.ts} (51%) rename electron/{ipc/project.ts => services/projectService.ts} (92%) rename electron/{ipc/scanner.ts => services/scannerService.ts} (71%) rename electron/{ipc/system.ts => services/systemService.ts} (69%) rename electron/{ipc/theme.ts => services/themeService.ts} (74%) rename electron/{ipc/update.ts => services/updateService.ts} (94%) diff --git a/electron/ipc.ts b/electron/ipc.ts new file mode 100644 index 0000000..ce583e6 --- /dev/null +++ b/electron/ipc.ts @@ -0,0 +1,49 @@ +import { ipcMain } from 'electron' + +import * as dataFile from './services/dataFileService' +import * as dialogSvc from './services/dialogService' +import * as pathSvc from './services/pathService' +import * as projectSvc from './services/projectService' +import * as scanner from './services/scannerService' +import * as systemSvc from './services/systemService' +import * as themeSvc from './services/themeService' +import * as updateSvc from './services/updateService' + +// data file +ipcMain.handle('data:save', (_e, fileType, data) => dataFile.saveData(fileType, data)) +ipcMain.handle('data:load', (_e, fileType) => dataFile.loadData(fileType)) +ipcMain.handle('data:open', (_e, fileType) => dataFile.openData(fileType)) +ipcMain.handle('data:delete', (_e, fileType) => dataFile.deleteData(fileType)) + +// dialog +ipcMain.handle('dialog:open-folder', (_e, options) => dialogSvc.openFolder(options)) +ipcMain.handle('dialog:open-file', (_e, options) => dialogSvc.openFile(options)) + +// path +ipcMain.handle('path:format', (_e, filePath) => pathSvc.format(filePath)) +ipcMain.handle('path:check-existence', (_e, path) => pathSvc.checkExistence(path)) + +// project +ipcMain.handle('project:analyze', (e, folderPath) => projectSvc.analyzeProject(e, folderPath)) +ipcMain.handle('project:read-license', (_e, folderPath, maxLines) => projectSvc.readLicense(folderPath, maxLines)) +ipcMain.handle('project:open', (_e, idePath, projectPath) => projectSvc.openInIDE(idePath, projectPath)) +ipcMain.handle('project:delete', (_e, projectPath) => projectSvc.deleteProject(projectPath)) +ipcMain.handle('project:import', () => projectSvc.importProjects()) +ipcMain.handle('project:export', () => projectSvc.exportProjects()) + +// scanner +ipcMain.handle('scanner:scan', (_e, payload) => scanner.scan(payload)) +ipcMain.handle('scanner:start', (e, payload) => scanner.start(e, payload)) +ipcMain.handle('scanner:stop', (_e, sessionId) => scanner.stop(sessionId)) +ipcMain.handle('scanner:detect-vsc-state-db-path', () => scanner.detectVscodeStateDbPath()) + +// system +ipcMain.handle('external:open', (_e, url) => systemSvc.openExternal(url)) +ipcMain.handle('explorer:open', (_e, folderPath) => systemSvc.openInExplorer(folderPath)) +ipcMain.handle('terminal:open', (_e, folderPath) => systemSvc.openInTerminal(folderPath)) + +// theme +ipcMain.handle('theme:set', (_e, theme) => themeSvc.setTheme(theme)) + +// update +ipcMain.handle('update:check', () => updateSvc.checkUpdate()) diff --git a/electron/ipc/dataFile.ts b/electron/ipc/dataFile.ts deleted file mode 100644 index 899572e..0000000 --- a/electron/ipc/dataFile.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { ipcMain } from 'electron' -import fs from 'fs-extra' - -import type { DataFileEnum } from '../utils/dataPath' -import { getDataFilePath } from '../utils/dataPath' - -// 保存数据到指定的 JSON 文件 -ipcMain.handle('data:save', async (_, fileType: DataFileEnum, data: string): Promise<{ success: boolean, error?: string }> => { - const filePath = getDataFilePath(fileType) - try { - await fs.ensureFile(filePath) // 确保文件存在 - await fs.writeJSON(filePath, JSON.parse(data), { spaces: 2 }) - return { success: true } - } - catch (error: unknown) { - if (error instanceof Error) { - console.error('Error saving data:', error.message) - return { success: false, error: error.message } - } - else { - console.error('Unknown error:', error) - return { success: false, error: 'Unknown error occurred' } - } - } -}) - -// 从指定的 JSON 文件加载数据 -ipcMain.handle('data:load', async (_, fileType: DataFileEnum): Promise<{ success: boolean, data?: string, error?: string }> => { - const filePath = getDataFilePath(fileType) - try { - const data = await fs.readJSON(filePath) - return { success: true, data: JSON.stringify(data) } - } - catch (error: unknown) { - if (error instanceof Error) { - console.error('Error loading data:', error.message) - return { success: false, error: error.message } - } - else { - console.error('Unknown error:', error) - return { success: false, error: 'Unknown error occurred' } - } - } -}) - -// 删除指定的 JSON 文件 -ipcMain.handle('data:delete', async (_, fileType: DataFileEnum): Promise<{ success: boolean, error?: string }> => { - const filePath = getDataFilePath(fileType) - try { - await fs.remove(filePath) - return { success: true } - } - catch (error: unknown) { - if (error instanceof Error) { - console.error('Error deleting data file:', error.message) - return { success: false, error: error.message } - } - else { - console.error('Unknown error:', error) - return { success: false, error: 'Unknown error occurred' } - } - } -}) diff --git a/electron/ipc/dialog.ts b/electron/ipc/dialog.ts deleted file mode 100644 index 71a045b..0000000 --- a/electron/ipc/dialog.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { dialog, ipcMain } from 'electron' - -// 打开文件夹选择对话框 -ipcMain.handle('dialog:open-folder', async (_, options?: { - title?: string -}): Promise => { - const result = await dialog.showOpenDialog({ - title: options?.title, - properties: ['openDirectory'], // 只能选择文件夹 - }) - return result.filePaths -}) - -// 打开文件选择对话框 -ipcMain.handle('dialog:open-file', async (_, options?: { - title?: string - fileTypes?: { name: string, extensions: string[] }[] -}): Promise => { - const result = await dialog.showOpenDialog({ - title: options?.title, - filters: options?.fileTypes, // 如果有文件类型,设置过滤器 - properties: ['openFile'], // 只能选择文件 - }) - return result.filePaths -}) diff --git a/electron/ipc/index.ts b/electron/ipc/index.ts deleted file mode 100644 index d865dd2..0000000 --- a/electron/ipc/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import './dataFile' -import './dialog' -import './path' -import './project' -import './scanner' -import './settings' -import './system' -import './theme' -import './update' diff --git a/electron/ipc/path.ts b/electron/ipc/path.ts deleted file mode 100644 index 32568e1..0000000 --- a/electron/ipc/path.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { ipcMain } from 'electron' -import fs from 'fs-extra' - -import { formatPath } from '../utils/pathUtils' - -// 格式化文件路径 -ipcMain.handle('path:format', (_, filePath: string): string => { - return formatPath(filePath) -}) - -// 检查路径是否存在 -ipcMain.handle('path:check-existence', async (_, path: string): Promise<{ exists: boolean, error?: string }> => { - try { - const exists = await fs.pathExists(path) - return { exists } - } - catch (error: unknown) { - if (error instanceof Error) { - console.error('Error checking path existence:', error.message) - return { exists: false, error: error.message } - } - else { - console.error('Unknown error:', error) - return { exists: false, error: 'Unknown error occurred' } - } - } -}) diff --git a/electron/ipc/settings.ts b/electron/ipc/settings.ts deleted file mode 100644 index 79eabdc..0000000 --- a/electron/ipc/settings.ts +++ /dev/null @@ -1,33 +0,0 @@ -import * as path from 'node:path' - -import { ipcMain } from 'electron' -import fs from 'fs-extra' - -import { settingsFilePath } from '../utils/dataPath' -import { openLocalFile } from '../utils/pathUtils' - -// 打开设置 JSON 文件 -ipcMain.handle('settings:open-json', async (): Promise => { - try { - // 如果文件不存在,创建一个新的 JSON 文件 - if (!fs.existsSync(settingsFilePath)) { - console.warn(`Settings file not found. Creating new file at: ${settingsFilePath}`) - - // 创建文件夹路径(如果不存在) - const dir = path.dirname(settingsFilePath) - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }) - } - - // 创建一个默认设置文件 - fs.writeFileSync(settingsFilePath, JSON.stringify({}), 'utf8') - } - - // 打开文件 - return openLocalFile(settingsFilePath) - } - catch (error) { - console.error(`Failed to open or create settings file: ${error}`) - return false - } -}) diff --git a/electron/main.ts b/electron/main.ts index e47e4a3..5c8a609 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -1,5 +1,4 @@ -import './ipc/index' -import './utils/vscodeRecent' +import './ipc' import * as path from 'node:path' import { fileURLToPath } from 'node:url' diff --git a/electron/preload.ts b/electron/preload.ts index 3ebc81c..2715624 100644 --- a/electron/preload.ts +++ b/electron/preload.ts @@ -1,70 +1,118 @@ import { contextBridge, ipcRenderer } from 'electron' -contextBridge.exposeInMainWorld('api', { - // dialog - openFolderDialog: (options?: { - title?: string - }) => ipcRenderer.invoke('dialog:open-folder', options), - openFileDialog: (options?: { - title?: string - fileTypes?: { name: string, extensions: string[] }[] - }) => ipcRenderer.invoke('dialog:open-file', options), - - // path +/* ========================= + * Shared types + * ========================= */ +type Unlisten = () => void + +interface DialogOpenOptions { + title?: string +} +interface FileTypeFilter { name: string, extensions: string[] } +type FileDialogOptions = DialogOpenOptions & { + fileTypes?: FileTypeFilter[] +} + +type ProjectAnalyzeStage = 'start' | 'checking' | 'analyzing' | 'done' +interface ProjectAnalyzeProgress { + folderPath: string + stage: ProjectAnalyzeStage +} + +interface ScanStartPayload { roots: string[], existingPaths: string[] } +interface ScannerItemEvent { sessionId: number, item: any } +interface ScannerDoneEvent { sessionId: number } +interface ScannerErrorEvent { sessionId: number, error: string } + +/* ========================= + * IPC helpers + * ========================= */ +function onIpc(channel: string, cb: (data: T) => void): Unlisten { + const handler = (_: unknown, data: T) => cb(data) + ipcRenderer.on(channel, handler) + return () => ipcRenderer.removeListener(channel, handler) +} + +const api = { + // ===== dialog ===== + openFolderDialog: (options?: DialogOpenOptions) => + ipcRenderer.invoke('dialog:open-folder', options), + + openFileDialog: (options?: FileDialogOptions) => + ipcRenderer.invoke('dialog:open-file', options), + + // ===== path ===== formatPath: (filePath: string) => ipcRenderer.invoke('path:format', filePath), - checkPathExistence: (path: string) => ipcRenderer.invoke('path:check-existence', path), - - // project - analyzeProject: (folderPath: string) => ipcRenderer.invoke('project:analyze', folderPath), - onProjectAnalyzeProgress: (cb: (data: { folderPath: string, stage: 'start' | 'checking' | 'analyzing' | 'done' }) => void) => { - const handler = (_: any, data: any) => cb(data) - ipcRenderer.on('project:analyze:progress', handler) - return () => ipcRenderer.removeListener('project:analyze:progress', handler) - }, - readProjectLicense: (folderPath: string, maxLines = 20) => ipcRenderer.invoke('project:read-license', folderPath, maxLines), - openProject: (idePath: string, projectPath: string) => ipcRenderer.invoke('project:open', idePath, projectPath), - deleteProject: (projectPath: string) => ipcRenderer.invoke('project:delete', projectPath), + + checkPathExistence: (path: string) => + ipcRenderer.invoke('path:check-existence', path), + + // ===== project ===== + analyzeProject: (folderPath: string) => + ipcRenderer.invoke('project:analyze', folderPath), + + onProjectAnalyzeProgress: (cb: (data: ProjectAnalyzeProgress) => void): Unlisten => + onIpc('project:analyze:progress', cb), + + readProjectLicense: (folderPath: string, maxLines = 20) => + ipcRenderer.invoke('project:read-license', folderPath, maxLines), + + openProject: (idePath: string, projectPath: string) => + ipcRenderer.invoke('project:open', idePath, projectPath), + + deleteProject: (projectPath: string) => + ipcRenderer.invoke('project:delete', projectPath), + importProject: () => ipcRenderer.invoke('project:import'), + exportProject: () => ipcRenderer.invoke('project:export'), - // settings - openSettingsJSON: () => ipcRenderer.invoke('settings:open-json'), + // ===== data ===== + saveData: (fileType: string, data: string) => + ipcRenderer.invoke('data:save', fileType, data), - // data - saveData: (fileType: string, data: string) => ipcRenderer.invoke('data:save', fileType, data), loadData: (fileType: string) => ipcRenderer.invoke('data:load', fileType), + + openData: (fileType: string) => ipcRenderer.invoke('data:open', fileType), + deleteData: (fileType: string) => ipcRenderer.invoke('data:delete', fileType), - // system + // ===== system ===== openExternal: (url: string) => ipcRenderer.invoke('external:open', url), + openInExplorer: (path: string) => ipcRenderer.invoke('explorer:open', path), + openInTerminal: (path: string) => ipcRenderer.invoke('terminal:open', path), - // update + // ===== update ===== checkUpdate: () => ipcRenderer.invoke('update:check'), - // scanner (batch) - scanProjects: (payload: { roots: string[], existingPaths: string[] }) => ipcRenderer.invoke('scanner:scan', payload), - // scanner (stream) - startProjectScan: (payload: { roots: string[], existingPaths: string[] }) => ipcRenderer.invoke('scanner:start', payload), - stopProjectScan: (sessionId: number) => ipcRenderer.invoke('scanner:stop', sessionId), - onScannerItem: (cb: (data: { sessionId: number, item: any }) => void) => { - const handler = (_: any, data: any) => cb(data) - ipcRenderer.on('scanner:item', handler) - return () => ipcRenderer.removeListener('scanner:item', handler) - }, - onScannerDone: (cb: (data: { sessionId: number }) => void) => { - const handler = (_: any, data: any) => cb(data) - ipcRenderer.on('scanner:done', handler) - return () => ipcRenderer.removeListener('scanner:done', handler) - }, - onScannerError: (cb: (data: { sessionId: number, error: string }) => void) => { - const handler = (_: any, data: any) => cb(data) - ipcRenderer.on('scanner:error', handler) - return () => ipcRenderer.removeListener('scanner:error', handler) - }, - detectVscodeStateDbPath: () => ipcRenderer.invoke('scanner:detect-vsc-state-db-path'), - - // theme - setWindowTheme: (currentTheme: 'light' | 'dark') => ipcRenderer.invoke('theme:set', currentTheme), -}) + // ===== scanner (batch) ===== + scanProjects: (payload: ScanStartPayload) => + ipcRenderer.invoke('scanner:scan', payload), + + // ===== scanner (stream) ===== + startProjectScan: (payload: ScanStartPayload) => + ipcRenderer.invoke('scanner:start', payload), + + stopProjectScan: (sessionId: number) => + ipcRenderer.invoke('scanner:stop', sessionId), + + onScannerItem: (cb: (data: ScannerItemEvent) => void): Unlisten => + onIpc('scanner:item', cb), + + onScannerDone: (cb: (data: ScannerDoneEvent) => void): Unlisten => + onIpc('scanner:done', cb), + + onScannerError: (cb: (data: ScannerErrorEvent) => void): Unlisten => + onIpc('scanner:error', cb), + + detectVscodeStateDbPath: () => + ipcRenderer.invoke('scanner:detect-vsc-state-db-path'), + + // ===== theme ===== + setWindowTheme: (currentTheme: 'light' | 'dark') => + ipcRenderer.invoke('theme:set', currentTheme), +} as const + +contextBridge.exposeInMainWorld('api', api) diff --git a/electron/services/dataFileService.ts b/electron/services/dataFileService.ts new file mode 100644 index 0000000..1fd2f57 --- /dev/null +++ b/electron/services/dataFileService.ts @@ -0,0 +1,85 @@ +import path from 'node:path' + +import { shell } from 'electron' +import fs from 'fs-extra' + +import type { DataFileEnum } from '../utils/dataPath' +import { getDataFilePath } from '../utils/dataPath' + +// 保存数据到指定的 JSON 文件 +export async function saveData(fileType: DataFileEnum, data: string) { + const filePath = getDataFilePath(fileType) + try { + await fs.ensureFile(filePath) + await fs.writeJSON(filePath, JSON.parse(data), { spaces: 2 }) + return { success: true as const } + } + catch (e: any) { + console.error('Error saving data:', e?.message || e) + return { success: false as const, error: e?.message || String(e) } + } +} + +// 从指定的 JSON 文件加载数据 +export async function loadData(fileType: DataFileEnum) { + const filePath = getDataFilePath(fileType) + try { + const data = await fs.readJSON(filePath) + return { success: true as const, data: JSON.stringify(data) } + } + catch (e: any) { + console.error('Error loading data:', e?.message || e) + return { success: false as const, error: e?.message || String(e) } + } +} + +/** + * 使用系统默认方式打开指定文件 + * @param filePath - 要打开的文件路径 + * @returns 是否成功打开 + */ +function openLocalFile(filePath: string): boolean { + if (!fs.existsSync(filePath)) { + console.error(`File not found: ${filePath}`) + return false + } + try { + shell.openPath(filePath) // 使用系统默认应用打开文件 + return true + } + catch (error) { + console.error(`Failed to open file: ${filePath}`, error) + return false + } +} + +// 打开指定的 JSON 文件 +export async function openData(fileType: DataFileEnum): Promise { + const filePath = getDataFilePath(fileType) + try { + if (!fs.existsSync(filePath)) { + const dir = path.dirname(filePath) + if (!fs.existsSync(dir)) + fs.mkdirSync(dir, { recursive: true }) + fs.writeFileSync(filePath, JSON.stringify({}), 'utf8') + } + return openLocalFile(filePath) + } + catch (e) { + console.error(`Failed to open or create json file: ${e}`) + return false + } +} + +// 删除指定的 JSON 文件 +export async function deleteData(fileType: DataFileEnum) { + const filePath = getDataFilePath(fileType) + try { + await fs.remove(filePath) + return { success: true as const } + } + catch (e: any) { + console.error('Error deleting data file:', e?.message || e) + return { success: false as const, error: e?.message || String(e) } + } +} diff --git a/electron/services/dialogService.ts b/electron/services/dialogService.ts new file mode 100644 index 0000000..fc06735 --- /dev/null +++ b/electron/services/dialogService.ts @@ -0,0 +1,20 @@ +import { dialog } from 'electron' + +// 打开文件夹选择对话框 +export async function openFolder(options?: { title?: string }) { + const result = await dialog.showOpenDialog({ + title: options?.title, + properties: ['openDirectory'], + }) + return result.filePaths +} + +// 打开文件选择对话框 +export async function openFile(options?: { title?: string, fileTypes?: { name: string, extensions: string[] }[] }) { + const result = await dialog.showOpenDialog({ + title: options?.title, + filters: options?.fileTypes, + properties: ['openFile'], + }) + return result.filePaths +} diff --git a/electron/utils/pathUtils.ts b/electron/services/pathService.ts similarity index 51% rename from electron/utils/pathUtils.ts rename to electron/services/pathService.ts index f587368..f51ab42 100644 --- a/electron/utils/pathUtils.ts +++ b/electron/services/pathService.ts @@ -1,6 +1,5 @@ import * as os from 'node:os' -import { shell } from 'electron' import fs from 'fs-extra' /** @@ -13,7 +12,7 @@ import fs from 'fs-extra' * - 输入: 'C:\\Users\\lenovo\\source', 'D:\\Documents\\project' * - 输出: '~\\source', 'D:\\Documents\\project' */ -export function formatPath(filePath: string): string { +export function format(filePath: string): string { const userHomeDir = os.homedir() if (filePath.startsWith(userHomeDir)) { @@ -22,22 +21,14 @@ export function formatPath(filePath: string): string { return filePath } -/** - * 使用系统默认方式打开指定文件 - * @param filePath - 要打开的文件路径 - * @returns 是否成功打开 - */ -export function openLocalFile(filePath: string): boolean { - if (!fs.existsSync(filePath)) { - console.error(`File not found: ${filePath}`) - return false - } +// 检查路径是否存在 +export async function checkExistence(path: string) { try { - shell.openPath(filePath) // 使用系统默认应用打开文件 - return true + const exists = await fs.pathExists(path) + return { exists } } - catch (error) { - console.error(`Failed to open file: ${filePath}`, error) - return false + catch (e: any) { + console.error('Error checking path existence:', e?.message || e) + return { exists: false, error: e?.message || String(e) } } } diff --git a/electron/ipc/project.ts b/electron/services/projectService.ts similarity index 92% rename from electron/ipc/project.ts rename to electron/services/projectService.ts index e05a7e4..7dbdcb2 100644 --- a/electron/ipc/project.ts +++ b/electron/services/projectService.ts @@ -2,7 +2,8 @@ import { exec } from 'node:child_process' import path from 'node:path' import { Worker } from 'node:worker_threads' -import { dialog, ipcMain } from 'electron' +import type { IpcMainInvokeEvent } from 'electron' +import { dialog } from 'electron' import fs from 'fs-extra' import trash from 'trash' @@ -10,7 +11,7 @@ import { projectsFilePath } from '../utils/dataPath' import type { LinguistResult } from '../utils/linguist' // 传入项目根目录,获取项目各编程语言的占比 -ipcMain.handle('project:analyze', async (event, folderPath): Promise => { +export async function analyzeProject(event: IpcMainInvokeEvent, folderPath: string): Promise { return await new Promise((resolve) => { try { const workerUrl = new URL('../workers/linguistAnalyze.worker.js', import.meta.url) @@ -56,10 +57,10 @@ ipcMain.handle('project:analyze', async (event, folderPath): Promise { +export async function readLicense(folderPath: string, maxLines = 20) { try { if (!folderPath || typeof folderPath !== 'string') return { success: false, message: 'Invalid project path' } @@ -120,10 +121,10 @@ ipcMain.handle('project:read-license', async (_evt, folderPath: string, maxLines catch (e: any) { return { success: false, message: String(e?.message || e) } } -}) +} // 使用IDE打开项目 -ipcMain.handle('project:open', async (_, idePath: string, projectPath: string): Promise => { +export async function openInIDE(idePath: string, projectPath: string): Promise { if (!idePath || !projectPath) { throw new Error('IDE 路径和项目路径不能为空') } @@ -148,10 +149,10 @@ ipcMain.handle('project:open', async (_, idePath: string, projectPath: string): console.error(err) throw new Error('打开项目时发生错误') } -}) +} // 删除项目 -ipcMain.handle('project:delete', async (_, projectPath: string) => { +export async function deleteProject(projectPath: string) { try { if (!fs.existsSync(projectPath)) { throw new Error('项目路径不存在') @@ -183,10 +184,10 @@ ipcMain.handle('project:delete', async (_, projectPath: string) => { return { success: false, message: '删除项目失败', error: (deleteError as Error).message } } } -}) +} // 导入数据 -ipcMain.handle('project:import', async () => { +export async function importProjects() { try { const result = await dialog.showOpenDialog({ properties: ['openFile'], @@ -208,10 +209,10 @@ ipcMain.handle('project:import', async () => { console.error('Error importing data file:', error) return { success: false, message: 'Failed to import data file' } } -}) +} // 导出数据 -ipcMain.handle('project:export', async () => { +export async function exportProjects() { try { const result = await dialog.showSaveDialog({ defaultPath: 'projects.json', @@ -233,4 +234,4 @@ ipcMain.handle('project:export', async () => { console.error('Error exporting data file:', error) return { success: false, message: 'Failed to export data file' } } -}) +} diff --git a/electron/ipc/scanner.ts b/electron/services/scannerService.ts similarity index 71% rename from electron/ipc/scanner.ts rename to electron/services/scannerService.ts index e5058e1..d46c59b 100644 --- a/electron/ipc/scanner.ts +++ b/electron/services/scannerService.ts @@ -1,14 +1,15 @@ +import fs from 'node:fs' +import path from 'node:path' +import process from 'node:process' import { Worker } from 'node:worker_threads' -import { ipcMain } from 'electron' - -import { detectVscodeStateDbPath } from '../utils/vscodeRecent' +import type { IpcMainInvokeEvent } from 'electron' +import { app } from 'electron' interface ScanPayload { roots: string[] existingPaths: string[] } - interface ScanResultItem { path: string name: string @@ -18,8 +19,7 @@ interface ScanResultItem { error?: string } -// 兼容的批量扫描(返回数组) -ipcMain.handle('scanner:scan', async (_event, payload: ScanPayload): Promise => { +export async function scan(payload: ScanPayload): Promise { return new Promise((resolve, reject) => { try { const workerUrl = new URL('../workers/projectScanner.worker.js', import.meta.url) @@ -55,13 +55,13 @@ ipcMain.handle('scanner:scan', async (_event, payload: ScanPayload): Promise() let nextSessionId = 1 -ipcMain.handle('scanner:start', (event, payload: ScanPayload): { sessionId: number } => { +export function start(event: IpcMainInvokeEvent, payload: ScanPayload) { const sessionId = nextSessionId++ const workerUrl = new URL('../workers/projectScanner.worker.js', import.meta.url) const worker = new Worker(workerUrl, { type: 'module', workerData: payload } as any) @@ -103,9 +103,9 @@ ipcMain.handle('scanner:start', (event, payload: ScanPayload): { sessionId: numb }) return { sessionId } -}) +} -ipcMain.handle('scanner:stop', (_, sessionId: number) => { +export function stop(sessionId: number) { const worker = sessions.get(sessionId) if (worker) { try { @@ -117,8 +117,40 @@ ipcMain.handle('scanner:stop', (_, sessionId: number) => { return { stopped: true } } return { stopped: false } -}) +} + +/** + * 自动检测 VSCode state.vscdb 路径 + * 全平台通用 + */ +export function detectVscodeStateDbPath() { + let dbPath: string + + switch (process.platform) { + case 'win32': + dbPath = path.join(app.getPath('appData'), 'Code', 'User', 'globalStorage', 'state.vscdb') + break + case 'darwin': + dbPath = path.join( + app.getPath('home'), + 'Library', + 'Application Support', + 'Code', + 'User', + 'globalStorage', + 'state.vscdb', + ) + break + default: // linux + dbPath = path.join( + app.getPath('home'), + '.config', + 'Code', + 'User', + 'globalStorage', + 'state.vscdb', + ) + } -ipcMain.handle('scanner:detect-vsc-state-db-path', (_) => { - return detectVscodeStateDbPath() -}) + return fs.existsSync(dbPath) ? dbPath : null +} diff --git a/electron/ipc/system.ts b/electron/services/systemService.ts similarity index 69% rename from electron/ipc/system.ts rename to electron/services/systemService.ts index b910245..fc0ebd9 100644 --- a/electron/ipc/system.ts +++ b/electron/services/systemService.ts @@ -2,26 +2,22 @@ import { exec } from 'node:child_process' import * as path from 'node:path' import process from 'node:process' -import { ipcMain, shell } from 'electron' +import { shell } from 'electron' // 在系统默认浏览器中打开链接 -ipcMain.handle('external:open', async (_, url: string): Promise => { - shell.openExternal(url) - .then(() => {}) - .catch(err => console.error('Failed to open link:', err)) -}) +export async function openExternal(url: string): Promise { + await shell.openExternal(url).catch(err => console.error('Failed to open link:', err)) +} // 使用资源管理器打开路径 -ipcMain.handle('explorer:open', async (_, folderPath: string): Promise => { +export async function openInExplorer(folderPath: string): Promise { const resolvedPath = path.resolve(folderPath) // 使用系统默认的资源管理器打开文件夹 - shell.openPath(resolvedPath).catch((err) => { - console.error('打开资源管理器失败:', err) - }) -}) + await shell.openPath(resolvedPath).catch(err => console.error('打开资源管理器失败:', err)) +} // 使用终端打开路径 -ipcMain.handle('terminal:open', async (_, folderPath: string): Promise => { +export async function openInTerminal(folderPath: string): Promise { const resolvedPath = path.resolve(folderPath) // 根据操作系统选择合适的终端命令 const isWindows = process.platform === 'win32' @@ -52,4 +48,4 @@ ipcMain.handle('terminal:open', async (_, folderPath: string): Promise => else { console.error('不支持的操作系统') } -}) +} diff --git a/electron/ipc/theme.ts b/electron/services/themeService.ts similarity index 74% rename from electron/ipc/theme.ts rename to electron/services/themeService.ts index 82a8300..33fc1e0 100644 --- a/electron/ipc/theme.ts +++ b/electron/services/themeService.ts @@ -1,9 +1,7 @@ -import { ipcMain } from 'electron' - import { getMainWindow } from '../main' // 设置主题 -ipcMain.handle('theme:set', async (_, theme: string): Promise => { +export async function setTheme(theme: string): Promise { const colorSettings = theme === 'dark' ? { color: '#2B2D30', symbolColor: '#DFE1E5' } : { color: '#F2F2F2', symbolColor: '#222323' } @@ -12,4 +10,4 @@ ipcMain.handle('theme:set', async (_, theme: string): Promise => { color: colorSettings.color, symbolColor: colorSettings.symbolColor, }) -}) +} diff --git a/electron/ipc/update.ts b/electron/services/updateService.ts similarity index 94% rename from electron/ipc/update.ts rename to electron/services/updateService.ts index af8d206..39d380a 100644 --- a/electron/ipc/update.ts +++ b/electron/services/updateService.ts @@ -1,4 +1,4 @@ -import { app, ipcMain } from 'electron' +import { app } from 'electron' interface CheckUpdateResult { hasUpdate: boolean @@ -12,8 +12,9 @@ interface CheckUpdateResult { } function normalizeVersion(v: string | undefined): string { - if (!v) + if (!v) { return '0.0.0' + } // remove leading v/V and trim whitespace const cleaned = v.trim().replace(/^v/i, '') // drop pre-release/build metadata for comparison @@ -34,7 +35,7 @@ function compareSemver(a: string, b: string): number { return 0 } -ipcMain.handle('update:check', async (): Promise => { +export async function checkUpdate(): Promise { try { // robust version source for dev and packaged const currentVersion = app.getVersion() || '0.0.0' @@ -77,4 +78,4 @@ ipcMain.handle('update:check', async (): Promise => { const currentVersion = app.getVersion() || '0.0.0' return { hasUpdate: false, currentVersion, error: e?.message || String(e) } } -}) +} diff --git a/electron/utils/vscodeRecent.ts b/electron/utils/vscodeRecent.ts index 1a11c43..ea4bba0 100644 --- a/electron/utils/vscodeRecent.ts +++ b/electron/utils/vscodeRecent.ts @@ -1,9 +1,6 @@ import fs from 'node:fs' -import path from 'node:path' -import process from 'node:process' import Database from 'better-sqlite3' -import { app } from 'electron' export interface VscodeRecentEntry { folderUri?: string @@ -38,39 +35,3 @@ export function getVscodeRecentProjects(dbPath: string): VscodeRecentEntry[] { return [] } } - -/** - * 自动检测 VSCode state.vscdb 路径 - * 全平台通用 - */ -export function detectVscodeStateDbPath(): string | null { - let dbPath: string - - switch (process.platform) { - case 'win32': - dbPath = path.join(app.getPath('appData'), 'Code', 'User', 'globalStorage', 'state.vscdb') - break - case 'darwin': - dbPath = path.join( - app.getPath('home'), - 'Library', - 'Application Support', - 'Code', - 'User', - 'globalStorage', - 'state.vscdb', - ) - break - default: // linux - dbPath = path.join( - app.getPath('home'), - '.config', - 'Code', - 'User', - 'globalStorage', - 'state.vscdb', - ) - } - - return fs.existsSync(dbPath) ? dbPath : null -} diff --git a/src/global.d.ts b/src/global.d.ts index a10b869..fbf74af 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -1,99 +1,167 @@ import type { ThemeEnum } from '~/constants/appEnums' import type { LinguistResult } from '~/views/ProjectEditorView' +/** + * 通用/基础类型 + */ +type HexColor = `#${string}` +type Unlisten = () => void +interface ErrorResult { error: string } + +/** + * 对话框 + */ +interface DialogOpenOptions { + title?: string +} +interface FileTypeFilter { + name: string + extensions: string[] +} +interface FileDialogOptions extends DialogOpenOptions { + fileTypes?: FileTypeFilter[] +} + +/** + * 路径与文件 + */ +interface PathExistenceResult { + exists: boolean + error?: string +} + +/** + * 项目分析 + */ +type ProjectAnalyzeStage = 'start' | 'checking' | 'analyzing' | 'done' +interface ProjectAnalyzeProgress { + folderPath: string + stage: ProjectAnalyzeStage +} +interface LicenseReadResult { + success: boolean + filename?: string + snippet?: string + lines?: number + message?: string +} + +/** + * 数据存取 + */ +interface BasicResult { + success: boolean + error?: string +} +interface DataResult { + success: boolean + data?: string + error?: string +} + +/** + * 数据文件类型 + */ +type DataFileEnum = 'editorLangGroups' | 'projects' | 'projectScanner' | 'settings' + +/** + * 更新检查 + */ +interface UpdateCheckResult { + hasUpdate: boolean + currentVersion: string + latestVersion?: string + url?: string + name?: string + notes?: string + publishedAt?: string + error?: string +} + +/** + * 扫描(批量 & 流式) + */ +interface LangGroupItem { + text: string + color: HexColor + percentage: number +} +interface ScanItem { + path: string + name: string + mainLang?: string + mainLangColor?: HexColor + langGroup?: LangGroupItem[] + error?: string +} +interface ScanStartPayload { + roots: string[] + existingPaths: string[] +} +interface ScanSession { + sessionId: number +} +interface ScannerItemEvent { + sessionId: number + item: ScanItem +} +interface ScannerDoneEvent { + sessionId: number +} +interface ScannerErrorEvent { + sessionId: number + error: string +} + declare global { interface Window { api: { - // dialog - openFolderDialog: (options?: { - title?: string - }) => Promise - openFileDialog: (options?: { - title?: string - fileTypes?: { name: string, extensions: string[] }[] - }) => Promise - - // path + // ========= dialog ========= + openFolderDialog: (options?: DialogOpenOptions) => Promise + openFileDialog: (options?: FileDialogOptions) => Promise + + // ========= path ========= formatPath: (filePath: string) => Promise - checkPathExistence: (path: string) => Promise<{ exists: boolean, error?: string }> - - // project - analyzeProject: (folderPath: string) => Promise - onProjectAnalyzeProgress: (cb: (data: { folderPath: string, stage: 'start' | 'checking' | 'analyzing' | 'done' }) => void) => () => void - readProjectLicense: (folderPath: string, maxLines?: number) => Promise<{ - success: boolean - filename?: string - snippet?: string - lines?: number - message?: string - }> + checkPathExistence: (path: string) => Promise + + // ========= project ========= + analyzeProject: (folderPath: string) => Promise + onProjectAnalyzeProgress: (cb: (data: ProjectAnalyzeProgress) => void) => Unlisten + readProjectLicense: (folderPath: string, maxLines?: number) => Promise openProject: (idePath: string, projectPath: string) => Promise deleteProject: (projectPath: string) => Promise importProject: () => Promise exportProject: () => Promise - // settings - openSettingsJSON: () => Promise - - // data - saveData: (fileType: string, data: string) => Promise<{ success: boolean, error?: string }> - loadData: (fileType: string) => Promise<{ success: boolean, data?: string, error?: string }> - deleteData: (fileType: string) => Promise<{ success: boolean, error?: string }> + // ========= data ========= + saveData: (fileType: DataFileEnum, data: string) => Promise + loadData: (fileType: DataFileEnum) => Promise + openData: (fileType: DataFileEnum) => Promise + deleteData: (fileType: DataFileEnum) => Promise - // system + // ========= system ========= openExternal: (url: string) => void openInExplorer: (path: string) => void openInTerminal: (path: string) => void - // update - checkUpdate: () => Promise<{ - hasUpdate: boolean - currentVersion: string - latestVersion?: string - url?: string - name?: string - notes?: string - publishedAt?: string - error?: string - }> - - // scanner (batch) - scanProjects: (payload: { roots: string[], existingPaths: string[] }) => Promise< - Array<{ - path: string - name: string - mainLang?: string - mainLangColor?: `#${string}` - langGroup?: Array<{ text: string, color: `#${string}`, percentage: number }> - error?: string - }> - > - - // scanner (stream) - startProjectScan: (payload: { - roots: string[] - existingPaths: string[] - }) => Promise<{ sessionId: number }> + // ========= update ========= + checkUpdate: () => Promise + + // ========= scanner (batch) ========= + scanProjects: (payload: { roots: string[], existingPaths: string[] }) => Promise + + // ========= scanner (stream) ========= + startProjectScan: (payload: ScanStartPayload) => Promise stopProjectScan: (sessionId: number) => Promise<{ stopped: boolean }> - onScannerItem: ( - cb: (data: { - sessionId: number - item: { - path: string - name: string - mainLang?: string - mainLangColor?: `#${string}` - langGroup?: Array<{ text: string, color: `#${string}`, percentage: number }> - error?: string - } - }) => void - ) => () => void - onScannerDone: (cb: (data: { sessionId: number }) => void) => () => void - onScannerError: (cb: (data: { sessionId: number, error: string }) => void) => () => void + onScannerItem: (cb: (data: ScannerItemEvent) => void) => Unlisten + onScannerDone: (cb: (data: ScannerDoneEvent) => void) => Unlisten + onScannerError: (cb: (data: ScannerErrorEvent) => void) => Unlisten detectVscodeStateDbPath: () => Promise - // theme + // ========= theme ========= setWindowTheme: (currentTheme: ThemeEnum) => void } } } + +export {} diff --git a/src/views/SettingsView/SettingsView.vue b/src/views/SettingsView/SettingsView.vue index 0cfb150..e16b8e1 100644 --- a/src/views/SettingsView/SettingsView.vue +++ b/src/views/SettingsView/SettingsView.vue @@ -39,7 +39,7 @@ const searchValue = ref('') const activatedView = inject('activatedView') as Ref function openSettingsJSON() { - window.api.openSettingsJSON() + window.api.openData('settings') } function saveAllSettings() { From e447947d9e3949764b7f661e71888aaf4d4674fe Mon Sep 17 00:00:00 2001 From: MidnightCrowing <110297461+MidnightCrowing@users.noreply.github.com> Date: Fri, 19 Sep 2025 18:08:25 +0800 Subject: [PATCH 3/7] dependencies: update version --- .github/workflows/release-it.yml | 1 + README.md | 2 +- README_EN.md | 2 +- electron/main.ts | 1 + electron/services/projectService.ts | 1 + electron/services/scannerService.ts | 2 + jetv-ui/package.json | 24 +- jetv-ui/pnpm-lock.yaml | 1464 +++++++------- package.json | 44 +- pnpm-lock.yaml | 2849 +++++++++++++-------------- 10 files changed, 2165 insertions(+), 2225 deletions(-) diff --git a/.github/workflows/release-it.yml b/.github/workflows/release-it.yml index 339c5b6..71427d4 100644 --- a/.github/workflows/release-it.yml +++ b/.github/workflows/release-it.yml @@ -8,6 +8,7 @@ on: workflow_dispatch: inputs: increment: + description: 选择版本号递增方式 required: true default: patch type: choice diff --git a/README.md b/README.md index f1d09a7..83c8878 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 简体中文 | [English](README_EN.md) -

+

CodeNest Interface

diff --git a/README_EN.md b/README_EN.md index 2290295..cb37d3d 100644 --- a/README_EN.md +++ b/README_EN.md @@ -2,7 +2,7 @@ [简体中文](README.md) | English -

+

CodeNest Interface

diff --git a/electron/main.ts b/electron/main.ts index 5c8a609..10a684f 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -5,6 +5,7 @@ import { fileURLToPath } from 'node:url' import { app, BrowserWindow, globalShortcut, Menu } from 'electron' +// @ts-expect-error -- 知道要改tsconfig但不想改 const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) diff --git a/electron/services/projectService.ts b/electron/services/projectService.ts index 7dbdcb2..a1a9fdc 100644 --- a/electron/services/projectService.ts +++ b/electron/services/projectService.ts @@ -14,6 +14,7 @@ import type { LinguistResult } from '../utils/linguist' export async function analyzeProject(event: IpcMainInvokeEvent, folderPath: string): Promise { return await new Promise((resolve) => { try { + // @ts-expect-error -- 知道要改tsconfig但不想改 const workerUrl = new URL('../workers/linguistAnalyze.worker.js', import.meta.url) const worker = new Worker(workerUrl, { type: 'module', workerData: { folderPath } } as any) diff --git a/electron/services/scannerService.ts b/electron/services/scannerService.ts index d46c59b..97b6123 100644 --- a/electron/services/scannerService.ts +++ b/electron/services/scannerService.ts @@ -22,6 +22,7 @@ interface ScanResultItem { export async function scan(payload: ScanPayload): Promise { return new Promise((resolve, reject) => { try { + // @ts-expect-error -- 知道要改tsconfig但不想改 const workerUrl = new URL('../workers/projectScanner.worker.js', import.meta.url) const worker = new Worker(workerUrl, { type: 'module', workerData: payload } as any) @@ -63,6 +64,7 @@ let nextSessionId = 1 export function start(event: IpcMainInvokeEvent, payload: ScanPayload) { const sessionId = nextSessionId++ + // @ts-expect-error -- 知道要改tsconfig但不想改 const workerUrl = new URL('../workers/projectScanner.worker.js', import.meta.url) const worker = new Worker(workerUrl, { type: 'module', workerData: payload } as any) diff --git a/jetv-ui/package.json b/jetv-ui/package.json index 7ceeede..3998b25 100644 --- a/jetv-ui/package.json +++ b/jetv-ui/package.json @@ -22,30 +22,30 @@ "postbuild": "pnpm prepare:icons" }, "devDependencies": { - "@antfu/eslint-config": "5.2.1", - "@iconify/tools": "^4.1.2", + "@antfu/eslint-config": "5.3.0", + "@iconify/tools": "^4.1.3", "@rollup/plugin-typescript": "^12.1.4", "@rushstack/eslint-patch": "^1.12.0", - "@types/node": "^24.3.0", - "@unocss/preset-mini": "^66.4.2", + "@types/node": "^24.5.2", + "@unocss/preset-mini": "^66.5.1", "@vitejs/plugin-vue": "^6.0.1", "@vue/tsconfig": "^0.8.1", - "@vueuse/core": "^13.8.0", - "eslint": "^9.34.0", + "@vueuse/core": "^13.9.0", + "eslint": "^9.35.0", "eslint-plugin-format": "^1.0.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-vue": "^10.4.0", "rollup-plugin-dts": "^6.2.3", - "sass": "^1.91.0", - "terser": "^5.43.1", + "sass": "^1.92.1", + "terser": "^5.44.0", "tslib": "^2.8.1", "typescript": "~5.9.2", - "unocss": "^66.4.2", + "unocss": "^66.5.1", "unplugin-auto-import": "^20.1.0", - "vite": "^7.1.3", - "vue": "^3.5.20", + "vite": "^7.1.6", + "vue": "^3.5.21", "vue-router": "^4.5.1", - "vue-tsc": "^3.0.6" + "vue-tsc": "^3.0.7" } } diff --git a/jetv-ui/pnpm-lock.yaml b/jetv-ui/pnpm-lock.yaml index abef044..f5c2993 100644 --- a/jetv-ui/pnpm-lock.yaml +++ b/jetv-ui/pnpm-lock.yaml @@ -9,55 +9,55 @@ importers: .: devDependencies: '@antfu/eslint-config': - specifier: 5.2.1 - version: 5.2.1(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + specifier: 5.3.0 + version: 5.3.0(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.35.0(jiti@2.5.1)))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) '@iconify/tools': - specifier: ^4.1.2 - version: 4.1.2 + specifier: ^4.1.3 + version: 4.1.3 '@rollup/plugin-typescript': specifier: ^12.1.4 - version: 12.1.4(rollup@4.50.0)(tslib@2.8.1)(typescript@5.9.2) + version: 12.1.4(rollup@4.51.0)(tslib@2.8.1)(typescript@5.9.2) '@rushstack/eslint-patch': specifier: ^1.12.0 version: 1.12.0 '@types/node': - specifier: ^24.3.0 - version: 24.3.0 + specifier: ^24.5.2 + version: 24.5.2 '@unocss/preset-mini': - specifier: ^66.4.2 - version: 66.5.0 + specifier: ^66.5.1 + version: 66.5.1 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + version: 6.0.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) '@vue/tsconfig': specifier: ^0.8.1 version: 0.8.1(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) '@vueuse/core': - specifier: ^13.8.0 + specifier: ^13.9.0 version: 13.9.0(vue@3.5.21(typescript@5.9.2)) eslint: - specifier: ^9.34.0 - version: 9.34.0(jiti@2.5.1) + specifier: ^9.35.0 + version: 9.35.0(jiti@2.5.1) eslint-plugin-format: specifier: ^1.0.1 - version: 1.0.1(eslint@9.34.0(jiti@2.5.1)) + version: 1.0.1(eslint@9.35.0(jiti@2.5.1)) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@9.34.0(jiti@2.5.1)) + version: 11.1.0(eslint@9.35.0(jiti@2.5.1)) eslint-plugin-simple-import-sort: specifier: ^12.1.1 - version: 12.1.1(eslint@9.34.0(jiti@2.5.1)) + version: 12.1.1(eslint@9.35.0(jiti@2.5.1)) eslint-plugin-vue: specifier: ^10.4.0 - version: 10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1))) + version: 10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))) rollup-plugin-dts: specifier: ^6.2.3 - version: 6.2.3(rollup@4.50.0)(typescript@5.9.2) + version: 6.2.3(rollup@4.51.0)(typescript@5.9.2) sass: - specifier: ^1.91.0 - version: 1.92.0 + specifier: ^1.92.1 + version: 1.92.1 terser: - specifier: ^5.43.1 + specifier: ^5.44.0 version: 5.44.0 tslib: specifier: ^2.8.1 @@ -66,28 +66,28 @@ importers: specifier: ~5.9.2 version: 5.9.2 unocss: - specifier: ^66.4.2 - version: 66.5.0(postcss@8.5.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + specifier: ^66.5.1 + version: 66.5.1(postcss@8.5.6)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) unplugin-auto-import: specifier: ^20.1.0 version: 20.1.0(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2))) vite: - specifier: ^7.1.3 - version: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + specifier: ^7.1.6 + version: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) vue: - specifier: ^3.5.20 + specifier: ^3.5.21 version: 3.5.21(typescript@5.9.2) vue-router: specifier: ^4.5.1 version: 4.5.1(vue@3.5.21(typescript@5.9.2)) vue-tsc: - specifier: ^3.0.6 - version: 3.0.6(typescript@5.9.2) + specifier: ^3.0.7 + version: 3.0.7(typescript@5.9.2) packages: - '@antfu/eslint-config@5.2.1': - resolution: {integrity: sha512-EG/5kwDci1PFKSwAPMEMHDA/VYJFn0TAqwXLdnmE7zuFcaug3EGih7UOWmapMfL59Hqq6jbomaUHN31aVnL8NA==} + '@antfu/eslint-config@5.3.0': + resolution: {integrity: sha512-VzBemSi453rd06lF6gG6VkpP3HH7XKTf+sK6frSrGm7uMFkN57jry1XB074tQRKB3qOjhpsx3kKpWtOv9e5FnQ==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.38.4 @@ -171,8 +171,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true @@ -184,8 +184,8 @@ packages: resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} '@clack/core@0.5.0': @@ -207,162 +207,162 @@ packages: resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} engines: {node: '>=18'} - '@es-joy/jsdoccomment@0.52.0': - resolution: {integrity: sha512-BXuN7BII+8AyNtn57euU2Yxo9yA/KUDNzrpXyi3pfqKmBhhysR6ZWOebFh3vyPoqA3/j1SOvGgucElMGwlXing==} + '@es-joy/jsdoccomment@0.56.0': + resolution: {integrity: sha512-c6EW+aA1w2rjqOMjbL93nZlwxp6c1Ln06vTYs5FjRRhmJXK8V/OrSXdT+pUr4aRYgjCgu8/OkiZr0tzeVrRSbw==} engines: {node: '>=20.11.0'} - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + '@esbuild/aix-ppc64@0.25.10': + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + '@esbuild/android-arm64@0.25.10': + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + '@esbuild/android-arm@0.25.10': + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + '@esbuild/android-x64@0.25.10': + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + '@esbuild/darwin-arm64@0.25.10': + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + '@esbuild/darwin-x64@0.25.10': + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + '@esbuild/freebsd-arm64@0.25.10': + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + '@esbuild/freebsd-x64@0.25.10': + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + '@esbuild/linux-arm64@0.25.10': + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + '@esbuild/linux-arm@0.25.10': + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + '@esbuild/linux-ia32@0.25.10': + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + '@esbuild/linux-loong64@0.25.10': + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + '@esbuild/linux-mips64el@0.25.10': + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + '@esbuild/linux-ppc64@0.25.10': + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + '@esbuild/linux-riscv64@0.25.10': + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + '@esbuild/linux-s390x@0.25.10': + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-x64@0.25.10': + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + '@esbuild/netbsd-arm64@0.25.10': + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + '@esbuild/netbsd-x64@0.25.10': + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + '@esbuild/openbsd-arm64@0.25.10': + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + '@esbuild/openbsd-x64@0.25.10': + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + '@esbuild/openharmony-arm64@0.25.10': + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + '@esbuild/sunos-x64@0.25.10': + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + '@esbuild/win32-arm64@0.25.10': + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + '@esbuild/win32-ia32@0.25.10': + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + '@esbuild/win32-x64@0.25.10': + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -373,8 +373,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -408,8 +408,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.34.0': - resolution: {integrity: sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==} + '@eslint/js@9.35.0': + resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/markdown@7.2.0': @@ -428,24 +428,20 @@ packages: resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify/tools@4.1.2': - resolution: {integrity: sha512-q6NzLQYEN9zkDfcyBqD3vItHcZw97w/s++3H3TBxUORr57EfHxj6tOW6fyufDjMq+Vl56WXWaPx1csBPYlI5CA==} + '@iconify/tools@4.1.3': + resolution: {integrity: sha512-guPw9jvkrCCGFUvPr+NgUcQIpQcIll38NQzUzrEMK/1vrDmeJ9jstsp/Dx5LIP2na9BUBLHKOKXA6cERTpnGFw==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -453,8 +449,8 @@ packages: '@iconify/utils@2.3.0': resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - '@iconify/utils@3.0.1': - resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==} + '@iconify/utils@3.0.2': + resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -472,8 +468,8 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -599,8 +595,8 @@ packages: tslib: optional: true - '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -608,108 +604,108 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.50.0': - resolution: {integrity: sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==} + '@rollup/rollup-android-arm-eabi@4.51.0': + resolution: {integrity: sha512-VyfldO8T/C5vAXBGIobrAnUE+VJNVLw5z9h4NgSDq/AJZWt/fXqdW+0PJbk+M74xz7yMDRiHtlsuDV7ew6K20w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.50.0': - resolution: {integrity: sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==} + '@rollup/rollup-android-arm64@4.51.0': + resolution: {integrity: sha512-Z3ujzDZgsEVSokgIhmOAReh9SGT2qloJJX2Xo1Q3nPU1EhCXrV0PbpR3r7DWRgozqnjrPZQkLe5cgBPIYp70Vg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.50.0': - resolution: {integrity: sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==} + '@rollup/rollup-darwin-arm64@4.51.0': + resolution: {integrity: sha512-T3gskHgArUdR6TCN69li5VELVAZK+iQ4iwMoSMNYixoj+56EC9lTj35rcxhXzIJt40YfBkvDy3GS+t5zh7zM6g==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.50.0': - resolution: {integrity: sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==} + '@rollup/rollup-darwin-x64@4.51.0': + resolution: {integrity: sha512-Hh7n/fh0g5UjH6ATDF56Qdf5bzdLZKIbhp5KftjMYG546Ocjeyg15dxphCpH1FFY2PJ2G6MiOVL4jMq5VLTyrQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.50.0': - resolution: {integrity: sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==} + '@rollup/rollup-freebsd-arm64@4.51.0': + resolution: {integrity: sha512-0EddADb6FBvfqYoxwVom3hAbAvpSVUbZqmR1wmjk0MSZ06hn/UxxGHKRqEQDMkts7XiZjejVB+TLF28cDTU+gA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.50.0': - resolution: {integrity: sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==} + '@rollup/rollup-freebsd-x64@4.51.0': + resolution: {integrity: sha512-MpqaEDLo3JuVPF+wWV4mK7V8akL76WCz8ndfz1aVB7RhvXFO3k7yT7eu8OEuog4VTSyNu5ibvN9n6lgjq/qLEQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.50.0': - resolution: {integrity: sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==} + '@rollup/rollup-linux-arm-gnueabihf@4.51.0': + resolution: {integrity: sha512-WEWAGFNFFpvSWAIT3MYvxTkYHv/cJl9yWKpjhheg7ONfB0hetZt/uwBnM3GZqSHrk5bXCDYTFXg3jQyk/j7eXQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.50.0': - resolution: {integrity: sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==} + '@rollup/rollup-linux-arm-musleabihf@4.51.0': + resolution: {integrity: sha512-9bxtxj8QoAp++LOq5PGDGkEEOpCDk9rOEHUcXadnijedDH8IXrBt6PnBa4Y6NblvGWdoxvXZYghZLaliTCmAng==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.50.0': - resolution: {integrity: sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==} + '@rollup/rollup-linux-arm64-gnu@4.51.0': + resolution: {integrity: sha512-DdqA+fARqIsfqDYkKo2nrWMp0kvu/wPJ2G8lZ4DjYhn+8QhrjVuzmsh7tTkhULwjvHTN59nWVzAixmOi6rqjNA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.50.0': - resolution: {integrity: sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==} + '@rollup/rollup-linux-arm64-musl@4.51.0': + resolution: {integrity: sha512-2XVRNzcUJE1UJua8P4a1GXS5jafFWE+pQ6zhUbZzptOu/70p1F6+0FTi6aGPd6jNtnJqGMjtBCXancC2dhYlWw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.50.0': - resolution: {integrity: sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==} + '@rollup/rollup-linux-loong64-gnu@4.51.0': + resolution: {integrity: sha512-R8QhY0kLIPCAVXWi2yftDSpn7Jtejey/WhMoBESSfwGec5SKdFVupjxFlKoQ7clVRuaDpiQf7wNx3EBZf4Ey6g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.50.0': - resolution: {integrity: sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==} + '@rollup/rollup-linux-ppc64-gnu@4.51.0': + resolution: {integrity: sha512-I498RPfxx9cMv1KTHQ9tg2Ku1utuQm+T5B+Xro+WNu3FzAFSKp4awKfgMoZwjoPgNbaFGINaOM25cQW6WuBhiQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.50.0': - resolution: {integrity: sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==} + '@rollup/rollup-linux-riscv64-gnu@4.51.0': + resolution: {integrity: sha512-o8COudsb8lvtdm9ixg9aKjfX5aeoc2x9KGE7WjtrmQFquoCRZ9jtzGlonujE4WhvXFepTraWzT4RcwyDDeHXjA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.50.0': - resolution: {integrity: sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==} + '@rollup/rollup-linux-riscv64-musl@4.51.0': + resolution: {integrity: sha512-0shJPgSXMdYzOQzpM5BJN2euXY1f8uV8mS6AnrbMcH2KrkNsbpMxWB1wp8UEdiJ1NtyBkCk3U/HfX5mEONBq6w==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.50.0': - resolution: {integrity: sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==} + '@rollup/rollup-linux-s390x-gnu@4.51.0': + resolution: {integrity: sha512-L7pV+ny7865jamSCQwyozBYjFRUKaTsPqDz7ClOtJCDu4paf2uAa0mrcHwSt4XxZP2ogFZS9uuitH3NXdeBEJA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.50.0': - resolution: {integrity: sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==} + '@rollup/rollup-linux-x64-gnu@4.51.0': + resolution: {integrity: sha512-4YHhP+Rv3T3+H3TPbUvWOw5tuSwhrVhkHHZhk4hC9VXeAOKR26/IsUAT4FsB4mT+kfIdxxb1BezQDEg/voPO8A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.50.0': - resolution: {integrity: sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==} + '@rollup/rollup-linux-x64-musl@4.51.0': + resolution: {integrity: sha512-P7U7U03+E5w7WgJtvSseNLOX1UhknVPmEaqgUENFWfNxNBa1OhExT6qYGmyF8gepcxWSaSfJsAV5UwhWrYefdQ==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.50.0': - resolution: {integrity: sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==} + '@rollup/rollup-openharmony-arm64@4.51.0': + resolution: {integrity: sha512-FuD8g3u9W6RPwdO1R45hZFORwa1g9YXEMesAKP/sOi7mDqxjbni8S3zAXJiDcRfGfGBqpRYVuH54Gu3FTuSoEw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.50.0': - resolution: {integrity: sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==} + '@rollup/rollup-win32-arm64-msvc@4.51.0': + resolution: {integrity: sha512-zST+FdMCX3QAYfmZX3dp/Fy8qLUetfE17QN5ZmmFGPrhl86qvRr+E9u2bk7fzkIXsfQR30Z7ZRS7WMryPPn4rQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.50.0': - resolution: {integrity: sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==} + '@rollup/rollup-win32-ia32-msvc@4.51.0': + resolution: {integrity: sha512-U+qhoCVAZmTHCmUKxdQxw1jwAFNFXmOpMME7Npt5GTb1W/7itfgAgNluVOvyeuSeqW+dEQLFuNZF3YZPO8XkMg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.50.0': - resolution: {integrity: sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==} + '@rollup/rollup-win32-x64-msvc@4.51.0': + resolution: {integrity: sha512-z6UpFzMhXSD8NNUfCi2HO+pbpSzSWIIPgb1TZsEZjmZYtk6RUIC63JYjlFBwbBZS3jt3f1q6IGfkj3g+GnBt2Q==} cpu: [x64] os: [win32] @@ -741,8 +737,8 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@24.3.0': - resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/node@24.5.2': + resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} '@types/tar@6.1.13': resolution: {integrity: sha512-IznnlmU5f4WcGTh2ltRu/Ijpmk8wiWXfF0VA4s+HPjHZgvFggk1YaIkbo5krX/zUCzWF8N/l4+W/LNxnvAJ8nw==} @@ -756,148 +752,148 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.42.0': - resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==} + '@typescript-eslint/eslint-plugin@8.44.0': + resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.42.0 + '@typescript-eslint/parser': ^8.44.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.42.0': - resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==} + '@typescript-eslint/parser@8.44.0': + resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.42.0': - resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==} + '@typescript-eslint/project-service@8.44.0': + resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.42.0': - resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==} + '@typescript-eslint/scope-manager@8.44.0': + resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.42.0': - resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==} + '@typescript-eslint/tsconfig-utils@8.44.0': + resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.42.0': - resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==} + '@typescript-eslint/type-utils@8.44.0': + resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.42.0': - resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==} + '@typescript-eslint/types@8.44.0': + resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.42.0': - resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==} + '@typescript-eslint/typescript-estree@8.44.0': + resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.42.0': - resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==} + '@typescript-eslint/utils@8.44.0': + resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.42.0': - resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==} + '@typescript-eslint/visitor-keys@8.44.0': + resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@66.5.0': - resolution: {integrity: sha512-PueE1reSo0iu/yUos+bB4uYym3hZrNMGboXP5VmEjEL1PFVLuJYft1nLJ24p20nPyzWFNamYAxYTPveNW2BbWg==} + '@unocss/astro@66.5.1': + resolution: {integrity: sha512-f17+xfyBZ9prFx4jda3D9ngOigjO8btHsR3uG7WeDQPW6OBdhETfIGdXs8WD99J/3A3LJtk7J0u9p121S+RE8Q==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@66.5.0': - resolution: {integrity: sha512-E1Q5FI2K2Xtiiw2bMx+qMCz+TADSw0pVamks4ZlS3FS4hqFtzxeUkOyTys/e8oXxYB4f1+K6UMUUv+Wzk7YiKw==} + '@unocss/cli@66.5.1': + resolution: {integrity: sha512-b9fTS6b7lqTmeftDkZyjkJiC1LoCKzCB4vuX/VdqoHd0QWh02i6ppsfe6C69fMlzOrju01H7CL0Bpad0JzBr2A==} engines: {node: '>=14'} hasBin: true - '@unocss/config@66.5.0': - resolution: {integrity: sha512-vNPqcfCPIVCuV3AU13d6qO/wSRrvdXeV8myQQUlUBVkvHezFBQ/atVOP77Ov5qUBARyx3zwUCkgQxYOCs60EGw==} + '@unocss/config@66.5.1': + resolution: {integrity: sha512-eL9P+WDX42B6ZkNGGSkMgOyR99xeuJ2Gkj0uarhag5kaRwvwHLn/CJptZ7/oZLLIn0uTH8TQ6MG8ErhK0ymewA==} engines: {node: '>=14'} - '@unocss/core@66.5.0': - resolution: {integrity: sha512-4JStg50nrwd4aJulbPYglqHyuVUHMEX2EltpdxrrxknvSjy4LriKCVUCEmIljsbTFDXm8xcPnPGs6VN/ZmlKlA==} + '@unocss/core@66.5.1': + resolution: {integrity: sha512-BUgN87sUIffco1d+1IuV4a1gKTI1YAFa7CTjxglLUAnopXPPJ+Q77G10zoBoFLzutiIOYLsesa3hzbQvDhosnA==} - '@unocss/extractor-arbitrary-variants@66.5.0': - resolution: {integrity: sha512-Em5jrB4wPJWHRwp4hBRPWbYH/brEdQzYFC5RUSNem5u3kToYSiBid4KwBRTBHmLAdDxcrDXBD1pbDot0PAQe2g==} + '@unocss/extractor-arbitrary-variants@66.5.1': + resolution: {integrity: sha512-SpI2uv6bWyPyY3Tv7CxsFnHBjSTlNRcPCnfvD8gSKbAt7R+RqV0nrdkv7wSW+Woc5TYl8PClLEFSBIvo0c1h9Q==} - '@unocss/inspector@66.5.0': - resolution: {integrity: sha512-eozYCqP0TF1a6BoRTOFnLaIczGvR/b5kwhv1RQdAVAUKw08YZQzASTWWL3xeOonXCvFOSRZ3YIWk9Fsk5myPKg==} + '@unocss/inspector@66.5.1': + resolution: {integrity: sha512-EyHcEM9BPZACJhl9YoTlgc/5i4as9MQ4zwaThAXbXoO9l+IfxdNrJoy3ED8qqkKLO5jgzyhPvy1COBdaoSlxsg==} - '@unocss/postcss@66.5.0': - resolution: {integrity: sha512-jwe06YHGGepllsjDIqLtOgh4jViq0XfP/wU81Efg9lQLlMzWkDIMQw8/LQn2UA3WkjWWiQFXvQKb8SWpXENYnA==} + '@unocss/postcss@66.5.1': + resolution: {integrity: sha512-waJSgjJv14cbbaA3fj0kgDid+e851KfArqx1l5/c2km3g9tiPZhSiY3Z7YslwMyM9CKRC8+qN8AWYB9l4YJrFw==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@66.5.0': - resolution: {integrity: sha512-kMx1dvQmnceMLD/drZop8dbqJcpZpc+uKpprcAXSio3im5IjXkS4A7H0mL0wXmGFy+2fl+rXEgjnOuofQt0bsw==} + '@unocss/preset-attributify@66.5.1': + resolution: {integrity: sha512-lRTwtg9y+f9c6OlRiiPrXrBco2r9SwVxNvzJ27Kc/DhJl3fphuMQuKWsZyiq1qsDVYZeGz4NQzE1FDKqFi4qqQ==} - '@unocss/preset-icons@66.5.0': - resolution: {integrity: sha512-7Qs5k2LWY9052UQVHiQOZ3yJJEwTgqVrJpEdEaZtvBBrObiXwJ03/oZiCSWpGErfp0WbH5gwaghGb2SjbOkiSw==} + '@unocss/preset-icons@66.5.1': + resolution: {integrity: sha512-vxlnPSzTaQZmLKcmVPhCWC6rpgpHCUSD7aFsn7jW3iZ/jTIwc4kgQjnOJZdL443LF5mxBqF15+Cm9hZRnvrWNw==} - '@unocss/preset-mini@66.5.0': - resolution: {integrity: sha512-aGnxlO47D0DMTEYTbwAZ/xICz8/QGUhin9hb4dsVhEorDvL1R0/qqvyjhyyIeTTDqPTxKTtczY7rP8XJqkuBXA==} + '@unocss/preset-mini@66.5.1': + resolution: {integrity: sha512-kBEbA0kEXRtoHQ98o4b6f9sp1u5BanPzi+GMnWdmOWvbLAiLw1vcgXGPTX3sO+gzIMrwu0Famw6xiztWzAFjWQ==} - '@unocss/preset-tagify@66.5.0': - resolution: {integrity: sha512-uH14GBc00c5G0AO7xpO7SAW+QYhdkFGFH5BVAf21qOPipLzQosgmpvfEapq0urgwhR+b25itdGhP5iEazTs2FQ==} + '@unocss/preset-tagify@66.5.1': + resolution: {integrity: sha512-94dVIqfTT3Nfs+g9XnOC/oZuVsiSp8zR36wA/Uucvg3n1zIo2wg6qokghfh7ee8aYNdTqnV7extlnCMJp0TFJQ==} - '@unocss/preset-typography@66.5.0': - resolution: {integrity: sha512-pMpzXa27zoanZQENT7tY/dJJSLZTEpuvItMruizTaizTYflanxhPpozj5fD6hGNfH4zIWiEu34KcHsTluj2R/A==} + '@unocss/preset-typography@66.5.1': + resolution: {integrity: sha512-5gmv/BN3WbwlZJuoC5qyToK7ufbnmXEszj6+3Rgtto4ptpyizBtJybyZe025ypcmExne3MwMpGWMmQPE5MzKgw==} - '@unocss/preset-uno@66.5.0': - resolution: {integrity: sha512-z39CWf3hI2ghmizPLqOefF1udcF8m/IJ50T6OO+sNpzJIkbL8FUaxGsdf0bKIVUl180EKRSV6kpIOST4nMN5Bg==} + '@unocss/preset-uno@66.5.1': + resolution: {integrity: sha512-nUjh1XMChHpVJng5zJhYXXZcXxVDfmh2dxdZS4DgKQ08F8HdvFXmZV+sJrrw6JdeUtpDytelLFJbA8ejmxHYhA==} - '@unocss/preset-web-fonts@66.5.0': - resolution: {integrity: sha512-OZ/sTpksNTNoMEJ55y4v9lkFkqMR+PFAh1yHYFo7PyAtfJHhr/vb7n4TINl1qmLIhV70GZRdMH7kUuDKaSkxaA==} + '@unocss/preset-web-fonts@66.5.1': + resolution: {integrity: sha512-XKrkoN7ncqJxRHDMxAqTCroBcqSPgryDUZIlLhhQ4mHilSp29AdYO1RgG6Ok04w9HNmqzo3d8A8v6Z5yGrGF0w==} - '@unocss/preset-wind3@66.5.0': - resolution: {integrity: sha512-LC3I2yzmWguOOdp4gLwhJG1/Nya6v9+GH2rXRn8LNSZN5yhdz0LwqjftSIsPxbIpoi7+pkGTzOiXHfV/XXbswA==} + '@unocss/preset-wind3@66.5.1': + resolution: {integrity: sha512-L1yMmKpwUWYUnScQq5jMTGvfMy/GBqVj40VS5afyOlzWnBeSkc/y4AxeW/khzGwqE/QaFcLWXiXwQVJIyxN02Q==} - '@unocss/preset-wind4@66.5.0': - resolution: {integrity: sha512-kR7TPqQ8vIwXrrLticKc5CbHLGbXiRnWI7xPFduC3l8RE0VPyShegmY62KRc6tX58Tarhnsrct+Teln7ZlEWKw==} + '@unocss/preset-wind4@66.5.1': + resolution: {integrity: sha512-i6UaZ/hRabu+bvEwUJcc3k/v/tF1sjKukvtQF027zaL3Q5k5QKKhDH989wVHU1k+i+W77+og2/K9+FzXN9+CzQ==} - '@unocss/preset-wind@66.5.0': - resolution: {integrity: sha512-fofrMsguz/iLkNhD/FaBnYUQGsgTe5Nk9jgJBaigDc6FqG2JcT6S7F7boyquFwfoCXN7Dj3SZ4HKfWH7AhisIw==} + '@unocss/preset-wind@66.5.1': + resolution: {integrity: sha512-YucMFPBa3Gwuxdtk+GlqWWcnCwMpzUJWkiB3BNyGk4wEJ0S/brkC+t1/DKpagOFLK9bc134mLxqLNDMWJwVbrg==} - '@unocss/reset@66.5.0': - resolution: {integrity: sha512-Sf27NbbNUg3e4BShQB7EsMCS1GtA6IORBm08SitSpUZZYOZAj+LAypYsOJ4rttAFs/Hp1h0AxtNShesXWK66oA==} + '@unocss/reset@66.5.1': + resolution: {integrity: sha512-NXDjDUn3cjATkxr7bbPdVnKkUHzEq6wSC1IRpnO8ISAXCw6JGPjuk3WJVYxHhnAlszhDxdqxVBjWRZ+zzVmrZw==} - '@unocss/rule-utils@66.5.0': - resolution: {integrity: sha512-+yqGZP8fR/G/gOkjXSXjmgTXFr4zGCQR+rA3Ana4xVoLIttcmPk4qO1IWcUVRQTDDqFmUjW/XwWmChta+rdQsA==} + '@unocss/rule-utils@66.5.1': + resolution: {integrity: sha512-GuBKHrDv3bdq5N1HfOr1tD864vI1EIiovBVJSfg7x9ERA4jJSnyMpGk/hbLuDIXF25EnVdZ1lFhEpJgur9+9sw==} engines: {node: '>=14'} - '@unocss/transformer-attributify-jsx@66.5.0': - resolution: {integrity: sha512-hydRGKT3ca2BmCR/Hud4svp6RXZKlPjJbNQjGIAuBaMtaFEvsOUhtTmEQlE3PIX2RvI8/LBBDKVcsKP/oOtDLw==} + '@unocss/transformer-attributify-jsx@66.5.1': + resolution: {integrity: sha512-uj3W0zSY6LyRFusqeIEj8VUy6WDbIhNMUajIHRulKdSqufFMxiymn6JLGriz7ArFRXBKBBmbN+kk6Fqi9gF6JA==} - '@unocss/transformer-compile-class@66.5.0': - resolution: {integrity: sha512-Mpi9PP/KZGw1DkNCr40LjgfCzzA8jHOcBfMqVOopUaRSLMLEtgBRKb8anJzoR//owrzJl8EyBBTWl30fTAdpCA==} + '@unocss/transformer-compile-class@66.5.1': + resolution: {integrity: sha512-dEfXxWLt3lbMW85CI2yi0S/fQHcSZ32s9FSfGS3KPxFTJ3EY7tYYesT1bdzVrSm+o7J8Os42E5AiFFPjhiTN6Q==} - '@unocss/transformer-directives@66.5.0': - resolution: {integrity: sha512-nZSi+nfaXL6aXoE7Lzw+qz9I9EHnIjkw9oE0Pu/6WmlJ7gjf+HWiyDaB90fi/Zn8M1VaKYXUCepJQ4ptqy4pjA==} + '@unocss/transformer-directives@66.5.1': + resolution: {integrity: sha512-+SErDMglrTI3NTaY8GYh2fCalXNIQDahf7b2AaBCiOf+SPPXeicIy04/1nx8cJ/qpsJ4Z4+ZBybFlATVSkInyQ==} - '@unocss/transformer-variant-group@66.5.0': - resolution: {integrity: sha512-dAhkSVYEtnaj6VC/JgkV8JeimCesF1uXN6k3WSnf7JMc4zlsBEtLf6Tg8JEBfpWNvhDFrnEXr9GXKflCNbcX1A==} + '@unocss/transformer-variant-group@66.5.1': + resolution: {integrity: sha512-ykUIXExfSCrmex0f8OvS4hYZ4M0EbinosW86xLKwc2GGcbWD6CwqyxxpVWgXSzcc2sIELuqF+K3oZnIlQt3Dug==} - '@unocss/vite@66.5.0': - resolution: {integrity: sha512-4ogtBEHMXZhB4dM+qmG4d+2ATGEV94zbdrdQLEeBrzr52QbALuPHvp4JIQ7q7vIT/XNbMGJkPAiW8cgWiMQsMQ==} + '@unocss/vite@66.5.1': + resolution: {integrity: sha512-qcZMh+SZbKYfTjJC2CP6B9Zxg0jlfhJSDVmXdjQBlUzhQR9FllnwlBdae6SCVFBc634Sm+pBJIri5ShPLvwq+Q==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 @@ -908,8 +904,8 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vue: ^3.2.25 - '@vitest/eslint-plugin@1.3.6': - resolution: {integrity: sha512-sa/QAljHbUP+sMdPjK8e/6nS2+QB/bh1aDKEkAKMqsKVzBXqz4LRYfT7UVGIP8LMIrskGTxqAbHuiL+FOYWzHg==} + '@vitest/eslint-plugin@1.3.12': + resolution: {integrity: sha512-cSEyUYGj8j8SLqKrzN7BlfsJ3wG67eRT25819PXuyoSBogLXiyagdKx4MHWHV1zv+EEuyMXsEKkBEKzXpxyBrg==} peerDependencies: eslint: '>= 8.57.0' typescript: '>= 5.0.0' @@ -947,8 +943,8 @@ packages: '@vue/devtools-api@6.6.4': resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} - '@vue/language-core@3.0.6': - resolution: {integrity: sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==} + '@vue/language-core@3.0.7': + resolution: {integrity: sha512-0sqqyqJ0Gn33JH3TdIsZLCZZ8Gr4kwlg8iYOnOrDDkJKSjFurlQY/bEFQx5zs7SX2C/bjMkmPYq/NiyY1fTOkw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1034,12 +1030,16 @@ packages: asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} + axios@1.12.2: + resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + baseline-browser-mapping@2.8.6: + resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} + hasBin: true + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1057,8 +1057,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.4: - resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1084,8 +1084,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001739: - resolution: {integrity: sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1206,8 +1206,8 @@ packages: de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -1263,8 +1263,8 @@ packages: duplexer@0.1.2: resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - electron-to-chromium@1.5.213: - resolution: {integrity: sha512-xr9eRzSLNa4neDO0xVFrkXu3vyIzG4Ay08dApecw42Z1NbmCt+keEpXdvlYGVe0wtvY5dhW0Ay0lY0IOfsCg0Q==} + electron-to-chromium@1.5.222: + resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==} empathic@2.0.0: resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} @@ -1304,8 +1304,8 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} + esbuild@0.25.10: + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} engines: {node: '>=18'} hasBin: true @@ -1406,8 +1406,8 @@ packages: typescript: optional: true - eslint-plugin-jsdoc@52.0.4: - resolution: {integrity: sha512-be5OzGlLExvcK13Il3noU7/v7WmAQGenTmCaBKf1pwVtPOb6X+PGFVnJad0QhMj4KKf45XjE4hbsBxv25q1fTg==} + eslint-plugin-jsdoc@54.7.0: + resolution: {integrity: sha512-u5Na4he2+6kY1rWqxzbQaAwJL3/tDCuT5ElDRc5UJ9stOeQeQ5L1JJ1kRRu7ldYMlOHMCJLsY8Mg/Tu3ExdZiQ==} engines: {node: '>=20.11.0'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -1418,8 +1418,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-n@17.21.3: - resolution: {integrity: sha512-MtxYjDZhMQgsWRm/4xYLL0i2EhusWT7itDxlJ80l1NND2AL2Vi5Mvneqv/ikG9+zpran0VsVRXTEHrpLmUZRNw==} + eslint-plugin-n@17.23.1: + resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -1462,8 +1462,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-unicorn@60.0.0: - resolution: {integrity: sha512-QUzTefvP8stfSXsqKQ+vBQSEsXIlAiCduS/V1Em+FKgL9c21U/IIm20/e3MFy1jyCf14tHAhqC1sX8OTy6VUCg==} + eslint-plugin-unicorn@61.0.2: + resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: eslint: '>=9.29.0' @@ -1520,8 +1520,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.34.0: - resolution: {integrity: sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==} + eslint@9.35.0: + resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1692,8 +1692,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.3.0: - resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} globrex@0.1.2: @@ -1812,6 +1812,10 @@ packages: resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} engines: {node: '>=12.0.0'} + jsdoc-type-pratt-parser@5.1.1: + resolution: {integrity: sha512-DYYlVP1fe4QBMh2xTIs20/YeTz2GYVbWAEZweHSZD+qQ/Cx2d5RShuhhsdk64eTjNq0FeVnteP/qVOgaywSRbg==} + engines: {node: '>=12.0.0'} + jsesc@3.0.2: resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} engines: {node: '>=6'} @@ -1866,8 +1870,8 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} @@ -2024,10 +2028,6 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2087,8 +2087,8 @@ packages: node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} @@ -2279,8 +2279,8 @@ packages: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 - rollup@4.50.0: - resolution: {integrity: sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==} + rollup@4.51.0: + resolution: {integrity: sha512-7cR0XWrdp/UAj2HMY/Y4QQEUjidn3l2AY1wSeZoFjMbD8aOMPoV9wgTFYbrJpPzzvejDEini1h3CiUP8wLzxQA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -2290,8 +2290,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.92.0: - resolution: {integrity: sha512-KDNI0BxgIRDAfJgzNm5wuy+4yOCIZyrUbjSpiU/JItfih+KGXAVefKL53MTml054MmBA3DDKIBMSI/7XLxZJ3A==} + sass@1.92.1: + resolution: {integrity: sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -2319,8 +2319,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - sirv@3.0.1: - resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} sisteransi@1.0.5: @@ -2346,8 +2346,8 @@ packages: spdx-license-ids@3.0.22: resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + strip-indent@4.1.0: + resolution: {integrity: sha512-OA95x+JPmL7kc7zCu+e+TeYxEiaIyndRx0OrBcK2QPPH09oAndr2ALvymxWA+Lx1PYYvFUm4O63pRkdJAaW96w==} engines: {node: '>=12'} strip-json-comments@3.1.1: @@ -2394,8 +2394,8 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: @@ -2439,15 +2439,15 @@ packages: unconfig@7.3.3: resolution: {integrity: sha512-QCkQoOnJF8L107gxfHL0uavn7WD9b3dpBcFX6HtfQYmjw2YzWxGuFQ0N0J6tE9oguCBJn9KOvfqYDCMPHIZrBA==} - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@7.12.0: + resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} undici@6.21.3: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} engines: {node: '>=18.17'} - unimport@5.2.0: - resolution: {integrity: sha512-bTuAMMOOqIAyjV4i4UH7P07pO+EsVxmhOzQ2YJ290J6mkLUdozNhb5I/YoOEheeNADC03ent3Qj07X0fWfUpmw==} + unimport@5.3.0: + resolution: {integrity: sha512-cty7t1DESgm0OPfCy9oyn5u9B5t0tMW6tH6bXTjAGIO3SkJsbg/DXYHjrPrUKqultqbAAoltAfYsuu/FEDocjg==} engines: {node: '>=18.12.0'} unist-util-is@6.0.0: @@ -2462,11 +2462,11 @@ packages: unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - unocss@66.5.0: - resolution: {integrity: sha512-dnrr3xqIm3B0t6OXyIxFYwfyMgdkp6MVRgrJXSEU0cEmea8lFf7ssU2MNx1Zice3JvQOOpe4FMVINtv/TBZCIA==} + unocss@66.5.1: + resolution: {integrity: sha512-e+9nqOy9v6NwPz0DxFdApGPefW22pCfU0Z1ALuodEoSHen03WlfTuEhkDkcKEpdo78tbIi/BbAYK9qT8p1d9sg==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 66.5.0 + '@unocss/webpack': 66.5.1 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -2486,10 +2486,6 @@ packages: '@vueuse/core': optional: true - unplugin-utils@0.2.5: - resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} - engines: {node: '>=18.12.0'} - unplugin-utils@0.3.0: resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} engines: {node: '>=20.19.0'} @@ -2510,8 +2506,8 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - vite@7.1.4: - resolution: {integrity: sha512-X5QFK4SGynAeeIt+A7ZWnApdUyHYm+pzv/8/A57LqSGcI88U6R6ipOs3uCesdc6yl7nl+zNO0t8LmqAdXcQihw==} + vite@7.1.6: + resolution: {integrity: sha512-SRYIB8t/isTwNn8vMB3MR6E+EQZM/WG1aKmmIUCfDXfVvKfc20ZpamngWHKzAmmu9ppsgxsg4b2I7c90JZudIQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -2567,8 +2563,8 @@ packages: peerDependencies: vue: ^3.2.0 - vue-tsc@3.0.6: - resolution: {integrity: sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==} + vue-tsc@3.0.7: + resolution: {integrity: sha512-BSMmW8GGEgHykrv7mRk6zfTdK+tw4MBZY/x6fFa7IkdXK3s/8hQRacPjG9/8YKFDIWGhBocwi6PlkQQ/93OgIQ==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -2632,47 +2628,47 @@ packages: snapshots: - '@antfu/eslint-config@5.2.1(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@antfu/eslint-config@5.3.0(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.35.0(jiti@2.5.1)))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.11.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.35.0(jiti@2.5.1)) '@eslint/markdown': 7.2.0 - '@stylistic/eslint-plugin': 5.3.1(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@vitest/eslint-plugin': 1.3.6(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@stylistic/eslint-plugin': 5.3.1(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@vitest/eslint-plugin': 1.3.12(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) ansis: 4.1.0 cac: 6.7.14 - eslint: 9.34.0(jiti@2.5.1) - eslint-config-flat-gitignore: 2.1.0(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-config-flat-gitignore: 2.1.0(eslint@9.35.0(jiti@2.5.1)) eslint-flat-config-utils: 2.1.1 - eslint-merge-processors: 2.0.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-antfu: 3.1.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-command: 3.3.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-import-lite: 0.3.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-jsdoc: 52.0.4(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-jsonc: 2.20.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-n: 17.21.3(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + eslint-merge-processors: 2.0.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-antfu: 3.1.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-command: 3.3.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-import-lite: 0.3.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint-plugin-jsdoc: 54.7.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-jsonc: 2.20.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-n: 17.23.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 4.15.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-pnpm: 1.1.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-regexp: 2.10.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-toml: 0.12.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-unicorn: 60.0.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1))) - eslint-plugin-yml: 1.18.0(eslint@9.34.0(jiti@2.5.1)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.34.0(jiti@2.5.1)) - globals: 16.3.0 + eslint-plugin-perfectionist: 4.15.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint-plugin-pnpm: 1.1.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-regexp: 2.10.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-toml: 0.12.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-unicorn: 61.0.2(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))) + eslint-plugin-yml: 1.18.0(eslint@9.35.0(jiti@2.5.1)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.35.0(jiti@2.5.1)) + globals: 16.4.0 jsonc-eslint-parser: 2.4.0 local-pkg: 1.1.2 parse-gitignore: 2.0.0 toml-eslint-parser: 0.10.0 - vue-eslint-parser: 10.2.0(eslint@9.34.0(jiti@2.5.1)) + vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.5.1)) yaml-eslint-parser: 1.3.0 optionalDependencies: - eslint-plugin-format: 1.0.1(eslint@9.34.0(jiti@2.5.1)) + eslint-plugin-format: 1.0.1(eslint@9.35.0(jiti@2.5.1)) transitivePeerDependencies: - '@eslint/json' - '@vue/compiler-sfc' @@ -2697,10 +2693,10 @@ snapshots: '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-string-parser@7.27.1': {} @@ -2709,17 +2705,17 @@ snapshots: '@babel/parser@7.27.7': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 - '@babel/parser@7.28.3': + '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.27.7 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/traverse@7.27.7': dependencies: @@ -2727,13 +2723,13 @@ snapshots: '@babel/generator': 7.28.3 '@babel/parser': 7.27.7 '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1 + '@babel/types': 7.28.4 + debug: 4.4.3 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.28.2': + '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -2758,118 +2754,118 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.44.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@es-joy/jsdoccomment@0.52.0': + '@es-joy/jsdoccomment@0.56.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.44.0 comment-parser: 1.4.1 esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.1.0 + jsdoc-type-pratt-parser: 5.1.1 - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.10': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.10': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.10': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.10': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.10': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.10': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.10': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.10': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.10': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.10': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.10': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.10': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.10': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.10': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.10': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.10': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.10': optional: true - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.10': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.10': optional: true - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.10': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.10': optional: true - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.10': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.10': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.10': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.10': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.10': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.34.0(jiti@2.5.1))': + '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.35.0(jiti@2.5.1))': dependencies: escape-string-regexp: 4.0.0 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) ignore: 5.3.2 - '@eslint-community/eslint-utils@4.7.0(eslint@9.34.0(jiti@2.5.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))': dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.3.2(eslint@9.34.0(jiti@2.5.1))': + '@eslint/compat@1.3.2(eslint@9.35.0(jiti@2.5.1))': optionalDependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -2883,7 +2879,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -2894,7 +2890,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.34.0': {} + '@eslint/js@9.35.0': {} '@eslint/markdown@7.2.0': dependencies: @@ -2919,23 +2915,21 @@ snapshots: '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} - '@iconify/tools@4.1.2': + '@iconify/tools@4.1.3': dependencies: '@iconify/types': 2.0.0 '@iconify/utils': 2.3.0 '@types/tar': 6.1.13 - axios: 1.11.0 + axios: 1.12.2 cheerio: 1.0.0 domhandler: 5.0.3 extract-zip: 2.0.1 @@ -2954,7 +2948,7 @@ snapshots: '@antfu/install-pkg': 1.1.0 '@antfu/utils': 8.1.1 '@iconify/types': 2.0.0 - debug: 4.4.1 + debug: 4.4.3 globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.2 @@ -2962,12 +2956,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@iconify/utils@3.0.1': + '@iconify/utils@3.0.2': dependencies: '@antfu/install-pkg': 1.1.0 '@antfu/utils': 9.2.0 '@iconify/types': 2.0.0 - debug: 4.4.1 + debug: 4.4.3 globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.2 @@ -2978,23 +2972,23 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -3084,93 +3078,93 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.29': {} - '@rollup/plugin-typescript@12.1.4(rollup@4.50.0)(tslib@2.8.1)(typescript@5.9.2)': + '@rollup/plugin-typescript@12.1.4(rollup@4.51.0)(tslib@2.8.1)(typescript@5.9.2)': dependencies: - '@rollup/pluginutils': 5.2.0(rollup@4.50.0) + '@rollup/pluginutils': 5.3.0(rollup@4.51.0) resolve: 1.22.10 typescript: 5.9.2 optionalDependencies: - rollup: 4.50.0 + rollup: 4.51.0 tslib: 2.8.1 - '@rollup/pluginutils@5.2.0(rollup@4.50.0)': + '@rollup/pluginutils@5.3.0(rollup@4.51.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.50.0 + rollup: 4.51.0 - '@rollup/rollup-android-arm-eabi@4.50.0': + '@rollup/rollup-android-arm-eabi@4.51.0': optional: true - '@rollup/rollup-android-arm64@4.50.0': + '@rollup/rollup-android-arm64@4.51.0': optional: true - '@rollup/rollup-darwin-arm64@4.50.0': + '@rollup/rollup-darwin-arm64@4.51.0': optional: true - '@rollup/rollup-darwin-x64@4.50.0': + '@rollup/rollup-darwin-x64@4.51.0': optional: true - '@rollup/rollup-freebsd-arm64@4.50.0': + '@rollup/rollup-freebsd-arm64@4.51.0': optional: true - '@rollup/rollup-freebsd-x64@4.50.0': + '@rollup/rollup-freebsd-x64@4.51.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.50.0': + '@rollup/rollup-linux-arm-gnueabihf@4.51.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.50.0': + '@rollup/rollup-linux-arm-musleabihf@4.51.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.50.0': + '@rollup/rollup-linux-arm64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.50.0': + '@rollup/rollup-linux-arm64-musl@4.51.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.50.0': + '@rollup/rollup-linux-loong64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.50.0': + '@rollup/rollup-linux-ppc64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.50.0': + '@rollup/rollup-linux-riscv64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.50.0': + '@rollup/rollup-linux-riscv64-musl@4.51.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.50.0': + '@rollup/rollup-linux-s390x-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.50.0': + '@rollup/rollup-linux-x64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-musl@4.50.0': + '@rollup/rollup-linux-x64-musl@4.51.0': optional: true - '@rollup/rollup-openharmony-arm64@4.50.0': + '@rollup/rollup-openharmony-arm64@4.51.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.50.0': + '@rollup/rollup-win32-arm64-msvc@4.51.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.50.0': + '@rollup/rollup-win32-ia32-msvc@4.51.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.50.0': + '@rollup/rollup-win32-x64-msvc@4.51.0': optional: true '@rushstack/eslint-patch@1.12.0': {} - '@stylistic/eslint-plugin@5.3.1(eslint@9.34.0(jiti@2.5.1))': + '@stylistic/eslint-plugin@5.3.1(eslint@9.35.0(jiti@2.5.1))': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/types': 8.44.0 + eslint: 9.35.0(jiti@2.5.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -3192,13 +3186,13 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@24.3.0': + '@types/node@24.5.2': dependencies: - undici-types: 7.10.0 + undici-types: 7.12.0 '@types/tar@6.1.13': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 minipass: 4.2.8 '@types/unist@3.0.3': {} @@ -3207,18 +3201,18 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 optional: true - '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/type-utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + eslint: 9.35.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -3227,57 +3221,57 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.42.0 - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) - '@typescript-eslint/types': 8.42.0 - debug: 4.4.1 + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + debug: 4.4.3 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.42.0': + '@typescript-eslint/scope-manager@8.44.0': dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/visitor-keys': 8.42.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 - '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.42.0': {} + '@typescript-eslint/types@8.44.0': {} - '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/visitor-keys': 8.42.0 - debug: 4.4.1 + '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -3287,182 +3281,182 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/utils@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.42.0': + '@typescript-eslint/visitor-keys@8.44.0': dependencies: - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.44.0 eslint-visitor-keys: 4.2.1 - '@unocss/astro@66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@unocss/astro@66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - '@unocss/core': 66.5.0 - '@unocss/reset': 66.5.0 - '@unocss/vite': 66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + '@unocss/core': 66.5.1 + '@unocss/reset': 66.5.1 + '@unocss/vite': 66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) - '@unocss/cli@66.5.0': + '@unocss/cli@66.5.1': dependencies: '@jridgewell/remapping': 2.3.5 - '@unocss/config': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/preset-uno': 66.5.0 + '@unocss/config': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/preset-uno': 66.5.1 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 consola: 3.4.2 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 perfect-debounce: 1.0.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin-utils: 0.3.0 - '@unocss/config@66.5.0': + '@unocss/config@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 unconfig: 7.3.3 - '@unocss/core@66.5.0': {} + '@unocss/core@66.5.1': {} - '@unocss/extractor-arbitrary-variants@66.5.0': + '@unocss/extractor-arbitrary-variants@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/inspector@66.5.0': + '@unocss/inspector@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 colorette: 2.0.20 gzip-size: 6.0.0 - sirv: 3.0.1 + sirv: 3.0.2 vue-flow-layout: 0.2.0 - '@unocss/postcss@66.5.0(postcss@8.5.6)': + '@unocss/postcss@66.5.1(postcss@8.5.6)': dependencies: - '@unocss/config': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/config': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 css-tree: 3.1.0 postcss: 8.5.6 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 - '@unocss/preset-attributify@66.5.0': + '@unocss/preset-attributify@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/preset-icons@66.5.0': + '@unocss/preset-icons@66.5.1': dependencies: - '@iconify/utils': 3.0.1 - '@unocss/core': 66.5.0 + '@iconify/utils': 3.0.2 + '@unocss/core': 66.5.1 ofetch: 1.4.1 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@66.5.0': + '@unocss/preset-mini@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/extractor-arbitrary-variants': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/extractor-arbitrary-variants': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-tagify@66.5.0': + '@unocss/preset-tagify@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/preset-typography@66.5.0': + '@unocss/preset-typography@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-uno@66.5.0': + '@unocss/preset-uno@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/preset-wind3': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/preset-wind3': 66.5.1 - '@unocss/preset-web-fonts@66.5.0': + '@unocss/preset-web-fonts@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 ofetch: 1.4.1 - '@unocss/preset-wind3@66.5.0': + '@unocss/preset-wind3@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/preset-mini': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/preset-mini': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-wind4@66.5.0': + '@unocss/preset-wind4@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/extractor-arbitrary-variants': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/extractor-arbitrary-variants': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-wind@66.5.0': + '@unocss/preset-wind@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/preset-wind3': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/preset-wind3': 66.5.1 - '@unocss/reset@66.5.0': {} + '@unocss/reset@66.5.1': {} - '@unocss/rule-utils@66.5.0': + '@unocss/rule-utils@66.5.1': dependencies: - '@unocss/core': 66.5.0 - magic-string: 0.30.18 + '@unocss/core': 66.5.1 + magic-string: 0.30.19 - '@unocss/transformer-attributify-jsx@66.5.0': + '@unocss/transformer-attributify-jsx@66.5.1': dependencies: '@babel/parser': 7.27.7 '@babel/traverse': 7.27.7 - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 transitivePeerDependencies: - supports-color - '@unocss/transformer-compile-class@66.5.0': + '@unocss/transformer-compile-class@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/transformer-directives@66.5.0': + '@unocss/transformer-directives@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 css-tree: 3.1.0 - '@unocss/transformer-variant-group@66.5.0': + '@unocss/transformer-variant-group@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/vite@66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@unocss/vite@66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@jridgewell/remapping': 2.3.5 - '@unocss/config': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/inspector': 66.5.0 + '@unocss/config': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/inspector': 66.5.1 chokidar: 3.6.0 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin-utils: 0.3.0 - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) - '@vitejs/plugin-vue@6.0.1(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.21(typescript@5.9.2) - '@vitest/eslint-plugin@1.3.6(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@vitest/eslint-plugin@1.3.12(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) optionalDependencies: typescript: 5.9.2 transitivePeerDependencies: @@ -3482,7 +3476,7 @@ snapshots: '@vue/compiler-core@3.5.21': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/shared': 3.5.21 entities: 4.5.0 estree-walker: 2.0.2 @@ -3495,13 +3489,13 @@ snapshots: '@vue/compiler-sfc@3.5.21': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/compiler-core': 3.5.21 '@vue/compiler-dom': 3.5.21 '@vue/compiler-ssr': 3.5.21 '@vue/shared': 3.5.21 estree-walker: 2.0.2 - magic-string: 0.30.18 + magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 @@ -3517,7 +3511,7 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/language-core@3.0.6(typescript@5.9.2)': + '@vue/language-core@3.0.7(typescript@5.9.2)': dependencies: '@volar/language-core': 2.4.23 '@vue/compiler-dom': 3.5.21 @@ -3604,7 +3598,7 @@ snapshots: asynckit@0.4.0: {} - axios@1.11.0: + axios@1.12.2: dependencies: follow-redirects: 1.15.11 form-data: 4.0.4 @@ -3614,6 +3608,8 @@ snapshots: balanced-match@1.0.2: {} + baseline-browser-mapping@2.8.6: {} + binary-extensions@2.3.0: {} boolbase@1.0.0: {} @@ -3631,12 +3627,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.4: + browserslist@4.26.2: dependencies: - caniuse-lite: 1.0.30001739 - electron-to-chromium: 1.5.213 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.4) + baseline-browser-mapping: 2.8.6 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.222 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.2) buffer-crc32@0.2.13: {} @@ -3653,7 +3650,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001739: {} + caniuse-lite@1.0.30001743: {} ccount@2.0.1: {} @@ -3741,7 +3738,7 @@ snapshots: core-js-compat@3.45.1: dependencies: - browserslist: 4.25.4 + browserslist: 4.26.2 cross-spawn@7.0.6: dependencies: @@ -3784,7 +3781,7 @@ snapshots: de-indent@1.0.2: {} - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -3835,7 +3832,7 @@ snapshots: duplexer@0.1.2: {} - electron-to-chromium@1.5.213: {} + electron-to-chromium@1.5.222: {} empathic@2.0.0: {} @@ -3872,34 +3869,34 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - esbuild@0.25.9: + esbuild@0.25.10: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 + '@esbuild/aix-ppc64': 0.25.10 + '@esbuild/android-arm': 0.25.10 + '@esbuild/android-arm64': 0.25.10 + '@esbuild/android-x64': 0.25.10 + '@esbuild/darwin-arm64': 0.25.10 + '@esbuild/darwin-x64': 0.25.10 + '@esbuild/freebsd-arm64': 0.25.10 + '@esbuild/freebsd-x64': 0.25.10 + '@esbuild/linux-arm': 0.25.10 + '@esbuild/linux-arm64': 0.25.10 + '@esbuild/linux-ia32': 0.25.10 + '@esbuild/linux-loong64': 0.25.10 + '@esbuild/linux-mips64el': 0.25.10 + '@esbuild/linux-ppc64': 0.25.10 + '@esbuild/linux-riscv64': 0.25.10 + '@esbuild/linux-s390x': 0.25.10 + '@esbuild/linux-x64': 0.25.10 + '@esbuild/netbsd-arm64': 0.25.10 + '@esbuild/netbsd-x64': 0.25.10 + '@esbuild/openbsd-arm64': 0.25.10 + '@esbuild/openbsd-x64': 0.25.10 + '@esbuild/openharmony-arm64': 0.25.10 + '@esbuild/sunos-x64': 0.25.10 + '@esbuild/win32-arm64': 0.25.10 + '@esbuild/win32-ia32': 0.25.10 + '@esbuild/win32-x64': 0.25.10 escalade@3.2.0: {} @@ -3909,91 +3906,91 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.34.0(jiti@2.5.1)): + eslint-compat-utils@0.5.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) semver: 7.7.2 - eslint-compat-utils@0.6.5(eslint@9.34.0(jiti@2.5.1)): + eslint-compat-utils@0.6.5(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) semver: 7.7.2 - eslint-config-flat-gitignore@2.1.0(eslint@9.34.0(jiti@2.5.1)): + eslint-config-flat-gitignore@2.1.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint/compat': 1.3.2(eslint@9.34.0(jiti@2.5.1)) - eslint: 9.34.0(jiti@2.5.1) + '@eslint/compat': 1.3.2(eslint@9.35.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) eslint-flat-config-utils@2.1.1: dependencies: pathe: 2.0.3 - eslint-formatting-reporter@0.0.0(eslint@9.34.0(jiti@2.5.1)): + eslint-formatting-reporter@0.0.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) prettier-linter-helpers: 1.0.0 - eslint-json-compat-utils@0.2.1(eslint@9.34.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.35.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-merge-processors@2.0.0(eslint@9.34.0(jiti@2.5.1)): + eslint-merge-processors@2.0.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-parser-plain@0.1.1: {} - eslint-plugin-antfu@3.1.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-antfu@3.1.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) - eslint-plugin-command@3.3.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-command@3.3.1(eslint@9.35.0(jiti@2.5.1)): dependencies: '@es-joy/jsdoccomment': 0.50.2 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) - eslint-plugin-es-x@7.8.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-es-x@7.8.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.5.1(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.5.1(eslint@9.35.0(jiti@2.5.1)) - eslint-plugin-es@3.0.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-es@3.0.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-format@1.0.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-format@1.0.1(eslint@9.35.0(jiti@2.5.1)): dependencies: '@dprint/formatter': 0.3.0 '@dprint/markdown': 0.17.8 '@dprint/toml': 0.6.4 - eslint: 9.34.0(jiti@2.5.1) - eslint-formatting-reporter: 0.0.0(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-formatting-reporter: 0.0.0(eslint@9.35.0(jiti@2.5.1)) eslint-parser-plain: 0.1.1 prettier: 3.6.2 synckit: 0.9.3 - eslint-plugin-import-lite@0.3.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-import-lite@0.3.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/types': 8.44.0 + eslint: 9.35.0(jiti@2.5.1) optionalDependencies: typescript: 5.9.2 - eslint-plugin-jsdoc@52.0.4(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-jsdoc@54.7.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@es-joy/jsdoccomment': 0.52.0 + '@es-joy/jsdoccomment': 0.56.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) espree: 10.4.0 esquery: 1.6.0 parse-imports-exports: 0.2.4 @@ -4002,12 +3999,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.20.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-jsonc@2.20.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.34.0(jiti@2.5.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.34.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.5.1)) + eslint-json-compat-utils: 0.2.1(eslint@9.35.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0) espree: 10.4.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -4016,12 +4013,12 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.21.3(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-n@17.23.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) enhanced-resolve: 5.18.3 - eslint: 9.34.0(jiti@2.5.1) - eslint-plugin-es-x: 7.8.0(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-plugin-es-x: 7.8.0(eslint@9.35.0(jiti@2.5.1)) get-tsconfig: 4.10.1 globals: 15.15.0 globrex: 0.1.2 @@ -4033,74 +4030,74 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-node@11.1.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-node@11.1.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) - eslint-plugin-es: 3.0.1(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-plugin-es: 3.0.1(eslint@9.35.0(jiti@2.5.1)) eslint-utils: 2.1.0 ignore: 5.3.2 minimatch: 3.1.2 resolve: 1.22.10 semver: 6.3.1 - eslint-plugin-perfectionist@4.15.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-perfectionist@4.15.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-pnpm@1.1.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-pnpm@1.1.1(eslint@9.35.0(jiti@2.5.1)): dependencies: empathic: 2.0.0 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) jsonc-eslint-parser: 2.4.0 pathe: 2.0.3 pnpm-workspace-yaml: 1.1.1 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 yaml-eslint-parser: 1.3.0 - eslint-plugin-regexp@2.10.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-regexp@2.10.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) - eslint-plugin-toml@0.12.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-toml@0.12.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.34.0(jiti@2.5.1)) + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.5.1)) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@60.0.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-unicorn@61.0.2(eslint@9.35.0(jiti@2.5.1)): dependencies: '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint/plugin-kit': 0.3.5 change-case: 5.4.4 ci-info: 4.3.0 clean-regexp: 1.0.0 core-js-compat: 3.45.1 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) esquery: 1.6.0 find-up-simple: 1.0.1 - globals: 16.3.0 + globals: 16.4.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -4108,42 +4105,42 @@ snapshots: regexp-tree: 0.1.27 regjsparser: 0.12.0 semver: 7.7.2 - strip-indent: 4.0.0 + strip-indent: 4.1.0 - eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1))): + eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.2 - vue-eslint-parser: 10.2.0(eslint@9.34.0(jiti@2.5.1)) + vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.5.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-yml@1.18.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-yml@1.18.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.5.1)) natural-compare: 1.4.0 yaml-eslint-parser: 1.3.0 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.34.0(jiti@2.5.1)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.35.0(jiti@2.5.1)): dependencies: '@vue/compiler-sfc': 3.5.21 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-scope@8.4.0: dependencies: @@ -4160,17 +4157,17 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.34.0(jiti@2.5.1): + eslint@9.35.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.34.0 + '@eslint/js': 9.35.0 '@eslint/plugin-kit': 0.3.5 - '@humanfs/node': 0.16.6 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -4178,7 +4175,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -4236,7 +4233,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -4361,7 +4358,7 @@ snapshots: globals@15.15.0: {} - globals@16.3.0: {} + globals@16.4.0: {} globrex@0.1.2: {} @@ -4451,6 +4448,8 @@ snapshots: jsdoc-type-pratt-parser@4.8.0: {} + jsdoc-type-pratt-parser@5.1.1: {} + jsesc@3.0.2: {} jsesc@3.1.0: {} @@ -4500,7 +4499,7 @@ snapshots: longest-streak@3.1.0: {} - magic-string@0.30.18: + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -4808,7 +4807,7 @@ snapshots: micromark@4.0.2: dependencies: '@types/debug': 4.1.12 - debug: 4.4.1 + debug: 4.4.3 decode-named-character-reference: 1.2.0 devlop: 1.1.0 micromark-core-commonmark: 2.0.3 @@ -4838,8 +4837,6 @@ snapshots: dependencies: mime-db: 1.52.0 - min-indent@1.0.1: {} - minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -4887,7 +4884,7 @@ snapshots: node-fetch-native@1.6.7: {} - node-releases@2.0.19: {} + node-releases@2.0.21: {} normalize-path@3.0.0: {} @@ -5056,39 +5053,39 @@ snapshots: reusify@1.1.0: {} - rollup-plugin-dts@6.2.3(rollup@4.50.0)(typescript@5.9.2): + rollup-plugin-dts@6.2.3(rollup@4.51.0)(typescript@5.9.2): dependencies: - magic-string: 0.30.18 - rollup: 4.50.0 + magic-string: 0.30.19 + rollup: 4.51.0 typescript: 5.9.2 optionalDependencies: '@babel/code-frame': 7.27.1 - rollup@4.50.0: + rollup@4.51.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.50.0 - '@rollup/rollup-android-arm64': 4.50.0 - '@rollup/rollup-darwin-arm64': 4.50.0 - '@rollup/rollup-darwin-x64': 4.50.0 - '@rollup/rollup-freebsd-arm64': 4.50.0 - '@rollup/rollup-freebsd-x64': 4.50.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.50.0 - '@rollup/rollup-linux-arm-musleabihf': 4.50.0 - '@rollup/rollup-linux-arm64-gnu': 4.50.0 - '@rollup/rollup-linux-arm64-musl': 4.50.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.50.0 - '@rollup/rollup-linux-ppc64-gnu': 4.50.0 - '@rollup/rollup-linux-riscv64-gnu': 4.50.0 - '@rollup/rollup-linux-riscv64-musl': 4.50.0 - '@rollup/rollup-linux-s390x-gnu': 4.50.0 - '@rollup/rollup-linux-x64-gnu': 4.50.0 - '@rollup/rollup-linux-x64-musl': 4.50.0 - '@rollup/rollup-openharmony-arm64': 4.50.0 - '@rollup/rollup-win32-arm64-msvc': 4.50.0 - '@rollup/rollup-win32-ia32-msvc': 4.50.0 - '@rollup/rollup-win32-x64-msvc': 4.50.0 + '@rollup/rollup-android-arm-eabi': 4.51.0 + '@rollup/rollup-android-arm64': 4.51.0 + '@rollup/rollup-darwin-arm64': 4.51.0 + '@rollup/rollup-darwin-x64': 4.51.0 + '@rollup/rollup-freebsd-arm64': 4.51.0 + '@rollup/rollup-freebsd-x64': 4.51.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.51.0 + '@rollup/rollup-linux-arm-musleabihf': 4.51.0 + '@rollup/rollup-linux-arm64-gnu': 4.51.0 + '@rollup/rollup-linux-arm64-musl': 4.51.0 + '@rollup/rollup-linux-loong64-gnu': 4.51.0 + '@rollup/rollup-linux-ppc64-gnu': 4.51.0 + '@rollup/rollup-linux-riscv64-gnu': 4.51.0 + '@rollup/rollup-linux-riscv64-musl': 4.51.0 + '@rollup/rollup-linux-s390x-gnu': 4.51.0 + '@rollup/rollup-linux-x64-gnu': 4.51.0 + '@rollup/rollup-linux-x64-musl': 4.51.0 + '@rollup/rollup-openharmony-arm64': 4.51.0 + '@rollup/rollup-win32-arm64-msvc': 4.51.0 + '@rollup/rollup-win32-ia32-msvc': 4.51.0 + '@rollup/rollup-win32-x64-msvc': 4.51.0 fsevents: 2.3.3 run-parallel@1.2.0: @@ -5097,7 +5094,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.92.0: + sass@1.92.1: dependencies: chokidar: 4.0.3 immutable: 5.1.3 @@ -5123,7 +5120,7 @@ snapshots: shebang-regex@3.0.0: {} - sirv@3.0.1: + sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.29 mrmime: 2.0.1 @@ -5149,9 +5146,7 @@ snapshots: spdx-license-ids@3.0.22: {} - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 + strip-indent@4.1.0: {} strip-json-comments@3.1.1: {} @@ -5204,7 +5199,7 @@ snapshots: tinyexec@1.0.1: {} - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 @@ -5245,26 +5240,26 @@ snapshots: jiti: 2.5.1 quansync: 0.2.11 - undici-types@7.10.0: {} + undici-types@7.12.0: {} undici@6.21.3: {} - unimport@5.2.0: + unimport@5.3.0: dependencies: acorn: 8.15.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.1.2 - magic-string: 0.30.18 + magic-string: 0.30.19 mlly: 1.8.0 pathe: 2.0.3 picomatch: 4.0.3 pkg-types: 2.3.0 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin: 2.3.10 - unplugin-utils: 0.2.5 + unplugin-utils: 0.3.0 unist-util-is@6.0.0: dependencies: @@ -5285,29 +5280,29 @@ snapshots: unist-util-is: 6.0.0 unist-util-visit-parents: 6.0.1 - unocss@66.5.0(postcss@8.5.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)): - dependencies: - '@unocss/astro': 66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) - '@unocss/cli': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/postcss': 66.5.0(postcss@8.5.6) - '@unocss/preset-attributify': 66.5.0 - '@unocss/preset-icons': 66.5.0 - '@unocss/preset-mini': 66.5.0 - '@unocss/preset-tagify': 66.5.0 - '@unocss/preset-typography': 66.5.0 - '@unocss/preset-uno': 66.5.0 - '@unocss/preset-web-fonts': 66.5.0 - '@unocss/preset-wind': 66.5.0 - '@unocss/preset-wind3': 66.5.0 - '@unocss/preset-wind4': 66.5.0 - '@unocss/transformer-attributify-jsx': 66.5.0 - '@unocss/transformer-compile-class': 66.5.0 - '@unocss/transformer-directives': 66.5.0 - '@unocss/transformer-variant-group': 66.5.0 - '@unocss/vite': 66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + unocss@66.5.1(postcss@8.5.6)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)): + dependencies: + '@unocss/astro': 66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) + '@unocss/cli': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/postcss': 66.5.1(postcss@8.5.6) + '@unocss/preset-attributify': 66.5.1 + '@unocss/preset-icons': 66.5.1 + '@unocss/preset-mini': 66.5.1 + '@unocss/preset-tagify': 66.5.1 + '@unocss/preset-typography': 66.5.1 + '@unocss/preset-uno': 66.5.1 + '@unocss/preset-web-fonts': 66.5.1 + '@unocss/preset-wind': 66.5.1 + '@unocss/preset-wind3': 66.5.1 + '@unocss/preset-wind4': 66.5.1 + '@unocss/transformer-attributify-jsx': 66.5.1 + '@unocss/transformer-compile-class': 66.5.1 + '@unocss/transformer-directives': 66.5.1 + '@unocss/transformer-variant-group': 66.5.1 + '@unocss/vite': 66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - postcss - supports-color @@ -5315,19 +5310,14 @@ snapshots: unplugin-auto-import@20.1.0(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2))): dependencies: local-pkg: 1.1.2 - magic-string: 0.30.18 + magic-string: 0.30.19 picomatch: 4.0.3 - unimport: 5.2.0 + unimport: 5.3.0 unplugin: 2.3.10 unplugin-utils: 0.3.0 optionalDependencies: '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2)) - unplugin-utils@0.2.5: - dependencies: - pathe: 2.0.3 - picomatch: 4.0.3 - unplugin-utils@0.3.0: dependencies: pathe: 2.0.3 @@ -5340,9 +5330,9 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.1.3(browserslist@4.25.4): + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: - browserslist: 4.25.4 + browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -5352,28 +5342,28 @@ snapshots: util-deprecate@1.0.2: {} - vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1): + vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.50.0 - tinyglobby: 0.2.14 + rollup: 4.51.0 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 fsevents: 2.3.3 jiti: 2.5.1 - sass: 1.92.0 + sass: 1.92.1 terser: 5.44.0 yaml: 2.8.1 vscode-uri@3.1.0: {} - vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1)): + vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -5389,10 +5379,10 @@ snapshots: '@vue/devtools-api': 6.6.4 vue: 3.5.21(typescript@5.9.2) - vue-tsc@3.0.6(typescript@5.9.2): + vue-tsc@3.0.7(typescript@5.9.2): dependencies: '@volar/typescript': 2.4.23 - '@vue/language-core': 3.0.6(typescript@5.9.2) + '@vue/language-core': 3.0.7(typescript@5.9.2) typescript: 5.9.2 vue@3.5.21(typescript@5.9.2): diff --git a/package.json b/package.json index 70e4db0..9e9172c 100644 --- a/package.json +++ b/package.json @@ -42,54 +42,54 @@ "knip": "knip" }, "dependencies": { - "@vueuse/core": "^13.8.0", + "@vueuse/core": "^13.9.0", "better-sqlite3": "^12.2.0", - "fs-extra": "^11.3.1", + "fs-extra": "^11.3.2", "fuse.js": "^7.1.0", "jetv-ui": "file:jetv-ui", "linguist-js": "^2.9.2", "pinia": "^3.0.3", - "trash": "^9.0.0", - "vue": "^3.5.20", - "vue-i18n": "^11.1.11" + "trash": "^10.0.0", + "vue": "^3.5.21", + "vue-i18n": "^11.1.12" }, "devDependencies": { - "@antfu/eslint-config": "5.2.1", - "@iconify/tools": "^4.1.2", - "@intlify/unplugin-vue-i18n": "^6.0.8", + "@antfu/eslint-config": "5.3.0", + "@iconify/tools": "^4.1.3", + "@intlify/unplugin-vue-i18n": "^11.0.1", "@rushstack/eslint-patch": "^1.12.0", "@tsconfig/node20": "^20.1.6", "@types/better-sqlite3": "^7.6.13", "@types/fs-extra": "^11.0.4", "@types/jsdom": "^21.1.7", - "@types/node": "^24.3.0", - "@unocss/preset-attributify": "^66.4.2", - "@unocss/preset-mini": "^66.4.2", + "@types/node": "^24.5.2", + "@unocss/preset-attributify": "^66.5.1", + "@unocss/preset-mini": "^66.5.1", "@vitejs/plugin-vue": "^6.0.1", "@vue/tsconfig": "^0.8.1", "concurrently": "^9.2.1", - "electron": "37.4.0", + "electron": "38.1.2", "electron-builder": "^26.0.12", "electron-rebuild": "^3.2.9", - "eslint": "^9.34.0", + "eslint": "^9.35.0", "eslint-plugin-format": "^1.0.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-vue": "^10.4.0", - "jsdom": "^26.1.0", - "knip": "^5.63.0", - "lint-staged": "^16.1.5", - "release-it": "^19.0.4", + "jsdom": "^27.0.0", + "knip": "^5.63.1", + "lint-staged": "^16.1.6", + "release-it": "^19.0.5", "release-it-pnpm": "^4.6.6", - "sass": "^1.91.0", + "sass": "^1.92.1", "simple-git-hooks": "^2.13.1", - "terser": "^5.43.1", + "terser": "^5.44.0", "typescript": "~5.9.2", - "unocss": "^66.4.2", + "unocss": "^66.5.1", "unplugin-auto-import": "^20.1.0", - "vite": "^7.1.3", + "vite": "^7.1.6", "vitest": "^3.2.4", - "vue-tsc": "^3.0.6" + "vue-tsc": "^3.0.7" }, "pnpm": { "overrides": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b9b1c0d..b457635 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,14 +12,14 @@ importers: .: dependencies: '@vueuse/core': - specifier: ^13.8.0 + specifier: ^13.9.0 version: 13.9.0(vue@3.5.21(typescript@5.9.2)) better-sqlite3: specifier: ^12.2.0 version: 12.2.0 fs-extra: - specifier: ^11.3.1 - version: 11.3.1 + specifier: ^11.3.2 + version: 11.3.2 fuse.js: specifier: ^7.1.0 version: 7.1.0 @@ -33,24 +33,24 @@ importers: specifier: ^3.0.3 version: 3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) trash: - specifier: ^9.0.0 - version: 9.0.0 + specifier: ^10.0.0 + version: 10.0.0 vue: - specifier: ^3.5.20 + specifier: ^3.5.21 version: 3.5.21(typescript@5.9.2) vue-i18n: - specifier: ^11.1.11 - version: 11.1.11(vue@3.5.21(typescript@5.9.2)) + specifier: ^11.1.12 + version: 11.1.12(vue@3.5.21(typescript@5.9.2)) devDependencies: '@antfu/eslint-config': - specifier: 5.2.1 - version: 5.2.1(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + specifier: 5.3.0 + version: 5.3.0(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.35.0(jiti@2.5.1)))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) '@iconify/tools': - specifier: ^4.1.2 - version: 4.1.2 + specifier: ^4.1.3 + version: 4.1.3 '@intlify/unplugin-vue-i18n': - specifier: ^6.0.8 - version: 6.0.8(@vue/compiler-dom@3.5.21)(eslint@9.34.0(jiti@2.5.1))(rollup@4.50.0)(typescript@5.9.2)(vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2)) + specifier: ^11.0.1 + version: 11.0.1(@vue/compiler-dom@3.5.21)(eslint@9.35.0(jiti@2.5.1))(rollup@4.51.0)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2)) '@rushstack/eslint-patch': specifier: ^1.12.0 version: 1.12.0 @@ -67,17 +67,17 @@ importers: specifier: ^21.1.7 version: 21.1.7 '@types/node': - specifier: ^24.3.0 - version: 24.3.0 + specifier: ^24.5.2 + version: 24.5.2 '@unocss/preset-attributify': - specifier: ^66.4.2 - version: 66.5.0 + specifier: ^66.5.1 + version: 66.5.1 '@unocss/preset-mini': - specifier: ^66.4.2 - version: 66.5.0 + specifier: ^66.5.1 + version: 66.5.1 '@vitejs/plugin-vue': specifier: ^6.0.1 - version: 6.0.1(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) + version: 6.0.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2)) '@vue/tsconfig': specifier: ^0.8.1 version: 0.8.1(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)) @@ -85,8 +85,8 @@ importers: specifier: ^9.2.1 version: 9.2.1 electron: - specifier: 37.4.0 - version: 37.4.0 + specifier: 38.1.2 + version: 38.1.2 electron-builder: specifier: ^26.0.12 version: 26.0.12(electron-builder-squirrel-windows@26.0.12) @@ -94,70 +94,70 @@ importers: specifier: ^3.2.9 version: 3.2.9 eslint: - specifier: ^9.34.0 - version: 9.34.0(jiti@2.5.1) + specifier: ^9.35.0 + version: 9.35.0(jiti@2.5.1) eslint-plugin-format: specifier: ^1.0.1 - version: 1.0.1(eslint@9.34.0(jiti@2.5.1)) + version: 1.0.1(eslint@9.35.0(jiti@2.5.1)) eslint-plugin-node: specifier: ^11.1.0 - version: 11.1.0(eslint@9.34.0(jiti@2.5.1)) + version: 11.1.0(eslint@9.35.0(jiti@2.5.1)) eslint-plugin-simple-import-sort: specifier: ^12.1.1 - version: 12.1.1(eslint@9.34.0(jiti@2.5.1)) + version: 12.1.1(eslint@9.35.0(jiti@2.5.1)) eslint-plugin-vue: specifier: ^10.4.0 - version: 10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1))) + version: 10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))) jsdom: - specifier: ^26.1.0 - version: 26.1.0 + specifier: ^27.0.0 + version: 27.0.0(postcss@8.5.6) knip: - specifier: ^5.63.0 - version: 5.63.0(@types/node@24.3.0)(typescript@5.9.2) + specifier: ^5.63.1 + version: 5.63.1(@types/node@24.5.2)(typescript@5.9.2) lint-staged: - specifier: ^16.1.5 + specifier: ^16.1.6 version: 16.1.6 release-it: - specifier: ^19.0.4 - version: 19.0.4(@types/node@24.3.0) + specifier: ^19.0.5 + version: 19.0.5(@types/node@24.5.2) release-it-pnpm: specifier: ^4.6.6 - version: 4.6.6(release-it@19.0.4(@types/node@24.3.0)) + version: 4.6.6(release-it@19.0.5(@types/node@24.5.2)) sass: - specifier: ^1.91.0 - version: 1.92.0 + specifier: ^1.92.1 + version: 1.92.1 simple-git-hooks: specifier: ^2.13.1 version: 2.13.1 terser: - specifier: ^5.43.1 + specifier: ^5.44.0 version: 5.44.0 typescript: specifier: ~5.9.2 version: 5.9.2 unocss: - specifier: ^66.4.2 - version: 66.5.0(postcss@8.5.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + specifier: ^66.5.1 + version: 66.5.1(postcss@8.5.6)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) unplugin-auto-import: specifier: ^20.1.0 version: 20.1.0(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2))) vite: - specifier: ^7.1.3 - version: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + specifier: ^7.1.6 + version: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + version: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) vue-tsc: - specifier: ^3.0.6 - version: 3.0.6(typescript@5.9.2) + specifier: ^3.0.7 + version: 3.0.7(typescript@5.9.2) packages: 7zip-bin@5.2.0: resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==} - '@antfu/eslint-config@5.2.1': - resolution: {integrity: sha512-EG/5kwDci1PFKSwAPMEMHDA/VYJFn0TAqwXLdnmE7zuFcaug3EGih7UOWmapMfL59Hqq6jbomaUHN31aVnL8NA==} + '@antfu/eslint-config@5.3.0': + resolution: {integrity: sha512-VzBemSi453rd06lF6gG6VkpP3HH7XKTf+sK6frSrGm7uMFkN57jry1XB074tQRKB3qOjhpsx3kKpWtOv9e5FnQ==} hasBin: true peerDependencies: '@eslint-react/eslint-plugin': ^1.38.4 @@ -220,8 +220,14 @@ packages: '@antfu/utils@9.2.0': resolution: {integrity: sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==} - '@asamuzakjp/css-color@3.2.0': - resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + '@asamuzakjp/css-color@4.0.4': + resolution: {integrity: sha512-cKjSKvWGmAziQWbCouOsFwb14mp1betm8Y7Fn+yglDMUUu3r9DCbJ9iJbeFDenLMqFbIMC0pQP8K+B8LAxX3OQ==} + + '@asamuzakjp/dom-selector@6.5.5': + resolution: {integrity: sha512-kI2MX9pmImjxWT8nxDZY+MuN6r1jJGe7WxizEbsAEPB/zxfW5wYLIiPG1v3UKgEOOP8EsDkp0ZL99oRFAdPM8g==} + + '@asamuzakjp/nwsapi@2.3.9': + resolution: {integrity: sha512-n8GuYSrI9bF7FFZ/SjhwevlHc8xaVlb/7HmHelnc/PZXBD2ZR49NnN9sMMuDdEGPeeRQ5d0hqlSlEpgCX3Wl0Q==} '@babel/code-frame@7.27.1': resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} @@ -244,8 +250,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + '@babel/parser@7.28.4': + resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} engines: {node: '>=6.0.0'} hasBin: true @@ -257,8 +263,8 @@ packages: resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} engines: {node: '>=6.9.0'} - '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + '@babel/types@7.28.4': + resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} engines: {node: '>=6.9.0'} '@clack/core@0.5.0': @@ -303,6 +309,12 @@ packages: peerDependencies: '@csstools/css-tokenizer': ^3.0.4 + '@csstools/css-syntax-patches-for-csstree@1.0.14': + resolution: {integrity: sha512-zSlIxa20WvMojjpCSy8WrNpcZ61RqfTfX3XTaOeVlGJrt/8HF3YbzgFZa01yTbT4GWQLwfTcC3EB8i3XnB647Q==} + engines: {node: '>=18'} + peerDependencies: + postcss: ^8.4 + '@csstools/css-tokenizer@3.0.4': resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} @@ -380,162 +392,162 @@ packages: resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==} engines: {node: '>=18'} - '@es-joy/jsdoccomment@0.52.0': - resolution: {integrity: sha512-BXuN7BII+8AyNtn57euU2Yxo9yA/KUDNzrpXyi3pfqKmBhhysR6ZWOebFh3vyPoqA3/j1SOvGgucElMGwlXing==} + '@es-joy/jsdoccomment@0.56.0': + resolution: {integrity: sha512-c6EW+aA1w2rjqOMjbL93nZlwxp6c1Ln06vTYs5FjRRhmJXK8V/OrSXdT+pUr4aRYgjCgu8/OkiZr0tzeVrRSbw==} engines: {node: '>=20.11.0'} - '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + '@esbuild/aix-ppc64@0.25.10': + resolution: {integrity: sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==} engines: {node: '>=18'} cpu: [ppc64] os: [aix] - '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + '@esbuild/android-arm64@0.25.10': + resolution: {integrity: sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==} engines: {node: '>=18'} cpu: [arm64] os: [android] - '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + '@esbuild/android-arm@0.25.10': + resolution: {integrity: sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==} engines: {node: '>=18'} cpu: [arm] os: [android] - '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + '@esbuild/android-x64@0.25.10': + resolution: {integrity: sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==} engines: {node: '>=18'} cpu: [x64] os: [android] - '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + '@esbuild/darwin-arm64@0.25.10': + resolution: {integrity: sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==} engines: {node: '>=18'} cpu: [arm64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + '@esbuild/darwin-x64@0.25.10': + resolution: {integrity: sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==} engines: {node: '>=18'} cpu: [x64] os: [darwin] - '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + '@esbuild/freebsd-arm64@0.25.10': + resolution: {integrity: sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==} engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + '@esbuild/freebsd-x64@0.25.10': + resolution: {integrity: sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==} engines: {node: '>=18'} cpu: [x64] os: [freebsd] - '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + '@esbuild/linux-arm64@0.25.10': + resolution: {integrity: sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==} engines: {node: '>=18'} cpu: [arm64] os: [linux] - '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + '@esbuild/linux-arm@0.25.10': + resolution: {integrity: sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==} engines: {node: '>=18'} cpu: [arm] os: [linux] - '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + '@esbuild/linux-ia32@0.25.10': + resolution: {integrity: sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==} engines: {node: '>=18'} cpu: [ia32] os: [linux] - '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + '@esbuild/linux-loong64@0.25.10': + resolution: {integrity: sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==} engines: {node: '>=18'} cpu: [loong64] os: [linux] - '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + '@esbuild/linux-mips64el@0.25.10': + resolution: {integrity: sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==} engines: {node: '>=18'} cpu: [mips64el] os: [linux] - '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + '@esbuild/linux-ppc64@0.25.10': + resolution: {integrity: sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==} engines: {node: '>=18'} cpu: [ppc64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + '@esbuild/linux-riscv64@0.25.10': + resolution: {integrity: sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==} engines: {node: '>=18'} cpu: [riscv64] os: [linux] - '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + '@esbuild/linux-s390x@0.25.10': + resolution: {integrity: sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==} engines: {node: '>=18'} cpu: [s390x] os: [linux] - '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + '@esbuild/linux-x64@0.25.10': + resolution: {integrity: sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==} engines: {node: '>=18'} cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + '@esbuild/netbsd-arm64@0.25.10': + resolution: {integrity: sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==} engines: {node: '>=18'} cpu: [arm64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + '@esbuild/netbsd-x64@0.25.10': + resolution: {integrity: sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==} engines: {node: '>=18'} cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + '@esbuild/openbsd-arm64@0.25.10': + resolution: {integrity: sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==} engines: {node: '>=18'} cpu: [arm64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + '@esbuild/openbsd-x64@0.25.10': + resolution: {integrity: sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==} engines: {node: '>=18'} cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + '@esbuild/openharmony-arm64@0.25.10': + resolution: {integrity: sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==} engines: {node: '>=18'} cpu: [arm64] os: [openharmony] - '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + '@esbuild/sunos-x64@0.25.10': + resolution: {integrity: sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==} engines: {node: '>=18'} cpu: [x64] os: [sunos] - '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + '@esbuild/win32-arm64@0.25.10': + resolution: {integrity: sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==} engines: {node: '>=18'} cpu: [arm64] os: [win32] - '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + '@esbuild/win32-ia32@0.25.10': + resolution: {integrity: sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==} engines: {node: '>=18'} cpu: [ia32] os: [win32] - '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + '@esbuild/win32-x64@0.25.10': + resolution: {integrity: sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==} engines: {node: '>=18'} cpu: [x64] os: [win32] @@ -546,8 +558,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -581,8 +593,8 @@ packages: resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.34.0': - resolution: {integrity: sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==} + '@eslint/js@9.35.0': + resolution: {integrity: sha512-30iXE9whjlILfWobBkNerJo+TXYsgVM5ERQwMcMKCHckHflCmf7wXDAHlARoWnh0s1U72WqlbeyE7iAcCzuCPw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/markdown@7.2.0': @@ -604,24 +616,20 @@ packages: resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} engines: {node: '>=18.18.0'} - '@humanfs/node@0.16.6': - resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + '@humanfs/node@0.16.7': + resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} engines: {node: '>=18.18.0'} '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - '@humanwhocodes/retry@0.3.1': - resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} - engines: {node: '>=18.18'} - '@humanwhocodes/retry@0.4.3': resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@iconify/tools@4.1.2': - resolution: {integrity: sha512-q6NzLQYEN9zkDfcyBqD3vItHcZw97w/s++3H3TBxUORr57EfHxj6tOW6fyufDjMq+Vl56WXWaPx1csBPYlI5CA==} + '@iconify/tools@4.1.3': + resolution: {integrity: sha512-guPw9jvkrCCGFUvPr+NgUcQIpQcIll38NQzUzrEMK/1vrDmeJ9jstsp/Dx5LIP2na9BUBLHKOKXA6cERTpnGFw==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -629,11 +637,15 @@ packages: '@iconify/utils@2.3.0': resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} - '@iconify/utils@3.0.1': - resolution: {integrity: sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==} + '@iconify/utils@3.0.2': + resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} + + '@inquirer/ansi@1.0.0': + resolution: {integrity: sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==} + engines: {node: '>=18'} - '@inquirer/checkbox@4.2.2': - resolution: {integrity: sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==} + '@inquirer/checkbox@4.2.4': + resolution: {integrity: sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -641,8 +653,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.16': - resolution: {integrity: sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==} + '@inquirer/confirm@5.1.18': + resolution: {integrity: sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -650,8 +662,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.2.0': - resolution: {integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==} + '@inquirer/core@10.2.2': + resolution: {integrity: sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -659,8 +671,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.18': - resolution: {integrity: sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==} + '@inquirer/editor@4.2.20': + resolution: {integrity: sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -668,8 +680,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.18': - resolution: {integrity: sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==} + '@inquirer/expand@4.0.20': + resolution: {integrity: sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -677,8 +689,8 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.1': - resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} + '@inquirer/external-editor@1.0.2': + resolution: {integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -690,8 +702,8 @@ packages: resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} engines: {node: '>=18'} - '@inquirer/input@4.2.2': - resolution: {integrity: sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==} + '@inquirer/input@4.2.4': + resolution: {integrity: sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -699,8 +711,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.18': - resolution: {integrity: sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==} + '@inquirer/number@3.0.20': + resolution: {integrity: sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -708,8 +720,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.18': - resolution: {integrity: sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==} + '@inquirer/password@4.0.20': + resolution: {integrity: sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -717,8 +729,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.4': - resolution: {integrity: sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==} + '@inquirer/prompts@7.8.6': + resolution: {integrity: sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -726,8 +738,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.6': - resolution: {integrity: sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==} + '@inquirer/rawlist@4.1.8': + resolution: {integrity: sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -735,8 +747,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.1.1': - resolution: {integrity: sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==} + '@inquirer/search@3.1.3': + resolution: {integrity: sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -744,8 +756,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.3.2': - resolution: {integrity: sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==} + '@inquirer/select@4.3.4': + resolution: {integrity: sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -762,9 +774,9 @@ packages: '@types/node': optional: true - '@intlify/bundle-utils@10.0.1': - resolution: {integrity: sha512-WkaXfSevtpgtUR4t8K2M6lbR7g03mtOxFeh+vXp5KExvPqS12ppaRj1QxzwRuRI5VUto54A22BjKoBMLyHILWQ==} - engines: {node: '>= 18'} + '@intlify/bundle-utils@11.0.1': + resolution: {integrity: sha512-5l10G5wE2cQRsZMS9y0oSFMOLW5IG/SgbkIUltqnwF1EMRrRbUAHFiPabXdGTHeexCsMTcxj/1w9i0rzjJU9IQ==} + engines: {node: '>= 20'} peerDependencies: petite-vue-i18n: '*' vue-i18n: '*' @@ -774,21 +786,21 @@ packages: vue-i18n: optional: true - '@intlify/core-base@11.1.11': - resolution: {integrity: sha512-1Z0N8jTfkcD2Luq9HNZt+GmjpFe4/4PpZF3AOzoO1u5PTtSuXZcfhwBatywbfE2ieB/B5QHIoOFmCXY2jqVKEQ==} + '@intlify/core-base@11.1.12': + resolution: {integrity: sha512-whh0trqRsSqVLNEUCwU59pyJZYpU8AmSWl8M3Jz2Mv5ESPP6kFh4juas2NpZ1iCvy7GlNRffUD1xr84gceimjg==} engines: {node: '>= 16'} - '@intlify/message-compiler@11.1.11': - resolution: {integrity: sha512-7PC6neomoc/z7a8JRjPBbu0T2TzR2MQuY5kn2e049MP7+o32Ve7O8husylkA7K9fQRe4iNXZWTPnDJ6vZdtS1Q==} + '@intlify/message-compiler@11.1.12': + resolution: {integrity: sha512-Fv9iQSJoJaXl4ZGkOCN1LDM3trzze0AS2zRz2EHLiwenwL6t0Ki9KySYlyr27yVOj5aVz0e55JePO+kELIvfdQ==} engines: {node: '>= 16'} - '@intlify/shared@11.1.11': - resolution: {integrity: sha512-RIBFTIqxZSsxUqlcyoR7iiC632bq7kkOwYvZlvcVObHfrF4NhuKc4FKvu8iPCrEO+e3XsY7/UVpfgzg+M7ETzA==} + '@intlify/shared@11.1.12': + resolution: {integrity: sha512-Om86EjuQtA69hdNj3GQec9ZC0L0vPSAnXzB3gP/gyJ7+mA7t06d9aOAiqMZ+xEOsumGP4eEBlfl8zF2LOTzf2A==} engines: {node: '>= 16'} - '@intlify/unplugin-vue-i18n@6.0.8': - resolution: {integrity: sha512-Vvm3KhjE6TIBVUQAk37rBiaYy2M5OcWH0ZcI1XKEsOTeN1o0bErk+zeuXmcrcMc/73YggfI8RoxOUz9EB/69JQ==} - engines: {node: '>= 18'} + '@intlify/unplugin-vue-i18n@11.0.1': + resolution: {integrity: sha512-nH5NJdNjy/lO6Ne8LDtZzv4SbpVsMhPE+LbvBDmMeIeJDiino8sOJN2QB3MXzTliYTnqe3aB9Fw5+LJ/XVaXCg==} + engines: {node: '>= 20'} peerDependencies: petite-vue-i18n: '*' vue: ^3.2.25 @@ -845,8 +857,8 @@ packages: '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} - '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} '@malept/cross-spawn-promise@2.0.0': resolution: {integrity: sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==} @@ -856,8 +868,8 @@ packages: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} - '@napi-rs/wasm-runtime@1.0.3': - resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==} + '@napi-rs/wasm-runtime@1.0.5': + resolution: {integrity: sha512-TBr9Cf9onSAS2LQ2+QHx6XcC6h9+RIzJgbqG3++9TUZSH204AwEy5jg3BTQ0VATsyoGj4ee49tN/y6rvaOOtcg==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -883,156 +895,156 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This functionality has been moved to @npmcli/fs - '@octokit/auth-token@5.1.2': - resolution: {integrity: sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==} - engines: {node: '>= 18'} - - '@octokit/core@6.1.6': - resolution: {integrity: sha512-kIU8SLQkYWGp3pVKiYzA5OSaNF5EE03P/R8zEmmrG6XwOg5oBjXyQVVIauQ0dgau4zYhpZEhJrvIYt6oM+zZZA==} - engines: {node: '>= 18'} + '@octokit/auth-token@6.0.0': + resolution: {integrity: sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==} + engines: {node: '>= 20'} - '@octokit/endpoint@10.1.4': - resolution: {integrity: sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==} - engines: {node: '>= 18'} + '@octokit/core@7.0.4': + resolution: {integrity: sha512-jOT8V1Ba5BdC79sKrRWDdMT5l1R+XNHTPR6CPWzUP2EcfAcvIHZWF0eAbmRcpOOP5gVIwnqNg0C4nvh6Abc3OA==} + engines: {node: '>= 20'} - '@octokit/graphql@8.2.2': - resolution: {integrity: sha512-Yi8hcoqsrXGdt0yObxbebHXFOiUA+2v3n53epuOg1QUgOB6c4XzvisBNVXJSl8RYA5KrDuSL2yq9Qmqe5N0ryA==} - engines: {node: '>= 18'} + '@octokit/endpoint@11.0.0': + resolution: {integrity: sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==} + engines: {node: '>= 20'} - '@octokit/openapi-types@24.2.0': - resolution: {integrity: sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==} + '@octokit/graphql@9.0.1': + resolution: {integrity: sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==} + engines: {node: '>= 20'} '@octokit/openapi-types@25.1.0': resolution: {integrity: sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==} - '@octokit/plugin-paginate-rest@11.6.0': - resolution: {integrity: sha512-n5KPteiF7pWKgBIBJSk8qzoZWcUkza2O6A0za97pMGVrGfPdltxrfmfF5GucHYvHGZD8BdaZmmHGz5cX/3gdpw==} - engines: {node: '>= 18'} + '@octokit/openapi-types@26.0.0': + resolution: {integrity: sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==} + + '@octokit/plugin-paginate-rest@13.1.1': + resolution: {integrity: sha512-q9iQGlZlxAVNRN2jDNskJW/Cafy7/XE52wjZ5TTvyhyOD904Cvx//DNyoO3J/MXJ0ve3rPoNWKEg5iZrisQSuw==} + engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-request-log@5.3.1': - resolution: {integrity: sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==} - engines: {node: '>= 18'} + '@octokit/plugin-request-log@6.0.0': + resolution: {integrity: sha512-UkOzeEN3W91/eBq9sPZNQ7sUBvYCqYbrrD8gTbBuGtHEuycE4/awMXcYvx6sVYo7LypPhmQwwpUe4Yyu4QZN5Q==} + engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' - '@octokit/plugin-rest-endpoint-methods@13.5.0': - resolution: {integrity: sha512-9Pas60Iv9ejO3WlAX3maE1+38c5nqbJXV5GrncEfkndIpZrJ/WPMRd2xYDcPPEt5yzpxcjw9fWNoPhsSGzqKqw==} - engines: {node: '>= 18'} + '@octokit/plugin-rest-endpoint-methods@16.1.0': + resolution: {integrity: sha512-nCsyiKoGRnhH5LkH8hJEZb9swpqOcsW+VXv1QoyUNQXJeVODG4+xM6UICEqyqe9XFr6LkL8BIiFCPev8zMDXPw==} + engines: {node: '>= 20'} peerDependencies: '@octokit/core': '>=6' - '@octokit/request-error@6.1.8': - resolution: {integrity: sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==} - engines: {node: '>= 18'} - - '@octokit/request@9.2.4': - resolution: {integrity: sha512-q8ybdytBmxa6KogWlNa818r0k1wlqzNC+yNkcQDECHvQo8Vmstrg18JwqJHdJdUiHD2sjlwBgSm9kHkOKe2iyA==} - engines: {node: '>= 18'} + '@octokit/request-error@7.0.0': + resolution: {integrity: sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==} + engines: {node: '>= 20'} - '@octokit/rest@21.1.1': - resolution: {integrity: sha512-sTQV7va0IUVZcntzy1q3QqPm/r8rWtDCqpRAmb8eXXnKkjoQEtFe3Nt5GTVsHft+R6jJoHeSiVLcgcvhtue/rg==} - engines: {node: '>= 18'} + '@octokit/request@10.0.3': + resolution: {integrity: sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==} + engines: {node: '>= 20'} - '@octokit/types@13.10.0': - resolution: {integrity: sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==} + '@octokit/rest@22.0.0': + resolution: {integrity: sha512-z6tmTu9BTnw51jYGulxrlernpsQYXpui1RK21vmXn8yF5bp6iX16yfTtJYGK5Mh1qDkvDOmp2n8sRMcQmR8jiA==} + engines: {node: '>= 20'} '@octokit/types@14.1.0': resolution: {integrity: sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==} - '@oxc-resolver/binding-android-arm-eabi@11.7.1': - resolution: {integrity: sha512-K0gF1mD6CYMAuX0dMWe6XW1Js00xCOBh/+ZAAJReQMa4+jmAk3bIeitsc8VnDthDbzOOKp3riizP3o/tBvNpgw==} + '@octokit/types@15.0.0': + resolution: {integrity: sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==} + + '@oxc-resolver/binding-android-arm-eabi@11.8.2': + resolution: {integrity: sha512-7hykBf8S24IRbO4ueulT9SfYQjTeSOOimKc/CQrWXIWQy1WTePXSNcPq2RkVHO7DdLM8p8X4DVPYy+850Bo93g==} cpu: [arm] os: [android] - '@oxc-resolver/binding-android-arm64@11.7.1': - resolution: {integrity: sha512-O1XEX/KxKX7baPgYHahP+3vT+9f4gasPA0px4DYrjy1mN9wWQqJPLLo/PO3cBw3qI3qRaaiAGT3eJSs8rKu8mA==} + '@oxc-resolver/binding-android-arm64@11.8.2': + resolution: {integrity: sha512-y41bxENMjlFuLSLCPWd4A+1PR7T5rU9+e7+4alje3sHgrpRmS3hIU+b1Cvck4qmcUgd0I98NmYxRM65kXGEObQ==} cpu: [arm64] os: [android] - '@oxc-resolver/binding-darwin-arm64@11.7.1': - resolution: {integrity: sha512-OSCJlXUTvGoal5dTMkdacmXL2R3YQ+97R7NMSdjkUVnh3TxvGBhoF9OebqY3PR7w2gQaY5LX+Ju+dYeHGBCGgw==} + '@oxc-resolver/binding-darwin-arm64@11.8.2': + resolution: {integrity: sha512-P/Zobk9OwQAblAMeiVyOtuX2LjGN8oq5HonvN3mp9S6Kx1GKxREbf5qW+g24Rvhf5WS7et+EmopUGRHSdAItGQ==} cpu: [arm64] os: [darwin] - '@oxc-resolver/binding-darwin-x64@11.7.1': - resolution: {integrity: sha512-d0jKwK4r4Yw19xSijyt7wHZT77xh3v4GnJSbvEiPavLms27zqc//BqYJUSp9XgOTOkyFQ+oHno47JNiLTnsSnQ==} + '@oxc-resolver/binding-darwin-x64@11.8.2': + resolution: {integrity: sha512-EMAQoO9uTiz2H0z71bVzTL77eoBAlN5+KD7HUc9ayYJ5TprU+Oeaml4y4fmsFyspSPN/vGJzEvOWl5GR0adwtw==} cpu: [x64] os: [darwin] - '@oxc-resolver/binding-freebsd-x64@11.7.1': - resolution: {integrity: sha512-oNch5OpAnxFjukDZ5GJkuEDEPPYDirm10q2cJcbK0SETVM0rY+ou1cLqJAJC9R/dULbqGKC9fv2kuyuw9M6Fig==} + '@oxc-resolver/binding-freebsd-x64@11.8.2': + resolution: {integrity: sha512-Fzeupf4tH9woMm6O/pirEtuzO5docwTrs747Nxqh33OSkz7GbrevyDpx1Q1pc2l3JA2BlDX4zm18tW5ys65bjA==} cpu: [x64] os: [freebsd] - '@oxc-resolver/binding-linux-arm-gnueabihf@11.7.1': - resolution: {integrity: sha512-ldUPUfV/0L56fTSfzUo86Bmgov8SAfau8Q4Y3WiAiQi6WHLA239abTZZViLZuXvrC+4RQF/kD0ySqKfBjW/X9g==} + '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.2': + resolution: {integrity: sha512-r9IiPTwc5STC2JahU/rfkbO2BE14MqAVmFbtF7uW7KFaZX/lUnFltkQ5jpwAgKqcef5aIZTJI95qJ03XZw08Rg==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm-musleabihf@11.7.1': - resolution: {integrity: sha512-M+ORXlPV0dXCHleqOYLjKHwxn9kDmcJqnJ7zGZ07vggaxOCnpM6zqyGS92YTTyeYre2AqO3Xrx1D4rnUeozI8g==} + '@oxc-resolver/binding-linux-arm-musleabihf@11.8.2': + resolution: {integrity: sha512-Q5D8FbxOyQYcWn5s9yv+DyFvcMSUXE87hmL9WG6ICdNZiMUA8DmIbzK1xEnOtDjorEFU44bwH3I9SnqL1kyOsg==} cpu: [arm] os: [linux] - '@oxc-resolver/binding-linux-arm64-gnu@11.7.1': - resolution: {integrity: sha512-ukHZp9Vm07AlxqdOLFf8Bj4inzpt+ISbbODvwwHxX32GfcMLWYYJGAYWc13IGhWoElvWnI7D1M9ifDGyTNRGzg==} + '@oxc-resolver/binding-linux-arm64-gnu@11.8.2': + resolution: {integrity: sha512-8g2Y72gavZ8fesZD22cKo0Z8g8epynwShu7M+wpAoOq432IGUyUxPUKB2/nvyogPToaAlb1OsRiX/za8W4h8Aw==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-arm64-musl@11.7.1': - resolution: {integrity: sha512-atkZ1OIt6t90kjQz1iqq6cN3OpfPG5zUJlO64Vd1ieYeqHRkOFeRgnWEobTePUHi34NlYr7mNZqIaAg7gjPUFg==} + '@oxc-resolver/binding-linux-arm64-musl@11.8.2': + resolution: {integrity: sha512-N3BPWnIDRmHn/xPDZGKnzFwWxwH1hvs3aVnw4jvMAYarPNDZfbAY+fjHSIwkypV+ozMoJ5lK5PzRO5BOtEx2oQ==} cpu: [arm64] os: [linux] - '@oxc-resolver/binding-linux-ppc64-gnu@11.7.1': - resolution: {integrity: sha512-HGgV4z3JwVF4Qvg2a1GhDnqn8mKLihy5Gp4rMfqNIAlERPSyIxo8oPQIL1XQKLYyyrkEEO99uwM+4cQGwhtbpQ==} + '@oxc-resolver/binding-linux-ppc64-gnu@11.8.2': + resolution: {integrity: sha512-AXW2AyjENmzNuZD3Z2TO1QWoZzfULWR1otDzw/+MAVMRXBy3W50XxDqNAflRiLB4o0aI0oDTwMfeyuhVv9Ur8Q==} cpu: [ppc64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-gnu@11.7.1': - resolution: {integrity: sha512-+vCO7iOR1s6VGefV02R2a702IASNWhSNm/MrR8RcWjKChmU0G+d1iC0oToUrGC4ovAEfstx2/O8EkROnfcLgrA==} + '@oxc-resolver/binding-linux-riscv64-gnu@11.8.2': + resolution: {integrity: sha512-oX+qxJdqOfrJUkGWmcNpu7wiFs6E7KH6hqUORkMAgl4yW+LZxPTz5P4DHvTqTFMywbs9hXVu2KQrdD8ROrdhMQ==} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-riscv64-musl@11.7.1': - resolution: {integrity: sha512-3folNmS5gYNFy/9HYzLcdeThqAGvDJU0gQKrhHn7RPWQa58yZ0ZPpBMk6KRSSO61+wkchkL+0sdcLsoe5wZW8g==} + '@oxc-resolver/binding-linux-riscv64-musl@11.8.2': + resolution: {integrity: sha512-TG7LpxXjqlpD1aWnAXw6vMgY74KNV92exPixzEj4AKm4LdGsfnSWYTTJcTQ7deFMYxvBGrZ+qEy8DjGx+5w9GQ==} cpu: [riscv64] os: [linux] - '@oxc-resolver/binding-linux-s390x-gnu@11.7.1': - resolution: {integrity: sha512-Ceo4z6g8vqPUKADROFL0b7MoyXlUdOBYCxTDu/fhd/5I3Ydk2S6bxkjJdzpBdlu+h2Z+eS9lTHFvkwkaORMPzw==} + '@oxc-resolver/binding-linux-s390x-gnu@11.8.2': + resolution: {integrity: sha512-1PpXMq0KMD3CQPn3v/UqU4NM2JFjry+mLIH1d3iNVL2vlwRt9lxRfpXTiyiFJrtroUIyeKhw0QbHbF2UfnZVKQ==} cpu: [s390x] os: [linux] - '@oxc-resolver/binding-linux-x64-gnu@11.7.1': - resolution: {integrity: sha512-QyFW5e43imQLxiBpCImhOiP4hY9coWGjroEm8elDqGNNaA7vXooaMQS2N3avMQawSaKhsb/3RemxaZ852XG38Q==} + '@oxc-resolver/binding-linux-x64-gnu@11.8.2': + resolution: {integrity: sha512-V1iYhEDbjQzj+o7JgTYVllRgNZ56Tjw0rPBWw03KJQ8Nphy00Vf7AySf22vV0K/93V1lPCgOSbI5/iunRnIfAw==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-linux-x64-musl@11.7.1': - resolution: {integrity: sha512-JhuCqCqktqQyQVc37V+eDiP3buCIuyCLpb92tUEyAP8nY3dy2b/ojMrH1ZNnJUlfY/67AqoZPL6nQGAB2WA3Sg==} + '@oxc-resolver/binding-linux-x64-musl@11.8.2': + resolution: {integrity: sha512-2hYNXEZSUM7qLEk4uuY3GmMqLU+860v+8PzbloVvRRjTWtHsLZyB5w+5p2gel38eaTcSYfZ2zvp3xcSpKDAbaw==} cpu: [x64] os: [linux] - '@oxc-resolver/binding-wasm32-wasi@11.7.1': - resolution: {integrity: sha512-sMXm5Z2rfBwkCUespZBJCPhCVbgh/fpYQ23BQs0PmnvWoXrGQHWvnvg1p/GYmleN+nwe8strBjfutirZFiC5lA==} + '@oxc-resolver/binding-wasm32-wasi@11.8.2': + resolution: {integrity: sha512-TjFqB+1siSqhd+S64Hf2qbxqWqtFIlld4DDEVotxOjj5//rX/6uwAL1HWnUHSNIni+wpcyQoXPhO3fBgppCvuA==} engines: {node: '>=14.0.0'} cpu: [wasm32] - '@oxc-resolver/binding-win32-arm64-msvc@11.7.1': - resolution: {integrity: sha512-C/Sam1RJi/h/F618IB/H3pCOhTf+2ArdTqrqQolN8ARV35iWTSezgy6qPjQGj7aWn/9M5vgtCInfS2SwnkBJ4w==} + '@oxc-resolver/binding-win32-arm64-msvc@11.8.2': + resolution: {integrity: sha512-fs0X6RcAC/khWbXIhPaYQjFHkrFVUtC2IOw1QEx2unRoe6M11tlYbY9NHr3VFBC3nwVpodX+b14A7jGMkAQK8A==} cpu: [arm64] os: [win32] - '@oxc-resolver/binding-win32-ia32-msvc@11.7.1': - resolution: {integrity: sha512-iNRgJxOkfmxeq9DiF9S4jtw3vq5kkAm6dsP4RPxoAO/WsShPPHOSlTpOqyB8bSj5Bt9DBLRoI43XcNfDKgM+jA==} + '@oxc-resolver/binding-win32-ia32-msvc@11.8.2': + resolution: {integrity: sha512-7oEl1ThswVePprRQFc3tzW9IZgVi5xaus/KP3k56eKi2tYpAM0hBvehD8WBsmpgBEb7pe2pI08h9OZveAddt3Q==} cpu: [ia32] os: [win32] - '@oxc-resolver/binding-win32-x64-msvc@11.7.1': - resolution: {integrity: sha512-MXS81efp8pu2MkjEPu+nDhgoyHwdWUygXYSzIh3gV2A8/qF0PVEzH+EpmKR7Pl8dEZIaG1YXA+CO6bmNZT8oSw==} + '@oxc-resolver/binding-win32-x64-msvc@11.8.2': + resolution: {integrity: sha512-MngRjE/gpQpg3QcnWRqxX5Nbr/vZJSG7oxhXeHUeOhdFgg+0xCuGpDtwqFmGGVKnd6FQg0gKVo1MqDAERLkEPA==} cpu: [x64] os: [win32] @@ -1118,8 +1130,8 @@ packages: resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} engines: {node: '>= 10.0.0'} - '@phun-ky/typeof@1.2.8': - resolution: {integrity: sha512-7J6ca1tK0duM2BgVB+CuFMh3idlIVASOP2QvOCbNWDc6JnvjtKa9nufPoJQQ4xrwBonwgT1TIhRRcEtzdVgWsA==} + '@phun-ky/typeof@2.0.3': + resolution: {integrity: sha512-oeQJs1aa8Ghke8JIK9yuq/+KjMiaYeDZ38jx7MhkXncXlUKjqQ3wEm2X3qCKyjo+ZZofZj+WsEEiqkTtRuE2xQ==} engines: {node: ^20.9.0 || >=22.0.0, npm: '>=10.8.2'} '@pkgjs/parseargs@0.11.0': @@ -1143,8 +1155,8 @@ packages: '@rolldown/pluginutils@1.0.0-beta.29': resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} - '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + '@rollup/pluginutils@5.3.0': + resolution: {integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -1152,108 +1164,108 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.50.0': - resolution: {integrity: sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==} + '@rollup/rollup-android-arm-eabi@4.51.0': + resolution: {integrity: sha512-VyfldO8T/C5vAXBGIobrAnUE+VJNVLw5z9h4NgSDq/AJZWt/fXqdW+0PJbk+M74xz7yMDRiHtlsuDV7ew6K20w==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.50.0': - resolution: {integrity: sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==} + '@rollup/rollup-android-arm64@4.51.0': + resolution: {integrity: sha512-Z3ujzDZgsEVSokgIhmOAReh9SGT2qloJJX2Xo1Q3nPU1EhCXrV0PbpR3r7DWRgozqnjrPZQkLe5cgBPIYp70Vg==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.50.0': - resolution: {integrity: sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==} + '@rollup/rollup-darwin-arm64@4.51.0': + resolution: {integrity: sha512-T3gskHgArUdR6TCN69li5VELVAZK+iQ4iwMoSMNYixoj+56EC9lTj35rcxhXzIJt40YfBkvDy3GS+t5zh7zM6g==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.50.0': - resolution: {integrity: sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==} + '@rollup/rollup-darwin-x64@4.51.0': + resolution: {integrity: sha512-Hh7n/fh0g5UjH6ATDF56Qdf5bzdLZKIbhp5KftjMYG546Ocjeyg15dxphCpH1FFY2PJ2G6MiOVL4jMq5VLTyrQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.50.0': - resolution: {integrity: sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==} + '@rollup/rollup-freebsd-arm64@4.51.0': + resolution: {integrity: sha512-0EddADb6FBvfqYoxwVom3hAbAvpSVUbZqmR1wmjk0MSZ06hn/UxxGHKRqEQDMkts7XiZjejVB+TLF28cDTU+gA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.50.0': - resolution: {integrity: sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==} + '@rollup/rollup-freebsd-x64@4.51.0': + resolution: {integrity: sha512-MpqaEDLo3JuVPF+wWV4mK7V8akL76WCz8ndfz1aVB7RhvXFO3k7yT7eu8OEuog4VTSyNu5ibvN9n6lgjq/qLEQ==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.50.0': - resolution: {integrity: sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==} + '@rollup/rollup-linux-arm-gnueabihf@4.51.0': + resolution: {integrity: sha512-WEWAGFNFFpvSWAIT3MYvxTkYHv/cJl9yWKpjhheg7ONfB0hetZt/uwBnM3GZqSHrk5bXCDYTFXg3jQyk/j7eXQ==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.50.0': - resolution: {integrity: sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==} + '@rollup/rollup-linux-arm-musleabihf@4.51.0': + resolution: {integrity: sha512-9bxtxj8QoAp++LOq5PGDGkEEOpCDk9rOEHUcXadnijedDH8IXrBt6PnBa4Y6NblvGWdoxvXZYghZLaliTCmAng==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.50.0': - resolution: {integrity: sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==} + '@rollup/rollup-linux-arm64-gnu@4.51.0': + resolution: {integrity: sha512-DdqA+fARqIsfqDYkKo2nrWMp0kvu/wPJ2G8lZ4DjYhn+8QhrjVuzmsh7tTkhULwjvHTN59nWVzAixmOi6rqjNA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.50.0': - resolution: {integrity: sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==} + '@rollup/rollup-linux-arm64-musl@4.51.0': + resolution: {integrity: sha512-2XVRNzcUJE1UJua8P4a1GXS5jafFWE+pQ6zhUbZzptOu/70p1F6+0FTi6aGPd6jNtnJqGMjtBCXancC2dhYlWw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.50.0': - resolution: {integrity: sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==} + '@rollup/rollup-linux-loong64-gnu@4.51.0': + resolution: {integrity: sha512-R8QhY0kLIPCAVXWi2yftDSpn7Jtejey/WhMoBESSfwGec5SKdFVupjxFlKoQ7clVRuaDpiQf7wNx3EBZf4Ey6g==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-ppc64-gnu@4.50.0': - resolution: {integrity: sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==} + '@rollup/rollup-linux-ppc64-gnu@4.51.0': + resolution: {integrity: sha512-I498RPfxx9cMv1KTHQ9tg2Ku1utuQm+T5B+Xro+WNu3FzAFSKp4awKfgMoZwjoPgNbaFGINaOM25cQW6WuBhiQ==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.50.0': - resolution: {integrity: sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==} + '@rollup/rollup-linux-riscv64-gnu@4.51.0': + resolution: {integrity: sha512-o8COudsb8lvtdm9ixg9aKjfX5aeoc2x9KGE7WjtrmQFquoCRZ9jtzGlonujE4WhvXFepTraWzT4RcwyDDeHXjA==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-riscv64-musl@4.50.0': - resolution: {integrity: sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==} + '@rollup/rollup-linux-riscv64-musl@4.51.0': + resolution: {integrity: sha512-0shJPgSXMdYzOQzpM5BJN2euXY1f8uV8mS6AnrbMcH2KrkNsbpMxWB1wp8UEdiJ1NtyBkCk3U/HfX5mEONBq6w==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.50.0': - resolution: {integrity: sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==} + '@rollup/rollup-linux-s390x-gnu@4.51.0': + resolution: {integrity: sha512-L7pV+ny7865jamSCQwyozBYjFRUKaTsPqDz7ClOtJCDu4paf2uAa0mrcHwSt4XxZP2ogFZS9uuitH3NXdeBEJA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.50.0': - resolution: {integrity: sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==} + '@rollup/rollup-linux-x64-gnu@4.51.0': + resolution: {integrity: sha512-4YHhP+Rv3T3+H3TPbUvWOw5tuSwhrVhkHHZhk4hC9VXeAOKR26/IsUAT4FsB4mT+kfIdxxb1BezQDEg/voPO8A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.50.0': - resolution: {integrity: sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==} + '@rollup/rollup-linux-x64-musl@4.51.0': + resolution: {integrity: sha512-P7U7U03+E5w7WgJtvSseNLOX1UhknVPmEaqgUENFWfNxNBa1OhExT6qYGmyF8gepcxWSaSfJsAV5UwhWrYefdQ==} cpu: [x64] os: [linux] - '@rollup/rollup-openharmony-arm64@4.50.0': - resolution: {integrity: sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==} + '@rollup/rollup-openharmony-arm64@4.51.0': + resolution: {integrity: sha512-FuD8g3u9W6RPwdO1R45hZFORwa1g9YXEMesAKP/sOi7mDqxjbni8S3zAXJiDcRfGfGBqpRYVuH54Gu3FTuSoEw==} cpu: [arm64] os: [openharmony] - '@rollup/rollup-win32-arm64-msvc@4.50.0': - resolution: {integrity: sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==} + '@rollup/rollup-win32-arm64-msvc@4.51.0': + resolution: {integrity: sha512-zST+FdMCX3QAYfmZX3dp/Fy8qLUetfE17QN5ZmmFGPrhl86qvRr+E9u2bk7fzkIXsfQR30Z7ZRS7WMryPPn4rQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.50.0': - resolution: {integrity: sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==} + '@rollup/rollup-win32-ia32-msvc@4.51.0': + resolution: {integrity: sha512-U+qhoCVAZmTHCmUKxdQxw1jwAFNFXmOpMME7Npt5GTb1W/7itfgAgNluVOvyeuSeqW+dEQLFuNZF3YZPO8XkMg==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.50.0': - resolution: {integrity: sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==} + '@rollup/rollup-win32-x64-msvc@4.51.0': + resolution: {integrity: sha512-z6UpFzMhXSD8NNUfCi2HO+pbpSzSWIIPgb1TZsEZjmZYtk6RUIC63JYjlFBwbBZS3jt3f1q6IGfkj3g+GnBt2Q==} cpu: [x64] os: [win32] @@ -1271,9 +1283,10 @@ packages: resolution: {integrity: sha512-6rsHTjodIn/t90lv5snQjRPVtOosM7Vp0AKdrObymq45ojlgVwnpAqdc+0OBBrpEiy31zZ6/TKeIVqV1HwvnuQ==} engines: {node: '>=18'} - '@sindresorhus/chunkify@1.0.0': - resolution: {integrity: sha512-YJOcVaEasXWcttXetXn0jd6Gtm9wFHQ1gViTPcxhESwkMCOoA4kwFsNr9EGcmsARGx7jXQZWmOR4zQotRcI9hw==} + '@sindresorhus/chunkify@2.0.0': + resolution: {integrity: sha512-srajPSoMTC98FETCJIeXJhJqB77IRPJSu8g907jLuuioLORHZJ3YAOY2DsP5ebrZrjOrAwjqf+Cgkg/I8TGPpw==} engines: {node: '>=18'} + deprecated: 'Renamed to chunkify: https://www.npmjs.com/package/chunkify' '@sindresorhus/df@1.0.1': resolution: {integrity: sha512-1Hyp7NQnD/u4DSxR2DGW78TF9k7R0wZ8ev0BpMAIzA6yTQSHqNb5wTuvtcPYf4FWbVse2rW7RgDsyL8ua2vXHw==} @@ -1287,6 +1300,10 @@ packages: 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'} + '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} @@ -1319,8 +1336,8 @@ packages: '@tsconfig/node20@20.1.6': resolution: {integrity: sha512-sz+Hqx9zwZDpZIV871WSbUzSqNIsXzghZydypnfgzPKLltVJfkINfUeTct31n/tTSa9ZE1ZOfKdRre1uHHquYQ==} - '@tybys/wasm-util@0.10.0': - resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/better-sqlite3@7.6.13': resolution: {integrity: sha512-NMv9ASNARoKksWtsq/SHakpYAYnhBrQgGD8zkLYk/jaK8jUGn08CfEdTRgYhMypUQAfzSP8W6gNLe0q19/t4VA==} @@ -1367,11 +1384,11 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/node@22.18.0': - resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==} + '@types/node@22.18.6': + resolution: {integrity: sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==} - '@types/node@24.3.0': - resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + '@types/node@24.5.2': + resolution: {integrity: sha512-FYxk1I7wPv3K2XBaoyH2cTnocQEu8AOZ60hPbsyukMPLv5/5qr7V1i8PLHdl6Zf87I+xZXFvPCXYjiTFq+YSDQ==} '@types/parse-path@7.1.0': resolution: {integrity: sha512-EULJ8LApcVEPbrfND0cRQqutIOdiIgJ1Mgrhpy755r14xMohPTEpkV/k28SJvuOs9bHRFW8x+KeDAEPiGQPB9Q==} @@ -1401,148 +1418,148 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.42.0': - resolution: {integrity: sha512-Aq2dPqsQkxHOLfb2OPv43RnIvfj05nw8v/6n3B2NABIPpHnjQnaLo9QGMTvml+tv4korl/Cjfrb/BYhoL8UUTQ==} + '@typescript-eslint/eslint-plugin@8.44.0': + resolution: {integrity: sha512-EGDAOGX+uwwekcS0iyxVDmRV9HX6FLSM5kzrAToLTsr9OWCIKG/y3lQheCq18yZ5Xh78rRKJiEpP0ZaCs4ryOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.42.0 + '@typescript-eslint/parser': ^8.44.0 eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.42.0': - resolution: {integrity: sha512-r1XG74QgShUgXph1BYseJ+KZd17bKQib/yF3SR+demvytiRXrwd12Blnz5eYGm8tXaeRdd4x88MlfwldHoudGg==} + '@typescript-eslint/parser@8.44.0': + resolution: {integrity: sha512-VGMpFQGUQWYT9LfnPcX8ouFojyrZ/2w3K5BucvxL/spdNehccKhB4jUyB1yBCXpr2XFm0jkECxgrpXBW2ipoAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.42.0': - resolution: {integrity: sha512-vfVpLHAhbPjilrabtOSNcUDmBboQNrJUiNAGoImkZKnMjs2TIcWG33s4Ds0wY3/50aZmTMqJa6PiwkwezaAklg==} + '@typescript-eslint/project-service@8.44.0': + resolution: {integrity: sha512-ZeaGNraRsq10GuEohKTo4295Z/SuGcSq2LzfGlqiuEvfArzo/VRrT0ZaJsVPuKZ55lVbNk8U6FcL+ZMH8CoyVA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.42.0': - resolution: {integrity: sha512-51+x9o78NBAVgQzOPd17DkNTnIzJ8T/O2dmMBLoK9qbY0Gm52XJcdJcCl18ExBMiHo6jPMErUQWUv5RLE51zJw==} + '@typescript-eslint/scope-manager@8.44.0': + resolution: {integrity: sha512-87Jv3E+al8wpD+rIdVJm/ItDBe/Im09zXIjFoipOjr5gHUhJmTzfFLuTJ/nPTMc2Srsroy4IBXwcTCHyRR7KzA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.42.0': - resolution: {integrity: sha512-kHeFUOdwAJfUmYKjR3CLgZSglGHjbNTi1H8sTYRYV2xX6eNz4RyJ2LIgsDLKf8Yi0/GL1WZAC/DgZBeBft8QAQ==} + '@typescript-eslint/tsconfig-utils@8.44.0': + resolution: {integrity: sha512-x5Y0+AuEPqAInc6yd0n5DAcvtoQ/vyaGwuX5HE9n6qAefk1GaedqrLQF8kQGylLUb9pnZyLf+iEiL9fr8APDtQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.42.0': - resolution: {integrity: sha512-9KChw92sbPTYVFw3JLRH1ockhyR3zqqn9lQXol3/YbI6jVxzWoGcT3AsAW0mu1MY0gYtsXnUGV/AKpkAj5tVlQ==} + '@typescript-eslint/type-utils@8.44.0': + resolution: {integrity: sha512-9cwsoSxJ8Sak67Be/hD2RNt/fsqmWnNE1iHohG8lxqLSNY8xNfyY7wloo5zpW3Nu9hxVgURevqfcH6vvKCt6yg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.42.0': - resolution: {integrity: sha512-LdtAWMiFmbRLNP7JNeY0SqEtJvGMYSzfiWBSmx+VSZ1CH+1zyl8Mmw1TT39OrtsRvIYShjJWzTDMPWZJCpwBlw==} + '@typescript-eslint/types@8.44.0': + resolution: {integrity: sha512-ZSl2efn44VsYM0MfDQe68RKzBz75NPgLQXuGypmym6QVOWL5kegTZuZ02xRAT9T+onqvM6T8CdQk0OwYMB6ZvA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.42.0': - resolution: {integrity: sha512-ku/uYtT4QXY8sl9EDJETD27o3Ewdi72hcXg1ah/kkUgBvAYHLwj2ofswFFNXS+FL5G+AGkxBtvGt8pFBHKlHsQ==} + '@typescript-eslint/typescript-estree@8.44.0': + resolution: {integrity: sha512-lqNj6SgnGcQZwL4/SBJ3xdPEfcBuhCG8zdcwCPgYcmiPLgokiNDKlbPzCwEwu7m279J/lBYWtDYL+87OEfn8Jw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.42.0': - resolution: {integrity: sha512-JnIzu7H3RH5BrKC4NoZqRfmjqCIS1u3hGZltDYJgkVdqAezl4L9d1ZLw+36huCujtSBSAirGINF/S4UxOcR+/g==} + '@typescript-eslint/utils@8.44.0': + resolution: {integrity: sha512-nktOlVcg3ALo0mYlV+L7sWUD58KG4CMj1rb2HUVOO4aL3K/6wcD+NERqd0rrA5Vg06b42YhF6cFxeixsp9Riqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.42.0': - resolution: {integrity: sha512-3WbiuzoEowaEn8RSnhJBrxSwX8ULYE9CXaPepS2C2W3NSA5NNIvBaslpBSBElPq0UGr0xVJlXFWOAKIkyylydQ==} + '@typescript-eslint/visitor-keys@8.44.0': + resolution: {integrity: sha512-zaz9u8EJ4GBmnehlrpoKvj/E3dNbuQ7q0ucyZImm3cLqJ8INTc970B1qEqDX/Rzq65r3TvVTN7kHWPBoyW7DWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@66.5.0': - resolution: {integrity: sha512-PueE1reSo0iu/yUos+bB4uYym3hZrNMGboXP5VmEjEL1PFVLuJYft1nLJ24p20nPyzWFNamYAxYTPveNW2BbWg==} + '@unocss/astro@66.5.1': + resolution: {integrity: sha512-f17+xfyBZ9prFx4jda3D9ngOigjO8btHsR3uG7WeDQPW6OBdhETfIGdXs8WD99J/3A3LJtk7J0u9p121S+RE8Q==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@66.5.0': - resolution: {integrity: sha512-E1Q5FI2K2Xtiiw2bMx+qMCz+TADSw0pVamks4ZlS3FS4hqFtzxeUkOyTys/e8oXxYB4f1+K6UMUUv+Wzk7YiKw==} + '@unocss/cli@66.5.1': + resolution: {integrity: sha512-b9fTS6b7lqTmeftDkZyjkJiC1LoCKzCB4vuX/VdqoHd0QWh02i6ppsfe6C69fMlzOrju01H7CL0Bpad0JzBr2A==} engines: {node: '>=14'} hasBin: true - '@unocss/config@66.5.0': - resolution: {integrity: sha512-vNPqcfCPIVCuV3AU13d6qO/wSRrvdXeV8myQQUlUBVkvHezFBQ/atVOP77Ov5qUBARyx3zwUCkgQxYOCs60EGw==} + '@unocss/config@66.5.1': + resolution: {integrity: sha512-eL9P+WDX42B6ZkNGGSkMgOyR99xeuJ2Gkj0uarhag5kaRwvwHLn/CJptZ7/oZLLIn0uTH8TQ6MG8ErhK0ymewA==} engines: {node: '>=14'} - '@unocss/core@66.5.0': - resolution: {integrity: sha512-4JStg50nrwd4aJulbPYglqHyuVUHMEX2EltpdxrrxknvSjy4LriKCVUCEmIljsbTFDXm8xcPnPGs6VN/ZmlKlA==} + '@unocss/core@66.5.1': + resolution: {integrity: sha512-BUgN87sUIffco1d+1IuV4a1gKTI1YAFa7CTjxglLUAnopXPPJ+Q77G10zoBoFLzutiIOYLsesa3hzbQvDhosnA==} - '@unocss/extractor-arbitrary-variants@66.5.0': - resolution: {integrity: sha512-Em5jrB4wPJWHRwp4hBRPWbYH/brEdQzYFC5RUSNem5u3kToYSiBid4KwBRTBHmLAdDxcrDXBD1pbDot0PAQe2g==} + '@unocss/extractor-arbitrary-variants@66.5.1': + resolution: {integrity: sha512-SpI2uv6bWyPyY3Tv7CxsFnHBjSTlNRcPCnfvD8gSKbAt7R+RqV0nrdkv7wSW+Woc5TYl8PClLEFSBIvo0c1h9Q==} - '@unocss/inspector@66.5.0': - resolution: {integrity: sha512-eozYCqP0TF1a6BoRTOFnLaIczGvR/b5kwhv1RQdAVAUKw08YZQzASTWWL3xeOonXCvFOSRZ3YIWk9Fsk5myPKg==} + '@unocss/inspector@66.5.1': + resolution: {integrity: sha512-EyHcEM9BPZACJhl9YoTlgc/5i4as9MQ4zwaThAXbXoO9l+IfxdNrJoy3ED8qqkKLO5jgzyhPvy1COBdaoSlxsg==} - '@unocss/postcss@66.5.0': - resolution: {integrity: sha512-jwe06YHGGepllsjDIqLtOgh4jViq0XfP/wU81Efg9lQLlMzWkDIMQw8/LQn2UA3WkjWWiQFXvQKb8SWpXENYnA==} + '@unocss/postcss@66.5.1': + resolution: {integrity: sha512-waJSgjJv14cbbaA3fj0kgDid+e851KfArqx1l5/c2km3g9tiPZhSiY3Z7YslwMyM9CKRC8+qN8AWYB9l4YJrFw==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@66.5.0': - resolution: {integrity: sha512-kMx1dvQmnceMLD/drZop8dbqJcpZpc+uKpprcAXSio3im5IjXkS4A7H0mL0wXmGFy+2fl+rXEgjnOuofQt0bsw==} + '@unocss/preset-attributify@66.5.1': + resolution: {integrity: sha512-lRTwtg9y+f9c6OlRiiPrXrBco2r9SwVxNvzJ27Kc/DhJl3fphuMQuKWsZyiq1qsDVYZeGz4NQzE1FDKqFi4qqQ==} - '@unocss/preset-icons@66.5.0': - resolution: {integrity: sha512-7Qs5k2LWY9052UQVHiQOZ3yJJEwTgqVrJpEdEaZtvBBrObiXwJ03/oZiCSWpGErfp0WbH5gwaghGb2SjbOkiSw==} + '@unocss/preset-icons@66.5.1': + resolution: {integrity: sha512-vxlnPSzTaQZmLKcmVPhCWC6rpgpHCUSD7aFsn7jW3iZ/jTIwc4kgQjnOJZdL443LF5mxBqF15+Cm9hZRnvrWNw==} - '@unocss/preset-mini@66.5.0': - resolution: {integrity: sha512-aGnxlO47D0DMTEYTbwAZ/xICz8/QGUhin9hb4dsVhEorDvL1R0/qqvyjhyyIeTTDqPTxKTtczY7rP8XJqkuBXA==} + '@unocss/preset-mini@66.5.1': + resolution: {integrity: sha512-kBEbA0kEXRtoHQ98o4b6f9sp1u5BanPzi+GMnWdmOWvbLAiLw1vcgXGPTX3sO+gzIMrwu0Famw6xiztWzAFjWQ==} - '@unocss/preset-tagify@66.5.0': - resolution: {integrity: sha512-uH14GBc00c5G0AO7xpO7SAW+QYhdkFGFH5BVAf21qOPipLzQosgmpvfEapq0urgwhR+b25itdGhP5iEazTs2FQ==} + '@unocss/preset-tagify@66.5.1': + resolution: {integrity: sha512-94dVIqfTT3Nfs+g9XnOC/oZuVsiSp8zR36wA/Uucvg3n1zIo2wg6qokghfh7ee8aYNdTqnV7extlnCMJp0TFJQ==} - '@unocss/preset-typography@66.5.0': - resolution: {integrity: sha512-pMpzXa27zoanZQENT7tY/dJJSLZTEpuvItMruizTaizTYflanxhPpozj5fD6hGNfH4zIWiEu34KcHsTluj2R/A==} + '@unocss/preset-typography@66.5.1': + resolution: {integrity: sha512-5gmv/BN3WbwlZJuoC5qyToK7ufbnmXEszj6+3Rgtto4ptpyizBtJybyZe025ypcmExne3MwMpGWMmQPE5MzKgw==} - '@unocss/preset-uno@66.5.0': - resolution: {integrity: sha512-z39CWf3hI2ghmizPLqOefF1udcF8m/IJ50T6OO+sNpzJIkbL8FUaxGsdf0bKIVUl180EKRSV6kpIOST4nMN5Bg==} + '@unocss/preset-uno@66.5.1': + resolution: {integrity: sha512-nUjh1XMChHpVJng5zJhYXXZcXxVDfmh2dxdZS4DgKQ08F8HdvFXmZV+sJrrw6JdeUtpDytelLFJbA8ejmxHYhA==} - '@unocss/preset-web-fonts@66.5.0': - resolution: {integrity: sha512-OZ/sTpksNTNoMEJ55y4v9lkFkqMR+PFAh1yHYFo7PyAtfJHhr/vb7n4TINl1qmLIhV70GZRdMH7kUuDKaSkxaA==} + '@unocss/preset-web-fonts@66.5.1': + resolution: {integrity: sha512-XKrkoN7ncqJxRHDMxAqTCroBcqSPgryDUZIlLhhQ4mHilSp29AdYO1RgG6Ok04w9HNmqzo3d8A8v6Z5yGrGF0w==} - '@unocss/preset-wind3@66.5.0': - resolution: {integrity: sha512-LC3I2yzmWguOOdp4gLwhJG1/Nya6v9+GH2rXRn8LNSZN5yhdz0LwqjftSIsPxbIpoi7+pkGTzOiXHfV/XXbswA==} + '@unocss/preset-wind3@66.5.1': + resolution: {integrity: sha512-L1yMmKpwUWYUnScQq5jMTGvfMy/GBqVj40VS5afyOlzWnBeSkc/y4AxeW/khzGwqE/QaFcLWXiXwQVJIyxN02Q==} - '@unocss/preset-wind4@66.5.0': - resolution: {integrity: sha512-kR7TPqQ8vIwXrrLticKc5CbHLGbXiRnWI7xPFduC3l8RE0VPyShegmY62KRc6tX58Tarhnsrct+Teln7ZlEWKw==} + '@unocss/preset-wind4@66.5.1': + resolution: {integrity: sha512-i6UaZ/hRabu+bvEwUJcc3k/v/tF1sjKukvtQF027zaL3Q5k5QKKhDH989wVHU1k+i+W77+og2/K9+FzXN9+CzQ==} - '@unocss/preset-wind@66.5.0': - resolution: {integrity: sha512-fofrMsguz/iLkNhD/FaBnYUQGsgTe5Nk9jgJBaigDc6FqG2JcT6S7F7boyquFwfoCXN7Dj3SZ4HKfWH7AhisIw==} + '@unocss/preset-wind@66.5.1': + resolution: {integrity: sha512-YucMFPBa3Gwuxdtk+GlqWWcnCwMpzUJWkiB3BNyGk4wEJ0S/brkC+t1/DKpagOFLK9bc134mLxqLNDMWJwVbrg==} - '@unocss/reset@66.5.0': - resolution: {integrity: sha512-Sf27NbbNUg3e4BShQB7EsMCS1GtA6IORBm08SitSpUZZYOZAj+LAypYsOJ4rttAFs/Hp1h0AxtNShesXWK66oA==} + '@unocss/reset@66.5.1': + resolution: {integrity: sha512-NXDjDUn3cjATkxr7bbPdVnKkUHzEq6wSC1IRpnO8ISAXCw6JGPjuk3WJVYxHhnAlszhDxdqxVBjWRZ+zzVmrZw==} - '@unocss/rule-utils@66.5.0': - resolution: {integrity: sha512-+yqGZP8fR/G/gOkjXSXjmgTXFr4zGCQR+rA3Ana4xVoLIttcmPk4qO1IWcUVRQTDDqFmUjW/XwWmChta+rdQsA==} + '@unocss/rule-utils@66.5.1': + resolution: {integrity: sha512-GuBKHrDv3bdq5N1HfOr1tD864vI1EIiovBVJSfg7x9ERA4jJSnyMpGk/hbLuDIXF25EnVdZ1lFhEpJgur9+9sw==} engines: {node: '>=14'} - '@unocss/transformer-attributify-jsx@66.5.0': - resolution: {integrity: sha512-hydRGKT3ca2BmCR/Hud4svp6RXZKlPjJbNQjGIAuBaMtaFEvsOUhtTmEQlE3PIX2RvI8/LBBDKVcsKP/oOtDLw==} + '@unocss/transformer-attributify-jsx@66.5.1': + resolution: {integrity: sha512-uj3W0zSY6LyRFusqeIEj8VUy6WDbIhNMUajIHRulKdSqufFMxiymn6JLGriz7ArFRXBKBBmbN+kk6Fqi9gF6JA==} - '@unocss/transformer-compile-class@66.5.0': - resolution: {integrity: sha512-Mpi9PP/KZGw1DkNCr40LjgfCzzA8jHOcBfMqVOopUaRSLMLEtgBRKb8anJzoR//owrzJl8EyBBTWl30fTAdpCA==} + '@unocss/transformer-compile-class@66.5.1': + resolution: {integrity: sha512-dEfXxWLt3lbMW85CI2yi0S/fQHcSZ32s9FSfGS3KPxFTJ3EY7tYYesT1bdzVrSm+o7J8Os42E5AiFFPjhiTN6Q==} - '@unocss/transformer-directives@66.5.0': - resolution: {integrity: sha512-nZSi+nfaXL6aXoE7Lzw+qz9I9EHnIjkw9oE0Pu/6WmlJ7gjf+HWiyDaB90fi/Zn8M1VaKYXUCepJQ4ptqy4pjA==} + '@unocss/transformer-directives@66.5.1': + resolution: {integrity: sha512-+SErDMglrTI3NTaY8GYh2fCalXNIQDahf7b2AaBCiOf+SPPXeicIy04/1nx8cJ/qpsJ4Z4+ZBybFlATVSkInyQ==} - '@unocss/transformer-variant-group@66.5.0': - resolution: {integrity: sha512-dAhkSVYEtnaj6VC/JgkV8JeimCesF1uXN6k3WSnf7JMc4zlsBEtLf6Tg8JEBfpWNvhDFrnEXr9GXKflCNbcX1A==} + '@unocss/transformer-variant-group@66.5.1': + resolution: {integrity: sha512-ykUIXExfSCrmex0f8OvS4hYZ4M0EbinosW86xLKwc2GGcbWD6CwqyxxpVWgXSzcc2sIELuqF+K3oZnIlQt3Dug==} - '@unocss/vite@66.5.0': - resolution: {integrity: sha512-4ogtBEHMXZhB4dM+qmG4d+2ATGEV94zbdrdQLEeBrzr52QbALuPHvp4JIQ7q7vIT/XNbMGJkPAiW8cgWiMQsMQ==} + '@unocss/vite@66.5.1': + resolution: {integrity: sha512-qcZMh+SZbKYfTjJC2CP6B9Zxg0jlfhJSDVmXdjQBlUzhQR9FllnwlBdae6SCVFBc634Sm+pBJIri5ShPLvwq+Q==} peerDependencies: vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 @@ -1553,8 +1570,8 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vue: ^3.2.25 - '@vitest/eslint-plugin@1.3.6': - resolution: {integrity: sha512-sa/QAljHbUP+sMdPjK8e/6nS2+QB/bh1aDKEkAKMqsKVzBXqz4LRYfT7UVGIP8LMIrskGTxqAbHuiL+FOYWzHg==} + '@vitest/eslint-plugin@1.3.12': + resolution: {integrity: sha512-cSEyUYGj8j8SLqKrzN7BlfsJ3wG67eRT25819PXuyoSBogLXiyagdKx4MHWHV1zv+EEuyMXsEKkBEKzXpxyBrg==} peerDependencies: eslint: '>= 8.57.0' typescript: '>= 5.0.0' @@ -1630,8 +1647,8 @@ packages: '@vue/devtools-shared@7.7.7': resolution: {integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==} - '@vue/language-core@3.0.6': - resolution: {integrity: sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==} + '@vue/language-core@3.0.7': + resolution: {integrity: sha512-0sqqyqJ0Gn33JH3TdIsZLCZZ8Gr4kwlg8iYOnOrDDkJKSjFurlQY/bEFQx5zs7SX2C/bjMkmPYq/NiyY1fTOkw==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -1723,28 +1740,24 @@ packages: alien-signals@2.0.7: resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==} - ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} - - ansi-escapes@7.0.0: - resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + ansi-escapes@7.1.0: + resolution: {integrity: sha512-YdhtCd19sKRKfAAUsrcC1wzm4JuzJoiX4pOJqIoW2qmKj5WzG/dL8uUJ0361zaXtHqK7gEhOwtAtz7t3Yq3X5g==} engines: {node: '>=18'} ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.2.0: - resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} + ansi-regex@6.2.2: + resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==} engines: {node: '>=12'} ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + ansi-styles@6.2.3: + resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==} engines: {node: '>=12'} ansis@4.1.0: @@ -1786,14 +1799,6 @@ packages: array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} - - array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - assert-plus@1.0.0: resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} engines: {node: '>=0.8'} @@ -1827,8 +1832,8 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} + axios@1.12.2: + resolution: {integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -1836,17 +1841,24 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.8.6: + resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==} + hasBin: true + basic-ftp@5.0.5: resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} engines: {node: '>=10.0.0'} - before-after-hook@3.0.2: - resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==} + before-after-hook@4.0.0: + resolution: {integrity: sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==} better-sqlite3@12.2.0: resolution: {integrity: sha512-eGbYq2CT+tos1fBwLQ/tkBt9J5M3JEHjku4hbvQUePCckkvVf14xWj+1m7dGoK81M/fOjFT7yM9UMeKT/+vFLQ==} engines: {node: 20.x || 22.x || 23.x || 24.x} + bidi-js@1.0.3: + resolution: {integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==} + binary-extensions@2.3.0: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} @@ -1877,8 +1889,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.25.4: - resolution: {integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==} + browserslist@4.26.2: + resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1919,16 +1931,8 @@ packages: magicast: optional: true - c12@3.1.0: - resolution: {integrity: sha512-uWoS8OU1MEIsOv8p/5a82c3H31LsWVR5qiyXVfBNOzfffjUWtPnhAb4BYI2uG2HfGmZmFjCtui5XNWaps+iFuw==} - peerDependencies: - magicast: ^0.3.5 - peerDependenciesMeta: - magicast: - optional: true - - c12@3.2.0: - resolution: {integrity: sha512-ixkEtbYafL56E6HiFuonMm1ZjoKtIo7TH68/uiEq4DAwv9NcUX2nJ95F8TrbMeNjqIkZpruo3ojXQJ+MGG5gcQ==} + c12@3.3.0: + resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==} peerDependencies: magicast: ^0.3.5 peerDependenciesMeta: @@ -1959,8 +1963,8 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001739: - resolution: {integrity: sha512-y+j60d6ulelrNSwpPyrHdl+9mJnQzHBr08xm48Qno0nSk4h3Qojh+ziv2qE6rXf4k3tadF4o1J/1tAbVm1NtnA==} + caniuse-lite@1.0.30001743: + resolution: {integrity: sha512-e6Ojr7RV14Un7dz6ASD0aZDmQPT/A+eZU+nuTNfjqmRrmkmQlnTNWH0SKmqagx9PeW87UVqapSurtAXifmtdmw==} ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1973,8 +1977,8 @@ packages: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + chalk@5.6.2: + resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@5.4.4: @@ -2055,13 +2059,17 @@ packages: resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} + cli-spinners@3.2.1: + resolution: {integrity: sha512-Xh+cRh7dzk9n7gYE+M1Lusy3yg5ADy9m6zOHqmcu9kSkWpo7ySWVUS3dXleR3konJOEOdHzsKjWkGed6g2eJuA==} + engines: {node: '>=18.20'} + 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'} + cli-truncate@5.1.0: + resolution: {integrity: sha512-7JDGG+4Zp0CsknDCedl0DYdaeOhc46QNpXi3NLQblkZpXXgA6LncLDUUyvrjSvZeF3VRQa+KiMGomazQrC1V8g==} + engines: {node: '>=20'} cli-width@4.1.0: resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} @@ -2100,8 +2108,8 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - commander@14.0.0: - resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} + commander@14.0.1: + resolution: {integrity: sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==} engines: {node: '>=20'} commander@2.20.3: @@ -2233,9 +2241,9 @@ packages: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} - cssstyle@4.6.0: - resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} - engines: {node: '>=18'} + cssstyle@5.3.0: + resolution: {integrity: sha512-RveJPnk3m7aarYQ2bJ6iw+Urh55S6FzUiqtBq+TihnTDP4cI8y/TYDqGOyqgnG1J1a6BxJXZsV9JFSTulm9Z7g==} + engines: {node: '>=20'} csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} @@ -2244,22 +2252,13 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + data-urls@6.0.0: + resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} + engines: {node: '>=20'} de-indent@1.0.2: resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} - debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -2343,8 +2342,8 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + detect-libc@2.1.0: + resolution: {integrity: sha512-vEtk+OcP7VBRtQZ1EJ3bdgzSfBjgnEalLTp5zjJrS+2Z1w2KZly4SBdac/WDU3hhsNAZ9E8SC96ME4Ey8MZ7cg==} engines: {node: '>=8'} detect-node@2.1.0: @@ -2356,10 +2355,6 @@ packages: dir-compare@4.2.0: resolution: {integrity: sha512-2xMCmOoMrdQIPHdsTawECdNPwlVFB9zGcz3kuhmBO6U3oU+UQjsue0i8ayLKpgBcm+hcXPMVSGUN9d+pvJ6+VQ==} - dir-glob@2.2.2: - resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==} - engines: {node: '>=4'} - dmg-builder@26.0.12: resolution: {integrity: sha512-59CAAjAhTaIMCN8y9kD573vDkxbs1uhDcrFLHSgutYdPcGOU35Rf95725snvzEOy4BFB7+eLJ8djCNPmGwG67w==} @@ -2430,15 +2425,15 @@ packages: deprecated: Please use @electron/rebuild moving forward. There is no API change, just a package name change hasBin: true - electron-to-chromium@1.5.213: - resolution: {integrity: sha512-xr9eRzSLNa4neDO0xVFrkXu3vyIzG4Ay08dApecw42Z1NbmCt+keEpXdvlYGVe0wtvY5dhW0Ay0lY0IOfsCg0Q==} + electron-to-chromium@1.5.222: + resolution: {integrity: sha512-gA7psSwSwQRE60CEoLz6JBCQPIxNeuzB2nL8vE03GK/OHxlvykbLyeiumQy1iH5C2f3YbRAZpGCMT12a/9ih9w==} electron-winstaller@5.4.0: resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==} engines: {node: '>=8.0.0'} - electron@37.4.0: - resolution: {integrity: sha512-HhsSdWowE5ODOeWNc/323Ug2C52mq/TqNBG+4uMeOA3G2dMXNc/nfyi0RYu1rJEgiaJLEjtHveeZZaYRYFsFCQ==} + electron@38.1.2: + resolution: {integrity: sha512-WXUcN3W8h8NTTZViA3KNX0rV2YBU0X0mEUM3ubupXTDY4QtIN7tmiqYVOKSKpR2LckTmBWGuEeY4D6xVoffwKQ==} engines: {node: '>= 12.20.55'} hasBin: true @@ -2509,8 +2504,8 @@ packages: es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} - esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} + esbuild@0.25.10: + resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} engines: {node: '>=18'} hasBin: true @@ -2616,8 +2611,8 @@ packages: typescript: optional: true - eslint-plugin-jsdoc@52.0.4: - resolution: {integrity: sha512-be5OzGlLExvcK13Il3noU7/v7WmAQGenTmCaBKf1pwVtPOb6X+PGFVnJad0QhMj4KKf45XjE4hbsBxv25q1fTg==} + eslint-plugin-jsdoc@54.7.0: + resolution: {integrity: sha512-u5Na4he2+6kY1rWqxzbQaAwJL3/tDCuT5ElDRc5UJ9stOeQeQ5L1JJ1kRRu7ldYMlOHMCJLsY8Mg/Tu3ExdZiQ==} engines: {node: '>=20.11.0'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -2628,8 +2623,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-n@17.21.3: - resolution: {integrity: sha512-MtxYjDZhMQgsWRm/4xYLL0i2EhusWT7itDxlJ80l1NND2AL2Vi5Mvneqv/ikG9+zpran0VsVRXTEHrpLmUZRNw==} + eslint-plugin-n@17.23.1: + resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.23.0' @@ -2672,8 +2667,8 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-plugin-unicorn@60.0.0: - resolution: {integrity: sha512-QUzTefvP8stfSXsqKQ+vBQSEsXIlAiCduS/V1Em+FKgL9c21U/IIm20/e3MFy1jyCf14tHAhqC1sX8OTy6VUCg==} + eslint-plugin-unicorn@61.0.2: + resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: eslint: '>=9.29.0' @@ -2730,8 +2725,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.34.0: - resolution: {integrity: sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==} + eslint@9.35.0: + resolution: {integrity: sha512-QePbBFMJFjgmlE+cXAlbHZbHpdFVS2E/6vzCy7aKlebddvl1vadiC4JFV5u/wqTkNUwEV8WrQi257jf5f06hrg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2775,9 +2770,9 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - eta@3.5.0: - resolution: {integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==} - engines: {node: '>=6.0.0'} + eta@4.0.1: + resolution: {integrity: sha512-0h0oBEsF6qAJU7eu9ztvJoTo8D2PAq/4FvXVIQA1fek3WOTe6KPsVJycekG1+g1N6mfpblkheoGwaUhMtnlH4A==} + engines: {node: '>=20'} eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -2817,8 +2812,8 @@ packages: resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} engines: {'0': node >=0.6.0} - fast-content-type-parse@2.0.1: - resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==} + fast-content-type-parse@3.0.0: + resolution: {integrity: sha512-ZvLdcY8P+N8mGQJahJV5G4U88CSvT1rP8ApL6uETe88MBXrBHAkZlSEySdUlyztF7ccb+Znos3TFqaepHxdhBg==} fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2923,10 +2918,6 @@ packages: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} engines: {node: '>=12'} - fs-extra@11.3.1: - resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} - engines: {node: '>=14.14'} - fs-extra@11.3.2: resolution: {integrity: sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==} engines: {node: '>=14.14'} @@ -2971,8 +2962,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.1: - resolution: {integrity: sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==} + get-east-asian-width@1.4.0: + resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} engines: {node: '>=18'} get-intrinsic@1.3.0: @@ -3059,17 +3050,17 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.3.0: - resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} + globals@16.4.0: + resolution: {integrity: sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==} engines: {node: '>=18'} globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@7.1.1: - resolution: {integrity: sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==} - engines: {node: '>=4'} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -3175,12 +3166,13 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.0: + resolution: {integrity: sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@3.3.10: - resolution: {integrity: sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -3221,8 +3213,8 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inquirer@12.7.0: - resolution: {integrity: sha512-KKFRc++IONSyE2UYw9CJ1V0IWx5yQKomwB+pp3cWomWs+v2+ZsG11G2OVfAjFS6WWCppKw+RfKmpqGfSzD5QBQ==} + inquirer@12.9.6: + resolution: {integrity: sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -3263,10 +3255,6 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} - is-fullwidth-code-point@5.1.0: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} @@ -3329,10 +3317,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - is-unicode-supported@2.1.0: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} @@ -3397,9 +3381,13 @@ packages: resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} engines: {node: '>=12.0.0'} - jsdom@26.1.0: - resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} - engines: {node: '>=18'} + jsdoc-type-pratt-parser@5.1.1: + resolution: {integrity: sha512-DYYlVP1fe4QBMh2xTIs20/YeTz2GYVbWAEZweHSZD+qQ/Cx2d5RShuhhsdk64eTjNq0FeVnteP/qVOgaywSRbg==} + engines: {node: '>=12.0.0'} + + jsdom@27.0.0: + resolution: {integrity: sha512-lIHeR1qlIRrIN5VMccd8tI2Sgw6ieYXSVktcSHaNe3Z5nE/tcPQYQWOq00wxMvYOsz+73eAkNenVvmPC6bba9A==} + engines: {node: '>=20'} peerDependencies: canvas: ^3.0.0 peerDependenciesMeta: @@ -3449,8 +3437,8 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - knip@5.63.0: - resolution: {integrity: sha512-xIFIi/uvLW0S/AQqwggN6UVRKBOQ1Ya7jBfQzllswZplr2si5C616/5wCcWc/eoi1PLJgPgJQLxqYq1aiYpqwg==} + knip@5.63.1: + resolution: {integrity: sha512-wSznedUAzcU4o9e0O2WPqDnP7Jttu8cesq/R23eregRY8QYQ9NLJ3aGt9fadJfRzPBoU4tRyutwVQu6chhGDlA==} engines: {node: '>=18.18.0'} hasBin: true peerDependencies: @@ -3481,8 +3469,8 @@ packages: engines: {node: '>=20.17'} hasBin: true - listr2@9.0.3: - resolution: {integrity: sha512-0aeh5HHHgmq1KRdMMDHfhMWQmIT/m7nRDTlxlFqni2Sp0had9baqsjJRvDGdlvgd6NmPE0nPloOipiQJGFtTHQ==} + listr2@9.0.4: + resolution: {integrity: sha512-1wd/kpAdKRLwv7/3OKC8zZ5U8e/fajCfWMxacUvB79S5nLrYGPtUI/8chMQhn3LQjsRVErTb9i1ECAwW0ZIHnQ==} engines: {node: '>=20.0.0'} local-pkg@0.5.1: @@ -3522,8 +3510,8 @@ packages: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - log-symbols@6.0.0: - resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} + log-symbols@7.0.1: + resolution: {integrity: sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==} engines: {node: '>=18'} log-update@6.1.0: @@ -3543,6 +3531,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.1: + resolution: {integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==} + engines: {node: 20 || >=22} + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -3560,8 +3552,8 @@ packages: resolution: {integrity: sha512-wpGPwyg/xrSp4H4Db4xYSeAr6+cFQGHfspHzDUdYxswDnUW0L5Ov63UuJiSr8NMSpyaChO4u1n0MXUvVPtrN6A==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - magic-string@0.30.18: - resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} + magic-string@0.30.19: + resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} make-fetch-happen@10.2.1: resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} @@ -3766,10 +3758,6 @@ packages: 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'} - minimatch@10.0.3: resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} engines: {node: 20 || >=22} @@ -3872,8 +3860,8 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - nano-spawn@1.0.2: - resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} + nano-spawn@1.0.3: + resolution: {integrity: sha512-jtpsQDetTnvS2Ts1fiRdci5rx0VYws5jGyC+4IYOTnIQ/wwdf6JdomlHBwqC3bJYOvaKu0C2GSZ1A60anrYpaA==} engines: {node: '>=20.17'} nanoid@3.3.11: @@ -3908,8 +3896,8 @@ packages: resolution: {integrity: sha512-NHDDGYudnvRutt/VhKFlX26IotXe1w0cmkDm6JGquh5bz/bDTw0LufSmH/GxTjEdpHEO+bVKFTwdrcGa/9XlKQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - node-abi@3.75.0: - resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==} + node-abi@3.77.0: + resolution: {integrity: sha512-DSmt0OEcLoK4i3NuscSbGjOf3bqiDEutejqENSplMSFA/gmB8mkED9G4pKWnPl7MDU4rSHebKPHeitpDfyH0cQ==} engines: {node: '>=10'} node-addon-api@1.7.2: @@ -3952,8 +3940,8 @@ packages: engines: {node: ^12.13 || ^14.13 || >=16} hasBin: true - node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.21: + resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==} nopt@6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} @@ -3988,16 +3976,13 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} - nwsapi@2.2.21: - resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} - nypm@0.5.4: resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true - nypm@0.6.1: - resolution: {integrity: sha512-hlacBiRiv1k9hZFiphPUkfSQ/ZfQzZDzC+8z0wL3lvDAOUu/2NnChkKuMoMjNur/9OpKuz2QsIeiPVN0xM5Q0w==} + nypm@0.6.2: + resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==} engines: {node: ^14.16.0 || >=16.10.0} hasBin: true @@ -4041,9 +4026,9 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - ora@8.2.0: - resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} - engines: {node: '>=18'} + ora@9.0.0: + resolution: {integrity: sha512-m0pg2zscbYgWbqRR6ABga5c3sZdEon7bSgjnlXC64kxtxLOyjRcbbUkLj7HFyy/FTD+P2xdBWu8snGhYI0jc4A==} + engines: {node: '>=20'} os-homedir@1.0.2: resolution: {integrity: sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==} @@ -4053,8 +4038,8 @@ packages: resolution: {integrity: sha512-zBd1G8HkewNd2A8oQ8c6BN/f/c9EId7rSUueOLGu28govmUctXmM+3765GwsByv9nYUdrLqHphXlYIc86saYsg==} engines: {node: '>=18'} - oxc-resolver@11.7.1: - resolution: {integrity: sha512-PzbEnD6NKTCFVKkUZtmQcX69ajdfM33RqI5kyb8mH9EdIqEUS00cWSXN0lsgYrtdTMzwo0EKKoH7hnGg6EDraQ==} + oxc-resolver@11.8.2: + resolution: {integrity: sha512-SM31gnF1l4T8YA7dkAcBhA+jc336bc8scy0Tetz6ndzGmV6c0R99SRnx6In0V5ffwvn1Isjo9I9EGSLF4xi3TA==} p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} @@ -4158,9 +4143,9 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} - path-type@3.0.0: - resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} - engines: {node: '>=4'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} @@ -4182,6 +4167,9 @@ packages: perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + perfect-debounce@2.0.0: + resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==} + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -4202,10 +4190,6 @@ packages: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pify@3.0.0: - resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} - engines: {node: '>=4'} - pinia@3.0.3: resolution: {integrity: sha512-ttXO/InUULUXkMHpTdp9Fj4hLpD/2AoJdmAbAeW2yu1iy1k+pkFekQXw5VpC0/5p51IOR/jDaDRfRWRnMMsGOA==} peerDependencies: @@ -4271,8 +4255,8 @@ packages: engines: {node: '>=14'} hasBin: true - pretty-ms@9.2.0: - resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==} + pretty-ms@9.3.0: + resolution: {integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==} engines: {node: '>=18'} proc-log@2.0.1: @@ -4370,8 +4354,8 @@ packages: peerDependencies: release-it: ^17.0.0 || ^18.0.0 || ^19.0.0 - release-it@19.0.4: - resolution: {integrity: sha512-W9A26FW+l1wy5fDg9BeAknZ19wV+UvHUDOC4D355yIOZF/nHBOIhjDwutKd4pikkjvL7CpKeF+4zLxVP9kmVEw==} + release-it@19.0.5: + resolution: {integrity: sha512-bYlUKC0TQroBKi8jQUeoxLHql4d9Fx/2EQLHPKUobXTNSiTS2WY8vlgdHZRhRjVEMyAWwyadJVKfFZnRJuRn4Q==} engines: {node: ^20.12.0 || >=22.0.0} hasBin: true @@ -4379,6 +4363,10 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + resedit@1.7.2: resolution: {integrity: sha512-vHjcY2MlAITJhC0eRD/Vv8Vlgmu9Sd3LX9zZvtGzU5ZImdTN3+d6e/4mnTyV8vEbyf1sgNIrWxhWlrys52OkEA==} engines: {node: '>=12', npm: '>=6'} @@ -4438,16 +4426,16 @@ packages: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} - rollup@4.50.0: - resolution: {integrity: sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==} + rollup@4.51.0: + resolution: {integrity: sha512-7cR0XWrdp/UAj2HMY/Y4QQEUjidn3l2AY1wSeZoFjMbD8aOMPoV9wgTFYbrJpPzzvejDEini1h3CiUP8wLzxQA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - run-applescript@7.0.0: - resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + run-applescript@7.1.0: + resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} run-async@4.0.6: @@ -4469,8 +4457,8 @@ packages: sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} - sass@1.92.0: - resolution: {integrity: sha512-KDNI0BxgIRDAfJgzNm5wuy+4yOCIZyrUbjSpiU/JItfih+KGXAVefKL53MTml054MmBA3DDKIBMSI/7XLxZJ3A==} + sass@1.92.1: + resolution: {integrity: sha512-ffmsdbwqb3XeyR8jJR6KelIXARM9bFQe8A6Q3W4Klmwy5Ckd5gz7jgUNHo4UOqutU5Sk1DtKLbpDP0nLCg1xqQ==} engines: {node: '>=14.0.0'} hasBin: true @@ -4547,27 +4535,23 @@ packages: resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} engines: {node: '>=10'} - sirv@3.0.1: - resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@1.0.0: - resolution: {integrity: sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==} - engines: {node: '>=0.10.0'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} 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'} - - slice-ansi@7.1.0: - resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + slice-ansi@7.1.2: + resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} smart-buffer@4.2.0: @@ -4651,6 +4635,10 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} + string-width@8.1.0: + resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} + engines: {node: '>=20'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4658,8 +4646,8 @@ packages: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + strip-ansi@7.1.2: + resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} strip-final-newline@2.0.0: @@ -4674,8 +4662,8 @@ packages: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} - strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + strip-indent@4.1.0: + resolution: {integrity: sha512-OA95x+JPmL7kc7zCu+e+TeYxEiaIyndRx0OrBcK2QPPH09oAndr2ALvymxWA+Lx1PYYvFUm4O63pRkdJAaW96w==} engines: {node: '>=12'} strip-json-comments@2.0.1: @@ -4768,8 +4756,8 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} tinypool@1.1.1: @@ -4780,15 +4768,15 @@ packages: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - tinyspy@4.0.3: - resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + tinyspy@4.0.4: + resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + tldts-core@7.0.14: + resolution: {integrity: sha512-viZGNK6+NdluOJWwTO9olaugx0bkKhscIdriQQ+lNNhwitIKvb+SvhbYgnCz6j9p7dX3cJntt4agQAKMXLjJ5g==} - tldts@6.1.86: - resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + tldts@7.0.14: + resolution: {integrity: sha512-lMNHE4aSI3LlkMUMicTmAG3tkkitjOQGDTFboPJwAg2kJXKP1ryWEyqujktg5qhrFZOkk5YFzgkxg3jErE+i5w==} hasBin: true tmp-promise@3.0.3: @@ -4810,20 +4798,20 @@ packages: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + tough-cookie@6.0.0: + resolution: {integrity: sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==} engines: {node: '>=16'} tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} - engines: {node: '>=18'} + tr46@6.0.0: + resolution: {integrity: sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==} + engines: {node: '>=20'} - trash@9.0.0: - resolution: {integrity: sha512-6U3A0olN4C16iiPZvoF93AcZDNZtv/nI2bHb2m/sO3h/m8VPzg9tPdd3n3LVcYLWz7ui0AHaXYhIuRjzGW9ptg==} - engines: {node: '>=18'} + trash@10.0.0: + resolution: {integrity: sha512-nyHQPJ7F4dYCfj1xN95DAkLkf9qlyRLDpT9yYwcR5SH16q+f7VA1L5VwsdEqWFUuGNpKwgLnbOS1QBvXMYnLfA==} + engines: {node: '>=20'} tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} @@ -4857,10 +4845,6 @@ packages: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} - type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} - type-fest@2.19.0: resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} engines: {node: '>=12.20'} @@ -4879,8 +4863,8 @@ packages: undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + undici-types@7.12.0: + resolution: {integrity: sha512-goOacqME2GYyOZZfb5Lgtu+1IDmAlAEu5xnD3+xTzS10hT0vzpf0SPjkXwAw9Jm+4n/mQGDP3LO8CPbYROeBfQ==} undici@6.21.3: resolution: {integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==} @@ -4890,8 +4874,8 @@ packages: resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} engines: {node: '>=18'} - unimport@5.2.0: - resolution: {integrity: sha512-bTuAMMOOqIAyjV4i4UH7P07pO+EsVxmhOzQ2YJ290J6mkLUdozNhb5I/YoOEheeNADC03ent3Qj07X0fWfUpmw==} + unimport@5.3.0: + resolution: {integrity: sha512-cty7t1DESgm0OPfCy9oyn5u9B5t0tMW6tH6bXTjAGIO3SkJsbg/DXYHjrPrUKqultqbAAoltAfYsuu/FEDocjg==} engines: {node: '>=18.12.0'} unique-filename@2.0.1: @@ -4925,11 +4909,11 @@ packages: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - unocss@66.5.0: - resolution: {integrity: sha512-dnrr3xqIm3B0t6OXyIxFYwfyMgdkp6MVRgrJXSEU0cEmea8lFf7ssU2MNx1Zice3JvQOOpe4FMVINtv/TBZCIA==} + unocss@66.5.1: + resolution: {integrity: sha512-e+9nqOy9v6NwPz0DxFdApGPefW22pCfU0Z1ALuodEoSHen03WlfTuEhkDkcKEpdo78tbIi/BbAYK9qT8p1d9sg==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 66.5.0 + '@unocss/webpack': 66.5.1 vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 peerDependenciesMeta: '@unocss/webpack': @@ -4949,18 +4933,10 @@ packages: '@vueuse/core': optional: true - unplugin-utils@0.2.5: - resolution: {integrity: sha512-gwXJnPRewT4rT7sBi/IvxKTjsms7jX7QIDLOClApuZwR49SXbrB1z2NLUZ+vDHyqCj/n58OzRRqaW+B8OZi8vg==} - engines: {node: '>=18.12.0'} - unplugin-utils@0.3.0: resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==} engines: {node: '>=20.19.0'} - unplugin@1.16.1: - resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} - engines: {node: '>=14.0.0'} - unplugin@2.3.10: resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==} engines: {node: '>=18.12.0'} @@ -4997,8 +4973,8 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite@7.1.4: - resolution: {integrity: sha512-X5QFK4SGynAeeIt+A7ZWnApdUyHYm+pzv/8/A57LqSGcI88U6R6ipOs3uCesdc6yl7nl+zNO0t8LmqAdXcQihw==} + vite@7.1.6: + resolution: {integrity: sha512-SRYIB8t/isTwNn8vMB3MR6E+EQZM/WG1aKmmIUCfDXfVvKfc20ZpamngWHKzAmmu9ppsgxsg4b2I7c90JZudIQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -5077,14 +5053,14 @@ packages: vue-flow-layout@0.2.0: resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==} - vue-i18n@11.1.11: - resolution: {integrity: sha512-LvyteQoXeQiuILbzqv13LbyBna/TEv2Ha+4ZWK2AwGHUzZ8+IBaZS0TJkCgn5izSPLcgZwXy9yyTrewCb2u/MA==} + vue-i18n@11.1.12: + resolution: {integrity: sha512-BnstPj3KLHLrsqbVU2UOrPmr0+Mv11bsUZG0PyCOzsawCivk8W00GMXHeVUWIDOgNaScCuZah47CZFE+Wnl8mw==} engines: {node: '>= 16'} peerDependencies: vue: ^3.0.0 - vue-tsc@3.0.6: - resolution: {integrity: sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==} + vue-tsc@3.0.7: + resolution: {integrity: sha512-BSMmW8GGEgHykrv7mRk6zfTdK+tw4MBZY/x6fFa7IkdXK3s/8hQRacPjG9/8YKFDIWGhBocwi6PlkQQ/93OgIQ==} hasBin: true peerDependencies: typescript: '>=5.0.0' @@ -5111,9 +5087,9 @@ packages: webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + webidl-conversions@8.0.0: + resolution: {integrity: sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==} + engines: {node: '>=20'} webpack-virtual-modules@0.6.2: resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} @@ -5126,9 +5102,9 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} + whatwg-url@15.1.0: + resolution: {integrity: sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==} + engines: {node: '>=20'} whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} @@ -5169,8 +5145,8 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} wrappy@1.0.2: @@ -5270,47 +5246,47 @@ snapshots: 7zip-bin@5.2.0: {} - '@antfu/eslint-config@5.2.1(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.34.0(jiti@2.5.1)))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@antfu/eslint-config@5.3.0(@vue/compiler-sfc@3.5.21)(eslint-plugin-format@1.0.1(eslint@9.35.0(jiti@2.5.1)))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@antfu/install-pkg': 1.1.0 '@clack/prompts': 0.11.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.35.0(jiti@2.5.1)) '@eslint/markdown': 7.2.0 - '@stylistic/eslint-plugin': 5.3.1(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@vitest/eslint-plugin': 1.3.6(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + '@stylistic/eslint-plugin': 5.3.1(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@vitest/eslint-plugin': 1.3.12(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) ansis: 4.1.0 cac: 6.7.14 - eslint: 9.34.0(jiti@2.5.1) - eslint-config-flat-gitignore: 2.1.0(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-config-flat-gitignore: 2.1.0(eslint@9.35.0(jiti@2.5.1)) eslint-flat-config-utils: 2.1.1 - eslint-merge-processors: 2.0.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-antfu: 3.1.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-command: 3.3.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-import-lite: 0.3.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-jsdoc: 52.0.4(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-jsonc: 2.20.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-n: 17.21.3(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + eslint-merge-processors: 2.0.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-antfu: 3.1.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-command: 3.3.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-import-lite: 0.3.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint-plugin-jsdoc: 54.7.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-jsonc: 2.20.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-n: 17.23.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 4.15.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-pnpm: 1.1.1(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-regexp: 2.10.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-toml: 0.12.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-unicorn: 60.0.0(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1)) - eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1))) - eslint-plugin-yml: 1.18.0(eslint@9.34.0(jiti@2.5.1)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.34.0(jiti@2.5.1)) - globals: 16.3.0 + eslint-plugin-perfectionist: 4.15.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint-plugin-pnpm: 1.1.1(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-regexp: 2.10.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-toml: 0.12.0(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-unicorn: 61.0.2(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-unused-imports: 4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1)) + eslint-plugin-vue: 10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))) + eslint-plugin-yml: 1.18.0(eslint@9.35.0(jiti@2.5.1)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.35.0(jiti@2.5.1)) + globals: 16.4.0 jsonc-eslint-parser: 2.4.0 local-pkg: 1.1.2 parse-gitignore: 2.0.0 toml-eslint-parser: 0.10.0 - vue-eslint-parser: 10.2.0(eslint@9.34.0(jiti@2.5.1)) + vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.5.1)) yaml-eslint-parser: 1.3.0 optionalDependencies: - eslint-plugin-format: 1.0.1(eslint@9.34.0(jiti@2.5.1)) + eslint-plugin-format: 1.0.1(eslint@9.35.0(jiti@2.5.1)) transitivePeerDependencies: - '@eslint/json' - '@vue/compiler-sfc' @@ -5327,13 +5303,22 @@ snapshots: '@antfu/utils@9.2.0': {} - '@asamuzakjp/css-color@3.2.0': + '@asamuzakjp/css-color@4.0.4': dependencies: '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) '@csstools/css-tokenizer': 3.0.4 - lru-cache: 10.4.3 + lru-cache: 11.2.1 + + '@asamuzakjp/dom-selector@6.5.5': + dependencies: + '@asamuzakjp/nwsapi': 2.3.9 + bidi-js: 1.0.3 + css-tree: 3.1.0 + is-potential-custom-element-name: 1.0.1 + + '@asamuzakjp/nwsapi@2.3.9': {} '@babel/code-frame@7.27.1': dependencies: @@ -5343,10 +5328,10 @@ snapshots: '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.28.3 - '@babel/types': 7.28.2 + '@babel/parser': 7.28.4 + '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-string-parser@7.27.1': {} @@ -5355,17 +5340,17 @@ snapshots: '@babel/parser@7.27.7': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 - '@babel/parser@7.28.3': + '@babel/parser@7.28.4': dependencies: - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 '@babel/parser': 7.27.7 - '@babel/types': 7.28.2 + '@babel/types': 7.28.4 '@babel/traverse@7.27.7': dependencies: @@ -5373,13 +5358,13 @@ snapshots: '@babel/generator': 7.28.3 '@babel/parser': 7.27.7 '@babel/template': 7.27.2 - '@babel/types': 7.28.2 - debug: 4.4.1 + '@babel/types': 7.28.4 + debug: 4.4.3 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/types@7.28.2': + '@babel/types@7.28.4': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 @@ -5422,6 +5407,10 @@ snapshots: dependencies: '@csstools/css-tokenizer': 3.0.4 + '@csstools/css-syntax-patches-for-csstree@1.0.14(postcss@8.5.6)': + dependencies: + postcss: 8.5.6 + '@csstools/css-tokenizer@3.0.4': {} '@develar/schema-utils@2.6.5': @@ -5455,7 +5444,7 @@ snapshots: '@electron/get@2.0.3': dependencies: - debug: 4.4.1 + debug: 4.4.3 env-paths: 2.2.1 fs-extra: 8.1.0 got: 11.8.6 @@ -5485,7 +5474,7 @@ snapshots: '@electron/notarize@2.5.0': dependencies: - debug: 4.4.1 + debug: 4.4.3 fs-extra: 9.1.0 promise-retry: 2.0.1 transitivePeerDependencies: @@ -5494,7 +5483,7 @@ snapshots: '@electron/osx-sign@1.3.1': dependencies: compare-version: 0.1.2 - debug: 4.4.1 + debug: 4.4.3 fs-extra: 10.1.0 isbinaryfile: 4.0.10 minimist: 1.2.8 @@ -5507,11 +5496,11 @@ snapshots: '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/0453f4fe4656c63277185b35feedec5716a27d90 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 - debug: 4.4.1 - detect-libc: 2.0.4 + debug: 4.4.3 + detect-libc: 2.1.0 fs-extra: 10.1.0 got: 11.8.6 - node-abi: 3.75.0 + node-abi: 3.77.0 node-api-version: 0.2.1 ora: 5.4.1 read-binary-file-arch: 1.0.6 @@ -5526,9 +5515,9 @@ snapshots: dependencies: '@electron/asar': 3.2.18 '@malept/cross-spawn-promise': 2.0.0 - debug: 4.4.1 + debug: 4.4.3 dir-compare: 4.2.0 - fs-extra: 11.3.1 + fs-extra: 11.3.2 minimatch: 9.0.5 plist: 3.1.0 transitivePeerDependencies: @@ -5564,118 +5553,118 @@ snapshots: '@es-joy/jsdoccomment@0.50.2': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.44.0 comment-parser: 1.4.1 esquery: 1.6.0 jsdoc-type-pratt-parser: 4.1.0 - '@es-joy/jsdoccomment@0.52.0': + '@es-joy/jsdoccomment@0.56.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.44.0 comment-parser: 1.4.1 esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.1.0 + jsdoc-type-pratt-parser: 5.1.1 - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.10': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.10': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.10': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.10': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.10': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.10': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.10': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.10': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.10': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.10': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.10': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.10': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.10': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.10': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.10': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.10': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.10': optional: true - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.10': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.10': optional: true - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.10': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.10': optional: true - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.10': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.10': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.10': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.10': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.10': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.34.0(jiti@2.5.1))': + '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.35.0(jiti@2.5.1))': dependencies: escape-string-regexp: 4.0.0 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) ignore: 5.3.2 - '@eslint-community/eslint-utils@4.7.0(eslint@9.34.0(jiti@2.5.1))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.35.0(jiti@2.5.1))': dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.3.2(eslint@9.34.0(jiti@2.5.1))': + '@eslint/compat@1.3.2(eslint@9.35.0(jiti@2.5.1))': optionalDependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) '@eslint/config-array@0.21.0': dependencies: '@eslint/object-schema': 2.1.6 - debug: 4.4.1 + debug: 4.4.3 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -5689,7 +5678,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1 + debug: 4.4.3 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -5700,7 +5689,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.34.0': {} + '@eslint/js@9.35.0': {} '@eslint/markdown@7.2.0': dependencies: @@ -5727,23 +5716,21 @@ snapshots: '@humanfs/core@0.19.1': {} - '@humanfs/node@0.16.6': + '@humanfs/node@0.16.7': dependencies: '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.3.1 + '@humanwhocodes/retry': 0.4.3 '@humanwhocodes/module-importer@1.0.1': {} - '@humanwhocodes/retry@0.3.1': {} - '@humanwhocodes/retry@0.4.3': {} - '@iconify/tools@4.1.2': + '@iconify/tools@4.1.3': dependencies: '@iconify/types': 2.0.0 '@iconify/utils': 2.3.0 '@types/tar': 6.1.13 - axios: 1.11.0 + axios: 1.12.2 cheerio: 1.0.0 domhandler: 5.0.3 extract-zip: 2.0.1 @@ -5762,7 +5749,7 @@ snapshots: '@antfu/install-pkg': 1.1.0 '@antfu/utils': 8.1.1 '@iconify/types': 2.0.0 - debug: 4.4.1 + debug: 4.4.3 globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.2 @@ -5770,12 +5757,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@iconify/utils@3.0.1': + '@iconify/utils@3.0.2': dependencies: '@antfu/install-pkg': 1.1.0 '@antfu/utils': 9.2.0 '@iconify/types': 2.0.0 - debug: 4.4.1 + debug: 4.4.3 globals: 15.15.0 kolorist: 1.8.0 local-pkg: 1.1.2 @@ -5783,175 +5770,174 @@ snapshots: transitivePeerDependencies: - supports-color - '@inquirer/checkbox@4.2.2(@types/node@24.3.0)': + '@inquirer/ansi@1.0.0': {} + + '@inquirer/checkbox@4.2.4(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/confirm@5.1.16(@types/node@24.3.0)': + '@inquirer/confirm@5.1.18(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/core@10.2.0(@types/node@24.3.0)': + '@inquirer/core@10.2.2(@types/node@24.5.2)': dependencies: + '@inquirer/ansi': 1.0.0 '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 + '@inquirer/type': 3.0.8(@types/node@24.5.2) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/editor@4.2.18(@types/node@24.3.0)': + '@inquirer/editor@4.2.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/external-editor': 1.0.1(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/external-editor': 1.0.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/expand@4.0.18(@types/node@24.3.0)': + '@inquirer/expand@4.0.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/external-editor@1.0.1(@types/node@24.3.0)': + '@inquirer/external-editor@1.0.2(@types/node@24.5.2)': dependencies: chardet: 2.1.0 - iconv-lite: 0.6.3 + iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@inquirer/figures@1.0.13': {} - '@inquirer/input@4.2.2(@types/node@24.3.0)': + '@inquirer/input@4.2.4(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/number@3.0.18(@types/node@24.3.0)': + '@inquirer/number@3.0.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/password@4.0.18(@types/node@24.3.0)': + '@inquirer/password@4.0.20(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.3.0 - - '@inquirer/prompts@7.8.4(@types/node@24.3.0)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@24.3.0) - '@inquirer/confirm': 5.1.16(@types/node@24.3.0) - '@inquirer/editor': 4.2.18(@types/node@24.3.0) - '@inquirer/expand': 4.0.18(@types/node@24.3.0) - '@inquirer/input': 4.2.2(@types/node@24.3.0) - '@inquirer/number': 3.0.18(@types/node@24.3.0) - '@inquirer/password': 4.0.18(@types/node@24.3.0) - '@inquirer/rawlist': 4.1.6(@types/node@24.3.0) - '@inquirer/search': 3.1.1(@types/node@24.3.0) - '@inquirer/select': 4.3.2(@types/node@24.3.0) + '@types/node': 24.5.2 + + '@inquirer/prompts@7.8.6(@types/node@24.5.2)': + dependencies: + '@inquirer/checkbox': 4.2.4(@types/node@24.5.2) + '@inquirer/confirm': 5.1.18(@types/node@24.5.2) + '@inquirer/editor': 4.2.20(@types/node@24.5.2) + '@inquirer/expand': 4.0.20(@types/node@24.5.2) + '@inquirer/input': 4.2.4(@types/node@24.5.2) + '@inquirer/number': 3.0.20(@types/node@24.5.2) + '@inquirer/password': 4.0.20(@types/node@24.5.2) + '@inquirer/rawlist': 4.1.8(@types/node@24.5.2) + '@inquirer/search': 3.1.3(@types/node@24.5.2) + '@inquirer/select': 4.3.4(@types/node@24.5.2) optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/rawlist@4.1.6(@types/node@24.3.0)': + '@inquirer/rawlist@4.1.8(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/search@3.1.1(@types/node@24.3.0)': + '@inquirer/search@3.1.3(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/core': 10.2.2(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/select@4.3.2(@types/node@24.3.0)': + '@inquirer/select@4.3.4(@types/node@24.5.2)': dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.5.2) '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 + '@inquirer/type': 3.0.8(@types/node@24.5.2) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@inquirer/type@3.0.8(@types/node@24.3.0)': + '@inquirer/type@3.0.8(@types/node@24.5.2)': optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 - '@intlify/bundle-utils@10.0.1(vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2)))': + '@intlify/bundle-utils@11.0.1(vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2)))': dependencies: - '@intlify/message-compiler': 11.1.11 - '@intlify/shared': 11.1.11 + '@intlify/message-compiler': 11.1.12 + '@intlify/shared': 11.1.12 acorn: 8.15.0 + esbuild: 0.25.10 escodegen: 2.1.0 estree-walker: 2.0.2 jsonc-eslint-parser: 2.4.0 - mlly: 1.8.0 source-map-js: 1.2.1 yaml-eslint-parser: 1.3.0 optionalDependencies: - vue-i18n: 11.1.11(vue@3.5.21(typescript@5.9.2)) + vue-i18n: 11.1.12(vue@3.5.21(typescript@5.9.2)) - '@intlify/core-base@11.1.11': + '@intlify/core-base@11.1.12': dependencies: - '@intlify/message-compiler': 11.1.11 - '@intlify/shared': 11.1.11 + '@intlify/message-compiler': 11.1.12 + '@intlify/shared': 11.1.12 - '@intlify/message-compiler@11.1.11': + '@intlify/message-compiler@11.1.12': dependencies: - '@intlify/shared': 11.1.11 + '@intlify/shared': 11.1.12 source-map-js: 1.2.1 - '@intlify/shared@11.1.11': {} + '@intlify/shared@11.1.12': {} - '@intlify/unplugin-vue-i18n@6.0.8(@vue/compiler-dom@3.5.21)(eslint@9.34.0(jiti@2.5.1))(rollup@4.50.0)(typescript@5.9.2)(vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2))': + '@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.21)(eslint@9.35.0(jiti@2.5.1))(rollup@4.51.0)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2))': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@intlify/bundle-utils': 10.0.1(vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2))) - '@intlify/shared': 11.1.11 - '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.21)(vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2)) - '@rollup/pluginutils': 5.2.0(rollup@4.50.0) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - debug: 4.4.1 + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@intlify/bundle-utils': 11.0.1(vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2))) + '@intlify/shared': 11.1.12 + '@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.21)(vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2)) + '@rollup/pluginutils': 5.3.0(rollup@4.51.0) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + debug: 4.4.3 fast-glob: 3.3.3 - js-yaml: 4.1.0 - json5: 2.2.3 - pathe: 1.1.2 + pathe: 2.0.3 picocolors: 1.1.1 - source-map-js: 1.2.1 - unplugin: 1.16.1 + unplugin: 2.3.10 vue: 3.5.21(typescript@5.9.2) optionalDependencies: - vue-i18n: 11.1.11(vue@3.5.21(typescript@5.9.2)) + vue-i18n: 11.1.12(vue@3.5.21(typescript@5.9.2)) transitivePeerDependencies: - '@vue/compiler-dom' - eslint @@ -5959,14 +5945,14 @@ snapshots: - supports-color - typescript - '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.11)(@vue/compiler-dom@3.5.21)(vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2))': + '@intlify/vue-i18n-extensions@8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.21)(vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2)))(vue@3.5.21(typescript@5.9.2))': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 optionalDependencies: - '@intlify/shared': 11.1.11 + '@intlify/shared': 11.1.12 '@vue/compiler-dom': 3.5.21 vue: 3.5.21(typescript@5.9.2) - vue-i18n: 11.1.11(vue@3.5.21(typescript@5.9.2)) + vue-i18n: 11.1.12(vue@3.5.21(typescript@5.9.2)) '@isaacs/balanced-match@4.0.1': {} @@ -5978,7 +5964,7 @@ snapshots: dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 @@ -5986,23 +5972,23 @@ snapshots: '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.11': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/sourcemap-codec@1.5.5': {} - '@jridgewell/trace-mapping@0.3.30': + '@jridgewell/trace-mapping@0.3.31': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 @@ -6013,18 +5999,18 @@ snapshots: '@malept/flatpak-bundler@0.4.0': dependencies: - debug: 4.4.1 + debug: 4.4.3 fs-extra: 9.1.0 lodash: 4.17.21 tmp-promise: 3.0.3 transitivePeerDependencies: - supports-color - '@napi-rs/wasm-runtime@1.0.3': + '@napi-rs/wasm-runtime@1.0.5': dependencies: '@emnapi/core': 1.5.0 '@emnapi/runtime': 1.5.0 - '@tybys/wasm-util': 0.10.0 + '@tybys/wasm-util': 0.10.1 optional: true '@nodelib/fs.scandir@2.1.5': @@ -6053,131 +6039,131 @@ snapshots: mkdirp: 1.0.4 rimraf: 3.0.2 - '@octokit/auth-token@5.1.2': {} + '@octokit/auth-token@6.0.0': {} - '@octokit/core@6.1.6': + '@octokit/core@7.0.4': dependencies: - '@octokit/auth-token': 5.1.2 - '@octokit/graphql': 8.2.2 - '@octokit/request': 9.2.4 - '@octokit/request-error': 6.1.8 - '@octokit/types': 14.1.0 - before-after-hook: 3.0.2 + '@octokit/auth-token': 6.0.0 + '@octokit/graphql': 9.0.1 + '@octokit/request': 10.0.3 + '@octokit/request-error': 7.0.0 + '@octokit/types': 15.0.0 + before-after-hook: 4.0.0 universal-user-agent: 7.0.3 - '@octokit/endpoint@10.1.4': + '@octokit/endpoint@11.0.0': dependencies: '@octokit/types': 14.1.0 universal-user-agent: 7.0.3 - '@octokit/graphql@8.2.2': + '@octokit/graphql@9.0.1': dependencies: - '@octokit/request': 9.2.4 + '@octokit/request': 10.0.3 '@octokit/types': 14.1.0 universal-user-agent: 7.0.3 - '@octokit/openapi-types@24.2.0': {} - '@octokit/openapi-types@25.1.0': {} - '@octokit/plugin-paginate-rest@11.6.0(@octokit/core@6.1.6)': + '@octokit/openapi-types@26.0.0': {} + + '@octokit/plugin-paginate-rest@13.1.1(@octokit/core@7.0.4)': dependencies: - '@octokit/core': 6.1.6 - '@octokit/types': 13.10.0 + '@octokit/core': 7.0.4 + '@octokit/types': 14.1.0 - '@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.6)': + '@octokit/plugin-request-log@6.0.0(@octokit/core@7.0.4)': dependencies: - '@octokit/core': 6.1.6 + '@octokit/core': 7.0.4 - '@octokit/plugin-rest-endpoint-methods@13.5.0(@octokit/core@6.1.6)': + '@octokit/plugin-rest-endpoint-methods@16.1.0(@octokit/core@7.0.4)': dependencies: - '@octokit/core': 6.1.6 - '@octokit/types': 13.10.0 + '@octokit/core': 7.0.4 + '@octokit/types': 15.0.0 - '@octokit/request-error@6.1.8': + '@octokit/request-error@7.0.0': dependencies: '@octokit/types': 14.1.0 - '@octokit/request@9.2.4': + '@octokit/request@10.0.3': dependencies: - '@octokit/endpoint': 10.1.4 - '@octokit/request-error': 6.1.8 + '@octokit/endpoint': 11.0.0 + '@octokit/request-error': 7.0.0 '@octokit/types': 14.1.0 - fast-content-type-parse: 2.0.1 + fast-content-type-parse: 3.0.0 universal-user-agent: 7.0.3 - '@octokit/rest@21.1.1': - dependencies: - '@octokit/core': 6.1.6 - '@octokit/plugin-paginate-rest': 11.6.0(@octokit/core@6.1.6) - '@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.6) - '@octokit/plugin-rest-endpoint-methods': 13.5.0(@octokit/core@6.1.6) - - '@octokit/types@13.10.0': + '@octokit/rest@22.0.0': dependencies: - '@octokit/openapi-types': 24.2.0 + '@octokit/core': 7.0.4 + '@octokit/plugin-paginate-rest': 13.1.1(@octokit/core@7.0.4) + '@octokit/plugin-request-log': 6.0.0(@octokit/core@7.0.4) + '@octokit/plugin-rest-endpoint-methods': 16.1.0(@octokit/core@7.0.4) '@octokit/types@14.1.0': dependencies: '@octokit/openapi-types': 25.1.0 - '@oxc-resolver/binding-android-arm-eabi@11.7.1': + '@octokit/types@15.0.0': + dependencies: + '@octokit/openapi-types': 26.0.0 + + '@oxc-resolver/binding-android-arm-eabi@11.8.2': optional: true - '@oxc-resolver/binding-android-arm64@11.7.1': + '@oxc-resolver/binding-android-arm64@11.8.2': optional: true - '@oxc-resolver/binding-darwin-arm64@11.7.1': + '@oxc-resolver/binding-darwin-arm64@11.8.2': optional: true - '@oxc-resolver/binding-darwin-x64@11.7.1': + '@oxc-resolver/binding-darwin-x64@11.8.2': optional: true - '@oxc-resolver/binding-freebsd-x64@11.7.1': + '@oxc-resolver/binding-freebsd-x64@11.8.2': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.7.1': + '@oxc-resolver/binding-linux-arm-gnueabihf@11.8.2': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.7.1': + '@oxc-resolver/binding-linux-arm-musleabihf@11.8.2': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.7.1': + '@oxc-resolver/binding-linux-arm64-gnu@11.8.2': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.7.1': + '@oxc-resolver/binding-linux-arm64-musl@11.8.2': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.7.1': + '@oxc-resolver/binding-linux-ppc64-gnu@11.8.2': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.7.1': + '@oxc-resolver/binding-linux-riscv64-gnu@11.8.2': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.7.1': + '@oxc-resolver/binding-linux-riscv64-musl@11.8.2': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.7.1': + '@oxc-resolver/binding-linux-s390x-gnu@11.8.2': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.7.1': + '@oxc-resolver/binding-linux-x64-gnu@11.8.2': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.7.1': + '@oxc-resolver/binding-linux-x64-musl@11.8.2': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.7.1': + '@oxc-resolver/binding-wasm32-wasi@11.8.2': dependencies: - '@napi-rs/wasm-runtime': 1.0.3 + '@napi-rs/wasm-runtime': 1.0.5 optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.7.1': + '@oxc-resolver/binding-win32-arm64-msvc@11.8.2': optional: true - '@oxc-resolver/binding-win32-ia32-msvc@11.7.1': + '@oxc-resolver/binding-win32-ia32-msvc@11.8.2': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.7.1': + '@oxc-resolver/binding-win32-x64-msvc@11.8.2': optional: true '@parcel/watcher-android-arm64@2.5.1': @@ -6241,7 +6227,7 @@ snapshots: '@parcel/watcher-win32-x64': 2.5.1 optional: true - '@phun-ky/typeof@1.2.8': {} + '@phun-ky/typeof@2.0.3': {} '@pkgjs/parseargs@0.11.0': optional: true @@ -6258,75 +6244,75 @@ snapshots: '@rolldown/pluginutils@1.0.0-beta.29': {} - '@rollup/pluginutils@5.2.0(rollup@4.50.0)': + '@rollup/pluginutils@5.3.0(rollup@4.51.0)': dependencies: '@types/estree': 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.50.0 + rollup: 4.51.0 - '@rollup/rollup-android-arm-eabi@4.50.0': + '@rollup/rollup-android-arm-eabi@4.51.0': optional: true - '@rollup/rollup-android-arm64@4.50.0': + '@rollup/rollup-android-arm64@4.51.0': optional: true - '@rollup/rollup-darwin-arm64@4.50.0': + '@rollup/rollup-darwin-arm64@4.51.0': optional: true - '@rollup/rollup-darwin-x64@4.50.0': + '@rollup/rollup-darwin-x64@4.51.0': optional: true - '@rollup/rollup-freebsd-arm64@4.50.0': + '@rollup/rollup-freebsd-arm64@4.51.0': optional: true - '@rollup/rollup-freebsd-x64@4.50.0': + '@rollup/rollup-freebsd-x64@4.51.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.50.0': + '@rollup/rollup-linux-arm-gnueabihf@4.51.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.50.0': + '@rollup/rollup-linux-arm-musleabihf@4.51.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.50.0': + '@rollup/rollup-linux-arm64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.50.0': + '@rollup/rollup-linux-arm64-musl@4.51.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.50.0': + '@rollup/rollup-linux-loong64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-ppc64-gnu@4.50.0': + '@rollup/rollup-linux-ppc64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.50.0': + '@rollup/rollup-linux-riscv64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-riscv64-musl@4.50.0': + '@rollup/rollup-linux-riscv64-musl@4.51.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.50.0': + '@rollup/rollup-linux-s390x-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.50.0': + '@rollup/rollup-linux-x64-gnu@4.51.0': optional: true - '@rollup/rollup-linux-x64-musl@4.50.0': + '@rollup/rollup-linux-x64-musl@4.51.0': optional: true - '@rollup/rollup-openharmony-arm64@4.50.0': + '@rollup/rollup-openharmony-arm64@4.51.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.50.0': + '@rollup/rollup-win32-arm64-msvc@4.51.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.50.0': + '@rollup/rollup-win32-ia32-msvc@4.51.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.50.0': + '@rollup/rollup-win32-x64-msvc@4.51.0': optional: true '@rushstack/eslint-patch@1.12.0': {} @@ -6336,13 +6322,13 @@ snapshots: '@simple-libs/child-process-utils@1.0.1': dependencies: '@simple-libs/stream-utils': 1.1.0 - '@types/node': 22.18.0 + '@types/node': 22.18.6 '@simple-libs/stream-utils@1.1.0': dependencies: - '@types/node': 22.18.0 + '@types/node': 22.18.6 - '@sindresorhus/chunkify@1.0.0': {} + '@sindresorhus/chunkify@2.0.0': {} '@sindresorhus/df@1.0.1': {} @@ -6352,15 +6338,17 @@ snapshots: '@sindresorhus/is@4.6.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@sindresorhus/merge-streams@4.0.0': {} '@stroncium/procfs@1.2.1': {} - '@stylistic/eslint-plugin@5.3.1(eslint@9.34.0(jiti@2.5.1))': + '@stylistic/eslint-plugin@5.3.1(eslint@9.35.0(jiti@2.5.1))': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/types': 8.44.0 + eslint: 9.35.0(jiti@2.5.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -6378,20 +6366,20 @@ snapshots: '@tsconfig/node20@20.1.6': {} - '@tybys/wasm-util@0.10.0': + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true '@types/better-sqlite3@7.6.13': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/cacheable-request@6.0.3': dependencies: '@types/http-cache-semantics': 4.0.4 '@types/keyv': 3.1.4 - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/responselike': 1.0.3 '@types/chai@5.2.2': @@ -6409,17 +6397,17 @@ snapshots: '@types/fs-extra@11.0.4': dependencies: '@types/jsonfile': 6.1.4 - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/fs-extra@9.0.13': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/http-cache-semantics@4.0.4': {} '@types/jsdom@21.1.7': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -6427,11 +6415,11 @@ snapshots: '@types/jsonfile@6.1.4': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/keyv@3.1.4': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/mdast@4.0.4': dependencies: @@ -6439,13 +6427,13 @@ snapshots: '@types/ms@2.1.0': {} - '@types/node@22.18.0': + '@types/node@22.18.6': dependencies: undici-types: 6.21.0 - '@types/node@24.3.0': + '@types/node@24.5.2': dependencies: - undici-types: 7.10.0 + undici-types: 7.12.0 '@types/parse-path@7.1.0': dependencies: @@ -6453,17 +6441,17 @@ snapshots: '@types/plist@3.0.5': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 xmlbuilder: 15.1.1 optional: true '@types/responselike@1.0.3': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 '@types/tar@6.1.13': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -6477,18 +6465,18 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 optional: true - '@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/type-utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/type-utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + eslint: 9.35.0(jiti@2.5.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -6497,57 +6485,57 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/visitor-keys': 8.42.0 - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.42.0(typescript@5.9.2)': + '@typescript-eslint/project-service@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) - '@typescript-eslint/types': 8.42.0 - debug: 4.4.1 + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + debug: 4.4.3 typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.42.0': + '@typescript-eslint/scope-manager@8.44.0': dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/visitor-keys': 8.42.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 - '@typescript-eslint/tsconfig-utils@8.42.0(typescript@5.9.2)': + '@typescript-eslint/tsconfig-utils@8.44.0(typescript@5.9.2)': dependencies: typescript: 5.9.2 - '@typescript-eslint/type-utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/type-utils@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) ts-api-utils: 2.1.0(typescript@5.9.2) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.42.0': {} + '@typescript-eslint/types@8.44.0': {} - '@typescript-eslint/typescript-estree@8.42.0(typescript@5.9.2)': + '@typescript-eslint/typescript-estree@8.44.0(typescript@5.9.2)': dependencies: - '@typescript-eslint/project-service': 8.42.0(typescript@5.9.2) - '@typescript-eslint/tsconfig-utils': 8.42.0(typescript@5.9.2) - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/visitor-keys': 8.42.0 - debug: 4.4.1 + '@typescript-eslint/project-service': 8.44.0(typescript@5.9.2) + '@typescript-eslint/tsconfig-utils': 8.44.0(typescript@5.9.2) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/visitor-keys': 8.44.0 + debug: 4.4.3 fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 @@ -6557,185 +6545,185 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)': + '@typescript-eslint/utils@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/typescript-estree': 8.42.0(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/typescript-estree': 8.44.0(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) typescript: 5.9.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.42.0': + '@typescript-eslint/visitor-keys@8.44.0': dependencies: - '@typescript-eslint/types': 8.42.0 + '@typescript-eslint/types': 8.44.0 eslint-visitor-keys: 4.2.1 - '@unocss/astro@66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@unocss/astro@66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - '@unocss/core': 66.5.0 - '@unocss/reset': 66.5.0 - '@unocss/vite': 66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + '@unocss/core': 66.5.1 + '@unocss/reset': 66.5.1 + '@unocss/vite': 66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) - '@unocss/cli@66.5.0': + '@unocss/cli@66.5.1': dependencies: '@jridgewell/remapping': 2.3.5 - '@unocss/config': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/preset-uno': 66.5.0 + '@unocss/config': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/preset-uno': 66.5.1 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 consola: 3.4.2 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 perfect-debounce: 1.0.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin-utils: 0.3.0 - '@unocss/config@66.5.0': + '@unocss/config@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 unconfig: 7.3.3 - '@unocss/core@66.5.0': {} + '@unocss/core@66.5.1': {} - '@unocss/extractor-arbitrary-variants@66.5.0': + '@unocss/extractor-arbitrary-variants@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/inspector@66.5.0': + '@unocss/inspector@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 colorette: 2.0.20 gzip-size: 6.0.0 - sirv: 3.0.1 + sirv: 3.0.2 vue-flow-layout: 0.2.0 - '@unocss/postcss@66.5.0(postcss@8.5.6)': + '@unocss/postcss@66.5.1(postcss@8.5.6)': dependencies: - '@unocss/config': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/config': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 css-tree: 3.1.0 postcss: 8.5.6 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 - '@unocss/preset-attributify@66.5.0': + '@unocss/preset-attributify@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/preset-icons@66.5.0': + '@unocss/preset-icons@66.5.1': dependencies: - '@iconify/utils': 3.0.1 - '@unocss/core': 66.5.0 + '@iconify/utils': 3.0.2 + '@unocss/core': 66.5.1 ofetch: 1.4.1 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@66.5.0': + '@unocss/preset-mini@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/extractor-arbitrary-variants': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/extractor-arbitrary-variants': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-tagify@66.5.0': + '@unocss/preset-tagify@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/preset-typography@66.5.0': + '@unocss/preset-typography@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-uno@66.5.0': + '@unocss/preset-uno@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/preset-wind3': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/preset-wind3': 66.5.1 - '@unocss/preset-web-fonts@66.5.0': + '@unocss/preset-web-fonts@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 ofetch: 1.4.1 - '@unocss/preset-wind3@66.5.0': + '@unocss/preset-wind3@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/preset-mini': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/preset-mini': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-wind4@66.5.0': + '@unocss/preset-wind4@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/extractor-arbitrary-variants': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/extractor-arbitrary-variants': 66.5.1 + '@unocss/rule-utils': 66.5.1 - '@unocss/preset-wind@66.5.0': + '@unocss/preset-wind@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/preset-wind3': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/preset-wind3': 66.5.1 - '@unocss/reset@66.5.0': {} + '@unocss/reset@66.5.1': {} - '@unocss/rule-utils@66.5.0': + '@unocss/rule-utils@66.5.1': dependencies: - '@unocss/core': 66.5.0 - magic-string: 0.30.18 + '@unocss/core': 66.5.1 + magic-string: 0.30.19 - '@unocss/transformer-attributify-jsx@66.5.0': + '@unocss/transformer-attributify-jsx@66.5.1': dependencies: '@babel/parser': 7.27.7 '@babel/traverse': 7.27.7 - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 transitivePeerDependencies: - supports-color - '@unocss/transformer-compile-class@66.5.0': + '@unocss/transformer-compile-class@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/transformer-directives@66.5.0': + '@unocss/transformer-directives@66.5.1': dependencies: - '@unocss/core': 66.5.0 - '@unocss/rule-utils': 66.5.0 + '@unocss/core': 66.5.1 + '@unocss/rule-utils': 66.5.1 css-tree: 3.1.0 - '@unocss/transformer-variant-group@66.5.0': + '@unocss/transformer-variant-group@66.5.1': dependencies: - '@unocss/core': 66.5.0 + '@unocss/core': 66.5.1 - '@unocss/vite@66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@unocss/vite@66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@jridgewell/remapping': 2.3.5 - '@unocss/config': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/inspector': 66.5.0 + '@unocss/config': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/inspector': 66.5.1 chokidar: 3.6.0 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin-utils: 0.3.0 - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) - '@vitejs/plugin-vue@6.0.1(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': + '@vitejs/plugin-vue@6.0.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))(vue@3.5.21(typescript@5.9.2))': dependencies: '@rolldown/pluginutils': 1.0.0-beta.29 - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) vue: 3.5.21(typescript@5.9.2) - '@vitest/eslint-plugin@1.3.6(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/eslint-plugin@1.3.12(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2)(vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: - '@typescript-eslint/scope-manager': 8.42.0 - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/scope-manager': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) optionalDependencies: typescript: 5.9.2 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -6747,13 +6735,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1))': + '@vitest/mocker@3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.18 + magic-string: 0.30.19 optionalDependencies: - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -6768,12 +6756,12 @@ snapshots: '@vitest/snapshot@3.2.4': dependencies: '@vitest/pretty-format': 3.2.4 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 '@vitest/spy@3.2.4': dependencies: - tinyspy: 4.0.3 + tinyspy: 4.0.4 '@vitest/utils@3.2.4': dependencies: @@ -6795,7 +6783,7 @@ snapshots: '@vue/compiler-core@3.5.21': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/shared': 3.5.21 entities: 4.5.0 estree-walker: 2.0.2 @@ -6808,13 +6796,13 @@ snapshots: '@vue/compiler-sfc@3.5.21': dependencies: - '@babel/parser': 7.28.3 + '@babel/parser': 7.28.4 '@vue/compiler-core': 3.5.21 '@vue/compiler-dom': 3.5.21 '@vue/compiler-ssr': 3.5.21 '@vue/shared': 3.5.21 estree-walker: 2.0.2 - magic-string: 0.30.18 + magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 @@ -6848,7 +6836,7 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@3.0.6(typescript@5.9.2)': + '@vue/language-core@3.0.7(typescript@5.9.2)': dependencies: '@volar/language-core': 2.4.23 '@vue/compiler-dom': 3.5.21 @@ -6943,23 +6931,19 @@ snapshots: alien-signals@2.0.7: {} - ansi-escapes@4.3.2: - dependencies: - type-fest: 0.21.3 - - ansi-escapes@7.0.0: + ansi-escapes@7.1.0: dependencies: environment: 1.1.0 ansi-regex@5.0.1: {} - ansi-regex@6.2.0: {} + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} ansis@4.1.0: {} @@ -6986,7 +6970,7 @@ snapshots: builder-util-runtime: 9.3.1 chromium-pickle-js: 0.2.0 config-file-ts: 0.2.8-rc1 - debug: 4.4.1 + debug: 4.4.3 dmg-builder: 26.0.12(electron-builder-squirrel-windows@26.0.12) dotenv: 16.6.1 dotenv-expand: 11.0.7 @@ -7026,12 +7010,6 @@ snapshots: array-ify@1.0.0: {} - array-union@1.0.2: - dependencies: - array-uniq: 1.0.3 - - array-uniq@1.0.3: {} - assert-plus@1.0.0: optional: true @@ -7056,7 +7034,7 @@ snapshots: at-least-node@1.0.0: {} - axios@1.11.0: + axios@1.12.2: dependencies: follow-redirects: 1.15.11 form-data: 4.0.4 @@ -7068,15 +7046,21 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.8.6: {} + basic-ftp@5.0.5: {} - before-after-hook@3.0.2: {} + before-after-hook@4.0.0: {} better-sqlite3@12.2.0: dependencies: bindings: 1.5.0 prebuild-install: 7.1.3 + bidi-js@1.0.3: + dependencies: + require-from-string: 2.0.2 + binary-extensions@2.3.0: {} bindings@1.5.0: @@ -7109,12 +7093,13 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.25.4: + browserslist@4.26.2: dependencies: - caniuse-lite: 1.0.30001739 - electron-to-chromium: 1.5.213 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.4) + baseline-browser-mapping: 2.8.6 + caniuse-lite: 1.0.30001743 + electron-to-chromium: 1.5.222 + node-releases: 2.0.21 + update-browserslist-db: 1.1.3(browserslist@4.26.2) buffer-crc32@0.2.13: {} @@ -7127,7 +7112,7 @@ snapshots: builder-util-runtime@9.3.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 sax: 1.4.1 transitivePeerDependencies: - supports-color @@ -7140,7 +7125,7 @@ snapshots: builder-util-runtime: 9.3.1 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 fs-extra: 10.1.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -7160,21 +7145,21 @@ snapshots: dependencies: ansis: 4.1.0 args-tokenizer: 0.3.0 - c12: 3.2.0 + c12: 3.3.0 cac: 6.7.14 escalade: 3.2.0 jsonc-parser: 3.3.1 package-manager-detector: 1.3.0 semver: 7.7.2 tinyexec: 1.0.1 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 yaml: 2.8.1 transitivePeerDependencies: - magicast bundle-name@4.1.0: dependencies: - run-applescript: 7.0.0 + run-applescript: 7.1.0 c12@1.11.2: dependencies: @@ -7191,22 +7176,7 @@ snapshots: pkg-types: 1.3.1 rc9: 2.1.2 - c12@3.1.0: - dependencies: - chokidar: 4.0.3 - confbox: 0.2.2 - defu: 6.1.4 - dotenv: 16.6.1 - exsolve: 1.0.7 - giget: 2.0.0 - jiti: 2.5.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 1.0.0 - pkg-types: 2.3.0 - rc9: 2.1.2 - - c12@3.2.0: + c12@3.3.0: dependencies: chokidar: 4.0.3 confbox: 0.2.2 @@ -7217,7 +7187,7 @@ snapshots: jiti: 2.5.1 ohash: 2.0.11 pathe: 2.0.3 - perfect-debounce: 1.0.0 + perfect-debounce: 2.0.0 pkg-types: 2.3.0 rc9: 2.1.2 @@ -7265,7 +7235,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001739: {} + caniuse-lite@1.0.30001743: {} ccount@2.0.1: {} @@ -7282,7 +7252,7 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} + chalk@5.6.2: {} change-case@5.4.4: {} @@ -7308,14 +7278,14 @@ snapshots: changelogithub@13.16.0: dependencies: ansis: 4.1.0 - c12: 3.2.0 + c12: 3.3.0 cac: 6.7.14 changelogen: 0.5.7 convert-gitmoji: 0.1.5 execa: 9.6.0 ofetch: 1.4.1 semver: 7.7.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 transitivePeerDependencies: - magicast @@ -7394,16 +7364,18 @@ snapshots: cli-spinners@2.9.2: {} + cli-spinners@3.2.1: {} + cli-truncate@2.1.0: dependencies: slice-ansi: 3.0.0 string-width: 4.2.3 optional: true - cli-truncate@4.0.0: + cli-truncate@5.1.0: dependencies: - slice-ansi: 5.0.0 - string-width: 7.2.0 + slice-ansi: 7.1.2 + string-width: 8.1.0 cli-width@4.1.0: {} @@ -7435,7 +7407,7 @@ snapshots: dependencies: delayed-stream: 1.0.0 - commander@14.0.0: {} + commander@14.0.1: {} commander@2.20.3: {} @@ -7508,7 +7480,7 @@ snapshots: core-js-compat@3.45.1: dependencies: - browserslist: 4.25.4 + browserslist: 4.26.2 core-util-is@1.0.2: optional: true @@ -7564,26 +7536,25 @@ snapshots: dependencies: css-tree: 2.2.1 - cssstyle@4.6.0: + cssstyle@5.3.0(postcss@8.5.6): dependencies: - '@asamuzakjp/css-color': 3.2.0 - rrweb-cssom: 0.8.0 + '@asamuzakjp/css-color': 4.0.4 + '@csstools/css-syntax-patches-for-csstree': 1.0.14(postcss@8.5.6) + css-tree: 3.1.0 + transitivePeerDependencies: + - postcss csstype@3.1.3: {} data-uri-to-buffer@6.0.2: {} - data-urls@5.0.0: + data-urls@6.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 + whatwg-url: 15.1.0 de-indent@1.0.2: {} - debug@4.4.1: - dependencies: - ms: 2.1.3 - debug@4.4.3: dependencies: ms: 2.1.3 @@ -7652,7 +7623,7 @@ snapshots: detect-libc@1.0.3: optional: true - detect-libc@2.0.4: {} + detect-libc@2.1.0: {} detect-node@2.1.0: optional: true @@ -7666,10 +7637,6 @@ snapshots: minimatch: 3.1.2 p-limit: 3.1.0 - dir-glob@2.2.2: - dependencies: - path-type: 3.0.0 - dmg-builder@26.0.12(electron-builder-squirrel-windows@26.0.12): dependencies: app-builder-lib: 26.0.12(dmg-builder@26.0.12)(electron-builder-squirrel-windows@26.0.12) @@ -7786,11 +7753,11 @@ snapshots: '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 debug: 4.4.3 - detect-libc: 2.0.4 + detect-libc: 2.1.0 fs-extra: 10.1.0 got: 11.8.6 lzma-native: 8.0.6 - node-abi: 3.75.0 + node-abi: 3.77.0 node-api-version: 0.1.4 node-gyp: 9.4.1 ora: 5.4.1 @@ -7801,7 +7768,7 @@ snapshots: - bluebird - supports-color - electron-to-chromium@1.5.213: {} + electron-to-chromium@1.5.222: {} electron-winstaller@5.4.0: dependencies: @@ -7815,10 +7782,10 @@ snapshots: transitivePeerDependencies: - supports-color - electron@37.4.0: + electron@38.1.2: dependencies: '@electron/get': 2.0.3 - '@types/node': 22.18.0 + '@types/node': 22.18.6 extract-zip: 2.0.1 transitivePeerDependencies: - supports-color @@ -7880,34 +7847,34 @@ snapshots: es6-error@4.1.1: optional: true - esbuild@0.25.9: + esbuild@0.25.10: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 + '@esbuild/aix-ppc64': 0.25.10 + '@esbuild/android-arm': 0.25.10 + '@esbuild/android-arm64': 0.25.10 + '@esbuild/android-x64': 0.25.10 + '@esbuild/darwin-arm64': 0.25.10 + '@esbuild/darwin-x64': 0.25.10 + '@esbuild/freebsd-arm64': 0.25.10 + '@esbuild/freebsd-x64': 0.25.10 + '@esbuild/linux-arm': 0.25.10 + '@esbuild/linux-arm64': 0.25.10 + '@esbuild/linux-ia32': 0.25.10 + '@esbuild/linux-loong64': 0.25.10 + '@esbuild/linux-mips64el': 0.25.10 + '@esbuild/linux-ppc64': 0.25.10 + '@esbuild/linux-riscv64': 0.25.10 + '@esbuild/linux-s390x': 0.25.10 + '@esbuild/linux-x64': 0.25.10 + '@esbuild/netbsd-arm64': 0.25.10 + '@esbuild/netbsd-x64': 0.25.10 + '@esbuild/openbsd-arm64': 0.25.10 + '@esbuild/openbsd-x64': 0.25.10 + '@esbuild/openharmony-arm64': 0.25.10 + '@esbuild/sunos-x64': 0.25.10 + '@esbuild/win32-arm64': 0.25.10 + '@esbuild/win32-ia32': 0.25.10 + '@esbuild/win32-x64': 0.25.10 escalade@3.2.0: {} @@ -7925,91 +7892,91 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.34.0(jiti@2.5.1)): + eslint-compat-utils@0.5.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) semver: 7.7.2 - eslint-compat-utils@0.6.5(eslint@9.34.0(jiti@2.5.1)): + eslint-compat-utils@0.6.5(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) semver: 7.7.2 - eslint-config-flat-gitignore@2.1.0(eslint@9.34.0(jiti@2.5.1)): + eslint-config-flat-gitignore@2.1.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint/compat': 1.3.2(eslint@9.34.0(jiti@2.5.1)) - eslint: 9.34.0(jiti@2.5.1) + '@eslint/compat': 1.3.2(eslint@9.35.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) eslint-flat-config-utils@2.1.1: dependencies: pathe: 2.0.3 - eslint-formatting-reporter@0.0.0(eslint@9.34.0(jiti@2.5.1)): + eslint-formatting-reporter@0.0.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) prettier-linter-helpers: 1.0.0 - eslint-json-compat-utils@0.2.1(eslint@9.34.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0): + eslint-json-compat-utils@0.2.1(eslint@9.35.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) esquery: 1.6.0 jsonc-eslint-parser: 2.4.0 - eslint-merge-processors@2.0.0(eslint@9.34.0(jiti@2.5.1)): + eslint-merge-processors@2.0.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-parser-plain@0.1.1: {} - eslint-plugin-antfu@3.1.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-antfu@3.1.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) - eslint-plugin-command@3.3.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-command@3.3.1(eslint@9.35.0(jiti@2.5.1)): dependencies: '@es-joy/jsdoccomment': 0.50.2 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) - eslint-plugin-es-x@7.8.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-es-x@7.8.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.5.1(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.5.1(eslint@9.35.0(jiti@2.5.1)) - eslint-plugin-es@3.0.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-es@3.0.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-utils: 2.1.0 regexpp: 3.2.0 - eslint-plugin-format@1.0.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-format@1.0.1(eslint@9.35.0(jiti@2.5.1)): dependencies: '@dprint/formatter': 0.3.0 '@dprint/markdown': 0.17.8 '@dprint/toml': 0.6.4 - eslint: 9.34.0(jiti@2.5.1) - eslint-formatting-reporter: 0.0.0(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-formatting-reporter: 0.0.0(eslint@9.35.0(jiti@2.5.1)) eslint-parser-plain: 0.1.1 prettier: 3.6.2 synckit: 0.9.3 - eslint-plugin-import-lite@0.3.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-import-lite@0.3.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - '@typescript-eslint/types': 8.42.0 - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + '@typescript-eslint/types': 8.44.0 + eslint: 9.35.0(jiti@2.5.1) optionalDependencies: typescript: 5.9.2 - eslint-plugin-jsdoc@52.0.4(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-jsdoc@54.7.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@es-joy/jsdoccomment': 0.52.0 + '@es-joy/jsdoccomment': 0.56.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) espree: 10.4.0 esquery: 1.6.0 parse-imports-exports: 0.2.4 @@ -8018,12 +7985,12 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.20.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-jsonc@2.20.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.34.0(jiti@2.5.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.34.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.5.1)) + eslint-json-compat-utils: 0.2.1(eslint@9.35.0(jiti@2.5.1))(jsonc-eslint-parser@2.4.0) espree: 10.4.0 graphemer: 1.4.0 jsonc-eslint-parser: 2.4.0 @@ -8032,12 +7999,12 @@ snapshots: transitivePeerDependencies: - '@eslint/json' - eslint-plugin-n@17.21.3(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-n@17.23.1(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) enhanced-resolve: 5.18.3 - eslint: 9.34.0(jiti@2.5.1) - eslint-plugin-es-x: 7.8.0(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-plugin-es-x: 7.8.0(eslint@9.35.0(jiti@2.5.1)) get-tsconfig: 4.10.1 globals: 15.15.0 globrex: 0.1.2 @@ -8049,74 +8016,74 @@ snapshots: eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-node@11.1.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-node@11.1.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) - eslint-plugin-es: 3.0.1(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-plugin-es: 3.0.1(eslint@9.35.0(jiti@2.5.1)) eslint-utils: 2.1.0 ignore: 5.3.2 minimatch: 3.1.2 resolve: 1.22.10 semver: 6.3.1 - eslint-plugin-perfectionist@4.15.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2): + eslint-plugin-perfectionist@4.15.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2): dependencies: - '@typescript-eslint/types': 8.42.0 - '@typescript-eslint/utils': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) - eslint: 9.34.0(jiti@2.5.1) + '@typescript-eslint/types': 8.44.0 + '@typescript-eslint/utils': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) + eslint: 9.35.0(jiti@2.5.1) natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color - typescript - eslint-plugin-pnpm@1.1.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-pnpm@1.1.1(eslint@9.35.0(jiti@2.5.1)): dependencies: empathic: 2.0.0 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) jsonc-eslint-parser: 2.4.0 pathe: 2.0.3 pnpm-workspace-yaml: 1.1.1 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 yaml-eslint-parser: 1.3.0 - eslint-plugin-regexp@2.10.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-regexp@2.10.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 comment-parser: 1.4.1 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) jsdoc-type-pratt-parser: 4.8.0 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-simple-import-sort@12.1.1(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) - eslint-plugin-toml@0.12.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-toml@0.12.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.34.0(jiti@2.5.1)) + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.5.1)) lodash: 4.17.21 toml-eslint-parser: 0.10.0 transitivePeerDependencies: - supports-color - eslint-plugin-unicorn@60.0.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-unicorn@61.0.2(eslint@9.35.0(jiti@2.5.1)): dependencies: '@babel/helper-validator-identifier': 7.27.1 - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint/plugin-kit': 0.3.5 change-case: 5.4.4 ci-info: 4.3.0 clean-regexp: 1.0.0 core-js-compat: 3.45.1 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) esquery: 1.6.0 find-up-simple: 1.0.1 - globals: 16.3.0 + globals: 16.4.0 indent-string: 5.0.0 is-builtin-module: 5.0.0 jsesc: 3.1.0 @@ -8124,42 +8091,42 @@ snapshots: regexp-tree: 0.1.27 regjsparser: 0.12.0 semver: 7.7.2 - strip-indent: 4.0.0 + strip-indent: 4.1.0 - eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-unused-imports@4.2.0(@typescript-eslint/eslint-plugin@8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1)): dependencies: - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.42.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/eslint-plugin': 8.44.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.34.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1))): + eslint-plugin-vue@10.4.0(@typescript-eslint/parser@8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2))(eslint@9.35.0(jiti@2.5.1))(vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1))): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) - eslint: 9.34.0(jiti@2.5.1) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) natural-compare: 1.4.0 nth-check: 2.1.1 postcss-selector-parser: 6.1.2 semver: 7.7.2 - vue-eslint-parser: 10.2.0(eslint@9.34.0(jiti@2.5.1)) + vue-eslint-parser: 10.2.0(eslint@9.35.0(jiti@2.5.1)) xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/parser': 8.42.0(eslint@9.34.0(jiti@2.5.1))(typescript@5.9.2) + '@typescript-eslint/parser': 8.44.0(eslint@9.35.0(jiti@2.5.1))(typescript@5.9.2) - eslint-plugin-yml@1.18.0(eslint@9.34.0(jiti@2.5.1)): + eslint-plugin-yml@1.18.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.34.0(jiti@2.5.1) - eslint-compat-utils: 0.6.5(eslint@9.34.0(jiti@2.5.1)) + eslint: 9.35.0(jiti@2.5.1) + eslint-compat-utils: 0.6.5(eslint@9.35.0(jiti@2.5.1)) natural-compare: 1.4.0 yaml-eslint-parser: 1.3.0 transitivePeerDependencies: - supports-color - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.34.0(jiti@2.5.1)): + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.21)(eslint@9.35.0(jiti@2.5.1)): dependencies: '@vue/compiler-sfc': 3.5.21 - eslint: 9.34.0(jiti@2.5.1) + eslint: 9.35.0(jiti@2.5.1) eslint-scope@8.4.0: dependencies: @@ -8176,17 +8143,17 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.34.0(jiti@2.5.1): + eslint@9.35.0(jiti@2.5.1): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0(jiti@2.5.1)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.35.0(jiti@2.5.1)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.34.0 + '@eslint/js': 9.35.0 '@eslint/plugin-kit': 0.3.5 - '@humanfs/node': 0.16.6 + '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 @@ -8194,7 +8161,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1 + debug: 4.4.3 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -8250,7 +8217,7 @@ snapshots: esutils@2.0.3: {} - eta@3.5.0: {} + eta@4.0.1: {} eventemitter3@5.0.1: {} @@ -8288,7 +8255,7 @@ snapshots: is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 6.0.0 - pretty-ms: 9.2.0 + pretty-ms: 9.3.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 yoctocolors: 2.1.2 @@ -8303,7 +8270,7 @@ snapshots: extract-zip@2.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -8314,7 +8281,7 @@ snapshots: extsprintf@1.4.1: optional: true - fast-content-type-parse@2.0.1: {} + fast-content-type-parse@3.0.0: {} fast-deep-equal@3.1.3: {} @@ -8413,18 +8380,11 @@ snapshots: jsonfile: 6.2.0 universalify: 2.0.1 - fs-extra@11.3.1: - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.2.0 - universalify: 2.0.1 - fs-extra@11.3.2: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 universalify: 2.0.1 - optional: true fs-extra@7.0.1: dependencies: @@ -8471,7 +8431,7 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.3.1: {} + get-east-asian-width@1.4.0: {} get-intrinsic@1.3.0: dependencies: @@ -8530,7 +8490,7 @@ snapshots: consola: 3.4.2 defu: 6.1.4 node-fetch-native: 1.6.7 - nypm: 0.6.1 + nypm: 0.6.2 pathe: 2.0.3 git-up@8.1.1: @@ -8596,7 +8556,7 @@ snapshots: globals@15.15.0: {} - globals@16.3.0: {} + globals@16.4.0: {} globalthis@1.0.4: dependencies: @@ -8604,14 +8564,14 @@ snapshots: gopd: 1.2.0 optional: true - globby@7.1.1: + globby@14.1.0: dependencies: - array-union: 1.0.2 - dir-glob: 2.2.2 - glob: 7.2.3 - ignore: 3.3.10 - pify: 3.0.0 - slash: 1.0.0 + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 globrex@0.1.2: {} @@ -8690,7 +8650,7 @@ snapshots: http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8709,7 +8669,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8731,9 +8691,11 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ieee754@1.2.1: {} + iconv-lite@0.7.0: + dependencies: + safer-buffer: 2.1.2 - ignore@3.3.10: {} + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -8763,17 +8725,17 @@ snapshots: ini@1.3.8: {} - inquirer@12.7.0(@types/node@24.3.0): + inquirer@12.9.6(@types/node@24.5.2): dependencies: - '@inquirer/core': 10.2.0(@types/node@24.3.0) - '@inquirer/prompts': 7.8.4(@types/node@24.3.0) - '@inquirer/type': 3.0.8(@types/node@24.3.0) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.0 + '@inquirer/core': 10.2.2(@types/node@24.5.2) + '@inquirer/prompts': 7.8.6(@types/node@24.5.2) + '@inquirer/type': 3.0.8(@types/node@24.5.2) mute-stream: 2.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 ip-address@10.0.1: {} @@ -8799,11 +8761,9 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-fullwidth-code-point@4.0.0: {} - is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.3.1 + get-east-asian-width: 1.4.0 is-glob@4.0.3: dependencies: @@ -8841,8 +8801,6 @@ snapshots: is-unicode-supported@0.1.0: {} - is-unicode-supported@1.3.0: {} - is-unicode-supported@2.1.0: {} is-what@4.1.16: {} @@ -8895,30 +8853,33 @@ snapshots: jsdoc-type-pratt-parser@4.8.0: {} - jsdom@26.1.0: + jsdoc-type-pratt-parser@5.1.1: {} + + jsdom@27.0.0(postcss@8.5.6): dependencies: - cssstyle: 4.6.0 - data-urls: 5.0.0 + '@asamuzakjp/dom-selector': 6.5.5 + cssstyle: 5.3.0(postcss@8.5.6) + data-urls: 6.0.0 decimal.js: 10.6.0 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.21 parse5: 7.3.0 rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.1.2 + tough-cookie: 6.0.0 w3c-xmlserializer: 5.0.0 - webidl-conversions: 7.0.0 + webidl-conversions: 8.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.2.0 + whatwg-url: 15.1.0 ws: 8.18.3 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil + - postcss - supports-color - utf-8-validate @@ -8960,16 +8921,16 @@ snapshots: dependencies: json-buffer: 3.0.1 - knip@5.63.0(@types/node@24.3.0)(typescript@5.9.2): + knip@5.63.1(@types/node@24.5.2)(typescript@5.9.2): dependencies: '@nodelib/fs.walk': 1.2.8 - '@types/node': 24.3.0 + '@types/node': 24.5.2 fast-glob: 3.3.3 formatly: 0.3.0 jiti: 2.5.1 js-yaml: 4.1.0 minimist: 1.2.8 - oxc-resolver: 11.7.1 + oxc-resolver: 11.8.2 picocolors: 1.1.1 picomatch: 4.0.3 smol-toml: 1.4.2 @@ -9004,27 +8965,27 @@ snapshots: lint-staged@16.1.6: dependencies: - chalk: 5.6.0 - commander: 14.0.0 - debug: 4.4.1 + chalk: 5.6.2 + commander: 14.0.1 + debug: 4.4.3 lilconfig: 3.1.3 - listr2: 9.0.3 + listr2: 9.0.4 micromatch: 4.0.8 - nano-spawn: 1.0.2 + nano-spawn: 1.0.3 pidtree: 0.6.0 string-argv: 0.3.2 yaml: 2.8.1 transitivePeerDependencies: - supports-color - listr2@9.0.3: + listr2@9.0.4: dependencies: - cli-truncate: 4.0.0 + cli-truncate: 5.1.0 colorette: 2.0.20 eventemitter3: 5.0.1 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.0 + wrap-ansi: 9.0.2 local-pkg@0.5.1: dependencies: @@ -9060,18 +9021,18 @@ snapshots: chalk: 4.1.2 is-unicode-supported: 0.1.0 - log-symbols@6.0.0: + log-symbols@7.0.1: dependencies: - chalk: 5.6.0 - is-unicode-supported: 1.3.0 + is-unicode-supported: 2.1.0 + yoctocolors: 2.1.2 log-update@6.1.0: dependencies: - ansi-escapes: 7.0.0 + ansi-escapes: 7.1.0 cli-cursor: 5.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.1.2 + wrap-ansi: 9.0.2 longest-streak@3.1.0: {} @@ -9081,6 +9042,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.2.1: {} + lru-cache@6.0.0: dependencies: yallist: 4.0.0 @@ -9095,7 +9058,7 @@ snapshots: macos-release@3.4.0: {} - magic-string@0.30.18: + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -9482,8 +9445,6 @@ snapshots: mimic-response@3.1.0: {} - min-indent@1.0.1: {} - minimatch@10.0.3: dependencies: '@isaacs/brace-expansion': 5.0.0 @@ -9578,7 +9539,7 @@ snapshots: mute-stream@2.0.0: {} - nano-spawn@1.0.2: {} + nano-spawn@1.0.3: {} nanoid@3.3.11: {} @@ -9598,7 +9559,7 @@ snapshots: dependencies: type-fest: 2.19.0 - node-abi@3.75.0: + node-abi@3.77.0: dependencies: semver: 7.7.2 @@ -9649,7 +9610,7 @@ snapshots: - bluebird - supports-color - node-releases@2.0.19: {} + node-releases@2.0.21: {} nopt@6.0.0: dependencies: @@ -9683,8 +9644,6 @@ snapshots: dependencies: boolbase: 1.0.0 - nwsapi@2.2.21: {} - nypm@0.5.4: dependencies: citty: 0.1.6 @@ -9694,7 +9653,7 @@ snapshots: tinyexec: 0.3.2 ufo: 1.6.1 - nypm@0.6.1: + nypm@0.6.2: dependencies: citty: 0.1.6 consola: 3.4.2 @@ -9759,17 +9718,17 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ora@8.2.0: + ora@9.0.0: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 cli-cursor: 5.0.0 - cli-spinners: 2.9.2 + cli-spinners: 3.2.1 is-interactive: 2.0.0 is-unicode-supported: 2.1.0 - log-symbols: 6.0.0 + log-symbols: 7.0.1 stdin-discarder: 0.2.2 - string-width: 7.2.0 - strip-ansi: 7.1.0 + string-width: 8.1.0 + strip-ansi: 7.1.2 os-homedir@1.0.2: {} @@ -9778,29 +9737,29 @@ snapshots: macos-release: 3.4.0 windows-release: 6.1.0 - oxc-resolver@11.7.1: + oxc-resolver@11.8.2: dependencies: napi-postinstall: 0.3.3 optionalDependencies: - '@oxc-resolver/binding-android-arm-eabi': 11.7.1 - '@oxc-resolver/binding-android-arm64': 11.7.1 - '@oxc-resolver/binding-darwin-arm64': 11.7.1 - '@oxc-resolver/binding-darwin-x64': 11.7.1 - '@oxc-resolver/binding-freebsd-x64': 11.7.1 - '@oxc-resolver/binding-linux-arm-gnueabihf': 11.7.1 - '@oxc-resolver/binding-linux-arm-musleabihf': 11.7.1 - '@oxc-resolver/binding-linux-arm64-gnu': 11.7.1 - '@oxc-resolver/binding-linux-arm64-musl': 11.7.1 - '@oxc-resolver/binding-linux-ppc64-gnu': 11.7.1 - '@oxc-resolver/binding-linux-riscv64-gnu': 11.7.1 - '@oxc-resolver/binding-linux-riscv64-musl': 11.7.1 - '@oxc-resolver/binding-linux-s390x-gnu': 11.7.1 - '@oxc-resolver/binding-linux-x64-gnu': 11.7.1 - '@oxc-resolver/binding-linux-x64-musl': 11.7.1 - '@oxc-resolver/binding-wasm32-wasi': 11.7.1 - '@oxc-resolver/binding-win32-arm64-msvc': 11.7.1 - '@oxc-resolver/binding-win32-ia32-msvc': 11.7.1 - '@oxc-resolver/binding-win32-x64-msvc': 11.7.1 + '@oxc-resolver/binding-android-arm-eabi': 11.8.2 + '@oxc-resolver/binding-android-arm64': 11.8.2 + '@oxc-resolver/binding-darwin-arm64': 11.8.2 + '@oxc-resolver/binding-darwin-x64': 11.8.2 + '@oxc-resolver/binding-freebsd-x64': 11.8.2 + '@oxc-resolver/binding-linux-arm-gnueabihf': 11.8.2 + '@oxc-resolver/binding-linux-arm-musleabihf': 11.8.2 + '@oxc-resolver/binding-linux-arm64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-arm64-musl': 11.8.2 + '@oxc-resolver/binding-linux-ppc64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-riscv64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-riscv64-musl': 11.8.2 + '@oxc-resolver/binding-linux-s390x-gnu': 11.8.2 + '@oxc-resolver/binding-linux-x64-gnu': 11.8.2 + '@oxc-resolver/binding-linux-x64-musl': 11.8.2 + '@oxc-resolver/binding-wasm32-wasi': 11.8.2 + '@oxc-resolver/binding-win32-arm64-msvc': 11.8.2 + '@oxc-resolver/binding-win32-ia32-msvc': 11.8.2 + '@oxc-resolver/binding-win32-x64-msvc': 11.8.2 p-cancelable@2.1.1: {} @@ -9824,7 +9783,7 @@ snapshots: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 get-uri: 6.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 @@ -9897,9 +9856,7 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 - path-type@3.0.0: - dependencies: - pify: 3.0.0 + path-type@6.0.0: {} pathe@1.1.2: {} @@ -9913,6 +9870,8 @@ snapshots: perfect-debounce@1.0.0: {} + perfect-debounce@2.0.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} @@ -9923,8 +9882,6 @@ snapshots: pify@2.3.0: {} - pify@3.0.0: {} - pinia@3.0.3(typescript@5.9.2)(vue@3.5.21(typescript@5.9.2)): dependencies: '@vue/devtools-api': 7.7.7 @@ -9980,13 +9937,13 @@ snapshots: prebuild-install@7.1.3: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.0 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 mkdirp-classic: 0.5.3 napi-build-utils: 2.0.0 - node-abi: 3.75.0 + node-abi: 3.77.0 pump: 3.0.3 rc: 1.2.8 simple-get: 4.0.1 @@ -10001,7 +9958,7 @@ snapshots: prettier@3.6.2: {} - pretty-ms@9.2.0: + pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -10021,7 +9978,7 @@ snapshots: proxy-agent@6.5.0: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -10093,39 +10050,39 @@ snapshots: dependencies: jsesc: 3.0.2 - release-it-pnpm@4.6.6(release-it@19.0.4(@types/node@24.3.0)): + release-it-pnpm@4.6.6(release-it@19.0.5(@types/node@24.5.2)): dependencies: bumpp: 10.2.3 changelogithub: 13.16.0 conventional-changelog-conventionalcommits: 9.1.0 conventional-recommended-bump: 11.2.0 kolorist: 1.8.0 - release-it: 19.0.4(@types/node@24.3.0) + release-it: 19.0.5(@types/node@24.5.2) semver: 7.7.2 transitivePeerDependencies: - magicast - release-it@19.0.4(@types/node@24.3.0): + release-it@19.0.5(@types/node@24.5.2): dependencies: '@nodeutils/defaults-deep': 1.1.0 - '@octokit/rest': 21.1.1 - '@phun-ky/typeof': 1.2.8 + '@octokit/rest': 22.0.0 + '@phun-ky/typeof': 2.0.3 async-retry: 1.3.3 - c12: 3.1.0 + c12: 3.3.0 ci-info: 4.3.0 - eta: 3.5.0 + eta: 4.0.1 git-url-parse: 16.1.0 - inquirer: 12.7.0(@types/node@24.3.0) + inquirer: 12.9.6(@types/node@24.5.2) issue-parser: 7.0.1 lodash.merge: 4.6.2 mime-types: 3.0.1 new-github-release-url: 2.0.0 open: 10.2.0 - ora: 8.2.0 + ora: 9.0.0 os-name: 6.1.0 proxy-agent: 6.5.0 semver: 7.7.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 undici: 6.21.3 url-join: 5.0.0 wildcard-match: 5.1.4 @@ -10137,6 +10094,8 @@ snapshots: require-directory@2.1.1: {} + require-from-string@2.0.2: {} + resedit@1.7.2: dependencies: pe-library: 0.4.1 @@ -10193,36 +10152,36 @@ snapshots: sprintf-js: 1.1.3 optional: true - rollup@4.50.0: + rollup@4.51.0: dependencies: '@types/estree': 1.0.8 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.50.0 - '@rollup/rollup-android-arm64': 4.50.0 - '@rollup/rollup-darwin-arm64': 4.50.0 - '@rollup/rollup-darwin-x64': 4.50.0 - '@rollup/rollup-freebsd-arm64': 4.50.0 - '@rollup/rollup-freebsd-x64': 4.50.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.50.0 - '@rollup/rollup-linux-arm-musleabihf': 4.50.0 - '@rollup/rollup-linux-arm64-gnu': 4.50.0 - '@rollup/rollup-linux-arm64-musl': 4.50.0 - '@rollup/rollup-linux-loongarch64-gnu': 4.50.0 - '@rollup/rollup-linux-ppc64-gnu': 4.50.0 - '@rollup/rollup-linux-riscv64-gnu': 4.50.0 - '@rollup/rollup-linux-riscv64-musl': 4.50.0 - '@rollup/rollup-linux-s390x-gnu': 4.50.0 - '@rollup/rollup-linux-x64-gnu': 4.50.0 - '@rollup/rollup-linux-x64-musl': 4.50.0 - '@rollup/rollup-openharmony-arm64': 4.50.0 - '@rollup/rollup-win32-arm64-msvc': 4.50.0 - '@rollup/rollup-win32-ia32-msvc': 4.50.0 - '@rollup/rollup-win32-x64-msvc': 4.50.0 + '@rollup/rollup-android-arm-eabi': 4.51.0 + '@rollup/rollup-android-arm64': 4.51.0 + '@rollup/rollup-darwin-arm64': 4.51.0 + '@rollup/rollup-darwin-x64': 4.51.0 + '@rollup/rollup-freebsd-arm64': 4.51.0 + '@rollup/rollup-freebsd-x64': 4.51.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.51.0 + '@rollup/rollup-linux-arm-musleabihf': 4.51.0 + '@rollup/rollup-linux-arm64-gnu': 4.51.0 + '@rollup/rollup-linux-arm64-musl': 4.51.0 + '@rollup/rollup-linux-loong64-gnu': 4.51.0 + '@rollup/rollup-linux-ppc64-gnu': 4.51.0 + '@rollup/rollup-linux-riscv64-gnu': 4.51.0 + '@rollup/rollup-linux-riscv64-musl': 4.51.0 + '@rollup/rollup-linux-s390x-gnu': 4.51.0 + '@rollup/rollup-linux-x64-gnu': 4.51.0 + '@rollup/rollup-linux-x64-musl': 4.51.0 + '@rollup/rollup-openharmony-arm64': 4.51.0 + '@rollup/rollup-win32-arm64-msvc': 4.51.0 + '@rollup/rollup-win32-ia32-msvc': 4.51.0 + '@rollup/rollup-win32-x64-msvc': 4.51.0 fsevents: 2.3.3 rrweb-cssom@0.8.0: {} - run-applescript@7.0.0: {} + run-applescript@7.1.0: {} run-async@4.0.6: {} @@ -10242,7 +10201,7 @@ snapshots: dependencies: truncate-utf8-bytes: 1.0.2 - sass@1.92.0: + sass@1.92.1: dependencies: chokidar: 4.0.3 immutable: 5.1.3 @@ -10308,7 +10267,7 @@ snapshots: dependencies: semver: 7.7.2 - sirv@3.0.1: + sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.29 mrmime: 2.0.1 @@ -10316,7 +10275,7 @@ snapshots: sisteransi@1.0.5: {} - slash@1.0.0: {} + slash@5.1.0: {} slice-ansi@3.0.0: dependencies: @@ -10325,14 +10284,9 @@ snapshots: is-fullwidth-code-point: 3.0.0 optional: true - slice-ansi@5.0.0: - dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 4.0.0 - - slice-ansi@7.1.0: + slice-ansi@7.1.2: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 smart-buffer@4.2.0: {} @@ -10350,7 +10304,7 @@ snapshots: socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 socks: 2.8.7 transitivePeerDependencies: - supports-color @@ -10407,13 +10361,18 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 string-width@7.2.0: dependencies: emoji-regex: 10.5.0 - get-east-asian-width: 1.3.1 - strip-ansi: 7.1.0 + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 + + string-width@8.1.0: + dependencies: + get-east-asian-width: 1.4.0 + strip-ansi: 7.1.2 string_decoder@1.3.0: dependencies: @@ -10423,9 +10382,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.1.2: dependencies: - ansi-regex: 6.2.0 + ansi-regex: 6.2.2 strip-final-newline@2.0.0: {} @@ -10433,9 +10392,7 @@ snapshots: strip-final-newline@4.0.0: {} - strip-indent@4.0.0: - dependencies: - min-indent: 1.0.1 + strip-indent@4.1.0: {} strip-json-comments@2.0.1: {} @@ -10449,7 +10406,7 @@ snapshots: sumchecker@3.0.1: dependencies: - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -10541,7 +10498,7 @@ snapshots: tinyexec@1.0.1: {} - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 @@ -10550,13 +10507,13 @@ snapshots: tinyrainbow@2.0.0: {} - tinyspy@4.0.3: {} + tinyspy@4.0.4: {} - tldts-core@6.1.86: {} + tldts-core@7.0.14: {} - tldts@6.1.86: + tldts@7.0.14: dependencies: - tldts-core: 6.1.86 + tldts-core: 7.0.14 tmp-promise@3.0.3: dependencies: @@ -10574,21 +10531,21 @@ snapshots: totalist@3.0.1: {} - tough-cookie@5.1.2: + tough-cookie@6.0.0: dependencies: - tldts: 6.1.86 + tldts: 7.0.14 tr46@0.0.3: {} - tr46@5.1.1: + tr46@6.0.0: dependencies: punycode: 2.3.1 - trash@9.0.0: + trash@10.0.0: dependencies: - '@sindresorhus/chunkify': 1.0.0 + '@sindresorhus/chunkify': 2.0.0 '@stroncium/procfs': 1.2.1 - globby: 7.1.1 + globby: 14.1.0 is-path-inside: 4.0.0 move-file: 3.1.0 p-map: 7.0.3 @@ -10622,8 +10579,6 @@ snapshots: type-fest@0.13.1: optional: true - type-fest@0.21.3: {} - type-fest@2.19.0: {} typescript@5.9.2: {} @@ -10639,28 +10594,28 @@ snapshots: undici-types@6.21.0: {} - undici-types@7.10.0: {} + undici-types@7.12.0: {} undici@6.21.3: {} unicorn-magic@0.3.0: {} - unimport@5.2.0: + unimport@5.3.0: dependencies: acorn: 8.15.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 local-pkg: 1.1.2 - magic-string: 0.30.18 + magic-string: 0.30.19 mlly: 1.8.0 pathe: 2.0.3 picomatch: 4.0.3 pkg-types: 2.3.0 scule: 1.3.0 strip-literal: 3.0.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 unplugin: 2.3.10 - unplugin-utils: 0.2.5 + unplugin-utils: 0.3.0 unique-filename@2.0.1: dependencies: @@ -10695,29 +10650,29 @@ snapshots: universalify@2.0.1: {} - unocss@66.5.0(postcss@8.5.6)(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)): - dependencies: - '@unocss/astro': 66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) - '@unocss/cli': 66.5.0 - '@unocss/core': 66.5.0 - '@unocss/postcss': 66.5.0(postcss@8.5.6) - '@unocss/preset-attributify': 66.5.0 - '@unocss/preset-icons': 66.5.0 - '@unocss/preset-mini': 66.5.0 - '@unocss/preset-tagify': 66.5.0 - '@unocss/preset-typography': 66.5.0 - '@unocss/preset-uno': 66.5.0 - '@unocss/preset-web-fonts': 66.5.0 - '@unocss/preset-wind': 66.5.0 - '@unocss/preset-wind3': 66.5.0 - '@unocss/preset-wind4': 66.5.0 - '@unocss/transformer-attributify-jsx': 66.5.0 - '@unocss/transformer-compile-class': 66.5.0 - '@unocss/transformer-directives': 66.5.0 - '@unocss/transformer-variant-group': 66.5.0 - '@unocss/vite': 66.5.0(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + unocss@66.5.1(postcss@8.5.6)(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)): + dependencies: + '@unocss/astro': 66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) + '@unocss/cli': 66.5.1 + '@unocss/core': 66.5.1 + '@unocss/postcss': 66.5.1(postcss@8.5.6) + '@unocss/preset-attributify': 66.5.1 + '@unocss/preset-icons': 66.5.1 + '@unocss/preset-mini': 66.5.1 + '@unocss/preset-tagify': 66.5.1 + '@unocss/preset-typography': 66.5.1 + '@unocss/preset-uno': 66.5.1 + '@unocss/preset-web-fonts': 66.5.1 + '@unocss/preset-wind': 66.5.1 + '@unocss/preset-wind3': 66.5.1 + '@unocss/preset-wind4': 66.5.1 + '@unocss/transformer-attributify-jsx': 66.5.1 + '@unocss/transformer-compile-class': 66.5.1 + '@unocss/transformer-directives': 66.5.1 + '@unocss/transformer-variant-group': 66.5.1 + '@unocss/vite': 66.5.1(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) optionalDependencies: - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - postcss - supports-color @@ -10725,29 +10680,19 @@ snapshots: unplugin-auto-import@20.1.0(@vueuse/core@13.9.0(vue@3.5.21(typescript@5.9.2))): dependencies: local-pkg: 1.1.2 - magic-string: 0.30.18 + magic-string: 0.30.19 picomatch: 4.0.3 - unimport: 5.2.0 + unimport: 5.3.0 unplugin: 2.3.10 unplugin-utils: 0.3.0 optionalDependencies: '@vueuse/core': 13.9.0(vue@3.5.21(typescript@5.9.2)) - unplugin-utils@0.2.5: - dependencies: - pathe: 2.0.3 - picomatch: 4.0.3 - unplugin-utils@0.3.0: dependencies: pathe: 2.0.3 picomatch: 4.0.3 - unplugin@1.16.1: - dependencies: - acorn: 8.15.0 - webpack-virtual-modules: 0.6.2 - unplugin@2.3.10: dependencies: '@jridgewell/remapping': 2.3.5 @@ -10755,9 +10700,9 @@ snapshots: picomatch: 4.0.3 webpack-virtual-modules: 0.6.2 - update-browserslist-db@1.1.3(browserslist@4.25.4): + update-browserslist-db@1.1.3(browserslist@4.26.2): dependencies: - browserslist: 4.25.4 + browserslist: 4.26.2 escalade: 3.2.0 picocolors: 1.1.1 @@ -10782,13 +10727,13 @@ snapshots: extsprintf: 1.4.1 optional: true - vite-node@3.2.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1): + vite-node@3.2.4(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -10803,51 +10748,51 @@ snapshots: - tsx - yaml - vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1): + vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1): dependencies: - esbuild: 0.25.9 + esbuild: 0.25.10 fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 - rollup: 4.50.0 - tinyglobby: 0.2.14 + rollup: 4.51.0 + tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 24.3.0 + '@types/node': 24.5.2 fsevents: 2.3.3 jiti: 2.5.1 - sass: 1.92.0 + sass: 1.92.1 terser: 5.44.0 yaml: 2.8.1 - vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.3.0)(jiti@2.5.1)(jsdom@26.1.0)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1): + vitest@3.2.4(@types/debug@4.1.12)(@types/node@24.5.2)(jiti@2.5.1)(jsdom@27.0.0(postcss@8.5.6))(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1)) + '@vitest/mocker': 3.2.4(vite@7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 '@vitest/spy': 3.2.4 '@vitest/utils': 3.2.4 chai: 5.3.3 - debug: 4.4.1 + debug: 4.4.3 expect-type: 1.2.2 - magic-string: 0.30.18 + magic-string: 0.30.19 pathe: 2.0.3 picomatch: 4.0.3 std-env: 3.9.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.1.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) - vite-node: 3.2.4(@types/node@24.3.0)(jiti@2.5.1)(sass@1.92.0)(terser@5.44.0)(yaml@2.8.1) + vite: 7.1.6(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@24.5.2)(jiti@2.5.1)(sass@1.92.1)(terser@5.44.0)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/debug': 4.1.12 - '@types/node': 24.3.0 - jsdom: 26.1.0 + '@types/node': 24.5.2 + jsdom: 27.0.0(postcss@8.5.6) transitivePeerDependencies: - jiti - less @@ -10864,10 +10809,10 @@ snapshots: vscode-uri@3.1.0: {} - vue-eslint-parser@10.2.0(eslint@9.34.0(jiti@2.5.1)): + vue-eslint-parser@10.2.0(eslint@9.35.0(jiti@2.5.1)): dependencies: - debug: 4.4.1 - eslint: 9.34.0(jiti@2.5.1) + debug: 4.4.3 + eslint: 9.35.0(jiti@2.5.1) eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 espree: 10.4.0 @@ -10878,17 +10823,17 @@ snapshots: vue-flow-layout@0.2.0: {} - vue-i18n@11.1.11(vue@3.5.21(typescript@5.9.2)): + vue-i18n@11.1.12(vue@3.5.21(typescript@5.9.2)): dependencies: - '@intlify/core-base': 11.1.11 - '@intlify/shared': 11.1.11 + '@intlify/core-base': 11.1.12 + '@intlify/shared': 11.1.12 '@vue/devtools-api': 6.6.4 vue: 3.5.21(typescript@5.9.2) - vue-tsc@3.0.6(typescript@5.9.2): + vue-tsc@3.0.7(typescript@5.9.2): dependencies: '@volar/typescript': 2.4.23 - '@vue/language-core': 3.0.6(typescript@5.9.2) + '@vue/language-core': 3.0.7(typescript@5.9.2) typescript: 5.9.2 vue@3.5.21(typescript@5.9.2): @@ -10913,7 +10858,7 @@ snapshots: webidl-conversions@3.0.1: {} - webidl-conversions@7.0.0: {} + webidl-conversions@8.0.0: {} webpack-virtual-modules@0.6.2: {} @@ -10923,10 +10868,10 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.2.0: + whatwg-url@15.1.0: dependencies: - tr46: 5.1.1 - webidl-conversions: 7.0.0 + tr46: 6.0.0 + webidl-conversions: 8.0.0 whatwg-url@5.0.0: dependencies: @@ -10968,15 +10913,15 @@ snapshots: wrap-ansi@8.1.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 - wrap-ansi@9.0.0: + wrap-ansi@9.0.2: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.1.2 wrappy@1.0.2: {} From 71d34e393d1f96b87be18956f584db9bdfeb7ec2 Mon Sep 17 00:00:00 2001 From: MidnightCrowing <110297461+MidnightCrowing@users.noreply.github.com> Date: Mon, 22 Sep 2025 14:10:44 +0800 Subject: [PATCH 4/7] feat(scanner): enhance project scanning with JetBrains and VSCode recent projects detection --- electron/ipc.ts | 2 +- electron/main.ts | 2 +- electron/preload.ts | 11 +- electron/services/projectService.ts | 2 +- electron/services/scannerService.ts | 110 ++++++++------- electron/utils/recent/jetbrainsRecent.ts | 126 +++++++++++++++++ electron/utils/recent/shared.ts | 37 +++++ electron/utils/recent/vscodeRecent.ts | 125 +++++++++++++++++ electron/utils/vscodeRecent.ts | 37 ----- electron/workers/projectScanner.worker.ts | 128 ++++++++++++++---- jetv-ui/src/components/Button/JeButton.vue | 2 +- jetv-ui/src/components/Button/JeCheckbox.vue | 42 ++++-- .../src/components/Button/JeSlimButton.vue | 2 +- jetv-ui/src/components/Button/JeSwitch.vue | 5 - .../components/Button/JeTransparentButton.vue | 17 ++- .../src/components/Input/JeFileInputField.vue | 4 - .../src/components/Input/JeSearchField.vue | 5 - package.json | 1 + pnpm-lock.yaml | 24 +++- src/components/ProjectCard/OpenButton.vue | 3 +- src/components/SettingPathCard.vue | 7 +- src/global.d.ts | 17 +-- src/services/projectScannerService.ts | 23 ++-- src/stores/helpers/persistence.ts | 7 +- src/stores/projectScannerStore.ts | 2 +- src/stores/settingsStore.ts | 105 +++++++++++--- .../SettingsView/pages/AutoProjectScanner.vue | 88 ++++++++---- 27 files changed, 703 insertions(+), 231 deletions(-) create mode 100644 electron/utils/recent/jetbrainsRecent.ts create mode 100644 electron/utils/recent/shared.ts create mode 100644 electron/utils/recent/vscodeRecent.ts delete mode 100644 electron/utils/vscodeRecent.ts diff --git a/electron/ipc.ts b/electron/ipc.ts index ce583e6..1338f71 100644 --- a/electron/ipc.ts +++ b/electron/ipc.ts @@ -32,9 +32,9 @@ ipcMain.handle('project:import', () => projectSvc.importProjects()) ipcMain.handle('project:export', () => projectSvc.exportProjects()) // scanner -ipcMain.handle('scanner:scan', (_e, payload) => scanner.scan(payload)) ipcMain.handle('scanner:start', (e, payload) => scanner.start(e, payload)) ipcMain.handle('scanner:stop', (_e, sessionId) => scanner.stop(sessionId)) +ipcMain.handle('scanner:detect-jb-config-root-path', () => scanner.detectJetBrainsConfigRootPath()) ipcMain.handle('scanner:detect-vsc-state-db-path', () => scanner.detectVscodeStateDbPath()) // system diff --git a/electron/main.ts b/electron/main.ts index 10a684f..79dd747 100644 --- a/electron/main.ts +++ b/electron/main.ts @@ -5,7 +5,7 @@ import { fileURLToPath } from 'node:url' import { app, BrowserWindow, globalShortcut, Menu } from 'electron' -// @ts-expect-error -- 知道要改tsconfig但不想改 +// @ts-expect-error -- ignore const __filename = fileURLToPath(import.meta.url) const __dirname = path.dirname(__filename) diff --git a/electron/preload.ts b/electron/preload.ts index 2715624..de67b8b 100644 --- a/electron/preload.ts +++ b/electron/preload.ts @@ -19,7 +19,7 @@ interface ProjectAnalyzeProgress { stage: ProjectAnalyzeStage } -interface ScanStartPayload { roots: string[], existingPaths: string[] } +interface ScanStartPayload { roots: string[], existingPaths: string[], projectPaths?: string[] } interface ScannerItemEvent { sessionId: number, item: any } interface ScannerDoneEvent { sessionId: number } interface ScannerErrorEvent { sessionId: number, error: string } @@ -87,11 +87,7 @@ const api = { // ===== update ===== checkUpdate: () => ipcRenderer.invoke('update:check'), - // ===== scanner (batch) ===== - scanProjects: (payload: ScanStartPayload) => - ipcRenderer.invoke('scanner:scan', payload), - - // ===== scanner (stream) ===== + // ===== scanner ===== startProjectScan: (payload: ScanStartPayload) => ipcRenderer.invoke('scanner:start', payload), @@ -107,6 +103,9 @@ const api = { onScannerError: (cb: (data: ScannerErrorEvent) => void): Unlisten => onIpc('scanner:error', cb), + detectJetBrainsConfigRootPath: () => + ipcRenderer.invoke('scanner:detect-jb-config-root-path'), + detectVscodeStateDbPath: () => ipcRenderer.invoke('scanner:detect-vsc-state-db-path'), diff --git a/electron/services/projectService.ts b/electron/services/projectService.ts index a1a9fdc..619950c 100644 --- a/electron/services/projectService.ts +++ b/electron/services/projectService.ts @@ -14,7 +14,7 @@ import type { LinguistResult } from '../utils/linguist' export async function analyzeProject(event: IpcMainInvokeEvent, folderPath: string): Promise { return await new Promise((resolve) => { try { - // @ts-expect-error -- 知道要改tsconfig但不想改 + // @ts-expect-error -- ignore const workerUrl = new URL('../workers/linguistAnalyze.worker.js', import.meta.url) const worker = new Worker(workerUrl, { type: 'module', workerData: { folderPath } } as any) diff --git a/electron/services/scannerService.ts b/electron/services/scannerService.ts index 97b6123..317969a 100644 --- a/electron/services/scannerService.ts +++ b/electron/services/scannerService.ts @@ -6,56 +6,26 @@ import { Worker } from 'node:worker_threads' import type { IpcMainInvokeEvent } from 'electron' import { app } from 'electron' -interface ScanPayload { +export interface ScanPayload { + // file system roots scanning + rootsEnabled: boolean roots: string[] - existingPaths: string[] -} -interface ScanResultItem { - path: string - name: string - mainLang?: string - mainLangColor?: `#${string}` - langGroup?: Array<{ text: string, color: `#${string}`, percentage: number }> - error?: string -} -export async function scan(payload: ScanPayload): Promise { - return new Promise((resolve, reject) => { - try { - // @ts-expect-error -- 知道要改tsconfig但不想改 - const workerUrl = new URL('../workers/projectScanner.worker.js', import.meta.url) - const worker = new Worker(workerUrl, { type: 'module', workerData: payload } as any) - - const items: ScanResultItem[] = [] - const cleanup = () => worker.removeAllListeners() - - worker.on('message', (msg: any) => { - if (msg?.type === 'item' && msg.item) { - items.push(msg.item as ScanResultItem) - } - else if (msg?.type === 'done') { - cleanup() - resolve(items) - } - else if (msg?.type === 'error') { - cleanup() - reject(new Error(msg.error || 'scan error')) - } - }) - - worker.once('error', (err) => { - cleanup() - reject(err) - }) - worker.once('exit', (code) => { - if (code !== 0) - reject(new Error(`scanner worker exited with code ${code}`)) - }) - } - catch (e) { - reject(e) - } - }) + // IDE scanning toggles + ideEnabled: boolean + jetbrains: { + enabled: boolean + configRootPath: string + } + vscode: { + enabled: boolean + stateDbPath: string + } + visualStudio: { + enabled: boolean + } + + existingPaths: string[] } // 流式扫描:创建会话,逐条回推 @@ -64,7 +34,7 @@ let nextSessionId = 1 export function start(event: IpcMainInvokeEvent, payload: ScanPayload) { const sessionId = nextSessionId++ - // @ts-expect-error -- 知道要改tsconfig但不想改 + // @ts-expect-error -- ignore const workerUrl = new URL('../workers/projectScanner.worker.js', import.meta.url) const worker = new Worker(workerUrl, { type: 'module', workerData: payload } as any) @@ -121,6 +91,48 @@ export function stop(sessionId: number) { return { stopped: false } } +/** + * 自动检测 JetBrains 配置根目录 + * 返回例如: + * - Windows: C:\\Users\\\\AppData\\Roaming\\JetBrains + * - macOS: ~/Library/Application Support/JetBrains + * - Linux: ~/.config/JetBrains 或 ~/.JetBrains(优先 .config/JetBrains) + */ +export function detectJetBrainsConfigRootPath() { + const candidates: string[] = [] + + switch (process.platform) { + case 'win32': { + // Roaming AppData + candidates.push(path.join(app.getPath('appData'), 'JetBrains')) + break + } + case 'darwin': { + candidates.push(path.join(app.getPath('home'), 'Library', 'Application Support', 'JetBrains')) + break + } + default: { + // linux + const home = app.getPath('home') + candidates.push(path.join(home, '.config', 'JetBrains')) + candidates.push(path.join(home, '.JetBrains')) // 一些老版本 + break + } + } + + for (const p of candidates) { + try { + if (fs.existsSync(p) && fs.statSync(p).isDirectory()) + return p + } + catch { + // ignore + } + } + + return null +} + /** * 自动检测 VSCode state.vscdb 路径 * 全平台通用 diff --git a/electron/utils/recent/jetbrainsRecent.ts b/electron/utils/recent/jetbrainsRecent.ts new file mode 100644 index 0000000..be85092 --- /dev/null +++ b/electron/utils/recent/jetbrainsRecent.ts @@ -0,0 +1,126 @@ +import fs from 'node:fs' +import os from 'node:os' +import path from 'node:path' +import process from 'node:process' + +import { XMLParser } from 'fast-xml-parser' + +import { uniqExistingDirs } from './shared' + +export interface JetbrainsRecentEntry { + path: string + ide: string // 例如 "PyCharm", "IntelliJIdea" +} + +const ideNameMap = { + 'IntelliJIdea': 'intellij-idea', + 'PyCharm': 'pycharm', + 'PhpStorm': 'phpstorm', + 'GoLand': 'goLand', + 'Rider': 'rider', + 'CLion': 'clion', + 'RustRover': 'rust-rover', + 'WebStorm': 'webstorm', + 'RubyMine': 'rubymine', + 'Aqua': 'aqua', + 'Fleet': 'fleet', + 'AndroidStudio': 'android-studio', +} as const + +/** + * 获取 JetBrains 所有 IDE 的最近项目列表 + * @param configRoot JetBrains 配置根目录(例如 C:\Users\xxx\AppData\Roaming\JetBrains) + */ +function getAllJetbrainsRecentProjects( + configRoot: string, +): JetbrainsRecentEntry[] { + if (!fs.existsSync(configRoot)) { + throw new Error(`JetBrains config root not found: ${configRoot}`) + } + + const parser = new XMLParser({ + ignoreAttributes: false, + attributeNamePrefix: '', + }) + + const userHome = os.homedir() + const normalizePath = (p: string): string => + p.replace(/\$USER_HOME\$/g, userHome).replace(/\\/g, '/') + + const entries: JetbrainsRecentEntry[] = [] + + // 遍历 JetBrains 目录下的所有子目录 + for (const subdir of fs.readdirSync(configRoot)) { + const fullDir = path.join(configRoot, subdir) + if (!fs.statSync(fullDir).isDirectory()) + continue + + const xmlPath = path.join(fullDir, 'options', 'recentProjects.xml') + if (!fs.existsSync(xmlPath)) + continue + + const xmlContent = fs.readFileSync(xmlPath, 'utf-8') + const json = parser.parse(xmlContent) + + const ideNameRaw = subdir.replace(/\d.*$/, '') // 去掉版本号,比如 "PyCharm2025.1" -> "PyCharm" + const ideName = ideNameMap[ideNameRaw] ?? null + + const options = json?.application?.component?.option + if (!options) + continue + + // 可能是数组,也可能是单个对象 + const optionList = Array.isArray(options) ? options : [options] + + const additionalInfo = optionList.find(opt => opt.name === 'additionalInfo') + if (!additionalInfo?.map?.entry) + continue + + const projectEntries = additionalInfo.map.entry + + if (Array.isArray(projectEntries)) { + for (const e of projectEntries) { + if (e.key) + entries.push({ path: normalizePath(e.key), ide: ideName }) + } + } + else if (projectEntries?.key) { + entries.push({ path: normalizePath(projectEntries.key), ide: ideName }) + } + } + + // 去重:按 path 唯一 + const seen = new Set() + const uniqueEntries: JetbrainsRecentEntry[] = [] + for (const e of entries) { + if (!seen.has(e.path)) { + seen.add(e.path) + uniqueEntries.push(e) + } + } + + return uniqueEntries +} + +export function collectFromJetbrains(configRoot: string | null): JetbrainsRecentEntry[] { + if (!configRoot) { + return [] + } + let entries: JetbrainsRecentEntry[] = [] + try { + entries = getAllJetbrainsRecentProjects(configRoot) + } + catch { + return [] + } + const candidates: JetbrainsRecentEntry[] = [] + for (const e of entries) { + const p = e.path + // Skip placeholders and JetBrains light-edit/scratches etc. + if (!p || /\$[A-Z_]+\$/.test(p) || /light-edit|scratches/i.test(p)) + continue + const norm = process.platform === 'win32' ? p.replace(/\//g, '\\') : p + candidates.push({ path: norm, ide: e.ide }) + } + return uniqExistingDirs(candidates) +} diff --git a/electron/utils/recent/shared.ts b/electron/utils/recent/shared.ts new file mode 100644 index 0000000..46693f5 --- /dev/null +++ b/electron/utils/recent/shared.ts @@ -0,0 +1,37 @@ +import fs from 'node:fs' +import path from 'node:path' + +export function uniqExistingDirs( + paths: Iterable<{ path: string, ide: string | null }>, +): { path: string, ide: string | null }[] { + const seen = new Set() + const out: { path: string, ide: string | null }[] = [] + for (const item of paths) { + const p = item.path + if (!p) + continue + let fp = p + // Normalize windows backslashes, remove trailing slashes + fp = path.normalize(fp) + + try { + if (fs.existsSync(fp) && fs.statSync(fp).isDirectory()) { + // 统一大小写来判断唯一性(比如统一转小写) + const key = fp.toLowerCase() + + if (!seen.has(key)) { + seen.add(key) + + // 输出时修正盘符大写(只改第一个字母) + if (/^[a-z]:/.test(fp)) { + fp = fp.charAt(0).toUpperCase() + fp.slice(1) + } + + out.push({ path: fp, ide: item.ide }) + } + } + } + catch {} + } + return out +} diff --git a/electron/utils/recent/vscodeRecent.ts b/electron/utils/recent/vscodeRecent.ts new file mode 100644 index 0000000..2a45cd7 --- /dev/null +++ b/electron/utils/recent/vscodeRecent.ts @@ -0,0 +1,125 @@ +import fs from 'node:fs' +import path from 'node:path' +import process from 'node:process' + +import Database from 'better-sqlite3' + +import { uniqExistingDirs } from './shared' + +export interface VscodeRecentEntry { + folderUri?: string + fileUri?: string + workspace?: { id?: string, configPath: string } | string + label?: string + remoteAuthority?: string +} + +/** + * 获取 VSCode 最近打开项目列表 + * @param dbPath VSCode state.vscdb 文件路径 + */ +function getVscodeRecentProjects(dbPath: string): VscodeRecentEntry[] { + if (!fs.existsSync(dbPath)) { + throw new Error(`VSCode state file not found: ${dbPath}`) + } + + const db = new Database(dbPath, { readonly: true }) + try { + const row = db + .prepare('SELECT value FROM ItemTable WHERE key = \'history.recentlyOpenedPathsList\'') + .get() as { value: string } | undefined + + if (!row) + return [] + + try { + const history = JSON.parse(row.value.toString()) + return history.entries || [] + } + catch (e) { + console.error('Failed to parse VSCode recent list:', e) + return [] + } + } + finally { + try { + db.close() + } + catch {} + } +} + +function isFileUri(uri: string): boolean { + return /^file:\/\//i.test(uri) +} + +function decodeFileUriToFsPath(uri: string): string | null { + if (!isFileUri(uri)) + return null + try { + // Use WHATWG URL for robust parsing + const u = new URL(uri) + // On Windows, URL pathname starts with /c:/... + let p = decodeURIComponent(u.pathname) + if (process.platform === 'win32') { + if (p.startsWith('/')) + p = p.slice(1) + // Convert to backslashes + p = p.replace(/\//g, '\\') + } + return p + } + catch { + // Fallback: strip prefix and decode + try { + const raw = uri.replace(/^file:\/\//i, '') + const decoded = decodeURIComponent(raw) + return process.platform === 'win32' ? decoded.replace(/\//g, '\\') : `/${decoded}` + } + catch { + return null + } + } +} + +export function collectFromVscode(dbPath: string | null): { path: string, ide: string | null }[] { + if (!dbPath) + return [] + let entries: ReturnType = [] + try { + entries = getVscodeRecentProjects(dbPath) + } + catch { + return [] + } + + const candidates: { path: string, ide: string | null }[] = [] + for (const e of entries) { + // Skip remote entries + if ((e as any).remoteAuthority) + continue + + if (e.folderUri && isFileUri(e.folderUri)) { + const p = decodeFileUriToFsPath(e.folderUri) + if (p) + candidates.push({ path: p, ide: null }) + continue + } + if (e.workspace && typeof e.workspace === 'object') { + const cfg = (e.workspace as any).configPath + if (typeof cfg === 'string' && isFileUri(cfg)) { + const p = decodeFileUriToFsPath(cfg) + if (p) + candidates.push({ path: path.dirname(p), ide: null }) + } + continue + } + // Optional: handle fileUri by taking its directory + if (e.fileUri && isFileUri(e.fileUri)) { + const p = decodeFileUriToFsPath(e.fileUri) + if (p) + candidates.push({ path: path.dirname(p), ide: null }) + } + } + return uniqExistingDirs(candidates) +} diff --git a/electron/utils/vscodeRecent.ts b/electron/utils/vscodeRecent.ts deleted file mode 100644 index ea4bba0..0000000 --- a/electron/utils/vscodeRecent.ts +++ /dev/null @@ -1,37 +0,0 @@ -import fs from 'node:fs' - -import Database from 'better-sqlite3' - -export interface VscodeRecentEntry { - folderUri?: string - fileUri?: string - workspace?: string - label?: string -} - -/** - * 获取 VSCode 最近打开项目列表 - * @param dbPath VSCode state.vscdb 文件路径 - */ -export function getVscodeRecentProjects(dbPath: string): VscodeRecentEntry[] { - if (!fs.existsSync(dbPath)) { - throw new Error(`VSCode state file not found: ${dbPath}`) - } - - const db = new Database(dbPath, { readonly: true }) - const row = db - .prepare('SELECT value FROM ItemTable WHERE key = \'history.recentlyOpenedPathsList\'') - .get() as { value: string } - - if (!row) - return [] - - try { - const history = JSON.parse(row.value.toString()) - return history.entries || [] - } - catch (e) { - console.error('Failed to parse VSCode recent list:', e) - return [] - } -} diff --git a/electron/workers/projectScanner.worker.ts b/electron/workers/projectScanner.worker.ts index a9b4cc7..bf3a83e 100644 --- a/electron/workers/projectScanner.worker.ts +++ b/electron/workers/projectScanner.worker.ts @@ -1,13 +1,12 @@ import * as fs from 'node:fs/promises' import * as path from 'node:path' +import process from 'node:process' import { parentPort, workerData } from 'node:worker_threads' +import type { ScanPayload } from '../services/scannerService' import { analyzeFolder } from '../utils/linguist' - -interface ScanPayload { - roots: string[] - existingPaths: string[] -} +import { collectFromJetbrains } from '../utils/recent/jetbrainsRecent' +import { collectFromVscode } from '../utils/recent/vscodeRecent' interface LangResult { bytes: number @@ -23,6 +22,7 @@ interface ScanResultItem { mainLang?: string mainLangColor?: `#${string}` langGroup?: Array<{ text: string, color: `#${string}`, percentage: number }> + ide?: string | null // CodeEditorEnum,例如 "visual-studio-code" error?: string } @@ -33,6 +33,9 @@ type WorkerMessage const TYPE_PRIORITY: Record = { programming: 1, markup: 2, data: 3, prose: 4 } +// 最大扫描字节,超过则跳过语言分析(可通过环境变量 CODENEST_MAX_SCAN_BYTES 覆盖,默认 800MB) +const MAX_SCAN_BYTES: number = Number(process.env.CODENEST_MAX_SCAN_BYTES ?? 800 * 1024 * 1024) + function sortByMainLanguage(results: Record): [string, LangResult][] { return Object.entries(results).sort(([aK, aV], [bK, bV]) => { const pa = TYPE_PRIORITY[aV.type] ?? 5 @@ -63,6 +66,48 @@ function toLangGroup(sortedEntries: [string, LangResult][]): Array<{ text: strin return big } +// 计算目录大小(包含子目录),一旦超过 cap 就提前停止并返回当前累计大小 +async function getDirectorySizeCapped(dir: string, cap: number): Promise { + let total = 0 + + async function walk(current: string): Promise { + let entries: any[] = [] + try { + entries = await fs.readdir(current, { withFileTypes: true }) + } + catch { + return false + } + + for (const de of entries) { + const full = path.join(current, de.name) + try { + if (de.isDirectory()) { + // 避免跟随符号链接,减少循环风险 + if (typeof de.isSymbolicLink === 'function' && de.isSymbolicLink()) + continue + const exceeded = await walk(full) + if (exceeded) + return true + } + else if (de.isFile()) { + const st = await fs.stat(full) + total += st.size || 0 + if (total > cap) + return true + } + } + catch { + // 忽略不可读文件或权限问题 + } + } + return false + } + + const exceeded = await walk(dir) + return exceeded ? total : total +} + async function listImmediateSubDirs(root: string): Promise { try { const entries = await fs.readdir(root, { withFileTypes: true }) @@ -77,29 +122,64 @@ async function run() { const payload = workerData as ScanPayload const existing = new Set(payload.existingPaths) - try { + const dirsToScan: Set<{ path: string, ide: string | null }> = new Set() + + if (payload.rootsEnabled) { + // 根目录扫描 for (const root of payload.roots) { - const dirs = await listImmediateSubDirs(root) - for (const full of dirs) { - if (existing.has(full)) + (await listImmediateSubDirs(root)).forEach(dir => dirsToScan.add( + { path: dir, ide: null }, + )) + } + } + + if (payload.ideEnabled) { + // IDE 最近项目扫描 + if (payload.jetbrains.enabled) { + // JetBrains + const cfgRoot = payload.jetbrains.configRootPath + const results = collectFromJetbrains(cfgRoot || null) + results.forEach(result => dirsToScan.add( + { path: result.path, ide: result.ide }, + )) + } + if (payload.vscode.enabled) { + // VSCode + const dbPath = payload.vscode.stateDbPath + const results = collectFromVscode(dbPath || null) + results.forEach(result => dirsToScan.add( + { path: result.path, ide: 'visual-studio-code' }, + )) + } + } + + try { + for (const { path: full, ide } of dirsToScan) { + if (existing.has(full)) + continue + const name = path.basename(full) || 'Unnamed Project' + try { + // 在进行语言分析前,先测量目录大小,超过阈值则跳过分析 + const dirSize = await getDirectorySizeCapped(full, MAX_SCAN_BYTES) + if (dirSize > MAX_SCAN_BYTES) { + parentPort?.postMessage({ type: 'item', item: { path: full, name, ide } } satisfies WorkerMessage) continue - const name = path.basename(full) || 'Unnamed Project' - try { - const analyzed = await analyzeFolder(full) - const entries = Object.entries(analyzed.languages.results) - if (!entries.length) { - parentPort?.postMessage({ type: 'item', item: { path: full, name } } satisfies WorkerMessage) - continue - } - const sorted = sortByMainLanguage(Object.fromEntries(entries)) - const mainLang = sorted[0]?.[0] - const mainLangColor = sorted[0]?.[1]?.color as `#${string}` | undefined - const langGroup = toLangGroup(sorted) - parentPort?.postMessage({ type: 'item', item: { path: full, name, mainLang, mainLangColor, langGroup } } satisfies WorkerMessage) } - catch (e: any) { - parentPort?.postMessage({ type: 'item', item: { path: full, name, error: e?.message || String(e) } } satisfies WorkerMessage) + + const analyzed = await analyzeFolder(full) + const entries = Object.entries(analyzed.languages.results) + if (!entries.length) { + parentPort?.postMessage({ type: 'item', item: { path: full, name, ide } } satisfies WorkerMessage) + continue } + const sorted = sortByMainLanguage(Object.fromEntries(entries)) + const mainLang = sorted[0]?.[0] + const mainLangColor = sorted[0]?.[1]?.color as `#${string}` | undefined + const langGroup = toLangGroup(sorted) + parentPort?.postMessage({ type: 'item', item: { path: full, name, mainLang, mainLangColor, langGroup, ide } } satisfies WorkerMessage) + } + catch (e: any) { + parentPort?.postMessage({ type: 'item', item: { path: full, name, error: e?.message || String(e) } } satisfies WorkerMessage) } } parentPort?.postMessage({ type: 'done' } satisfies WorkerMessage) diff --git a/jetv-ui/src/components/Button/JeButton.vue b/jetv-ui/src/components/Button/JeButton.vue index 8dadb22..fc8cab4 100644 --- a/jetv-ui/src/components/Button/JeButton.vue +++ b/jetv-ui/src/components/Button/JeButton.vue @@ -41,7 +41,7 @@ withDefaults(defineProps(), { // Secondary 按钮类型样式 &--secondary:not(:disabled), &--secondary-alt:not(:disabled) { - @apply outline-offset-0; + @apply outline-offset--1px; // light @apply light:color-$gray-1; diff --git a/jetv-ui/src/components/Button/JeCheckbox.vue b/jetv-ui/src/components/Button/JeCheckbox.vue index ac858d4..e5ab222 100644 --- a/jetv-ui/src/components/Button/JeCheckbox.vue +++ b/jetv-ui/src/components/Button/JeCheckbox.vue @@ -1,18 +1,21 @@ @@ -25,6 +28,7 @@ function handleChange(event: Event) { :checked="modelValue" :disabled="disabled" @change="handleChange" + @keydown.enter.prevent="handleKeydownEnter" > @@ -48,7 +52,7 @@ function handleChange(event: Event) { @apply dark:bg-$gray-2 dark:outline-$gray-6; } -// 激活状态 +// Active states .je-checkbox__input:not(:disabled) { &:not(:checked) { @apply light:hover:outline-$gray-6 light:focus:outline-$blue-4; @@ -63,13 +67,13 @@ function handleChange(event: Event) { @apply light:hover:bg-$blue-3 light:focus:outline-$blue-4; @apply dark:hover:bg-$blue-5 dark:focus:outline-$blue-6; - // 选中状态 + // Checked state &:not(.je-checkbox__input--indeterminate) { @apply light:bg-$blue-4 dark:bg-$blue-6; @apply i-jet:checked; } - // Indeterminate 状态 + // Indeterminate state &.je-checkbox__input--indeterminate { @apply light:bg-$blue-4 dark:bg-$blue-6; @apply i-jet:remove; @@ -77,20 +81,30 @@ function handleChange(event: Event) { } } -// 禁用状态样式 +// Disabled styles +.je-checkbox__input:disabled { + @apply light:bg-$gray-13 light:outline-$gray-9; + @apply dark:bg-$gray-2 dark:outline-$gray-5; +} + .je-checkbox__input:disabled:checked { - @apply outline-none text-20px; + @apply outline-none text-20px opacity-70; // soften in disabled - // 选中状态 + // Checked state &:not(.je-checkbox__input--indeterminate) { + // Filled but muted background and outline + @apply light:bg-$gray-11 light:outline-$gray-9; + @apply dark:bg-$gray-3 dark:outline-$gray-5; + + // Keep a visible but subtle check icon @apply light:i-jet:checked dark:i-jet:checked-disabled-dark; - @apply light:bg-$gray-9 dark:bg-$gray-3; } - // Indeterminate 状态 + // Indeterminate state &.je-checkbox__input--indeterminate { + @apply light:bg-$gray-11 light:outline-$gray-9; + @apply dark:bg-$gray-3 dark:outline-$gray-5; @apply light:i-jet:remove dark:i-jet:remove-disabled-dark; - @apply light:bg-$gray-9 dark:bg-$gray-3; } } diff --git a/jetv-ui/src/components/Button/JeSlimButton.vue b/jetv-ui/src/components/Button/JeSlimButton.vue index 3aa23d4..1262d76 100644 --- a/jetv-ui/src/components/Button/JeSlimButton.vue +++ b/jetv-ui/src/components/Button/JeSlimButton.vue @@ -21,7 +21,7 @@ withDefaults(defineProps(), { diff --git a/jetv-ui/src/components/Input/JeFileInputField.vue b/jetv-ui/src/components/Input/JeFileInputField.vue index c0233f3..10af041 100644 --- a/jetv-ui/src/components/Input/JeFileInputField.vue +++ b/jetv-ui/src/components/Input/JeFileInputField.vue @@ -14,10 +14,6 @@ const filePath = computed({ set: val => emit('update:modelValue', val), }) -watch(filePath, (newValue) => { - emit('update:modelValue', newValue) -}) - // 打开文件/文件夹选择对话框 async function openPicker() { if (props.disabled) { diff --git a/jetv-ui/src/components/Input/JeSearchField.vue b/jetv-ui/src/components/Input/JeSearchField.vue index 762dcd2..488f6f7 100644 --- a/jetv-ui/src/components/Input/JeSearchField.vue +++ b/jetv-ui/src/components/Input/JeSearchField.vue @@ -14,11 +14,6 @@ const searchContent = computed({ set: val => emit('update:modelValue', val), }) -// 监听 searchContent 的变化,将值传递回父组件 -watch(searchContent, (newValue) => { - emit('update:modelValue', newValue) -}) - function clearInput() { searchContent.value = '' } diff --git a/package.json b/package.json index 9e9172c..64082ac 100644 --- a/package.json +++ b/package.json @@ -44,6 +44,7 @@ "dependencies": { "@vueuse/core": "^13.9.0", "better-sqlite3": "^12.2.0", + "fast-xml-parser": "^5.2.5", "fs-extra": "^11.3.2", "fuse.js": "^7.1.0", "jetv-ui": "file:jetv-ui", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b457635..72122f6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,9 @@ importers: better-sqlite3: specifier: ^12.2.0 version: 12.2.0 + fast-xml-parser: + specifier: ^5.2.5 + version: 5.2.5 fs-extra: specifier: ^11.3.2 version: 11.3.2 @@ -350,8 +353,8 @@ packages: resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} engines: {node: '>=12'} - '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/0453f4fe4656c63277185b35feedec5716a27d90': - resolution: {tarball: https://codeload.github.com/electron/node-gyp/tar.gz/0453f4fe4656c63277185b35feedec5716a27d90} + '@electron/node-gyp@git+https://git@github.com:electron/node-gyp.git#0453f4fe4656c63277185b35feedec5716a27d90': + resolution: {commit: 0453f4fe4656c63277185b35feedec5716a27d90, repo: git@github.com:electron/node-gyp.git, type: git} version: 10.2.0-electron.2 engines: {node: '>=12.13.0'} hasBin: true @@ -2831,6 +2834,10 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-xml-parser@5.2.5: + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + hasBin: true + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -4681,6 +4688,9 @@ packages: strip-literal@3.0.0: resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + strnum@2.1.1: + resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} @@ -5456,7 +5466,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@electron/node-gyp@https://codeload.github.com/electron/node-gyp/tar.gz/0453f4fe4656c63277185b35feedec5716a27d90': + '@electron/node-gyp@git+https://git@github.com:electron/node-gyp.git#0453f4fe4656c63277185b35feedec5716a27d90': dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.2 @@ -5493,7 +5503,7 @@ snapshots: '@electron/rebuild@3.7.0': dependencies: - '@electron/node-gyp': https://codeload.github.com/electron/node-gyp/tar.gz/0453f4fe4656c63277185b35feedec5716a27d90 + '@electron/node-gyp': git+https://git@github.com:electron/node-gyp.git#0453f4fe4656c63277185b35feedec5716a27d90 '@malept/cross-spawn-promise': 2.0.0 chalk: 4.1.2 debug: 4.4.3 @@ -8299,6 +8309,10 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-xml-parser@5.2.5: + dependencies: + strnum: 2.1.1 + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -10404,6 +10418,8 @@ snapshots: dependencies: js-tokens: 9.0.1 + strnum@2.1.1: {} + sumchecker@3.0.1: dependencies: debug: 4.4.3 diff --git a/src/components/ProjectCard/OpenButton.vue b/src/components/ProjectCard/OpenButton.vue index 28705ae..60abe3a 100644 --- a/src/components/ProjectCard/OpenButton.vue +++ b/src/components/ProjectCard/OpenButton.vue @@ -53,7 +53,7 @@ defineExpose({