diff --git a/src/cli/deps.ts b/src/cli/deps.ts index 85357351c..b4c911ea4 100644 --- a/src/cli/deps.ts +++ b/src/cli/deps.ts @@ -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; diff --git a/src/cli/program.ts b/src/cli/program.ts index 5e63673da..772dcc199 100644 --- a/src/cli/program.ts +++ b/src/cli/program.ts @@ -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)); diff --git a/src/providers/provider.types.ts b/src/providers/provider.types.ts new file mode 100644 index 000000000..b013984ea --- /dev/null +++ b/src/providers/provider.types.ts @@ -0,0 +1 @@ +export type Provider = "twilio" | "web"; diff --git a/src/providers/twilio/index.ts b/src/providers/twilio/index.ts new file mode 100644 index 000000000..c89c233e4 --- /dev/null +++ b/src/providers/twilio/index.ts @@ -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"; diff --git a/src/providers/web/index.ts b/src/providers/web/index.ts new file mode 100644 index 000000000..44aaba6d2 --- /dev/null +++ b/src/providers/web/index.ts @@ -0,0 +1,12 @@ +export { + createWaSocket, + waitForWaConnection, + sendMessageWeb, + loginWeb, + monitorWebInbox, + monitorWebProvider, + webAuthExists, + logWebSelfId, + pickProvider, + WA_WEB_AUTH_DIR, +} from "../../provider-web.js"; diff --git a/src/webhook/server.ts b/src/webhook/server.ts new file mode 100644 index 000000000..8fbaf324a --- /dev/null +++ b/src/webhook/server.ts @@ -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>; diff --git a/src/webhook/update.ts b/src/webhook/update.ts new file mode 100644 index 000000000..3a8efe72b --- /dev/null +++ b/src/webhook/update.ts @@ -0,0 +1,6 @@ +export { + updateWebhook, + setMessagingServiceWebhook, + findIncomingNumberSid, + findMessagingServiceSid, +} from "../twilio/update-webhook.js";