@lemoncat7/dsh-partner 1.14.1 → 1.15.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.
- package/README.md +18 -3
- package/docs/architecture.md +2 -0
- package/docs/direct-channels.md +24 -0
- package/docs/releases/1.14.2.md +10 -0
- package/docs/releases/1.15.0.md +20 -0
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +27 -9
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +83 -0
- package/lib/api.js.map +1 -1
- package/lib/channels/direct/discovery.d.ts +5 -0
- package/lib/channels/direct/discovery.d.ts.map +1 -0
- package/lib/channels/direct/discovery.js +70 -0
- package/lib/channels/direct/discovery.js.map +1 -0
- package/lib/channels/direct/login-cache.d.ts +21 -0
- package/lib/channels/direct/login-cache.d.ts.map +1 -0
- package/lib/channels/direct/login-cache.js +42 -0
- package/lib/channels/direct/login-cache.js.map +1 -0
- package/lib/channels/direct/login.d.ts +15 -0
- package/lib/channels/direct/login.d.ts.map +1 -0
- package/lib/channels/direct/login.js +78 -0
- package/lib/channels/direct/login.js.map +1 -0
- package/lib/channels/direct/transport.d.ts +48 -0
- package/lib/channels/direct/transport.d.ts.map +1 -0
- package/lib/channels/direct/transport.js +152 -0
- package/lib/channels/direct/transport.js.map +1 -0
- package/lib/channels/manager.d.ts +6 -0
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +140 -8
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/notification-route.d.ts +8 -0
- package/lib/channels/notification-route.d.ts.map +1 -0
- package/lib/channels/notification-route.js +14 -0
- package/lib/channels/notification-route.js.map +1 -0
- package/lib/client-api.d.ts +13 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client-controller.d.ts.map +1 -1
- package/lib/client-controller.js +3 -3
- package/lib/client-controller.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +681 -311
- package/lib/client.js.map +4 -4
- package/lib/concern-store.d.ts +2 -0
- package/lib/concern-store.d.ts.map +1 -1
- package/lib/concern-store.js +13 -0
- package/lib/concern-store.js.map +1 -1
- package/lib/domain.d.ts +16 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/heartbeat.js +9 -9
- package/lib/heartbeat.js.map +1 -1
- package/lib/main-panel-compat.d.ts +5 -0
- package/lib/main-panel-compat.d.ts.map +1 -0
- package/lib/main-panel-compat.js +38 -0
- package/lib/main-panel-compat.js.map +1 -0
- package/lib/ui/channels-panel.d.ts +9 -0
- package/lib/ui/channels-panel.d.ts.map +1 -0
- package/lib/ui/channels-panel.js +72 -0
- package/lib/ui/channels-panel.js.map +1 -0
- package/lib/ui/identity-editor.js +1 -1
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/partner-components.js +1 -1
- package/lib/ui/partner-components.js.map +1 -1
- package/lib/ui/use-channel-status.d.ts +4 -0
- package/lib/ui/use-channel-status.d.ts.map +1 -0
- package/lib/ui/use-channel-status.js +46 -0
- package/lib/ui/use-channel-status.js.map +1 -0
- package/package.json +18 -15
package/lib/api.js
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
import { randomBytes } from 'node:crypto';
|
|
2
2
|
import { normalizeAutomation, normalizeCompanionDraft, text } from './domain.js';
|
|
3
3
|
import { requiredCompanion } from './channels/manager.js';
|
|
4
|
+
import { DirectTransport, directConfig } from './channels/direct/transport.js';
|
|
5
|
+
import { DirectLoginCache } from './channels/direct/login-cache.js';
|
|
4
6
|
import { memoryScope } from './agent-runtime.js';
|
|
5
7
|
import { dispatchPartnerWorkspaceApi } from './api/features/workspace-api.js';
|
|
6
8
|
import { dispatchPendantApi } from './api/features/pendant-api.js';
|
|
7
9
|
import { dispatchMemoryLayersApi } from './api/features/memory-layers-api.js';
|
|
8
10
|
import { dispatchAttachmentsApi } from './api/features/attachments-api.js';
|
|
9
11
|
import { assertSameOrigin, httpError, mutation, readObject, sendError, sendJson } from './api/http.js';
|
|
12
|
+
const loginCaches = new WeakMap();
|
|
13
|
+
function loginCache(store) {
|
|
14
|
+
let cache = loginCaches.get(store);
|
|
15
|
+
if (!cache) {
|
|
16
|
+
cache = new DirectLoginCache();
|
|
17
|
+
loginCaches.set(store, cache);
|
|
18
|
+
}
|
|
19
|
+
return cache;
|
|
20
|
+
}
|
|
10
21
|
export function registerPartnerApi(webServer, prefix, runtime) {
|
|
11
22
|
return webServer.register({
|
|
12
23
|
kind: 'prefix', path: prefix,
|
|
@@ -244,6 +255,50 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
244
255
|
}
|
|
245
256
|
}
|
|
246
257
|
if (segments[0] === 'channels') {
|
|
258
|
+
if (method === 'GET' && segments[1] === 'status' && segments.length === 2)
|
|
259
|
+
return sendJson(res, 200, { channels: await runtime.channels.views(), pairings: runtime.store.snapshot().pairings });
|
|
260
|
+
if (method === 'POST' && (segments.length === 1 || (segments.length === 2 && segments[1] === 'test'))) {
|
|
261
|
+
mutation(req);
|
|
262
|
+
const body = await readObject(req);
|
|
263
|
+
const companionId = text(body.companionId, 'companionId', 120);
|
|
264
|
+
requiredCompanion(runtime.store, companionId);
|
|
265
|
+
if (runtime.store.isCompanionRemoving(companionId))
|
|
266
|
+
throw httpError(409, '伙伴正在删除');
|
|
267
|
+
const config = directConfig(body);
|
|
268
|
+
if (body.authMode !== undefined && body.authMode !== 'password' && body.authMode !== 'token')
|
|
269
|
+
throw httpError(400, '登录方式无效');
|
|
270
|
+
const login = body.authMode === 'password' ? await loginCache(runtime.store).acquire(companionId, config, { username: body.username, password: body.password, ...(body.mfaToken ? { mfaToken: body.mfaToken } : {}) }) : undefined;
|
|
271
|
+
const botToken = login?.token ?? text(body.botToken, 'botToken', 8192);
|
|
272
|
+
const adapter = new DirectTransport(config, botToken);
|
|
273
|
+
const identity = await adapter.validate();
|
|
274
|
+
if (segments[1] === 'test') {
|
|
275
|
+
return sendJson(res, 200, { ok: true, ...identity });
|
|
276
|
+
}
|
|
277
|
+
const baseline = await adapter.poll(undefined, AbortSignal.timeout(35_000));
|
|
278
|
+
await new DirectTransport(config, botToken, identity).validate();
|
|
279
|
+
const now = Date.now();
|
|
280
|
+
const channel = { id: createId(config.platform), companionId, platform: config.platform, accountId: identity.accountId,
|
|
281
|
+
name: text(body.name, 'name', 80), enabled: false, createdAt: now, updatedAt: now,
|
|
282
|
+
direct: { baseUrl: config.baseUrl, targetId: config.targetId, peerId: identity.peerId, cursor: baseline.cursor } };
|
|
283
|
+
await runtime.credentials.write(channel.id, { baseUrl: config.baseUrl, botToken });
|
|
284
|
+
try {
|
|
285
|
+
await runtime.store.update(state => {
|
|
286
|
+
if (state.channels.some(c => c.platform === config.platform && c.accountId === identity.accountId && c.direct?.baseUrl === config.baseUrl))
|
|
287
|
+
throw httpError(409, '此机器人已配置,请先管理现有渠道,不能绑定到另一个伙伴');
|
|
288
|
+
if (!state.companions.some(c => c.id === companionId))
|
|
289
|
+
throw httpError(409, '伙伴已不存在');
|
|
290
|
+
state.channels.push(channel);
|
|
291
|
+
if (identity.peerId)
|
|
292
|
+
state.pairings.push({ id: createId('pairing'), channelId: channel.id, userId: identity.peerId, displayName: identity.peerId, directTargetId: config.targetId, status: 'pending', createdAt: now, updatedAt: now });
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
await runtime.credentials.delete(channel.id);
|
|
297
|
+
throw error;
|
|
298
|
+
}
|
|
299
|
+
login?.retain();
|
|
300
|
+
return sendJson(res, 201, { channel });
|
|
301
|
+
}
|
|
247
302
|
const id = segments[1];
|
|
248
303
|
if (id !== undefined && method === 'POST' && segments[2] === 'enabled' && segments.length === 3) {
|
|
249
304
|
mutation(req);
|
|
@@ -261,6 +316,34 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
261
316
|
}
|
|
262
317
|
if (segments[0] === 'pairings') {
|
|
263
318
|
const id = segments[1];
|
|
319
|
+
if (id && method === 'POST' && segments[2] === 'delivery' && segments.length === 3) {
|
|
320
|
+
mutation(req);
|
|
321
|
+
const body = await readObject(req);
|
|
322
|
+
if (typeof body.contactKey !== 'string' || body.contactKey.length > 80)
|
|
323
|
+
throw httpError(400, '联系人关联标识无效');
|
|
324
|
+
if (body.targetPairingId !== null && typeof body.targetPairingId !== 'string')
|
|
325
|
+
throw httpError(400, '通知目标无效');
|
|
326
|
+
await runtime.store.update(state => {
|
|
327
|
+
const source = state.pairings.find(p => p.id === id && p.status === 'approved');
|
|
328
|
+
if (!source)
|
|
329
|
+
throw httpError(404, '已授权联系人不存在');
|
|
330
|
+
const companion = state.channels.find(c => c.id === source.channelId)?.companionId;
|
|
331
|
+
if (body.targetPairingId !== null) {
|
|
332
|
+
const target = state.pairings.find(p => p.id === body.targetPairingId && p.status === 'approved');
|
|
333
|
+
if (!target || !state.channels.some(c => c.id === target.channelId && c.companionId === companion))
|
|
334
|
+
throw httpError(400, '只能选择同一伙伴的已授权通知目标');
|
|
335
|
+
source.deliveryTarget = { channelId: target.channelId, userId: target.userId };
|
|
336
|
+
}
|
|
337
|
+
else
|
|
338
|
+
delete source.deliveryTarget;
|
|
339
|
+
if (body.contactKey.trim())
|
|
340
|
+
source.contactKey = body.contactKey.trim();
|
|
341
|
+
else
|
|
342
|
+
delete source.contactKey;
|
|
343
|
+
source.updatedAt = Date.now();
|
|
344
|
+
});
|
|
345
|
+
return sendJson(res, 200, { ok: true });
|
|
346
|
+
}
|
|
264
347
|
if (id !== undefined && method === 'POST' && segments[2] === 'status' && segments.length === 3) {
|
|
265
348
|
mutation(req);
|
|
266
349
|
const status = text((await readObject(req)).status, 'status', 20);
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DirectBatch, DirectPlatform, DirectTransport } from './transport.js';
|
|
2
|
+
/** Discover conversations without granting access. Every candidate still passes
|
|
3
|
+
* the same two-member / no-encryption validation as explicitly pinned rooms. */
|
|
4
|
+
export declare function pollDiscovered(platform: DirectPlatform, accountId: string, cursor: string | undefined, signal: AbortSignal, request: (path: string, body?: unknown) => Promise<any>, room: (id: string) => DirectTransport): Promise<DirectBatch>;
|
|
5
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAiB,cAAc,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAA;AAE/F;gFACgF;AAChF,wBAAsB,cAAc,CAAC,QAAQ,EAAC,cAAc,EAAE,SAAS,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,GAAC,SAAS,EAAE,MAAM,EAAC,WAAW,EACzH,OAAO,EAAC,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,CAAC,EAAC,OAAO,KAAG,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAC,CAAC,EAAE,EAAC,MAAM,KAAG,eAAe,GAAE,OAAO,CAAC,WAAW,CAAC,CAiD3G"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** Discover conversations without granting access. Every candidate still passes
|
|
2
|
+
* the same two-member / no-encryption validation as explicitly pinned rooms. */
|
|
3
|
+
export async function pollDiscovered(platform, accountId, cursor, signal, request, room) {
|
|
4
|
+
const messages = [];
|
|
5
|
+
if (platform === 'matrix') {
|
|
6
|
+
const filter = JSON.stringify({ room: { timeline: { limit: 100 } }, presence: { types: [] } });
|
|
7
|
+
const data = await request('/_matrix/client/v3/sync?timeout=20000&filter=' + encodeURIComponent(filter) + (cursor ? '&since=' + encodeURIComponent(cursor) : ''));
|
|
8
|
+
if (typeof data.next_batch !== 'string')
|
|
9
|
+
throw new Error('Matrix 同步游标缺失');
|
|
10
|
+
const invites = Object.entries(data.rooms?.invite ?? {});
|
|
11
|
+
if (invites.length > 50)
|
|
12
|
+
throw new Error('房间邀请过多,请清理后重连');
|
|
13
|
+
for (const [id, value] of invites) {
|
|
14
|
+
const events = value?.invite_state?.events;
|
|
15
|
+
if (!Array.isArray(events) || events.some(e => e.type === 'm.room.encryption'))
|
|
16
|
+
continue;
|
|
17
|
+
const members = events.filter(e => e.type === 'm.room.member' && ['join', 'invite'].includes(e.content?.membership));
|
|
18
|
+
const self = members.find(e => e.state_key === accountId && e.content?.membership === 'invite' && e.content?.is_direct === true);
|
|
19
|
+
if (!self || members.length !== 2 || !members.some(e => e.state_key === self.sender && e.content?.membership === 'join'))
|
|
20
|
+
continue;
|
|
21
|
+
await request('/_matrix/client/v3/join/' + encodeURIComponent(id), {});
|
|
22
|
+
}
|
|
23
|
+
const joined = Object.entries(data.rooms?.join ?? {});
|
|
24
|
+
if (joined.length > 100)
|
|
25
|
+
throw new Error('私聊房间过多,请使用专用伙伴账号');
|
|
26
|
+
for (const [id, value] of joined) {
|
|
27
|
+
const timeline = value?.timeline;
|
|
28
|
+
if (!cursor || !timeline?.events?.length)
|
|
29
|
+
continue;
|
|
30
|
+
let identity;
|
|
31
|
+
try {
|
|
32
|
+
identity = await room(id).validate(signal);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
if (error instanceof Error && /加密房间|必须只有机器人/.test(error.message))
|
|
36
|
+
continue;
|
|
37
|
+
throw error;
|
|
38
|
+
}
|
|
39
|
+
if (timeline.limited)
|
|
40
|
+
throw new Error('Matrix 私聊消息出现缺口,请检查后重连');
|
|
41
|
+
for (const event of timeline.events) {
|
|
42
|
+
if (event.sender !== identity.peerId || event.type !== 'm.room.message' || event.content?.['m.relates_to']?.rel_type === 'm.replace' || typeof event.event_id !== 'string')
|
|
43
|
+
continue;
|
|
44
|
+
messages.push({ id: event.event_id, sender: identity.peerId, targetId: id, text: event.content?.msgtype === 'm.text' && typeof event.content.body === 'string' ? event.content.body : '' });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return { cursor: data.next_batch, messages };
|
|
48
|
+
}
|
|
49
|
+
const startedAt = Date.now();
|
|
50
|
+
const channels = await request(`/api/v4/users/${encodeURIComponent(accountId)}/channels`);
|
|
51
|
+
if (!Array.isArray(channels))
|
|
52
|
+
throw new Error('Mattermost 会话列表无效');
|
|
53
|
+
const dms = channels.filter(c => c.type === 'D' && !c.delete_at);
|
|
54
|
+
if (dms.length > 100)
|
|
55
|
+
throw new Error('私聊会话过多,请使用专用伙伴账号');
|
|
56
|
+
// Establish a watermark without replaying history. Overlap subsequent polls;
|
|
57
|
+
// durable receipts deduplicate boundary timestamps.
|
|
58
|
+
if (!cursor)
|
|
59
|
+
return { cursor: String(startedAt), messages: [] };
|
|
60
|
+
if (!/^\d+$/.test(cursor))
|
|
61
|
+
throw new Error('Mattermost 同步游标无效');
|
|
62
|
+
for (const channel of dms) {
|
|
63
|
+
if (typeof channel.id !== 'string')
|
|
64
|
+
throw new Error('Mattermost 会话 ID 无效');
|
|
65
|
+
const batch = await room(channel.id).poll(String(Math.max(0, Number(cursor) - 1000)), signal);
|
|
66
|
+
messages.push(...batch.messages.map(message => ({ ...message, targetId: channel.id })));
|
|
67
|
+
}
|
|
68
|
+
return { cursor: String(Math.max(Number(cursor), startedAt)), messages };
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../../src/channels/direct/discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { directLogin, discardDirectLogin } from './login.js';
|
|
2
|
+
import type { DirectConfig } from './transport.js';
|
|
3
|
+
/** Short-lived server-only sessions: tests and save share one login, never
|
|
4
|
+
* return credentials to the browser or retain plaintext passwords. */
|
|
5
|
+
export declare class DirectLoginCache {
|
|
6
|
+
private readonly ttl;
|
|
7
|
+
private readonly login;
|
|
8
|
+
private readonly logout;
|
|
9
|
+
private readonly salt;
|
|
10
|
+
private readonly entries;
|
|
11
|
+
constructor(ttl?: number, login?: typeof directLogin, logout?: typeof discardDirectLogin);
|
|
12
|
+
acquire(scope: string, config: DirectConfig, input: {
|
|
13
|
+
username: unknown;
|
|
14
|
+
password: unknown;
|
|
15
|
+
mfaToken?: unknown;
|
|
16
|
+
}): Promise<{
|
|
17
|
+
token: string;
|
|
18
|
+
retain(): void;
|
|
19
|
+
}>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=login-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-cache.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/login-cache.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAC1D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAEhD;sEACsE;AACtE,qBAAa,gBAAgB;IAGf,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAU,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAa,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFpG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8E;gBACzE,GAAG,SAAS,EAAkB,KAAK,qBAAY,EAAkB,MAAM,4BAAmB;IAEjH,OAAO,CAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,YAAY,EAAC,KAAK,EAAC;QAAC,QAAQ,EAAC,OAAO,CAAC;QAAA,QAAQ,EAAC,OAAO,CAAC;QAAA,QAAQ,CAAC,EAAC,OAAO,CAAA;KAAC,GAAE,OAAO,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,MAAM,IAAG,IAAI,CAAA;KAAC,CAAC;CAkBlJ"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createHmac, randomBytes } from 'node:crypto';
|
|
2
|
+
import { directLogin, discardDirectLogin } from './login.js';
|
|
3
|
+
/** Short-lived server-only sessions: tests and save share one login, never
|
|
4
|
+
* return credentials to the browser or retain plaintext passwords. */
|
|
5
|
+
export class DirectLoginCache {
|
|
6
|
+
ttl;
|
|
7
|
+
login;
|
|
8
|
+
logout;
|
|
9
|
+
salt = randomBytes(32);
|
|
10
|
+
entries = new Map();
|
|
11
|
+
constructor(ttl = 5 * 60_000, login = directLogin, logout = discardDirectLogin) {
|
|
12
|
+
this.ttl = ttl;
|
|
13
|
+
this.login = login;
|
|
14
|
+
this.logout = logout;
|
|
15
|
+
}
|
|
16
|
+
async acquire(scope, config, input) {
|
|
17
|
+
const key = createHmac('sha256', this.salt).update(JSON.stringify([scope, config.platform, config.baseUrl, input.username, input.password, input.mfaToken])).digest('hex');
|
|
18
|
+
let entry = this.entries.get(key);
|
|
19
|
+
if (!entry) {
|
|
20
|
+
if (this.entries.size >= 32)
|
|
21
|
+
throw new Error('待保存的渠道登录过多,请稍后重试');
|
|
22
|
+
const token = this.login(config, input);
|
|
23
|
+
const timer = setTimeout(() => {
|
|
24
|
+
if (this.entries.get(key)?.token !== token)
|
|
25
|
+
return;
|
|
26
|
+
this.entries.delete(key);
|
|
27
|
+
void token.then(value => this.logout(config, value)).catch(() => { });
|
|
28
|
+
}, this.ttl);
|
|
29
|
+
timer.unref();
|
|
30
|
+
entry = { token, timer };
|
|
31
|
+
this.entries.set(key, entry);
|
|
32
|
+
void token.catch(() => { if (this.entries.get(key) === entry) {
|
|
33
|
+
clearTimeout(timer);
|
|
34
|
+
this.entries.delete(key);
|
|
35
|
+
} });
|
|
36
|
+
}
|
|
37
|
+
const current = entry;
|
|
38
|
+
return { token: await current.token, retain: () => { clearTimeout(current.timer); if (this.entries.get(key) === current)
|
|
39
|
+
this.entries.delete(key); } };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=login-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login-cache.js","sourceRoot":"","sources":["../../../src/channels/direct/login-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,aAAa,CAAA;AACnD,OAAO,EAAC,WAAW,EAAE,kBAAkB,EAAC,MAAM,YAAY,CAAA;AAG1D;sEACsE;AACtE,MAAM,OAAO,gBAAgB;IAGE;IAA8B;IAAmC;IAF7E,IAAI,GAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IACpB,OAAO,GAAC,IAAI,GAAG,EAAsE,CAAA;IACtG,YAA6B,MAAI,CAAC,GAAC,MAAM,EAAkB,QAAM,WAAW,EAAkB,SAAO,kBAAkB;QAA1F,QAAG,GAAH,GAAG,CAAS;QAAkB,UAAK,GAAL,KAAK,CAAY;QAAkB,WAAM,GAAN,MAAM,CAAmB;IAAE,CAAC;IAE1H,KAAK,CAAC,OAAO,CAAC,KAAY,EAAC,MAAmB,EAAC,KAA2D;QACxG,MAAM,GAAG,GAAC,UAAU,CAAC,QAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAC,MAAM,CAAC,QAAQ,EAAC,MAAM,CAAC,OAAO,EAAC,KAAK,CAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAClK,IAAI,KAAK,GAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAG,CAAC,KAAK,EAAE,CAAC;YACV,IAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAE,EAAE;gBAAC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;YAC5D,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,KAAK,CAAC,CAAA;YACpC,MAAM,KAAK,GAAC,UAAU,CAAC,GAAE,EAAE;gBACzB,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,KAAG,KAAK;oBAAC,OAAM;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACxB,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,CAAC,CAAC,CAAA;YACjE,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACX,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,KAAK,GAAC,EAAC,KAAK,EAAC,KAAK,EAAC,CAAC;YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAC,KAAK,CAAC,CAAA;YAC/C,KAAK,KAAK,CAAC,KAAK,CAAC,GAAE,EAAE,GAAC,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAG,KAAK,EAAC,CAAC;gBAAA,YAAY,CAAC,KAAK,CAAC,CAAC;gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAAA,CAAC,CAAA,CAAC,CAAC,CAAA;QACzG,CAAC;QACD,MAAM,OAAO,GAAC,KAAK,CAAA;QACnB,OAAO,EAAC,KAAK,EAAC,MAAM,OAAO,CAAC,KAAK,EAAC,MAAM,EAAC,GAAE,EAAE,GAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA,IAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAG,OAAO;gBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC,EAAC,CAAA;IACzI,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { DirectConfig } from './transport.js';
|
|
2
|
+
export declare class LoginRateLimitError extends Error {
|
|
3
|
+
readonly retryAfterMs: number;
|
|
4
|
+
readonly status = 429;
|
|
5
|
+
constructor(retryAfterMs: number);
|
|
6
|
+
}
|
|
7
|
+
/** Revoke only sessions created by password login, never a user-supplied token. */
|
|
8
|
+
export declare function discardDirectLogin(config: DirectConfig, token: string): Promise<void>;
|
|
9
|
+
/** Exchange a password once. Only the access token is returned to the credential vault. */
|
|
10
|
+
export declare function directLogin(config: DirectConfig, input: {
|
|
11
|
+
username: unknown;
|
|
12
|
+
password: unknown;
|
|
13
|
+
mfaToken?: unknown;
|
|
14
|
+
}, signal?: AbortSignal): Promise<string>;
|
|
15
|
+
//# sourceMappingURL=login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/login.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAGlD,qBAAa,mBAAoB,SAAQ,KAAK;IAEhC,QAAQ,CAAC,YAAY,EAAC,MAAM;IADxC,QAAQ,CAAC,MAAM,OAAI;gBACE,YAAY,EAAC,MAAM;CACzC;AAQD,mFAAmF;AACnF,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ3F;AAED,2FAA2F;AAC3F,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAC,EAAE,MAAM,cAA8B,GAAG,OAAO,CAAC,MAAM,CAAC,CAkChL"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
const cooldowns = new Map();
|
|
2
|
+
export class LoginRateLimitError extends Error {
|
|
3
|
+
retryAfterMs;
|
|
4
|
+
status = 429;
|
|
5
|
+
constructor(retryAfterMs) {
|
|
6
|
+
super(`服务器限制登录频率(HTTP 429),请在 ${Math.ceil(retryAfterMs / 1000)} 秒后重试。这不是账号密码错误。`);
|
|
7
|
+
this.retryAfterMs = retryAfterMs;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
async function readLoginBody(response) {
|
|
11
|
+
if (!response.body)
|
|
12
|
+
throw new Error('登录返回空响应');
|
|
13
|
+
const chunks = [];
|
|
14
|
+
let bytes = 0;
|
|
15
|
+
for await (const chunk of response.body) {
|
|
16
|
+
bytes += chunk.length;
|
|
17
|
+
if (bytes > 65536)
|
|
18
|
+
throw new Error('登录响应异常');
|
|
19
|
+
chunks.push(chunk);
|
|
20
|
+
}
|
|
21
|
+
return JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
22
|
+
}
|
|
23
|
+
/** Revoke only sessions created by password login, never a user-supplied token. */
|
|
24
|
+
export async function discardDirectLogin(config, token) {
|
|
25
|
+
const path = config.platform === 'matrix' ? '/_matrix/client/v3/logout' : '/api/v4/users/logout';
|
|
26
|
+
const response = await fetch(config.baseUrl + path, {
|
|
27
|
+
method: 'POST', redirect: 'error', signal: AbortSignal.timeout(10_000),
|
|
28
|
+
headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' }, body: '{}',
|
|
29
|
+
});
|
|
30
|
+
await response.body?.cancel();
|
|
31
|
+
if (!response.ok)
|
|
32
|
+
throw new Error('临时登录会话退出失败,请在渠道服务器的会话管理中撤销');
|
|
33
|
+
}
|
|
34
|
+
/** Exchange a password once. Only the access token is returned to the credential vault. */
|
|
35
|
+
export async function directLogin(config, input, signal = AbortSignal.timeout(30_000)) {
|
|
36
|
+
if (typeof input.username !== 'string' || !input.username.trim() || input.username.length > 255 || typeof input.password !== 'string' || !input.password || input.password.length > 8192)
|
|
37
|
+
throw new Error('请输入账号和密码');
|
|
38
|
+
if (input.mfaToken !== undefined && (typeof input.mfaToken !== 'string' || input.mfaToken.length > 64))
|
|
39
|
+
throw new Error('验证码格式无效');
|
|
40
|
+
const remaining = (cooldowns.get(config.baseUrl) ?? 0) - Date.now();
|
|
41
|
+
if (remaining > 0)
|
|
42
|
+
throw new LoginRateLimitError(remaining);
|
|
43
|
+
const matrix = config.platform === 'matrix';
|
|
44
|
+
const response = await fetch(config.baseUrl + (matrix ? '/_matrix/client/v3/login' : '/api/v4/users/login'), {
|
|
45
|
+
method: 'POST', redirect: 'error', signal, headers: { 'Content-Type': 'application/json' },
|
|
46
|
+
body: JSON.stringify(matrix ? { type: 'm.login.password', identifier: { type: 'm.id.user', user: input.username.trim() }, password: input.password, initial_device_display_name: 'DSH Partner' } : { login_id: input.username.trim(), password: input.password, ...(input.mfaToken ? { token: input.mfaToken } : {}) }),
|
|
47
|
+
});
|
|
48
|
+
if (!response.ok) {
|
|
49
|
+
if (response.status === 429) {
|
|
50
|
+
const header = response.headers.get('retry-after');
|
|
51
|
+
const headerMs = header ? (/^\d+$/.test(header) ? Number(header) * 1000 : Date.parse(header) - Date.now()) : 0;
|
|
52
|
+
const data = await readLoginBody(response).catch(() => ({}));
|
|
53
|
+
const bodyMs = typeof data.retry_after_ms === 'number' ? data.retry_after_ms : 0;
|
|
54
|
+
const retry = Math.max(1000, Number.isFinite(bodyMs) && bodyMs > 0 ? bodyMs : Number.isFinite(headerMs) && headerMs > 0 ? headerMs : 60_000);
|
|
55
|
+
for (const [key, until] of cooldowns)
|
|
56
|
+
if (until <= Date.now())
|
|
57
|
+
cooldowns.delete(key);
|
|
58
|
+
if (cooldowns.size >= 128)
|
|
59
|
+
cooldowns.delete(cooldowns.keys().next().value);
|
|
60
|
+
cooldowns.set(config.baseUrl, Date.now() + retry);
|
|
61
|
+
throw new LoginRateLimitError(retry);
|
|
62
|
+
}
|
|
63
|
+
await response.body?.cancel();
|
|
64
|
+
throw new Error([400, 401, 403].includes(response.status) ? `账号登录失败(HTTP ${response.status})。请检查账号、密码及双重验证;仅支持 SSO 的账号请改用 Access Token。` : `登录服务暂不可用(HTTP ${response.status}),请检查服务器或反向代理,不要反复修改密码。`);
|
|
65
|
+
}
|
|
66
|
+
let token;
|
|
67
|
+
if (matrix) {
|
|
68
|
+
token = (await readLoginBody(response)).access_token;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
token = response.headers.get('Token');
|
|
72
|
+
await response.body?.cancel();
|
|
73
|
+
}
|
|
74
|
+
if (typeof token !== 'string' || !token || token.length > 8192)
|
|
75
|
+
throw new Error('服务器未返回可用登录令牌,请改用 Access Token');
|
|
76
|
+
return token;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/channels/direct/login.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAC,IAAI,GAAG,EAAiB,CAAA;AACxC,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAEvB;IADZ,MAAM,GAAC,GAAG,CAAA;IACnB,YAAqB,YAAmB;QAAE,KAAK,CAAC,0BAA0B,IAAI,CAAC,IAAI,CAAC,YAAY,GAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAApG,iBAAY,GAAZ,YAAY,CAAO;IAAiF,CAAC;CAC3H;AACD,KAAK,UAAU,aAAa,CAAC,QAAiB;IAC5C,IAAG,CAAC,QAAQ,CAAC,IAAI;QAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAc,EAAE,CAAC;IAAA,IAAI,KAAK,GAAC,CAAC,CAAA;IACxC,IAAI,KAAK,EAAC,MAAM,KAAK,IAAI,QAAQ,CAAC,IAA4C,EAAE,CAAC;QAAA,KAAK,IAAE,KAAK,CAAC,MAAM,CAAC;QAAA,IAAG,KAAK,GAAC,KAAK;YAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAAA,CAAC;IACjK,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAC3D,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAoB,EAAE,KAAa;IAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,sBAAsB,CAAA;IAChG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,EAAE;QAClD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;QACtE,OAAO,EAAE,EAAC,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAC,EAAE,IAAI,EAAE,IAAI;KAC5F,CAAC,CAAA;IACF,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;IAC7B,IAAI,CAAC,QAAQ,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;AACjE,CAAC;AAED,2FAA2F;AAC3F,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAoB,EAAE,KAAiE,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7J,IAAG,OAAO,KAAK,CAAC,QAAQ,KAAG,QAAQ,IAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAC,GAAG,IAAE,OAAO,KAAK,CAAC,QAAQ,KAAG,QAAQ,IAAE,CAAC,KAAK,CAAC,QAAQ,IAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAC,IAAI;QAAC,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAA;IACjM,IAAG,KAAK,CAAC,QAAQ,KAAG,SAAS,IAAE,CAAC,OAAO,KAAK,CAAC,QAAQ,KAAG,QAAQ,IAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAC,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;IACtH,MAAM,SAAS,GAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAA;IAC7D,IAAG,SAAS,GAAC,CAAC;QAAC,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,MAAM,GAAC,MAAM,CAAC,QAAQ,KAAG,QAAQ,CAAA;IACvC,MAAM,QAAQ,GAAC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,GAAC,CAAC,MAAM,CAAA,CAAC,CAAA,0BAA0B,CAAA,CAAC,CAAA,qBAAqB,CAAC,EAAC;QAClG,MAAM,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,cAAc,EAAC,kBAAkB,EAAC;QACjF,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAA,CAAC,CAAA,EAAC,IAAI,EAAC,kBAAkB,EAAC,UAAU,EAAC,EAAC,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAC,EAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,EAAC,2BAA2B,EAAC,aAAa,EAAC,CAAA,CAAC,CAAA,EAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAC,KAAK,CAAC,QAAQ,EAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAA,CAAC,CAAA,EAAC,KAAK,EAAC,KAAK,CAAC,QAAQ,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC;KACxR,CAAC,CAAA;IACF,IAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,IAAG,QAAQ,CAAC,MAAM,KAAG,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAChD,MAAM,QAAQ,GAAC,MAAM,CAAA,CAAC,CAAA,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,MAAM,CAAC,GAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA;YAChG,MAAM,IAAI,GAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAE,EAAE,CAAA,CAAC,EAAE,CAAC,CAAC,CAAA;YACxD,MAAM,MAAM,GAAC,OAAO,IAAI,CAAC,cAAc,KAAG,QAAQ,CAAA,CAAC,CAAA,IAAI,CAAC,cAAc,CAAA,CAAC,CAAA,CAAC,CAAA;YACxE,MAAM,KAAK,GAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAE,MAAM,GAAC,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAE,QAAQ,GAAC,CAAC,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,MAAM,CAAC,CAAA;YACzH,KAAI,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,IAAI,SAAS;gBAAC,IAAG,KAAK,IAAE,IAAI,CAAC,GAAG,EAAE;oBAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC7E,IAAG,SAAS,CAAC,IAAI,IAAE,GAAG;gBAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAA;YACvE,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAC,IAAI,CAAC,GAAG,EAAE,GAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;QAC7B,MAAM,IAAI,KAAK,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA,CAAC,CAAA,eAAe,QAAQ,CAAC,MAAM,8CAA8C,CAAA,CAAC,CAAA,iBAAiB,QAAQ,CAAC,MAAM,yBAAyB,CAAC,CAAA;IACjM,CAAC;IACD,IAAI,KAAc,CAAA;IAClB,IAAG,MAAM,EAAE,CAAC;QACV,KAAK,GAAC,CAAC,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAA;IACpD,CAAC;SAAM,CAAC;QACN,KAAK,GAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;IAC/B,CAAC;IACD,IAAG,OAAO,KAAK,KAAG,QAAQ,IAAE,CAAC,KAAK,IAAE,KAAK,CAAC,MAAM,GAAC,IAAI;QAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACtG,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { PartnerOutboundAttachment } from '../../channel-message.js';
|
|
2
|
+
export type DirectPlatform = 'matrix' | 'mattermost';
|
|
3
|
+
export interface DirectConfig {
|
|
4
|
+
platform: DirectPlatform;
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
targetId: string;
|
|
7
|
+
}
|
|
8
|
+
export interface DirectMessage {
|
|
9
|
+
id: string;
|
|
10
|
+
sender: string;
|
|
11
|
+
text: string;
|
|
12
|
+
targetId?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface DirectBatch {
|
|
15
|
+
cursor: string;
|
|
16
|
+
messages: DirectMessage[];
|
|
17
|
+
}
|
|
18
|
+
export interface ChannelSender {
|
|
19
|
+
sendText(userId: string, text: string, context: string | undefined, signal?: AbortSignal): Promise<void>;
|
|
20
|
+
sendAttachment(userId: string, file: PartnerOutboundAttachment, context: string | undefined, signal?: AbortSignal): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export declare class ChannelHttpError extends Error {
|
|
23
|
+
readonly status: number;
|
|
24
|
+
readonly retryAfterMs: number;
|
|
25
|
+
constructor(status: number, retryAfterMs?: number);
|
|
26
|
+
}
|
|
27
|
+
export declare function directConfig(value: Record<string, unknown>): DirectConfig;
|
|
28
|
+
/** Explicit, two-member conversations only. No group inference from display names. */
|
|
29
|
+
export declare class DirectTransport implements ChannelSender {
|
|
30
|
+
readonly config: DirectConfig;
|
|
31
|
+
private readonly token;
|
|
32
|
+
private readonly expected?;
|
|
33
|
+
private botId;
|
|
34
|
+
private peerId;
|
|
35
|
+
constructor(config: DirectConfig, token: string, expected?: {
|
|
36
|
+
accountId: string;
|
|
37
|
+
peerId: string;
|
|
38
|
+
} | undefined);
|
|
39
|
+
private request;
|
|
40
|
+
validate(signal?: AbortSignal): Promise<{
|
|
41
|
+
accountId: string;
|
|
42
|
+
peerId: string;
|
|
43
|
+
}>;
|
|
44
|
+
poll(cursor: string | undefined, signal: AbortSignal): Promise<DirectBatch>;
|
|
45
|
+
sendText(userId: string, text: string, _context: string | undefined, signal?: AbortSignal): Promise<void>;
|
|
46
|
+
sendAttachment(_userId: string, _file: PartnerOutboundAttachment, _context: string | undefined, _signal?: AbortSignal): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../../src/channels/direct/transport.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAGzE,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,YAAY,CAAA;AACpD,MAAM,WAAW,YAAY;IAAG,QAAQ,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC7F,MAAM,WAAW,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE;AAC9F,MAAM,WAAW,WAAW;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,EAAE,CAAA;CAAE;AAC1E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClI;AACD,qBAAa,gBAAiB,SAAQ,KAAK;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAE,QAAQ,CAAC,YAAY;gBAArC,MAAM,EAAE,MAAM,EAAW,YAAY,SAAI;CAC/D;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,YAAY,CAMzE;AAED,sFAAsF;AACtF,qBAAa,eAAgB,YAAW,aAAa;IAGvC,QAAQ,CAAC,MAAM,EAAE,YAAY;IAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAU,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAFrG,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;gBACE,MAAM,EAAE,YAAY,EAAmB,KAAK,EAAE,MAAM,EAAmB,QAAQ,CAAC,EAAE;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,YAAA;YAE5H,OAAO;IAsBf,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAC;IA+B5E,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IA+B3E,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5I"}
|