├── .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 |
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* AW m {"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 |
--------------------------------------------------------------------------------