@diegoaltoworks/chatter 0.27.0 → 0.29.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/dist/bin/wa-pair.js +320 -0
- package/dist/channels/index.d.ts +47 -0
- package/dist/channels/index.d.ts.map +1 -0
- package/dist/channels/index.js +137 -0
- package/dist/channels/index.mjs +105 -0
- package/dist/channels/senders.d.ts +30 -0
- package/dist/channels/senders.d.ts.map +1 -0
- package/dist/channels/senders.test.d.ts +2 -0
- package/dist/channels/senders.test.d.ts.map +1 -0
- package/dist/channels/whatsapp/authState.d.ts +39 -0
- package/dist/channels/whatsapp/authState.d.ts.map +1 -0
- package/dist/channels/whatsapp/authState.test.d.ts +2 -0
- package/dist/channels/whatsapp/authState.test.d.ts.map +1 -0
- package/dist/channels/whatsapp/baileys.d.ts +21 -0
- package/dist/channels/whatsapp/baileys.d.ts.map +1 -0
- package/dist/channels/whatsapp/baileys.test.d.ts +2 -0
- package/dist/channels/whatsapp/baileys.test.d.ts.map +1 -0
- package/dist/channels/whatsapp/channel.d.ts +95 -0
- package/dist/channels/whatsapp/channel.d.ts.map +1 -0
- package/dist/channels/whatsapp/channel.test.d.ts +2 -0
- package/dist/channels/whatsapp/channel.test.d.ts.map +1 -0
- package/dist/channels/whatsapp/crypto.d.ts +10 -0
- package/dist/channels/whatsapp/crypto.d.ts.map +1 -0
- package/dist/channels/whatsapp/crypto.test.d.ts +2 -0
- package/dist/channels/whatsapp/crypto.test.d.ts.map +1 -0
- package/dist/channels/whatsapp/index.d.ts +33 -0
- package/dist/channels/whatsapp/index.d.ts.map +1 -0
- package/dist/channels/whatsapp/index.js +478 -0
- package/dist/channels/whatsapp/index.mjs +428 -0
- package/dist/channels/whatsapp/lease.d.ts +42 -0
- package/dist/channels/whatsapp/lease.d.ts.map +1 -0
- package/dist/channels/whatsapp/lease.test.d.ts +2 -0
- package/dist/channels/whatsapp/lease.test.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -2
- package/dist/index.mjs +83 -2
- package/dist/server.d.ts +21 -2
- package/dist/server.d.ts.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +29 -4
package/dist/index.mjs
CHANGED
|
@@ -33134,6 +33134,58 @@ import { Hono as Hono5 } from "hono";
|
|
|
33134
33134
|
import { serveStatic } from "hono/bun";
|
|
33135
33135
|
import OpenAI2 from "openai";
|
|
33136
33136
|
|
|
33137
|
+
// src/channels/senders.ts
|
|
33138
|
+
function createSenderRegistry() {
|
|
33139
|
+
const senders = /* @__PURE__ */ new Map();
|
|
33140
|
+
return {
|
|
33141
|
+
register(name, sender) {
|
|
33142
|
+
if (senders.has(name)) {
|
|
33143
|
+
console.warn(`Channel sender "${name}" is already registered; overwriting.`);
|
|
33144
|
+
}
|
|
33145
|
+
senders.set(name, sender);
|
|
33146
|
+
},
|
|
33147
|
+
unregister(name) {
|
|
33148
|
+
senders.delete(name);
|
|
33149
|
+
},
|
|
33150
|
+
available(name) {
|
|
33151
|
+
return senders.has(name);
|
|
33152
|
+
},
|
|
33153
|
+
async sendText(name, chatId, text) {
|
|
33154
|
+
const sender = senders.get(name);
|
|
33155
|
+
if (!sender) return false;
|
|
33156
|
+
try {
|
|
33157
|
+
await sender.sendText(chatId, text);
|
|
33158
|
+
return true;
|
|
33159
|
+
} catch (error51) {
|
|
33160
|
+
console.warn(`Channel sender "${name}" sendText failed:`, error51);
|
|
33161
|
+
return false;
|
|
33162
|
+
}
|
|
33163
|
+
},
|
|
33164
|
+
async sendVoice(name, chatId, payload) {
|
|
33165
|
+
const sender = senders.get(name);
|
|
33166
|
+
if (!sender?.sendVoice) return false;
|
|
33167
|
+
try {
|
|
33168
|
+
await sender.sendVoice(chatId, payload);
|
|
33169
|
+
return true;
|
|
33170
|
+
} catch (error51) {
|
|
33171
|
+
console.warn(`Channel sender "${name}" sendVoice failed:`, error51);
|
|
33172
|
+
return false;
|
|
33173
|
+
}
|
|
33174
|
+
},
|
|
33175
|
+
async sendMedia(name, chatId, payload) {
|
|
33176
|
+
const sender = senders.get(name);
|
|
33177
|
+
if (!sender?.sendMedia) return false;
|
|
33178
|
+
try {
|
|
33179
|
+
await sender.sendMedia(chatId, payload);
|
|
33180
|
+
return true;
|
|
33181
|
+
} catch (error51) {
|
|
33182
|
+
console.warn(`Channel sender "${name}" sendMedia failed:`, error51);
|
|
33183
|
+
return false;
|
|
33184
|
+
}
|
|
33185
|
+
}
|
|
33186
|
+
};
|
|
33187
|
+
}
|
|
33188
|
+
|
|
33137
33189
|
// src/core/widgets.ts
|
|
33138
33190
|
import { existsSync } from "node:fs";
|
|
33139
33191
|
import { dirname, join as join3 } from "node:path";
|
|
@@ -33258,7 +33310,8 @@ async function createServer(config2) {
|
|
|
33258
33310
|
app.get("/demo/chatbot", serveStatic({ path: `${publicDir}/demo-chatbot.html` }));
|
|
33259
33311
|
app.get("/demo/react", serveStatic({ path: `${publicDir}/react-demo.html` }));
|
|
33260
33312
|
}
|
|
33261
|
-
const
|
|
33313
|
+
const senders = createSenderRegistry();
|
|
33314
|
+
const deps = { client, store, db, config: config2, prompts, apiKeyManager, senders };
|
|
33262
33315
|
if (enablePublic) {
|
|
33263
33316
|
app.route("/", publicRoutes(deps));
|
|
33264
33317
|
}
|
|
@@ -33274,8 +33327,36 @@ async function createServer(config2) {
|
|
|
33274
33327
|
if (config2.customRoutes) {
|
|
33275
33328
|
await config2.customRoutes(app, deps);
|
|
33276
33329
|
}
|
|
33330
|
+
const started = [];
|
|
33331
|
+
if (config2.channels && config2.channels.length > 0) {
|
|
33332
|
+
for (const channel of config2.channels) {
|
|
33333
|
+
try {
|
|
33334
|
+
await channel.start(deps);
|
|
33335
|
+
started.push(channel);
|
|
33336
|
+
console.log(`\u2705 Channel "${channel.name}" started`);
|
|
33337
|
+
} catch (error51) {
|
|
33338
|
+
console.error(`\u274C Channel "${channel.name}" failed to start:`, error51);
|
|
33339
|
+
}
|
|
33340
|
+
}
|
|
33341
|
+
}
|
|
33277
33342
|
console.log(`\u2705 ${config2.bot.name} server ready`);
|
|
33278
|
-
return app
|
|
33343
|
+
return Object.assign(app, {
|
|
33344
|
+
// Scoped to this call's started channels, not global — two servers in
|
|
33345
|
+
// one process each stop only their own. A channel's `stop()` throwing
|
|
33346
|
+
// (sync or async) is caught per-channel so one misbehaving channel can't
|
|
33347
|
+
// stop the rest from cleaning up.
|
|
33348
|
+
stopChannels: async () => {
|
|
33349
|
+
await Promise.allSettled(
|
|
33350
|
+
started.map(async (channel) => {
|
|
33351
|
+
try {
|
|
33352
|
+
await channel.stop?.();
|
|
33353
|
+
} catch (error51) {
|
|
33354
|
+
console.error(`Channel "${channel.name}" failed to stop:`, error51);
|
|
33355
|
+
}
|
|
33356
|
+
})
|
|
33357
|
+
);
|
|
33358
|
+
}
|
|
33359
|
+
});
|
|
33279
33360
|
}
|
|
33280
33361
|
var export_Chat = import_client3.Chat;
|
|
33281
33362
|
var export_ChatBot = import_client3.ChatBot;
|
package/dist/server.d.ts
CHANGED
|
@@ -5,11 +5,30 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Hono } from "hono";
|
|
7
7
|
import type { ChatterConfig } from "./types";
|
|
8
|
+
/**
|
|
9
|
+
* A Chatter server: the Hono app plus a disposer for anything `createServer`
|
|
10
|
+
* started outside the request/response cycle. Deliberately not a signal
|
|
11
|
+
* handler — a library calling `process.exit` on a host's process would race
|
|
12
|
+
* the host's own shutdown (e.g. an in-flight-request drain) and override its
|
|
13
|
+
* exit code. Hosts that start channels wire `stopChannels` into their own
|
|
14
|
+
* shutdown path:
|
|
15
|
+
*
|
|
16
|
+
* ```ts
|
|
17
|
+
* const app = await createServer(config);
|
|
18
|
+
* process.on("SIGTERM", async () => {
|
|
19
|
+
* await app.stopChannels();
|
|
20
|
+
* process.exit(0);
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export type ChatterApp = Hono & {
|
|
25
|
+
stopChannels: () => Promise<void>;
|
|
26
|
+
};
|
|
8
27
|
/**
|
|
9
28
|
* Create a Chatter server instance
|
|
10
29
|
*
|
|
11
30
|
* @param config - Chatter configuration
|
|
12
|
-
* @returns Configured Hono app instance
|
|
31
|
+
* @returns Configured Hono app instance, plus `stopChannels()` — see {@link ChatterApp}
|
|
13
32
|
*/
|
|
14
|
-
export declare function createServer(config: ChatterConfig): Promise<
|
|
33
|
+
export declare function createServer(config: ChatterConfig): Promise<ChatterApp>;
|
|
15
34
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAc5B,OAAO,KAAK,EAAE,aAAa,EAAsB,MAAM,SAAS,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG;IAAE,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAEtE;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAkM7E"}
|
package/dist/types.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import type { Client as LibsqlClient } from "@libsql/client";
|
|
8
8
|
import type { Hono } from "hono";
|
|
9
9
|
import type OpenAI from "openai";
|
|
10
|
+
import type { Channel, ChannelSenderRegistry } from "./channels";
|
|
10
11
|
import type { AnswerFn } from "./core/answer";
|
|
11
12
|
import type { BucketsFor } from "./core/buckets";
|
|
12
13
|
import type { PromptLoader } from "./core/prompts";
|
|
@@ -174,6 +175,15 @@ export interface ChatterConfig {
|
|
|
174
175
|
bucketsFor?: BucketsFor;
|
|
175
176
|
/** Custom route handler for advanced use cases. May be async — see {@link CustomRoutes} */
|
|
176
177
|
customRoutes?: CustomRoutes;
|
|
178
|
+
/**
|
|
179
|
+
* Transports (WhatsApp, or any future channel) to start alongside the
|
|
180
|
+
* server. Each is started after routes are mounted with the same
|
|
181
|
+
* {@link ServerDependencies} route factories receive; a channel that fails
|
|
182
|
+
* to start is logged and skipped rather than crashing the server. See the
|
|
183
|
+
* `./channels` subpath for the {@link Channel} SPI, the reply-decision
|
|
184
|
+
* gates, and the sender registry channels register into.
|
|
185
|
+
*/
|
|
186
|
+
channels?: Channel[];
|
|
177
187
|
}
|
|
178
188
|
/**
|
|
179
189
|
* Mounts additional routes on the server's Hono app.
|
|
@@ -217,6 +227,13 @@ export interface ServerDependencies {
|
|
|
217
227
|
error?: string;
|
|
218
228
|
}>;
|
|
219
229
|
};
|
|
230
|
+
/**
|
|
231
|
+
* The channel sender registry every configured channel is started with.
|
|
232
|
+
* A channel registers itself here (`deps.senders.register(channel.name, sender)`)
|
|
233
|
+
* so custom routes and other channels can send outbound messages by
|
|
234
|
+
* channel name without importing the transport.
|
|
235
|
+
*/
|
|
236
|
+
senders: ChannelSenderRegistry;
|
|
220
237
|
}
|
|
221
238
|
/**
|
|
222
239
|
* Knowledge document
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,GAAG,EAAE,WAAW,CAAC;IACjB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;IAGrB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,MAAM,EAAE;QACN,qBAAqB;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,oCAAoC;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAGF,QAAQ,EAAE;QACR,yBAAyB;QACzB,GAAG,EAAE,MAAM,CAAC;QACZ,uBAAuB;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAGF,IAAI,CAAC,EAAE;QACL,mDAAmD;QACnD,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,qEAAqE;QACrE,aAAa,CAAC,EAAE;YACd,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;gBAAE,KAAK,EAAE,OAAO,CAAC;gBAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC3F,CAAC;QACF,6CAA6C;QAC7C,GAAG,CAAC,EAAE;YACJ,oCAAoC;YACpC,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,0BAA0B;YAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,4BAA4B;YAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,2CAA2C;YAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,0BAA0B;QAC1B,KAAK,CAAC,EAAE;YACN,4BAA4B;YAC5B,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,6BAA6B;YAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC;KACH,CAAC;IAGF,QAAQ,CAAC,EAAE;QACT,iDAAiD;QACjD,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,kDAAkD;QAClD,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,mDAAmD;QACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B;;;;WAIG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B;;;;WAIG;QACH,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAGF,SAAS,CAAC,EAAE;QACV,2DAA2D;QAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,6DAA6D;QAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,MAAM,CAAC,EAAE;QACP,iCAAiC;QACjC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,iCAAiC;QACjC,IAAI,CAAC,EAAE,OAAO,CAAC;QACf;;;;;;;WAOG;QACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IAGF;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAGpB;;;;;;;;;;;;;OAaG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IAGxB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@diegoaltoworks/chatter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"description": "Embeddable AI chatbot framework with RAG, authentication, and customizable widgets",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
|
-
"chatter": "./dist/bin/create-apikey.js"
|
|
9
|
+
"chatter": "./dist/bin/create-apikey.js",
|
|
10
|
+
"wa-pair": "./dist/bin/wa-pair.js"
|
|
10
11
|
},
|
|
11
12
|
"exports": {
|
|
12
13
|
".": {
|
|
@@ -33,6 +34,16 @@
|
|
|
33
34
|
"types": "./dist/usage/index.d.ts",
|
|
34
35
|
"import": "./dist/usage/index.mjs",
|
|
35
36
|
"require": "./dist/usage/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./channels": {
|
|
39
|
+
"types": "./dist/channels/index.d.ts",
|
|
40
|
+
"import": "./dist/channels/index.mjs",
|
|
41
|
+
"require": "./dist/channels/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./whatsapp": {
|
|
44
|
+
"types": "./dist/channels/whatsapp/index.d.ts",
|
|
45
|
+
"import": "./dist/channels/whatsapp/index.mjs",
|
|
46
|
+
"require": "./dist/channels/whatsapp/index.js"
|
|
36
47
|
}
|
|
37
48
|
},
|
|
38
49
|
"files": [
|
|
@@ -42,14 +53,16 @@
|
|
|
42
53
|
],
|
|
43
54
|
"scripts": {
|
|
44
55
|
"dev": "bun --watch src/index.ts",
|
|
45
|
-
"build": "bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs && bun run build:mcp && bun run build:usage && bun run build:bin && bun run build:client && bun run build:copy-client",
|
|
56
|
+
"build": "bun run build:clean && bun run build:types && bun run build:esm && bun run build:cjs && bun run build:mcp && bun run build:usage && bun run build:channels && bun run build:whatsapp && bun run build:bin && bun run build:client && bun run build:copy-client",
|
|
46
57
|
"build:clean": "rm -rf dist",
|
|
47
58
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
48
59
|
"build:esm": "esbuild src/index.ts --bundle --format=esm --outfile=dist/index.mjs --external:hono --external:openai --external:@libsql/client --external:jose --platform=node --target=node24",
|
|
49
60
|
"build:cjs": "esbuild src/index.ts --bundle --format=cjs --outfile=dist/index.js --external:hono --external:openai --external:@libsql/client --external:jose --platform=node --target=node24",
|
|
50
61
|
"build:mcp": "esbuild src/mcp-server.ts --bundle --format=esm --outfile=dist/mcp-server.mjs --external:@modelcontextprotocol/sdk --external:openai --external:@libsql/client --external:zod --platform=node --target=node24 && esbuild src/mcp-server.ts --bundle --format=cjs --outfile=dist/mcp-server.js --external:@modelcontextprotocol/sdk --external:openai --external:@libsql/client --external:zod --platform=node --target=node24",
|
|
51
62
|
"build:usage": "esbuild src/usage/index.ts --bundle --format=esm --outfile=dist/usage/index.mjs --external:@libsql/client --platform=node --target=node24 && esbuild src/usage/index.ts --bundle --format=cjs --outfile=dist/usage/index.js --external:@libsql/client --platform=node --target=node24",
|
|
52
|
-
"build:
|
|
63
|
+
"build:channels": "esbuild src/channels/index.ts --bundle --format=esm --outfile=dist/channels/index.mjs --external:hono --external:openai --external:@libsql/client --platform=node --target=node24 && esbuild src/channels/index.ts --bundle --format=cjs --outfile=dist/channels/index.js --external:hono --external:openai --external:@libsql/client --platform=node --target=node24",
|
|
64
|
+
"build:whatsapp": "esbuild src/channels/whatsapp/index.ts --bundle --format=esm --outfile=dist/channels/whatsapp/index.mjs --external:@libsql/client --external:@whiskeysockets/baileys --platform=node --target=node24 && esbuild src/channels/whatsapp/index.ts --bundle --format=cjs --outfile=dist/channels/whatsapp/index.js --external:@libsql/client --external:@whiskeysockets/baileys --platform=node --target=node24",
|
|
65
|
+
"build:bin": "esbuild bin/create-apikey.ts --bundle --format=cjs --outfile=dist/bin/create-apikey.js --external:jose --platform=node --target=node18 --banner:js='#!/usr/bin/env node' && esbuild bin/wa-pair.ts --bundle --format=cjs --outfile=dist/bin/wa-pair.js --external:@libsql/client --external:@whiskeysockets/baileys --external:qrcode-terminal --platform=node --target=node18 --banner:js='#!/usr/bin/env node'",
|
|
53
66
|
"build:client": "cd src/client && bun run build",
|
|
54
67
|
"build:copy-client": "mkdir -p dist/static && cp src/client/dist/chatter.js src/client/dist/chatter.css dist/static/",
|
|
55
68
|
"test": "bun test",
|
|
@@ -102,10 +115,20 @@
|
|
|
102
115
|
"peerDependencies": {
|
|
103
116
|
"@libsql/client": "^0.17.2",
|
|
104
117
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
118
|
+
"@whiskeysockets/baileys": "^7.0.0-rc14",
|
|
105
119
|
"hono": "^4.12.14",
|
|
106
120
|
"openai": "^7.3.0",
|
|
121
|
+
"qrcode-terminal": "^0.12.0",
|
|
107
122
|
"zod": "^3.25.76 || ^4.4.3"
|
|
108
123
|
},
|
|
124
|
+
"peerDependenciesMeta": {
|
|
125
|
+
"@whiskeysockets/baileys": {
|
|
126
|
+
"optional": true
|
|
127
|
+
},
|
|
128
|
+
"qrcode-terminal": {
|
|
129
|
+
"optional": true
|
|
130
|
+
}
|
|
131
|
+
},
|
|
109
132
|
"dependencies": {
|
|
110
133
|
"jose": "6.2.8"
|
|
111
134
|
},
|
|
@@ -115,11 +138,13 @@
|
|
|
115
138
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
116
139
|
"@types/bun": "1.3.14",
|
|
117
140
|
"@types/node": "26.2.0",
|
|
141
|
+
"@whiskeysockets/baileys": "7.0.0-rc14",
|
|
118
142
|
"esbuild": "0.28.1",
|
|
119
143
|
"hono": "4.13.1",
|
|
120
144
|
"husky": "9.1.7",
|
|
121
145
|
"lint-staged": "17.3.0",
|
|
122
146
|
"openai": "7.4.0",
|
|
147
|
+
"qrcode-terminal": "0.12.0",
|
|
123
148
|
"typescript": "7.0.2",
|
|
124
149
|
"zod": "4.4.3"
|
|
125
150
|
},
|