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.
- package/LICENSE +201 -0
- package/README.md +602 -0
- package/README.ru.md +602 -0
- package/dist/bot.d.ts +232 -0
- package/dist/bot.d.ts.map +1 -0
- package/dist/bot.js +558 -0
- package/dist/bot.js.map +1 -0
- package/dist/crypto/channel-cipher.d.ts +32 -0
- package/dist/crypto/channel-cipher.d.ts.map +1 -0
- package/dist/crypto/channel-cipher.js +77 -0
- package/dist/crypto/channel-cipher.js.map +1 -0
- package/dist/crypto/channel-key-store.d.ts +37 -0
- package/dist/crypto/channel-key-store.d.ts.map +1 -0
- package/dist/crypto/channel-key-store.js +149 -0
- package/dist/crypto/channel-key-store.js.map +1 -0
- package/dist/crypto/cross-signing.d.ts +57 -0
- package/dist/crypto/cross-signing.d.ts.map +1 -0
- package/dist/crypto/cross-signing.js +111 -0
- package/dist/crypto/cross-signing.js.map +1 -0
- package/dist/crypto/file-cipher.d.ts +36 -0
- package/dist/crypto/file-cipher.d.ts.map +1 -0
- package/dist/crypto/file-cipher.js +61 -0
- package/dist/crypto/file-cipher.js.map +1 -0
- package/dist/crypto/group-secret-cipher.d.ts +49 -0
- package/dist/crypto/group-secret-cipher.d.ts.map +1 -0
- package/dist/crypto/group-secret-cipher.js +69 -0
- package/dist/crypto/group-secret-cipher.js.map +1 -0
- package/dist/crypto/group-secret-store.d.ts +35 -0
- package/dist/crypto/group-secret-store.d.ts.map +1 -0
- package/dist/crypto/group-secret-store.js +149 -0
- package/dist/crypto/group-secret-store.js.map +1 -0
- package/dist/crypto/signal.d.ts +81 -0
- package/dist/crypto/signal.d.ts.map +1 -0
- package/dist/crypto/signal.js +125 -0
- package/dist/crypto/signal.js.map +1 -0
- package/dist/crypto/stores.d.ts +130 -0
- package/dist/crypto/stores.d.ts.map +1 -0
- package/dist/crypto/stores.js +314 -0
- package/dist/crypto/stores.js.map +1 -0
- package/dist/flow/attachments.d.ts +110 -0
- package/dist/flow/attachments.d.ts.map +1 -0
- package/dist/flow/attachments.js +409 -0
- package/dist/flow/attachments.js.map +1 -0
- package/dist/flow/conv-cache.d.ts +36 -0
- package/dist/flow/conv-cache.d.ts.map +1 -0
- package/dist/flow/conv-cache.js +84 -0
- package/dist/flow/conv-cache.js.map +1 -0
- package/dist/flow/direct.d.ts +109 -0
- package/dist/flow/direct.d.ts.map +1 -0
- package/dist/flow/direct.js +346 -0
- package/dist/flow/direct.js.map +1 -0
- package/dist/flow/groups.d.ts +146 -0
- package/dist/flow/groups.d.ts.map +1 -0
- package/dist/flow/groups.js +768 -0
- package/dist/flow/groups.js.map +1 -0
- package/dist/flow/prekeys.d.ts +45 -0
- package/dist/flow/prekeys.d.ts.map +1 -0
- package/dist/flow/prekeys.js +111 -0
- package/dist/flow/prekeys.js.map +1 -0
- package/dist/flow/receive.d.ts +125 -0
- package/dist/flow/receive.d.ts.map +1 -0
- package/dist/flow/receive.js +773 -0
- package/dist/flow/receive.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/morokbot-file.d.ts +14 -0
- package/dist/morokbot-file.d.ts.map +1 -0
- package/dist/morokbot-file.js +88 -0
- package/dist/morokbot-file.js.map +1 -0
- package/dist/ratelimit.d.ts +40 -0
- package/dist/ratelimit.d.ts.map +1 -0
- package/dist/ratelimit.js +76 -0
- package/dist/ratelimit.js.map +1 -0
- package/dist/sessions.d.ts +34 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +69 -0
- package/dist/sessions.js.map +1 -0
- package/dist/state-lock.d.ts +17 -0
- package/dist/state-lock.d.ts.map +1 -0
- package/dist/state-lock.js +66 -0
- package/dist/state-lock.js.map +1 -0
- package/dist/transport/http.d.ts +48 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +112 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/ws.d.ts +65 -0
- package/dist/transport/ws.d.ts.map +1 -0
- package/dist/transport/ws.js +219 -0
- package/dist/transport/ws.js.map +1 -0
- package/dist/types.d.ts +254 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- 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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"}
|