mirai-js 2.2.0 → 2.4.1

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 (122) hide show
  1. package/.github/FUNDING.yml +1 -1
  2. package/README.md +17 -283
  3. package/demo.html +1 -1
  4. package/demo.js +13 -71
  5. package/dist/browser/mirai-js.js +1 -1
  6. package/dist/node/BaseType.d.ts +5 -2
  7. package/dist/node/Bot.d.ts +95 -8
  8. package/dist/node/Bot.js +233 -10
  9. package/dist/node/FileManager.js +15 -6
  10. package/dist/node/core/anno/deleteAnno.js +67 -0
  11. package/dist/node/core/anno/getAnno.js +70 -0
  12. package/dist/node/core/anno/publishAnno.js +70 -0
  13. package/dist/node/core/auth.js +9 -11
  14. package/dist/node/core/fs/deleteGroupFile.js +71 -0
  15. package/dist/node/core/fs/getGroupFileInfo.js +77 -0
  16. package/dist/node/core/fs/getGroupFileList.js +82 -0
  17. package/dist/node/core/fs/makeGroupDir.js +73 -0
  18. package/dist/node/core/fs/moveGroupFile.js +77 -0
  19. package/dist/node/core/fs/renameGroupFile.js +73 -0
  20. package/dist/node/core/fs/uploadGroupFIle.js +81 -0
  21. package/dist/node/core/getFriendList.js +9 -11
  22. package/dist/node/core/getGroupConfig.js +9 -11
  23. package/dist/node/core/getGroupFileInfo.js +6 -2
  24. package/dist/node/core/getGroupFileList.js +6 -2
  25. package/dist/node/core/getGroupList.js +9 -11
  26. package/dist/node/core/getMemberInfo.js +13 -19
  27. package/dist/node/core/getMemberList.js +9 -11
  28. package/dist/node/core/getSessionConfig.js +9 -11
  29. package/dist/node/core/getUserProfile.js +78 -0
  30. package/dist/node/core/groupFileDelete.js +6 -2
  31. package/dist/node/core/groupFileMove.js +6 -2
  32. package/dist/node/core/groupFileRename.js +6 -2
  33. package/dist/node/core/mute.js +9 -11
  34. package/dist/node/core/muteAll.js +9 -11
  35. package/dist/node/core/quitGroup.js +9 -11
  36. package/dist/node/core/recall.js +9 -11
  37. package/dist/node/core/releaseSession.js +10 -11
  38. package/dist/node/core/removeFriend.js +64 -0
  39. package/dist/node/core/removeMember.js +9 -11
  40. package/dist/node/core/responseBotInvitedJoinGroupRequest.js +9 -11
  41. package/dist/node/core/responseFirendRequest.js +9 -11
  42. package/dist/node/core/responseMemberJoinRequest.js +9 -11
  43. package/dist/node/core/sendCommand.js +9 -11
  44. package/dist/node/core/sendFirendMessage.js +9 -11
  45. package/dist/node/core/sendGroupMessage.js +9 -11
  46. package/dist/node/core/sendNudge.js +9 -11
  47. package/dist/node/core/sendTempMessage.js +9 -11
  48. package/dist/node/core/setEssence.js +9 -11
  49. package/dist/node/core/setGroupConfig.js +9 -11
  50. package/dist/node/core/setMemberAdmin.js +70 -0
  51. package/dist/node/core/setMemberInfo.js +9 -11
  52. package/dist/node/core/setSessionConfig.js +9 -11
  53. package/dist/node/core/startListeningBrowser.js +8 -9
  54. package/dist/node/core/startListeningNode.js +8 -10
  55. package/dist/node/core/stopListeningBrowser.js +5 -1
  56. package/dist/node/core/stopListeningNode.js +5 -1
  57. package/dist/node/core/unmute.js +9 -11
  58. package/dist/node/core/unmuteAll.js +9 -11
  59. package/dist/node/core/uploadFileAndSend.js +6 -1
  60. package/dist/node/core/uploadImage.js +9 -10
  61. package/dist/node/core/uploadVoice.js +9 -10
  62. package/dist/node/core/verify.js +9 -11
  63. package/dist/node/polyfill/URL.js +5 -0
  64. package/dist/node/polyfill/wsListener.js +6 -0
  65. package/package.json +2 -2
  66. package/src/BaseType.d.ts +5 -2
  67. package/src/Bot.d.ts +95 -8
  68. package/src/Bot.js +154 -9
  69. package/src/FileManager.js +10 -6
  70. package/src/core/anno/deleteAnno.js +42 -0
  71. package/src/core/anno/getAnno.js +43 -0
  72. package/src/core/anno/publishAnno.js +43 -0
  73. package/src/core/auth.js +5 -7
  74. package/src/core/fs/deleteGroupFile.js +44 -0
  75. package/src/core/fs/getGroupFileInfo.js +45 -0
  76. package/src/core/fs/getGroupFileList.js +46 -0
  77. package/src/core/fs/makeGroupDir.js +44 -0
  78. package/src/core/fs/moveGroupFile.js +46 -0
  79. package/src/core/{groupFileRename.js → fs/renameGroupFile.js} +11 -13
  80. package/src/core/{uploadFileAndSend.js → fs/uploadGroupFIle.js} +9 -11
  81. package/src/core/getFriendList.js +5 -7
  82. package/src/core/getGroupConfig.js +5 -7
  83. package/src/core/getGroupList.js +5 -7
  84. package/src/core/getMemberInfo.js +8 -10
  85. package/src/core/getMemberList.js +5 -7
  86. package/src/core/getSessionConfig.js +5 -7
  87. package/src/core/getUserProfile.js +39 -0
  88. package/src/core/mute.js +5 -7
  89. package/src/core/muteAll.js +5 -7
  90. package/src/core/quitGroup.js +5 -7
  91. package/src/core/recall.js +5 -7
  92. package/src/core/releaseSession.js +6 -7
  93. package/src/core/{groupFileDelete.js → removeFriend.js} +11 -17
  94. package/src/core/removeMember.js +5 -7
  95. package/src/core/responseBotInvitedJoinGroupRequest.js +5 -7
  96. package/src/core/responseFirendRequest.js +5 -7
  97. package/src/core/responseMemberJoinRequest.js +5 -7
  98. package/src/core/sendCommand.js +5 -7
  99. package/src/core/sendFirendMessage.js +5 -7
  100. package/src/core/sendGroupMessage.js +5 -7
  101. package/src/core/sendNudge.js +5 -7
  102. package/src/core/sendTempMessage.js +5 -7
  103. package/src/core/setEssence.js +5 -7
  104. package/src/core/setGroupConfig.js +5 -7
  105. package/src/core/setMemberAdmin.js +43 -0
  106. package/src/core/setMemberInfo.js +5 -7
  107. package/src/core/setSessionConfig.js +5 -7
  108. package/src/core/startListeningBrowser.js +4 -6
  109. package/src/core/startListeningNode.js +4 -6
  110. package/src/core/stopListeningBrowser.js +3 -0
  111. package/src/core/stopListeningNode.js +3 -0
  112. package/src/core/unmute.js +5 -7
  113. package/src/core/unmuteAll.js +5 -7
  114. package/src/core/uploadImage.js +5 -7
  115. package/src/core/uploadVoice.js +5 -7
  116. package/src/core/verify.js +5 -7
  117. package/src/polyfill/URL.js +3 -0
  118. package/src/polyfill/wsListener.js +4 -0
  119. package/webpack.config.js +4 -0
  120. package/src/core/getGroupFileInfo.js +0 -44
  121. package/src/core/getGroupFileList.js +0 -40
  122. package/src/core/groupFileMove.js +0 -46
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios');
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 响应好友请求
@@ -34,13 +31,14 @@ module.exports = async ({ baseUrl, sessionKey, eventId, fromId, groupId, operate
34
31
  data: { code, msg: serverMessage }
35
32
  } = responseData;
36
33
  } catch (error) {
37
- throw new Error('core.responseFirendRequest 请求返回格式出错,请检查 mirai-console');
34
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
38
35
  }
39
36
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
40
37
  if (code in errCodeMap) {
41
38
  throw new Error(serverMessage);
42
39
  }
43
40
  } catch (error) {
41
+ console.error(`mirai-js: error ${locationStr}`);
44
42
  errorHandler(error);
45
43
  }
46
44
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios');
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * FIXME: mirai-core 的问题,有时候收不到 MemberJoinRequestEvent 事件
@@ -36,13 +33,14 @@ module.exports = async ({ baseUrl, sessionKey, eventId, fromId, groupId, operate
36
33
  data: { code, msg: serverMessage }
37
34
  } = responseData;
38
35
  } catch (error) {
39
- throw new Error('core.responseMember 请求返回格式出错,请检查 mirai-console');
36
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
40
37
  }
41
38
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
42
39
  if (code in errCodeMap) {
43
40
  throw new Error(serverMessage);
44
41
  }
45
42
  } catch (error) {
43
+ console.error(`mirai-js: error ${locationStr}`);
46
44
  errorHandler(error);
47
45
  }
48
46
  };
@@ -1,12 +1,9 @@
1
1
  const axios = require('axios').default;
2
2
  const { errCodeMap } = require('../util/errCode');
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 向 mirai-console 发送指令
@@ -28,7 +25,7 @@ module.exports = async ({ baseUrl, sessionKey, command }) => {
28
25
  data: { msg: message, code },
29
26
  } = responseData;
30
27
  } catch (error) {
31
- throw new Error('core.sendCommand 请求返回格式出错,请检查 mirai-console');
28
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
32
29
  }
33
30
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
34
31
  if (code in errCodeMap) {
@@ -36,6 +33,7 @@ module.exports = async ({ baseUrl, sessionKey, command }) => {
36
33
  }
37
34
  return { message, code };
38
35
  } catch (error) {
36
+ console.error(`mirai-js: error ${locationStr}`);
39
37
  errorHandler(error);
40
38
  }
41
39
 
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 向 qq 好友发送消息
@@ -31,7 +28,7 @@ module.exports = async ({ baseUrl, sessionKey, target, quote, messageChain }) =>
31
28
  data: { msg: message, code, messageId }
32
29
  } = responseData;
33
30
  } catch (error) {
34
- throw new Error('core.sendFirendMessage 请求返回格式出错,请检查 mirai-console');
31
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
35
32
  }
36
33
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
37
34
  if (code in errCodeMap) {
@@ -39,6 +36,7 @@ module.exports = async ({ baseUrl, sessionKey, target, quote, messageChain }) =>
39
36
  }
40
37
  return messageId;
41
38
  } catch (error) {
39
+ console.error(`mirai-js: error ${locationStr}`);
42
40
  errorHandler(error);
43
41
  }
44
42
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 向 qq 群发送消息
@@ -31,7 +28,7 @@ module.exports = async ({ baseUrl, sessionKey, target, quote, messageChain }) =>
31
28
  data: { msg: message, code, messageId }
32
29
  } = responseData;
33
30
  } catch (error) {
34
- throw new Error('core.sendGroupMessage 请求返回格式出错,请检查 mirai-console');
31
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
35
32
  }
36
33
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
37
34
  if (code in errCodeMap) {
@@ -39,6 +36,7 @@ module.exports = async ({ baseUrl, sessionKey, target, quote, messageChain }) =>
39
36
  }
40
37
  return messageId;
41
38
  } catch (error) {
39
+ console.error(`mirai-js: error ${locationStr}`);
42
40
  errorHandler(error);
43
41
  }
44
42
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 发送戳一戳消息
@@ -31,7 +28,7 @@ module.exports = async ({ baseUrl, sessionKey, target, subject, kind }) => {
31
28
  data: { msg: message, code }
32
29
  } = responseData;
33
30
  } catch (error) {
34
- throw new Error('core.sendNudge 请求返回格式出错,请检查 mirai-console');
31
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
35
32
  }
36
33
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
37
34
  if (code in errCodeMap) {
@@ -39,6 +36,7 @@ module.exports = async ({ baseUrl, sessionKey, target, subject, kind }) => {
39
36
  }
40
37
  return { message, code };
41
38
  } catch (error) {
39
+ console.error(`mirai-js: error ${locationStr}`);
42
40
  errorHandler(error);
43
41
  }
44
42
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 向临时对象发送消息
@@ -41,7 +38,7 @@ module.exports = async ({ baseUrl, sessionKey, qq, group, quote, messageChain })
41
38
  data: { msg: message, code, messageId }
42
39
  } = responseData;
43
40
  } catch (error) {
44
- throw new Error('core.sendTempMessage 请求返回格式出错,请检查 mirai-console');
41
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
45
42
  }
46
43
 
47
44
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
@@ -50,6 +47,7 @@ module.exports = async ({ baseUrl, sessionKey, qq, group, quote, messageChain })
50
47
  }
51
48
  return messageId;
52
49
  } catch (error) {
50
+ console.error(`mirai-js: error ${locationStr}`);
53
51
  errorHandler(error);
54
52
  }
55
53
 
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
 
12
9
  /**
@@ -32,7 +29,7 @@ module.exports = async ({
32
29
  data: { msg: message, code }
33
30
  } = responseData;
34
31
  } catch (error) {
35
- throw new Error('core.setEssence 请求返回格式出错,请检查 mirai-console');
32
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
36
33
  }
37
34
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
38
35
  if (code in errCodeMap) {
@@ -40,6 +37,7 @@ module.exports = async ({
40
37
  }
41
38
  return { message, code };
42
39
  } catch (error) {
40
+ console.error(`mirai-js: error ${locationStr}`);
43
41
  errorHandler(error);
44
42
  }
45
43
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
 
12
9
  /**
@@ -46,7 +43,7 @@ module.exports = async ({
46
43
  data: { msg: message, code }
47
44
  } = responseData;
48
45
  } catch (error) {
49
- throw new Error('core.setGroupConfig 请求返回格式出错,请检查 mirai-console');
46
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
50
47
  }
51
48
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
52
49
  if (code in errCodeMap) {
@@ -54,6 +51,7 @@ module.exports = async ({
54
51
  }
55
52
  return { message, code };
56
53
  } catch (error) {
54
+ console.error(`mirai-js: error ${locationStr}`);
57
55
  errorHandler(error);
58
56
  }
59
57
  };
@@ -0,0 +1,43 @@
1
+ const { errCodeMap } = require('../util/errCode');
2
+ const axios = require('axios');
3
+ const { URL } = require('../polyfill/URL');
4
+ const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
7
+
8
+ /**
9
+ * @description 设置群成员权限
10
+ * @param {string} baseUrl mirai-api-http server 的地址
11
+ * @param {string} sessionKey 会话标识
12
+ * @param {number} target 群成员所在群号
13
+ * @param {number} memberId 群成员的 qq 号
14
+ * @param {string} assign 是否设置为管理员
15
+ * @returns {Object} 结构 { message, code }
16
+ */
17
+ module.exports = async ({ baseUrl, sessionKey, target, memberId, assign }) => {
18
+ try {
19
+ // 拼接 url
20
+ const url = new URL('/memberAdmin', baseUrl).toString();
21
+
22
+ // 请求
23
+ const responseData = await axios.post(url, {
24
+ sessionKey, target, memberId, assign
25
+ });
26
+ try {
27
+ var {
28
+ data: { msg: message, code }
29
+ } = responseData;
30
+ } catch (error) {
31
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
32
+ }
33
+ // 抛出 mirai 的异常,到 catch 中处理后再抛出
34
+ if (code in errCodeMap) {
35
+ throw new Error(message);
36
+ }
37
+ return { message, code };
38
+ } catch (error) {
39
+ console.error(`mirai-js: error ${locationStr}`);
40
+ errorHandler(error);
41
+ }
42
+
43
+ };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios');
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 设置群成员信息
@@ -35,7 +32,7 @@ module.exports = async ({ baseUrl, sessionKey, target, memberId, name, specialTi
35
32
  data: { msg: message, code }
36
33
  } = responseData;
37
34
  } catch (error) {
38
- throw new Error('core.setMemberInfo 请求返回格式出错,请检查 mirai-console');
35
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
39
36
  }
40
37
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
41
38
  if (code in errCodeMap) {
@@ -43,6 +40,7 @@ module.exports = async ({ baseUrl, sessionKey, target, memberId, name, specialTi
43
40
  }
44
41
  return { message, code };
45
42
  } catch (error) {
43
+ console.error(`mirai-js: error ${locationStr}`);
46
44
  errorHandler(error);
47
45
  }
48
46
 
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
 
12
9
  /**
@@ -29,7 +26,7 @@ module.exports = async ({ baseUrl, sessionKey, cacheSize, enableWebsocket }) =>
29
26
  data: { msg: message, code }
30
27
  } = responseData;
31
28
  } catch (error) {
32
- throw new Error('core.setSessionConfig 请求返回格式出错,请检查 mirai-console');
29
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
33
30
  }
34
31
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
35
32
  if (code in errCodeMap) {
@@ -37,6 +34,7 @@ module.exports = async ({ baseUrl, sessionKey, cacheSize, enableWebsocket }) =>
37
34
  }
38
35
  return { message, code };
39
36
  } catch (error) {
37
+ console.error(`mirai-js: error ${locationStr}`);
40
38
  errorHandler(error);
41
39
  }
42
40
  };
@@ -1,11 +1,8 @@
1
1
  const WebSocket = window.WebSocket;
2
- let URL;
3
- if (!process.browser) {
4
- ({ URL } = require('url'));
5
- } else {
6
- URL = window.URL;
7
- }
2
+ const { URL } = require('../polyfill/URL');
8
3
  const errorHandler = require('../util/errorHandler');
4
+ const path = require('path');
5
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
9
6
 
10
7
  /**
11
8
  * @description 开始侦听事件
@@ -58,6 +55,7 @@ module.exports = async ({ baseUrl, sessionKey, verifyKey, message, error, close
58
55
  };
59
56
  return ws;
60
57
  } catch (error) {
58
+ console.error(`mirai-js: error ${locationStr}`);
61
59
  errorHandler(error);
62
60
  }
63
61
  };
@@ -1,11 +1,8 @@
1
1
  const WebSocket = require('ws');
2
- let URL;
3
- if (!process.browser) {
4
- ({ URL } = require('url'));
5
- } else {
6
- URL = window.URL;
7
- }
2
+ const { URL } = require('../polyfill/URL');
8
3
  const errorHandler = require('../util/errorHandler');
4
+ const path = require('path');
5
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
9
6
 
10
7
  /**
11
8
  * @description 开始侦听事件
@@ -70,6 +67,7 @@ module.exports = async ({ baseUrl, sessionKey, verifyKey, message, error, close,
70
67
  });
71
68
  return ws;
72
69
  } catch (error) {
70
+ console.error(`mirai-js: error ${locationStr}`);
73
71
  errorHandler(error);
74
72
  }
75
73
  };
@@ -1,4 +1,6 @@
1
1
  const errorHandler = require('../util/errorHandler');
2
+ const path = require('path');
3
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
2
4
 
3
5
  /**
4
6
  * @description 停止侦听事件
@@ -25,6 +27,7 @@ module.exports = async (wsConnection) => {
25
27
  // do nothing
26
28
  }
27
29
  } catch (error) {
30
+ console.error(`mirai-js: error ${locationStr}`);
28
31
  errorHandler(error);
29
32
  }
30
33
  };
@@ -1,4 +1,6 @@
1
1
  const errorHandler = require('../util/errorHandler');
2
+ const path = require('path');
3
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
2
4
 
3
5
  /**
4
6
  * @description 停止侦听事件
@@ -25,6 +27,7 @@ module.exports = async (wsConnection) => {
25
27
  // do nothing
26
28
  }
27
29
  } catch (error) {
30
+ console.error(`mirai-js: error ${locationStr}`);
28
31
  errorHandler(error);
29
32
  }
30
33
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 解除禁言
@@ -28,7 +25,7 @@ module.exports = async ({ baseUrl, sessionKey, target, memberId }) => {
28
25
  data: { code, msg: message }
29
26
  } = responseData;
30
27
  } catch (error) {
31
- throw new Error('core.unmute 请求返回格式出错,请检查 mirai-console');
28
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
32
29
  }
33
30
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
34
31
  if (code in errCodeMap) {
@@ -36,6 +33,7 @@ module.exports = async ({ baseUrl, sessionKey, target, memberId }) => {
36
33
  }
37
34
  return { message, code };
38
35
  } catch (error) {
36
+ console.error(`mirai-js: error ${locationStr}`);
39
37
  errorHandler(error);
40
38
  }
41
39
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 解除全员禁言
@@ -27,7 +24,7 @@ module.exports = async ({ baseUrl, sessionKey, target }) => {
27
24
  data: { code, msg: message }
28
25
  } = responseData;
29
26
  } catch (error) {
30
- throw new Error('core.unmuteAll 请求返回格式出错,请检查 mirai-console');
27
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
31
28
  }
32
29
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
33
30
  if (code in errCodeMap) {
@@ -35,6 +32,7 @@ module.exports = async ({ baseUrl, sessionKey, target }) => {
35
32
  }
36
33
  return { message, code };
37
34
  } catch (error) {
35
+ console.error(`mirai-js: error ${locationStr}`);
38
36
  errorHandler(error);
39
37
  }
40
38
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
  const FormData = require('form-data');
11
8
 
12
9
 
@@ -42,7 +39,7 @@ module.exports = async ({ baseUrl, sessionKey, type, img }) => {
42
39
  data: { msg: message, code, imageId, url, path }
43
40
  } = responseData;
44
41
  } catch (error) {
45
- throw new Error('core.uploadImage 请求返回格式出错,请检查 mirai-console');
42
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
46
43
  }
47
44
 
48
45
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
@@ -51,6 +48,7 @@ module.exports = async ({ baseUrl, sessionKey, type, img }) => {
51
48
  }
52
49
  return { imageId, url, path };
53
50
  } catch (error) {
51
+ console.error(`mirai-js: error ${locationStr}`);
54
52
  errorHandler(error);
55
53
  }
56
54
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios').default;
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
  const FormData = require('form-data');
11
8
 
12
9
 
@@ -42,7 +39,7 @@ module.exports = async ({ baseUrl, sessionKey, type, voice }) => {
42
39
  data: { msg: message, code, voiceId, url, path }
43
40
  } = responseData;
44
41
  } catch (error) {
45
- throw new Error('core.uploadVoice 请求返回格式出错,请检查 mirai-console');
42
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
46
43
  }
47
44
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
48
45
  if (code in errCodeMap) {
@@ -50,6 +47,7 @@ module.exports = async ({ baseUrl, sessionKey, type, voice }) => {
50
47
  }
51
48
  return { voiceId, url, path };
52
49
  } catch (error) {
50
+ console.error(`mirai-js: error ${locationStr}`);
53
51
  errorHandler(error);
54
52
  }
55
53
  };
@@ -1,12 +1,9 @@
1
1
  const { errCodeMap } = require('../util/errCode');
2
2
  const axios = require('axios');
3
- let URL;
4
- if (!process.browser) {
5
- ({ URL } = require('url'));
6
- } else {
7
- URL = window.URL;
8
- }
3
+ const { URL } = require('../polyfill/URL');
9
4
  const errorHandler = require('../util/errorHandler');
5
+ const path = require('path');
6
+ const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
10
7
 
11
8
  /**
12
9
  * @description 校验 sessionKey,将一个 session 绑定到指定的 qq 上
@@ -28,7 +25,7 @@ module.exports = async ({ baseUrl, sessionKey, qq, throwable = true }) => {
28
25
  data: { msg: message, code },
29
26
  } = responseData;
30
27
  } catch (error) {
31
- throw new Error('core.verify 请求返回格式出错,请检查 mirai-console');
28
+ throw new Error(('请求返回格式出错,请检查 mirai-console'));
32
29
  }
33
30
  // 抛出 mirai 的异常,到 catch 中处理后再抛出
34
31
  if (code in errCodeMap) {
@@ -36,6 +33,7 @@ module.exports = async ({ baseUrl, sessionKey, qq, throwable = true }) => {
36
33
  }
37
34
  return { message, code };
38
35
  } catch (error) {
36
+ console.error(`mirai-js: error ${locationStr}`);
39
37
  errorHandler(error);
40
38
  }
41
39
 
@@ -0,0 +1,3 @@
1
+ module.exports = {
2
+ URL: process.browser ? window.URL : require('url').URL
3
+ };
@@ -0,0 +1,4 @@
1
+ module.exports = {
2
+ wsStartListening: process.browser ? require('../core/startListeningBrowser') : require('../core/startListeningNode'),
3
+ wsStopListening: process.browser ? require('../core/stopListeningBrowser') : require('../core/stopListeningNode'),
4
+ };
package/webpack.config.js CHANGED
@@ -8,6 +8,10 @@ module.exports = {
8
8
  filename: 'mirai-js.js',
9
9
  clean: true
10
10
  },
11
+ externals: {
12
+ // ws v8+ 会需要配置更多 polyfill, 这里通过外部依赖直接忽略它
13
+ ws: 'ws'
14
+ },
11
15
  plugins: [
12
16
  new ProvidePlugin({
13
17
  process: 'process/browser',