node-karin 0.0.3

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 (107) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +57 -0
  3. package/config/defSet/App.yaml +37 -0
  4. package/config/defSet/config.yaml +43 -0
  5. package/config/defSet/group.yaml +18 -0
  6. package/config/defSet/pm2.yaml +21 -0
  7. package/config/defSet/redis.yaml +18 -0
  8. package/config/defSet/server.yaml +42 -0
  9. package/config/view/App.yaml +74 -0
  10. package/config/view/config.yaml +100 -0
  11. package/config/view/group.yaml +62 -0
  12. package/config/view/pm2.yaml +41 -0
  13. package/config/view/redis.yaml +25 -0
  14. package/config/view/server.yaml +93 -0
  15. package/lib/adapter/onebot/onebot11.d.ts +430 -0
  16. package/lib/adapter/onebot/onebot11.js +1302 -0
  17. package/lib/core/init.d.ts +0 -0
  18. package/lib/core/init.js +4 -0
  19. package/lib/core/karin.d.ts +72 -0
  20. package/lib/core/karin.js +51 -0
  21. package/lib/core/listener.d.ts +121 -0
  22. package/lib/core/listener.js +188 -0
  23. package/lib/core/plugin.app.d.ts +15 -0
  24. package/lib/core/plugin.app.js +18 -0
  25. package/lib/core/plugin.d.ts +182 -0
  26. package/lib/core/plugin.js +138 -0
  27. package/lib/core/plugin.loader.d.ts +149 -0
  28. package/lib/core/plugin.loader.js +462 -0
  29. package/lib/core/server.d.ts +26 -0
  30. package/lib/core/server.js +213 -0
  31. package/lib/db/level.d.ts +20 -0
  32. package/lib/db/level.js +38 -0
  33. package/lib/db/redis.d.ts +41 -0
  34. package/lib/db/redis.js +137 -0
  35. package/lib/db/redis_level.d.ts +113 -0
  36. package/lib/db/redis_level.js +290 -0
  37. package/lib/event/event.d.ts +138 -0
  38. package/lib/event/event.handler.d.ts +29 -0
  39. package/lib/event/event.handler.js +142 -0
  40. package/lib/event/event.js +120 -0
  41. package/lib/event/message.d.ts +102 -0
  42. package/lib/event/message.handler.d.ts +25 -0
  43. package/lib/event/message.handler.js +240 -0
  44. package/lib/event/message.js +70 -0
  45. package/lib/event/notice.d.ts +49 -0
  46. package/lib/event/notice.js +15 -0
  47. package/lib/event/request.d.ts +49 -0
  48. package/lib/event/request.js +15 -0
  49. package/lib/event/review.handler.d.ts +54 -0
  50. package/lib/event/review.handler.js +382 -0
  51. package/lib/index.d.ts +23 -0
  52. package/lib/index.js +40 -0
  53. package/lib/renderer/app.d.ts +53 -0
  54. package/lib/renderer/app.js +93 -0
  55. package/lib/renderer/base.d.ts +30 -0
  56. package/lib/renderer/base.js +71 -0
  57. package/lib/renderer/client.d.ts +30 -0
  58. package/lib/renderer/client.js +159 -0
  59. package/lib/renderer/http.d.ts +19 -0
  60. package/lib/renderer/http.js +51 -0
  61. package/lib/renderer/server.d.ts +42 -0
  62. package/lib/renderer/server.js +112 -0
  63. package/lib/renderer/wormhole.d.ts +1 -0
  64. package/lib/renderer/wormhole.js +154 -0
  65. package/lib/types/adapter.d.ts +575 -0
  66. package/lib/types/adapter.js +1 -0
  67. package/lib/types/config.d.ts +327 -0
  68. package/lib/types/config.js +1 -0
  69. package/lib/types/element.d.ts +576 -0
  70. package/lib/types/element.js +1 -0
  71. package/lib/types/index.d.ts +8 -0
  72. package/lib/types/index.js +8 -0
  73. package/lib/types/logger.d.ts +109 -0
  74. package/lib/types/logger.js +1 -0
  75. package/lib/types/onebots11.d.ts +1371 -0
  76. package/lib/types/onebots11.js +1 -0
  77. package/lib/types/plugin.d.ts +282 -0
  78. package/lib/types/plugin.js +1 -0
  79. package/lib/types/render.d.ts +111 -0
  80. package/lib/types/render.js +1 -0
  81. package/lib/types/reply.d.ts +40 -0
  82. package/lib/types/reply.js +1 -0
  83. package/lib/types/types.d.ts +898 -0
  84. package/lib/types/types.js +1 -0
  85. package/lib/utils/YamlEditor.d.ts +62 -0
  86. package/lib/utils/YamlEditor.js +208 -0
  87. package/lib/utils/button.d.ts +49 -0
  88. package/lib/utils/button.js +79 -0
  89. package/lib/utils/common.d.ts +123 -0
  90. package/lib/utils/common.js +413 -0
  91. package/lib/utils/config.d.ts +72 -0
  92. package/lib/utils/config.js +254 -0
  93. package/lib/utils/exec.d.ts +22 -0
  94. package/lib/utils/exec.js +36 -0
  95. package/lib/utils/ffmpeg.d.ts +12 -0
  96. package/lib/utils/ffmpeg.js +25 -0
  97. package/lib/utils/handler.d.ts +76 -0
  98. package/lib/utils/handler.js +102 -0
  99. package/lib/utils/logger.d.ts +3 -0
  100. package/lib/utils/logger.js +104 -0
  101. package/lib/utils/segment.d.ts +276 -0
  102. package/lib/utils/segment.js +448 -0
  103. package/lib/utils/update.d.ts +69 -0
  104. package/lib/utils/update.js +151 -0
  105. package/lib/utils/updateVersion.d.ts +33 -0
  106. package/lib/utils/updateVersion.js +145 -0
  107. package/package.json +92 -0
@@ -0,0 +1,430 @@
1
+ /// <reference types="node" />
2
+ import WebSocket from 'ws';
3
+ import { IncomingMessage } from 'http';
4
+ import { KarinAdapter } from '../../types/adapter.js';
5
+ import { CustomNodeSegment, OneBot11Api, OneBot11ApiParamsType, OneBot11Segment } from '../../types/onebots11.js';
6
+ import { Scene, contact } from '../../types/types.js';
7
+ import { KarinElement } from '../../types/element.js';
8
+ /**
9
+ * @class OneBot11
10
+ * @extends KarinAdapter
11
+ */
12
+ export declare class OneBot11 implements KarinAdapter {
13
+ #private;
14
+ /**
15
+ * 机器人QQ号
16
+ */
17
+ self_id: string;
18
+ /**
19
+ * - 重连次数 仅正向ws使用
20
+ */
21
+ index: number;
22
+ socket: WebSocket;
23
+ account: KarinAdapter['account'];
24
+ adapter: KarinAdapter['adapter'];
25
+ version: KarinAdapter['version'];
26
+ constructor();
27
+ /**
28
+ * 反向ws初始化
29
+ */
30
+ server(socket: WebSocket, request: IncomingMessage): Promise<void>;
31
+ /**
32
+ * 正向ws初始化
33
+ * @param connect - WebSocket连接地址
34
+ */
35
+ client(connect: string): Promise<void>;
36
+ /**
37
+ * 获取当前登录号信息
38
+ */
39
+ getSelf(): Promise<void>;
40
+ /** 是否初始化 */
41
+ get isInit(): Promise<unknown>;
42
+ /**
43
+ * onebot11转karin
44
+ * @param {Array<{type: string, data: any}>} data onebot11格式消息
45
+ * @return karin格式消息
46
+ * */
47
+ AdapterConvertKarin(data: Array<OneBot11Segment>): (import("../../types/element.js").TextElement | import("../../types/element.js").AtElement | import("../../types/element.js").FaceElement | import("../../types/element.js").ReplyElement | import("../../types/element.js").ImageElement | import("../../types/element.js").VoiceElement | import("../../types/element.js").VideoElement | import("../../types/element.js").PokeElement | import("../../types/element.js").LocationElement | import("../../types/element.js").ForwardElement | import("../../types/element.js").ContactElement | import("../../types/element.js").JsonElement | import("../../types/element.js").XmlElement)[];
48
+ /**
49
+ * karin转onebot11
50
+ * @param data karin格式消息
51
+ * @return {Array<{type: string, data: any}>} onebot11格式消息
52
+ * */
53
+ KarinConvertAdapter(data: Array<KarinElement>): (import("../../types/element.js").BubbleFaceElement | import("../../types/element.js").RecordElement | import("../../types/element.js").BasketballElement | import("../../types/element.js").DiceElement | import("../../types/element.js").RpsElement | import("../../types/element.js").WeatherElement | import("../../types/element.js").LocationElement | import("../../types/element.js").ShareElement | import("../../types/element.js").GiftElement | import("../../types/element.js").MarketFaceElement | import("../../types/element.js").ContactElement | import("../../types/element.js").RowElement | import("../../types/element.js").LongMsgElement | {
54
+ type: string;
55
+ data: {
56
+ text: string;
57
+ id?: undefined;
58
+ qq?: undefined;
59
+ file?: undefined;
60
+ data?: undefined;
61
+ magic?: undefined;
62
+ type?: undefined;
63
+ };
64
+ } | {
65
+ type: string;
66
+ data: {
67
+ id: number;
68
+ text?: undefined;
69
+ qq?: undefined;
70
+ file?: undefined;
71
+ data?: undefined;
72
+ magic?: undefined;
73
+ type?: undefined;
74
+ };
75
+ } | {
76
+ type: string;
77
+ data: {
78
+ qq: string;
79
+ text?: undefined;
80
+ id?: undefined;
81
+ file?: undefined;
82
+ data?: undefined;
83
+ magic?: undefined;
84
+ type?: undefined;
85
+ };
86
+ } | {
87
+ type: string;
88
+ data: {
89
+ id: string;
90
+ text?: undefined;
91
+ qq?: undefined;
92
+ file?: undefined;
93
+ data?: undefined;
94
+ magic?: undefined;
95
+ type?: undefined;
96
+ };
97
+ } | {
98
+ type: "file" | "video" | "image";
99
+ data: {
100
+ file: string;
101
+ text?: undefined;
102
+ id?: undefined;
103
+ qq?: undefined;
104
+ data?: undefined;
105
+ magic?: undefined;
106
+ type?: undefined;
107
+ };
108
+ } | {
109
+ type: "json" | "xml";
110
+ data: {
111
+ data: string;
112
+ text?: undefined;
113
+ id?: undefined;
114
+ qq?: undefined;
115
+ file?: undefined;
116
+ magic?: undefined;
117
+ type?: undefined;
118
+ };
119
+ } | {
120
+ type: string;
121
+ data: {
122
+ file: string;
123
+ magic: boolean;
124
+ text?: undefined;
125
+ id?: undefined;
126
+ qq?: undefined;
127
+ data?: undefined;
128
+ type?: undefined;
129
+ };
130
+ } | {
131
+ type: "markdown";
132
+ data: {
133
+ content: string;
134
+ custom_template_id: string;
135
+ params: {
136
+ key: string;
137
+ values: string[];
138
+ }[];
139
+ text?: undefined;
140
+ id?: undefined;
141
+ qq?: undefined;
142
+ file?: undefined;
143
+ data?: undefined;
144
+ magic?: undefined;
145
+ type?: undefined;
146
+ };
147
+ } | {
148
+ type: string;
149
+ data: {
150
+ type: number;
151
+ id: number;
152
+ text?: undefined;
153
+ qq?: undefined;
154
+ file?: undefined;
155
+ data?: undefined;
156
+ magic?: undefined;
157
+ };
158
+ })[];
159
+ /**
160
+ * 专属当前Bot的日志打印方法
161
+ */
162
+ logger(level: 'info' | 'error' | 'trace' | 'debug' | 'mark' | 'warn' | 'fatal', ...args: any[]): void;
163
+ /**
164
+ * 获取头像url
165
+ * @param 头像大小,默认`0`
166
+ * @param 用户qq,默认为机器人QQ
167
+ * @returns 头像的url地址
168
+ */
169
+ getAvatarUrl(uid?: string, size?: number): string;
170
+ /**
171
+ * 获取群头像
172
+ * @param group_id - 群号
173
+ * @param size - 头像大小,默认`0`
174
+ * @param history - 历史头像记录,默认`0`,若要获取历史群头像则填写1,2,3...
175
+ * @returns - 群头像的url地址
176
+ */
177
+ getGroupAvatar(group_id: string, size?: number, history?: number): string;
178
+ /**
179
+ * 发送私聊消息
180
+ * @param user_id - 用户ID
181
+ * @param message - 要发送的内容
182
+ * @returns - 消息ID
183
+ */
184
+ send_private_msg(user_id: string, message: Array<KarinElement>): Promise<{
185
+ message_id?: string;
186
+ }>;
187
+ /**
188
+ * 发送群消息
189
+ * @param group_id - 群号
190
+ * @param message - 要发送的内容
191
+ * @returns - 消息ID
192
+ */
193
+ send_group_msg(group_id: string, message: Array<KarinElement>): Promise<any>;
194
+ /**
195
+ * 发送消息
196
+ *
197
+ * @param contact
198
+ * @param elements
199
+ * @returns - 消息ID
200
+ */
201
+ SendMessage(contact: contact, elements: Array<KarinElement>): Promise<any>;
202
+ /**
203
+ * 上传合并转发消息
204
+ * @param contact - 联系人信息
205
+ * @param elements - nodes
206
+ * @returns - 资源id
207
+ * */
208
+ UploadForwardMessage(contact: {
209
+ scene: Scene;
210
+ peer: string;
211
+ }, elements: any[]): Promise<any>;
212
+ /**
213
+ * 通过资源id发送转发消息
214
+ * @param contact - 联系人信息
215
+ * @param id - 资源id
216
+ * */
217
+ SendMessageByResId(contact: {
218
+ scene: Scene;
219
+ peer: string;
220
+ }, id: any): Promise<{
221
+ message_id: any;
222
+ message_time: number;
223
+ }>;
224
+ /**
225
+ * 撤回消息
226
+ * @param {null} [_contact] - ob11无需提供contact参数
227
+ * @param message_id - 消息ID
228
+ * @returns {Promise<null>}
229
+ */
230
+ RecallMessage(_contact: contact, message_id: string): Promise<any>;
231
+ /**
232
+ * 获取消息
233
+ * @param {null} [_contact] - ob11无需提供contact参数
234
+ * @param message_id - 消息ID
235
+ * @returns {Promise<object>} - 消息内容
236
+ */
237
+ GetMessage(_contact: any, message_id: any): Promise<any>;
238
+ /**
239
+ * 获取msg_id获取历史消息
240
+ * @description 此api各平台实现不同,暂时废弃
241
+ */
242
+ GetHistoryMessage(contact: contact, start_message_id: string, count?: number): Promise<{
243
+ time: any;
244
+ message_id: any;
245
+ message_seq: any;
246
+ contact: contact;
247
+ sender: any;
248
+ elements: (import("../../types/element.js").TextElement | import("../../types/element.js").AtElement | import("../../types/element.js").FaceElement | import("../../types/element.js").ReplyElement | import("../../types/element.js").ImageElement | import("../../types/element.js").VoiceElement | import("../../types/element.js").VideoElement | import("../../types/element.js").PokeElement | import("../../types/element.js").LocationElement | import("../../types/element.js").ForwardElement | import("../../types/element.js").ContactElement | import("../../types/element.js").JsonElement | import("../../types/element.js").XmlElement)[];
249
+ }[]>;
250
+ /**
251
+ * 获取合并转发消息
252
+ */
253
+ get_forward_msg(id: string): Promise<Array<CustomNodeSegment>>;
254
+ /**
255
+ * 发送好友赞
256
+ * @param target_uid_or_uin - 用户ID
257
+ * @param vote_count - 赞的次数,默认为`10`
258
+ */
259
+ VoteUser(target_uid_or_uin: string, vote_count?: number): Promise<void>;
260
+ /**
261
+ * 群组踢人
262
+ */
263
+ KickMember(group_id: string, target_uid_or_uin: string, reject_add_request?: boolean, kick_reason?: string): Promise<void>;
264
+ /**
265
+ * 禁言用户
266
+ * @param group_id - 群号
267
+ * @param target_uid_or_uin - 用户ID
268
+ * @param duration - 禁言时长,单位秒,0 表示取消禁言
269
+ */
270
+ BanMember(group_id: string, target_uid_or_uin: string, duration: number): Promise<void>;
271
+ /**
272
+ * 群组全员禁言
273
+ * @param group_id - 群号
274
+ * @param enable - 是否全员禁言
275
+ */
276
+ SetGroupWholeBan(group_id: string, enable?: boolean): Promise<void>;
277
+ /**
278
+ * 设置群管理员
279
+ * @param {{
280
+ * group_id:string,
281
+ * target_uid?:string,
282
+ * target_uin?:string,
283
+ * is_admin:boolean
284
+ * }} options - 设置管理员选项
285
+ * @param options.group_id - 群组ID
286
+ * @param options.target_uid - 要设置为管理员的用户uid
287
+ * @param options.target_uin - 要设置为管理员的用户uin
288
+ * @param options.is_admin - 是否设置为管理员
289
+ * @returns {Promise<SetGroupAdminResponse>} - 设置群管理员操作的响应
290
+ */
291
+ SetGroupAdmin(group_id: string, target_uid_or_uin: string, is_admin: boolean): Promise<void>;
292
+ /**
293
+ * 群组匿名
294
+ * @param group_id - 群号
295
+ * @param enable - 是否允许匿名聊天
296
+ */
297
+ set_group_anonymous(group_id: string, enable?: boolean): Promise<void>;
298
+ /**
299
+ * 修改群名片
300
+ * @param group_id - 群号
301
+ * @param target_uid_or_uin - 目标用户ID
302
+ * @param card - 新名片
303
+ */
304
+ ModifyMemberCard(group_id: string, target_uid_or_uin: string, card: string): Promise<void>;
305
+ /**
306
+ * 设置群名
307
+ * @param group_id - 群号
308
+ * @param group_name - 新群名
309
+ */
310
+ ModifyGroupName(group_id: string, group_name: string): Promise<void>;
311
+ /**
312
+ * 退出群组
313
+ * @param group_id - 群号
314
+ * @param is_dismiss - 是否解散,如果登录号是群主,则仅在此项为 true 时能够解散
315
+ */
316
+ LeaveGroup(group_id: string, is_dismiss?: boolean): Promise<void>;
317
+ /**
318
+ * 设置群专属头衔
319
+ * @param group_id - 群号
320
+ * @param target_uid_or_uin - 目标用户ID
321
+ * @param special_title - 专属头衔
322
+ */
323
+ SetGroupUniqueTitle(group_id: string, target_uid_or_uin: string, unique_title: string): Promise<void>;
324
+ /**
325
+ * 获取登录号信息
326
+ */
327
+ GetCurrentAccount(): Promise<{
328
+ account_uid: string;
329
+ account_uin: string;
330
+ account_name: string;
331
+ }>;
332
+ /**
333
+ * 获取陌生人信息 不支持批量获取 只支持一个
334
+ * @param target_uid_or_uin - 目标用户ID
335
+ */
336
+ GetStrangerProfileCard(target_uid_or_uin: Array<string>): Promise<any[]>;
337
+ /**
338
+ * 获取好友列表
339
+ * @returns {Promise<Array<IFriendInfo>>} - 好友列表
340
+ */
341
+ GetFriendList(): Promise<any>;
342
+ /**
343
+ * 获取群信息
344
+ * @param group_id - 群号
345
+ * @param no_cache - 是否不使用缓存
346
+ * @returns {Promise<IGroupInfo>} - 群信息
347
+ */
348
+ GetGroupInfo(group_id: string, no_cache?: boolean): Promise<{
349
+ group_id: any;
350
+ group_name: any;
351
+ group_remark: any;
352
+ max_member_count: any;
353
+ member_count: any;
354
+ group_uin: any;
355
+ admins: any;
356
+ owner: any;
357
+ }>;
358
+ /**
359
+ * 获取群列表
360
+ */
361
+ GetGroupList(): Promise<any>;
362
+ /**
363
+ * 获取群成员信息
364
+ * @param group_id - 群号
365
+ * @param target_uid_or_uin - 目标用户ID
366
+ * @param refresh - 是否刷新缓存,默认为 false
367
+ */
368
+ GetGroupMemberInfo(group_id: string, target_uid_or_uin: string, refresh?: boolean): Promise<{
369
+ uid: any;
370
+ uin: any;
371
+ nick: any;
372
+ age: any;
373
+ unique_title: any;
374
+ unique_title_expire_time: any;
375
+ card: any;
376
+ join_time: any;
377
+ last_active_time: any;
378
+ shut_up_time: number;
379
+ level: number;
380
+ shut_up_timestamp: any;
381
+ unfriendly: any;
382
+ card_changeable: any;
383
+ }>;
384
+ /**
385
+ * 获取群成员列表
386
+ * @param group_id - 群号
387
+ * @param refresh - 是否刷新缓存,默认为 false
388
+ */
389
+ GetGroupMemberList(group_id: string, refresh?: boolean): Promise<any>;
390
+ /**
391
+ * 获取群荣誉信息
392
+ */
393
+ GetGroupHonor(group_id: string, refresh?: boolean): Promise<{
394
+ uin: string;
395
+ uid: string;
396
+ nick: string;
397
+ honor_name: string;
398
+ avatar: string;
399
+ id: number;
400
+ description: string;
401
+ }[]>;
402
+ /**
403
+ * 获取版本信息
404
+ */
405
+ GetVersion(): Promise<any>;
406
+ DownloadForwardMessage(): Promise<void>;
407
+ GetEssenceMessageList(): Promise<void>;
408
+ SetEssenceMessage(): Promise<void>;
409
+ DeleteEssenceMessage(): Promise<void>;
410
+ SetFriendApplyResult(): Promise<void>;
411
+ SetGroupApplyResultRequest(): Promise<void>;
412
+ SetInvitedJoinGroupResult(): Promise<void>;
413
+ ReactMessageWithEmojiRequest(): Promise<void>;
414
+ UploadPrivateFile(): Promise<void>;
415
+ UploadGroupFile(): Promise<void>;
416
+ sendForwardMessage(): Promise<{}>;
417
+ /**
418
+ * 发送API请求
419
+ * @param action - API断点
420
+ * @param {object} params - API参数
421
+ * @returns {Promise<any>} - API返回
422
+ */
423
+ SendApi(action: OneBot11Api, params?: OneBot11ApiParamsType[OneBot11Api], time?: number): Promise<any>;
424
+ }
425
+ declare const _default: {
426
+ type: string;
427
+ path: string;
428
+ adapter: typeof OneBot11;
429
+ };
430
+ export default _default;