From 0ee7d9a69ad28307dc8eacf1100453bd41ba791c Mon Sep 17 00:00:00 2001 From: xion Date: Sun, 9 Mar 2025 17:49:10 +0800 Subject: [PATCH] temp --- pnpm-lock.yaml | 585 ++++++++++++++--------------- src/command/app/front-app/index.ts | 88 +++++ src/command/app/index.ts | 90 +---- src/command/app/micro-app/index.ts | 101 +++++ src/command/deploy.ts | 14 +- 5 files changed, 483 insertions(+), 395 deletions(-) create mode 100644 src/command/app/front-app/index.ts create mode 100644 src/command/app/micro-app/index.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bb71045..4bedd3b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -28,35 +28,35 @@ importers: version: 2.3.4 sequelize: specifier: ^6.37.5 - version: 6.37.5(pg-hstore@2.3.4)(sqlite3@5.1.7) + version: 6.37.6(pg-hstore@2.3.4)(sqlite3@5.1.7) sqlite3: specifier: ^5.1.7 version: 5.1.7 vite: specifier: ^6.2.0 - version: 6.2.0(@types/node@22.13.5) + version: 6.2.1(@types/node@22.13.10) devDependencies: '@kevisual/query': specifier: 0.0.7-alpha.3 version: 0.0.7-alpha.3 '@rollup/plugin-alias': specifier: ^5.1.1 - version: 5.1.1(rollup@4.34.8) + version: 5.1.1(rollup@4.35.0) '@rollup/plugin-commonjs': specifier: ^28.0.2 - version: 28.0.2(rollup@4.34.8) + version: 28.0.3(rollup@4.35.0) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@4.34.8) + version: 6.1.0(rollup@4.35.0) '@rollup/plugin-node-resolve': specifier: ^16.0.0 - version: 16.0.0(rollup@4.34.8) + version: 16.0.0(rollup@4.35.0) '@rollup/plugin-replace': specifier: ^6.0.2 - version: 6.0.2(rollup@4.34.8) + version: 6.0.2(rollup@4.35.0) '@rollup/plugin-typescript': specifier: ^12.1.2 - version: 12.1.2(rollup@4.34.8)(tslib@2.8.1)(typescript@5.7.3) + version: 12.1.2(rollup@4.35.0)(tslib@2.8.1)(typescript@5.8.2) '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -65,7 +65,7 @@ importers: version: 9.0.9 '@types/node': specifier: ^22.13.5 - version: 22.13.5 + version: 22.13.10 chalk: specifier: ^5.4.1 version: 5.4.1 @@ -86,19 +86,19 @@ importers: version: 7.0.3 inquirer: specifier: ^12.4.2 - version: 12.4.2(@types/node@22.13.5) + version: 12.4.3(@types/node@22.13.10) rimraf: specifier: ^6.0.1 version: 6.0.1 rollup: specifier: ^4.34.8 - version: 4.34.8 + version: 4.35.0 rollup-plugin-dts: specifier: ^6.1.1 - version: 6.1.1(rollup@4.34.8)(typescript@5.7.3) + version: 6.1.1(rollup@4.35.0)(typescript@5.8.2) rollup-plugin-esbuild: specifier: ^6.2.0 - version: 6.2.0(esbuild@0.25.0)(rollup@4.34.8) + version: 6.2.1(esbuild@0.25.0)(rollup@4.35.0) tar: specifier: ^7.4.3 version: 7.4.3 @@ -107,7 +107,7 @@ importers: version: 2.8.1 typescript: specifier: ^5.7.3 - version: 5.7.3 + version: 5.8.2 packages: @@ -272,8 +272,8 @@ packages: '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} - '@inquirer/checkbox@4.1.2': - resolution: {integrity: sha512-PL9ixC5YsPXzXhAZFUPmkXGxfgjkdfZdPEPPmt4kFwQ4LBMDG9n/nHXYRGGZSKZJs+d1sGKWgS2GiPzVRKUdtQ==} + '@inquirer/checkbox@4.1.3': + resolution: {integrity: sha512-KU1MGwf24iABJjGESxhyj+/rlQYSRoCfcuHDEHXfZ1DENmbuSRfyrUb+LLjHoee5TNOFKwaFxDXc5/zRwJUPMQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -281,8 +281,8 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.6': - resolution: {integrity: sha512-6ZXYK3M1XmaVBZX6FCfChgtponnL0R6I7k8Nu+kaoNkT828FVZTcca1MqmWQipaW2oNREQl5AaPCUOOCVNdRMw==} + '@inquirer/confirm@5.1.7': + resolution: {integrity: sha512-Xrfbrw9eSiHb+GsesO8TQIeHSMTP0xyvTCeeYevgZ4sKW+iz9w/47bgfG9b0niQm+xaLY2EWPBINUPldLwvYiw==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -290,8 +290,8 @@ packages: '@types/node': optional: true - '@inquirer/core@10.1.7': - resolution: {integrity: sha512-AA9CQhlrt6ZgiSy6qoAigiA1izOa751ugX6ioSjqgJ+/Gd+tEN/TORk5sUYNjXuHWfW0r1n/a6ak4u/NqHHrtA==} + '@inquirer/core@10.1.8': + resolution: {integrity: sha512-HpAqR8y715zPpM9e/9Q+N88bnGwqqL8ePgZ0SMv/s3673JLMv3bIkoivGmjPqXlEgisUksSXibweQccUwEx4qQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -299,8 +299,8 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.7': - resolution: {integrity: sha512-gktCSQtnSZHaBytkJKMKEuswSk2cDBuXX5rxGFv306mwHfBPjg5UAldw9zWGoEyvA9KpRDkeM4jfrx0rXn0GyA==} + '@inquirer/editor@4.2.8': + resolution: {integrity: sha512-UkGKbMFlQw5k4ZLjDwEi5z8NIVlP/3DAlLHta0o0pSsdpPThNmPtUL8mvGCHUaQtR+QrxR9yRYNWgKMsHkfIUA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -308,8 +308,8 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.9': - resolution: {integrity: sha512-Xxt6nhomWTAmuSX61kVgglLjMEFGa+7+F6UUtdEUeg7fg4r9vaFttUUKrtkViYYrQBA5Ia1tkOJj2koP9BuLig==} + '@inquirer/expand@4.0.10': + resolution: {integrity: sha512-leyBouGJ77ggv51Jb/OJmLGGnU2HYc13MZ2iiPNLwe2VgFgZPVqsrRWSa1RAHKyazjOyvSNKLD1B2K7A/iWi1g==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -317,12 +317,12 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.10': - resolution: {integrity: sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==} + '@inquirer/figures@1.0.11': + resolution: {integrity: sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==} engines: {node: '>=18'} - '@inquirer/input@4.1.6': - resolution: {integrity: sha512-1f5AIsZuVjPT4ecA8AwaxDFNHny/tSershP/cTvTDxLdiIGTeILNcKozB0LaYt6mojJLUbOYhpIxicaYf7UKIQ==} + '@inquirer/input@4.1.7': + resolution: {integrity: sha512-rCQAipJNA14UTH84df/z4jDJ9LZ54H6zzuCAi7WZ0qVqx3CSqLjfXAMd5cpISIxbiHVJCPRB81gZksq6CZsqDg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -330,8 +330,8 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.9': - resolution: {integrity: sha512-iN2xZvH3tyIYXLXBvlVh0npk1q/aVuKXZo5hj+K3W3D4ngAEq/DkLpofRzx6oebTUhBvOgryZ+rMV0yImKnG3w==} + '@inquirer/number@3.0.10': + resolution: {integrity: sha512-GLsdnxzNefjCJUmWyjaAuNklHgDpCTL4RMllAVhVvAzBwRW9g38eZ5tWgzo1lirtSDTpsh593hqXVhxvdrjfwA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -339,8 +339,8 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.9': - resolution: {integrity: sha512-xBEoOw1XKb0rIN208YU7wM7oJEHhIYkfG7LpTJAEW913GZeaoQerzf5U/LSHI45EVvjAdgNXmXgH51cUXKZcJQ==} + '@inquirer/password@4.0.10': + resolution: {integrity: sha512-JC538ujqeYKkFqLoWZ0ILBteIUO2yajBMVEUZSxjl9x6fiEQtM+I5Rca7M2D8edMDbyHLnXifGH1hJZdh8V5rA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -348,8 +348,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.3.2': - resolution: {integrity: sha512-G1ytyOoHh5BphmEBxSwALin3n1KGNYB6yImbICcRQdzXfOGbuJ9Jske/Of5Sebk339NSGGNfUshnzK8YWkTPsQ==} + '@inquirer/prompts@7.3.3': + resolution: {integrity: sha512-QS1AQgJ113iE/nmym03yKZKHvGjVWwkGZT3B1yKrrMG0bJKQg1jUkntFP8aPd2FUQzu/nga7QU2eDpzIP5it0Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -357,8 +357,8 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.0.9': - resolution: {integrity: sha512-+5t6ebehKqgoxV8fXwE49HkSF2Rc9ijNiVGEQZwvbMI61/Q5RcD+jWD6Gs1tKdz5lkI8GRBL31iO0HjGK1bv+A==} + '@inquirer/rawlist@4.0.10': + resolution: {integrity: sha512-vOQbQkmhaCsF2bUmjoyRSZJBz77UnIF/F3ZS2LMgwbgyaG2WgwKHh0WKNj0APDB72WDbZijhW5nObQbk+TnbcA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -366,8 +366,8 @@ packages: '@types/node': optional: true - '@inquirer/search@3.0.9': - resolution: {integrity: sha512-DWmKztkYo9CvldGBaRMr0ETUHgR86zE6sPDVOHsqz4ISe9o1LuiWfgJk+2r75acFclA93J/lqzhT0dTjCzHuoA==} + '@inquirer/search@3.0.10': + resolution: {integrity: sha512-EAVKAz6P1LajZOdoL+R+XC3HJYSU261fbJzO4fCkJJ7UPFcm+nP+gzC+DDZWsb2WK9PQvKsnaKiNKsY8B6dBWQ==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -375,8 +375,8 @@ packages: '@types/node': optional: true - '@inquirer/select@4.0.9': - resolution: {integrity: sha512-BpJyJe7Dkhv2kz7yG7bPSbJLQuu/rqyNlF1CfiiFeFwouegfH+zh13KDyt6+d9DwucKo7hqM3wKLLyJxZMO+Xg==} + '@inquirer/select@4.0.10': + resolution: {integrity: sha512-Tg8S9nESnCfISu5tCZSuXpXq0wHuDVimj7xyHstABgR34zcJnLdq/VbjB2mdZvNAMAehYBnNzSjxB06UE8LLAA==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -384,8 +384,8 @@ packages: '@types/node': optional: true - '@inquirer/type@3.0.4': - resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} + '@inquirer/type@3.0.5': + resolution: {integrity: sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -446,8 +446,8 @@ packages: rollup: optional: true - '@rollup/plugin-commonjs@28.0.2': - resolution: {integrity: sha512-BEFI2EDqzl+vA1rl97IDRZ61AIwGH093d9nz8+dThxJNH8oSoB7MjWvPCX3dkaK1/RCJ/1v/R1XB15FuSs0fQw==} + '@rollup/plugin-commonjs@28.0.3': + resolution: {integrity: sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==} engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 @@ -504,108 +504,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.34.8': - resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} + '@rollup/rollup-android-arm-eabi@4.35.0': + resolution: {integrity: sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.8': - resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} + '@rollup/rollup-android-arm64@4.35.0': + resolution: {integrity: sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.8': - resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} + '@rollup/rollup-darwin-arm64@4.35.0': + resolution: {integrity: sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.8': - resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} + '@rollup/rollup-darwin-x64@4.35.0': + resolution: {integrity: sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.8': - resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} + '@rollup/rollup-freebsd-arm64@4.35.0': + resolution: {integrity: sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.8': - resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} + '@rollup/rollup-freebsd-x64@4.35.0': + resolution: {integrity: sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.8': - resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': + resolution: {integrity: sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==} cpu: [arm] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm-musleabihf@4.34.8': - resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} + '@rollup/rollup-linux-arm-musleabihf@4.35.0': + resolution: {integrity: sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==} cpu: [arm] os: [linux] - libc: [musl] - '@rollup/rollup-linux-arm64-gnu@4.34.8': - resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} + '@rollup/rollup-linux-arm64-gnu@4.35.0': + resolution: {integrity: sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==} cpu: [arm64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-arm64-musl@4.34.8': - resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} + '@rollup/rollup-linux-arm64-musl@4.35.0': + resolution: {integrity: sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==} cpu: [arm64] os: [linux] - libc: [musl] - '@rollup/rollup-linux-loongarch64-gnu@4.34.8': - resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': + resolution: {integrity: sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==} cpu: [loong64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': - resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': + resolution: {integrity: sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==} cpu: [ppc64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-riscv64-gnu@4.34.8': - resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} + '@rollup/rollup-linux-riscv64-gnu@4.35.0': + resolution: {integrity: sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==} cpu: [riscv64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-s390x-gnu@4.34.8': - resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} + '@rollup/rollup-linux-s390x-gnu@4.35.0': + resolution: {integrity: sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==} cpu: [s390x] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-gnu@4.34.8': - resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} + '@rollup/rollup-linux-x64-gnu@4.35.0': + resolution: {integrity: sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==} cpu: [x64] os: [linux] - libc: [glibc] - '@rollup/rollup-linux-x64-musl@4.34.8': - resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} + '@rollup/rollup-linux-x64-musl@4.35.0': + resolution: {integrity: sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==} cpu: [x64] os: [linux] - libc: [musl] - '@rollup/rollup-win32-arm64-msvc@4.34.8': - resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} + '@rollup/rollup-win32-arm64-msvc@4.35.0': + resolution: {integrity: sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.8': - resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} + '@rollup/rollup-win32-ia32-msvc@4.35.0': + resolution: {integrity: sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.8': - resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} + '@rollup/rollup-win32-x64-msvc@4.35.0': + resolution: {integrity: sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==} cpu: [x64] os: [win32] @@ -631,8 +621,8 @@ packages: '@types/node-forge@1.3.11': resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} - '@types/node@22.13.5': - resolution: {integrity: sha512-+lTU0PxZXn0Dr1NBtC7Y8cR21AJr87dLLU953CWA6pMxxv/UDc7jYAY90upcrie1nRcD6XNG5HOYEDtgW5TxAg==} + '@types/node@22.13.10': + resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} '@types/resolve@1.20.2': resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} @@ -647,8 +637,8 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} aggregate-error@3.1.0: @@ -783,15 +773,6 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.0: resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} @@ -951,8 +932,8 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} deprecated: This package is no longer supported. - get-intrinsic@1.2.7: - resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} get-proto@1.0.1: @@ -1058,8 +1039,8 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inquirer@12.4.2: - resolution: {integrity: sha512-reyjHcwyK2LObXgTJH4T1Dpfhwu88LNPTZmg/KenmTsy3T8lN/kZT8Oo7UwwkB9q8+ss2qjjN7GV8oFAfyz9Xg==} + inquirer@12.4.3: + resolution: {integrity: sha512-p9+jcDKhFHKTunvpffCk7I9eKt8+NPNWO8hMSSoLPv5vahP5Vhr78qWzDtA+6FBWQtFTuLFUWmxTyhC6G2Xz/Q==} engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' @@ -1272,20 +1253,20 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - nanoid@3.3.8: - resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + nanoid@3.3.9: + resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-build-utils@1.0.2: - resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} - node-abi@3.71.0: - resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} + node-abi@3.74.0: + resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} engines: {node: '>=10'} node-addon-api@7.1.1: @@ -1368,8 +1349,8 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - prebuild-install@7.1.2: - resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} engines: {node: '>=10'} hasBin: true @@ -1438,15 +1419,15 @@ packages: rollup: ^3.29.4 || ^4 typescript: ^4.5 || ^5.0 - rollup-plugin-esbuild@6.2.0: - resolution: {integrity: sha512-LbkHaCahA6ceyWzAd6md2yajNS+HfZmZ5o58ShkZp0cQeZOnZECG2D2xWFNBq5SF6X6pfMK2udkZ+wRtvpzyVQ==} + rollup-plugin-esbuild@6.2.1: + resolution: {integrity: sha512-jTNOMGoMRhs0JuueJrJqbW8tOwxumaWYq+V5i+PD+8ecSCVkuX27tGW7BXqDgoULQ55rO7IdNxPcnsWtshz3AA==} engines: {node: '>=14.18.0'} peerDependencies: esbuild: '>=0.18.0' rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - rollup@4.34.8: - resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} + rollup@4.35.0: + resolution: {integrity: sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1457,8 +1438,8 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -1479,8 +1460,8 @@ packages: resolution: {integrity: sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==} engines: {node: '>= 10.0.0'} - sequelize@6.37.5: - resolution: {integrity: sha512-10WA4poUb3XWnUROThqL2Apq9C2NhyV1xHPMZuybNMCucDsbbFuKg51jhmyvvAUyUqCiimwTZamc3AHhMoBr2Q==} + sequelize@6.37.6: + resolution: {integrity: sha512-4Slqjqpktofs7AVqWviFOInzP9w8ZRQDhF+DnRtm4WKIdIATpyzGgedyseP3xbgpBxapvfQcJv6CeIdZe4ZL2A==} engines: {node: '>=10.0.0'} peerDependencies: ibm_db: '*' @@ -1544,8 +1525,8 @@ packages: resolution: {integrity: sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==} engines: {node: '>= 10'} - socks@2.8.3: - resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + socks@2.8.4: + resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} source-map-js@1.2.1: @@ -1589,8 +1570,8 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} @@ -1625,8 +1606,8 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - typescript@5.7.3: - resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} engines: {node: '>=14.17'} hasBin: true @@ -1657,8 +1638,8 @@ packages: resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} engines: {node: '>= 0.10'} - vite@6.2.0: - resolution: {integrity: sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==} + vite@6.2.1: + resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -1836,27 +1817,27 @@ snapshots: '@gar/promisify@1.1.3': optional: true - '@inquirer/checkbox@4.1.2(@types/node@22.13.5)': + '@inquirer/checkbox@4.1.3(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@22.13.10) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/confirm@5.1.6(@types/node@22.13.5)': + '@inquirer/confirm@5.1.7(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/core@10.1.7(@types/node@22.13.5)': + '@inquirer/core@10.1.8(@types/node@22.13.10)': dependencies: - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@22.13.10) ansi-escapes: 4.3.2 cli-width: 4.1.0 mute-stream: 2.0.0 @@ -1864,93 +1845,93 @@ snapshots: wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/editor@4.2.7(@types/node@22.13.5)': + '@inquirer/editor@4.2.8(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) external-editor: 3.1.0 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/expand@4.0.9(@types/node@22.13.5)': + '@inquirer/expand@4.0.10(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/figures@1.0.10': {} + '@inquirer/figures@1.0.11': {} - '@inquirer/input@4.1.6(@types/node@22.13.5)': + '@inquirer/input@4.1.7(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/number@3.0.9(@types/node@22.13.5)': + '@inquirer/number@3.0.10(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/password@4.0.9(@types/node@22.13.5)': + '@inquirer/password@4.0.10(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) ansi-escapes: 4.3.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/prompts@7.3.2(@types/node@22.13.5)': + '@inquirer/prompts@7.3.3(@types/node@22.13.10)': dependencies: - '@inquirer/checkbox': 4.1.2(@types/node@22.13.5) - '@inquirer/confirm': 5.1.6(@types/node@22.13.5) - '@inquirer/editor': 4.2.7(@types/node@22.13.5) - '@inquirer/expand': 4.0.9(@types/node@22.13.5) - '@inquirer/input': 4.1.6(@types/node@22.13.5) - '@inquirer/number': 3.0.9(@types/node@22.13.5) - '@inquirer/password': 4.0.9(@types/node@22.13.5) - '@inquirer/rawlist': 4.0.9(@types/node@22.13.5) - '@inquirer/search': 3.0.9(@types/node@22.13.5) - '@inquirer/select': 4.0.9(@types/node@22.13.5) + '@inquirer/checkbox': 4.1.3(@types/node@22.13.10) + '@inquirer/confirm': 5.1.7(@types/node@22.13.10) + '@inquirer/editor': 4.2.8(@types/node@22.13.10) + '@inquirer/expand': 4.0.10(@types/node@22.13.10) + '@inquirer/input': 4.1.7(@types/node@22.13.10) + '@inquirer/number': 3.0.10(@types/node@22.13.10) + '@inquirer/password': 4.0.10(@types/node@22.13.10) + '@inquirer/rawlist': 4.0.10(@types/node@22.13.10) + '@inquirer/search': 3.0.10(@types/node@22.13.10) + '@inquirer/select': 4.0.10(@types/node@22.13.10) optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/rawlist@4.0.9(@types/node@22.13.5)': + '@inquirer/rawlist@4.0.10(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/search@3.0.9(@types/node@22.13.5)': + '@inquirer/search@3.0.10(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@22.13.10) yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/select@4.0.9(@types/node@22.13.5)': + '@inquirer/select@4.0.10(@types/node@22.13.10)': dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/figures': 1.0.10 - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/figures': 1.0.11 + '@inquirer/type': 3.0.5(@types/node@22.13.10) ansi-escapes: 4.3.2 yoctocolors-cjs: 2.1.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@inquirer/type@3.0.4(@types/node@22.13.5)': + '@inquirer/type@3.0.5(@types/node@22.13.10)': optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 '@isaacs/cliui@8.0.2': dependencies: @@ -2009,13 +1990,13 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@rollup/plugin-alias@5.1.1(rollup@4.34.8)': + '@rollup/plugin-alias@5.1.1(rollup@4.35.0)': optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 - '@rollup/plugin-commonjs@28.0.2(rollup@4.34.8)': + '@rollup/plugin-commonjs@28.0.3(rollup@4.35.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.34.8) + '@rollup/pluginutils': 5.1.2(rollup@4.35.0) commondir: 1.0.1 estree-walker: 2.0.2 fdir: 6.4.0(picomatch@4.0.2) @@ -2023,103 +2004,103 @@ snapshots: magic-string: 0.30.11 picomatch: 4.0.2 optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 - '@rollup/plugin-json@6.1.0(rollup@4.34.8)': + '@rollup/plugin-json@6.1.0(rollup@4.35.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.34.8) + '@rollup/pluginutils': 5.1.2(rollup@4.35.0) optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 - '@rollup/plugin-node-resolve@16.0.0(rollup@4.34.8)': + '@rollup/plugin-node-resolve@16.0.0(rollup@4.35.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.34.8) + '@rollup/pluginutils': 5.1.2(rollup@4.35.0) '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.8 optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 - '@rollup/plugin-replace@6.0.2(rollup@4.34.8)': + '@rollup/plugin-replace@6.0.2(rollup@4.35.0)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.34.8) + '@rollup/pluginutils': 5.1.2(rollup@4.35.0) magic-string: 0.30.11 optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 - '@rollup/plugin-typescript@12.1.2(rollup@4.34.8)(tslib@2.8.1)(typescript@5.7.3)': + '@rollup/plugin-typescript@12.1.2(rollup@4.35.0)(tslib@2.8.1)(typescript@5.8.2)': dependencies: - '@rollup/pluginutils': 5.1.2(rollup@4.34.8) + '@rollup/pluginutils': 5.1.2(rollup@4.35.0) resolve: 1.22.8 - typescript: 5.7.3 + typescript: 5.8.2 optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 tslib: 2.8.1 - '@rollup/pluginutils@5.1.2(rollup@4.34.8)': + '@rollup/pluginutils@5.1.2(rollup@4.35.0)': dependencies: '@types/estree': 1.0.6 estree-walker: 2.0.2 picomatch: 4.0.2 optionalDependencies: - rollup: 4.34.8 + rollup: 4.35.0 - '@rollup/rollup-android-arm-eabi@4.34.8': + '@rollup/rollup-android-arm-eabi@4.35.0': optional: true - '@rollup/rollup-android-arm64@4.34.8': + '@rollup/rollup-android-arm64@4.35.0': optional: true - '@rollup/rollup-darwin-arm64@4.34.8': + '@rollup/rollup-darwin-arm64@4.35.0': optional: true - '@rollup/rollup-darwin-x64@4.34.8': + '@rollup/rollup-darwin-x64@4.35.0': optional: true - '@rollup/rollup-freebsd-arm64@4.34.8': + '@rollup/rollup-freebsd-arm64@4.35.0': optional: true - '@rollup/rollup-freebsd-x64@4.34.8': + '@rollup/rollup-freebsd-x64@4.35.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.8': + '@rollup/rollup-linux-arm-gnueabihf@4.35.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.8': + '@rollup/rollup-linux-arm-musleabihf@4.35.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.8': + '@rollup/rollup-linux-arm64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.8': + '@rollup/rollup-linux-arm64-musl@4.35.0': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.8': + '@rollup/rollup-linux-loongarch64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': + '@rollup/rollup-linux-powerpc64le-gnu@4.35.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.8': + '@rollup/rollup-linux-riscv64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.8': + '@rollup/rollup-linux-s390x-gnu@4.35.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.8': + '@rollup/rollup-linux-x64-gnu@4.35.0': optional: true - '@rollup/rollup-linux-x64-musl@4.34.8': + '@rollup/rollup-linux-x64-musl@4.35.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.8': + '@rollup/rollup-win32-arm64-msvc@4.35.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.8': + '@rollup/rollup-win32-ia32-msvc@4.35.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.8': + '@rollup/rollup-win32-x64-msvc@4.35.0': optional: true '@tootallnate/once@1.1.2': @@ -2136,15 +2117,15 @@ snapshots: '@types/jsonwebtoken@9.0.9': dependencies: '@types/ms': 0.7.34 - '@types/node': 22.13.5 + '@types/node': 22.13.10 '@types/ms@0.7.34': {} '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 - '@types/node@22.13.5': + '@types/node@22.13.10': dependencies: undici-types: 6.20.0 @@ -2157,12 +2138,12 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color optional: true - agentkeepalive@4.5.0: + agentkeepalive@4.6.0: dependencies: humanize-ms: 1.2.1 optional: true @@ -2308,10 +2289,6 @@ snapshots: crypto-js@4.2.0: {} - debug@4.3.7: - dependencies: - ms: 2.1.3 - debug@4.4.0: dependencies: ms: 2.1.3 @@ -2377,7 +2354,7 @@ snapshots: es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 - get-intrinsic: 1.2.7 + get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -2483,7 +2460,7 @@ snapshots: wide-align: 1.1.5 optional: true - get-intrinsic@1.2.7: + get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 @@ -2564,7 +2541,7 @@ snapshots: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color optional: true @@ -2572,7 +2549,7 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7 + debug: 4.4.0 transitivePeerDependencies: - supports-color optional: true @@ -2616,17 +2593,17 @@ snapshots: ini@1.3.8: {} - inquirer@12.4.2(@types/node@22.13.5): + inquirer@12.4.3(@types/node@22.13.10): dependencies: - '@inquirer/core': 10.1.7(@types/node@22.13.5) - '@inquirer/prompts': 7.3.2(@types/node@22.13.5) - '@inquirer/type': 3.0.4(@types/node@22.13.5) + '@inquirer/core': 10.1.8(@types/node@22.13.10) + '@inquirer/prompts': 7.3.3(@types/node@22.13.10) + '@inquirer/type': 3.0.5(@types/node@22.13.10) ansi-escapes: 4.3.2 mute-stream: 2.0.0 run-async: 3.0.0 - rxjs: 7.8.1 + rxjs: 7.8.2 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 ip-address@9.0.5: dependencies: @@ -2730,7 +2707,7 @@ snapshots: make-fetch-happen@9.1.0: dependencies: - agentkeepalive: 4.5.0 + agentkeepalive: 4.6.0 cacache: 15.3.0 http-cache-semantics: 4.1.1 http-proxy-agent: 4.0.1 @@ -2742,7 +2719,7 @@ snapshots: minipass-fetch: 1.4.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - negotiator: 0.6.3 + negotiator: 0.6.4 promise-retry: 2.0.1 socks-proxy-agent: 6.2.1 ssri: 8.0.1 @@ -2846,14 +2823,14 @@ snapshots: mute-stream@2.0.0: {} - nanoid@3.3.8: {} + nanoid@3.3.9: {} - napi-build-utils@1.0.2: {} + napi-build-utils@2.0.0: {} - negotiator@0.6.3: + negotiator@0.6.4: optional: true - node-abi@3.71.0: + node-abi@3.74.0: dependencies: semver: 7.6.3 @@ -2937,23 +2914,23 @@ snapshots: postcss@8.5.3: dependencies: - nanoid: 3.3.8 + nanoid: 3.3.9 picocolors: 1.1.1 source-map-js: 1.2.1 - prebuild-install@7.1.2: + prebuild-install@7.1.3: dependencies: detect-libc: 2.0.3 expand-template: 2.0.3 github-from-package: 0.0.0 minimist: 1.2.8 mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.71.0 + napi-build-utils: 2.0.0 + node-abi: 3.74.0 pump: 3.0.2 rc: 1.2.8 simple-get: 4.0.1 - tar-fs: 2.1.1 + tar-fs: 2.1.2 tunnel-agent: 0.6.0 promise-inflight@1.0.1: @@ -3014,48 +2991,48 @@ snapshots: glob: 11.0.0 package-json-from-dist: 1.0.1 - rollup-plugin-dts@6.1.1(rollup@4.34.8)(typescript@5.7.3): + rollup-plugin-dts@6.1.1(rollup@4.35.0)(typescript@5.8.2): dependencies: magic-string: 0.30.11 - rollup: 4.34.8 - typescript: 5.7.3 + rollup: 4.35.0 + typescript: 5.8.2 optionalDependencies: '@babel/code-frame': 7.26.2 - rollup-plugin-esbuild@6.2.0(esbuild@0.25.0)(rollup@4.34.8): + rollup-plugin-esbuild@6.2.1(esbuild@0.25.0)(rollup@4.35.0): dependencies: debug: 4.4.0 es-module-lexer: 1.6.0 esbuild: 0.25.0 get-tsconfig: 4.10.0 - rollup: 4.34.8 + rollup: 4.35.0 unplugin-utils: 0.2.4 transitivePeerDependencies: - supports-color - rollup@4.34.8: + rollup@4.35.0: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.8 - '@rollup/rollup-android-arm64': 4.34.8 - '@rollup/rollup-darwin-arm64': 4.34.8 - '@rollup/rollup-darwin-x64': 4.34.8 - '@rollup/rollup-freebsd-arm64': 4.34.8 - '@rollup/rollup-freebsd-x64': 4.34.8 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 - '@rollup/rollup-linux-arm-musleabihf': 4.34.8 - '@rollup/rollup-linux-arm64-gnu': 4.34.8 - '@rollup/rollup-linux-arm64-musl': 4.34.8 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 - '@rollup/rollup-linux-riscv64-gnu': 4.34.8 - '@rollup/rollup-linux-s390x-gnu': 4.34.8 - '@rollup/rollup-linux-x64-gnu': 4.34.8 - '@rollup/rollup-linux-x64-musl': 4.34.8 - '@rollup/rollup-win32-arm64-msvc': 4.34.8 - '@rollup/rollup-win32-ia32-msvc': 4.34.8 - '@rollup/rollup-win32-x64-msvc': 4.34.8 + '@rollup/rollup-android-arm-eabi': 4.35.0 + '@rollup/rollup-android-arm64': 4.35.0 + '@rollup/rollup-darwin-arm64': 4.35.0 + '@rollup/rollup-darwin-x64': 4.35.0 + '@rollup/rollup-freebsd-arm64': 4.35.0 + '@rollup/rollup-freebsd-x64': 4.35.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.35.0 + '@rollup/rollup-linux-arm-musleabihf': 4.35.0 + '@rollup/rollup-linux-arm64-gnu': 4.35.0 + '@rollup/rollup-linux-arm64-musl': 4.35.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.35.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.35.0 + '@rollup/rollup-linux-riscv64-gnu': 4.35.0 + '@rollup/rollup-linux-s390x-gnu': 4.35.0 + '@rollup/rollup-linux-x64-gnu': 4.35.0 + '@rollup/rollup-linux-x64-musl': 4.35.0 + '@rollup/rollup-win32-arm64-msvc': 4.35.0 + '@rollup/rollup-win32-ia32-msvc': 4.35.0 + '@rollup/rollup-win32-x64-msvc': 4.35.0 fsevents: 2.3.3 run-async@3.0.0: {} @@ -3064,7 +3041,7 @@ snapshots: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: + rxjs@7.8.2: dependencies: tslib: 2.8.1 @@ -3081,11 +3058,11 @@ snapshots: sequelize-pool@7.1.0: {} - sequelize@6.37.5(pg-hstore@2.3.4)(sqlite3@5.1.7): + sequelize@6.37.6(pg-hstore@2.3.4)(sqlite3@5.1.7): dependencies: '@types/debug': 4.1.12 '@types/validator': 13.12.2 - debug: 4.3.7 + debug: 4.4.0 dottie: 2.0.6 inflection: 1.13.4 lodash: 4.17.21 @@ -3133,13 +3110,13 @@ snapshots: socks-proxy-agent@6.2.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7 - socks: 2.8.3 + debug: 4.4.0 + socks: 2.8.4 transitivePeerDependencies: - supports-color optional: true - socks@2.8.3: + socks@2.8.4: dependencies: ip-address: 9.0.5 smart-buffer: 4.2.0 @@ -3154,7 +3131,7 @@ snapshots: dependencies: bindings: 1.5.0 node-addon-api: 7.1.1 - prebuild-install: 7.1.2 + prebuild-install: 7.1.3 tar: 6.2.1 optionalDependencies: node-gyp: 8.4.1 @@ -3195,7 +3172,7 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - tar-fs@2.1.1: + tar-fs@2.1.2: dependencies: chownr: 1.1.4 mkdirp-classic: 0.5.3 @@ -3246,7 +3223,7 @@ snapshots: type-fest@0.21.3: {} - typescript@5.7.3: {} + typescript@5.8.2: {} underscore@1.13.7: {} @@ -3273,13 +3250,13 @@ snapshots: validator@13.12.0: {} - vite@6.2.0(@types/node@22.13.5): + vite@6.2.1(@types/node@22.13.10): dependencies: esbuild: 0.25.0 postcss: 8.5.3 - rollup: 4.34.8 + rollup: 4.35.0 optionalDependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 fsevents: 2.3.3 which@2.0.2: @@ -3293,7 +3270,7 @@ snapshots: wkx@0.5.0: dependencies: - '@types/node': 22.13.5 + '@types/node': 22.13.10 wrap-ansi@6.2.0: dependencies: diff --git a/src/command/app/front-app/index.ts b/src/command/app/front-app/index.ts new file mode 100644 index 0000000..091c02f --- /dev/null +++ b/src/command/app/front-app/index.ts @@ -0,0 +1,88 @@ +/** + * 下载 app serve client的包的命令 + */ + +import { chalk } from '@/module/chalk.ts'; +import { program, Command } from '../../../program.ts'; +import { queryApp } from '../../../query/app-manager/query-app.ts'; +import { installApp, uninstallApp } from '@/module/download/install.ts'; +export const appCommand = new Command('app').description('app 命令').action(() => { + console.log('app'); +}); + +program.addCommand(appCommand); + +const downloadAppCommand = new Command('download') + .description('下载 app serve client的包') + .option('-i, --id ', '下载 app serve client的包, id 或者user/key') + .option('-o, --output ', '下载 app serve client的包, 输出路径') + .action(async (options) => { + const id = options.id || ''; + if (!id) { + console.error(chalk.red('id is required')); + return; + } + const [user, key] = id.split('/'); + const data: any = {}; + if (user && key) { + data.user = user; + data.key = key; + } else { + data.id = id; + } + const res = await queryApp(data); + if (res.code === 200) { + const app = res.data; + const result = await installApp(app, { + appDir: '', + // kevisualUrl: 'https://kevisual.cn', + kevisualUrl: 'https://kevisual.xiongxiao.me', + }); + if (result.code === 200) { + console.log(chalk.green('下载成功', res.data?.user, res.data?.key)); + } else { + console.error(chalk.red(result.message || '下载失败')); + } + } else { + console.error(chalk.red(res.message || '下载失败')); + } + }); + +const uninstallAppCommand = new Command('uninstall') + .alias('remove') + .description('卸载 app serve client的包') + .option('-i, --id ', 'user/key') + .action(async (options) => { + const id = options.id || ''; + if (!id) { + console.error(chalk.red('id is required')); + return; + } + const [user, key] = id.split('/'); + const data: any = {}; + if (user && key) { + data.user = user; + data.key = key; + } else { + console.error(chalk.red('id is required')); + return; + } + + const result = await uninstallApp( + { + user, + key, + }, + { + appDir: '', + }, + ); + if (result.code === 200) { + console.log(chalk.green('卸载成功', user, key)); + } else { + console.error(chalk.red(result.message || '卸载失败')); + } + }); + +appCommand.addCommand(downloadAppCommand); +appCommand.addCommand(uninstallAppCommand); \ No newline at end of file diff --git a/src/command/app/index.ts b/src/command/app/index.ts index e9ca105..ea045b2 100644 --- a/src/command/app/index.ts +++ b/src/command/app/index.ts @@ -1,88 +1,2 @@ -/** - * 下载 app serve client的包的命令 - */ - -import { chalk } from '@/module/chalk.ts'; -import { program, Command } from '../../program.ts'; -import { queryApp } from '../../query/app-manager/query-app.ts'; -import { installApp, uninstallApp } from '@/module/download/install.ts'; -export const appCommand = new Command('app').description('app 命令').action(() => { - console.log('app'); -}); - -program.addCommand(appCommand); - -const downloadAppCommand = new Command('download') - .description('下载 app serve client的包') - .option('-i, --id ', '下载 app serve client的包, id 或者user/key') - .option('-o, --output ', '下载 app serve client的包, 输出路径') - .action(async (options) => { - const id = options.id || ''; - if (!id) { - console.error(chalk.red('id is required')); - return; - } - const [user, key] = id.split('/'); - const data: any = {}; - if (user && key) { - data.user = user; - data.key = key; - } else { - data.id = id; - } - const res = await queryApp(data); - if (res.code === 200) { - const app = res.data; - const result = await installApp(app, { - appDir: '', - // kevisualUrl: 'https://kevisual.cn', - kevisualUrl: 'https://kevisual.xiongxiao.me', - }); - if (result.code === 200) { - console.log(chalk.green('下载成功', res.data?.user, res.data?.key)); - } else { - console.error(chalk.red(result.message || '下载失败')); - } - } else { - console.error(chalk.red(res.message || '下载失败')); - } - }); - -const uninstallAppCommand = new Command('uninstall') - .alias('remove') - .description('卸载 app serve client的包') - .option('-i, --id ', 'user/key') - .action(async (options) => { - const id = options.id || ''; - if (!id) { - console.error(chalk.red('id is required')); - return; - } - const [user, key] = id.split('/'); - const data: any = {}; - if (user && key) { - data.user = user; - data.key = key; - } else { - console.error(chalk.red('id is required')); - return; - } - - const result = await uninstallApp( - { - user, - key, - }, - { - appDir: '', - }, - ); - if (result.code === 200) { - console.log(chalk.green('卸载成功', user, key)); - } else { - console.error(chalk.red(result.message || '卸载失败')); - } - }); - -appCommand.addCommand(downloadAppCommand); -appCommand.addCommand(uninstallAppCommand); \ No newline at end of file +import './micro-app/index.ts'; +import './front-app/index.ts'; diff --git a/src/command/app/micro-app/index.ts b/src/command/app/micro-app/index.ts new file mode 100644 index 0000000..668d5fb --- /dev/null +++ b/src/command/app/micro-app/index.ts @@ -0,0 +1,101 @@ +/** + * 下载 app serve client的包的命令 + */ + +import { chalk } from '@/module/chalk.ts'; +import { program, Command } from '../../../program.ts'; +import fs from 'fs'; +import { Readable } from 'stream'; +import * as tar from 'tar'; +import path from 'path'; + +// Utility function to convert a web ReadableStream to a Node.js Readable stream +function nodeReadableStreamFromWeb(webStream: ReadableStream) { + const reader = webStream.getReader(); + return new Readable({ + async read() { + const { done, value } = await reader.read(); + if (done) { + this.push(null); + } else { + this.push(Buffer.from(value)); + } + }, + }); +} + +export const appCommand = new Command('micro-app').description('micro-app 命令').action(() => { + console.log('micro-app'); +}); + +program.addCommand(appCommand); + +// https://kevisual.xiongxiao.me/api/micro-app/download/file?notNeedToken=y&title=mark-0.0.2.tgz +const downloadAppCommand = new Command('download') + .description('下载 app serve client的包') + .option('-i, --id ', '下载 app serve client的包, id 或者title, mark-0.0.2.tgz') + .option('-o, --output ', '下载 app serve client的包, 输出路径') + .option('-x, --extract ', '下载 app serve client的包, 解压, 默认解压到当前目录') + .action(async (options) => { + const id = options.id || ''; + if (!id) { + console.error(chalk.red('id is required')); + return; + } + let title = ''; + if (id.includes('.tgz')) { + title = id; + } + + let curlUrl = `https://kevisual.xiongxiao.me/api/micro-app/download/${id}?notNeedToken=y`; + if (title) { + curlUrl = `https://kevisual.xiongxiao.me/api/micro-app/download/file?notNeedToken=y&title=${title}`; + } + console.log('download url', curlUrl); + fetch(curlUrl) + .then((res) => { + const contentDisposition = res.headers.get('content-disposition'); + let filename = 'downloaded-file.tgz'; // Default filename + + if (contentDisposition) { + const match = contentDisposition.match(/filename="?(.+)"?/); + if (match && match[1]) { + filename = match[1].replace(/^"|"$/g, ''); + } + } + console.log('filename', filename, contentDisposition); + const outputPath = options.output || filename; + const fileStream = fs.createWriteStream(outputPath); + + if (res.body) { + nodeReadableStreamFromWeb(res.body).pipe(fileStream); + + fileStream.on('finish', async () => { + console.log(chalk.green(`下载成功: ${outputPath}`)); + if (options.extract) { + console.log(chalk.green(`解压: ${outputPath}`)); + const extractPath = path.join(process.cwd(), options.extract || '.'); + console.log('extractPath', extractPath); + // const res = await tar.extract({ + // file: outputPath, + // cwd: extractPath, + // }); + // console.log('res', res); + // untar.extract({ file: outputPath, cwd: extractPath }); + } + }); + + fileStream.on('error', (err) => { + console.error(chalk.red('文件写入错误:', err)); + fileStream.close(); // Ensure the stream is closed on error + }); + } else { + console.error(chalk.red('下载失败: 无法获取文件流')); + } + }) + .catch((err) => { + console.error(chalk.red('下载请求失败:', err)); + }); + }); + +appCommand.addCommand(downloadAppCommand); diff --git a/src/command/deploy.ts b/src/command/deploy.ts index 2befcd1..d57db4f 100644 --- a/src/command/deploy.ts +++ b/src/command/deploy.ts @@ -16,10 +16,11 @@ const command = new Command('deploy') .option('-v, --version ', 'verbose') .option('-k, --key ', 'key') .option('-y, --yes ', 'yes') + .option('-o, --org ', 'org') .option('-u, --update', 'load current app. set current version in product') .action(async (filePath, options) => { try { - let { version, key, yes, update } = options; + let { version, key, yes, update, org } = options; if (!version || !key) { const answers = await inquirer.prompt([ { @@ -69,7 +70,7 @@ const command = new Command('deploy') } } const uploadDirectory = isDirectory ? directory : path.dirname(directory); - const res = await uploadFiles(_relativeFiles, uploadDirectory, { key, version }); + const res = await uploadFiles(_relativeFiles, uploadDirectory, { key, version, username: org }); if (res?.code === 200) { console.log('File uploaded successfully!'); res.data?.data?.files?.map?.((d) => { @@ -92,7 +93,11 @@ const command = new Command('deploy') } }); -const uploadFiles = async (files: string[], directory: string, { key, version }: { key: string; version: string }): Promise => { +const uploadFiles = async ( + files: string[], + directory: string, + { key, version, username }: { key: string; version: string; username: string }, +): Promise => { const config = await getConfig(); const form = new FormData(); for (const file of files) { @@ -104,6 +109,9 @@ const uploadFiles = async (files: string[], directory: string, { key, version }: } form.append('appKey', key); form.append('version', version); + if (username) { + form.append('username', username); + } return new Promise((resolve) => { const _baseURL = getBaseURL(); const url = new URL(_baseURL);