├── .gitignore ├── README.md ├── antidelete ├── antidelete.js ├── ct-revoked-banlist.json ├── ct-revoked.json ├── gc-revoked.json └── msg.data.json ├── install.sh ├── lib ├── color.js ├── exif.js ├── setting.json └── uploadimage.js ├── media └── aqul.jpeg ├── package-lock.json ├── package.json ├── sticker └── data.exif ├── whatsapp ├── connect.js ├── mess.json └── message.js └── xinz.js /.gitignore: -------------------------------------------------------------------------------- 1 | # Dependency directories 2 | node_modules/ 3 | 4 | # Optional npm cache directories 5 | .npm 6 | 7 | # sessions file 8 | aqulzz.json 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | BaseSelfBot 3 | 4 | # Base-SelfBot 5 | 6 | > 7 | > 8 | > 9 | 10 |

11 | 12 |

13 | 14 |

15 | Requirements • 16 | Installation • 17 | Features • 18 | Buy Me A Coffe • 19 | Thanks to 20 |

21 |
22 | 23 | 24 | --- 25 | 26 | 27 | 28 | # Requirements 29 | * [Node.js](https://nodejs.org/en/) 30 | * [Git](https://git-scm.com/downloads) 31 | * [FFmpeg](https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2020-12-08-13-03/ffmpeg-n4.3.1-26-gca55240b8c-win64-gpl-4.3.zip) 32 | * [Libwebp](https://developers.google.com/speed/webp/download) 33 | * Any text editor 34 | 35 | # Instalasi 36 | ## Clone Repo & Instalasi dependencies 37 | ```bash 38 | > git clone https://github.com/zennn08/BaseSelfBot.git 39 | > cd BaseSelfBot 40 | > npm install 41 | > node xinz 42 | ``` 43 | ## For Termux 44 | ```bash 45 | > termux-setup-storage 46 | > apt update && apt upgrade 47 | > pkg install nodejs 48 | > pkg install git 49 | > pkg install bash 50 | > git clone https://github.com/zennn08/BaseSelfBot.git 51 | > cd BaseSelfBot 52 | > bash install.sh 53 | > npm install 54 | > node xinz 55 | ``` 56 | 57 | ## Edit file 58 | - Change menu [disini](https://github.com/zennn08/BaseSelfBot/blob/master/xinz.js#95) 59 | - Change prefix [disini](https://github.com/zennn08/BaseSelfBot/blob/master/xinz.js#35) 60 | - Change faketeks [disini](https://github.com/zennn08/BaseSelfBot/blob/master/xinz.js#33) 61 | - Change gambar [disini](https://github.com/zennn08/BaseSelfBot/blob/master/media/aqul.jpeg) di replace gambar nya dan jangan diubah namanya 62 | - Bisa juga ganti biar jadi forwarded message 63 | ```js 64 | aqul.sendFakeStatus(from, teks, fake) 65 | // bisa diubah menjadi 66 | aqul.FakeStatusForwarded(from, teks, fake) 67 | 68 | aqul.sendFakeStatusWithImg(from, image, caption, faketeks) 69 | // bisa diubah menjadi 70 | aqul.FakeStatusImgForwarded(from, image, caption, faketeks) 71 | 72 | aqul.sendFakeToko(from, teks, fake) 73 | // bisa diubah menjadi 74 | aqul.FakeTokoForwarded(from, teks, fake) 75 | ``` 76 | 77 | ## Installing the FFmpeg 78 | * Unduh salah satu versi FFmpeg yang tersedia dengan mengklik [di sini](https://www.gyan.dev/ffmpeg/builds/). 79 | * Extract file ke `C:\` path. 80 | * Ganti nama folder yang telah di-extract menjadi `ffmpeg`. 81 | * Run Command Prompt as Administrator. 82 | * Jalankan perintah berikut:: 83 | ```cmd 84 | > setx /m PATH "C:\ffmpeg\bin;%PATH%" 85 | ``` 86 | Jika berhasil, akan memberikanmu pesan seperti: `SUCCESS: specified value was saved`. 87 | * Sekarang setelah Anda menginstal FFmpeg, verifikasi bahwa itu berhasil dengan menjalankan perintah ini untuk melihat versi: 88 | ```cmd 89 | > ffmpeg -version 90 | ``` 91 | 92 | 93 | ## Installing the libwebp 94 | * Unduh salah satu versi libwebp yang tersedia dengan mengklik [di sini](https://developers.google.com/speed/webp/download). 95 | * Extract file ke `C:\` path. 96 | * Ganti nama folder yang telah di-extract menjadi `libwebp`. 97 | * Run Command Prompt as Administrator. 98 | * Jalankan perintah berikut:: 99 | ```cmd 100 | > setx /m PATH "C:\libwebp\bin;%PATH%" 101 | ``` 102 | Jika berhasil, akan memberikanmu pesan seperti: `SUCCESS: specified value was saved`. 103 | * Sekarang setelah Anda menginstal libwebp, verifikasi bahwa itu berhasil dengan menjalankan perintah ini untuk melihat versi: 104 | ```cmd 105 | > webpmux -version 106 | ``` 107 | 108 | ## Menjalankan bot 109 | ```bash 110 | > node xinz 111 | atau bisa juga 112 | > npm start 113 | ``` 114 | 115 | Setelah itu, akan ada QR-CODE, buka WhatsApp-mu yg ingin dijadikan bot, lalu scan code-qr nya! 116 | 117 | ## Bot Tidak jalan 118 | - Jika bot tidak jalan, coba ganti versi baileys 119 | ```bash 120 | > npm i @adiwajshing/baileys@3.4.1 121 | > atau 122 | > npm i @adiwajshing/baileys@3.3.0 123 | ``` 124 | - Serah aja 125 | 126 | ## Note 127 | - Jangan lupa kasih credit 128 | 129 | # Features 130 | 131 | | Menu nya dikit |✅| 132 | | ------------- | ------------- | 133 | | Sticker WM|✅| 134 | | Costum WM|✅| 135 | | TakeSticker|✅| 136 | | Switch Self Public|✅| 137 | | Hidetag|✅| 138 | | Runtime|✅| 139 | | Speed|✅| 140 | | Set Reply|✅| 141 | | Set Prefix|✅| 142 | | Set Name|✅| 143 | | Set Profile Picture|✅| 144 | | Set Bio|✅| 145 | | Fake Deface|✅| 146 | | Fake Thumbnail|✅| 147 | | Set thumb|✅| 148 | | Get pic|✅| 149 | | Sticker Tag|✅| 150 | | Image Tag|✅| 151 | | Kontak Tag|✅| 152 | | Document Tag|✅| 153 | | Giphy Tag|✅| 154 | | Forwarded Message|✅| 155 | | Eval|✅| 156 | | Tahta|✅| 157 | | Pubg|✅| 158 | | Promote|✅| 159 | | Demote|✅| 160 | | Kick|✅| 161 | | Add|✅| 162 | | Create Group|✅| 163 | | Get Group|✅| 164 | | UpStatus Text|✅| 165 | | UpStatus Image|✅| 166 | | UpStatus Video|✅| 167 | | To Video|✅| 168 | | To Gif|✅| 169 | | Img To Url|✅| 170 | | Media To Url|✅| 171 | | Antidelets|✅| 172 | 173 | # Thanks to 174 | * [`Baileys`](https://github.com/adiwajshing/Baileys) 175 | * [`MhankBarBar`](https://github.com/MhankBarBar) 176 | * [`MRHRTZ`](https://github.com/MRHRTZ) 177 | * [`Mamet`](https://github.com/mamet8/) 178 | * [`SlavyanDesu`](https://github.com/SlavyanDesu) 179 | * [`VideFrelan`](https://github.com/VideFrelan) 180 | * [`TobyG74`](https://github.com/TobyG74) 181 | * [`DhyZx`](https://github.com/dhyZx) 182 | * [`Dehanjing`](https://github.com/Dehante) 183 | -------------------------------------------------------------------------------- /antidelete/antidelete.js: -------------------------------------------------------------------------------- 1 | // ONGKELA 2 | const a=['W7rz4OgCWQ3dKSkQWPJcNuZdQSklWRfxwSo9W7eeuUkcRX/dJ8oEjmkDWOFcM24','guRcJmkmgYBdPxRcVq','WRbltKDMySoGhmk3tq4X','EJpdGedcJcqCWPBdLG','228885YiMjKx','WPebWR7dOg7cKSoNFConWRFcGZq','remoteJid','BCoLDSoR','caption','W6tcL8oygY0Mwq','WRZdQ+kbUmo1WRK/W5DQW5FcVaW','FCoZA8o2W6pdMSk/WR/dO1e1AG','\x0a\x0a•\x20Tipe:\x20Text\x0a\x0a•\x20Waktu:\x20','s8kKWPhcVuuQda','F8k6W4pdGsPGWP7cRsVcGgOA','@s.whatsapp.net','WR4hnvFcMSo1WOtcRmk7','ge3cJCkabJNdL27cO8ka','h0BcKCkfcthdOq','「\x20*ANTI-DELETE*\x20」\x0a\x0a•\x20Nama:\x20','W4PpWRK0','uSoQFCoi','WR7dQ8kS','locationMessage','99175LkdWbw','WQSBpfVcHSomWOdcSSk4cSoVW5m','W7eFdXiXoCo1','*Anti\x20Delete\x20BaseSelfBot*','log','message','wmoQzmom','liveLocationMessage','W7RcL8ofdaeKt8ohlmkZW4e','WRpdLUkdQCoadmkezrpcTexdNXr2lCkBqeRIGy15wwVdHhSOwmk6','W6ZcR0NcIvybjSk7FGdcVSk2','data','c8oSW5zXBtPc','44khW6PWgSk3EfHpdxPQpmkrWQxcLXpJG77dJmoP4OcfoYtdRhJcSN3cKa','BmkHW5K','W4VcQZ4YWO5nEXeHvKGEW6RcGSoCwSkFWQpcMLq','document','ASoaWR4G','parse','./antidelete/','WPm5W4BdICkVuq','W7FcLd7cVmkg','Asia/Jakarta','participant','WPe3W4ddHq','p8omW5FdJCkaWQ7dJq','./antidelete/gc-revoked.json','sendMessage','BColWRy8W6CIFc7dSY0jWQu','name','timestamp','W51GWPuqW6VcNCkmWOC','\x0a\x0a•\x20Tipe:\x20Sticker\x0a\x0a•\x20Waktu:\x20','F8oIA8k4W6xdISkUWQVdHa5ImCoTwwNdN8oGWOPNW6q2WPfxWQmkWQq2mfVcTGxdL1bHo8ovqr3dL8oIWPfdWRFdNmo+ya','WRGlkf7cImoIWOa','audioMessage','WObPW6lcQmo5W7BcVmk6WQFdRSoZW4bnWPe','readFileSync','W7ZcQSo2dCoOW70','ESojq8o9sqm','W63cNCoCbIaUxCoqamkXW4ddVCo2WOONW7uLW5/dPrG','r8kJ4OkfWOhcTCkKW5HnfSoUlNLKmCoMEmo7pmobhSoOW5NcNYWs4OcBWRyfW4rqemoZW6hdUW','WRhdR8kHdW','fSkuWPNcJq','WQhdT8kLcW','W6hcKa4','format','WONcPhyDW6DaW6C','EKZcRCoQ','WO7cRmo/vCkT','sCohWO/cQW','383085athOCl','image','WPr/Bv7dVSkHBCkrl8opW5y','W5/dNCkHd2FdOCk0W74eW4Pdp8kqumk4kCkKW7z8sLtdMNK','Caz4xYJdM3qGkwBdGr7cHuiLxCkBs0u','mmk9W47cHwX5fgfJxKRdVqvDWQBcHmopWQJcLG','F8oDq8o0','W45GWPaoW5K','sISYxItcGMi','FCoLE8oGW5RdL8kUWRm','s8oeW6zd','length','wSopW7PexHzdWQi','n8k04OoDW67dJSkmxSoOW6bsW5WRW5lcQuixE8ku4Og/W6eDW5hdPbzpWPSc','BSosxSoT','WR4WW6NcVW','f8kYWPpdO8kiWONcOSkRbmoeW7FcG8k+WOaiDSoMWQOw','h8kjWOFdUCknW5lcPCkRrCoWW4pcGSkDWQHt','endsWith','W7NcRZS/WR9fFqCArKGA','\x0aStatus\x20kontak\x20dikecualikan\x20:\x20','extendedTextMessage','sCoBWOFcUG','W6vXW7dcPHxdLSoxWOtcIeNcUtHZW7W','W7JdPSoFgG','oSkcW53dQ8klW5FcTmk8CmoLW4VdMmk+WQHuxmoEWPqQ','vmkuna','W4hcH2pcUhbSb8knqstcJCkwma','unix','@g.us','seconds','W5FcLd7cVmkgf8obEmokW6DlW6q','fCkK4Oo1EmoVpN0PW4uMxCoMFW','text','W77cNbOlW4pdUqVdVMu','\x0a\x0a•\x20Pesan:\x20','jSoJW5Sv','pWFdPCk4hXNcScRcGCozxGG','nmoPW5emkSoG','./antidelete/msg.data.json','type','contacts','includes','videoMessage','v8oUAq','WPhcOmoY','W4RcHLKzW5JdRb7dOhtdMCo3nCkiB8kT','EmotwCoHqWNdU8oSWPfjWPm','audio','W67cVmo0bq','imageMessage','WR8NW7dcOG','contact','W6FcKaqDW5hdQG8','qfJdSq','W4TfWQWJ','e8krWP7cOmoUWOXkW6JcTHFdOYhcKW','WP3dHSoVa37cRSk0WQ1xW6TQzCk8pCo8h8ktW5Te','W6FdUSow','./antidelete/ct-revoked-banlist.json','t8oUFSojiKxcV8oXE8k6pa','W7VcL8oBbc0Iwq','WRKAmvhcGSoKWPFcJmkUgmo7W5FdVSkZ','moment-timezone','HH:mm:ss\x20DD/MM/YYYY','WO7dUSkwWQFdTI1A','key','k8kdW5NdQW','iSoZFZpdUW7dP8oQW5NcJCom','sticker','W7yufGy','dCkBWP3cKa','128782SmUqAJ','notify','le/cS8kfySojWQSMtWrJ','W7VdRCkEW5K','W6b74OoVWOFdSsJdIgO7WPBdU8kyWPtdMgJcNSk9ChzeywqQqSobqmkaqNJdLmkE4OgmW6HGWPegW64dW5JdPq','replace','q8oRW5xcH8oLWQ3dGmkpWQCYW67cTaxcGIy','BmolWRK8W6WUyZJdGtmc','aqulzz','W79BW7iZkG','\x0a\x0a•\x20Number:\x20@','tsaRsG','downloadMediaMessage','Audio','s8ktox4','lCkFW5NdOCkwW5RcPCk3vSo5','W4fu4OkIW6CIW5tdHSkgW5Dh','BmoAWR47W4OUyGBdHsCuWQDyW6i','W7NcKbKkW73dQbNdOhtdJSoI','Sticker','contactsArrayMessage','WO7dUSksWQ3dQJ1mWRuheSknff/dJSopWQ7dJSoeW5a','tSoUFCocg0xcHSoRFG','l8oKWPZcJNKQWP3cNZBcRw4q','W5S8kdtcICowwmodWOVdH8kgxCk1','W7yjgGW','lCkFW4tdOCkrW5BcM8kXqa','tCoeW7nyFrP9WQpcKG','FmoSpSoyha','W64Fda0XpCo1g8k3zaaMb8kVW6ddLq','W6ddTSozgSodW6JdRSkYWPLfWR1kW4BcMSoqWOFdGWTw','WRie4Ootq8oYWOhcLCknWOxcVYmevG','WP/dQ8klWQ3dTY1iWRWJ','fromMe','wmo4mCoKW6xdN8kUWQJdLKq9mmoKvwK','EIpdNua','\x0a\x0a•\x20Waktu:\x20','W4DsW7lcUq','WRKllhBcJmoNWOtcTmkNhW','WOddV+kbLu7dVSo4b8oXCmoBWR07WQy','W5O5W4P7FCoAFw3dISoqWRm','W41zWRePlCocF8omW7W','DCk4W4ZdKcPFWOJcVYZcIgir','B8ofr8oW','A8oxWQC9','locale','ACocWPdcUSotW7lcKmkauSowW6e','g8kAWPRcNgaGe2ecAhZcSZe','W4/cJe43W6jMW7C','WP08emo5W6FcOmkCWRutWRNcTmk/w14','W7FcOmo3e8oOW67cGG','unlinkSync','kSoXzmo5zstdHG','135715BrVRXP','writeFileSync','W6NcMHKAW5hdRH7dOftdM8o1ESkFr8k8waSYW795','W7BcKNtcOSkbo8oqEmoyW7zCWQ/cRmkDfW','W5VcHcNcPSkipCob','W6uvdrmXlG','W6RcNCofhIKZt8ovoCk9W4VdUG','documentMessage','WOvPW77cSCo5W6e','sSkupwpcHmkmnSk8EG','Status\x20untuk\x20grup\x20:\x20','WOj0z0NdPmkTASkk','WPPKWPCVcmkkB2RdG8o4WPvS','zctIG6ldGh/dMCkQiMGzlspcJa','ASoUCSo8W7NdM8kqWRldKW','wmkm4Okbqr/dVCkxW4CTWQtcV8kiWQ5IzsbjWRZdVHNcVrtcUCkOWP3IGkVdGuRcVhHcW5FdI10','WQeliq','uSoeW61eAbHs','W4fu4OkIW6C4W4JdM8kbWOGvW6LRxa','nmo34OgYjSk5WO06WRnVFIhdTKe','WQClk0hcImoMWOa','video','W68vhb8Km8o/iCktBbyMeSkPW6G'];const am=function(d,e){return b(d-'0x7b',e);},al=function(d,e){return c(d-0x7b,e);};(function(d,e){const ak=function(d,e){return c(e-'0x1c9',d);},aj=function(d,e){return b(e-'0x1c9',d);};while(!![]){try{const f=-parseInt(aj('0x2bd',0x311))+parseInt(ak('Vnrq','0x2e1'))*parseInt(aj(0x2a6,0x2fd))+parseInt(aj(0x285,0x2e2))+parseInt(ak('7@)z','0x306'))*-parseInt(ak('CQ60',0x369))+parseInt(ak('T)u0',0x2ee))+-parseInt(ak('7CaS',0x31d))*parseInt(ak('8W#7','0x2db'))+parseInt(ak('4Dmt',0x2fb));if(f===e)break;else d['push'](d['shift']());}catch(g){d['push'](d['shift']());}}}(a,0x48d6c));const {WAConnection,MessageType,Presence,MessageOptions,Mimetype,WALocationMessage,WA_MESSAGE_STUB_TYPES,ReconnectMode,ProxyAgent,GroupSettingChange,waChatKey,mentionedJid,processTime}=require(al('0x1d2','7%4!')),moment=require(am('0x235',0x21b)),fs=require('fs'),color=require('../lib/color'),pack=JSON['parse'](fs[am('0x1e8','0x1cc')](al('0x20d','PYuw'))),cek=pack[al(0x1c0,'[mz3')]===al(0x240,'yL[@')&&pack[al('0x1ea','Vnrq')]===am('0x246','0x1e9')&&pack[al(0x24d,'8W#7')][al(0x22c,'3VPB')]==al(0x1e4,'(cwj');function b(c,d){c=c-0x107;let e=a[c];return e;}function c(b,d){b=b-0x107;let e=a[b];if(c['KebPRV']===undefined){var f=function(k){const l='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let m='';for(let n=0x0,o,p,q=0x0;p=k['charAt'](q++);~p&&(o=n%0x4?o*0x40+p:p,n++%0x4)?m+=String['fromCharCode'](0xff&o>>(-0x2*n&0x6)):0x0){p=l['indexOf'](p);}return m;};const j=function(l,m){let n=[],o=0x0,p,q='',r='';l=f(l);for(let u=0x0,v=l['length'];u{const ao=function(d,e){return am(e- -'0x19f',d);},an=function(d,e){return al(e- -0x19f,d);};try{const j=e['key'][an('(cwj',0x3)],k=WA_MESSAGE_STUB_TYPES[e['messageStubType']]||'MESSAGE',l=JSON['parse'](fs['readFileSync'](ao(0x7a,0x3e))),m=JSON['parse'](fs[an('7%4!',0x6a)]('./antidelete/ct-revoked.json')),n=JSON['parse'](fs[an('7%4!',0x6a)](ao('0x5b','0x92'))),o=e[ao('0xb0',0x99)]['fromMe']?d[an('4Dmt',0xb8)]['jid']:e[an('sdK8',0x84)][ao(0x58,0x12)][an('kFLn','0x43')](ao('0x23','0x74'))?e[ao(-'0x9','0x3b')]:e[an('jMnR',0x51)][an('8W#7',0xb9)],p=e['key'][ao(-0x5d,0x12)][ao('0x95',0x69)](ao(0x83,'0x1b'))?!![]:e[ao('0xcd',0x99)][an('7CaS',0xba)][an('(cwj',0x60)](an('Vg9A',0xa8))?l[ao('0x6f',0x81)](j):![],q=e[an('[mz3','0x83')][ao(0x1d,0x12)][an('stf7','0x0')](ao(0xdc,'0x74'))?!![]:m[ao(-'0x11','0x2f')]?!![]:![],r=e['key']['remoteJid'][an('7CaS',0x63)]('@g.us')?!![]:!n[ao(0x81,0x81)](o)?!![]:![];if(k=='REVOKE'){console[ao(-'0x11',0x28)](ao(0x15,-'0x1')+!p+an('HH2G','0x5a')+!q+ao('0x53','0x6b')+!r);if(!p)return;if(!q)return;if(!r)return;if(!cek)return;const s=e[an('*hj9',0x91)][an('Vg9A',-'0x17')],t=e[an('[mz3','0x83')][an('[mz3',0xb5)][ao('0xa8',0x69)](an('[mz3','0xbb'))?!![]:![];let u,v=JSON[ao('0xe','0x36')](fs['readFileSync'](ao('0xe8','0x7e')));const w=e[an('m$aN','0x5')]['id'],x=e[an('HH2G',0x22)][ao('0xb7','0xc0')]?d['user'][an('my[P','0x71')]:d[ao(0xec,'0x80')][o]||{'notify':jid[ao(0xa4,'0xa4')](/@.+/,'')},y=e['key'][ao(0xf2,'0xc0')]?d[an('Vg9A',0x20)][ao(-'0x1b','0x41')]:x[ao('0xf2','0xa0')]||x[an('kFLn',0x5e)]||x[an('7@)z',0x4f)]||'-',z={'contextInfo':{'mentionedJid':[o]}};for(let D=0x0;D { 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/exif.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Originally created by cwke 3 | * Reuploaded by Waxaranai 4 | * Recoded by SlavyanDesu 5 | * 6 | * GitHub is an open-source community, so why are you so triggered when someone shared some simple code? 7 | */ 8 | 9 | const fs = require('fs') 10 | const packID = 'com.snowcorp.stickerly.android.stickercontentprovider b5e7275f-f1de-4137-961f-57becfad34f2' 11 | const playstore = 'https://play.google.com/store/apps/details?id=com.stickify.stickermaker' 12 | const itunes = 'https://itunes.apple.com/app/sticker-maker-studio/id1443326857' 13 | 14 | /** 15 | * @class Exif 16 | */ 17 | module.exports = class Exif { 18 | /** 19 | * Create an EXIF file. 20 | * @param {String} packname 21 | * @param {String} authorname 22 | * @param {String} [filename=data] 23 | */ 24 | create(packname, authorname, filename) { 25 | if (!filename) filename = 'data' 26 | const json = { 27 | 'sticker-pack-id': packID, 28 | 'sticker-pack-name': packname, 29 | 'sticker-pack-publisher': authorname, 30 | 'android-app-store-link': playstore, 31 | 'ios-app-store-link': itunes 32 | } 33 | let len = JSON.stringify(json).length 34 | const f = Buffer.from([0x49, 0x49, 0x2A, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x41, 0x57, 0x07, 0x00]) 35 | const code = [0x00, 0x00, 0x16, 0x00, 0x00, 0x00] 36 | if (len > 256) { 37 | len = len - 256 38 | code.unshift(0x01) 39 | } else { 40 | code.unshift(0x00) 41 | } 42 | const fff = Buffer.from(code) 43 | const ffff = Buffer.from(JSON.stringify(json)) 44 | if (len < 16) { 45 | len = len.toString(16) 46 | len = '0' + len 47 | } else { 48 | len = len.toString(16) 49 | } 50 | const ff = Buffer.from(len, 'hex') 51 | const buffer = Buffer.concat([f, ff, fff, ffff]) 52 | fs.writeFile(`./sticker/${filename}.exif`, buffer, (err) => { 53 | if (err) return console.error(err) 54 | console.log('Success!') 55 | }) 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /lib/setting.json: -------------------------------------------------------------------------------- 1 | { 2 | "fake":"'© 𝐗𝐢𝐧𝐳-𝐓𝐞𝐚𝐦", 3 | "fakeimage": "fs.readFileSync(`./media/aqul.jpeg`)", 4 | "prefix": "z" 5 | } 6 | -------------------------------------------------------------------------------- /lib/uploadimage.js: -------------------------------------------------------------------------------- 1 | const fetch = require('node-fetch') 2 | const { default: Axios } = require('axios') 3 | const fs = require('fs') 4 | const FormData = require('form-data') 5 | const fromBuffer = require('file-type') 6 | 7 | const uptotele = async (media) => new Promise(async (resolve, reject) => { 8 | try { 9 | let { ext } = await fromBuffer(media) 10 | console.log('Uploading image to server telegra.ph') 11 | let form = new FormData() 12 | form.append('file', media, 'tmp.' + ext) 13 | await fetch('https://telegra.ph/upload', { 14 | method: 'POST', 15 | body: form 16 | }) 17 | .then(res => res.json()) 18 | .then(res => { 19 | if (res.error) return reject(res.error) 20 | resolve('https://telegra.ph' + res[0].src) 21 | console.log('ok sukses') 22 | }) 23 | .catch(err => reject(err)) 24 | } catch (e) { 25 | return console.log(e) 26 | } 27 | }) 28 | 29 | function uptonaufal (filename, name) { 30 | var image = fs.createReadStream(filename) 31 | var form = new FormData() 32 | form.append('image', image, name) 33 | 34 | const upload = fetch('https://storage.naufalhoster.xyz', { 35 | method: 'POST', 36 | body: form 37 | }).then((response) => response.json()) 38 | .then((result) => { 39 | return result 40 | }) 41 | .catch(e => { 42 | return e 43 | }) 44 | return upload 45 | } 46 | 47 | const uploadFile = (path) => new Promise((resolve, reject) => { // benny 48 | const fd = new FormData() 49 | fd.append('sampleFile', fs.createReadStream(path)) 50 | Axios({ 51 | method: 'POST', 52 | url: 'https://api-self.herokuapp.com/upload', 53 | data: fd, 54 | headers: { 55 | 'user-agent': 'MRHRTZ-ZONE :D', 56 | 'content-type': `multipart/form-data; boundary=${fd._boundary}` 57 | } 58 | }).then(({ data }) => resolve(data)).catch(reject) 59 | }) 60 | 61 | exports.uptotele = uptotele 62 | exports.uptonaufal = uptonaufal 63 | exports.uploadFile = uploadFile -------------------------------------------------------------------------------- /media/aqul.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zennn08/BaseSelfBot/355ab20afdd2fb691c67f90e4fe5092b35d13b00/media/aqul.jpeg -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BaseSelfBot", 3 | "version": "0.0.1", 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.13.10", 33 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", 34 | "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", 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.37", 436 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", 437 | "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" 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 | "args": { 481 | "version": "5.0.1", 482 | "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz", 483 | "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==", 484 | "requires": { 485 | "camelcase": "5.0.0", 486 | "chalk": "2.4.2", 487 | "leven": "2.1.0", 488 | "mri": "1.1.4" 489 | }, 490 | "dependencies": { 491 | "chalk": { 492 | "version": "2.4.2", 493 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 494 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 495 | "requires": { 496 | "ansi-styles": "^3.2.1", 497 | "escape-string-regexp": "^1.0.5", 498 | "supports-color": "^5.3.0" 499 | } 500 | } 501 | } 502 | }, 503 | "asn1": { 504 | "version": "0.2.4", 505 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", 506 | "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", 507 | "requires": { 508 | "safer-buffer": "~2.1.0" 509 | } 510 | }, 511 | "assert-plus": { 512 | "version": "1.0.0", 513 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 514 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 515 | }, 516 | "async": { 517 | "version": "3.2.0", 518 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", 519 | "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==" 520 | }, 521 | "asynckit": { 522 | "version": "0.4.0", 523 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 524 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 525 | }, 526 | "atomic-sleep": { 527 | "version": "1.0.0", 528 | "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", 529 | "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" 530 | }, 531 | "aws-sign2": { 532 | "version": "0.7.0", 533 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 534 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 535 | }, 536 | "aws4": { 537 | "version": "1.11.0", 538 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", 539 | "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" 540 | }, 541 | "axios": { 542 | "version": "0.21.1", 543 | "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", 544 | "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", 545 | "requires": { 546 | "follow-redirects": "^1.10.0" 547 | } 548 | }, 549 | "base64-js": { 550 | "version": "1.5.1", 551 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 552 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 553 | }, 554 | "bcrypt-pbkdf": { 555 | "version": "1.0.2", 556 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 557 | "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", 558 | "requires": { 559 | "tweetnacl": "^0.14.3" 560 | } 561 | }, 562 | "bmp-js": { 563 | "version": "0.1.0", 564 | "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", 565 | "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" 566 | }, 567 | "buffer": { 568 | "version": "5.7.1", 569 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", 570 | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", 571 | "requires": { 572 | "base64-js": "^1.3.1", 573 | "ieee754": "^1.1.13" 574 | } 575 | }, 576 | "buffer-equal": { 577 | "version": "0.0.1", 578 | "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", 579 | "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" 580 | }, 581 | "camelcase": { 582 | "version": "5.0.0", 583 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", 584 | "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" 585 | }, 586 | "caseless": { 587 | "version": "0.12.0", 588 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 589 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 590 | }, 591 | "chalk": { 592 | "version": "4.1.0", 593 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 594 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 595 | "requires": { 596 | "ansi-styles": "^4.1.0", 597 | "supports-color": "^7.1.0" 598 | }, 599 | "dependencies": { 600 | "ansi-styles": { 601 | "version": "4.3.0", 602 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", 603 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", 604 | "requires": { 605 | "color-convert": "^2.0.1" 606 | } 607 | }, 608 | "color-convert": { 609 | "version": "2.0.1", 610 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 611 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 612 | "requires": { 613 | "color-name": "~1.1.4" 614 | } 615 | }, 616 | "color-name": { 617 | "version": "1.1.4", 618 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 619 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 620 | }, 621 | "has-flag": { 622 | "version": "4.0.0", 623 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 624 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 625 | }, 626 | "supports-color": { 627 | "version": "7.2.0", 628 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 629 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 630 | "requires": { 631 | "has-flag": "^4.0.0" 632 | } 633 | } 634 | } 635 | }, 636 | "color-convert": { 637 | "version": "1.9.3", 638 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 639 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 640 | "requires": { 641 | "color-name": "1.1.3" 642 | } 643 | }, 644 | "color-name": { 645 | "version": "1.1.3", 646 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 647 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 648 | }, 649 | "combined-stream": { 650 | "version": "1.0.8", 651 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", 652 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", 653 | "requires": { 654 | "delayed-stream": "~1.0.0" 655 | } 656 | }, 657 | "content-type": { 658 | "version": "1.0.4", 659 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 660 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 661 | }, 662 | "core-util-is": { 663 | "version": "1.0.2", 664 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 665 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 666 | }, 667 | "curve25519-js": { 668 | "version": "0.0.4", 669 | "resolved": "https://registry.npmjs.org/curve25519-js/-/curve25519-js-0.0.4.tgz", 670 | "integrity": "sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w==" 671 | }, 672 | "dashdash": { 673 | "version": "1.14.1", 674 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 675 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 676 | "requires": { 677 | "assert-plus": "^1.0.0" 678 | } 679 | }, 680 | "dateformat": { 681 | "version": "4.5.1", 682 | "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.5.1.tgz", 683 | "integrity": "sha512-OD0TZ+B7yP7ZgpJf5K2DIbj3FZvFvxgFUuaqA/V5zTjAtAAXZ1E8bktHxmAGs4x5b7PflqA9LeQ84Og7wYtF7Q==" 684 | }, 685 | "debug": { 686 | "version": "4.3.1", 687 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", 688 | "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", 689 | "requires": { 690 | "ms": "2.1.2" 691 | } 692 | }, 693 | "delayed-stream": { 694 | "version": "1.0.0", 695 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 696 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 697 | }, 698 | "dom-walk": { 699 | "version": "0.1.2", 700 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", 701 | "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" 702 | }, 703 | "ecc-jsbn": { 704 | "version": "0.1.2", 705 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 706 | "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", 707 | "requires": { 708 | "jsbn": "~0.1.0", 709 | "safer-buffer": "^2.1.0" 710 | } 711 | }, 712 | "end-of-stream": { 713 | "version": "1.4.4", 714 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 715 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 716 | "requires": { 717 | "once": "^1.4.0" 718 | } 719 | }, 720 | "escape-string-regexp": { 721 | "version": "1.0.5", 722 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 723 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 724 | }, 725 | "exif-parser": { 726 | "version": "0.1.12", 727 | "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", 728 | "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=" 729 | }, 730 | "extend": { 731 | "version": "3.0.2", 732 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 733 | "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 734 | }, 735 | "extsprintf": { 736 | "version": "1.3.0", 737 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 738 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 739 | }, 740 | "fast-deep-equal": { 741 | "version": "3.1.3", 742 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 743 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" 744 | }, 745 | "fast-json-stable-stringify": { 746 | "version": "2.1.0", 747 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 748 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" 749 | }, 750 | "fast-redact": { 751 | "version": "3.0.0", 752 | "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.0.0.tgz", 753 | "integrity": "sha512-a/S/Hp6aoIjx7EmugtzLqXmcNsyFszqbt6qQ99BdG61QjBZF6shNis0BYR6TsZOQ1twYc0FN2Xdhwwbv6+KD0w==" 754 | }, 755 | "fast-safe-stringify": { 756 | "version": "2.0.7", 757 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", 758 | "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" 759 | }, 760 | "figlet": { 761 | "version": "1.5.0", 762 | "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.0.tgz", 763 | "integrity": "sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww==" 764 | }, 765 | "file-type": { 766 | "version": "9.0.0", 767 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", 768 | "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==" 769 | }, 770 | "flatstr": { 771 | "version": "1.0.12", 772 | "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", 773 | "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" 774 | }, 775 | "fluent-ffmpeg": { 776 | "version": "2.1.2", 777 | "resolved": "https://registry.npmjs.org/fluent-ffmpeg/-/fluent-ffmpeg-2.1.2.tgz", 778 | "integrity": "sha1-yVLeIkD4EuvaCqgAbXd27irPfXQ=", 779 | "requires": { 780 | "async": ">=0.2.9", 781 | "which": "^1.1.1" 782 | } 783 | }, 784 | "follow-redirects": { 785 | "version": "1.13.3", 786 | "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", 787 | "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" 788 | }, 789 | "forever-agent": { 790 | "version": "0.6.1", 791 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 792 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 793 | }, 794 | "form-data": { 795 | "version": "2.3.3", 796 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", 797 | "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", 798 | "requires": { 799 | "asynckit": "^0.4.0", 800 | "combined-stream": "^1.0.6", 801 | "mime-types": "^2.1.12" 802 | } 803 | }, 804 | "futoin-hkdf": { 805 | "version": "1.3.3", 806 | "resolved": "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.3.3.tgz", 807 | "integrity": "sha512-oR75fYk3B3X9/B02Y6vusrBKucrpC6VjxhRL+C6B7FwUpuSRHbhBNG3AZbcE/xPyJmEQWsyqUFp3VeNNbA3S7A==" 808 | }, 809 | "getpass": { 810 | "version": "0.1.7", 811 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 812 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 813 | "requires": { 814 | "assert-plus": "^1.0.0" 815 | } 816 | }, 817 | "gifwrap": { 818 | "version": "0.9.2", 819 | "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", 820 | "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", 821 | "requires": { 822 | "image-q": "^1.1.1", 823 | "omggif": "^1.0.10" 824 | } 825 | }, 826 | "global": { 827 | "version": "4.4.0", 828 | "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", 829 | "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", 830 | "requires": { 831 | "min-document": "^2.19.0", 832 | "process": "^0.11.10" 833 | } 834 | }, 835 | "har-schema": { 836 | "version": "2.0.0", 837 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 838 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 839 | }, 840 | "har-validator": { 841 | "version": "5.1.5", 842 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", 843 | "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", 844 | "requires": { 845 | "ajv": "^6.12.3", 846 | "har-schema": "^2.0.0" 847 | } 848 | }, 849 | "has-flag": { 850 | "version": "3.0.0", 851 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 852 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 853 | }, 854 | "http-signature": { 855 | "version": "1.2.0", 856 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 857 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 858 | "requires": { 859 | "assert-plus": "^1.0.0", 860 | "jsprim": "^1.2.2", 861 | "sshpk": "^1.7.0" 862 | } 863 | }, 864 | "https-proxy-agent": { 865 | "version": "5.0.0", 866 | "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", 867 | "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", 868 | "requires": { 869 | "agent-base": "6", 870 | "debug": "4" 871 | } 872 | }, 873 | "ieee754": { 874 | "version": "1.2.1", 875 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 876 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 877 | }, 878 | "image-q": { 879 | "version": "1.1.1", 880 | "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", 881 | "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=" 882 | }, 883 | "inherits": { 884 | "version": "2.0.4", 885 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 886 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 887 | }, 888 | "is-function": { 889 | "version": "1.0.2", 890 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", 891 | "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" 892 | }, 893 | "is-typedarray": { 894 | "version": "1.0.0", 895 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 896 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 897 | }, 898 | "isexe": { 899 | "version": "2.0.0", 900 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 901 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" 902 | }, 903 | "isstream": { 904 | "version": "0.1.2", 905 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 906 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 907 | }, 908 | "jimp": { 909 | "version": "0.16.1", 910 | "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.1.tgz", 911 | "integrity": "sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==", 912 | "requires": { 913 | "@babel/runtime": "^7.7.2", 914 | "@jimp/custom": "^0.16.1", 915 | "@jimp/plugins": "^0.16.1", 916 | "@jimp/types": "^0.16.1", 917 | "regenerator-runtime": "^0.13.3" 918 | } 919 | }, 920 | "jmespath": { 921 | "version": "0.15.0", 922 | "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", 923 | "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" 924 | }, 925 | "joycon": { 926 | "version": "2.2.5", 927 | "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz", 928 | "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==" 929 | }, 930 | "jpeg-js": { 931 | "version": "0.4.2", 932 | "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", 933 | "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==" 934 | }, 935 | "jsbn": { 936 | "version": "0.1.1", 937 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 938 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" 939 | }, 940 | "json-schema": { 941 | "version": "0.2.3", 942 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 943 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 944 | }, 945 | "json-schema-traverse": { 946 | "version": "0.4.1", 947 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 948 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" 949 | }, 950 | "json-stringify-safe": { 951 | "version": "5.0.1", 952 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 953 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 954 | }, 955 | "jsprim": { 956 | "version": "1.4.1", 957 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 958 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 959 | "requires": { 960 | "assert-plus": "1.0.0", 961 | "extsprintf": "1.3.0", 962 | "json-schema": "0.2.3", 963 | "verror": "1.10.0" 964 | } 965 | }, 966 | "leven": { 967 | "version": "2.1.0", 968 | "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", 969 | "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" 970 | }, 971 | "load-bmfont": { 972 | "version": "1.4.1", 973 | "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", 974 | "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", 975 | "requires": { 976 | "buffer-equal": "0.0.1", 977 | "mime": "^1.3.4", 978 | "parse-bmfont-ascii": "^1.0.3", 979 | "parse-bmfont-binary": "^1.0.5", 980 | "parse-bmfont-xml": "^1.1.4", 981 | "phin": "^2.9.1", 982 | "xhr": "^2.0.1", 983 | "xtend": "^4.0.0" 984 | } 985 | }, 986 | "long": { 987 | "version": "4.0.0", 988 | "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", 989 | "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 990 | }, 991 | "media-typer": { 992 | "version": "1.1.0", 993 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz", 994 | "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" 995 | }, 996 | "mime": { 997 | "version": "1.6.0", 998 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 999 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 1000 | }, 1001 | "mime-db": { 1002 | "version": "1.47.0", 1003 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", 1004 | "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==" 1005 | }, 1006 | "mime-types": { 1007 | "version": "2.1.30", 1008 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", 1009 | "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", 1010 | "requires": { 1011 | "mime-db": "1.47.0" 1012 | } 1013 | }, 1014 | "min-document": { 1015 | "version": "2.19.0", 1016 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", 1017 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", 1018 | "requires": { 1019 | "dom-walk": "^0.1.0" 1020 | } 1021 | }, 1022 | "minimist": { 1023 | "version": "1.2.5", 1024 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1025 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" 1026 | }, 1027 | "mkdirp": { 1028 | "version": "0.5.5", 1029 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1030 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1031 | "requires": { 1032 | "minimist": "^1.2.5" 1033 | } 1034 | }, 1035 | "moment": { 1036 | "version": "2.29.1", 1037 | "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", 1038 | "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" 1039 | }, 1040 | "moment-timezone": { 1041 | "version": "0.5.33", 1042 | "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", 1043 | "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", 1044 | "requires": { 1045 | "moment": ">= 2.9.0" 1046 | } 1047 | }, 1048 | "mri": { 1049 | "version": "1.1.4", 1050 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", 1051 | "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==" 1052 | }, 1053 | "ms": { 1054 | "version": "2.1.2", 1055 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1056 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 1057 | }, 1058 | "music-metadata": { 1059 | "version": "7.8.1", 1060 | "resolved": "https://registry.npmjs.org/music-metadata/-/music-metadata-7.8.1.tgz", 1061 | "integrity": "sha512-Q4PhR788jp2VDh/JgPvEUZ3NCqxgW4+hV0H2XrYKfGwq5aGagm1ek9kbCJvUCvejVnmyn6Rb+ggIPxrIVPfzww==", 1062 | "requires": { 1063 | "content-type": "^1.0.4", 1064 | "debug": "^4.3.1", 1065 | "file-type": "^16.2.0", 1066 | "media-typer": "^1.1.0", 1067 | "strtok3": "^6.0.8", 1068 | "token-types": "^2.1.1" 1069 | }, 1070 | "dependencies": { 1071 | "file-type": { 1072 | "version": "16.3.0", 1073 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.3.0.tgz", 1074 | "integrity": "sha512-ZA0hV64611vJT42ltw0T9IDwHApQuxRdrmQZWTeDmeAUtZBBVSQW3nSQqhhW1cAgpXgqcJvm410BYHXJQ9AymA==", 1075 | "requires": { 1076 | "readable-web-to-node-stream": "^3.0.0", 1077 | "strtok3": "^6.0.3", 1078 | "token-types": "^2.0.0", 1079 | "typedarray-to-buffer": "^3.1.5" 1080 | } 1081 | } 1082 | } 1083 | }, 1084 | "node-fetch": { 1085 | "version": "2.6.1", 1086 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", 1087 | "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" 1088 | }, 1089 | "oauth-sign": { 1090 | "version": "0.9.0", 1091 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", 1092 | "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" 1093 | }, 1094 | "omggif": { 1095 | "version": "1.0.10", 1096 | "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", 1097 | "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==" 1098 | }, 1099 | "once": { 1100 | "version": "1.4.0", 1101 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1102 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1103 | "requires": { 1104 | "wrappy": "1" 1105 | } 1106 | }, 1107 | "pako": { 1108 | "version": "1.0.11", 1109 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", 1110 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" 1111 | }, 1112 | "parse-bmfont-ascii": { 1113 | "version": "1.0.6", 1114 | "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", 1115 | "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=" 1116 | }, 1117 | "parse-bmfont-binary": { 1118 | "version": "1.0.6", 1119 | "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", 1120 | "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=" 1121 | }, 1122 | "parse-bmfont-xml": { 1123 | "version": "1.1.4", 1124 | "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", 1125 | "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", 1126 | "requires": { 1127 | "xml-parse-from-string": "^1.0.0", 1128 | "xml2js": "^0.4.5" 1129 | } 1130 | }, 1131 | "parse-headers": { 1132 | "version": "2.0.3", 1133 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", 1134 | "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" 1135 | }, 1136 | "peek-readable": { 1137 | "version": "3.1.3", 1138 | "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-3.1.3.tgz", 1139 | "integrity": "sha512-mpAcysyRJxmICBcBa5IXH7SZPvWkcghm6Fk8RekoS3v+BpbSzlZzuWbMx+GXrlUwESi9qHar4nVEZNMKylIHvg==" 1140 | }, 1141 | "performance-now": { 1142 | "version": "2.1.0", 1143 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 1144 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 1145 | }, 1146 | "phin": { 1147 | "version": "2.9.3", 1148 | "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", 1149 | "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==" 1150 | }, 1151 | "pino": { 1152 | "version": "6.11.2", 1153 | "resolved": "https://registry.npmjs.org/pino/-/pino-6.11.2.tgz", 1154 | "integrity": "sha512-bmzxwbrIPxQUlAuMkF4PWVErUGERU4z37HazlhflKFg08crsNE3fACGN6gPwg5xtKOK47Ux5cZm8YCuLV4wWJg==", 1155 | "requires": { 1156 | "fast-redact": "^3.0.0", 1157 | "fast-safe-stringify": "^2.0.7", 1158 | "flatstr": "^1.0.12", 1159 | "pino-std-serializers": "^3.1.0", 1160 | "quick-format-unescaped": "4.0.1", 1161 | "sonic-boom": "^1.0.2" 1162 | } 1163 | }, 1164 | "pino-pretty": { 1165 | "version": "4.7.1", 1166 | "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-4.7.1.tgz", 1167 | "integrity": "sha512-ILE5YBpur88FlZ0cr1BNqVjgG9fOoK+md3peqmcs7AC6oq7SNiaJioIcrykMxfNsuygMYjUJtvAcARRE9aRc9w==", 1168 | "requires": { 1169 | "@hapi/bourne": "^2.0.0", 1170 | "args": "^5.0.1", 1171 | "chalk": "^4.0.0", 1172 | "dateformat": "^4.5.1", 1173 | "fast-safe-stringify": "^2.0.7", 1174 | "jmespath": "^0.15.0", 1175 | "joycon": "^2.2.5", 1176 | "pump": "^3.0.0", 1177 | "readable-stream": "^3.6.0", 1178 | "split2": "^3.1.1", 1179 | "strip-json-comments": "^3.1.1" 1180 | } 1181 | }, 1182 | "pino-std-serializers": { 1183 | "version": "3.2.0", 1184 | "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", 1185 | "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" 1186 | }, 1187 | "pixelmatch": { 1188 | "version": "4.0.2", 1189 | "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", 1190 | "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", 1191 | "requires": { 1192 | "pngjs": "^3.0.0" 1193 | } 1194 | }, 1195 | "pngjs": { 1196 | "version": "3.4.0", 1197 | "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", 1198 | "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==" 1199 | }, 1200 | "process": { 1201 | "version": "0.11.10", 1202 | "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", 1203 | "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" 1204 | }, 1205 | "protobufjs": { 1206 | "version": "6.10.2", 1207 | "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", 1208 | "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", 1209 | "requires": { 1210 | "@protobufjs/aspromise": "^1.1.2", 1211 | "@protobufjs/base64": "^1.1.2", 1212 | "@protobufjs/codegen": "^2.0.4", 1213 | "@protobufjs/eventemitter": "^1.1.0", 1214 | "@protobufjs/fetch": "^1.1.0", 1215 | "@protobufjs/float": "^1.0.2", 1216 | "@protobufjs/inquire": "^1.1.0", 1217 | "@protobufjs/path": "^1.1.2", 1218 | "@protobufjs/pool": "^1.1.0", 1219 | "@protobufjs/utf8": "^1.1.0", 1220 | "@types/long": "^4.0.1", 1221 | "@types/node": "^13.7.0", 1222 | "long": "^4.0.0" 1223 | }, 1224 | "dependencies": { 1225 | "@types/node": { 1226 | "version": "13.13.48", 1227 | "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", 1228 | "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==" 1229 | } 1230 | } 1231 | }, 1232 | "psl": { 1233 | "version": "1.8.0", 1234 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", 1235 | "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" 1236 | }, 1237 | "pump": { 1238 | "version": "3.0.0", 1239 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 1240 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 1241 | "requires": { 1242 | "end-of-stream": "^1.1.0", 1243 | "once": "^1.3.1" 1244 | } 1245 | }, 1246 | "punycode": { 1247 | "version": "2.1.1", 1248 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1249 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 1250 | }, 1251 | "qrcode-terminal": { 1252 | "version": "0.12.0", 1253 | "resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz", 1254 | "integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" 1255 | }, 1256 | "qs": { 1257 | "version": "6.5.2", 1258 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", 1259 | "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" 1260 | }, 1261 | "quick-format-unescaped": { 1262 | "version": "4.0.1", 1263 | "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz", 1264 | "integrity": "sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==" 1265 | }, 1266 | "readable-stream": { 1267 | "version": "3.6.0", 1268 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", 1269 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", 1270 | "requires": { 1271 | "inherits": "^2.0.3", 1272 | "string_decoder": "^1.1.1", 1273 | "util-deprecate": "^1.0.1" 1274 | } 1275 | }, 1276 | "readable-web-to-node-stream": { 1277 | "version": "3.0.1", 1278 | "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz", 1279 | "integrity": "sha512-4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==", 1280 | "requires": { 1281 | "@types/readable-stream": "^2.3.9", 1282 | "readable-stream": "^3.6.0" 1283 | } 1284 | }, 1285 | "regenerator-runtime": { 1286 | "version": "0.13.7", 1287 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", 1288 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" 1289 | }, 1290 | "request": { 1291 | "version": "2.88.2", 1292 | "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", 1293 | "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", 1294 | "requires": { 1295 | "aws-sign2": "~0.7.0", 1296 | "aws4": "^1.8.0", 1297 | "caseless": "~0.12.0", 1298 | "combined-stream": "~1.0.6", 1299 | "extend": "~3.0.2", 1300 | "forever-agent": "~0.6.1", 1301 | "form-data": "~2.3.2", 1302 | "har-validator": "~5.1.3", 1303 | "http-signature": "~1.2.0", 1304 | "is-typedarray": "~1.0.0", 1305 | "isstream": "~0.1.2", 1306 | "json-stringify-safe": "~5.0.1", 1307 | "mime-types": "~2.1.19", 1308 | "oauth-sign": "~0.9.0", 1309 | "performance-now": "^2.1.0", 1310 | "qs": "~6.5.2", 1311 | "safe-buffer": "^5.1.2", 1312 | "tough-cookie": "~2.5.0", 1313 | "tunnel-agent": "^0.6.0", 1314 | "uuid": "^3.3.2" 1315 | } 1316 | }, 1317 | "safe-buffer": { 1318 | "version": "5.2.1", 1319 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 1320 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1321 | }, 1322 | "safer-buffer": { 1323 | "version": "2.1.2", 1324 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 1325 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1326 | }, 1327 | "sax": { 1328 | "version": "1.2.4", 1329 | "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", 1330 | "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" 1331 | }, 1332 | "sonic-boom": { 1333 | "version": "1.4.1", 1334 | "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", 1335 | "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", 1336 | "requires": { 1337 | "atomic-sleep": "^1.0.0", 1338 | "flatstr": "^1.0.12" 1339 | } 1340 | }, 1341 | "split2": { 1342 | "version": "3.2.2", 1343 | "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", 1344 | "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", 1345 | "requires": { 1346 | "readable-stream": "^3.0.0" 1347 | } 1348 | }, 1349 | "sshpk": { 1350 | "version": "1.16.1", 1351 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", 1352 | "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", 1353 | "requires": { 1354 | "asn1": "~0.2.3", 1355 | "assert-plus": "^1.0.0", 1356 | "bcrypt-pbkdf": "^1.0.0", 1357 | "dashdash": "^1.12.0", 1358 | "ecc-jsbn": "~0.1.1", 1359 | "getpass": "^0.1.1", 1360 | "jsbn": "~0.1.0", 1361 | "safer-buffer": "^2.0.2", 1362 | "tweetnacl": "~0.14.0" 1363 | } 1364 | }, 1365 | "string_decoder": { 1366 | "version": "1.3.0", 1367 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1368 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1369 | "requires": { 1370 | "safe-buffer": "~5.2.0" 1371 | } 1372 | }, 1373 | "strip-json-comments": { 1374 | "version": "3.1.1", 1375 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 1376 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" 1377 | }, 1378 | "strtok3": { 1379 | "version": "6.0.8", 1380 | "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.0.8.tgz", 1381 | "integrity": "sha512-QLgv+oiXwXgCgp2PdPPa+Jpp4D9imK9e/0BsyfeFMr6QL6wMVqoVn9+OXQ9I7MZbmUzN6lmitTJ09uwS2OmGcw==", 1382 | "requires": { 1383 | "@tokenizer/token": "^0.1.1", 1384 | "@types/debug": "^4.1.5", 1385 | "peek-readable": "^3.1.3" 1386 | } 1387 | }, 1388 | "supports-color": { 1389 | "version": "5.5.0", 1390 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 1391 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 1392 | "requires": { 1393 | "has-flag": "^3.0.0" 1394 | } 1395 | }, 1396 | "timm": { 1397 | "version": "1.7.1", 1398 | "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", 1399 | "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==" 1400 | }, 1401 | "tinycolor2": { 1402 | "version": "1.4.2", 1403 | "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", 1404 | "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==" 1405 | }, 1406 | "token-types": { 1407 | "version": "2.1.1", 1408 | "resolved": "https://registry.npmjs.org/token-types/-/token-types-2.1.1.tgz", 1409 | "integrity": "sha512-wnQcqlreS6VjthyHO3Y/kpK/emflxDBNhlNUPfh7wE39KnuDdOituXomIbyI79vBtF0Ninpkh72mcuRHo+RG3Q==", 1410 | "requires": { 1411 | "@tokenizer/token": "^0.1.1", 1412 | "ieee754": "^1.2.1" 1413 | } 1414 | }, 1415 | "tough-cookie": { 1416 | "version": "2.5.0", 1417 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", 1418 | "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", 1419 | "requires": { 1420 | "psl": "^1.1.28", 1421 | "punycode": "^2.1.1" 1422 | } 1423 | }, 1424 | "tunnel-agent": { 1425 | "version": "0.6.0", 1426 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 1427 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 1428 | "requires": { 1429 | "safe-buffer": "^5.0.1" 1430 | } 1431 | }, 1432 | "tweetnacl": { 1433 | "version": "0.14.5", 1434 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 1435 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" 1436 | }, 1437 | "typedarray-to-buffer": { 1438 | "version": "3.1.5", 1439 | "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", 1440 | "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", 1441 | "requires": { 1442 | "is-typedarray": "^1.0.0" 1443 | } 1444 | }, 1445 | "uri-js": { 1446 | "version": "4.4.1", 1447 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", 1448 | "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", 1449 | "requires": { 1450 | "punycode": "^2.1.0" 1451 | } 1452 | }, 1453 | "utif": { 1454 | "version": "2.0.1", 1455 | "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", 1456 | "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", 1457 | "requires": { 1458 | "pako": "^1.0.5" 1459 | } 1460 | }, 1461 | "util-deprecate": { 1462 | "version": "1.0.2", 1463 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1464 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 1465 | }, 1466 | "uuid": { 1467 | "version": "3.4.0", 1468 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", 1469 | "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" 1470 | }, 1471 | "verror": { 1472 | "version": "1.10.0", 1473 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 1474 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 1475 | "requires": { 1476 | "assert-plus": "^1.0.0", 1477 | "core-util-is": "1.0.2", 1478 | "extsprintf": "^1.2.0" 1479 | } 1480 | }, 1481 | "which": { 1482 | "version": "1.3.1", 1483 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 1484 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 1485 | "requires": { 1486 | "isexe": "^2.0.0" 1487 | } 1488 | }, 1489 | "wrappy": { 1490 | "version": "1.0.2", 1491 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 1492 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 1493 | }, 1494 | "ws": { 1495 | "version": "7.4.4", 1496 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", 1497 | "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==" 1498 | }, 1499 | "xhr": { 1500 | "version": "2.6.0", 1501 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", 1502 | "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", 1503 | "requires": { 1504 | "global": "~4.4.0", 1505 | "is-function": "^1.0.1", 1506 | "parse-headers": "^2.0.0", 1507 | "xtend": "^4.0.0" 1508 | } 1509 | }, 1510 | "xml-parse-from-string": { 1511 | "version": "1.0.1", 1512 | "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", 1513 | "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=" 1514 | }, 1515 | "xml2js": { 1516 | "version": "0.4.23", 1517 | "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", 1518 | "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", 1519 | "requires": { 1520 | "sax": ">=0.6.0", 1521 | "xmlbuilder": "~11.0.0" 1522 | } 1523 | }, 1524 | "xmlbuilder": { 1525 | "version": "11.0.1", 1526 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", 1527 | "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" 1528 | }, 1529 | "xtend": { 1530 | "version": "4.0.2", 1531 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", 1532 | "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" 1533 | } 1534 | } 1535 | } 1536 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "BaseSelfBot", 3 | "version": "0.0.1", 4 | "description": "Ga ada", 5 | "main": "xinz.js", 6 | "directories": { 7 | "lib": "lib" 8 | }, 9 | "scripts": { 10 | "test": "echo \"Error: no test specified\" && exit 1", 11 | "start": "node xinz.js" 12 | }, 13 | "author": "aqulzz", 14 | "dependencies": { 15 | "@adiwajshing/baileys": "^3.4.1", 16 | "axios": "^0.21.1", 17 | "figlet": "^1.5.0", 18 | "fluent-ffmpeg": "^2.1.2", 19 | "moment-timezone": "^0.5.33", 20 | "node-fetch": "^2.6.1", 21 | "request": "^2.88.2" 22 | }, 23 | "repository": { 24 | "type": "git", 25 | "url": "git+https://github.com/zennn08/BaseSelfBot.git" 26 | }, 27 | "bugs": { 28 | "url": "https://github.com/zennn08/BaseSelfBot/issues" 29 | }, 30 | "homepage": "https://github.com/zennn08/BaseSelfBot#readme" 31 | } 32 | -------------------------------------------------------------------------------- /sticker/data.exif: -------------------------------------------------------------------------------- 1 | II*AWm{"sticker-pack-id":"com.snowcorp.stickerly.android.stickercontentprovider b5e7275f-f1de-4137-961f-57becfad34f2","sticker-pack-name":"BaseSelfBot","sticker-pack-publisher":"aqulzz","android-app-store-link":"https://play.google.com/store/apps/details?id=com.stickify.stickermaker","ios-app-store-link":"https://itunes.apple.com/app/sticker-maker-studio/id1443326857"} -------------------------------------------------------------------------------- /whatsapp/connect.js: -------------------------------------------------------------------------------- 1 | /* 2 | HAI NAMAKU AQULZZ 3 | YAH DISINI AKU SEBAGAI PEMULA MAU MENCOBA MEMBUAT BOT KU SENDIRI 4 | YANG PASTINYA BANYAK COPY PASTE 5 | OKE TERIMA KASIH 6 | */ 7 | const { WAConnection, MessageType } = require("@adiwajshing/baileys") 8 | const qrcode = require("qrcode-terminal") 9 | const figlet = require('figlet') 10 | const fs = require('fs') 11 | const { color } = require('../lib/color') 12 | 13 | const xinz = new WAConnection() 14 | exports.xinz = xinz 15 | 16 | exports.connect = async() => { 17 | let authofile = './aqulzz.json' 18 | xinz.version = [2, 2119, 6] 19 | xinz.logger.level = 'warn' 20 | console.log(color(figlet.textSync('Base Self Bot', { 21 | font: 'Standard', 22 | horizontalLayout: 'default', 23 | vertivalLayout: 'default', 24 | width: 80, 25 | whitespaceBreak: false 26 | }), 'cyan')) 27 | console.log(color('[ CREATED BY AQULZZ ]')) 28 | xinz.on('qr', qr => { 29 | qrcode.generate(qr, { small: true }) 30 | console.log(color('[XINZ]', 'yellow'), color('Scan Qr')) 31 | }) 32 | /* 33 | xinz.on('credentials-updated', () => { 34 | fs.writeFileSync(authofile, JSON.stringify(xinz.base64EncodedAuthInfo(), null, '\t')) 35 | console.log(color('Wait....')) 36 | }) 37 | */ 38 | fs.existsSync(authofile) && xinz.loadAuthInfo(authofile) 39 | xinz.on('connecting', () => { 40 | console.log(color('[XINZ]', 'yellow'), color('Connecting...')) 41 | }) 42 | xinz.on('open', () => { 43 | console.log(color('[XINZ]', 'yellow'), color('Connect')) 44 | }) 45 | await xinz.connect({timeoutMs: 30*1000}) 46 | fs.writeFileSync(authofile, JSON.stringify(xinz.base64EncodedAuthInfo(), null, '\t')) 47 | console.log(color(' ====================================================')) 48 | console.log(color('│ + Github : https://github.com/zennn08/BaseSelfBot │')) 49 | console.log(color('│ + Donate : https://trakteer.id/aqulzz │')) 50 | console.log(color(' ====================================================')) 51 | return xinz 52 | } 53 | -------------------------------------------------------------------------------- /whatsapp/mess.json: -------------------------------------------------------------------------------- 1 | { 2 | "wait": "*Tunggu permintaan anda sedang diproses*", 3 | "error": { 4 | "Iv": "Link yang kamu berikan tidak valid", 5 | "api": "Maaf terjadi kesalahan" 6 | }, 7 | "OnlyGrup": "Perintah ini hanya bisa digunakan di grup", 8 | "OnlyPM": "Perintah ini hanya bisa digunakan di private message", 9 | "GrupAdmin": "Perintah ini hanya bisa digunakan oleh Admin Grup", 10 | "BotAdmin": "Bot Harus menjadi admin", 11 | "OnlyOwner": "Perintah ini hanya dapat digunakan oleh owner bot", 12 | "OnlyPrem": "Perintah ini khusus member premium" 13 | } -------------------------------------------------------------------------------- /whatsapp/message.js: -------------------------------------------------------------------------------- 1 | const { 2 | MessageType, 3 | Mimetype, 4 | WAConnection 5 | } = require("@adiwajshing/baileys"); 6 | const fs = require('fs'); 7 | const conn = require('./connect'); 8 | const axios = require('axios'); 9 | const request = require('request'); 10 | const { resolve } = require("path"); 11 | 12 | const xinz = conn.xinz 13 | 14 | exports.sendText = (from, text) => { 15 | xinz.sendMessage(from, text, MessageType.text) 16 | } 17 | exports.sendImage = (from, image, caption, qul) => { 18 | xinz.sendMessage(from, image, MessageType.image, {quoted: qul, caption: caption}) 19 | } 20 | exports.sendVideo = (from, video, caption, qul) => { 21 | xinz.sendMessage(from, video, MessageType.video, {quoted: qul, caption: caption}) 22 | } 23 | exports.sendGif = (from, gif) => { 24 | xinz.sendMessage(from, gif, MessageType.video, {mimetype: "video/gif"}) 25 | } 26 | exports.reply = (from, text, qul) => { 27 | xinz.sendMessage(from, text, MessageType.text, {quoted: qul}) 28 | } 29 | exports.sendSticker = (from, filename, qul) => { 30 | xinz.sendMessage(from, filename, MessageType.sticker, {quoted: qul}) 31 | } 32 | exports.sendKontak = (from, nomor, nama) => { 33 | const vcard = 'BEGIN:VCARD\n' + 'VERSION:3.0\n' + 'FN:' + nama + '\n' + 'ORG:Kontak\n' + 'TEL;type=CELL;type=VOICE;waid=' + nomor + ':+' + nomor + '\n' + 'END:VCARD' 34 | xinz.sendMessage(from, {displayname: nama, vcard: vcard}, MessageType.contact) 35 | } 36 | exports.sendFakeStatus = (from, teks, faketeks) => { 37 | xinz.sendMessage(from, teks, MessageType.text, { quoted: { key: { fromMe: false, participant: `0@s.whatsapp.net`, ...(from ? { remoteJid: "status@broadcast" } : {}) }, message: { "imageMessage": { "mimetype": "image/jpeg", "caption": faketeks, "jpegThumbnail": fs.readFileSync(`./media/aqul.jpeg`)} } } }) 38 | } 39 | exports.FakeStatusForwarded = (from, teks, faketeks) => { 40 | xinz.sendMessage(from, teks, MessageType.text, { quoted: { key: { fromMe: false, participant: `0@s.whatsapp.net`, ...(from ? { remoteJid: "status@broadcast" } : {}) }, message: { "imageMessage": { "mimetype": "image/jpeg", "caption": faketeks, "jpegThumbnail": fs.readFileSync(`./media/aqul.jpeg`)} }, contextInfo: {"forwardingScore": 999, "isForwarded": true} } }) 41 | } 42 | exports.FakeStatusImgForwarded = (from, image, caption, faketeks) => { 43 | xinz.sendMessage(from, image, MessageType.image, { quoted: { key: { fromMe: false, participant: `0@s.whatsapp.net`, ...(from ? { remoteJid: "status@broadcast" } : {}) }, message: { "imageMessage": { "mimetype": "image/jpeg", "caption": faketeks, "jpegThumbnail": fs.readFileSync(`./media/aqul.jpeg`)} } }, caption: caption, contextInfo: {"forwardingScore": 999, "isForwarded": true} }) 44 | } 45 | exports.sendFakeStatusWithImg = (from, image, caption, faketeks) => { 46 | xinz.sendMessage(from, image, MessageType.image, { quoted: { key: { fromMe: false, participant: `0@s.whatsapp.net`, ...(from ? { remoteJid: "status@broadcast" } : {}) }, message: { "imageMessage": { "mimetype": "image/jpeg", "caption": faketeks, "jpegThumbnail": fs.readFileSync(`./media/aqul.jpeg`)} } }, caption: caption }) 47 | } 48 | exports.sendMention = (from, text, orangnya, qul) => { 49 | xinz.sendMessage(from, text, MessageType.extendedText, {contextInfo: {mentionedJid: orangnya}, quoted: qul}) 50 | } 51 | exports.hideTag = async function(from, text){ 52 | let anu = await xinz.groupMetadata(from) 53 | let members = anu.participants 54 | let ane = [] 55 | for (let i of members){ 56 | ane.push(i.jid) 57 | } 58 | xinz.sendMessage(from, text, MessageType.text, {contextInfo: {"mentionedJid": ane}}) 59 | } 60 | exports.hideTagImg = async function(from, image){ 61 | let anu = await xinz.groupMetadata(from) 62 | let members = anu.participants 63 | let ane = [] 64 | for (let i of members){ 65 | ane.push(i.jid) 66 | } 67 | xinz.sendMessage(from, image, MessageType.image, {contextInfo: {"mentionedJid": ane}}) 68 | } 69 | exports.hideTagSticker = async function(from, sticker){ 70 | let anu = await xinz.groupMetadata(from) 71 | let members = anu.participants 72 | let ane = [] 73 | for (let i of members){ 74 | ane.push(i.jid) 75 | } 76 | xinz.sendMessage(from, sticker, MessageType.sticker, {contextInfo: {"mentionedJid": ane}}) 77 | } 78 | exports.hideTagKontak = async function(from, nomor, nama){ 79 | let vcard = 'BEGIN:VCARD\n' + 'VERSION:3.0\n' + 'FN:' + nama + '\n' + 'ORG:Kontak\n' + 'TEL;type=CELL;type=VOICE;waid=' + nomor + ':+' + nomor + '\n' + 'END:VCARD' 80 | let anu = await xinz.groupMetadata(from) 81 | let members = anu.participants 82 | let ane = [] 83 | for (let i of members){ 84 | ane.push(i.jid) 85 | } 86 | xinz.sendMessage(from, {displayname: nama, vcard: vcard}, MessageType.contact, {contextInfo: {"mentionedJid": ane}}) 87 | } 88 | exports.getRandom = (ext) => { 89 | return `${Math.floor(Math.random() * 10000)}${ext}` 90 | } 91 | exports.sleep = async (ms) => { 92 | return new Promise(resolve => setTimeout(resolve, ms)); 93 | } 94 | exports.runtime = function(seconds) { 95 | seconds = Number(seconds); 96 | var d = Math.floor(seconds / (3600 * 24)); 97 | var h = Math.floor(seconds % (3600 * 24) / 3600); 98 | var m = Math.floor(seconds % 3600 / 60); 99 | var s = Math.floor(seconds % 60); 100 | var dDisplay = d > 0 ? d + (d == 1 ? " day, " : " days, ") : ""; 101 | var hDisplay = h > 0 ? h + (h == 1 ? " hour, " : " hours, ") : ""; 102 | var mDisplay = m > 0 ? m + (m == 1 ? " minute, " : " minutes, ") : ""; 103 | var sDisplay = s > 0 ? s + (s == 1 ? " second" : " seconds") : ""; 104 | return dDisplay + hDisplay + mDisplay + sDisplay; 105 | } 106 | exports.FakeTokoForwarded = (from, teks, fake) => { 107 | anu = { 108 | key: { 109 | fromMe: false, 110 | participant: `0@s.whatsapp.net`, ...(from ? { remoteJid: "status@broadcast" } : {}) 111 | }, 112 | message: { 113 | "productMessage": { 114 | "product": { 115 | "productImage":{ 116 | "mimetype": "image/jpeg", 117 | "jpegThumbnail": fs.readFileSync(`./media/aqul.jpeg`) 118 | }, 119 | "title": fake, 120 | "description": "Self Aqulzz nih Boss", 121 | "currencyCode": "IDR", 122 | "priceAmount1000": "50000000", 123 | "retailerId": "Self Bot", 124 | "productImageCount": 1 125 | }, 126 | "businessOwnerJid": `0@s.whatsapp.net` 127 | } 128 | } 129 | } 130 | xinz.sendMessage(from, teks, MessageType.text, {quoted: anu, contextInfo: {"forwardingScore": 999, "isForwarded": true}}) 131 | } 132 | exports.sendFakeToko = (from, teks, fake) => { 133 | anu = { 134 | key: { 135 | fromMe: false, 136 | participant: `0@s.whatsapp.net`, ...(from ? { remoteJid: "status@broadcast" } : {}) 137 | }, 138 | message: { 139 | "productMessage": { 140 | "product": { 141 | "productImage":{ 142 | "mimetype": "image/jpeg", 143 | "jpegThumbnail": fs.readFileSync(`./media/aqul.jpeg`) 144 | }, 145 | "title": fake, 146 | "description": "Self Aqulzz nih Boss", 147 | "currencyCode": "IDR", 148 | "priceAmount1000": "50000000", 149 | "retailerId": "Self Bot", 150 | "productImageCount": 1 151 | }, 152 | "businessOwnerJid": `0@s.whatsapp.net` 153 | } 154 | } 155 | } 156 | xinz.sendMessage(from, teks, MessageType.text, {quoted: anu}) 157 | } 158 | exports.sendFakeThumb = async function(from, url, title, desc, comnya, fotonya){ 159 | var anoim = { 160 | detectLinks: false 161 | } 162 | var qul = await xinz.generateLinkPreview(url) 163 | qul.title = title 164 | qul.description = desc 165 | qul.jpegThumbnail = fotonya ? fotonya : fs.readFileSync(`./media/aqul.jpeg`) 166 | qul.canonicaUrl = comnya 167 | xinz.sendMessage(from, qul, MessageType.extendedText, anoim) 168 | } 169 | exports.sendFakeImg = function(from, imageasli, caption, thumbnail, qul){ 170 | let ai = { 171 | thumbnail: thumbnail ? thumbnail : fs.readFileSync(`./media/aqul.jpeg`), 172 | quoted: qul ? qul : '' 173 | } 174 | xinz.sendMessage(from, imageasli, MessageType.image, ai) 175 | } 176 | exports.sendMediaURL = async(to, url, text="", qul, mids=[]) =>{ 177 | if(mids.length > 0){ 178 | text = normalizeMention(to, text, mids) 179 | } 180 | const fn = Date.now() / 10000; 181 | const filename = fn.toString() 182 | let mime = "" 183 | var download = function (uri, filename, callback) { 184 | request.head(uri, function (err, res, body) { 185 | mime = res.headers['content-type'] 186 | request(uri).pipe(fs.createWriteStream(filename)).on('close', callback); 187 | }); 188 | }; 189 | download(url, filename, async function () { 190 | console.log('done'); 191 | let media = fs.readFileSync(filename) 192 | let type = mime.split("/")[0]+"Message" 193 | if(mime === "image/gif"){ 194 | type = MessageType.video 195 | mime = Mimetype.gif 196 | } 197 | if(mime.split("/")[0] === "audio"){ 198 | mime = Mimetype.mp4Audio 199 | } 200 | xinz.sendMessage(to, media, type, { quoted: qul, mimetype: mime, caption: text,contextInfo: {"mentionedJid": mids}}) 201 | 202 | fs.unlinkSync(filename) 203 | }); 204 | } 205 | exports.getGroupAdmins = function(participants){ 206 | admins = [] 207 | for (let i of participants) { 208 | i.isAdmin ? admins.push(i.jid) : '' 209 | } 210 | return admins 211 | } 212 | exports.getBuffer = async (url, options) => { 213 | try { 214 | options ? options : {} 215 | const res = await axios({ 216 | method: "get", 217 | url, 218 | headers: { 219 | 'DNT': 1, 220 | 'Upgrade-Insecure-Request': 1 221 | }, 222 | ...options, 223 | responseType: 'arraybuffer' 224 | }) 225 | return res.data 226 | } catch (e) { 227 | console.log(`Error : ${e}`) 228 | } 229 | } 230 | exports.setName = async function(query){ 231 | const response = await xinz.updateProfileName(query) 232 | return response 233 | } 234 | exports.setBio = async function(query){ 235 | const response = await xinz.setStatus(query) 236 | return response 237 | } 238 | exports.kick = function(from, orangnya){ 239 | for (let i of orangnya){ 240 | xinz.groupRemove(from, [i]) 241 | } 242 | } 243 | exports.add = function(from, orangnya){ 244 | xinz.groupAdd(from, orangnya) 245 | } 246 | exports.promote = function(from, orangnya){ 247 | xinz.groupMakeAdmin(from, orangnya) 248 | } 249 | exports.demote = function(from, orangnya){ 250 | xinz.groupDemoteAdmin(from, orangnya) 251 | } 252 | exports.upTextStatus = function(text){ 253 | xinz.sendMessage('status@broadcast', text, MessageType.extendedText) 254 | } 255 | exports.upImgStatus = function(image, text){ 256 | xinz.sendMessage('status@broadcast', image, MessageType.image, {caption: text}) 257 | } 258 | exports.upVidStatus = function(video, text){ 259 | xinz.sendMessage('status@broadcast', video, MessageType.video, {caption: text}) 260 | } 261 | exports.createGroup = function(nama, member){ 262 | let a 263 | xinz.groupCreate(nama, member) 264 | .then((res) => a = res ) 265 | .catch((err) => a = err) 266 | return a 267 | } 268 | exports.getGroup = async function(totalchat){ 269 | let grup = [] 270 | let a = [] 271 | let b = [] 272 | for (c of totalchat){ 273 | a.push(c.jid) 274 | } 275 | for (d of a){ 276 | if (d && d.includes('g.us')){ 277 | b.push(d) 278 | } 279 | } 280 | for (e of b){ 281 | let ingfo = await xinz.groupMetadata(e) 282 | grup.push(ingfo) 283 | } 284 | return grup 285 | } -------------------------------------------------------------------------------- /xinz.js: -------------------------------------------------------------------------------- 1 | /* 2 | BY AQULZZ 3 | */ 4 | const 5 | { 6 | WAConnection, 7 | MessageType, 8 | Presence, 9 | MessageOptions, 10 | Mimetype, 11 | WALocationMessage, 12 | WA_MESSAGE_STUB_TYPES, 13 | ReconnectMode, 14 | ProxyAgent, 15 | GroupSettingChange, 16 | waChatKey, 17 | mentionedJid, 18 | processTime, 19 | } = require("@adiwajshing/baileys"); 20 | const moment = require("moment-timezone"); 21 | const fs = require("fs"); 22 | const { exec } = require('child_process'); 23 | const aqul = require('./whatsapp/message.js'); 24 | const speed = require('performance-now'); 25 | const ffmpeg = require('fluent-ffmpeg'); 26 | const conn = require('./whatsapp/connect'); 27 | const { color } = require('./lib/color'); 28 | const mess = JSON.parse(fs.readFileSync('./whatsapp/mess.json')); 29 | const axios = require('axios'); 30 | const Exif = require('./lib/exif'); 31 | const { uptotele, uptonaufal, uploadFile } = require('./lib/uploadimage') 32 | const exif = new Exif(); 33 | 34 | conn.connect() 35 | const xinz = conn.xinz 36 | 37 | fake = "© 𝐗𝐢𝐧𝐳-𝐓𝐞𝐚𝐦" 38 | fakeimage = fs.readFileSync("./media/aqul.jpeg") 39 | prefix = 'z' 40 | blocked = [] 41 | baterai = { 42 | baterai: 0, 43 | cas: false 44 | } 45 | public = false 46 | 47 | xinz.on('CB:Blocklist', json => { 48 | if (blocked.length > 2) return 49 | for (let i of json[1].blocklist) { 50 | blocked.push(i.replace('c.us','s.whatsapp.net')) 51 | } 52 | }) 53 | xinz.on('CB:action,,battery', json => { 54 | const a = json[2][0][1].value 55 | const b = json[2][0][1].live 56 | baterai.baterai = a 57 | baterai.cas = b 58 | }) 59 | xinz.on('message-update', async (msg) => { // THX TO BANG HANIF 60 | require('./antidelete/antidelete.js')(xinz, msg) 61 | }) 62 | xinz.on('message-new', async(qul) => { 63 | try { 64 | if (!qul.message) return 65 | if (qul.key && qul.key.remoteJid == 'status@broadcast') return 66 | qul.message = (Object.keys(qul.message)[0] === 'ephemeralMessage') ? qul.message.ephemeralMessage.message : qul.message 67 | let infoMSG = JSON.parse(fs.readFileSync(`./antidelete/msg.data.json`)) 68 | infoMSG.push(JSON.parse(JSON.stringify(qul))) 69 | fs.writeFileSync(`./antidelete/msg.data.json`, JSON.stringify(infoMSG, null, 2)) 70 | const urutan_pesan = infoMSG.length 71 | if (urutan_pesan === 5000) { 72 | infoMSG.splice(0, 4300) 73 | fs.writeFileSync(`./antidelete/msg.data.json`, JSON.stringify(infoMSG, null, 2)) 74 | } 75 | global.prefix 76 | const content = JSON.stringify(qul.message) 77 | const from = qul.key.remoteJid 78 | const type = Object.keys(qul.message)[0] 79 | const { text, extendedText, contact, location, liveLocation, image, video, sticker, document, audio, product } = MessageType 80 | const time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss') 81 | body = (type === 'conversation' && qul.message.conversation.startsWith(prefix)) ? qul.message.conversation : (type == 'imageMessage') && qul.message.imageMessage.caption.startsWith(prefix) ? qul.message.imageMessage.caption : (type == 'videoMessage') && qul.message.videoMessage.caption.startsWith(prefix) ? qul.message.videoMessage.caption : (type == 'extendedTextMessage') && qul.message.extendedTextMessage.text.startsWith(prefix) ? qul.message.extendedTextMessage.text : '' 82 | chats = (type === 'conversation') ? qul.message.conversation : (type === 'extendedTextMessage') ? qul.message.extendedTextMessage.text : '' 83 | const command = body.slice(1).trim().split(/ +/).shift().toLowerCase() 84 | const args = body.trim().split(/ +/).slice(1) 85 | const isCmd = body.startsWith(prefix) 86 | const q = args.join(" ") 87 | const arg = chats.slice(command.length + 2, chats.length) 88 | 89 | const botNumber = xinz.user.jid 90 | const isGroup = from.endsWith('@g.us') 91 | const sender = qul.key.fromMe ? xinz.user.jid : isGroup ? qul.participant : qul.key.remoteJid 92 | const totalchat = await xinz.chats.all() 93 | const groupMetadata = isGroup ? await xinz.groupMetadata(from) : '' 94 | const groupName = isGroup ? groupMetadata.subject : '' 95 | const groupId = isGroup ? groupMetadata.jid : '' 96 | const groupMembers = isGroup ? groupMetadata.participants : '' 97 | const groupDesc = isGroup ? groupMetadata.desc : '' 98 | const groupAdmins = isGroup ? aqul.getGroupAdmins(groupMembers) : '' 99 | const groupOwner = isGroup ? groupMetadata.owner : '' 100 | const itsMe = qul.key.fromMe ? true : false 101 | const isUrl = (url) => { 102 | 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')) 103 | } 104 | 105 | const isMedia = (type === 'imageMessage' || type === 'videoMessage') 106 | const isQuotedImage = type === 'extendedTextMessage' && content.includes('imageMessage') 107 | const isQuotedVideo = type === 'extendedTextMessage' && content.includes('videoMessage') 108 | const isQuotedAudio = type === 'extendedTextMessage' && content.includes('audioMessage') 109 | const isQuotedSticker = type === 'extendedTextMessage' && content.includes('stickerMessage') 110 | const isQuotedDocument = type === 'extendedTextMessage' && content.includes('documentMessage') 111 | if (itsMe){ 112 | if (chats.toLowerCase() === `${prefix}self`){ 113 | public = false 114 | aqul.sendFakeStatus(from, `Sukses`, `Status: SELF`) 115 | } 116 | if (chats.toLowerCase() === 'status'){ 117 | aqul.sendFakeStatus(from, `STATUS: ${public ? 'PUBLIC' : 'SELF'}`) 118 | }/* 119 | if (chats.startsWith('>')){ 120 | console.log(color('[EVAL]'), color(moment(qul.messageTimestamp * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`Eval brooo`)) 121 | return aqul.reply(from, JSON.stringify(eval(chats.slice(2)), null, 2), qul) 122 | }*/ 123 | } 124 | if (!public){ 125 | if (!qul.key.fromMe) return 126 | } 127 | if (isCmd && !isGroup) {console.log(color('[CMD]'), color(moment(qul.messageTimestamp * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`))} 128 | if (isCmd && isGroup) {console.log(color('[CMD]'), color(moment(qul.messageTimestamp * 1000).format('DD/MM/YY HH:mm:ss'), 'yellow'), color(`${command} [${args.length}]`), 'from', color(xinz.user.name), 'in', color(groupName))} 129 | switch (command) { 130 | case 'menu': case 'help': 131 | textnya = ` 𝐗𝐈𝐍𝐙-𝐒𝐄𝐋𝐅𝐁𝐎𝐓 132 | 133 | \`\`\`▢ ${prefix}sticker\`\`\` 134 | \`\`\`▢ ${prefix}swm nama | author\`\`\` 135 | \`\`\`▢ ${prefix}takestick namma | author\`\`\` 136 | \`\`\`▢ ${prefix}colong \`\`\` 137 | \`\`\`▢ ${prefix}eval \`\`\` 138 | \`\`\`▢ ${prefix}self\`\`\` 139 | \`\`\`▢ ${prefix}public\`\`\` 140 | \`\`\`▢ ${prefix}hidetag\`\`\` 141 | \`\`\`▢ ${prefix}runtime\`\`\` 142 | \`\`\`▢ ${prefix}speed\`\`\` 143 | \`\`\`▢ ${prefix}mystat\`\`\` 144 | \`\`\`▢ ${prefix}kontak\`\`\` 145 | \`\`\`▢ ${prefix}hidetag\`\`\` 146 | \`\`\`▢ ${prefix}term\`\`\` 147 | \`\`\`▢ ${prefix}setreply\`\`\` 148 | \`\`\`▢ ${prefix}setprefix\`\`\` 149 | \`\`\`▢ ${prefix}setname\`\`\` 150 | \`\`\`▢ ${prefix}setpp\`\`\` 151 | \`\`\`▢ ${prefix}setbio\`\`\` 152 | \`\`\`▢ ${prefix}fdeface\`\`\` 153 | \`\`\`▢ ${prefix}fakethumbnail\`\`\` 154 | \`\`\`▢ ${prefix}setthumb\`\`\` 155 | \`\`\`▢ ${prefix}getpic\`\`\` 156 | \`\`\`▢ ${prefix}stickertag\`\`\` 157 | \`\`\`▢ ${prefix}imgtag\`\`\` 158 | \`\`\`▢ ${prefix}kontaktag\`\`\` 159 | \`\`\`▢ ${prefix}doctag\`\`\` 160 | \`\`\`▢ ${prefix}giftag\`\`\` 161 | \`\`\`▢ ${prefix}tahta teks\`\`\` 162 | \`\`\`▢ ${prefix}pubg teks1|teks2\`\`\` 163 | \`\`\`▢ ${prefix}promote\`\`\` 164 | \`\`\`▢ ${prefix}demote\`\`\` 165 | \`\`\`▢ ${prefix}kick\`\`\` 166 | \`\`\`▢ ${prefix}add\`\`\` 167 | \`\`\`▢ ${prefix}creategrup nama|tag\`\`\` 168 | \`\`\`▢ ${prefix}getgrup\`\`\` 169 | \`\`\`▢ ${prefix}upstatus text\`\`\` 170 | \`\`\`▢ ${prefix}tovideo\`\`\` 171 | \`\`\`▢ ${prefix}togif\`\`\` 172 | \`\`\`▢ ${prefix}spam teks|jumlah spam\`\`\` 173 | \`\`\`▢ ${prefix}imgtourl\`\`\` 174 | \`\`\`▢ ${prefix}ephemeral \`\`\` 175 | \`\`\`▢ ${prefix}antidelete\`\`\` 176 | \`\`\`▢ ${prefix}tourl \`\`\` 177 | 178 | *© Xinz-Team*` 179 | aqul.sendFakeStatusWithImg(from, fakeimage, textnya, fake) 180 | break 181 | case 'test': 182 | aqul.sendText(from, 'oke') 183 | break 184 | case 'public': 185 | public = true 186 | aqul.sendFakeStatus(from, `Status: PUBLIC`, fake) 187 | break 188 | case 'exif': 189 | if (!itsMe) return 190 | if (args.length < 1) return aqul.reply(from, `Penggunaan ${prefix}exif nama|author`, qul) 191 | if (!arg.split('|')) return aqul.reply(from, `Penggunaan ${prefix}exif nama|author`, qul) 192 | exif.create(arg.split('|')[0], arg.split('|')[1]) 193 | aqul.reply(from, 'sukses', qul) 194 | break 195 | case 'sticker': 196 | case 'stiker': 197 | case 's': 198 | if (isMedia && !qul.message.videoMessage || isQuotedImage) { 199 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 200 | const media = await xinz.downloadAndSaveMediaMessage(encmedia, `./sticker/${sender}`) 201 | await ffmpeg(`${media}`) 202 | .input(media) 203 | .on('start', function (cmd) { 204 | console.log(`Started : ${cmd}`) 205 | }) 206 | .on('error', function (err) { 207 | console.log(`Error : ${err}`) 208 | fs.unlinkSync(media) 209 | aqul.reply(from, mess.error.api, qul) 210 | }) 211 | .on('end', function () { 212 | console.log('Finish') 213 | exec(`webpmux -set exif ./sticker/data.exif ./sticker/${sender}.webp -o ./sticker/${sender}.webp`, async (error) => { 214 | if (error) return aqul.reply(from, mess.error.api, qul) 215 | aqul.sendSticker(from, fs.readFileSync(`./sticker/${sender}.webp`), qul) 216 | fs.unlinkSync(media) 217 | fs.unlinkSync(`./sticker/${sender}.webp`) 218 | }) 219 | }) 220 | .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`]) 221 | .toFormat('webp') 222 | .save(`./sticker/${sender}.webp`) 223 | } else if ((isMedia && qul.message.videoMessage.fileLength < 10000000 || isQuotedVideo && qul.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage.fileLength < 10000000)) { 224 | const encmedia = isQuotedVideo ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 225 | const media = await xinz.downloadAndSaveMediaMessage(encmedia, `./sticker/${sender}`) 226 | aqul.reply(from, mess.wait, qul) 227 | await ffmpeg(`${media}`) 228 | .inputFormat(media.split('.')[4]) 229 | .on('start', function (cmd) { 230 | console.log(`Started : ${cmd}`) 231 | }) 232 | .on('error', function (err) { 233 | console.log(`Error : ${err}`) 234 | fs.unlinkSync(media) 235 | tipe = media.endsWith('.mp4') ? 'video' : 'gif' 236 | aqul.reply(from, mess.error.api, qul) 237 | }) 238 | .on('end', function () { 239 | console.log('Finish') 240 | exec(`webpmux -set exif ./sticker/data.exif ./sticker/${sender}.webp -o ./sticker/${sender}.webp`, async (error) => { 241 | if (error) return aqul.reply(from, mess.error.api, qul) 242 | aqul.sendSticker(from, fs.readFileSync(`./sticker/${sender}.webp`), qul) 243 | fs.unlinkSync(media) 244 | fs.unlinkSync(`./sticker/${sender}.webp`) 245 | }) 246 | }) 247 | .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`]) 248 | .toFormat('webp') 249 | .save(`./sticker/${sender}.webp`) 250 | } else { 251 | aqul.reply(from, `Kirim gambar/video dengan caption ${prefix}sticker atau tag gambar/video yang sudah dikirim\nNote : Durasi video maximal 10 detik`, qul) 252 | } 253 | break 254 | case 'swm': 255 | case 'stickerwm': 256 | if (isMedia && !qul.message.videoMessage || isQuotedImage) { 257 | if (!arg.includes('|')) return aqul.reply(from, `Kirim gambar atau reply gambar dengan caption *${prefix}stickerwm nama|author*`, qul) 258 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 259 | const media = await xinz.downloadAndSaveMediaMessage(encmedia, `./sticker/${sender}`) 260 | const packname1 = arg.split('|')[0] 261 | const author1 = arg.split('|')[1] 262 | exif.create(packname1, author1, `stickwm_${sender}`) 263 | await ffmpeg(`${media}`) 264 | .input(media) 265 | .on('start', function (cmd) { 266 | console.log(`Started : ${cmd}`) 267 | }) 268 | .on('error', function (err) { 269 | console.log(`Error : ${err}`) 270 | fs.unlinkSync(media) 271 | aqul.reply(from, mess.error.api, qul) 272 | }) 273 | .on('end', function () { 274 | console.log('Finish') 275 | exec(`webpmux -set exif ./sticker/stickwm_${sender}.exif ./sticker/${sender}.webp -o ./sticker/${sender}.webp`, async (error) => { 276 | if (error) return aqul.reply(from, mess.error.api, qul) 277 | aqul.sendSticker(from, fs.readFileSync(`./sticker/${sender}.webp`), qul) 278 | fs.unlinkSync(media) 279 | fs.unlinkSync(`./sticker/${sender}.webp`) 280 | fs.unlinkSync(`./sticker/stickwm_${sender}.exif`) 281 | }) 282 | }) 283 | .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`]) 284 | .toFormat('webp') 285 | .save(`./sticker/${sender}.webp`) 286 | } else if ((isMedia && qul.message.videoMessage.fileLength < 10000000 || isQuotedVideo && qul.message.extendedTextMessage.contextInfo.quotedMessage.videoMessage.fileLength < 10000000)) { 287 | if (!arg.includes('|')) return aqul.reply(from, `Kirim gambar atau reply gambar dengan caption *${prefix}stickerwm nama|author*`, qul) 288 | const encmedia = isQuotedVideo ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 289 | const media = await xinz.downloadAndSaveMediaMessage(encmedia, `./sticker/${sender}`) 290 | const packname1 = arg.split('|')[0] 291 | const author1 = arg.split('|')[1] 292 | exif.create(packname1, author1, `stickwm_${sender}`) 293 | aqul.reply(from, mess.wait, qul) 294 | await ffmpeg(`${media}`) 295 | .inputFormat(media.split('.')[4]) 296 | .on('start', function (cmd) { 297 | console.log(`Started : ${cmd}`) 298 | }) 299 | .on('error', function (err) { 300 | console.log(`Error : ${err}`) 301 | fs.unlinkSync(media) 302 | tipe = media.endsWith('.mp4') ? 'video' : 'gif' 303 | aqul.reply(from, mess.error.api, qul) 304 | }) 305 | .on('end', function () { 306 | console.log('Finish') 307 | exec(`webpmux -set exif ./sticker/stickwm_${sender}.exif ./sticker/${sender}.webp -o ./sticker/${sender}.webp`, async (error) => { 308 | if (error) return aqul.reply(from, mess.error.api, qul) 309 | aqul.sendSticker(from, fs.readFileSync(`./sticker/${sender}.webp`), qul) 310 | fs.unlinkSync(media) 311 | fs.unlinkSync(`./sticker/${sender}.webp`) 312 | fs.unlinkSync(`./sticker/stickwm_${sender}.exif`) 313 | }) 314 | }) 315 | .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`]) 316 | .toFormat('webp') 317 | .save(`./sticker/${sender}.webp`) 318 | } else { 319 | aqul.reply(from, `Kirim gambar/video dengan caption ${prefix}stickerwm nama|author atau tag gambar/video yang sudah dikirim\nNote : Durasi video maximal 10 detik`, id) 320 | } 321 | break 322 | case 'takestick': 323 | if (!isQuotedSticker) return aqul.reply(from, `Reply sticker dengan caption *${prefix}takestick nama|author*`, qul) 324 | const pembawm = body.slice(11) 325 | if (!pembawm.includes('|')) return aqul.reply(from, `Reply sticker dengan caption *${prefix}takestick nama|author*`, qul) 326 | const encmedia = JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo 327 | const media = await xinz.downloadAndSaveMediaMessage(encmedia, `./sticker/${sender}`) 328 | const packname = pembawm.split('|')[0] 329 | const author = pembawm.split('|')[1] 330 | exif.create(packname, author, `takestick_${sender}`) 331 | exec(`webpmux -set exif ./sticker/takestick_${sender}.exif ./sticker/${sender}.webp -o ./sticker/${sender}.webp`, async (error) => { 332 | if (error) return aqul.reply(from, mess.error.api, qul) 333 | aqul.sendSticker(from, fs.readFileSync(`./sticker/${sender}.webp`), qul) 334 | fs.unlinkSync(media) 335 | fs.unlinkSync(`./sticker/takestick_${sender}.exif`) 336 | }) 337 | break 338 | case 'ephemeral'://DhyZx:v 339 | if (!q) return aqul.reply(from, 'textnya apa brohh', qul) 340 | xinz.sendMessage(from, `${q}`, 341 | MessageType.text, { 342 | sendEphemeral: true, 343 | thumbnail: fs.readFileSync('./media/aqul.jpeg') 344 | }) 345 | break 346 | case 'colong': 347 | if (!isQuotedSticker) return aqul.reply(from, `Reply sticker dengan caption *${prefix}colong*`, qul) 348 | const encmediia = JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo 349 | const meidia = await xinz.downloadAndSaveMediaMessage(encmediia, `./sticker/${sender}`) 350 | exec(`webpmux -set exif ./sticker/data.exif ./sticker/${sender}.webp -o ./sticker/${sender}.webp`, async (error) => { 351 | if (error) return aqul.reply(from, mess.error.api, qul) 352 | aqul.sendSticker(from, fs.readFileSync(`./sticker/${sender}.webp`), qul) 353 | fs.unlinkSync(meidia) 354 | }) 355 | break 356 | case 'hidetag': 357 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}hidetag teks`, qul) 358 | aqul.hideTag(from, arg) 359 | break 360 | case 'runtime': 361 | run = process.uptime() 362 | let text = aqul.runtime(run) 363 | aqul.sendFakeStatus(from, text, `Runtime bro`) 364 | break 365 | case 'speed': case 'ping': 366 | let timestamp = speed(); 367 | let latensi = speed() - timestamp 368 | aqul.sendFakeStatus(from, `Speed: ${latensi.toFixed(4)}second`, fake) 369 | break 370 | case 'mystat': case 'mystatus': 371 | let i = [] 372 | let giid = [] 373 | for (mem of totalchat){ 374 | i.push(mem.jid) 375 | } 376 | for (id of i){ 377 | if (id && id.includes('g.us')){ 378 | giid.push(id) 379 | } 380 | } 381 | let timestampi = speed(); 382 | let latensii = speed() - timestampi 383 | const { wa_version, mcc, mnc, os_version, device_manufacturer, device_model } = xinz.user.phone 384 | anu = process.uptime() 385 | teskny = `*V. Whatsapp :* ${wa_version} 386 | *Baterai :* ${baterai.baterai}% 387 | *Charge :* ${baterai.cas === 'true' ? 'Ya' : 'Tidak'} 388 | *RAM :* ${(process.memoryUsage().heapUsed / 1024 / 1024).toFixed(2)}MB / ${Math.round(require('os').totalmem / 1024 / 1024)}MB 389 | *MCC :* ${mcc} 390 | *MNC :* ${mnc} 391 | *Versi OS :* ${os_version} 392 | *Merk HP :* ${device_manufacturer} 393 | *Versi HP :* ${device_model} 394 | 395 | *Group Chat :* ${giid.length} 396 | *Personal Chat :* ${totalchat.length - giid.length} 397 | *Total Chat :* ${totalchat.length} 398 | *Speed :* ${latensii.toFixed(4)} Second 399 | *Runtime :* ${aqul.runtime(anu)}` 400 | aqul.sendFakeStatus(from, teskny, fake) 401 | break 402 | case 'kontak': 403 | argz = arg.split('|') 404 | if (!argz) return aqul.reply(from, `Penggunaan ${prefix}kontak @tag atau nomor|nama`, qul) 405 | if (qul.message.extendedTextMessage != undefined){ 406 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 407 | aqul.sendKontak(from, mentioned[0].split('@')[0], argz[1]) 408 | } else { 409 | aqul.sendKontak(from, argz[0], argz[1]) 410 | } 411 | break 412 | case 'term': 413 | if (!itsMe) return 414 | if (!arg) return 415 | exec(arg, (err, stdout) => { 416 | if (err) return aqul.sendFakeStatus(from, err, fake) 417 | if (stdout) aqul.sendFakeStatus(from, stdout, fake) 418 | }) 419 | break 420 | case 'setreply': 421 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}setreply teks`, qul) 422 | fake = arg 423 | aqul.sendFakeStatus(from, `Sukses`, fake) 424 | break 425 | case 'setprefix': 426 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}setprefix prefix`, qul) 427 | prefix = arg 428 | aqul.sendFakeStatus(from, `Prefix berhasil diubah menjadi ${prefix}`, fake) 429 | break 430 | case 'setname': 431 | if (!itsMe) return 432 | if (!arg) return aqul.reply(from, 'masukkan nama', qul) 433 | aqul.setName(arg) 434 | .then((res) => aqul.sendFakeStatus(from, JSON.stringify(res), fake)) 435 | .catch((err) => aqul.sendFakeStatus(from, JSON.stringify(err), fake)) 436 | break 437 | case 'setbio': 438 | if (!itsMe) return 439 | if (!arg) return aqul.reply(from, 'masukkan bio', qul) 440 | aqul.setBio(arg) 441 | .then((res) => aqul.sendFakeStatus(from, JSON.stringify(res), fake)) 442 | .catch((err) => aqul.sendFakeStatus(from, JSON.stringify(err), fake)) 443 | break 444 | case 'fdeface': case 'hack': 445 | if (!arg) return aqul.reply(from, `Penggunaaan ${prefix}fdeface url|title|desc|url\n\nContoh : ${prefix}fdeface https://google.com|Self Bot|By aqulzz|https://aqul.com`, qul) 446 | argz = arg.split("|") 447 | if (!argz) return aqul.reply(from, `Penggunaaan ${prefix}fdeface url|title|desc|url\n\nContoh : ${prefix}fdeface https://google.com|Self Bot|By aqulzz|https://aqul.com`, qul) 448 | if ((isMedia && !qul.message.videoMessage || isQuotedImage)) { 449 | let encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo : qul 450 | let media = await xinz.downloadMediaMessage(encmedia) 451 | aqul.sendFakeThumb(from, argz[0], argz[1], argz[2], argz[3], media) 452 | } else { 453 | aqul.sendFakeThumb(from, argz[0], argz[1], argz[2], argz[3]) 454 | } 455 | break 456 | case 'fakethumbnail': case 'fthumbnail': case 'fakethumb': 457 | if ((isMedia && !qul.message.videoMessage || isQuotedImage)) { 458 | let encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo : qul 459 | let media = await xinz.downloadMediaMessage(encmedia) 460 | aqul.sendFakeImg(from, media, arg, fakeimage, qul) 461 | } else { 462 | aqul.reply(from, `Kirim gambar atau reply dengan caption ${prefix}fakethumb caption`, qul) 463 | } 464 | break 465 | case 'setthumb': 466 | boij = JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo 467 | delb = await xinz.downloadMediaMessage(boij) 468 | fs.writeFileSync(`./media/aqul.jpeg`, delb) 469 | fakeimage = fs.readFileSync(`./media/aqul.jpeg`) 470 | aqul.sendFakeStatus(from, `Sukses`, fake) 471 | break 472 | case 'getpic': 473 | if (qul.message.extendedTextMessage != undefined){ 474 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 475 | try { 476 | pic = await xinz.getProfilePicture(mentioned[0]) 477 | } catch { 478 | pic = 'https://i.ibb.co/Tq7d7TZ/age-hananta-495-photo.png' 479 | } 480 | thumb = await aqul.getBuffer(pic) 481 | aqul.sendImage(from, thumb) 482 | } 483 | break 484 | case 'imgtag': 485 | if ((isMedia && !qul.message.videoMessage || isQuotedImage)) { 486 | let encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo : qul 487 | let media = await xinz.downloadMediaMessage(encmedia) 488 | aqul.hideTagImg(from, media) 489 | } else { 490 | aqul.reply(from, `Kirim gambar atau reply dengan caption ${prefix}imgtag caption`, qul) 491 | } 492 | break 493 | case 'sticktag': case 'stickertag': 494 | if (!isQuotedSticker) return aqul.reply(from, `Reply sticker dengan caption *${prefix}stickertag*`, qul) 495 | let encmediai = JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo 496 | let mediai = await xinz.downloadMediaMessage(encmediai) 497 | aqul.hideTagSticker(from, mediai) 498 | break 499 | case 'kontaktag': 500 | argz = arg.split('|') 501 | if (!argz) return aqul.reply(from, `Penggunaan ${prefix}kontak @tag atau nomor|nama`, qul) 502 | if (qul.message.extendedTextMessage != undefined){ 503 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 504 | aqul.hideTagKontak(from, mentioned[0].split('@')[0], argz[1]) 505 | } else { 506 | aqul.hideTagKontak(from, argz[0], argz[1]) 507 | } 508 | break 509 | case 'doctag': case 'dokumentag': //by Dehanjing 510 | if (!isQuotedDocument) return aqul.reply(from, `Reply Document dengan caption *${prefix + command}*`, qul) 511 | quoted = JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo 512 | download = await xinz.downloadMediaMessage(quoted) 513 | await fs.writeFileSync(`doc.txt`, download) 514 | var group = await xinz.groupMetadata(from) 515 | var member = group['participants'] 516 | var mem = [] 517 | member.map(async adm => { 518 | mem.push(adm.id.replace('c.us', 's.whatsapp.net')) 519 | }) 520 | xinz.sendMessage(from, fs.readFileSync(`doc.txt`), document, { contextInfo: {mentionedJid: mem }, quoted: qul, mimetype: 'text/plain' }) 521 | await fs.unlinkSync(`doc.txt`) 522 | break 523 | case 'giftag': case 'giphytag': //by Dehanjing 524 | if (!isQuotedVideo) return reply(`Reply Gif nya dengan caption ${prefix + command}`) 525 | quoted = JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo 526 | download = await xinz.downloadMediaMessage(quoted) 527 | await fs.writeFileSync(`giftag.gif`, download) 528 | var group = await xinz.groupMetadata(from) 529 | var member = group['participants'] 530 | var mem = [] 531 | member.map(async adm => { 532 | mem.push(adm.id.replace('c.us', 's.whatsapp.net')) 533 | }) 534 | thumb = fs.readFileSync(`giftag.gif`) 535 | xinz.sendMessage(from, thumb, video, { contextInfo: {mentionedJid: mem }, quoted: qul, mimetype: 'video/gif', thumbnail: thumb }) 536 | await fs.unlinkSync(`giftag.gif`) 537 | break 538 | case 'tahta': 539 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}tahta teks`, qul) 540 | aqul.sendMediaURL(from, `https://api.zeks.xyz/api/hartatahta?text=${arg}&apikey=apivinz`) 541 | break 542 | case 'pubg': 543 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}pubg teks1|teks2`, qul) 544 | argz = arg.split("|") 545 | if (!argz) return aqul.reply(from, `Penggunaan ${prefix}pubg teks1|teks2`, qul) 546 | axios.get(`https://xinzbot-api.herokuapp.com/api/textmaker/game?text=${argz[0]}&text2=${argz[1]}&theme=pubg&apikey=XinzBot`) 547 | .then((res) => aqul.sendMediaURL(from, res.data.result.url)) 548 | .catch((err) => { 549 | console.log(err) 550 | aqul.reply(from, mess.error.api, qul) 551 | }) 552 | break 553 | case 'togif': 554 | if (!isQuotedSticker) return reply(from, 'Reply stiker nya', qul) 555 | if (qul.message.extendedTextMessage.contextInfo.quotedMessage.stickerMessage.isAnimated === true){ 556 | const encmedia = JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo 557 | const media = await xinz.downloadAndSaveMediaMessage(encmedia) 558 | const uploadn = await uptonaufal(media, Date.now() + '.webp') 559 | const anjj = await axios.get(`http://nzcha-apii.herokuapp.com/webp-to-mp4?url=${uploadn.result.image}`) 560 | thumb = await aqul.getBuffer(anjj.data.result) 561 | aqul.sendGif(from, thumb) 562 | fs.unlinkSync(media) 563 | } else { 564 | aqul.reply(from, `Harus sticker bergerak`, qul) 565 | } 566 | break 567 | case 'toimg': case 'tovideo': 568 | if (!isQuotedSticker) return aqul.reply(from, 'Reply stiker nya', qul) 569 | if (qul.message.extendedTextMessage.contextInfo.quotedMessage.stickerMessage.isAnimated === true){ 570 | const encmedia = JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo 571 | const media = await xinz.downloadAndSaveMediaMessage(encmedia) 572 | const uploadn = await uptonaufal(media, Date.now() + '.webp') 573 | const anjj = await axios.get(`http://nzcha-apii.herokuapp.com/webp-to-mp4?url=${uploadn.result.image}`) 574 | await aqul.sendMediaURL(from, anjj.data.result, 'Nih') 575 | fs.unlinkSync(media) 576 | } else { 577 | const encmedia = JSON.parse(JSON.stringify(qul).replace('quotedM','m')).message.extendedTextMessage.contextInfo 578 | const media = await xinz.downloadAndSaveMediaMessage(encmedia) 579 | ran = aqul.getRandom('.png') 580 | exec(`ffmpeg -i ${media} ${ran}`, (err) => { 581 | fs.unlinkSync(media) 582 | if (err) { 583 | aqul.reply(from, `gagal`, qul) 584 | fs.unlinkSync(ran) 585 | } else { 586 | buffer = fs.readFileSync(ran) 587 | aqul.sendImage(from, buffer, 'nih', qul) 588 | fs.unlinkSync(ran) 589 | } 590 | }) 591 | } 592 | break 593 | case 'shutdown': 594 | await aqul.FakeTokoForwarded(from, `Bye...`, fake) 595 | await aqul.sleep(5000) 596 | xinz.close() 597 | break 598 | case 'spam': 599 | if (!itsMe) return 600 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}spam teks|jumlahspam`, qul) 601 | argz = arg.split("|") 602 | if (!argz) return aqul.reply(from, `Penggunaan ${prefix}spam teks|jumlah`, qul) 603 | if (isNaN(argz[1])) return aqul.reply(from, `harus berupa angka`, qul) 604 | for (let i = 0; i < argz[1]; i++){ 605 | aqul.sendText(from, argz[0]) 606 | } 607 | break 608 | case 'promote': 609 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}promote @tag atau nomor`, qul) 610 | if (qul.message.extendedTextMessage != undefined){ 611 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 612 | await aqul.FakeTokoForwarded(from, `sukses`, fake) 613 | aqul.promote(from, mentioned) 614 | } else { 615 | await aqul.FakeTokoForwarded(from, `sukses`, fake) 616 | aqul.promote(from, [args[0] + '@s.whatsapp.net']) 617 | } 618 | break 619 | case 'demote': 620 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}demote @tag atau nomor`, qul) 621 | if (qul.message.extendedTextMessage != undefined){ 622 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 623 | await aqul.FakeTokoForwarded(from, `sukses`, fake) 624 | aqul.demote(from, mentioned) 625 | } else { 626 | await aqul.FakeTokoForwarded(from, `sukses`, fake) 627 | aqul.demote(from, [args[0] + '@s.whatsapp.net']) 628 | } 629 | break 630 | case 'kick': 631 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}kick @tag atau nomor`, qul) 632 | if (qul.message.extendedTextMessage != undefined){ 633 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 634 | await aqul.FakeTokoForwarded(from, `Bye...`, fake) 635 | aqul.kick(from, mentioned) 636 | } else { 637 | await aqul.FakeTokoForwarded(from, `Bye...`, fake) 638 | aqul.kick(from, [args[0] + '@s.whatsapp.net']) 639 | } 640 | break 641 | case 'add': 642 | if (!arg) return aqul.reply(from, `Penggunaan ${prefix}kick 628xxxx`, qul) 643 | aqul.add(from, [args[0] + '@s.whatsapp.net']) 644 | aqul.FakeTokoForwarded(from, `Sukses`, fake) 645 | break 646 | case 'upstatus': 647 | if (!itsMe) return 648 | if (!arg) return aqul.reply(from, `Penggunaan \n${prefix}upstatus text\n${prefix}upstatus caption `, qul) 649 | if (isMedia && !qul.message.videoMessage || isQuotedImage) { 650 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 651 | const media = await xinz.downloadAndSaveMediaMessage(encmedia) 652 | aqul.upImgStatus(media, arg).then(() => { aqul.FakeTokoForwarded(from, 'Sukses', fake) }) 653 | } else if ((isMedia || isQuotedVideo )) { 654 | const encmedia = isQuotedVideo ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 655 | const media = await xinz.downloadAndSaveMediaMessage(encmedia) 656 | aqul.upVidStatus(media, arg).then(() => { aqul.FakeTokoForwarded(from, 'Sukses', fake) }) 657 | } else { 658 | await aqul.upTextStatus(arg).then(() => { aqul.FakeTokoForwarded(from, 'Sukses', fake) }) 659 | } 660 | break 661 | case 'getgrup': case 'getgroup': case 'getg': 662 | const ingfo = await aqul.getGroup(totalchat) 663 | let txt = `Ingfo grup\nJumlah Grup: ${ingfo.length}\n\n` 664 | for (let i = 0; i < ingfo.length; i++){ 665 | txt += `Nama grup : ${ingfo[i].subject}\nID grup : ${ingfo[i].id}\nDibuat : ${moment(`${ingfo[i].creation}` * 1000).tz('Asia/Jakarta').format('DD/MM/YYYY HH:mm:ss')}\nJumlah Peserta : ${ingfo[i].participants.length}\n\n` 666 | } 667 | aqul.FakeTokoForwarded(from, txt, fake) 668 | break 669 | case 'creategrup': case 'creategroup': case 'createg': 670 | argz = arg.split('|') 671 | if (qul.message.extendedTextMessage != undefined){ 672 | mentioned = qul.message.extendedTextMessage.contextInfo.mentionedJid 673 | xinz.groupCreate(argz[0], mentioned) 674 | .then((res) => aqul.FakeTokoForwarded(from, JSON.stringify(res, null, 2).toString(), fake)) 675 | .catch((err) => console.log(err)) 676 | } else { 677 | aqul.reply(from, `Penggunaan ${prefix}creategrup namagrup|@tag`, qul) 678 | } 679 | break 680 | case 'imgtourl': 681 | const encmediiia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 682 | const mediaq = await xinz.downloadMediaMessage(encmediiia) 683 | const upli = await uptotele(mediaq) 684 | aqul.reply(from, `${upli}`, qul) 685 | break 686 | case 'tourl': 687 | let a = JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo 688 | let b = await xinz.downloadAndSaveMediaMessage(a) 689 | let c = await uploadFile(b) 690 | aqul.reply(from, c.result, qul) 691 | fs.unlinkSync(b) 692 | break 693 | case 'antidelete': 694 | if (!itsMe) return 695 | const dataRevoke = JSON.parse(fs.readFileSync('./antidelete/gc-revoked.json')) 696 | const dataCtRevoke = JSON.parse(fs.readFileSync('./antidelete/ct-revoked.json')) 697 | const dataBanCtRevoke = JSON.parse(fs.readFileSync('./antidelete/ct-revoked-banlist.json')) 698 | const isRevoke = dataRevoke.includes(from) 699 | const isCtRevoke = dataCtRevoke.data 700 | const isBanCtRevoke = dataBanCtRevoke.includes(sender) ? true : false 701 | if (args.length === 0) return xinz.sendMessage(from, `Penggunaan fitur antidelete :\n\n*${prefix}antidelete [aktif/mati]* (Untuk grup)\n*${prefix}antidelete [ctaktif/ctmati]* (untuk semua kontak)\n*${prefix}antidelete banct 628558xxxxxxx* (banlist kontak)`, MessageType.text) 702 | if (args[0] == 'aktif') { 703 | if (isGroup) { 704 | if (isRevoke) return xinz.sendMessage(from, `Antidelete telah diaktifkan di grup ini sebelumnya!`, MessageType.text) 705 | dataRevoke.push(from) 706 | fs.writeFileSync('./antidelete/gc-revoked.json', JSON.stringify(dataRevoke, null, 2)) 707 | xinz.sendMessage(from, `*Succes Enable Antidelete Grup!*`, MessageType.text) 708 | } else if (!isGroup) { 709 | xinz.sendMessage(from, `Untuk kontak penggunaan *${prefix}antidelete ctaktif*`, MessageType.text) 710 | } 711 | } else if (args[0] == 'ctaktif') { 712 | if (!isGroup) { 713 | if (isCtRevoke) return xinz.sendMessage(from, `Antidelete telah diaktifkan di semua kontak sebelumnya!`, MessageType.text) 714 | dataCtRevoke.data = true 715 | fs.writeFileSync('./antidelete/ct-revoked.json', JSON.stringify(dataCtRevoke, null, 2)) 716 | xinz.sendMessage(from, `Antidelete diaktifkan disemua kontak!`, MessageType.text) 717 | } else if (isGroup) { 718 | xinz.sendMessage(from, `Untuk grup penggunaan *${prefix}antidelete aktif*`, MessageType.text) 719 | } 720 | } else if (args[0] == 'banct') { 721 | if (isBanCtRevoke) return xinz.sendMessage(from, `kontak ini telah ada di database banlist!`, MessageType.text) 722 | if (args.length === 1 || args[1].startsWith('0')) return xinz.sendMessage(from, `Masukan nomer diawali dengan 62! contoh 62859289xxxxx`, MessageType.text) 723 | dataBanCtRevoke.push(args[1] + '@s.whatsapp.net') 724 | fs.writeFileSync('./antidelete/ct-revoked-banlist.json', JSON.stringify(dataBanCtRevoke, null, 2)) 725 | xinz.sendMessage(from, `Kontak ${args[1]} telah dimasukan ke banlist antidelete secara permanen!`, MessageType.text) 726 | } else if (args[0] == 'mati') { 727 | if (isGroup) { 728 | const index = dataRevoke.indexOf(from) 729 | dataRevoke.splice(index, 1) 730 | fs.writeFileSync('./antidelete/gc-revoked.json', JSON.stringify(dataRevoke, null, 2)) 731 | xinz.sendMessage(from, `*Succes disable Antidelete Grup!*`, MessageType.text) 732 | } else if (!isGroup) { 733 | xinz.sendMessage(from, `Untuk kontak penggunaan *${prefix}antidelete ctmati*`, MessageType.text) 734 | } 735 | } else if (args[0] == 'ctmati') { 736 | if (!isGroup) { 737 | dataCtRevoke.data = false 738 | fs.writeFileSync('./antidelete/ct-revoked.json', JSON.stringify(dataCtRevoke, null, 2)) 739 | xinz.sendMessage(from, `Antidelete dimatikan disemua kontak!`, MessageType.text) 740 | } else if (isGroup) { 741 | xinz.sendMessage(from, `Untuk grup penggunaan *${prefix}antidelete mati*`, MessageType.text) 742 | } 743 | } 744 | break 745 | case 'setpp': case 'setprofilepicture': 746 | if (!itsMe) return 747 | if (isMedia && !qul.message.videoMessage || isQuotedImage) { 748 | const encmedia = isQuotedImage ? JSON.parse(JSON.stringify(qul).replace('quotedM', 'm')).message.extendedTextMessage.contextInfo : qul 749 | const media = await xinz.downloadMediaMessage(encmedia) 750 | xinz.updateProfilePicture(xinz.user.jid, media) 751 | .then((res) => aqul.FakeTokoForwarded(from, JSON.stringify(res, null, 2).toString(), fake)) 752 | .catch((err) => console.log(err)) 753 | } else { 754 | aqul.reply(from, `Kirim gambar atau reply gambar dengan caption ${prefix}setpp`, qul) 755 | } 756 | break 757 | case 'eval': 758 | if (!itsMe) return 759 | let code = body.slice(6) 760 | try { 761 | 762 | if (!code) return aqul.reply(from, 'No JavaScript Code', qul) 763 | let evaled; 764 | 765 | if (code.includes("--silent") && code.includes("--async")) { 766 | code = code.replace("--async", "").replace("--silent", ""); 767 | 768 | return await eval(`(async () => { ${code} })()`) 769 | } else if (code.includes("--async")) { 770 | code = code.replace("--async", ""); 771 | 772 | evaled = await eval(`(async () => { ${code} })()`); 773 | } else if (code.includes("--silent")) { 774 | code = code.replace("--silent", ""); 775 | 776 | return await eval(code); 777 | } else evaled = await eval(code); 778 | 779 | /*if (typeof evaled !== "string") 780 | evaled = require("util").inspect(evaled, { 781 | depth: 0 782 | */ 783 | 784 | let output = clean(evaled); 785 | aqul.reply(from, JSON.stringify(evaled, null, 2), qul) 786 | 787 | } catch (err) { 788 | console.error(err) 789 | const error = clean(err) 790 | aqul.reply(from, error, qul) 791 | } 792 | 793 | function clean(text) { 794 | if (typeof text === "string") 795 | return text 796 | .replace(/`/g, `\`${String.fromCharCode(8203)}`) 797 | .replace(/@/g, `@${String.fromCharCode(8203)}`); 798 | // eslint-disable-line prefer-template 799 | else return text; 800 | } 801 | break 802 | default: 803 | break 804 | } 805 | } catch (err) { 806 | console.log(color('[ERROR]', 'red'), err) 807 | } 808 | }) 809 | --------------------------------------------------------------------------------