morok-bot-sdk 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.
Files changed (96) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +602 -0
  3. package/README.ru.md +602 -0
  4. package/dist/bot.d.ts +232 -0
  5. package/dist/bot.d.ts.map +1 -0
  6. package/dist/bot.js +558 -0
  7. package/dist/bot.js.map +1 -0
  8. package/dist/crypto/channel-cipher.d.ts +32 -0
  9. package/dist/crypto/channel-cipher.d.ts.map +1 -0
  10. package/dist/crypto/channel-cipher.js +77 -0
  11. package/dist/crypto/channel-cipher.js.map +1 -0
  12. package/dist/crypto/channel-key-store.d.ts +37 -0
  13. package/dist/crypto/channel-key-store.d.ts.map +1 -0
  14. package/dist/crypto/channel-key-store.js +149 -0
  15. package/dist/crypto/channel-key-store.js.map +1 -0
  16. package/dist/crypto/cross-signing.d.ts +57 -0
  17. package/dist/crypto/cross-signing.d.ts.map +1 -0
  18. package/dist/crypto/cross-signing.js +111 -0
  19. package/dist/crypto/cross-signing.js.map +1 -0
  20. package/dist/crypto/file-cipher.d.ts +36 -0
  21. package/dist/crypto/file-cipher.d.ts.map +1 -0
  22. package/dist/crypto/file-cipher.js +61 -0
  23. package/dist/crypto/file-cipher.js.map +1 -0
  24. package/dist/crypto/group-secret-cipher.d.ts +49 -0
  25. package/dist/crypto/group-secret-cipher.d.ts.map +1 -0
  26. package/dist/crypto/group-secret-cipher.js +69 -0
  27. package/dist/crypto/group-secret-cipher.js.map +1 -0
  28. package/dist/crypto/group-secret-store.d.ts +35 -0
  29. package/dist/crypto/group-secret-store.d.ts.map +1 -0
  30. package/dist/crypto/group-secret-store.js +149 -0
  31. package/dist/crypto/group-secret-store.js.map +1 -0
  32. package/dist/crypto/signal.d.ts +81 -0
  33. package/dist/crypto/signal.d.ts.map +1 -0
  34. package/dist/crypto/signal.js +125 -0
  35. package/dist/crypto/signal.js.map +1 -0
  36. package/dist/crypto/stores.d.ts +130 -0
  37. package/dist/crypto/stores.d.ts.map +1 -0
  38. package/dist/crypto/stores.js +314 -0
  39. package/dist/crypto/stores.js.map +1 -0
  40. package/dist/flow/attachments.d.ts +110 -0
  41. package/dist/flow/attachments.d.ts.map +1 -0
  42. package/dist/flow/attachments.js +409 -0
  43. package/dist/flow/attachments.js.map +1 -0
  44. package/dist/flow/conv-cache.d.ts +36 -0
  45. package/dist/flow/conv-cache.d.ts.map +1 -0
  46. package/dist/flow/conv-cache.js +84 -0
  47. package/dist/flow/conv-cache.js.map +1 -0
  48. package/dist/flow/direct.d.ts +109 -0
  49. package/dist/flow/direct.d.ts.map +1 -0
  50. package/dist/flow/direct.js +346 -0
  51. package/dist/flow/direct.js.map +1 -0
  52. package/dist/flow/groups.d.ts +146 -0
  53. package/dist/flow/groups.d.ts.map +1 -0
  54. package/dist/flow/groups.js +768 -0
  55. package/dist/flow/groups.js.map +1 -0
  56. package/dist/flow/prekeys.d.ts +45 -0
  57. package/dist/flow/prekeys.d.ts.map +1 -0
  58. package/dist/flow/prekeys.js +111 -0
  59. package/dist/flow/prekeys.js.map +1 -0
  60. package/dist/flow/receive.d.ts +125 -0
  61. package/dist/flow/receive.d.ts.map +1 -0
  62. package/dist/flow/receive.js +773 -0
  63. package/dist/flow/receive.js.map +1 -0
  64. package/dist/index.d.ts +15 -0
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +6 -0
  67. package/dist/index.js.map +1 -0
  68. package/dist/morokbot-file.d.ts +14 -0
  69. package/dist/morokbot-file.d.ts.map +1 -0
  70. package/dist/morokbot-file.js +88 -0
  71. package/dist/morokbot-file.js.map +1 -0
  72. package/dist/ratelimit.d.ts +40 -0
  73. package/dist/ratelimit.d.ts.map +1 -0
  74. package/dist/ratelimit.js +76 -0
  75. package/dist/ratelimit.js.map +1 -0
  76. package/dist/sessions.d.ts +34 -0
  77. package/dist/sessions.d.ts.map +1 -0
  78. package/dist/sessions.js +69 -0
  79. package/dist/sessions.js.map +1 -0
  80. package/dist/state-lock.d.ts +17 -0
  81. package/dist/state-lock.d.ts.map +1 -0
  82. package/dist/state-lock.js +66 -0
  83. package/dist/state-lock.js.map +1 -0
  84. package/dist/transport/http.d.ts +48 -0
  85. package/dist/transport/http.d.ts.map +1 -0
  86. package/dist/transport/http.js +112 -0
  87. package/dist/transport/http.js.map +1 -0
  88. package/dist/transport/ws.d.ts +65 -0
  89. package/dist/transport/ws.d.ts.map +1 -0
  90. package/dist/transport/ws.js +219 -0
  91. package/dist/transport/ws.js.map +1 -0
  92. package/dist/types.d.ts +254 -0
  93. package/dist/types.d.ts.map +1 -0
  94. package/dist/types.js +2 -0
  95. package/dist/types.js.map +1 -0
  96. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/flow/groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Prekey pool maintenance. Three triggers:
3
+ * - boot: once after MorokBot.start() lands, tops up the OTPK pool and rotates SPK if the server says so
4
+ * - background tick: every backgroundIntervalMs (default 5 min)
5
+ * - on-demand: from a flow module that hit a peer-side prekey error
6
+ *
7
+ * Server:
8
+ * GET /prekeys/count?deviceId=1 -> { count, shouldRotateSignedPreKey }
9
+ * POST /prekeys/replenish body { deviceId, signedPreKey?, oneTimePreKeys? }
10
+ *
11
+ * OTPK ids are monotonic in state.json. The server caps at 200 per call and we keep target below that,
12
+ * so one request fits one batch, and a UNIQUE(user_id, device_id, key_id) bounces a stray duplicate
13
+ * SPK rotation bumps nextSignedPreKeyId and the rotation ts
14
+ * The old SPK row stays on disk, libsignal needs it to decrypt in-flight type-3 frames addressed to the old keyId
15
+ */
16
+ import type { HttpClient } from '../transport/http.js';
17
+ import type { SignalEngine } from '../crypto/signal.js';
18
+ import type { FileSignalStore } from '../crypto/stores.js';
19
+ import type { SdkLogger } from '../types.js';
20
+ export interface PreKeyManagerConfig {
21
+ deviceId: number;
22
+ replenishThreshold: number;
23
+ replenishTarget: number;
24
+ backgroundIntervalMs: number;
25
+ logger?: SdkLogger;
26
+ }
27
+ export declare class PreKeyManager {
28
+ private readonly http;
29
+ private readonly signal;
30
+ private readonly store;
31
+ private readonly config;
32
+ private timer?;
33
+ private running;
34
+ private inFlightCheck?;
35
+ constructor(http: HttpClient, signal: SignalEngine, store: FileSignalStore, config: PreKeyManagerConfig);
36
+ /** Boot check inline (fresh bot needs OTPKs before peers reach it), then start the background loop. Idempotent */
37
+ start(): Promise<void>;
38
+ stop(): void;
39
+ /** Caller-triggered replenish */
40
+ requestReplenish(): Promise<void>;
41
+ /** Single-flight: a check already in progress is shared */
42
+ private checkAndReplenish;
43
+ private doCheckAndReplenish;
44
+ }
45
+ //# sourceMappingURL=prekeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prekeys.d.ts","sourceRoot":"","sources":["../../src/flow/prekeys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAQ,sBAAsB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAS,aAAa,CAAA;AAQ/C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAe,MAAM,CAAA;IAC7B,kBAAkB,EAAK,MAAM,CAAA;IAC7B,eAAe,EAAQ,MAAM,CAAA;IAC7B,oBAAoB,EAAG,MAAM,CAAA;IAC7B,MAAM,CAAC,EAAgB,SAAS,CAAA;CACnC;AASD,qBAAa,aAAa;IAMlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAR3B,OAAO,CAAC,KAAK,CAAC,CAAwB;IACtC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAe;gBAGhB,IAAI,EAAI,UAAU,EAClB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAG,eAAe,EACvB,MAAM,EAAE,mBAAmB;IAIhD,kHAAkH;IAC5G,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B,IAAI,IAAI,IAAI;IAQZ,iCAAiC;IAC3B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvC,2DAA2D;YAC7C,iBAAiB;YAOjB,mBAAmB;CAmFpC"}
@@ -0,0 +1,111 @@
1
+ const HARD_TARGET_CAP = 200;
2
+ const OTPK_ID_MAX = 0x00FFFFFF;
3
+ export class PreKeyManager {
4
+ http;
5
+ signal;
6
+ store;
7
+ config;
8
+ timer;
9
+ running = false;
10
+ inFlightCheck;
11
+ constructor(http, signal, store, config) {
12
+ this.http = http;
13
+ this.signal = signal;
14
+ this.store = store;
15
+ this.config = config;
16
+ }
17
+ async start() {
18
+ if (this.running)
19
+ return;
20
+ this.running = true;
21
+ try {
22
+ await this.checkAndReplenish('boot');
23
+ }
24
+ catch (err) {
25
+ this.config.logger?.warn({ err: err.message }, '[prekeys] boot replenish failed; background loop will retry');
26
+ }
27
+ if (this.config.backgroundIntervalMs > 0) {
28
+ this.timer = setInterval(() => {
29
+ this.checkAndReplenish('background').catch(err => {
30
+ this.config.logger?.warn({ err: err.message }, '[prekeys] background replenish failed; will retry next tick');
31
+ });
32
+ }, this.config.backgroundIntervalMs);
33
+ if (typeof this.timer.unref === 'function')
34
+ this.timer.unref();
35
+ }
36
+ }
37
+ stop() {
38
+ this.running = false;
39
+ if (this.timer) {
40
+ clearInterval(this.timer);
41
+ this.timer = undefined;
42
+ }
43
+ }
44
+ async requestReplenish() {
45
+ return this.checkAndReplenish('on-demand');
46
+ }
47
+ async checkAndReplenish(reason) {
48
+ if (this.inFlightCheck)
49
+ return this.inFlightCheck;
50
+ this.inFlightCheck = this.doCheckAndReplenish(reason)
51
+ .finally(() => { this.inFlightCheck = undefined; });
52
+ return this.inFlightCheck;
53
+ }
54
+ async doCheckAndReplenish(reason) {
55
+ const { deviceId, replenishThreshold, replenishTarget, logger } = this.config;
56
+ const target = Math.min(replenishTarget, HARD_TARGET_CAP);
57
+ const res = await this.http.get(`/prekeys/count?deviceId=${deviceId}`);
58
+ const { count, shouldRotateSignedPreKey } = res.data;
59
+ const needOtpks = count < replenishThreshold ? target - count : 0;
60
+ if (needOtpks <= 0 && !shouldRotateSignedPreKey) {
61
+ logger?.debug({ reason, count, threshold: replenishThreshold }, '[prekeys] pool healthy');
62
+ return;
63
+ }
64
+ logger?.info({ reason, count, threshold: replenishThreshold, willMintOtpks: needOtpks, willRotateSpk: shouldRotateSignedPreKey }, '[prekeys] running replenish');
65
+ const body = { deviceId };
66
+ if (shouldRotateSignedPreKey) {
67
+ const st = await this.store.loadState();
68
+ const nextSpkId = st.nextSignedPreKeyId;
69
+ const spk = await this.signal.mintSignedPreKey(nextSpkId);
70
+ body.signedPreKey = {
71
+ keyId: spk.keyId,
72
+ publicKey: spk.publicKey,
73
+ signature: spk.signature,
74
+ };
75
+ await this.store.patchState({
76
+ nextSignedPreKeyId: nextSpkId + 1,
77
+ lastSignedPreKeyRotationMs: Date.now(),
78
+ });
79
+ }
80
+ if (needOtpks > 0) {
81
+ const st = await this.store.loadState();
82
+ let nextId = st.nextOneTimePreKeyId;
83
+ const minted = [];
84
+ try {
85
+ for (let i = 0; i < needOtpks; i++) {
86
+ if (nextId > OTPK_ID_MAX) {
87
+ logger?.error({ nextId, max: OTPK_ID_MAX }, '[prekeys] OTPK id space exhausted');
88
+ break;
89
+ }
90
+ const otpk = await this.signal.mintOneTimePreKey(nextId);
91
+ nextId++;
92
+ minted.push(otpk);
93
+ }
94
+ }
95
+ finally {
96
+ await this.store.patchState({ nextOneTimePreKeyId: nextId });
97
+ }
98
+ body.oneTimePreKeys = minted;
99
+ }
100
+ if (!body.signedPreKey && (!body.oneTimePreKeys || body.oneTimePreKeys.length === 0)) {
101
+ logger?.debug({}, '[prekeys] nothing to upload');
102
+ return;
103
+ }
104
+ await this.http.post('/prekeys/replenish', body);
105
+ logger?.info({
106
+ spk: body.signedPreKey?.keyId,
107
+ otpks: body.oneTimePreKeys?.length ?? 0,
108
+ }, '[prekeys] replenish committed');
109
+ }
110
+ }
111
+ //# sourceMappingURL=prekeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prekeys.js","sourceRoot":"","sources":["../../src/flow/prekeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Inbound WS frame router. Owns:
3
+ * - message (DM and group-chat/channel)
4
+ * - bot_started / bot_stopped
5
+ * - conversation_added / conversation_kicked
6
+ * - channel_key_rotated, member_count_changed
7
+ *
8
+ * Own-echoes (senderId === botUserId) are skipped here, DirectFlow and GroupsFlow resolve them via fanoutId
9
+ * Plaintext is UTF-8 text or a JSON envelope for attachments, sniff picks between them
10
+ * Dedup is a small LRU keyed by (sender, conv, clientMsgId), needed because the server replays on reconnect
11
+ * (durable queues), 5-minute TTL is plenty since replays land fast
12
+ * Command dispatch: single-line plaintext starting with '/' becomes a CommandInvocation
13
+ * Multi-line bubbles aren't commands
14
+ */
15
+ import type { HttpClient } from '../transport/http.js';
16
+ import type { WsClient } from '../transport/ws.js';
17
+ import type { SignalEngine } from '../crypto/signal.js';
18
+ import type { SdkLogger, Peer, IncomingMessage, CommandInvocation, BotStartEvent, BotStopEvent, ConversationAddedEvent, ConversationKickedEvent, ReactionEvent, ControlEvent, IncomingAttachment, VideoNoteShape } from '../types.js';
19
+ import { type EncryptedFileRef, type GalleryItem } from './attachments.js';
20
+ import type { GroupsFlow } from './groups.js';
21
+ import type { ConvCache } from './conv-cache.js';
22
+ export type ReceiveEmitter = {
23
+ emit: (event: {
24
+ kind: 'message';
25
+ payload: IncomingMessage;
26
+ } | {
27
+ kind: 'command';
28
+ payload: CommandInvocation;
29
+ } | {
30
+ kind: 'start';
31
+ payload: BotStartEvent;
32
+ } | {
33
+ kind: 'stop';
34
+ payload: BotStopEvent;
35
+ } | {
36
+ kind: 'conversation_added';
37
+ payload: ConversationAddedEvent;
38
+ } | {
39
+ kind: 'conversation_kicked';
40
+ payload: ConversationKickedEvent;
41
+ } | {
42
+ kind: 'reaction';
43
+ payload: ReactionEvent;
44
+ } | {
45
+ kind: 'control';
46
+ payload: ControlEvent;
47
+ } | {
48
+ kind: 'error';
49
+ error: Error;
50
+ }) => void;
51
+ };
52
+ export declare class ReceiveFlow {
53
+ private readonly botUserId;
54
+ private readonly http;
55
+ private readonly ws;
56
+ private readonly signal;
57
+ private readonly convCache;
58
+ private readonly emitter;
59
+ private readonly groups;
60
+ private readonly opts;
61
+ private readonly logger?;
62
+ private peerCache;
63
+ private dedup;
64
+ private textDec;
65
+ private backfillReqThrottle;
66
+ constructor(botUserId: number, http: HttpClient, ws: WsClient, signal: SignalEngine, convCache: ConvCache | null, emitter: ReceiveEmitter, groups: GroupsFlow | null, opts: {
67
+ autoBackfillOnJoin: boolean;
68
+ serveBackfillRequests: boolean;
69
+ }, logger?: SdkLogger | undefined);
70
+ private onFrame;
71
+ private onMessageFrame;
72
+ private onDirectInbound;
73
+ private onBotStartedFrame;
74
+ private onBotStoppedFrame;
75
+ private onReactionEncryptedFrame;
76
+ private onReactionRemovedFrame;
77
+ private onGroupInbound;
78
+ private onConversationAddedFrame;
79
+ private onConversationKickedFrame;
80
+ private onMemberUpdatedFrame;
81
+ private onGroupUpdatedFrame;
82
+ private onMemberCountChangedFrame;
83
+ private onChannelKeyBackfillRequestFrame;
84
+ private pruneBackfillThrottle;
85
+ private onChannelKeyRotatedFrame;
86
+ resolvePeer(userId: number): Promise<Peer>;
87
+ }
88
+ declare function parseReactionUnicode(plaintext: string): string | null;
89
+ interface ParsedCommand {
90
+ command: string;
91
+ args: string;
92
+ argv: string[];
93
+ }
94
+ /** Parsed command if the text is a single line matching the grammar, null otherwise
95
+ * Multi-line messages aren't commands */
96
+ declare function parseCommand(text: string): ParsedCommand | null;
97
+ export declare const _parseCommand: typeof parseCommand;
98
+ export declare const _parseReactionUnicode: typeof parseReactionUnicode;
99
+ interface ParsedAttachment {
100
+ kind: 'file' | 'voice' | 'video_note';
101
+ ref: EncryptedFileRef;
102
+ duration?: number;
103
+ waveform?: number[];
104
+ shape?: VideoNoteShape;
105
+ }
106
+ interface ParsedGallery {
107
+ items: GalleryItem[];
108
+ }
109
+ interface SniffResult {
110
+ /** Caption / text from 'file' / 'gallery' payload, empty for voice/video_note */
111
+ caption?: string;
112
+ /** Single-attachment payload. Mutually exclusive with `gallery` */
113
+ attachment?: ParsedAttachment;
114
+ /** Multi-attachment gallery (2..10 items). Mutually exclusive with `attachment` */
115
+ gallery?: ParsedGallery;
116
+ }
117
+ /** Decide whether plaintext is a known structured payload or just text. null = text
118
+ * Never throws, a malformed JSON envelope falls through as text */
119
+ declare function sniffStructuredPayload(plaintext: string): SniffResult | null;
120
+ /** ParsedAttachment + download closure -> IncomingAttachment */
121
+ declare function buildIncomingAttachment(parsed: ParsedAttachment, download: () => Promise<Buffer>): IncomingAttachment;
122
+ export declare const _sniffStructuredPayload: typeof sniffStructuredPayload;
123
+ export declare const _buildIncomingAttachment: typeof buildIncomingAttachment;
124
+ export {};
125
+ //# sourceMappingURL=receive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"receive.d.ts","sourceRoot":"","sources":["../../src/flow/receive.ts"],"names":[],"mappings":"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"}