naruyaizumi
Version:
A WebSockets library for interacting with WhatsApp Web
117 lines (116 loc) • 4.45 kB
JavaScript
import { proto } from "../../WAProto/index.js";
import { makeLibSignalRepository } from "../Signal/libsignal.js";
import { Browsers } from "../Utils/browser-utils.js";
import logger from "../Utils/logger.js";
const version = [2, 3000, 1027934701];
export const UNAUTHORIZED_CODES = [401, 403, 419];
export const DEFAULT_ORIGIN = "https://web.whatsapp.com";
export const CALL_VIDEO_PREFIX = "https://call.whatsapp.com/video/";
export const CALL_AUDIO_PREFIX = "https://call.whatsapp.com/voice/";
export const DEF_CALLBACK_PREFIX = "CB:";
export const DEF_TAG_PREFIX = "TAG:";
export const PHONE_CONNECTION_CB = "CB:Pong";
export const WA_ADV_ACCOUNT_SIG_PREFIX = Buffer.from([6, 0]);
export const WA_ADV_DEVICE_SIG_PREFIX = Buffer.from([6, 1]);
export const WA_ADV_HOSTED_ACCOUNT_SIG_PREFIX = Buffer.from([6, 5]);
export const WA_ADV_HOSTED_DEVICE_SIG_PREFIX = Buffer.from([6, 6]);
export const WA_DEFAULT_EPHEMERAL = 7 * 24 * 60 * 60;
export const NOISE_MODE = "Noise_XX_25519_AESGCM_SHA256\0\0\0\0";
export const DICT_VERSION = 3;
export const KEY_BUNDLE_TYPE = Buffer.from([5]);
export const NOISE_WA_HEADER = Buffer.from([87, 65, 6, DICT_VERSION]); // last is "DICT_VERSION"
/** from: https://stackoverflow.com/questions/3809401/what-is-a-good-regular-expression-to-match-a-url */
export const URL_REGEX =
/https:\/\/(?![^:@\/\s]+:[^:@\/\s]+@)[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(:\d+)?(\/[^\s]*)?/g;
// TODO: Add WA root CA
export const WA_CERT_DETAILS = {
SERIAL: 0,
};
export const PROCESSABLE_HISTORY_TYPES = [
proto.HistorySync.HistorySyncType.INITIAL_BOOTSTRAP,
proto.HistorySync.HistorySyncType.PUSH_NAME,
proto.HistorySync.HistorySyncType.RECENT,
proto.HistorySync.HistorySyncType.FULL,
proto.HistorySync.HistorySyncType.ON_DEMAND,
proto.HistorySync.HistorySyncType.NON_BLOCKING_DATA,
proto.HistorySync.HistorySyncType.INITIAL_STATUS_V3,
];
export const DEFAULT_CONNECTION_CONFIG = {
version: version,
browser: Browsers.macOS("Chrome"),
waWebSocketUrl: "wss://web.whatsapp.com/ws/chat",
connectTimeoutMs: 20000,
keepAliveIntervalMs: 30000,
logger: logger.child({ class: "baileys" }),
emitOwnEvents: true,
defaultQueryTimeoutMs: 60000,
customUploadHosts: [],
retryRequestDelayMs: 250,
maxMsgRetryCount: 5,
fireInitQueries: true,
auth: undefined,
markOnlineOnConnect: true,
syncFullHistory: true,
patchMessageBeforeSending: (msg) => msg,
shouldSyncHistoryMessage: () => true,
shouldIgnoreJid: () => false,
linkPreviewImageThumbnailWidth: 192,
transactionOpts: { maxCommitRetries: 10, delayBetweenTriesMs: 3000 },
generateHighQualityLinkPreview: false,
enableAutoSessionRecreation: true,
enableRecentMessageCache: true,
options: {},
appStateMacVerification: {
patch: false,
snapshot: false,
},
countryCode: "US",
getMessage: async () => undefined,
cachedGroupMetadata: async () => undefined,
makeSignalRepository: makeLibSignalRepository,
};
export const MEDIA_PATH_MAP = {
image: "/mms/image",
video: "/mms/video",
document: "/mms/document",
audio: "/mms/audio",
sticker: "/mms/image",
"thumbnail-link": "/mms/image",
"product-catalog-image": "/product/image",
"md-app-state": "",
"md-msg-hist": "/mms/md-app-state",
"biz-cover-photo": "/pps/biz-cover-photo",
};
export const MEDIA_HKDF_KEY_MAPPING = {
audio: "Audio",
document: "Document",
gif: "Video",
image: "Image",
ppic: "",
product: "Image",
ptt: "Audio",
sticker: "Image",
video: "Video",
"thumbnail-document": "Document Thumbnail",
"thumbnail-image": "Image Thumbnail",
"thumbnail-video": "Video Thumbnail",
"thumbnail-link": "Link Thumbnail",
"md-msg-hist": "History",
"md-app-state": "App State",
"product-catalog-image": "",
"payment-bg-image": "Payment Background",
ptv: "Video",
"biz-cover-photo": "Image",
};
export const MEDIA_KEYS = Object.keys(MEDIA_PATH_MAP);
export const MIN_PREKEY_COUNT = 5;
export const INITIAL_PREKEY_COUNT = 812;
export const UPLOAD_TIMEOUT = 30000; // 30 seconds
export const MIN_UPLOAD_INTERVAL = 5000; // 5 seconds minimum between uploads
export const DEFAULT_CACHE_TTLS = {
SIGNAL_STORE: 5 * 60, // 5 minutes
MSG_RETRY: 60 * 60, // 1 hour
CALL_OFFER: 5 * 60, // 5 minutes
USER_DEVICES: 5 * 60, // 5 minutes
};
//# sourceMappingURL=index.js.map