kook-client 1.0.0 → 1.0.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.
package/lib/client.js CHANGED
@@ -1,21 +1,16 @@
1
- "use strict";
2
1
  var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
2
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
3
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
5
  };
7
6
  var _Client_instances, _Client_initChannels, _Client_initUsers, _Client_initBlacklist;
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.Client = void 0;
10
- exports.defineConfig = defineConfig;
11
- exports.createClient = createClient;
12
- const baseClient_1 = require("./core/baseClient");
13
- const guild_1 = require("./entries/guild");
14
- const channel_1 = require("./entries/channel");
15
- const user_1 = require("./entries/user");
16
- const guildMember_1 = require("./entries/guildMember");
17
- const channelMember_1 = require("./entries/channelMember");
18
- class Client extends baseClient_1.BaseClient {
7
+ import { BaseClient } from "./core/baseClient";
8
+ import { Guild } from "./entries/guild";
9
+ import { Channel } from "./entries/channel";
10
+ import { User } from "./entries/user";
11
+ import { GuildMember } from "./entries/guildMember";
12
+ import { ChannelMember } from "./entries/channelMember";
13
+ export class Client extends BaseClient {
19
14
  constructor(config) {
20
15
  super(Object.assign({}, Client.defaultConfig, config));
21
16
  _Client_instances.add(this);
@@ -25,11 +20,11 @@ class Client extends baseClient_1.BaseClient {
25
20
  this.guildMembers = new Map();
26
21
  this.channelMembers = new Map();
27
22
  this.users = new Map();
28
- this.pickGuild = guild_1.Guild.as.bind(this);
29
- this.pickGuildMember = guildMember_1.GuildMember.as.bind(this);
30
- this.pickChannel = channel_1.Channel.as.bind(this);
31
- this.pickChannelMember = channelMember_1.ChannelMember.as.bind(this);
32
- this.pickUser = user_1.User.as.bind(this);
23
+ this.pickGuild = Guild.as.bind(this);
24
+ this.pickGuildMember = GuildMember.as.bind(this);
25
+ this.pickChannel = Channel.as.bind(this);
26
+ this.pickChannelMember = ChannelMember.as.bind(this);
27
+ this.pickUser = User.as.bind(this);
33
28
  const nodeVersion = parseInt(process.version.slice(1));
34
29
  if (nodeVersion < 16) {
35
30
  this.logger.warn(`你的node版本(${process.version}) <16,可能会出现不可预测的错误,请升级node版本,为确保服务正常运行,请升级node版本`);
@@ -184,7 +179,6 @@ class Client extends baseClient_1.BaseClient {
184
179
  await this.receiver.disconnect();
185
180
  }
186
181
  }
187
- exports.Client = Client;
188
182
  _Client_instances = new WeakSet(), _Client_initChannels = async function _Client_initChannels(guild_id) {
189
183
  const channels = await this.getChannelList(guild_id);
190
184
  for (const channel of channels) {
@@ -213,10 +207,10 @@ _Client_instances = new WeakSet(), _Client_initChannels = async function _Client
213
207
  };
214
208
  (function (Client) {
215
209
  Client.defaultConfig = {};
216
- })(Client || (exports.Client = Client = {}));
217
- function defineConfig(config) {
210
+ })(Client || (Client = {}));
211
+ export function defineConfig(config) {
218
212
  return config;
219
213
  }
220
- function createClient(config) {
214
+ export function createClient(config) {
221
215
  return new Client(config);
222
216
  }
package/lib/constans.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotifyType = exports.ChannelType = exports.UnsupportedMethodError = exports.OpCode = void 0;
4
1
  // 心跳参数
5
- var OpCode;
2
+ export var OpCode;
6
3
  (function (OpCode) {
7
4
  OpCode[OpCode["Event"] = 0] = "Event";
8
5
  OpCode[OpCode["Hello"] = 1] = "Hello";
@@ -10,18 +7,18 @@ var OpCode;
10
7
  OpCode[OpCode["Pong"] = 3] = "Pong";
11
8
  OpCode[OpCode["Reconnect"] = 5] = "Reconnect";
12
9
  OpCode[OpCode["ResumeAck"] = 6] = "ResumeAck";
13
- })(OpCode || (exports.OpCode = OpCode = {}));
14
- exports.UnsupportedMethodError = new Error('暂未支持');
15
- var ChannelType;
10
+ })(OpCode || (OpCode = {}));
11
+ export const UnsupportedMethodError = new Error('暂未支持');
12
+ export var ChannelType;
16
13
  (function (ChannelType) {
17
14
  ChannelType["Channel"] = "GROUP";
18
15
  ChannelType["Private"] = "PERSON";
19
16
  ChannelType["Notice"] = "BROADCAST";
20
- })(ChannelType || (exports.ChannelType = ChannelType = {}));
21
- var NotifyType;
17
+ })(ChannelType || (ChannelType = {}));
18
+ export var NotifyType;
22
19
  (function (NotifyType) {
23
20
  NotifyType[NotifyType["Default"] = 0] = "Default";
24
21
  NotifyType[NotifyType["All"] = 1] = "All";
25
22
  NotifyType[NotifyType["At"] = 2] = "At";
26
23
  NotifyType[NotifyType["Off"] = 3] = "Off";
27
- })(NotifyType || (exports.NotifyType = NotifyType = {}));
24
+ })(NotifyType || (NotifyType = {}));
@@ -1,55 +1,16 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.BaseClient = void 0;
40
- const axios_1 = __importDefault(require("axios"));
41
- const form_data_1 = __importDefault(require("form-data"));
42
- const log4js = __importStar(require("log4js"));
43
- const events_1 = require("events");
44
- const utils_1 = require("../utils");
45
- const receiver_1 = require("../core/receiver");
46
- class BaseClient extends events_1.EventEmitter {
1
+ import axios from "axios";
2
+ import FormData from 'form-data';
3
+ import log4js from 'log4js';
4
+ import { EventEmitter } from "events";
5
+ import { getFile } from "../utils";
6
+ import { Receiver } from "../core/receiver";
7
+ export class BaseClient extends EventEmitter {
47
8
  constructor(config) {
48
9
  var _a;
49
10
  super();
50
11
  this.processedEvents = new Set();
51
12
  this.config = Object.assign({}, BaseClient.defaultConfig, config);
52
- this.request = axios_1.default.create({
13
+ this.request = axios.create({
53
14
  baseURL: 'https://www.kookapp.cn/api',
54
15
  timeout: config.timeout || 5000,
55
16
  headers: {
@@ -68,7 +29,7 @@ class BaseClient extends events_1.EventEmitter {
68
29
  }
69
30
  if (config.headers['Content-Type'] === 'multipart/form-data') {
70
31
  delete config.data.message_reference;
71
- const formData = new form_data_1.default(); // 使用 form-data
32
+ const formData = new FormData(); // 使用 form-data
72
33
  for (const key in config.data) {
73
34
  if (config.data[key] !== undefined) {
74
35
  formData.append(key, config.data[key]); // 使用 append 而不是 set
@@ -87,7 +48,7 @@ class BaseClient extends events_1.EventEmitter {
87
48
  });
88
49
  this.logger = log4js.getLogger(`[KOOK]`);
89
50
  this.logger.level = (_a = this.config).logLevel || (_a.logLevel = 'info');
90
- this.receiver = receiver_1.Receiver.create(config.mode, this, config);
51
+ this.receiver = Receiver.create(config.mode, this, config);
91
52
  this.logger.info(`using ${config.mode} mode`);
92
53
  }
93
54
  /**
@@ -96,8 +57,8 @@ class BaseClient extends events_1.EventEmitter {
96
57
  * @returns 返回可直接访问的文件URL
97
58
  */
98
59
  async uploadMedia(data) {
99
- const formData = new form_data_1.default();
100
- const fileData = await (0, utils_1.getFile)(data);
60
+ const formData = new FormData();
61
+ const fileData = await getFile(data);
101
62
  // console.error(await getFile(data));
102
63
  formData.append('file', fileData, 'awa.png'); // 显式指定文件名
103
64
  try {
@@ -149,7 +110,24 @@ class BaseClient extends events_1.EventEmitter {
149
110
  }
150
111
  }
151
112
  }
152
- exports.BaseClient = BaseClient;
113
+ // export interface KookClient {
114
+ // on<T extends keyof EventMap>(event: T, callback: EventMap[T]): this
115
+ // on<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, callback: (...args: any[]) => void): this
116
+ // once<T extends keyof EventMap>(event: T, callback: EventMap[T]): this
117
+ // once<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, callback: (...args: any[]) => void): this
118
+ // off<T extends keyof EventMap>(event: T, callback?: EventMap[T]): this
119
+ // off<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, callback?: (...args: any[]) => void): this
120
+ // emit<T extends keyof EventMap>(event: T, ...args: Parameters<EventMap[T]>): boolean
121
+ // emit<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, ...args: any[]): boolean
122
+ // addListener<T extends keyof EventMap>(event: T, callback: EventMap[T]): this
123
+ // addListener<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, callback: (...args: any[]) => void): this
124
+ // addListenerOnce<T extends keyof EventMap>(event: T, callback: EventMap[T]): this
125
+ // addListenerOnce<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, callback: (...args: any[]) => void): this
126
+ // removeListener<T extends keyof EventMap>(event: T, callback?: EventMap[T]): this
127
+ // removeListener<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>, callback?: (...args: any[]) => void): this
128
+ // removeAllListeners<T extends keyof EventMap>(event: T): this
129
+ // removeAllListeners<S extends string | symbol>(event: S & Exclude<string | symbol, keyof EventMap>): this
130
+ // }
153
131
  (function (BaseClient) {
154
132
  BaseClient.defaultConfig = {
155
133
  ignore: 'bot'
@@ -163,4 +141,4 @@ exports.BaseClient = BaseClient;
163
141
  }
164
142
  }
165
143
  BaseClient.getFullTargetId = getFullTargetId;
166
- })(BaseClient || (exports.BaseClient = BaseClient = {}));
144
+ })(BaseClient || (BaseClient = {}));
@@ -1,17 +1,14 @@
1
- "use strict";
2
1
  var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
3
2
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
4
3
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
5
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
6
5
  };
7
6
  var _Receiver_instances, _Receiver_transformEvent, _Receiver_transformChannelEvent, _Receiver_transformPrivateEvent, _Receiver_transformNoticeEvent;
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.Receiver = void 0;
10
- const events_1 = require("events");
11
- const crypto_1 = require("crypto");
12
- const constans_1 = require("../constans");
13
- const event_1 = require("../event");
14
- class Receiver extends events_1.EventEmitter {
7
+ import { EventEmitter } from "events";
8
+ import { createDecipheriv } from 'crypto';
9
+ import { ChannelType } from "../constans";
10
+ import { ChannelMessageEvent, PrivateMessageEvent } from "../event";
11
+ export class Receiver extends EventEmitter {
15
12
  constructor(c) {
16
13
  super();
17
14
  _Receiver_instances.add(this);
@@ -33,19 +30,18 @@ class Receiver extends events_1.EventEmitter {
33
30
  const finalKey = key.padEnd(32, '0');
34
31
  const finalKeyBuf = Buffer.from(finalKey, 'utf8');
35
32
  const finalIvBuf = Buffer.from(iv, 'utf8');
36
- const decipher = (0, crypto_1.createDecipheriv)('aes-256-cbc', finalKeyBuf, finalIvBuf);
33
+ const decipher = createDecipheriv('aes-256-cbc', finalKeyBuf, finalIvBuf);
37
34
  const decryptedData = decipher.update(encryptedData);
38
35
  return decryptedData.toString('utf8') + decipher.final().toString('utf8');
39
36
  }
40
37
  }
41
- exports.Receiver = Receiver;
42
38
  _Receiver_instances = new WeakSet(), _Receiver_transformEvent = function _Receiver_transformEvent(event) {
43
39
  switch (event.channel_type) {
44
- case constans_1.ChannelType.Channel:
40
+ case ChannelType.Channel:
45
41
  return __classPrivateFieldGet(this, _Receiver_instances, "m", _Receiver_transformChannelEvent).call(this, event);
46
- case constans_1.ChannelType.Private:
42
+ case ChannelType.Private:
47
43
  return __classPrivateFieldGet(this, _Receiver_instances, "m", _Receiver_transformPrivateEvent).call(this, event);
48
- case constans_1.ChannelType.Notice:
44
+ case ChannelType.Notice:
49
45
  return __classPrivateFieldGet(this, _Receiver_instances, "m", _Receiver_transformNoticeEvent).call(this, event);
50
46
  default:
51
47
  throw new Error(`unknown channel type ${event.channel_type}`);
@@ -57,7 +53,7 @@ _Receiver_instances = new WeakSet(), _Receiver_transformEvent = function _Receiv
57
53
  return;
58
54
  if (event.author_id === this.c.self_id && this.c.config.ignore === 'self')
59
55
  return;
60
- const messageEvent = new event_1.ChannelMessageEvent(this.c, event);
56
+ const messageEvent = new ChannelMessageEvent(this.c, event);
61
57
  this.c.em('message.channel', messageEvent);
62
58
  this.c.logger.info(`recv from Channel(${messageEvent.channel_id}): ${messageEvent.raw_message}`);
63
59
  }, _Receiver_transformPrivateEvent = function _Receiver_transformPrivateEvent(event) {
@@ -67,7 +63,7 @@ _Receiver_instances = new WeakSet(), _Receiver_transformEvent = function _Receiv
67
63
  return;
68
64
  if (event.author_id === this.c.self_id && this.c.config.ignore === 'self')
69
65
  return;
70
- const messageEvent = new event_1.PrivateMessageEvent(this.c, event);
66
+ const messageEvent = new PrivateMessageEvent(this.c, event);
71
67
  this.c.em('message.private', messageEvent);
72
68
  this.c.logger.info(`recv from User(${messageEvent.author_id}): ${messageEvent.raw_message}`);
73
69
  }, _Receiver_transformNoticeEvent = function _Receiver_transformNoticeEvent(event) {
@@ -85,4 +81,4 @@ _Receiver_instances = new WeakSet(), _Receiver_transformEvent = function _Receiv
85
81
  return new Construct(...args);
86
82
  }
87
83
  Receiver.create = create;
88
- })(Receiver || (exports.Receiver = Receiver = {}));
84
+ })(Receiver || (Receiver = {}));
@@ -1,7 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebsocketReceiver = exports.WebhookReceiver = void 0;
4
- var webhook_1 = require("./webhook");
5
- Object.defineProperty(exports, "WebhookReceiver", { enumerable: true, get: function () { return webhook_1.WebhookReceiver; } });
6
- var websocket_1 = require("./websocket");
7
- Object.defineProperty(exports, "WebsocketReceiver", { enumerable: true, get: function () { return websocket_1.WebsocketReceiver; } });
1
+ export { WebhookReceiver } from './webhook';
2
+ export { WebsocketReceiver } from './websocket';
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebhookReceiver = void 0;
4
- const receiver_1 = require("../../core/receiver");
5
- class WebhookReceiver extends receiver_1.Receiver {
1
+ import { Receiver } from "../../core/receiver";
2
+ export class WebhookReceiver extends Receiver {
6
3
  constructor(client, config) {
7
4
  super(client);
8
5
  this.config = config;
@@ -14,5 +11,4 @@ class WebhookReceiver extends receiver_1.Receiver {
14
11
  return Promise.resolve(undefined);
15
12
  }
16
13
  }
17
- exports.WebhookReceiver = WebhookReceiver;
18
- receiver_1.Receiver.register('webhook', WebhookReceiver);
14
+ Receiver.register('webhook', WebhookReceiver);
@@ -1,10 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebsocketReceiver = void 0;
4
- const receiver_1 = require("../../core/receiver");
5
- const ws_1 = require("ws");
6
- const constans_1 = require("../../constans");
7
- class WebsocketReceiver extends receiver_1.Receiver {
1
+ import { Receiver } from "../../core/receiver";
2
+ import { WebSocket } from "ws";
3
+ import { OpCode } from "../../constans";
4
+ import * as dns from "dns";
5
+ export class WebsocketReceiver extends Receiver {
8
6
  constructor(client, config) {
9
7
  super(client);
10
8
  this.config = config;
@@ -62,10 +60,10 @@ class WebsocketReceiver extends receiver_1.Receiver {
62
60
  });
63
61
  }
64
62
  sendPing() {
65
- if (this.ws?.readyState === ws_1.WebSocket.OPEN) {
63
+ if (this.ws?.readyState === WebSocket.OPEN) {
66
64
  // 发送包含当前 sn 的 Ping(必须为数字)
67
65
  this.ws.send(JSON.stringify({
68
- s: constans_1.OpCode.Ping,
66
+ s: OpCode.Ping,
69
67
  sn: this.sn || 0
70
68
  }));
71
69
  this.lastPongTime = Date.now();
@@ -91,20 +89,20 @@ class WebsocketReceiver extends receiver_1.Receiver {
91
89
  if (data.sn)
92
90
  this.sn = Number(data.sn); // 确保为数字
93
91
  switch (data.s) {
94
- case constans_1.OpCode.Hello:
92
+ case OpCode.Hello:
95
93
  this.emit('hello', data.d);
96
94
  break;
97
- case constans_1.OpCode.Event:
95
+ case OpCode.Event:
98
96
  this.emit('event', data.d);
99
97
  break;
100
- case constans_1.OpCode.Reconnect:
98
+ case OpCode.Reconnect:
101
99
  this.logger.debug('Received reconnect command from server', data.d);
102
100
  this.scheduleReconnect();
103
101
  break;
104
- case constans_1.OpCode.ResumeAck:
102
+ case OpCode.ResumeAck:
105
103
  this.emit('resume', data.d);
106
104
  break;
107
- case constans_1.OpCode.Pong:
105
+ case OpCode.Pong:
108
106
  this.lastPongTime = Date.now();
109
107
  this.logger.debug('Received pong from server');
110
108
  break;
@@ -154,7 +152,7 @@ class WebsocketReceiver extends receiver_1.Receiver {
154
152
  // Clean up WebSocket
155
153
  if (this.ws) {
156
154
  this.ws.removeAllListeners();
157
- if (this.ws.readyState === ws_1.WebSocket.OPEN) {
155
+ if (this.ws.readyState === WebSocket.OPEN) {
158
156
  this.ws.close();
159
157
  }
160
158
  this.ws = null;
@@ -196,7 +194,7 @@ class WebsocketReceiver extends receiver_1.Receiver {
196
194
  // 可以添加定期的网络连通性检查
197
195
  const networkCheckInterval = setInterval(() => {
198
196
  // 简单的网络连通性检查
199
- require('dns').resolve('www.kookapp.cn', (err) => {
197
+ dns.resolve('www.kookapp.cn', (err) => {
200
198
  if (err) {
201
199
  this.logger.debug('Network connectivity issue detected');
202
200
  if (this.state === WebsocketReceiver.State.Closed) {
@@ -221,7 +219,7 @@ class WebsocketReceiver extends receiver_1.Receiver {
221
219
  }
222
220
  this.url = url;
223
221
  this.state = WebsocketReceiver.State.Connecting;
224
- this.ws = new ws_1.WebSocket(this.url);
222
+ this.ws = new WebSocket(this.url);
225
223
  this.setupEventListeners();
226
224
  const receiveCode = await this.waitForHello();
227
225
  if (receiveCode !== 0) {
@@ -252,7 +250,6 @@ class WebsocketReceiver extends receiver_1.Receiver {
252
250
  this.state = WebsocketReceiver.State.Closed;
253
251
  }
254
252
  }
255
- exports.WebsocketReceiver = WebsocketReceiver;
256
253
  (function (WebsocketReceiver) {
257
254
  let State;
258
255
  (function (State) {
@@ -263,5 +260,5 @@ exports.WebsocketReceiver = WebsocketReceiver;
263
260
  State[State["Closed"] = 4] = "Closed";
264
261
  State[State["Reconnection"] = 5] = "Reconnection";
265
262
  })(State = WebsocketReceiver.State || (WebsocketReceiver.State = {}));
266
- })(WebsocketReceiver || (exports.WebsocketReceiver = WebsocketReceiver = {}));
267
- receiver_1.Receiver.register('websocket', WebsocketReceiver);
263
+ })(WebsocketReceiver || (WebsocketReceiver = {}));
264
+ Receiver.register('websocket', WebsocketReceiver);
package/lib/elements.js CHANGED
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.segment = exports.msgMod = exports.element = void 0;
4
- exports.validateCard = validateCard;
5
1
  // 验证卡片消息
6
2
  function validateCard(card) {
7
3
  // 1. 验证卡片结构
@@ -211,22 +207,22 @@ function validateElement(element) {
211
207
  break;
212
208
  }
213
209
  }
214
- exports.element = function (type, data) {
210
+ export const element = function (type, data) {
215
211
  return {
216
212
  type,
217
213
  ...data
218
214
  };
219
215
  };
220
- exports.element.text = (content, emoji = true) => ({
216
+ element.text = (content, emoji = true) => ({
221
217
  type: 'plain-text',
222
218
  content,
223
219
  emoji
224
220
  });
225
- exports.element.markdown = (content) => ({
221
+ element.markdown = (content) => ({
226
222
  type: 'kmarkdown',
227
223
  content
228
224
  });
229
- exports.element.image = (src, alt, size, circle, fallbackUrl) => ({
225
+ element.image = (src, alt, size, circle, fallbackUrl) => ({
230
226
  type: 'image',
231
227
  src,
232
228
  ...(alt && { alt }),
@@ -234,89 +230,89 @@ exports.element.image = (src, alt, size, circle, fallbackUrl) => ({
234
230
  ...(circle && { circle }),
235
231
  ...(fallbackUrl && { fallbackUrl })
236
232
  });
237
- exports.element.button = (text, value, theme = 'primary', click) => ({
233
+ element.button = (text, value, theme = 'primary', click) => ({
238
234
  type: 'button',
239
235
  text,
240
236
  value,
241
237
  theme,
242
238
  ...(click && { click })
243
239
  });
244
- exports.element.paragraph = (cols, fields) => ({
240
+ element.paragraph = (cols, fields) => ({
245
241
  type: 'paragraph',
246
242
  cols,
247
243
  fields
248
244
  });
249
- exports.msgMod = function (type, data) {
245
+ export const msgMod = function (type, data) {
250
246
  return {
251
247
  type,
252
248
  ...data
253
249
  };
254
250
  };
255
- exports.msgMod.header = (text) => ({
251
+ msgMod.header = (text) => ({
256
252
  type: 'header',
257
253
  text
258
254
  });
259
- exports.msgMod.section = (text, mode = 'left', accessory) => ({
255
+ msgMod.section = (text, mode = 'left', accessory) => ({
260
256
  type: 'section',
261
257
  ...(text && { text }),
262
258
  mode,
263
259
  ...(accessory && { accessory })
264
260
  });
265
- exports.msgMod.image = (elements) => ({
261
+ msgMod.image = (elements) => ({
266
262
  type: 'image-group',
267
263
  elements
268
264
  });
269
- exports.msgMod.container = (elements) => ({
265
+ msgMod.container = (elements) => ({
270
266
  type: 'container',
271
267
  elements
272
268
  });
273
- exports.msgMod.action = (elements) => ({
269
+ msgMod.action = (elements) => ({
274
270
  type: 'action-group',
275
271
  elements
276
272
  });
277
- exports.msgMod.context = (elements) => ({
273
+ msgMod.context = (elements) => ({
278
274
  type: 'context',
279
275
  elements
280
276
  });
281
- exports.msgMod.divider = () => ({
277
+ msgMod.divider = () => ({
282
278
  type: 'divider'
283
279
  });
284
- exports.msgMod.file = (src, title) => ({
280
+ msgMod.file = (src, title) => ({
285
281
  type: 'file',
286
282
  src,
287
283
  title
288
284
  });
289
- exports.msgMod.audio = (src, title, cover) => ({
285
+ msgMod.audio = (src, title, cover) => ({
290
286
  type: 'audio',
291
287
  src,
292
288
  title,
293
289
  ...(cover && { cover })
294
290
  });
295
- exports.msgMod.video = (src, title) => ({
291
+ msgMod.video = (src, title) => ({
296
292
  type: 'video',
297
293
  src,
298
294
  title
299
295
  });
300
- exports.msgMod.countdown = (endTime, mode = 'hour', startTime) => ({
296
+ msgMod.countdown = (endTime, mode = 'hour', startTime) => ({
301
297
  type: 'countdown',
302
298
  endTime,
303
299
  mode,
304
300
  ...(startTime && { startTime })
305
301
  });
306
- exports.msgMod.invite = (code) => ({
302
+ msgMod.invite = (code) => ({
307
303
  type: 'invite',
308
304
  code
309
305
  });
310
- exports.segment = function (type, attrs) {
306
+ export const segment = function (type, attrs) {
311
307
  return {
312
308
  type,
313
309
  ...attrs
314
310
  };
315
311
  };
316
- exports.segment.text = (text) => (0, exports.segment)('text', { text });
317
- exports.segment.at = (user_id) => (0, exports.segment)('at', { user_id });
312
+ segment.text = (text) => segment('text', { text });
313
+ segment.at = (user_id) => segment('at', { user_id });
318
314
  // 修改后的卡片消息段生成器
319
- exports.segment.card = (modules, options) => {
315
+ segment.card = (modules, options) => {
320
316
  // 创建卡片对象
321
317
  const cardObj = {
322
318
  type: 'card',
@@ -329,14 +325,16 @@ exports.segment.card = (modules, options) => {
329
325
  ...cardObj
330
326
  };
331
327
  };
332
- exports.segment.image = (url, title) => (0, exports.segment)('image', { url, ...(title && { title }) });
333
- exports.segment.video = (url, title) => (0, exports.segment)('video', { url, ...(title && { title }) });
334
- exports.segment.audio = (url, title) => (0, exports.segment)('audio', { url, ...(title && { title }) });
335
- exports.segment.markdown = (text) => (0, exports.segment)('markdown', { text });
336
- exports.segment.reply = (message_id) => (0, exports.segment)('reply', { id: message_id });
337
- exports.segment.file = (url, name, file_type, size) => (0, exports.segment)('file', {
328
+ segment.image = (url, title) => segment('image', { url, ...(title && { title }) });
329
+ segment.video = (url, title) => segment('video', { url, ...(title && { title }) });
330
+ segment.audio = (url, title) => segment('audio', { url, ...(title && { title }) });
331
+ segment.markdown = (text) => segment('markdown', { text });
332
+ segment.reply = (message_id) => segment('reply', { id: message_id });
333
+ segment.file = (url, name, file_type, size) => segment('file', {
338
334
  url,
339
335
  ...(name && { name }),
340
336
  ...(file_type && { file_type }),
341
337
  ...(size && { size })
342
338
  });
339
+ // 导出验证
340
+ export { validateCard };
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Channel = void 0;
4
- const contact_1 = require("../entries/contact");
5
- const _1 = require("..");
6
- const event_1 = require("../event");
7
- class Channel extends contact_1.Contact {
1
+ import { Contact } from "../entries/contact";
2
+ import { Message } from "..";
3
+ import { ChannelMessageEvent } from "../event";
4
+ export class Channel extends Contact {
8
5
  constructor(c, info) {
9
6
  super(c);
10
7
  this.info = info;
@@ -44,7 +41,7 @@ class Channel extends contact_1.Contact {
44
41
  msg_id: message_id
45
42
  }
46
43
  });
47
- return event_1.ChannelMessageEvent.fromDetail(this.c, this.info.id, data);
44
+ return ChannelMessageEvent.fromDetail(this.c, this.info.id, data);
48
45
  }
49
46
  async getUserList() {
50
47
  const { data } = await this.c.request.get('/v3/channel/user-list', {
@@ -66,11 +63,11 @@ class Channel extends contact_1.Contact {
66
63
  page_size: len
67
64
  });
68
65
  return (result?.data?.items || []).map((item) => {
69
- return event_1.ChannelMessageEvent.fromDetail(this.c, this.info.id, item);
66
+ return ChannelMessageEvent.fromDetail(this.c, this.info.id, item);
70
67
  });
71
68
  }
72
69
  async sendMsg(message, quote) {
73
- const [content, quoteObj, type] = await _1.Message.processMessage.call(this.c, message, quote);
70
+ const [content, quoteObj, type] = await Message.processMessage.call(this.c, message, quote);
74
71
  const { data } = await this.c.request.post('/v3/message/create', {
75
72
  target_id: this.info.id,
76
73
  content, // 处理后的内容(图片URL / 文本 / Markdown / Card JSON)
@@ -89,7 +86,7 @@ class Channel extends contact_1.Contact {
89
86
  return result['code'] === 0;
90
87
  }
91
88
  async updateMsg(message_id, newMessage, quote) {
92
- [newMessage, quote] = await _1.Message.processMessage.call(this.c, newMessage, quote);
89
+ [newMessage, quote] = await Message.processMessage.call(this.c, newMessage, quote);
93
90
  const result = await this.c.request.post('/v3/message/update', {
94
91
  msg_id: message_id,
95
92
  content: newMessage,
@@ -120,7 +117,6 @@ class Channel extends contact_1.Contact {
120
117
  });
121
118
  }
122
119
  }
123
- exports.Channel = Channel;
124
120
  (function (Channel) {
125
121
  Channel.map = new WeakMap();
126
122
  function as(channel_id) {
@@ -134,4 +130,4 @@ exports.Channel = Channel;
134
130
  return channel;
135
131
  }
136
132
  Channel.as = as;
137
- })(Channel || (exports.Channel = Channel = {}));
133
+ })(Channel || (Channel = {}));