This commit is contained in:
2026-01-17 23:11:08 +08:00
parent d6da542989
commit 7b0b00feff
9 changed files with 95 additions and 184 deletions

View File

@@ -4,7 +4,7 @@ import { execSync } from 'node:child_process';
const entry = 'src/index.ts'; const entry = 'src/index.ts';
const naming = 'app'; const naming = 'app';
const external = ['sequelize', 'pg', 'sqlite3', 'ioredis', 'pm2', 'bun']; const external = ['sequelize', 'pg', 'sqlite3', 'ioredis', 'pm2', 'bun', '@kevisual/router'];
/** /**
* @type {import('bun').BuildConfig} * @type {import('bun').BuildConfig}
*/ */

View File

@@ -58,7 +58,7 @@
"drizzle-orm": "^0.45.1", "drizzle-orm": "^0.45.1",
"drizzle-zod": "^0.8.3", "drizzle-zod": "^0.8.3",
"eventemitter3": "^5.0.1", "eventemitter3": "^5.0.1",
"ioredis": "^5.9.1", "ioredis": "^5.9.2",
"minio": "^8.0.6", "minio": "^8.0.6",
"pg": "^8.17.1", "pg": "^8.17.1",
"pm2": "^6.0.14", "pm2": "^6.0.14",
@@ -76,7 +76,7 @@
"@kevisual/logger": "^0.0.4", "@kevisual/logger": "^0.0.4",
"@kevisual/oss": "0.0.16", "@kevisual/oss": "0.0.16",
"@kevisual/permission": "^0.0.3", "@kevisual/permission": "^0.0.3",
"@kevisual/router": "0.0.53", "@kevisual/router": "0.0.55",
"@kevisual/types": "^0.0.11", "@kevisual/types": "^0.0.11",
"@kevisual/use-config": "^1.0.28", "@kevisual/use-config": "^1.0.28",
"@types/archiver": "^7.0.0", "@types/archiver": "^7.0.0",
@@ -84,16 +84,16 @@
"@types/crypto-js": "^4.2.2", "@types/crypto-js": "^4.2.2",
"@types/jsonwebtoken": "^9.0.10", "@types/jsonwebtoken": "^9.0.10",
"@types/lodash-es": "^4.17.12", "@types/lodash-es": "^4.17.12",
"@types/node": "^25.0.8", "@types/node": "^25.0.9",
"@types/semver": "^7.7.1", "@types/semver": "^7.7.1",
"@types/xml2js": "^0.4.14", "@types/xml2js": "^0.4.14",
"archiver": "^7.0.1", "archiver": "^7.0.1",
"better-sqlite3": "^12.6.0", "better-sqlite3": "^12.6.2",
"crypto-js": "^4.2.0", "crypto-js": "^4.2.0",
"dayjs": "^1.11.19", "dayjs": "^1.11.19",
"dotenv": "^17.2.3", "dotenv": "^17.2.3",
"es-toolkit": "^1.43.0", "es-toolkit": "^1.44.0",
"ioredis": "^5.9.1", "ioredis": "^5.9.2",
"jsonwebtoken": "^9.0.3", "jsonwebtoken": "^9.0.3",
"lodash-es": "^4.17.22", "lodash-es": "^4.17.22",
"minio": "^8.0.6", "minio": "^8.0.6",

209
pnpm-lock.yaml generated
View File

@@ -30,9 +30,6 @@ importers:
bullmq: bullmq:
specifier: ^5.66.5 specifier: ^5.66.5
version: 5.66.5 version: 5.66.5
bun:
specifier: ^1.3.6
version: 1.3.6
busboy: busboy:
specifier: ^1.6.0 specifier: ^1.6.0
version: 1.6.0 version: 1.6.0
@@ -44,16 +41,16 @@ importers:
version: 0.31.8 version: 0.31.8
drizzle-orm: drizzle-orm:
specifier: ^0.45.1 specifier: ^0.45.1
version: 0.45.1(better-sqlite3@12.6.0)(bun-types@1.3.6)(pg@8.17.1) version: 0.45.1(better-sqlite3@12.6.2)(bun-types@1.3.6)(pg@8.17.1)
drizzle-zod: drizzle-zod:
specifier: ^0.8.3 specifier: ^0.8.3
version: 0.8.3(drizzle-orm@0.45.1(better-sqlite3@12.6.0)(bun-types@1.3.6)(pg@8.17.1))(zod@4.3.5) version: 0.8.3(drizzle-orm@0.45.1(better-sqlite3@12.6.2)(bun-types@1.3.6)(pg@8.17.1))(zod@4.3.5)
eventemitter3: eventemitter3:
specifier: ^5.0.1 specifier: ^5.0.1
version: 5.0.1 version: 5.0.1
ioredis: ioredis:
specifier: ^5.9.1 specifier: ^5.9.2
version: 5.9.1 version: 5.9.2
minio: minio:
specifier: ^8.0.6 specifier: ^8.0.6
version: 8.0.6 version: 8.0.6
@@ -101,8 +98,8 @@ importers:
specifier: ^0.0.3 specifier: ^0.0.3
version: 0.0.3 version: 0.0.3
'@kevisual/router': '@kevisual/router':
specifier: 0.0.53 specifier: 0.0.55
version: 0.0.53 version: 0.0.55
'@kevisual/types': '@kevisual/types':
specifier: ^0.0.11 specifier: ^0.0.11
version: 0.0.11 version: 0.0.11
@@ -125,8 +122,8 @@ importers:
specifier: ^4.17.12 specifier: ^4.17.12
version: 4.17.12 version: 4.17.12
'@types/node': '@types/node':
specifier: ^25.0.8 specifier: ^25.0.9
version: 25.0.8 version: 25.0.9
'@types/semver': '@types/semver':
specifier: ^7.7.1 specifier: ^7.7.1
version: 7.7.1 version: 7.7.1
@@ -137,8 +134,8 @@ importers:
specifier: ^7.0.1 specifier: ^7.0.1
version: 7.0.1 version: 7.0.1
better-sqlite3: better-sqlite3:
specifier: ^12.6.0 specifier: ^12.6.2
version: 12.6.0 version: 12.6.2
crypto-js: crypto-js:
specifier: ^4.2.0 specifier: ^4.2.0
version: 4.2.0 version: 4.2.0
@@ -149,8 +146,8 @@ importers:
specifier: ^17.2.3 specifier: ^17.2.3
version: 17.2.3 version: 17.2.3
es-toolkit: es-toolkit:
specifier: ^1.43.0 specifier: ^1.44.0
version: 1.43.0 version: 1.44.0
jsonwebtoken: jsonwebtoken:
specifier: ^9.0.3 specifier: ^9.0.3
version: 9.0.3 version: 9.0.3
@@ -560,8 +557,8 @@ packages:
'@kevisual/router@0.0.50': '@kevisual/router@0.0.50':
resolution: {integrity: sha512-g9Rpf4QoowJdEdSnHD/f998fYDQ2ILYEnEkyAKw9Cj2RLVIWxMdMaHn4BRTUXXEJ35nYsPaj2LWVQap3OH2/hQ==} resolution: {integrity: sha512-g9Rpf4QoowJdEdSnHD/f998fYDQ2ILYEnEkyAKw9Cj2RLVIWxMdMaHn4BRTUXXEJ35nYsPaj2LWVQap3OH2/hQ==}
'@kevisual/router@0.0.53': '@kevisual/router@0.0.55':
resolution: {integrity: sha512-Bw9xYVWyxRhd230nF1ac7cyvzWDYKI/3V+Fr1Ew1Bfr0Ey8KuWb1MgPPopHkRHCCcUcysLtWXfu/JRiTAoBmGA==} resolution: {integrity: sha512-DVhXbbUCfSWWXsp1id1HBrkGiMZ6nFUBD1/C5E7IpLE5B32w7sv2xjKUt98OriFl0uyuneMEIZuZsAQaKplQ5g==}
'@kevisual/types@0.0.11': '@kevisual/types@0.0.11':
resolution: {integrity: sha512-idNLDTEKVdNXZHFQq8PTN62nflh94kvGtx+v8YDcMxt0Zo+HWVZTFElm+dMQxAs/vn4wo8F2r3VwzWNX/vcqwQ==} resolution: {integrity: sha512-idNLDTEKVdNXZHFQq8PTN62nflh94kvGtx+v8YDcMxt0Zo+HWVZTFElm+dMQxAs/vn4wo8F2r3VwzWNX/vcqwQ==}
@@ -613,61 +610,6 @@ packages:
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
engines: {node: ^14.21.3 || >=16} engines: {node: ^14.21.3 || >=16}
'@oven/bun-darwin-aarch64@1.3.6':
resolution: {integrity: sha512-27rypIapNkYboOSylkf1tD9UW9Ado2I+P1NBL46Qz29KmOjTL6WuJ7mHDC5O66CYxlOkF5r93NPDAC3lFHYBXw==}
cpu: [arm64]
os: [darwin]
'@oven/bun-darwin-x64-baseline@1.3.6':
resolution: {integrity: sha512-nqtr+pTsHqusYpG2OZc6s+AmpWDB/FmBvstrK0y5zkti4OqnCuu7Ev2xNjS7uyb47NrAFF40pWqkpaio5XEd7w==}
cpu: [x64]
os: [darwin]
'@oven/bun-darwin-x64@1.3.6':
resolution: {integrity: sha512-I82xGzPkBxzBKgbl8DsA0RfMQCWTWjNmLjIEkW1ECiv3qK02kHGQ5FGUr/29L/SuvnGsULW4tBTRNZiMzL37nA==}
cpu: [x64]
os: [darwin]
'@oven/bun-linux-aarch64-musl@1.3.6':
resolution: {integrity: sha512-FR+iJt17rfFgYgpxL3M67AUwujOgjw52ZJzB9vElI5jQXNjTyOKf8eH4meSk4vjlYF3h/AjKYd6pmN0OIUlVKQ==}
cpu: [arm64]
os: [linux]
'@oven/bun-linux-aarch64@1.3.6':
resolution: {integrity: sha512-YaQEAYjBanoOOtpqk/c5GGcfZIyxIIkQ2m1TbHjedRmJNwxzWBhGinSARFkrRIc3F8pRIGAopXKvJ/2rjN1LzQ==}
cpu: [arm64]
os: [linux]
'@oven/bun-linux-x64-baseline@1.3.6':
resolution: {integrity: sha512-jRmnX18ak8WzqLrex3siw0PoVKyIeI5AiCv4wJLgSs7VKfOqrPycfHIWfIX2jdn7ngqbHFPzI09VBKANZ4Pckg==}
cpu: [x64]
os: [linux]
'@oven/bun-linux-x64-musl-baseline@1.3.6':
resolution: {integrity: sha512-7FjVnxnRTp/AgWqSQRT/Vt9TYmvnZ+4M+d9QOKh/Lf++wIFXFGSeAgD6bV1X/yr2UPVmZDk+xdhr2XkU7l2v3w==}
cpu: [x64]
os: [linux]
'@oven/bun-linux-x64-musl@1.3.6':
resolution: {integrity: sha512-YeXcJ9K6vJAt1zSkeA21J6pTe7PgDMLTHKGI3nQBiMYnYf7Ob3K+b/ChSCznrJG7No5PCPiQPg4zTgA+BOTmSA==}
cpu: [x64]
os: [linux]
'@oven/bun-linux-x64@1.3.6':
resolution: {integrity: sha512-egfngj0dfJ868cf30E7B+ye9KUWSebYxOG4l9YP5eWeMXCtenpenx0zdKtAn9qxJgEJym5AN6trtlk+J6x8Lig==}
cpu: [x64]
os: [linux]
'@oven/bun-windows-x64-baseline@1.3.6':
resolution: {integrity: sha512-PFUa7JL4lGoyyppeS4zqfuoXXih+gSE0XxhDMrCPVEUev0yhGNd/tbWBvcdpYnUth80owENoGjc8s5Knopv9wA==}
cpu: [x64]
os: [win32]
'@oven/bun-windows-x64@1.3.6':
resolution: {integrity: sha512-Sr1KwUcbB0SEpnSPO22tNJppku2khjFluEst+mTGhxHzAGQTQncNeJxDnt3F15n+p9Q+mlcorxehd68n1siikQ==}
cpu: [x64]
os: [win32]
'@paralleldrive/cuid2@2.2.2': '@paralleldrive/cuid2@2.2.2':
resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==} resolution: {integrity: sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==}
@@ -773,8 +715,8 @@ packages:
'@types/node@25.0.3': '@types/node@25.0.3':
resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==} resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
'@types/node@25.0.8': '@types/node@25.0.9':
resolution: {integrity: sha512-powIePYMmC3ibL0UJ2i2s0WIbq6cg6UyVFQxSCpaPxxzAaziRfimGivjdF943sSGV6RADVbk0Nvlm5P/FB44Zg==} resolution: {integrity: sha512-/rpCXHlCWeqClNBwUhDcusJxXYDjZTyE8v5oTO7WbL8eij2nKhUeU89/6xgjU7N4/Vh3He0BtyhJdQbDyhiXAw==}
'@types/readdir-glob@1.1.5': '@types/readdir-glob@1.1.5':
resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==}
@@ -895,8 +837,8 @@ packages:
resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==}
engines: {node: '>=10.0.0'} engines: {node: '>=10.0.0'}
better-sqlite3@12.6.0: better-sqlite3@12.6.2:
resolution: {integrity: sha512-FXI191x+D6UPWSze5IzZjhz+i9MK9nsuHsmTX9bXVl52k06AfZ2xql0lrgIUuzsMsJ7Vgl5kIptvDgBLIV3ZSQ==} resolution: {integrity: sha512-8VYKM3MjCa9WcaSAI3hzwhmyHVlH8tiGFwf0RlTsZPWJ1I5MkzjiudCo4KC4DxOaL/53A5B1sI/IbldNFDbsKA==}
engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x} engines: {node: 20.x || 22.x || 23.x || 24.x || 25.x}
binary-extensions@2.3.0: binary-extensions@2.3.0:
@@ -950,12 +892,6 @@ packages:
bun-types@1.3.6: bun-types@1.3.6:
resolution: {integrity: sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ==} resolution: {integrity: sha512-OlFwHcnNV99r//9v5IIOgQ9Uk37gZqrNMCcqEaExdkVq3Avwqok1bJFmvGMCkCE0FqzdY8VMOZpfpR3lwI+CsQ==}
bun@1.3.6:
resolution: {integrity: sha512-Tn98GlZVN2WM7+lg/uGn5DzUao37Yc0PUz7yzYHdeF5hd+SmHQGbCUIKE4Sspdgtxn49LunK3mDNBC2Qn6GJjw==}
cpu: [arm64, x64]
os: [darwin, linux, win32]
hasBin: true
busboy@1.6.0: busboy@1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'} engines: {node: '>=10.16.0'}
@@ -1286,8 +1222,8 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
es-toolkit@1.43.0: es-toolkit@1.44.0:
resolution: {integrity: sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==} resolution: {integrity: sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==}
esbuild-register@3.6.0: esbuild-register@3.6.0:
resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==}
@@ -1522,6 +1458,10 @@ packages:
resolution: {integrity: sha512-BXNqFQ66oOsR82g9ajFFsR8ZKrjVvYCLyeML9IvSMAsP56XH2VXBdZjmI11p65nXXJxTEt1hie3J2QeFJVgrtQ==} resolution: {integrity: sha512-BXNqFQ66oOsR82g9ajFFsR8ZKrjVvYCLyeML9IvSMAsP56XH2VXBdZjmI11p65nXXJxTEt1hie3J2QeFJVgrtQ==}
engines: {node: '>=12.22.0'} engines: {node: '>=12.22.0'}
ioredis@5.9.2:
resolution: {integrity: sha512-tAAg/72/VxOUW7RQSX1pIxJVucYKcjFjfvj60L57jrZpYCHC3XN0WCQ3sNYL4Gmvv+7GPvTAjc+KSdeNuE8oWQ==}
engines: {node: '>=12.22.0'}
ip-address@9.0.5: ip-address@9.0.5:
resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==}
engines: {node: '>= 12'} engines: {node: '>= 12'}
@@ -2596,7 +2536,7 @@ snapshots:
'@kevisual/auth': 1.0.5 '@kevisual/auth': 1.0.5
'@kevisual/router': 0.0.21 '@kevisual/router': 0.0.21
'@kevisual/use-config': 1.0.28(dotenv@17.2.3) '@kevisual/use-config': 1.0.28(dotenv@17.2.3)
ioredis: 5.9.1 ioredis: 5.9.2
nanoid: 5.1.6 nanoid: 5.1.6
pg: 8.17.1 pg: 8.17.1
sequelize: 6.37.7(pg@8.17.1) sequelize: 6.37.7(pg@8.17.1)
@@ -2622,7 +2562,7 @@ snapshots:
'@kevisual/auth': 1.0.5 '@kevisual/auth': 1.0.5
'@kevisual/router': 0.0.23 '@kevisual/router': 0.0.23
'@kevisual/use-config': 1.0.28(dotenv@17.2.3) '@kevisual/use-config': 1.0.28(dotenv@17.2.3)
ioredis: 5.9.1 ioredis: 5.9.2
nanoid: 5.1.6 nanoid: 5.1.6
pg: 8.17.1 pg: 8.17.1
sequelize: 6.37.7(pg@8.17.1) sequelize: 6.37.7(pg@8.17.1)
@@ -2719,7 +2659,7 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@kevisual/router@0.0.53': {} '@kevisual/router@0.0.55': {}
'@kevisual/types@0.0.11': {} '@kevisual/types@0.0.11': {}
@@ -2752,39 +2692,6 @@ snapshots:
'@noble/hashes@1.8.0': {} '@noble/hashes@1.8.0': {}
'@oven/bun-darwin-aarch64@1.3.6':
optional: true
'@oven/bun-darwin-x64-baseline@1.3.6':
optional: true
'@oven/bun-darwin-x64@1.3.6':
optional: true
'@oven/bun-linux-aarch64-musl@1.3.6':
optional: true
'@oven/bun-linux-aarch64@1.3.6':
optional: true
'@oven/bun-linux-x64-baseline@1.3.6':
optional: true
'@oven/bun-linux-x64-musl-baseline@1.3.6':
optional: true
'@oven/bun-linux-x64-musl@1.3.6':
optional: true
'@oven/bun-linux-x64@1.3.6':
optional: true
'@oven/bun-windows-x64-baseline@1.3.6':
optional: true
'@oven/bun-windows-x64@1.3.6':
optional: true
'@paralleldrive/cuid2@2.2.2': '@paralleldrive/cuid2@2.2.2':
dependencies: dependencies:
'@noble/hashes': 1.8.0 '@noble/hashes': 1.8.0
@@ -2948,13 +2855,13 @@ snapshots:
'@types/busboy@1.5.4': '@types/busboy@1.5.4':
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/cookie@0.4.1': {} '@types/cookie@0.4.1': {}
'@types/cors@2.8.17': '@types/cors@2.8.17':
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/crypto-js@4.2.2': {} '@types/crypto-js@4.2.2': {}
@@ -2965,7 +2872,7 @@ snapshots:
'@types/jsonwebtoken@9.0.10': '@types/jsonwebtoken@9.0.10':
dependencies: dependencies:
'@types/ms': 0.7.34 '@types/ms': 0.7.34
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/lodash-es@4.17.12': '@types/lodash-es@4.17.12':
dependencies: dependencies:
@@ -2977,31 +2884,31 @@ snapshots:
'@types/node-forge@1.3.11': '@types/node-forge@1.3.11':
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/node@25.0.3': '@types/node@25.0.3':
dependencies: dependencies:
undici-types: 7.16.0 undici-types: 7.16.0
'@types/node@25.0.8': '@types/node@25.0.9':
dependencies: dependencies:
undici-types: 7.16.0 undici-types: 7.16.0
'@types/readdir-glob@1.1.5': '@types/readdir-glob@1.1.5':
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/semver@7.7.1': {} '@types/semver@7.7.1': {}
'@types/send@1.2.1': '@types/send@1.2.1':
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/validator@13.12.2': {} '@types/validator@13.12.2': {}
'@types/ws@8.18.1': '@types/ws@8.18.1':
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
'@types/xml2js@0.4.14': '@types/xml2js@0.4.14':
dependencies: dependencies:
@@ -3107,7 +3014,7 @@ snapshots:
basic-ftp@5.0.5: {} basic-ftp@5.0.5: {}
better-sqlite3@12.6.0: better-sqlite3@12.6.2:
dependencies: dependencies:
bindings: 1.5.0 bindings: 1.5.0
prebuild-install: 7.1.3 prebuild-install: 7.1.3
@@ -3175,21 +3082,7 @@ snapshots:
bun-types@1.3.6: bun-types@1.3.6:
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
bun@1.3.6:
optionalDependencies:
'@oven/bun-darwin-aarch64': 1.3.6
'@oven/bun-darwin-x64': 1.3.6
'@oven/bun-darwin-x64-baseline': 1.3.6
'@oven/bun-linux-aarch64': 1.3.6
'@oven/bun-linux-aarch64-musl': 1.3.6
'@oven/bun-linux-x64': 1.3.6
'@oven/bun-linux-x64-baseline': 1.3.6
'@oven/bun-linux-x64-musl': 1.3.6
'@oven/bun-linux-x64-musl-baseline': 1.3.6
'@oven/bun-windows-x64': 1.3.6
'@oven/bun-windows-x64-baseline': 1.3.6
busboy@1.6.0: busboy@1.6.0:
dependencies: dependencies:
@@ -3356,15 +3249,15 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
drizzle-orm@0.45.1(better-sqlite3@12.6.0)(bun-types@1.3.6)(pg@8.17.1): drizzle-orm@0.45.1(better-sqlite3@12.6.2)(bun-types@1.3.6)(pg@8.17.1):
optionalDependencies: optionalDependencies:
better-sqlite3: 12.6.0 better-sqlite3: 12.6.2
bun-types: 1.3.6 bun-types: 1.3.6
pg: 8.17.1 pg: 8.17.1
drizzle-zod@0.8.3(drizzle-orm@0.45.1(better-sqlite3@12.6.0)(bun-types@1.3.6)(pg@8.17.1))(zod@4.3.5): drizzle-zod@0.8.3(drizzle-orm@0.45.1(better-sqlite3@12.6.2)(bun-types@1.3.6)(pg@8.17.1))(zod@4.3.5):
dependencies: dependencies:
drizzle-orm: 0.45.1(better-sqlite3@12.6.0)(bun-types@1.3.6)(pg@8.17.1) drizzle-orm: 0.45.1(better-sqlite3@12.6.2)(bun-types@1.3.6)(pg@8.17.1)
zod: 4.3.5 zod: 4.3.5
eastasianwidth@0.2.0: {} eastasianwidth@0.2.0: {}
@@ -3391,7 +3284,7 @@ snapshots:
dependencies: dependencies:
'@types/cookie': 0.4.1 '@types/cookie': 0.4.1
'@types/cors': 2.8.17 '@types/cors': 2.8.17
'@types/node': 25.0.8 '@types/node': 25.0.9
accepts: 1.3.8 accepts: 1.3.8
base64id: 2.0.0 base64id: 2.0.0
cookie: 0.4.2 cookie: 0.4.2
@@ -3414,7 +3307,7 @@ snapshots:
es-errors@1.3.0: {} es-errors@1.3.0: {}
es-toolkit@1.43.0: {} es-toolkit@1.44.0: {}
esbuild-register@3.6.0(esbuild@0.25.12): esbuild-register@3.6.0(esbuild@0.25.12):
dependencies: dependencies:
@@ -3685,6 +3578,20 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
ioredis@5.9.2:
dependencies:
'@ioredis/commands': 1.5.0
cluster-key-slot: 1.1.2
debug: 4.4.3(supports-color@5.5.0)
denque: 2.1.0
lodash.defaults: 4.2.0
lodash.isarguments: 3.1.0
redis-errors: 1.2.0
redis-parser: 3.0.0
standard-as-callback: 2.1.0
transitivePeerDependencies:
- supports-color
ip-address@9.0.5: ip-address@9.0.5:
dependencies: dependencies:
jsbn: 1.1.0 jsbn: 1.1.0
@@ -4605,7 +4512,7 @@ snapshots:
wkx@0.5.0: wkx@0.5.0:
dependencies: dependencies:
'@types/node': 25.0.8 '@types/node': 25.0.9
wrap-ansi@7.0.0: wrap-ansi@7.0.0:
dependencies: dependencies:

View File

@@ -54,7 +54,6 @@ export class UserSecret extends Model {
} }
const secretToken = await oauth.verifyToken(token); const secretToken = await oauth.verifyToken(token);
if (secretToken) { if (secretToken) {
console.log('verifyToken: verified as normal token');
return secretToken; return secretToken;
} }
console.log('verifyToken: try to verify as secret key'); console.log('verifyToken: try to verify as secret key');

View File

@@ -20,27 +20,27 @@ export const getTokenFromRequest = (req: http.IncomingMessage) => {
} }
return token; return token;
} }
export const checkAuth = async (req: http.IncomingMessage, res: http.ServerResponse) => { // export const checkAuth = async (req: http.IncomingMessage, res: http.ServerResponse) => {
const token = getTokenFromRequest(req); // const token = getTokenFromRequest(req);
const resNoPermission = () => { // const resNoPermission = () => {
res.statusCode = 401; // res.statusCode = 401;
res.end(error('Invalid authorization')); // res.end(error('Invalid authorization'));
return { tokenUser: null, token: null }; // return { tokenUser: null, token: null };
}; // };
if (!token) { // if (!token) {
return resNoPermission(); // return resNoPermission();
} // }
let tokenUser; // let tokenUser;
try { // try {
tokenUser = await User.verifyToken(token); // tokenUser = await User.verifyToken(token);
} catch (e) { // } catch (e) {
console.log('checkAuth error', e); // console.log('checkAuth error', e);
res.statusCode = 401; // res.statusCode = 401;
res.end(error('Invalid token')); // res.end(error('Invalid token'));
return { tokenUser: null, token: null }; // return { tokenUser: null, token: null };
} // }
return { tokenUser, token }; // return { tokenUser, token };
}; // };
export const getLoginUserByToken = async (token: string) => { export const getLoginUserByToken = async (token: string) => {
if (token) { if (token) {

View File

@@ -7,7 +7,7 @@ import { getLoginUser } from '@/modules/auth.ts';
import busboy from 'busboy'; import busboy from 'busboy';
import { getContentType, getTextContentType } from '../get-content-type.ts'; import { getContentType, getTextContentType } from '../get-content-type.ts';
import { OssBase } from '@kevisual/oss'; import { OssBase } from '@kevisual/oss';
import { parseSearchValue } from '@kevisual/router/browser'; import { parseSearchValue } from '@kevisual/router/src/server/parse-body.ts';
import { logger } from '@/modules/logger.ts'; import { logger } from '@/modules/logger.ts';
import { pipeBusboy } from '../pipe-busboy.ts'; import { pipeBusboy } from '../pipe-busboy.ts';
import { pipeMinioStream } from '../pipe.ts'; import { pipeMinioStream } from '../pipe.ts';

View File

@@ -26,12 +26,15 @@ export const addAuth = (app: App) => {
return; return;
} }
if (!token) { if (!token) {
app.throw(401, 'Token is required'); ctx.throw(401, 'Token is required');
} }
const user = await User.getOauthUser(token); const user = await User.getOauthUser(token);
console.log('auth user: exists', !user);
if (!user) { if (!user) {
app.throw(401, 'Token is invalid'); ctx.throw(401, 'Token is invalid');
return;
} }
console.log(`auth user: ${user.username} (${user.id})`);
const someInfo = getSomeInfoFromReq(ctx); const someInfo = getSomeInfoFromReq(ctx);
if (someInfo.isBrowser && !ctx.req?.cookies?.['token']) { if (someInfo.isBrowser && !ctx.req?.cookies?.['token']) {
createCookie({ accessToken: token }, ctx); createCookie({ accessToken: token }, ctx);

View File

@@ -40,6 +40,7 @@ app
description: '获取应用详情可以通过id或者key+version来获取', description: '获取应用详情可以通过id或者key+version来获取',
}) })
.define(async (ctx) => { .define(async (ctx) => {
console.log('get app manager called');
const tokenUser = ctx.state.tokenUser; const tokenUser = ctx.state.tokenUser;
const id = ctx.query.id; const id = ctx.query.id;
const { key, version } = ctx.query?.data || {}; const { key, version } = ctx.query?.data || {};
@@ -61,6 +62,7 @@ app
if (!am) { if (!am) {
throw new CustomError('app not found'); throw new CustomError('app not found');
} }
console.log('get app', am.id, am.key, am.version);
ctx.body = prefixFix(am, tokenUser.username); ctx.body = prefixFix(am, tokenUser.username);
}) })
.addTo(app); .addTo(app);

View File

@@ -10,4 +10,4 @@ import { useConfig } from '@kevisual/use-config';
export const config = useConfig() export const config = useConfig()
console.log('配置项:', config); // console.log('配置项:', config);