refactor: add provider barrels and webhook grouping

This commit is contained in:
Peter Steinberger
2025-11-25 03:56:11 +01:00
parent b3511e1192
commit af577f07da
7 changed files with 46 additions and 5 deletions

View File

@@ -5,13 +5,13 @@ import { waitForever } from "./wait.js";
import { readEnv } from "../env.js";
import { monitorTwilio as monitorTwilioImpl } from "../twilio/monitor.js";
import { sendMessage, waitForFinalStatus } from "../twilio/send.js";
import { sendMessageWeb, monitorWebProvider, logWebSelfId } from "../provider-web.js";
import { sendMessageWeb, monitorWebProvider, logWebSelfId } from "../providers/web/index.js";
import { assertProvider, sleep } from "../utils.js";
import { createClient } from "../twilio/client.js";
import { listRecentMessages } from "../twilio/messages.js";
import { updateWebhook } from "../twilio/update-webhook.js";
import { updateWebhook } from "../webhook/update.js";
import { findWhatsappSenderSid } from "../twilio/senders.js";
import { startWebhook } from "../twilio/webhook.js";
import { startWebhook } from "../webhook/server.js";
import { defaultRuntime, type RuntimeEnv } from "../runtime.js";
import { info } from "../globals.js";
import { autoReplyIfConfigured } from "../auto-reply/reply.js";
@@ -25,7 +25,7 @@ export type CliDeps = {
monitorTwilio: typeof monitorTwilio;
listRecentMessages: typeof listRecentMessages;
ensurePortAvailable: typeof ensurePortAvailable;
startWebhook: typeof import("../twilio/webhook.js").startWebhook;
startWebhook: typeof startWebhook;
waitForever: typeof waitForever;
ensureBinary: typeof ensureBinary;
ensureFunnel: typeof ensureFunnel;

View File

@@ -121,7 +121,9 @@ Examples:
const provider = await pickProvider(providerPref as Provider | "auto");
if (provider === "web") {
defaultRuntime.log(infoFmt("Provider: web (personal WhatsApp Web session)"));
defaultRuntime.log(
info("Provider: web (personal WhatsApp Web session)"),
);
logWebSelfId();
try {
await monitorWebProvider(Boolean(opts.verbose));

View File

@@ -0,0 +1 @@
export type Provider = "twilio" | "web";

View File

@@ -0,0 +1,13 @@
export { sendTypingIndicator } from "../../twilio/typing.js";
export { createClient } from "../../twilio/client.js";
export { monitorTwilio } from "../../twilio/monitor.js";
export { sendMessage, waitForFinalStatus } from "../../twilio/send.js";
export { listRecentMessages, formatMessageLine } from "../../twilio/messages.js";
export {
updateWebhook,
findIncomingNumberSid,
findMessagingServiceSid,
setMessagingServiceWebhook,
} from "../../twilio/update-webhook.js";
export { findWhatsappSenderSid } from "../../twilio/senders.js";
export { formatTwilioError, logTwilioSendError } from "../../twilio/utils.js";

View File

@@ -0,0 +1,12 @@
export {
createWaSocket,
waitForWaConnection,
sendMessageWeb,
loginWeb,
monitorWebInbox,
monitorWebProvider,
webAuthExists,
logWebSelfId,
pickProvider,
WA_WEB_AUTH_DIR,
} from "../../provider-web.js";

7
src/webhook/server.ts Normal file
View File

@@ -0,0 +1,7 @@
import type { RuntimeEnv } from "../runtime.js";
import { startWebhook } from "../twilio/webhook.js";
// Thin wrapper to keep webhook server co-located with other webhook helpers.
export { startWebhook };
export type WebhookServer = Awaited<ReturnType<typeof startWebhook>>;

6
src/webhook/update.ts Normal file
View File

@@ -0,0 +1,6 @@
export {
updateWebhook,
setMessagingServiceWebhook,
findIncomingNumberSid,
findMessagingServiceSid,
} from "../twilio/update-webhook.js";