fix: 更新初始化和pack的 cmd
This commit is contained in:
@@ -37,6 +37,7 @@ export class AssistantInit extends AssistantConfig {
|
||||
this.createAssistantConfig();
|
||||
this.createEnvConfig();
|
||||
this.createOtherConfig();
|
||||
this.initPnpm();
|
||||
}
|
||||
checkConfigPath() {
|
||||
const assistantPath = path.join(this.configDir, 'assistant-app', 'assistant-config.json');
|
||||
@@ -106,16 +107,23 @@ export class AssistantInit extends AssistantConfig {
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@kevisual/router": "^0.0.20",
|
||||
"@kevisual/use-config": "^1.0.17",
|
||||
"ioredis": "^5.6.1",
|
||||
"minio": "^8.0.5",
|
||||
"pg": "^8.16.0",
|
||||
"pm2": "^6.0.6",
|
||||
"sequelize": "^6.37.7",
|
||||
"sqlite3": "^5.1.7",
|
||||
"socket.io": "^4.8.1",
|
||||
"dotenv": "^16.5.0"
|
||||
"@kevisual/router": "latest",
|
||||
"@kevisual/use-config": "latest",
|
||||
"ioredis": "latest",
|
||||
"minio": "latest",
|
||||
"pg": "latest",
|
||||
"pm2": "latest",
|
||||
"sequelize": "latest",
|
||||
"crypto-js": "latest",
|
||||
"better-sqlite3": "latest",
|
||||
"unstorage": "latest",
|
||||
"dayjs": "latest",
|
||||
"es-toolkit": "latest",
|
||||
"dotenv": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "latest",
|
||||
"@types/crypto-js": "latest"
|
||||
}
|
||||
}
|
||||
`,
|
||||
|
||||
18
package.json
18
package.json
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"name": "@kevisual/cli",
|
||||
"version": "0.0.61",
|
||||
"description": "envision command tools",
|
||||
"main": "dist/app.mjs",
|
||||
"version": "0.0.62",
|
||||
"description": "envision 命令行工具",
|
||||
"type": "module",
|
||||
"private": false,
|
||||
"basename": "/root/cli",
|
||||
"app": {
|
||||
"key": "cli",
|
||||
@@ -28,13 +26,12 @@
|
||||
"bun.config.mjs"
|
||||
],
|
||||
"scripts": {
|
||||
"dev": "cross-env NODE_ENV=development bun src/run.ts ",
|
||||
"dev": "bun src/run.ts ",
|
||||
"dev:tsx": "tsx src/run.ts ",
|
||||
"build": "rimraf dist && bun run bun.config.mjs",
|
||||
"pub:me": "npm publish --registry https://npm.xiongxiao.me --tag beta",
|
||||
"postbuild": "cd assistant && pnpm build ",
|
||||
"dts": "dts-bundle-generator --external-inlines=@types/jsonwebtoken src/index.ts -o dist/index.d.ts ",
|
||||
"build:all": "rimraf dist && bun run bun.config.mjs && bun run assistant/bun.config.mjs"
|
||||
"dts": "dts-bundle-generator --external-inlines=@types/jsonwebtoken src/index.ts -o dist/index.d.ts "
|
||||
},
|
||||
"keywords": [
|
||||
"kevisual",
|
||||
@@ -55,16 +52,15 @@
|
||||
"@types/crypto-js": "^4.2.2",
|
||||
"@types/jsonwebtoken": "^9.0.10",
|
||||
"@types/micromatch": "^4.0.10",
|
||||
"@types/node": "^24.10.0",
|
||||
"@types/node": "^24.10.1",
|
||||
"chalk": "^5.6.2",
|
||||
"commander": "^14.0.2",
|
||||
"cross-env": "^10.1.0",
|
||||
"crypto-js": "^4.2.0",
|
||||
"fast-glob": "^3.3.3",
|
||||
"filesize": "^11.0.13",
|
||||
"form-data": "^4.0.4",
|
||||
"form-data": "^4.0.5",
|
||||
"ignore": "^7.0.5",
|
||||
"inquirer": "^12.11.0",
|
||||
"inquirer": "^13.0.1",
|
||||
"jsonwebtoken": "^9.0.2",
|
||||
"tar": "^7.5.2",
|
||||
"zustand": "^5.0.8"
|
||||
|
||||
369
pnpm-lock.yaml
generated
369
pnpm-lock.yaml
generated
@@ -43,8 +43,8 @@ importers:
|
||||
specifier: ^4.0.10
|
||||
version: 4.0.10
|
||||
'@types/node':
|
||||
specifier: ^24.10.0
|
||||
version: 24.10.0
|
||||
specifier: ^24.10.1
|
||||
version: 24.10.1
|
||||
chalk:
|
||||
specifier: ^5.6.2
|
||||
version: 5.6.2
|
||||
@@ -64,14 +64,14 @@ importers:
|
||||
specifier: ^11.0.13
|
||||
version: 11.0.13
|
||||
form-data:
|
||||
specifier: ^4.0.4
|
||||
version: 4.0.4
|
||||
specifier: ^4.0.5
|
||||
version: 4.0.5
|
||||
ignore:
|
||||
specifier: ^7.0.5
|
||||
version: 7.0.5
|
||||
inquirer:
|
||||
specifier: ^12.11.0
|
||||
version: 12.11.0(@types/node@24.10.0)
|
||||
specifier: ^13.0.1
|
||||
version: 13.0.1(@types/node@24.10.1)
|
||||
jsonwebtoken:
|
||||
specifier: ^9.0.2
|
||||
version: 9.0.2
|
||||
@@ -199,6 +199,10 @@ packages:
|
||||
resolution: {integrity: sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/ansi@2.0.1':
|
||||
resolution: {integrity: sha512-QAZUk6BBncv/XmSEZTscd8qazzjV3E0leUMrEPjxCd51QBgCKmprUGLex5DTsNtURm7LMzv+CLcd6S86xvBfYg==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
|
||||
'@inquirer/checkbox@4.3.1':
|
||||
resolution: {integrity: sha512-rOcLotrptYIy59SGQhKlU0xBg1vvcVl2FdPIEclUvKHh0wo12OfGkId/01PIMJ/V+EimJ77t085YabgnQHBa5A==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -208,6 +212,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/checkbox@5.0.1':
|
||||
resolution: {integrity: sha512-5VPFBK8jKdsjMK3DTFOlbR0+Kkd4q0AWB7VhWQn6ppv44dr3b7PU8wSJQTC5oA0f/aGW7v/ZozQJAY9zx6PKig==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/confirm@5.1.20':
|
||||
resolution: {integrity: sha512-HDGiWh2tyRZa0M1ZnEIUCQro25gW/mN8ODByicQrbR1yHx4hT+IOpozCMi5TgBtUdklLwRI2mv14eNpftDluEw==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -217,6 +230,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/confirm@6.0.1':
|
||||
resolution: {integrity: sha512-wD+pM7IxLn1TdcQN12Q6wcFe5VpyCuh/I2sSmqO5KjWH2R4v+GkUToHb+PsDGobOe1MtAlXMwGNkZUPc2+L6NA==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/core@10.3.1':
|
||||
resolution: {integrity: sha512-hzGKIkfomGFPgxKmnKEKeA+uCYBqC+TKtRx5LgyHRCrF6S2MliwRIjp3sUaWwVzMp7ZXVs8elB0Tfe682Rpg4w==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -226,6 +248,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/core@11.0.1':
|
||||
resolution: {integrity: sha512-Tpf49h50e4KYffVUCXzkx4gWMafUi3aDQDwfVAAGBNnVcXiwJIj4m2bKlZ7Kgyf6wjt1eyXH1wDGXcAokm4Ssw==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/editor@4.2.22':
|
||||
resolution: {integrity: sha512-8yYZ9TCbBKoBkzHtVNMF6PV1RJEUvMlhvmS3GxH4UvXMEHlS45jFyqFy0DU+K42jBs5slOaA78xGqqqWAx3u6A==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -235,6 +266,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/editor@5.0.1':
|
||||
resolution: {integrity: sha512-zDKobHI7Ry++4noiV9Z5VfYgSVpPZoMApviIuGwLOMciQaP+dGzCO+1fcwI441riklRiZg4yURWyEoX0Zy2zZw==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/expand@4.0.22':
|
||||
resolution: {integrity: sha512-9XOjCjvioLjwlq4S4yXzhvBmAXj5tG+jvva0uqedEsQ9VD8kZ+YT7ap23i0bIXOtow+di4+u3i6u26nDqEfY4Q==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -244,6 +284,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/expand@5.0.1':
|
||||
resolution: {integrity: sha512-TBrTpAB6uZNnGQHtSEkbvJZIQ3dXZOrwqQSO9uUbwct3G2LitwBCE5YZj98MbQ5nzihzs5pRjY1K9RRLH4WgoA==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/external-editor@1.0.3':
|
||||
resolution: {integrity: sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -253,10 +302,23 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/external-editor@2.0.1':
|
||||
resolution: {integrity: sha512-BPYWJXCAK9w6R+pb2s3WyxUz9ts9SP/LDOUwA9fu7LeuyYgojz83i0DSRwezu736BgMwz14G63Xwj70hSzHohQ==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/figures@1.0.15':
|
||||
resolution: {integrity: sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@inquirer/figures@2.0.1':
|
||||
resolution: {integrity: sha512-KtMxyjLCuDFqAWHmCY9qMtsZ09HnjMsm8H3OvpSIpfhHdfw3/AiGWHNrfRwbyvHPtOJpumm8wGn5fkhtvkWRsg==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
|
||||
'@inquirer/input@4.3.0':
|
||||
resolution: {integrity: sha512-h4fgse5zeGsBSW3cRQqu9a99OXRdRsNCvHoBqVmz40cjYjYFzcfwD0KA96BHIPlT7rZw0IpiefQIqXrjbzjS4Q==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -266,6 +328,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/input@5.0.1':
|
||||
resolution: {integrity: sha512-cEhEUohCpE2BCuLKtFFZGp4Ief05SEcqeAOq9NxzN5ThOQP8Rl5N/Nt9VEDORK1bRb2Sk/zoOyQYfysPQwyQtA==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/number@3.0.22':
|
||||
resolution: {integrity: sha512-oAdMJXz++fX58HsIEYmvuf5EdE8CfBHHXjoi9cTcQzgFoHGZE+8+Y3P38MlaRMeBvAVnkWtAxMUF6urL2zYsbg==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -275,6 +346,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/number@4.0.1':
|
||||
resolution: {integrity: sha512-4//zgBGHe8Q/FfCoUXZUrUHyK/q5dyqiwsePz3oSSPSmw1Ijo35ZkjaftnxroygcUlLYfXqm+0q08lnB5hd49A==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/password@4.0.22':
|
||||
resolution: {integrity: sha512-CbdqK1ioIr0Y3akx03k/+Twf+KSlHjn05hBL+rmubMll7PsDTGH0R4vfFkr+XrkB0FOHrjIwVP9crt49dgt+1g==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -284,6 +364,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/password@5.0.1':
|
||||
resolution: {integrity: sha512-UJudHpd7Ia30Q+x+ctYqI9Nh6SyEkaBscpa7J6Ts38oc1CNSws0I1hJEdxbQBlxQd65z5GEJPM4EtNf6tzfWaQ==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/prompts@7.10.0':
|
||||
resolution: {integrity: sha512-X2HAjY9BClfFkJ2RP3iIiFxlct5JJVdaYYXhA7RKxsbc9KL+VbId79PSoUGH/OLS011NFbHHDMDcBKUj3T89+Q==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -293,6 +382,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/prompts@8.0.1':
|
||||
resolution: {integrity: sha512-MURRu/cyvLm9vchDDaVZ9u4p+ADnY0Mz3LQr0KTgihrrvuKZlqcWwlBC4lkOMvd0KKX4Wz7Ww9+uA7qEpQaqjg==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/rawlist@4.1.10':
|
||||
resolution: {integrity: sha512-Du4uidsgTMkoH5izgpfyauTL/ItVHOLsVdcY+wGeoGaG56BV+/JfmyoQGniyhegrDzXpfn3D+LFHaxMDRygcAw==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -302,6 +400,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/rawlist@5.0.1':
|
||||
resolution: {integrity: sha512-vVfVHKUgH6rZmMlyd0jOuGZo0Fw1jfcOqZF96lMwlgavx7g0x7MICe316bV01EEoI+c68vMdbkTTawuw3O+Fgw==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/search@3.2.1':
|
||||
resolution: {integrity: sha512-cKiuUvETublmTmaOneEermfG2tI9ABpb7fW/LqzZAnSv4ZaJnbEis05lOkiBuYX5hNdnX0Q9ryOQyrNidb55WA==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -311,6 +418,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/search@4.0.1':
|
||||
resolution: {integrity: sha512-XwiaK5xBvr31STX6Ji8iS3HCRysBXfL/jUbTzufdWTS6LTGtvDQA50oVETt1BJgjKyQBp9vt0VU6AmU/AnOaGA==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/select@4.4.1':
|
||||
resolution: {integrity: sha512-E9hbLU4XsNe2SAOSsFrtYtYQDVi1mfbqJrPDvXKnGlnRiApBdWMJz7r3J2Ff38AqULkPUD3XjQMD4492TymD7Q==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -320,6 +436,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/select@5.0.1':
|
||||
resolution: {integrity: sha512-gPByrgYoezGyKMq5KjV7Tuy1JU2ArIy6/sI8sprw0OpXope3VGQwP5FK1KD4eFFqEhKu470Dwe6/AyDPmGRA0Q==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/type@3.0.10':
|
||||
resolution: {integrity: sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -329,6 +454,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@inquirer/type@4.0.1':
|
||||
resolution: {integrity: sha512-odO8YwoQAw/eVu/PSPsDDVPmqO77r/Mq7zcoF5VduVqIu2wSRWUgmYb5K9WH1no0SjLnOe8MDKtDL++z6mfo2g==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
'@isaacs/fs-minipass@4.0.1':
|
||||
resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
@@ -486,67 +620,56 @@ packages:
|
||||
resolution: {integrity: sha512-gTJ/JnnjCMc15uwB10TTATBEhK9meBIY+gXP4s0sHD1zHOaIh4Dmy1X9wup18IiY9tTNk5gJc4yx9ctj/fjrIw==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-arm-musleabihf@4.43.0':
|
||||
resolution: {integrity: sha512-ZJ3gZynL1LDSIvRfz0qXtTNs56n5DI2Mq+WACWZ7yGHFUEirHBRt7fyIk0NsCKhmRhn7WAcjgSkSVVxKlPNFFw==}
|
||||
cpu: [arm]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-arm64-gnu@4.43.0':
|
||||
resolution: {integrity: sha512-8FnkipasmOOSSlfucGYEu58U8cxEdhziKjPD2FIa0ONVMxvl/hmONtX/7y4vGjdUhjcTHlKlDhw3H9t98fPvyA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-arm64-musl@4.43.0':
|
||||
resolution: {integrity: sha512-KPPyAdlcIZ6S9C3S2cndXDkV0Bb1OSMsX0Eelr2Bay4EsF9yi9u9uzc9RniK3mcUGCLhWY9oLr6er80P5DE6XA==}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-loongarch64-gnu@4.43.0':
|
||||
resolution: {integrity: sha512-HPGDIH0/ZzAZjvtlXj6g+KDQ9ZMHfSP553za7o2Odegb/BEfwJcR0Sw0RLNpQ9nC6Gy8s+3mSS9xjZ0n3rhcYg==}
|
||||
cpu: [loong64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-powerpc64le-gnu@4.43.0':
|
||||
resolution: {integrity: sha512-gEmwbOws4U4GLAJDhhtSPWPXUzDfMRedT3hFMyRAvM9Mrnj+dJIFIeL7otsv2WF3D7GrV0GIewW0y28dOYWkmw==}
|
||||
cpu: [ppc64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-gnu@4.43.0':
|
||||
resolution: {integrity: sha512-XXKvo2e+wFtXZF/9xoWohHg+MuRnvO29TI5Hqe9xwN5uN8NKUYy7tXUG3EZAlfchufNCTHNGjEx7uN78KsBo0g==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-riscv64-musl@4.43.0':
|
||||
resolution: {integrity: sha512-ruf3hPWhjw6uDFsOAzmbNIvlXFXlBQ4nk57Sec8E8rUxs/AI4HD6xmiiasOOx/3QxS2f5eQMKTAwk7KHwpzr/Q==}
|
||||
cpu: [riscv64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-linux-s390x-gnu@4.43.0':
|
||||
resolution: {integrity: sha512-QmNIAqDiEMEvFV15rsSnjoSmO0+eJLoKRD9EAa9rrYNwO/XRCtOGM3A5A0X+wmG+XRrw9Fxdsw+LnyYiZWWcVw==}
|
||||
cpu: [s390x]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-x64-gnu@4.43.0':
|
||||
resolution: {integrity: sha512-jAHr/S0iiBtFyzjhOkAics/2SrXE092qyqEg96e90L3t9Op8OTzS6+IX0Fy5wCt2+KqeHAkti+eitV0wvblEoQ==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [glibc]
|
||||
|
||||
'@rollup/rollup-linux-x64-musl@4.43.0':
|
||||
resolution: {integrity: sha512-3yATWgdeXyuHtBhrLt98w+5fKurdqvs8B53LaoKD7P7H7FKOONLsBVMNl9ghPQZQuYcceV5CDyPfyfGpMWD9mQ==}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
libc: [musl]
|
||||
|
||||
'@rollup/rollup-win32-arm64-msvc@4.43.0':
|
||||
resolution: {integrity: sha512-wVzXp2qDSCOpcBCT5WRWLmpJRIzv23valvcTwMHEobkjippNf+C3ys/+wf07poPkeNix0paTNemB2XrHr2TnGw==}
|
||||
@@ -596,6 +719,9 @@ packages:
|
||||
'@types/node@24.10.0':
|
||||
resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==}
|
||||
|
||||
'@types/node@24.10.1':
|
||||
resolution: {integrity: sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==}
|
||||
|
||||
'@types/react@19.1.9':
|
||||
resolution: {integrity: sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==}
|
||||
|
||||
@@ -626,10 +752,18 @@ packages:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
ansi-regex@6.2.2:
|
||||
resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ansi-styles@4.3.0:
|
||||
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
ansi-styles@6.2.3:
|
||||
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
ansis@4.0.0-node10:
|
||||
resolution: {integrity: sha512-BRrU0Bo1X9dFGw6KgGz6hWrqQuOlVEDOzkb0QSLZY9sXHqA7pNj7yHPVJRz7y/rj4EOJ3d/D5uxH+ee9leYgsg==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -854,6 +988,9 @@ packages:
|
||||
ee-first@1.1.1:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
|
||||
emoji-regex@10.6.0:
|
||||
resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==}
|
||||
|
||||
emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
|
||||
@@ -963,8 +1100,8 @@ packages:
|
||||
debug:
|
||||
optional: true
|
||||
|
||||
form-data@4.0.4:
|
||||
resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
|
||||
form-data@4.0.5:
|
||||
resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
fresh@2.0.0:
|
||||
@@ -979,6 +1116,10 @@ packages:
|
||||
function-bind@1.1.2:
|
||||
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
|
||||
|
||||
get-east-asian-width@1.4.0:
|
||||
resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
get-intrinsic@1.3.0:
|
||||
resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -1075,6 +1216,15 @@ packages:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
inquirer@13.0.1:
|
||||
resolution: {integrity: sha512-+Qob/OSCmHIgyFKa4S+bDk36Nudwt+zpUBGZaSttGMnvsrzbIqtNFS9RutEPc2QAzpQxBP0cV3wmY/c5Vy73qg==}
|
||||
engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'}
|
||||
peerDependencies:
|
||||
'@types/node': '>=18'
|
||||
peerDependenciesMeta:
|
||||
'@types/node':
|
||||
optional: true
|
||||
|
||||
ip-address@9.0.5:
|
||||
resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
|
||||
engines: {node: '>= 12'}
|
||||
@@ -1513,10 +1663,18 @@ packages:
|
||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
string-width@7.2.0:
|
||||
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
strip-ansi@6.0.1:
|
||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
strip-ansi@7.1.2:
|
||||
resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
supports-color@10.2.2:
|
||||
resolution: {integrity: sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -1649,6 +1807,10 @@ packages:
|
||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
wrap-ansi@9.0.2:
|
||||
resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
ws@7.5.10:
|
||||
resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
|
||||
engines: {node: '>=8.3.0'}
|
||||
@@ -1718,6 +1880,8 @@ snapshots:
|
||||
|
||||
'@inquirer/ansi@1.0.2': {}
|
||||
|
||||
'@inquirer/ansi@2.0.1': {}
|
||||
|
||||
'@inquirer/checkbox@4.3.1(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 1.0.2
|
||||
@@ -1728,6 +1892,15 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/checkbox@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.1
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/figures': 2.0.1
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/confirm@5.1.20(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1735,6 +1908,13 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/confirm@6.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/core@10.3.1(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 1.0.2
|
||||
@@ -1748,6 +1928,18 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/core@11.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.1
|
||||
'@inquirer/figures': 2.0.1
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
cli-width: 4.1.0
|
||||
mute-stream: 3.0.0
|
||||
signal-exit: 4.1.0
|
||||
wrap-ansi: 9.0.2
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/editor@4.2.22(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1756,6 +1948,14 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/editor@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/external-editor': 2.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/expand@4.0.22(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1764,6 +1964,13 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/expand@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/external-editor@1.0.3(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
chardet: 2.1.1
|
||||
@@ -1771,8 +1978,17 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/external-editor@2.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
chardet: 2.1.1
|
||||
iconv-lite: 0.7.0
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/figures@1.0.15': {}
|
||||
|
||||
'@inquirer/figures@2.0.1': {}
|
||||
|
||||
'@inquirer/input@4.3.0(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1780,6 +1996,13 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/input@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/number@3.0.22(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1787,6 +2010,13 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/number@4.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/password@4.0.22(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 1.0.2
|
||||
@@ -1795,6 +2025,14 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/password@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.1
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/prompts@7.10.0(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/checkbox': 4.3.1(@types/node@24.10.0)
|
||||
@@ -1810,6 +2048,21 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/prompts@8.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/checkbox': 5.0.1(@types/node@24.10.1)
|
||||
'@inquirer/confirm': 6.0.1(@types/node@24.10.1)
|
||||
'@inquirer/editor': 5.0.1(@types/node@24.10.1)
|
||||
'@inquirer/expand': 5.0.1(@types/node@24.10.1)
|
||||
'@inquirer/input': 5.0.1(@types/node@24.10.1)
|
||||
'@inquirer/number': 4.0.1(@types/node@24.10.1)
|
||||
'@inquirer/password': 5.0.1(@types/node@24.10.1)
|
||||
'@inquirer/rawlist': 5.0.1(@types/node@24.10.1)
|
||||
'@inquirer/search': 4.0.1(@types/node@24.10.1)
|
||||
'@inquirer/select': 5.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/rawlist@4.1.10(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1818,6 +2071,13 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/rawlist@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/search@3.2.1(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.3.1(@types/node@24.10.0)
|
||||
@@ -1827,6 +2087,14 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/search@4.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/figures': 2.0.1
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/select@4.4.1(@types/node@24.10.0)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 1.0.2
|
||||
@@ -1837,10 +2105,23 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/select@5.0.1(@types/node@24.10.1)':
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.1
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/figures': 2.0.1
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@inquirer/type@3.0.10(@types/node@24.10.0)':
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
'@inquirer/type@4.0.1(@types/node@24.10.1)':
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@isaacs/fs-minipass@4.0.1':
|
||||
dependencies:
|
||||
minipass: 7.1.2
|
||||
@@ -2121,7 +2402,7 @@ snapshots:
|
||||
'@types/jsonwebtoken@9.0.10':
|
||||
dependencies:
|
||||
'@types/ms': 0.7.34
|
||||
'@types/node': 24.10.0
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@types/lodash-es@4.17.12':
|
||||
dependencies:
|
||||
@@ -2139,6 +2420,10 @@ snapshots:
|
||||
dependencies:
|
||||
undici-types: 7.16.0
|
||||
|
||||
'@types/node@24.10.1':
|
||||
dependencies:
|
||||
undici-types: 7.16.0
|
||||
|
||||
'@types/react@19.1.9':
|
||||
dependencies:
|
||||
csstype: 3.1.3
|
||||
@@ -2147,11 +2432,11 @@ snapshots:
|
||||
|
||||
'@types/send@1.2.1':
|
||||
dependencies:
|
||||
'@types/node': 24.10.0
|
||||
'@types/node': 24.10.1
|
||||
|
||||
'@types/ws@8.18.1':
|
||||
dependencies:
|
||||
'@types/node': 24.10.0
|
||||
'@types/node': 24.10.1
|
||||
|
||||
agent-base@7.1.3: {}
|
||||
|
||||
@@ -2165,10 +2450,14 @@ snapshots:
|
||||
|
||||
ansi-regex@5.0.1: {}
|
||||
|
||||
ansi-regex@6.2.2: {}
|
||||
|
||||
ansi-styles@4.3.0:
|
||||
dependencies:
|
||||
color-convert: 2.0.1
|
||||
|
||||
ansi-styles@6.2.3: {}
|
||||
|
||||
ansis@4.0.0-node10: {}
|
||||
|
||||
anymatch@3.1.3:
|
||||
@@ -2206,7 +2495,7 @@ snapshots:
|
||||
|
||||
bun-types@1.3.2(@types/react@19.1.9):
|
||||
dependencies:
|
||||
'@types/node': 24.10.0
|
||||
'@types/node': 24.10.1
|
||||
'@types/react': 19.1.9
|
||||
|
||||
call-bind-apply-helpers@1.0.2:
|
||||
@@ -2354,6 +2643,8 @@ snapshots:
|
||||
|
||||
ee-first@1.1.1: {}
|
||||
|
||||
emoji-regex@10.6.0: {}
|
||||
|
||||
emoji-regex@8.0.0: {}
|
||||
|
||||
encodeurl@2.0.0: {}
|
||||
@@ -2441,7 +2732,7 @@ snapshots:
|
||||
optionalDependencies:
|
||||
debug: 4.3.7(supports-color@10.2.2)
|
||||
|
||||
form-data@4.0.4:
|
||||
form-data@4.0.5:
|
||||
dependencies:
|
||||
asynckit: 0.4.0
|
||||
combined-stream: 1.0.8
|
||||
@@ -2456,6 +2747,8 @@ snapshots:
|
||||
|
||||
function-bind@1.1.2: {}
|
||||
|
||||
get-east-asian-width@1.4.0: {}
|
||||
|
||||
get-intrinsic@1.3.0:
|
||||
dependencies:
|
||||
call-bind-apply-helpers: 1.0.2
|
||||
@@ -2570,6 +2863,18 @@ snapshots:
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.0
|
||||
|
||||
inquirer@13.0.1(@types/node@24.10.1):
|
||||
dependencies:
|
||||
'@inquirer/ansi': 2.0.1
|
||||
'@inquirer/core': 11.0.1(@types/node@24.10.1)
|
||||
'@inquirer/prompts': 8.0.1(@types/node@24.10.1)
|
||||
'@inquirer/type': 4.0.1(@types/node@24.10.1)
|
||||
mute-stream: 3.0.0
|
||||
run-async: 4.0.6
|
||||
rxjs: 7.8.2
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.1
|
||||
|
||||
ip-address@9.0.5:
|
||||
dependencies:
|
||||
jsbn: 1.1.0
|
||||
@@ -3053,10 +3358,20 @@ snapshots:
|
||||
is-fullwidth-code-point: 3.0.0
|
||||
strip-ansi: 6.0.1
|
||||
|
||||
string-width@7.2.0:
|
||||
dependencies:
|
||||
emoji-regex: 10.6.0
|
||||
get-east-asian-width: 1.4.0
|
||||
strip-ansi: 7.1.2
|
||||
|
||||
strip-ansi@6.0.1:
|
||||
dependencies:
|
||||
ansi-regex: 5.0.1
|
||||
|
||||
strip-ansi@7.1.2:
|
||||
dependencies:
|
||||
ansi-regex: 6.2.2
|
||||
|
||||
supports-color@10.2.2: {}
|
||||
|
||||
supports-color@7.2.0:
|
||||
@@ -3131,6 +3446,12 @@ snapshots:
|
||||
string-width: 4.2.3
|
||||
strip-ansi: 6.0.1
|
||||
|
||||
wrap-ansi@9.0.2:
|
||||
dependencies:
|
||||
ansi-styles: 6.2.3
|
||||
string-width: 7.2.0
|
||||
strip-ansi: 7.1.2
|
||||
|
||||
ws@7.5.10: {}
|
||||
|
||||
ws@8.18.0:
|
||||
|
||||
@@ -6,7 +6,6 @@ import FormData from 'form-data';
|
||||
import { getBaseURL, query, storage } from '@/module/query.ts';
|
||||
import { getConfig } from '@/module/index.ts';
|
||||
import inquirer from 'inquirer';
|
||||
import { packLib, unpackLib } from './publish.ts';
|
||||
import chalk from 'chalk';
|
||||
import { installDeps } from '@/uitls/npm.ts';
|
||||
import { upload } from '@/module/download/upload.ts';
|
||||
@@ -293,42 +292,3 @@ const deployLoad = new Command('deploy-load')
|
||||
});
|
||||
app.addCommand(deployLoad);
|
||||
|
||||
const local = new Command('local')
|
||||
.description('本地部署')
|
||||
.argument('<key>', 'key')
|
||||
.option('-i, --ignore', '使用 .npmignore 文件模式去忽略文件进行打包, 不需要package.json中的files字段')
|
||||
.option('-u, --update', 'query查询 127.0.0.1:11015/api/router?path=local-apps&key=detect')
|
||||
.action(async (key, opts) => {
|
||||
console.log('local deploy');
|
||||
const { outputFilePath } = await packLib(opts?.ignore);
|
||||
const mainAppPath = getConfig().mainAppPath;
|
||||
const appsPath = getConfig().appsPath || path.join(mainAppPath, 'apps');
|
||||
if (!key) {
|
||||
console.error(chalk.red('key is required'));
|
||||
return;
|
||||
}
|
||||
const appPath = path.join(appsPath, key);
|
||||
if (!fs.existsSync(appPath)) {
|
||||
fs.mkdirSync(appPath, { recursive: true });
|
||||
}
|
||||
// 复制应用到apps目录下
|
||||
if (outputFilePath) {
|
||||
await unpackLib(outputFilePath, appPath);
|
||||
fs.unlinkSync(outputFilePath);
|
||||
installDeps({ appPath });
|
||||
if (opts?.update) {
|
||||
const res = await query.post(
|
||||
{ path: 'local-apps', key: 'detect' },
|
||||
{
|
||||
url: `http://127.0.0.1:11015/api/router?path=local-apps&key=detect`,
|
||||
},
|
||||
);
|
||||
if (res.code === 200) {
|
||||
console.log('local deploy success');
|
||||
} else {
|
||||
console.error('local deploy failed', res.message);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
app.addCommand(local);
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
import fs, { createReadStream } from 'fs';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import * as tar from 'tar';
|
||||
import glob from 'fast-glob';
|
||||
import { program, Command } from '@/program.ts';
|
||||
import { getConfig, query } from '@/module/index.ts';
|
||||
import { fileIsExist } from '@/uitls/file.ts';
|
||||
import ignore from 'ignore';
|
||||
import { chalk } from '@/module/chalk.ts';
|
||||
import * as backServices from '@/query/services/index.ts';
|
||||
import inquirer from 'inquirer';
|
||||
@@ -33,43 +31,11 @@ async function collectFileInfo(filePath: string, baseDir = '.'): Promise<any[]>
|
||||
|
||||
return [];
|
||||
}
|
||||
// 解析 .npmignore 文件
|
||||
async function loadNpmIgnore(cwd: string): Promise<ignore.Ignore> {
|
||||
const npmIgnorePath = path.join(cwd, '.npmignore');
|
||||
const ig = ignore();
|
||||
|
||||
try {
|
||||
const content = fs.readFileSync(npmIgnorePath, 'utf-8');
|
||||
ig.add(content);
|
||||
} catch (err) {
|
||||
console.warn('.npmignore not found, using default ignore rules');
|
||||
// 如果没有 .npmignore 文件,使用默认规则
|
||||
ig.add(['node_modules', '.git']);
|
||||
}
|
||||
|
||||
return ig;
|
||||
}
|
||||
// 获取文件列表,兼容 .npmignore
|
||||
async function getFiles(cwd: string, patterns: string[]): Promise<string[]> {
|
||||
const ig = await loadNpmIgnore(cwd);
|
||||
|
||||
// 使用 fast-glob 匹配文件
|
||||
const allFiles = await glob(patterns, {
|
||||
cwd,
|
||||
dot: true, // 包括隐藏文件
|
||||
onlyFiles: false, // 包括目录
|
||||
followSymbolicLinks: true,
|
||||
});
|
||||
|
||||
// 过滤忽略的文件
|
||||
const filteredFiles = allFiles.filter((file) => !ig.ignores(file));
|
||||
return filteredFiles;
|
||||
}
|
||||
/**
|
||||
* 复制文件到 pack-dist
|
||||
* @param files 文件列表
|
||||
* @param files 文件列表, 或者文件夹列表
|
||||
* @param cwd 当前工作目录
|
||||
* @param packDist 打包目录
|
||||
* @param packDist 打包目录 pack-dist
|
||||
*/
|
||||
export const copyFilesToPackDist = async (files: string[], cwd: string, packDist = 'pack-dist') => {
|
||||
const packDistPath = path.join(cwd, packDist);
|
||||
@@ -80,10 +46,16 @@ export const copyFilesToPackDist = async (files: string[], cwd: string, packDist
|
||||
}
|
||||
files.forEach((file) => {
|
||||
const stat = fs.statSync(path.join(cwd, file));
|
||||
let outputFile = file;
|
||||
if (file.startsWith('dist/')) {
|
||||
outputFile = file.replace(/^dist\//, '');
|
||||
} else if (file === 'dist') {
|
||||
outputFile = '';
|
||||
}
|
||||
if (stat.isDirectory()) {
|
||||
fs.cpSync(path.join(cwd, file), path.join(packDistPath, file), { recursive: true });
|
||||
fs.cpSync(path.join(cwd, file), path.join(packDistPath, outputFile), { recursive: true });
|
||||
} else {
|
||||
fs.copyFileSync(path.join(cwd, file), path.join(packDistPath, file), fs.constants.COPYFILE_EXCL);
|
||||
fs.copyFileSync(path.join(cwd, file), path.join(packDistPath, outputFile));
|
||||
}
|
||||
});
|
||||
const packageInfo = await getPackageInfo();
|
||||
@@ -117,10 +89,11 @@ ${filesString}
|
||||
</body>
|
||||
|
||||
</html>`;
|
||||
fs.writeFileSync(indexHtmlPath, indexHtmlContent);
|
||||
if (!fileIsExist(indexHtmlPath)) {
|
||||
fs.writeFileSync(indexHtmlPath, indexHtmlContent);
|
||||
}
|
||||
};
|
||||
export const pack = async (opts: { isTar: boolean; packDist?: string }) => {
|
||||
const isTar = opts.isTar;
|
||||
export const pack = async (opts: { packDist?: string }) => {
|
||||
const cwd = process.cwd();
|
||||
const collection: Record<string, any> = {};
|
||||
const packageJsonPath = path.join(cwd, 'package.json');
|
||||
@@ -137,22 +110,17 @@ export const pack = async (opts: { isTar: boolean; packDist?: string }) => {
|
||||
console.error('Invalid package.json:', error);
|
||||
return;
|
||||
}
|
||||
|
||||
let outputFileName = `${packageJson.name}-${packageJson.version}.tgz`
|
||||
.replace('@', '') // 替换特殊字符 @
|
||||
.replace(/[\/\\:*?"<>|]/g, '-'); // 替换特殊字符
|
||||
|
||||
// 当 opts.isTar 为 true 时,输出文件为 tgz 文件
|
||||
const outputFilePath = path.join(cwd, outputFileName);
|
||||
let files = packageJson.files;
|
||||
|
||||
// 从 package.json 的 files 字段收集文件
|
||||
const filesToInclude = packageJson.files
|
||||
? await glob(packageJson.files, {
|
||||
cwd: cwd,
|
||||
dot: true, // 包括隐藏文件
|
||||
onlyFiles: false, // 包括目录
|
||||
followSymbolicLinks: true, // 处理符号链接
|
||||
})
|
||||
const filesToInclude = files
|
||||
? await glob(files, {
|
||||
cwd: cwd,
|
||||
dot: true, // 包括隐藏文件
|
||||
onlyFiles: false, // 包括目录
|
||||
followSymbolicLinks: true, // 处理符号链接
|
||||
ignore: ['node_modules/**', ".git/**", opts.packDist ? opts.packDist + '/**' : ''],
|
||||
})
|
||||
: [];
|
||||
// 确保 README.md 和 dist 存在(忽略大小写检测 README.md)
|
||||
const readmeFile = await findFileInsensitive('README.md');
|
||||
@@ -166,38 +134,23 @@ export const pack = async (opts: { isTar: boolean; packDist?: string }) => {
|
||||
const allFiles = (await Promise.all(filesToInclude.map((file) => collectFileInfo(file)))).flat();
|
||||
|
||||
// 输出文件详细信息
|
||||
console.log('Tarball Contents:');
|
||||
console.log('文件列表:');
|
||||
allFiles.forEach((file) => {
|
||||
console.log(`${file.size}B ${file.path}`);
|
||||
});
|
||||
const totalSize = allFiles.reduce((sum, file) => sum + file.size, 0);
|
||||
const packageSize = (totalSize / 1024).toFixed(2) + ' kB';
|
||||
|
||||
collection.files = allFiles;
|
||||
collection.packageJson = packageJson;
|
||||
collection.totalSize = totalSize;
|
||||
collection.tags = packageJson.app?.tags || packageJson.keywords || [];
|
||||
|
||||
console.log('\nTarball Details');
|
||||
console.log('\n基本信息');
|
||||
console.log(`name: ${packageJson.name}`);
|
||||
console.log(`version: ${packageJson.version}`);
|
||||
isTar && console.log(`filename: ${outputFileName}`);
|
||||
isTar && console.log(`package size: ${packageSize}`);
|
||||
console.log(`total files: ${allFiles.length}`);
|
||||
opts?.isTar && console.log(`Created package: ${outputFileName}`);
|
||||
try {
|
||||
if (opts.isTar) {
|
||||
await tar.c(
|
||||
{
|
||||
gzip: true,
|
||||
file: outputFilePath,
|
||||
cwd: cwd,
|
||||
},
|
||||
filesToInclude,
|
||||
);
|
||||
} else {
|
||||
copyFilesToPackDist(filesToInclude, cwd, opts.packDist);
|
||||
}
|
||||
copyFilesToPackDist(filesToInclude, cwd, opts.packDist);
|
||||
} catch (error) {
|
||||
console.error('Error creating tarball:', error);
|
||||
}
|
||||
@@ -206,7 +159,7 @@ export const pack = async (opts: { isTar: boolean; packDist?: string }) => {
|
||||
const readmeContent = fs.readFileSync(readme, 'utf-8');
|
||||
collection.readme = readmeContent;
|
||||
}
|
||||
return { collection, outputFilePath, dir: cwd };
|
||||
return { collection, dir: cwd };
|
||||
};
|
||||
export const getPackageInfo = async () => {
|
||||
const cwd = process.cwd();
|
||||
@@ -220,104 +173,16 @@ export const getPackageInfo = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
type PackByIgnoreOpts = {
|
||||
isTar: boolean;
|
||||
packDist?: string;
|
||||
};
|
||||
export const packByIgnore = async (opts: PackByIgnoreOpts) => {
|
||||
let collection: Record<string, any> = {};
|
||||
const cwd = process.cwd();
|
||||
const patterns = ['**/*']; // 匹配所有文件
|
||||
const packageJsonPath = path.join(cwd, 'package.json');
|
||||
let packageJson;
|
||||
try {
|
||||
const packageContent = fs.readFileSync(packageJsonPath, 'utf-8');
|
||||
packageJson = JSON.parse(packageContent);
|
||||
} catch (error) {
|
||||
console.error('Invalid package.json:', error);
|
||||
return;
|
||||
}
|
||||
|
||||
let outputFileName = `${packageJson.name}-${packageJson.version}.tgz`
|
||||
.replace('@', '') // 替换特殊字符 @
|
||||
.replace(/[\/\\:*?"<>|]/g, '-'); // 替换特殊字符
|
||||
|
||||
const outputFilePath = path.join(cwd, outputFileName);
|
||||
|
||||
// 获取符合条件的文件列表
|
||||
const files = await getFiles(cwd, patterns);
|
||||
|
||||
console.log('Files to include in the package:');
|
||||
// files 获取 size 和 path
|
||||
const filesInfo = await Promise.all(files.map((file) => collectFileInfo(file)));
|
||||
const allFiles = filesInfo.flat();
|
||||
allFiles.forEach((file) => {
|
||||
console.log(`${file.size}B ${file.path}`);
|
||||
});
|
||||
|
||||
const totalSize = allFiles.reduce((sum, file) => sum + file.size, 0);
|
||||
const packageSize = (totalSize / 1024).toFixed(2) + ' kB';
|
||||
|
||||
collection.files = allFiles;
|
||||
collection.packageJson = packageJson;
|
||||
collection.totalSize = totalSize;
|
||||
collection.tags = packageJson.app?.tags || packageJson.keywords || [];
|
||||
|
||||
console.log('\nTarball Details');
|
||||
console.log(`package size: ${packageSize}`);
|
||||
console.log(`total files: ${allFiles.length}`);
|
||||
const filesToInclude = files.map((file) => path.relative(cwd, file));
|
||||
try {
|
||||
if (opts.isTar) {
|
||||
await tar.c(
|
||||
{
|
||||
gzip: true,
|
||||
file: outputFilePath,
|
||||
cwd: cwd,
|
||||
},
|
||||
filesToInclude,
|
||||
);
|
||||
} else {
|
||||
copyFilesToPackDist(filesToInclude, cwd, opts.packDist);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error creating tarball:', error);
|
||||
}
|
||||
const readme = await findFileInsensitive('README.md');
|
||||
if (readme) {
|
||||
const readmeContent = fs.readFileSync(readme, 'utf-8');
|
||||
collection.readme = readmeContent;
|
||||
}
|
||||
return { collection, outputFilePath, dir: cwd };
|
||||
};
|
||||
/**
|
||||
* 打包应用
|
||||
* @param ignore 是否忽略 .npmignore 文件
|
||||
* @returns 打包结果
|
||||
*/
|
||||
export const packLib = async ({
|
||||
ignore = false,
|
||||
tar = false,
|
||||
packDist = 'pack-dist',
|
||||
}: {
|
||||
ignore?: boolean;
|
||||
tar?: boolean;
|
||||
packDist?: string;
|
||||
}): Promise<{ collection: Record<string, any>; outputFilePath: string; dir: string }> => {
|
||||
if (ignore) {
|
||||
return await packByIgnore({ isTar: tar, packDist });
|
||||
}
|
||||
return await pack({ isTar: tar, packDist });
|
||||
};
|
||||
export const unpackLib = async (filePath: string, cwd: string) => {
|
||||
try {
|
||||
await tar.x({
|
||||
file: filePath,
|
||||
cwd: cwd,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error extracting tarball:', error);
|
||||
}
|
||||
}): Promise<{ collection: Record<string, any>; dir: string }> => {
|
||||
return await pack({ packDist });
|
||||
};
|
||||
const publishCommand = new Command('publish')
|
||||
.description('发布应用')
|
||||
@@ -384,12 +249,10 @@ const deployLoadFn = async (id: string, fileKey: string, force = false, install
|
||||
};
|
||||
|
||||
const packCommand = new Command('pack')
|
||||
.description('打包应用, 默认使用 package.json 中的 files 字段')
|
||||
.option('-i, --ignore', '使用 .npmignore 文件模式去忽略文件进行打包, 不需要package.json中的files字段')
|
||||
.description('打包应用, 使用 package.json 中的 files 字段,如果是 dist 的路径,直接复制到 pack-dist 的根目录')
|
||||
.option('-p, --publish', '打包并发布')
|
||||
.option('-u, --update', '发布后显示更新命令, show command for deploy to server')
|
||||
.option('-t, --tar', '打包为 tgz 文件')
|
||||
.option('-d, --packDist <dist>', '打包目录')
|
||||
.option('-d, --packDist <dist>', '打包到的目录')
|
||||
.option('-y, --yes', '确定,直接打包', true)
|
||||
.option('-c, --clean', '清理 package.json中的 devDependencies')
|
||||
.action(async (opts) => {
|
||||
@@ -435,8 +298,6 @@ const packCommand = new Command('pack')
|
||||
appKey = answers.appKey || appKey;
|
||||
}
|
||||
let value = await packLib({
|
||||
ignore: opts.ignore,
|
||||
tar: opts.tar,
|
||||
packDist,
|
||||
});
|
||||
if (opts?.clean) {
|
||||
@@ -448,7 +309,7 @@ const packCommand = new Command('pack')
|
||||
// 运行 deploy 命令
|
||||
// const runDeployCommand = 'envision pack-deploy ' + value.outputFilePath + ' -k ' + appKey;
|
||||
const [_app, _command] = process.argv;
|
||||
let deployDist = opts.isTar ? value.outputFilePath : packDist;
|
||||
let deployDist = packDist;
|
||||
const deployCommand = [_app, _command, 'deploy', deployDist, '-k', appKey, '-v', version, '-u', '-d'];
|
||||
if (opts.org) {
|
||||
deployCommand.push('-o', opts.org);
|
||||
@@ -504,10 +365,14 @@ enum AppType {
|
||||
* pm2 启动
|
||||
*/
|
||||
Pm2SystemApp = 'pm2-system-app',
|
||||
/**
|
||||
* 脚本应用
|
||||
*/
|
||||
ScriptApp = 'script-app',
|
||||
}
|
||||
type ServiceItem = {
|
||||
key: string;
|
||||
status: 'inactive' | 'running' | 'stop' | 'error';
|
||||
status: 'inactive' | 'running' | 'stop' | 'error' | 'unknown';
|
||||
type: AppType;
|
||||
description: string;
|
||||
version: string;
|
||||
|
||||
Reference in New Issue
Block a user