From 8779e327ecd4df7829f12100fb0bb1029bfc20ba Mon Sep 17 00:00:00 2001
From: alan <741484865@qq.com>
Date: Tue, 10 Sep 2024 13:47:43 +0800
Subject: [PATCH] update
---
app-views/components.d.ts | 9 +-
app-views/index.html | 2 +-
app-views/package.json | 2 +-
app-views/pnpm-lock.yaml | 146 ++++++-------
app-views/src/App.vue | 40 +---
app-views/src/pages/creator/panel.vue | 24 +++
app-views/src/pages/{ => demo}/download.vue | 20 +-
app-views/src/pages/demo/layout.vue | 58 +++++
.../src/pages/{ => demo}/open-window.vue | 0
app-views/src/pages/home.vue | 41 ----
app-views/src/pages/layout/index.vue | 81 +++++++
app-views/src/pages/layout/layout.vue | 79 +++++++
app-views/src/pages/layout/readme.md | 4 +
app-views/src/pages/layout/type.d.ts | 17 ++
app-views/src/route.ts | 51 ++++-
app-views/src/style.css | 1 -
app/src/devtool.cts | 11 +
app/src/download/download-item.ts | 2 +-
app/src/download/download.ts | 23 +-
app/src/index.ts | 5 +-
package.json | 5 +-
pnpm-lock.yaml | 201 +++++++++++++++---
22 files changed, 600 insertions(+), 222 deletions(-)
create mode 100644 app-views/src/pages/creator/panel.vue
rename app-views/src/pages/{ => demo}/download.vue (85%)
create mode 100644 app-views/src/pages/demo/layout.vue
rename app-views/src/pages/{ => demo}/open-window.vue (100%)
delete mode 100644 app-views/src/pages/home.vue
create mode 100644 app-views/src/pages/layout/index.vue
create mode 100644 app-views/src/pages/layout/layout.vue
create mode 100644 app-views/src/pages/layout/readme.md
create mode 100644 app-views/src/pages/layout/type.d.ts
create mode 100644 app/src/devtool.cts
diff --git a/app-views/components.d.ts b/app-views/components.d.ts
index 4c3dd70..74dda64 100644
--- a/app-views/components.d.ts
+++ b/app-views/components.d.ts
@@ -7,15 +7,14 @@ export {}
/* prettier-ignore */
declare module 'vue' {
export interface GlobalComponents {
+ AAffix: typeof import('ant-design-vue/es')['Affix']
AButton: typeof import('ant-design-vue/es')['Button']
- ALayout: typeof import('ant-design-vue/es')['Layout']
- ALayoutContent: typeof import('ant-design-vue/es')['LayoutContent']
- ALayoutFooter: typeof import('ant-design-vue/es')['LayoutFooter']
- ALayoutHeader: typeof import('ant-design-vue/es')['LayoutHeader']
- ALayoutSider: typeof import('ant-design-vue/es')['LayoutSider']
+ AFloatButton: typeof import('ant-design-vue/es')['FloatButton']
AMenu: typeof import('ant-design-vue/es')['Menu']
AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
AProgress: typeof import('ant-design-vue/es')['Progress']
+ ATabPane: typeof import('ant-design-vue/es')['TabPane']
+ ATabs: typeof import('ant-design-vue/es')['Tabs']
ATag: typeof import('ant-design-vue/es')['Tag']
}
}
diff --git a/app-views/index.html b/app-views/index.html
index 40c1f64..252aa43 100644
--- a/app-views/index.html
+++ b/app-views/index.html
@@ -3,7 +3,7 @@
-
{{ bytesToSize(task.bytesPerSecond) }}
+
{{ bytesToSize(task.bytesPerSecond ?? 0) }}
{{ task.percent === 1 ? '完成' : (task.isPause ? '继续' : '暂停') }}
@@ -18,7 +18,7 @@
+
diff --git a/app-views/src/pages/open-window.vue b/app-views/src/pages/demo/open-window.vue
similarity index 100%
rename from app-views/src/pages/open-window.vue
rename to app-views/src/pages/demo/open-window.vue
diff --git a/app-views/src/pages/home.vue b/app-views/src/pages/home.vue
deleted file mode 100644
index 828bac9..0000000
--- a/app-views/src/pages/home.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
count is {{ count }}
-
- Edit
- components/HelloWorld.vue
to test HMR
-
-
-
-
- Check out
- create-vue , the official Vue + Vite
- starter
-
-
- Learn more about IDE Support for Vue in the
- Vue Docs Scaling up
- Guide .
-
-
Click on the Vite and Vue logos to learn more
-
-
-
-
diff --git a/app-views/src/pages/layout/index.vue b/app-views/src/pages/layout/index.vue
new file mode 100644
index 0000000..d826caf
--- /dev/null
+++ b/app-views/src/pages/layout/index.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app-views/src/pages/layout/layout.vue b/app-views/src/pages/layout/layout.vue
new file mode 100644
index 0000000..b84e2a9
--- /dev/null
+++ b/app-views/src/pages/layout/layout.vue
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app-views/src/pages/layout/readme.md b/app-views/src/pages/layout/readme.md
new file mode 100644
index 0000000..592fe04
--- /dev/null
+++ b/app-views/src/pages/layout/readme.md
@@ -0,0 +1,4 @@
+- layout 可以嵌套 layout 或者显示 panel
+- layout 支持横向 or 纵向布局
+- layout 显示的 panel 支持 tab 切换
+- 最外面 resize 的时候 layout 可以保持比例变化
diff --git a/app-views/src/pages/layout/type.d.ts b/app-views/src/pages/layout/type.d.ts
new file mode 100644
index 0000000..d668521
--- /dev/null
+++ b/app-views/src/pages/layout/type.d.ts
@@ -0,0 +1,17 @@
+export type ILayoutPanel = {
+ name: string;
+ url: string;
+};
+
+export type ILayoutItem = {
+ direction: 'row' | 'column';
+ layouts?: ILayoutItem[];
+ panels?: ILayoutPanel[];
+} & (
+ | {
+ layouts: ILayoutItem[];
+ }
+ | {
+ panels: ILayoutPanel[];
+ }
+);
diff --git a/app-views/src/route.ts b/app-views/src/route.ts
index c95fa6a..b1aec6b 100644
--- a/app-views/src/route.ts
+++ b/app-views/src/route.ts
@@ -1,17 +1,50 @@
import { createRouter, createWebHashHistory } from 'vue-router';
import type { RouteRecordRaw } from 'vue-router';
-import Home from './pages/home.vue';
-import DownloadView from './pages/download.vue';
-import OpenWindowView from './pages/open-window.vue';
-
export const routes: RouteRecordRaw[] = [
- { path: '/', name: 'home', component: Home },
- { path: '/download', name: 'download', component: DownloadView },
{
- path: '/open-window',
- name: 'open-winddow',
- component: OpenWindowView,
+ path: '/demo/',
+ component: () => import('./pages/demo/layout.vue'),
+ meta: {
+ title: 'electron demo',
+ },
+ children: [
+ {
+ path: 'download',
+ name: 'download',
+ component: () => import('./pages/demo/download.vue'),
+ meta: {
+ icon: '',
+ },
+ },
+ {
+ path: 'open-window',
+ name: 'open-window',
+ component: () => import('./pages/demo/open-window.vue'),
+ },
+ ],
+ },
+ {
+ path: '/',
+ name: 'home',
+ redirect: '/demo/download',
+ meta: {
+ hideInNav: true,
+ },
+ },
+
+ {
+ path: '/layout',
+ name: 'layout',
+ component: () => import('./pages/layout/index.vue'),
+ },
+ {
+ path: '/panel/:name',
+ props: true,
+ component: () => import('./pages/creator/panel.vue'),
+ meta: {
+ hideInNav: true,
+ },
},
];
diff --git a/app-views/src/style.css b/app-views/src/style.css
index 4835cd6..e195196 100644
--- a/app-views/src/style.css
+++ b/app-views/src/style.css
@@ -24,7 +24,6 @@ a:hover {
body {
margin: 0;
- min-width: 320px;
min-height: 100vh;
}
diff --git a/app/src/devtool.cts b/app/src/devtool.cts
new file mode 100644
index 0000000..8806c1e
--- /dev/null
+++ b/app/src/devtool.cts
@@ -0,0 +1,11 @@
+const { app } = require('electron');
+const { default: installDevtool } = require('electron-devtools-installer');
+
+// https://github.com/MarshallOfSound/electron-devtools-installer/pull/239
+app.whenReady().then(() => {
+ return installDevtool('nhdogjmejiglipccpnnnanhbledajbpd', {
+ loadExtensionOptions: {
+ allowFileAccess: true,
+ },
+ });
+});
diff --git a/app/src/download/download-item.ts b/app/src/download/download-item.ts
index 5225176..6671118 100644
--- a/app/src/download/download-item.ts
+++ b/app/src/download/download-item.ts
@@ -168,7 +168,7 @@ export class DownloadItem extends DownloadItemEmitter implements IDownloadItem {
}
if (this.retry[downloadedSize] < this.retryMax) {
this.retry[downloadedSize] += 1;
- console.log('retry', downloadedSize, this.retry[downloadedSize]);
+
this.download(downloadedSize);
} else {
this.downloadEnd(false, e);
diff --git a/app/src/download/download.ts b/app/src/download/download.ts
index 6b0295e..4a9c266 100644
--- a/app/src/download/download.ts
+++ b/app/src/download/download.ts
@@ -65,9 +65,16 @@ export class DownloadManger {
const item = this.downloadItemMap[url];
if (item) {
item.downloadPause();
+ // 主动删除,则不再触发 end 等事件,因为 end 事件会提示用下载失败等,而删除不需要提示。
+ // 所以这边可以直接解绑所有事件
item.removeAllListeners();
- delete this.downloadItemMap[url];
- removeFile && (await remove(item.file));
+ delete this.downloadItemMap[item.url];
+ if (removeFile) {
+ setTimeout(() => {
+ remove(item.file);
+ }, 1000);
+ }
+ this.checktNextTask();
}
}
@@ -91,17 +98,23 @@ export class DownloadManger {
private async downloadEnd(item: IDownloadItem) {
process.nextTick(() => {
// 让其他监听的事件先执行完毕,再销毁这个下载实例
- this.deleteTask(item.url);
+ const downloadItem = this.downloadItemMap[item.url];
+ if (downloadItem) {
+ downloadItem.removeAllListeners();
+ delete this.downloadItemMap[item.url];
+ }
});
+ this.checktNextTask();
+ }
- // 如果有排队等待的则进行新的下载
+ private checktNextTask() {
if (this.downloadWaitTasks.length > 0) {
const nextItem = this.downloadWaitTasks[0];
this.createTask(nextItem.url);
}
}
- async clearTasks(removeFile = false) {
+ async deleteALLTasks(removeFile = false) {
const allTaskItems = Object.values(this.downloadItemMap);
allTaskItems.forEach((item) => {
this.deleteTask(item.url, removeFile);
diff --git a/app/src/index.ts b/app/src/index.ts
index 8f4d6f2..72da30c 100644
--- a/app/src/index.ts
+++ b/app/src/index.ts
@@ -7,12 +7,13 @@ import './download/hash-list.js';
import './menu/index.js';
import './window-center.js';
const __dirname = dirname(fileURLToPath(import.meta.url));
+import './devtool.cjs';
let main: BrowserWindow | null = null;
const createWindow = () => {
const mainWindow = new BrowserWindow({
- width: 1000,
- height: 600,
+ width: 12000,
+ height: 900,
webPreferences: {
preload: join(__dirname, '../preload.cjs'), // 只能是 cjs
sandbox: true,
diff --git a/package.json b/package.json
index 9d94973..5263b89 100644
--- a/package.json
+++ b/package.json
@@ -17,12 +17,13 @@
"@vitejs/plugin-vue": "^5.1.2",
"axios": "^1.7.4",
"electron": "32.0.1",
+ "electron-devtools-installer": "^3.2.0",
"extract-zip": "^2.0.1",
"fs-extra": "^11.2.0",
"progress": "^2.0.3",
"typescript": "^5.5.4",
"unplugin-vue-components": "^0.27.4",
- "vite": "^5.4.2",
- "vue-tsc": "^2.0.29"
+ "vite": "^5.4.3",
+ "vue-tsc": "^2.1.6"
}
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 8226dd9..9dd074f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -16,13 +16,16 @@ importers:
version: 11.0.4
'@vitejs/plugin-vue':
specifier: ^5.1.2
- version: 5.1.2(vite@5.4.2(@types/node@22.5.0))(vue@3.4.38(typescript@5.5.4))
+ version: 5.1.2(vite@5.4.3(@types/node@22.5.0))(vue@3.4.38(typescript@5.5.4))
axios:
specifier: ^1.7.4
version: 1.7.4
electron:
specifier: 32.0.1
version: 32.0.1
+ electron-devtools-installer:
+ specifier: ^3.2.0
+ version: 3.2.0
extract-zip:
specifier: ^2.0.1
version: 2.0.1
@@ -39,11 +42,11 @@ importers:
specifier: ^0.27.4
version: 0.27.4(@babel/parser@7.25.3)(rollup@4.21.0)(vue@3.4.38(typescript@5.5.4))
vite:
- specifier: ^5.4.2
- version: 5.4.2(@types/node@22.5.0)
+ specifier: ^5.4.3
+ version: 5.4.3(@types/node@22.5.0)
vue-tsc:
- specifier: ^2.0.29
- version: 2.0.29(typescript@5.5.4)
+ specifier: ^2.1.6
+ version: 2.1.6(typescript@5.5.4)
packages:
@@ -372,14 +375,14 @@ packages:
vite: ^5.0.0
vue: ^3.2.25
- '@volar/language-core@2.4.0':
- resolution: {integrity: sha512-FTla+khE+sYK0qJP+6hwPAAUwiNHVMph4RUXpxf/FIPKUP61NFrVZorml4mjFShnueR2y9/j8/vnh09YwVdH7A==}
+ '@volar/language-core@2.4.4':
+ resolution: {integrity: sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==}
- '@volar/source-map@2.4.0':
- resolution: {integrity: sha512-2ceY8/NEZvN6F44TXw2qRP6AQsvCYhV2bxaBPWxV9HqIfkbRydSksTFObCF1DBDNBfKiZTS8G/4vqV6cvjdOIQ==}
+ '@volar/source-map@2.4.4':
+ resolution: {integrity: sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==}
- '@volar/typescript@2.4.0':
- resolution: {integrity: sha512-9zx3lQWgHmVd+JRRAHUSRiEhe4TlzL7U7e6ulWXOxHH/WNYxzKwCvZD7WYWEZFdw4dHfTD9vUR0yPQO6GilCaQ==}
+ '@volar/typescript@2.4.4':
+ resolution: {integrity: sha512-QQMQRVj0fVHJ3XdRKiS1LclhG0VBXdFYlyuHRQF/xLk2PuJuHNWP26MDZNvEVCvnyUQuUQhIAfylwY5TGPgc6w==}
'@vue/compiler-core@3.4.38':
resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==}
@@ -396,8 +399,8 @@ packages:
'@vue/compiler-vue2@2.7.16':
resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==}
- '@vue/language-core@2.0.29':
- resolution: {integrity: sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==}
+ '@vue/language-core@2.1.6':
+ resolution: {integrity: sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
@@ -491,6 +494,9 @@ packages:
confbox@0.1.7:
resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
+ core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
@@ -529,6 +535,9 @@ packages:
detect-node@2.1.0:
resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
+ electron-devtools-installer@3.2.0:
+ resolution: {integrity: sha512-t3UczsYugm4OAbqvdImMCImIMVdFzJAHgbwHpkl5jmfu1izVgUcP/mnrPqJIpEeCK1uZGpt+yHgWEN+9EwoYhQ==}
+
electron@32.0.1:
resolution: {integrity: sha512-5Hd5Jaf9niYVR2hZxoRd3gOrcxPOxQV1XPV5WaoSfT9jLJHFadhlKtuSDIk3U6rQZke+aC7GqPPAv55nWFCMsA==}
engines: {node: '>= 12.20.55'}
@@ -679,6 +688,9 @@ packages:
resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
engines: {node: '>=10.19.0'}
+ immediate@3.0.6:
+ resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
+
inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
@@ -702,6 +714,9 @@ packages:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
+ isarray@1.0.0:
+ resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
+
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@@ -714,9 +729,15 @@ packages:
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+ jszip@3.10.1:
+ resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==}
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+ lie@3.3.0:
+ resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
+
local-pkg@0.5.0:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
@@ -763,6 +784,13 @@ packages:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ mkdirp@0.5.6:
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
+
mlly@1.7.1:
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
@@ -796,6 +824,9 @@ packages:
resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
engines: {node: '>=8'}
+ pako@1.0.11:
+ resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
+
path-browserify@1.0.1:
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
@@ -819,10 +850,13 @@ packages:
pkg-types@1.2.0:
resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==}
- postcss@8.4.41:
- resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
+ postcss@8.4.45:
+ resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==}
engines: {node: ^10 || ^12 || >=14}
+ process-nextick-args@2.0.1:
+ resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
progress@2.0.3:
resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
engines: {node: '>=0.4.0'}
@@ -840,6 +874,9 @@ packages:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
+ readable-stream@2.3.8:
+ resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
@@ -854,6 +891,11 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
roarr@2.15.4:
resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
engines: {node: '>=8.0'}
@@ -866,6 +908,9 @@ packages:
run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ safe-buffer@5.1.2:
+ resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
semver-compare@1.0.0:
resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
@@ -882,6 +927,9 @@ packages:
resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
engines: {node: '>=10'}
+ setimmediate@1.0.5:
+ resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
+
source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
@@ -889,6 +937,9 @@ packages:
sprintf-js@1.1.3:
resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ string_decoder@1.1.1:
+ resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
sumchecker@3.0.1:
resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
engines: {node: '>= 8.0'}
@@ -901,6 +952,9 @@ packages:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
+ tslib@2.7.0:
+ resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
+
type-fest@0.13.1:
resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
engines: {node: '>=10'}
@@ -941,8 +995,14 @@ packages:
resolution: {integrity: sha512-bEqQxeC7rxtxPZ3M5V4Djcc4lQqKPgGe3mAWZvxcSmX5jhGxll19NliaRzQSQPrk4xJZSGniK3puLWpRuZN7VQ==}
engines: {node: '>=14.0.0'}
- vite@5.4.2:
- resolution: {integrity: sha512-dDrQTRHp5C1fTFzcSaMxjk6vdpKvT+2/mIdE07Gw2ykehT49O0z/VHS3zZ8iV/Gh8BJJKHWOe5RjaNrW5xf/GA==}
+ unzip-crx-3@0.2.0:
+ resolution: {integrity: sha512-0+JiUq/z7faJ6oifVB5nSwt589v1KCduqIJupNVDoWSXZtWDmjDGO3RAEOvwJ07w90aoXoP4enKsR7ecMrJtWQ==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ vite@5.4.3:
+ resolution: {integrity: sha512-IH+nl64eq9lJjFqU+/yrRnrHPVTlgy42/+IzbOdaFDVlyLgI/wDlf+FCobXLX1cT0X5+7LMyH1mIy2xJdLfo8Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -975,8 +1035,8 @@ packages:
vscode-uri@3.0.8:
resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==}
- vue-tsc@2.0.29:
- resolution: {integrity: sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==}
+ vue-tsc@2.1.6:
+ resolution: {integrity: sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==}
hasBin: true
peerDependencies:
typescript: '>=5.0.0'
@@ -999,6 +1059,9 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ yaku@0.16.7:
+ resolution: {integrity: sha512-Syu3IB3rZvKvYk7yTiyl1bo/jiEFaaStrgv1V2TIJTqYPStSMQVO8EQjg/z+DRzLq/4LIIharNT3iH1hylEIRw==}
+
yauzl@2.10.0:
resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
@@ -1226,20 +1289,20 @@ snapshots:
'@types/node': 22.5.0
optional: true
- '@vitejs/plugin-vue@5.1.2(vite@5.4.2(@types/node@22.5.0))(vue@3.4.38(typescript@5.5.4))':
+ '@vitejs/plugin-vue@5.1.2(vite@5.4.3(@types/node@22.5.0))(vue@3.4.38(typescript@5.5.4))':
dependencies:
- vite: 5.4.2(@types/node@22.5.0)
+ vite: 5.4.3(@types/node@22.5.0)
vue: 3.4.38(typescript@5.5.4)
- '@volar/language-core@2.4.0':
+ '@volar/language-core@2.4.4':
dependencies:
- '@volar/source-map': 2.4.0
+ '@volar/source-map': 2.4.4
- '@volar/source-map@2.4.0': {}
+ '@volar/source-map@2.4.4': {}
- '@volar/typescript@2.4.0':
+ '@volar/typescript@2.4.4':
dependencies:
- '@volar/language-core': 2.4.0
+ '@volar/language-core': 2.4.4
path-browserify: 1.0.1
vscode-uri: 3.0.8
@@ -1265,7 +1328,7 @@ snapshots:
'@vue/shared': 3.4.38
estree-walker: 2.0.2
magic-string: 0.30.11
- postcss: 8.4.41
+ postcss: 8.4.45
source-map-js: 1.2.0
'@vue/compiler-ssr@3.4.38':
@@ -1278,9 +1341,9 @@ snapshots:
de-indent: 1.0.2
he: 1.2.0
- '@vue/language-core@2.0.29(typescript@5.5.4)':
+ '@vue/language-core@2.1.6(typescript@5.5.4)':
dependencies:
- '@volar/language-core': 2.4.0
+ '@volar/language-core': 2.4.4
'@vue/compiler-dom': 3.4.38
'@vue/compiler-vue2': 2.7.16
'@vue/shared': 3.4.38
@@ -1394,6 +1457,8 @@ snapshots:
confbox@0.1.7: {}
+ core-util-is@1.0.3: {}
+
csstype@3.1.3: {}
de-indent@1.0.2: {}
@@ -1427,6 +1492,13 @@ snapshots:
detect-node@2.1.0:
optional: true
+ electron-devtools-installer@3.2.0:
+ dependencies:
+ rimraf: 3.0.2
+ semver: 7.6.3
+ tslib: 2.7.0
+ unzip-crx-3: 0.2.0
+
electron@32.0.1:
dependencies:
'@electron/get': 2.0.3
@@ -1631,6 +1703,8 @@ snapshots:
quick-lru: 5.1.1
resolve-alpn: 1.2.1
+ immediate@3.0.6: {}
+
inflight@1.0.6:
dependencies:
once: 1.4.0
@@ -1650,6 +1724,8 @@ snapshots:
is-number@7.0.0: {}
+ isarray@1.0.0: {}
+
json-buffer@3.0.1: {}
json-stringify-safe@5.0.1:
@@ -1665,10 +1741,21 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
+ jszip@3.10.1:
+ dependencies:
+ lie: 3.3.0
+ pako: 1.0.11
+ readable-stream: 2.3.8
+ setimmediate: 1.0.5
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
+ lie@3.3.0:
+ dependencies:
+ immediate: 3.0.6
+
local-pkg@0.5.0:
dependencies:
mlly: 1.7.1
@@ -1710,6 +1797,12 @@ snapshots:
dependencies:
brace-expansion: 2.0.1
+ minimist@1.2.8: {}
+
+ mkdirp@0.5.6:
+ dependencies:
+ minimist: 1.2.8
+
mlly@1.7.1:
dependencies:
acorn: 8.12.1
@@ -1736,6 +1829,8 @@ snapshots:
p-cancelable@2.1.1: {}
+ pako@1.0.11: {}
+
path-browserify@1.0.1: {}
path-is-absolute@1.0.1: {}
@@ -1754,12 +1849,14 @@ snapshots:
mlly: 1.7.1
pathe: 1.1.2
- postcss@8.4.41:
+ postcss@8.4.45:
dependencies:
nanoid: 3.3.7
picocolors: 1.0.1
source-map-js: 1.2.0
+ process-nextick-args@2.0.1: {}
+
progress@2.0.3: {}
proxy-from-env@1.1.0: {}
@@ -1773,6 +1870,16 @@ snapshots:
quick-lru@5.1.1: {}
+ readable-stream@2.3.8:
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 1.0.0
+ process-nextick-args: 2.0.1
+ safe-buffer: 5.1.2
+ string_decoder: 1.1.1
+ util-deprecate: 1.0.2
+
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
@@ -1785,6 +1892,10 @@ snapshots:
reusify@1.0.4: {}
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
roarr@2.15.4:
dependencies:
boolean: 3.2.0
@@ -1821,6 +1932,8 @@ snapshots:
dependencies:
queue-microtask: 1.2.3
+ safe-buffer@5.1.2: {}
+
semver-compare@1.0.0:
optional: true
@@ -1833,11 +1946,17 @@ snapshots:
type-fest: 0.13.1
optional: true
+ setimmediate@1.0.5: {}
+
source-map-js@1.2.0: {}
sprintf-js@1.1.3:
optional: true
+ string_decoder@1.1.1:
+ dependencies:
+ safe-buffer: 5.1.2
+
sumchecker@3.0.1:
dependencies:
debug: 4.3.6
@@ -1850,6 +1969,8 @@ snapshots:
dependencies:
is-number: 7.0.0
+ tslib@2.7.0: {}
+
type-fest@0.13.1:
optional: true
@@ -1889,10 +2010,18 @@ snapshots:
webpack-sources: 3.2.3
webpack-virtual-modules: 0.6.2
- vite@5.4.2(@types/node@22.5.0):
+ unzip-crx-3@0.2.0:
+ dependencies:
+ jszip: 3.10.1
+ mkdirp: 0.5.6
+ yaku: 0.16.7
+
+ util-deprecate@1.0.2: {}
+
+ vite@5.4.3(@types/node@22.5.0):
dependencies:
esbuild: 0.21.5
- postcss: 8.4.41
+ postcss: 8.4.45
rollup: 4.21.0
optionalDependencies:
'@types/node': 22.5.0
@@ -1900,10 +2029,10 @@ snapshots:
vscode-uri@3.0.8: {}
- vue-tsc@2.0.29(typescript@5.5.4):
+ vue-tsc@2.1.6(typescript@5.5.4):
dependencies:
- '@volar/typescript': 2.4.0
- '@vue/language-core': 2.0.29(typescript@5.5.4)
+ '@volar/typescript': 2.4.4
+ '@vue/language-core': 2.1.6(typescript@5.5.4)
semver: 7.6.3
typescript: 5.5.4
@@ -1923,6 +2052,8 @@ snapshots:
wrappy@1.0.2: {}
+ yaku@0.16.7: {}
+
yauzl@2.10.0:
dependencies:
buffer-crc32: 0.2.13