node-karin 0.12.16 → 0.12.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/lib/adapter/input/index.d.ts +1 -3
  2. package/lib/adapter/input/index.js +2 -4
  3. package/lib/adapter/onebot/11/event.d.ts +3 -9
  4. package/lib/adapter/onebot/11/event.js +7 -13
  5. package/lib/adapter/onebot/11/index.d.ts +21 -58
  6. package/lib/adapter/onebot/11/index.js +22 -59
  7. package/lib/cli/index.d.ts +5 -15
  8. package/lib/cli/index.js +6 -16
  9. package/lib/core/karin/karin.d.ts +10 -4
  10. package/lib/core/karin/karin.js +7 -3
  11. package/lib/core/listener/listener.d.ts +5 -15
  12. package/lib/core/listener/listener.js +5 -13
  13. package/lib/core/plugin/loader.d.ts +10 -16
  14. package/lib/core/plugin/loader.js +20 -15
  15. package/lib/core/server/server.d.ts +3 -9
  16. package/lib/core/server/server.js +3 -9
  17. package/lib/event/handler/base.d.ts +13 -24
  18. package/lib/event/handler/base.js +25 -24
  19. package/lib/event/handler/message.d.ts +8 -24
  20. package/lib/event/handler/message.js +11 -24
  21. package/lib/event/handler/notice.d.ts +3 -9
  22. package/lib/event/handler/notice.js +6 -9
  23. package/lib/event/handler/request.d.ts +3 -9
  24. package/lib/event/handler/request.js +6 -9
  25. package/lib/event/handler/review.d.ts +7 -21
  26. package/lib/event/handler/review.js +7 -21
  27. package/lib/types/adapter/base.d.ts +21 -63
  28. package/lib/types/config/config.d.ts +65 -195
  29. package/lib/types/event/contact.d.ts +5 -9
  30. package/lib/types/event/event.d.ts +15 -30
  31. package/lib/types/event/message.d.ts +6 -15
  32. package/lib/types/event/message.js +2 -0
  33. package/lib/types/event/notice.d.ts +1 -0
  34. package/lib/types/event/notice.js +2 -0
  35. package/lib/types/event/request.d.ts +1 -0
  36. package/lib/types/event/request.js +2 -0
  37. package/lib/types/plugin/app.d.ts +13 -15
  38. package/lib/types/plugin/plugin.d.ts +22 -39
  39. package/package.json +1 -1
@@ -1,18 +1,12 @@
1
1
  import { EventBaseHandler } from './base.js';
2
2
  import { KarinRequestType } from '../../types/index.js';
3
- /**
4
- * 请求事件
5
- */
3
+ /** 请求事件 */
6
4
  export declare class RequestHandler extends EventBaseHandler {
7
5
  e: KarinRequestType;
8
6
  constructor(e: KarinRequestType);
9
7
  init(): void;
10
- /**
11
- * 处理事件
12
- */
8
+ /** 处理事件 */
13
9
  deal(): Promise<void>;
14
- /**
15
- * 构建原始消息
16
- */
10
+ /** 构建原始消息 */
17
11
  raw_message(): void;
18
12
  }
@@ -2,9 +2,7 @@ import { review } from './review.js';
2
2
  import { EventBaseHandler } from './base.js';
3
3
  import { karin, pluginLoader } from '../../core/index.js';
4
4
  import { logger, config } from '../../utils/index.js';
5
- /**
6
- * 请求事件
7
- */
5
+ /** 请求事件 */
8
6
  export class RequestHandler extends EventBaseHandler {
9
7
  e;
10
8
  constructor(e) {
@@ -54,14 +52,15 @@ export class RequestHandler extends EventBaseHandler {
54
52
  this.reply();
55
53
  karin.emit('request', this.e);
56
54
  }
57
- /**
58
- * 处理事件
59
- */
55
+ /** 处理事件 */
60
56
  async deal() {
61
57
  for (const info of pluginLoader.accept) {
62
58
  /** 判断事件 */
63
59
  if (!this.filtEvent(info.event))
64
60
  continue;
61
+ /** 判断适配器 */
62
+ if (!this.filterAdapter(info))
63
+ continue;
65
64
  /** 检查黑白名单插件 */
66
65
  if (!review.PluginEnable(info, this.config))
67
66
  continue;
@@ -85,9 +84,7 @@ export class RequestHandler extends EventBaseHandler {
85
84
  }
86
85
  logger.debug(`[事件处理][${this.e.self_id}][${this.e.user_id}][${this.e.event_id}] 未匹配到任何插件`);
87
86
  }
88
- /**
89
- * 构建原始消息
90
- */
87
+ /** 构建原始消息 */
91
88
  raw_message() {
92
89
  switch (this.e.sub_event) {
93
90
  /** 好友申请 */
@@ -22,34 +22,20 @@ export declare const review: {
22
22
  PluginEnable: (app: PluginCommandInfoType | PluginAcceptInfoType, config: GroupCfg) => boolean;
23
23
  Private: () => boolean;
24
24
  main(): void;
25
- /**
26
- * 群聊黑白名单 允许哪个群触发事件
27
- */
25
+ /** 群聊黑白名单 允许哪个群触发事件 */
28
26
  "__#1@#GroupEnable"(): true | undefined;
29
- /**
30
- * 用户黑白名单 允许那个用户触发事件
31
- */
27
+ /** 用户黑白名单 允许那个用户触发事件 */
32
28
  "__#1@#UserEnable"(): true | undefined;
33
- /**
34
- * 群聊事件日志 是否打印
35
- */
29
+ /** 群聊事件日志 是否打印 */
36
30
  "__#1@#GroupMsgPrint"(): true | undefined;
37
- /**
38
- * 黑白名单插件 哪个插件可以被触发
39
- */
31
+ /** 黑白名单插件 哪个插件可以被触发 */
40
32
  "__#1@#PluginEnable"(): boolean;
41
33
  /** 群聊cd */
42
34
  "__#1@#CD"(): true | undefined;
43
- /**
44
- * 响应模式
45
- */
35
+ /** 响应模式 */
46
36
  "__#1@#mode"(): true | undefined;
47
- /**
48
- * 前缀、别名
49
- */
37
+ /** 前缀、别名 */
50
38
  "__#1@#alias"(): true | undefined;
51
- /**
52
- * 私聊功能
53
- */
39
+ /** 私聊功能 */
54
40
  "__#1@#Private"(): true | undefined;
55
41
  };
@@ -56,9 +56,7 @@ export const review = new (class Handler {
56
56
  this.#PluginEnable();
57
57
  this.#Private();
58
58
  }
59
- /**
60
- * 群聊黑白名单 允许哪个群触发事件
61
- */
59
+ /** 群聊黑白名单 允许哪个群触发事件 */
62
60
  #GroupEnable() {
63
61
  /** 同时启用 */
64
62
  if (this.App.WhiteList.groups && this.App.BlackList.groups) {
@@ -101,9 +99,7 @@ export const review = new (class Handler {
101
99
  /** 都没有启用 */
102
100
  this.GroupEnable = () => true;
103
101
  }
104
- /**
105
- * 用户黑白名单 允许那个用户触发事件
106
- */
102
+ /** 用户黑白名单 允许那个用户触发事件 */
107
103
  #UserEnable() {
108
104
  /** 同时启用 */
109
105
  if (this.App.WhiteList.users && this.App.BlackList.users) {
@@ -144,9 +140,7 @@ export const review = new (class Handler {
144
140
  /** 都没有启用 */
145
141
  this.UserEnable = () => true;
146
142
  }
147
- /**
148
- * 群聊事件日志 是否打印
149
- */
143
+ /** 群聊事件日志 是否打印 */
150
144
  #GroupMsgPrint() {
151
145
  /** 同时启用 */
152
146
  if (this.App.WhiteList.GroupMsgLog && this.App.BlackList.GroupMsgLog) {
@@ -187,9 +181,7 @@ export const review = new (class Handler {
187
181
  /** 都没有启用 */
188
182
  this.GroupMsgPrint = () => true;
189
183
  }
190
- /**
191
- * 黑白名单插件 哪个插件可以被触发
192
- */
184
+ /** 黑白名单插件 哪个插件可以被触发 */
193
185
  #PluginEnable() {
194
186
  /** 同时启用 */
195
187
  if (this.App.GroupConfig.enable && this.App.GroupConfig.disable) {
@@ -318,9 +310,7 @@ export const review = new (class Handler {
318
310
  /** 都没有启用 */
319
311
  this.CD = () => true;
320
312
  }
321
- /**
322
- * 响应模式
323
- */
313
+ /** 响应模式 */
324
314
  #mode() {
325
315
  /** 启用 */
326
316
  if (this.App.GroupConfig.mode) {
@@ -350,9 +340,7 @@ export const review = new (class Handler {
350
340
  /** 未启用 */
351
341
  this.mode = () => true;
352
342
  }
353
- /**
354
- * 前缀、别名
355
- */
343
+ /** 前缀、别名 */
356
344
  #alias() {
357
345
  /** 启用 */
358
346
  if (this.App.GroupConfig.alias) {
@@ -371,9 +359,7 @@ export const review = new (class Handler {
371
359
  /** 未启用 */
372
360
  this.alias = () => true;
373
361
  }
374
- /**
375
- * 私聊功能
376
- */
362
+ /** 私聊功能 */
377
363
  #Private() {
378
364
  /** 启用 */
379
365
  if (this.App.PrivateConfig?.enable) {
@@ -5,68 +5,40 @@ import { KarinElement, NodeElement } from '../element/element.js';
5
5
  import { LoggerLevel } from '../logger/logger.js';
6
6
  import { PushMessageBody, EssenceMessageBody, FriendInfo, GroupInfo, GroupMemberInfo, GroupHonorInfo, GroupFileInfo, GroupFolderInfo, GetRemainCountAtAllResponse } from './api.js';
7
7
  export interface KarinAdapter {
8
- /**
9
- * 适配器版本信息
10
- */
8
+ /** 适配器版本信息 */
11
9
  version: {
12
- /**
13
- * 适配器名称
14
- */
10
+ /** 适配器名称 */
15
11
  name: string;
16
12
  /**
17
13
  * 适配器名称
18
14
  * @deprecated 请使用`version.name`
19
15
  */
20
16
  app_name: string;
21
- /**
22
- * 适配器版本
23
- */
17
+ /** 适配器版本 */
24
18
  version: string;
25
19
  };
26
- /**
27
- * 账号信息
28
- */
20
+ /** 账号信息 */
29
21
  account: {
30
- /**
31
- * 账号uid
32
- */
22
+ /** 账号uid */
33
23
  uid: string;
34
- /**
35
- * 账号uin
36
- */
24
+ /** 账号uin */
37
25
  uin: string;
38
- /**
39
- * 账号名 不存在则是空字符串
40
- */
26
+ /** 账号名 不存在则是空字符串 */
41
27
  name: string;
42
28
  };
43
- /**
44
- * 适配器信息
45
- */
29
+ /** 适配器信息 */
46
30
  adapter: {
47
- /**
48
- * 适配器注册之后的索引
49
- */
31
+ /** 适配器注册之后的索引 */
50
32
  index: number;
51
- /**
52
- * 适配器ID
53
- */
33
+ /** 适配器ID */
54
34
  id: 'QQ' | 'WeChat' | 'Telegram' | 'QQBot' | string;
55
- /**
56
- * 适配器名称
57
- */
35
+ /** 适配器名称 */
58
36
  name: 'ICQQ' | 'OneBot11' | 'OntBot12' | 'Kritor' | 'input' | string;
59
- /**
60
- * 适配器类型
61
- */
37
+ /** 适配器类型 */
62
38
  type: 'internal' | 'grpc' | 'http' | 'ws' | 'render';
63
- /**
64
- * 适配器子类型
65
- */
39
+ /** 适配器子类型 */
66
40
  sub_type: 'server' | 'client' | 'internal';
67
- /**
68
- * 连接时间
69
- */
41
+ /** 连接时间 */
70
42
  start_time: number;
71
43
  /**
72
44
  * 适配器连接地址
@@ -74,9 +46,7 @@ export interface KarinAdapter {
74
46
  */
75
47
  connect?: string;
76
48
  };
77
- /**
78
- * 获取Bot自身UID
79
- */
49
+ /** 获取Bot自身UID */
80
50
  get self_id(): string;
81
51
  /**
82
52
  * 专属当前Bot的日志打印方法
@@ -387,29 +357,17 @@ export interface KarinAdapter {
387
357
  * @returns 下载文件的绝对路径和文件MD5
388
358
  */
389
359
  DownloadFile(options?: {
390
- /**
391
- * 下载文件的URL 二选一
392
- */
360
+ /** 下载文件的URL 二选一 */
393
361
  url?: string;
394
- /**
395
- * 下载文件的base64 二选一
396
- */
362
+ /** 下载文件的base64 二选一 */
397
363
  base64?: string;
398
- /**
399
- * 下载文件的根目录 需要保证Kritor有该目录访问权限 可选
400
- */
364
+ /** 下载文件的根目录 需要保证Kritor有该目录访问权限 可选 */
401
365
  root_path?: string;
402
- /**
403
- * 保存的文件名称 默认为文件MD5 可选
404
- */
366
+ /** 保存的文件名称 默认为文件MD5 可选 */
405
367
  file_name?: string;
406
- /**
407
- * 下载文件的线程数 默认为3 可选
408
- */
368
+ /** 下载文件的线程数 默认为3 可选 */
409
369
  thread_cnt?: number;
410
- /**
411
- * 下载文件的请求头 可选
412
- */
370
+ /** 下载文件的请求头 可选 */
413
371
  headers?: string;
414
372
  }): Promise<{
415
373
  file_absolute_path: string;
@@ -1,105 +1,57 @@
1
1
  export interface Redis {
2
- /**
3
- * 地址
4
- */
2
+ /** 地址 */
5
3
  host: string;
6
- /**
7
- * 端口
8
- */
4
+ /** 端口 */
9
5
  port: number;
10
- /**
11
- * 用户名
12
- */
6
+ /** 用户名 */
13
7
  username: string;
14
- /**
15
- * 密码
16
- */
8
+ /** 密码 */
17
9
  password: string;
18
- /**
19
- * 数据库
20
- */
10
+ /** 数据库 */
21
11
  db: number;
22
- /**
23
- * 集群
24
- */
12
+ /** 集群 */
25
13
  cluster: {
26
- /**
27
- * 是否启用
28
- */
14
+ /** 是否启用 */
29
15
  enable: boolean;
30
- /**
31
- * 根节点
32
- */
16
+ /** 根节点 */
33
17
  rootNodes: string[];
34
18
  };
35
19
  }
36
20
  export interface App {
37
- /**
38
- * 黑名单管理
39
- */
21
+ /** 黑名单管理 */
40
22
  BlackList: {
41
- /**
42
- * 黑名单用户
43
- */
23
+ /** 黑名单用户 */
44
24
  users: boolean;
45
- /**
46
- * 黑名单群聊
47
- */
25
+ /** 黑名单群聊 */
48
26
  groups: boolean;
49
- /**
50
- * 消息日志黑名单群聊 设置后不会打印该群的消息日志
51
- */
27
+ /** 消息日志黑名单群聊 设置后不会打印该群的消息日志 */
52
28
  GroupMsgLog: boolean;
53
29
  };
54
- /**
55
- * 白名单相关
56
- */
30
+ /** 白名单相关 */
57
31
  WhiteList: {
58
- /**
59
- * 白名单用户
60
- */
32
+ /** 白名单用户 */
61
33
  users: boolean;
62
- /**
63
- * 白名单群聊
64
- */
34
+ /** 白名单群聊 */
65
35
  groups: boolean;
66
- /**
67
- * 消息日志白名单群聊 设置后只会打印该群的消息日志
68
- */
36
+ /** 消息日志白名单群聊 设置后只会打印该群的消息日志 */
69
37
  GroupMsgLog: boolean;
70
38
  };
71
- /**
72
- * 群聊
73
- */
39
+ /** 群聊 */
74
40
  GroupConfig: {
75
- /**
76
- * 群聊中所有消息冷却时间
77
- */
41
+ /** 群聊中所有消息冷却时间 */
78
42
  GroupCD: boolean;
79
- /**
80
- * 群聊中 每个人的消息冷却时间
81
- */
43
+ /** 群聊中 每个人的消息冷却时间 */
82
44
  GroupUserCD: boolean;
83
- /**
84
- * 机器人响应模式
85
- */
45
+ /** 机器人响应模式 */
86
46
  mode: boolean;
87
- /**
88
- * 机器人前缀 设置后前缀+指令触发机器人
89
- */
47
+ /** 机器人前缀 设置后前缀+指令触发机器人 */
90
48
  alias: boolean;
91
- /**
92
- * 白名单插件、功能,只有在白名单中的插件、功能才会响应
93
- */
49
+ /** 白名单插件、功能,只有在白名单中的插件、功能才会响应 */
94
50
  enable: boolean;
95
- /**
96
- * 黑名单插件、功能,黑名单中的插件、功能不会响应
97
- */
51
+ /** 黑名单插件、功能,黑名单中的插件、功能不会响应 */
98
52
  disable: boolean;
99
53
  };
100
- /**
101
- * 私聊
102
- */
54
+ /** 私聊 */
103
55
  PrivateConfig: {
104
56
  /** 是否开启私聊 */
105
57
  enable: boolean;
@@ -116,26 +68,16 @@ export interface Config {
116
68
  * @description 即将废弃,请使用log4jsCfg.daysToKeep
117
69
  */
118
70
  log_days_Keep?: number;
119
- /**
120
- * 控制台触发插件日志颜色
121
- */
71
+ /** 控制台触发插件日志颜色 */
122
72
  log_color: string;
123
- /**
124
- * 重启是否调用pm2 如果不调用则会直接关机 此配置适合有进程守护的程序
125
- */
73
+ /** 重启是否调用pm2 如果不调用则会直接关机 此配置适合有进程守护的程序 */
126
74
  pm2Restart: boolean;
127
- /**
128
- * ffmpeg配置
129
- */
75
+ /** ffmpeg配置 */
130
76
  ffmpeg_path: string;
131
77
  ffprobe_path: string;
132
- /**
133
- * 主人列表
134
- */
78
+ /** 主人列表 */
135
79
  master: string[];
136
- /**
137
- * 管理员列表
138
- */
80
+ /** 管理员列表 */
139
81
  admin: string[];
140
82
  /**
141
83
  *
@@ -150,63 +92,35 @@ export interface Config {
150
92
  /** ip地址 */
151
93
  ip: string;
152
94
  };
153
- /**
154
- * 黑名单相关
155
- */
95
+ /** 黑名单相关 */
156
96
  BlackList: {
157
- /**
158
- * 黑名单用户
159
- */
97
+ /** 黑名单用户 */
160
98
  users: string[];
161
- /**
162
- * 黑名单群聊
163
- */
99
+ /** 黑名单群聊 */
164
100
  groups: string[];
165
- /**
166
- * 消息日志黑名单群聊 设置后不会打印该群的消息日志
167
- */
101
+ /** 消息日志黑名单群聊 设置后不会打印该群的消息日志 */
168
102
  GroupMsgLog: string[];
169
103
  };
170
- /**
171
- * 白名单相关
172
- */
104
+ /** 白名单相关 */
173
105
  WhiteList: {
174
- /**
175
- * 白名单用户
176
- */
106
+ /** 白名单用户 */
177
107
  users: string[];
178
- /**
179
- * 白名单群聊
180
- */
108
+ /** 白名单群聊 */
181
109
  groups: string[];
182
- /**
183
- * 消息日志白名单群聊 设置后只会打印该群的消息日志
184
- */
110
+ /** 消息日志白名单群聊 设置后只会打印该群的消息日志 */
185
111
  GroupMsgLog: string[];
186
112
  };
187
- /**
188
- * log4js 配置
189
- */
113
+ /** log4js 配置 */
190
114
  log4jsCfg: {
191
- /**
192
- * 日志等级
193
- */
115
+ /** 日志等级 */
194
116
  level: 'trace' | 'debug' | 'info' | 'warn' | 'fatal' | 'mark' | 'error' | 'off';
195
- /**
196
- * 日志保留天数
197
- */
117
+ /** 日志保留天数 */
198
118
  daysToKeep: number;
199
- /**
200
- * 整体化: 将日志输出到一个文件(一天为一个文件) 日志较多的情况下不建议与碎片化同时开启
201
- */
119
+ /** 整体化: 将日志输出到一个文件(一天为一个文件) 日志较多的情况下不建议与碎片化同时开启 */
202
120
  overall: boolean;
203
- /**
204
- * 碎片化: 将日志分片,达到指定大小后自动切割 日志较多的情况下不建议与整体化同时开启
205
- */
121
+ /** 碎片化: 将日志分片,达到指定大小后自动切割 日志较多的情况下不建议与整体化同时开启 */
206
122
  fragments: boolean;
207
- /**
208
- * 碎片化每个日志文件最大大小 MB
209
- */
123
+ /** 碎片化每个日志文件最大大小 MB */
210
124
  maxLogSize: number;
211
125
  };
212
126
  private: {
@@ -219,84 +133,46 @@ export interface Config {
219
133
  };
220
134
  }
221
135
  export interface Server {
222
- /**
223
- * 当前文件热更新是否重启http、grpc服务
224
- */
136
+ /** 当前文件热更新是否重启http、grpc服务 */
225
137
  HotUpdate: boolean;
226
- /**
227
- * http 服务器配置
228
- */
138
+ /** http 服务器配置 */
229
139
  http: {
230
- /**
231
- * 监听地址
232
- */
140
+ /** 监听地址 */
233
141
  host: string;
234
- /**
235
- * 监听端口
236
- */
142
+ /** 监听端口 */
237
143
  port: number;
238
144
  };
239
- /**
240
- * grpc 服务器配置
241
- */
145
+ /** grpc 服务器配置 */
242
146
  grpc: {
243
- /**
244
- * 监听地址
245
- */
147
+ /** 监听地址 */
246
148
  host: string;
247
- /**
248
- * 监听端口
249
- */
149
+ /** 监听端口 */
250
150
  timeout: number;
251
151
  };
252
- /**
253
- * websocket 服务器配置
254
- */
152
+ /** websocket 服务器配置 */
255
153
  websocket: {
256
- /**
257
- * API请求超时时间 单位秒
258
- */
154
+ /** API请求超时时间 单位秒 */
259
155
  timeout: number;
260
- /**
261
- * websocket 渲染器地址 比如:ws://127.0.0.1:7005/ws/render
262
- */
156
+ /** websocket 渲染器地址 比如:ws://127.0.0.1:7005/ws/render */
263
157
  render: string[];
264
- /**
265
- * onebot11 正向WebSocket地址
266
- */
158
+ /** onebot11 正向WebSocket地址 */
267
159
  OneBot11Host: string[];
268
- /**
269
- * onebot12 正向WebSocket地址
270
- */
160
+ /** onebot12 正向WebSocket地址 */
271
161
  OneBot12Host: string[];
272
162
  };
273
- /**
274
- * HTTP渲染器配置
275
- */
163
+ /** HTTP渲染器配置 */
276
164
  HttpRender: {
277
- /**
278
- * 是否开启http渲染
279
- */
165
+ /** 是否开启http渲染 */
280
166
  enable: boolean;
281
- /**
282
- * karin端Api地址 公网 > 局域网 > 127
283
- */
167
+ /** karin端Api地址 公网 > 局域网 > 127 */
284
168
  host: string;
285
- /**
286
- * karin-puppeteer渲染器Api post接口请求地址
287
- */
169
+ /** karin-puppeteer渲染器Api post接口请求地址 */
288
170
  post: string;
289
- /**
290
- * karin-puppeteer渲染器 post请求token
291
- */
171
+ /** karin-puppeteer渲染器 post请求token */
292
172
  token: string;
293
- /**
294
- * 请求的非html或非有效路径的返回内容 可以填http地址 例如:https://example.com
295
- */
173
+ /** 请求的非html或非有效路径的返回内容 可以填http地址 例如:https://example.com */
296
174
  not_found: string;
297
- /**
298
- * Wormhole代理地址 无公网环境的情况下使用
299
- */
175
+ /** Wormhole代理地址 无公网环境的情况下使用 */
300
176
  WormholeClient: string;
301
177
  };
302
178
  }
@@ -346,22 +222,16 @@ export interface GroupCfg {
346
222
  * @param {5} 5-主人无前缀,群员前缀或@机器人
347
223
  */
348
224
  mode: 0 | 1 | 2 | 3 | 4 | 5;
349
- /**
350
- * 机器人前缀 设置后前缀+指令触发机器人
351
- */
225
+ /** 机器人前缀 设置后前缀+指令触发机器人 */
352
226
  alias: string[];
353
- /**
354
- * 白名单插件、功能,只有在白名单中的插件、功能才会响应
355
- */
227
+ /** 白名单插件、功能,只有在白名单中的插件、功能才会响应 */
356
228
  enable: {
357
229
  /** 插件包名称 */
358
230
  plugin: string;
359
231
  /** 插件文件名或插件名称 */
360
232
  name: string;
361
233
  }[];
362
- /**
363
- * 黑名单插件、功能,黑名单中的插件、功能不会响应
364
- */
234
+ /** 黑名单插件、功能,黑名单中的插件、功能不会响应 */
365
235
  disable: {
366
236
  /** 插件包名称 */
367
237
  plugin: string;