feat: refactor deploy command to enhance file upload process and user handling
- Updated the deploy command to include a new username retrieval mechanism, falling back to the organization if not specified. - Introduced uploadFilesV2 function to streamline file upload logic, including hash checking to prevent redundant uploads. - Modified queryAppVersion to accept a create parameter for better version management. - Added a new test file to validate the uploadFilesV2 functionality.
This commit is contained in:
15
package.json
15
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@kevisual/cli",
|
"name": "@kevisual/cli",
|
||||||
"version": "0.0.99",
|
"version": "0.1.0",
|
||||||
"description": "envision 命令行工具",
|
"description": "envision 命令行工具",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"basename": "/root/cli",
|
"basename": "/root/cli",
|
||||||
@@ -48,8 +48,8 @@
|
|||||||
"@kevisual/app": "^0.0.2",
|
"@kevisual/app": "^0.0.2",
|
||||||
"@kevisual/auth": "^2.0.3",
|
"@kevisual/auth": "^2.0.3",
|
||||||
"@kevisual/context": "^0.0.4",
|
"@kevisual/context": "^0.0.4",
|
||||||
"@kevisual/use-config": "^1.0.28",
|
"@kevisual/use-config": "^1.0.30",
|
||||||
"@opencode-ai/sdk": "^1.1.44",
|
"@opencode-ai/sdk": "^1.1.48",
|
||||||
"@types/busboy": "^1.5.4",
|
"@types/busboy": "^1.5.4",
|
||||||
"busboy": "^1.6.0",
|
"busboy": "^1.6.0",
|
||||||
"eventemitter3": "^5.0.4",
|
"eventemitter3": "^5.0.4",
|
||||||
@@ -62,19 +62,20 @@
|
|||||||
"unstorage": "^1.17.4"
|
"unstorage": "^1.17.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@kevisual/api": "^0.0.42",
|
||||||
"@kevisual/dts": "^0.0.3",
|
"@kevisual/dts": "^0.0.3",
|
||||||
"@kevisual/load": "^0.0.6",
|
"@kevisual/load": "^0.0.6",
|
||||||
"@kevisual/logger": "^0.0.4",
|
"@kevisual/logger": "^0.0.4",
|
||||||
"@kevisual/query": "0.0.38",
|
"@kevisual/query": "0.0.39",
|
||||||
"@kevisual/query-login": "0.0.7",
|
"@kevisual/query-login": "0.0.7",
|
||||||
"@types/bun": "^1.3.8",
|
"@types/bun": "^1.3.8",
|
||||||
"@types/crypto-js": "^4.2.2",
|
"@types/crypto-js": "^4.2.2",
|
||||||
"@types/jsonwebtoken": "^9.0.10",
|
"@types/jsonwebtoken": "^9.0.10",
|
||||||
"@types/micromatch": "^4.0.10",
|
"@types/micromatch": "^4.0.10",
|
||||||
"@types/node": "^25.1.0",
|
"@types/node": "^25.2.0",
|
||||||
"@types/semver": "^7.7.1",
|
"@types/semver": "^7.7.1",
|
||||||
"chalk": "^5.6.2",
|
"chalk": "^5.6.2",
|
||||||
"commander": "^14.0.2",
|
"commander": "^14.0.3",
|
||||||
"crypto-js": "^4.2.0",
|
"crypto-js": "^4.2.0",
|
||||||
"fast-glob": "^3.3.3",
|
"fast-glob": "^3.3.3",
|
||||||
"filesize": "^11.0.13",
|
"filesize": "^11.0.13",
|
||||||
@@ -83,7 +84,7 @@
|
|||||||
"jsonwebtoken": "^9.0.3",
|
"jsonwebtoken": "^9.0.3",
|
||||||
"pm2": "^6.0.14",
|
"pm2": "^6.0.14",
|
||||||
"tar": "^7.5.7",
|
"tar": "^7.5.7",
|
||||||
"zustand": "^5.0.10"
|
"zustand": "^5.0.11"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.0.0"
|
"node": ">=22.0.0"
|
||||||
|
|||||||
348
pnpm-lock.yaml
generated
348
pnpm-lock.yaml
generated
@@ -10,7 +10,7 @@ importers:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/prompts':
|
'@inquirer/prompts':
|
||||||
specifier: ^8.2.0
|
specifier: ^8.2.0
|
||||||
version: 8.2.0(@types/node@25.1.0)
|
version: 8.2.0(@types/node@25.2.0)
|
||||||
'@kevisual/app':
|
'@kevisual/app':
|
||||||
specifier: ^0.0.2
|
specifier: ^0.0.2
|
||||||
version: 0.0.2(dotenv@17.2.3)
|
version: 0.0.2(dotenv@17.2.3)
|
||||||
@@ -21,11 +21,11 @@ importers:
|
|||||||
specifier: ^0.0.4
|
specifier: ^0.0.4
|
||||||
version: 0.0.4
|
version: 0.0.4
|
||||||
'@kevisual/use-config':
|
'@kevisual/use-config':
|
||||||
specifier: ^1.0.28
|
specifier: ^1.0.30
|
||||||
version: 1.0.28(dotenv@17.2.3)
|
version: 1.0.30(dotenv@17.2.3)
|
||||||
'@opencode-ai/sdk':
|
'@opencode-ai/sdk':
|
||||||
specifier: ^1.1.44
|
specifier: ^1.1.48
|
||||||
version: 1.1.44
|
version: 1.1.48
|
||||||
'@types/busboy':
|
'@types/busboy':
|
||||||
specifier: ^1.5.4
|
specifier: ^1.5.4
|
||||||
version: 1.5.4
|
version: 1.5.4
|
||||||
@@ -57,6 +57,9 @@ importers:
|
|||||||
specifier: ^1.17.4
|
specifier: ^1.17.4
|
||||||
version: 1.17.4(idb-keyval@6.2.2)
|
version: 1.17.4(idb-keyval@6.2.2)
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@kevisual/api':
|
||||||
|
specifier: ^0.0.42
|
||||||
|
version: 0.0.42
|
||||||
'@kevisual/dts':
|
'@kevisual/dts':
|
||||||
specifier: ^0.0.3
|
specifier: ^0.0.3
|
||||||
version: 0.0.3(typescript@5.8.2)
|
version: 0.0.3(typescript@5.8.2)
|
||||||
@@ -67,11 +70,11 @@ importers:
|
|||||||
specifier: ^0.0.4
|
specifier: ^0.0.4
|
||||||
version: 0.0.4
|
version: 0.0.4
|
||||||
'@kevisual/query':
|
'@kevisual/query':
|
||||||
specifier: 0.0.38
|
specifier: 0.0.39
|
||||||
version: 0.0.38
|
version: 0.0.39
|
||||||
'@kevisual/query-login':
|
'@kevisual/query-login':
|
||||||
specifier: 0.0.7
|
specifier: 0.0.7
|
||||||
version: 0.0.7(@kevisual/query@0.0.38)
|
version: 0.0.7(@kevisual/query@0.0.39)
|
||||||
'@types/bun':
|
'@types/bun':
|
||||||
specifier: ^1.3.8
|
specifier: ^1.3.8
|
||||||
version: 1.3.8
|
version: 1.3.8
|
||||||
@@ -85,8 +88,8 @@ importers:
|
|||||||
specifier: ^4.0.10
|
specifier: ^4.0.10
|
||||||
version: 4.0.10
|
version: 4.0.10
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^25.1.0
|
specifier: ^25.2.0
|
||||||
version: 25.1.0
|
version: 25.2.0
|
||||||
'@types/semver':
|
'@types/semver':
|
||||||
specifier: ^7.7.1
|
specifier: ^7.7.1
|
||||||
version: 7.7.1
|
version: 7.7.1
|
||||||
@@ -94,8 +97,8 @@ importers:
|
|||||||
specifier: ^5.6.2
|
specifier: ^5.6.2
|
||||||
version: 5.6.2
|
version: 5.6.2
|
||||||
commander:
|
commander:
|
||||||
specifier: ^14.0.2
|
specifier: ^14.0.3
|
||||||
version: 14.0.2
|
version: 14.0.3
|
||||||
crypto-js:
|
crypto-js:
|
||||||
specifier: ^4.2.0
|
specifier: ^4.2.0
|
||||||
version: 4.2.0
|
version: 4.2.0
|
||||||
@@ -118,8 +121,8 @@ importers:
|
|||||||
specifier: ^7.5.7
|
specifier: ^7.5.7
|
||||||
version: 7.5.7
|
version: 7.5.7
|
||||||
zustand:
|
zustand:
|
||||||
specifier: ^5.0.10
|
specifier: ^5.0.11
|
||||||
version: 5.0.10(@types/react@19.2.10)(react@19.2.4)
|
version: 5.0.11(@types/react@19.2.10)(react@19.2.4)
|
||||||
|
|
||||||
assistant:
|
assistant:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -252,16 +255,16 @@ importers:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/mdx':
|
'@astrojs/mdx':
|
||||||
specifier: ^4.3.13
|
specifier: ^4.3.13
|
||||||
version: 4.3.13(astro@5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))
|
version: 4.3.13(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))
|
||||||
'@astrojs/react':
|
'@astrojs/react':
|
||||||
specifier: ^4.4.2
|
specifier: ^4.4.2
|
||||||
version: 4.4.2(@types/node@25.1.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
version: 4.4.2(@types/node@25.2.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||||
'@astrojs/sitemap':
|
'@astrojs/sitemap':
|
||||||
specifier: ^3.7.0
|
specifier: ^3.7.0
|
||||||
version: 3.7.0
|
version: 3.7.0
|
||||||
'@astrojs/vue':
|
'@astrojs/vue':
|
||||||
specifier: ^5.1.4
|
specifier: ^5.1.4
|
||||||
version: 5.1.4(@types/node@25.1.0)(astro@5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2))
|
version: 5.1.4(@types/node@25.2.0)(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2))
|
||||||
'@kevisual/api':
|
'@kevisual/api':
|
||||||
specifier: ^0.0.28
|
specifier: ^0.0.28
|
||||||
version: 0.0.28
|
version: 0.0.28
|
||||||
@@ -285,7 +288,7 @@ importers:
|
|||||||
version: 1.2.4(@types/react@19.2.10)(react@19.2.4)
|
version: 1.2.4(@types/react@19.2.10)(react@19.2.4)
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.1.18
|
specifier: ^4.1.18
|
||||||
version: 4.1.18(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
version: 4.1.18(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||||
'@uiw/react-md-editor':
|
'@uiw/react-md-editor':
|
||||||
specifier: ^4.0.11
|
specifier: ^4.0.11
|
||||||
version: 4.0.11(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
version: 4.0.11(@types/react@19.2.10)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||||
@@ -294,7 +297,7 @@ importers:
|
|||||||
version: 6.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
version: 6.2.2(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
|
||||||
astro:
|
astro:
|
||||||
specifier: ^5.16.15
|
specifier: ^5.16.15
|
||||||
version: 5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)
|
version: 5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)
|
||||||
class-variance-authority:
|
class-variance-authority:
|
||||||
specifier: ^0.7.1
|
specifier: ^0.7.1
|
||||||
version: 0.7.1
|
version: 0.7.1
|
||||||
@@ -1306,6 +1309,9 @@ packages:
|
|||||||
'@kevisual/api@0.0.35':
|
'@kevisual/api@0.0.35':
|
||||||
resolution: {integrity: sha512-NbaOasecbG+O9Ju2/LWC2eWeqcPc5yZYXXyT4vHpU2W5SoPzBf7H3W7+i3py/JcEXF6adcHZVofftCYpecmGMQ==}
|
resolution: {integrity: sha512-NbaOasecbG+O9Ju2/LWC2eWeqcPc5yZYXXyT4vHpU2W5SoPzBf7H3W7+i3py/JcEXF6adcHZVofftCYpecmGMQ==}
|
||||||
|
|
||||||
|
'@kevisual/api@0.0.42':
|
||||||
|
resolution: {integrity: sha512-Bn5G+ZzGEPoJdvd5U3xWHGY0oidQj23gt1YAWvTqjm0frDJfJ4Q2WT9Xjb1ZdJ/YBcfaNe9yEoMCpFNdUls/mw==}
|
||||||
|
|
||||||
'@kevisual/app@0.0.1':
|
'@kevisual/app@0.0.1':
|
||||||
resolution: {integrity: sha512-PEx8P3l0iNSqrz9Ib9kVCYfqNMX6/LfNu+cEafmY6ECP1cV5Vmv+TH2fuasMosKjtbH2fAdDi97sbd29tdEK+g==}
|
resolution: {integrity: sha512-PEx8P3l0iNSqrz9Ib9kVCYfqNMX6/LfNu+cEafmY6ECP1cV5Vmv+TH2fuasMosKjtbH2fAdDi97sbd29tdEK+g==}
|
||||||
|
|
||||||
@@ -1369,6 +1375,9 @@ packages:
|
|||||||
'@kevisual/query@0.0.38':
|
'@kevisual/query@0.0.38':
|
||||||
resolution: {integrity: sha512-bfvbSodsZyMfwY+1T2SvDeOCKsT/AaIxlVe0+B1R/fNhlg2MDq2CP0L9HKiFkEm+OXrvXcYDMKPUituVUM5J6Q==}
|
resolution: {integrity: sha512-bfvbSodsZyMfwY+1T2SvDeOCKsT/AaIxlVe0+B1R/fNhlg2MDq2CP0L9HKiFkEm+OXrvXcYDMKPUituVUM5J6Q==}
|
||||||
|
|
||||||
|
'@kevisual/query@0.0.39':
|
||||||
|
resolution: {integrity: sha512-3UEPBIvtdykNkrby3hvrgrHdgd17Uq+Pnr4zs+JBzATkU2eKaOqtTUJqdyIEwuySCwzGTxrnlUzWP4tziDQDLQ==}
|
||||||
|
|
||||||
'@kevisual/registry@0.0.1':
|
'@kevisual/registry@0.0.1':
|
||||||
resolution: {integrity: sha512-//OHu9m4JDrMjgP8o8dcjZd3D3IAUkRVlkTSviouZEH7r5m7mccA3Hvzw0XJ/lelx6exC6LWsyv6c4uV0Dp+gw==}
|
resolution: {integrity: sha512-//OHu9m4JDrMjgP8o8dcjZd3D3IAUkRVlkTSviouZEH7r5m7mccA3Hvzw0XJ/lelx6exC6LWsyv6c4uV0Dp+gw==}
|
||||||
|
|
||||||
@@ -1392,6 +1401,11 @@ packages:
|
|||||||
peerDependencies:
|
peerDependencies:
|
||||||
dotenv: ^17
|
dotenv: ^17
|
||||||
|
|
||||||
|
'@kevisual/use-config@1.0.30':
|
||||||
|
resolution: {integrity: sha512-kPdna0FW/X7D600aMdiZ5UTjbCo6d8d4jjauSc8RMmBwUU6WliFDSPUNKVpzm2BsDX5Nth1IXFPYMqH+wxqAmw==}
|
||||||
|
peerDependencies:
|
||||||
|
dotenv: ^17
|
||||||
|
|
||||||
'@kevisual/video-tools@0.0.13':
|
'@kevisual/video-tools@0.0.13':
|
||||||
resolution: {integrity: sha512-bbAMTQznmlm70csVX5nQTeV+TsZw4BohYoYxcUsCi/slKZry2pWQaJgN3uKT0ovkZzLp1bogBEcBHmeP3wxXiw==}
|
resolution: {integrity: sha512-bbAMTQznmlm70csVX5nQTeV+TsZw4BohYoYxcUsCi/slKZry2pWQaJgN3uKT0ovkZzLp1bogBEcBHmeP3wxXiw==}
|
||||||
|
|
||||||
@@ -1455,12 +1469,12 @@ packages:
|
|||||||
'@opencode-ai/plugin@1.1.47':
|
'@opencode-ai/plugin@1.1.47':
|
||||||
resolution: {integrity: sha512-gNMPz72altieDfLhUw3VAT1xbduKi3w3wZ57GLeS7qU9W474HdvdIiLBnt2Xq3U7Ko0/0tvK3nzCker6IIDqmQ==}
|
resolution: {integrity: sha512-gNMPz72altieDfLhUw3VAT1xbduKi3w3wZ57GLeS7qU9W474HdvdIiLBnt2Xq3U7Ko0/0tvK3nzCker6IIDqmQ==}
|
||||||
|
|
||||||
'@opencode-ai/sdk@1.1.44':
|
|
||||||
resolution: {integrity: sha512-coQgtSSCbY46/GY+M5zG0rChiLSJWSjPERRt5L1hbjvDWvErelVV0ILPbd1+3CwJLFTedBYgotby2TcO8U0IfQ==}
|
|
||||||
|
|
||||||
'@opencode-ai/sdk@1.1.47':
|
'@opencode-ai/sdk@1.1.47':
|
||||||
resolution: {integrity: sha512-s3PBHwk1sP6Zt/lJxIWSBWZ1TnrI1nFxSP97LCODUytouAQgbygZ1oDH7O2sGMBEuGdA8B1nNSPla0aRSN3IpA==}
|
resolution: {integrity: sha512-s3PBHwk1sP6Zt/lJxIWSBWZ1TnrI1nFxSP97LCODUytouAQgbygZ1oDH7O2sGMBEuGdA8B1nNSPla0aRSN3IpA==}
|
||||||
|
|
||||||
|
'@opencode-ai/sdk@1.1.48':
|
||||||
|
resolution: {integrity: sha512-j5/79X45fUPWVD2Ffm/qvwLclDCdPeV+TYMDrm9to0p4pmzhmeKevCsyiRdLg0o0HE3AFRUnOo2rdO9NetN79A==}
|
||||||
|
|
||||||
'@oslojs/encoding@1.1.0':
|
'@oslojs/encoding@1.1.0':
|
||||||
resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
|
resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
|
||||||
|
|
||||||
@@ -2391,6 +2405,9 @@ packages:
|
|||||||
'@types/node@25.1.0':
|
'@types/node@25.1.0':
|
||||||
resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==}
|
resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==}
|
||||||
|
|
||||||
|
'@types/node@25.2.0':
|
||||||
|
resolution: {integrity: sha512-DZ8VwRFUNzuqJ5khrvwMXHmvPe+zGayJhr2CDNiKB1WBE1ST8Djl00D0IC4vvNmHMdj6DlbYRIaFE7WHjlDl5w==}
|
||||||
|
|
||||||
'@types/prismjs@1.26.5':
|
'@types/prismjs@1.26.5':
|
||||||
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
|
resolution: {integrity: sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==}
|
||||||
|
|
||||||
@@ -2414,6 +2431,9 @@ packages:
|
|||||||
'@types/send@1.2.1':
|
'@types/send@1.2.1':
|
||||||
resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==}
|
resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==}
|
||||||
|
|
||||||
|
'@types/spark-md5@3.0.5':
|
||||||
|
resolution: {integrity: sha512-lWf05dnD42DLVKQJZrDHtWFidcLrHuip01CtnC2/S6AMhX4t9ZlEUj4iuRlAnts0PQk7KESOqKxeGE/b6sIPGg==}
|
||||||
|
|
||||||
'@types/trusted-types@2.0.7':
|
'@types/trusted-types@2.0.7':
|
||||||
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
|
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
|
||||||
|
|
||||||
@@ -2793,10 +2813,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
|
resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
|
|
||||||
commander@14.0.2:
|
|
||||||
resolution: {integrity: sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==}
|
|
||||||
engines: {node: '>=20'}
|
|
||||||
|
|
||||||
commander@14.0.3:
|
commander@14.0.3:
|
||||||
resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
|
resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==}
|
||||||
engines: {node: '>=20'}
|
engines: {node: '>=20'}
|
||||||
@@ -4593,6 +4609,9 @@ packages:
|
|||||||
space-separated-tokens@2.0.2:
|
space-separated-tokens@2.0.2:
|
||||||
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
|
||||||
|
|
||||||
|
spark-md5@3.0.2:
|
||||||
|
resolution: {integrity: sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw==}
|
||||||
|
|
||||||
speakingurl@14.0.1:
|
speakingurl@14.0.1:
|
||||||
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
|
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -5120,6 +5139,24 @@ packages:
|
|||||||
use-sync-external-store:
|
use-sync-external-store:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
zustand@5.0.11:
|
||||||
|
resolution: {integrity: sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==}
|
||||||
|
engines: {node: '>=12.20.0'}
|
||||||
|
peerDependencies:
|
||||||
|
'@types/react': '>=18.0.0'
|
||||||
|
immer: '>=9.0.6'
|
||||||
|
react: '>=18.0.0'
|
||||||
|
use-sync-external-store: '>=1.2.0'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
'@types/react':
|
||||||
|
optional: true
|
||||||
|
immer:
|
||||||
|
optional: true
|
||||||
|
react:
|
||||||
|
optional: true
|
||||||
|
use-sync-external-store:
|
||||||
|
optional: true
|
||||||
|
|
||||||
zwitch@2.0.4:
|
zwitch@2.0.4:
|
||||||
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
|
||||||
|
|
||||||
@@ -5203,12 +5240,12 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@astrojs/mdx@4.3.13(astro@5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))':
|
'@astrojs/mdx@4.3.13(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/markdown-remark': 6.3.10
|
'@astrojs/markdown-remark': 6.3.10
|
||||||
'@mdx-js/mdx': 3.1.1
|
'@mdx-js/mdx': 3.1.1
|
||||||
acorn: 8.15.0
|
acorn: 8.15.0
|
||||||
astro: 5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)
|
astro: 5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)
|
||||||
es-module-lexer: 1.7.0
|
es-module-lexer: 1.7.0
|
||||||
estree-util-visit: 2.0.0
|
estree-util-visit: 2.0.0
|
||||||
hast-util-to-html: 9.0.5
|
hast-util-to-html: 9.0.5
|
||||||
@@ -5226,15 +5263,15 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
prismjs: 1.30.0
|
prismjs: 1.30.0
|
||||||
|
|
||||||
'@astrojs/react@4.4.2(@types/node@25.1.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
|
'@astrojs/react@4.4.2(@types/node@25.2.0)(@types/react-dom@19.2.3(@types/react@19.2.10))(@types/react@19.2.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 19.2.10
|
'@types/react': 19.2.10
|
||||||
'@types/react-dom': 19.2.3(@types/react@19.2.10)
|
'@types/react-dom': 19.2.3(@types/react@19.2.10)
|
||||||
'@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
'@vitejs/plugin-react': 4.7.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||||
react: 19.2.4
|
react: 19.2.4
|
||||||
react-dom: 19.2.4(react@19.2.4)
|
react-dom: 19.2.4(react@19.2.4)
|
||||||
ultrahtml: 1.6.0
|
ultrahtml: 1.6.0
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@types/node'
|
- '@types/node'
|
||||||
- jiti
|
- jiti
|
||||||
@@ -5267,14 +5304,14 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@astrojs/vue@5.1.4(@types/node@25.1.0)(astro@5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2))':
|
'@astrojs/vue@5.1.4(@types/node@25.2.0)(astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2))(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(vue@3.5.27(typescript@5.8.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
'@vitejs/plugin-vue': 5.2.4(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||||
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
'@vitejs/plugin-vue-jsx': 4.2.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||||
'@vue/compiler-sfc': 3.5.27
|
'@vue/compiler-sfc': 3.5.27
|
||||||
astro: 5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)
|
astro: 5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2)
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
vite-plugin-vue-devtools: 7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
vite-plugin-vue-devtools: 7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||||
vue: 3.5.27(typescript@5.8.2)
|
vue: 3.5.27(typescript@5.8.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
@@ -6286,6 +6323,15 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/checkbox@5.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/ansi': 2.0.3
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/figures': 2.0.3
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/confirm@6.0.4(@types/node@25.1.0)':
|
'@inquirer/confirm@6.0.4(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
||||||
@@ -6293,6 +6339,13 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/confirm@6.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/core@11.1.1(@types/node@25.1.0)':
|
'@inquirer/core@11.1.1(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/ansi': 2.0.3
|
'@inquirer/ansi': 2.0.3
|
||||||
@@ -6305,6 +6358,18 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/core@11.1.1(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/ansi': 2.0.3
|
||||||
|
'@inquirer/figures': 2.0.3
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
cli-width: 4.1.0
|
||||||
|
mute-stream: 3.0.0
|
||||||
|
signal-exit: 4.1.0
|
||||||
|
wrap-ansi: 9.0.2
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/editor@5.0.4(@types/node@25.1.0)':
|
'@inquirer/editor@5.0.4(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
||||||
@@ -6313,6 +6378,14 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/editor@5.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/external-editor': 2.0.3(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/expand@5.0.4(@types/node@25.1.0)':
|
'@inquirer/expand@5.0.4(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
||||||
@@ -6320,6 +6393,13 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/expand@5.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/external-editor@2.0.3(@types/node@25.1.0)':
|
'@inquirer/external-editor@2.0.3(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
chardet: 2.1.1
|
chardet: 2.1.1
|
||||||
@@ -6327,6 +6407,13 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/external-editor@2.0.3(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
chardet: 2.1.1
|
||||||
|
iconv-lite: 0.7.2
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/figures@2.0.3': {}
|
'@inquirer/figures@2.0.3': {}
|
||||||
|
|
||||||
'@inquirer/input@5.0.4(@types/node@25.1.0)':
|
'@inquirer/input@5.0.4(@types/node@25.1.0)':
|
||||||
@@ -6336,6 +6423,13 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/input@5.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/number@4.0.4(@types/node@25.1.0)':
|
'@inquirer/number@4.0.4(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
||||||
@@ -6343,6 +6437,13 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/number@4.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/password@5.0.4(@types/node@25.1.0)':
|
'@inquirer/password@5.0.4(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/ansi': 2.0.3
|
'@inquirer/ansi': 2.0.3
|
||||||
@@ -6351,6 +6452,14 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/password@5.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/ansi': 2.0.3
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/prompts@8.2.0(@types/node@25.1.0)':
|
'@inquirer/prompts@8.2.0(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/checkbox': 5.0.4(@types/node@25.1.0)
|
'@inquirer/checkbox': 5.0.4(@types/node@25.1.0)
|
||||||
@@ -6366,6 +6475,21 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/prompts@8.2.0(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/checkbox': 5.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/confirm': 6.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/editor': 5.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/expand': 5.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/input': 5.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/number': 4.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/password': 5.0.4(@types/node@25.2.0)
|
||||||
|
'@inquirer/rawlist': 5.2.0(@types/node@25.2.0)
|
||||||
|
'@inquirer/search': 4.1.0(@types/node@25.2.0)
|
||||||
|
'@inquirer/select': 5.0.4(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/rawlist@5.2.0(@types/node@25.1.0)':
|
'@inquirer/rawlist@5.2.0(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
||||||
@@ -6373,6 +6497,13 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/rawlist@5.2.0(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/search@4.1.0(@types/node@25.1.0)':
|
'@inquirer/search@4.1.0(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
'@inquirer/core': 11.1.1(@types/node@25.1.0)
|
||||||
@@ -6381,6 +6512,14 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/search@4.1.0(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/figures': 2.0.3
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/select@5.0.4(@types/node@25.1.0)':
|
'@inquirer/select@5.0.4(@types/node@25.1.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@inquirer/ansi': 2.0.3
|
'@inquirer/ansi': 2.0.3
|
||||||
@@ -6390,10 +6529,23 @@ snapshots:
|
|||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/select@5.0.4(@types/node@25.2.0)':
|
||||||
|
dependencies:
|
||||||
|
'@inquirer/ansi': 2.0.3
|
||||||
|
'@inquirer/core': 11.1.1(@types/node@25.2.0)
|
||||||
|
'@inquirer/figures': 2.0.3
|
||||||
|
'@inquirer/type': 4.0.3(@types/node@25.2.0)
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@inquirer/type@4.0.3(@types/node@25.1.0)':
|
'@inquirer/type@4.0.3(@types/node@25.1.0)':
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.1.0
|
||||||
|
|
||||||
|
'@inquirer/type@4.0.3(@types/node@25.2.0)':
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@isaacs/fs-minipass@4.0.1':
|
'@isaacs/fs-minipass@4.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
minipass: 7.1.2
|
minipass: 7.1.2
|
||||||
@@ -6450,13 +6602,25 @@ snapshots:
|
|||||||
nanoid: 5.1.6
|
nanoid: 5.1.6
|
||||||
path-browserify-esm: 1.0.6
|
path-browserify-esm: 1.0.6
|
||||||
|
|
||||||
|
'@kevisual/api@0.0.42':
|
||||||
|
dependencies:
|
||||||
|
'@kevisual/js-filter': 0.0.5
|
||||||
|
'@kevisual/load': 0.0.6
|
||||||
|
'@types/spark-md5': 3.0.5
|
||||||
|
es-toolkit: 1.44.0
|
||||||
|
eventemitter3: 5.0.4
|
||||||
|
fuse.js: 7.1.0
|
||||||
|
nanoid: 5.1.6
|
||||||
|
path-browserify-esm: 1.0.6
|
||||||
|
spark-md5: 3.0.2
|
||||||
|
|
||||||
'@kevisual/app@0.0.1(dotenv@17.2.3)':
|
'@kevisual/app@0.0.1(dotenv@17.2.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@kevisual/ai': 0.0.19
|
'@kevisual/ai': 0.0.19
|
||||||
'@kevisual/context': 0.0.4
|
'@kevisual/context': 0.0.4
|
||||||
'@kevisual/query': 0.0.31
|
'@kevisual/query': 0.0.31
|
||||||
'@kevisual/router': 0.0.36
|
'@kevisual/router': 0.0.36
|
||||||
'@kevisual/use-config': 1.0.28(dotenv@17.2.3)
|
'@kevisual/use-config': 1.0.30(dotenv@17.2.3)
|
||||||
mitt: 3.0.1
|
mitt: 3.0.1
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- dotenv
|
- dotenv
|
||||||
@@ -6468,7 +6632,7 @@ snapshots:
|
|||||||
'@kevisual/context': 0.0.4
|
'@kevisual/context': 0.0.4
|
||||||
'@kevisual/query': 0.0.32
|
'@kevisual/query': 0.0.32
|
||||||
'@kevisual/router': 0.0.39
|
'@kevisual/router': 0.0.39
|
||||||
'@kevisual/use-config': 1.0.28(dotenv@17.2.3)
|
'@kevisual/use-config': 1.0.30(dotenv@17.2.3)
|
||||||
mitt: 3.0.1
|
mitt: 3.0.1
|
||||||
nanoid: 5.1.6
|
nanoid: 5.1.6
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@@ -6491,7 +6655,7 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@kevisual/query': 0.0.38
|
'@kevisual/query': 0.0.38
|
||||||
'@kevisual/router': 0.0.64(typescript@5.8.2)
|
'@kevisual/router': 0.0.64(typescript@5.8.2)
|
||||||
'@kevisual/use-config': 1.0.28(dotenv@17.2.3)
|
'@kevisual/use-config': 1.0.30(dotenv@17.2.3)
|
||||||
es-toolkit: 1.44.0
|
es-toolkit: 1.44.0
|
||||||
nanoid: 5.1.6
|
nanoid: 5.1.6
|
||||||
unstorage: 1.17.4(idb-keyval@6.2.2)
|
unstorage: 1.17.4(idb-keyval@6.2.2)
|
||||||
@@ -6594,6 +6758,12 @@ snapshots:
|
|||||||
'@kevisual/query': 0.0.38
|
'@kevisual/query': 0.0.38
|
||||||
dotenv: 17.2.3
|
dotenv: 17.2.3
|
||||||
|
|
||||||
|
'@kevisual/query-login@0.0.7(@kevisual/query@0.0.39)':
|
||||||
|
dependencies:
|
||||||
|
'@kevisual/cache': 0.0.3
|
||||||
|
'@kevisual/query': 0.0.39
|
||||||
|
dotenv: 17.2.3
|
||||||
|
|
||||||
'@kevisual/query@0.0.31': {}
|
'@kevisual/query@0.0.31': {}
|
||||||
|
|
||||||
'@kevisual/query@0.0.32': {}
|
'@kevisual/query@0.0.32': {}
|
||||||
@@ -6602,6 +6772,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
|
||||||
|
'@kevisual/query@0.0.39':
|
||||||
|
dependencies:
|
||||||
|
tslib: 2.8.1
|
||||||
|
|
||||||
'@kevisual/registry@0.0.1(typescript@5.8.2)':
|
'@kevisual/registry@0.0.1(typescript@5.8.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
class-variance-authority: 0.7.1
|
class-variance-authority: 0.7.1
|
||||||
@@ -6658,12 +6832,17 @@ snapshots:
|
|||||||
'@kevisual/load': 0.0.6
|
'@kevisual/load': 0.0.6
|
||||||
dotenv: 17.2.3
|
dotenv: 17.2.3
|
||||||
|
|
||||||
|
'@kevisual/use-config@1.0.30(dotenv@17.2.3)':
|
||||||
|
dependencies:
|
||||||
|
'@kevisual/load': 0.0.6
|
||||||
|
dotenv: 17.2.3
|
||||||
|
|
||||||
'@kevisual/video-tools@0.0.13(dotenv@17.2.3)(supports-color@10.2.2)':
|
'@kevisual/video-tools@0.0.13(dotenv@17.2.3)(supports-color@10.2.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@gradio/client': 2.0.1
|
'@gradio/client': 2.0.1
|
||||||
'@kevisual/ai': 0.0.19
|
'@kevisual/ai': 0.0.19
|
||||||
'@kevisual/router': 0.0.51(supports-color@10.2.2)
|
'@kevisual/router': 0.0.51(supports-color@10.2.2)
|
||||||
'@kevisual/use-config': 1.0.28(dotenv@17.2.3)
|
'@kevisual/use-config': 1.0.30(dotenv@17.2.3)
|
||||||
'@kevisual/video': 0.0.2
|
'@kevisual/video': 0.0.2
|
||||||
crypto-js: 4.2.0
|
crypto-js: 4.2.0
|
||||||
dayjs: 1.11.19
|
dayjs: 1.11.19
|
||||||
@@ -6769,10 +6948,10 @@ snapshots:
|
|||||||
'@opencode-ai/sdk': 1.1.47
|
'@opencode-ai/sdk': 1.1.47
|
||||||
zod: 4.1.8
|
zod: 4.1.8
|
||||||
|
|
||||||
'@opencode-ai/sdk@1.1.44': {}
|
|
||||||
|
|
||||||
'@opencode-ai/sdk@1.1.47': {}
|
'@opencode-ai/sdk@1.1.47': {}
|
||||||
|
|
||||||
|
'@opencode-ai/sdk@1.1.48': {}
|
||||||
|
|
||||||
'@oslojs/encoding@1.1.0': {}
|
'@oslojs/encoding@1.1.0': {}
|
||||||
|
|
||||||
'@peculiar/asn1-cms@2.6.0':
|
'@peculiar/asn1-cms@2.6.0':
|
||||||
@@ -7825,12 +8004,12 @@ snapshots:
|
|||||||
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
|
'@tailwindcss/oxide-win32-arm64-msvc': 4.1.18
|
||||||
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
|
'@tailwindcss/oxide-win32-x64-msvc': 4.1.18
|
||||||
|
|
||||||
'@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
'@tailwindcss/vite@4.1.18(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tailwindcss/node': 4.1.18
|
'@tailwindcss/node': 4.1.18
|
||||||
'@tailwindcss/oxide': 4.1.18
|
'@tailwindcss/oxide': 4.1.18
|
||||||
tailwindcss: 4.1.18
|
tailwindcss: 4.1.18
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
|
|
||||||
'@tootallnate/quickjs-emscripten@0.23.0': {}
|
'@tootallnate/quickjs-emscripten@0.23.0': {}
|
||||||
|
|
||||||
@@ -7863,7 +8042,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/busboy@1.5.4':
|
'@types/busboy@1.5.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@types/crypto-js@4.2.2': {}
|
'@types/crypto-js@4.2.2': {}
|
||||||
|
|
||||||
@@ -7888,7 +8067,7 @@ snapshots:
|
|||||||
'@types/jsonwebtoken@9.0.10':
|
'@types/jsonwebtoken@9.0.10':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/ms': 0.7.34
|
'@types/ms': 0.7.34
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@types/mdast@4.0.4':
|
'@types/mdast@4.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -7912,6 +8091,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 7.16.0
|
undici-types: 7.16.0
|
||||||
|
|
||||||
|
'@types/node@25.2.0':
|
||||||
|
dependencies:
|
||||||
|
undici-types: 7.16.0
|
||||||
|
|
||||||
'@types/prismjs@1.26.5': {}
|
'@types/prismjs@1.26.5': {}
|
||||||
|
|
||||||
'@types/react-dom@19.2.3(@types/react@19.2.10)':
|
'@types/react-dom@19.2.3(@types/react@19.2.10)':
|
||||||
@@ -7926,13 +8109,15 @@ snapshots:
|
|||||||
|
|
||||||
'@types/sax@1.2.7':
|
'@types/sax@1.2.7':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@types/semver@7.7.1': {}
|
'@types/semver@7.7.1': {}
|
||||||
|
|
||||||
'@types/send@1.2.1':
|
'@types/send@1.2.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
|
'@types/spark-md5@3.0.5': {}
|
||||||
|
|
||||||
'@types/trusted-types@2.0.7': {}
|
'@types/trusted-types@2.0.7': {}
|
||||||
|
|
||||||
@@ -7942,7 +8127,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/ws@8.18.1':
|
'@types/ws@8.18.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
'@uiw/copy-to-clipboard@1.0.19': {}
|
'@uiw/copy-to-clipboard@1.0.19': {}
|
||||||
|
|
||||||
@@ -7981,7 +8166,7 @@ snapshots:
|
|||||||
|
|
||||||
'@ungap/structured-clone@1.3.0': {}
|
'@ungap/structured-clone@1.3.0': {}
|
||||||
|
|
||||||
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
'@vitejs/plugin-react@4.7.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.28.5
|
'@babel/core': 7.28.5
|
||||||
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5)
|
'@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.5)
|
||||||
@@ -7989,24 +8174,24 @@ snapshots:
|
|||||||
'@rolldown/pluginutils': 1.0.0-beta.27
|
'@rolldown/pluginutils': 1.0.0-beta.27
|
||||||
'@types/babel__core': 7.20.5
|
'@types/babel__core': 7.20.5
|
||||||
react-refresh: 0.17.0
|
react-refresh: 0.17.0
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
'@vitejs/plugin-vue-jsx@4.2.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.28.5
|
'@babel/core': 7.28.5
|
||||||
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
|
'@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5)
|
||||||
'@rolldown/pluginutils': 1.0.0-beta.55
|
'@rolldown/pluginutils': 1.0.0-beta.55
|
||||||
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5)
|
'@vue/babel-plugin-jsx': 1.5.0(@babel/core@7.28.5)
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
vue: 3.5.27(typescript@5.8.2)
|
vue: 3.5.27(typescript@5.8.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
'@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
'@vitejs/plugin-vue@5.2.4(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
vue: 3.5.27(typescript@5.8.2)
|
vue: 3.5.27(typescript@5.8.2)
|
||||||
|
|
||||||
'@vue/babel-helper-vue-transform-on@1.5.0': {}
|
'@vue/babel-helper-vue-transform-on@1.5.0': {}
|
||||||
@@ -8068,14 +8253,14 @@ snapshots:
|
|||||||
'@vue/compiler-dom': 3.5.27
|
'@vue/compiler-dom': 3.5.27
|
||||||
'@vue/shared': 3.5.27
|
'@vue/shared': 3.5.27
|
||||||
|
|
||||||
'@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
'@vue/devtools-core@7.7.9(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/devtools-kit': 7.7.9
|
'@vue/devtools-kit': 7.7.9
|
||||||
'@vue/devtools-shared': 7.7.9
|
'@vue/devtools-shared': 7.7.9
|
||||||
mitt: 3.0.1
|
mitt: 3.0.1
|
||||||
nanoid: 5.1.6
|
nanoid: 5.1.6
|
||||||
pathe: 2.0.3
|
pathe: 2.0.3
|
||||||
vite-hot-client: 2.1.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
vite-hot-client: 2.1.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||||
vue: 3.5.27(typescript@5.8.2)
|
vue: 3.5.27(typescript@5.8.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- vite
|
- vite
|
||||||
@@ -8241,7 +8426,7 @@ snapshots:
|
|||||||
|
|
||||||
astring@1.9.0: {}
|
astring@1.9.0: {}
|
||||||
|
|
||||||
astro@5.16.15(@types/node@25.1.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2):
|
astro@5.16.15(@types/node@25.2.0)(idb-keyval@6.2.2)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.43.0)(typescript@5.8.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@astrojs/compiler': 2.13.0
|
'@astrojs/compiler': 2.13.0
|
||||||
'@astrojs/internal-helpers': 0.7.5
|
'@astrojs/internal-helpers': 0.7.5
|
||||||
@@ -8298,8 +8483,8 @@ snapshots:
|
|||||||
unist-util-visit: 5.0.0
|
unist-util-visit: 5.0.0
|
||||||
unstorage: 1.17.4(idb-keyval@6.2.2)
|
unstorage: 1.17.4(idb-keyval@6.2.2)
|
||||||
vfile: 6.0.3
|
vfile: 6.0.3
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
vitefu: 1.1.1(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
vitefu: 1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||||
xxhash-wasm: 1.1.0
|
xxhash-wasm: 1.1.0
|
||||||
yargs-parser: 21.1.1
|
yargs-parser: 21.1.1
|
||||||
yocto-spinner: 0.2.3
|
yocto-spinner: 0.2.3
|
||||||
@@ -8402,7 +8587,7 @@ snapshots:
|
|||||||
|
|
||||||
bun-types@1.3.8:
|
bun-types@1.3.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
|
|
||||||
bundle-name@4.1.0:
|
bundle-name@4.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -8504,8 +8689,6 @@ snapshots:
|
|||||||
|
|
||||||
commander@11.1.0: {}
|
commander@11.1.0: {}
|
||||||
|
|
||||||
commander@14.0.2: {}
|
|
||||||
|
|
||||||
commander@14.0.3: {}
|
commander@14.0.3: {}
|
||||||
|
|
||||||
commander@2.15.1: {}
|
commander@2.15.1: {}
|
||||||
@@ -10793,6 +10976,8 @@ snapshots:
|
|||||||
|
|
||||||
space-separated-tokens@2.0.2: {}
|
space-separated-tokens@2.0.2: {}
|
||||||
|
|
||||||
|
spark-md5@3.0.2: {}
|
||||||
|
|
||||||
speakingurl@14.0.1: {}
|
speakingurl@14.0.1: {}
|
||||||
|
|
||||||
sprintf-js@1.1.2: {}
|
sprintf-js@1.1.2: {}
|
||||||
@@ -11063,11 +11248,11 @@ snapshots:
|
|||||||
'@types/unist': 3.0.3
|
'@types/unist': 3.0.3
|
||||||
vfile-message: 4.0.3
|
vfile-message: 4.0.3
|
||||||
|
|
||||||
vite-hot-client@2.1.0(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
vite-hot-client@2.1.0(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
|
|
||||||
vite-plugin-inspect@0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
vite-plugin-inspect@0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@antfu/utils': 0.7.10
|
'@antfu/utils': 0.7.10
|
||||||
'@rollup/pluginutils': 5.3.0(rollup@4.43.0)
|
'@rollup/pluginutils': 5.3.0(rollup@4.43.0)
|
||||||
@@ -11078,28 +11263,28 @@ snapshots:
|
|||||||
perfect-debounce: 1.0.0
|
perfect-debounce: 1.0.0
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
vite-plugin-vue-devtools@7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)):
|
vite-plugin-vue-devtools@7.7.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
'@vue/devtools-core': 7.7.9(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))(vue@3.5.27(typescript@5.8.2))
|
||||||
'@vue/devtools-kit': 7.7.9
|
'@vue/devtools-kit': 7.7.9
|
||||||
'@vue/devtools-shared': 7.7.9
|
'@vue/devtools-shared': 7.7.9
|
||||||
execa: 9.6.1
|
execa: 9.6.1
|
||||||
sirv: 3.0.2
|
sirv: 3.0.2
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
vite-plugin-inspect: 0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
vite-plugin-inspect: 0.8.9(rollup@4.43.0)(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||||
vite-plugin-vue-inspector: 5.3.2(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
vite-plugin-vue-inspector: 5.3.2(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2))
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@nuxt/kit'
|
- '@nuxt/kit'
|
||||||
- rollup
|
- rollup
|
||||||
- supports-color
|
- supports-color
|
||||||
- vue
|
- vue
|
||||||
|
|
||||||
vite-plugin-vue-inspector@5.3.2(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
vite-plugin-vue-inspector@5.3.2(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.28.5
|
'@babel/core': 7.28.5
|
||||||
'@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5)
|
'@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5)
|
||||||
@@ -11110,11 +11295,11 @@ snapshots:
|
|||||||
'@vue/compiler-dom': 3.5.27
|
'@vue/compiler-dom': 3.5.27
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2):
|
vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
esbuild: 0.25.12
|
esbuild: 0.25.12
|
||||||
fdir: 6.5.0(picomatch@4.0.3)
|
fdir: 6.5.0(picomatch@4.0.3)
|
||||||
@@ -11123,14 +11308,14 @@ snapshots:
|
|||||||
rollup: 4.43.0
|
rollup: 4.43.0
|
||||||
tinyglobby: 0.2.15
|
tinyglobby: 0.2.15
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.1.0
|
'@types/node': 25.2.0
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
jiti: 2.6.1
|
jiti: 2.6.1
|
||||||
lightningcss: 1.30.2
|
lightningcss: 1.30.2
|
||||||
|
|
||||||
vitefu@1.1.1(vite@6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
vitefu@1.1.1(vite@6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)):
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 6.4.1(@types/node@25.1.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
vite: 6.4.1(@types/node@25.2.0)(jiti@2.6.1)(lightningcss@1.30.2)
|
||||||
|
|
||||||
vizion@2.2.1:
|
vizion@2.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -11222,4 +11407,9 @@ snapshots:
|
|||||||
'@types/react': 19.2.10
|
'@types/react': 19.2.10
|
||||||
react: 19.2.4
|
react: 19.2.4
|
||||||
|
|
||||||
|
zustand@5.0.11(@types/react@19.2.10)(react@19.2.4):
|
||||||
|
optionalDependencies:
|
||||||
|
'@types/react': 19.2.10
|
||||||
|
react: 19.2.4
|
||||||
|
|
||||||
zwitch@2.0.4: {}
|
zwitch@2.0.4: {}
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ import { getBaseURL, query, storage } from '@/module/query.ts';
|
|||||||
import { input, confirm } from '@inquirer/prompts';
|
import { input, confirm } from '@inquirer/prompts';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import { upload } from '@/module/download/upload.ts';
|
import { upload } from '@/module/download/upload.ts';
|
||||||
import { getHash } from '@/uitls/hash.ts';
|
import { getBufferHash, getHash } from '@/uitls/hash.ts';
|
||||||
import { queryAppVersion } from '@/query/app-manager/query-app.ts';
|
import { queryAppVersion } from '@/query/app-manager/query-app.ts';
|
||||||
import { logger } from '@/module/logger.ts';
|
import { logger } from '@/module/logger.ts';
|
||||||
|
import { getUsername } from './login.ts';
|
||||||
/**
|
/**
|
||||||
* 获取package.json 中的 basename, version, user, appKey
|
* 获取package.json 中的 basename, version, user, appKey
|
||||||
* @returns
|
* @returns
|
||||||
@@ -44,13 +45,11 @@ const command = new Command('deploy')
|
|||||||
.option('-o, --org <org>', 'org')
|
.option('-o, --org <org>', 'org')
|
||||||
.option('-u, --update', 'load current app. set current version in product。 redis 缓存更新')
|
.option('-u, --update', 'load current app. set current version in product。 redis 缓存更新')
|
||||||
.option('-s, --showBackend', 'show backend url, 部署的后端应用,显示执行的cli命令')
|
.option('-s, --showBackend', 'show backend url, 部署的后端应用,显示执行的cli命令')
|
||||||
.option('-c, --noCheck', '是否受app manager控制的模块。默认检测')
|
|
||||||
.option('-d, --dot', '是否上传隐藏文件')
|
.option('-d, --dot', '是否上传隐藏文件')
|
||||||
.option('--dir, --directory <directory>', '上传的默认路径')
|
.option('--dir, --directory <directory>', '上传的默认路径')
|
||||||
.action(async (filePath, options) => {
|
.action(async (filePath, options) => {
|
||||||
try {
|
try {
|
||||||
let { version, key, yes, update, org, showBackend } = options;
|
let { version, key, yes, update, org, showBackend } = options;
|
||||||
const noCheck = !options.noCheck;
|
|
||||||
const dot = !!options.dot;
|
const dot = !!options.dot;
|
||||||
const pkgInfo = getPackageJson({ version, appKey: key });
|
const pkgInfo = getPackageJson({ version, appKey: key });
|
||||||
if (!version && pkgInfo?.version) {
|
if (!version && pkgInfo?.version) {
|
||||||
@@ -109,18 +108,30 @@ const command = new Command('deploy')
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
let username = '';
|
||||||
|
if (pkgInfo?.user) {
|
||||||
|
username = pkgInfo.user;
|
||||||
|
} else if (org) {
|
||||||
|
username = org;
|
||||||
|
} else {
|
||||||
|
const me = await getUsername();
|
||||||
|
if (me) {
|
||||||
|
username = me;
|
||||||
|
} else {
|
||||||
|
logger.error('无法获取用户名,请使用先登录');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
const uploadDirectory = isDirectory ? directory : path.dirname(directory);
|
const uploadDirectory = isDirectory ? directory : path.dirname(directory);
|
||||||
const res = await uploadFiles(_relativeFiles, uploadDirectory, { key, version, username: org, noCheckAppFiles: !noCheck, directory: options.directory });
|
const res = await uploadFilesV2(_relativeFiles, uploadDirectory, { key, version, username: username, directory: options.directory });
|
||||||
logger.debug('upload res', res);
|
logger.debug('upload res', res);
|
||||||
if (res?.code === 200) {
|
if (res?.code === 200) {
|
||||||
res.data?.upload?.map?.((d) => {
|
|
||||||
console.log(chalk.green('uploaded file', d?.name, d?.path));
|
|
||||||
});
|
|
||||||
const res2 = await queryAppVersion({
|
const res2 = await queryAppVersion({
|
||||||
key: key,
|
key: key,
|
||||||
version: version,
|
version: version,
|
||||||
|
create: true
|
||||||
});
|
});
|
||||||
logger.debug('queryAppVersion res', res2);
|
logger.debug('queryAppVersion res', res2, key, version);
|
||||||
if (res2.code !== 200) {
|
if (res2.code !== 200) {
|
||||||
console.error(chalk.red('查询应用版本失败'), res2.message, key);
|
console.error(chalk.red('查询应用版本失败'), res2.message, key);
|
||||||
return;
|
return;
|
||||||
@@ -145,7 +156,6 @@ const command = new Command('deploy')
|
|||||||
} else {
|
} else {
|
||||||
console.error('File upload failed', res?.message);
|
console.error('File upload failed', res?.message);
|
||||||
}
|
}
|
||||||
return res;
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('error', error);
|
console.error('error', error);
|
||||||
}
|
}
|
||||||
@@ -154,88 +164,65 @@ const command = new Command('deploy')
|
|||||||
type UploadFileOptions = {
|
type UploadFileOptions = {
|
||||||
key: string;
|
key: string;
|
||||||
version: string;
|
version: string;
|
||||||
username?: string;
|
username: string;
|
||||||
noCheckAppFiles?: boolean;
|
|
||||||
directory?: string;
|
directory?: string;
|
||||||
};
|
};
|
||||||
const uploadFiles = async (files: string[], directory: string, opts: UploadFileOptions): Promise<any> => {
|
|
||||||
|
export const uploadFilesV2 = async (files: string[], directory: string, opts: UploadFileOptions): Promise<any> => {
|
||||||
const { key, version, username } = opts || {};
|
const { key, version, username } = opts || {};
|
||||||
|
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const file = files[i];
|
||||||
|
const filePath = path.join(directory, file);
|
||||||
|
logger.info('[上传进度]', `${i + 1}/${files.length}`, file);
|
||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
const data: Record<string, any> = { files: [] };
|
|
||||||
let description = '';
|
|
||||||
for (const file of files) {
|
|
||||||
const filePath = path.join(directory, file);
|
|
||||||
const hash = getHash(filePath);
|
|
||||||
if (!hash) {
|
|
||||||
logger.error('文件', filePath, '不存在');
|
|
||||||
logger.error('请检查文件是否存在');
|
|
||||||
}
|
|
||||||
data.files.push({ path: file, hash: hash });
|
|
||||||
if (filePath.includes('readme.md')) {
|
|
||||||
description = fs.readFileSync(filePath, 'utf-8');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
data.appKey = key;
|
|
||||||
data.version = version;
|
|
||||||
form.append('appKey', key);
|
|
||||||
form.append('version', version);
|
|
||||||
if (username) {
|
|
||||||
form.append('username', username);
|
|
||||||
data.username = username;
|
|
||||||
}
|
|
||||||
if (opts?.directory) {
|
|
||||||
form.append('directory', opts.directory);
|
|
||||||
data.directory = opts.directory;
|
|
||||||
}
|
|
||||||
const token = await storage.getItem('token');
|
|
||||||
const checkUrl = new URL('/api/s1/resources/upload/check', getBaseURL());
|
|
||||||
const res = await query.adapter({ url: checkUrl.toString(), method: 'POST', body: data, headers: { Authorization: 'Bearer ' + token } }).then((res) => {
|
|
||||||
try {
|
|
||||||
if (typeof res === 'string') {
|
|
||||||
return JSON.parse(res);
|
|
||||||
} else {
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
return typeof res === 'string' ? {} : res;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const checkData: { path: string; isUpload: boolean }[] = res.data;
|
|
||||||
if (res.code !== 200) {
|
|
||||||
console.error('check failed', res);
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
let needUpload = false;
|
|
||||||
for (const file of files) {
|
|
||||||
const filePath = path.join(directory, file);
|
|
||||||
const check = checkData.find((d) => d.path === file);
|
|
||||||
if (check?.isUpload) {
|
|
||||||
logger.debug('文件已经上传过了', file);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
const filename = path.basename(filePath);
|
const filename = path.basename(filePath);
|
||||||
logger.debug('upload file', file, filename);
|
|
||||||
// 解决 busbox 文件名乱码: 将 UTF-8 编码的文件名转换为 binary 字符串
|
// 解决 busbox 文件名乱码: 将 UTF-8 编码的文件名转换为 binary 字符串
|
||||||
const encodedFilename = Buffer.from(filename, 'utf-8').toString('binary');
|
const encodedFilename = Buffer.from(filename, 'utf-8').toString('binary');
|
||||||
form.append('file', fs.createReadStream(filePath), {
|
form.append('file', fs.createReadStream(filePath), {
|
||||||
filename: encodedFilename,
|
filename: encodedFilename,
|
||||||
filepath: file,
|
filepath: file,
|
||||||
});
|
});
|
||||||
|
const _baseURL = getBaseURL();
|
||||||
|
const url = new URL(`/${username}/resources/${key}/${version}/${file}`, _baseURL);
|
||||||
|
// console.log('upload file', file, filePath);
|
||||||
|
const token = await storage.getItem('token');
|
||||||
|
const check = () => {
|
||||||
|
const checkUrl = new URL(url.toString());
|
||||||
|
checkUrl.searchParams.set('stat', '1');
|
||||||
|
const res = query
|
||||||
|
.adapter({ url: checkUrl.toString(), method: 'GET', headers: { Authorization: 'Bearer ' + token } })
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
const checkRes = await check();
|
||||||
|
let needUpload = false;
|
||||||
|
let hash = '';
|
||||||
|
if (checkRes?.code === 404) {
|
||||||
|
needUpload = true;
|
||||||
|
hash = getHash(filePath);
|
||||||
|
} else if (checkRes?.code === 200) {
|
||||||
|
const etag = checkRes?.data?.etag;
|
||||||
|
hash = getHash(filePath);
|
||||||
|
if (etag !== hash) {
|
||||||
needUpload = true;
|
needUpload = true;
|
||||||
}
|
}
|
||||||
if (!needUpload) {
|
|
||||||
logger.debug('所有文件都上传过了,不需要上传文件');
|
|
||||||
return {
|
|
||||||
code: 200,
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
const _baseURL = getBaseURL();
|
if (needUpload) {
|
||||||
const url = new URL('/api/s1/resources/upload', _baseURL);
|
url.searchParams.append('hash', hash);
|
||||||
if (opts.noCheckAppFiles) {
|
const res = await upload({ url: url, form: form, token: token });
|
||||||
url.searchParams.append('noCheckAppFiles', 'true');
|
logger.debug('upload file', file, res);
|
||||||
|
if (res.code !== 200) {
|
||||||
|
logger.error('文件上传失败', file, res);
|
||||||
|
return { code: 500, message: '文件上传失败', file, fileRes: res };
|
||||||
}
|
}
|
||||||
return upload({ url: url, form: form, token: token });
|
} else {
|
||||||
};
|
console.log(chalk.green('\t 文件已经上传过了', url.toString()));
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
return { code: 200 }
|
||||||
|
|
||||||
|
}
|
||||||
app.addCommand(command);
|
app.addCommand(command);
|
||||||
|
|
||||||
const deployLoadFn = async (id: string, org?: string) => {
|
const deployLoadFn = async (id: string, org?: string) => {
|
||||||
|
|||||||
@@ -82,6 +82,22 @@ const loginCommand = new Command('login')
|
|||||||
|
|
||||||
program.addCommand(loginCommand);
|
program.addCommand(loginCommand);
|
||||||
|
|
||||||
|
export const getUsername = async () => {
|
||||||
|
const token = getEnvToken();
|
||||||
|
const localToken = storage.getItem('token');
|
||||||
|
if (!token && !localToken) {
|
||||||
|
console.log('请先登录');
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
let me = await queryLogin.getMe(localToken || token);
|
||||||
|
if (me?.code === 401) {
|
||||||
|
me = await queryLogin.getMe();
|
||||||
|
}
|
||||||
|
if (me?.code === 200) {
|
||||||
|
return me.data?.username;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
const showMe = async (show = true) => {
|
const showMe = async (show = true) => {
|
||||||
const token = getEnvToken();
|
const token = getEnvToken();
|
||||||
const localToken = storage.getItem('token');
|
const localToken = storage.getItem('token');
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export const queryApp = async (params: QueryAppParams, opts?: any) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const queryAppVersion = async (params: { key?: string; version?: string; id?: string }, opts?: DataOpts) => {
|
export const queryAppVersion = async (params: { key?: string; version?: string; id?: string, create?: boolean }, opts?: DataOpts) => {
|
||||||
logger.debug('queryAppVersion params', params, query.url);
|
logger.debug('queryAppVersion params', params, query.url);
|
||||||
return await query.post(
|
return await query.post(
|
||||||
{
|
{
|
||||||
|
|||||||
13
test/upload.ts
Normal file
13
test/upload.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { uploadFilesV2 } from '../src/command/deploy.ts';
|
||||||
|
import path from 'path';
|
||||||
|
import fs from 'fs';
|
||||||
|
|
||||||
|
const files = ['test-cli.html'];
|
||||||
|
|
||||||
|
const res = await uploadFilesV2(files, path.resolve('./test'), {
|
||||||
|
key: 'test',
|
||||||
|
version: '1.0.4',
|
||||||
|
username: 'root',
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(res);
|
||||||
Reference in New Issue
Block a user