diff --git a/packages/napcat-core/external/napcat.json b/packages/napcat-core/external/napcat.json index f8249a36..09ae21a1 100644 --- a/packages/napcat-core/external/napcat.json +++ b/packages/napcat-core/external/napcat.json @@ -8,10 +8,10 @@ "o3HookMode": 1, "bypass": { "hook": true, - "module": true, "window": true, - "js": true, + "module": true, + "process": true, "container": true, - "maps": true + "js": true } } \ No newline at end of file diff --git a/packages/napcat-core/helper/config.ts b/packages/napcat-core/helper/config.ts index 7060abfe..b3a01bdc 100644 --- a/packages/napcat-core/helper/config.ts +++ b/packages/napcat-core/helper/config.ts @@ -5,11 +5,11 @@ import { AnySchema } from 'ajv'; export const BypassOptionsSchema = Type.Object({ hook: Type.Boolean({ default: true }), - module: Type.Boolean({ default: true }), window: Type.Boolean({ default: true }), - js: Type.Boolean({ default: true }), + module: Type.Boolean({ default: true }), + process: Type.Boolean({ default: true }), container: Type.Boolean({ default: true }), - maps: Type.Boolean({ default: true }), + js: Type.Boolean({ default: true }), }); export const NapcatConfigSchema = Type.Object({ diff --git a/packages/napcat-core/packet/handler/napi2nativeLoader.ts b/packages/napcat-core/packet/handler/napi2nativeLoader.ts index 8e301954..b7012a52 100644 --- a/packages/napcat-core/packet/handler/napi2nativeLoader.ts +++ b/packages/napcat-core/packet/handler/napi2nativeLoader.ts @@ -6,11 +6,11 @@ import { LogWrapper } from '../../helper/log'; export interface BypassOptions { hook?: boolean; - module?: boolean; window?: boolean; - js?: boolean; + module?: boolean; + process?: boolean; container?: boolean; - maps?: boolean; + js?: boolean; } export interface Napi2NativeExportType { diff --git a/packages/napcat-framework/napcat.ts b/packages/napcat-framework/napcat.ts index 153d110d..1a1ac2dc 100644 --- a/packages/napcat-framework/napcat.ts +++ b/packages/napcat-framework/napcat.ts @@ -50,11 +50,11 @@ export async function NCoreInitFramework ( // 读取 napcat.json 配置 let bypassOptions: BypassOptions = { hook: false, - module: false, window: false, - js: false, + module: false, + process: false, container: false, - maps: false, + js: false, }; try { const configFile = path.join(pathWrapper.configPath, 'napcat.json'); diff --git a/packages/napcat-shell/base.ts b/packages/napcat-shell/base.ts index 63c6cd51..a2a6d553 100644 --- a/packages/napcat-shell/base.ts +++ b/packages/napcat-shell/base.ts @@ -51,15 +51,14 @@ import { connectToNamedPipe } from './pipe'; function loadBypassConfig (configPath: string, logger: LogWrapper): BypassOptions { const defaultOptions: BypassOptions = { hook: true, - module: true, window: true, - js: true, + module: true, + process: true, container: true, - maps: true, + js: true, }; let options = { ...defaultOptions }; - try { const configFile = path.join(configPath, 'napcat.json'); if (fs.existsSync(configFile)) { @@ -72,13 +71,11 @@ function loadBypassConfig (configPath: string, logger: LogWrapper): BypassOption } catch (e) { logger.logWarn('[NapCat] 读取 bypass 配置失败,使用默认值:', e); } - // 根据分步禁用级别覆盖配置 const disableLevel = parseInt(process.env['NAPCAT_BYPASS_DISABLE_LEVEL'] || '0', 10); if (disableLevel > 0) { const levelDescriptions = ['全部启用', '禁用 hook', '禁用 hook + module', '全部禁用 bypass']; logger.logWarn(`[NapCat] 崩溃恢复:当前 bypass 禁用级别 ${disableLevel} (${levelDescriptions[disableLevel] ?? '未知'})`); - if (disableLevel >= 1) { options.hook = false; } @@ -87,14 +84,13 @@ function loadBypassConfig (configPath: string, logger: LogWrapper): BypassOption } if (disableLevel >= 3) { options.hook = false; - options.module = false; options.window = false; - options.js = false; + options.module = false; + options.process = false; options.container = false; - options.maps = false; + options.js = false; } } - return options; } // NapCat Shell App ES 入口文件 diff --git a/packages/napcat-webui-backend/src/api/NapCatConfig.ts b/packages/napcat-webui-backend/src/api/NapCatConfig.ts index affa7950..9c234545 100644 --- a/packages/napcat-webui-backend/src/api/NapCatConfig.ts +++ b/packages/napcat-webui-backend/src/api/NapCatConfig.ts @@ -16,11 +16,11 @@ const defaultNapcatConfig = { o3HookMode: 1, bypass: { hook: true, - module: true, window: true, - js: true, + module: true, + process: true, container: true, - maps: true, + js: true, }, }; @@ -81,7 +81,7 @@ export const NapCatSetConfigHandler: RequestHandler = (req, res) => { // 验证 bypass 字段 if (mergedConfig.bypass && typeof mergedConfig.bypass === 'object') { const bypass = mergedConfig.bypass as Record; - const validKeys = ['hook', 'module', 'window', 'js', 'container', 'maps']; + const validKeys = ['hook', 'window', 'module', 'process', 'container', 'js']; for (const key of validKeys) { if (key in bypass && typeof bypass[key] !== 'boolean') { return sendError(res, `bypass.${key} must be boolean`); diff --git a/packages/napcat-webui-frontend/src/pages/dashboard/config/bypass.tsx b/packages/napcat-webui-frontend/src/pages/dashboard/config/bypass.tsx index bca17915..22c71e91 100644 --- a/packages/napcat-webui-frontend/src/pages/dashboard/config/bypass.tsx +++ b/packages/napcat-webui-frontend/src/pages/dashboard/config/bypass.tsx @@ -10,20 +10,20 @@ import QQManager from '@/controllers/qq_manager'; interface BypassFormData { hook: boolean; - module: boolean; window: boolean; - js: boolean; + module: boolean; + process: boolean; container: boolean; - maps: boolean; + js: boolean; } const defaultBypass: BypassFormData = { hook: true, - module: true, window: true, - js: true, + module: true, + process: true, container: true, - maps: true, + js: true, }; const BypassConfigCard = () => { @@ -43,11 +43,11 @@ const BypassConfigCard = () => { const config = await QQManager.getNapCatConfig(); const bypass = config.bypass ?? defaultBypass; setValue('hook', bypass.hook ?? true); - setValue('module', bypass.module ?? true); setValue('window', bypass.window ?? true); - setValue('js', bypass.js ?? true); + setValue('module', bypass.module ?? true); + setValue('process', bypass.process ?? true); setValue('container', bypass.container ?? true); - setValue('maps', bypass.maps ?? true); + setValue('js', bypass.js ?? true); if (showTip) toast.success('刷新成功'); } catch (error) { const msg = (error as Error).message; @@ -101,17 +101,6 @@ const BypassConfigCard = () => { /> )} /> - ( - - )} - /> { /> ( + )} + /> + ( + )} /> @@ -147,12 +147,12 @@ const BypassConfigCard = () => { /> ( )} /> diff --git a/packages/napcat-webui-frontend/src/types/napcat_conf.d.ts b/packages/napcat-webui-frontend/src/types/napcat_conf.d.ts index fd52fa40..e954c35e 100644 --- a/packages/napcat-webui-frontend/src/types/napcat_conf.d.ts +++ b/packages/napcat-webui-frontend/src/types/napcat_conf.d.ts @@ -1,10 +1,10 @@ interface BypassOptions { hook: boolean; - module: boolean; window: boolean; - js: boolean; + module: boolean; + process: boolean; container: boolean; - maps: boolean; + js: boolean; } interface NapCatConfig {