feat: align with upstream 1.5.9.9

This commit is contained in:
2026-09-12 18:21:11 +08:00
commit 34f0679117
805 changed files with 376275 additions and 0 deletions
+17
View File
@@ -0,0 +1,17 @@
import { getInstanceId } from '~~/server/utils/instance-id'
import { isTelemetryEnabled } from '~~/server/utils/telemetry'
export default defineEventHandler(async (event) => {
setHeader(event, 'Cache-Control', 'no-store')
const instanceId = await getInstanceId()
const telemetryEnabled = await isTelemetryEnabled()
return {
success: true,
data: {
instanceId,
telemetryEnabled
}
}
})
+12
View File
@@ -0,0 +1,12 @@
import { getServerLocation } from '../../utils/geo'
export default defineEventHandler(async (event) => {
// 缓存 1 小时,避免频繁请求外部 IP 服务
setHeader(event, 'Cache-Control', 'public, max-age=3600, s-maxage=3600')
const location = await getServerLocation()
return {
success: true,
data: location
}
})
+40
View File
@@ -0,0 +1,40 @@
import { defineEventHandler } from 'h3'
import { databaseManager } from '~~/server/utils/database-manager'
export default defineEventHandler(async (event) => {
try {
console.log('[Reconnect API] 收到强制重连请求')
// 测试数据库连接
const connectionStatus = await databaseManager.getConnectionStatus()
const poolStatus = await databaseManager.getConnectionPoolStatus()
if (connectionStatus.connected) {
console.log('[Reconnect API] 数据库连接正常')
return {
success: true,
message: '数据库连接正常',
connectionStatus,
poolStatus,
timestamp: new Date().toISOString()
}
} else {
console.log('[Reconnect API] 数据库连接异常')
return {
success: false,
message: '数据库连接异常',
connectionStatus,
poolStatus,
timestamp: new Date().toISOString()
}
}
} catch (error) {
console.error('[Reconnect API] 重连过程中出错:', error)
return {
success: false,
message: '重连过程中出错: ' + error.message,
error: error.message,
timestamp: new Date().toISOString()
}
}
})
+66
View File
@@ -0,0 +1,66 @@
import { defineEventHandler } from 'h3'
import { databaseManager } from '~~/server/utils/database-manager'
import { getInstanceId } from '~~/server/utils/instance-id'
import { isTelemetryEnabled } from '~~/server/utils/telemetry'
export default defineEventHandler(async () => {
try {
const instanceId = await getInstanceId()
const telemetryEnabled = await isTelemetryEnabled()
// 获取数据库连接状态
const dbStatus = await databaseManager.getConnectionStatus()
let poolStatus = null
try {
poolStatus = await databaseManager.getConnectionPoolStatus()
} catch (poolError) {
console.warn('[System Status] Failed to get database pool status:', poolError)
}
// 数据库连接测试结果
const dbTestResult = dbStatus.connected
const dbError = dbStatus.connected ? null : dbStatus.error
// 获取系统信息
const systemInfo = {
timestamp: new Date().toISOString(),
uptime: process.uptime(),
nodeVersion: process.version,
platform: process.platform,
arch: process.arch,
memory: {
used: Math.round(process.memoryUsage().heapUsed / 1024 / 1024),
total: Math.round(process.memoryUsage().heapTotal / 1024 / 1024),
external: Math.round(process.memoryUsage().external / 1024 / 1024)
}
}
// 返回完整的系统状态
return {
status: 'ok',
instance: {
instanceId,
telemetryEnabled
},
database: {
connected: dbTestResult,
poolStatus: poolStatus,
connectionInfo: dbStatus,
error: dbError
},
system: systemInfo
}
} catch (error) {
const errorMessage = error instanceof Error ? error.message : 'Unknown error'
return {
status: 'error',
error: errorMessage,
database: {
connected: false,
poolStatus: null,
error: errorMessage
}
}
}
})