mirai-js 2.7.4 → 2.8.0-2
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.
- package/dist/node/BaseType.d.ts +293 -47
- package/dist/node/Bot.d.ts +15 -10
- package/dist/node/index.d.ts +5 -3
- package/dist/node/typeHelpers.d.ts +2 -0
- package/package.json +2 -2
- package/src/BaseType.d.ts +293 -47
- package/src/Bot.d.ts +15 -10
- package/src/index.d.ts +5 -3
- package/src/typeHelpers.d.ts +2 -0
- package/src/util/isBrowserEnv.js +2 -2
- package/dist/node/ForwardNode.d.ts +0 -15
- package/dist/node/ForwardNode.js +0 -70
- package/dist/node/core/getGroupFileInfo.js +0 -77
- package/dist/node/core/getGroupFileList.js +0 -73
- package/dist/node/core/groupFileDelete.js +0 -73
- package/dist/node/core/groupFileMove.js +0 -76
- package/dist/node/core/groupFileRename.js +0 -76
- package/dist/node/core/sendFirendMessage.js +0 -68
- package/dist/node/core/uploadFileAndSend.js +0 -87
- package/index.ts +0 -7
package/dist/node/BaseType.d.ts
CHANGED
@@ -1,17 +1,20 @@
|
|
1
|
+
import { Bot } from './Bot';
|
2
|
+
import { ArrayToValuesUnion } from './typeHelpers';
|
3
|
+
|
1
4
|
/**
|
2
5
|
* 消息链的元素,是 mirai-api-http 接口需要的原始类型
|
3
6
|
* 有多种消息类型实现了该接口,已经全部列出
|
4
|
-
*
|
7
|
+
*
|
5
8
|
* @see https://github.com/project-mirai/mirai-api-http/blob/master/docs/MessageType.md
|
6
9
|
*/
|
7
10
|
interface MessageType {
|
8
|
-
type:
|
11
|
+
type: MessageChainElementTypes;
|
9
12
|
|
10
13
|
// Quote
|
11
|
-
id?: number
|
12
|
-
groupId?: number
|
13
|
-
senderId?: number
|
14
|
-
targetId?: number
|
14
|
+
id?: number;
|
15
|
+
groupId?: number;
|
16
|
+
senderId?: number;
|
17
|
+
targetId?: number;
|
15
18
|
origin?: MessageType[];
|
16
19
|
|
17
20
|
// At
|
@@ -71,7 +74,6 @@ interface BotConfigGetable {
|
|
71
74
|
getSessionKey(): string;
|
72
75
|
}
|
73
76
|
|
74
|
-
|
75
77
|
// 图片 id
|
76
78
|
type ImageId = string;
|
77
79
|
// 语音 id
|
@@ -81,41 +83,291 @@ type MessageId = number;
|
|
81
83
|
|
82
84
|
/**
|
83
85
|
* 消息类型
|
84
|
-
*
|
86
|
+
*
|
85
87
|
* @see https://github.com/project-mirai/mirai-api-http/blob/master/docs/EventType.md
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
| '
|
90
|
-
|
91
|
-
| '
|
92
|
-
| '
|
93
|
-
| '
|
94
|
-
| '
|
95
|
-
| '
|
96
|
-
| '
|
97
|
-
| '
|
98
|
-
| '
|
99
|
-
| '
|
100
|
-
| '
|
101
|
-
| '
|
102
|
-
| '
|
103
|
-
| '
|
104
|
-
| '
|
105
|
-
| '
|
106
|
-
| '
|
88
|
+
*/
|
89
|
+
|
90
|
+
type MessageChainElementTypes =
|
91
|
+
| 'Source'
|
92
|
+
| 'Quote'
|
93
|
+
| 'At'
|
94
|
+
| 'AtAll'
|
95
|
+
| 'Face'
|
96
|
+
| 'Plain'
|
97
|
+
| 'Image'
|
98
|
+
| 'FlashImage'
|
99
|
+
| 'Voice'
|
100
|
+
| 'Xml'
|
101
|
+
| 'Json'
|
102
|
+
| 'App'
|
103
|
+
| 'Poke'
|
104
|
+
| 'Dice'
|
105
|
+
| 'MarketFace'
|
106
|
+
| 'MusicShare'
|
107
|
+
| 'ForwardMessage'
|
108
|
+
| 'File'
|
109
|
+
| 'MiraiCode';
|
110
|
+
|
111
|
+
interface EventBaseType {
|
112
|
+
bot: Bot;
|
113
|
+
}
|
114
|
+
|
115
|
+
// Middleware
|
116
|
+
interface MessageExtendType {
|
117
|
+
text?: string;
|
118
|
+
classified?: {
|
119
|
+
[key in MessageChainElementTypes]?: any[];
|
120
|
+
};
|
121
|
+
messageId?: number;
|
122
|
+
waitFor?: any
|
123
|
+
unlock?: () => void;
|
124
|
+
}
|
125
|
+
type RequestEventMethods =
|
126
|
+
| 'agree'
|
127
|
+
| 'refuse'
|
128
|
+
| 'ignore'
|
129
|
+
| 'refuseAndAddBlacklist'
|
130
|
+
| 'ignoreAndAddBlacklist';
|
131
|
+
|
132
|
+
type RequestEventExtendType = {
|
133
|
+
[key in RequestEventMethods]?: () => void;
|
134
|
+
};
|
135
|
+
|
136
|
+
interface Member {
|
137
|
+
id: number;
|
138
|
+
memberName: string;
|
139
|
+
specialTitle: string;
|
140
|
+
permission: GroupPermission;
|
141
|
+
joinTimestamp: number;
|
142
|
+
lastSpeakTimestamp: number;
|
143
|
+
muteTimeRemaining: number;
|
144
|
+
}
|
145
|
+
|
146
|
+
interface GroupSenderType {
|
147
|
+
id: number;
|
148
|
+
name: string;
|
149
|
+
permission: GroupPermission;
|
150
|
+
}
|
151
|
+
|
152
|
+
interface Friend {
|
153
|
+
id: number,
|
154
|
+
nickname: string,
|
155
|
+
remark: string;
|
156
|
+
}
|
157
|
+
|
158
|
+
interface EventEntityMap {
|
159
|
+
error: {
|
160
|
+
code: number;
|
161
|
+
} & EventBaseType,
|
162
|
+
close: {
|
163
|
+
reason: string;
|
164
|
+
} & EventBaseType,
|
165
|
+
'unexpected-response': {
|
166
|
+
reason: string;
|
167
|
+
} & EventBaseType,
|
168
|
+
GroupMessage: {
|
169
|
+
type: 'GroupMessage';
|
170
|
+
sender: Member & { group: GroupSenderType },
|
171
|
+
messageChain: MessageType[];
|
172
|
+
} & EventBaseType &
|
173
|
+
MessageExtendType,
|
174
|
+
FriendMessage: {
|
175
|
+
type: 'FriendMessage';
|
176
|
+
messageChain: MessageType[];
|
177
|
+
sender: Friend
|
178
|
+
} & EventBaseType &
|
179
|
+
MessageExtendType,
|
180
|
+
BotOnlineEvent: {
|
181
|
+
type: 'BotOnlineEvent',
|
182
|
+
qq: number
|
183
|
+
} & EventBaseType,
|
184
|
+
BotOfflineEventActive: {
|
185
|
+
type: 'BotOfflineEventActive',
|
186
|
+
qq: number
|
187
|
+
} & EventBaseType,
|
188
|
+
BotOfflineEventForce: {
|
189
|
+
type: 'BotOfflineEventForce',
|
190
|
+
qq: number
|
191
|
+
} & EventBaseType,
|
192
|
+
BotOfflineEventDropped: {
|
193
|
+
type: 'BotOfflineEventDropped',
|
194
|
+
qq: number
|
195
|
+
} & EventBaseType,
|
196
|
+
BotReloginEvent: {
|
197
|
+
type: 'BotReloginEvent',
|
198
|
+
qq: number
|
199
|
+
} & EventBaseType,
|
200
|
+
BotGroupPermissionChangeEvent: {
|
201
|
+
type: 'BotGroupPermissionChangeEvent';
|
202
|
+
origin: Exclude<GroupPermission, 'OWNER'>;
|
203
|
+
current: GroupPermission;
|
204
|
+
group: GroupSenderType;
|
205
|
+
} & EventBaseType,
|
206
|
+
BotMuteEvent: {
|
207
|
+
type: 'BotMuteEvent',
|
208
|
+
durationSeconds: number,
|
209
|
+
operator: Member & { group: GroupSenderType };
|
210
|
+
} & EventBaseType,
|
211
|
+
BotUnmuteEvent: {
|
212
|
+
type: 'BotUnmuteEvent',
|
213
|
+
durationSeconds: number,
|
214
|
+
operator: Member & { group: GroupSenderType };
|
215
|
+
} & EventBaseType,
|
216
|
+
BotJoinGroupEvent: {
|
217
|
+
type: 'BotJoinGroupEvent',
|
218
|
+
group: GroupSenderType
|
219
|
+
operator?: null | Member & { group: GroupSenderType };
|
220
|
+
};
|
221
|
+
BotLeaveEventActive: {
|
222
|
+
type: 'BotLeaveEventActive',
|
223
|
+
group: GroupSenderType
|
224
|
+
};
|
225
|
+
BotLeaveEventKick: {
|
226
|
+
type: 'BotLeaveEventKick',
|
227
|
+
group: GroupSenderType
|
228
|
+
operator: Member & { group: GroupSenderType };
|
229
|
+
} & EventBaseType;
|
230
|
+
GroupRecallEvent: {
|
231
|
+
type: 'GroupRecallEvent'
|
232
|
+
authorId: number,
|
233
|
+
messageId: number,
|
234
|
+
time: number,
|
235
|
+
group: GroupSenderType
|
236
|
+
operator: Member & { group: GroupSenderType };
|
237
|
+
} & EventBaseType;
|
238
|
+
FriendRecallEvent: {
|
239
|
+
type: 'GroupRecallEvent'
|
240
|
+
authorId: number,
|
241
|
+
messageId: number,
|
242
|
+
time: number,
|
243
|
+
operator: number
|
244
|
+
} & EventBaseType;
|
245
|
+
GroupNameChangeEvent: {
|
246
|
+
type: 'GroupNameChangeEvent',
|
247
|
+
origin: string,
|
248
|
+
current: string,
|
249
|
+
group: GroupSenderType;
|
250
|
+
operator: Member & { group: GroupSenderType };
|
251
|
+
} & EventBaseType;
|
252
|
+
GroupEntranceAnnouncementChangeEvent: {
|
253
|
+
type: 'GroupEntranceAnnouncementChangeEvent',
|
254
|
+
origin: string,
|
255
|
+
current: string,
|
256
|
+
group: GroupSenderType;
|
257
|
+
operator: Member & { group: GroupSenderType };
|
258
|
+
} & EventBaseType;
|
259
|
+
GroupMuteAllEvent: {
|
260
|
+
type: 'GroupMuteAllEvent',
|
261
|
+
origin: boolean,
|
262
|
+
current: boolean,
|
263
|
+
group: GroupSenderType;
|
264
|
+
operator: Member & { group: GroupSenderType };
|
265
|
+
} & EventBaseType;
|
266
|
+
GroupAllowAnonymousChatEvent: {
|
267
|
+
type: 'GroupAllowAnonymousChatEvent',
|
268
|
+
origin: boolean,
|
269
|
+
current: boolean,
|
270
|
+
group: GroupSenderType,
|
271
|
+
operator: Member & { group: GroupSenderType };
|
272
|
+
} & EventBaseType;
|
273
|
+
GroupAllowConfessTalkEvent: {
|
274
|
+
type: 'GroupAllowAnonymousChatEvent',
|
275
|
+
origin: boolean,
|
276
|
+
current: boolean,
|
277
|
+
group: GroupSenderType,
|
278
|
+
isByBot: boolean
|
279
|
+
} & EventBaseType;
|
280
|
+
GroupAllowMemberInviteEvent: EventBaseType;
|
281
|
+
MemberJoinEvent: {
|
282
|
+
type: 'MemberJoinEvent',
|
283
|
+
member: Member & { group: GroupSenderType },
|
284
|
+
invitor: Member;
|
285
|
+
} & EventBaseType;
|
286
|
+
MemberLeaveEventKick: {
|
287
|
+
type: 'MemberLeaveEventKick',
|
288
|
+
member: Member & { group: GroupSenderType },
|
289
|
+
operator: Member & { group: GroupSenderType },
|
290
|
+
} & EventBaseType;
|
291
|
+
MemberLeaveEventQuit: {
|
292
|
+
type: 'MemberLeaveEventQuit',
|
293
|
+
member: Member & { group: GroupSenderType },
|
294
|
+
} & EventBaseType;
|
295
|
+
MemberCardChangeEvent: {
|
296
|
+
type: 'MemberCardChangeEvent',
|
297
|
+
origin: string,
|
298
|
+
current: string,
|
299
|
+
member: Member & { group: GroupSenderType };
|
300
|
+
} & EventBaseType;
|
301
|
+
MemberSpecialTitleChangeEvent: {
|
302
|
+
type: 'MemberSpecialTitleChangeEvent',
|
303
|
+
origin: string,
|
304
|
+
current: string,
|
305
|
+
member: Member & { group: GroupSenderType };
|
306
|
+
} & EventBaseType;
|
307
|
+
MemberPermissionChangeEvent: {
|
308
|
+
type: 'MemberPermissionChangeEvent',
|
309
|
+
origin: string,
|
310
|
+
current: string,
|
311
|
+
member: Member & { group: GroupSenderType };
|
312
|
+
} & EventBaseType;
|
313
|
+
MemberMuteEvent: {
|
314
|
+
type: 'MemberMuteEvent',
|
315
|
+
durationSeconds: number,
|
316
|
+
member: Member & { group: GroupSenderType };
|
317
|
+
operator: Member & { group: GroupSenderType };
|
318
|
+
} & EventBaseType;
|
319
|
+
MemberUnmuteEvent: {
|
320
|
+
type: 'MemberUnmuteEvent',
|
321
|
+
member: Member & { group: GroupSenderType };
|
322
|
+
operator: Member & { group: GroupSenderType };
|
323
|
+
} & EventBaseType;
|
324
|
+
MemberHonorChangeEvent: {
|
325
|
+
type: 'MemberHonorChangeEvent',
|
326
|
+
member: Member & { group: GroupSenderType }
|
327
|
+
action: 'achieve' | 'lose',
|
328
|
+
honor: string;
|
329
|
+
}
|
330
|
+
NewFriendRequestEvent: {
|
331
|
+
type: 'NewFriendRequestEvent',
|
332
|
+
eventId: number,
|
333
|
+
fromId: number,
|
334
|
+
groupId: number,
|
335
|
+
nick: string,
|
336
|
+
message: string
|
337
|
+
} & RequestEventExtendType & EventBaseType;
|
338
|
+
MemberJoinRequestEvent: {
|
339
|
+
type: 'MemberJoinRequestEvent',
|
340
|
+
eventId: number,
|
341
|
+
fromId: number,
|
342
|
+
groupId: number,
|
343
|
+
groupName: string,
|
344
|
+
nick: string,
|
345
|
+
message: string
|
346
|
+
} & RequestEventExtendType & EventBaseType;
|
347
|
+
BotInvitedJoinGroupRequestEvent: {
|
348
|
+
type: 'MemberJoinRequestEvent',
|
349
|
+
eventId: number,
|
350
|
+
fromId: number,
|
351
|
+
groupId: number,
|
352
|
+
groupName: string,
|
353
|
+
nick: string,
|
354
|
+
message: string
|
355
|
+
} & RequestEventExtendType & EventBaseType;
|
356
|
+
}
|
357
|
+
|
358
|
+
type EventType = keyof EventEntityMap;
|
359
|
+
|
360
|
+
type Awaitable<T> = T | PromiseLike<T>;
|
107
361
|
|
108
362
|
// 群成员权限
|
109
|
-
type GroupPermission =
|
110
|
-
| 'OWNER'
|
111
|
-
| 'ADMINISTRATOR'
|
112
|
-
| 'MEMBER';
|
363
|
+
type GroupPermission = 'OWNER' | 'ADMINISTRATOR' | 'MEMBER';
|
113
364
|
|
114
365
|
// 性别
|
115
|
-
type SEX = 'UNKNOWN' | 'MALE' | 'FEMALE'
|
366
|
+
type SEX = 'UNKNOWN' | 'MALE' | 'FEMALE';
|
116
367
|
|
117
368
|
// 消息处理器
|
118
|
-
type Processor
|
369
|
+
type Processor<U extends EventType[] | 'UnknownEventType' = 'UnknownEventType'> =
|
370
|
+
(data: U extends 'UnknownEventType' ? EventBaseType : EventEntityMap[ArrayToValuesUnion<U extends 'UnknownEventType' ? never : U>]) => Awaitable<void | any>;
|
119
371
|
|
120
372
|
// QQ 自带表情
|
121
373
|
type FaceType =
|
@@ -175,22 +427,16 @@ type FaceType =
|
|
175
427
|
export {
|
176
428
|
// 接口
|
177
429
|
MessageChainGetable, BotConfigGetable,
|
178
|
-
|
179
430
|
// 消息类型
|
180
431
|
MessageType,
|
181
|
-
|
182
432
|
// MessageType.nodeList 的元素类型
|
183
433
|
ForwardNode,
|
184
|
-
|
185
434
|
// 图片 id 语音 id 消息 id
|
186
435
|
ImageId, VoiceId, MessageId,
|
187
|
-
|
188
|
-
|
189
|
-
EventType, GroupPermission, SEX,
|
190
|
-
|
191
|
-
// 消息处理器
|
192
|
-
Processor,
|
193
|
-
|
436
|
+
// 事件类型 群成员权限 性别
|
437
|
+
EventType, EventEntityMap, GroupPermission, SEX,
|
194
438
|
// QQ 自带表情
|
195
|
-
FaceType
|
196
|
-
|
439
|
+
FaceType,
|
440
|
+
Processor,
|
441
|
+
Awaitable,
|
442
|
+
};
|
package/dist/node/Bot.d.ts
CHANGED
@@ -3,10 +3,14 @@ import {
|
|
3
3
|
ImageId, VoiceId, MessageId,
|
4
4
|
|
5
5
|
// 事件类型 群成员权限 性别
|
6
|
-
EventType, GroupPermission, SEX,
|
6
|
+
EventType, EventEntityMap, GroupPermission, SEX,
|
7
7
|
|
8
8
|
// 接口 原始消息类型 事件处理器类型
|
9
|
-
MessageChainGetable, BotConfigGetable, MessageType,
|
9
|
+
MessageChainGetable, BotConfigGetable, MessageType,
|
10
|
+
|
11
|
+
Awaitable,
|
12
|
+
Processor,
|
13
|
+
|
10
14
|
} from './BaseType';
|
11
15
|
|
12
16
|
// 等待器
|
@@ -19,9 +23,7 @@ export class Bot implements BotConfigGetable {
|
|
19
23
|
|
20
24
|
// 类属性
|
21
25
|
public static groupPermission: {
|
22
|
-
|
23
|
-
ADMINISTRATOR: GroupPermission;
|
24
|
-
MEMBER: GroupPermission;
|
26
|
+
[k in GroupPermission]: k
|
25
27
|
};
|
26
28
|
|
27
29
|
// 一些私有的实例属性
|
@@ -91,7 +93,8 @@ export class Bot implements BotConfigGetable {
|
|
91
93
|
* @param callback 必选,回调函数
|
92
94
|
* @returns handle 事件处理器的标识,用于移除该处理器
|
93
95
|
*/
|
94
|
-
on(eventType:
|
96
|
+
on<U extends EventType>(eventType: U, callback: Processor<[U]>): number;
|
97
|
+
on<U extends EventType[]>(eventType: U, callback: Processor<U>): number[];
|
95
98
|
|
96
99
|
/**
|
97
100
|
* @description 添加一个一次性事件处理器,回调一次后自动移除
|
@@ -101,7 +104,8 @@ export class Bot implements BotConfigGetable {
|
|
101
104
|
* 当为 true 时,只有开发者的处理器结束后才会移除该处理器
|
102
105
|
* 当为 false 时,即使消息被拦截,也会移除该处理器
|
103
106
|
*/
|
104
|
-
one(eventType:
|
107
|
+
one<U extends EventType>(eventType: U, callback: Processor<[U]>, strict: boolean): void;
|
108
|
+
one<U extends EventType[]>(eventType: U, callback: Processor<U>, strict: boolean): void;
|
105
109
|
|
106
110
|
/**
|
107
111
|
* @description 移除一个事件处理器
|
@@ -314,11 +318,12 @@ declare namespace Bot {
|
|
314
318
|
verifyKey: string;
|
315
319
|
sessionKey: string;
|
316
320
|
}
|
321
|
+
|
317
322
|
// An index signature parameter type cannot be a union type. Consider using a mapped object type instead.
|
318
|
-
|
323
|
+
type EventProcessorMap = {
|
319
324
|
// 索引不能使用联合类型
|
320
|
-
[eventType
|
321
|
-
[
|
325
|
+
[eventType in EventType]: {
|
326
|
+
[handler: number]: (data: EventEntityMap[eventType]) => Awaitable<void | any>;
|
322
327
|
};
|
323
328
|
}
|
324
329
|
|
package/dist/node/index.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
import { Bot as BotType } from './Bot';
|
2
|
-
import { Message as MessageType } from './Message';
|
3
|
-
import { Middleware as MiddlewareType } from './Middleware';
|
1
|
+
import { Bot, Bot as BotType } from './Bot';
|
2
|
+
import { Message, Message as MessageType } from './Message';
|
3
|
+
import { Middleware, Middleware as MiddlewareType } from './Middleware';
|
4
|
+
|
5
|
+
export { Bot, Message, Middleware };
|
4
6
|
declare module 'mirai-js' {
|
5
7
|
export const Bot: typeof BotType;
|
6
8
|
export const Message: typeof MessageType;
|
package/package.json
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "mirai-js",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.8.0-2",
|
4
4
|
"description": "QQ robot development framework based on Mirai-api-http.",
|
5
5
|
"main": "dist/node/index.js",
|
6
6
|
"scripts": {
|
7
7
|
"lint": "eslint --fix .",
|
8
|
-
"build": "tsc --noEmit src/*.d.ts && webpack && babel src --out-dir dist/node --copy-files",
|
8
|
+
"build": "rm -rf dist && tsc --noEmit src/*.d.ts && webpack && babel src --out-dir dist/node --copy-files",
|
9
9
|
"prepare": "husky install"
|
10
10
|
},
|
11
11
|
"lint-staged": {
|