TUI 骨架可运行: 主菜单+上传/任务/配置三视图, 桥接 Python 管线 (tarball 依赖修复 catalog 协议)
This commit is contained in:
+2
-2
@@ -11,12 +11,12 @@
|
||||
"preview": "pnpm run build && node dist/main.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
"@vue-tui/runtime": "file:/home/lou/桌面/vue-tui/packages/runtime",
|
||||
"@vue-tui/runtime": "file:./vendor/vue-tui-runtime-0.3.0.tgz",
|
||||
"vue": "^3.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^22.18.0",
|
||||
"@vue-tui/vite": "file:/home/lou/桌面/vue-tui/packages/vite",
|
||||
"@vue-tui/vite": "file:./vendor/vue-tui-vite-0.3.1.tgz",
|
||||
"typescript": "^6.0.3",
|
||||
"unplugin-vue": "^7.2.0",
|
||||
"vite": "8.2.1",
|
||||
|
||||
Generated
+998
@@ -0,0 +1,998 @@
|
||||
lockfileVersion: '9.0'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
'@vue-tui/runtime':
|
||||
specifier: file:./vendor/vue-tui-runtime-0.3.0.tgz
|
||||
version: file:vendor/vue-tui-runtime-0.3.0.tgz(vue@3.5.41(typescript@6.0.3))
|
||||
vue:
|
||||
specifier: ^3.5.0
|
||||
version: 3.5.41(typescript@6.0.3)
|
||||
devDependencies:
|
||||
'@types/node':
|
||||
specifier: ^22.18.0
|
||||
version: 22.20.1
|
||||
'@vue-tui/vite':
|
||||
specifier: file:./vendor/vue-tui-vite-0.3.1.tgz
|
||||
version: file:vendor/vue-tui-vite-0.3.1.tgz(@vue-tui/runtime@file:vendor/vue-tui-runtime-0.3.0.tgz(vue@3.5.41(typescript@6.0.3)))(unplugin-vue@7.2.0(@types/node@22.20.1)(rolldown@1.2.3)(vue@3.5.41(typescript@6.0.3)))(vite@8.2.1(@types/node@22.20.1))
|
||||
typescript:
|
||||
specifier: ^6.0.3
|
||||
version: 6.0.3
|
||||
unplugin-vue:
|
||||
specifier: ^7.2.0
|
||||
version: 7.2.0(@types/node@22.20.1)(rolldown@1.2.3)(vue@3.5.41(typescript@6.0.3))
|
||||
vite:
|
||||
specifier: 8.2.1
|
||||
version: 8.2.1(@types/node@22.20.1)
|
||||
vue-tsc:
|
||||
specifier: ^3.3.4
|
||||
version: 3.3.9(typescript@6.0.3)
|
||||
|
||||
packages:
|
||||
|
||||
'@alcalzone/ansi-tokenize@0.3.0':
|
||||
resolution: {integrity: sha512-p+CMKJ93HFmLkjXKlXiVGlMQEuRb6H0MokBSwUsX+S6BRX8eV5naFZpQJFfJHjRZY0Hmnqy1/r6UWl3x+19zYA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@babel/helper-string-parser@7.29.7':
|
||||
resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/helper-validator-identifier@7.29.7':
|
||||
resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/parser@7.29.8':
|
||||
resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
|
||||
'@babel/types@7.29.8':
|
||||
resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@jridgewell/gen-mapping@0.3.13':
|
||||
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
|
||||
|
||||
'@jridgewell/remapping@2.3.5':
|
||||
resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
|
||||
|
||||
'@jridgewell/resolve-uri@3.1.2':
|
||||
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.4.14':
|
||||
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.5.0':
|
||||
resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.5.5':
|
||||
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
|
||||
|
||||
'@jridgewell/trace-mapping@0.3.31':
|
||||
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
|
||||
|
||||
'@oxc-project/types@0.143.0':
|
||||
resolution: {integrity: sha512-u6JZdLBTLotrNC9Vd6vPssINdzcCzleKAH6EJKImQb7GtYvX5keN2dxkoK44stCc4tffE6QQRtZTXVSzsLUlWA==}
|
||||
|
||||
'@rolldown/binding-android-arm64@1.2.3':
|
||||
resolution: {integrity: sha512-zrJtHDcaZJ1Fp7xf4hNl+7seH9Cn/N5TwLYkhgXREtBwAd/jaqW3uqeHxpDugJLVICWg4eW44kOQEGJ1r6jCGw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
'@rolldown/binding-darwin-arm64@1.2.3':
|
||||
resolution: {integrity: sha512-ieIiibVCp0tX7TLu2cafoNPv8wJyYi01ekXpbf8q2j7F4rGAhhXb/eQh7ge9DRBY78GwmRQtvjZDux7EDbA8kA==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@rolldown/binding-darwin-x64@1.2.3':
|
||||
resolution: {integrity: sha512-Zh9tCon19eDXJoihx0rqKhMUlMYqzwj3aPsSuHmI4RWZh62dWUL+DJN4C5YQya5TcQBJU/Fe8+rY0jhXTQITqA==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@rolldown/binding-freebsd-x64@1.2.3':
|
||||
resolution: {integrity: sha512-nGbJWewA1wrXXZiQhjAT5rhibGfns5ZNkDVqxsO6zJ3f3YvpoDNNmGMSbbhLuXKjNScaBJVOAboztAWVespQMg==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
'@rolldown/binding-linux-arm-gnueabihf@1.2.3':
|
||||
resolution: {integrity: sha512-QNniJr5Kml0kDEB98jiDOJjXNroxIIi0IXIbdYzY26Xt1pVbeP62+KnoIZLwirOymX/0jDk/2gI/bNUv7A7OIw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
'@rolldown/binding-linux-arm64-gnu@1.2.3':
|
||||
resolution: {integrity: sha512-TkqEAcmmvH3I/q4114NB4RVt6241Dao48pF45uLcFGrwAaIn0iITgTAKP/dLjbN0R4buJjGb91+UHSoFmpgIWw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rolldown/binding-linux-arm64-musl@1.2.3':
|
||||
resolution: {integrity: sha512-NHqjnxpsndf4MPymxteFAWHHfkTL8HjWh1KB7z23ofZ6QO2euONuxDXjat69dKZRALnGypg8k8SsK8vZJoXv1Q==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rolldown/binding-linux-ppc64-gnu@1.2.3':
|
||||
resolution: {integrity: sha512-6tbrbwfz5GB9DQ4Jwo6hy9v+vR31xZlvzZ6n5Xut6Hhx5PvrA9q/HsK8KMaYQp063iqZGXwNvZtYNLD7EM/x0w==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rolldown/binding-linux-s390x-gnu@1.2.3':
|
||||
resolution: {integrity: sha512-oyuXxXmoZHjXC917IAPFAAv4wWAa0cM9afk8nx1+9/jNNOX1uPf8yDA6p7G0RypOfw/X0PQt5IfoquY1um+zSg==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rolldown/binding-linux-x64-gnu@1.2.3':
|
||||
resolution: {integrity: sha512-TytMwF2KVGqP2tgd0I1OY0PAv78dZRAYcF5ssDzjM34SUXCED3uXvSd5+lHoC0bTD6eEdFz7LdQNCO1y0oVk9w==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rolldown/binding-linux-x64-musl@1.2.3':
|
||||
resolution: {integrity: sha512-/E9m3qstrJFVPoULV25mVQblSNExY2+kBsYe4sy0Tn0yOOgJ8wZbZt3KnRbF/XeU2Gl1STKUQnDNTqhIE5MD4A==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rolldown/binding-openharmony-arm64@1.2.3':
|
||||
resolution: {integrity: sha512-Kr0OcsoQI816i6HOl3vFHpd1K0eZyh76zgfj4c1nTyaTsd5r2Mj1lwM4R90y/qaCfmTn9eHy0SKwi98eitRxug==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [openharmony]
|
||||
|
||||
'@rolldown/binding-win32-arm64-msvc@1.2.3':
|
||||
resolution: {integrity: sha512-hOtMwTqnME+/gJcH/PCZ0wn0zPUjiWOgkHpxbSJpfGKMezHltx1S7/k1SitzVa7Ww2cqrDDaFbZEhcJZO8o+Jw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@rolldown/binding-win32-x64-msvc@1.2.3':
|
||||
resolution: {integrity: sha512-ekcqMMkI2PlhYnfzQnB/cEdYUVVJViWvoUyLrbzgDoi3Snfc1mVBwdnc306ufA5ejy8JSPjT2RlW1nQSjW7efg==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@rolldown/pluginutils@1.0.1':
|
||||
resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
|
||||
|
||||
'@types/node@22.20.1':
|
||||
resolution: {integrity: sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==}
|
||||
|
||||
'@volar/language-core@2.4.28':
|
||||
resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
|
||||
|
||||
'@volar/source-map@2.4.28':
|
||||
resolution: {integrity: sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ==}
|
||||
|
||||
'@volar/typescript@2.4.28':
|
||||
resolution: {integrity: sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw==}
|
||||
|
||||
'@vue-tui/runtime@file:vendor/vue-tui-runtime-0.3.0.tgz':
|
||||
resolution: {integrity: sha512-4aDEQ3J5gcMVOT7YDZ4FwucLCnW5OTYb6/zcvnv6brCtJ/uR7JPi1979O00rJgZkj19iejm4KsBo7NaLF9oGtw==, tarball: file:vendor/vue-tui-runtime-0.3.0.tgz}
|
||||
version: 0.3.0
|
||||
engines: {node: '>=22.18.0'}
|
||||
peerDependencies:
|
||||
vue: ^3.5.0
|
||||
|
||||
'@vue-tui/vite@file:vendor/vue-tui-vite-0.3.1.tgz':
|
||||
resolution: {integrity: sha512-pjZpiVoG7pb9a+NkOa0jOyLgYhte+zHG25jJJp7GOJv6tI1MyTEMYiCClmJBJuLrmeejmJEFAeyWL+QflMs0Jg==, tarball: file:vendor/vue-tui-vite-0.3.1.tgz}
|
||||
version: 0.3.1
|
||||
peerDependencies:
|
||||
'@vitejs/plugin-vue-jsx': 5.1.5
|
||||
'@vue-tui/runtime': 0.3.0
|
||||
unplugin-vue: 7.2.0
|
||||
vite: 8.2.1
|
||||
peerDependenciesMeta:
|
||||
'@vitejs/plugin-vue-jsx':
|
||||
optional: true
|
||||
unplugin-vue:
|
||||
optional: true
|
||||
vite:
|
||||
optional: true
|
||||
|
||||
'@vue/compiler-core@3.5.41':
|
||||
resolution: {integrity: sha512-q0Xtv/F9w2YO/7htQhtiL+Ev2WCJbe5N2hc+XfgyKkEKqWpSxknmT8QOuGdEKNdjPq0c3F7rNpFkTo3Kfrm7pg==}
|
||||
|
||||
'@vue/compiler-dom@3.5.41':
|
||||
resolution: {integrity: sha512-oKacVfNglLvGjnS6BXOlGL7EyG2h8X03pqXCjzotRZUaXGjbrTJUnVAQjrCqUnS+lyu31nwQjZY/d817GmCnfw==}
|
||||
|
||||
'@vue/compiler-sfc@3.5.41':
|
||||
resolution: {integrity: sha512-XJhip7R2wy6vX3knCxdZN4KracFaZUef58s1KYewqluedHIJaPIVfXoYT7MF1F8nCvv6k8bWWxDC8opMkg1VTQ==}
|
||||
|
||||
'@vue/compiler-ssr@3.5.41':
|
||||
resolution: {integrity: sha512-U3v5OejKEGqOI0Wy0+Sz7hGuIFZHA4LSXzrNM3IMIeDyJEBBfTpX26n3SDgToRpP2bLc9FfI2j/kSgcJ8Emq5A==}
|
||||
|
||||
'@vue/language-core@3.3.9':
|
||||
resolution: {integrity: sha512-in/68oAa4BCtVY6n/nkuhLIkV8DHYd2UivedJ6cMZ6UYtlq9jaoaSNUBHYCVO44z3nKg7MdE5OBoHKt5SxeBKQ==}
|
||||
|
||||
'@vue/reactivity@3.5.41':
|
||||
resolution: {integrity: sha512-rznsqKM0np0x18EjzF8x88MpEhdNsffbvFbckLL5+oUKz1BxAImEmO7J1ArRYSyo6aQaVoBDp7jEkT91OOxydA==}
|
||||
|
||||
'@vue/runtime-core@3.5.41':
|
||||
resolution: {integrity: sha512-Vcry58hiAKwGen9Z1jUZE0feFsNArPCMOImYI8el48A9Idf6DuQYD0U05zZIF2Iad1hGhPSvcbBbAOhNr55fhg==}
|
||||
|
||||
'@vue/runtime-dom@3.5.41':
|
||||
resolution: {integrity: sha512-3vVBahVBS9+U6cmXBLyb8nE6/yYo4J/CGI9eVFs3KiMc0YHuudwKyShTD65jtJy/L9PUUxNAFu4cj4LiJ0UFbw==}
|
||||
|
||||
'@vue/server-renderer@3.5.41':
|
||||
resolution: {integrity: sha512-n6hx/pNFfbD6SuyeuMVkvqox8bwf/ET9JlA/kAz/imw8sw++wkqKe2mHX5KutjPpbKE4Z56yTHszoOjGMI9igQ==}
|
||||
|
||||
'@vue/shared@3.5.41':
|
||||
resolution: {integrity: sha512-IOnwSCma8j+9xJT6b8H0dEYidC80NsYmNMlZxRsukYcSoGaDBohog5hDxzeUXdFeGWFA++vWvxqOmrr96VlqMA==}
|
||||
|
||||
alien-signals@3.2.1:
|
||||
resolution: {integrity: sha512-I8FjmltrfnDFoZedi5CG8DghVYNhzb/Ijluz7tCSJH0xpd0484Kowhbb1XDYOxfJpU1p5wnM2X54dA+IfGyD1g==}
|
||||
|
||||
ansi-escapes@7.3.0:
|
||||
resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
ansi-regex@6.2.2:
|
||||
resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ansi-styles@6.2.1:
|
||||
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ansi-styles@6.2.3:
|
||||
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
chalk@5.3.0:
|
||||
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
|
||||
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
||||
|
||||
cli-boxes@3.0.0:
|
||||
resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
cli-truncate@6.1.1:
|
||||
resolution: {integrity: sha512-06p9vyLahLa4zkGcgsGxU6iEkSOiuI4fhCH6Emhe2lPAcoUv73n72DnODsnHA+5wwXGnV0n9M9/qOQJSjYhFhw==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
csstype@3.2.3:
|
||||
resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==}
|
||||
|
||||
detect-libc@2.1.2:
|
||||
resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
entities@7.0.1:
|
||||
resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
|
||||
engines: {node: '>=0.12'}
|
||||
|
||||
environment@1.1.0:
|
||||
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
estree-walker@2.0.2:
|
||||
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
|
||||
|
||||
fdir@6.5.0:
|
||||
resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
peerDependencies:
|
||||
picomatch: ^3 || ^4
|
||||
peerDependenciesMeta:
|
||||
picomatch:
|
||||
optional: true
|
||||
|
||||
fsevents@2.3.3:
|
||||
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
|
||||
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
|
||||
os: [darwin]
|
||||
|
||||
get-east-asian-width@1.6.0:
|
||||
resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
is-fullwidth-code-point@5.1.0:
|
||||
resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
lightningcss-android-arm64@1.33.0:
|
||||
resolution: {integrity: sha512-gEpRTalKdosp4Bb8qWtc2iOgE5SeIHlpS1up9bFq2wAyYhl1UdTObYiHe98zEM9SQvSoqQZ1IQD0JNpg3Ml5pg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [android]
|
||||
|
||||
lightningcss-darwin-arm64@1.33.0:
|
||||
resolution: {integrity: sha512-Sciaz8eenNTKn9b3t7+xr0ipTp9YxKQY4npwQ3mrRuL0BAVHBLyZxofhaKBAVtzmtRZ/zTyo0/to4B1uWG/Djg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
lightningcss-darwin-x64@1.33.0:
|
||||
resolution: {integrity: sha512-Z5UPAxzrjlWNNyGy6i65cJzzvgJ5D3T6wMvs+gWpY9d7qRhANrxqAp6LhxIgZhWEw18RfJTGcRxjuLIBr+m8XQ==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
lightningcss-freebsd-x64@1.33.0:
|
||||
resolution: {integrity: sha512-QQM/Ti/hQajJwCY+RiWuCZ9sdtI/XQk7nDK5vC8kkdwixezOlDgvDx7+RT+QjK6FcFT4MpsuoBnHIo/O3StRRg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [freebsd]
|
||||
|
||||
lightningcss-linux-arm-gnueabihf@1.33.0:
|
||||
resolution: {integrity: sha512-N7FVBe6iS24MlM6R/4RBTxGhQheZGs7tiQ9U32UtF75NzP5Q7xWPRqLBCKxlRQRk3rY1jCIPLzx7WzOhuUIRLQ==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
|
||||
lightningcss-linux-arm64-gnu@1.33.0:
|
||||
resolution: {integrity: sha512-j2v/itmy4HlNxlc6voKXYgBqNi0Ng2LShg4z7GufpEgs05P+2suBVyi9I6YHq5uoVFx9ETin3eCEhLVyXGQnKg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
lightningcss-linux-arm64-musl@1.33.0:
|
||||
resolution: {integrity: sha512-yiO5ROMuYQgXbC60yjZU5CYSFZGKXL0HFATXt9mHJn1+zW55oCtMI9NfcVhYLMFDL7gV7oBPon/EmMMGg2OvtQ==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
lightningcss-linux-x64-gnu@1.33.0:
|
||||
resolution: {integrity: sha512-ar+Ju7LmcN0Jo4FpL4hpFybwNG9/3A/Br5KW2n2jyODg3MEZXaDYADdemoNS+BDNfMgKvylJLj4S5tyRActuAg==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
lightningcss-linux-x64-musl@1.33.0:
|
||||
resolution: {integrity: sha512-RYiYbkokw0trfKqqzfF55lginwEPrD3OJDfTuJzFs1MK6iFnDenaz1fqLLtX4ITG3OktJQXOeTaw1awrBAlZPw==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
lightningcss-win32-arm64-msvc@1.33.0:
|
||||
resolution: {integrity: sha512-1K+MPfLSFVpphzpdbfkhlWk6wBrTObBzS2T6db10PNOZgR9GoVsAWzwNyuhUYYbTp23j+4RrncfujZ4uAzXvwA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
lightningcss-win32-x64-msvc@1.33.0:
|
||||
resolution: {integrity: sha512-OlEICDx/Xl0FqSp4bry8zFnCvGpig3Gl4gCquvYwHuqJKEC1+n9NgDniFvqHGmMv1ZkqDJrDqKKSykTDX+ehuA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
lightningcss@1.33.0:
|
||||
resolution: {integrity: sha512-WkUDrojuJs0xkgGf2udWxa3yGBRxPtxUkB79i6aCZLRgc7PM8fZe9TosfPDcvEpQZbuFASnHYmRLBLUbmLOIIA==}
|
||||
engines: {node: '>= 12.0.0'}
|
||||
|
||||
magic-string@0.30.21:
|
||||
resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==}
|
||||
|
||||
muggle-string@0.4.1:
|
||||
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
|
||||
|
||||
nanoid@3.3.18:
|
||||
resolution: {integrity: sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==}
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
|
||||
obug@2.1.4:
|
||||
resolution: {integrity: sha512-4a+OsYv9UktOJKE+l1A4OufDgdRF9PifWj+tJnHURo/P+WOxpG4GzUFL9qCalmWauao6ogiG+QvnCovwPoyAWA==}
|
||||
engines: {node: '>=12.20.0'}
|
||||
|
||||
patch-console@2.0.0:
|
||||
resolution: {integrity: sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
|
||||
path-browserify@1.0.1:
|
||||
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
|
||||
|
||||
picocolors@1.1.1:
|
||||
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
|
||||
|
||||
picomatch@4.0.5:
|
||||
resolution: {integrity: sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
postcss@8.5.26:
|
||||
resolution: {integrity: sha512-u82N74LFzG8ca+dD8puPnplTXoGH4fTPpVGuIbt36G3qvNlkvfD0lEAZSxaly3KX8TS/L1A1gsCEmvKmBcVbkQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
||||
rolldown@1.2.3:
|
||||
resolution: {integrity: sha512-rn9wpmxplLf7NLNyCk9FyWh3FM43DbY8jOzCdEPzH7uflhTftRbCEpqi6Ly2osgoU8OwObtmavMbWLaWy4LX7A==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
hasBin: true
|
||||
|
||||
signal-exit@4.1.0:
|
||||
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
slice-ansi@9.0.0:
|
||||
resolution: {integrity: sha512-SO/3iYL5S3W57LLEniscOGPZgOqZUPCx6d3dB+52B80yJ0XstzsC/eV8gnA4tM3MHDrKz+OCFSLNjswdSC+/bA==}
|
||||
engines: {node: '>=22'}
|
||||
|
||||
source-map-js@1.2.1:
|
||||
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
string-width@8.2.2:
|
||||
resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
strip-ansi@7.2.0:
|
||||
resolution: {integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
tinyglobby@0.2.17:
|
||||
resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
typescript@6.0.3:
|
||||
resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
|
||||
unplugin-vue@7.2.0:
|
||||
resolution: {integrity: sha512-6JHWcRbLO3bySOsipQSW9n2VRoPqsx9GLSWBfp7QLPCvpUr/edeAXR7pSl44EEJ+FIp9bG8Zm+xm5dnM/yir4Q==}
|
||||
engines: {node: '>=20.19.0'}
|
||||
peerDependencies:
|
||||
vue: ^3.2.25
|
||||
|
||||
unplugin@3.3.0:
|
||||
resolution: {integrity: sha512-qa66K+crbfyE6JK10GjvbJeRrOsuC/JpbnHctfyp/i4oBTxWOzJfRZyDiOk1PtErMFRu8JhsU/wPvOdBNWe5Rg==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
peerDependencies:
|
||||
'@farmfe/core': '*'
|
||||
'@rspack/core': '*'
|
||||
bun-types-no-globals: '*'
|
||||
esbuild: '*'
|
||||
rolldown: '*'
|
||||
rollup: '*'
|
||||
unloader: '*'
|
||||
vite: '*'
|
||||
webpack: '*'
|
||||
peerDependenciesMeta:
|
||||
'@farmfe/core':
|
||||
optional: true
|
||||
'@rspack/core':
|
||||
optional: true
|
||||
bun-types-no-globals:
|
||||
optional: true
|
||||
esbuild:
|
||||
optional: true
|
||||
rolldown:
|
||||
optional: true
|
||||
rollup:
|
||||
optional: true
|
||||
unloader:
|
||||
optional: true
|
||||
vite:
|
||||
optional: true
|
||||
webpack:
|
||||
optional: true
|
||||
|
||||
vite@8.2.1:
|
||||
resolution: {integrity: sha512-EU/eS7BH3XROHh2YnBefjM6DBKA6ZeMZEYQbj7NLWg5wHYlhB8B/Mayd5XsgWq+NFYccDOTemRpdETWR6Ka/lw==}
|
||||
engines: {node: ^20.19.0 || >=22.12.0}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@types/node': ^20.19.0 || >=22.12.0
|
||||
'@vitejs/devtools': ^0.4.0
|
||||
esbuild: ^0.27.0 || ^0.28.0
|
||||
jiti: '>=1.21.0'
|
||||
less: ^4.0.0
|
||||
sass: ^1.70.0
|
||||
sass-embedded: ^1.70.0
|
||||
stylus: '>=0.54.8'
|
||||
sugarss: ^5.0.0
|
||||
terser: ^5.16.0
|
||||
tsx: ^4.8.1
|
||||
yaml: ^2.4.2
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
'@vitejs/devtools':
|
||||
optional: true
|
||||
esbuild:
|
||||
optional: true
|
||||
jiti:
|
||||
optional: true
|
||||
less:
|
||||
optional: true
|
||||
sass:
|
||||
optional: true
|
||||
sass-embedded:
|
||||
optional: true
|
||||
stylus:
|
||||
optional: true
|
||||
sugarss:
|
||||
optional: true
|
||||
terser:
|
||||
optional: true
|
||||
tsx:
|
||||
optional: true
|
||||
yaml:
|
||||
optional: true
|
||||
|
||||
vscode-uri@3.1.0:
|
||||
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
|
||||
|
||||
vue-tsc@3.3.9:
|
||||
resolution: {integrity: sha512-TS3Y1ux/IRoE8OCP2PpACAeOseuIs0UvWrcr7u+w3PmfY+SlCfEf8zjrBgnQksHUgLpthi5vHlffcQTQTdPBZA==}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
typescript: '>=5.0.0'
|
||||
|
||||
vue@3.5.41:
|
||||
resolution: {integrity: sha512-2laE0p+aK+/AOPG/XL/WepOs/GlK755LJ1XECi9kDUrz1FKNw8rb2Xzlw9JS1rqEV55nb0ttsKxVlTCcd+R5cg==}
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
webpack-virtual-modules@0.6.2:
|
||||
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
|
||||
|
||||
wrap-ansi@10.0.0:
|
||||
resolution: {integrity: sha512-SGcvg80f0wUy2/fXES19feHMz8E0JoXv2uNgHOu4Dgi2OrCy1lqwFYEJz1BLbDI0exjPMe/ZdzZ/YpGECBG/aQ==}
|
||||
engines: {node: '>=20'}
|
||||
|
||||
yoga-layout@3.2.1:
|
||||
resolution: {integrity: sha512-0LPOt3AxKqMdFBZA3HBAt/t/8vIKq7VaQYbuA8WxCgung+p9TVyKRYdpvCb80HcdTN2NkbIKbhNwKUfm3tQywQ==}
|
||||
|
||||
snapshots:
|
||||
|
||||
'@alcalzone/ansi-tokenize@0.3.0':
|
||||
dependencies:
|
||||
ansi-styles: 6.2.1
|
||||
is-fullwidth-code-point: 5.1.0
|
||||
|
||||
'@babel/helper-string-parser@7.29.7': {}
|
||||
|
||||
'@babel/helper-validator-identifier@7.29.7': {}
|
||||
|
||||
'@babel/parser@7.29.8':
|
||||
dependencies:
|
||||
'@babel/types': 7.29.8
|
||||
|
||||
'@babel/types@7.29.8':
|
||||
dependencies:
|
||||
'@babel/helper-string-parser': 7.29.7
|
||||
'@babel/helper-validator-identifier': 7.29.7
|
||||
|
||||
'@jridgewell/gen-mapping@0.3.13':
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.0
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
|
||||
'@jridgewell/remapping@2.3.5':
|
||||
dependencies:
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
|
||||
'@jridgewell/resolve-uri@3.1.2': {}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.4.14': {}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.5.0': {}
|
||||
|
||||
'@jridgewell/sourcemap-codec@1.5.5': {}
|
||||
|
||||
'@jridgewell/trace-mapping@0.3.31':
|
||||
dependencies:
|
||||
'@jridgewell/resolve-uri': 3.1.2
|
||||
'@jridgewell/sourcemap-codec': 1.4.14
|
||||
|
||||
'@oxc-project/types@0.143.0': {}
|
||||
|
||||
'@rolldown/binding-android-arm64@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-darwin-arm64@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-darwin-x64@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-freebsd-x64@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-arm-gnueabihf@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-arm64-gnu@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-arm64-musl@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-ppc64-gnu@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-s390x-gnu@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-x64-gnu@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-linux-x64-musl@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-openharmony-arm64@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-win32-arm64-msvc@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/binding-win32-x64-msvc@1.2.3':
|
||||
optional: true
|
||||
|
||||
'@rolldown/pluginutils@1.0.1': {}
|
||||
|
||||
'@types/node@22.20.1':
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
|
||||
'@volar/language-core@2.4.28':
|
||||
dependencies:
|
||||
'@volar/source-map': 2.4.28
|
||||
|
||||
'@volar/source-map@2.4.28': {}
|
||||
|
||||
'@volar/typescript@2.4.28':
|
||||
dependencies:
|
||||
'@volar/language-core': 2.4.28
|
||||
path-browserify: 1.0.1
|
||||
vscode-uri: 3.1.0
|
||||
|
||||
'@vue-tui/runtime@file:vendor/vue-tui-runtime-0.3.0.tgz(vue@3.5.41(typescript@6.0.3))':
|
||||
dependencies:
|
||||
'@alcalzone/ansi-tokenize': 0.3.0
|
||||
ansi-escapes: 7.3.0
|
||||
chalk: 5.3.0
|
||||
cli-boxes: 3.0.0
|
||||
cli-truncate: 6.1.1
|
||||
patch-console: 2.0.0
|
||||
signal-exit: 4.1.0
|
||||
slice-ansi: 9.0.0
|
||||
string-width: 8.2.2
|
||||
vue: 3.5.41(typescript@6.0.3)
|
||||
wrap-ansi: 10.0.0
|
||||
yoga-layout: 3.2.1
|
||||
|
||||
'@vue-tui/vite@file:vendor/vue-tui-vite-0.3.1.tgz(@vue-tui/runtime@file:vendor/vue-tui-runtime-0.3.0.tgz(vue@3.5.41(typescript@6.0.3)))(unplugin-vue@7.2.0(@types/node@22.20.1)(rolldown@1.2.3)(vue@3.5.41(typescript@6.0.3)))(vite@8.2.1(@types/node@22.20.1))':
|
||||
dependencies:
|
||||
'@vue-tui/runtime': file:vendor/vue-tui-runtime-0.3.0.tgz(vue@3.5.41(typescript@6.0.3))
|
||||
optionalDependencies:
|
||||
unplugin-vue: 7.2.0(@types/node@22.20.1)(rolldown@1.2.3)(vue@3.5.41(typescript@6.0.3))
|
||||
vite: 8.2.1(@types/node@22.20.1)
|
||||
|
||||
'@vue/compiler-core@3.5.41':
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.8
|
||||
'@vue/shared': 3.5.41
|
||||
entities: 7.0.1
|
||||
estree-walker: 2.0.2
|
||||
source-map-js: 1.2.1
|
||||
|
||||
'@vue/compiler-dom@3.5.41':
|
||||
dependencies:
|
||||
'@vue/compiler-core': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
|
||||
'@vue/compiler-sfc@3.5.41':
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.8
|
||||
'@vue/compiler-core': 3.5.41
|
||||
'@vue/compiler-dom': 3.5.41
|
||||
'@vue/compiler-ssr': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.21
|
||||
postcss: 8.5.26
|
||||
source-map-js: 1.2.1
|
||||
|
||||
'@vue/compiler-ssr@3.5.41':
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
|
||||
'@vue/language-core@3.3.9':
|
||||
dependencies:
|
||||
'@volar/language-core': 2.4.28
|
||||
'@vue/compiler-dom': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
alien-signals: 3.2.1
|
||||
muggle-string: 0.4.1
|
||||
path-browserify: 1.0.1
|
||||
picomatch: 4.0.5
|
||||
|
||||
'@vue/reactivity@3.5.41':
|
||||
dependencies:
|
||||
'@vue/shared': 3.5.41
|
||||
|
||||
'@vue/runtime-core@3.5.41':
|
||||
dependencies:
|
||||
'@vue/reactivity': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
|
||||
'@vue/runtime-dom@3.5.41':
|
||||
dependencies:
|
||||
'@vue/reactivity': 3.5.41
|
||||
'@vue/runtime-core': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
csstype: 3.2.3
|
||||
|
||||
'@vue/server-renderer@3.5.41':
|
||||
dependencies:
|
||||
'@vue/compiler-ssr': 3.5.41
|
||||
'@vue/runtime-dom': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
|
||||
'@vue/shared@3.5.41': {}
|
||||
|
||||
alien-signals@3.2.1: {}
|
||||
|
||||
ansi-escapes@7.3.0:
|
||||
dependencies:
|
||||
environment: 1.1.0
|
||||
|
||||
ansi-regex@6.2.2: {}
|
||||
|
||||
ansi-styles@6.2.1: {}
|
||||
|
||||
ansi-styles@6.2.3: {}
|
||||
|
||||
chalk@5.3.0: {}
|
||||
|
||||
cli-boxes@3.0.0: {}
|
||||
|
||||
cli-truncate@6.1.1:
|
||||
dependencies:
|
||||
slice-ansi: 9.0.0
|
||||
string-width: 8.2.2
|
||||
|
||||
csstype@3.2.3: {}
|
||||
|
||||
detect-libc@2.1.2: {}
|
||||
|
||||
entities@7.0.1: {}
|
||||
|
||||
environment@1.1.0: {}
|
||||
|
||||
estree-walker@2.0.2: {}
|
||||
|
||||
fdir@6.5.0(picomatch@4.0.5):
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.5
|
||||
|
||||
fsevents@2.3.3:
|
||||
optional: true
|
||||
|
||||
get-east-asian-width@1.6.0: {}
|
||||
|
||||
is-fullwidth-code-point@5.1.0:
|
||||
dependencies:
|
||||
get-east-asian-width: 1.6.0
|
||||
|
||||
lightningcss-android-arm64@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-darwin-arm64@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-darwin-x64@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-freebsd-x64@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-linux-arm-gnueabihf@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-linux-arm64-gnu@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-linux-arm64-musl@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-linux-x64-gnu@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-linux-x64-musl@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-win32-arm64-msvc@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss-win32-x64-msvc@1.33.0:
|
||||
optional: true
|
||||
|
||||
lightningcss@1.33.0:
|
||||
dependencies:
|
||||
detect-libc: 2.1.2
|
||||
optionalDependencies:
|
||||
lightningcss-android-arm64: 1.33.0
|
||||
lightningcss-darwin-arm64: 1.33.0
|
||||
lightningcss-darwin-x64: 1.33.0
|
||||
lightningcss-freebsd-x64: 1.33.0
|
||||
lightningcss-linux-arm-gnueabihf: 1.33.0
|
||||
lightningcss-linux-arm64-gnu: 1.33.0
|
||||
lightningcss-linux-arm64-musl: 1.33.0
|
||||
lightningcss-linux-x64-gnu: 1.33.0
|
||||
lightningcss-linux-x64-musl: 1.33.0
|
||||
lightningcss-win32-arm64-msvc: 1.33.0
|
||||
lightningcss-win32-x64-msvc: 1.33.0
|
||||
|
||||
magic-string@0.30.21:
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.5
|
||||
|
||||
muggle-string@0.4.1: {}
|
||||
|
||||
nanoid@3.3.18: {}
|
||||
|
||||
obug@2.1.4: {}
|
||||
|
||||
patch-console@2.0.0: {}
|
||||
|
||||
path-browserify@1.0.1: {}
|
||||
|
||||
picocolors@1.1.1: {}
|
||||
|
||||
picomatch@4.0.5: {}
|
||||
|
||||
postcss@8.5.26:
|
||||
dependencies:
|
||||
nanoid: 3.3.18
|
||||
picocolors: 1.1.1
|
||||
source-map-js: 1.2.1
|
||||
|
||||
rolldown@1.2.3:
|
||||
dependencies:
|
||||
'@oxc-project/types': 0.143.0
|
||||
'@rolldown/pluginutils': 1.0.1
|
||||
optionalDependencies:
|
||||
'@rolldown/binding-android-arm64': 1.2.3
|
||||
'@rolldown/binding-darwin-arm64': 1.2.3
|
||||
'@rolldown/binding-darwin-x64': 1.2.3
|
||||
'@rolldown/binding-freebsd-x64': 1.2.3
|
||||
'@rolldown/binding-linux-arm-gnueabihf': 1.2.3
|
||||
'@rolldown/binding-linux-arm64-gnu': 1.2.3
|
||||
'@rolldown/binding-linux-arm64-musl': 1.2.3
|
||||
'@rolldown/binding-linux-ppc64-gnu': 1.2.3
|
||||
'@rolldown/binding-linux-s390x-gnu': 1.2.3
|
||||
'@rolldown/binding-linux-x64-gnu': 1.2.3
|
||||
'@rolldown/binding-linux-x64-musl': 1.2.3
|
||||
'@rolldown/binding-openharmony-arm64': 1.2.3
|
||||
'@rolldown/binding-win32-arm64-msvc': 1.2.3
|
||||
'@rolldown/binding-win32-x64-msvc': 1.2.3
|
||||
|
||||
signal-exit@4.1.0: {}
|
||||
|
||||
slice-ansi@9.0.0:
|
||||
dependencies:
|
||||
ansi-styles: 6.2.3
|
||||
is-fullwidth-code-point: 5.1.0
|
||||
|
||||
source-map-js@1.2.1: {}
|
||||
|
||||
string-width@8.2.2:
|
||||
dependencies:
|
||||
get-east-asian-width: 1.6.0
|
||||
strip-ansi: 7.2.0
|
||||
|
||||
strip-ansi@7.2.0:
|
||||
dependencies:
|
||||
ansi-regex: 6.2.2
|
||||
|
||||
tinyglobby@0.2.17:
|
||||
dependencies:
|
||||
fdir: 6.5.0(picomatch@4.0.5)
|
||||
picomatch: 4.0.5
|
||||
|
||||
typescript@6.0.3: {}
|
||||
|
||||
undici-types@6.21.0: {}
|
||||
|
||||
unplugin-vue@7.2.0(@types/node@22.20.1)(rolldown@1.2.3)(vue@3.5.41(typescript@6.0.3)):
|
||||
dependencies:
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
'@vue/reactivity': 3.5.41
|
||||
obug: 2.1.4
|
||||
unplugin: 3.3.0(rolldown@1.2.3)(vite@8.2.1(@types/node@22.20.1))
|
||||
vite: 8.2.1(@types/node@22.20.1)
|
||||
vue: 3.5.41(typescript@6.0.3)
|
||||
transitivePeerDependencies:
|
||||
- '@farmfe/core'
|
||||
- '@rspack/core'
|
||||
- '@types/node'
|
||||
- '@vitejs/devtools'
|
||||
- bun-types-no-globals
|
||||
- esbuild
|
||||
- jiti
|
||||
- less
|
||||
- rolldown
|
||||
- rollup
|
||||
- sass
|
||||
- sass-embedded
|
||||
- stylus
|
||||
- sugarss
|
||||
- terser
|
||||
- tsx
|
||||
- unloader
|
||||
- webpack
|
||||
- yaml
|
||||
|
||||
unplugin@3.3.0(rolldown@1.2.3)(vite@8.2.1(@types/node@22.20.1)):
|
||||
dependencies:
|
||||
'@jridgewell/remapping': 2.3.5
|
||||
picomatch: 4.0.5
|
||||
webpack-virtual-modules: 0.6.2
|
||||
optionalDependencies:
|
||||
rolldown: 1.2.3
|
||||
vite: 8.2.1(@types/node@22.20.1)
|
||||
|
||||
vite@8.2.1(@types/node@22.20.1):
|
||||
dependencies:
|
||||
lightningcss: 1.33.0
|
||||
picomatch: 4.0.5
|
||||
postcss: 8.5.26
|
||||
rolldown: 1.2.3
|
||||
tinyglobby: 0.2.17
|
||||
optionalDependencies:
|
||||
'@types/node': 22.20.1
|
||||
fsevents: 2.3.3
|
||||
|
||||
vscode-uri@3.1.0: {}
|
||||
|
||||
vue-tsc@3.3.9(typescript@6.0.3):
|
||||
dependencies:
|
||||
'@volar/typescript': 2.4.28
|
||||
'@vue/language-core': 3.3.9
|
||||
typescript: 6.0.3
|
||||
|
||||
vue@3.5.41(typescript@6.0.3):
|
||||
dependencies:
|
||||
'@vue/compiler-dom': 3.5.41
|
||||
'@vue/compiler-sfc': 3.5.41
|
||||
'@vue/runtime-dom': 3.5.41
|
||||
'@vue/server-renderer': 3.5.41
|
||||
'@vue/shared': 3.5.41
|
||||
optionalDependencies:
|
||||
typescript: 6.0.3
|
||||
|
||||
webpack-virtual-modules@0.6.2: {}
|
||||
|
||||
wrap-ansi@10.0.0:
|
||||
dependencies:
|
||||
ansi-styles: 6.2.3
|
||||
string-width: 8.2.2
|
||||
strip-ansi: 7.2.0
|
||||
|
||||
yoga-layout@3.2.1: {}
|
||||
@@ -0,0 +1,21 @@
|
||||
"""TUI 辅助: 中文输入收集
|
||||
|
||||
vue-tui 的 useInput 在 raw mode 下不支持 IME, 中文输入必须走 Python cooked-mode input()。
|
||||
用法: python ask.py <提示词> [默认值] -> 最后一行输出 JSON {"answer": "..."}
|
||||
"""
|
||||
|
||||
import json
|
||||
import sys
|
||||
|
||||
prompt = sys.argv[1] if len(sys.argv) > 1 else "输入"
|
||||
default = sys.argv[2] if len(sys.argv) > 2 else ""
|
||||
sys.stdout.write(f"{prompt} [{default}]: ")
|
||||
sys.stdout.flush()
|
||||
try:
|
||||
answer = input()
|
||||
except EOFError:
|
||||
answer = ""
|
||||
if not answer:
|
||||
answer = default
|
||||
print()
|
||||
print(json.dumps({"answer": answer}, ensure_ascii=False))
|
||||
+11
-2
@@ -1,6 +1,9 @@
|
||||
<script setup lang="ts">
|
||||
import { shallowRef } from "vue";
|
||||
import { Box, Text, useInput } from "@vue-tui/runtime";
|
||||
import Upload from "./views/upload.vue";
|
||||
import Tasks from "./views/tasks.vue";
|
||||
import Config from "./views/config.vue";
|
||||
|
||||
type View = "menu" | "upload" | "tasks" | "config";
|
||||
const view = shallowRef<View>("menu");
|
||||
@@ -19,15 +22,21 @@ useInput((input) => {
|
||||
|
||||
<template>
|
||||
<Box flexDirection="column" :paddingX="1" :paddingY="1">
|
||||
<template v-if="view === 'menu'">
|
||||
<Text bold color="cyan">7z-encrypt 客户端</Text>
|
||||
<Text dimColor>安全文件传输 · 加密 / 分卷 / 上传</Text>
|
||||
<Box height="1" />
|
||||
<Box :height="1" />
|
||||
<Text bold>主菜单</Text>
|
||||
<Text> 1. 上传文件</Text>
|
||||
<Text> 2. 任务续传</Text>
|
||||
<Text> 3. 配置</Text>
|
||||
<Text> q. 退出</Text>
|
||||
<Box height="1" />
|
||||
<Box :height="1" />
|
||||
<Text dimColor>输入数字选择, q 返回/退出</Text>
|
||||
</template>
|
||||
|
||||
<Upload v-else-if="view === 'upload'" />
|
||||
<Tasks v-else-if="view === 'tasks'" />
|
||||
<Config v-else-if="view === 'config'" />
|
||||
</Box>
|
||||
</template>
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
// 与 7z-encrypt Python 管线之间的桥 (spawn 子进程, 逐行回传输出)
|
||||
import { spawn } from "node:child_process";
|
||||
|
||||
const CLIENT_DIR = "/home/lou/文档/7z-encrypt";
|
||||
const PYTHON = `${CLIENT_DIR}/.venv/bin/python`;
|
||||
|
||||
export interface RunResult {
|
||||
code: number;
|
||||
lines: string[];
|
||||
}
|
||||
|
||||
/** 运行 Python CLI, 逐行回调 stdout (剥掉 \r 进度行尾), 返回退出码 + 全行 */
|
||||
export function runPython(
|
||||
args: string[],
|
||||
onLine?: (line: string) => void,
|
||||
): Promise<RunResult> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const child = spawn(PYTHON, args, {
|
||||
cwd: CLIENT_DIR,
|
||||
env: { ...process.env, PYTHONIOENCODING: "utf-8" },
|
||||
});
|
||||
const lines: string[] = [];
|
||||
child.stdout.on("data", (buf: Buffer) => {
|
||||
for (const line of buf.toString().split("\n")) {
|
||||
const l = line.replace(/\r$/, "");
|
||||
if (!l) continue;
|
||||
lines.push(l);
|
||||
onLine?.(l);
|
||||
}
|
||||
});
|
||||
child.stderr.on("data", (buf: Buffer) => {
|
||||
for (const line of buf.toString().split("\n")) {
|
||||
const l = line.trim();
|
||||
if (!l) continue;
|
||||
lines.push(`[stderr] ${l}`);
|
||||
}
|
||||
});
|
||||
child.on("close", (code) => resolve({ code: code ?? -1, lines }));
|
||||
child.on("error", reject);
|
||||
});
|
||||
}
|
||||
|
||||
/** 中文输入 (Python cooked-mode input, 支持 IME) */
|
||||
export async function ask(prompt: string, fallback = ""): Promise<string> {
|
||||
const r = await runPython(["scripts/ask.py", prompt, fallback]);
|
||||
for (const line of [...r.lines].reverse()) {
|
||||
try {
|
||||
const obj = JSON.parse(line) as { answer: string };
|
||||
return obj.answer;
|
||||
} catch {
|
||||
// 非 JSON 行 (提示文本) 跳过
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
export interface UploadProgress {
|
||||
done: number;
|
||||
total: number;
|
||||
pct: number;
|
||||
}
|
||||
|
||||
const PROG_RE = /上传进度: (\d+)\/(\d+) 卷 \((\d+)%\)/;
|
||||
|
||||
/** 解析 transfer.py 的进度行 "[传输] 上传进度: 3/6 卷 (50%)" */
|
||||
export function parseProgress(line: string): UploadProgress | null {
|
||||
const m = PROG_RE.exec(line);
|
||||
if (!m) return null;
|
||||
return { done: Number(m[1]), total: Number(m[2]), pct: Number(m[3]) };
|
||||
}
|
||||
|
||||
/** 产物路径规则 (与 metadata.py 一致): <src>.enc / <src>_manifest.json / <src>.init.json */
|
||||
export function deriveArtifacts(src: string) {
|
||||
return {
|
||||
enc: `${src}.enc`,
|
||||
manifest: `${src}_manifest.json`,
|
||||
init: `${src}.init.json`,
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<script setup lang="ts">
|
||||
import { shallowRef, onMounted } from "vue";
|
||||
import { Box, Text, useInput } from "@vue-tui/runtime";
|
||||
import { runPython, ask } from "../lib/pipeline";
|
||||
|
||||
const content = shallowRef("(读取中)");
|
||||
|
||||
async function show() {
|
||||
const r = await runPython(["config.py"], (l) => {
|
||||
if (!l.startsWith("===")) content.value = l;
|
||||
});
|
||||
if (r.code !== 0) content.value = r.lines.join("\n");
|
||||
}
|
||||
|
||||
async function edit() {
|
||||
const url = await ask("服务器地址", "http://192.168.10.133:8000");
|
||||
if (!url) return;
|
||||
await runPython(["config.py", "--path", "/home/lou/文档/7z-encrypt/config/config.json", "--set-server", url]);
|
||||
await show();
|
||||
}
|
||||
|
||||
onMounted(() => void show());
|
||||
|
||||
useInput((input) => {
|
||||
if (input === "e") void edit();
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Box flexDirection="column">
|
||||
<Text bold color="cyan">配置</Text>
|
||||
<Text dimColor>e 修改服务器地址</Text>
|
||||
<Box :height="1" />
|
||||
<Text v-for="(l, i) in content.split('\n')" :key="i" dimColor>{{ l }}</Text>
|
||||
<Box :height="1" />
|
||||
<Text dimColor>q 返回菜单</Text>
|
||||
</Box>
|
||||
</template>
|
||||
@@ -0,0 +1,35 @@
|
||||
<script setup lang="ts">
|
||||
import { shallowRef, onMounted } from "vue";
|
||||
import { Box, Text, useInput } from "@vue-tui/runtime";
|
||||
import { runPython } from "../lib/pipeline";
|
||||
|
||||
const lines = shallowRef<string[]>([]);
|
||||
const message = shallowRef("查询中...");
|
||||
|
||||
async function refresh() {
|
||||
message.value = "查询中...";
|
||||
lines.value = [];
|
||||
const r = await runPython(["state.py", "pending"], (l) => lines.value = [...lines.value, l]);
|
||||
message.value = r.code === 0 ? `未完成任务 ${lines.value.length} 条` : `查询失败 (退出码 ${r.code})`;
|
||||
}
|
||||
|
||||
onMounted(() => void refresh());
|
||||
|
||||
useInput((input) => {
|
||||
if (input === "r") void refresh();
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Box flexDirection="column">
|
||||
<Text bold color="cyan">任务续传</Text>
|
||||
<Text dimColor>r 刷新 | 续传功能开发中</Text>
|
||||
<Box :height="1" />
|
||||
<Text>{{ message }}</Text>
|
||||
<Box flexDirection="column">
|
||||
<Text v-for="(l, i) in lines" :key="i">{{ l }}</Text>
|
||||
</Box>
|
||||
<Box :height="1" />
|
||||
<Text dimColor>q 返回菜单</Text>
|
||||
</Box>
|
||||
</template>
|
||||
@@ -0,0 +1,120 @@
|
||||
<script setup lang="ts">
|
||||
import { shallowRef } from "vue";
|
||||
import { Box, Text, useInput } from "@vue-tui/runtime";
|
||||
import { ask, deriveArtifacts, parseProgress, runPython } from "../lib/pipeline";
|
||||
|
||||
type Phase =
|
||||
| "idle"
|
||||
| "ask_file"
|
||||
| "ask_server"
|
||||
| "pipelining"
|
||||
| "uploading"
|
||||
| "done"
|
||||
| "error";
|
||||
|
||||
const phase = shallowRef<Phase>("idle");
|
||||
const filePath = shallowRef("");
|
||||
const server = shallowRef("");
|
||||
const progress = shallowRef({ done: 0, total: 0, pct: 0 });
|
||||
const log = shallowRef<string[]>([]);
|
||||
const message = shallowRef("");
|
||||
|
||||
const pushLog = (line: string) => {
|
||||
const next = [...log.value, line];
|
||||
if (next.length > 24) next.shift();
|
||||
log.value = next;
|
||||
};
|
||||
|
||||
useInput((input) => {
|
||||
if (input !== "1" || phase.value !== "idle") return;
|
||||
void startFlow();
|
||||
});
|
||||
|
||||
async function startFlow() {
|
||||
phase.value = "ask_file";
|
||||
filePath.value = await ask("文件路径", "/tmp/demo.bin");
|
||||
phase.value = "ask_server";
|
||||
server.value = await ask("服务器", "http://192.168.10.133:8000");
|
||||
if (!filePath.value || !server.value) {
|
||||
phase.value = "error";
|
||||
message.value = "输入为空, 取消";
|
||||
return;
|
||||
}
|
||||
phase.value = "pipelining";
|
||||
log.value = [];
|
||||
await upload();
|
||||
}
|
||||
|
||||
async function upload() {
|
||||
const { manifest, init } = deriveArtifacts(filePath.value);
|
||||
pushLog(`[tui] 文件: ${filePath.value}`);
|
||||
pushLog(`[tui] 服务器: ${server.value}`);
|
||||
|
||||
const meta = await runPython(["metadata.py", filePath.value, "--chunk-size", "10"], (l) => {
|
||||
pushLog(l);
|
||||
});
|
||||
if (meta.code !== 0) {
|
||||
phase.value = "error";
|
||||
message.value = `加密/分卷失败 (退出码 ${meta.code})`;
|
||||
return;
|
||||
}
|
||||
|
||||
phase.value = "uploading";
|
||||
const up = await runPython(
|
||||
["transfer.py", "--server", server.value, "--init", init, "--manifest", manifest],
|
||||
(l) => {
|
||||
pushLog(l);
|
||||
const p = parseProgress(l);
|
||||
if (p) progress.value = p;
|
||||
},
|
||||
);
|
||||
if (up.code !== 0) {
|
||||
phase.value = "error";
|
||||
message.value = `上传失败 (退出码 ${up.code})`;
|
||||
return;
|
||||
}
|
||||
phase.value = "done";
|
||||
const receipt = up.lines.find((l) => l.includes("完成")) ?? "";
|
||||
message.value = receipt.replace(/^\[传输\] /, "");
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Box flexDirection="column">
|
||||
<Text bold color="cyan">上传文件</Text>
|
||||
<Box :height="1" />
|
||||
|
||||
<template v-if="phase === 'idle'">
|
||||
<Text dimColor>按 1 开始上传流程</Text>
|
||||
</template>
|
||||
|
||||
<template v-else-if="phase === 'ask_file' || phase === 'ask_server'">
|
||||
<Text color="yellow">{{ phase === "ask_file" ? "输入文件路径..." : "输入服务器地址..." }}</Text>
|
||||
</template>
|
||||
|
||||
<template v-else-if="phase === 'pipelining'">
|
||||
<Text color="yellow">加密 + 分卷中...</Text>
|
||||
</template>
|
||||
|
||||
<template v-else-if="phase === 'uploading'">
|
||||
<Text>上传进度: {{ progress.done }}/{{ progress.total }} 卷</Text>
|
||||
<Text color="green">{{ "=".repeat(Math.floor(progress.pct / 5)) }}{{ "-".repeat(20 - Math.floor(progress.pct / 5)) }} {{ progress.pct }}%</Text>
|
||||
</template>
|
||||
|
||||
<template v-else-if="phase === 'done'">
|
||||
<Text bold color="green">完成: {{ message }}</Text>
|
||||
</template>
|
||||
|
||||
<template v-else-if="phase === 'error'">
|
||||
<Text bold color="red">失败: {{ message }}</Text>
|
||||
</template>
|
||||
|
||||
<Box :height="1" />
|
||||
<Text dimColor>--- 管线输出 (原生) ---</Text>
|
||||
<Box flexDirection="column">
|
||||
<Text v-for="(l, i) in log" :key="i" dimColor>{{ l }}</Text>
|
||||
</Box>
|
||||
<Box :height="1" />
|
||||
<Text dimColor>q 返回菜单</Text>
|
||||
</Box>
|
||||
</template>
|
||||
Vendored
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
Reference in New Issue
Block a user