node-karin 0.12.13 → 0.12.15

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 (59) hide show
  1. package/lib/adapter/input/index.d.ts +1 -1
  2. package/lib/adapter/input/index.js +1 -1
  3. package/lib/adapter/onebot/11/event.js +90 -84
  4. package/lib/adapter/onebot/11/index.d.ts +89 -127
  5. package/lib/adapter/onebot/11/index.js +192 -254
  6. package/lib/cli/index.js +2 -2
  7. package/lib/core/init/config.js +1 -1
  8. package/lib/core/karin/karin.d.ts +21 -30
  9. package/lib/core/karin/karin.js +7 -9
  10. package/lib/core/listener/listener.js +11 -11
  11. package/lib/core/plugin/base.d.ts +7 -21
  12. package/lib/core/plugin/base.js +2 -6
  13. package/lib/core/plugin/loader.d.ts +5 -15
  14. package/lib/core/plugin/loader.js +5 -15
  15. package/lib/core/server/server.js +4 -4
  16. package/lib/event/handler/base.d.ts +1 -3
  17. package/lib/event/handler/base.js +1 -3
  18. package/lib/event/handler/message.js +9 -3
  19. package/lib/event/handler/notice.js +38 -32
  20. package/lib/event/handler/request.js +6 -6
  21. package/lib/index.d.ts +6 -0
  22. package/lib/index.js +6 -0
  23. package/lib/modules.d.ts +2 -2
  24. package/lib/modules.js +3 -2
  25. package/lib/types/adapter/accept.d.ts +24 -0
  26. package/lib/types/adapter/accept.js +1 -0
  27. package/lib/types/adapter/api.d.ts +88 -264
  28. package/lib/types/adapter/base.d.ts +3 -3
  29. package/lib/types/config/config.d.ts +4 -12
  30. package/lib/types/element/element.d.ts +119 -349
  31. package/lib/types/element/qqbot.d.ts +4 -12
  32. package/lib/types/event/contact.d.ts +6 -12
  33. package/lib/types/event/event.d.ts +59 -163
  34. package/lib/types/event/message.d.ts +11 -31
  35. package/lib/types/event/message.js +10 -12
  36. package/lib/types/event/notice.d.ts +118 -325
  37. package/lib/types/event/notice.js +8 -10
  38. package/lib/types/event/request.d.ts +29 -66
  39. package/lib/types/event/request.js +8 -10
  40. package/lib/types/event/sender.d.ts +7 -21
  41. package/lib/types/index.d.ts +1 -0
  42. package/lib/types/index.js +1 -0
  43. package/lib/types/onebot11/api.d.ts +49 -49
  44. package/lib/types/onebot11/event.d.ts +131 -347
  45. package/lib/types/onebot11/params.d.ts +184 -456
  46. package/lib/types/onebot11/response.d.ts +159 -381
  47. package/lib/types/onebot11/segment.d.ts +25 -75
  48. package/lib/types/onebot11/sender.d.ts +13 -39
  49. package/lib/types/plugin/app.d.ts +7 -11
  50. package/lib/types/plugin/plugin.d.ts +55 -165
  51. package/lib/types/render/render.d.ts +16 -48
  52. package/lib/utils/common/common.js +4 -2
  53. package/lib/utils/config/config.js +1 -1
  54. package/lib/utils/core/logger.js +3 -3
  55. package/lib/utils/core/segment.d.ts +28 -59
  56. package/lib/utils/core/segment.js +26 -30
  57. package/lib/utils/tools/restart.d.ts +3 -3
  58. package/lib/utils/tools/restart.js +5 -5
  59. package/package.json +1 -2
package/lib/index.js CHANGED
@@ -1,3 +1,8 @@
1
+ import yaml from 'yaml';
2
+ import axios from 'axios';
3
+ import moment from 'moment';
4
+ import lodash from 'lodash';
5
+ import express from 'express';
1
6
  export * from './core/index.js';
2
7
  export * from './event/index.js';
3
8
  export * from './db/index.js';
@@ -6,3 +11,4 @@ export * from './utils/index.js';
6
11
  export * from './types/index.js';
7
12
  export * from './adapter/index.js';
8
13
  export { karin as default } from './core/index.js';
14
+ export { axios, moment, lodash, express, yaml };
package/lib/modules.d.ts CHANGED
@@ -11,5 +11,5 @@ import { Level as level } from 'level';
11
11
  import schedule from 'node-schedule';
12
12
  import yaml from 'yaml';
13
13
  import log4js from 'log4js';
14
- import art_template from 'art-template';
15
- export { fs, ws, path, axios, lodash, moment, express, chalk, chokidar, level, schedule, yaml, log4js, art_template, };
14
+ import artTemplate from 'art-template';
15
+ export { fs, ws, path, axios, lodash, moment, express, chalk, chokidar, level, schedule, yaml, log4js, artTemplate as art_template, };
package/lib/modules.js CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable camelcase */
1
2
  import fs from 'fs';
2
3
  import path from 'path';
3
4
  import ws from 'ws';
@@ -11,5 +12,5 @@ import { Level as level } from 'level';
11
12
  import schedule from 'node-schedule';
12
13
  import yaml from 'yaml';
13
14
  import log4js from 'log4js';
14
- import art_template from 'art-template';
15
- export { fs, ws, path, axios, lodash, moment, express, chalk, chokidar, level, schedule, yaml, log4js, art_template, };
15
+ import artTemplate from 'art-template';
16
+ export { fs, ws, path, axios, lodash, moment, express, chalk, chokidar, level, schedule, yaml, log4js, artTemplate as art_template, };
@@ -0,0 +1,24 @@
1
+ import { KarinNoticeType, KarinRequestType, NoticeEvent, NoticeSubType, RequestEvent, RequestSubType } from '../event/index.js';
2
+ export interface AcceptDict {
3
+ ['request']: KarinRequestType;
4
+ ['request.private_apply']: RequestEvent<RequestSubType.PrivateApply>;
5
+ ['request.group_apply']: RequestEvent<RequestSubType.GroupApply>;
6
+ ['request.invited_group']: RequestEvent<RequestSubType.InvitedGroup>;
7
+ ['notice']: KarinNoticeType;
8
+ ['notice.private_poke']: NoticeEvent<NoticeSubType.PrivatePoke>;
9
+ ['notice.private_recall']: NoticeEvent<NoticeSubType.PrivateRecall>;
10
+ ['notice.private_file_uploaded']: NoticeEvent<NoticeSubType.PrivateFileUploaded>;
11
+ ['notice.group_poke']: NoticeEvent<NoticeSubType.GroupPoke>;
12
+ ['notice.group_recall']: NoticeEvent<NoticeSubType.GroupRecall>;
13
+ ['notice.group_file_uploaded']: NoticeEvent<NoticeSubType.GroupFileUploaded>;
14
+ ['notice.group_card_changed']: NoticeEvent<NoticeSubType.GroupCardChanged>;
15
+ ['notice.group_member_unique_title_changed']: NoticeEvent<NoticeSubType.GroupMemberUniqueTitleChanged>;
16
+ ['notice.group_essence_changed']: NoticeEvent<NoticeSubType.GroupEssenceChanged>;
17
+ ['notice.group_member_increase']: NoticeEvent<NoticeSubType.GroupMemberIncrease>;
18
+ ['notice.group_member_decrease']: NoticeEvent<NoticeSubType.GroupMemberDecrease>;
19
+ ['notice.group_admin_changed']: NoticeEvent<NoticeSubType.GroupAdminChanged>;
20
+ ['notice.group_sign_in']: NoticeEvent<NoticeSubType.GroupSignIn>;
21
+ ['notice.group_member_ban']: NoticeEvent<NoticeSubType.GroupMemberBan>;
22
+ ['notice.group_whole_ban']: NoticeEvent<NoticeSubType.GroupWholeBan>;
23
+ ['notice.group_message_reaction']: NoticeEvent<NoticeSubType.GroupMessageReaction>;
24
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,129 +1,67 @@
1
1
  import { Contact, KarinElement, Role, Sender } from '../index.js';
2
- /**
3
- * - 基本消息结构
4
- */
2
+ /** 基本消息结构 */
5
3
  export interface PushMessageBody {
6
- /**
7
- * - 消息发送时间
8
- */
4
+ /** 消息发送时间 */
9
5
  time: number;
10
- /**
11
- * - 消息ID
12
- */
6
+ /** 消息ID */
13
7
  message_id: string;
14
- /**
15
- * - 消息序列号
16
- */
8
+ /** 消息序列号 */
17
9
  message_seq: number;
18
- /**
19
- * - 消息来源
20
- */
10
+ /** 消息来源 */
21
11
  contact: Contact;
22
- /**
23
- * - 消息发送者
24
- */
12
+ /** 消息发送者 */
25
13
  sender: Sender;
26
- /**
27
- * - 消息元素
28
- */
14
+ /** 消息元素 */
29
15
  elements: Array<KarinElement>;
30
16
  }
31
- /**
32
- * - 精华消息返回的结构
33
- */
17
+ /** 精华消息返回的结构 */
34
18
  export interface EssenceMessageBody {
35
- /**
36
- * - 群ID
37
- */
19
+ /** 群ID */
38
20
  group_id: string;
39
- /**
40
- * - 发送者uid
41
- */
21
+ /** 发送者uid */
42
22
  sender_uid: string;
43
- /**
44
- * - 发送者uin
45
- */
23
+ /** 发送者uin */
46
24
  sender_uin: string;
47
- /**
48
- * - 发送者昵称
49
- */
25
+ /** 发送者昵称 */
50
26
  sender_nick: string;
51
- /**
52
- * - 操作者uid
53
- */
27
+ /** 操作者uid */
54
28
  operator_uid: string;
55
- /**
56
- * - 操作者uin
57
- */
29
+ /** 操作者uin */
58
30
  operator_uin: string;
59
- /**
60
- * - 操作者昵称
61
- */
31
+ /** 操作者昵称 */
62
32
  operator_nick: string;
63
- /**
64
- * - 操作时间
65
- */
33
+ /** 操作时间 */
66
34
  operation_time: number;
67
- /**
68
- * - 消息时间
69
- */
35
+ /** 消息时间 */
70
36
  message_time: number;
71
- /**
72
- * - 消息ID
73
- */
37
+ /** 消息ID */
74
38
  message_id: string;
75
- /**
76
- * - 消息序列号
77
- */
39
+ /** 消息序列号 */
78
40
  message_seq: number;
79
- /**
80
- * - 被设置的精华消息元素文本
81
- */
41
+ /** 被设置的精华消息元素文本 */
82
42
  json_elements: string;
83
43
  }
84
- /**
85
- * - QQ好友信息
86
- */
44
+ /** QQ好友信息 */
87
45
  export interface FriendInfo {
88
- /**
89
- * - 用户UID
90
- */
46
+ /** 用户UID */
91
47
  uid: string;
92
- /**
93
- * - 用户UIN
94
- */
48
+ /** 用户UIN */
95
49
  uin: string;
96
- /**
97
- * - qid
98
- */
50
+ /** qid */
99
51
  qid: string;
100
- /**
101
- * - 名称
102
- */
52
+ /** 名称 */
103
53
  nick: string;
104
- /**
105
- * - 备注
106
- */
54
+ /** 备注 */
107
55
  remark?: string;
108
- /**
109
- * - 用户等级
110
- */
56
+ /** 用户等级 */
111
57
  level?: number;
112
- /**
113
- * - 生日
114
- */
58
+ /** 生日 */
115
59
  birthday?: string;
116
- /**
117
- * - 登录天数
118
- */
60
+ /** 登录天数 */
119
61
  login_day?: number;
120
- /**
121
- * - 点赞数
122
- */
62
+ /** 点赞数 */
123
63
  vote_cnt?: number;
124
- /**
125
- * - 学校是否已核实
126
- */
64
+ /** 学校是否已核实 */
127
65
  is_school_verified?: boolean;
128
66
  /**
129
67
  * - 年龄
@@ -158,242 +96,128 @@ export interface FriendInfo {
158
96
  voted?: boolean;
159
97
  };
160
98
  }
161
- /**
162
- * - QQ群信息
163
- */
99
+ /** QQ群信息 */
164
100
  export interface GroupInfo {
165
- /**
166
- * - 群ID
167
- */
101
+ /** 群ID */
168
102
  group_id: string;
169
- /**
170
- * - 群名称
171
- */
103
+ /** 群名称 */
172
104
  group_name: string;
173
- /**
174
- * - 群备注
175
- */
105
+ /** 群备注 */
176
106
  group_remark?: string;
177
- /**
178
- * - 群主UID
179
- */
107
+ /** 群主UID */
180
108
  owner: string;
181
- /**
182
- * - 群管理员UID列表
183
- */
109
+ /** 群管理员UID列表 */
184
110
  admins: Array<string>;
185
- /**
186
- * - 最大成员数
187
- */
111
+ /** 最大成员数 */
188
112
  max_member_count: number;
189
- /**
190
- * - 当前成员数
191
- */
113
+ /** 当前成员数 */
192
114
  member_count: number;
193
- /**
194
- * - 群UIN
195
- */
115
+ /** 群UIN */
196
116
  group_uin?: string;
197
- /**
198
- * - 群描述
199
- */
117
+ /** 群描述 */
200
118
  group_desc?: string;
201
119
  }
202
- /**
203
- * - 群成员信息
204
- */
120
+ /** 群成员信息 */
205
121
  export interface GroupMemberInfo {
206
- /**
207
- * - 用户UID
208
- */
122
+ /** 用户UID */
209
123
  uid: string;
210
- /**
211
- * - 用户UIN
212
- */
124
+ /** 用户UIN */
213
125
  uin: string;
214
- /**
215
- * - 用户角色
216
- */
126
+ /** 用户角色 */
217
127
  role: Role;
218
- /**
219
- * - 用户昵称
220
- */
128
+ /** 用户昵称 */
221
129
  nick: string;
222
- /**
223
- * - 年龄
224
- */
130
+ /** 年龄 */
225
131
  age: number;
226
- /**
227
- * - 群内头衔
228
- */
132
+ /** 群内头衔 */
229
133
  unique_title: string;
230
- /**
231
- * - 群内头衔过期时间
232
- */
134
+ /** 群内头衔过期时间 */
233
135
  unique_title_expire_time: number;
234
- /**
235
- * - 群名片
236
- */
136
+ /** 群名片 */
237
137
  card?: string;
238
- /**
239
- * - 加群时间
240
- */
138
+ /** 加群时间 */
241
139
  join_time?: number;
242
- /**
243
- * - 最后活跃时间
244
- */
140
+ /** 最后活跃时间 */
245
141
  last_active_time?: number;
246
- /**
247
- * - 用户等级
248
- */
142
+ /** 用户等级 */
249
143
  level: number;
250
- /**
251
- * - 禁言时间
252
- */
144
+ /** 禁言时间 */
253
145
  shut_up_time: number;
254
- /**
255
- * - 距离
256
- */
146
+ /** 距离 */
257
147
  distance?: number;
258
- /**
259
- * - 荣誉列表
260
- */
148
+ /** 荣誉列表 */
261
149
  honors?: Array<number>;
262
- /**
263
- * - 是否好友
264
- */
150
+ /** 是否好友 */
265
151
  unfriendly?: boolean;
266
- /**
267
- * - 是否可修改群名片
268
- */
152
+ /** 是否可修改群名片 */
269
153
  card_changeable?: boolean;
270
154
  }
271
155
  /**
272
156
  * 群荣誉信息
273
157
  */
274
158
  export interface GroupHonorInfo {
275
- /**
276
- * - 荣誉成员uid
277
- */
159
+ /** 荣誉成员uid */
278
160
  uid: string;
279
- /**
280
- * - 荣誉成员uin
281
- */
161
+ /** 荣誉成员uin */
282
162
  uin: string;
283
- /**
284
- * - 荣誉成员昵称
285
- */
163
+ /** 荣誉成员昵称 */
286
164
  nick: string;
287
- /**
288
- * - 荣誉名称
289
- */
165
+ /** 荣誉名称 */
290
166
  honor_name: string;
291
- /**
292
- * - 荣誉图标url
293
- */
167
+ /** 荣誉图标url */
294
168
  avatar: string;
295
- /**
296
- * - 荣誉id
297
- */
169
+ /** 荣誉id */
298
170
  id: number;
299
- /**
300
- * - 荣誉描述
301
- */
171
+ /** 荣誉描述 */
302
172
  description: string;
303
173
  }
304
- /**
305
- * - 群文件信息
306
- */
174
+ /** 群文件信息 */
307
175
  export interface GroupFileInfo {
308
- /**
309
- * - 文件ID
310
- */
176
+ /** 文件ID */
311
177
  file_id: string;
312
- /**
313
- * - 文件名
314
- */
178
+ /** 文件名 */
315
179
  file_name: string;
316
- /**
317
- * - 文件大小
318
- */
180
+ /** 文件大小 */
319
181
  file_size: number;
320
- /**
321
- * - 上传时间
322
- */
182
+ /** 上传时间 */
323
183
  upload_time: number;
324
- /**
325
- * - 过期时间
326
- */
184
+ /** 过期时间 */
327
185
  expire_time: number;
328
- /**
329
- * - 修改时间
330
- */
186
+ /** 修改时间 */
331
187
  modify_time: number;
332
- /**
333
- * - 下载次数
334
- */
188
+ /** 下载次数 */
335
189
  download_times: number;
336
- /**
337
- * - 上传者UID
338
- */
190
+ /** 上传者UID */
339
191
  uploader: string;
340
- /**
341
- * - 上传者昵称
342
- */
192
+ /** 上传者昵称 */
343
193
  uploader_name: string;
344
- /**
345
- * - SHA1
346
- */
194
+ /** SHA1 */
347
195
  sha: string;
348
- /**
349
- * - SHA3
350
- */
196
+ /** SHA3 */
351
197
  sha3: string;
352
- /**
353
- * - MD5
354
- */
198
+ /** MD5 */
355
199
  md5: string;
356
200
  }
357
- /**
358
- * - 群文件夹信息
359
- */
201
+ /** 群文件夹信息 */
360
202
  export interface GroupFolderInfo {
361
- /**
362
- * - 文件夹ID
363
- */
203
+ /** 文件夹ID */
364
204
  folder_id: string;
365
- /**
366
- * - 文件夹名
367
- */
205
+ /** 文件夹名 */
368
206
  folder_name: string;
369
- /**
370
- * - 文件数量
371
- */
207
+ /** 文件数量 */
372
208
  total_file_count: number;
373
- /**
374
- * - 创建时间
375
- */
209
+ /** 创建时间 */
376
210
  create_time: number;
377
- /**
378
- * - 创建者UID
379
- */
211
+ /** 创建者UID */
380
212
  creator: string;
381
- /**
382
- * - 创建者昵称
383
- */
213
+ /** 创建者昵称 */
384
214
  creator_name: string;
385
215
  }
386
216
  export interface GetRemainCountAtAllResponse {
387
- /**
388
- * - 是否允许at全体成员
389
- */
217
+ /** 是否允许at全体成员 */
390
218
  access_at_all: boolean;
391
- /**
392
- * - 全群剩余次数
393
- */
219
+ /** 全群剩余次数 */
394
220
  remain_count_for_group: number;
395
- /**
396
- * - 个人剩余次数
397
- */
221
+ /** 个人剩余次数 */
398
222
  remain_count_for_self: number;
399
223
  }
@@ -322,7 +322,7 @@ export interface KarinAdapter {
322
322
  }>;
323
323
  /**
324
324
  * 设置好友请求结果
325
- * @param request_id - 请求ID
325
+ * @param request_id - 请求事件ID
326
326
  * @param is_approve - 是否同意
327
327
  * @param remark - 好友备注 同意时有效
328
328
  * @returns 设置结果
@@ -330,7 +330,7 @@ export interface KarinAdapter {
330
330
  SetFriendApplyResult(request_id: string, is_approve: boolean, remark?: string): Promise<void | boolean>;
331
331
  /**
332
332
  * 设置申请加入群请求结果
333
- * @param request_id - 请求ID
333
+ * @param request_id - 请求事件ID
334
334
  * @param is_approve - 是否同意
335
335
  * @param deny_reason - 拒绝理由 拒绝时有效
336
336
  * @returns 此接口标准是无返回值的,karin在此拓展可选返回一个boolean
@@ -338,7 +338,7 @@ export interface KarinAdapter {
338
338
  SetGroupApplyResult(request_id: string, is_approve: boolean, deny_reason?: string): Promise<void | boolean>;
339
339
  /**
340
340
  * 设置邀请加入群请求结果
341
- * @param request_id - 请求ID
341
+ * @param request_id - 请求事件ID
342
342
  * @param is_approve - 是否同意
343
343
  * @returns 此接口标准是无返回值的,karin在此拓展可选返回一个boolean
344
344
  */
@@ -141,21 +141,13 @@ export interface Config {
141
141
  *
142
142
  */
143
143
  AdapterInput: {
144
- /**
145
- * - 是否开启input适配器
146
- */
144
+ /** 是否开启input适配器 */
147
145
  enable: boolean;
148
- /**
149
- * - 是否将语音、图片、视频消息转为文件 转为文件后可通过url访问
150
- */
146
+ /** 是否将语音、图片、视频消息转为文件 转为文件后可通过url访问 */
151
147
  msgToFile: boolean;
152
- /**
153
- * - url访问token 如果为 AdapterInput 每次启动后会重新生成
154
- */
148
+ /** url访问token 如果为 AdapterInput 每次启动后会重新生成 */
155
149
  token: string;
156
- /**
157
- * - ip地址
158
- */
150
+ /** ip地址 */
159
151
  ip: string;
160
152
  };
161
153
  /**