refactor: add provider barrels and webhook grouping
This commit is contained in:
@@ -5,13 +5,13 @@ import { waitForever } from "./wait.js";
|
|||||||
import { readEnv } from "../env.js";
|
import { readEnv } from "../env.js";
|
||||||
import { monitorTwilio as monitorTwilioImpl } from "../twilio/monitor.js";
|
import { monitorTwilio as monitorTwilioImpl } from "../twilio/monitor.js";
|
||||||
import { sendMessage, waitForFinalStatus } from "../twilio/send.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 { assertProvider, sleep } from "../utils.js";
|
||||||
import { createClient } from "../twilio/client.js";
|
import { createClient } from "../twilio/client.js";
|
||||||
import { listRecentMessages } from "../twilio/messages.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 { 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 { defaultRuntime, type RuntimeEnv } from "../runtime.js";
|
||||||
import { info } from "../globals.js";
|
import { info } from "../globals.js";
|
||||||
import { autoReplyIfConfigured } from "../auto-reply/reply.js";
|
import { autoReplyIfConfigured } from "../auto-reply/reply.js";
|
||||||
@@ -25,7 +25,7 @@ export type CliDeps = {
|
|||||||
monitorTwilio: typeof monitorTwilio;
|
monitorTwilio: typeof monitorTwilio;
|
||||||
listRecentMessages: typeof listRecentMessages;
|
listRecentMessages: typeof listRecentMessages;
|
||||||
ensurePortAvailable: typeof ensurePortAvailable;
|
ensurePortAvailable: typeof ensurePortAvailable;
|
||||||
startWebhook: typeof import("../twilio/webhook.js").startWebhook;
|
startWebhook: typeof startWebhook;
|
||||||
waitForever: typeof waitForever;
|
waitForever: typeof waitForever;
|
||||||
ensureBinary: typeof ensureBinary;
|
ensureBinary: typeof ensureBinary;
|
||||||
ensureFunnel: typeof ensureFunnel;
|
ensureFunnel: typeof ensureFunnel;
|
||||||
|
|||||||
@@ -121,7 +121,9 @@ Examples:
|
|||||||
const provider = await pickProvider(providerPref as Provider | "auto");
|
const provider = await pickProvider(providerPref as Provider | "auto");
|
||||||
|
|
||||||
if (provider === "web") {
|
if (provider === "web") {
|
||||||
defaultRuntime.log(infoFmt("Provider: web (personal WhatsApp Web session)"));
|
defaultRuntime.log(
|
||||||
|
info("Provider: web (personal WhatsApp Web session)"),
|
||||||
|
);
|
||||||
logWebSelfId();
|
logWebSelfId();
|
||||||
try {
|
try {
|
||||||
await monitorWebProvider(Boolean(opts.verbose));
|
await monitorWebProvider(Boolean(opts.verbose));
|
||||||
|
|||||||
1
src/providers/provider.types.ts
Normal file
1
src/providers/provider.types.ts
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export type Provider = "twilio" | "web";
|
||||||
13
src/providers/twilio/index.ts
Normal file
13
src/providers/twilio/index.ts
Normal 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";
|
||||||
12
src/providers/web/index.ts
Normal file
12
src/providers/web/index.ts
Normal 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
7
src/webhook/server.ts
Normal 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
6
src/webhook/update.ts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
export {
|
||||||
|
updateWebhook,
|
||||||
|
setMessagingServiceWebhook,
|
||||||
|
findIncomingNumberSid,
|
||||||
|
findMessagingServiceSid,
|
||||||
|
} from "../twilio/update-webhook.js";
|
||||||
Reference in New Issue
Block a user