@zhin.js/adapter-onebot12 1.0.1 → 1.1.0

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 (90) hide show
  1. package/CHANGELOG.md +855 -0
  2. package/README.md +59 -69
  3. package/adapters/onebot12.js +50 -0
  4. package/adapters/onebot12.ts +64 -0
  5. package/commands/endpoint/add/[id].js +3 -0
  6. package/commands/endpoint/add/[id].ts +3 -0
  7. package/commands/endpoint/list.js +3 -0
  8. package/commands/endpoint/list.ts +3 -0
  9. package/commands/endpoint/remove/[id].js +3 -0
  10. package/commands/endpoint/remove/[id].ts +3 -0
  11. package/lib/client.d.ts +20 -0
  12. package/lib/client.js +33 -0
  13. package/lib/content-port.d.ts +4 -0
  14. package/lib/content-port.js +45 -0
  15. package/lib/endpoint-management.d.ts +16 -0
  16. package/lib/endpoint-management.js +47 -0
  17. package/lib/index.d.ts +10 -19
  18. package/lib/index.js +7 -27
  19. package/lib/onebot12-endpoint-commands.d.ts +1 -0
  20. package/lib/onebot12-endpoint-commands.js +25 -0
  21. package/lib/onebot12-runtime-state.d.ts +1 -0
  22. package/lib/onebot12-runtime-state.js +6 -0
  23. package/lib/protocol.d.ts +173 -0
  24. package/lib/protocol.js +415 -0
  25. package/lib/side-event-dispatch.d.ts +7 -0
  26. package/lib/side-event-dispatch.js +36 -0
  27. package/lib/webhook.d.ts +23 -0
  28. package/lib/webhook.js +161 -0
  29. package/lib/ws-endpoint.d.ts +22 -0
  30. package/lib/ws-endpoint.js +255 -0
  31. package/lib/ws-types.d.ts +16 -0
  32. package/lib/ws-types.js +1 -0
  33. package/lib/wss-auth.d.ts +2 -0
  34. package/lib/wss-auth.js +16 -0
  35. package/lib/wss-endpoint.d.ts +25 -0
  36. package/lib/wss-endpoint.js +222 -0
  37. package/package.json +63 -17
  38. package/plugin.js +14 -0
  39. package/schema.json +102 -0
  40. package/src/client.ts +81 -0
  41. package/src/content-port.ts +49 -0
  42. package/src/endpoint-management.ts +73 -0
  43. package/src/index.ts +64 -37
  44. package/src/onebot12-endpoint-commands.ts +24 -0
  45. package/src/onebot12-runtime-state.ts +7 -0
  46. package/src/protocol.ts +574 -0
  47. package/src/side-event-dispatch.ts +48 -0
  48. package/src/webhook.ts +223 -0
  49. package/src/ws-endpoint.ts +321 -0
  50. package/src/ws-types.ts +19 -0
  51. package/src/wss-auth.ts +17 -0
  52. package/src/wss-endpoint.ts +278 -0
  53. package/lib/adapter.d.ts +0 -18
  54. package/lib/adapter.d.ts.map +0 -1
  55. package/lib/adapter.js +0 -41
  56. package/lib/adapter.js.map +0 -1
  57. package/lib/api.d.ts +0 -14
  58. package/lib/api.d.ts.map +0 -1
  59. package/lib/api.js +0 -34
  60. package/lib/api.js.map +0 -1
  61. package/lib/endpoint-webhook.d.ts +0 -25
  62. package/lib/endpoint-webhook.d.ts.map +0 -1
  63. package/lib/endpoint-webhook.js +0 -118
  64. package/lib/endpoint-webhook.js.map +0 -1
  65. package/lib/endpoint-ws.d.ts +0 -26
  66. package/lib/endpoint-ws.d.ts.map +0 -1
  67. package/lib/endpoint-ws.js +0 -210
  68. package/lib/endpoint-ws.js.map +0 -1
  69. package/lib/endpoint-wss.d.ts +0 -26
  70. package/lib/endpoint-wss.d.ts.map +0 -1
  71. package/lib/endpoint-wss.js +0 -187
  72. package/lib/endpoint-wss.js.map +0 -1
  73. package/lib/index.d.ts.map +0 -1
  74. package/lib/index.js.map +0 -1
  75. package/lib/types.d.ts +0 -77
  76. package/lib/types.d.ts.map +0 -1
  77. package/lib/types.js +0 -5
  78. package/lib/types.js.map +0 -1
  79. package/lib/utils.d.ts +0 -45
  80. package/lib/utils.d.ts.map +0 -1
  81. package/lib/utils.js +0 -60
  82. package/lib/utils.js.map +0 -1
  83. package/src/adapter.ts +0 -54
  84. package/src/api.ts +0 -48
  85. package/src/endpoint-webhook.ts +0 -130
  86. package/src/endpoint-ws.ts +0 -222
  87. package/src/endpoint-wss.ts +0 -202
  88. package/src/types.ts +0 -86
  89. package/src/utils.ts +0 -87
  90. /package/{skills/onebot12/SKILL.md → agent/skills/onebot12.md} +0 -0
@@ -0,0 +1,278 @@
1
+ /**
2
+ * OneBot12 reverse WSS endpoint — accepts inbound WebSocket from OneBot implementation.
3
+ */
4
+ import {
5
+ ClientEndpoint,
6
+ createEndpointLifecycle,
7
+ createRecallEndpointControl,
8
+ type EndpointLifecycle,
9
+ type EndpointControl,
10
+ type EndpointManagement,
11
+ type EndpointSendRequest,
12
+ } from 'zhin.js/adapter';
13
+ import type { HttpHost, WsConnection } from '@zhin.js/host-http';
14
+ import { formatCompact, getAdapterLogger } from '@zhin.js/logger';
15
+ import type { CapabilityId } from 'zhin.js';
16
+ import { createOneBot12EndpointManagement } from './endpoint-management.js';
17
+ import {
18
+ buildSendMessageParams,
19
+ formatInboundContent,
20
+ formatOutboundSegments,
21
+ isBotMentioned,
22
+ isMessageEvent,
23
+ onebot12InboundConversation,
24
+ senderNickname,
25
+ senderUserId,
26
+ uploadOneBot12MediaSegments,
27
+ type OneBot12ActionRequest,
28
+ type OneBot12ActionResponse,
29
+ type OneBot12Event,
30
+ type OneBot12WssConfig,
31
+ } from './protocol.js';
32
+ import { receiveOneBot12SideEvent } from './side-event-dispatch.js';
33
+ import { createOneBot12ContentPort } from './content-port.js';
34
+ import { callOnebot12Client, createOnebot12EndpointClient, forwardOnebot12ClientEvents, type Onebot12Client } from './client.js';
35
+ import { verifyOneBotAccessToken } from './wss-auth.js';
36
+ import { type OneBot12WsSocket, WS_OPEN } from './ws-types.js';
37
+
38
+ export interface OneBot12WssEndpointOptions {
39
+ readonly id: CapabilityId;
40
+ readonly http: HttpHost;
41
+ readonly config: OneBot12WssConfig;
42
+ }
43
+
44
+ export class OneBot12WssEndpoint extends ClientEndpoint<Onebot12Client> {
45
+ readonly client: Onebot12Client;
46
+ readonly #logger!: ReturnType<typeof getAdapterLogger>;
47
+
48
+ readonly #options: OneBot12WssEndpointOptions;
49
+ readonly management: EndpointManagement;
50
+ readonly control: EndpointControl = createRecallEndpointControl((id) => this.recallMessage(id));
51
+ readonly content;
52
+ #ws?: OneBot12WsSocket;
53
+ #wsRelease?: () => void;
54
+ readonly #lifecycle: EndpointLifecycle;
55
+ #requestId = 0;
56
+ #pending = new Map<string, {
57
+ resolve: (value: OneBot12ActionResponse) => void;
58
+ reject: (err: Error) => void;
59
+ timeout: NodeJS.Timeout;
60
+ }>();
61
+
62
+ constructor(options: OneBot12WssEndpointOptions) {
63
+ super();
64
+ this.#logger = getAdapterLogger('onebot12', options.config.id);
65
+ this.#options = options;
66
+ this.#lifecycle = createEndpointLifecycle({
67
+ name: options.config.id,
68
+ reconnect: false,
69
+ heartbeat: { intervalMs: options.config.heartbeat_interval },
70
+ });
71
+ this.client = createOnebot12EndpointClient(options.config, (action, params) => this.#callAction(action, params ?? {}));
72
+ const callApi = (action: string, params?: Record<string, unknown>) => callOnebot12Client(this.client, action, params);
73
+ this.management = createOneBot12EndpointManagement({ callApi });
74
+ this.content = createOneBot12ContentPort(callApi);
75
+ this.bindClientEvents(
76
+ (receive) => forwardOnebot12ClientEvents(this.client, receive),
77
+ (name, payload) => {
78
+ if (name === 'event') this.#admitRaw(payload as OneBot12Event);
79
+ },
80
+ (_name, error) => this.#warnPlatformEvent(error),
81
+ );
82
+ }
83
+
84
+ async start(): Promise<void> {
85
+ if (!this.#options.config.access_token) {
86
+ // wss 模式未配 access_token 时任何连接都会被放行(verifyOneBotAccessToken 直接 return true)
87
+ this.#logger.warn(formatCompact({
88
+ endpoint: this.#options.config.id,
89
+ mode: 'wss',
90
+ ok: false,
91
+ error: 'missing access_token',
92
+ }));
93
+ }
94
+ await this.#lifecycle.start(async (lifecycleHandle) => {
95
+ const handle = this.#options.http.ws(this.#options.config.path);
96
+ this.#wsRelease = handle.onConnection((connection) => {
97
+ this.#acceptConnection(connection);
98
+ });
99
+ lifecycleHandle.onForceClose(() => {
100
+ this.#wsRelease?.();
101
+ this.#wsRelease = undefined;
102
+ try {
103
+ this.#ws?.close();
104
+ } catch {
105
+ /* ignore */
106
+ }
107
+ this.#ws = undefined;
108
+ });
109
+ });
110
+ this.#logger.info(formatCompact({
111
+ op: 'listen',
112
+ endpoint: this.#options.config.id,
113
+ mode: 'wss',
114
+ path: this.#options.config.path,
115
+ }));
116
+ }
117
+
118
+ async stop(): Promise<void> {
119
+ this.close();
120
+ await this.#lifecycle.stop();
121
+ for (const [, pending] of this.#pending) {
122
+ clearTimeout(pending.timeout);
123
+ pending.reject(new Error('连接已关闭'));
124
+ }
125
+ this.#pending.clear();
126
+ }
127
+
128
+ async send({ conversation, payload }: EndpointSendRequest): Promise<string> {
129
+ const materialized = await uploadOneBot12MediaSegments(
130
+ payload,
131
+ (action, params) => callOnebot12Client(this.client, action, params),
132
+ (error) => {
133
+ this.#logger.warn(formatCompact({
134
+ op: 'onebot12_upload_failed',
135
+ endpoint: this.#options.config.id,
136
+ error: error instanceof Error ? error.message : String(error),
137
+ }));
138
+ },
139
+ );
140
+ const message = formatOutboundSegments(materialized);
141
+ const params = buildSendMessageParams(conversation, message);
142
+ const data = await callOnebot12Client<{ message_id?: string }>(this.client, 'send_message', params);
143
+ return data?.message_id ?? '';
144
+ }
145
+
146
+ async recallMessage(messageId: string): Promise<void> {
147
+ if (!messageId) return;
148
+ await callOnebot12Client(this.client, 'delete_message', { message_id: messageId });
149
+ }
150
+
151
+ #admitRaw(ev: OneBot12Event): void {
152
+ if (!isMessageEvent(ev)) {
153
+ receiveOneBot12SideEvent(
154
+ (name, payload) => this.emit(name, payload),
155
+ this.#options.config.id,
156
+ { callApi: (action, params) => callOnebot12Client(this.client, action, params) },
157
+ ev,
158
+ this.#logger,
159
+ );
160
+ return;
161
+ }
162
+ const conversation = onebot12InboundConversation(String(this.#options.id), ev);
163
+ const nickname = senderNickname(ev);
164
+ const mentioned = isBotMentioned(ev);
165
+ void this.emit('message.receive', {
166
+ conversation,
167
+ message: { conversation, id: ev.message_id },
168
+ content: formatInboundContent(ev),
169
+ sender: { id: senderUserId(ev), name: senderNickname(ev) },
170
+ endpointId: this.#options.config.id,
171
+ ...(mentioned ? { mentioned: true } : {}),
172
+ metadata: Object.freeze({
173
+ detail_type: ev.detail_type,
174
+ user_id: ev.user_id,
175
+ group_id: ev.group_id,
176
+ channel_id: ev.channel_id,
177
+ guild_id: ev.guild_id,
178
+ time: ev.time,
179
+ ...(nickname ? { nickname } : {}),
180
+ }),
181
+ }).catch((err) => {
182
+ this.#logger.warn(formatCompact({
183
+ op: 'onebot12_gateway_receive_failed',
184
+ kind: conversation.kind,
185
+ conversationId: conversation.id,
186
+ error: err instanceof Error ? err.message : String(err),
187
+ }));
188
+ });
189
+ }
190
+
191
+ #warnPlatformEvent(error: unknown): void {
192
+ this.#logger.warn(formatCompact({
193
+ op: 'onebot12_platform_event_failed',
194
+ error: error instanceof Error ? error.message : String(error),
195
+ }));
196
+ }
197
+
198
+ #acceptConnection(connection: WsConnection): void {
199
+ if (!verifyOneBotAccessToken(this.#options.config.access_token, connection.request)) {
200
+ connection.socket.close(4003, 'Unauthorized');
201
+ return;
202
+ }
203
+ const socket = connection.socket as unknown as OneBot12WsSocket;
204
+ if (this.#ws) {
205
+ try {
206
+ this.#ws.close();
207
+ } catch {
208
+ /* ignore */
209
+ }
210
+ }
211
+ this.#ws = socket;
212
+ this.#lifecycle.startHeartbeat(() => {
213
+ this.#callAction('get_status', {}).catch(() => {});
214
+ });
215
+ socket.on('message', (data) => {
216
+ this.#lifecycle.notifyHeartbeatAck();
217
+ this.#onMessage(data);
218
+ });
219
+ socket.on('close', () => {
220
+ if (this.#ws === socket) {
221
+ this.#ws = undefined;
222
+ this.#lifecycle.stopHeartbeat();
223
+ }
224
+ });
225
+ this.#logger.debug(formatCompact({
226
+ endpoint: this.#options.config.id,
227
+ mode: 'wss',
228
+ peer: connection.request.socket.remoteAddress,
229
+ }));
230
+ }
231
+
232
+ #onMessage(data: unknown): void {
233
+ try {
234
+ const raw = typeof data === 'string'
235
+ ? data
236
+ : Buffer.isBuffer(data)
237
+ ? data.toString()
238
+ : data instanceof ArrayBuffer
239
+ ? new TextDecoder().decode(data)
240
+ : String(data ?? '');
241
+ const msg = JSON.parse(raw) as OneBot12Event | OneBot12ActionResponse;
242
+ if ('echo' in msg && typeof (msg as OneBot12ActionResponse).echo === 'string') {
243
+ const resp = msg as OneBot12ActionResponse;
244
+ const pending = this.#pending.get(resp.echo!);
245
+ if (pending) {
246
+ this.#pending.delete(resp.echo!);
247
+ clearTimeout(pending.timeout);
248
+ pending.resolve(resp);
249
+ }
250
+ return;
251
+ }
252
+ this.client.ingest(msg as Parameters<Onebot12Client['ingest']>[0]);
253
+ } catch (error) {
254
+ this.#logger.warn(formatCompact({
255
+ op: 'onebot12_parse_failed',
256
+ endpoint: this.#options.config.id,
257
+ error: error instanceof Error ? error.message : String(error),
258
+ }));
259
+ }
260
+ }
261
+
262
+ #callAction(action: string, params: Record<string, unknown>): Promise<OneBot12ActionResponse> {
263
+ if (!this.#ws || this.#ws.readyState !== WS_OPEN) {
264
+ return Promise.reject(new Error('WebSocket 未连接'));
265
+ }
266
+ const echo = `ob12_${++this.#requestId}`;
267
+ const req: OneBot12ActionRequest = { action, params, echo };
268
+ return new Promise((resolve, reject) => {
269
+ const timeout = setTimeout(() => {
270
+ this.#pending.delete(echo);
271
+ reject(new Error(`OneBot12 动作超时: ${action}`));
272
+ }, 30_000);
273
+ this.#pending.set(echo, { resolve, reject, timeout });
274
+ this.#ws!.send(JSON.stringify(req));
275
+ });
276
+ }
277
+
278
+ }
package/lib/adapter.d.ts DELETED
@@ -1,18 +0,0 @@
1
- /**
2
- * OneBot 12 适配器:单一适配器支持正向 WS / Webhook / 反向 WS,由 config.connection 区分
3
- * 协议文档:https://12.onebot.dev/
4
- */
5
- import { Adapter, Plugin } from 'zhin.js';
6
- import { OneBot12WsClient } from './endpoint-ws.js';
7
- import { OneBot12WebhookEndpoint } from './endpoint-webhook.js';
8
- import { OneBot12WssServer } from './endpoint-wss.js';
9
- import type { OneBot12EndpointConfig } from './types.js';
10
- export type OneBot12Bot = OneBot12WsClient | OneBot12WebhookEndpoint | OneBot12WssServer;
11
- export declare class OneBot12Adapter extends Adapter<OneBot12Bot> {
12
- #private;
13
- static readonly capabilities: readonly ["inbound", "outbound"];
14
- constructor(plugin: Plugin);
15
- createEndpoint(config: OneBot12EndpointConfig): OneBot12Bot;
16
- start(): Promise<void>;
17
- }
18
- //# sourceMappingURL=adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAiB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,sBAAsB,EAIvB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,iBAAiB,CAAC;AAEzF,qBAAa,eAAgB,SAAQ,OAAO,CAAC,WAAW,CAAC;;IACvD,gBAAyB,YAAY,mCAAoC;gBAI7D,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,sBAAsB,GAAG,WAAW;IAmBrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAO7B"}
package/lib/adapter.js DELETED
@@ -1,41 +0,0 @@
1
- /**
2
- * OneBot 12 适配器:单一适配器支持正向 WS / Webhook / 反向 WS,由 config.connection 区分
3
- * 协议文档:https://12.onebot.dev/
4
- */
5
- import { Adapter } from 'zhin.js';
6
- import { OneBot12WsClient } from './endpoint-ws.js';
7
- import { OneBot12WebhookEndpoint } from './endpoint-webhook.js';
8
- import { OneBot12WssServer } from './endpoint-wss.js';
9
- export class OneBot12Adapter extends Adapter {
10
- static capabilities = ['inbound', 'outbound'];
11
- #router;
12
- constructor(plugin) {
13
- super(plugin, 'onebot12', []);
14
- }
15
- createEndpoint(config) {
16
- switch (config.connection) {
17
- case 'ws':
18
- return new OneBot12WsClient(this, config);
19
- case 'webhook':
20
- if (!this.#router) {
21
- throw new Error('OneBot12 connection: webhook 需要 router,请安装并在配置中启用 @zhin.js/host-router');
22
- }
23
- return new OneBot12WebhookEndpoint(this, this.#router, config);
24
- case 'wss':
25
- if (!this.#router) {
26
- throw new Error('OneBot12 connection: wss 需要 router,请安装并在配置中启用 @zhin.js/host-router');
27
- }
28
- return new OneBot12WssServer(this, this.#router, config);
29
- default:
30
- throw new Error(`Unknown OneBot12 connection: ${config.connection}`);
31
- }
32
- }
33
- async start() {
34
- this.#router = this.plugin.inject('router');
35
- this.plugin.useContext('router', (router) => {
36
- this.#router = router;
37
- });
38
- await super.start();
39
- }
40
- }
41
- //# sourceMappingURL=adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAiB,OAAO,EAAU,MAAM,SAAS,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAUtD,MAAM,OAAO,eAAgB,SAAQ,OAAoB;IACvD,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAEzE,OAAO,CAAU;IAEjB,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,MAA8B;QAC3C,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,IAAI;gBACP,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAA0B,CAAC,CAAC;YAChE,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;gBAC5F,CAAC;gBACD,OAAO,IAAI,uBAAuB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAA+B,CAAC,CAAC;YAC1F,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAA2B,CAAC,CAAC;YAChF;gBACE,MAAM,IAAI,KAAK,CAAC,gCAAiC,MAAiC,CAAC,UAAU,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,MAA8C,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,CAAC,UAAkE,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;YAC3G,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC"}
package/lib/api.d.ts DELETED
@@ -1,14 +0,0 @@
1
- /**
2
- * OneBot 12 HTTP 动作调用:POST 动作请求到实现的 HTTP 端点,返回动作响应
3
- * 参考 https://12.onebot.dev/connect/communication/http/
4
- */
5
- import type { OneBot12ActionResponse } from './types.js';
6
- export interface OneBot12HttpOptions {
7
- url: string;
8
- access_token?: string;
9
- }
10
- /**
11
- * 向 OneBot 实现发送动作请求(HTTP POST),返回动作响应
12
- */
13
- export declare function callOneBot12Action(options: OneBot12HttpOptions, action: string, params?: Record<string, unknown>, echo?: string): Promise<OneBot12ActionResponse>;
14
- //# sourceMappingURL=api.d.ts.map
package/lib/api.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAyB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEhF,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CA4BjC"}
package/lib/api.js DELETED
@@ -1,34 +0,0 @@
1
- /**
2
- * 向 OneBot 实现发送动作请求(HTTP POST),返回动作响应
3
- */
4
- export async function callOneBot12Action(options, action, params = {}, echo) {
5
- const headers = { 'Content-Type': 'application/json' };
6
- if (options.access_token) {
7
- headers['Authorization'] = `Bearer ${options.access_token}`;
8
- }
9
- const body = { action, params };
10
- if (echo)
11
- body.echo = echo;
12
- const res = await fetch(options.url, {
13
- method: 'POST',
14
- headers,
15
- body: JSON.stringify(body),
16
- });
17
- const text = await res.text();
18
- if (res.status === 401)
19
- throw new Error(`OneBot12 鉴权失败: ${text}`);
20
- if (res.status !== 200)
21
- throw new Error(`OneBot12 HTTP ${res.status}: ${text}`);
22
- let data;
23
- try {
24
- data = JSON.parse(text);
25
- }
26
- catch {
27
- throw new Error(`OneBot12 无效响应: ${text.slice(0, 200)}`);
28
- }
29
- if (data.status === 'failed' && data.retcode !== 0) {
30
- throw new Error(`OneBot12 动作失败 retcode=${data.retcode}: ${data.message}`);
31
- }
32
- return data;
33
- }
34
- //# sourceMappingURL=api.js.map
package/lib/api.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA4B,EAC5B,MAAc,EACd,SAAkC,EAAE,EACpC,IAAa;IAEb,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC/E,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,OAAO,CAAC,YAAY,EAAE,CAAC;IAC9D,CAAC;IACD,MAAM,IAAI,GAA0B,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACvD,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAE3B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACnC,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IAEhF,IAAI,IAA4B,CAAC;IACjC,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * OneBot 12 HTTP Webhook Bot:OneBot 实现 POST 事件到应用 path,可选 api_url 用于发消息
3
- */
4
- import { EventEmitter } from 'events';
5
- import { Endpoint, Message, SendOptions } from 'zhin.js';
6
- import { type Router } from '@zhin.js/host-router/router';
7
- import type { OneBot12WebhookConfig, OneBot12Event } from './types.js';
8
- import type { OneBot12Adapter } from './adapter.js';
9
- export declare class OneBot12WebhookEndpoint extends EventEmitter implements Endpoint<OneBot12WebhookConfig, OneBot12Event> {
10
- adapter: OneBot12Adapter;
11
- router: Router;
12
- $config: OneBot12WebhookConfig;
13
- $connected: boolean;
14
- get logger(): import("zhin.js").Logger;
15
- constructor(adapter: OneBot12Adapter, router: Router, $config: OneBot12WebhookConfig);
16
- get $id(): string;
17
- private httpOptions;
18
- $connect(): Promise<void>;
19
- $disconnect(): Promise<void>;
20
- private handleEvent;
21
- $formatMessage(ev: OneBot12Event): Message<OneBot12Event>;
22
- $sendMessage(options: SendOptions): Promise<string>;
23
- $recallMessage(id: string): Promise<void>;
24
- }
25
- //# sourceMappingURL=endpoint-webhook.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-webhook.d.ts","sourceRoot":"","sources":["../src/endpoint-webhook.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAW,WAAW,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,EAAsB,KAAK,MAAM,EAAsB,MAAM,6BAA6B,CAAC;AAElG,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,uBAAwB,SAAQ,YAAa,YAAW,QAAQ,CAAC,qBAAqB,EAAE,aAAa,CAAC;IAQxG,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,qBAAqB;IATvC,UAAU,EAAE,OAAO,CAAQ;IAE3B,IAAI,MAAM,6BAET;gBAGQ,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,qBAAqB;IAKvC,IAAI,GAAG,WAEN;IAED,OAAO,CAAC,WAAW;IAKb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAIlC,OAAO,CAAC,WAAW;IAQnB,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA8BnD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKhD"}
@@ -1,118 +0,0 @@
1
- /**
2
- * OneBot 12 HTTP Webhook Bot:OneBot 实现 POST 事件到应用 path,可选 api_url 用于发消息
3
- */
4
- import { EventEmitter } from 'events';
5
- import { formatCompact, Message, segment } from 'zhin.js';
6
- import { registerFetchRoute } from '@zhin.js/host-router/router';
7
- import { callOneBot12Action } from './api.js';
8
- import { formatOneBot12MessagePayload, isMessageEvent, contentToOb12Segments } from './utils.js';
9
- export class OneBot12WebhookEndpoint extends EventEmitter {
10
- adapter;
11
- router;
12
- $config;
13
- $connected = true;
14
- get logger() {
15
- return this.adapter.plugin.logger;
16
- }
17
- constructor(adapter, router, $config) {
18
- super();
19
- this.adapter = adapter;
20
- this.router = router;
21
- this.$config = $config;
22
- }
23
- get $id() {
24
- return this.$config.name;
25
- }
26
- httpOptions() {
27
- const url = this.$config.api_url?.replace(/\/$/, '') ?? '';
28
- return { url: url || '', access_token: this.$config.access_token };
29
- }
30
- async $connect() {
31
- const path = this.$config.path.startsWith('/') ? this.$config.path : `/${this.$config.path}`;
32
- registerFetchRoute(this.router, 'POST', path, async (ctx) => {
33
- const body = ctx.request.body;
34
- if (!body || typeof body !== 'object' || !body.id || body.time == null || !body.type) {
35
- ctx.status = 400;
36
- ctx.body = { message: 'Invalid OneBot12 event' };
37
- return;
38
- }
39
- const token = this.$config.access_token;
40
- const auth = ctx.get('authorization');
41
- if (token && auth !== `Bearer ${token}`) {
42
- ctx.status = 401;
43
- ctx.body = { message: 'Unauthorized' };
44
- return;
45
- }
46
- this.handleEvent(body);
47
- ctx.status = 204;
48
- ctx.body = undefined;
49
- });
50
- this.logger.info(formatCompact({ op: 'webhook', path }));
51
- }
52
- async $disconnect() {
53
- this.$connected = false;
54
- }
55
- handleEvent(ev) {
56
- if (ev.type === 'message' && isMessageEvent(ev)) {
57
- const message = this.$formatMessage(ev);
58
- this.adapter.emit('message.receive', message);
59
- this.logger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
60
- }
61
- }
62
- $formatMessage(ev) {
63
- if (!isMessageEvent(ev)) {
64
- return Message.from(ev, {
65
- $id: '',
66
- $adapter: 'onebot12',
67
- $endpoint: this.$config.name,
68
- $channel: { id: '', type: 'private' },
69
- $sender: { id: '', name: '' },
70
- $content: [],
71
- $raw: '',
72
- $timestamp: ev.time ?? 0,
73
- $recall: async () => { },
74
- $reply: async () => '',
75
- });
76
- }
77
- const payload = formatOneBot12MessagePayload(ev, this.$config.name, (id) => this.$recallMessage(id), (channel, content, _quote) => this.adapter.sendMessage({
78
- ...channel,
79
- context: 'onebot12',
80
- endpoint: this.$config.name,
81
- content: content,
82
- }));
83
- return Message.from(ev, payload);
84
- }
85
- async $sendMessage(options) {
86
- const apiUrl = this.$config.api_url;
87
- if (!apiUrl) {
88
- throw new Error('OneBot12 Webhook 发消息需要配置 api_url(OneBot 实现的 HTTP 端点)');
89
- }
90
- const message = contentToOb12Segments(options.content);
91
- const params = { message };
92
- if (options.type === 'private') {
93
- params.detail_type = 'private';
94
- params.user_id = options.id;
95
- }
96
- else if (options.type === 'group') {
97
- params.detail_type = 'group';
98
- params.group_id = options.id;
99
- }
100
- else {
101
- const [guildId, channelId] = options.id.includes(':') ? options.id.split(':') : [undefined, options.id];
102
- params.detail_type = 'channel';
103
- params.channel_id = channelId ?? options.id;
104
- if (guildId)
105
- params.guild_id = guildId;
106
- }
107
- const data = await callOneBot12Action(this.httpOptions(), 'send_message', params);
108
- const out = data?.message_id ?? '';
109
- return out;
110
- }
111
- async $recallMessage(id) {
112
- const apiUrl = this.$config.api_url;
113
- if (!apiUrl)
114
- throw new Error('OneBot12 Webhook 撤回需要配置 api_url');
115
- await callOneBot12Action(this.httpOptions(), 'delete_message', { message_id: id });
116
- }
117
- }
118
- //# sourceMappingURL=endpoint-webhook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-webhook.js","sourceRoot":"","sources":["../src/endpoint-webhook.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,aAAa,EAAY,OAAO,EAAE,OAAO,EAAe,MAAM,SAAS,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAmC,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEjG,MAAM,OAAO,uBAAwB,SAAQ,YAAY;IAQ9C;IACA;IACA;IATT,UAAU,GAAY,IAAI,CAAC;IAE3B,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;IACpC,CAAC;IAED,YACS,OAAwB,EACxB,MAAc,EACd,OAA8B;QAErC,KAAK,EAAE,CAAC;QAJD,YAAO,GAAP,OAAO,CAAiB;QACxB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAuB;IAGvC,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEO,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC3D,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7F,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAkB,EAAE,EAAE;YACzE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAiC,CAAC;YAC3D,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrF,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,GAAG,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;gBACjD,OAAO;YACT,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACxC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YACtC,IAAI,KAAK,IAAI,IAAI,KAAK,UAAU,KAAK,EAAE,EAAE,CAAC;gBACxC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjB,GAAG,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBACvC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACvB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,IAAI,GAAG,SAAS,CAAC;QACvB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAEO,WAAW,CAAC,EAAiB;QACnC,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACnI,CAAC;IACH,CAAC;IAED,cAAc,CAAC,EAAiB;QAC9B,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE;gBACtB,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,UAAU;gBACpB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAC5B,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;gBACrC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC7B,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,EAAE;gBACR,UAAU,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;gBACxB,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;gBACvB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;aACvB,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,4BAA4B,CAC1C,EAAE,EACF,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAC/B,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,GAAG,OAAO;YACV,OAAO,EAAE,UAAU;YACnB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAC3B,OAAO,EAAE,OAAwC;SAClD,CAAC,CACL,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAA4B,EAAE,OAAO,EAAE,CAAC;QACpD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACpC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;YAC7B,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACxG,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;YAC/B,MAAM,CAAC,UAAU,GAAG,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC;YAC5C,IAAI,OAAO;gBAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;QACzC,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;QAClF,MAAM,GAAG,GAAI,IAAgC,EAAE,UAAU,IAAI,EAAE,CAAC;QAChE,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAChE,MAAM,kBAAkB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;CACF"}
@@ -1,26 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import { Endpoint, Message, SendOptions } from 'zhin.js';
3
- import type { OneBot12WsConfig, OneBot12Event } from './types.js';
4
- import type { OneBot12Adapter } from './adapter.js';
5
- export declare class OneBot12WsClient extends EventEmitter implements Endpoint<OneBot12WsConfig, OneBot12Event> {
6
- adapter: OneBot12Adapter;
7
- $config: OneBot12WsConfig;
8
- $connected: boolean;
9
- private ws?;
10
- private reconnectTimer?;
11
- private heartbeatTimer?;
12
- private requestId;
13
- private pendingRequests;
14
- get logger(): import("zhin.js").Logger;
15
- constructor(adapter: OneBot12Adapter, $config: OneBot12WsConfig);
16
- get $id(): string;
17
- private startHeartbeat;
18
- private scheduleReconnect;
19
- private callAction;
20
- $connect(): Promise<void>;
21
- $disconnect(): Promise<void>;
22
- $formatMessage(ev: OneBot12Event): Message<OneBot12Event>;
23
- $sendMessage(options: SendOptions): Promise<string>;
24
- $recallMessage(id: string): Promise<void>;
25
- }
26
- //# sourceMappingURL=endpoint-ws.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"endpoint-ws.d.ts","sourceRoot":"","sources":["../src/endpoint-ws.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAiB,QAAQ,EAAE,OAAO,EAAW,WAAW,EAAE,MAAM,SAAS,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAiD,MAAM,YAAY,CAAC;AACjH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,gBAAiB,SAAQ,YAAa,YAAW,QAAQ,CAAC,gBAAgB,EAAE,aAAa,CAAC;IAYlF,OAAO,EAAE,eAAe;IAAS,OAAO,EAAE,gBAAgB;IAX7E,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,eAAe,CAAmH;IAE1I,IAAI,MAAM,6BAET;gBAEkB,OAAO,EAAE,eAAe,EAAS,OAAO,EAAE,gBAAgB;IAK7E,IAAI,GAAG,WAEN;IAED,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,UAAU;IAoBZ,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAyEzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBlC,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IA8BnD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhD"}