@openclaw/crabline 0.1.0 → 0.1.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/README.md +39 -1
- package/dist/src/cli/program.js +53 -11
- package/dist/src/cli/program.js.map +1 -1
- package/dist/src/fake-servers/http.d.ts +30 -0
- package/dist/src/fake-servers/http.js +130 -0
- package/dist/src/fake-servers/http.js.map +1 -0
- package/dist/src/fake-servers/index.d.ts +15 -6
- package/dist/src/fake-servers/index.js +11 -5
- package/dist/src/fake-servers/index.js.map +1 -1
- package/dist/src/fake-servers/telegram.js +3 -20
- package/dist/src/fake-servers/telegram.js.map +1 -1
- package/dist/src/fake-servers/whatsapp.d.ts +95 -0
- package/dist/src/fake-servers/whatsapp.js +464 -0
- package/dist/src/fake-servers/whatsapp.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/openclaw/bridges/telegram.d.ts +1 -0
- package/dist/src/openclaw/bridges/telegram.js +137 -0
- package/dist/src/openclaw/bridges/telegram.js.map +1 -0
- package/dist/src/openclaw/bridges/whatsapp.d.ts +1 -0
- package/dist/src/openclaw/bridges/whatsapp.js +114 -0
- package/dist/src/openclaw/bridges/whatsapp.js.map +1 -0
- package/dist/src/openclaw/shared.d.ts +125 -0
- package/dist/src/openclaw/shared.js +78 -0
- package/dist/src/openclaw/shared.js.map +1 -0
- package/dist/src/openclaw.d.ts +3 -76
- package/dist/src/openclaw.js +29 -196
- package/dist/src/openclaw.js.map +1 -1
- package/docs/channel-setup.md +47 -1
- package/package.json +1 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export type WhatsAppBaileysPresence = "available" | "composing" | "paused" | "unavailable";
|
|
2
|
+
export type WhatsAppBaileysMockSocket = {
|
|
3
|
+
ev: {
|
|
4
|
+
emit(event: string, payload: unknown): boolean;
|
|
5
|
+
off(event: string, handler: (payload: unknown) => void): void;
|
|
6
|
+
on(event: string, handler: (payload: unknown) => void): void;
|
|
7
|
+
};
|
|
8
|
+
sendMessage(jid: string, content: {
|
|
9
|
+
conversation?: string | undefined;
|
|
10
|
+
text?: string | undefined;
|
|
11
|
+
}, options?: Record<string, unknown>): Promise<WhatsAppBaileysMessage>;
|
|
12
|
+
sendPresenceUpdate(presence: WhatsAppBaileysPresence, jid?: string): Promise<void>;
|
|
13
|
+
user: {
|
|
14
|
+
id: string;
|
|
15
|
+
name: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export type WhatsAppBaileysMessage = ReturnType<typeof createWhatsAppMessage>;
|
|
19
|
+
export type WhatsAppBaileysMockConfig = {
|
|
20
|
+
accessToken: string;
|
|
21
|
+
apiRoot: string;
|
|
22
|
+
fetch?: typeof fetch | undefined;
|
|
23
|
+
registry?: WhatsAppBaileysMockRegistry | undefined;
|
|
24
|
+
selfJid?: string | undefined;
|
|
25
|
+
};
|
|
26
|
+
export type WhatsAppBaileysMockSocketOverrides = {
|
|
27
|
+
fetch?: typeof fetch | undefined;
|
|
28
|
+
selfJid?: string | undefined;
|
|
29
|
+
};
|
|
30
|
+
export type WhatsAppFakeServerManifest = {
|
|
31
|
+
accessToken: string;
|
|
32
|
+
adminToken: string;
|
|
33
|
+
baseUrl: string;
|
|
34
|
+
endpoints: {
|
|
35
|
+
adminInboundUrl: string;
|
|
36
|
+
apiRoot: string;
|
|
37
|
+
messagesUrl: string;
|
|
38
|
+
presenceUrl: string;
|
|
39
|
+
};
|
|
40
|
+
env: {
|
|
41
|
+
CRABLINE_WHATSAPP_ADMIN_TOKEN: string;
|
|
42
|
+
CRABLINE_WHATSAPP_ACCESS_TOKEN: string;
|
|
43
|
+
CRABLINE_WHATSAPP_API_ROOT: string;
|
|
44
|
+
CRABLINE_WHATSAPP_SELF_JID: string;
|
|
45
|
+
};
|
|
46
|
+
provider: "whatsapp";
|
|
47
|
+
recorderPath: string;
|
|
48
|
+
selfJid: string;
|
|
49
|
+
version: 1;
|
|
50
|
+
};
|
|
51
|
+
export type StartedWhatsAppFakeServer = {
|
|
52
|
+
close(): Promise<void>;
|
|
53
|
+
createBaileysMockSocket(config?: WhatsAppBaileysMockSocketOverrides | undefined): WhatsAppBaileysMockSocket;
|
|
54
|
+
manifest: WhatsAppFakeServerManifest;
|
|
55
|
+
};
|
|
56
|
+
export type StartWhatsAppFakeServerParams = {
|
|
57
|
+
accessToken?: string | undefined;
|
|
58
|
+
adminToken?: string | undefined;
|
|
59
|
+
baileysRegistry?: WhatsAppBaileysMockRegistry | undefined;
|
|
60
|
+
host?: string | undefined;
|
|
61
|
+
port?: number | undefined;
|
|
62
|
+
recorderPath?: string | undefined;
|
|
63
|
+
selfJid?: string | undefined;
|
|
64
|
+
};
|
|
65
|
+
declare function createWhatsAppMessage(params: {
|
|
66
|
+
fromMe: boolean;
|
|
67
|
+
id: string;
|
|
68
|
+
pushName?: string | undefined;
|
|
69
|
+
remoteJid: string;
|
|
70
|
+
senderJid?: string | undefined;
|
|
71
|
+
text: string;
|
|
72
|
+
}): {
|
|
73
|
+
key: {
|
|
74
|
+
fromMe: boolean;
|
|
75
|
+
id: string;
|
|
76
|
+
participant?: string;
|
|
77
|
+
remoteJid: string;
|
|
78
|
+
};
|
|
79
|
+
message: {
|
|
80
|
+
conversation: string;
|
|
81
|
+
};
|
|
82
|
+
messageTimestamp: number;
|
|
83
|
+
pushName: string;
|
|
84
|
+
};
|
|
85
|
+
export declare class WhatsAppBaileysMockRegistry {
|
|
86
|
+
#private;
|
|
87
|
+
clear(apiRoot: string): void;
|
|
88
|
+
createSocket(config: Omit<WhatsAppBaileysMockConfig, "registry">): WhatsAppBaileysMockSocket;
|
|
89
|
+
emitInbound(apiRoot: string, message: WhatsAppBaileysMessage): void;
|
|
90
|
+
private register;
|
|
91
|
+
}
|
|
92
|
+
export declare const DEFAULT_WHATSAPP_BAILEYS_MOCK_REGISTRY: WhatsAppBaileysMockRegistry;
|
|
93
|
+
export declare function createWhatsAppBaileysMockSocket(config: WhatsAppBaileysMockConfig): WhatsAppBaileysMockSocket;
|
|
94
|
+
export declare function startWhatsAppFakeServer(params?: StartWhatsAppFakeServerParams): Promise<StartedWhatsAppFakeServer>;
|
|
95
|
+
export {};
|
|
@@ -0,0 +1,464 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { adminAuthError, hasAdminToken, jsonResponse, parseRequestBody, queryRecord, readTrimmedString, startHttpJsonServer, } from "./http.js";
|
|
5
|
+
const WHATSAPP_USER_JID_RE = /^\d{7,15}(?::\d+)?@s\.whatsapp\.net$/iu;
|
|
6
|
+
const WHATSAPP_LEGACY_USER_JID_RE = /^\d{7,15}@c\.us$/iu;
|
|
7
|
+
const WHATSAPP_GROUP_JID_RE = /^\d{5,}@g\.us$/iu;
|
|
8
|
+
const WHATSAPP_LID_RE = /^\d{7,15}@lid$/iu;
|
|
9
|
+
function whatsappOk(value = {}) {
|
|
10
|
+
return jsonResponse({ ok: true, ...value });
|
|
11
|
+
}
|
|
12
|
+
function graphError(params) {
|
|
13
|
+
return jsonResponse({
|
|
14
|
+
error: {
|
|
15
|
+
code: params.code ?? 100,
|
|
16
|
+
...(params.details
|
|
17
|
+
? {
|
|
18
|
+
error_data: {
|
|
19
|
+
details: params.details,
|
|
20
|
+
messaging_product: "whatsapp",
|
|
21
|
+
},
|
|
22
|
+
}
|
|
23
|
+
: {}),
|
|
24
|
+
fbtrace_id: "A1B2C3D4E5F",
|
|
25
|
+
message: params.message,
|
|
26
|
+
type: params.type ?? "OAuthException",
|
|
27
|
+
},
|
|
28
|
+
ok: false,
|
|
29
|
+
}, params.status ?? 400);
|
|
30
|
+
}
|
|
31
|
+
function graphParameterError(message, details) {
|
|
32
|
+
return graphError({ code: 100, details, message, status: 400 });
|
|
33
|
+
}
|
|
34
|
+
function graphAuthError() {
|
|
35
|
+
return graphError({
|
|
36
|
+
code: 190,
|
|
37
|
+
message: "Invalid OAuth access token.",
|
|
38
|
+
status: 401,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async function appendEvent(state, event) {
|
|
42
|
+
await fs.mkdir(path.dirname(state.recorderPath), { recursive: true });
|
|
43
|
+
await fs.appendFile(state.recorderPath, `${JSON.stringify(event)}\n`, "utf8");
|
|
44
|
+
}
|
|
45
|
+
function isWhatsAppJid(value) {
|
|
46
|
+
return (WHATSAPP_USER_JID_RE.test(value) ||
|
|
47
|
+
WHATSAPP_LEGACY_USER_JID_RE.test(value) ||
|
|
48
|
+
WHATSAPP_GROUP_JID_RE.test(value) ||
|
|
49
|
+
WHATSAPP_LID_RE.test(value));
|
|
50
|
+
}
|
|
51
|
+
function requireWhatsAppJid(value, label) {
|
|
52
|
+
const stringValue = readTrimmedString(value);
|
|
53
|
+
if (!stringValue || !isWhatsAppJid(stringValue)) {
|
|
54
|
+
return graphParameterError(`(#100) Invalid parameter: ${label}`, `${label} must be a WhatsApp JID such as 15551234567@s.whatsapp.net or 120363001234567890@g.us.`);
|
|
55
|
+
}
|
|
56
|
+
return stringValue;
|
|
57
|
+
}
|
|
58
|
+
function requireAuth(request, state) {
|
|
59
|
+
const authorization = request.headers.authorization;
|
|
60
|
+
return (typeof authorization === "string" && authorization.trim() === `Bearer ${state.accessToken}`);
|
|
61
|
+
}
|
|
62
|
+
function nextMessageId(state) {
|
|
63
|
+
return `wamid.FAKE${String(state.nextMessageId++).padStart(8, "0")}`;
|
|
64
|
+
}
|
|
65
|
+
function waIdFromJid(jid) {
|
|
66
|
+
return jid.split("@", 1)[0]?.split(":", 1)[0] ?? jid;
|
|
67
|
+
}
|
|
68
|
+
function trimTrailingSlashes(value) {
|
|
69
|
+
let end = value.length;
|
|
70
|
+
while (end > 0 && value.charCodeAt(end - 1) === 47) {
|
|
71
|
+
end -= 1;
|
|
72
|
+
}
|
|
73
|
+
return value.slice(0, end);
|
|
74
|
+
}
|
|
75
|
+
function trimLeadingSlashes(value) {
|
|
76
|
+
let start = 0;
|
|
77
|
+
while (start < value.length && value.charCodeAt(start) === 47) {
|
|
78
|
+
start += 1;
|
|
79
|
+
}
|
|
80
|
+
return value.slice(start);
|
|
81
|
+
}
|
|
82
|
+
function joinUrl(root, pathPart) {
|
|
83
|
+
return `${trimTrailingSlashes(root)}/${trimLeadingSlashes(pathPart)}`;
|
|
84
|
+
}
|
|
85
|
+
function normalizeApiRoot(value) {
|
|
86
|
+
return trimTrailingSlashes(value);
|
|
87
|
+
}
|
|
88
|
+
async function postJson(params) {
|
|
89
|
+
const response = await params.fetchImpl(params.url, {
|
|
90
|
+
body: JSON.stringify(params.body),
|
|
91
|
+
headers: {
|
|
92
|
+
authorization: `Bearer ${params.accessToken}`,
|
|
93
|
+
"content-type": "application/json",
|
|
94
|
+
},
|
|
95
|
+
method: "POST",
|
|
96
|
+
});
|
|
97
|
+
const rawBody = await response.text();
|
|
98
|
+
const parsed = rawBody ? JSON.parse(rawBody) : {};
|
|
99
|
+
if (!response.ok) {
|
|
100
|
+
throw new Error(`WhatsApp API request failed with HTTP ${response.status}.`);
|
|
101
|
+
}
|
|
102
|
+
return parsed;
|
|
103
|
+
}
|
|
104
|
+
function requireMessagingProduct(body) {
|
|
105
|
+
const messagingProduct = readTrimmedString(body.messaging_product);
|
|
106
|
+
if (messagingProduct && messagingProduct !== "whatsapp") {
|
|
107
|
+
return graphParameterError("(#100) Invalid parameter: messaging_product", 'messaging_product must be "whatsapp".');
|
|
108
|
+
}
|
|
109
|
+
return undefined;
|
|
110
|
+
}
|
|
111
|
+
function readTextMessageBody(body) {
|
|
112
|
+
const type = readTrimmedString(body.type);
|
|
113
|
+
if (type && type !== "text") {
|
|
114
|
+
return graphParameterError("(#100) Unsupported message type", "This test API currently supports WhatsApp text message sends.");
|
|
115
|
+
}
|
|
116
|
+
const textPayload = body.text;
|
|
117
|
+
const textBody = textPayload && typeof textPayload === "object"
|
|
118
|
+
? readTrimmedString(textPayload.body)
|
|
119
|
+
: readTrimmedString(textPayload);
|
|
120
|
+
const content = body.content;
|
|
121
|
+
const contentText = content && typeof content === "object"
|
|
122
|
+
? readTrimmedString(content.text)
|
|
123
|
+
: undefined;
|
|
124
|
+
const text = textBody ?? contentText;
|
|
125
|
+
if (!text) {
|
|
126
|
+
return graphParameterError("(#100) Missing required parameter: text.body", "A WhatsApp text send requires text.body.");
|
|
127
|
+
}
|
|
128
|
+
return text;
|
|
129
|
+
}
|
|
130
|
+
function createWhatsAppMessage(params) {
|
|
131
|
+
return {
|
|
132
|
+
key: {
|
|
133
|
+
fromMe: params.fromMe,
|
|
134
|
+
id: params.id,
|
|
135
|
+
...(params.senderJid ? { participant: params.senderJid } : {}),
|
|
136
|
+
remoteJid: params.remoteJid,
|
|
137
|
+
},
|
|
138
|
+
message: {
|
|
139
|
+
conversation: params.text,
|
|
140
|
+
},
|
|
141
|
+
messageTimestamp: Math.floor(Date.now() / 1000),
|
|
142
|
+
pushName: params.pushName ?? (params.fromMe ? "Test Bot" : "Test User"),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function readBaileysTextContent(content) {
|
|
146
|
+
const text = readTrimmedString(content.text) ?? readTrimmedString(content.conversation);
|
|
147
|
+
if (!text) {
|
|
148
|
+
throw new Error("WhatsApp Baileys mock supports text sends only.");
|
|
149
|
+
}
|
|
150
|
+
return text;
|
|
151
|
+
}
|
|
152
|
+
function readResponseMessage(body, fallbackJid) {
|
|
153
|
+
const message = body.message;
|
|
154
|
+
if (message && typeof message === "object") {
|
|
155
|
+
return message;
|
|
156
|
+
}
|
|
157
|
+
const messageId = readTrimmedString(body.messages?.[0]?.id) ??
|
|
158
|
+
readTrimmedString(body.messageId) ??
|
|
159
|
+
"wamid.FAKEUNKNOWN";
|
|
160
|
+
return createWhatsAppMessage({
|
|
161
|
+
fromMe: true,
|
|
162
|
+
id: messageId,
|
|
163
|
+
remoteJid: fallbackJid,
|
|
164
|
+
text: "",
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
function createEventBus() {
|
|
168
|
+
const listeners = new Map();
|
|
169
|
+
return {
|
|
170
|
+
emit(event, payload) {
|
|
171
|
+
const handlers = listeners.get(event);
|
|
172
|
+
if (!handlers?.size) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
for (const handler of handlers) {
|
|
176
|
+
handler(payload);
|
|
177
|
+
}
|
|
178
|
+
return true;
|
|
179
|
+
},
|
|
180
|
+
off(event, handler) {
|
|
181
|
+
listeners.get(event)?.delete(handler);
|
|
182
|
+
},
|
|
183
|
+
on(event, handler) {
|
|
184
|
+
const handlers = listeners.get(event) ?? new Set();
|
|
185
|
+
handlers.add(handler);
|
|
186
|
+
listeners.set(event, handlers);
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
export class WhatsAppBaileysMockRegistry {
|
|
191
|
+
#busesByApiRoot = new Map();
|
|
192
|
+
clear(apiRoot) {
|
|
193
|
+
this.#busesByApiRoot.delete(normalizeApiRoot(apiRoot));
|
|
194
|
+
}
|
|
195
|
+
createSocket(config) {
|
|
196
|
+
const fetchImpl = config.fetch ?? fetch;
|
|
197
|
+
const selfJid = config.selfJid ?? "15550000000@s.whatsapp.net";
|
|
198
|
+
const ev = createEventBus();
|
|
199
|
+
this.register(config.apiRoot, ev);
|
|
200
|
+
return {
|
|
201
|
+
ev,
|
|
202
|
+
async sendMessage(jid, content) {
|
|
203
|
+
const text = readBaileysTextContent(content);
|
|
204
|
+
const body = await postJson({
|
|
205
|
+
accessToken: config.accessToken,
|
|
206
|
+
body: {
|
|
207
|
+
messaging_product: "whatsapp",
|
|
208
|
+
text: { body: text },
|
|
209
|
+
to: jid,
|
|
210
|
+
type: "text",
|
|
211
|
+
},
|
|
212
|
+
fetchImpl,
|
|
213
|
+
url: joinUrl(config.apiRoot, "messages"),
|
|
214
|
+
});
|
|
215
|
+
const message = readResponseMessage(body, jid);
|
|
216
|
+
ev.emit("messages.upsert", { messages: [message], type: "notify" });
|
|
217
|
+
return message;
|
|
218
|
+
},
|
|
219
|
+
async sendPresenceUpdate(presence, jid) {
|
|
220
|
+
await postJson({
|
|
221
|
+
accessToken: config.accessToken,
|
|
222
|
+
body: { ...(jid ? { jid } : {}), presence },
|
|
223
|
+
fetchImpl,
|
|
224
|
+
url: joinUrl(config.apiRoot, "presence"),
|
|
225
|
+
});
|
|
226
|
+
ev.emit("presence.update", { jid, presence });
|
|
227
|
+
},
|
|
228
|
+
user: {
|
|
229
|
+
id: selfJid,
|
|
230
|
+
name: "Test Bot",
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
emitInbound(apiRoot, message) {
|
|
235
|
+
const buses = this.#busesByApiRoot.get(normalizeApiRoot(apiRoot));
|
|
236
|
+
if (!buses?.size) {
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
const payload = { messages: [message], type: "notify" };
|
|
240
|
+
for (const ev of buses) {
|
|
241
|
+
ev.emit("messages.upsert", payload);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
register(apiRoot, ev) {
|
|
245
|
+
const key = normalizeApiRoot(apiRoot);
|
|
246
|
+
const buses = this.#busesByApiRoot.get(key) ?? new Set();
|
|
247
|
+
buses.add(ev);
|
|
248
|
+
this.#busesByApiRoot.set(key, buses);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
export const DEFAULT_WHATSAPP_BAILEYS_MOCK_REGISTRY = new WhatsAppBaileysMockRegistry();
|
|
252
|
+
export function createWhatsAppBaileysMockSocket(config) {
|
|
253
|
+
const registry = config.registry ?? DEFAULT_WHATSAPP_BAILEYS_MOCK_REGISTRY;
|
|
254
|
+
return registry.createSocket({
|
|
255
|
+
accessToken: config.accessToken,
|
|
256
|
+
apiRoot: config.apiRoot,
|
|
257
|
+
fetch: config.fetch,
|
|
258
|
+
selfJid: config.selfJid,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
async function handleSendMessage(params) {
|
|
262
|
+
const productError = requireMessagingProduct(params.body);
|
|
263
|
+
if (productError) {
|
|
264
|
+
return productError;
|
|
265
|
+
}
|
|
266
|
+
const to = requireWhatsAppJid(params.body.to ?? params.body.jid, "to");
|
|
267
|
+
if (to instanceof Response) {
|
|
268
|
+
return to;
|
|
269
|
+
}
|
|
270
|
+
const text = readTextMessageBody(params.body);
|
|
271
|
+
if (text instanceof Response) {
|
|
272
|
+
return text;
|
|
273
|
+
}
|
|
274
|
+
const message = createWhatsAppMessage({
|
|
275
|
+
fromMe: true,
|
|
276
|
+
id: nextMessageId(params.state),
|
|
277
|
+
remoteJid: to,
|
|
278
|
+
text,
|
|
279
|
+
});
|
|
280
|
+
const waId = waIdFromJid(to);
|
|
281
|
+
return whatsappOk({
|
|
282
|
+
contacts: [
|
|
283
|
+
{
|
|
284
|
+
input: to,
|
|
285
|
+
wa_id: waId,
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
key: message.key,
|
|
289
|
+
message,
|
|
290
|
+
messageId: message.key.id,
|
|
291
|
+
messages: [{ id: message.key.id }],
|
|
292
|
+
messaging_product: "whatsapp",
|
|
293
|
+
toJid: to,
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
async function handleAdminInbound(params) {
|
|
297
|
+
const chatJid = requireWhatsAppJid(params.body.chatJid ?? params.body.chatId, "chatJid");
|
|
298
|
+
if (chatJid instanceof Response) {
|
|
299
|
+
return chatJid;
|
|
300
|
+
}
|
|
301
|
+
const senderJid = requireWhatsAppJid(params.body.senderJid ?? params.body.from, "senderJid");
|
|
302
|
+
if (senderJid instanceof Response) {
|
|
303
|
+
return senderJid;
|
|
304
|
+
}
|
|
305
|
+
const text = readTrimmedString(params.body.text);
|
|
306
|
+
if (!text) {
|
|
307
|
+
return graphParameterError("(#100) Missing required parameter: text", "An inbound WhatsApp fake event requires text.");
|
|
308
|
+
}
|
|
309
|
+
const message = createWhatsAppMessage({
|
|
310
|
+
fromMe: false,
|
|
311
|
+
id: readTrimmedString(params.body.messageId) ?? nextMessageId(params.state),
|
|
312
|
+
pushName: readTrimmedString(params.body.pushName) ?? "Test User",
|
|
313
|
+
remoteJid: chatJid,
|
|
314
|
+
senderJid,
|
|
315
|
+
text,
|
|
316
|
+
});
|
|
317
|
+
const timestamp = String(message.messageTimestamp);
|
|
318
|
+
const webhook = {
|
|
319
|
+
entry: [
|
|
320
|
+
{
|
|
321
|
+
changes: [
|
|
322
|
+
{
|
|
323
|
+
field: "messages",
|
|
324
|
+
value: {
|
|
325
|
+
contacts: [
|
|
326
|
+
{
|
|
327
|
+
profile: { name: readTrimmedString(params.body.pushName) ?? "Test User" },
|
|
328
|
+
wa_id: waIdFromJid(senderJid),
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
messages: [
|
|
332
|
+
{
|
|
333
|
+
from: waIdFromJid(senderJid),
|
|
334
|
+
id: message.key.id,
|
|
335
|
+
text: { body: text },
|
|
336
|
+
timestamp,
|
|
337
|
+
type: "text",
|
|
338
|
+
},
|
|
339
|
+
],
|
|
340
|
+
messaging_product: "whatsapp",
|
|
341
|
+
metadata: {
|
|
342
|
+
display_phone_number: params.state.displayPhoneNumber,
|
|
343
|
+
phone_number_id: params.state.phoneNumberId,
|
|
344
|
+
},
|
|
345
|
+
},
|
|
346
|
+
},
|
|
347
|
+
],
|
|
348
|
+
id: "TEST_WABA",
|
|
349
|
+
},
|
|
350
|
+
],
|
|
351
|
+
object: "whatsapp_business_account",
|
|
352
|
+
};
|
|
353
|
+
params.state.baileysRegistry.emitInbound(params.state.apiRoot, message);
|
|
354
|
+
return whatsappOk({ message, webhook });
|
|
355
|
+
}
|
|
356
|
+
async function handleRequest(params) {
|
|
357
|
+
const url = new URL(params.request.url ?? "/", "http://127.0.0.1");
|
|
358
|
+
if (url.pathname === "/crabline/whatsapp/health") {
|
|
359
|
+
return whatsappOk({ selfJid: params.state.selfJid });
|
|
360
|
+
}
|
|
361
|
+
if (url.pathname === "/crabline/whatsapp/inbound") {
|
|
362
|
+
if (params.request.method !== "POST") {
|
|
363
|
+
return new Response("not found", { status: 404 });
|
|
364
|
+
}
|
|
365
|
+
if (!hasAdminToken(params.request, params.state.adminToken)) {
|
|
366
|
+
return adminAuthError();
|
|
367
|
+
}
|
|
368
|
+
const body = await parseRequestBody(params.request);
|
|
369
|
+
await appendEvent(params.state, {
|
|
370
|
+
at: new Date().toISOString(),
|
|
371
|
+
body,
|
|
372
|
+
method: params.request.method,
|
|
373
|
+
path: url.pathname,
|
|
374
|
+
query: queryRecord(url),
|
|
375
|
+
type: "admin",
|
|
376
|
+
});
|
|
377
|
+
return await handleAdminInbound({ body, state: params.state });
|
|
378
|
+
}
|
|
379
|
+
const body = params.request.method === "GET" ? queryRecord(url) : await parseRequestBody(params.request);
|
|
380
|
+
await appendEvent(params.state, {
|
|
381
|
+
at: new Date().toISOString(),
|
|
382
|
+
body,
|
|
383
|
+
method: params.request.method ?? "GET",
|
|
384
|
+
path: url.pathname,
|
|
385
|
+
query: queryRecord(url),
|
|
386
|
+
type: "api",
|
|
387
|
+
});
|
|
388
|
+
if (!requireAuth(params.request, params.state)) {
|
|
389
|
+
return graphAuthError();
|
|
390
|
+
}
|
|
391
|
+
if (url.pathname === "/crabline/whatsapp/messages") {
|
|
392
|
+
if (params.request.method !== "POST") {
|
|
393
|
+
return new Response("not found", { status: 404 });
|
|
394
|
+
}
|
|
395
|
+
return await handleSendMessage({ body, state: params.state });
|
|
396
|
+
}
|
|
397
|
+
if (url.pathname === "/crabline/whatsapp/presence") {
|
|
398
|
+
const presence = readTrimmedString(body.presence) ?? "composing";
|
|
399
|
+
if (!["available", "composing", "paused", "unavailable"].includes(presence)) {
|
|
400
|
+
return graphParameterError("(#100) Invalid parameter: presence", "presence must be available, composing, paused, or unavailable.");
|
|
401
|
+
}
|
|
402
|
+
return whatsappOk({ presence });
|
|
403
|
+
}
|
|
404
|
+
return new Response("not found", { status: 404 });
|
|
405
|
+
}
|
|
406
|
+
export async function startWhatsAppFakeServer(params = {}) {
|
|
407
|
+
const state = {
|
|
408
|
+
accessToken: params.accessToken ?? "crabline-whatsapp-access-token",
|
|
409
|
+
adminToken: params.adminToken ?? randomBytes(24).toString("hex"),
|
|
410
|
+
apiRoot: "",
|
|
411
|
+
baileysRegistry: params.baileysRegistry ?? DEFAULT_WHATSAPP_BAILEYS_MOCK_REGISTRY,
|
|
412
|
+
displayPhoneNumber: "15550000000",
|
|
413
|
+
nextMessageId: 1,
|
|
414
|
+
phoneNumberId: "TEST_PHONE_NUMBER_ID",
|
|
415
|
+
recorderPath: params.recorderPath ?? path.resolve(".crabline", "fake-servers", "whatsapp.jsonl"),
|
|
416
|
+
selfJid: params.selfJid ?? "15550000000@s.whatsapp.net",
|
|
417
|
+
};
|
|
418
|
+
const host = params.host ?? "127.0.0.1";
|
|
419
|
+
const httpServer = await startHttpJsonServer({
|
|
420
|
+
handle: (request) => handleRequest({ request, state }),
|
|
421
|
+
host,
|
|
422
|
+
port: params.port ?? 0,
|
|
423
|
+
serverName: "WhatsApp",
|
|
424
|
+
});
|
|
425
|
+
const baseUrl = httpServer.baseUrl;
|
|
426
|
+
const apiRoot = `${baseUrl}/crabline/whatsapp`;
|
|
427
|
+
state.apiRoot = apiRoot;
|
|
428
|
+
return {
|
|
429
|
+
async close() {
|
|
430
|
+
state.baileysRegistry.clear(apiRoot);
|
|
431
|
+
await httpServer.close();
|
|
432
|
+
},
|
|
433
|
+
createBaileysMockSocket(config = {}) {
|
|
434
|
+
return state.baileysRegistry.createSocket({
|
|
435
|
+
accessToken: state.accessToken,
|
|
436
|
+
apiRoot,
|
|
437
|
+
selfJid: state.selfJid,
|
|
438
|
+
...config,
|
|
439
|
+
});
|
|
440
|
+
},
|
|
441
|
+
manifest: {
|
|
442
|
+
accessToken: state.accessToken,
|
|
443
|
+
adminToken: state.adminToken,
|
|
444
|
+
baseUrl,
|
|
445
|
+
endpoints: {
|
|
446
|
+
adminInboundUrl: `${apiRoot}/inbound`,
|
|
447
|
+
apiRoot,
|
|
448
|
+
messagesUrl: `${apiRoot}/messages`,
|
|
449
|
+
presenceUrl: `${apiRoot}/presence`,
|
|
450
|
+
},
|
|
451
|
+
env: {
|
|
452
|
+
CRABLINE_WHATSAPP_ADMIN_TOKEN: state.adminToken,
|
|
453
|
+
CRABLINE_WHATSAPP_ACCESS_TOKEN: state.accessToken,
|
|
454
|
+
CRABLINE_WHATSAPP_API_ROOT: apiRoot,
|
|
455
|
+
CRABLINE_WHATSAPP_SELF_JID: state.selfJid,
|
|
456
|
+
},
|
|
457
|
+
provider: "whatsapp",
|
|
458
|
+
recorderPath: state.recorderPath,
|
|
459
|
+
selfJid: state.selfJid,
|
|
460
|
+
version: 1,
|
|
461
|
+
},
|
|
462
|
+
};
|
|
463
|
+
}
|
|
464
|
+
//# sourceMappingURL=whatsapp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.js","sourceRoot":"","sources":["../../../src/fake-servers/whatsapp.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { resolveTelegramAdapterConfig } from "./providers/builtin/telegram.js";
|
|
2
2
|
export { resolveWhatsAppAdapterConfig } from "./providers/builtin/whatsapp.js";
|
|
3
3
|
export { startTelegramFakeServer } from "./fake-servers/telegram.js";
|
|
4
|
+
export { createWhatsAppBaileysMockSocket, DEFAULT_WHATSAPP_BAILEYS_MOCK_REGISTRY, startWhatsAppFakeServer, WhatsAppBaileysMockRegistry, } from "./fake-servers/whatsapp.js";
|
|
4
5
|
export { CRABLINE_FAKE_PROVIDER_CHANNELS, isCrablineFakeProviderChannel, startCrablineFakeProviderServer, } from "./fake-servers/index.js";
|
|
5
6
|
export { createOpenClawCrablineAgentDelivery, createOpenClawCrablineChannelReportNotes, createOpenClawCrablineFakeProviderBinding, createOpenClawCrablineInbound, createOpenClawCrablineOutboundFromRecorderEvent, OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, probeOpenClawCrablineFakeProvider, resolveOpenClawCrablineChannel, resolveOpenClawCrablineChannelDriverSelection, runOpenClawCrablineChannelDriverSmoke, startOpenClawCrablineAdapter, } from "./openclaw.js";
|
|
6
7
|
export { BUILTIN_ADAPTERS, FIXTURE_MODES, INBOUND_AUTHORS, INBOUND_NONCE_MODES, INBOUND_STRATEGIES, ManifestSchema, PROVIDER_PLATFORMS, ProviderConfigSchema, } from "./config/schema.js";
|
|
@@ -11,5 +12,6 @@ export type { Registry } from "./providers/registry.js";
|
|
|
11
12
|
export type { BuiltinAdapterId, FixtureDefinition, FixtureMode, ManifestDefinition, ProviderConfig, ProviderPlatform, } from "./config/schema.js";
|
|
12
13
|
export type { InboundEnvelope, NormalizedTarget, ProbeResult, ProviderAdapter, ProviderContext, ProviderSupportStatus, SendContext, SendResult, WaitContext, WatchContext, } from "./providers/types.js";
|
|
13
14
|
export type { StartedTelegramFakeServer, StartTelegramFakeServerParams, TelegramFakeServerManifest, } from "./fake-servers/telegram.js";
|
|
15
|
+
export type { StartedWhatsAppFakeServer, StartWhatsAppFakeServerParams, WhatsAppBaileysMessage, WhatsAppBaileysMockConfig, WhatsAppBaileysMockSocketOverrides, WhatsAppBaileysMockSocket, WhatsAppBaileysPresence, WhatsAppFakeServerManifest, } from "./fake-servers/whatsapp.js";
|
|
14
16
|
export type { CrablineFakeProviderChannel, CrablineFakeProviderManifest, StartedCrablineFakeProviderServer, StartCrablineFakeProviderServerParams, } from "./fake-servers/index.js";
|
|
15
17
|
export type { OpenClawCrablineAgentDelivery, OpenClawCrablineChannelDriverSelection, OpenClawCrablineChannelDriverSmokeResult, OpenClawCrablineGatewayBinding, OpenClawCrablineInbound, OpenClawCrablineInboundInput, OpenClawCrablineOutboundMessage, StartedOpenClawCrablineAdapter, StartOpenClawCrablineAdapterParams, } from "./openclaw.js";
|
package/dist/src/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { resolveTelegramAdapterConfig } from "./providers/builtin/telegram.js";
|
|
2
2
|
export { resolveWhatsAppAdapterConfig } from "./providers/builtin/whatsapp.js";
|
|
3
3
|
export { startTelegramFakeServer } from "./fake-servers/telegram.js";
|
|
4
|
+
export { createWhatsAppBaileysMockSocket, DEFAULT_WHATSAPP_BAILEYS_MOCK_REGISTRY, startWhatsAppFakeServer, WhatsAppBaileysMockRegistry, } from "./fake-servers/whatsapp.js";
|
|
4
5
|
export { CRABLINE_FAKE_PROVIDER_CHANNELS, isCrablineFakeProviderChannel, startCrablineFakeProviderServer, } from "./fake-servers/index.js";
|
|
5
6
|
export { createOpenClawCrablineAgentDelivery, createOpenClawCrablineChannelReportNotes, createOpenClawCrablineFakeProviderBinding, createOpenClawCrablineInbound, createOpenClawCrablineOutboundFromRecorderEvent, OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, probeOpenClawCrablineFakeProvider, resolveOpenClawCrablineChannel, resolveOpenClawCrablineChannelDriverSelection, runOpenClawCrablineChannelDriverSmoke, startOpenClawCrablineAdapter, } from "./openclaw.js";
|
|
6
7
|
export { BUILTIN_ADAPTERS, FIXTURE_MODES, INBOUND_AUTHORS, INBOUND_NONCE_MODES, INBOUND_STRATEGIES, ManifestSchema, PROVIDER_PLATFORMS, ProviderConfigSchema, } from "./config/schema.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,yCAAyC,EACzC,6BAA6B,EAC7B,+CAA+C,EAC/C,gDAAgD,EAChD,oCAAoC,EACpC,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,EAC9B,6CAA6C,EAC7C,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACL,+BAA+B,EAC/B,sCAAsC,EACtC,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,+BAA+B,GAChC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,yCAAyC,EACzC,6BAA6B,EAC7B,+CAA+C,EAC/C,gDAAgD,EAChD,oCAAoC,EACpC,iCAAiC,EACjC,+BAA+B,EAC/B,iCAAiC,EACjC,8BAA8B,EAC9B,6CAA6C,EAC7C,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TELEGRAM_OPENCLAW_CRABLINE_PROVIDER_BRIDGE: import("../shared.js").OpenClawCrablineProviderBridge<import("../../index.js").TelegramFakeServerManifest>;
|