@wirecat/whatsapp-cli 0.4.0 → 0.6.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 +3 -0
- package/dist/adapter/adapter.d.ts +1 -1
- package/dist/adapter/adapter.d.ts.map +1 -1
- package/dist/adapter/adapter.js +16 -406
- package/dist/adapter/adapter.js.map +1 -1
- package/dist/adapter/channels.d.ts.map +1 -1
- package/dist/adapter/channels.js.map +1 -1
- package/dist/adapter/errors.d.ts +1 -1
- package/dist/adapter/errors.d.ts.map +1 -1
- package/dist/adapter/errors.js +4 -2
- package/dist/adapter/errors.js.map +1 -1
- package/dist/adapter/groups.d.ts.map +1 -1
- package/dist/adapter/groups.js +1 -1
- package/dist/adapter/groups.js.map +1 -1
- package/dist/adapter/listen.d.ts +11 -0
- package/dist/adapter/listen.d.ts.map +1 -0
- package/dist/adapter/listen.js +261 -0
- package/dist/adapter/listen.js.map +1 -0
- package/dist/adapter/map.d.ts +1 -1
- package/dist/adapter/map.d.ts.map +1 -1
- package/dist/adapter/map.js +12 -22
- package/dist/adapter/map.js.map +1 -1
- package/dist/adapter/polls.d.ts +2 -1
- package/dist/adapter/polls.d.ts.map +1 -1
- package/dist/adapter/polls.js +14 -3
- package/dist/adapter/polls.js.map +1 -1
- package/dist/adapter/privacy.d.ts.map +1 -1
- package/dist/adapter/privacy.js +26 -11
- package/dist/adapter/privacy.js.map +1 -1
- package/dist/adapter/sends.d.ts +14 -0
- package/dist/adapter/sends.d.ts.map +1 -0
- package/dist/adapter/sends.js +156 -0
- package/dist/adapter/sends.js.map +1 -0
- package/dist/adapter/settings.js +4 -1
- package/dist/adapter/settings.js.map +1 -1
- package/dist/app.d.ts +8 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +20 -1
- package/dist/app.js.map +1 -1
- package/dist/bot/adapter.d.ts +18 -0
- package/dist/bot/adapter.d.ts.map +1 -0
- package/dist/bot/adapter.js +74 -0
- package/dist/bot/adapter.js.map +1 -0
- package/dist/bot/generated/definitions.d.ts +3 -0
- package/dist/bot/generated/definitions.d.ts.map +1 -0
- package/dist/bot/generated/definitions.js +9254 -0
- package/dist/bot/generated/definitions.js.map +1 -0
- package/dist/bot/generated/manifest.d.ts +3 -0
- package/dist/bot/generated/manifest.d.ts.map +1 -0
- package/dist/bot/generated/manifest.js +2614 -0
- package/dist/bot/generated/manifest.js.map +1 -0
- package/dist/bot/generated/schemas.d.ts +803 -0
- package/dist/bot/generated/schemas.d.ts.map +1 -0
- package/dist/bot/generated/schemas.js +3052 -0
- package/dist/bot/generated/schemas.js.map +1 -0
- package/dist/bot/generated/types.d.ts +3439 -0
- package/dist/bot/generated/types.d.ts.map +1 -0
- package/dist/bot/generated/types.js +5 -0
- package/dist/bot/generated/types.js.map +1 -0
- package/dist/bot/graph.d.ts +53 -0
- package/dist/bot/graph.d.ts.map +1 -0
- package/dist/bot/graph.js +141 -0
- package/dist/bot/graph.js.map +1 -0
- package/dist/bot/messaging.d.ts +30 -0
- package/dist/bot/messaging.d.ts.map +1 -0
- package/dist/bot/messaging.js +124 -0
- package/dist/bot/messaging.js.map +1 -0
- package/dist/bot/mime.d.ts +3 -0
- package/dist/bot/mime.d.ts.map +1 -0
- package/dist/bot/mime.js +20 -0
- package/dist/bot/mime.js.map +1 -0
- package/dist/bot/webhook.d.ts +13 -0
- package/dist/bot/webhook.d.ts.map +1 -0
- package/dist/bot/webhook.js +148 -0
- package/dist/bot/webhook.js.map +1 -0
- package/dist/commands/bot-templates.d.ts +9 -0
- package/dist/commands/bot-templates.d.ts.map +1 -0
- package/dist/commands/bot-templates.js +141 -0
- package/dist/commands/bot-templates.js.map +1 -0
- package/dist/commands/bot.d.ts +14 -0
- package/dist/commands/bot.d.ts.map +1 -0
- package/dist/commands/bot.js +208 -0
- package/dist/commands/bot.js.map +1 -0
- package/dist/commands/session.d.ts +0 -44
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +15 -141
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +9 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/update.d.ts +2 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/diagnose.d.ts +6 -41
- package/dist/diagnose.d.ts.map +1 -1
- package/dist/diagnose.js.map +1 -1
- package/dist/engine/events.d.ts +1 -1
- package/dist/engine/events.d.ts.map +1 -1
- package/dist/engine/events.js.map +1 -1
- package/dist/engine/go-engine.d.ts.map +1 -1
- package/dist/engine/go-engine.js +2 -0
- package/dist/engine/go-engine.js.map +1 -1
- package/dist/messenger.d.ts +4 -1
- package/dist/messenger.d.ts.map +1 -1
- package/dist/messenger.js +5 -3
- package/dist/messenger.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +7 -1
- package/dist/program.js.map +1 -1
- package/dist/session.d.ts +56 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +136 -0
- package/dist/session.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +16 -11
- package/skills/whatsapp-cli/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -130,6 +130,8 @@ More: [the MCP server](https://github.com/WireCatLabs/whatsapp-cli/blob/main/doc
|
|
|
130
130
|
|
|
131
131
|
- **Your own account, as a linked device.** `wa` links the way WhatsApp Web does. It sees your chats, groups and
|
|
132
132
|
contacts, and speaks as you, not as a business account or a bot.
|
|
133
|
+
- **A business number too, when you have one.** `wa <profile> bot` speaks for a WhatsApp Business number on Meta's
|
|
134
|
+
Cloud API: send, templates, and messages received by webhook through your tunnel ([bot](docs/bot.md)).
|
|
133
135
|
- **Local-first search.** Everything received is kept on your computer. Every read and search answers from there and
|
|
134
136
|
never connects.
|
|
135
137
|
- **Made for agents.** One operation per call, the same JSON shape every time with `--json`, a fixed exit code for
|
|
@@ -357,6 +359,7 @@ Every page is in [`docs/`](https://github.com/WireCatLabs/whatsapp-cli/blob/main
|
|
|
357
359
|
| [people](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/people.md) | One person: what the store holds about them, your own names and notes |
|
|
358
360
|
| [mcp](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/mcp.md) | How do I connect Claude Desktop, Cursor or another client without a terminal? |
|
|
359
361
|
| [remote](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/remote.md) | ChatGPT or Claude in the browser, through a login and a tunnel |
|
|
362
|
+
| [bot](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/bot.md) | A WhatsApp Business number on Meta's Cloud API: setup, sending, templates, receiving by webhook |
|
|
360
363
|
| [recipes](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/recipes.md) | What can an agent do for me every day, and how do I run it on a schedule? |
|
|
361
364
|
| [commands](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/commands.md) | Every command, option and exit code — **generated** from the program |
|
|
362
365
|
| [configuration](https://github.com/WireCatLabs/whatsapp-cli/blob/main/docs/configuration.md) | How do I configure common behaviour? |
|
|
@@ -9,5 +9,5 @@ import { type SettingsAdapter } from "./settings.js";
|
|
|
9
9
|
export type WhatsAppAdapter = MessengerCore & LiveUpdates & PassiveUpdates & PushedHistory & Pick<MessageEditing, "edit" | "delete" | "forward"> & Pick<MessageMedia, "download"> & MessageReactions & MessageStars & ReadState & Pick<ServerReads, "history"> & MarkdownFormatting & PollAdapter & GroupAdapter & PrivacyAdapter & MessagePins & SettingsAdapter;
|
|
10
10
|
export declare const whatsAppAdapter: (engine: WhatsAppEngine, stored?: StoredMessages, words?: Words,
|
|
11
11
|
/** Where a skipped pushed event is said — a warning, so `--quiet` drops it. The diagnostic stream if not given. */
|
|
12
|
-
warn?: (message: string) => void) => WhatsAppAdapter;
|
|
12
|
+
warn?: (message: string) => void, now?: () => number) => WhatsAppAdapter;
|
|
13
13
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,kBAAkB,EAIxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,SAAS,EACT,WAAW,EACX,cAAc,EACf,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAsC,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE/F,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAGxC,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,aAAa,CAAA;AAI7D,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,cAAc,CAAA;AAElE,OAAO,EAAuB,KAAK,eAAe,EAAkC,MAAM,eAAe,CAAA;AAEzG,MAAM,MAAM,eAAe,GAAG,aAAa,GACzC,WAAW,GACX,cAAc,GACd,aAAa,GACb,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,GACnD,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAC9B,gBAAgB,GAChB,YAAY,GACZ,SAAS,GACT,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,GAC5B,kBAAkB,GAClB,WAAW,GACX,YAAY,GACZ,cAAc,GACd,WAAW,GACX,eAAe,CAAA;AAoCjB,eAAO,MAAM,eAAe,WAClB,cAAc,WACd,cAAc,UACf,KAAK;AACZ,mHAAmH;OAC7G,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,QAC1B,MAAM,MAAM,KAChB,eA6KF,CAAA"}
|
package/dist/adapter/adapter.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { randomBytes } from "node:crypto";
|
|
2
|
-
import { createReadStream } from "node:fs";
|
|
3
|
-
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
4
|
-
import { tmpdir } from "node:os";
|
|
5
|
-
import { resolve as absolute, extname, join } from "node:path";
|
|
6
2
|
import { CliError } from "@wirecat/cli-base";
|
|
7
3
|
import { bareCheck, parseMarkdownSpans, pickChat, } from "@wirecat/cli-core";
|
|
8
|
-
import { EngineError, OLDER_MAX
|
|
9
|
-
import { channelAdapter, channelHistory, channelWrites, isChannel
|
|
4
|
+
import { EngineError, OLDER_MAX } from "../engine/contract.js";
|
|
5
|
+
import { channelAdapter, channelHistory, channelWrites, isChannel } from "./channels.js";
|
|
10
6
|
import { fromEngine } from "./errors.js";
|
|
11
7
|
import { toWhatsApp } from "./format-markdown.js";
|
|
12
8
|
import { groupAdapter } from "./groups.js";
|
|
13
|
-
import {
|
|
9
|
+
import { listenAdapter } from "./listen.js";
|
|
10
|
+
import { toAccount, toChat, toMember, toMessage } from "./map.js";
|
|
14
11
|
import { pinAdapter } from "./pins.js";
|
|
15
|
-
import { pollAdapter
|
|
12
|
+
import { pollAdapter } from "./polls.js";
|
|
16
13
|
import { privacyAdapter } from "./privacy.js";
|
|
14
|
+
import { onDisk, sendAdapter } from "./sends.js";
|
|
17
15
|
import { AFTER_EVERY_MESSAGE, settingsAdapter, settingsWrite } from "./settings.js";
|
|
18
16
|
// WhatsApp addresses a message by its sender and by whether it is the account's own, and the engine keeps no
|
|
19
17
|
// messages, so an edit, a deletion, a reaction or a read receipt looks the message up in cli-core's store first.
|
|
@@ -26,8 +24,6 @@ const NOTHING_STORED = {
|
|
|
26
24
|
};
|
|
27
25
|
// whatsmeow's EditWindow: WhatsApp clients ignore an edit that comes later.
|
|
28
26
|
const EDIT_WINDOW_MS = 20 * 60 * 1000;
|
|
29
|
-
/** Options WhatsApp has no way to honour; `noPreview` is always true, since nothing here builds link previews. */
|
|
30
|
-
const REFUSED = ["threadId", "markup", "sticker", "spoiler", "captionAbove"];
|
|
31
27
|
const translated = async (work) => {
|
|
32
28
|
try {
|
|
33
29
|
return await work;
|
|
@@ -35,117 +31,14 @@ const translated = async (work) => {
|
|
|
35
31
|
catch (error) {
|
|
36
32
|
if (error instanceof EngineError)
|
|
37
33
|
throw fromEngine(error);
|
|
38
|
-
|
|
34
|
+
if (error instanceof CliError)
|
|
35
|
+
throw error;
|
|
36
|
+
const failure = new CliError("provider_error", "WhatsApp engine request failed");
|
|
37
|
+
Object.defineProperty(failure, "cause", { value: error });
|
|
38
|
+
throw failure;
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
const hit = (message) => ({ ...message, chatTitle: null });
|
|
42
41
|
const PHONE_CHAT = /^\d+@s\.whatsapp\.net$/;
|
|
43
|
-
const ENDED = {
|
|
44
|
-
logged_out: (words) => fromEngine(new EngineError("authentication_error", `WhatsApp logged this device out — log in again with ${words("session.start")}`, "device.logged-out")),
|
|
45
|
-
replaced: () => fromEngine(new EngineError("provider_unavailable", "another process took over this WhatsApp login; only one may hold it", "device.replaced")),
|
|
46
|
-
banned: (_words, until) => fromEngine(new EngineError("permission_error", "WhatsApp has banned or restricted this account; see the phone", "account.banned", until)),
|
|
47
|
-
outdated: () => fromEngine(new EngineError("provider_unavailable", "WhatsApp no longer accepts this version of wa; update it", "client.outdated")),
|
|
48
|
-
stopped: () => fromEngine(new EngineError("provider_unavailable", "the WhatsApp engine stopped unexpectedly", "engine.stopped")),
|
|
49
|
-
};
|
|
50
|
-
const ENDING = new Set([
|
|
51
|
-
...Object.values(ENDED).map((end) => end(bareCheck).details.reason),
|
|
52
|
-
"engine.stopped-mid-write",
|
|
53
|
-
]);
|
|
54
|
-
/** A failure that means the connection is gone, not that one event was odd: it ends the listening. */
|
|
55
|
-
const ends = (error) => (error instanceof EngineError && ENDING.has(error.reason)) ||
|
|
56
|
-
(error instanceof CliError && ENDING.has(error.details.reason));
|
|
57
|
-
/**
|
|
58
|
-
* Hands each event on until `signal` aborts; a connection WhatsApp ended rejects with why, unless `expected` says this
|
|
59
|
-
* process asked for that end. Events are handled one at a time in arrival order. One whose handling fails is skipped
|
|
60
|
-
* and the next still runs: a stalled queue would keep every later push out of the store until a restart. The first skip
|
|
61
|
-
* is said on `warn` at once, kind and code only, never its content; `drained` settles when the handling caught up and
|
|
62
|
-
* then says how many were skipped if there were more.
|
|
63
|
-
*/
|
|
64
|
-
const listening = (engine, kinds, signal, words, warn, handle, expected = () => false) => {
|
|
65
|
-
let stop = () => { };
|
|
66
|
-
let queue = Promise.resolve();
|
|
67
|
-
let skipped = 0;
|
|
68
|
-
let fail = () => { };
|
|
69
|
-
const run = (kind, work) => {
|
|
70
|
-
queue = queue.then(work).catch((error) => fail(kind, error));
|
|
71
|
-
};
|
|
72
|
-
const done = new Promise((resolve, reject) => {
|
|
73
|
-
fail = (kind, error) => {
|
|
74
|
-
if (ends(error))
|
|
75
|
-
return reject(error instanceof EngineError ? fromEngine(error) : error);
|
|
76
|
-
skipped += 1;
|
|
77
|
-
if (skipped > 1)
|
|
78
|
-
return;
|
|
79
|
-
const code = error instanceof CliError ? error.code : error instanceof Error ? error.name : "error";
|
|
80
|
-
warn(`a pushed ${kind} event could not be handled and was skipped (${code}); the ones after it go on, ` +
|
|
81
|
-
"and any more skips are counted when wa stops listening");
|
|
82
|
-
};
|
|
83
|
-
const unlisten = engine.listen(kinds, (event) => {
|
|
84
|
-
if (event.event === "connection" && expected(event.state))
|
|
85
|
-
return resolve();
|
|
86
|
-
const ended = event.event === "connection" ? ENDED[event.state]?.(words, event.until) : undefined;
|
|
87
|
-
if (ended)
|
|
88
|
-
reject(ended);
|
|
89
|
-
else
|
|
90
|
-
run(event.event, () => handle(event));
|
|
91
|
-
});
|
|
92
|
-
const aborted = () => resolve();
|
|
93
|
-
signal.addEventListener("abort", aborted, { once: true });
|
|
94
|
-
stop = () => {
|
|
95
|
-
unlisten();
|
|
96
|
-
signal.removeEventListener("abort", aborted);
|
|
97
|
-
};
|
|
98
|
-
if (signal.aborted)
|
|
99
|
-
resolve();
|
|
100
|
-
});
|
|
101
|
-
// The caller may still be awaiting the engine's readiness when an ended connection rejects `done`.
|
|
102
|
-
done.catch(() => { });
|
|
103
|
-
const drained = () => queue.then(() => {
|
|
104
|
-
if (skipped > 1)
|
|
105
|
-
warn(`${skipped} pushed events could not be handled and were skipped in all`);
|
|
106
|
-
});
|
|
107
|
-
return { done, stop, drained, run };
|
|
108
|
-
};
|
|
109
|
-
/** Re-keys that arrive this close together go to cli-core as one batch, up to this many. */
|
|
110
|
-
const REKEY_WINDOW_MS = 100;
|
|
111
|
-
const REKEY_BATCH = 500;
|
|
112
|
-
const VIDEO = new Set([".mp4", ".m4v", ".mov"]);
|
|
113
|
-
/** As tg sends them: a photo as a photo, a voice as a voice, a video as a video unless `--as-file`, the rest as files. */
|
|
114
|
-
const uploadKind = ({ kind, name, asFile }) => kind === "photo" || kind === "voice" ? kind : !asFile && VIDEO.has(extname(name).toLowerCase()) ? "video" : "document";
|
|
115
|
-
/** A folder only this user can read, gone when `work` ends: the engine writes a download into it, or reads bytes made in memory. */
|
|
116
|
-
const inPrivateFolder = async (work) => {
|
|
117
|
-
const folder = await mkdtemp(join(tmpdir(), "wa-media-"));
|
|
118
|
-
try {
|
|
119
|
-
return await work(folder);
|
|
120
|
-
}
|
|
121
|
-
finally {
|
|
122
|
-
await rm(folder, { recursive: true, force: true });
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
const onDisk = async (source, work) => {
|
|
126
|
-
if (source.kind === "file")
|
|
127
|
-
return work(absolute(source.path));
|
|
128
|
-
return inPrivateFolder(async (folder) => {
|
|
129
|
-
const path = join(folder, "upload");
|
|
130
|
-
await writeFile(path, source.bytes, { mode: 0o600, flag: "wx" });
|
|
131
|
-
return work(path);
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
const allOnDisk = async (files, work, placed = []) => {
|
|
135
|
-
const [next, ...rest] = files;
|
|
136
|
-
if (!next)
|
|
137
|
-
return work(placed);
|
|
138
|
-
return onDisk(next.upload.source, (path) => allOnDisk(rest, work, [...placed, { ...next, path }]));
|
|
139
|
-
};
|
|
140
|
-
const quoted = (message) => ({
|
|
141
|
-
id: message.id,
|
|
142
|
-
senderId: message.senderId,
|
|
143
|
-
senderName: message.senderName,
|
|
144
|
-
timestamp: message.timestamp,
|
|
145
|
-
text: message.text,
|
|
146
|
-
attachments: message.attachments,
|
|
147
|
-
outgoing: message.outgoing ?? null,
|
|
148
|
-
});
|
|
149
42
|
const keyOf = (chatId, message) => ({
|
|
150
43
|
chat: chatId,
|
|
151
44
|
id: message.id,
|
|
@@ -154,7 +47,7 @@ const keyOf = (chatId, message) => ({
|
|
|
154
47
|
});
|
|
155
48
|
export const whatsAppAdapter = (engine, stored = NOTHING_STORED, words = bareCheck,
|
|
156
49
|
/** Where a skipped pushed event is said — a warning, so `--quiet` drops it. The diagnostic stream if not given. */
|
|
157
|
-
warn = (line) => process.stderr.write(`${line}\n`)) => {
|
|
50
|
+
warn = (line) => process.stderr.write(`${line}\n`), now = Date.now) => {
|
|
158
51
|
// A guessed key would make WhatsApp drop the change without a word, so a message the store lacks is refused.
|
|
159
52
|
const held = async (chatId, messageId) => {
|
|
160
53
|
const message = await stored.message(chatId, messageId);
|
|
@@ -162,178 +55,11 @@ warn = (line) => process.stderr.write(`${line}\n`)) => {
|
|
|
162
55
|
throw new CliError("not_found", `that message is not in the local store, and WhatsApp needs its sender to address it; ${words("serve")} keeps the store filled`);
|
|
163
56
|
return message;
|
|
164
57
|
};
|
|
165
|
-
// Set by `session end`: WhatsApp then ends the connection as logged out, which is the answer, not a failure.
|
|
166
|
-
let loggingOut = false;
|
|
167
|
-
// Held re-keys of a running `feed`: a live event may name the new id, and must not reach cli-core before them (§5).
|
|
168
|
-
const holding = new Set();
|
|
169
|
-
const handingOn = (onEvent, signal, expected) => {
|
|
170
|
-
const handed = async (event) => {
|
|
171
|
-
for (const handOn of holding)
|
|
172
|
-
handOn();
|
|
173
|
-
if (event.event === "message")
|
|
174
|
-
onEvent({ event: "message", message: hit(toMessage(event.message)) });
|
|
175
|
-
else if (event.event === "edit")
|
|
176
|
-
onEvent({ event: "edit", message: hit(toMessage(event.message)) });
|
|
177
|
-
else if (event.event === "delete")
|
|
178
|
-
onEvent({
|
|
179
|
-
event: "delete",
|
|
180
|
-
chatId: event.chat,
|
|
181
|
-
chatTitle: null,
|
|
182
|
-
messageId: event.id,
|
|
183
|
-
});
|
|
184
|
-
else if (event.event === "star")
|
|
185
|
-
onEvent({
|
|
186
|
-
event: "star",
|
|
187
|
-
chatId: event.chat,
|
|
188
|
-
chatTitle: null,
|
|
189
|
-
messageId: event.id,
|
|
190
|
-
starred: event.starred,
|
|
191
|
-
});
|
|
192
|
-
else if (event.event === "reaction")
|
|
193
|
-
onEvent({
|
|
194
|
-
event: "person_reaction",
|
|
195
|
-
chatId: event.reaction.chat,
|
|
196
|
-
chatTitle: null,
|
|
197
|
-
messageId: event.reaction.message,
|
|
198
|
-
reaction: toPersonReaction(event.reaction),
|
|
199
|
-
});
|
|
200
|
-
else if (event.event === "receipt")
|
|
201
|
-
onEvent({
|
|
202
|
-
event: "delivery",
|
|
203
|
-
chatId: event.receipt.chat,
|
|
204
|
-
chatTitle: null,
|
|
205
|
-
messageId: event.receipt.id,
|
|
206
|
-
delivery: event.receipt.delivery,
|
|
207
|
-
at: event.receipt.at,
|
|
208
|
-
});
|
|
209
|
-
else if (event.event === "vote") {
|
|
210
|
-
const vote = await toVoteEvent(event.vote, stored);
|
|
211
|
-
if (vote)
|
|
212
|
-
onEvent(vote);
|
|
213
|
-
}
|
|
214
|
-
else if (event.event === "chat_event")
|
|
215
|
-
onEvent({
|
|
216
|
-
event: "chat_event",
|
|
217
|
-
chatId: event.change.chat,
|
|
218
|
-
chatTitle: null,
|
|
219
|
-
change: toChatEvent(event.change),
|
|
220
|
-
});
|
|
221
|
-
};
|
|
222
|
-
// In arrival order: a vote reads its poll from the store, and nothing after it may overtake it.
|
|
223
|
-
const live = listening(engine, ["message", "edit", "delete", "vote", "reaction", "star", "receipt", "chat_event", "connection"], signal, words, warn, handed, expected);
|
|
224
|
-
return {
|
|
225
|
-
done: live.done,
|
|
226
|
-
stop: async () => {
|
|
227
|
-
live.stop();
|
|
228
|
-
await live.drained();
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
};
|
|
232
|
-
// A push after a re-link carries the path the file had then, and the store may hold the one the phone uploaded
|
|
233
|
-
// again. cli-core keeps a stored ref only when the pushed file has none, so the pushed one is left off when it names
|
|
234
|
-
// the same file; another file keeps its own. Only a message with a ref costs a store read; one that fails hands the
|
|
235
|
-
// message on as pushed, never loses it.
|
|
236
|
-
const withoutKeptRefs = async (message) => {
|
|
237
|
-
if (!message.attachments.some((file) => file.providerRef))
|
|
238
|
-
return message;
|
|
239
|
-
const kept = await stored.message(message.chatId, message.id).catch(() => undefined);
|
|
240
|
-
if (!kept?.attachments.some((file) => file.providerRef))
|
|
241
|
-
return message;
|
|
242
|
-
return {
|
|
243
|
-
...message,
|
|
244
|
-
attachments: message.attachments.map((file, position) => {
|
|
245
|
-
if (!sameFile(file.providerRef, kept.attachments[position]?.providerRef))
|
|
246
|
-
return file;
|
|
247
|
-
const { providerRef: _pushed, ...rest } = file;
|
|
248
|
-
return rest;
|
|
249
|
-
}),
|
|
250
|
-
};
|
|
251
|
-
};
|
|
252
|
-
const pushing = async (onBatch, signal, expected) => {
|
|
253
|
-
// cli-core saves each batch's re-keys apart, so thousands at a serve's start must not come one batch each; a push
|
|
254
|
-
// hands on the held ones before its own, as they arrived.
|
|
255
|
-
let held = [];
|
|
256
|
-
let due;
|
|
257
|
-
const flush = () => {
|
|
258
|
-
clearTimeout(due);
|
|
259
|
-
due = undefined;
|
|
260
|
-
if (held.length === 0)
|
|
261
|
-
return;
|
|
262
|
-
const rekeys = held;
|
|
263
|
-
held = [];
|
|
264
|
-
onBatch({ rekeys });
|
|
265
|
-
};
|
|
266
|
-
// In arrival order: a push waits for its store reads, and a re-key after it must not overtake it.
|
|
267
|
-
const handed = async (event) => {
|
|
268
|
-
if (event.event === "rekey") {
|
|
269
|
-
held.push({ from: event.from, to: event.to });
|
|
270
|
-
if (held.length >= REKEY_BATCH)
|
|
271
|
-
flush();
|
|
272
|
-
else
|
|
273
|
-
due ??= setTimeout(() => pushes.run("rekey", flush), REKEY_WINDOW_MS);
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
|
-
if (event.event !== "history")
|
|
277
|
-
return;
|
|
278
|
-
flush();
|
|
279
|
-
const { rekeys, chats, contacts, messages, votes, reactions, events } = event.history;
|
|
280
|
-
onBatch({
|
|
281
|
-
rekeys: rekeys ?? [],
|
|
282
|
-
chats: chats.map(toChatUpdate),
|
|
283
|
-
people: contacts.map(toMember),
|
|
284
|
-
messages: await Promise.all(messages.map((message) => withoutKeptRefs(toMessage(message)))),
|
|
285
|
-
votes: votes.flatMap((vote) => toHistoryVote(vote) ?? []),
|
|
286
|
-
reactions: (reactions ?? []).map((reaction) => ({
|
|
287
|
-
chatId: reaction.chat,
|
|
288
|
-
messageId: reaction.message,
|
|
289
|
-
reaction: toPersonReaction(reaction),
|
|
290
|
-
})),
|
|
291
|
-
events: (events ?? []).map((change) => ({ chatId: change.chat, change: toChatEvent(change) })),
|
|
292
|
-
});
|
|
293
|
-
};
|
|
294
|
-
const pushes = listening(engine, ["history", "rekey", "connection"], signal, words, warn, handed, expected);
|
|
295
|
-
const handOn = () => {
|
|
296
|
-
try {
|
|
297
|
-
flush();
|
|
298
|
-
}
|
|
299
|
-
catch (error) {
|
|
300
|
-
pushes.run("rekey", () => Promise.reject(error));
|
|
301
|
-
}
|
|
302
|
-
};
|
|
303
|
-
holding.add(handOn);
|
|
304
|
-
try {
|
|
305
|
-
await pushes.done;
|
|
306
|
-
}
|
|
307
|
-
finally {
|
|
308
|
-
holding.delete(handOn);
|
|
309
|
-
pushes.stop();
|
|
310
|
-
pushes.run("rekey", flush);
|
|
311
|
-
await pushes.drained();
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
const ownLogout = (state) => state === "logged_out" && loggingOut;
|
|
315
58
|
// A deletion for the account alone, a star and a chat marked read are changes to its synced settings, not messages.
|
|
316
59
|
const synced = settingsWrite(translated, words);
|
|
317
|
-
// The phone's new upload replaces the whole stored ref on `file`, so cli-core saves it and a later download or a
|
|
318
|
-
// forward uses the live path; a second read of the same file in this run uses it too.
|
|
319
|
-
async function* fetched(file, attachment, key) {
|
|
320
|
-
const folder = await mkdtemp(join(tmpdir(), "wa-media-"));
|
|
321
|
-
try {
|
|
322
|
-
const path = join(folder, "file");
|
|
323
|
-
const renewed = await translated(engine.download(attachment, path, key));
|
|
324
|
-
if (renewed) {
|
|
325
|
-
// The old URL names the dead copy; without one, the engine builds it from the new path.
|
|
326
|
-
const { url: _dead, ...kept } = attachment.ref;
|
|
327
|
-
attachment.ref = { ...kept, ...renewed };
|
|
328
|
-
file.providerRef = attachment.ref;
|
|
329
|
-
}
|
|
330
|
-
yield* createReadStream(path);
|
|
331
|
-
}
|
|
332
|
-
finally {
|
|
333
|
-
await rm(folder, { recursive: true, force: true });
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
60
|
const core = {
|
|
61
|
+
...sendAdapter({ engine, stored, held, keyOf, translated, resolve: (chat) => core.resolve(chat) }),
|
|
62
|
+
...listenAdapter({ engine, stored, words, warn, translated }),
|
|
337
63
|
formatMarkdown: async (text) => parseMarkdownSpans(text),
|
|
338
64
|
self: () => engine.self(),
|
|
339
65
|
newSendId: () => `3EB0${randomBytes(9).toString("hex").toUpperCase()}`,
|
|
@@ -370,99 +96,13 @@ warn = (line) => process.stderr.write(`${line}\n`)) => {
|
|
|
370
96
|
const card = await translated(engine.chat(jid));
|
|
371
97
|
return { ...toChat(card.chat), members: card.members?.map(toMember) ?? null };
|
|
372
98
|
},
|
|
373
|
-
send: async (chatId, text, options) => {
|
|
374
|
-
const refused = REFUSED.filter((option) => options[option] !== undefined && options[option] !== false);
|
|
375
|
-
if (refused.length > 0)
|
|
376
|
-
throw new CliError("validation_error", `WhatsApp cannot send with ${refused.join(", ")}`);
|
|
377
|
-
const uploads = options.attachments ?? [];
|
|
378
|
-
const [upload] = uploads;
|
|
379
|
-
const files = uploads.map((one) => ({ upload: one, kind: uploadKind(one) }));
|
|
380
|
-
if (files.length > 1 && files.some(({ kind }) => kind !== "photo" && kind !== "video"))
|
|
381
|
-
throw new CliError("validation_error", "a WhatsApp album holds photos and videos only; send a document in a message of its own");
|
|
382
|
-
if (upload?.kind === "voice" && text.trim() !== "")
|
|
383
|
-
throw new CliError("validation_error", "WhatsApp sends a voice message alone, without text");
|
|
384
|
-
const { stickerFile } = options;
|
|
385
|
-
// Untried on a live channel, where a post carries a URL and no key.
|
|
386
|
-
if (stickerFile && isChannel(chatId))
|
|
387
|
-
throw new CliError("validation_error", "wa does not post stickers to a WhatsApp channel yet");
|
|
388
|
-
if (isChannel(chatId))
|
|
389
|
-
await refuseChannelPost(engine, translated, chatId, {
|
|
390
|
-
files: files.length,
|
|
391
|
-
reply: options.replyTo !== undefined,
|
|
392
|
-
});
|
|
393
|
-
// A reply to a message the store lacks still goes, with its id alone.
|
|
394
|
-
const answered = options.replyTo === undefined ? undefined : await stored.message(chatId, options.replyTo);
|
|
395
|
-
const request = {
|
|
396
|
-
chat: chatId,
|
|
397
|
-
text: options.formatting ? toWhatsApp(text, options.formatting) : text,
|
|
398
|
-
id: options.sendId,
|
|
399
|
-
...(options.replyTo === undefined ? {} : { replyTo: options.replyTo }),
|
|
400
|
-
...(answered
|
|
401
|
-
? { quoted: { fromMe: answered.outgoing === true, sender: answered.senderId, text: answered.text } }
|
|
402
|
-
: {}),
|
|
403
|
-
};
|
|
404
|
-
const message = await translated(files.length > 1
|
|
405
|
-
? allOnDisk(files, (placed) => engine.sendAlbum({
|
|
406
|
-
...request,
|
|
407
|
-
files: placed.map(({ upload, kind, path }) => ({ kind, path, name: upload.name })),
|
|
408
|
-
}))
|
|
409
|
-
: upload
|
|
410
|
-
? onDisk(upload.source, (path) => engine.sendMedia({ ...request, file: { kind: uploadKind(upload), path, name: upload.name } }))
|
|
411
|
-
: stickerFile
|
|
412
|
-
? onDisk(stickerFile.source, (path) => engine.sendMedia({ ...request, file: { kind: "sticker", path, name: stickerFile.name } }))
|
|
413
|
-
: engine.send(request));
|
|
414
|
-
return { message: toMessage(message), sendId: options.sendId };
|
|
415
|
-
},
|
|
416
|
-
forward: async (fromChatId, messageId, toChatId, { sendId, threadId }) => {
|
|
417
|
-
if (threadId !== undefined)
|
|
418
|
-
throw new CliError("validation_error", "WhatsApp forwards without a topic");
|
|
419
|
-
const original = await held(fromChatId, messageId);
|
|
420
|
-
const attachments = original.attachments.map(toWaAttachment);
|
|
421
|
-
const [attachment] = attachments;
|
|
422
|
-
if (attachments.length > 1 || (attachments.length === 1 && !attachment?.ref))
|
|
423
|
-
throw new CliError("validation_error", "the local store does not hold this message's content whole, so it cannot be forwarded; forward it on the phone");
|
|
424
|
-
if (!attachment && original.text === "")
|
|
425
|
-
throw new CliError("validation_error", "that message has nothing to forward");
|
|
426
|
-
// A channel's files carry no key, and a chat's recipient cannot open a file without one.
|
|
427
|
-
if (isChannel(fromChatId) && attachment?.ref && "directPath" in attachment.ref)
|
|
428
|
-
throw new CliError("validation_error", "a WhatsApp channel's file is not encrypted, so a forward would arrive as a file that does not open; " +
|
|
429
|
-
"save it on the phone and send it as a new file", { reason: "media.channel-file-forward" });
|
|
430
|
-
const copy = await translated(engine.forward({ chat: toChatId, id: sendId, text: original.text, attachment: attachment ?? null }));
|
|
431
|
-
return { ...toMessage(copy), forwardedFrom: quoted(original) };
|
|
432
|
-
},
|
|
433
|
-
// From the keys in the store: WhatsApp has no request for an old message. A file that is not one (a place, a
|
|
434
|
-
// contact card) or that the store has no keys for is named in `skipped`. The message's key goes along, so the
|
|
435
|
-
// engine can ask the phone for a file WhatsApp no longer keeps.
|
|
436
|
-
download: async (chat, messageId) => {
|
|
437
|
-
const { id: chatId } = await core.resolve(chat);
|
|
438
|
-
const message = await held(chatId, messageId);
|
|
439
|
-
const files = [];
|
|
440
|
-
const skipped = [];
|
|
441
|
-
message.attachments.forEach((stored, position) => {
|
|
442
|
-
const attachment = toWaAttachment(stored);
|
|
443
|
-
if (!isFile(attachment)) {
|
|
444
|
-
skipped.push(stored.kind);
|
|
445
|
-
return;
|
|
446
|
-
}
|
|
447
|
-
const file = {
|
|
448
|
-
kind: attachment.kind,
|
|
449
|
-
...(attachment.name === undefined ? {} : { name: attachment.name }),
|
|
450
|
-
...(attachment.mime === undefined ? {} : { mime: attachment.mime }),
|
|
451
|
-
...(attachment.size === undefined ? {} : { size: attachment.size }),
|
|
452
|
-
position,
|
|
453
|
-
bytes: () => fetched(file, attachment, keyOf(chatId, message)),
|
|
454
|
-
};
|
|
455
|
-
files.push(file);
|
|
456
|
-
});
|
|
457
|
-
return { files, skipped };
|
|
458
|
-
},
|
|
459
99
|
edit: async (chatId, messageId, text, { markup, formatting }) => {
|
|
460
100
|
if (markup !== undefined)
|
|
461
101
|
throw new CliError("validation_error", "WhatsApp cannot edit with markup");
|
|
462
102
|
const original = await held(chatId, messageId);
|
|
463
103
|
if (!original.outgoing)
|
|
464
104
|
throw new CliError("validation_error", "only your own messages can be edited");
|
|
465
|
-
if (
|
|
105
|
+
if (now() - Date.parse(original.timestamp) > EDIT_WINDOW_MS)
|
|
466
106
|
throw new CliError("validation_error", "WhatsApp takes an edit only within 20 minutes of sending");
|
|
467
107
|
const edited = await translated(engine.edit(keyOf(chatId, original), formatting ? toWhatsApp(text, formatting) : text));
|
|
468
108
|
return { ...original, text: edited.text, editedAt: edited.editedAt };
|
|
@@ -524,37 +164,7 @@ warn = (line) => process.stderr.write(`${line}\n`)) => {
|
|
|
524
164
|
const items = older.messages.map(toMessage).sort((one, other) => one.timestamp.localeCompare(other.timestamp));
|
|
525
165
|
return { items, hasMore: older.more };
|
|
526
166
|
},
|
|
527
|
-
logout: () => {
|
|
528
|
-
loggingOut = true;
|
|
529
|
-
return translated(engine.logout());
|
|
530
|
-
},
|
|
531
167
|
close: () => engine.close(),
|
|
532
|
-
watch: async (onEvent, signal, onReady) => {
|
|
533
|
-
const live = handingOn(onEvent, signal);
|
|
534
|
-
try {
|
|
535
|
-
await translated(engine.ready(signal));
|
|
536
|
-
if (!signal.aborted)
|
|
537
|
-
onReady?.();
|
|
538
|
-
await live.done;
|
|
539
|
-
}
|
|
540
|
-
finally {
|
|
541
|
-
await live.stop();
|
|
542
|
-
}
|
|
543
|
-
},
|
|
544
|
-
// What a one-shot connection receives: WhatsApp hands a queued message to a linked device once, so it is saved
|
|
545
|
-
// here or lost. Never connects; the command's own request does that.
|
|
546
|
-
listen: async (onEvent, signal) => {
|
|
547
|
-
const live = handingOn(onEvent, signal, ownLogout);
|
|
548
|
-
try {
|
|
549
|
-
await live.done;
|
|
550
|
-
}
|
|
551
|
-
finally {
|
|
552
|
-
await live.stop();
|
|
553
|
-
}
|
|
554
|
-
},
|
|
555
|
-
// The history a one-shot connection is pushed, which WhatsApp likewise sends once. Never connects.
|
|
556
|
-
listenHistory: (onBatch, signal) => pushing(onBatch, signal, ownLogout),
|
|
557
|
-
feed: (onBatch, signal) => pushing(onBatch, signal),
|
|
558
168
|
// Only phone-form one-to-one chats can need a re-key, and in one request: cli-core waits at most 5 s for it.
|
|
559
169
|
storedChats: async (ids, recipients = []) => {
|
|
560
170
|
const phones = ids.filter((id) => PHONE_CHAT.test(id));
|
|
@@ -563,7 +173,7 @@ warn = (line) => process.stderr.write(`${line}\n`)) => {
|
|
|
563
173
|
await translated(engine.storedChats(phones, typed.length > 0 ? typed : undefined));
|
|
564
174
|
},
|
|
565
175
|
};
|
|
566
|
-
const polls = pollAdapter({ engine, stored, held, keyOf, translated });
|
|
176
|
+
const polls = pollAdapter({ engine, stored, held, keyOf, translated, now });
|
|
567
177
|
const groups = groupAdapter({
|
|
568
178
|
engine,
|
|
569
179
|
resolve: core.resolve,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EACL,SAAS,EAIT,kBAAkB,EAClB,QAAQ,GACT,MAAM,mBAAmB,CAAA;AAe1B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAmC,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAExF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAqB,YAAY,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AACtC,OAAO,EAAoB,WAAW,EAAE,MAAM,YAAY,CAAA;AAC1D,OAAO,EAAuB,cAAc,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAwB,eAAe,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAmBzG,6GAA6G;AAC7G,iHAAiH;AACjH,MAAM,cAAc,GAAmB;IACrC,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;IAC9B,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;IACrC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;IAC7B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,KAAK;IAC1B,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE;CAC1B,CAAA;AAED,4EAA4E;AAC5E,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAErC,MAAM,UAAU,GAAG,KAAK,EAAK,IAAgB,EAAc,EAAE;IAC3D,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAA;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW;YAAE,MAAM,UAAU,CAAC,KAAK,CAAC,CAAA;QACzD,IAAI,KAAK,YAAY,QAAQ;YAAE,MAAM,KAAK,CAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,gBAAgB,EAAE,gCAAgC,CAAC,CAAA;QAChF,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;QACzD,MAAM,OAAO,CAAA;IACf,CAAC;AACH,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,wBAAwB,CAAA;AAE3C,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,OAAgB,EAAS,EAAE,CAAC,CAAC;IAC1D,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,OAAO,CAAC,EAAE;IACd,MAAM,EAAE,OAAO,CAAC,QAAQ,KAAK,IAAI;IACjC,MAAM,EAAE,OAAO,CAAC,QAAQ;CACzB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,MAAsB,EACtB,MAAM,GAAmB,cAAc,EACvC,KAAK,GAAU,SAAS;AACxB,mHAAmH;AACnH,IAAI,GAA8B,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,EAC7E,GAAG,GAAiB,IAAI,CAAC,GAAG,EACX,EAAE;IACnB,6GAA6G;IAC7G,MAAM,IAAI,GAAG,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAoB,EAAE;QACzE,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,OAAO;YACV,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,wFAAwF,KAAK,CAAC,OAAO,CAAC,yBAAyB,CAChI,CAAA;QACH,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IACD,oHAAoH;IACpH,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAE/C,MAAM,IAAI,GAGN;QACF,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClG,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC7D,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC;QAExD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE;QAEzB,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE;QAEtE,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAExD,+GAA+G;QAC/G,8FAA8F;QAC9F,OAAO,EAAE,KAAK,EAAE,KAAa,EAAiB,EAAE;YAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;gBACrB,OAAO;oBACL,EAAE,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK;oBAClF,KAAK,EAAE,IAAI;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,IAAI;oBACjB,aAAa,EAAE,IAAI;oBACnB,iBAAiB,EAAE,IAAI;iBACxB,CAAA;YACH,MAAM,SAAS,GAAG,CAAC,MAAM,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACpE,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;oBAAE,MAAM,KAAK,CAAA;gBAC7C,6GAA6G;gBAC7G,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAA;gBAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;oBAChE,MAAM,IAAI,QAAQ,CAChB,kBAAkB,EAClB,GAAG,UAAU,CAAC,MAAM,gDAAgD,KAAK,CAAC,YAAY,CAAC,aAAa,CACrG,CAAA;gBACH,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;oBAAE,MAAM,KAAK,CAAA;gBAC3C,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,+BAA+B,KAAK,CAAC,YAAY,CAAC,mCAAmC,CACtF,CAAA;YACH,CAAC;QACH,CAAC;QAED,IAAI,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC/C,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAA;QAC/E,CAAC;QAED,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE;YAC9D,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,kCAAkC,CAAC,CAAA;YACpG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC9C,IAAI,CAAC,QAAQ,CAAC,QAAQ;gBAAE,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,sCAAsC,CAAC,CAAA;YACtG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,cAAc;gBACzD,MAAM,IAAI,QAAQ,CAAC,kBAAkB,EAAE,0DAA0D,CAAC,CAAA;YACpG,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACvF,CAAA;YACD,OAAO,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAA;QACtE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YACpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;YAC5E,MAAM,IAAI,GAAa,EAAE,CAAA;YACzB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,IAAI,WAAW;wBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;;wBACnE,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;gBACpG,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;wBAAE,MAAM,KAAK,CAAA;oBAClE,uGAAuG;oBACvG,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,CAAA;oBAC7C,MAAM,IAAI,QAAQ,CAChB,KAAK,CAAC,IAAI,EACV,WAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,OAAO,CAAC,EAAE,qDAAqD,KAAK,CAAC,OAAO,EAAE,EAC7G,OAAO,CACR,CAAA;gBACH,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QAED,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC7C,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QAC/D,CAAC;QAED,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;YAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5D,CAAC;QAED,iHAAiH;QACjH,iHAAiH;QACjH,4GAA4G;QAC5G,mHAAmH;QACnH,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YACjH,IAAI,CAAC,MAAM;gBAAE,OAAM;YACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACtD,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;YAC9F,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;YAC5G,IAAI,MAAM;gBAAE,MAAM,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACtE,CAAC;QAED,kHAAkH;QAClH,+GAA+G;QAC/G,iEAAiE;QACjE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;YACzC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAC/C,IAAI,SAAS,CAAC,MAAM,CAAC;gBACnB,OAAO,UAAU,CACf,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAC/F,CAAA;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAClD,IAAI,CAAC,MAAM;gBACT,MAAM,IAAI,QAAQ,CAChB,WAAW,EACX,0GAA0G;oBACxG,oBAAoB,KAAK,CAAC,OAAO,CAAC,yBAAyB,CAC9D,CAAA;YACH,MAAM,KAAK,GAAG,MAAM,UAAU,CAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CACpG,CAAA;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAA;YAC9G,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QACvC,CAAC;QAED,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE;QAE3B,6GAA6G;QAC7G,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,EAAE;YAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACtD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBACvC,MAAM,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACtF,CAAC;KACF,CAAA;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,MAAM;QACN,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU;QACV,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3C,MAAM;KACP,CAAC,CAAA;IACF,OAAO;QACL,GAAG,IAAI;QACP,GAAG,MAAM;QACT,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACxE,GAAG,KAAK;QACR,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC;QACvC,GAAG,cAAc,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACzC,GAAG,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;QAClD,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;KACzE,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/adapter/channels.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,2EAA2E;AAC3E,eAAO,MAAM,SAAS,OAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/adapter/channels.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,2EAA2E;AAC3E,eAAO,MAAM,SAAS,OAAQ,MAAM,KAAG,OAAqC,CAAA;AAE5E,eAAO,MAAM,YAAY,QAAwE,CAAA;AAEjG,qHAAqH;AACrH,eAAO,MAAM,aAAa,YAAa,SAAS,KAAG,SAejD,CAAA;AAOF;;;GAGG;AACH,eAAO,MAAM,cAAc,WACjB,cAAc,UACd,cAAc,UACd,MAAM,qBACK;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KACpD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAcvB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,WACpB,cAAc,cACV,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,UACvC,MAAM,oBACI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,KAClD,OAAO,CAAC,IAAI,CAMd,CAAA;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAA;IACtB,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,UAAU,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;IAC/C,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,CAAA;CAC7C;AAED,iHAAiH;AACjH,eAAO,MAAM,cAAc,6CAKxB,WAAW,KAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAUlD,CAAA;AAEF,KAAK,aAAa,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,GAAG,MAAM,CAAC,CAAA;AAKnH;;;GAGG;AACH,eAAO,MAAM,aAAa,wDAAyD,aAAa,KAAG,aAqBjG,CAAA"}
|