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 @@ - + electron demo diff --git a/app-views/package.json b/app-views/package.json index 84efc09..034f8c3 100644 --- a/app-views/package.json +++ b/app-views/package.json @@ -5,7 +5,7 @@ "ant-design-vue": "^4.2.3", "lit": "^3.2.0", "lodash": "^4.17.21", - "vue": "^3.4.38", + "vue": "^3.5.3", "vue-router": "4" } } diff --git a/app-views/pnpm-lock.yaml b/app-views/pnpm-lock.yaml index 005d257..00cf0d6 100644 --- a/app-views/pnpm-lock.yaml +++ b/app-views/pnpm-lock.yaml @@ -10,10 +10,10 @@ importers: dependencies: '@ant-design/icons-vue': specifier: ^7.0.1 - version: 7.0.1(vue@3.4.38) + version: 7.0.1(vue@3.5.3) ant-design-vue: specifier: ^4.2.3 - version: 4.2.3(vue@3.4.38) + version: 4.2.3(vue@3.5.3) lit: specifier: ^3.2.0 version: 3.2.0 @@ -21,11 +21,11 @@ importers: specifier: ^4.17.21 version: 4.17.21 vue: - specifier: ^3.4.38 - version: 3.4.38 + specifier: ^3.5.3 + version: 3.5.3 vue-router: specifier: '4' - version: 4.4.3(vue@3.4.38) + version: 4.4.3(vue@3.5.3) packages: @@ -86,37 +86,37 @@ packages: '@types/trusted-types@2.0.7': resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - '@vue/compiler-core@3.4.38': - resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==} + '@vue/compiler-core@3.5.3': + resolution: {integrity: sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==} - '@vue/compiler-dom@3.4.38': - resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==} + '@vue/compiler-dom@3.5.3': + resolution: {integrity: sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==} - '@vue/compiler-sfc@3.4.38': - resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==} + '@vue/compiler-sfc@3.5.3': + resolution: {integrity: sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==} - '@vue/compiler-ssr@3.4.38': - resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==} + '@vue/compiler-ssr@3.5.3': + resolution: {integrity: sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==} '@vue/devtools-api@6.6.3': resolution: {integrity: sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==} - '@vue/reactivity@3.4.38': - resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==} + '@vue/reactivity@3.5.3': + resolution: {integrity: sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==} - '@vue/runtime-core@3.4.38': - resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==} + '@vue/runtime-core@3.5.3': + resolution: {integrity: sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==} - '@vue/runtime-dom@3.4.38': - resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==} + '@vue/runtime-dom@3.5.3': + resolution: {integrity: sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==} - '@vue/server-renderer@3.4.38': - resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==} + '@vue/server-renderer@3.5.3': + resolution: {integrity: sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==} peerDependencies: - vue: 3.4.38 + vue: 3.5.3 - '@vue/shared@3.4.38': - resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==} + '@vue/shared@3.5.3': + resolution: {integrity: sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==} ant-design-vue@4.2.3: resolution: {integrity: sha512-kqGyWvZtFlSInFP93Ow6wS8LzEsxxUgpI+ZY5jQQkuX8WAcqdwXCA7IcHMpECW6JB89DZMo2Bw85jUg2SjlgQA==} @@ -195,8 +195,8 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - postcss@8.4.41: - resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + postcss@8.4.45: + resolution: {integrity: sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==} engines: {node: ^10 || ^12 || >=14} regenerator-runtime@0.14.1: @@ -237,8 +237,8 @@ packages: peerDependencies: vue: ^3.0.0 - vue@3.4.38: - resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==} + vue@3.5.3: + resolution: {integrity: sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -256,11 +256,11 @@ snapshots: '@ant-design/icons-svg@4.4.2': {} - '@ant-design/icons-vue@7.0.1(vue@3.4.38)': + '@ant-design/icons-vue@7.0.1(vue@3.5.3)': dependencies: '@ant-design/colors': 6.0.0 '@ant-design/icons-svg': 4.4.2 - vue: 3.4.38 + vue: 3.5.3 '@babel/helper-string-parser@7.24.8': {} @@ -301,66 +301,66 @@ snapshots: '@types/trusted-types@2.0.7': {} - '@vue/compiler-core@3.4.38': + '@vue/compiler-core@3.5.3': dependencies: '@babel/parser': 7.25.3 - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.3 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.0 - '@vue/compiler-dom@3.4.38': + '@vue/compiler-dom@3.5.3': dependencies: - '@vue/compiler-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.3 + '@vue/shared': 3.5.3 - '@vue/compiler-sfc@3.4.38': + '@vue/compiler-sfc@3.5.3': dependencies: '@babel/parser': 7.25.3 - '@vue/compiler-core': 3.4.38 - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-core': 3.5.3 + '@vue/compiler-dom': 3.5.3 + '@vue/compiler-ssr': 3.5.3 + '@vue/shared': 3.5.3 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': + '@vue/compiler-ssr@3.5.3': dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.3 + '@vue/shared': 3.5.3 '@vue/devtools-api@6.6.3': {} - '@vue/reactivity@3.4.38': + '@vue/reactivity@3.5.3': dependencies: - '@vue/shared': 3.4.38 + '@vue/shared': 3.5.3 - '@vue/runtime-core@3.4.38': + '@vue/runtime-core@3.5.3': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.3 + '@vue/shared': 3.5.3 - '@vue/runtime-dom@3.4.38': + '@vue/runtime-dom@3.5.3': dependencies: - '@vue/reactivity': 3.4.38 - '@vue/runtime-core': 3.4.38 - '@vue/shared': 3.4.38 + '@vue/reactivity': 3.5.3 + '@vue/runtime-core': 3.5.3 + '@vue/shared': 3.5.3 csstype: 3.1.3 - '@vue/server-renderer@3.4.38(vue@3.4.38)': + '@vue/server-renderer@3.5.3(vue@3.5.3)': dependencies: - '@vue/compiler-ssr': 3.4.38 - '@vue/shared': 3.4.38 - vue: 3.4.38 + '@vue/compiler-ssr': 3.5.3 + '@vue/shared': 3.5.3 + vue: 3.5.3 - '@vue/shared@3.4.38': {} + '@vue/shared@3.5.3': {} - ant-design-vue@4.2.3(vue@3.4.38): + ant-design-vue@4.2.3(vue@3.5.3): dependencies: '@ant-design/colors': 6.0.0 - '@ant-design/icons-vue': 7.0.1(vue@3.4.38) + '@ant-design/icons-vue': 7.0.1(vue@3.5.3) '@babel/runtime': 7.25.4 '@ctrl/tinycolor': 3.6.1 '@emotion/hash': 0.9.2 @@ -379,8 +379,8 @@ snapshots: shallow-equal: 1.2.1 stylis: 4.3.4 throttle-debounce: 5.0.2 - vue: 3.4.38 - vue-types: 3.0.2(vue@3.4.38) + vue: 3.5.3 + vue-types: 3.0.2(vue@3.5.3) warning: 4.0.3 array-tree-filter@2.1.0: {} @@ -441,7 +441,7 @@ snapshots: picocolors@1.0.1: {} - postcss@8.4.41: + postcss@8.4.45: dependencies: nanoid: 3.3.7 picocolors: 1.0.1 @@ -465,23 +465,23 @@ snapshots: to-fast-properties@2.0.0: {} - vue-router@4.4.3(vue@3.4.38): + vue-router@4.4.3(vue@3.5.3): dependencies: '@vue/devtools-api': 6.6.3 - vue: 3.4.38 + vue: 3.5.3 - vue-types@3.0.2(vue@3.4.38): + vue-types@3.0.2(vue@3.5.3): dependencies: is-plain-object: 3.0.1 - vue: 3.4.38 + vue: 3.5.3 - vue@3.4.38: + vue@3.5.3: dependencies: - '@vue/compiler-dom': 3.4.38 - '@vue/compiler-sfc': 3.4.38 - '@vue/runtime-dom': 3.4.38 - '@vue/server-renderer': 3.4.38(vue@3.4.38) - '@vue/shared': 3.4.38 + '@vue/compiler-dom': 3.5.3 + '@vue/compiler-sfc': 3.5.3 + '@vue/runtime-dom': 3.5.3 + '@vue/server-renderer': 3.5.3(vue@3.5.3) + '@vue/shared': 3.5.3 warning@4.0.3: dependencies: diff --git a/app-views/src/App.vue b/app-views/src/App.vue index 3728697..7c2aa3f 100644 --- a/app-views/src/App.vue +++ b/app-views/src/App.vue @@ -1,41 +1,3 @@ - - diff --git a/app-views/src/pages/creator/panel.vue b/app-views/src/pages/creator/panel.vue new file mode 100644 index 0000000..360e156 --- /dev/null +++ b/app-views/src/pages/creator/panel.vue @@ -0,0 +1,24 @@ + + + + \ No newline at end of file diff --git a/app-views/src/pages/download.vue b/app-views/src/pages/demo/download.vue similarity index 85% rename from app-views/src/pages/download.vue rename to app-views/src/pages/demo/download.vue index 594d7e2..38e4623 100644 --- a/app-views/src/pages/download.vue +++ b/app-views/src/pages/demo/download.vue @@ -2,7 +2,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 @@ - - - - - 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