| import axios, { AxiosRequestConfig } from 'axios'; | |
| import { fetchLatestBaileysVersion, WAVersion } from 'baileys'; | |
| export const fetchLatestWaWebVersion = async (options: AxiosRequestConfig<{}>) => { | |
| try { | |
| const { data } = await axios.get('https://web.whatsapp.com/sw.js', { | |
| ...options, | |
| responseType: 'json', | |
| }); | |
| const regex = /\\?"client_revision\\?":\s*(\d+)/; | |
| const match = data.match(regex); | |
| if (!match?.[1]) { | |
| return { | |
| version: (await fetchLatestBaileysVersion()).version as WAVersion, | |
| isLatest: false, | |
| error: { | |
| message: 'Could not find client revision in the fetched content', | |
| }, | |
| }; | |
| } | |
| const clientRevision = match[1]; | |
| return { | |
| version: [2, 3000, +clientRevision] as WAVersion, | |
| isLatest: true, | |
| }; | |
| } catch (error) { | |
| return { | |
| version: (await fetchLatestBaileysVersion()).version as WAVersion, | |
| isLatest: false, | |
| error, | |
| }; | |
| } | |
| }; | |