@alemonjs/discord 2.1.0-alpha.9 → 2.1.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 (66) hide show
  1. package/README.md +10 -0
  2. package/dist/assets/index.css +1 -0
  3. package/dist/assets/index.js +34 -0
  4. package/dist/index.html +15 -0
  5. package/lib/config.d.ts +14 -3
  6. package/lib/config.js +1 -2
  7. package/lib/desktop.d.ts +1 -3
  8. package/lib/desktop.js +4 -12
  9. package/lib/format.d.ts +4 -0
  10. package/lib/format.js +78 -0
  11. package/lib/hook.d.ts +8 -20
  12. package/lib/hook.js +0 -10
  13. package/lib/index.d.ts +6 -7
  14. package/lib/index.js +274 -111
  15. package/lib/sdk/api.d.ts +7 -745
  16. package/lib/sdk/api.js +327 -1090
  17. package/lib/sdk/createPicFrom.d.ts +6 -0
  18. package/lib/sdk/createPicFrom.js +37 -0
  19. package/lib/sdk/instance.d.ts +3 -0
  20. package/lib/sdk/instance.js +93 -0
  21. package/lib/sdk/intents.d.ts +2 -0
  22. package/lib/sdk/intents.js +0 -121
  23. package/lib/sdk/message/CHANNEL_TOPIC_UPDATE.d.ts +5 -0
  24. package/lib/sdk/message/CHANNEL_TOPIC_UPDATE.js +1 -0
  25. package/lib/sdk/message/CHANNEL_UPDATE.d.ts +42 -0
  26. package/lib/sdk/message/CHANNEL_UPDATE.js +1 -0
  27. package/lib/sdk/message/GUILD_MEMBER_ADD.d.ts +23 -0
  28. package/lib/sdk/message/GUILD_MEMBER_ADD.js +1 -0
  29. package/lib/sdk/message/GUILD_MEMBER_REMOVE.d.ts +12 -0
  30. package/lib/sdk/message/GUILD_MEMBER_REMOVE.js +1 -0
  31. package/lib/sdk/message/GUILD_MEMBER_UPDATE.d.ts +27 -0
  32. package/lib/sdk/message/GUILD_MEMBER_UPDATE.js +1 -0
  33. package/lib/sdk/message/INTERACTION_CREATE.d.ts +2 -3
  34. package/lib/sdk/message/INTERACTION_CREATE.js +1 -0
  35. package/lib/sdk/message/MESSAGE_CREATE.d.ts +1 -7
  36. package/lib/sdk/message/MESSAGE_CREATE.js +1 -0
  37. package/lib/sdk/message/MESSAGE_DELETE.d.ts +5 -0
  38. package/lib/sdk/message/MESSAGE_DELETE.js +1 -0
  39. package/lib/sdk/message/MESSAGE_REACTION_ADD.d.ts +36 -0
  40. package/lib/sdk/message/MESSAGE_REACTION_ADD.js +1 -0
  41. package/lib/sdk/message/MESSAGE_UPDATE.d.ts +50 -0
  42. package/lib/sdk/message/MESSAGE_UPDATE.js +1 -0
  43. package/lib/sdk/message/PRESENCE_UPDATE.d.ts +57 -0
  44. package/lib/sdk/message/PRESENCE_UPDATE.js +1 -0
  45. package/lib/sdk/message/READY.d.ts +7 -0
  46. package/lib/sdk/message/READY.js +1 -0
  47. package/lib/sdk/message/TYPING_START.d.ts +29 -0
  48. package/lib/sdk/message/TYPING_START.js +1 -0
  49. package/lib/sdk/message/VOICE_CHANNEL_STATUS_UPDATE.d.ts +5 -0
  50. package/lib/sdk/message/VOICE_CHANNEL_STATUS_UPDATE.js +1 -0
  51. package/lib/sdk/message/VOICE_STATE_UPDATE.d.ts +36 -0
  52. package/lib/sdk/message/VOICE_STATE_UPDATE.js +1 -0
  53. package/lib/sdk/message.d.ts +93 -0
  54. package/lib/sdk/message.js +1 -0
  55. package/lib/sdk/types.d.ts +2 -0
  56. package/lib/sdk/types.js +25 -0
  57. package/lib/sdk/typings.d.ts +2 -33
  58. package/lib/sdk/typings.js +1 -0
  59. package/lib/sdk/wss.d.ts +8 -0
  60. package/lib/sdk/wss.js +103 -126
  61. package/lib/sdk/wss.types.d.ts +7 -0
  62. package/lib/sdk/wss.types.js +1 -0
  63. package/lib/send.d.ts +11 -0
  64. package/lib/send.js +134 -51
  65. package/package.json +15 -7
  66. package/lib/env.js +0 -1
package/lib/desktop.js CHANGED
@@ -3,30 +3,22 @@ import { dirname, join } from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  import { getConfig, getConfigValue } from 'alemonjs';
5
5
 
6
- // 当前目录
7
6
  const __dirname = dirname(fileURLToPath(import.meta.url));
8
- // 被激活的时候。
9
7
  const activate = context => {
10
- // 创建一个 webview。
11
8
  const webView = context.createSidebarWebView(context);
12
- // 当命令被触发的时候。
13
9
  context.onCommand('open.discord', () => {
14
10
  const dir = join(__dirname, '../', 'dist', 'index.html');
15
11
  const scriptReg = /<script.*?src="(.+?)".*?>/;
16
12
  const styleReg = /<link.*?rel="stylesheet".*?href="(.+?)".*?>/;
17
13
  const iconReg = /<link.*?rel="icon".*?href="(.+?)".*?>/g;
18
- // 创建 webview 路径
19
14
  const styleUri = context.createExtensionDir(join(__dirname, '../', 'dist', 'assets', 'index.css'));
20
15
  const scriptUri = context.createExtensionDir(join(__dirname, '../', 'dist', 'assets', 'index.js'));
21
- // 确保路径存在
22
16
  const html = readFileSync(dir, 'utf-8')
23
- .replace(iconReg, ``)
17
+ .replace(iconReg, '')
24
18
  .replace(scriptReg, `<script type="module" crossorigin src="${scriptUri}"></script>`)
25
19
  .replace(styleReg, `<link rel="stylesheet" crossorigin href="${styleUri}">`);
26
- // 立即渲染 webview
27
20
  webView.loadWebView(html);
28
21
  });
29
- // 监听 webview 的消息。
30
22
  webView.onMessage(data => {
31
23
  try {
32
24
  if (data.type === 'discord.form.save') {
@@ -42,9 +34,9 @@ const activate = context => {
42
34
  }
43
35
  else if (data.type === 'discord.init') {
44
36
  let config = getConfigValue();
45
- if (!config)
37
+ if (!config) {
46
38
  config = {};
47
- // 发送消息
39
+ }
48
40
  webView.postMessage({
49
41
  type: 'discord.init',
50
42
  data: config.discord ?? {}
@@ -52,7 +44,7 @@ const activate = context => {
52
44
  }
53
45
  }
54
46
  catch (e) {
55
- console.error(e);
47
+ logger.error(e);
56
48
  }
57
49
  });
58
50
  };
@@ -0,0 +1,4 @@
1
+ import type { DataEnums, DataMarkDown } from 'alemonjs';
2
+ export declare const markdownToDiscordText: (items: DataMarkDown["value"]) => string;
3
+ export declare const markdownRawToDiscordText: (raw: string) => string;
4
+ export declare const dataEnumToDiscordText: (item: DataEnums) => string;
package/lib/format.js ADDED
@@ -0,0 +1,78 @@
1
+ const markdownToDiscordText = (items) => {
2
+ return items
3
+ .map(item => {
4
+ switch (item.type) {
5
+ case 'MD.text':
6
+ return item.value;
7
+ case 'MD.title':
8
+ return `# ${item.value}\n`;
9
+ case 'MD.subtitle':
10
+ return `## ${item.value}\n`;
11
+ case 'MD.bold':
12
+ return `**${item.value}**`;
13
+ case 'MD.italic':
14
+ case 'MD.italicStar':
15
+ return `*${item.value}*`;
16
+ case 'MD.strikethrough':
17
+ return `~~${item.value}~~`;
18
+ case 'MD.link': {
19
+ const v = item.value;
20
+ return `[${v.text}](${v.url})`;
21
+ }
22
+ case 'MD.image':
23
+ return `![image](${item.value})`;
24
+ case 'MD.list':
25
+ return (item.value
26
+ .map(li => {
27
+ if (typeof li.value === 'object') {
28
+ return `${li.value.index}. ${li.value.text ?? ''}`;
29
+ }
30
+ return `- ${li.value}`;
31
+ })
32
+ .join('\n') + '\n');
33
+ case 'MD.blockquote':
34
+ return `> ${item.value}\n`;
35
+ case 'MD.divider':
36
+ return '---\n';
37
+ case 'MD.newline':
38
+ return '\n';
39
+ case 'MD.code': {
40
+ const lang = item?.options?.language || '';
41
+ return `\`\`\`${lang}\n${item.value}\n\`\`\`\n`;
42
+ }
43
+ case 'MD.mention':
44
+ if (item.value === 'everyone') {
45
+ return '@everyone';
46
+ }
47
+ return `<@${item.value ?? ''}>`;
48
+ case 'MD.content':
49
+ return item.value;
50
+ case 'MD.button':
51
+ return `[${item.value}]`;
52
+ default:
53
+ return String(item?.value ?? '');
54
+ }
55
+ })
56
+ .join('');
57
+ };
58
+ const markdownRawToDiscordText = (raw) => {
59
+ let text = raw;
60
+ text = text.replace(/!\[([^\]]*)\]\(([^)]*)\)/g, '[$1]($2)');
61
+ return text;
62
+ };
63
+ const dataEnumToDiscordText = (item) => {
64
+ switch (item.type) {
65
+ case 'MarkdownOriginal':
66
+ return markdownRawToDiscordText(String(item.value));
67
+ case 'Attachment':
68
+ return `[附件${item.options?.filename ? ': ' + item.options.filename : ''}]`;
69
+ case 'Audio':
70
+ return '[音频]';
71
+ case 'Video':
72
+ return '[视频]';
73
+ default:
74
+ return '';
75
+ }
76
+ };
77
+
78
+ export { dataEnumToDiscordText, markdownRawToDiscordText, markdownToDiscordText };
package/lib/hook.d.ts CHANGED
@@ -1,8 +1,7 @@
1
1
  import { EventKeys, Events } from 'alemonjs';
2
- import { DCAPI } from './sdk/api.js';
3
- import { MESSAGE_CREATE_TYPE } from './sdk/message/MESSAGE_CREATE.js';
4
- import { INTERACTION_CREATE_TYPE } from './sdk/message/INTERACTION_CREATE.js';
5
-
2
+ import { DCAPI as API } from './sdk/api';
3
+ import { MESSAGE_CREATE_TYPE } from './sdk/message/MESSAGE_CREATE';
4
+ import { INTERACTION_CREATE_TYPE } from './sdk/message/INTERACTION_CREATE';
6
5
  type MAP = {
7
6
  'message.create': MESSAGE_CREATE_TYPE;
8
7
  'private.message.create': MESSAGE_CREATE_TYPE;
@@ -12,8 +11,8 @@ type MAP = {
12
11
  'message.delete': undefined;
13
12
  'message.reaction.add': undefined;
14
13
  'message.reaction.remove': undefined;
15
- 'channal.create': undefined;
16
- 'channal.delete': undefined;
14
+ 'channel.create': undefined;
15
+ 'channel.delete': undefined;
17
16
  'guild.join': undefined;
18
17
  'guild.exit': undefined;
19
18
  'member.add': undefined;
@@ -23,17 +22,6 @@ type MAP = {
23
22
  'private.friend.add': undefined;
24
23
  'private.guild.add': undefined;
25
24
  };
26
- /**
27
- *
28
- * @param event
29
- * @returns
30
- */
31
- declare const useValue: <T extends EventKeys>(event: Events[T]) => readonly [MAP[T]];
32
- /**
33
- *
34
- * @param event
35
- * @returns
36
- */
37
- declare const useClient: <T extends EventKeys>(event: Events[T]) => readonly [DCAPI, MAP[T]];
38
-
39
- export { useClient, useValue };
25
+ export declare const useValue: <T extends EventKeys>(event: Events[T]) => readonly [MAP[T]];
26
+ export declare const useClient: <T extends EventKeys>(event: Events[T]) => readonly [API, MAP[T]];
27
+ export {};
package/lib/hook.js CHANGED
@@ -1,20 +1,10 @@
1
1
  import { createEventValue, useClient as useClient$1 } from 'alemonjs';
2
2
  import { DCAPI } from './sdk/api.js';
3
3
 
4
- /**
5
- *
6
- * @param event
7
- * @returns
8
- */
9
4
  const useValue = (event) => {
10
5
  const value = createEventValue(event);
11
6
  return [value];
12
7
  };
13
- /**
14
- *
15
- * @param event
16
- * @returns
17
- */
18
8
  const useClient = (event) => {
19
9
  const [client] = useClient$1(event, DCAPI);
20
10
  const value = createEventValue(event);
package/lib/index.d.ts CHANGED
@@ -1,7 +1,6 @@
1
- export { platform } from './config.js';
2
- export { DCAPI as API } from './sdk/api.js';
3
- export { useClient, useValue } from './hook.js';
4
-
5
- declare const _default: () => void;
6
-
7
- export { _default as default };
1
+ export { platform } from './config';
2
+ export { DCAPI as API } from './sdk/api';
3
+ export * from './hook';
4
+ export { type Options } from './config';
5
+ declare const _default: () => any;
6
+ export default _default;