@heavstaltech/api 1.0.0 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -0
- package/dist/index.d.mts +27 -1
- package/dist/index.d.ts +27 -1
- package/dist/index.js +152 -28
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +148 -27
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts","../src/dl/tiktok.ts","../src/dl/social.ts","../src/dl/youtube.ts","../src/utils/tools.ts","../src/index.ts"],"names":["axios","cheerio","USER_AGENTS","getRandomHeaders","cheerio2","yts","ytdl","https","FormData","cheerio3","search"],"mappings":"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","file":"index.js","sourcesContent":["export interface Author {\n name: string;\n source: string;\n}\n\nexport const AUTHOR: Author = {\n name: \"HEAVSTAL TECH\",\n source: \"https://heavstal-tech.vercel.app\"\n};\n\nexport interface TikTokResult {\n author: Author;\n status: boolean;\n title: string;\n cover?: string;\n origin_cover?: string;\n no_watermark?: string;\n watermark?: string;\n music?: string;\n views?: number | string;\n likes?: number | string;\n comments?: number | string;\n shares?: number | string;\n downloads?: number | string;\n uniqueId?: string;\n profileUrl?: string;\n profileImage?: string;\n hashtags?: string[];\n slideImages?: string[];\n author_name?: string;\n}\n\nexport interface SocialResult {\n author: Author;\n status: boolean;\n type: 'video' | 'image';\n title?: string;\n thumbnail?: string;\n url: string;\n}\n\nexport interface YouTubeResult {\n author: Author;\n title: string;\n thumbnail: string;\n channel: string;\n published: string;\n views: string;\n url: string;\n duration?: number | string;\n status?: boolean;\n}\n\nexport interface YouTubeSearchResult {\n type: 'video' | 'channel' | 'list' | 'live';\n url: string;\n title: string;\n description?: string;\n image?: string;\n thumbnail?: string;\n seconds?: number;\n timestamp?: string;\n views?: number;\n ago?: string;\n author?: {\n name: string;\n url: string;\n };\n}\n\nexport interface UtilsResult {\n author: Author;\n status: boolean;\n data: Buffer | string | any;\n}\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TikTokResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\n\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Accept': 'application/json, text/javascript, */*; q=0.01'\n});\n\nconst cleanText = (str: string) => str ? str.replace(/(<br?\\s?\\/?>)/gi, \" \\n\").replace(/(<([^>]+)>)/gi, \"\").trim() : \"\";\nconst cleanUrl = (url: string) => url ? url.replace('https:', 'http:') : \"\";\n\nconst lovetikFallback = async (url: string): Promise<TikTokResult> => {\n try {\n const { data } = await axios.post(\"https://lovetik.com/api/ajax/search\", \n new URLSearchParams({ query: url }), \n { headers: getRandomHeaders() }\n );\n\n if (!data.links) throw new Error(\"Lovetik: No links found\");\n\n return {\n author: AUTHOR,\n status: true,\n title: cleanText(data.desc),\n cover: cleanUrl(data.cover),\n no_watermark: cleanUrl(data.links.find((l: any) => l.a && !l.s)?.a), // Usually the first link is No WM\n watermark: cleanUrl(data.links.find((l: any) => l.s?.includes('Watermark'))?.a),\n music: cleanUrl(data.links.find((l: any) => l.t?.includes('Audio'))?.a),\n author_name: cleanText(data.author),\n views: \"N/A\"\n } as TikTokResult;\n\n } catch (error: any) {\n throw new Error(`Fallback Failed: ${error.message}`);\n }\n};\n\n/**\n * Main TikTok Function\n * Supports: URL Download & Search Query\n */\nexport const tiktok = async (input: string): Promise<TikTokResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const isUrl = input.match(/tiktok\\.com/i);\n let data;\n \n try {\n if (isUrl) {\n const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;\n const response = await axios.get(apiUrl, { headers: getRandomHeaders() });\n if (response.data.code !== 0) throw new Error(\"Private video or Invalid URL\");\n data = response.data.data;\n } else {\n const apiUrl = `https://www.tikwm.com/api/feed/search`;\n const response = await axios.post(apiUrl, \n new URLSearchParams({\n keywords: input,\n count: '1',\n cursor: '0',\n HD: '1'\n }), \n { headers: { ...getRandomHeaders(), 'Cookie': 'current_language=en' } }\n );\n \n if (!response.data.data?.videos || response.data.data.videos.length === 0) {\n throw new Error(`No results found for: ${input}`);\n }\n data = response.data.data.videos[0];\n }\n\n const result: TikTokResult = {\n author: AUTHOR,\n status: true,\n title: data.title,\n cover: data.cover,\n origin_cover: data.origin_cover,\n no_watermark: data.play,\n watermark: data.wmplay,\n music: data.music,\n views: data.play_count,\n likes: data.digg_count,\n comments: data.comment_count,\n shares: data.share_count,\n downloads: data.download_count\n };\n resolve(result);\n\n } catch (primaryError) {\n if (isUrl) {\n console.warn(\"Primary TikTok API failed, switching to fallback...\");\n const fallbackData = await lovetikFallback(input);\n resolve(fallbackData);\n } else {\n throw primaryError;\n }\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"TikTok processing failed\"\n });\n }\n });\n};\n\n/**\n * TikTok Slide Downloader\n */\nexport const tiktokSlide = async (url: string): Promise<TikTokResult> => {\n try {\n const response = await axios.post(\"https://api.ttsave.app/\", {\n id: url,\n hash: '1e3a27c51eb6370b0db6f9348a481d69',\n mode: 'slide',\n locale: 'en',\n loading_indicator_url: 'https://ttsave.app/images/slow-down.gif',\n unlock_url: 'https://ttsave.app/en/unlock'\n }, {\n headers: getRandomHeaders()\n });\n\n const $ = cheerio.load(response.data);\n const $element = $('div.flex.flex-col.items-center.justify-center.mt-2.mb-5');\n if ($element.length === 0) throw new Error(\"Slide not found or service unavailable\");\n const statsDiv = $element.find('div.flex.flex-row.items-center.justify-center');\n return {\n author: AUTHOR,\n status: true,\n uniqueId: $element.find('input#unique-id').attr('value'),\n title: $element.find('div.flex.flex-row.items-center.justify-center h2').text().trim(),\n profileImage: $element.find('a').first().find('img').attr('src'),\n profileUrl: $element.find('a').first().attr('href'),\n hashtags: $element.find('p.text-gray-600').text().split(' ').filter(Boolean),\n likes: statsDiv.eq(0).find('span').text().trim(),\n comments: statsDiv.eq(1).find('span').text().trim(),\n shares: statsDiv.eq(2).find('span').text().trim(),\n downloads: statsDiv.eq(3).find('span').text().trim(),\n views: statsDiv.eq(4).find('span').text().trim()\n };\n } catch (error: any) {\n return {\n author: AUTHOR,\n status: false,\n title: \"Error\",\n views: error.message\n } as TikTokResult;\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, SocialResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'Connection': 'keep-alive'\n});\n\n/**\n * Facebook Video Downloader\n * Source: getmyfb.com\n */\nexport const fbdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.post(\"https://getmyfb.com/process\", \n new URLSearchParams({\n id: url,\n locale: \"en\"\n }), \n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n \"Cookie\": \"PHPSESSID=mtkljtmk74aiej5h6d846gjbo4; __cflb=04dToeZfC9vebXjRcJCMjjSQh5PprejufZXs2vHCt5; _token=K5Qobnj4QvoYKeLCW6uk\" //s\n }\n }\n );\n\n const $ = cheerio.load(data);\n const results: SocialResult[] = [];\n const title = $(\"div.results-item-text\").eq(0).text().trim();\n const thumbnail = $(\".results-item-image-wrapper img\").attr(\"src\") || \"\";\n $(\"a.btn-download\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if (link) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title || \"Facebook Video\",\n thumbnail: thumbnail,\n url: link\n });\n }\n });\n\n if (results.length === 0) {\n const singleLink = $(\"a\").attr(\"href\");\n if(singleLink && singleLink.startsWith('http')) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title,\n thumbnail: thumbnail,\n url: singleLink\n })\n } else {\n reject(new Error(\"No Facebook video found (Private or Invalid URL)\"));\n return;\n }\n }\n resolve(results);\n\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Facebook Download Failed\"\n });\n }\n });\n};\n\n/**\n * Instagram Downloader\n * Source: indown.io\n */\nexport const igdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const initialResponse = await axios.get(\"https://indown.io/\", {\n headers: getRandomHeaders()\n });\n \n const _$ = cheerio.load(initialResponse.data);\n const referer = _$(\"input[name=referer]\").val() as string;\n const locale = _$(\"input[name=locale]\").val() as string;\n const _token = _$(\"input[name=_token]\").val() as string;\n const cookies = initialResponse.headers[\"set-cookie\"]?.join(\" \") || \"\";\n\n if (!_token) throw new Error(\"Failed to fetch Instagram token\");\n const { data } = await axios.post(\n \"https://indown.io/download\",\n new URLSearchParams({\n link: url,\n referer,\n locale,\n _token,\n }),\n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Cookie\": cookies,\n \"Origin\": \"https://indown.io\",\n \"Referer\": \"https://indown.io/\"\n },\n }\n );\n\n const $ = cheerio.load(data);\n const result: SocialResult[] = [];\n $(\"video\").each(function () {\n const $$ = $(this);\n const src = $$.find(\"source\").attr(\"src\");\n const poster = $$.attr(\"poster\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n thumbnail: poster,\n url: src,\n });\n }\n });\n\n $(\"img.img-fluid\").each(function () {\n const $$ = $(this);\n const src = $$.attr(\"src\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"image\",\n thumbnail: src,\n url: src,\n });\n }\n });\n \n if(result.length === 0) {\n $(\".btn-group a\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if(link && link !== \"#\") {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n url: link\n });\n }\n });\n }\n\n if (result.length === 0) {\n const errorMsg = $(\".alert-danger\").text().trim();\n reject(new Error(errorMsg || \"No media found. Account might be private.\"));\n } else {\n resolve(result);\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Instagram Download Failed\"\n });\n }\n });\n};\n","import ytdl from '@distube/ytdl-core';\nimport yts from 'yt-search';\nimport { AUTHOR, YouTubeResult, YouTubeSearchResult } from '../types';\n\n/*\n * YouTube Search\n */\nexport const search = async (query: string): Promise<YouTubeSearchResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const result = await yts(query);\n if (!result.all || result.all.length === 0) {\n return reject(new Error(\"No results found on YouTube.\"));\n }\n const data: YouTubeSearchResult[] = result.all.map((item: any) => {\n return {\n type: item.type as 'video' | 'channel' | 'list' | 'live',\n url: item.url,\n title: item.title,\n description: item.description,\n image: item.image,\n thumbnail: item.thumbnail,\n seconds: (item as any).seconds,\n timestamp: (item as any).timestamp,\n views: (item as any).views,\n ago: (item as any).ago,\n author: (item as any).author ? {\n name: (item as any).author.name,\n url: (item as any).author.url\n } : undefined\n };\n });\n resolve(data);\n } catch (error: any) {\n reject({\n message: error.message || \"YouTube Search Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Audio Downloader\n */\nexport const ytmp3 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highestaudio',\n filter: 'audioonly' \n });\n if (!format) throw new Error(\"No audio stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, // Highest res\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: format.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP3 Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Video Downloader\n */\nexport const ytmp4 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true && f.container === 'mp4'\n });\n const finalFormat = format || ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true\n });\n if (!finalFormat) throw new Error(\"No video stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url,\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: finalFormat.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP4 Failed\"\n });\n }\n });\n};\n\n/**\n * YouTube Play (Search & Download)\n * Searches for a query, grabs the first result, and returns the download link\n */\nexport const play = async (query: string, type: 'mp3' | 'mp4' = 'mp3'): Promise<YouTubeResult> => {\n try {\n const searchResults = await yts(query);\n const videos = searchResults.all.filter((v: any) => v.type === 'video');\n if (videos.length === 0) {\n throw new Error(`No video results found for: ${query}`);\n }\n const firstVideo = videos[0];\n if (type === 'mp4') {\n return await ytmp4(firstVideo.url);\n } else {\n return await ytmp3(firstVideo.url);\n }\n } catch (error: any) {\n throw new Error(`Play Failed: ${error.message}`);\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport FormData from 'form-data';\nimport https from 'https';\nimport { AUTHOR, Author } from '../types';\n\nconst HEADERS = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n};\n\nconst ignoreSSL = new https.Agent({ \n rejectUnauthorized: false,\n servername: 'inferenceengine.vyro.ai'\n});\n\nexport const ssweb = async (url: string, device: 'desktop' | 'tablet' | 'phone' = 'desktop'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const baseURL = 'https://www.screenshotmachine.com';\n const param = { url: url, device: device, cacheLimit: 0 };\n const { data, headers } = await axios.post(`${baseURL}/capture.php`, \n new URLSearchParams(param as any), {\n headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': HEADERS['User-Agent'] }\n });\n if (data.status !== 'success') throw new Error('Screenshot generation failed');\n const cookies = headers['set-cookie']?.join('') || '';\n const imageResponse = await axios.get(`${baseURL}/${data.link}`, {\n headers: { 'cookie': cookies, 'User-Agent': HEADERS['User-Agent'] },\n responseType: 'arraybuffer'\n });\n resolve(imageResponse.data);\n } catch (error: any) {\n reject(new Error(`SSWeb Failed: ${error.message}`));\n }\n });\n};\n\nexport const remini = async (imageUrl: string, method: 'enhance' | 'recolor' | 'dehaze' = 'enhance'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const validMethods = [\"enhance\", \"recolor\", \"dehaze\"];\n const selectedMethod = validMethods.includes(method) ? method : \"enhance\";\n const imgBuffer = await axios.get(imageUrl, { responseType: 'arraybuffer' });\n const form = new FormData();\n form.append(\"model_version\", 1, {\n header: { \"Content-Transfer-Encoding\": \"binary\", \"contentType\": \"multipart/form-data; charset=utf-8\" }\n });\n form.append(\"image\", Buffer.from(imgBuffer.data), {\n filename: \"enhance_image_body.jpg\",\n contentType: \"image/jpeg\",\n });\n const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;\n const response = await axios.post(url, form, {\n headers: {\n ...form.getHeaders(),\n \"User-Agent\": \"okhttp/4.9.3\",\n \"Connection\": \"Keep-Alive\",\n \"Accept-Encoding\": \"gzip\"\n },\n responseType: 'arraybuffer',\n httpsAgent: ignoreSSL \n });\n resolve(response.data);\n } catch (error: any) {\n reject(new Error(`Remini Failed: ${error.message}`));\n }\n });\n};\n\nexport const styleText = async (text: string): Promise<{ author: Author, name: string, result: string }[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);\n const $ = cheerio.load(data);\n const result: { author: Author, name: string, result: string }[] = [];\n $('table > tbody > tr').each((i, el) => {\n const name = $(el).find('td').first().text().trim();\n const styled = $(el).find('td').eq(1).text().trim();\n if (name && styled) {\n result.push({ author: AUTHOR, name: name, result: styled });\n }\n });\n resolve(result);\n } catch (error: any) {\n reject(new Error(`StyleText Failed: ${error.message}`));\n }\n });\n};\n\nexport const wattpad = async (query: string): Promise<any[]> => {\n try {\n const { data } = await axios.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });\n const $ = cheerio.load(data);\n const results: any[] = [];\n $('.story-card').each((i, el) => {\n const title = $(el).find('.story-title').text().trim();\n const image = $(el).find('.cover img').attr('src');\n const link = 'https://www.wattpad.com' + $(el).find('a.story-card-data').attr('href');\n const reads = $(el).find('.read-count').text().trim(); \n if (title) results.push({ author: AUTHOR, title, image, link, reads });\n });\n if (results.length === 0) {\n $('div.cover').each((i, el) => {\n results.push({ author: AUTHOR, image: $(el).find('img').attr('src') });\n });\n }\n return results;\n } catch (error: any) {\n throw new Error(`Wattpad Failed: ${error.message}`);\n }\n};\n\nexport const chords = async (query: string): Promise<any> => {\n try {\n const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, \"+\")}`;\n const { data } = await axios.get(searchUrl, { headers: HEADERS });\n const $ = cheerio.load(data); \n const firstResultUrl = $(\"table.table > tbody > tr\").eq(0).find(\"td\").eq(0).find(\"a\").eq(0).attr(\"href\");\n if (!firstResultUrl) throw new Error(\"No chords found\");\n const songPage = await axios.get(firstResultUrl, { headers: HEADERS });\n const $song = cheerio.load(songPage.data); \n const $hcontent = $song(\"div.hcontent\");\n const artist = $hcontent.find(\"div > a > span.subtitle\").text().trim();\n const title = $hcontent.find(\"h1.title\").text().trim();\n const content = $song(\"div.content > pre\").text().trim();\n return { author: AUTHOR, title, artist, url: firstResultUrl, chord: content };\n } catch (error: any) {\n throw new Error(`Chords Failed: ${error.message}`);\n }\n};\n","import { tiktok, tiktokSlide } from './dl/tiktok';\nimport { igdl, fbdl } from './dl/social';\nimport { search as ytSearch, ytmp3, ytmp4, play } from './dl/youtube';\nimport { ssweb, remini, styleText, wattpad, chords } from './utils/tools';\n\nexport * from './types';\nexport { \n tiktok, \n tiktokSlide, \n igdl, \n fbdl, \n ytSearch, \n ytmp3, \n ytmp4, \n play,\n ssweb, \n remini, \n styleText, \n wattpad, \n chords\n};\nexport const downloader = {\n tiktok,\n tiktokSlide,\n igdl,\n fbdl,\n ytmp3,\n ytmp4,\n play\n};\nexport const search = {\n youtube: ytSearch,\n wattpad,\n chords\n};\nexport const tools = {\n ssweb,\n remini,\n styleText\n};\nexport default {\n downloader,\n search,\n tools\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/types.ts","../src/dl/tiktok.ts","../src/dl/social.ts","../src/dl/twitter.ts","../src/dl/youtube.ts","../src/utils/tools.ts","../src/index.ts"],"names":["axios","cheerio","USER_AGENTS","getRandomHeaders","cheerio2","cleanUrl","cheerio3","yts","ytdl","https","FormData","cheerio4","search"],"mappings":"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","file":"index.js","sourcesContent":["export interface Author {\n name: string;\n source: string;\n}\n\nexport const AUTHOR: Author = {\n name: \"HEAVSTAL TECH\",\n source: \"https://heavstal-tech.vercel.app\"\n};\n\nexport interface TikTokResult {\n author: Author;\n status: boolean;\n title: string;\n cover?: string;\n origin_cover?: string;\n no_watermark?: string;\n watermark?: string;\n music?: string;\n views?: number | string;\n likes?: number | string;\n comments?: number | string;\n shares?: number | string;\n downloads?: number | string;\n uniqueId?: string;\n profileUrl?: string;\n profileImage?: string;\n hashtags?: string[];\n slideImages?: string[];\n author_name?: string;\n}\n\nexport interface SocialResult {\n author: Author;\n status: boolean;\n type: 'video' | 'image';\n title?: string;\n thumbnail?: string;\n url: string;\n}\n\nexport interface YouTubeResult {\n author: Author;\n title: string;\n thumbnail: string;\n channel: string;\n published: string;\n views: string;\n url: string;\n duration?: number | string;\n status?: boolean;\n}\n\nexport interface YouTubeSearchResult {\n type: 'video' | 'channel' | 'list' | 'live';\n url: string;\n title: string;\n description?: string;\n image?: string;\n thumbnail?: string;\n seconds?: number;\n timestamp?: string;\n views?: number;\n ago?: string;\n author?: {\n name: string;\n url: string;\n };\n}\n\nexport interface UtilsResult {\n author: Author;\n status: boolean;\n data: Buffer | string | any;\n}\n\nexport interface TwitterResult {\n author: Author;\n status: boolean;\n desc: string;\n thumbnail: string;\n video_sd?: string;\n video_hd?: string;\n audio?: string;\n}\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TikTokResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\n\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n 'Accept': 'application/json, text/javascript, */*; q=0.01'\n});\n\nconst cleanText = (str: string) => str ? str.replace(/(<br?\\s?\\/?>)/gi, \" \\n\").replace(/(<([^>]+)>)/gi, \"\").trim() : \"\";\nconst cleanUrl = (url: string) => url ? url.replace('https:', 'http:') : \"\";\n\nconst lovetikFallback = async (url: string): Promise<TikTokResult> => {\n try {\n const { data } = await axios.post(\"https://lovetik.com/api/ajax/search\", \n new URLSearchParams({ query: url }), \n { headers: getRandomHeaders() }\n );\n\n if (!data.links) throw new Error(\"Lovetik: No links found\");\n\n return {\n author: AUTHOR,\n status: true,\n title: cleanText(data.desc),\n cover: cleanUrl(data.cover),\n no_watermark: cleanUrl(data.links.find((l: any) => l.a && !l.s)?.a), // Usually the first link is No WM\n watermark: cleanUrl(data.links.find((l: any) => l.s?.includes('Watermark'))?.a),\n music: cleanUrl(data.links.find((l: any) => l.t?.includes('Audio'))?.a),\n author_name: cleanText(data.author),\n views: \"N/A\"\n } as TikTokResult;\n\n } catch (error: any) {\n throw new Error(`Fallback Failed: ${error.message}`);\n }\n};\n\n/**\n * Main TikTok Function\n * Supports: URL Download & Search Query\n */\nexport const tiktok = async (input: string): Promise<TikTokResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const isUrl = input.match(/tiktok\\.com/i);\n let data;\n \n try {\n if (isUrl) {\n const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;\n const response = await axios.get(apiUrl, { headers: getRandomHeaders() });\n if (response.data.code !== 0) throw new Error(\"Private video or Invalid URL\");\n data = response.data.data;\n } else {\n const apiUrl = `https://www.tikwm.com/api/feed/search`;\n const response = await axios.post(apiUrl, \n new URLSearchParams({\n keywords: input,\n count: '1',\n cursor: '0',\n HD: '1'\n }), \n { headers: { ...getRandomHeaders(), 'Cookie': 'current_language=en' } }\n );\n \n if (!response.data.data?.videos || response.data.data.videos.length === 0) {\n throw new Error(`No results found for: ${input}`);\n }\n data = response.data.data.videos[0];\n }\n\n const result: TikTokResult = {\n author: AUTHOR,\n status: true,\n title: data.title,\n cover: data.cover,\n origin_cover: data.origin_cover,\n no_watermark: data.play,\n watermark: data.wmplay,\n music: data.music,\n views: data.play_count,\n likes: data.digg_count,\n comments: data.comment_count,\n shares: data.share_count,\n downloads: data.download_count\n };\n resolve(result);\n\n } catch (primaryError) {\n if (isUrl) {\n console.warn(\"Primary TikTok API failed, switching to fallback...\");\n const fallbackData = await lovetikFallback(input);\n resolve(fallbackData);\n } else {\n throw primaryError;\n }\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"TikTok processing failed\"\n });\n }\n });\n};\n\n/**\n * TikTok Slide Downloader\n */\nexport const tiktokSlide = async (url: string): Promise<TikTokResult> => {\n try {\n const response = await axios.post(\"https://api.ttsave.app/\", {\n id: url,\n hash: '1e3a27c51eb6370b0db6f9348a481d69',\n mode: 'slide',\n locale: 'en',\n loading_indicator_url: 'https://ttsave.app/images/slow-down.gif',\n unlock_url: 'https://ttsave.app/en/unlock'\n }, {\n headers: getRandomHeaders()\n });\n\n const $ = cheerio.load(response.data);\n const $element = $('div.flex.flex-col.items-center.justify-center.mt-2.mb-5');\n if ($element.length === 0) throw new Error(\"Slide not found or service unavailable\");\n const statsDiv = $element.find('div.flex.flex-row.items-center.justify-center');\n return {\n author: AUTHOR,\n status: true,\n uniqueId: $element.find('input#unique-id').attr('value'),\n title: $element.find('div.flex.flex-row.items-center.justify-center h2').text().trim(),\n profileImage: $element.find('a').first().find('img').attr('src'),\n profileUrl: $element.find('a').first().attr('href'),\n hashtags: $element.find('p.text-gray-600').text().split(' ').filter(Boolean),\n likes: statsDiv.eq(0).find('span').text().trim(),\n comments: statsDiv.eq(1).find('span').text().trim(),\n shares: statsDiv.eq(2).find('span').text().trim(),\n downloads: statsDiv.eq(3).find('span').text().trim(),\n views: statsDiv.eq(4).find('span').text().trim()\n };\n } catch (error: any) {\n return {\n author: AUTHOR,\n status: false,\n title: \"Error\",\n views: error.message\n } as TikTokResult;\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, SocialResult } from '../types';\n\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Mobile Safari/537.36',\n 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',\n 'Accept-Language': 'en-US,en;q=0.5',\n 'Accept-Encoding': 'gzip, deflate, br',\n 'Connection': 'keep-alive'\n});\n\n/**\n * Facebook Video Downloader\n * Source: getmyfb.com\n */\nexport const fbdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.post(\"https://getmyfb.com/process\", \n new URLSearchParams({\n id: url,\n locale: \"en\"\n }), \n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded; charset=UTF-8\",\n \"Cookie\": \"PHPSESSID=mtkljtmk74aiej5h6d846gjbo4; __cflb=04dToeZfC9vebXjRcJCMjjSQh5PprejufZXs2vHCt5; _token=K5Qobnj4QvoYKeLCW6uk\" //s\n }\n }\n );\n\n const $ = cheerio.load(data);\n const results: SocialResult[] = [];\n const title = $(\"div.results-item-text\").eq(0).text().trim();\n const thumbnail = $(\".results-item-image-wrapper img\").attr(\"src\") || \"\";\n $(\"a.btn-download\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if (link) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title || \"Facebook Video\",\n thumbnail: thumbnail,\n url: link\n });\n }\n });\n\n if (results.length === 0) {\n const singleLink = $(\"a\").attr(\"href\");\n if(singleLink && singleLink.startsWith('http')) {\n results.push({\n author: AUTHOR,\n status: true,\n type: 'video',\n title: title,\n thumbnail: thumbnail,\n url: singleLink\n })\n } else {\n reject(new Error(\"No Facebook video found (Private or Invalid URL)\"));\n return;\n }\n }\n resolve(results);\n\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Facebook Download Failed\"\n });\n }\n });\n};\n\n/**\n * Instagram Downloader\n * Source: indown.io\n */\nexport const igdl = async (url: string): Promise<SocialResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const initialResponse = await axios.get(\"https://indown.io/\", {\n headers: getRandomHeaders()\n });\n \n const _$ = cheerio.load(initialResponse.data);\n const referer = _$(\"input[name=referer]\").val() as string;\n const locale = _$(\"input[name=locale]\").val() as string;\n const _token = _$(\"input[name=_token]\").val() as string;\n const cookies = initialResponse.headers[\"set-cookie\"]?.join(\" \") || \"\";\n\n if (!_token) throw new Error(\"Failed to fetch Instagram token\");\n const { data } = await axios.post(\n \"https://indown.io/download\",\n new URLSearchParams({\n link: url,\n referer,\n locale,\n _token,\n }),\n {\n headers: {\n ...getRandomHeaders(),\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n \"Cookie\": cookies,\n \"Origin\": \"https://indown.io\",\n \"Referer\": \"https://indown.io/\"\n },\n }\n );\n\n const $ = cheerio.load(data);\n const result: SocialResult[] = [];\n $(\"video\").each(function () {\n const $$ = $(this);\n const src = $$.find(\"source\").attr(\"src\");\n const poster = $$.attr(\"poster\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n thumbnail: poster,\n url: src,\n });\n }\n });\n\n $(\"img.img-fluid\").each(function () {\n const $$ = $(this);\n const src = $$.attr(\"src\");\n if (src) {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"image\",\n thumbnail: src,\n url: src,\n });\n }\n });\n \n if(result.length === 0) {\n $(\".btn-group a\").each((i, el) => {\n const link = $(el).attr(\"href\");\n if(link && link !== \"#\") {\n result.push({\n author: AUTHOR,\n status: true,\n type: \"video\",\n url: link\n });\n }\n });\n }\n\n if (result.length === 0) {\n const errorMsg = $(\".alert-danger\").text().trim();\n reject(new Error(errorMsg || \"No media found. Account might be private.\"));\n } else {\n resolve(result);\n }\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"Instagram Download Failed\"\n });\n }\n });\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport { AUTHOR, TwitterResult } from '../types';\nconst USER_AGENTS = [\n 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36'\n];\nconst getRandomHeaders = () => ({\n 'User-Agent': USER_AGENTS[Math.floor(Math.random() * USER_AGENTS.length)],\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Origin': 'https://twdown.net',\n 'Referer': 'https://twdown.net/'\n});\n\n/**\n * Twitter/X Video Downloader\n * x.com and twitter.com links\n */\nexport const twitter = async (url: string): Promise<TwitterResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n const cleanUrl = url.replace(\"x.com\", \"twitter.com\");\n const config = new URLSearchParams({ URL: cleanUrl });\n const { data } = await axios.post('https://twdown.net/download.php', config, {\n headers: getRandomHeaders()\n });\n const $ = cheerio.load(data);\n const desc = $('div:nth-child(1) > div:nth-child(2) > p').text().trim();\n const thumb = $('div:nth-child(1) > img').attr('src'); \n const video_hd = $('tbody > tr:nth-child(1) > td:nth-child(4) > a').attr('href');\n const video_sd = $('tr:nth-child(2) > td:nth-child(4) > a').attr('href'); \n let audio = $('body > div.jumbotron > div > center > div.row > div > div:nth-child(5) > table > tbody > tr:nth-child(3) > td:nth-child(4) > a').attr('href');\n if (audio && !audio.startsWith('http')) audio = 'https://twdown.net/' + audio;\n if (!video_sd && !video_hd) {\n throw new Error(\"No media found. Account might be private or link is invalid.\");\n }\n const result: TwitterResult = {\n author: AUTHOR,\n status: true,\n desc: desc || \"X/Twitter Video\",\n thumbnail: thumb || \"\",\n video_sd,\n video_hd,\n audio\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"X/Twitter Download Failed\"\n });\n }\n });\n};\n","import ytdl from '@distube/ytdl-core';\nimport yts from 'yt-search';\nimport { AUTHOR, YouTubeResult, YouTubeSearchResult } from '../types';\n\n/*\n * YouTube Search\n */\nexport const search = async (query: string): Promise<YouTubeSearchResult[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const result = await yts(query);\n if (!result.all || result.all.length === 0) {\n return reject(new Error(\"No results found on YouTube.\"));\n }\n const data: YouTubeSearchResult[] = result.all.map((item: any) => {\n return {\n type: item.type as 'video' | 'channel' | 'list' | 'live',\n url: item.url,\n title: item.title,\n description: item.description,\n image: item.image,\n thumbnail: item.thumbnail,\n seconds: (item as any).seconds,\n timestamp: (item as any).timestamp,\n views: (item as any).views,\n ago: (item as any).ago,\n author: (item as any).author ? {\n name: (item as any).author.name,\n url: (item as any).author.url\n } : undefined\n };\n });\n resolve(data);\n } catch (error: any) {\n reject({\n message: error.message || \"YouTube Search Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Audio Downloader\n */\nexport const ytmp3 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highestaudio',\n filter: 'audioonly' \n });\n if (!format) throw new Error(\"No audio stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url, // Highest res\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: format.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP3 Failed\"\n });\n }\n });\n};\n\n/*\n * YouTube Video Downloader\n */\nexport const ytmp4 = async (url: string): Promise<YouTubeResult> => {\n return new Promise(async (resolve, reject) => {\n try {\n if (!ytdl.validateURL(url)) {\n throw new Error(\"Invalid YouTube URL\");\n }\n const info = await ytdl.getInfo(url);\n const format = ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true && f.container === 'mp4'\n });\n const finalFormat = format || ytdl.chooseFormat(info.formats, { \n quality: 'highest',\n filter: (f) => f.hasAudio === true && f.hasVideo === true\n });\n if (!finalFormat) throw new Error(\"No video stream found\");\n const result: YouTubeResult = {\n author: AUTHOR,\n title: info.videoDetails.title,\n thumbnail: info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1].url,\n channel: info.videoDetails.ownerChannelName,\n published: info.videoDetails.publishDate,\n views: info.videoDetails.viewCount,\n duration: info.videoDetails.lengthSeconds,\n url: finalFormat.url\n };\n resolve(result);\n } catch (error: any) {\n reject({\n author: AUTHOR,\n status: false,\n message: error.message || \"YouTube MP4 Failed\"\n });\n }\n });\n};\n\n/**\n * YouTube Play (Search & Download)\n * Searches for a query, grabs the first result, and returns the download link\n */\nexport const play = async (query: string, type: 'mp3' | 'mp4' = 'mp3'): Promise<YouTubeResult> => {\n try {\n const searchResults = await yts(query);\n const videos = searchResults.all.filter((v: any) => v.type === 'video');\n if (videos.length === 0) {\n throw new Error(`No video results found for: ${query}`);\n }\n const firstVideo = videos[0];\n if (type === 'mp4') {\n return await ytmp4(firstVideo.url);\n } else {\n return await ytmp3(firstVideo.url);\n }\n } catch (error: any) {\n throw new Error(`Play Failed: ${error.message}`);\n }\n};\n","import axios from 'axios';\nimport * as cheerio from 'cheerio';\nimport FormData from 'form-data';\nimport https from 'https';\nimport { AUTHOR, Author } from '../types';\n\nconst HEADERS = {\n 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',\n 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'\n};\n\nconst ignoreSSL = new https.Agent({ \n rejectUnauthorized: false,\n servername: 'inferenceengine.vyro.ai'\n});\n\nconst MORSE_MAP: Record<string, string> = {\n 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.',\n 'G': '--.', 'H': '....', 'I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..',\n 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.', 'Q': '--.-', 'R': '.-.',\n 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',\n 'Y': '-.--', 'Z': '--..',\n '0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-',\n '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.',\n '.': '.-.-.-', ',': '--..--', '?': '..--..', \"'\": '.----.', '!': '-.-.--',\n '/': '-..-.', '(': '-.--.', ')': '-.--.-', '&': '.-...', ':': '---...',\n ';': '-.-.-.', '=': '-...-', '+': '.-.-.', '-': '-....-', '_': '..--.-',\n '\"': '.-..-.', '$': '...-..-', '@': '.--.-.',\n ' ': '/' \n};\nconst REVERSE_MORSE = Object.fromEntries(\n Object.entries(MORSE_MAP).map(([char, code]) => [code, char])\n);\n\nexport const ssweb = async (url: string, device: 'desktop' | 'tablet' | 'phone' = 'desktop'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const baseURL = 'https://www.screenshotmachine.com';\n const param = { url: url, device: device, cacheLimit: 0 };\n const { data, headers } = await axios.post(`${baseURL}/capture.php`, \n new URLSearchParams(param as any), {\n headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8', 'User-Agent': HEADERS['User-Agent'] }\n });\n if (data.status !== 'success') throw new Error('Screenshot generation failed');\n const cookies = headers['set-cookie']?.join('') || '';\n const imageResponse = await axios.get(`${baseURL}/${data.link}`, {\n headers: { 'cookie': cookies, 'User-Agent': HEADERS['User-Agent'] },\n responseType: 'arraybuffer'\n });\n resolve(imageResponse.data);\n } catch (error: any) {\n reject(new Error(`SSWeb Failed: ${error.message}`));\n }\n });\n};\n\nexport const remini = async (imageUrl: string, method: 'enhance' | 'recolor' | 'dehaze' = 'enhance'): Promise<Buffer> => {\n return new Promise(async (resolve, reject) => {\n try {\n const validMethods = [\"enhance\", \"recolor\", \"dehaze\"];\n const selectedMethod = validMethods.includes(method) ? method : \"enhance\";\n const imgBuffer = await axios.get(imageUrl, { responseType: 'arraybuffer' });\n const form = new FormData();\n form.append(\"model_version\", 1, {\n header: { \"Content-Transfer-Encoding\": \"binary\", \"contentType\": \"multipart/form-data; charset=utf-8\" }\n });\n form.append(\"image\", Buffer.from(imgBuffer.data), {\n filename: \"enhance_image_body.jpg\",\n contentType: \"image/jpeg\",\n });\n const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;\n const response = await axios.post(url, form, {\n headers: {\n ...form.getHeaders(),\n \"User-Agent\": \"okhttp/4.9.3\",\n \"Connection\": \"Keep-Alive\",\n \"Accept-Encoding\": \"gzip\"\n },\n responseType: 'arraybuffer',\n httpsAgent: ignoreSSL \n });\n resolve(response.data);\n } catch (error: any) {\n reject(new Error(`Remini Failed: ${error.message}`));\n }\n });\n};\n\nexport const styleText = async (text: string): Promise<{ author: Author, name: string, result: string }[]> => {\n return new Promise(async (resolve, reject) => {\n try {\n const { data } = await axios.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);\n const $ = cheerio.load(data);\n const result: { author: Author, name: string, result: string }[] = [];\n $('table > tbody > tr').each((i, el) => {\n const name = $(el).find('td').first().text().trim();\n const styled = $(el).find('td').eq(1).text().trim();\n if (name && styled) {\n result.push({ author: AUTHOR, name: name, result: styled });\n }\n });\n resolve(result);\n } catch (error: any) {\n reject(new Error(`StyleText Failed: ${error.message}`));\n }\n });\n};\n\nexport const wattpad = async (query: string): Promise<any[]> => {\n try {\n const { data } = await axios.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });\n const $ = cheerio.load(data);\n const results: any[] = [];\n $('.story-card').each((i, el) => {\n const title = $(el).find('.story-title').text().trim();\n const image = $(el).find('.cover img').attr('src');\n const link = 'https://www.wattpad.com' + $(el).find('a.story-card-data').attr('href');\n const reads = $(el).find('.read-count').text().trim(); \n if (title) results.push({ author: AUTHOR, title, image, link, reads });\n });\n if (results.length === 0) {\n $('div.cover').each((i, el) => {\n results.push({ author: AUTHOR, image: $(el).find('img').attr('src') });\n });\n }\n return results;\n } catch (error: any) {\n throw new Error(`Wattpad Failed: ${error.message}`);\n }\n};\n\n/**\n * Morse Code Engine\n * Encodes Text to Morse OR Decodes Morse to Text\n */\nexport const morse = async (input: string, mode: 'encode' | 'decode' = 'encode'): Promise<string> => {\n return new Promise((resolve) => {\n if (mode === 'encode') {\n const result = input\n .toUpperCase()\n .split('')\n .map(char => MORSE_MAP[char] || char)\n .join(' ');\n resolve(result);\n } else {\n const result = input\n .split(' ') \n .map(code => REVERSE_MORSE[code] || (code === '/' ? ' ' : code))\n .join('')\n .replace(/\\s+/g, ' ').trim();\n resolve(result);\n }\n });\n};\n\nexport const chords = async (query: string): Promise<any> => {\n try {\n const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, \"+\")}`;\n const { data } = await axios.get(searchUrl, { headers: HEADERS });\n const $ = cheerio.load(data); \n const firstResultUrl = $(\"table.table > tbody > tr\").eq(0).find(\"td\").eq(0).find(\"a\").eq(0).attr(\"href\");\n if (!firstResultUrl) throw new Error(\"No chords found\");\n const songPage = await axios.get(firstResultUrl, { headers: HEADERS });\n const $song = cheerio.load(songPage.data); \n const $hcontent = $song(\"div.hcontent\");\n const artist = $hcontent.find(\"div > a > span.subtitle\").text().trim();\n const title = $hcontent.find(\"h1.title\").text().trim();\n const content = $song(\"div.content > pre\").text().trim();\n return { author: AUTHOR, title, artist, url: firstResultUrl, chord: content };\n } catch (error: any) {\n throw new Error(`Chords Failed: ${error.message}`);\n }\n};\n","import { tiktok, tiktokSlide } from './dl/tiktok';\nimport { igdl, fbdl } from './dl/social';\nimport { twitter } from './dl/twitter';\nimport { search as ytSearch, ytmp3, ytmp4, play } from './dl/youtube';\nimport { ssweb, remini, styleText, wattpad, chords, morse } from './utils/tools';\n\nexport * from './types';\nexport { \n tiktok, \n tiktokSlide, \n igdl, \n fbdl,\n twitter,\n twitter as xdl,\n ytSearch, \n ytmp3, \n ytmp4, \n play,\n ssweb, \n remini, \n styleText, \n wattpad, \n chords,\n morse\n};\nexport const downloader = {\n tiktok,\n tiktokSlide,\n igdl,\n fbdl,\n twitter,\n xdl: twitter,\n ytmp3,\n ytmp4,\n play\n};\nexport const search = {\n youtube: ytSearch,\n wattpad,\n chords\n};\nexport const tools = {\n ssweb,\n remini,\n styleText,\n morse\n};\nexport default {\n downloader,\n search,\n tools\n};\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as
|
|
1
|
+
import axios4 from 'axios';
|
|
2
|
+
import * as cheerio4 from 'cheerio';
|
|
3
3
|
import ytdl from '@distube/ytdl-core';
|
|
4
4
|
import yts from 'yt-search';
|
|
5
5
|
import FormData from 'form-data';
|
|
@@ -29,7 +29,7 @@ var cleanText = (str) => str ? str.replace(/(<br?\s?\/?>)/gi, " \n").replace(/(<
|
|
|
29
29
|
var cleanUrl = (url) => url ? url.replace("https:", "http:") : "";
|
|
30
30
|
var lovetikFallback = async (url) => {
|
|
31
31
|
try {
|
|
32
|
-
const { data } = await
|
|
32
|
+
const { data } = await axios4.post(
|
|
33
33
|
"https://lovetik.com/api/ajax/search",
|
|
34
34
|
new URLSearchParams({ query: url }),
|
|
35
35
|
{ headers: getRandomHeaders() }
|
|
@@ -59,12 +59,12 @@ var tiktok = async (input) => {
|
|
|
59
59
|
try {
|
|
60
60
|
if (isUrl) {
|
|
61
61
|
const apiUrl = `https://www.tikwm.com/api/?url=${encodeURIComponent(input)}`;
|
|
62
|
-
const response = await
|
|
62
|
+
const response = await axios4.get(apiUrl, { headers: getRandomHeaders() });
|
|
63
63
|
if (response.data.code !== 0) throw new Error("Private video or Invalid URL");
|
|
64
64
|
data = response.data.data;
|
|
65
65
|
} else {
|
|
66
66
|
const apiUrl = `https://www.tikwm.com/api/feed/search`;
|
|
67
|
-
const response = await
|
|
67
|
+
const response = await axios4.post(
|
|
68
68
|
apiUrl,
|
|
69
69
|
new URLSearchParams({
|
|
70
70
|
keywords: input,
|
|
@@ -115,7 +115,7 @@ var tiktok = async (input) => {
|
|
|
115
115
|
};
|
|
116
116
|
var tiktokSlide = async (url) => {
|
|
117
117
|
try {
|
|
118
|
-
const response = await
|
|
118
|
+
const response = await axios4.post("https://api.ttsave.app/", {
|
|
119
119
|
id: url,
|
|
120
120
|
hash: "1e3a27c51eb6370b0db6f9348a481d69",
|
|
121
121
|
mode: "slide",
|
|
@@ -125,7 +125,7 @@ var tiktokSlide = async (url) => {
|
|
|
125
125
|
}, {
|
|
126
126
|
headers: getRandomHeaders()
|
|
127
127
|
});
|
|
128
|
-
const $ =
|
|
128
|
+
const $ = cheerio4.load(response.data);
|
|
129
129
|
const $element = $("div.flex.flex-col.items-center.justify-center.mt-2.mb-5");
|
|
130
130
|
if ($element.length === 0) throw new Error("Slide not found or service unavailable");
|
|
131
131
|
const statsDiv = $element.find("div.flex.flex-row.items-center.justify-center");
|
|
@@ -168,7 +168,7 @@ var getRandomHeaders2 = () => ({
|
|
|
168
168
|
var fbdl = async (url) => {
|
|
169
169
|
return new Promise(async (resolve, reject) => {
|
|
170
170
|
try {
|
|
171
|
-
const { data } = await
|
|
171
|
+
const { data } = await axios4.post(
|
|
172
172
|
"https://getmyfb.com/process",
|
|
173
173
|
new URLSearchParams({
|
|
174
174
|
id: url,
|
|
@@ -183,7 +183,7 @@ var fbdl = async (url) => {
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
);
|
|
186
|
-
const $ =
|
|
186
|
+
const $ = cheerio4.load(data);
|
|
187
187
|
const results = [];
|
|
188
188
|
const title = $("div.results-item-text").eq(0).text().trim();
|
|
189
189
|
const thumbnail = $(".results-item-image-wrapper img").attr("src") || "";
|
|
@@ -229,16 +229,16 @@ var fbdl = async (url) => {
|
|
|
229
229
|
var igdl = async (url) => {
|
|
230
230
|
return new Promise(async (resolve, reject) => {
|
|
231
231
|
try {
|
|
232
|
-
const initialResponse = await
|
|
232
|
+
const initialResponse = await axios4.get("https://indown.io/", {
|
|
233
233
|
headers: getRandomHeaders2()
|
|
234
234
|
});
|
|
235
|
-
const _$ =
|
|
235
|
+
const _$ = cheerio4.load(initialResponse.data);
|
|
236
236
|
const referer = _$("input[name=referer]").val();
|
|
237
237
|
const locale = _$("input[name=locale]").val();
|
|
238
238
|
const _token = _$("input[name=_token]").val();
|
|
239
239
|
const cookies = initialResponse.headers["set-cookie"]?.join(" ") || "";
|
|
240
240
|
if (!_token) throw new Error("Failed to fetch Instagram token");
|
|
241
|
-
const { data } = await
|
|
241
|
+
const { data } = await axios4.post(
|
|
242
242
|
"https://indown.io/download",
|
|
243
243
|
new URLSearchParams({
|
|
244
244
|
link: url,
|
|
@@ -256,7 +256,7 @@ var igdl = async (url) => {
|
|
|
256
256
|
}
|
|
257
257
|
}
|
|
258
258
|
);
|
|
259
|
-
const $ =
|
|
259
|
+
const $ = cheerio4.load(data);
|
|
260
260
|
const result = [];
|
|
261
261
|
$("video").each(function() {
|
|
262
262
|
const $$ = $(this);
|
|
@@ -313,6 +313,53 @@ var igdl = async (url) => {
|
|
|
313
313
|
}
|
|
314
314
|
});
|
|
315
315
|
};
|
|
316
|
+
var USER_AGENTS3 = [
|
|
317
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
|
|
318
|
+
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
|
|
319
|
+
];
|
|
320
|
+
var getRandomHeaders3 = () => ({
|
|
321
|
+
"User-Agent": USER_AGENTS3[Math.floor(Math.random() * USER_AGENTS3.length)],
|
|
322
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
323
|
+
"Origin": "https://twdown.net",
|
|
324
|
+
"Referer": "https://twdown.net/"
|
|
325
|
+
});
|
|
326
|
+
var twitter = async (url) => {
|
|
327
|
+
return new Promise(async (resolve, reject) => {
|
|
328
|
+
try {
|
|
329
|
+
const cleanUrl2 = url.replace("x.com", "twitter.com");
|
|
330
|
+
const config = new URLSearchParams({ URL: cleanUrl2 });
|
|
331
|
+
const { data } = await axios4.post("https://twdown.net/download.php", config, {
|
|
332
|
+
headers: getRandomHeaders3()
|
|
333
|
+
});
|
|
334
|
+
const $ = cheerio4.load(data);
|
|
335
|
+
const desc = $("div:nth-child(1) > div:nth-child(2) > p").text().trim();
|
|
336
|
+
const thumb = $("div:nth-child(1) > img").attr("src");
|
|
337
|
+
const video_hd = $("tbody > tr:nth-child(1) > td:nth-child(4) > a").attr("href");
|
|
338
|
+
const video_sd = $("tr:nth-child(2) > td:nth-child(4) > a").attr("href");
|
|
339
|
+
let audio = $("body > div.jumbotron > div > center > div.row > div > div:nth-child(5) > table > tbody > tr:nth-child(3) > td:nth-child(4) > a").attr("href");
|
|
340
|
+
if (audio && !audio.startsWith("http")) audio = "https://twdown.net/" + audio;
|
|
341
|
+
if (!video_sd && !video_hd) {
|
|
342
|
+
throw new Error("No media found. Account might be private or link is invalid.");
|
|
343
|
+
}
|
|
344
|
+
const result = {
|
|
345
|
+
author: AUTHOR,
|
|
346
|
+
status: true,
|
|
347
|
+
desc: desc || "X/Twitter Video",
|
|
348
|
+
thumbnail: thumb || "",
|
|
349
|
+
video_sd,
|
|
350
|
+
video_hd,
|
|
351
|
+
audio
|
|
352
|
+
};
|
|
353
|
+
resolve(result);
|
|
354
|
+
} catch (error) {
|
|
355
|
+
reject({
|
|
356
|
+
author: AUTHOR,
|
|
357
|
+
status: false,
|
|
358
|
+
message: error.message || "X/Twitter Download Failed"
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
});
|
|
362
|
+
};
|
|
316
363
|
var search = async (query) => {
|
|
317
364
|
return new Promise(async (resolve, reject) => {
|
|
318
365
|
try {
|
|
@@ -440,12 +487,72 @@ var ignoreSSL = new https.Agent({
|
|
|
440
487
|
rejectUnauthorized: false,
|
|
441
488
|
servername: "inferenceengine.vyro.ai"
|
|
442
489
|
});
|
|
490
|
+
var MORSE_MAP = {
|
|
491
|
+
"A": ".-",
|
|
492
|
+
"B": "-...",
|
|
493
|
+
"C": "-.-.",
|
|
494
|
+
"D": "-..",
|
|
495
|
+
"E": ".",
|
|
496
|
+
"F": "..-.",
|
|
497
|
+
"G": "--.",
|
|
498
|
+
"H": "....",
|
|
499
|
+
"I": "..",
|
|
500
|
+
"J": ".---",
|
|
501
|
+
"K": "-.-",
|
|
502
|
+
"L": ".-..",
|
|
503
|
+
"M": "--",
|
|
504
|
+
"N": "-.",
|
|
505
|
+
"O": "---",
|
|
506
|
+
"P": ".--.",
|
|
507
|
+
"Q": "--.-",
|
|
508
|
+
"R": ".-.",
|
|
509
|
+
"S": "...",
|
|
510
|
+
"T": "-",
|
|
511
|
+
"U": "..-",
|
|
512
|
+
"V": "...-",
|
|
513
|
+
"W": ".--",
|
|
514
|
+
"X": "-..-",
|
|
515
|
+
"Y": "-.--",
|
|
516
|
+
"Z": "--..",
|
|
517
|
+
"0": "-----",
|
|
518
|
+
"1": ".----",
|
|
519
|
+
"2": "..---",
|
|
520
|
+
"3": "...--",
|
|
521
|
+
"4": "....-",
|
|
522
|
+
"5": ".....",
|
|
523
|
+
"6": "-....",
|
|
524
|
+
"7": "--...",
|
|
525
|
+
"8": "---..",
|
|
526
|
+
"9": "----.",
|
|
527
|
+
".": ".-.-.-",
|
|
528
|
+
",": "--..--",
|
|
529
|
+
"?": "..--..",
|
|
530
|
+
"'": ".----.",
|
|
531
|
+
"!": "-.-.--",
|
|
532
|
+
"/": "-..-.",
|
|
533
|
+
"(": "-.--.",
|
|
534
|
+
")": "-.--.-",
|
|
535
|
+
"&": ".-...",
|
|
536
|
+
":": "---...",
|
|
537
|
+
";": "-.-.-.",
|
|
538
|
+
"=": "-...-",
|
|
539
|
+
"+": ".-.-.",
|
|
540
|
+
"-": "-....-",
|
|
541
|
+
"_": "..--.-",
|
|
542
|
+
'"': ".-..-.",
|
|
543
|
+
"$": "...-..-",
|
|
544
|
+
"@": ".--.-.",
|
|
545
|
+
" ": "/"
|
|
546
|
+
};
|
|
547
|
+
var REVERSE_MORSE = Object.fromEntries(
|
|
548
|
+
Object.entries(MORSE_MAP).map(([char, code]) => [code, char])
|
|
549
|
+
);
|
|
443
550
|
var ssweb = async (url, device = "desktop") => {
|
|
444
551
|
return new Promise(async (resolve, reject) => {
|
|
445
552
|
try {
|
|
446
553
|
const baseURL = "https://www.screenshotmachine.com";
|
|
447
554
|
const param = { url, device, cacheLimit: 0 };
|
|
448
|
-
const { data, headers } = await
|
|
555
|
+
const { data, headers } = await axios4.post(
|
|
449
556
|
`${baseURL}/capture.php`,
|
|
450
557
|
new URLSearchParams(param),
|
|
451
558
|
{
|
|
@@ -454,7 +561,7 @@ var ssweb = async (url, device = "desktop") => {
|
|
|
454
561
|
);
|
|
455
562
|
if (data.status !== "success") throw new Error("Screenshot generation failed");
|
|
456
563
|
const cookies = headers["set-cookie"]?.join("") || "";
|
|
457
|
-
const imageResponse = await
|
|
564
|
+
const imageResponse = await axios4.get(`${baseURL}/${data.link}`, {
|
|
458
565
|
headers: { "cookie": cookies, "User-Agent": HEADERS["User-Agent"] },
|
|
459
566
|
responseType: "arraybuffer"
|
|
460
567
|
});
|
|
@@ -469,7 +576,7 @@ var remini = async (imageUrl, method = "enhance") => {
|
|
|
469
576
|
try {
|
|
470
577
|
const validMethods = ["enhance", "recolor", "dehaze"];
|
|
471
578
|
const selectedMethod = validMethods.includes(method) ? method : "enhance";
|
|
472
|
-
const imgBuffer = await
|
|
579
|
+
const imgBuffer = await axios4.get(imageUrl, { responseType: "arraybuffer" });
|
|
473
580
|
const form = new FormData();
|
|
474
581
|
form.append("model_version", 1, {
|
|
475
582
|
header: { "Content-Transfer-Encoding": "binary", "contentType": "multipart/form-data; charset=utf-8" }
|
|
@@ -479,7 +586,7 @@ var remini = async (imageUrl, method = "enhance") => {
|
|
|
479
586
|
contentType: "image/jpeg"
|
|
480
587
|
});
|
|
481
588
|
const url = `https://inferenceengine.vyro.ai/${selectedMethod}`;
|
|
482
|
-
const response = await
|
|
589
|
+
const response = await axios4.post(url, form, {
|
|
483
590
|
headers: {
|
|
484
591
|
...form.getHeaders(),
|
|
485
592
|
"User-Agent": "okhttp/4.9.3",
|
|
@@ -498,8 +605,8 @@ var remini = async (imageUrl, method = "enhance") => {
|
|
|
498
605
|
var styleText = async (text) => {
|
|
499
606
|
return new Promise(async (resolve, reject) => {
|
|
500
607
|
try {
|
|
501
|
-
const { data } = await
|
|
502
|
-
const $ =
|
|
608
|
+
const { data } = await axios4.get(`http://qaz.wtf/u/convert.cgi?text=${encodeURIComponent(text)}`);
|
|
609
|
+
const $ = cheerio4.load(data);
|
|
503
610
|
const result = [];
|
|
504
611
|
$("table > tbody > tr").each((i, el) => {
|
|
505
612
|
const name = $(el).find("td").first().text().trim();
|
|
@@ -516,8 +623,8 @@ var styleText = async (text) => {
|
|
|
516
623
|
};
|
|
517
624
|
var wattpad = async (query) => {
|
|
518
625
|
try {
|
|
519
|
-
const { data } = await
|
|
520
|
-
const $ =
|
|
626
|
+
const { data } = await axios4.get(`https://www.wattpad.com/search/${encodeURIComponent(query)}`, { headers: HEADERS });
|
|
627
|
+
const $ = cheerio4.load(data);
|
|
521
628
|
const results = [];
|
|
522
629
|
$(".story-card").each((i, el) => {
|
|
523
630
|
const title = $(el).find(".story-title").text().trim();
|
|
@@ -536,15 +643,26 @@ var wattpad = async (query) => {
|
|
|
536
643
|
throw new Error(`Wattpad Failed: ${error.message}`);
|
|
537
644
|
}
|
|
538
645
|
};
|
|
646
|
+
var morse = async (input, mode = "encode") => {
|
|
647
|
+
return new Promise((resolve) => {
|
|
648
|
+
if (mode === "encode") {
|
|
649
|
+
const result = input.toUpperCase().split("").map((char) => MORSE_MAP[char] || char).join(" ");
|
|
650
|
+
resolve(result);
|
|
651
|
+
} else {
|
|
652
|
+
const result = input.split(" ").map((code) => REVERSE_MORSE[code] || (code === "/" ? " " : code)).join("").replace(/\s+/g, " ").trim();
|
|
653
|
+
resolve(result);
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
};
|
|
539
657
|
var chords = async (query) => {
|
|
540
658
|
try {
|
|
541
659
|
const searchUrl = `https://www.gitagram.com/?s=${encodeURIComponent(query).replace(/%20/g, "+")}`;
|
|
542
|
-
const { data } = await
|
|
543
|
-
const $ =
|
|
660
|
+
const { data } = await axios4.get(searchUrl, { headers: HEADERS });
|
|
661
|
+
const $ = cheerio4.load(data);
|
|
544
662
|
const firstResultUrl = $("table.table > tbody > tr").eq(0).find("td").eq(0).find("a").eq(0).attr("href");
|
|
545
663
|
if (!firstResultUrl) throw new Error("No chords found");
|
|
546
|
-
const songPage = await
|
|
547
|
-
const $song =
|
|
664
|
+
const songPage = await axios4.get(firstResultUrl, { headers: HEADERS });
|
|
665
|
+
const $song = cheerio4.load(songPage.data);
|
|
548
666
|
const $hcontent = $song("div.hcontent");
|
|
549
667
|
const artist = $hcontent.find("div > a > span.subtitle").text().trim();
|
|
550
668
|
const title = $hcontent.find("h1.title").text().trim();
|
|
@@ -561,6 +679,8 @@ var downloader = {
|
|
|
561
679
|
tiktokSlide,
|
|
562
680
|
igdl,
|
|
563
681
|
fbdl,
|
|
682
|
+
twitter,
|
|
683
|
+
xdl: twitter,
|
|
564
684
|
ytmp3,
|
|
565
685
|
ytmp4,
|
|
566
686
|
play
|
|
@@ -573,7 +693,8 @@ var search2 = {
|
|
|
573
693
|
var tools = {
|
|
574
694
|
ssweb,
|
|
575
695
|
remini,
|
|
576
|
-
styleText
|
|
696
|
+
styleText,
|
|
697
|
+
morse
|
|
577
698
|
};
|
|
578
699
|
var index_default = {
|
|
579
700
|
downloader,
|
|
@@ -581,6 +702,6 @@ var index_default = {
|
|
|
581
702
|
tools
|
|
582
703
|
};
|
|
583
704
|
|
|
584
|
-
export { AUTHOR, chords, index_default as default, downloader, fbdl, igdl, play, remini, search2 as search, ssweb, styleText, tiktok, tiktokSlide, tools, wattpad, search as ytSearch, ytmp3, ytmp4 };
|
|
705
|
+
export { AUTHOR, chords, index_default as default, downloader, fbdl, igdl, morse, play, remini, search2 as search, ssweb, styleText, tiktok, tiktokSlide, tools, twitter, wattpad, twitter as xdl, search as ytSearch, ytmp3, ytmp4 };
|
|
585
706
|
//# sourceMappingURL=index.mjs.map
|
|
586
707
|
//# sourceMappingURL=index.mjs.map
|