├── 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 | [](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 |
--------------------------------------------------------------------------------