├── README.md ├── index.js ├── install.sh ├── lib ├── P ├── color.js ├── donasi.js ├── fetcher.js ├── functions.js ├── gtts.js ├── help.js ├── ocr.js └── test.js ├── package-lock.json ├── package.json └── src ├── P ├── donasi.js ├── nsfw.json ├── simi.json ├── test.js └── welkom.json /README.md: -------------------------------------------------------------------------------- 1 | ## SELF-BOT 2 |

3 | 4 |

5 |
6 | 7 | 8 |

9 | 10 |

11 |

12 |

13 |

14 | 15 | 16 | 17 | 18 | 19 | 20 |

21 |
22 |
23 | 24 |
25 | 26 | ### WARNING 27 | MAU RE-UPLOAD SCRIPT? KASIH LINK GTIHUB SAYA DAN MHANKBARBAR 28 | 29 | ## NOTE 30 | SCRIPTNYA JANGAN DI JUAL/BELI KAN.. SCRIPT INI 100% GRATIS BUAT KALIAN PENGGUNA TERMUX 31 |
32 | 33 | # Siapin alat dan bahannya. 34 | ```bash 35 | > niat 36 | > 2 handphone (1 buat jalanin sc, 1 buat scan kode qr) 37 | > jaringan internet kenceng,kuota+ 38 | > penyimpanan yang memadai 39 | > aplikasi whatsapp 40 | > aplikasi termux 41 | > kopi biar ga gabut 42 | ``` 43 | 44 | ## NOTE!!: NODEJS V10 45 | 46 | ### CARA INSTALLNYA 47 | Script ini di modifikasi sama saya dkk. 48 | ```bash 49 | > kalo lu belum punya apk termux, download di playstore 50 | > masuk ke apk termux lalu ketik dibawah ini! 51 | > git clone https://github.com/HAFizh-15/TERMOS-WABOT 52 | > cd TERMOS-WABOT 53 | > bash install.sh 54 | > node index js 55 | > Tinggal scan kode qr yeee...done 56 | 57 | NOTE: BISA DI RUN DI WINDOWS/LINUX (tidak hanya di termux) 58 | ``` 59 | 60 | ## KLO MAU PAKAI JANGAN LUPA DI FORK YA NGAB 61 | 62 | ## APIKEY 63 | * [`Vhtear`](https://vhtear.com) 64 | * [`i-tech`](https://api.i-tech.id) 65 | * [`Tobzkey`](https://tobz-api.herokuapp.com/api) 66 | * [`Mhank BarBar`](https://mhankbarbars.herokuapp.com/) 67 | * [`Zekskey`](https://api.zeks.xyz) 68 | 69 | ## FEATURES 70 | | SELF-BOT | Feature | 71 | | :-----------: | :------------------------------: | 72 | | ✅ | Sticker Creator | 73 | | ✅ | Nulis | 74 | | ✅ | add | 75 | | ✅ | url2img | 76 | | ✅ | ReadAll | 77 | | ✅ | kick | 78 | | ✅ | demote | 79 | | ✅ | promote | 80 | | ✅ | bc | 81 | | ✅ | welcome | 82 | | ✅ | Youtube Downloader | 83 | | ✅ | simi | 84 | | ✅ | left | 85 | | ✅ | setpp | 86 | | ✅ | group buka/tutup | 87 | | ✅ | nsfwloli | 88 | | ✅ | loli | 89 | | ✅ | tts | 90 | | ✅ | tiktokstalk | 91 | | ✅ | tiktok | 92 | | ✅ | tagall | 93 | | ✅ | clearall | 94 | | ✅ | block | 95 | | ✅ | unblock | 96 | | ✅ | sound | 97 | | ✅ | tsticker | 98 | | ✅ | nulis | 99 | | ✅ | meme | 100 | | ✅ | memeindo | 101 | | ✅ | ocr | 102 | | ✅ | fordward | 103 | | ✅ | runtime | 104 | | ✅ | clone | 105 | | ✅ | bc | 106 | | ✅ | leave | 107 | | ✅ | url2img | 108 | | ✅ | wait | 109 | | info/donate/creator | 110 | 111 | DAN LAIN LAIN 112 | 113 | Ket: Aktif 24 jam 114 | 115 | # DONASI 116 | * [`Saweria`](https://saweria.co/HAFizhscript) 117 | * [`Ko-Fi`](https://ko-fi.com/shirayukibot) 118 | * [`TrakTeer`](https://trakteer.id/shirayuki) 119 | 120 | 121 | ## SOSIAL MEDIA ADMIN 122 | 123 | * [`WhatsApp Admin `](https://wa.me/+6285959375675) 124 | * [`Group WhatsApp `](https://chat.whatsapp.com/GejprPqHNQW3cBDuKtb7UX) 125 | ## THANKS TO 126 | * [`TO27BOT`](https://github.com/MhankBarBar/termux-wabot) 127 | * [`MHANKBARBAR`](https://github.com/XTT0G4N5/T027BOT) 128 | * [`1NSOMNIA`](https://github.com/1NS0MNIA) 129 | * [`Vin781`](https://github.com/vinz781) 130 | 131 | # Jangan Menjual Sc Ini cuk 132 | 133 | 134 | 135 | 136 | ## License 137 | [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FHAFizh-15%2FTERMOS-WABOT.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FHAFizh-15%2FTERMOS-WABOT?ref=badge_large) 138 | 139 | ## REPOSITORY BY HAFIZH 140 | 141 | 142 | alasan menggunakan banyak api: 143 | - Khawatir ada Fitur Yang di larang di sebar 144 | - Khawatir Ada Fitur Langka DI Repository ini 145 | 146 | sekian terimakasih 147 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 2 | const 3 | { 4 | WAConnection, 5 | MessageType, 6 | Presence, 7 | MessageOptions, 8 | Mimetype, 9 | WALocationMessage, 10 | WA_MESSAGE_STUB_TYPES, 11 | ReconnectMode, 12 | ProxyAgent, 13 | GroupSettingChange, 14 | waChatKey, 15 | mentionedJid, 16 | processTime, 17 | } = require("@adiwajshing/baileys") 18 | const qrcode = require("qrcode-terminal") 19 | const moment = require("moment-timezone") 20 | const fs = require("fs") 21 | const { color, bgcolor } = require('./lib/color') 22 | const { help } = require('./lib/help') 23 | const { donasi } = require('./lib/donasi') 24 | const { fetchJson } = require('./lib/fetcher') 25 | const { recognize } = require('./lib/ocr') 26 | const { wait, simih, getBuffer, h2k, generateMessageID, getGroupAdmins, getRandom, banner, start, info, success, close } = require('./lib/functions') 27 | const ffmpeg = require('fluent-ffmpeg') 28 | const { removeBackgroundFromImageFile } = require('remove.bg') 29 | const welkom = JSON.parse(fs.readFileSync('./src/welkom.json')) 30 | const nsfw = JSON.parse(fs.readFileSync('./src/nsfw.json')) 31 | const samih = JSON.parse(fs.readFileSync('./src/simi.json')) 32 | // API KEY 33 | const apiKey = 'APIKEY' // get in https://mhankbarbar.tech/api 34 | const tobzkey = 'BotWeA'// GET IN https://tobz-api.herokuapp.com/api 35 | const vhtearkey = 'APIKEY'// GET IN https://api.vhtear.com/ 36 | const zekskey = 'apivinz' //GET IN https://api.zeks.xyz 37 | const techkey = 'APIKEY' //GET IN https://api.i-tech.id 38 | 39 | const vcard = 'BEGIN:VCARD\n' 40 | + 'VERSION:3.0\n' 41 | + 'FN:Ownerbot\n' 42 | + 'ORG:Creator SELF BOT;\n' 43 | + 'TEL;type=CELL;type=VOICE;waid=6285959375675:+62 877-7545-2636\n' 44 | + 'END:VCARD' 45 | prefix = '!' 46 | blocked = [] 47 | const time = moment().tz('Asia/Jakarta').format("HH:mm:ss") 48 | const arrayBulan = ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember'] 49 | 50 | const bulan = arrayBulan[moment().format('MM') - 1] 51 | 52 | 53 | function kyun(seconds){ 54 | function pad(s){ 55 | return (s < 10 ? '0' : '') + s; 56 | } 57 | var hours = Math.floor(seconds / (60*60)); 58 | var minutes = Math.floor(seconds % (60*60) / 60); 59 | var seconds = Math.floor(seconds % 60); 60 | 61 | //return pad(hours) + ':' + pad(minutes) + ':' + pad(seconds) 62 | return `${pad(hours)}H, ${pad(minutes)}Min, ${pad(seconds)}Sec ` 63 | } 64 | function monospace(string) { 65 | return '```' + string + '```' 66 | } 67 | 68 | 69 | 70 | 71 | const { exec } = require("child_process") 72 | 73 | const hafizh = new WAConnection() 74 | 75 | hafizh.on('qr', qr => { 76 | qrcode.generate(qr, { small: true }) 77 | console.log(`[ ${time} ] QR code is ready`) 78 | }) 79 | 80 | hafizh.on('credentials-updated', () => { 81 | const authInfo = hafizh.base64EncodedAuthInfo() 82 | console.log(`credentials updated!`) 83 | 84 | fs.writeFileSync('./session.json', JSON.stringify(authInfo, null, '\t')) 85 | }) 86 | 87 | fs.existsSync('./session.json') && hafizh.loadAuthInfo('./session.json') 88 | 89 | hafizh.connect(); 90 | 91 | // hafizh.on('user-presence-update', json => console.log(json.id + ' presence is => ' + json.type)) || console.log(`${time}: Bot by ig:@kingg_squard028`) 92 | 93 | hafizh.on('group-participants-update', async (anu) => { 94 | if (!welkom.includes(anu.jid)) return 95 | try { 96 | const mdata = await hafizh.groupMetadata(anu.jid) 97 | console.log(anu) 98 | if (anu.action == 'add') { 99 | num = anu.participants[0] 100 | try { 101 | ppimg = await hafizh.getProfilePicture(`${anu.participants[0].split('@')[0]}@c.us`) 102 | } catch { 103 | ppimg = 'https://i0.wp.com/www.gambarunik.id/wp-content/uploads/2019/06/Top-Gambar-Foto-Profil-Kosong-Lucu-Tergokil-.jpg' 104 | } 105 | teks = `@${num.split('@')[0]}\nwelcome to group *${mdata.subject}* semoga betah` 106 | let buff = await getBuffer(ppimg) 107 | hafizh.sendMessage(mdata.id, buff, MessageType.image, {caption: teks, contextInfo: {"mentionedJid": [num]}}) 108 | } else if (anu.action == 'remove') { 109 | num = anu.participants[0] 110 | try { 111 | ppimg = await hafizh.getProfilePicture(`${num.split('@')[0]}@c.us`) 112 | } catch { 113 | ppimg = 'https://i0.wp.com/www.gambarunik.id/wp-content/uploads/2019/06/Top-Gambar-Foto-Profil-Kosong-Lucu-Tergokil-.jpg' 114 | } 115 | teks = `alhamdulillah, beban hilang 1 @${num.split('@')[0]} ` 116 | let buff = await getBuffer(ppimg) 117 | hafizh.sendMessage(mdata.id, buff, MessageType.image, {caption: teks, contextInfo: {"mentionedJid": [num]}}) 118 | } 119 | } catch (e) { 120 | console.log('Error : %s', color(e, 'red')) 121 | } 122 | }) 123 | hafizh.on('CB:Blocklist', json => { 124 | if (blocked.length > 2) return 125 | for (let i of json[1].blocklist) { 126 | blocked.push(i.replace('c.us','s.whatsapp.net')) 127 | } 128 | }) 129 | 130 | hafizh.on('message-new', async (tod) => { 131 | try { 132 | if (!tod.message) return 133 | if (tod.key && tod.key.remoteJid == 'status@broadcast') return 134 | if (!tod.key.fromMe) return 135 | global.prefix 136 | global.blocked 137 | const content = JSON.stringify(tod.message) 138 | const from = tod.key.remoteJid 139 | const type = Object.keys(tod.message)[0] 140 | 141 | const { text, extendedText, contact, location, liveLocation, image, video, sticker, document, audio, product } = MessageType 142 | const time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss') 143 | body = (type === 'conversation' && tod.message.conversation.startsWith(prefix)) ? tod.message.conversation : (type == 'imageMessage') && tod.message.imageMessage.caption.startsWith(prefix) ? tod.message.imageMessage.caption : (type == 'videoMessage') && tod.message.videoMessage.caption.startsWith(prefix) ? tod.message.videoMessage.caption : (type == 'extendedTextMessage') && tod.message.extendedTextMessage.text.startsWith(prefix) ? tod.message.extendedTextMessage.text : '' 144 | budy = (type === 'conversation') ? tod.message.conversation : (type === 'extendedTextMessage') ? tod.message.extendedTextMessage.text : '' 145 | const command = body.slice(1).trim().split(/ +/).shift().toLowerCase() 146 | const args = body.trim().split(/ +/).slice(1) 147 | const isCmd = body.startsWith(prefix) 148 | 149 | mess = { 150 | wait: 'Loading...', 151 | success: '️success ✔ ', 152 | error: { 153 | stick: 'error gan', 154 | Iv: 'Link ga valid gan' 155 | }, 156 | only: { 157 | group: 'only gc', 158 | ownerG: 'only owner gc', 159 | ownerB: 'only owner bot', 160 | admin: 'only admin gc', 161 | Badmin: 'jadikan ot admin udin' 162 | } 163 | } 164 | const botNumber = hafizh.user.jid 165 | const ownerNumber = ["6285959375675@s.whatsapp.net"] // ganti nomer lu 166 | const isGroup = from.endsWith('@g.us') 167 | const sender = isGroup ? tod.participant : tod.key.remoteJid 168 | const groupMetadata = isGroup ? await hafizh.groupMetadata(from) : '' 169 | const groupName = isGroup ? groupMetadata.subject : '' 170 | const groupId = isGroup ? groupMetadata.jid : '' 171 | const groupMembers = isGroup ? groupMetadata.participants : '' 172 | const groupAdmins = isGroup ? getGroupAdmins(groupMembers) : '' 173 | const isBotGroupAdmins = groupAdmins.includes(botNumber) || false 174 | const isGroupAdmins = groupAdmins.includes(sender) || false 175 | const isWelkom = isGroup ? welkom.includes(from) : false 176 | const isNsfw = isGroup ? nsfw.includes(from) : false 177 | const isSimi = isGroup ? samih.includes(from) : false 178 | const isOwner = ownerNumber.includes(sender) 179 | const isUrl = (url) => { 180 | return url.match(new RegExp(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)/, 'gi')) 181 | } 182 | const reply = (teks) => { 183 | hafizh.sendMessage(from, teks, text, {quoted:tod}) 184 | } 185 | const sendMess = (hehe, teks) => { 186 | hafizh.sendMessage(hehe, teks, text) 187 | } 188 | const mentions = (teks, memberr, id) => { 189 | (id == null || id == undefined || id == false) ? hafizh.sendMessage(from, teks.trim(), extendedText, {contextInfo: {"mentionedJid": memberr}}) : hafizh.sendMessage(from, teks.trim(), extendedText, {quoted: tod, contextInfo: {"mentionedJid": memberr}}) 190 | } 191 | 192 | colors = ['red','white','black','blue','yellow','green'] 193 | const isMedia = (type === 'imageMessage' || type === 'videoMessage') 194 | const isQuotedImage = type === 'extendedTextMessage' && content.includes('imageMessage') 195 | const isQuotedVideo = type === 'extendedTextMessage' && content.includes('videoMessage') 196 | const isQuotedSticker = type === 'extendedTextMessage' && content.includes('stickerMessage') 197 | if (!isGroup && isCmd) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', time, color(command), 'from', color(sender.split('@')[0]), 'args :', color(args.length)) 198 | if (isCmd && isGroup) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', time, color(command), 'from', color(sender.split('@')[0]), 'in', color(groupName), 'args :', color(args.length)) 199 | switch(command) { 200 | case 'help': 201 | case 'menu': 202 | hafizh.sendMessage(from, `${monospace(help(prefix))}`, text) 203 | break 204 | case 'donasi': 205 | case 'donate': 206 | hafizh.sendMessage(from, donasi(), text) 207 | break 208 | case 'info': 209 | me = hafizh.user 210 | uptime = process.uptime() 211 | teks = `𝗡𝗮𝗺𝗮 𝗯𝗼𝘁 : ${me.name}\n*𝗡𝗼𝗺𝗲𝗿 𝗯𝗼𝘁* : @${me.jid.split('@')[0]}\n*𝗣𝗿𝗲𝗳𝗶𝘅* : ${prefix}\n𝗧𝗼𝘁𝗮𝗹 𝗕𝗹𝗼𝗰𝗸 𝗖𝗼𝗻𝘁𝗮𝗰𝘁 : ${blocked.length}\n𝗧𝗵𝗲 𝗯𝗼𝘁 𝗶𝘀 𝗮𝗰𝘁𝗶𝘃𝗲 𝗼𝗻 : ${kyun(uptime)}` 212 | buffer = await getBuffer(me.imgUrl) 213 | hafizh.sendMessage(from, buffer, image, {caption: teks, contextInfo:{mentionedJid: [me.jid]}}) 214 | break 215 | case 'runtime': 216 | runtime = process.uptime() 217 | teks = `${monospace(`Runtime:\n◪ ${kyun(runtime)}`)}` 218 | hafizh.sendMessage(from, `${teks}`, MessageType.text, {quoted: tod}) 219 | break 220 | case 'xl': 221 | data = await fetchJson(`https://api.i-tech.id/tagihan/xl?key=${techkey}&no=${body.slice(4)}`) 222 | teks = `Nomor: ${data.nomor}\nNama: ${data.nama}\nTotal: ${data.total}\nStatus: ${data.status}\ntagihan: ${data.lembar_tagihan}` 223 | hafizh.sendMessage(from, `${teks}`, MessageType.text, {quoted: tod}) 224 | break 225 | case 'bass': 226 | encmedia = JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo 227 | media = await hafizh.downloadAndSaveMediaMessage(encmedia) 228 | ran = getRandom('.mp3') 229 | exec(`ffmpeg -i ${media} -af equalizer=f=64:width_type=o:width=2:g=56 ${ran}`, (err, stderr, stdout) => { 230 | fs.unlinkSync(media) 231 | if (err) return reply('Error!') 232 | hah = fs.readFileSync(ran) 233 | hafizh.sendMessage(from, hah, audio, {mimetype: 'audio/mp4', ptt:true, quoted: tod}) 234 | fs.unlinkSync(ran) 235 | }) 236 | break 237 | case 'halo': 238 | data = await fetchJson(`https://api.i-tech.id/tagihan/halo?key=${techkey}&no=${body.slice(6)}`) 239 | teks = `Nomor: ${data.nomor}\nNama: ${data.nama}\nTotal: ${data.total}\nStatus: ${data.status}\ntagihan: ${data.lembar_tagihan}` 240 | client.sendMessage(from, `${teks}`, MessageType.text, {quoted: tod}) 241 | break 242 | case 'gas': 243 | data = await fetchJson(`https://api.i-tech.id/tagihan/gas?key=${techkey}&no=${body.slice(5)}`) 244 | teks = `Nomor: ${data.nomor}\nNama: ${data.nama}\nTotal: ${data.total}\nStatus: ${data.status}\ntagihan: ${data.lembar_tagihan}` 245 | hafizh.sendMessage(from, `${teks}`, MessageType.text, {quoted: tod}) 246 | break 247 | case 'readall': 248 | if (!isOwner)return reply(mess.only.ownerB) 249 | var chats = await hafizh.chats.all() 250 | chats.map( async ({ jid }) => { 251 | await hafizh.chatRead(jid) 252 | }) 253 | teks = `\`\`\`Berhasil membaca ${chats.length} Chat !\`\`\`` 254 | await hafizh.sendMessage(from, teks, MessageType.text, {quoted: tod}) 255 | console.log(chats.length) 256 | break 257 | case 'setstatus': 258 | hafizh.setStatus(`${body.slice(11)}`) 259 | .then(data => { 260 | reply(JSON.stringify(data)) 261 | }).catch(err => console.log(err)) 262 | break 263 | case 'cgc': 264 | var gc = body.slice(5) 265 | mentioned = mek.message.extendedTextMessage.contextInfo.mentionedJid 266 | hafizh.groupCreate (`${gc}`, [`${sender}`, `${mentioned}`]) 267 | console.log ("created group with id: " + group.gid) 268 | break 269 | case 'blocklist': 270 | teks = 'BLOCK LIST :\n' 271 | for (let block of blocked) { 272 | teks += `┣➢ @${block.split('@')[0]}\n` 273 | } 274 | teks += `𝗧𝗼𝘁𝗮𝗹 : ${blocked.length}` 275 | hafizh.sendMessage(from, teks.trim(), extendedText, {quoted: tod, contextInfo: {"mentionedJid": blocked}}) 276 | break 277 | case 'fordward': 278 | hafizh.sendMessage(from, `${body.slice(10)}`, MessageType.text, {contextInfo: { forwardingScore: 508, isForwarded: true }}) 279 | break 280 | case 'fordward1': 281 | hafizh.sendMessage(from, `${body.slice(11)}`, MessageType.text, {contextInfo: { forwardingScore: 2, isForwarded: true }}) 282 | break 283 | case 'moddroid': 284 | data = await fetchJson(`https://tobz-api.herokuapp.com/api/moddroid?q=${body.slice(10)}&apikey=${tobzkey}`) 285 | hepi = data.result[0] 286 | teks = `*Nama*: ${data.result[0].title}\n*publisher*: ${hepi.publisher}\n*mod info:* ${hepi.mod_info}\n*size*: ${hepi.size}\n*latest version*: ${hepi.latest_version}\n*genre*: ${hepi.genre}\n*link:* ${hepi.link}\n*download*: ${hepi.download}` 287 | buff = await getBuffer(hepi.image) 288 | hafizh.sendMessage(from, buff, image, {quoted: tod, caption: `${teks}`}) 289 | break 290 | case 'film': 291 | data = await fetchJson(`https://api.zeks.xyz/api/film?q=${body.slice(6)}&apikey=${zekskey}`) 292 | teks = '\n' 293 | for (let i of data.result) { 294 | teks += `Judul: ${i.tile}\nLink: ${i.url}` 295 | buffs = await getBufer(data.result[0].thumb) 296 | hafizh.sendMessage(from, buffs, image, {quoted: tod, caption: teks}) 297 | } 298 | break 299 | case 'setstatus': 300 | client.setStatus(`${body.slice(11)}`) 301 | .then(data => { 302 | reply(JSON.stringify(data)) 303 | }).catch(err => console.log(err)) 304 | break 305 | case 'toptt': 306 | reply(mess.wait) 307 | encmedia = JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo 308 | media = await client.downloadAndSaveMediaMessage(encmedia) 309 | ran = getRandom('.mp3') 310 | exec(`ffmpeg -i ${media} ${ran}`, (err) => { 311 | fs.unlinkSync(media) 312 | if (err) return reply('Gagal mengkonversi audio ke ptt') 313 | topt = fs.readFileSync(ran) 314 | hafizh.sendMessage(from, topt, audio, {mimetype: 'audio/mp4', quoted: tod, ptt:true}) 315 | }) 316 | break 317 | case 'randomquran': 318 | data = await fetchJson(`https://api.zeks.xyz/api/randomquran`) 319 | teks = `Nama: ${data.result.nama}\nArti: ${data.result.arti}\nayat: ${data.result.ayat}\nAsma: ${data.result.asma}\nRukuk: ${data.result.rukuk}\nNomor: ${data.result.nomor}\nType: ${data.result.type}\nKeterangan: ${data.result.keterangan}` 320 | buffs = await getBuffer(data.result.audio) 321 | hafizh.sendMessage(from, `${teks}`, MessageType.text, {quoted: tod}) 322 | hafizh.sendMessage(from, buffs, audio, {mimetype: 'audio/mp4', filename: `quran.mp3`, quoted: tod}) 323 | break 324 | case 'speed': 325 | const timestamp = speed(); 326 | const latensi = speed() - timestamp 327 | const pingnya = `${teks}\nSpeed: ${latensi.toFixed(4)} Second` 328 | hafizh.sendMessage(from, `Speed: ${latensi.toFixed(4)} Second\n\n`, MessageType.text, {quoted: tod}) 329 | break 330 | case 'ocr': 331 | if ((isMedia && !tod.message.videoMessage || isQuotedImage) && args.length == 0) { 332 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo : tod 333 | const media = await hafizh.downloadAndSaveMediaMessage(encmedia) 334 | reply(mess.wait) 335 | await recognize(media, {lang: 'eng+ind', oem: 1, psm: 3}) 336 | .then(teks => { 337 | reply(teks.trim()) 338 | fs.unlinkSync(media) 339 | }) 340 | .catch(err => { 341 | reply(err.message) 342 | fs.unlinkSync(media) 343 | }) 344 | } else { 345 | reply(`𝗸𝗶𝗿𝗶𝗺 𝗳𝗼𝘁𝗼 𝗱𝗲𝗻𝗴𝗮𝗻 𝗰𝗮𝗽𝘁𝗶𝗼𝗻 ${prefix}𝗼𝗰𝗿`) 346 | } 347 | break 348 | case 'fml': 349 | data = await fetchJson(`https://api.zeks.xyz/api/fml`) 350 | teks = `Fml: ${data.result}` 351 | hafizh.sendMessage(from, `${teks}`, MessageType.text, {quoted: tod}) 352 | break 353 | case 'stiker': 354 | case 'sticker': 355 | case 's': 356 | if ((isMedia && !tod.message.videoMessage || isQuotedImage) && args.length == 0) { 357 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo : tod 358 | const media = await hafizh.downloadAndSaveMediaMessage(encmedia) 359 | ran = getRandom('.webp') 360 | await ffmpeg(`./${media}`) 361 | .input(media) 362 | .on('start', function (cmd) { 363 | console.log(`Started : ${cmd}`) 364 | }) 365 | .on('error', function (err) { 366 | console.log(`Error : ${err}`) 367 | fs.unlinkSync(media) 368 | reply(mess.error.stick) 369 | }) 370 | .on('end', function () { 371 | console.log('Finish') 372 | buff = fs.readFileSync(ran) 373 | hafizh.sendMessage(from, buff, sticker, {quoted: tod}) 374 | fs.unlinkSync(media) 375 | fs.unlinkSync(ran) 376 | }) 377 | .addOutputOptions([`-vcodec`,`libwebp`,`-vf`,`scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`]) 378 | .toFormat('webp') 379 | .save(ran) 380 | } else if ((isMedia && tod.message.videoMessage.seconds < 11 || isQuotedVideo && tod.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage.seconds < 11) && args.length == 0) { 381 | const encmedia = isQuotedVideo ? JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo : tod 382 | const media = await hafizh.downloadAndSaveMediaMessage(encmedia) 383 | ran = getRandom('.webp') 384 | reply(mess.wait) 385 | await ffmpeg(`./${media}`) 386 | .inputFormat(media.split('.')[1]) 387 | .on('start', function (cmd) { 388 | console.log(`Started : ${cmd}`) 389 | }) 390 | .on('error', function (err) { 391 | console.log(`Error : ${err}`) 392 | fs.unlinkSync(media) 393 | tipe = media.endsWith('.mp4') ? 'video' : 'gif' 394 | reply(`𝗬𝗮𝗵 𝗴𝗮𝗴𝗮𝗹, 𝘂𝗹𝗮𝗻𝗴𝗶 𝗹𝗮𝗴𝗶 𝘆𝗮 𝘀𝗮𝘆𝗮𝗻𝗴`) 395 | }) 396 | .on('end', function () { 397 | console.log('Finish') 398 | buff = fs.readFileSync(ran) 399 | hafizh.sendMessage(from, buff, sticker, {quoted: tod}) 400 | fs.unlinkSync(media) 401 | fs.unlinkSync(ran) 402 | }) 403 | .addOutputOptions([`-vcodec`,`libwebp`,`-vf`,`scale='min(320,iw)':min'(320,ih)':force_original_aspect_ratio=decrease,fps=15, pad=320:320:-1:-1:color=white@0.0, split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse`]) 404 | .toFormat('webp') 405 | .save(ran) 406 | } else if ((isMedia || isQuotedImage) && args[0] == 'nobg') { 407 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo : tod 408 | const media = await hafizh.downloadAndSaveMediaMessage(encmedia) 409 | ranw = getRandom('.webp') 410 | ranp = getRandom('.png') 411 | reply(mess.wait) 412 | keyrmbg = 'Your-ApiKey' 413 | await removeBackgroundFromImageFile({path: media, apiKey: keyrmbg.result, size: 'auto', type: 'auto', ranp}).then(res => { 414 | fs.unlinkSync(media) 415 | let buffer = Buffer.from(res.base64img, 'base64') 416 | fs.writeFileSync(ranp, buffer, (err) => { 417 | if (err) return reply('𝗬𝗮𝗵 𝗴𝗮𝗴𝗮𝗹, 𝘂𝗹𝗮𝗻𝗴𝗶 𝗹𝗮𝗴𝗶 𝘆𝗮 𝘀𝗮𝘆𝗮𝗻𝗴') 418 | }) 419 | exec(`ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=20 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${ranw}`, (err) => { 420 | fs.unlinkSync(ranp) 421 | if (err) return reply(mess.error.stick) 422 | buff = fs.readFileSync(ranw) 423 | hafizh.sendMessage(from, buff, sticker, {quoted: tod}) 424 | }) 425 | }) 426 | } else { 427 | reply(`𝗸𝗶𝗿𝗶𝗺 𝗴𝗮𝗺𝗯𝗮𝗿 𝗱𝗲𝗻𝗴𝗮𝗻 𝗰𝗮𝗽𝘁𝗶𝗼𝗻 ${prefix}𝘀𝘁𝗶𝗰𝗸𝗲𝗿 𝗮𝘁𝗮𝘂 𝗿𝗲𝗽𝗹𝘆/𝘁𝗮𝗴 𝗴𝗮𝗺𝗯𝗮𝗿`) 428 | } 429 | break 430 | case 'gtts': 431 | case 'tts': 432 | if (args.length < 1) return hafizh.sendMessage(from, '𝗱𝗶𝗽𝗲𝗿𝗹𝘂𝗸𝗮𝗻 𝗸𝗼𝗱𝗲 𝗯𝗮𝗵𝗮𝘀𝗮!', text, {quoted: tod}) 433 | const gtts = require('./lib/gtts')(args[0]) 434 | if (args.length < 2) return hafizh.sendMessage(from, '𝗧𝗲𝗸𝘀 𝗺𝗮𝗻𝗮 𝘁𝗲𝗸𝘀?', text, {quoted: tod}) 435 | dtt = body.slice(9) 436 | ranm = getRandom('.mp3') 437 | rano = getRandom('.ogg') 438 | dtt.length > 300 439 | ? reply('𝘁𝗲𝗸𝘀𝗻𝘆𝗮 𝗷𝗮𝗻𝗴𝗮𝗻 𝗸𝗲𝗽𝗮𝗻𝗷𝗮𝗻𝗴𝗮𝗻') 440 | : gtts.save(ranm, dtt, function() { 441 | exec(`ffmpeg -i ${ranm} -ar 48000 -vn -c:a libopus ${rano}`, (err) => { 442 | fs.unlinkSync(ranm) 443 | buff = fs.readFileSync(rano) 444 | if (err) return reply('𝗬𝗮𝗵 𝗴𝗮𝗴𝗮𝗹, 𝘂𝗹𝗮𝗻𝗴𝗶 𝗹𝗮𝗴𝗶 𝘆𝗮 𝘀𝗮𝘆𝗮𝗻𝗴') 445 | hafizh.sendMessage(from, buff, audio, {quoted: tod, ptt:true}) 446 | fs.unlinkSync(rano) 447 | }) 448 | }) 449 | break 450 | case 'setprefix': 451 | if (args.length < 1) return 452 | prefix = args[0] 453 | reply(`𝗣𝗿𝗲𝗳𝗶𝘅 𝗯𝗲𝗿𝗵𝗮𝘀𝗶𝗹 𝗱𝗶 𝘂𝗯𝗮𝗵 𝗺𝗲𝗻𝗷𝗮𝗱𝗶 : ${prefix}`) 454 | break 455 | case 'pussy': 456 | ranp = getRandom('.gif') 457 | rano = getRandom('.webp') 458 | anu = await fetchJson('https://nekos.life/api/v2/img/pussy', {method: 'get'}) 459 | if (anu.error) return reply(anu.error) 460 | 461 | exec(`wget ${anu.url} -O ${ranp} && ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=15 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${rano}`, (err) => { 462 | fs.unlinkSync(ranp) 463 | if (err) return reply(mess.error.stick) 464 | buffer = fs.readFileSync(rano) 465 | hafizh.sendMessage(from, buffer, sticker, {quoted: tod}) 466 | fs.unlinkSync(rano) 467 | }) 468 | break 469 | case 'nsfwgif': 470 | ranp = getRandom('.gif') 471 | rano = getRandom('.webp') 472 | anu = await fetchJson('https://nekos.life/api/v2/img/nsfw_neko_gif', {method: 'get'}) 473 | if (anu.error) return reply(anu.error) 474 | 475 | exec(`wget ${anu.url} -O ${ranp} && ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=15 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${rano}`, (err) => { 476 | fs.unlinkSync(ranp) 477 | if (err) return reply(mess.error.stick) 478 | buffer = fs.readFileSync(rano) 479 | hafizh.sendMessage(from, buffer, sticker, {quoted: tod}) 480 | fs.unlinkSync(rano) 481 | }) 482 | break 483 | case 'tabok': 484 | ranp = getRandom('.gif') 485 | rano = getRandom('.webp') 486 | anu = await fetchJson('https://nekos.life/api/v2/img/spank', {method: 'get'}) 487 | if (anu.error) return reply(anu.error) 488 | 489 | exec(`wget ${anu.url} -O ${ranp} && ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=15 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${rano}`, (err) => { 490 | fs.unlinkSync(ranp) 491 | if (err) return reply(mess.error.stick) 492 | buffer = fs.readFileSync(rano) 493 | hafizh.sendMessage(from, buffer, sticker, {quoted: tod}) 494 | fs.unlinkSync(rano) 495 | }) 496 | break 497 | case 'kiss': 498 | ranp = getRandom('.gif') 499 | rano = getRandom('.webp') 500 | anu = await fetchJson('https://nekos.life/api/v2/img/kiss', {method: 'get'}) 501 | if (anu.error) return reply(anu.error) 502 | 503 | exec(`wget ${anu.url} -O ${ranp} && ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=15 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${rano}`, (err) => { 504 | fs.unlinkSync(ranp) 505 | if (err) return reply(mess.error.stick) 506 | buffer = fs.readFileSync(rano) 507 | hafizh.sendMessage(from, buffer, sticker, {quoted: tod}) 508 | fs.unlinkSync(rano) 509 | }) 510 | break 511 | case 'meme': 512 | meme = await kagApi.memes() 513 | buffer = await getBuffer(`https://imgur.com/${meme.hash}.jpg`) 514 | hafizh.sendMessage(from, buffer, image, {quoted: tod, caption: '.......'}) 515 | break 516 | case 'memeindo': 517 | memein = await kagApi.memeindo() 518 | buffer = await getBuffer(`https://imgur.com/${memein.hash}.jpg`) 519 | hafizh.sendMessage(from, buffer, image, {quoted: tod, caption: '.......'}) 520 | break 521 | case 'ssphone': 522 | buff = await getBuffer(`https://api.vhtear.com/ssweb?link=${body.slice(9)}&type=phone&apikey=${vhtearkey}`) 523 | 524 | hafizh.sendMessage(from, buff, image, {quoted: tod}) 525 | break 526 | case 'sspc': 527 | buff = await getBuffer(`https://api.vhtear.com/ssweb?link=${body.slice(6)}&type=pc&apikey=${vhtearkey}`) 528 | 529 | hafizh.sendMessage(from, buff, image, {quoted: tod}) 530 | break 531 | case 'puisi': 532 | buff = await getBuffer(`https://api.vhtear.com/puisi_image&apikey=${vhtearkey}`) 533 | hafizh.sendMessage(from, buff, image, {quoted: tod}) 534 | break 535 | case 'kapankah': 536 | const kapan1 = body.slice(1) 537 | const kapan2 = [ 538 | 'Hari ini', 539 | 540 | 'Mungkin besok', 541 | 542 | '1 Minggu lagi', 543 | 544 | 'Masih lama', 545 | 546 | '3 Bulan lagi', 547 | 548 | '7 Bulan lagi', 549 | 550 | '3 Tahun lagi', 551 | 552 | '4 Bulan lagi', 553 | 554 | '2 Bulan lagi', 555 | 556 | '1 Tahun lagi', 557 | 558 | '1 Bulan lagi', 559 | 560 | 'Coba ulangi', 561 | 562 | ] 563 | 564 | const kpnkh = kapan2[Math.floor(Math.random() * (kapan2.length))] 565 | 566 | const jawab1 = `Pertanyaan : *${kapan1}*\n\nJawaban: ${kpnkh}` 567 | 568 | hafizh.sendMessage(from, jawab1, text, {quoted: tod}) 569 | 570 | break 571 | case 'apakah': 572 | const tanya = body.slice(1) 573 | const apa = [ 574 | 'Ya', 575 | 576 | 'Mungkin', 577 | 578 | 'Tidak', 579 | 580 | 'Coba Ulangi', 581 | 582 | ] 583 | 584 | const apkh = apa[Math.floor(Math.random() * (apa.length))] 585 | 586 | const jawab = `Pertanyaan : *${tanya}*\n\nJawaban: ${apkh}` 587 | 588 | hafizh.sendMessage(from, jawab, text, {quoted: tod}) 589 | 590 | break 591 | case 'darkjoke': 592 | data = await fetchJson(`https://api.zeks.xyz/api/darkjokes?apikey=${zekskey}`) 593 | dark = data.result 594 | thumb = await getBuffer(dark) 595 | hafizh.sendMessage(from, thumb, image, {quoted: tod}) 596 | break 597 | case 'memeind': 598 | data = await fetchJson(`https://api.zeks.xyz/api/memeindo?apikey=${zekskey}`) 599 | dark = data.result 600 | thumb = await getBuffer(dark) 601 | hafizh.sendMessage(from, thumb, image, {quoted: tod}) 602 | break 603 | case 'harta': 604 | buff = await getBuffer(`https://api.vhtear.com/hartatahta?text=${body.slice(7)}&apikey=${vhtearkey}`) 605 | hafizh.sendMessage(from, buff, image, {quoted: tod}) 606 | break 607 | case 'lovetext': 608 | buff = await getBuffer(`https://api.vhtear.com/lovemessagetext?text=${body.slice(10)}&apikey=${vhtearkey}`) 609 | hafizh.sendMessage(from, buff, image, {quoted: tod}) 610 | break 611 | 612 | case 'loli': 613 | try { 614 | res = await fetchJson(`https://api.lolis.life/random`, {method: 'get'}) 615 | buffer = await getBuffer(res.url) 616 | hafizh.sendMessage(from, buffer, image, {quoted: tod, caption: 'ingat! Cintai lolimu'}) 617 | } catch (e) { 618 | console.log(`Error :`, color(e,'red')) 619 | reply('𝗘𝗥𝗥𝗢𝗥') 620 | } 621 | break 622 | case 'nsfwloli': 623 | try { 624 | if (!isNsfw) return reply('𝗠𝗮𝗮𝗳 𝗳𝗶𝘁𝘂𝗿 𝗶𝗻𝗶 𝗯𝗲𝗹𝘂𝗺 𝗱𝗶 𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻/𝗸𝗲𝘀𝗮𝗹𝗮𝗵𝗮𝗻 𝘀𝗲𝗿𝘃𝗲𝗿𝗻𝘆𝗮') 625 | res = await fetchJson(`https://api.lolis.life/random?nsfw=true`, {method: 'get'}) 626 | buffer = await getBuffer(res.url) 627 | hafizh.sendMessage(from, buffer, image, {quoted: tod, caption: 'Jangan jadiin bahan buat comli'}) 628 | } catch (e) { 629 | console.log(`Error :`, color(e,'red')) 630 | reply('𝗘𝗥𝗥𝗢𝗥') 631 | } 632 | break 633 | 634 | case 'holoh': 635 | if (args.length < 1) return reply('𝗸𝗮𝘀𝗶𝗵 𝘁𝗲𝗸𝘀 𝗹𝗮𝗵!!!') 636 | anu = await fetchJson(`https://shirayuki-api.herokuapp.com/api/v1/holoh?kata=${body.slice(7)}`, {method: 'get'}) 637 | reply(anu.result) 638 | break 639 | case 'terbalik': 640 | if (args.length < 1) return reply('𝗸𝗮𝘀𝗶𝗵 𝘁𝗲𝗸𝘀 𝗹𝗮𝗵!!!') 641 | meki = await fetchJson(`https://videfikri.com/api/hurufterbalik/?query=${body.slice(10)}`) 642 | hafizh.sendMessage(from, `Input: ${body.slice(10)}\nOutput: ${meki.result.kata}`, MessageType.text, {quoted: tod}) 643 | break 644 | case 'huruf': 645 | if (args.length < 1) return reply('𝗸𝗮𝘀𝗶𝗵 𝘁𝗲𝗸𝘀 𝗹𝗮𝗵!!!') 646 | meki = await fetchJson(`https://videfikri.com/api/jumlahhuruf/?query=${body.slice(7)}`) 647 | client.sendMessage(from, `Input: ${body.slice(7)}\nJumlah Huruf: ${meki.result.jumlah}`, MessageType.text, {quoted: tod}) 648 | break 649 | case 'hilih': 650 | if (args.length < 1) return reply('𝗸𝗮𝘀𝗶𝗵 𝘁𝗲𝗸𝘀 𝗹𝗮𝗵!!!') 651 | anu = await fetchJson(`https://mhankbarbar.tech/api/hilih?teks=${body.slice(7)}`, {method: 'get'}) 652 | reply(anu.result) 653 | break 654 | case 'yt': 655 | if (args.length < 1) return reply('𝘂𝗿𝗹𝗻𝘆𝗮 𝗺𝗮𝗻𝗮?') 656 | if(!isUrl(args[0]) && !args[0].includes('youtube.com')) return reply(mess.error.Iv) 657 | anu = await fetchJson(`https://mhankbarbar.tech/api/yta?url=${args[0]}&apiKey=${apikey}`, {method: 'get'}) 658 | if (anu.error) return reply(anu.error) 659 | teks = `*Title* : ${anu.title}\n*Filesize* : ${anu.filesize}` 660 | thumb = await getBuffer(anu.thumb) 661 | hafizh.sendMessage(from, thumb, image, {quoted: tod, caption: teks}) 662 | buffer = await getBuffer(anu.result) 663 | hafizh.sendMessage(from, buffer, audio, {mimetype: 'audio/mp4', filename: `${anu.title}.mp3`, quoted: tod}) 664 | break 665 | case 'ytsearch': 666 | if (args.length < 1) return reply('𝗧𝗲𝗸𝘀𝗻𝘆𝗮 𝗺𝗮𝗻𝗮 𝘁𝗲𝗸𝘀?') 667 | anu = await fetchJson(`https://mhankbarbar.tech/api/ytsearch?q=${body.slice(10)}&apiKey=${apikey}`, {method: 'get'}) 668 | if (anu.error) return reply(anu.error) 669 | teks = '=================\n' 670 | for (let i of anu.result) { 671 | teks += `*Title* : ${i.title}\n*Id* : ${i.id}\n*Published* : ${i.publishTime}\n*Duration* : ${i.duration}\n*Views* : ${h2k(i.views)}\n=================\n` 672 | } 673 | reply(teks.trim()) 674 | break 675 | case 'yt2mp3': 676 | if (args.length < 1) return reply('Urlnya mana um?') 677 | if(!isUrl(args[0]) && !args[0].includes('youtu')) return reply(mess.error.Iv) 678 | anu = await fetchJson(`https://mhankbarbar.tech/api/yta?url=${args[0]}&apiKey=${apikey}`, {method: 'get'}) 679 | if (anu.error) return reply(anu.error) 680 | teks = `*Title* : ${anu.title}\n*Filesize* : ${anu.filesize}` 681 | thumb = await getBuffer(anu.thumb) 682 | hafizh.sendMessage(from, thumb, image, {quoted: tod, caption: teks}) 683 | buffer = await getBuffer(anu.result) 684 | hafizh.sendMessage(from, buffer, audio, ytmp3, {mimetype: 'audio/mp4', filename: `${anu.title}.mp3`, quoted: tod}) 685 | break 686 | case 'joox': 687 | data = await fetchJson(`https://tobz-api.herokuapp.com/api/joox?q=${body.slice(6)}&apikey=${tobzkey}`, {method: 'get'}) 688 | teks = '=================\n' 689 | const joox = data.result 690 | teks += `*Judul:* ${joox.title}\n*Album:* ${joox.album}\n*dipublikasian pada*: ${joox.dipublikasi}\n*Download sendiri:* ${joox.mp3}\n=================\n` 691 | thumb = await getBuffer(joox.thumb) 692 | hafizh.sendMessage(from, thumb, image, {quoted: tod, caption: teks}) 693 | buffer = await getBuffer(joox.mp3) 694 | hafizh.sendMessage(from, buffer, audio, {mimetype: 'audio/mp4', filename: `${joox.title}.mp3`, quoted: tod}) 695 | break 696 | case 'play': 697 | data = await fetchJson(`https://api.vhtear.com/ytmp3?query=${body.slice(6)}&apikey=${vhtearkey}`, {method: 'get'}) 698 | teks = '=================\n' 699 | const play = data.result 700 | teks += `*Judul:* ${play.title}\n*Durasi:* ${play.duration}\n*size*: ${play.size}\n*Download sendiri:* ${play.mp3}\n=================\n` 701 | thumb = await getBuffer(play.image) 702 | hafizh.sendMessage(from, thumb, image, {quoted: tod, caption: teks}) 703 | buffer = await getBuffer(play.mp3) 704 | hafizh.sendMessage(from, buffer, audio, {mimetype: 'audio/mp4', filename: `${play.title}.mp3`, quoted: tod}) 705 | break 706 | case 'tiktok': 707 | if (args.length < 1) return reply('𝘂𝗿𝗹𝗻𝘆𝗮 𝗺𝗮𝗻𝗮?') 708 | if (!isUrl(args[0]) && !args[0].includes('tiktok.com')) return reply(mess.error.Iv) 709 | reply(mess.wait) 710 | anu = await fetchJson(`https://mhankbarbar.tech/api/tiktok?url=${args[0]}&apiKey=${apikey}`, {method: 'get'}) 711 | if (anu.error) return reply(anu.error) 712 | buffer = await getBuffer(anu.result) 713 | hafizh.sendMessage(from, buffer, video, {quoted: tod}) 714 | break 715 | case 'nulis': 716 | case 'tulis': 717 | if (args.length < 1) return reply('𝗧𝗲𝗸𝘀𝗻𝘆𝗮 𝗺𝗮𝗻𝗮 𝘁𝗲𝗸𝘀?') 718 | teks = body.slice(7) 719 | reply(mess.wait) 720 | anu = await fetchJson(`https://mhankbarbar.tech/nulis?text=${teks}&apiKey=${apikey}`, {method: 'get'}) 721 | if (anu.error) return reply(anu.error) 722 | buff = await getBuffer(anu.result) 723 | hafizh.sendMessage(from, buff, image, {quoted: tod, caption: mess.success}) 724 | break 725 | case 'url2img': 726 | tipelist = ['desktop','tablet','mobile'] 727 | if (args.length < 1) return reply('𝗧𝗶𝗽𝗲𝗻𝘆𝗮 𝗮𝗽𝗮??') 728 | if (!tipelist.includes(args[0])) return reply('𝗧𝗶𝗽𝗲 𝗱𝗲𝘀𝗸𝘁𝗼𝗽|𝘁𝗮𝗯𝗹𝗲𝘁|𝗺𝗼𝗯𝗶𝗹𝗲') 729 | if (args.length < 2) return reply('𝘂𝗿𝗹𝗻𝘆𝗮 𝗺𝗮𝗻𝗮?') 730 | if (!isUrl(args[1])) return reply(mess.error.Iv) 731 | reply(mess.wait) 732 | anu = await fetchJson(`https://mhankbarbar.tech/api/url2image?tipe=${args[0]}&url=${args[1]}&apiKey=${apikey}`, {method: 'get'}) 733 | if (anu.error) return reply(anu.error) 734 | buff = await getBuffer(anu.result) 735 | hafizh.sendMessage(from, buff, image, {quoted: tod}) 736 | break 737 | case 'carbon': 738 | if (args.length < 1)return reply('Sertakan teks nya') 739 | targed = mek.participant 740 | teks = body.slice(8) 741 | drc = await getBuffer(`https://carbonnowsh.herokuapp.com/?code=${teks}`) 742 | hafizh.sendMessage(from, drc, image, {quoted: tod}) 743 | break 744 | case 'tstiker': 745 | case 'tsticker': 746 | if (args.length < 1) return reply('𝗸𝗮𝘀𝗶𝗵 𝘁𝗲𝗸𝘀 𝗹𝗮𝗵!!!') 747 | ranp = getRandom('.png') 748 | rano = getRandom('.webp') 749 | teks = body.slice(9).trim() 750 | anu = await fetchJson(`https://mhankbarbar.tech/api/text2image?text=${teks}&apiKey=${apikey}`, {method: 'get'}) 751 | if (anu.error) return reply(anu.error) 752 | exec(`wget ${anu.result} -O ${ranp} && ffmpeg -i ${ranp} -vcodec libwebp -filter:v fps=fps=20 -lossless 1 -loop 0 -preset default -an -vsync 0 -s 512:512 ${rano}`, (err) => { 753 | fs.unlinkSync(ranp) 754 | if (err) return reply(mess.error.stick) 755 | buffer = fs.readFileSync(rano) 756 | hafizh.sendMessage(from, buffer, sticker, {quoted: tod}) 757 | fs.unlinkSync(rano) 758 | }) 759 | break 760 | case 'fitnah': 761 | case 'fake': // tuh costum reply 762 | costum('Ini', '6287775452636@s.whatsapp.com') 763 | break 764 | case 'tagall': 765 | members_id = [] 766 | teks = (args.length > 1) ? body.slice(8).trim() : '' 767 | teks += '\n\n' 768 | for (let mem of groupMembers) { 769 | rchoice = Math.floor(Math.random() * list_emoji.length) 770 | teks += `┣➥ @${mem.jid.split('@')[0]}\n` 771 | members_id.push(mem.jid) 772 | } 773 | mentions(teks, members_id, true) 774 | break 775 | case 'clearall': 776 | if (!isOwner) return reply('𝙡𝙪 𝙨𝙞𝙖𝙥𝙖?') 777 | anu = await hafizh.chats.all() 778 | hafizh.setMaxListeners(25) 779 | for (let _ of anu) { 780 | hafizh.deleteChat(_.jid) 781 | } 782 | reply('𝗰𝗹𝗲𝗮𝗿 𝗮𝗹𝗹 𝘀𝘂𝗸𝘀𝗲𝘀 𝘆𝗮𝗵 :)') 783 | break 784 | case 'block': 785 | hafizh.blockUser (`${body.slice(7)}@c.us`, "add") 786 | hafizh.sendMessage(from, `𝗽𝗲𝗿𝗶𝗻𝘁𝗮𝗵 𝗗𝗶𝘁𝗲𝗿𝗶𝗺𝗮, 𝗺𝗲𝗺𝗯𝗹𝗼𝗸𝗶𝗿 ${body.slice(7)}@c.us`, text) 787 | break 788 | case 'unblock': 789 | hafizh.blockUser (`${body.slice(9)}@c.us`, "remove") 790 | hafizh.sendMessage(from, `𝗽𝗲𝗿𝗶𝗻𝘁𝗮𝗵 𝗗𝗶𝘁𝗲𝗿𝗶𝗺𝗮, 𝗺𝗲𝗺𝗯𝘂𝗸𝗮 ${body.slice(9)}@c.us`, text) 791 | break 792 | case 'leave': 793 | if (!isGroup) return reply(mess.only.group) 794 | if (!isOwner) return reply(mess.only.ownerB) 795 | await hafizh.hafizh.leaveGroup(from, '𝗕𝘆𝗲𝗲', groupId) 796 | 797 | break 798 | case 'bc': 799 | if (args.length < 1) return reply('.......') 800 | anu = await hafizh.chats.all() 801 | if (isMedia && !tod.message.videoMessage || isQuotedImage) { 802 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo : tod 803 | buff = await hafizh.downloadMediaMessage(encmedia) 804 | for (let _ of anu) { 805 | hafizh.sendMessage(_.jid, buff, image, {caption: `❮ 𝘽𝙊𝙏 𝘽𝙍𝙊𝘼𝘿𝘾𝘼𝙎𝙏 ❯\n\n${body.slice(4)}`}) 806 | } 807 | reply('𝙨𝙪𝙘𝙘𝙚𝙨𝙨 𝙗𝙧𝙤𝙖𝙙𝙘𝙖𝙨𝙩 ') 808 | } else { 809 | for (let _ of anu) { 810 | sendMess(_.jid, `❮ 𝘽𝙊𝙏 𝘽𝙍𝙊𝘼𝘿𝘾𝘼𝙎𝙏 ❯\n\n${body.slice(4)}`) 811 | } 812 | reply('𝙨𝙪𝙘𝙘𝙚𝙨𝙨 𝙗𝙧𝙤𝙖𝙙𝙘𝙖𝙨𝙩 ') 813 | } 814 | break 815 | case 'setpp': 816 | media = await hafizh.downloadAndSaveMediaMessage(tod) 817 | await hafizh.updateProfilePicture (from, media) 818 | reply('𝗦𝘂𝗸𝘀𝗲𝘀 𝗺𝗲𝗻𝗴𝗴𝗮𝗻𝘁𝗶 𝗶𝗰𝗼𝗻 𝗚𝗿𝘂𝗽') 819 | break 820 | case 'add': 821 | if (args.length < 1) return reply('𝗽𝗮𝘀𝘁𝗶 𝘆𝗮𝗻𝗴 𝗺𝗮𝘂 𝗱𝗶 𝗮𝗱𝗱 𝗮𝗻𝗮𝗸 𝗽𝘂𝗻𝗴𝘂𝘁?') 822 | if (args[0].startsWith('08')) return reply('𝗚𝘂𝗻𝗮𝗸𝗮𝗻 𝗸𝗼𝗱𝗲 𝗻𝗲𝗴𝗮𝗿𝗮') 823 | try { 824 | num = `${args[0].replace(/ /g, '')}@s.whatsapp.net` 825 | hafizh.groupAdd(from, [num]) 826 | } catch (e) { 827 | console.log('Error :', e) 828 | reply('𝗴𝗮𝗴𝗮𝗹 𝗺𝗲𝗻𝗮𝗺𝗯𝗮𝗵𝗸𝗮𝗻, 𝗺𝘂𝗻𝗴𝗸𝗶𝗻 𝗸𝗮𝗿𝗲𝗻𝗮 𝗱𝗶 𝗽𝗿𝗶𝘃𝗮𝘁𝗲') 829 | } 830 | break 831 | case 'grup': 832 | case 'group': 833 | if (args[0] === 'buka') { 834 | reply(`𝗕𝗲𝗿𝗵𝗮𝘀𝗶𝗹 𝗠𝗲𝗺𝗯𝘂𝗸𝗮 𝗚𝗿𝗼𝘂𝗽`) 835 | hafizh.groupSettingChange(from, GroupSettingChange.messageSend, false) 836 | } else if (args[0] === 'tutup') { 837 | reply(`𝗕𝗲𝗿𝗵𝗮𝘀𝗶𝗹 𝗠𝗲𝗻𝘂𝘁𝘂𝗽 𝗚𝗿𝗼𝘂𝗽`) 838 | hafizh.groupSettingChange(from, GroupSettingChange.messageSend, true) 839 | } 840 | break 841 | 842 | case 'admin': 843 | case 'owner': 844 | case 'creator': 845 | hafizh.sendMessage(from, {displayname: "Jeff", vcard: vcard}, MessageType.contact, { quoted: tod}) 846 | hafizh.sendMessage(from, 'wa.me/+6287775452636',MessageType.text, { quoted: tod} ) 847 | break 848 | case 'demote': 849 | if (tod.message.extendedTextMessage === undefined || tod.message.extendedTextMessage === null) return reply('𝗧𝗮𝗴 𝘁𝗮𝗿𝗴𝗲𝘁 𝘆𝗮𝗻𝗴 𝗶𝗻𝗴𝗶𝗻 𝗱𝗶 𝘁𝗲𝗻𝗱𝗮𝗻𝗴!') 850 | mentioned = tod.message.extendedTextMessage.contextInfo.mentionedJid 851 | if (mentioned.length > 1) { 852 | teks = '' 853 | for (let _ of mentioned) { 854 | teks += `𝘆𝗮𝗵𝗵 𝗷𝗮𝗯𝗮𝘁𝗮𝗻 𝗮𝗱𝗺𝗶𝗻 𝗸𝗮𝗺𝘂 𝘀𝘂𝗱𝗮𝗵 𝗱𝗶 𝗰𝗼𝗽𝗼𝘁 :\n` 855 | teks += `@_.split('@')[0]` 856 | } 857 | mentions(teks, mentioned, true) 858 | hafizh.groupDemoteAdmin(from, mentioned) 859 | } else { 860 | mentions(`𝘆𝗮𝗵𝗵 @${mentioned[0].split('@')[0]} 𝗷𝗮𝗯𝗮𝘁𝗮𝗻 𝗮𝗱𝗺𝗶𝗻 𝗸𝗮𝗺𝘂 𝘀𝘂𝗱𝗮𝗵 𝗱𝗶 𝗰𝗼𝗽𝗼𝘁`, mentioned, true) 861 | hafizh.groupDemoteAdmin(from, mentioned) 862 | } 863 | break 864 | case 'promote': 865 | if (tod.message.extendedTextMessage === undefined || tod.message.extendedTextMessage === null) return reply('𝗧𝗮𝗴 𝘁𝗮𝗿𝗴𝗲𝘁 𝘆𝗮𝗻𝗴 𝗶𝗻𝗴𝗶𝗻 𝗱𝗶 𝘁𝗲𝗻𝗱𝗮𝗻𝗴!') 866 | mentioned = tod.message.extendedTextMessage.contextInfo.mentionedJid 867 | if (mentioned.length > 1) { 868 | teks = '' 869 | for (let _ of mentioned) { 870 | teks += `DONE :\n` 871 | teks += `@_.split('@')[0]` 872 | } 873 | mentions(teks, mentioned, true) 874 | hafizh.groupMakeAdmin(from, mentioned) 875 | } else { 876 | mentions(`DONE @${mentioned[0].split('@')[0]}`, mentioned, true) 877 | hafizh.groupMakeAdmin(from, mentioned) 878 | } 879 | break 880 | case 'kick': 881 | if (tod.message.extendedTextMessage === undefined || tod.message.extendedTextMessage === null) return reply('𝗧𝗮𝗴 𝘁𝗮𝗿𝗴𝗲𝘁 𝘆𝗮𝗻𝗴 𝗶𝗻𝗴𝗶𝗻 𝗱𝗶 𝘁𝗲𝗻𝗱𝗮𝗻𝗴!') 882 | mentioned = tod.message.extendedTextMessage.contextInfo.mentionedJid 883 | if (mentioned.length > 1) { 884 | teks = '' 885 | for (let _ of mentioned) { 886 | teks += `Otw.... :\n` 887 | teks += `@_.split('@')[0]` 888 | } 889 | mentions(teks, mentioned, true) 890 | hafizh.groupRemove(from, mentioned) 891 | } else { 892 | mentions(`Otw... @${mentioned[0].split('@')[0]} 𝘀𝗮𝘆𝗮𝗻𝗴`, mentioned, true) 893 | hafizh.groupRemove(from, mentioned) 894 | } 895 | break 896 | case 'listadmin': 897 | teks = `𝗟𝗶𝘀𝘁 𝗮𝗱𝗺𝗶𝗻 𝗼𝗳 𝗴𝗿𝗼𝘂𝗽 *${groupMetadata.subject}*\n𝗧𝗼𝘁𝗮𝗹 : ${groupAdmins.length}\n\n` 898 | no = 0 899 | for (let admon of groupAdmins) { 900 | no += 1 901 | teks += `[${no.toString()}] @${admon.split('@')[0]}\n` 902 | } 903 | mentions(teks, groupAdmins, true) 904 | break 905 | case 'toimg': 906 | if (!isQuotedSticker) return reply('𝗥𝗲𝗽𝗹𝘆/𝘁𝗮𝗴 𝘀𝘁𝗶𝗰𝗸𝗲𝗿!') 907 | reply(mess.wait) 908 | encmedia = JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo 909 | media = await hafizh.downloadAndSaveMediaMessage(encmedia) 910 | ran = getRandom('.png') 911 | exec(`ffmpeg -i ${media} ${ran}`, (err) => { 912 | fs.unlinkSync(media) 913 | if (err) return reply('𝗬𝗮𝗵 𝗴𝗮𝗴𝗮𝗹, 𝘂𝗹𝗮𝗻𝗴𝗶 𝗹𝗮𝗴𝗶 𝘀𝗮𝘆𝗮𝗻𝗴') 914 | buffer = fs.readFileSync(ran) 915 | hafizh.sendMessage(from, buffer, image, {quoted: tod, caption: '𝗡𝗶𝗵 𝗦𝗮𝘆𝗮𝗻𝗴'}) 916 | fs.unlinkSync(ran) 917 | }) 918 | break 919 | 920 | case 'simi': 921 | if (args.length < 1) return reply('𝗸𝗮𝘀𝗶𝗵 𝘁𝗲𝗸𝘀 𝗹𝗮𝗵!!!') 922 | teks = body.slice(5) 923 | anu = await simih(teks) //fetchJson(`https://mhankbarbar.tech/api/samisami?text=${teks}`, {method: 'get'}) 924 | //if (anu.error) return reply('Simi ga tau kak') 925 | reply(anu) 926 | break 927 | case 'simih': 928 | if (!isGroup) return reply(mess.only.group) 929 | if (!isGroupAdmins) return reply(mess.only.admin) 930 | if (args.length < 1) return reply('𝗜𝘆𝗮 𝘀𝗮𝘆𝗮𝗻𝗴') 931 | if (Number(args[0]) === 1) { 932 | if (isSimi) return reply('𝘀𝘂𝗱𝗮𝗵 𝗮𝗸𝘁𝗶𝗳!!!') 933 | samih.push(from) 934 | fs.writeFileSync('./src/simi.json', JSON.stringify(samih)) 935 | reply('❬ 𝗦𝗨𝗞𝗦𝗘𝗦 ❭ 𝗠𝗲𝗻𝗴𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻 𝗳𝗶𝘁𝘂𝗿 𝘀𝗶𝗺𝗶 𝗱𝗶 𝗴𝗿𝗼𝘂𝗽 𝗶𝗻𝗶️') 936 | } else if (Number(args[0]) === 0) { 937 | samih.splice(from, 1) 938 | fs.writeFileSync('./src/simi.json', JSON.stringify(samih)) 939 | reply('❬ 𝗦𝗨𝗞𝗦𝗘𝗦 ❭ 𝗠𝗲𝗻𝗼𝗻𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻 𝗳𝗶𝘁𝘂𝗿 𝘀𝗶𝗺𝗶 𝗱𝗶 𝗴𝗿𝗼𝘂𝗽 𝗶𝗻𝗶️️') 940 | } else { 941 | reply('𝗸𝗲𝘁𝗶𝗸 𝗽𝗲𝗿𝗶𝗻𝘁𝗮𝗵 𝟭 𝘂𝗻𝘁𝘂𝗸 𝗺𝗲𝗻𝗴𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻, 𝟬 𝘂𝗻𝘁𝘂𝗸 𝗺𝗲𝗻𝗼𝗻𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻\n𝗰𝗼𝗻𝘁𝗼𝗵: 𝘀𝗶𝗺𝗶𝗵 𝟭') 942 | } 943 | break 944 | case 'nsfw': 945 | if (!isGroup) return reply(mess.only.group) 946 | if (!isGroupAdmins) return reply(mess.only.admin) 947 | if (args.length < 1) return reply('𝗜𝘆𝗮 𝘀𝗮𝘆𝗮𝗻𝗴') 948 | if (Number(args[0]) === 1) { 949 | if (isNsfw) return reply('𝘀𝘂𝗱𝗮𝗵 𝗮𝗸𝘁𝗶𝗳!!!') 950 | nsfw.push(from) 951 | fs.writeFileSync('./src/nsfw.json', JSON.stringify(nsfw)) 952 | reply('❬ 𝗦𝗨𝗞𝗦𝗘𝗦 ❭ 𝗠𝗲𝗻𝗴𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻 𝗳𝗶𝘁𝘂𝗿 𝗻𝘀𝗳𝘄 𝗱𝗶 𝗴𝗿𝗼𝘂𝗽 𝗶𝗻𝗶') 953 | } else if (Number(args[0]) === 0) { 954 | nsfw.splice(from, 1) 955 | fs.writeFileSync('./src/nsfw.json', JSON.stringify(nsfw)) 956 | reply('❬ 𝗦𝗨𝗞𝗦𝗘𝗦 ❭ 𝗠𝗲𝗻𝗼𝗻𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻 𝗳𝗶𝘁𝘂𝗿 𝗻𝘀𝗳𝘄 𝗱𝗶 𝗴𝗿𝗼𝘂𝗽 𝗶𝗻𝗶️') 957 | } else { 958 | reply('𝗸𝗲𝘁𝗶𝗸 𝗽𝗲𝗿𝗶𝗻𝘁𝗮𝗵 𝟭 𝘂𝗻𝘁𝘂𝗸 𝗺𝗲𝗻𝗴𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻, 𝟬 𝘂𝗻𝘁𝘂𝗸 𝗺𝗲𝗻𝗼𝗻𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻\n𝗰𝗼𝗻𝘁𝗼𝗵: 𝗻𝘀𝗳𝘄 𝟭') 959 | } 960 | break 961 | case 'welcome': 962 | if (args.length < 1) return reply('𝗜𝘆𝗮 𝘀𝗮𝘆𝗮𝗻𝗴') 963 | if (Number(args[0]) === 1) { 964 | if (isWelkom) return reply('𝘀𝘂𝗱𝗮𝗵 𝗮𝗸𝘁𝗶𝗳!!!') 965 | welkom.push(from) 966 | fs.writeFileSync('./src/welkom.json', JSON.stringify(welkom)) 967 | reply('❬ 𝗦𝗨𝗞𝗦𝗘𝗦 ❭ 𝗠𝗲𝗻𝗴𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻 𝗳𝗶𝘁𝘂𝗿 𝘄𝗲𝗹𝗰𝗼𝗺𝗲/𝗹𝗲𝗳𝘁 𝗱𝗶 𝗴𝗿𝗼𝘂𝗽 𝗶𝗻𝗶️') 968 | } else if (Number(args[0]) === 0) { 969 | welkom.splice(from, 1) 970 | fs.writeFileSync('./src/welkom.json', JSON.stringify(welkom)) 971 | reply('❬ 𝗦𝗨𝗞𝗦𝗘𝗦 ❭ 𝗠𝗲𝗻𝗼𝗻𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻 𝗳𝗶𝘁𝘂𝗿 𝘄𝗲𝗹𝗰𝗼𝗺𝗲/𝗹𝗲𝗳𝘁 𝗱𝗶 𝗴𝗿𝗼𝘂𝗽 𝗶𝗻𝗶️') 972 | } else { 973 | reply('𝗸𝗲𝘁𝗶𝗸 𝗽𝗲𝗿𝗶𝗻𝘁𝗮𝗵 𝟭 𝘂𝗻𝘁𝘂𝗸 𝗺𝗲𝗻𝗴𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻, 𝟬 𝘂𝗻𝘁𝘂𝗸 𝗺𝗲𝗻𝗼𝗻𝗮𝗸𝘁𝗶𝗳𝗸𝗮𝗻\n𝗰𝗼𝗻𝘁𝗼𝗵: ${prefix}𝘄𝗲𝗹𝗰𝗼𝗺𝗲 𝟭') 974 | } 975 | break 976 | case 'tagall2': 977 | members_id = [] 978 | teks = (args.length > 1) ? body.slice(8).trim() : '' 979 | teks += '\n\n' 980 | for (let mem of groupMembers) { 981 | teks += `╠➥ @${mem.jid.split('@')[0]}\n` 982 | members_id.push(mem.jid) 983 | } 984 | reply(teks) 985 | break 986 | case 'tagall3': 987 | members_id = [] 988 | teks = (args.length > 1) ? body.slice(8).trim() : '' 989 | teks += '\n\n' 990 | for (let mem of groupMembers) { 991 | teks += `╠➥ https://wa.me/${mem.jid.split('@')[0]}\n` 992 | members_id.push(mem.jid) 993 | } 994 | hafizh.sendMessage(from, teks, text, {detectLinks: false, quoted: tod}) 995 | break 996 | case 'clone': 997 | if (args.length < 1) return reply('𝘁𝗮𝗴 𝘁𝗮𝗿𝗴𝗲𝘁 𝘆𝗮𝗻𝗴 𝗺𝗮𝘂 𝗱𝗶 𝗰𝗹𝗼𝗻𝗲!!!') 998 | if (tod.message.extendedTextMessage === undefined || tod.message.extendedTextMessage === null) return reply('Tag cvk') 999 | mentioned = tod.message.extendedTextMessage.contextInfo.mentionedJid[0] 1000 | let { jid, id, notify } = groupMembers.find(x => x.jid === mentioned) 1001 | try { 1002 | pp = await hafizh.getProfilePicture(id) 1003 | buffer = await getBuffer(pp) 1004 | hafizh.updateProfilePicture(botNumber, buffer) 1005 | mentions(`Foto profile Berhasil di perbarui menggunakan foto profile @${id.split('@')[0]}`, [jid], true) 1006 | } catch (e) { 1007 | reply('𝗬𝗮𝗵 𝗴𝗮𝗴𝗮𝗹, 𝘂𝗹𝗮𝗻𝗴𝗶 𝗹𝗮𝗴𝗶 𝘀𝗮𝘆𝗮𝗻𝗴') 1008 | } 1009 | break 1010 | case 'wait': 1011 | if ((isMedia && !tod.message.videoMessage || isQuotedImage) && args.length == 0) { 1012 | reply(mess.wait) 1013 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(tod).replace('quotedM','m')).message.extendedTextMessage.contextInfo : tod 1014 | media = await hafizh.downloadMediaMessage(encmedia) 1015 | await wait(media).then(res => { 1016 | hafizh.sendMessage(from, res.video, video, {quoted: tod, caption: res.teks.trim()}) 1017 | }).catch(err => { 1018 | reply(err) 1019 | }) 1020 | } else { 1021 | reply('𝗸𝗶𝗿𝗶𝗺 𝗳𝗼𝘁𝗼 𝗱𝗲𝗻𝗴𝗮𝗻 𝗰𝗮𝗽𝘁𝗶𝗼𝗻 𝗼𝗰𝗿') 1022 | } 1023 | break 1024 | default: 1025 | if (isGroup && isSimi && budy != undefined) { 1026 | console.log(budy) 1027 | muehe = await simih(budy) 1028 | console.log(muehe) 1029 | reply(muehe) 1030 | } else { 1031 | } 1032 | } 1033 | } catch (e) { 1034 | console.log('Error : %s', color(e, 'red')) 1035 | } 1036 | }) 1037 | 1038 | 1039 | 1040 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | 3 | apt-get update 4 | apt-get upgrade 5 | apt-get install nodejs 6 | apt-get install libwebp 7 | apt-get install mc 8 | apt-get install ffmpeg 9 | apt-get install wget 10 | apt-get install tesseract 11 | wget -O ~/../usr/share/tessdata/ind.traineddata "https://github.com/tesseract-ocr/tessdata/blob/master/ind.traineddata?raw=true" 12 | npm install 13 | 14 | echo "[*] All dependencies have been installed, please run the command \"npm start\" to immediately start the script" 15 | -------------------------------------------------------------------------------- /lib/P: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /lib/color.js: -------------------------------------------------------------------------------- 1 | const chalk = require('chalk') 2 | 3 | const color = (text, color) => { 4 | return !color ? chalk.green(text) : chalk.keyword(color)(text) 5 | } 6 | 7 | const bgcolor = (text, bgcolor) => { 8 | return !bgcolor ? chalk.green(text) : chalk.bgKeyword(bgcolor)(text) 9 | } 10 | 11 | module.exports = { 12 | color, 13 | bgcolor 14 | } 15 | -------------------------------------------------------------------------------- /lib/donasi.js: -------------------------------------------------------------------------------- 1 | const donasi = () => { 2 | return `[ DONASI T027BOT ] 3 | 4 | ┏━━━━━━━━━━━━━━━━━━━━ 5 | ┃ 𝗗𝗢𝗡𝗔𝗦𝗜 6 | ┣━━━━━━━━━━━━━━━━━━━━ 7 | ┣━⊱❉ 𝗗𝗢𝗡𝗔𝗦𝗜 ❉⊰━━✿ 8 | ┃ 9 | ┣➥ *OVO* : 0877-7545-2636 10 | ┣➥ *PULSA* : 0877-7545-2636 11 | ┣➥ *GOPAY* : 0877-7545-2636 12 | ┃ 13 | ┣━━━━━━━━━━━━━━━━━━━━ 14 | ┃ 𝗣𝗢𝗪𝗘𝗥𝗘𝗗 𝗕𝗬 𝗧𝟬𝟮𝟳𝗕𝗢𝗧 15 | ┗━━━━━━━━━━━━━━━━━━━━` 16 | } 17 | 18 | exports.donasi = donasi -------------------------------------------------------------------------------- /lib/fetcher.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | const fs = require('fs') 3 | 4 | exports.getBase64 = getBase64 = async (url) => { 5 | const response = await fetch(url, { headers: { 'User-Agent': 'okhttp/4.5.0' } }); 6 | if (!response.ok) throw new Error(`unexpected response ${response.statusText}`); 7 | const buffer = await response.buffer(); 8 | const videoBase64 = `data:${response.headers.get('content-type')};base64,` + buffer.toString('base64'); 9 | if (buffer) 10 | return videoBase64; 11 | }; 12 | 13 | exports.getBuffer = getBuffer = async (url) => { 14 | const res = await fetch(url, {headers: { 'User-Agent': 'okhttp/4.5.0'}, method: 'GET' }) 15 | const anu = fs.readFileSync('./src/emror.jpg') 16 | if (!res.ok) return { type: 'image/jpeg', result: anu } 17 | const buff = await res.buffer() 18 | if (buff) 19 | return { type: res.headers.get('content-type'), result: buff } 20 | } 21 | 22 | exports.fetchJson = fetchJson = (url, options) => new Promise(async (resolve, reject) => { 23 | fetch(url, options) 24 | .then(response => response.json()) 25 | .then(json => { 26 | // console.log(json) 27 | resolve(json) 28 | }) 29 | .catch((err) => { 30 | reject(err) 31 | }) 32 | }) 33 | 34 | 35 | exports.fetchText = fetchText = (url, options) => new Promise(async (resolve, reject) => { 36 | fetch(url, options) 37 | .then(response => response.text()) 38 | .then(text => { 39 | // console.log(text) 40 | resolve(text) 41 | }) 42 | .catch((err) => { 43 | reject(err) 44 | }) 45 | }) 46 | 47 | //exports.getBase64 = getBase64; 48 | -------------------------------------------------------------------------------- /lib/functions.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | const axios = require('axios') 3 | const cfonts = require('cfonts') 4 | const spin = require('spinnies') 5 | const Crypto = require('crypto') 6 | 7 | const wait = async (media) => new Promise(async (resolve, reject) => { 8 | const attachmentData = `data:image/jpeg;base64,${media.toString('base64')}` 9 | const response = await fetch("https://trace.moe/api/search",{method: "POST",body: JSON.stringify({ image: attachmentData }),headers: { "Content-Type": "application/json" }}); 10 | if (!response.ok) reject(`Gambar tidak ditemukan!`); 11 | const result = await response.json() 12 | try { 13 | const { is_adult, title, title_chinese, title_romaji, title_english, episode, season, similarity, filename, at, tokenthumb, anilist_id } = result.docs[0] 14 | let belief = () => similarity < 0.89 ? "Saya memiliki keyakinan rendah dalam hal ini : " : "" 15 | let ecch = () => is_adult ? "Iya" : "Tidak" 16 | resolve({video: await getBuffer(`https://media.trace.moe/video/${anilist_id}/${encodeURIComponent(filename)}?t=${at}&token=${tokenthumb}`), teks: `${belief()} 17 | ~> Ecchi : *${ecch()}* 18 | ~> Judul Jepang : *${title}* 19 | ~> Ejaan Judul : *${title_romaji}* 20 | ~> Judul Inggris : *${title_english}* 21 | ~> Episode : *${episode}* 22 | ~> Season : *${season}*`}); 23 | } catch (e) { 24 | console.log(e) 25 | reject(`Saya tidak tau ini anime apa`) 26 | } 27 | }) 28 | 29 | const simih = async (text) => { 30 | try { 31 | const sami = await fetch(`https://secureapp.simsimi.com/v1/simsimi/talkset?uid=297971048&av=6.9.3.4&lc=id&cc=ID&tz=Asia%2FJakarta&os=a&ak=quS%2FxiW%2Bb8ys5agzpljUdoPdLH8%3D&message_sentence=${text}&normalProb=8&isFilter=1&talkCnt=1&talkCntTotal=1&reqFilter=1&session=nSt8PSSmKRbcR7quUkfhXYpmDYgErtBefVbkkri9CrGSVjm4Cj2e2zBFjvdxSijp56WjyK6g2EWTj3KxKz65DL22&triggerKeywords=%5B%5D`, {method: 'GET'}) 32 | const res = await sami.json() 33 | return res.simsimi_talk_set.answers[0].sentence 34 | } catch { 35 | return 'Simi ga tau apa yang anda ngomong, bahasa alien yah kak?' 36 | } 37 | } 38 | 39 | const h2k = (number) => { 40 | var SI_POSTFIXES = ["", " K", " M", " G", " T", " P", " E"] 41 | var tier = Math.log10(Math.abs(number)) / 3 | 0 42 | if(tier == 0) return number 43 | var postfix = SI_POSTFIXES[tier] 44 | var scale = Math.pow(10, tier * 3) 45 | var scaled = number / scale 46 | var formatted = scaled.toFixed(1) + '' 47 | if (/\.0$/.test(formatted)) 48 | formatted = formatted.substr(0, formatted.length - 2) 49 | return formatted + postfix 50 | } 51 | 52 | const getBuffer = async (url, options) => { 53 | try { 54 | options ? options : {} 55 | const res = await axios({ 56 | method: "get", 57 | url, 58 | headers: { 59 | 'DNT': 1, 60 | 'Upgrade-Insecure-Request': 1 61 | }, 62 | ...options, 63 | responseType: 'arraybuffer' 64 | }) 65 | return res.data 66 | } catch (e) { 67 | console.log(`Error : ${e}`) 68 | } 69 | } 70 | 71 | const randomBytes = (length) => { 72 | return Crypto.randomBytes(length) 73 | } 74 | 75 | const generateMessageID = () => { 76 | return randomBytes(10).toString('hex').toUpperCase() 77 | } 78 | 79 | const getGroupAdmins = (participants) => { 80 | admins = [] 81 | for (let i of participants) { 82 | i.isAdmin ? admins.push(i.jid) : '' 83 | } 84 | return admins 85 | } 86 | 87 | const getRandom = (ext) => { 88 | return `${Math.floor(Math.random() * 10000)}${ext}` 89 | } 90 | 91 | const spinner = { 92 | "interval": 120, 93 | "frames": [ 94 | "🕐", 95 | "🕑", 96 | "🕒", 97 | "🕓", 98 | "🕔", 99 | "🕕", 100 | "🕖", 101 | "🕗", 102 | "🕘", 103 | "🕙", 104 | "🕚", 105 | "🕛" 106 | ]} 107 | 108 | let globalSpinner; 109 | 110 | 111 | const getGlobalSpinner = (disableSpins = false) => { 112 | if(!globalSpinner) globalSpinner = new spin({ color: 'blue', succeedColor: 'green', spinner, disableSpins}); 113 | return globalSpinner; 114 | } 115 | 116 | spins = getGlobalSpinner(false) 117 | 118 | const start = (id, text) => { 119 | spins.add(id, {text: text}) 120 | /*setTimeout(() => { 121 | spins.succeed('load-spin', {text: 'Suksess'}) 122 | }, Number(wait) * 1000)*/ 123 | } 124 | const info = (id, text) => { 125 | spins.update(id, {text: text}) 126 | } 127 | const success = (id, text) => { 128 | spins.succeed(id, {text: text}) 129 | 130 | } 131 | 132 | const close = (id, text) => { 133 | spins.fail(id, {text: text}) 134 | } 135 | 136 | const banner = cfonts.render(('ARIS187ID|AR15BOT'), { 137 | font: 'chrome', 138 | color: 'candy', 139 | align: 'center', 140 | gradient: ["red","yellow"], 141 | lineHeight: 3 142 | }); 143 | 144 | 145 | module.exports = { wait, simih, getBuffer, h2k, generateMessageID, getGroupAdmins, getRandom, start, info, success, banner, close } 146 | -------------------------------------------------------------------------------- /lib/gtts.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const escapeStringRegexp = require('escape-string-regexp'); 3 | const async = require('async'); 4 | const fs = require('fs'); 5 | const MultiStream = require('multistream'); 6 | const fakeUa = require('fake-useragent'); 7 | 8 | const GOOGLE_TTS_URL = 'http://translate.google.com/translate_tts'; 9 | const MAX_CHARS = 100; 10 | const LANGUAGES = { 11 | 'af': 'Afrikaans', 12 | 'sq': 'Albanian', 13 | 'ar': 'Arabic', 14 | 'hy': 'Armenian', 15 | 'ca': 'Catalan', 16 | 'zh': 'Chinese', 17 | 'zh-cn': 'Chinese (Mandarin/China)', 18 | 'zh-tw': 'Chinese (Mandarin/Taiwan)', 19 | 'zh-yue': 'Chinese (Cantonese)', 20 | 'hr': 'Croatian', 21 | 'cs': 'Czech', 22 | 'da': 'Danish', 23 | 'nl': 'Dutch', 24 | 'en': 'English', 25 | 'en-au': 'English (Australia)', 26 | 'en-uk': 'English (United Kingdom)', 27 | 'en-us': 'English (United States)', 28 | 'eo': 'Esperanto', 29 | 'fi': 'Finnish', 30 | 'fr': 'French', 31 | 'de': 'German', 32 | 'el': 'Greek', 33 | 'ht': 'Haitian Creole', 34 | 'hi': 'Hindi', 35 | 'hu': 'Hungarian', 36 | 'is': 'Icelandic', 37 | 'id': 'Indonesian', 38 | 'it': 'Italian', 39 | 'ja': 'Japanese', 40 | 'ko': 'Korean', 41 | 'la': 'Latin', 42 | 'lv': 'Latvian', 43 | 'mk': 'Macedonian', 44 | 'no': 'Norwegian', 45 | 'pl': 'Polish', 46 | 'pt': 'Portuguese', 47 | 'pt-br': 'Portuguese (Brazil)', 48 | 'ro': 'Romanian', 49 | 'ru': 'Russian', 50 | 'sr': 'Serbian', 51 | 'sk': 'Slovak', 52 | 'es': 'Spanish', 53 | 'es-es': 'Spanish (Spain)', 54 | 'es-us': 'Spanish (United States)', 55 | 'sw': 'Swahili', 56 | 'sv': 'Swedish', 57 | 'ta': 'Tamil', 58 | 'th': 'Thai', 59 | 'tr': 'Turkish', 60 | 'vi': 'Vietnamese', 61 | 'cy': 'Welsh' 62 | } 63 | 64 | function Text2Speech(_lang, _debug) { 65 | var lang = _lang || 'en'; 66 | var debug = _debug || false; 67 | lang = lang.toLowerCase(); 68 | 69 | if (!LANGUAGES[lang]) 70 | throw new Error('Language not supported: ' + lang); 71 | 72 | var getArgs = getArgsFactory(lang); 73 | 74 | return { 75 | tokenize: tokenize, 76 | createServer: (port) => createServer(getArgs, port), 77 | stream: (text) => stream(getArgs, text), 78 | save: (filepath, text, callback) => save(getArgs, filepath, text, callback) 79 | } 80 | } 81 | 82 | function save(getArgs, filepath, text, callback) { 83 | var text_parts = tokenize(text); 84 | var total = text_parts.length; 85 | async.eachSeries(text_parts, function(part, cb) { 86 | var index = text_parts.indexOf(part); 87 | var headers = getHeader(); 88 | var args = getArgs(part, index, total); 89 | var fullUrl = GOOGLE_TTS_URL + args; 90 | 91 | var writeStream = fs.createWriteStream(filepath, { 92 | flags: index > 0 ? 'a' : 'w' 93 | }); 94 | request({ 95 | uri: fullUrl, 96 | headers: headers, 97 | method: 'GET' 98 | }) 99 | .pipe(writeStream); 100 | writeStream.on('finish', cb); 101 | writeStream.on('error', cb); 102 | }, callback); 103 | } 104 | 105 | function stream(getArgs, text) { 106 | var text_parts = tokenize(text); 107 | var total = text_parts.length; 108 | 109 | return MultiStream(text_parts.map(function(part, index) { 110 | var headers = getHeader(); 111 | var args = getArgs(part, index, total); 112 | var fullUrl = GOOGLE_TTS_URL + args 113 | 114 | return request({ 115 | uri: fullUrl, 116 | headers: headers, 117 | method: 'GET' 118 | }); 119 | })); 120 | } 121 | 122 | function getHeader() { 123 | var headers = { 124 | "User-Agent": fakeUa() 125 | }; 126 | //console.log('headers', headers); 127 | return headers; 128 | } 129 | 130 | function getArgsFactory(lang){ 131 | return function (text, index, total) { 132 | var textlen = text.length; 133 | var encodedText = encodeURIComponent(text); 134 | var language = lang || 'en'; 135 | return `?ie=UTF-8&tl=${language}&q=${encodedText}&total=${total}&idx=${index}&client=tw-ob&textlen=${textlen}` 136 | } 137 | } 138 | 139 | function tokenize(text) { 140 | var text_parts = []; 141 | if (!text) 142 | throw new Error('No text to speak'); 143 | 144 | var punc = '¡!()[]¶;|°•—«»≤≥«»‹›\n '; 145 | var punc_list = punc.split('').map(function(char) { 146 | return escapeStringRegexp(char); 147 | }); 148 | 149 | var pattern = punc_list.join('|'); 150 | var parts = text.split(new RegExp(pattern)); 151 | parts = parts.filter(p => p.length > 0); 152 | 153 | var output = []; 154 | var i = 0; 155 | for (let p of parts) { 156 | if (!output[i]) { 157 | output[i] = ''; 158 | } 159 | if (output[i].length + p.length < MAX_CHARS) { 160 | output[i] += ' ' + p; 161 | } else { 162 | i++; 163 | output[i] = p; 164 | } 165 | } 166 | output[0] = output[0].substr(1); 167 | return output; 168 | } 169 | 170 | function createServer(getArgs, port) { 171 | var http = require("http"); 172 | var url = require('url'); 173 | 174 | var server = http.createServer(function(req, res) { 175 | var queryData = url.parse(req.url, true).query; 176 | var argsCallback = getArgs; 177 | if (queryData && queryData.lang && LANGUAGES[queryData.lang]) { 178 | argsCallback = getArgsFactory(queryData.lang); 179 | } 180 | if (queryData && queryData.text) { 181 | res.writeHead(200, {'Content-Type': 'audio/mpeg'}); 182 | stream(argsCallback, queryData.text).pipe(res); 183 | } else { 184 | console.log(req.headers); 185 | res.writeHead(200, {'Content-Type': 'application/json'}); 186 | res.end(JSON.stringify({ 187 | code: -1, 188 | message: `Missing text. Please try: ${req.headers.host}?text=your+text` 189 | })) 190 | } 191 | }); 192 | 193 | server.listen(port); 194 | console.log("Text-to-Speech Server running on " + port); 195 | } 196 | 197 | module.exports = Text2Speech; 198 | -------------------------------------------------------------------------------- /lib/help.js: -------------------------------------------------------------------------------- 1 | 2 | const help = (prefix) => { 3 | return ` 4 | ◪ 𝗜𝗡𝗙𝗢 5 | ❏ Prefix: 「 ${prefix} 」 6 | ❏ Creator: MhankBarBar 7 | ❏ Owner: Hafizh 8 | 9 | 10 | ◪ 𝗦𝗬𝗦𝗧𝗘𝗠 11 | │ 12 | ├─ ❏ ${prefix}help 13 | ├─ ❏ ${prefix}bc 14 | ├─ ❏ ${prefix}speed 15 | ├─ ❏ ${prefix}setprefix 16 | ├─ ❏ ${prefix}fordward 17 | ├─ ❏ ${prefix}setstatus 18 | ├─ ❏ ${prefix}fordward1 19 | ├─ ❏ ${prefix}readall 20 | └─ ❏ ${prefix}runtime 21 | 22 | ◪ 𝗠𝗘𝗗𝗜𝗔 23 | │ 24 | ├─ ❏ ${prefix}hilih 25 | ├─ ❏ ${prefix}holoh 26 | ├─ ❏ ${prefix}ssphone 27 | ├─ ❏ ${prefix}sspc 28 | ├─ ❏ ${prefix}pussy 29 | ├─ ❏ ${prefix}moddroid 30 | ├─ ❏ ${prefix}tabok 31 | ├─ ❏ ${prefix}toptt 32 | ├─ ❏ ${prefix}bass 33 | ├─ ❏ ${prefix}terbalik 34 | ├─ ❏ ${prefix}huruf 35 | ├─ ❏ ${prefix}carbon 36 | ├─ ❏ ${prefix}kiss 37 | └─ ❏ ${prefix}nsfwgif 38 | 39 | ◪ 𝗥𝗔𝗡𝗗𝗢𝗠 40 | │ 41 | ├─ ❏ ${prefix}randomquran 42 | ├─ ❏ ${prefix}fml 43 | └─ ❏ ${prefix}other 44 | 45 | ◪ 𝗗𝗢𝗪𝗡𝗟𝗢𝗔𝗗𝗘𝗥 46 | │ 47 | ├─ ❏ ${prefix}yt2mp3 48 | ├─ ❏ ${prefix}play 49 | ├─ ❏ ${prefix}joox 50 | ├─ ❏ ${prefix}asci 51 | ├─ ❏ ${prefix}clone 52 | └─ ❏ ${prefix}ytsearch 53 | 54 | ◪ 𝗦𝗘𝗔𝗥𝗖𝗛 55 | │ 56 | ├─ ❏ ${prefix}gas 57 | ├─ ❏ ${prefix}halo 58 | ├─ ❏ ${prefix}xl 59 | └─ ❏ ${prefix}film 60 | 61 | ◪ 𝗜𝗠𝗔𝗚𝗘 62 | │ 63 | ├─ ❏ ${prefix}qrcode 64 | ├─ ❏ ${prefix}toimg 65 | ├─ ❏ ${prefix}sticker 66 | ├─ ❏ ${prefix}gtts 67 | ├─ ❏ ${prefix}meme 68 | ├─ ❏ ${prefix}memeindo 69 | ├─ ❏ ${prefix}puisi 70 | ├─ ❏ ${prefix}memeind 71 | ├─ ❏ ${prefix}darkjoke 72 | ├─ ❏ ${prefix}pinsearch 73 | ├─ ❏ ${prefix}harta 74 | └─ ❏ ${prefix}lovetext 75 | 76 | ◪ 𝗚𝗥𝗢𝗨𝗣 77 | │ 78 | ├─ ❏ ${prefix}group buka|tutup 79 | ├─ ❏ ${prefix}promote 80 | ├─ ❏ ${prefix}demote 81 | ├─ ❏ ${prefix}add 82 | ├─ ❏ ${prefix}kick 83 | ├─ ❏ ${prefix}welcome 0|1 84 | ├─ ❏ ${prefix}listadmin 85 | ├─ ❏ ${prefix}tagall 86 | ├─ ❏ ${prefix}cgc 87 | ├─ ❏ ${prefix}tagall2 88 | ├─ ❏ ${prefix}tagall3 89 | ├─ ❏ ${prefix}ownergc 90 | ├─ ❏ ${prefix}leave 91 | └─ ❏ ${prefix}setpp 92 | 93 | LINK GROUP: https://chat.whatsapp.com/GejprPqHNQW3cBDuKtb7UX` 94 | } 95 | exports.help = help 96 | 97 | 98 | -------------------------------------------------------------------------------- /lib/ocr.js: -------------------------------------------------------------------------------- 1 | const exec = require("child_process").exec 2 | const log = console.debug 3 | 4 | function recognize(filename, config = {}) { 5 | const options = getOptions(config) 6 | const binary = config.binary || "tesseract" 7 | 8 | const command = [binary, `"${filename}"`, "stdout", ...options].join(" ") 9 | if (config.debug) log("command", command) 10 | 11 | return new Promise((resolve, reject) => { 12 | exec(command, (error, stdout, stderr) => { 13 | if (config.debug) log(stderr) 14 | if (error) reject(error) 15 | resolve(stdout) 16 | }) 17 | }) 18 | } 19 | 20 | function getOptions(config) { 21 | const ocrOptions = ["tessdata-dir", "user-words", "user-patterns", "psm", "oem", "dpi"] 22 | 23 | return Object.entries(config) 24 | .map(([key, value]) => { 25 | if (["debug", "presets", "binary"].includes(key)) return 26 | if (key === "lang") return `-l ${value}` 27 | if (ocrOptions.includes(key)) return `--${key} ${value}` 28 | 29 | return `-c ${key}=${value}` 30 | }) 31 | .concat(config.presets) 32 | .filter(Boolean) 33 | } 34 | 35 | module.exports = { 36 | recognize, 37 | } 38 | -------------------------------------------------------------------------------- /lib/test.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AR15BOT", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@adiwajshing/baileys": { 8 | "version": "3.4.1", 9 | "resolved": "https://registry.npmjs.org/@adiwajshing/baileys/-/baileys-3.4.1.tgz", 10 | "integrity": "sha512-G3yzL+BAnQZjwuQuZGEgJuTzVZu1pVSudaRhN/Jzb7LZonSWxmeEwsNArqLTIvflIzxzJ9tHUDdrlMLnppRulw==", 11 | "requires": { 12 | "@adiwajshing/keyed-db": "^0.2.2", 13 | "curve25519-js": "^0.0.4", 14 | "futoin-hkdf": "^1.3.2", 15 | "https-proxy-agent": "^5.0.0", 16 | "jimp": "^0.16.1", 17 | "music-metadata": "^7.4.1", 18 | "node-fetch": "^2.6.0", 19 | "pino": "^6.7.0", 20 | "pino-pretty": "^4.3.0", 21 | "protobufjs": "^6.10.1", 22 | "qrcode-terminal": "^0.12.0", 23 | "ws": "^7.3.1" 24 | } 25 | }, 26 | "@adiwajshing/keyed-db": { 27 | "version": "0.2.4", 28 | "resolved": "https://registry.npmjs.org/@adiwajshing/keyed-db/-/keyed-db-0.2.4.tgz", 29 | "integrity": "sha512-yprSnAtj80/VKuDqRcFFLDYltoNV8tChNwFfIgcf6PGD4sjzWIBgs08pRuTqGH5mk5wgL6PBRSsMCZqtZwzFEw==" 30 | }, 31 | "@babel/runtime": { 32 | "version": "7.12.5", 33 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", 34 | "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", 35 | "requires": { 36 | "regenerator-runtime": "^0.13.4" 37 | } 38 | }, 39 | "@hapi/bourne": { 40 | "version": "2.0.0", 41 | "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-2.0.0.tgz", 42 | "integrity": "sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==" 43 | }, 44 | "@jimp/bmp": { 45 | "version": "0.16.1", 46 | "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", 47 | "integrity": "sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==", 48 | "requires": { 49 | "@babel/runtime": "^7.7.2", 50 | "@jimp/utils": "^0.16.1", 51 | "bmp-js": "^0.1.0" 52 | } 53 | }, 54 | "@jimp/core": { 55 | "version": "0.16.1", 56 | "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.1.tgz", 57 | "integrity": "sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==", 58 | "requires": { 59 | "@babel/runtime": "^7.7.2", 60 | "@jimp/utils": "^0.16.1", 61 | "any-base": "^1.1.0", 62 | "buffer": "^5.2.0", 63 | "exif-parser": "^0.1.12", 64 | "file-type": "^9.0.0", 65 | "load-bmfont": "^1.3.1", 66 | "mkdirp": "^0.5.1", 67 | "phin": "^2.9.1", 68 | "pixelmatch": "^4.0.2", 69 | "tinycolor2": "^1.4.1" 70 | } 71 | }, 72 | "@jimp/custom": { 73 | "version": "0.16.1", 74 | "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.1.tgz", 75 | "integrity": "sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==", 76 | "requires": { 77 | "@babel/runtime": "^7.7.2", 78 | "@jimp/core": "^0.16.1" 79 | } 80 | }, 81 | "@jimp/gif": { 82 | "version": "0.16.1", 83 | "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.1.tgz", 84 | "integrity": "sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==", 85 | "requires": { 86 | "@babel/runtime": "^7.7.2", 87 | "@jimp/utils": "^0.16.1", 88 | "gifwrap": "^0.9.2", 89 | "omggif": "^1.0.9" 90 | } 91 | }, 92 | "@jimp/jpeg": { 93 | "version": "0.16.1", 94 | "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.1.tgz", 95 | "integrity": "sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==", 96 | "requires": { 97 | "@babel/runtime": "^7.7.2", 98 | "@jimp/utils": "^0.16.1", 99 | "jpeg-js": "0.4.2" 100 | } 101 | }, 102 | "@jimp/plugin-blit": { 103 | "version": "0.16.1", 104 | "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz", 105 | "integrity": "sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg==", 106 | "requires": { 107 | "@babel/runtime": "^7.7.2", 108 | "@jimp/utils": "^0.16.1" 109 | } 110 | }, 111 | "@jimp/plugin-blur": { 112 | "version": "0.16.1", 113 | "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz", 114 | "integrity": "sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw==", 115 | "requires": { 116 | "@babel/runtime": "^7.7.2", 117 | "@jimp/utils": "^0.16.1" 118 | } 119 | }, 120 | "@jimp/plugin-circle": { 121 | "version": "0.16.1", 122 | "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz", 123 | "integrity": "sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg==", 124 | "requires": { 125 | "@babel/runtime": "^7.7.2", 126 | "@jimp/utils": "^0.16.1" 127 | } 128 | }, 129 | "@jimp/plugin-color": { 130 | "version": "0.16.1", 131 | "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.1.tgz", 132 | "integrity": "sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A==", 133 | "requires": { 134 | "@babel/runtime": "^7.7.2", 135 | "@jimp/utils": "^0.16.1", 136 | "tinycolor2": "^1.4.1" 137 | } 138 | }, 139 | "@jimp/plugin-contain": { 140 | "version": "0.16.1", 141 | "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz", 142 | "integrity": "sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==", 143 | "requires": { 144 | "@babel/runtime": "^7.7.2", 145 | "@jimp/utils": "^0.16.1" 146 | } 147 | }, 148 | "@jimp/plugin-cover": { 149 | "version": "0.16.1", 150 | "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz", 151 | "integrity": "sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==", 152 | "requires": { 153 | "@babel/runtime": "^7.7.2", 154 | "@jimp/utils": "^0.16.1" 155 | } 156 | }, 157 | "@jimp/plugin-crop": { 158 | "version": "0.16.1", 159 | "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz", 160 | "integrity": "sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew==", 161 | "requires": { 162 | "@babel/runtime": "^7.7.2", 163 | "@jimp/utils": "^0.16.1" 164 | } 165 | }, 166 | "@jimp/plugin-displace": { 167 | "version": "0.16.1", 168 | "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz", 169 | "integrity": "sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw==", 170 | "requires": { 171 | "@babel/runtime": "^7.7.2", 172 | "@jimp/utils": "^0.16.1" 173 | } 174 | }, 175 | "@jimp/plugin-dither": { 176 | "version": "0.16.1", 177 | "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz", 178 | "integrity": "sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q==", 179 | "requires": { 180 | "@babel/runtime": "^7.7.2", 181 | "@jimp/utils": "^0.16.1" 182 | } 183 | }, 184 | "@jimp/plugin-fisheye": { 185 | "version": "0.16.1", 186 | "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz", 187 | "integrity": "sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A==", 188 | "requires": { 189 | "@babel/runtime": "^7.7.2", 190 | "@jimp/utils": "^0.16.1" 191 | } 192 | }, 193 | "@jimp/plugin-flip": { 194 | "version": "0.16.1", 195 | "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz", 196 | "integrity": "sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==", 197 | "requires": { 198 | "@babel/runtime": "^7.7.2", 199 | "@jimp/utils": "^0.16.1" 200 | } 201 | }, 202 | "@jimp/plugin-gaussian": { 203 | "version": "0.16.1", 204 | "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz", 205 | "integrity": "sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg==", 206 | "requires": { 207 | "@babel/runtime": "^7.7.2", 208 | "@jimp/utils": "^0.16.1" 209 | } 210 | }, 211 | "@jimp/plugin-invert": { 212 | "version": "0.16.1", 213 | "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz", 214 | "integrity": "sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w==", 215 | "requires": { 216 | "@babel/runtime": "^7.7.2", 217 | "@jimp/utils": "^0.16.1" 218 | } 219 | }, 220 | "@jimp/plugin-mask": { 221 | "version": "0.16.1", 222 | "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz", 223 | "integrity": "sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q==", 224 | "requires": { 225 | "@babel/runtime": "^7.7.2", 226 | "@jimp/utils": "^0.16.1" 227 | } 228 | }, 229 | "@jimp/plugin-normalize": { 230 | "version": "0.16.1", 231 | "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz", 232 | "integrity": "sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw==", 233 | "requires": { 234 | "@babel/runtime": "^7.7.2", 235 | "@jimp/utils": "^0.16.1" 236 | } 237 | }, 238 | "@jimp/plugin-print": { 239 | "version": "0.16.1", 240 | "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.1.tgz", 241 | "integrity": "sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==", 242 | "requires": { 243 | "@babel/runtime": "^7.7.2", 244 | "@jimp/utils": "^0.16.1", 245 | "load-bmfont": "^1.4.0" 246 | } 247 | }, 248 | "@jimp/plugin-resize": { 249 | "version": "0.16.1", 250 | "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz", 251 | "integrity": "sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==", 252 | "requires": { 253 | "@babel/runtime": "^7.7.2", 254 | "@jimp/utils": "^0.16.1" 255 | } 256 | }, 257 | "@jimp/plugin-rotate": { 258 | "version": "0.16.1", 259 | "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz", 260 | "integrity": "sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==", 261 | "requires": { 262 | "@babel/runtime": "^7.7.2", 263 | "@jimp/utils": "^0.16.1" 264 | } 265 | }, 266 | "@jimp/plugin-scale": { 267 | "version": "0.16.1", 268 | "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz", 269 | "integrity": "sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==", 270 | "requires": { 271 | "@babel/runtime": "^7.7.2", 272 | "@jimp/utils": "^0.16.1" 273 | } 274 | }, 275 | "@jimp/plugin-shadow": { 276 | "version": "0.16.1", 277 | "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz", 278 | "integrity": "sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==", 279 | "requires": { 280 | "@babel/runtime": "^7.7.2", 281 | "@jimp/utils": "^0.16.1" 282 | } 283 | }, 284 | "@jimp/plugin-threshold": { 285 | "version": "0.16.1", 286 | "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz", 287 | "integrity": "sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==", 288 | "requires": { 289 | "@babel/runtime": "^7.7.2", 290 | "@jimp/utils": "^0.16.1" 291 | } 292 | }, 293 | "@jimp/plugins": { 294 | "version": "0.16.1", 295 | "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.1.tgz", 296 | "integrity": "sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA==", 297 | "requires": { 298 | "@babel/runtime": "^7.7.2", 299 | "@jimp/plugin-blit": "^0.16.1", 300 | "@jimp/plugin-blur": "^0.16.1", 301 | "@jimp/plugin-circle": "^0.16.1", 302 | "@jimp/plugin-color": "^0.16.1", 303 | "@jimp/plugin-contain": "^0.16.1", 304 | "@jimp/plugin-cover": "^0.16.1", 305 | "@jimp/plugin-crop": "^0.16.1", 306 | "@jimp/plugin-displace": "^0.16.1", 307 | "@jimp/plugin-dither": "^0.16.1", 308 | "@jimp/plugin-fisheye": "^0.16.1", 309 | "@jimp/plugin-flip": "^0.16.1", 310 | "@jimp/plugin-gaussian": "^0.16.1", 311 | "@jimp/plugin-invert": "^0.16.1", 312 | "@jimp/plugin-mask": "^0.16.1", 313 | "@jimp/plugin-normalize": "^0.16.1", 314 | "@jimp/plugin-print": "^0.16.1", 315 | "@jimp/plugin-resize": "^0.16.1", 316 | "@jimp/plugin-rotate": "^0.16.1", 317 | "@jimp/plugin-scale": "^0.16.1", 318 | "@jimp/plugin-shadow": "^0.16.1", 319 | "@jimp/plugin-threshold": "^0.16.1", 320 | "timm": "^1.6.1" 321 | } 322 | }, 323 | "@jimp/png": { 324 | "version": "0.16.1", 325 | "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.1.tgz", 326 | "integrity": "sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==", 327 | "requires": { 328 | "@babel/runtime": "^7.7.2", 329 | "@jimp/utils": "^0.16.1", 330 | "pngjs": "^3.3.3" 331 | } 332 | }, 333 | "@jimp/tiff": { 334 | "version": "0.16.1", 335 | "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.1.tgz", 336 | "integrity": "sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==", 337 | "requires": { 338 | "@babel/runtime": "^7.7.2", 339 | "utif": "^2.0.1" 340 | } 341 | }, 342 | "@jimp/types": { 343 | "version": "0.16.1", 344 | "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.1.tgz", 345 | "integrity": "sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==", 346 | "requires": { 347 | "@babel/runtime": "^7.7.2", 348 | "@jimp/bmp": "^0.16.1", 349 | "@jimp/gif": "^0.16.1", 350 | "@jimp/jpeg": "^0.16.1", 351 | "@jimp/png": "^0.16.1", 352 | "@jimp/tiff": "^0.16.1", 353 | "timm": "^1.6.1" 354 | } 355 | }, 356 | "@jimp/utils": { 357 | "version": "0.16.1", 358 | "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.1.tgz", 359 | "integrity": "sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==", 360 | "requires": { 361 | "@babel/runtime": "^7.7.2", 362 | "regenerator-runtime": "^0.13.3" 363 | } 364 | }, 365 | "@protobufjs/aspromise": { 366 | "version": "1.1.2", 367 | "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", 368 | "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" 369 | }, 370 | "@protobufjs/base64": { 371 | "version": "1.1.2", 372 | "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", 373 | "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 374 | }, 375 | "@protobufjs/codegen": { 376 | "version": "2.0.4", 377 | "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", 378 | "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 379 | }, 380 | "@protobufjs/eventemitter": { 381 | "version": "1.1.0", 382 | "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", 383 | "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" 384 | }, 385 | "@protobufjs/fetch": { 386 | "version": "1.1.0", 387 | "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", 388 | "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", 389 | "requires": { 390 | "@protobufjs/aspromise": "^1.1.1", 391 | "@protobufjs/inquire": "^1.1.0" 392 | } 393 | }, 394 | "@protobufjs/float": { 395 | "version": "1.0.2", 396 | "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", 397 | "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" 398 | }, 399 | "@protobufjs/inquire": { 400 | "version": "1.1.0", 401 | "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", 402 | "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" 403 | }, 404 | "@protobufjs/path": { 405 | "version": "1.1.2", 406 | "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", 407 | "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" 408 | }, 409 | "@protobufjs/pool": { 410 | "version": "1.1.0", 411 | "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", 412 | "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" 413 | }, 414 | "@protobufjs/utf8": { 415 | "version": "1.1.0", 416 | "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", 417 | "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" 418 | }, 419 | "@tokenizer/token": { 420 | "version": "0.1.1", 421 | "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", 422 | "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==" 423 | }, 424 | "@types/debug": { 425 | "version": "4.1.5", 426 | "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", 427 | "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" 428 | }, 429 | "@types/long": { 430 | "version": "4.0.1", 431 | "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", 432 | "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" 433 | }, 434 | "@types/node": { 435 | "version": "14.14.20", 436 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", 437 | "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==" 438 | }, 439 | "@types/readable-stream": { 440 | "version": "2.3.9", 441 | "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz", 442 | "integrity": "sha512-sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==", 443 | "requires": { 444 | "@types/node": "*", 445 | "safe-buffer": "*" 446 | } 447 | }, 448 | "agent-base": { 449 | "version": "6.0.2", 450 | "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", 451 | "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", 452 | "requires": { 453 | "debug": "4" 454 | } 455 | }, 456 | "ajv": { 457 | "version": "6.12.6", 458 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", 459 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", 460 | "requires": { 461 | "fast-deep-equal": "^3.1.1", 462 | "fast-json-stable-stringify": "^2.0.0", 463 | "json-schema-traverse": "^0.4.1", 464 | "uri-js": "^4.2.2" 465 | } 466 | }, 467 | "ansi-styles": { 468 | "version": "3.2.1", 469 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 470 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 471 | "requires": { 472 | "color-convert": "^1.9.0" 473 | } 474 | }, 475 | "any-base": { 476 | "version": "1.1.0", 477 | "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", 478 | "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" 479 | }, 480 | "archiver": { 481 | "version": "3.1.1", 482 | "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", 483 | "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", 484 | "requires": { 485 | "archiver-utils": "^2.1.0", 486 | "async": "^2.6.3", 487 | "buffer-crc32": "^0.2.1", 488 | "glob": "^7.1.4", 489 | "readable-stream": "^3.4.0", 490 | "tar-stream": "^2.1.0", 491 | "zip-stream": "^2.1.2" 492 | }, 493 | "dependencies": { 494 | "bl": { 495 | "version": "4.0.3", 496 | "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", 497 | "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", 498 | "requires": { 499 | "buffer": "^5.5.0", 500 | "inherits": "^2.0.4", 501 | "readable-stream": "^3.4.0" 502 | } 503 | }, 504 | "tar-stream": { 505 | "version": "2.2.0", 506 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", 507 | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", 508 | "requires": { 509 | "bl": "^4.0.3", 510 | "end-of-stream": "^1.4.1", 511 | "fs-constants": "^1.0.0", 512 | "inherits": "^2.0.3", 513 | "readable-stream": "^3.1.1" 514 | } 515 | } 516 | } 517 | }, 518 | "archiver-utils": { 519 | "version": "2.1.0", 520 | "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", 521 | "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", 522 | "requires": { 523 | "glob": "^7.1.4", 524 | "graceful-fs": "^4.2.0", 525 | "lazystream": "^1.0.0", 526 | "lodash.defaults": "^4.2.0", 527 | "lodash.difference": "^4.5.0", 528 | "lodash.flatten": "^4.4.0", 529 | "lodash.isplainobject": "^4.0.6", 530 | "lodash.union": "^4.6.0", 531 | "normalize-path": "^3.0.0", 532 | "readable-stream": "^2.0.0" 533 | }, 534 | "dependencies": { 535 | "isarray": { 536 | "version": "1.0.0", 537 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 538 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 539 | }, 540 | "readable-stream": { 541 | "version": "2.3.7", 542 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 543 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 544 | "requires": { 545 | "core-util-is": "~1.0.0", 546 | "inherits": "~2.0.3", 547 | "isarray": "~1.0.0", 548 | "process-nextick-args": "~2.0.0", 549 | "safe-buffer": "~5.1.1", 550 | "string_decoder": "~1.1.1", 551 | "util-deprecate": "~1.0.1" 552 | } 553 | }, 554 | "safe-buffer": { 555 | "version": "5.1.2", 556 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 557 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 558 | }, 559 | "string_decoder": { 560 | "version": "1.1.1", 561 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 562 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 563 | "requires": { 564 | "safe-buffer": "~5.1.0" 565 | } 566 | } 567 | } 568 | }, 569 | "args": { 570 | "version": "5.0.1", 571 | "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", 572 | "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", 573 | "requires": { 574 | "camelcase": "5.0.0", 575 | "chalk": "2.4.2", 576 | "leven": "2.1.0", 577 | "mri": "1.1.4" 578 | }, 579 | "dependencies": { 580 | "chalk": { 581 | "version": "2.4.2", 582 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 583 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 584 | "requires": { 585 | "ansi-styles": "^3.2.1", 586 | "escape-string-regexp": "^1.0.5", 587 | "supports-color": "^5.3.0" 588 | } 589 | } 590 | } 591 | }, 592 | "asn1": { 593 | "version": "0.2.4", 594 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 595 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 596 | "requires": { 597 | "safer-buffer": "~2.1.0" 598 | } 599 | }, 600 | "assert-plus": { 601 | "version": "1.0.0", 602 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 603 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 604 | }, 605 | "async": { 606 | "version": "2.6.3", 607 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", 608 | "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", 609 | "requires": { 610 | "lodash": "^4.17.14" 611 | } 612 | }, 613 | "asynckit": { 614 | "version": "0.4.0", 615 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 616 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 617 | }, 618 | "atomic-sleep": { 619 | "version": "1.0.0", 620 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 621 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" 622 | }, 623 | "aws-sign2": { 624 | "version": "0.7.0", 625 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 626 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 627 | }, 628 | "aws4": { 629 | "version": "1.10.1", 630 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", 631 | "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==" 632 | }, 633 | "axios": { 634 | "version": "0.21.1", 635 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", 636 | "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", 637 | "requires": { 638 | "follow-redirects": "^1.10.0" 639 | } 640 | }, 641 | "balanced-match": { 642 | "version": "1.0.0", 643 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 644 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 645 | }, 646 | "base64-js": { 647 | "version": "1.5.1", 648 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 649 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 650 | }, 651 | "bcrypt-pbkdf": { 652 | "version": "1.0.2", 653 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 654 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 655 | "requires": { 656 | "tweetnacl": "^0.14.3" 657 | } 658 | }, 659 | "bluebird": { 660 | "version": "3.7.2", 661 | "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", 662 | "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" 663 | }, 664 | "bmp-js": { 665 | "version": "0.1.0", 666 | "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", 667 | "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" 668 | }, 669 | "brace-expansion": { 670 | "version": "1.1.11", 671 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 672 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 673 | "requires": { 674 | "balanced-match": "^1.0.0", 675 | "concat-map": "0.0.1" 676 | } 677 | }, 678 | "buffer": { 679 | "version": "5.7.1", 680 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 681 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 682 | "requires": { 683 | "base64-js": "^1.3.1", 684 | "ieee754": "^1.1.13" 685 | } 686 | }, 687 | "buffer-crc32": { 688 | "version": "0.2.13", 689 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 690 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" 691 | }, 692 | "buffer-equal": { 693 | "version": "0.0.1", 694 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", 695 | "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" 696 | }, 697 | "camelcase": { 698 | "version": "5.0.0", 699 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", 700 | "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" 701 | }, 702 | "caseless": { 703 | "version": "0.12.0", 704 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 705 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 706 | }, 707 | "cfonts": { 708 | "version": "2.9.1", 709 | "resolved": "https://registry.npmjs.org/cfonts/-/cfonts-2.9.1.tgz", 710 | "integrity": "sha512-POZzm27BA8J/fgTeTpfKMmZKdij6L+8k2JsYJsrM5V7+HSFy0I03IEysng/IxGnzhteM7+PyH0rmZx+NeNMR2Q==", 711 | "requires": { 712 | "chalk": "^4.1.0", 713 | "window-size": "^1.1.1" 714 | } 715 | }, 716 | "chalk": { 717 | "version": "4.1.0", 718 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 719 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 720 | "requires": { 721 | "ansi-styles": "^4.1.0", 722 | "supports-color": "^7.1.0" 723 | }, 724 | "dependencies": { 725 | "ansi-styles": { 726 | "version": "4.3.0", 727 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 728 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 729 | "requires": { 730 | "color-convert": "^2.0.1" 731 | } 732 | }, 733 | "color-convert": { 734 | "version": "2.0.1", 735 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 736 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 737 | "requires": { 738 | "color-name": "~1.1.4" 739 | } 740 | }, 741 | "color-name": { 742 | "version": "1.1.4", 743 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 744 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 745 | }, 746 | "has-flag": { 747 | "version": "4.0.0", 748 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 749 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 750 | }, 751 | "supports-color": { 752 | "version": "7.2.0", 753 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 754 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 755 | "requires": { 756 | "has-flag": "^4.0.0" 757 | } 758 | } 759 | } 760 | }, 761 | "cli-cursor": { 762 | "version": "3.1.0", 763 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 764 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 765 | "requires": { 766 | "restore-cursor": "^3.1.0" 767 | } 768 | }, 769 | "cli-spinners": { 770 | "version": "2.5.0", 771 | "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", 772 | "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" 773 | }, 774 | "color-convert": { 775 | "version": "1.9.3", 776 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 777 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 778 | "requires": { 779 | "color-name": "1.1.3" 780 | } 781 | }, 782 | "color-name": { 783 | "version": "1.1.3", 784 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 785 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 786 | }, 787 | "combined-stream": { 788 | "version": "1.0.8", 789 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 790 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 791 | "requires": { 792 | "delayed-stream": "~1.0.0" 793 | } 794 | }, 795 | "commander": { 796 | "version": "2.20.3", 797 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 798 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" 799 | }, 800 | "compress-commons": { 801 | "version": "2.1.1", 802 | "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", 803 | "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", 804 | "requires": { 805 | "buffer-crc32": "^0.2.13", 806 | "crc32-stream": "^3.0.1", 807 | "normalize-path": "^3.0.0", 808 | "readable-stream": "^2.3.6" 809 | }, 810 | "dependencies": { 811 | "isarray": { 812 | "version": "1.0.0", 813 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 814 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 815 | }, 816 | "readable-stream": { 817 | "version": "2.3.7", 818 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 819 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 820 | "requires": { 821 | "core-util-is": "~1.0.0", 822 | "inherits": "~2.0.3", 823 | "isarray": "~1.0.0", 824 | "process-nextick-args": "~2.0.0", 825 | "safe-buffer": "~5.1.1", 826 | "string_decoder": "~1.1.1", 827 | "util-deprecate": "~1.0.1" 828 | } 829 | }, 830 | "safe-buffer": { 831 | "version": "5.1.2", 832 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 833 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 834 | }, 835 | "string_decoder": { 836 | "version": "1.1.1", 837 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 838 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 839 | "requires": { 840 | "safe-buffer": "~5.1.0" 841 | } 842 | } 843 | } 844 | }, 845 | "concat-map": { 846 | "version": "0.0.1", 847 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 848 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 849 | }, 850 | "content-type": { 851 | "version": "1.0.4", 852 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 853 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 854 | }, 855 | "core-util-is": { 856 | "version": "1.0.2", 857 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 858 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 859 | }, 860 | "crc": { 861 | "version": "3.8.0", 862 | "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", 863 | "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", 864 | "requires": { 865 | "buffer": "^5.1.0" 866 | } 867 | }, 868 | "crc32-stream": { 869 | "version": "3.0.1", 870 | "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", 871 | "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", 872 | "requires": { 873 | "crc": "^3.4.4", 874 | "readable-stream": "^3.4.0" 875 | } 876 | }, 877 | "curve25519-js": { 878 | "version": "0.0.4", 879 | "resolved": "https://registry.npmjs.org/curve25519-js/-/curve25519-js-0.0.4.tgz", 880 | "integrity": "sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w==" 881 | }, 882 | "dashdash": { 883 | "version": "1.14.1", 884 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 885 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 886 | "requires": { 887 | "assert-plus": "^1.0.0" 888 | } 889 | }, 890 | "dateformat": { 891 | "version": "3.0.3", 892 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", 893 | "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" 894 | }, 895 | "debug": { 896 | "version": "4.3.1", 897 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 898 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 899 | "requires": { 900 | "ms": "2.1.2" 901 | } 902 | }, 903 | "decamelize": { 904 | "version": "1.2.0", 905 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 906 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 907 | }, 908 | "defaults": { 909 | "version": "1.0.3", 910 | "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", 911 | "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", 912 | "requires": { 913 | "clone": "^1.0.2" 914 | }, 915 | "dependencies": { 916 | "clone": { 917 | "version": "1.0.4", 918 | "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", 919 | "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" 920 | } 921 | } 922 | }, 923 | "delayed-stream": { 924 | "version": "1.0.0", 925 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 926 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 927 | }, 928 | "dom-walk": { 929 | "version": "0.1.2", 930 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", 931 | "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" 932 | }, 933 | "dotenv": { 934 | "version": "8.2.0", 935 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", 936 | "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==" 937 | }, 938 | "ecc-jsbn": { 939 | "version": "0.1.2", 940 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 941 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 942 | "requires": { 943 | "jsbn": "~0.1.0", 944 | "safer-buffer": "^2.1.0" 945 | } 946 | }, 947 | "emoji-regex": { 948 | "version": "7.0.3", 949 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 950 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" 951 | }, 952 | "end-of-stream": { 953 | "version": "1.4.4", 954 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 955 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 956 | "requires": { 957 | "once": "^1.4.0" 958 | } 959 | }, 960 | "escape-string-regexp": { 961 | "version": "1.0.5", 962 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 963 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 964 | }, 965 | "exif-parser": { 966 | "version": "0.1.12", 967 | "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", 968 | "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" 969 | }, 970 | "extend": { 971 | "version": "3.0.2", 972 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 973 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 974 | }, 975 | "extsprintf": { 976 | "version": "1.3.0", 977 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 978 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 979 | }, 980 | "fake-useragent": { 981 | "version": "1.0.1", 982 | "resolved": "https://registry.npmjs.org/fake-useragent/-/fake-useragent-1.0.1.tgz", 983 | "integrity": "sha1-7Hpdk7SmURj6b4XGjp3e9TEsOBo=" 984 | }, 985 | "fast-deep-equal": { 986 | "version": "3.1.3", 987 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 988 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 989 | }, 990 | "fast-json-stable-stringify": { 991 | "version": "2.1.0", 992 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 993 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 994 | }, 995 | "fast-redact": { 996 | "version": "3.0.0", 997 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.0.tgz", 998 | "integrity": "sha512-a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==" 999 | }, 1000 | "fast-safe-stringify": { 1001 | "version": "2.0.7", 1002 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", 1003 | "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" 1004 | }, 1005 | "file-type": { 1006 | "version": "9.0.0", 1007 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", 1008 | "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" 1009 | }, 1010 | "flatstr": { 1011 | "version": "1.0.12", 1012 | "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", 1013 | "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" 1014 | }, 1015 | "fluent-ffmpeg": { 1016 | "version": "2.1.2", 1017 | "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", 1018 | "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", 1019 | "requires": { 1020 | "async": ">=0.2.9", 1021 | "which": "^1.1.1" 1022 | } 1023 | }, 1024 | "follow-redirects": { 1025 | "version": "1.13.1", 1026 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", 1027 | "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==" 1028 | }, 1029 | "forever-agent": { 1030 | "version": "0.6.1", 1031 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1032 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 1033 | }, 1034 | "form-data": { 1035 | "version": "2.3.3", 1036 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 1037 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 1038 | "requires": { 1039 | "asynckit": "^0.4.0", 1040 | "combined-stream": "^1.0.6", 1041 | "mime-types": "^2.1.12" 1042 | } 1043 | }, 1044 | "fs-constants": { 1045 | "version": "1.0.0", 1046 | "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", 1047 | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 1048 | }, 1049 | "fs.realpath": { 1050 | "version": "1.0.0", 1051 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1052 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1053 | }, 1054 | "futoin-hkdf": { 1055 | "version": "1.3.2", 1056 | "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.3.2.tgz", 1057 | "integrity": "sha512-3EVi3ETTyJg5PSXlxLCaUVVn0pSbDf62L3Gwxne7Uq+d8adOSNWQAad4gg7WToHkcgnCJb3Wlb1P8r4Evj4GPw==" 1058 | }, 1059 | "getpass": { 1060 | "version": "0.1.7", 1061 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1062 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1063 | "requires": { 1064 | "assert-plus": "^1.0.0" 1065 | } 1066 | }, 1067 | "gifwrap": { 1068 | "version": "0.9.2", 1069 | "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", 1070 | "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", 1071 | "requires": { 1072 | "image-q": "^1.1.1", 1073 | "omggif": "^1.0.10" 1074 | } 1075 | }, 1076 | "glob": { 1077 | "version": "7.1.6", 1078 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1079 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1080 | "requires": { 1081 | "fs.realpath": "^1.0.0", 1082 | "inflight": "^1.0.4", 1083 | "inherits": "2", 1084 | "minimatch": "^3.0.4", 1085 | "once": "^1.3.0", 1086 | "path-is-absolute": "^1.0.0" 1087 | } 1088 | }, 1089 | "global": { 1090 | "version": "4.4.0", 1091 | "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", 1092 | "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", 1093 | "requires": { 1094 | "min-document": "^2.19.0", 1095 | "process": "^0.11.10" 1096 | } 1097 | }, 1098 | "graceful-fs": { 1099 | "version": "4.2.4", 1100 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", 1101 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" 1102 | }, 1103 | "har-schema": { 1104 | "version": "2.0.0", 1105 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1106 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 1107 | }, 1108 | "har-validator": { 1109 | "version": "5.1.5", 1110 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 1111 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 1112 | "requires": { 1113 | "ajv": "^6.12.3", 1114 | "har-schema": "^2.0.0" 1115 | } 1116 | }, 1117 | "has-flag": { 1118 | "version": "3.0.0", 1119 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1120 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 1121 | }, 1122 | "http-signature": { 1123 | "version": "1.2.0", 1124 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1125 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1126 | "requires": { 1127 | "assert-plus": "^1.0.0", 1128 | "jsprim": "^1.2.2", 1129 | "sshpk": "^1.7.0" 1130 | } 1131 | }, 1132 | "https-proxy-agent": { 1133 | "version": "5.0.0", 1134 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 1135 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 1136 | "requires": { 1137 | "agent-base": "6", 1138 | "debug": "4" 1139 | } 1140 | }, 1141 | "iconv-lite": { 1142 | "version": "0.4.24", 1143 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1144 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1145 | "requires": { 1146 | "safer-buffer": ">= 2.1.2 < 3" 1147 | } 1148 | }, 1149 | "ieee754": { 1150 | "version": "1.2.1", 1151 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 1152 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 1153 | }, 1154 | "image-q": { 1155 | "version": "1.1.1", 1156 | "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", 1157 | "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=" 1158 | }, 1159 | "image-to-base64": { 1160 | "version": "2.1.1", 1161 | "resolved": "https://registry.npmjs.org/image-to-base64/-/image-to-base64-2.1.1.tgz", 1162 | "integrity": "sha512-G8EZaxl8dmYUXCmaC/1W4oqwj+yiY+qhF9A81TbdOtxdK9BAN3oV440Jofexp4J2oRsbHIUJtl3rlDqdjmiZOQ==", 1163 | "requires": { 1164 | "node-fetch": "^2.6.0" 1165 | } 1166 | }, 1167 | "inflight": { 1168 | "version": "1.0.6", 1169 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1170 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1171 | "requires": { 1172 | "once": "^1.3.0", 1173 | "wrappy": "1" 1174 | } 1175 | }, 1176 | "inherits": { 1177 | "version": "2.0.4", 1178 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1179 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 1180 | }, 1181 | "ip": { 1182 | "version": "1.1.5", 1183 | "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", 1184 | "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" 1185 | }, 1186 | "is-buffer": { 1187 | "version": "1.1.6", 1188 | "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", 1189 | "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" 1190 | }, 1191 | "is-function": { 1192 | "version": "1.0.2", 1193 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", 1194 | "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" 1195 | }, 1196 | "is-interactive": { 1197 | "version": "1.0.0", 1198 | "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", 1199 | "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" 1200 | }, 1201 | "is-number": { 1202 | "version": "3.0.0", 1203 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", 1204 | "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", 1205 | "requires": { 1206 | "kind-of": "^3.0.2" 1207 | }, 1208 | "dependencies": { 1209 | "kind-of": { 1210 | "version": "3.2.2", 1211 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", 1212 | "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", 1213 | "requires": { 1214 | "is-buffer": "^1.1.5" 1215 | } 1216 | } 1217 | } 1218 | }, 1219 | "is-typedarray": { 1220 | "version": "1.0.0", 1221 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1222 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 1223 | }, 1224 | "isexe": { 1225 | "version": "2.0.0", 1226 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1227 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 1228 | }, 1229 | "isstream": { 1230 | "version": "0.1.2", 1231 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1232 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 1233 | }, 1234 | "jimp": { 1235 | "version": "0.16.1", 1236 | "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.1.tgz", 1237 | "integrity": "sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==", 1238 | "requires": { 1239 | "@babel/runtime": "^7.7.2", 1240 | "@jimp/custom": "^0.16.1", 1241 | "@jimp/plugins": "^0.16.1", 1242 | "@jimp/types": "^0.16.1", 1243 | "regenerator-runtime": "^0.13.3" 1244 | } 1245 | }, 1246 | "jmespath": { 1247 | "version": "0.15.0", 1248 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", 1249 | "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" 1250 | }, 1251 | "joycon": { 1252 | "version": "2.2.5", 1253 | "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", 1254 | "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" 1255 | }, 1256 | "jpeg-js": { 1257 | "version": "0.4.2", 1258 | "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", 1259 | "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" 1260 | }, 1261 | "jsbn": { 1262 | "version": "0.1.1", 1263 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1264 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 1265 | }, 1266 | "json-schema": { 1267 | "version": "0.2.3", 1268 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1269 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 1270 | }, 1271 | "json-schema-traverse": { 1272 | "version": "0.4.1", 1273 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1274 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 1275 | }, 1276 | "json-stringify-safe": { 1277 | "version": "5.0.1", 1278 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1279 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 1280 | }, 1281 | "json2csv": { 1282 | "version": "4.5.1", 1283 | "resolved": "https://registry.npmjs.org/json2csv/-/json2csv-4.5.1.tgz", 1284 | "integrity": "sha512-o90Xa1ziGk3i7AJEO79Jac4+7SEUk58/DxS5mDPW6GF7poX0y7Y0pm1FbWrkz9VzKE4MpUW9aKBOCpJ0U1Ua8A==", 1285 | "requires": { 1286 | "commander": "^2.15.1", 1287 | "jsonparse": "^1.3.1", 1288 | "lodash.get": "^4.4.2" 1289 | } 1290 | }, 1291 | "jsonparse": { 1292 | "version": "1.3.1", 1293 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 1294 | "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" 1295 | }, 1296 | "jsprim": { 1297 | "version": "1.4.1", 1298 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1299 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1300 | "requires": { 1301 | "assert-plus": "1.0.0", 1302 | "extsprintf": "1.3.0", 1303 | "json-schema": "0.2.3", 1304 | "verror": "1.10.0" 1305 | } 1306 | }, 1307 | "kind-of": { 1308 | "version": "6.0.3", 1309 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", 1310 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" 1311 | }, 1312 | "lazystream": { 1313 | "version": "1.0.0", 1314 | "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", 1315 | "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", 1316 | "requires": { 1317 | "readable-stream": "^2.0.5" 1318 | }, 1319 | "dependencies": { 1320 | "isarray": { 1321 | "version": "1.0.0", 1322 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1323 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1324 | }, 1325 | "readable-stream": { 1326 | "version": "2.3.7", 1327 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1328 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1329 | "requires": { 1330 | "core-util-is": "~1.0.0", 1331 | "inherits": "~2.0.3", 1332 | "isarray": "~1.0.0", 1333 | "process-nextick-args": "~2.0.0", 1334 | "safe-buffer": "~5.1.1", 1335 | "string_decoder": "~1.1.1", 1336 | "util-deprecate": "~1.0.1" 1337 | } 1338 | }, 1339 | "safe-buffer": { 1340 | "version": "5.1.2", 1341 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1342 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1343 | }, 1344 | "string_decoder": { 1345 | "version": "1.1.1", 1346 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1347 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1348 | "requires": { 1349 | "safe-buffer": "~5.1.0" 1350 | } 1351 | } 1352 | } 1353 | }, 1354 | "leven": { 1355 | "version": "2.1.0", 1356 | "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", 1357 | "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" 1358 | }, 1359 | "load-bmfont": { 1360 | "version": "1.4.1", 1361 | "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", 1362 | "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", 1363 | "requires": { 1364 | "buffer-equal": "0.0.1", 1365 | "mime": "^1.3.4", 1366 | "parse-bmfont-ascii": "^1.0.3", 1367 | "parse-bmfont-binary": "^1.0.5", 1368 | "parse-bmfont-xml": "^1.1.4", 1369 | "phin": "^2.9.1", 1370 | "xhr": "^2.0.1", 1371 | "xtend": "^4.0.0" 1372 | } 1373 | }, 1374 | "locate-path": { 1375 | "version": "3.0.0", 1376 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", 1377 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", 1378 | "requires": { 1379 | "p-locate": "^3.0.0", 1380 | "path-exists": "^3.0.0" 1381 | }, 1382 | "dependencies": { 1383 | "path-exists": { 1384 | "version": "3.0.0", 1385 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", 1386 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" 1387 | } 1388 | } 1389 | }, 1390 | "lodash": { 1391 | "version": "4.17.20", 1392 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", 1393 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" 1394 | }, 1395 | "lodash.defaults": { 1396 | "version": "4.2.0", 1397 | "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", 1398 | "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" 1399 | }, 1400 | "lodash.difference": { 1401 | "version": "4.5.0", 1402 | "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", 1403 | "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" 1404 | }, 1405 | "lodash.flatten": { 1406 | "version": "4.4.0", 1407 | "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", 1408 | "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" 1409 | }, 1410 | "lodash.get": { 1411 | "version": "4.4.2", 1412 | "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", 1413 | "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=" 1414 | }, 1415 | "lodash.isplainobject": { 1416 | "version": "4.0.6", 1417 | "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", 1418 | "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" 1419 | }, 1420 | "lodash.union": { 1421 | "version": "4.6.0", 1422 | "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", 1423 | "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" 1424 | }, 1425 | "log-symbols": { 1426 | "version": "3.0.0", 1427 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", 1428 | "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", 1429 | "requires": { 1430 | "chalk": "^2.4.2" 1431 | }, 1432 | "dependencies": { 1433 | "chalk": { 1434 | "version": "2.4.2", 1435 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 1436 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 1437 | "requires": { 1438 | "ansi-styles": "^3.2.1", 1439 | "escape-string-regexp": "^1.0.5", 1440 | "supports-color": "^5.3.0" 1441 | } 1442 | } 1443 | } 1444 | }, 1445 | "long": { 1446 | "version": "4.0.0", 1447 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 1448 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 1449 | }, 1450 | "media-typer": { 1451 | "version": "1.1.0", 1452 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 1453 | "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" 1454 | }, 1455 | "mime": { 1456 | "version": "1.6.0", 1457 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 1458 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1459 | }, 1460 | "mime-db": { 1461 | "version": "1.44.0", 1462 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", 1463 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" 1464 | }, 1465 | "mime-types": { 1466 | "version": "2.1.27", 1467 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", 1468 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", 1469 | "requires": { 1470 | "mime-db": "1.44.0" 1471 | } 1472 | }, 1473 | "mimic-fn": { 1474 | "version": "2.1.0", 1475 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1476 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" 1477 | }, 1478 | "min-document": { 1479 | "version": "2.19.0", 1480 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", 1481 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", 1482 | "requires": { 1483 | "dom-walk": "^0.1.0" 1484 | } 1485 | }, 1486 | "minimatch": { 1487 | "version": "3.0.4", 1488 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1489 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1490 | "requires": { 1491 | "brace-expansion": "^1.1.7" 1492 | } 1493 | }, 1494 | "minimist": { 1495 | "version": "1.2.5", 1496 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1497 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 1498 | }, 1499 | "mkdirp": { 1500 | "version": "0.5.5", 1501 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1502 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1503 | "requires": { 1504 | "minimist": "^1.2.5" 1505 | } 1506 | }, 1507 | "moment": { 1508 | "version": "2.29.1", 1509 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", 1510 | "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" 1511 | }, 1512 | "moment-timezone": { 1513 | "version": "0.5.32", 1514 | "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.32.tgz", 1515 | "integrity": "sha512-Z8QNyuQHQAmWucp8Knmgei8YNo28aLjJq6Ma+jy1ZSpSk5nyfRT8xgUbSQvD2+2UajISfenndwvFuH3NGS+nvA==", 1516 | "requires": { 1517 | "moment": ">= 2.9.0" 1518 | } 1519 | }, 1520 | "mri": { 1521 | "version": "1.1.4", 1522 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", 1523 | "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" 1524 | }, 1525 | "ms": { 1526 | "version": "2.1.2", 1527 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1528 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1529 | }, 1530 | "multistream": { 1531 | "version": "2.1.1", 1532 | "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", 1533 | "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", 1534 | "requires": { 1535 | "inherits": "^2.0.1", 1536 | "readable-stream": "^2.0.5" 1537 | }, 1538 | "dependencies": { 1539 | "isarray": { 1540 | "version": "1.0.0", 1541 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1542 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1543 | }, 1544 | "readable-stream": { 1545 | "version": "2.3.7", 1546 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1547 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1548 | "requires": { 1549 | "core-util-is": "~1.0.0", 1550 | "inherits": "~2.0.3", 1551 | "isarray": "~1.0.0", 1552 | "process-nextick-args": "~2.0.0", 1553 | "safe-buffer": "~5.1.1", 1554 | "string_decoder": "~1.1.1", 1555 | "util-deprecate": "~1.0.1" 1556 | } 1557 | }, 1558 | "safe-buffer": { 1559 | "version": "5.1.2", 1560 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 1561 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 1562 | }, 1563 | "string_decoder": { 1564 | "version": "1.1.1", 1565 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 1566 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 1567 | "requires": { 1568 | "safe-buffer": "~5.1.0" 1569 | } 1570 | } 1571 | } 1572 | }, 1573 | "music-metadata": { 1574 | "version": "7.6.2", 1575 | "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.6.2.tgz", 1576 | "integrity": "sha512-yICd18bxEhphpUPwwzDe8wP3LSsbnKzPjuIDKAYpXgYVkMl2aZxvWx6qA59ccsVC0J5FeEhbRlWiAZ6IFZZYZg==", 1577 | "requires": { 1578 | "content-type": "^1.0.4", 1579 | "debug": "^4.3.1", 1580 | "file-type": "^16.1.0", 1581 | "media-typer": "^1.1.0", 1582 | "strtok3": "^6.0.6", 1583 | "token-types": "^2.0.0" 1584 | }, 1585 | "dependencies": { 1586 | "file-type": { 1587 | "version": "16.1.0", 1588 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.1.0.tgz", 1589 | "integrity": "sha512-G4Klqf6tuprtG0pC4r9kni4Wv8XhAAsfHphVqsQGA+YiOlPAO40BZduDqKfv0RFsu9q9ZbFObWfwszY/NqhEZw==", 1590 | "requires": { 1591 | "readable-web-to-node-stream": "^3.0.0", 1592 | "strtok3": "^6.0.3", 1593 | "token-types": "^2.0.0", 1594 | "typedarray-to-buffer": "^3.1.5" 1595 | } 1596 | } 1597 | } 1598 | }, 1599 | "mute-stream": { 1600 | "version": "0.0.8", 1601 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 1602 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" 1603 | }, 1604 | "needle": { 1605 | "version": "2.6.0", 1606 | "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", 1607 | "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", 1608 | "requires": { 1609 | "debug": "^3.2.6", 1610 | "iconv-lite": "^0.4.4", 1611 | "sax": "^1.2.4" 1612 | }, 1613 | "dependencies": { 1614 | "debug": { 1615 | "version": "3.2.7", 1616 | "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", 1617 | "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", 1618 | "requires": { 1619 | "ms": "^2.1.1" 1620 | } 1621 | } 1622 | } 1623 | }, 1624 | "node-fetch": { 1625 | "version": "2.6.1", 1626 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 1627 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 1628 | }, 1629 | "node-gtts": { 1630 | "version": "2.0.2", 1631 | "resolved": "https://registry.npmjs.org/node-gtts/-/node-gtts-2.0.2.tgz", 1632 | "integrity": "sha1-sK4OVEwknjRVtjKRclwbn4ZctZ4=", 1633 | "requires": { 1634 | "async": "^2.4.1", 1635 | "escape-string-regexp": "^1.0.5", 1636 | "fake-useragent": "^1.0.1", 1637 | "multistream": "^2.1.0", 1638 | "request": "^2.81.0" 1639 | } 1640 | }, 1641 | "node-tesseract-ocr": { 1642 | "version": "2.0.0", 1643 | "resolved": "https://registry.npmjs.org/node-tesseract-ocr/-/node-tesseract-ocr-2.0.0.tgz", 1644 | "integrity": "sha512-NU2D6MpH6DSpv01ZrmCqMsbG/sPLq3WMOL7dJAP8D00djSrqnin96Vhu1uaf5/tiqXLEMe1Yiv69Uf0R/f0Dug==" 1645 | }, 1646 | "normalize-path": { 1647 | "version": "3.0.0", 1648 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 1649 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" 1650 | }, 1651 | "oauth-sign": { 1652 | "version": "0.9.0", 1653 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1654 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 1655 | }, 1656 | "omggif": { 1657 | "version": "1.0.10", 1658 | "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", 1659 | "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" 1660 | }, 1661 | "once": { 1662 | "version": "1.4.0", 1663 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1664 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1665 | "requires": { 1666 | "wrappy": "1" 1667 | } 1668 | }, 1669 | "onetime": { 1670 | "version": "5.1.2", 1671 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", 1672 | "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", 1673 | "requires": { 1674 | "mimic-fn": "^2.1.0" 1675 | } 1676 | }, 1677 | "ora": { 1678 | "version": "4.1.1", 1679 | "resolved": "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz", 1680 | "integrity": "sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==", 1681 | "requires": { 1682 | "chalk": "^3.0.0", 1683 | "cli-cursor": "^3.1.0", 1684 | "cli-spinners": "^2.2.0", 1685 | "is-interactive": "^1.0.0", 1686 | "log-symbols": "^3.0.0", 1687 | "mute-stream": "0.0.8", 1688 | "strip-ansi": "^6.0.0", 1689 | "wcwidth": "^1.0.1" 1690 | }, 1691 | "dependencies": { 1692 | "ansi-regex": { 1693 | "version": "5.0.0", 1694 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 1695 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" 1696 | }, 1697 | "ansi-styles": { 1698 | "version": "4.3.0", 1699 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 1700 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 1701 | "requires": { 1702 | "color-convert": "^2.0.1" 1703 | } 1704 | }, 1705 | "chalk": { 1706 | "version": "3.0.0", 1707 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", 1708 | "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", 1709 | "requires": { 1710 | "ansi-styles": "^4.1.0", 1711 | "supports-color": "^7.1.0" 1712 | } 1713 | }, 1714 | "color-convert": { 1715 | "version": "2.0.1", 1716 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1717 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1718 | "requires": { 1719 | "color-name": "~1.1.4" 1720 | } 1721 | }, 1722 | "color-name": { 1723 | "version": "1.1.4", 1724 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1725 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 1726 | }, 1727 | "has-flag": { 1728 | "version": "4.0.0", 1729 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1730 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 1731 | }, 1732 | "strip-ansi": { 1733 | "version": "6.0.0", 1734 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1735 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1736 | "requires": { 1737 | "ansi-regex": "^5.0.0" 1738 | } 1739 | }, 1740 | "supports-color": { 1741 | "version": "7.2.0", 1742 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 1743 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 1744 | "requires": { 1745 | "has-flag": "^4.0.0" 1746 | } 1747 | } 1748 | } 1749 | }, 1750 | "p-limit": { 1751 | "version": "2.3.0", 1752 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", 1753 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", 1754 | "requires": { 1755 | "p-try": "^2.0.0" 1756 | } 1757 | }, 1758 | "p-locate": { 1759 | "version": "3.0.0", 1760 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", 1761 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", 1762 | "requires": { 1763 | "p-limit": "^2.0.0" 1764 | } 1765 | }, 1766 | "p-try": { 1767 | "version": "2.2.0", 1768 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", 1769 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" 1770 | }, 1771 | "pako": { 1772 | "version": "1.0.11", 1773 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 1774 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" 1775 | }, 1776 | "parse-bmfont-ascii": { 1777 | "version": "1.0.6", 1778 | "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", 1779 | "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" 1780 | }, 1781 | "parse-bmfont-binary": { 1782 | "version": "1.0.6", 1783 | "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", 1784 | "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" 1785 | }, 1786 | "parse-bmfont-xml": { 1787 | "version": "1.1.4", 1788 | "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", 1789 | "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", 1790 | "requires": { 1791 | "xml-parse-from-string": "^1.0.0", 1792 | "xml2js": "^0.4.5" 1793 | } 1794 | }, 1795 | "parse-headers": { 1796 | "version": "2.0.3", 1797 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", 1798 | "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" 1799 | }, 1800 | "path-is-absolute": { 1801 | "version": "1.0.1", 1802 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1803 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 1804 | }, 1805 | "peek-readable": { 1806 | "version": "3.1.1", 1807 | "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.1.tgz", 1808 | "integrity": "sha512-QHJag0oYYPVkx6rVPEgCLEUMo6VRYbV3GUrqy00lxXJBEIw9LhPCP5MQI6mEfahJO9KYUP8W8qD8kC0V9RyZFQ==" 1809 | }, 1810 | "performance-now": { 1811 | "version": "2.1.0", 1812 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1813 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 1814 | }, 1815 | "phin": { 1816 | "version": "2.9.3", 1817 | "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", 1818 | "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" 1819 | }, 1820 | "pino": { 1821 | "version": "6.10.0", 1822 | "resolved": "https://registry.npmjs.org/pino/-/pino-6.10.0.tgz", 1823 | "integrity": "sha512-ZFGE/Wq930gFb1h0RI6S/QOfkyzNj94Xubwlyo4XpxNUgrG1C0iEqnlooG5Fymx6yrUUtEJ8j/u8NCGwgwTXaQ==", 1824 | "requires": { 1825 | "fast-redact": "^3.0.0", 1826 | "fast-safe-stringify": "^2.0.7", 1827 | "flatstr": "^1.0.12", 1828 | "pino-std-serializers": "^3.1.0", 1829 | "quick-format-unescaped": "^4.0.1", 1830 | "sonic-boom": "^1.0.2" 1831 | } 1832 | }, 1833 | "pino-pretty": { 1834 | "version": "4.3.0", 1835 | "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.3.0.tgz", 1836 | "integrity": "sha512-uEc9SUCCGVEs0goZvyznKXBHtI1PNjGgqHviJHxOCEFEWZN6Z/IQKv5pO9gSdm/b+WfX+/dfheWhtZUyScqjlQ==", 1837 | "requires": { 1838 | "@hapi/bourne": "^2.0.0", 1839 | "args": "^5.0.1", 1840 | "chalk": "^4.0.0", 1841 | "dateformat": "^3.0.3", 1842 | "fast-safe-stringify": "^2.0.7", 1843 | "jmespath": "^0.15.0", 1844 | "joycon": "^2.2.5", 1845 | "pump": "^3.0.0", 1846 | "readable-stream": "^3.6.0", 1847 | "split2": "^3.1.1", 1848 | "strip-json-comments": "^3.1.1" 1849 | } 1850 | }, 1851 | "pino-std-serializers": { 1852 | "version": "3.1.0", 1853 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.1.0.tgz", 1854 | "integrity": "sha512-Fk1pxhX6tuW4ozRDFw5Mz/IHQV5wXYXZwjG/gOpTNPCbYEMeNW9VnKAEu1428CwAQVupFruOr1vkC/ufmcwedA==" 1855 | }, 1856 | "pixelmatch": { 1857 | "version": "4.0.2", 1858 | "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", 1859 | "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", 1860 | "requires": { 1861 | "pngjs": "^3.0.0" 1862 | } 1863 | }, 1864 | "pngjs": { 1865 | "version": "3.4.0", 1866 | "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", 1867 | "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" 1868 | }, 1869 | "process": { 1870 | "version": "0.11.10", 1871 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 1872 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 1873 | }, 1874 | "process-nextick-args": { 1875 | "version": "2.0.1", 1876 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1877 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" 1878 | }, 1879 | "progress": { 1880 | "version": "2.0.3", 1881 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1882 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" 1883 | }, 1884 | "protobufjs": { 1885 | "version": "6.10.2", 1886 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", 1887 | "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", 1888 | "requires": { 1889 | "@protobufjs/aspromise": "^1.1.2", 1890 | "@protobufjs/base64": "^1.1.2", 1891 | "@protobufjs/codegen": "^2.0.4", 1892 | "@protobufjs/eventemitter": "^1.1.0", 1893 | "@protobufjs/fetch": "^1.1.0", 1894 | "@protobufjs/float": "^1.0.2", 1895 | "@protobufjs/inquire": "^1.1.0", 1896 | "@protobufjs/path": "^1.1.2", 1897 | "@protobufjs/pool": "^1.1.0", 1898 | "@protobufjs/utf8": "^1.1.0", 1899 | "@types/long": "^4.0.1", 1900 | "@types/node": "^13.7.0", 1901 | "long": "^4.0.0" 1902 | }, 1903 | "dependencies": { 1904 | "@types/node": { 1905 | "version": "13.13.39", 1906 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.39.tgz", 1907 | "integrity": "sha512-wct+WgRTTkBm2R3vbrFOqyZM5w0g+D8KnhstG9463CJBVC3UVZHMToge7iMBR1vDl/I+NWFHUeK9X+JcF0rWKw==" 1908 | } 1909 | } 1910 | }, 1911 | "psl": { 1912 | "version": "1.8.0", 1913 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 1914 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" 1915 | }, 1916 | "pump": { 1917 | "version": "3.0.0", 1918 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1919 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1920 | "requires": { 1921 | "end-of-stream": "^1.1.0", 1922 | "once": "^1.3.1" 1923 | } 1924 | }, 1925 | "punycode": { 1926 | "version": "2.1.1", 1927 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1928 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 1929 | }, 1930 | "qrcode-terminal": { 1931 | "version": "0.12.0", 1932 | "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", 1933 | "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" 1934 | }, 1935 | "qs": { 1936 | "version": "6.5.2", 1937 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1938 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1939 | }, 1940 | "quick-format-unescaped": { 1941 | "version": "4.0.1", 1942 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz", 1943 | "integrity": "sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==" 1944 | }, 1945 | "readable-stream": { 1946 | "version": "3.6.0", 1947 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1948 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1949 | "requires": { 1950 | "inherits": "^2.0.3", 1951 | "string_decoder": "^1.1.1", 1952 | "util-deprecate": "^1.0.1" 1953 | } 1954 | }, 1955 | "readable-web-to-node-stream": { 1956 | "version": "3.0.1", 1957 | "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz", 1958 | "integrity": "sha512-4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==", 1959 | "requires": { 1960 | "@types/readable-stream": "^2.3.9", 1961 | "readable-stream": "^3.6.0" 1962 | } 1963 | }, 1964 | "regenerator-runtime": { 1965 | "version": "0.13.7", 1966 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", 1967 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" 1968 | }, 1969 | "remove.bg": { 1970 | "version": "1.3.0", 1971 | "resolved": "https://registry.npmjs.org/remove.bg/-/remove.bg-1.3.0.tgz", 1972 | "integrity": "sha512-vWCAOkmOLfn2U+uFlaEL4qFtP/Uxmcw+MW2Ds4zpsdHmcyXdy7XPx4Hp+K7Bl/ZdJVedLIDs88RQL7fvYb0J/Q==", 1973 | "requires": { 1974 | "request": "^2.88.0", 1975 | "unirest": "~0.6.0" 1976 | } 1977 | }, 1978 | "request": { 1979 | "version": "2.88.2", 1980 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 1981 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 1982 | "requires": { 1983 | "aws-sign2": "~0.7.0", 1984 | "aws4": "^1.8.0", 1985 | "caseless": "~0.12.0", 1986 | "combined-stream": "~1.0.6", 1987 | "extend": "~3.0.2", 1988 | "forever-agent": "~0.6.1", 1989 | "form-data": "~2.3.2", 1990 | "har-validator": "~5.1.3", 1991 | "http-signature": "~1.2.0", 1992 | "is-typedarray": "~1.0.0", 1993 | "isstream": "~0.1.2", 1994 | "json-stringify-safe": "~5.0.1", 1995 | "mime-types": "~2.1.19", 1996 | "oauth-sign": "~0.9.0", 1997 | "performance-now": "^2.1.0", 1998 | "qs": "~6.5.2", 1999 | "safe-buffer": "^5.1.2", 2000 | "tough-cookie": "~2.5.0", 2001 | "tunnel-agent": "^0.6.0", 2002 | "uuid": "^3.3.2" 2003 | } 2004 | }, 2005 | "request-promise": { 2006 | "version": "4.2.6", 2007 | "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz", 2008 | "integrity": "sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==", 2009 | "requires": { 2010 | "bluebird": "^3.5.0", 2011 | "request-promise-core": "1.1.4", 2012 | "stealthy-require": "^1.1.1", 2013 | "tough-cookie": "^2.3.3" 2014 | } 2015 | }, 2016 | "request-promise-core": { 2017 | "version": "1.1.4", 2018 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", 2019 | "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", 2020 | "requires": { 2021 | "lodash": "^4.17.19" 2022 | } 2023 | }, 2024 | "require-directory": { 2025 | "version": "2.1.1", 2026 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2027 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 2028 | }, 2029 | "restore-cursor": { 2030 | "version": "3.1.0", 2031 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 2032 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 2033 | "requires": { 2034 | "onetime": "^5.1.0", 2035 | "signal-exit": "^3.0.2" 2036 | } 2037 | }, 2038 | "safe-buffer": { 2039 | "version": "5.2.1", 2040 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 2041 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 2042 | }, 2043 | "safer-buffer": { 2044 | "version": "2.1.2", 2045 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2046 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 2047 | }, 2048 | "sax": { 2049 | "version": "1.2.4", 2050 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 2051 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 2052 | }, 2053 | "set-blocking": { 2054 | "version": "2.0.0", 2055 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2056 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 2057 | }, 2058 | "signal-exit": { 2059 | "version": "3.0.3", 2060 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2061 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" 2062 | }, 2063 | "smart-buffer": { 2064 | "version": "4.1.0", 2065 | "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", 2066 | "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==" 2067 | }, 2068 | "socks": { 2069 | "version": "2.5.1", 2070 | "resolved": "https://registry.npmjs.org/socks/-/socks-2.5.1.tgz", 2071 | "integrity": "sha512-oZCsJJxapULAYJaEYBSzMcz8m3jqgGrHaGhkmU/o/PQfFWYWxkAaA0UMGImb6s6tEXfKi959X6VJjMMQ3P6TTQ==", 2072 | "requires": { 2073 | "ip": "^1.1.5", 2074 | "smart-buffer": "^4.1.0" 2075 | } 2076 | }, 2077 | "socks-proxy-agent": { 2078 | "version": "5.0.0", 2079 | "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", 2080 | "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", 2081 | "requires": { 2082 | "agent-base": "6", 2083 | "debug": "4", 2084 | "socks": "^2.3.3" 2085 | } 2086 | }, 2087 | "sonic-boom": { 2088 | "version": "1.3.0", 2089 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.3.0.tgz", 2090 | "integrity": "sha512-4nX6OYvOYr6R76xfQKi6cZpTO3YSWe/vd+QdIfoH0lBy0MnPkeAbb2rRWgmgADkXUeCKPwO1FZAKlAVWAadELw==", 2091 | "requires": { 2092 | "atomic-sleep": "^1.0.0", 2093 | "flatstr": "^1.0.12" 2094 | } 2095 | }, 2096 | "spinnies": { 2097 | "version": "0.5.1", 2098 | "resolved": "https://registry.npmjs.org/spinnies/-/spinnies-0.5.1.tgz", 2099 | "integrity": "sha512-WpjSXv9NQz0nU3yCT9TFEOfpFrXADY9C5fG6eAJqixLhvTX1jP3w92Y8IE5oafIe42nlF9otjhllnXN/QCaB3A==", 2100 | "requires": { 2101 | "chalk": "^2.4.2", 2102 | "cli-cursor": "^3.0.0", 2103 | "strip-ansi": "^5.2.0" 2104 | }, 2105 | "dependencies": { 2106 | "ansi-regex": { 2107 | "version": "4.1.0", 2108 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 2109 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" 2110 | }, 2111 | "chalk": { 2112 | "version": "2.4.2", 2113 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 2114 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 2115 | "requires": { 2116 | "ansi-styles": "^3.2.1", 2117 | "escape-string-regexp": "^1.0.5", 2118 | "supports-color": "^5.3.0" 2119 | } 2120 | }, 2121 | "strip-ansi": { 2122 | "version": "5.2.0", 2123 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2124 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2125 | "requires": { 2126 | "ansi-regex": "^4.1.0" 2127 | } 2128 | } 2129 | } 2130 | }, 2131 | "split2": { 2132 | "version": "3.2.2", 2133 | "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", 2134 | "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", 2135 | "requires": { 2136 | "readable-stream": "^3.0.0" 2137 | } 2138 | }, 2139 | "sshpk": { 2140 | "version": "1.16.1", 2141 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 2142 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 2143 | "requires": { 2144 | "asn1": "~0.2.3", 2145 | "assert-plus": "^1.0.0", 2146 | "bcrypt-pbkdf": "^1.0.0", 2147 | "dashdash": "^1.12.0", 2148 | "ecc-jsbn": "~0.1.1", 2149 | "getpass": "^0.1.1", 2150 | "jsbn": "~0.1.0", 2151 | "safer-buffer": "^2.0.2", 2152 | "tweetnacl": "~0.14.0" 2153 | } 2154 | }, 2155 | "stealthy-require": { 2156 | "version": "1.1.1", 2157 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", 2158 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" 2159 | }, 2160 | "string_decoder": { 2161 | "version": "1.3.0", 2162 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 2163 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 2164 | "requires": { 2165 | "safe-buffer": "~5.2.0" 2166 | } 2167 | }, 2168 | "strip-json-comments": { 2169 | "version": "3.1.1", 2170 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2171 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" 2172 | }, 2173 | "strtok3": { 2174 | "version": "6.0.6", 2175 | "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.6.tgz", 2176 | "integrity": "sha512-fVxvAEKDwHFfbQO1yKxKBPfkWZyBr0Zf20UQ/mblbkAQe5h0Xdd2jDb3Mh7yRZd7LSItJ9JWgQWelpEmVoBe2g==", 2177 | "requires": { 2178 | "@tokenizer/token": "^0.1.1", 2179 | "@types/debug": "^4.1.5", 2180 | "peek-readable": "^3.1.1" 2181 | } 2182 | }, 2183 | "supports-color": { 2184 | "version": "5.5.0", 2185 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 2186 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 2187 | "requires": { 2188 | "has-flag": "^3.0.0" 2189 | } 2190 | }, 2191 | "tiktok-scraper": { 2192 | "version": "1.4.12", 2193 | "resolved": "https://registry.npmjs.org/tiktok-scraper/-/tiktok-scraper-1.4.12.tgz", 2194 | "integrity": "sha512-fxWh4iHwfLeP4iXNFouX4FKsYQplwVK+/D7DGEkFkWfbSCxsVM4waThj9DqG1aBNvIH/ZML/met2PzTQZbW4Dg==", 2195 | "requires": { 2196 | "archiver": "^3.1.1", 2197 | "async": "^3.1.0", 2198 | "bluebird": "^3.7.1", 2199 | "json2csv": "4.5.1", 2200 | "ora": "^4.0.2", 2201 | "progress": "^2.0.3", 2202 | "request": "^2.88.0", 2203 | "request-promise": "^4.2.4", 2204 | "socks-proxy-agent": "^5.0.0", 2205 | "yargs": "^14.2.0" 2206 | }, 2207 | "dependencies": { 2208 | "ansi-regex": { 2209 | "version": "4.1.0", 2210 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 2211 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" 2212 | }, 2213 | "async": { 2214 | "version": "3.2.0", 2215 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", 2216 | "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" 2217 | }, 2218 | "cliui": { 2219 | "version": "5.0.0", 2220 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", 2221 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", 2222 | "requires": { 2223 | "string-width": "^3.1.0", 2224 | "strip-ansi": "^5.2.0", 2225 | "wrap-ansi": "^5.1.0" 2226 | } 2227 | }, 2228 | "find-up": { 2229 | "version": "3.0.0", 2230 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", 2231 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", 2232 | "requires": { 2233 | "locate-path": "^3.0.0" 2234 | } 2235 | }, 2236 | "get-caller-file": { 2237 | "version": "2.0.5", 2238 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", 2239 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" 2240 | }, 2241 | "is-fullwidth-code-point": { 2242 | "version": "2.0.0", 2243 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2244 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" 2245 | }, 2246 | "require-main-filename": { 2247 | "version": "2.0.0", 2248 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", 2249 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" 2250 | }, 2251 | "string-width": { 2252 | "version": "3.1.0", 2253 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 2254 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 2255 | "requires": { 2256 | "emoji-regex": "^7.0.1", 2257 | "is-fullwidth-code-point": "^2.0.0", 2258 | "strip-ansi": "^5.1.0" 2259 | } 2260 | }, 2261 | "strip-ansi": { 2262 | "version": "5.2.0", 2263 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2264 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2265 | "requires": { 2266 | "ansi-regex": "^4.1.0" 2267 | } 2268 | }, 2269 | "which-module": { 2270 | "version": "2.0.0", 2271 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", 2272 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" 2273 | }, 2274 | "wrap-ansi": { 2275 | "version": "5.1.0", 2276 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", 2277 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", 2278 | "requires": { 2279 | "ansi-styles": "^3.2.0", 2280 | "string-width": "^3.0.0", 2281 | "strip-ansi": "^5.0.0" 2282 | } 2283 | }, 2284 | "y18n": { 2285 | "version": "4.0.1", 2286 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", 2287 | "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" 2288 | }, 2289 | "yargs": { 2290 | "version": "14.2.3", 2291 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", 2292 | "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", 2293 | "requires": { 2294 | "cliui": "^5.0.0", 2295 | "decamelize": "^1.2.0", 2296 | "find-up": "^3.0.0", 2297 | "get-caller-file": "^2.0.1", 2298 | "require-directory": "^2.1.1", 2299 | "require-main-filename": "^2.0.0", 2300 | "set-blocking": "^2.0.0", 2301 | "string-width": "^3.0.0", 2302 | "which-module": "^2.0.0", 2303 | "y18n": "^4.0.0", 2304 | "yargs-parser": "^15.0.1" 2305 | } 2306 | }, 2307 | "yargs-parser": { 2308 | "version": "15.0.1", 2309 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", 2310 | "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", 2311 | "requires": { 2312 | "camelcase": "^5.0.0", 2313 | "decamelize": "^1.2.0" 2314 | } 2315 | } 2316 | } 2317 | }, 2318 | "timm": { 2319 | "version": "1.7.1", 2320 | "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", 2321 | "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" 2322 | }, 2323 | "tinycolor2": { 2324 | "version": "1.4.2", 2325 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", 2326 | "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" 2327 | }, 2328 | "token-types": { 2329 | "version": "2.0.0", 2330 | "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.0.0.tgz", 2331 | "integrity": "sha512-WWvu8sGK8/ZmGusekZJJ5NM6rRVTTDO7/bahz4NGiSDb/XsmdYBn6a1N/bymUHuWYTWeuLUg98wUzvE4jPdCZw==", 2332 | "requires": { 2333 | "@tokenizer/token": "^0.1.0", 2334 | "ieee754": "^1.1.13" 2335 | } 2336 | }, 2337 | "tough-cookie": { 2338 | "version": "2.5.0", 2339 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 2340 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 2341 | "requires": { 2342 | "psl": "^1.1.28", 2343 | "punycode": "^2.1.1" 2344 | } 2345 | }, 2346 | "tunnel-agent": { 2347 | "version": "0.6.0", 2348 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2349 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2350 | "requires": { 2351 | "safe-buffer": "^5.0.1" 2352 | } 2353 | }, 2354 | "tweetnacl": { 2355 | "version": "0.14.5", 2356 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2357 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 2358 | }, 2359 | "typedarray-to-buffer": { 2360 | "version": "3.1.5", 2361 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 2362 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 2363 | "requires": { 2364 | "is-typedarray": "^1.0.0" 2365 | } 2366 | }, 2367 | "unirest": { 2368 | "version": "0.6.0", 2369 | "resolved": "https://registry.npmjs.org/unirest/-/unirest-0.6.0.tgz", 2370 | "integrity": "sha512-BdYdcYJHXACqZ53k8Zz7QlNK/1W/HjCZlmg1OaaN/oTSp4FTWh0upXGSJsG88PljDBpSrNc2R649drasUA9NEg==", 2371 | "requires": { 2372 | "form-data": "^0.2.0", 2373 | "mime": "^2.4.0", 2374 | "request": "^2.88.0" 2375 | }, 2376 | "dependencies": { 2377 | "async": { 2378 | "version": "0.9.2", 2379 | "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", 2380 | "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" 2381 | }, 2382 | "combined-stream": { 2383 | "version": "0.0.7", 2384 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz", 2385 | "integrity": "sha1-ATfmV7qlp1QcV6w3rF/AfXO03B8=", 2386 | "requires": { 2387 | "delayed-stream": "0.0.5" 2388 | } 2389 | }, 2390 | "delayed-stream": { 2391 | "version": "0.0.5", 2392 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz", 2393 | "integrity": "sha1-1LH0OpPoKW3+AmlPRoC8N6MTxz8=" 2394 | }, 2395 | "form-data": { 2396 | "version": "0.2.0", 2397 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-0.2.0.tgz", 2398 | "integrity": "sha1-Jvi8JtpkQOKZy9z7aQNcT3em5GY=", 2399 | "requires": { 2400 | "async": "~0.9.0", 2401 | "combined-stream": "~0.0.4", 2402 | "mime-types": "~2.0.3" 2403 | } 2404 | }, 2405 | "mime": { 2406 | "version": "2.4.7", 2407 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", 2408 | "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==" 2409 | }, 2410 | "mime-db": { 2411 | "version": "1.12.0", 2412 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz", 2413 | "integrity": "sha1-PQxjGA9FjrENMlqqN9fFiuMS6dc=" 2414 | }, 2415 | "mime-types": { 2416 | "version": "2.0.14", 2417 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz", 2418 | "integrity": "sha1-MQ4VnbI+B3+Lsit0jav6SVcUCqY=", 2419 | "requires": { 2420 | "mime-db": "~1.12.0" 2421 | } 2422 | } 2423 | } 2424 | }, 2425 | "uri-js": { 2426 | "version": "4.4.0", 2427 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", 2428 | "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", 2429 | "requires": { 2430 | "punycode": "^2.1.0" 2431 | } 2432 | }, 2433 | "utif": { 2434 | "version": "2.0.1", 2435 | "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", 2436 | "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", 2437 | "requires": { 2438 | "pako": "^1.0.5" 2439 | } 2440 | }, 2441 | "util-deprecate": { 2442 | "version": "1.0.2", 2443 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2444 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2445 | }, 2446 | "uuid": { 2447 | "version": "3.4.0", 2448 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 2449 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" 2450 | }, 2451 | "verror": { 2452 | "version": "1.10.0", 2453 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2454 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2455 | "requires": { 2456 | "assert-plus": "^1.0.0", 2457 | "core-util-is": "1.0.2", 2458 | "extsprintf": "^1.2.0" 2459 | } 2460 | }, 2461 | "wcwidth": { 2462 | "version": "1.0.1", 2463 | "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", 2464 | "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", 2465 | "requires": { 2466 | "defaults": "^1.0.3" 2467 | } 2468 | }, 2469 | "which": { 2470 | "version": "1.3.1", 2471 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2472 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2473 | "requires": { 2474 | "isexe": "^2.0.0" 2475 | } 2476 | }, 2477 | "window-size": { 2478 | "version": "1.1.1", 2479 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-1.1.1.tgz", 2480 | "integrity": "sha512-5D/9vujkmVQ7pSmc0SCBmHXbkv6eaHwXEx65MywhmUMsI8sGqJ972APq1lotfcwMKPFLuCFfL8xGHLIp7jaBmA==", 2481 | "requires": { 2482 | "define-property": "^1.0.0", 2483 | "is-number": "^3.0.0" 2484 | }, 2485 | "dependencies": { 2486 | "define-property": { 2487 | "version": "1.0.0", 2488 | "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", 2489 | "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", 2490 | "requires": { 2491 | "is-descriptor": "^1.0.0" 2492 | } 2493 | }, 2494 | "is-accessor-descriptor": { 2495 | "version": "1.0.0", 2496 | "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", 2497 | "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", 2498 | "requires": { 2499 | "kind-of": "^6.0.0" 2500 | } 2501 | }, 2502 | "is-data-descriptor": { 2503 | "version": "1.0.0", 2504 | "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", 2505 | "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", 2506 | "requires": { 2507 | "kind-of": "^6.0.0" 2508 | } 2509 | }, 2510 | "is-descriptor": { 2511 | "version": "1.0.2", 2512 | "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", 2513 | "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", 2514 | "requires": { 2515 | "is-accessor-descriptor": "^1.0.0", 2516 | "is-data-descriptor": "^1.0.0", 2517 | "kind-of": "^6.0.2" 2518 | } 2519 | } 2520 | } 2521 | }, 2522 | "wrappy": { 2523 | "version": "1.0.2", 2524 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2525 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 2526 | }, 2527 | "ws": { 2528 | "version": "7.4.2", 2529 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz", 2530 | "integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==" 2531 | }, 2532 | "xhr": { 2533 | "version": "2.6.0", 2534 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", 2535 | "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", 2536 | "requires": { 2537 | "global": "~4.4.0", 2538 | "is-function": "^1.0.1", 2539 | "parse-headers": "^2.0.0", 2540 | "xtend": "^4.0.0" 2541 | } 2542 | }, 2543 | "xml-parse-from-string": { 2544 | "version": "1.0.1", 2545 | "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", 2546 | "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" 2547 | }, 2548 | "xml2js": { 2549 | "version": "0.4.23", 2550 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", 2551 | "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", 2552 | "requires": { 2553 | "sax": ">=0.6.0", 2554 | "xmlbuilder": "~11.0.0" 2555 | } 2556 | }, 2557 | "xmlbuilder": { 2558 | "version": "11.0.1", 2559 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 2560 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" 2561 | }, 2562 | "xtend": { 2563 | "version": "4.0.2", 2564 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 2565 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 2566 | }, 2567 | "zip-stream": { 2568 | "version": "2.1.3", 2569 | "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", 2570 | "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", 2571 | "requires": { 2572 | "archiver-utils": "^2.1.0", 2573 | "compress-commons": "^2.1.1", 2574 | "readable-stream": "^3.4.0" 2575 | } 2576 | } 2577 | } 2578 | } 2579 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HAFIZH", 3 | "version": "1.0.0", 4 | "description": "Termux only", 5 | "main": "index.js", 6 | "directories": { 7 | "lib": "lib" 8 | }, 9 | "dependencies": { 10 | "@adiwajshing/baileys": "^3.4.1", 11 | "axios": "^0.21.0", 12 | "dotenv": "^8.2.0", 13 | "image-to-base64": "^2.1.1", 14 | "node-gtts": "^2.0.2", 15 | "moment-timezone": "^0.5.32", 16 | "needle": "^2.5.2", 17 | "node-tesseract-ocr": "^2.0.0", 18 | "async": "^2.4.1", 19 | "performance-now": "^2.1.0", 20 | "request": "^2.81.0", 21 | "escape-string-regexp": "^1.0.5", 22 | "multistream": "^2.1.0", 23 | "fake-useragent": "^1.0.1", 24 | "qrcode-terminal": "^0.12.0", 25 | "cfonts": "^2.9.0", 26 | "fluent-ffmpeg": "^2.1.2", 27 | "node-fetch": "^2.6.1", 28 | "remove.bg": "^1.3.0", 29 | "spinnies": "^0.5.1" 30 | }, 31 | "devDependencies": {}, 32 | "scripts": { 33 | "test": "node index" 34 | }, 35 | "repository": { 36 | "type": "git", 37 | "url": "git+https://github.com/HAFizh-15/TERMOS-WABOT.git" 38 | }, 39 | "keywords": [ 40 | "k" 41 | ], 42 | "author": "Hafizh", 43 | "license": "ISC", 44 | "bugs": { 45 | "url": "https://github.com/HAFizh-15/TERMOS-WABOT/issues" 46 | }, 47 | "homepage": "https://github.com/HAFizh-15/TERMOS-WABOT/readme" 48 | } 49 | -------------------------------------------------------------------------------- /src/P: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/donasi.js: -------------------------------------------------------------------------------- 1 | const donasi = () => { 2 | return `GAUSAH DONASI, FREE KOK` 3 | } 4 | 5 | exports.donasi = donasi 6 | -------------------------------------------------------------------------------- /src/nsfw.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /src/simi.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /src/test.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/welkom.json: -------------------------------------------------------------------------------- 1 | [] 2 | --------------------------------------------------------------------------------