├── storage └── .gitignore ├── .gitignore ├── app ├── func │ ├── log.js │ ├── validate.velixs.js │ ├── Message.js │ ├── loadCommands.js │ └── velixs.serialize.js ├── baileys │ ├── velixs.js │ └── Socket.js └── handler │ ├── onGroupParticipants.js │ └── onMessageReceived.js ├── package.json ├── index.js ├── config.example.js ├── commands ├── group │ ├── kick.js │ ├── delete.js │ └── add.js ├── education │ ├── gpt.js │ └── translate.js ├── menu │ └── menu.js ├── _ │ └── antilink.js ├── downloader │ └── instagram.js └── stalk │ └── instagram.js ├── test.js ├── readme.md └── yarn.lock /storage/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | config.js 2 | node_modules 3 | package-lock.json -------------------------------------------------------------------------------- /app/func/log.js: -------------------------------------------------------------------------------- 1 | const Logger = require("@ptkdev/logger") 2 | const log = new Logger() 3 | 4 | module.exports = log -------------------------------------------------------------------------------- /app/func/validate.velixs.js: -------------------------------------------------------------------------------- 1 | class Validate { 2 | constructor () { 3 | 4 | } 5 | 6 | async make(params){ 7 | 8 | } 9 | } 10 | 11 | module.exports = Validate -------------------------------------------------------------------------------- /app/func/Message.js: -------------------------------------------------------------------------------- 1 | class Message { 2 | constructor({ sock, m }){ 3 | this.sock = sock 4 | this.m = m 5 | } 6 | 7 | async react(emote){ 8 | const reactionMessage = { 9 | react: { 10 | text: emote, 11 | key: this.m.key 12 | } 13 | } 14 | 15 | return await this.sock.sendMessage(this.m.from, reactionMessage) 16 | } 17 | } 18 | 19 | module.exports = Message -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "example.velixs-md", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@ptkdev/logger": "^1.8.0", 13 | "@whiskeysockets/baileys": "^6.5.0", 14 | "axios": "^1.5.1", 15 | "express": "^4.18.2", 16 | "pino": "^8.16.0", 17 | "qrcode-terminal": "^0.12.0", 18 | "sharp": "^0.30.7" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const log = require('./app/func/log.js') 2 | const express = require('express') 3 | const app = express(); 4 | const port = 3000; 5 | 6 | try{ 7 | require('./config.js') 8 | } catch { 9 | log.error('config.js not found!') 10 | process.exit(1) 11 | } 12 | 13 | app.get('/', (req, res) => { 14 | res.send('Whatsapp BOT'); 15 | }); 16 | 17 | app.listen(port, () => { 18 | console.log(`Server berjalan di http://localhost:${port}`); 19 | }); 20 | 21 | require('./app/baileys/velixs.js') 22 | -------------------------------------------------------------------------------- /app/baileys/velixs.js: -------------------------------------------------------------------------------- 1 | const wa = require("./Socket.js") 2 | const { sessionName } = require("../../config.js") 3 | const onMessageReceived = require('../handler/onMessageReceived.js') 4 | const onGroupParticipants = require('../handler/onGroupParticipants.js') 5 | const { loadCommands } = require("../func/loadCommands.js") 6 | loadCommands() 7 | 8 | const startBOT = async() => { 9 | const sock = await wa.startSession(sessionName) 10 | 11 | sock.ev.on("messages.upsert", async(msg) => { new onMessageReceived(msg, sock).main() }) 12 | sock.ev.on("group-participants.update", async(ev) => { new onGroupParticipants({ ev, sock }).main() }) 13 | } 14 | 15 | startBOT() 16 | -------------------------------------------------------------------------------- /config.example.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | sessionName : 'velixsmd', 3 | prefixs : ['!', '#', '/'], 4 | owner : [ 5 | '6285174902345' 6 | ], 7 | apis : { 8 | velixs : { 9 | endpoint : "https://api.velixs.com", 10 | apikey : "YOUR_API_KEY" 11 | } 12 | }, 13 | 14 | storage : __dirname + "/storage", 15 | 16 | msg : { 17 | isAdmin : "_😿 Fitur Untuk Admin Group_", 18 | isGroup : "_😿 Fitur Ini hanya untuk group._", 19 | isOwner : "_😿 Fitur Ini hanya untuk owner._", 20 | isBotAdmin : "_😿 Bot Bukan Admin._", 21 | }, 22 | 23 | react: { 24 | process: '⏳', 25 | success: '✅', 26 | failed: '❌' 27 | }, 28 | } -------------------------------------------------------------------------------- /commands/group/kick.js: -------------------------------------------------------------------------------- 1 | const { msg } = require("../../config.js") 2 | const Message = require("../../app/func/Message.js") 3 | 4 | module.exports = { 5 | name : "group-kick", 6 | description : "Kick member from group", 7 | cmd : ['kick'], 8 | run : async({ m, sock }) => { 9 | if(!m.isGroup) return m.reply(msg.isGroup) 10 | if(!m.isAdmin) return m.reply(msg.isAdmin) 11 | if(!m.isBotAdmin) return m.reply(msg.isBotAdmin) 12 | 13 | let user = m.mentions[0] ?? m.quoted?.sender 14 | if(!user) return m.reply(`Contoh : _${m.prefix}kick @user atau reply pesan_`) 15 | const message = new Message({ m, sock }) 16 | try{ 17 | message.react(react.success) 18 | await sock.groupParticipantsUpdate(m.from, [user], 'remove') 19 | }catch{ message.react(react.failed) } 20 | } 21 | } -------------------------------------------------------------------------------- /commands/education/gpt.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | const { apis, react } = require("../../config.js") 3 | const Message = require("../../app/func/Message.js") 4 | 5 | module.exports = { 6 | name : "gpt-ai", 7 | description : "ChatGPT AI", 8 | menu : { 9 | label : 'education', 10 | example : "_question_", 11 | }, 12 | cmd : ['ai', 'gpt'], 13 | 14 | run : async({ m, sock }) => { 15 | if(!m.arg) return sock.sendMessage(m.from, { text: `Contoh : ${m.prefix}ai siapa kamu?` }) 16 | const message = new Message({ m, sock }) 17 | await message.react(react.process) 18 | let text = m.arg 19 | axios.get(`https://vihangayt.me/tools/chatgpt?q=${text}`).then(async(res)=>{ 20 | await message.react(react.success) 21 | await sock.sendMessage(m.from, { text : res.data.data }, { quoted: m }) 22 | }).catch(async(err)=>{ await message.react(react.failed) }) 23 | } 24 | } -------------------------------------------------------------------------------- /test.js: -------------------------------------------------------------------------------- 1 | const wa = require('velixs-md') 2 | 3 | wa.setCredentialsDir('./storage/wa_credentials'); 4 | wa.startSession('ilsya'); 5 | 6 | wa.onConnected(async (sessionId) => { 7 | console.log('Session Connected : '+ sessionId); 8 | }) 9 | 10 | wa.onMessageReceived(async(msg)=>{ 11 | if (msg.key.fromMe || msg.key.remoteJid.includes("status")) return; 12 | if(msg.message?.extendedTextMessage?.text == 'ping'){ // jika pesan berupa text dan berisi ping 13 | // maka kirim pesan pong 14 | await wa.sendTextMessage({ 15 | sessionId: msg.sessionId, // ini session ilsya 16 | to: msg.key.remoteJid, // ini pengirim pesan ping 17 | text: "pong", 18 | answering: msg, // ini untuk reply pesan 19 | isGroup : wa.isGroup(msg.key.remoteJid) // buat ngecek pengirimnya dari group atau personal 20 | }).then(res => { 21 | console.log(res); 22 | }).catch(err => { 23 | console.log(err); 24 | }) 25 | } 26 | }) -------------------------------------------------------------------------------- /commands/education/translate.js: -------------------------------------------------------------------------------- 1 | const axios = require('axios'); 2 | const { apis, react } = require("../../config.js") 3 | const Message = require("../../app/func/Message.js") 4 | 5 | module.exports = { 6 | name : "translate", 7 | description : "Google Translate", 8 | menu : { 9 | label : 'education', 10 | example : "_en query_", 11 | }, 12 | cmd : ['translate'], 13 | 14 | run : async({ m, sock }) => { 15 | if(!m.args[0] && !m.arg) return sock.sendMessage(m.from, { text: `Contoh : ${m.prefix}translate en Hai Apa Kabar?` }) 16 | 17 | const message = new Message({ m, sock }) 18 | message.react(react.process) 19 | 20 | let text = m.arg.slice(m.args[0].length) 21 | let to = m.args[0] 22 | 23 | axios.get(apis.velixs.endpoint+`/google-translate?apikey=${apis.velixs.apikey}&to=${to}&text=${text}`).then(async(res)=>{ 24 | message.react(react.success) 25 | await sock.sendMessage(m.from, { text : res.data.data.result }, { quoted: m }) 26 | }).catch(async(err)=>{ message.react(react.failed) }) 27 | } 28 | } -------------------------------------------------------------------------------- /commands/group/delete.js: -------------------------------------------------------------------------------- 1 | const { msg, react } = require("../../config.js") 2 | const Message = require("../../app/func/Message.js") 3 | 4 | module.exports = { 5 | name : "group-delete-message", 6 | description : "Delete Message from group", 7 | cmd : ['del','delete'], 8 | run : async({ m, sock }) => { 9 | if(!m.isGroup) return m.reply(msg.isGroup) 10 | if(!m.isAdmin) return m.reply(msg.isAdmin) 11 | if(!m.isBotAdmin) return m.reply(msg.isBotAdmin) 12 | if(!m.quoted) return m.reply(`Reply Message : _${m.prefix}del_`) 13 | 14 | const message = new Message({ m, sock }) 15 | message.react(react.process) 16 | 17 | try { 18 | let delet = m.message.extendedTextMessage.contextInfo.participant 19 | let bang = m.message.extendedTextMessage.contextInfo.stanzaId 20 | message.react(react.success) 21 | return sock.sendMessage(m.from, { delete: { remoteJid: m.from, fromMe: false, id: bang, participant: delet }}) 22 | } catch { 23 | message.react(react.success) 24 | m.quoted.delete() 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /commands/menu/menu.js: -------------------------------------------------------------------------------- 1 | const { menuByLabel } = require("../../app/func/loadCommands.js") 2 | const { react } = require("../../config.js") 3 | const Message = require("../../app/func/Message.js") 4 | 5 | module.exports = { 6 | name : "menu", 7 | description : "Menu Bot Velixs-Bot", 8 | cmd : ['help', 'menu'], 9 | run : async({ m, sock }) => { 10 | 11 | const message = new Message({ m, sock }) 12 | message.react(react.process) 13 | 14 | let text = '' 15 | text += '*😺 Menu Velixs-Bot*\n\n' 16 | menuByLabel.forEach((val, key) => { 17 | text += `┌──「 *${key}*\n` 18 | val.forEach((v) => { 19 | text += `▢ ${m.prefix+v.cmd[0]} ${v.example}\n` 20 | }) 21 | text += `└────────────\n\n` 22 | }) 23 | 24 | text += `\n` 25 | text += `_👑 author: Ilsya_\n` 26 | text += `⚡ sources: _www.github.com/ilsyaa/velixs-bot_` 27 | 28 | await message.react(react.success) 29 | await sock.sendMessage(m.from, { text: text }, { quoted: m }).catch(()=>{ 30 | message.react(react.failed) 31 | }) 32 | } 33 | } -------------------------------------------------------------------------------- /commands/group/add.js: -------------------------------------------------------------------------------- 1 | const { msg, react } = require("../../config.js") 2 | const Message = require("../../app/func/Message.js") 3 | 4 | module.exports = { 5 | name : "group-add", 6 | description : "Add member from group", 7 | cmd : ['add'], 8 | run : async({ m, sock }) => { 9 | if(!m.isGroup) return m.reply(msg.isGroup) 10 | if(!m.isAdmin) return m.reply(msg.isAdmin) 11 | if(!m.isBotAdmin) return m.reply(msg.isBotAdmin) 12 | 13 | if(!m.arg) return m.reply(`Contoh : _${m.prefix}add 62xxx_`) 14 | 15 | let user = m.arg.replace(/[^0-9]/g, '')+"@s.whatsapp.net" 16 | 17 | const message = new Message({ m, sock }) 18 | message.react(react.process) 19 | 20 | await sock.groupParticipantsUpdate(m.from, [user], 'add').then(res=>{ 21 | if(res[0].content?.attrs?.error == 409){ 22 | message.react(react.success) 23 | m.reply("_Sudah menjadi anggota._") 24 | }else if(res[0].content?.attrs?.error == 403){ 25 | message.react(react.failed) 26 | m.reply("_Nomor ini harus di undang manual._") 27 | } 28 | message.react(react.success) 29 | }).catch(()=>{ message.react(react.failed) }) 30 | } 31 | } -------------------------------------------------------------------------------- /commands/_/antilink.js: -------------------------------------------------------------------------------- 1 | const { msg, react } = require("../../config.js") 2 | const Message = require("../../app/func/Message.js") 3 | 4 | module.exports = { 5 | name : "antilink-group", 6 | description : "Antilink group. ketika ada link di group akan otomatis di hapus.", 7 | run : async({ m, sock }) => { 8 | if(!m.isGroup) return true 9 | if(m.isAdmin) return true 10 | if(m.isSuperAdmin) return true 11 | if(m.isOwner) return true 12 | if(!m.isBotAdmin) return true 13 | 14 | let budy = m.body 15 | if (budy.match(`chat.whatsapp.com`)) { 16 | var gclink = (`https://chat.whatsapp.com/` + await sock.groupInviteCode(m.from)) 17 | var isLinkThisGc = new RegExp(gclink, 'i') 18 | var isgclink = isLinkThisGc.test(budy) 19 | if (isgclink) return 20 | try { 21 | let delet = m.key.participant 22 | let bang = m.key.id 23 | let res = sock.sendMessage(m.from, { delete: { remoteJid: m.from, fromMe: false, id: bang, participant: delet }}) 24 | if (res) { 25 | sock.sendMessage(m.from, { text: `_😿 Dilarang Mengirim Link Group lain tanpa seizin admin._` }) 26 | } 27 | } catch { 28 | m.quoted.delete() 29 | } 30 | } 31 | return next = true; 32 | } 33 | } -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## **VELIXS-BOT** 2 | 3 | ### Install 4 | ```bat 5 | 1. Rename config.example.js ke config.js 6 | 2. Buka file config.js ubah yang perlu aja 7 | 3. npm install 8 | 4. npm start 9 | ``` 10 | 11 | ### Commands Options 12 | ```ts 13 | module.exports = { 14 | name : "menu", // gunakan huruf kecil dan - jangan pake space, harus uniqe 15 | description : "Menu Bot Velixs-Bot", // penjelasan fitur isi bebas 16 | 17 | // jika anda menghapus baris cmd ini maka commands ini akan berjalan setiap ada pesan masuk tidak peduli apapun pesanya. kamu bisa cek di bagian folder commands/_ 18 | cmd : ['help', 'menu'], 19 | 20 | // option : tambahkan ini untuk menampilkan otomatis ke list menu 21 | menu : { 22 | label : 'translate', // ini untuk grouping sesuai label 23 | example : "_en text_", // ini contoh penggunaan nanti di menu akan seperti !help en text 24 | }, 25 | 26 | options : { 27 | // kamu bisa menambahkan opsi ini jika ingin fitur boleh tidak memaki prefix. 28 | withoutPrefix : true 29 | }, 30 | 31 | run : async({ m, sock}) => { 32 | if(!m.isGroup) return m.reply("Fitur Hanya Bisa di group.") 33 | if(!m.isAdmin) return m.reply("Fitur Hanya Untuk admin.") 34 | if(!m.isBotAdmin) return m.reply("Bot Harus Admin") 35 | 36 | 37 | // any code 38 | } 39 | } 40 | ``` 41 | 42 | Masih Dalam Pengembangan 😺 43 | 44 | ### Thanks ⚡ 45 | [Ilsya](https://github.com/ilsyaa) 46 | 47 | [Velixs](https://velixs.com) 48 | 49 | ### Star History 50 | 51 | [![Star History Chart](https://api.star-history.com/svg?repos=ilsyaa/velixs-bot&type=Date)](https://star-history.com/#ilsyaa/velixs-bot&Date) 52 | -------------------------------------------------------------------------------- /commands/downloader/instagram.js: -------------------------------------------------------------------------------- 1 | const { default: axios } = require("axios") 2 | const { apis, react } = require("../../config.js") 3 | const Message = require("../../app/func/Message.js") 4 | const fs = require("fs") 5 | 6 | module.exports = { 7 | name : "igdownloader", 8 | description : "Instagram Downloader", 9 | menu : { 10 | label : 'Downloader', 11 | example : "_url_", 12 | }, 13 | cmd : ['igdl', 'igdownlod'], 14 | run : async({ m, sock }) => { 15 | if(!m.args[0]) return sock.sendMessage(m.from, { text: `Contoh : ${m.prefix}igstalk _url_` }) 16 | const message = new Message({ m, sock }) 17 | message.react(react.process) 18 | axios.get(apis.velixs.endpoint+`/instagram/download?apikey=${apis.velixs.apikey}&url=${m.args[0]}`).then(async(res)=>{ 19 | let result = res.data 20 | result.data.url.forEach(async (url) => { 21 | let buffer = await axios.get(url, { responseType: 'arraybuffer' }) 22 | if (buffer.headers['content-disposition'].includes('jpeg')) { 23 | await sock.sendMessage(m.from, { 24 | image : buffer.data 25 | }, { quoted: m }) 26 | } else if(buffer.headers['content-disposition'].includes('mp4')) { 27 | await sock.sendMessage(m.from, { video : buffer.data, gifPlayback: true }, { quoted: m }) 28 | } 29 | message.react(react.success) 30 | }) 31 | }).catch(async(err)=>{ 32 | message.react(react.failed) 33 | if(err.response?.data?.message == 'Link not found') return sock.sendMessage(m.from, { text: `Link tidak ditemukan.` }, { quoted: m }) 34 | }) 35 | } 36 | } -------------------------------------------------------------------------------- /app/handler/onGroupParticipants.js: -------------------------------------------------------------------------------- 1 | const { default: axios } = require("axios"); 2 | const { apis } = require("../../config.js") 3 | 4 | class onGroupParticipants{ 5 | constructor({ ev, sock }){ 6 | this.ev = ev 7 | this.sock = sock 8 | } 9 | 10 | async main(){ 11 | const { id, participants, action } = this.ev 12 | for(let user of participants){ 13 | switch(action){ 14 | case 'add': 15 | let avatar = "https://velixs.com/assets/img/team/chatgbt2.jpg" 16 | try{ 17 | avatar = await this.sock.profilePictureUrl(user, 'image') 18 | } catch {} 19 | let group = await this.sock.groupMetadata(id) 20 | axios.post(apis.velixs.endpoint+`/card/welcome`,{ 21 | "apikey": apis.velixs.apikey, 22 | "avatar": avatar, 23 | "heading": user.split('@')[0], 24 | "text": `Selamat Datang di ${group.subject ?? '-'}` 25 | }, { 26 | responseType: 'arraybuffer' 27 | }).then(res=>{ 28 | this.sock.sendMessage(id, { 29 | image : res.data, 30 | contextInfo: { mentionedJid: [user] }, 31 | caption: 'Selamat Datang @' + user.split('@')[0] 32 | }) 33 | }) 34 | 35 | break 36 | case 'remove': 37 | this.sock.sendMessage(id, { text: 'Selamat Tinggal @' + user.split('@')[0], mentions: [participants] }); 38 | break 39 | default: 40 | break 41 | } 42 | } 43 | } 44 | } 45 | 46 | module.exports = onGroupParticipants -------------------------------------------------------------------------------- /app/func/loadCommands.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | const fs = require('fs') 3 | const commandsDir = path.join(__dirname, '../../commands') 4 | const commands = new Map(); 5 | const menuByLabel = new Map() 6 | const _commands = new Map() 7 | const log = require("../func/log.js") 8 | 9 | const loadFile = (filePath) => { 10 | try { 11 | if(filePath.endsWith('.js')) { 12 | const file = require(filePath); 13 | const name = file.name.toLowerCase().replace(/\s/g, ""); 14 | if (!commands.has(name) || _commands.has(name)) { 15 | if(file.cmd){ 16 | commands.set(name, file) 17 | } else { 18 | _commands.set(name, file) 19 | } 20 | } else { 21 | log.warn(`duplication name ${name}.`) 22 | } 23 | } 24 | return false 25 | } catch (e) { 26 | log.error(e) 27 | } 28 | } 29 | 30 | const exploreFolder = (dir) => { 31 | fs.readdirSync(dir).forEach(dirOrFile => { 32 | const dirOrFilePath = path.join(dir, dirOrFile); 33 | if (fs.statSync(dirOrFilePath).isDirectory()) { 34 | exploreFolder(dirOrFilePath); 35 | } else { 36 | loadFile(dirOrFilePath); 37 | } 38 | }); 39 | } 40 | 41 | const loadCommands = async() => { 42 | exploreFolder(commandsDir) 43 | commands.forEach(val => { 44 | let label = val.menu?.label 45 | if(label){ 46 | if(!menuByLabel.has(label)){ 47 | menuByLabel.set(label, []) 48 | } 49 | menuByLabel.get(label).push({ 50 | cmd : val.cmd, 51 | example : val.menu.example 52 | }) 53 | } 54 | }) 55 | log.info(`Loaded ${commands.size} commands.`) 56 | log.info(`Loaded ${_commands.size} commands without cmd.`) 57 | } 58 | 59 | module.exports = { 60 | loadCommands, 61 | commands, 62 | _commands, 63 | menuByLabel 64 | } -------------------------------------------------------------------------------- /app/handler/onMessageReceived.js: -------------------------------------------------------------------------------- 1 | const { serialize } = require('../func/velixs.serialize.js'); 2 | const { commands, _commands } = require("../func/loadCommands.js") 3 | const log = require("../func/log.js") 4 | const config = require("../../config.js") 5 | 6 | class onMessageReceived { 7 | constructor (m, sock){ 8 | this.m = m 9 | this.sock = sock 10 | } 11 | 12 | async main(){ 13 | let m = serialize(this.sock, this.m.messages?.[0]) 14 | if (!m.message) return 15 | if (m.key && m.key.remoteJid == "status@broadcast") return 16 | if (m.key.id.startsWith("BAE5") && m.key.id.length == 16) return 17 | 18 | m.isOwner = config.owner.find((v) => v + "@s.whatsapp.net" == m.sender) ? true : false 19 | m.groupMetadata = m.isGroup ? await this.sock.groupMetadata(m.key.remoteJid) : {} 20 | let participant_sender = (m.isGroup ? m.groupMetadata.participants.find((v) => v.id == m.sender) : {}) || {} 21 | let participant_bot = (m.isGroup ? m.groupMetadata.participants.find((v) => v.id == m.botNumber) : {}) || {} 22 | m.isSuperAdmin = participant_sender?.admin == 'superadmin' ? true : false 23 | m.isAdmin = m.isSuperAdmin || participant_sender?.admin == 'admin' ? true : false 24 | m.isBotAdmin = participant_bot?.admin == 'admin' ? true : false 25 | 26 | // console.log(participant_bot); 27 | try{ 28 | let shouldContinue = true; 29 | for (let _command of _commands) { 30 | const next = await _command[1].run({m , sock: this.sock}) 31 | shouldContinue = next 32 | if(!shouldContinue) break 33 | } 34 | 35 | if(!shouldContinue) return 36 | 37 | const command = Array.from(commands.values()).find((v) => v.cmd.find((x) => x.toLowerCase() == m.commandWithoutPrefix.toLowerCase())); 38 | if(!command) return 39 | if(!m.withPrefix){ 40 | if(!command.options?.withoutPrefix) return 41 | } 42 | command.run({m , sock: this.sock}) 43 | } catch(e) { 44 | log.error(e) 45 | } 46 | } 47 | } 48 | 49 | module.exports = onMessageReceived -------------------------------------------------------------------------------- /commands/stalk/instagram.js: -------------------------------------------------------------------------------- 1 | const { default: axios } = require("axios") 2 | const { apis, react } = require("../../config.js") 3 | const Message = require("../../app/func/Message.js") 4 | 5 | module.exports = { 6 | name : "igstalk", 7 | description : "Instagram Stalking", 8 | menu : { 9 | label : 'stalk', 10 | example : "_username_", 11 | }, 12 | cmd : ['igstalk'], 13 | run : async({ m, sock }) => { 14 | if(!m.args[0]) return sock.sendMessage(m.from, { text: `Contoh : ${m.prefix}igstalk username` }) 15 | const message = new Message({m,sock}) 16 | message.react(react.process) 17 | axios.get(apis.velixs.endpoint+`/instagram?apikey=${apis.velixs.apikey}&username=${m.args[0]}`).then(async(res)=>{ 18 | let text = `` 19 | text += `┌──「 *STALKING*\n` 20 | text += `▢ *🔖 Name:* ${res.data.data.name}\n` 21 | text += `▢ *🔖 Username:* ${res.data.data.username}\n` 22 | text += `▢ *👥 Followers:* ${res.data.data.followers}\n` 23 | text += `▢ *🫂 Following:* ${res.data.data.following}\n` 24 | text += `▢ *🏝️ Posts:* ${res.data.data.posts}\n` 25 | text += `▢ *🔗 Link:* https://instagram.com/${res.data.data.username}\n` 26 | text += `└────────────` 27 | // return sock.sendMessage(m.from, { text: text }, { quoted: m }) 28 | await message.react(react.success) 29 | await sock.sendMessage(m.from, { 30 | text: text, 31 | contextInfo: { 32 | forwardingScore: 0, 33 | isForwarded: false, 34 | externalAdReply: { 35 | title: (`${res.data.data.name}`), 36 | body: (`${res.data.data.username}`), 37 | thumbnailUrl: (`${res.data.data.image}`), 38 | sourceUrl: (`https://www.instagram.com/${res.data.data.username}`), 39 | mediaType: 1, 40 | renderLargerThumbnail: false 41 | } 42 | } 43 | }, {quoted: m}) 44 | }).catch(async(err)=>{ 45 | await message.react(react.failed) 46 | if(err.response.data.message == 'user not found') return sock.sendMessage(m.from, { text: `Username ${m.args[0]} tidak ditemukan.` }, { quoted: m }) 47 | }) 48 | 49 | } 50 | } -------------------------------------------------------------------------------- /app/func/velixs.serialize.js: -------------------------------------------------------------------------------- 1 | const { 2 | extractMessageContent, 3 | jidNormalizedUser, 4 | proto, 5 | jidDecode 6 | } = require("@whiskeysockets/baileys") 7 | const { prefixs } = require("../../config.js") 8 | 9 | function getTypeMessage(message) { 10 | const type = Object.keys(message) 11 | var restype = (!['senderKeyDistributionMessage', 'messageContextInfo'].includes(type[0]) && type[0]) || // Sometimes message in the front 12 | (type.length >= 3 && type[1] !== 'messageContextInfo' && type[1]) || // Sometimes message in midle if mtype length is greater than or equal to 3 13 | type[type.length - 1] || Object.keys(message)[0] // common case 14 | return restype 15 | } 16 | 17 | function decodeJid(jid) { 18 | if (!jid) return jid 19 | if (/:\d+@/gi.test(jid)) { 20 | let decode = jidDecode(jid) || {} 21 | return decode.user && decode.server && decode.user + '@' + decode.server || jid 22 | } else return jid 23 | } 24 | 25 | exports.serialize = (conn, m, options = {}) => { 26 | if (!m) return m 27 | let M = proto.WebMessageInfo 28 | m = M.fromObject(m) 29 | if (m.key) { 30 | m.from = jidNormalizedUser(m.key.remoteJid || m.key.participant) 31 | m.fromMe = m.key.fromMe 32 | m.id = m.key.id 33 | m.isBot = m.id.startsWith("BAE5") && m.id.length == 16 34 | m.botNumber = jidNormalizedUser(conn.user?.id) 35 | m.isGroup = m.from.endsWith("@g.us") 36 | m.sender = jidNormalizedUser(m.fromMe && conn.user?.id || m.key.participant || m.from || "") 37 | } 38 | if (m.message) { 39 | m.type = getTypeMessage(m.message) 40 | m.msg = (m.type == 'viewOnceMessage' ? m.message[m.type].message[getTypeMessage(m.message[m.type].message)] : m.message[m.type]) 41 | m.message = extractMessageContent(m.message) 42 | m.mentions = m.msg?.contextInfo ? m.msg?.contextInfo.mentionedJid : [] 43 | m.quoted = m.msg?.contextInfo ? m.msg?.contextInfo.quotedMessage : null 44 | if (m.quoted) { 45 | m.quoted.type = getTypeMessage(m.quoted) 46 | m.quoted.msg = m.quoted[m.quoted.type] 47 | m.quoted.mentions = m.msg.contextInfo.mentionedJid 48 | m.quoted.id = m.msg.contextInfo.stanzaId 49 | m.quoted.sender = jidNormalizedUser(m.msg.contextInfo.participant || m.sender) 50 | m.quoted.from = m.from 51 | m.quoted.isGroup = m.quoted.from.endsWith("@g.us") 52 | m.quoted.isBot = m.quoted.id.startsWith("BAE5") && m.quoted.id == 16 53 | m.quoted.fromMe = (m.quoted.sender == jidNormalizedUser(conn.user && conn.user?.id)) 54 | m.quoted.text = m.quoted.msg?.text || m.quoted.msg?.caption || m.quoted.msg?.conversation || m.quoted.msg?.contentText || m.quoted.msg?.selectedDisplayText || m.quoted.msg?.title || "" 55 | let vM = m.quoted.fakeObj = M.fromObject({ 56 | key: { 57 | remoteJid: m.quoted.from, 58 | fromMe: m.quoted.fromMe, 59 | id: m.quoted.id 60 | }, 61 | message: m.quoted, 62 | ...(m.quoted.isGroup ? { participant: m.quoted.sender } : {}) 63 | }) 64 | m.quoted.delete = () => conn.sendMessage(m.quoted.from, { delete: vM.key }) 65 | } 66 | } 67 | m.body = m.message?.conversation || m.message?.[m.type]?.text || m.message?.[m.type]?.caption || m.message?.[m.type]?.contentText || m.message?.[m.type]?.selectedDisplayText || m.message?.[m.type]?.title || "" 68 | m.commandWithPrefix = m.body.split(/ +/).slice(0)[0] 69 | m.commandWithoutPrefix = prefixs.some(prefix => m.commandWithPrefix.startsWith(prefix)) ? m.commandWithPrefix.slice(1) : m.commandWithPrefix 70 | m.withPrefix = prefixs.filter(prefix => m.body.startsWith(prefix))[0] ?? null 71 | m.prefix = prefixs.filter(prefix => m.body.startsWith(prefix))[0] ?? prefixs[0] 72 | // m.args = message.split(" ").slice(1).filter(arg => { return arg.trim() !== '' }) 73 | m.args = m.body.split(/ +/).slice(1) 74 | m.arg = m.body.slice(m.commandWithPrefix.length+1) 75 | 76 | m.reply = (text) => { 77 | return conn.sendMessage(m.from, { text }, { quoted: m }) 78 | } 79 | return m 80 | } -------------------------------------------------------------------------------- /app/baileys/Socket.js: -------------------------------------------------------------------------------- 1 | const { default:makeWASocket, 2 | Browsers, 3 | DisconnectReason, 4 | fetchLatestBaileysVersion, 5 | useMultiFileAuthState, 6 | WASocket, 7 | makeInMemoryStore, 8 | jidDecode 9 | } = require("@whiskeysockets/baileys") 10 | const pino = require("pino") 11 | const fs = require('fs') 12 | const log = require("../func/log.js") 13 | const sessions = new Map() 14 | const retryCount = new Map() 15 | 16 | const credentials = { 17 | dir : "./storage/wa_credentials/", 18 | prefix : "_credentials" 19 | } 20 | 21 | const startSession = async(sessionId = 'ilsya') => { 22 | if (isSessionExistAndRunning(sessionId)) return getSession(sessionId) 23 | 24 | const { version } = await fetchLatestBaileysVersion(); 25 | // const store = makeInMemoryStore({ logger: pino().child({ level: 'silent', stream: 'store' }) }) 26 | // store.readFromFile(credentials.dir+sessionId+credentials.prefix+'/baileys_store.json') 27 | // store.writeToFile(credentials.dir+sessionId+credentials.prefix+'/baileys_store.json') 28 | const startSocket = async() => { 29 | const { state, saveCreds } = await useMultiFileAuthState(credentials.dir + sessionId + credentials.prefix) 30 | const sock = makeWASocket({ 31 | version, 32 | printQRInTerminal: true, 33 | auth: state, 34 | logger: pino({ level: "silent" }), 35 | markOnlineOnConnect: false, 36 | browser: ['VelixS', 'Safari', '3.0'] 37 | }); 38 | 39 | sessions.set(sessionId, { ...sock }) 40 | 41 | try{ 42 | sock.ev.on('connection.update', (update) => { 43 | const { connection, lastDisconnect } = update 44 | if (connection == "connecting") { 45 | log.debug(`SESSION : ${sessionId} Conecting.`) 46 | } 47 | if (connection === "close") { 48 | const code = lastDisconnect?.error?.output?.statusCode || lastDisconnect?.error?.output?.payload?.statusCode 49 | 50 | let retryAttempt = retryCount.get(sessionId) ?? 0; 51 | let shouldRetry; 52 | if (code != DisconnectReason.loggedOut && retryAttempt < 10) { 53 | shouldRetry = true; 54 | } 55 | if (shouldRetry) { 56 | retryAttempt++; 57 | } 58 | if (shouldRetry) { 59 | retryCount.set(sessionId, retryAttempt); 60 | startSocket(); 61 | } else { 62 | log.error(`SESSION : ${sessionId} Disconnected.`) 63 | retryCount.delete(sessionId); 64 | deleteSession(sessionId); 65 | } 66 | } 67 | if (connection == "open") { 68 | log.info(`SESSION : ${sessionId} Connected.`) 69 | retryCount.delete(sessionId); 70 | } 71 | }) 72 | sock.ev.on("creds.update", async () => { 73 | await saveCreds(); 74 | }) 75 | }catch(e){ 76 | log.error("SOCKET : "+e) 77 | } 78 | 79 | return sock 80 | } 81 | 82 | return startSocket() 83 | } 84 | 85 | const getSession = (sessionId = 'ilsya') => { 86 | return sessions.get(sessionId) 87 | } 88 | 89 | const isSessionExistAndRunning = (sessionId) => { 90 | if ( 91 | fs.existsSync(credentials.dir) && 92 | fs.existsSync(credentials.dir + sessionId + credentials.prefix) && 93 | fs.readdirSync(credentials.dir + sessionId + credentials.prefix).length && 94 | getSession(sessionId) 95 | ) { 96 | return true; 97 | } 98 | return false; 99 | } 100 | 101 | const shouldLoadSession = (sessionId) => { 102 | if ( 103 | fs.existsSync(credentials.dir) && 104 | fs.existsSync(credentials.dir + sessionId + credentials.prefix) && 105 | fs.readdirSync(credentials.dir + sessionId + credentials.prefix).length && 106 | !getSession(sessionId) 107 | ) { 108 | return true; 109 | } 110 | return false; 111 | } 112 | 113 | const loadSessionsFromStorage = async() => { 114 | if (!fs.existsSync(credentials.dir)) { 115 | fs.mkdirSync(credentials.dir); 116 | } 117 | fs.readdir(credentials.dir, async (err, dirs) => { 118 | if (err) { 119 | throw err; 120 | } 121 | for (const dir of dirs) { 122 | const sessionId = dir.split("_")[0]; 123 | if (!shouldLoadSession(sessionId)) continue; 124 | startSession(sessionId); 125 | } 126 | }) 127 | } 128 | 129 | const deleteSession = async(sessionId = 'ilsya') => { 130 | const session = getSession(sessionId) 131 | try{ 132 | await session?.logout() 133 | }catch{} 134 | session?.end(undefined); 135 | sessions.delete(sessionId); 136 | if (fs.existsSync(credentials.dir + sessionId + credentials.prefix)) { 137 | fs.rmSync(credentials.dir + sessionId + credentials.prefix, { force: true, recursive: true }); 138 | } 139 | } 140 | 141 | module.exports = { 142 | startSession, 143 | getSession, 144 | loadSessionsFromStorage 145 | } -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@adiwajshing/keyed-db@^0.2.4": 6 | "integrity" "sha512-yprSnAtj80/VKuDqRcFFLDYltoNV8tChNwFfIgcf6PGD4sjzWIBgs08pRuTqGH5mk5wgL6PBRSsMCZqtZwzFEw==" 7 | "resolved" "https://registry.npmjs.org/@adiwajshing/keyed-db/-/keyed-db-0.2.4.tgz" 8 | "version" "0.2.4" 9 | 10 | "@eshaz/web-worker@1.2.1": 11 | "integrity" "sha512-v5AKAVtM0toVD2rDCGjzhySWlXG/sG5HVialdzrxFKTAnFZNCjQelX0n2tPK0tE86jf4s3hpWlpRtOh8OObktg==" 12 | "resolved" "https://registry.npmjs.org/@eshaz/web-worker/-/web-worker-1.2.1.tgz" 13 | "version" "1.2.1" 14 | 15 | "@hapi/boom@^9.1.3": 16 | "integrity" "sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw==" 17 | "resolved" "https://registry.npmjs.org/@hapi/boom/-/boom-9.1.4.tgz" 18 | "version" "9.1.4" 19 | dependencies: 20 | "@hapi/hoek" "9.x.x" 21 | 22 | "@hapi/hoek@9.x.x": 23 | "integrity" "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" 24 | "resolved" "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" 25 | "version" "9.3.0" 26 | 27 | "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": 28 | "integrity" "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" 29 | "resolved" "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz" 30 | "version" "1.1.2" 31 | 32 | "@protobufjs/base64@^1.1.2": 33 | "integrity" "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" 34 | "resolved" "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz" 35 | "version" "1.1.2" 36 | 37 | "@protobufjs/codegen@^2.0.4": 38 | "integrity" "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" 39 | "resolved" "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz" 40 | "version" "2.0.4" 41 | 42 | "@protobufjs/eventemitter@^1.1.0": 43 | "integrity" "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" 44 | "resolved" "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz" 45 | "version" "1.1.0" 46 | 47 | "@protobufjs/fetch@^1.1.0": 48 | "integrity" "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==" 49 | "resolved" "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz" 50 | "version" "1.1.0" 51 | dependencies: 52 | "@protobufjs/aspromise" "^1.1.1" 53 | "@protobufjs/inquire" "^1.1.0" 54 | 55 | "@protobufjs/float@^1.0.2": 56 | "integrity" "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" 57 | "resolved" "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz" 58 | "version" "1.0.2" 59 | 60 | "@protobufjs/inquire@^1.1.0": 61 | "integrity" "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" 62 | "resolved" "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz" 63 | "version" "1.1.0" 64 | 65 | "@protobufjs/path@^1.1.2": 66 | "integrity" "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" 67 | "resolved" "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz" 68 | "version" "1.1.2" 69 | 70 | "@protobufjs/pool@^1.1.0": 71 | "integrity" "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" 72 | "resolved" "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz" 73 | "version" "1.1.0" 74 | 75 | "@protobufjs/utf8@^1.1.0": 76 | "integrity" "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" 77 | "resolved" "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" 78 | "version" "1.1.0" 79 | 80 | "@ptkdev/logger@^1.8.0": 81 | "integrity" "sha512-gwg0pleMUyzsZIErDtzz2OP4F2Q3nzRGjhUTP+831/eogq17LpG7PgbHo1n1HZ/dlz/v2xvotfUcPLO3IzwEVQ==" 82 | "resolved" "https://registry.npmjs.org/@ptkdev/logger/-/logger-1.8.0.tgz" 83 | "version" "1.8.0" 84 | dependencies: 85 | "chalk" "^4.1.2" 86 | "fs-extra" "^10.0.0" 87 | "lowdb" "^1.0.0" 88 | "rotating-file-stream" "^2.1.5" 89 | "strip-ansi" "^6.0.0" 90 | 91 | "@thi.ng/bitstream@^2.2.12": 92 | "integrity" "sha512-aW7cSEaf680nfCIW42C/Hur12Toy8ST3XLRM8OxHXHZySq9cPrJ5stm+uilHlp+L00yBvgAoKk6ZWkDQ8mtYbA==" 93 | "resolved" "https://registry.npmjs.org/@thi.ng/bitstream/-/bitstream-2.2.28.tgz" 94 | "version" "2.2.28" 95 | dependencies: 96 | "@thi.ng/errors" "^2.3.5" 97 | 98 | "@thi.ng/errors@^2.3.5": 99 | "integrity" "sha512-WH2p02goxTCF11p8H/4VIl8RmPZ7rJ00ogFOrQX7mO3zxi1/vTqygR7sVuJszlx5a5eOrMglNivyqNZwr912cg==" 100 | "resolved" "https://registry.npmjs.org/@thi.ng/errors/-/errors-2.3.5.tgz" 101 | "version" "2.3.5" 102 | 103 | "@tokenizer/token@^0.3.0": 104 | "integrity" "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" 105 | "resolved" "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" 106 | "version" "0.3.0" 107 | 108 | "@types/long@^4.0.0", "@types/long@^4.0.1": 109 | "integrity" "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" 110 | "resolved" "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" 111 | "version" "4.0.2" 112 | 113 | "@types/node@^10.1.0": 114 | "integrity" "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" 115 | "resolved" "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz" 116 | "version" "10.17.60" 117 | 118 | "@types/node@>=13.7.0": 119 | "integrity" "sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==" 120 | "resolved" "https://registry.npmjs.org/@types/node/-/node-20.8.0.tgz" 121 | "version" "20.8.0" 122 | 123 | "@wasm-audio-decoders/common@9.0.1": 124 | "integrity" "sha512-s4KxPsxhD6e+EtjmHPzTmKJSJTEXHGYlBzUGGLN/plV01x3RecybW73nIMtdLLXL8k/zQ8HYFcA6d9lqCJcDjQ==" 125 | "resolved" "https://registry.npmjs.org/@wasm-audio-decoders/common/-/common-9.0.1.tgz" 126 | "version" "9.0.1" 127 | dependencies: 128 | "@eshaz/web-worker" "1.2.1" 129 | 130 | "@wasm-audio-decoders/flac@^0.1.12": 131 | "integrity" "sha512-Ah0hurb+qO3kBjuBrmOSIDqe8DWkd/g5feoyd8jjoM46l//OmVrsG9lW0rnDJAKMhyMeRuWwCy/kv/SswzrW8Q==" 132 | "resolved" "https://registry.npmjs.org/@wasm-audio-decoders/flac/-/flac-0.1.13.tgz" 133 | "version" "0.1.13" 134 | dependencies: 135 | "@wasm-audio-decoders/common" "9.0.1" 136 | "codec-parser" "2.4.3" 137 | 138 | "@wasm-audio-decoders/ogg-vorbis@^0.1.7": 139 | "integrity" "sha512-YwPSxN1xqGrVpON0OvUHwBnboKMA0P7n08j2K2SgZr5MI6ODWp2viW66XLL+gpNZBqRJhw+RdnyTUkZiZ70JOA==" 140 | "resolved" "https://registry.npmjs.org/@wasm-audio-decoders/ogg-vorbis/-/ogg-vorbis-0.1.8.tgz" 141 | "version" "0.1.8" 142 | dependencies: 143 | "@wasm-audio-decoders/common" "9.0.1" 144 | "codec-parser" "2.4.3" 145 | 146 | "@whiskeysockets/baileys@^6.5.0": 147 | "integrity" "sha512-ary0RNivsrl56wnn0ta37LwVGpCDabthERCV5lHHsbhJJFfp04g6+reiQAKvxo61oYxwxKjqq33kvID+AOr++A==" 148 | "resolved" "https://registry.npmjs.org/@whiskeysockets/baileys/-/baileys-6.5.0.tgz" 149 | "version" "6.5.0" 150 | dependencies: 151 | "@adiwajshing/keyed-db" "^0.2.4" 152 | "@hapi/boom" "^9.1.3" 153 | "audio-decode" "^2.1.3" 154 | "axios" "^1.3.3" 155 | "cache-manager" "^5.2.2" 156 | "futoin-hkdf" "^1.5.1" 157 | "libphonenumber-js" "^1.10.20" 158 | "libsignal" "github:adiwajshing/libsignal-node" 159 | "music-metadata" "^7.12.3" 160 | "node-cache" "^5.1.2" 161 | "pino" "^7.0.0" 162 | "protobufjs" "^6.11.3" 163 | "uuid" "^9.0.0" 164 | "ws" "^8.13.0" 165 | 166 | "abort-controller@^3.0.0": 167 | "integrity" "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==" 168 | "resolved" "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" 169 | "version" "3.0.0" 170 | dependencies: 171 | "event-target-shim" "^5.0.0" 172 | 173 | "accepts@~1.3.8": 174 | "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" 175 | "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" 176 | "version" "1.3.8" 177 | dependencies: 178 | "mime-types" "~2.1.34" 179 | "negotiator" "0.6.3" 180 | 181 | "ansi-regex@^5.0.1": 182 | "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" 183 | "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" 184 | "version" "5.0.1" 185 | 186 | "ansi-styles@^4.1.0": 187 | "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" 188 | "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" 189 | "version" "4.3.0" 190 | dependencies: 191 | "color-convert" "^2.0.1" 192 | 193 | "array-flatten@1.1.1": 194 | "integrity" "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" 195 | "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" 196 | "version" "1.1.1" 197 | 198 | "asynckit@^0.4.0": 199 | "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" 200 | "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" 201 | "version" "0.4.0" 202 | 203 | "atomic-sleep@^1.0.0": 204 | "integrity" "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" 205 | "resolved" "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" 206 | "version" "1.0.0" 207 | 208 | "audio-buffer@^5.0.0": 209 | "integrity" "sha512-gsDyj1wwUp8u7NBB+eW6yhLb9ICf+0eBmDX8NGaAS00w8/fLqFdxUlL5Ge/U8kB64DlQhdonxYC59dXy1J7H/w==" 210 | "resolved" "https://registry.npmjs.org/audio-buffer/-/audio-buffer-5.0.0.tgz" 211 | "version" "5.0.0" 212 | 213 | "audio-decode@^2.1.3": 214 | "integrity" "sha512-+dnOsHalaEwYRDOyr+A89cp9Ms7WBaFaPcFuLI1/CJO7lVPUJQyTJWEnZktfh9Aw6zCbdD48jHMg8m33pIt3NQ==" 215 | "resolved" "https://registry.npmjs.org/audio-decode/-/audio-decode-2.1.5.tgz" 216 | "version" "2.1.5" 217 | dependencies: 218 | "@wasm-audio-decoders/flac" "^0.1.12" 219 | "@wasm-audio-decoders/ogg-vorbis" "^0.1.7" 220 | "audio-buffer" "^5.0.0" 221 | "audio-type" "^2.2.0" 222 | "mpg123-decoder" "^0.4.8" 223 | "node-wav" "^0.0.2" 224 | "ogg-opus-decoder" "^1.6.4" 225 | "qoa-format" "^1.0.0" 226 | 227 | "audio-type@^2.2.0": 228 | "integrity" "sha512-En9AY6EG1qYqEy5L/quryzbA4akBpJrnBZNxeKTqGHC2xT9Qc4aZ8b7CcbOMFTTc/MGdoNyp+SN4zInZNKxMYA==" 229 | "resolved" "https://registry.npmjs.org/audio-type/-/audio-type-2.2.1.tgz" 230 | "version" "2.2.1" 231 | 232 | "axios@^1.3.3", "axios@^1.5.1": 233 | "integrity" "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==" 234 | "resolved" "https://registry.npmjs.org/axios/-/axios-1.5.1.tgz" 235 | "version" "1.5.1" 236 | dependencies: 237 | "follow-redirects" "^1.15.0" 238 | "form-data" "^4.0.0" 239 | "proxy-from-env" "^1.1.0" 240 | 241 | "base64-js@^1.3.1": 242 | "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" 243 | "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" 244 | "version" "1.5.1" 245 | 246 | "bl@^4.0.3": 247 | "integrity" "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==" 248 | "resolved" "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" 249 | "version" "4.1.0" 250 | dependencies: 251 | "buffer" "^5.5.0" 252 | "inherits" "^2.0.4" 253 | "readable-stream" "^3.4.0" 254 | 255 | "body-parser@1.20.1": 256 | "integrity" "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==" 257 | "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz" 258 | "version" "1.20.1" 259 | dependencies: 260 | "bytes" "3.1.2" 261 | "content-type" "~1.0.4" 262 | "debug" "2.6.9" 263 | "depd" "2.0.0" 264 | "destroy" "1.2.0" 265 | "http-errors" "2.0.0" 266 | "iconv-lite" "0.4.24" 267 | "on-finished" "2.4.1" 268 | "qs" "6.11.0" 269 | "raw-body" "2.5.1" 270 | "type-is" "~1.6.18" 271 | "unpipe" "1.0.0" 272 | 273 | "buffer@^5.5.0": 274 | "integrity" "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==" 275 | "resolved" "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" 276 | "version" "5.7.1" 277 | dependencies: 278 | "base64-js" "^1.3.1" 279 | "ieee754" "^1.1.13" 280 | 281 | "buffer@^6.0.3": 282 | "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" 283 | "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" 284 | "version" "6.0.3" 285 | dependencies: 286 | "base64-js" "^1.3.1" 287 | "ieee754" "^1.2.1" 288 | 289 | "bytes@3.1.2": 290 | "integrity" "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" 291 | "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" 292 | "version" "3.1.2" 293 | 294 | "cache-manager@^5.2.2": 295 | "integrity" "sha512-9OErI8fksFkxAMJ8Mco0aiZSdphyd90HcKiOMJQncSlU1yq/9lHHxrT8PDayxrmr9IIIZPOAEfXuGSD7g29uog==" 296 | "resolved" "https://registry.npmjs.org/cache-manager/-/cache-manager-5.2.3.tgz" 297 | "version" "5.2.3" 298 | dependencies: 299 | "lodash.clonedeep" "^4.5.0" 300 | "lru-cache" "^9.1.2" 301 | 302 | "call-bind@^1.0.0": 303 | "integrity" "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==" 304 | "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz" 305 | "version" "1.0.5" 306 | dependencies: 307 | "function-bind" "^1.1.2" 308 | "get-intrinsic" "^1.2.1" 309 | "set-function-length" "^1.1.1" 310 | 311 | "chalk@^4.1.2": 312 | "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" 313 | "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" 314 | "version" "4.1.2" 315 | dependencies: 316 | "ansi-styles" "^4.1.0" 317 | "supports-color" "^7.1.0" 318 | 319 | "chownr@^1.1.1": 320 | "integrity" "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" 321 | "resolved" "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz" 322 | "version" "1.1.4" 323 | 324 | "clone@2.x": 325 | "integrity" "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==" 326 | "resolved" "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" 327 | "version" "2.1.2" 328 | 329 | "codec-parser@2.4.3": 330 | "integrity" "sha512-3dAvFtdpxn4YLstqsB2ZiJXXNg7n1j7R5ONeDuk+2kBkb39PwrCRytOFHlSWA8q5jCjW3PumeMv9q37bFHsijg==" 331 | "resolved" "https://registry.npmjs.org/codec-parser/-/codec-parser-2.4.3.tgz" 332 | "version" "2.4.3" 333 | 334 | "color-convert@^2.0.1": 335 | "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" 336 | "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" 337 | "version" "2.0.1" 338 | dependencies: 339 | "color-name" "~1.1.4" 340 | 341 | "color-name@^1.0.0", "color-name@~1.1.4": 342 | "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" 343 | "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" 344 | "version" "1.1.4" 345 | 346 | "color-string@^1.9.0": 347 | "integrity" "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==" 348 | "resolved" "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" 349 | "version" "1.9.1" 350 | dependencies: 351 | "color-name" "^1.0.0" 352 | "simple-swizzle" "^0.2.2" 353 | 354 | "color@^4.2.3": 355 | "integrity" "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==" 356 | "resolved" "https://registry.npmjs.org/color/-/color-4.2.3.tgz" 357 | "version" "4.2.3" 358 | dependencies: 359 | "color-convert" "^2.0.1" 360 | "color-string" "^1.9.0" 361 | 362 | "combined-stream@^1.0.8": 363 | "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" 364 | "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" 365 | "version" "1.0.8" 366 | dependencies: 367 | "delayed-stream" "~1.0.0" 368 | 369 | "content-disposition@0.5.4": 370 | "integrity" "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" 371 | "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" 372 | "version" "0.5.4" 373 | dependencies: 374 | "safe-buffer" "5.2.1" 375 | 376 | "content-type@^1.0.5", "content-type@~1.0.4": 377 | "integrity" "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" 378 | "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" 379 | "version" "1.0.5" 380 | 381 | "cookie-signature@1.0.6": 382 | "integrity" "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" 383 | "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" 384 | "version" "1.0.6" 385 | 386 | "cookie@0.5.0": 387 | "integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" 388 | "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" 389 | "version" "0.5.0" 390 | 391 | "curve25519-js@^0.0.4": 392 | "integrity" "sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w==" 393 | "resolved" "https://registry.npmjs.org/curve25519-js/-/curve25519-js-0.0.4.tgz" 394 | "version" "0.0.4" 395 | 396 | "debug@^4.3.4": 397 | "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" 398 | "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" 399 | "version" "4.3.4" 400 | dependencies: 401 | "ms" "2.1.2" 402 | 403 | "debug@2.6.9": 404 | "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" 405 | "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 406 | "version" "2.6.9" 407 | dependencies: 408 | "ms" "2.0.0" 409 | 410 | "decompress-response@^6.0.0": 411 | "integrity" "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==" 412 | "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" 413 | "version" "6.0.0" 414 | dependencies: 415 | "mimic-response" "^3.1.0" 416 | 417 | "deep-extend@^0.6.0": 418 | "integrity" "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" 419 | "resolved" "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" 420 | "version" "0.6.0" 421 | 422 | "define-data-property@^1.1.1": 423 | "integrity" "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==" 424 | "resolved" "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" 425 | "version" "1.1.1" 426 | dependencies: 427 | "get-intrinsic" "^1.2.1" 428 | "gopd" "^1.0.1" 429 | "has-property-descriptors" "^1.0.0" 430 | 431 | "delayed-stream@~1.0.0": 432 | "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" 433 | "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" 434 | "version" "1.0.0" 435 | 436 | "depd@2.0.0": 437 | "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" 438 | "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" 439 | "version" "2.0.0" 440 | 441 | "destroy@1.2.0": 442 | "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" 443 | "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" 444 | "version" "1.2.0" 445 | 446 | "detect-libc@^2.0.0", "detect-libc@^2.0.1": 447 | "integrity" "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==" 448 | "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz" 449 | "version" "2.0.2" 450 | 451 | "duplexify@^4.1.2": 452 | "integrity" "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==" 453 | "resolved" "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz" 454 | "version" "4.1.2" 455 | dependencies: 456 | "end-of-stream" "^1.4.1" 457 | "inherits" "^2.0.3" 458 | "readable-stream" "^3.1.1" 459 | "stream-shift" "^1.0.0" 460 | 461 | "ee-first@1.1.1": 462 | "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" 463 | "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" 464 | "version" "1.1.1" 465 | 466 | "encodeurl@~1.0.2": 467 | "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" 468 | "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" 469 | "version" "1.0.2" 470 | 471 | "end-of-stream@^1.1.0", "end-of-stream@^1.4.1": 472 | "integrity" "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==" 473 | "resolved" "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" 474 | "version" "1.4.4" 475 | dependencies: 476 | "once" "^1.4.0" 477 | 478 | "escape-html@~1.0.3": 479 | "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" 480 | "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" 481 | "version" "1.0.3" 482 | 483 | "etag@~1.8.1": 484 | "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" 485 | "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" 486 | "version" "1.8.1" 487 | 488 | "event-target-shim@^5.0.0": 489 | "integrity" "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" 490 | "resolved" "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" 491 | "version" "5.0.1" 492 | 493 | "events@^3.3.0": 494 | "integrity" "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" 495 | "resolved" "https://registry.npmjs.org/events/-/events-3.3.0.tgz" 496 | "version" "3.3.0" 497 | 498 | "expand-template@^2.0.3": 499 | "integrity" "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==" 500 | "resolved" "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" 501 | "version" "2.0.3" 502 | 503 | "express@^4.18.2": 504 | "integrity" "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==" 505 | "resolved" "https://registry.npmjs.org/express/-/express-4.18.2.tgz" 506 | "version" "4.18.2" 507 | dependencies: 508 | "accepts" "~1.3.8" 509 | "array-flatten" "1.1.1" 510 | "body-parser" "1.20.1" 511 | "content-disposition" "0.5.4" 512 | "content-type" "~1.0.4" 513 | "cookie" "0.5.0" 514 | "cookie-signature" "1.0.6" 515 | "debug" "2.6.9" 516 | "depd" "2.0.0" 517 | "encodeurl" "~1.0.2" 518 | "escape-html" "~1.0.3" 519 | "etag" "~1.8.1" 520 | "finalhandler" "1.2.0" 521 | "fresh" "0.5.2" 522 | "http-errors" "2.0.0" 523 | "merge-descriptors" "1.0.1" 524 | "methods" "~1.1.2" 525 | "on-finished" "2.4.1" 526 | "parseurl" "~1.3.3" 527 | "path-to-regexp" "0.1.7" 528 | "proxy-addr" "~2.0.7" 529 | "qs" "6.11.0" 530 | "range-parser" "~1.2.1" 531 | "safe-buffer" "5.2.1" 532 | "send" "0.18.0" 533 | "serve-static" "1.15.0" 534 | "setprototypeof" "1.2.0" 535 | "statuses" "2.0.1" 536 | "type-is" "~1.6.18" 537 | "utils-merge" "1.0.1" 538 | "vary" "~1.1.2" 539 | 540 | "fast-redact@^3.0.0", "fast-redact@^3.1.1": 541 | "integrity" "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==" 542 | "resolved" "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz" 543 | "version" "3.3.0" 544 | 545 | "file-type@^16.5.4": 546 | "integrity" "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==" 547 | "resolved" "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz" 548 | "version" "16.5.4" 549 | dependencies: 550 | "readable-web-to-node-stream" "^3.0.0" 551 | "strtok3" "^6.2.4" 552 | "token-types" "^4.1.1" 553 | 554 | "finalhandler@1.2.0": 555 | "integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" 556 | "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" 557 | "version" "1.2.0" 558 | dependencies: 559 | "debug" "2.6.9" 560 | "encodeurl" "~1.0.2" 561 | "escape-html" "~1.0.3" 562 | "on-finished" "2.4.1" 563 | "parseurl" "~1.3.3" 564 | "statuses" "2.0.1" 565 | "unpipe" "~1.0.0" 566 | 567 | "follow-redirects@^1.15.0": 568 | "integrity" "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" 569 | "resolved" "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" 570 | "version" "1.15.3" 571 | 572 | "form-data@^4.0.0": 573 | "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==" 574 | "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" 575 | "version" "4.0.0" 576 | dependencies: 577 | "asynckit" "^0.4.0" 578 | "combined-stream" "^1.0.8" 579 | "mime-types" "^2.1.12" 580 | 581 | "forwarded@0.2.0": 582 | "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" 583 | "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" 584 | "version" "0.2.0" 585 | 586 | "fresh@0.5.2": 587 | "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" 588 | "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" 589 | "version" "0.5.2" 590 | 591 | "fs-constants@^1.0.0": 592 | "integrity" "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" 593 | "resolved" "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" 594 | "version" "1.0.0" 595 | 596 | "fs-extra@^10.0.0": 597 | "integrity" "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==" 598 | "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" 599 | "version" "10.1.0" 600 | dependencies: 601 | "graceful-fs" "^4.2.0" 602 | "jsonfile" "^6.0.1" 603 | "universalify" "^2.0.0" 604 | 605 | "function-bind@^1.1.2": 606 | "integrity" "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" 607 | "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" 608 | "version" "1.1.2" 609 | 610 | "futoin-hkdf@^1.5.1": 611 | "integrity" "sha512-SewY5KdMpaoCeh7jachEWFsh1nNlaDjNHZXWqL5IGwtpEYHTgkr2+AMCgNwKWkcc0wpSYrZfR7he4WdmHFtDxQ==" 612 | "resolved" "https://registry.npmjs.org/futoin-hkdf/-/futoin-hkdf-1.5.3.tgz" 613 | "version" "1.5.3" 614 | 615 | "get-intrinsic@^1.0.2", "get-intrinsic@^1.1.3", "get-intrinsic@^1.2.1", "get-intrinsic@^1.2.2": 616 | "integrity" "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==" 617 | "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz" 618 | "version" "1.2.2" 619 | dependencies: 620 | "function-bind" "^1.1.2" 621 | "has-proto" "^1.0.1" 622 | "has-symbols" "^1.0.3" 623 | "hasown" "^2.0.0" 624 | 625 | "github-from-package@0.0.0": 626 | "integrity" "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" 627 | "resolved" "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" 628 | "version" "0.0.0" 629 | 630 | "gopd@^1.0.1": 631 | "integrity" "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==" 632 | "resolved" "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" 633 | "version" "1.0.1" 634 | dependencies: 635 | "get-intrinsic" "^1.1.3" 636 | 637 | "graceful-fs@^4.1.3", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0": 638 | "integrity" "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" 639 | "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" 640 | "version" "4.2.11" 641 | 642 | "has-flag@^4.0.0": 643 | "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" 644 | "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" 645 | "version" "4.0.0" 646 | 647 | "has-property-descriptors@^1.0.0": 648 | "integrity" "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==" 649 | "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz" 650 | "version" "1.0.1" 651 | dependencies: 652 | "get-intrinsic" "^1.2.2" 653 | 654 | "has-proto@^1.0.1": 655 | "integrity" "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" 656 | "resolved" "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" 657 | "version" "1.0.1" 658 | 659 | "has-symbols@^1.0.3": 660 | "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" 661 | "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" 662 | "version" "1.0.3" 663 | 664 | "hasown@^2.0.0": 665 | "integrity" "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==" 666 | "resolved" "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" 667 | "version" "2.0.0" 668 | dependencies: 669 | "function-bind" "^1.1.2" 670 | 671 | "http-errors@2.0.0": 672 | "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" 673 | "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" 674 | "version" "2.0.0" 675 | dependencies: 676 | "depd" "2.0.0" 677 | "inherits" "2.0.4" 678 | "setprototypeof" "1.2.0" 679 | "statuses" "2.0.1" 680 | "toidentifier" "1.0.1" 681 | 682 | "iconv-lite@0.4.24": 683 | "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" 684 | "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" 685 | "version" "0.4.24" 686 | dependencies: 687 | "safer-buffer" ">= 2.1.2 < 3" 688 | 689 | "ieee754@^1.1.13", "ieee754@^1.2.1": 690 | "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" 691 | "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" 692 | "version" "1.2.1" 693 | 694 | "inherits@^2.0.3", "inherits@^2.0.4", "inherits@2.0.4": 695 | "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 696 | "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" 697 | "version" "2.0.4" 698 | 699 | "ini@~1.3.0": 700 | "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" 701 | "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" 702 | "version" "1.3.8" 703 | 704 | "ipaddr.js@1.9.1": 705 | "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" 706 | "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" 707 | "version" "1.9.1" 708 | 709 | "is-arrayish@^0.3.1": 710 | "integrity" "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" 711 | "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" 712 | "version" "0.3.2" 713 | 714 | "is-promise@^2.1.0": 715 | "integrity" "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" 716 | "resolved" "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz" 717 | "version" "2.2.2" 718 | 719 | "jsonfile@^6.0.1": 720 | "integrity" "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==" 721 | "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" 722 | "version" "6.1.0" 723 | dependencies: 724 | "universalify" "^2.0.0" 725 | optionalDependencies: 726 | "graceful-fs" "^4.1.6" 727 | 728 | "libphonenumber-js@^1.10.20": 729 | "integrity" "sha512-eeHcvGafEYCaKB4fo2uBINfG7j7PcGwBHUaTVfbwl/6KcjCgIKNlIOsSXVRp9BH10NQwmvvk+nQ1e/Yp4BGB7w==" 730 | "resolved" "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.45.tgz" 731 | "version" "1.10.45" 732 | 733 | "libsignal@github:adiwajshing/libsignal-node": 734 | "resolved" "git+ssh://git@github.com/adiwajshing/libsignal-node.git#11dbd962ea108187c79a7c46fe4d6f790e23da97" 735 | "version" "2.0.1" 736 | dependencies: 737 | "curve25519-js" "^0.0.4" 738 | "protobufjs" "6.8.8" 739 | 740 | "lodash.clonedeep@^4.5.0": 741 | "integrity" "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" 742 | "resolved" "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz" 743 | "version" "4.5.0" 744 | 745 | "lodash@4": 746 | "integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" 747 | "resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 748 | "version" "4.17.21" 749 | 750 | "long@^4.0.0": 751 | "integrity" "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" 752 | "resolved" "https://registry.npmjs.org/long/-/long-4.0.0.tgz" 753 | "version" "4.0.0" 754 | 755 | "lowdb@^1.0.0": 756 | "integrity" "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==" 757 | "resolved" "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz" 758 | "version" "1.0.0" 759 | dependencies: 760 | "graceful-fs" "^4.1.3" 761 | "is-promise" "^2.1.0" 762 | "lodash" "4" 763 | "pify" "^3.0.0" 764 | "steno" "^0.4.1" 765 | 766 | "lru-cache@^6.0.0": 767 | "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" 768 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" 769 | "version" "6.0.0" 770 | dependencies: 771 | "yallist" "^4.0.0" 772 | 773 | "lru-cache@^9.1.2": 774 | "integrity" "sha512-ERJq3FOzJTxBbFjZ7iDs+NiK4VI9Wz+RdrrAB8dio1oV+YvdPzUEE4QNiT2VD51DkIbCYRUUzCRkssXCHqSnKQ==" 775 | "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.2.tgz" 776 | "version" "9.1.2" 777 | 778 | "media-typer@^1.1.0": 779 | "integrity" "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==" 780 | "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz" 781 | "version" "1.1.0" 782 | 783 | "media-typer@0.3.0": 784 | "integrity" "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" 785 | "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" 786 | "version" "0.3.0" 787 | 788 | "merge-descriptors@1.0.1": 789 | "integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" 790 | "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" 791 | "version" "1.0.1" 792 | 793 | "methods@~1.1.2": 794 | "integrity" "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" 795 | "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" 796 | "version" "1.1.2" 797 | 798 | "mime-db@1.52.0": 799 | "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" 800 | "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" 801 | "version" "1.52.0" 802 | 803 | "mime-types@^2.1.12", "mime-types@~2.1.24", "mime-types@~2.1.34": 804 | "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" 805 | "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" 806 | "version" "2.1.35" 807 | dependencies: 808 | "mime-db" "1.52.0" 809 | 810 | "mime@1.6.0": 811 | "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 812 | "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" 813 | "version" "1.6.0" 814 | 815 | "mimic-response@^3.1.0": 816 | "integrity" "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" 817 | "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" 818 | "version" "3.1.0" 819 | 820 | "minimist@^1.2.0", "minimist@^1.2.3": 821 | "integrity" "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" 822 | "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" 823 | "version" "1.2.8" 824 | 825 | "mkdirp-classic@^0.5.2", "mkdirp-classic@^0.5.3": 826 | "integrity" "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" 827 | "resolved" "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" 828 | "version" "0.5.3" 829 | 830 | "mpg123-decoder@^0.4.8": 831 | "integrity" "sha512-HXs8vbPjiFM0NOZ45T3C5i7mpYGEYhjH37SnFA907lOb9c93DQL40cDjerxj65IMwAYyPFq1aUjtDOjyR7O0gQ==" 832 | "resolved" "https://registry.npmjs.org/mpg123-decoder/-/mpg123-decoder-0.4.8.tgz" 833 | "version" "0.4.8" 834 | dependencies: 835 | "@wasm-audio-decoders/common" "9.0.1" 836 | 837 | "ms@2.0.0": 838 | "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" 839 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" 840 | "version" "2.0.0" 841 | 842 | "ms@2.1.2": 843 | "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" 844 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" 845 | "version" "2.1.2" 846 | 847 | "ms@2.1.3": 848 | "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" 849 | "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" 850 | "version" "2.1.3" 851 | 852 | "music-metadata@^7.12.3": 853 | "integrity" "sha512-eRRoEMhhYdth2Ws24FmkvIqrtkIBE9sqjHbrRNpkg2Iux3zc37PQKRv2/r/mTtELb7XlB1uWC2UcKKX7BzNMGA==" 854 | "resolved" "https://registry.npmjs.org/music-metadata/-/music-metadata-7.13.4.tgz" 855 | "version" "7.13.4" 856 | dependencies: 857 | "@tokenizer/token" "^0.3.0" 858 | "content-type" "^1.0.5" 859 | "debug" "^4.3.4" 860 | "file-type" "^16.5.4" 861 | "media-typer" "^1.1.0" 862 | "strtok3" "^6.3.0" 863 | "token-types" "^4.2.1" 864 | 865 | "napi-build-utils@^1.0.1": 866 | "integrity" "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" 867 | "resolved" "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz" 868 | "version" "1.0.2" 869 | 870 | "negotiator@0.6.3": 871 | "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" 872 | "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" 873 | "version" "0.6.3" 874 | 875 | "node-abi@^3.3.0": 876 | "integrity" "sha512-2s6B2CWZM//kPgwnuI0KrYwNjfdByE25zvAaEpq9IH4zcNsarH8Ihu/UuX6XMPEogDAxkuUFeZn60pXNHAqn3A==" 877 | "resolved" "https://registry.npmjs.org/node-abi/-/node-abi-3.47.0.tgz" 878 | "version" "3.47.0" 879 | dependencies: 880 | "semver" "^7.3.5" 881 | 882 | "node-addon-api@^5.0.0": 883 | "integrity" "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" 884 | "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz" 885 | "version" "5.1.0" 886 | 887 | "node-cache@^5.1.2": 888 | "integrity" "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==" 889 | "resolved" "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz" 890 | "version" "5.1.2" 891 | dependencies: 892 | "clone" "2.x" 893 | 894 | "node-wav@^0.0.2": 895 | "integrity" "sha512-M6Rm/bbG6De/gKGxOpeOobx/dnGuP0dz40adqx38boqHhlWssBJZgLCPBNtb9NkrmnKYiV04xELq+R6PFOnoLA==" 896 | "resolved" "https://registry.npmjs.org/node-wav/-/node-wav-0.0.2.tgz" 897 | "version" "0.0.2" 898 | 899 | "object-inspect@^1.9.0": 900 | "integrity" "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" 901 | "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" 902 | "version" "1.13.1" 903 | 904 | "ogg-opus-decoder@^1.6.4": 905 | "integrity" "sha512-7NjCePv+XAcfsPdVhVjrKdrKc2BUAxhzkSY9ySOv3FSgqymu1J90J7vQRtSd2DoStFASznmJr5LB9j/EXrJZfQ==" 906 | "resolved" "https://registry.npmjs.org/ogg-opus-decoder/-/ogg-opus-decoder-1.6.5.tgz" 907 | "version" "1.6.5" 908 | dependencies: 909 | "@wasm-audio-decoders/common" "9.0.1" 910 | "codec-parser" "2.4.3" 911 | "opus-decoder" "0.7.1" 912 | 913 | "on-exit-leak-free@^0.2.0": 914 | "integrity" "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" 915 | "resolved" "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz" 916 | "version" "0.2.0" 917 | 918 | "on-exit-leak-free@^2.1.0": 919 | "integrity" "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==" 920 | "resolved" "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz" 921 | "version" "2.1.2" 922 | 923 | "on-finished@2.4.1": 924 | "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" 925 | "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" 926 | "version" "2.4.1" 927 | dependencies: 928 | "ee-first" "1.1.1" 929 | 930 | "once@^1.3.1", "once@^1.4.0": 931 | "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" 932 | "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" 933 | "version" "1.4.0" 934 | dependencies: 935 | "wrappy" "1" 936 | 937 | "opus-decoder@0.7.1": 938 | "integrity" "sha512-AOFCMKLn7LJm8pOkksY5TsW/6+XmNyh1OQS9gxmdOGHLNYoOBrjSfc0nPNcmUMGEzOrTqZtPi8VJ/ABs2Hndvg==" 939 | "resolved" "https://registry.npmjs.org/opus-decoder/-/opus-decoder-0.7.1.tgz" 940 | "version" "0.7.1" 941 | dependencies: 942 | "@wasm-audio-decoders/common" "9.0.1" 943 | 944 | "parseurl@~1.3.3": 945 | "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 946 | "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" 947 | "version" "1.3.3" 948 | 949 | "path-to-regexp@0.1.7": 950 | "integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" 951 | "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" 952 | "version" "0.1.7" 953 | 954 | "peek-readable@^4.1.0": 955 | "integrity" "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" 956 | "resolved" "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" 957 | "version" "4.1.0" 958 | 959 | "pify@^3.0.0": 960 | "integrity" "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" 961 | "resolved" "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" 962 | "version" "3.0.0" 963 | 964 | "pino-abstract-transport@v0.5.0": 965 | "integrity" "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==" 966 | "resolved" "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz" 967 | "version" "0.5.0" 968 | dependencies: 969 | "duplexify" "^4.1.2" 970 | "split2" "^4.0.0" 971 | 972 | "pino-abstract-transport@v1.1.0": 973 | "integrity" "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==" 974 | "resolved" "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz" 975 | "version" "1.1.0" 976 | dependencies: 977 | "readable-stream" "^4.0.0" 978 | "split2" "^4.0.0" 979 | 980 | "pino-std-serializers@^4.0.0": 981 | "integrity" "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" 982 | "resolved" "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz" 983 | "version" "4.0.0" 984 | 985 | "pino-std-serializers@^6.0.0": 986 | "integrity" "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" 987 | "resolved" "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz" 988 | "version" "6.2.2" 989 | 990 | "pino@^7.0.0": 991 | "integrity" "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==" 992 | "resolved" "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz" 993 | "version" "7.11.0" 994 | dependencies: 995 | "atomic-sleep" "^1.0.0" 996 | "fast-redact" "^3.0.0" 997 | "on-exit-leak-free" "^0.2.0" 998 | "pino-abstract-transport" "v0.5.0" 999 | "pino-std-serializers" "^4.0.0" 1000 | "process-warning" "^1.0.0" 1001 | "quick-format-unescaped" "^4.0.3" 1002 | "real-require" "^0.1.0" 1003 | "safe-stable-stringify" "^2.1.0" 1004 | "sonic-boom" "^2.2.1" 1005 | "thread-stream" "^0.15.1" 1006 | 1007 | "pino@^8.16.0": 1008 | "integrity" "sha512-UUmvQ/7KTZt/vHjhRrnyS7h+J7qPBQnpG80V56xmIC+o9IqYmQOw/UIny9S9zYDfRBR0ClouCr464EkBMIT7Fw==" 1009 | "resolved" "https://registry.npmjs.org/pino/-/pino-8.16.0.tgz" 1010 | "version" "8.16.0" 1011 | dependencies: 1012 | "atomic-sleep" "^1.0.0" 1013 | "fast-redact" "^3.1.1" 1014 | "on-exit-leak-free" "^2.1.0" 1015 | "pino-abstract-transport" "v1.1.0" 1016 | "pino-std-serializers" "^6.0.0" 1017 | "process-warning" "^2.0.0" 1018 | "quick-format-unescaped" "^4.0.3" 1019 | "real-require" "^0.2.0" 1020 | "safe-stable-stringify" "^2.3.1" 1021 | "sonic-boom" "^3.7.0" 1022 | "thread-stream" "^2.0.0" 1023 | 1024 | "prebuild-install@^7.1.1": 1025 | "integrity" "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==" 1026 | "resolved" "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz" 1027 | "version" "7.1.1" 1028 | dependencies: 1029 | "detect-libc" "^2.0.0" 1030 | "expand-template" "^2.0.3" 1031 | "github-from-package" "0.0.0" 1032 | "minimist" "^1.2.3" 1033 | "mkdirp-classic" "^0.5.3" 1034 | "napi-build-utils" "^1.0.1" 1035 | "node-abi" "^3.3.0" 1036 | "pump" "^3.0.0" 1037 | "rc" "^1.2.7" 1038 | "simple-get" "^4.0.0" 1039 | "tar-fs" "^2.0.0" 1040 | "tunnel-agent" "^0.6.0" 1041 | 1042 | "process-warning@^1.0.0": 1043 | "integrity" "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" 1044 | "resolved" "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz" 1045 | "version" "1.0.0" 1046 | 1047 | "process-warning@^2.0.0": 1048 | "integrity" "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" 1049 | "resolved" "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz" 1050 | "version" "2.2.0" 1051 | 1052 | "process@^0.11.10": 1053 | "integrity" "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" 1054 | "resolved" "https://registry.npmjs.org/process/-/process-0.11.10.tgz" 1055 | "version" "0.11.10" 1056 | 1057 | "protobufjs@^6.11.3": 1058 | "integrity" "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==" 1059 | "resolved" "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz" 1060 | "version" "6.11.4" 1061 | dependencies: 1062 | "@protobufjs/aspromise" "^1.1.2" 1063 | "@protobufjs/base64" "^1.1.2" 1064 | "@protobufjs/codegen" "^2.0.4" 1065 | "@protobufjs/eventemitter" "^1.1.0" 1066 | "@protobufjs/fetch" "^1.1.0" 1067 | "@protobufjs/float" "^1.0.2" 1068 | "@protobufjs/inquire" "^1.1.0" 1069 | "@protobufjs/path" "^1.1.2" 1070 | "@protobufjs/pool" "^1.1.0" 1071 | "@protobufjs/utf8" "^1.1.0" 1072 | "@types/long" "^4.0.1" 1073 | "@types/node" ">=13.7.0" 1074 | "long" "^4.0.0" 1075 | 1076 | "protobufjs@6.8.8": 1077 | "integrity" "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==" 1078 | "resolved" "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz" 1079 | "version" "6.8.8" 1080 | dependencies: 1081 | "@protobufjs/aspromise" "^1.1.2" 1082 | "@protobufjs/base64" "^1.1.2" 1083 | "@protobufjs/codegen" "^2.0.4" 1084 | "@protobufjs/eventemitter" "^1.1.0" 1085 | "@protobufjs/fetch" "^1.1.0" 1086 | "@protobufjs/float" "^1.0.2" 1087 | "@protobufjs/inquire" "^1.1.0" 1088 | "@protobufjs/path" "^1.1.2" 1089 | "@protobufjs/pool" "^1.1.0" 1090 | "@protobufjs/utf8" "^1.1.0" 1091 | "@types/long" "^4.0.0" 1092 | "@types/node" "^10.1.0" 1093 | "long" "^4.0.0" 1094 | 1095 | "proxy-addr@~2.0.7": 1096 | "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" 1097 | "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" 1098 | "version" "2.0.7" 1099 | dependencies: 1100 | "forwarded" "0.2.0" 1101 | "ipaddr.js" "1.9.1" 1102 | 1103 | "proxy-from-env@^1.1.0": 1104 | "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" 1105 | "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" 1106 | "version" "1.1.0" 1107 | 1108 | "pump@^3.0.0": 1109 | "integrity" "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==" 1110 | "resolved" "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" 1111 | "version" "3.0.0" 1112 | dependencies: 1113 | "end-of-stream" "^1.1.0" 1114 | "once" "^1.3.1" 1115 | 1116 | "qoa-format@^1.0.0": 1117 | "integrity" "sha512-Vjp2aV2x06tHbZesCi2UtISaFdlLzy47Vbt0rNwwdihKFvGtUeFfytdnA8XZYADqWtRbK19+XXeRkv1Stg4qSQ==" 1118 | "resolved" "https://registry.npmjs.org/qoa-format/-/qoa-format-1.0.0.tgz" 1119 | "version" "1.0.0" 1120 | dependencies: 1121 | "@thi.ng/bitstream" "^2.2.12" 1122 | 1123 | "qrcode-terminal@^0.12.0": 1124 | "integrity" "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==" 1125 | "resolved" "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz" 1126 | "version" "0.12.0" 1127 | 1128 | "qs@6.11.0": 1129 | "integrity" "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==" 1130 | "resolved" "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" 1131 | "version" "6.11.0" 1132 | dependencies: 1133 | "side-channel" "^1.0.4" 1134 | 1135 | "quick-format-unescaped@^4.0.3": 1136 | "integrity" "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" 1137 | "resolved" "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" 1138 | "version" "4.0.4" 1139 | 1140 | "range-parser@~1.2.1": 1141 | "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 1142 | "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" 1143 | "version" "1.2.1" 1144 | 1145 | "raw-body@2.5.1": 1146 | "integrity" "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==" 1147 | "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" 1148 | "version" "2.5.1" 1149 | dependencies: 1150 | "bytes" "3.1.2" 1151 | "http-errors" "2.0.0" 1152 | "iconv-lite" "0.4.24" 1153 | "unpipe" "1.0.0" 1154 | 1155 | "rc@^1.2.7": 1156 | "integrity" "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==" 1157 | "resolved" "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" 1158 | "version" "1.2.8" 1159 | dependencies: 1160 | "deep-extend" "^0.6.0" 1161 | "ini" "~1.3.0" 1162 | "minimist" "^1.2.0" 1163 | "strip-json-comments" "~2.0.1" 1164 | 1165 | "readable-stream@^3.1.1": 1166 | "integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==" 1167 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" 1168 | "version" "3.6.2" 1169 | dependencies: 1170 | "inherits" "^2.0.3" 1171 | "string_decoder" "^1.1.1" 1172 | "util-deprecate" "^1.0.1" 1173 | 1174 | "readable-stream@^3.4.0": 1175 | "integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==" 1176 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" 1177 | "version" "3.6.2" 1178 | dependencies: 1179 | "inherits" "^2.0.3" 1180 | "string_decoder" "^1.1.1" 1181 | "util-deprecate" "^1.0.1" 1182 | 1183 | "readable-stream@^3.6.0": 1184 | "integrity" "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==" 1185 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" 1186 | "version" "3.6.2" 1187 | dependencies: 1188 | "inherits" "^2.0.3" 1189 | "string_decoder" "^1.1.1" 1190 | "util-deprecate" "^1.0.1" 1191 | 1192 | "readable-stream@^4.0.0": 1193 | "integrity" "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==" 1194 | "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz" 1195 | "version" "4.4.2" 1196 | dependencies: 1197 | "abort-controller" "^3.0.0" 1198 | "buffer" "^6.0.3" 1199 | "events" "^3.3.0" 1200 | "process" "^0.11.10" 1201 | "string_decoder" "^1.3.0" 1202 | 1203 | "readable-web-to-node-stream@^3.0.0": 1204 | "integrity" "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==" 1205 | "resolved" "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" 1206 | "version" "3.0.2" 1207 | dependencies: 1208 | "readable-stream" "^3.6.0" 1209 | 1210 | "real-require@^0.1.0": 1211 | "integrity" "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==" 1212 | "resolved" "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz" 1213 | "version" "0.1.0" 1214 | 1215 | "real-require@^0.2.0": 1216 | "integrity" "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" 1217 | "resolved" "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" 1218 | "version" "0.2.0" 1219 | 1220 | "rotating-file-stream@^2.1.5": 1221 | "integrity" "sha512-qS0ndAlDu80MMXeRonqGMXslF0FErzcUSbcXhus3asRG4cvCS79hc5f7s0x4bPAsH6wAwyHVIeARg69VUe3JmQ==" 1222 | "resolved" "https://registry.npmjs.org/rotating-file-stream/-/rotating-file-stream-2.1.6.tgz" 1223 | "version" "2.1.6" 1224 | 1225 | "safe-buffer@^5.0.1", "safe-buffer@~5.2.0", "safe-buffer@5.2.1": 1226 | "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" 1227 | "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" 1228 | "version" "5.2.1" 1229 | 1230 | "safe-stable-stringify@^2.1.0", "safe-stable-stringify@^2.3.1": 1231 | "integrity" "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" 1232 | "resolved" "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz" 1233 | "version" "2.4.3" 1234 | 1235 | "safer-buffer@>= 2.1.2 < 3": 1236 | "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 1237 | "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" 1238 | "version" "2.1.2" 1239 | 1240 | "semver@^7.3.5", "semver@^7.3.7": 1241 | "integrity" "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==" 1242 | "resolved" "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" 1243 | "version" "7.5.4" 1244 | dependencies: 1245 | "lru-cache" "^6.0.0" 1246 | 1247 | "send@0.18.0": 1248 | "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" 1249 | "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz" 1250 | "version" "0.18.0" 1251 | dependencies: 1252 | "debug" "2.6.9" 1253 | "depd" "2.0.0" 1254 | "destroy" "1.2.0" 1255 | "encodeurl" "~1.0.2" 1256 | "escape-html" "~1.0.3" 1257 | "etag" "~1.8.1" 1258 | "fresh" "0.5.2" 1259 | "http-errors" "2.0.0" 1260 | "mime" "1.6.0" 1261 | "ms" "2.1.3" 1262 | "on-finished" "2.4.1" 1263 | "range-parser" "~1.2.1" 1264 | "statuses" "2.0.1" 1265 | 1266 | "serve-static@1.15.0": 1267 | "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" 1268 | "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" 1269 | "version" "1.15.0" 1270 | dependencies: 1271 | "encodeurl" "~1.0.2" 1272 | "escape-html" "~1.0.3" 1273 | "parseurl" "~1.3.3" 1274 | "send" "0.18.0" 1275 | 1276 | "set-function-length@^1.1.1": 1277 | "integrity" "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==" 1278 | "resolved" "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz" 1279 | "version" "1.1.1" 1280 | dependencies: 1281 | "define-data-property" "^1.1.1" 1282 | "get-intrinsic" "^1.2.1" 1283 | "gopd" "^1.0.1" 1284 | "has-property-descriptors" "^1.0.0" 1285 | 1286 | "setprototypeof@1.2.0": 1287 | "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" 1288 | "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" 1289 | "version" "1.2.0" 1290 | 1291 | "sharp@^0.30.5", "sharp@^0.30.7": 1292 | "integrity" "sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==" 1293 | "resolved" "https://registry.npmjs.org/sharp/-/sharp-0.30.7.tgz" 1294 | "version" "0.30.7" 1295 | dependencies: 1296 | "color" "^4.2.3" 1297 | "detect-libc" "^2.0.1" 1298 | "node-addon-api" "^5.0.0" 1299 | "prebuild-install" "^7.1.1" 1300 | "semver" "^7.3.7" 1301 | "simple-get" "^4.0.1" 1302 | "tar-fs" "^2.1.1" 1303 | "tunnel-agent" "^0.6.0" 1304 | 1305 | "side-channel@^1.0.4": 1306 | "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" 1307 | "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 1308 | "version" "1.0.4" 1309 | dependencies: 1310 | "call-bind" "^1.0.0" 1311 | "get-intrinsic" "^1.0.2" 1312 | "object-inspect" "^1.9.0" 1313 | 1314 | "simple-concat@^1.0.0": 1315 | "integrity" "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" 1316 | "resolved" "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" 1317 | "version" "1.0.1" 1318 | 1319 | "simple-get@^4.0.0", "simple-get@^4.0.1": 1320 | "integrity" "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==" 1321 | "resolved" "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" 1322 | "version" "4.0.1" 1323 | dependencies: 1324 | "decompress-response" "^6.0.0" 1325 | "once" "^1.3.1" 1326 | "simple-concat" "^1.0.0" 1327 | 1328 | "simple-swizzle@^0.2.2": 1329 | "integrity" "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==" 1330 | "resolved" "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" 1331 | "version" "0.2.2" 1332 | dependencies: 1333 | "is-arrayish" "^0.3.1" 1334 | 1335 | "sonic-boom@^2.2.1": 1336 | "integrity" "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==" 1337 | "resolved" "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz" 1338 | "version" "2.8.0" 1339 | dependencies: 1340 | "atomic-sleep" "^1.0.0" 1341 | 1342 | "sonic-boom@^3.7.0": 1343 | "integrity" "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==" 1344 | "resolved" "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz" 1345 | "version" "3.7.0" 1346 | dependencies: 1347 | "atomic-sleep" "^1.0.0" 1348 | 1349 | "split2@^4.0.0": 1350 | "integrity" "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" 1351 | "resolved" "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" 1352 | "version" "4.2.0" 1353 | 1354 | "statuses@2.0.1": 1355 | "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" 1356 | "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" 1357 | "version" "2.0.1" 1358 | 1359 | "steno@^0.4.1": 1360 | "integrity" "sha512-EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==" 1361 | "resolved" "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz" 1362 | "version" "0.4.4" 1363 | dependencies: 1364 | "graceful-fs" "^4.1.3" 1365 | 1366 | "stream-shift@^1.0.0": 1367 | "integrity" "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" 1368 | "resolved" "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" 1369 | "version" "1.0.1" 1370 | 1371 | "string_decoder@^1.1.1", "string_decoder@^1.3.0": 1372 | "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" 1373 | "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" 1374 | "version" "1.3.0" 1375 | dependencies: 1376 | "safe-buffer" "~5.2.0" 1377 | 1378 | "strip-ansi@^6.0.0": 1379 | "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" 1380 | "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" 1381 | "version" "6.0.1" 1382 | dependencies: 1383 | "ansi-regex" "^5.0.1" 1384 | 1385 | "strip-json-comments@~2.0.1": 1386 | "integrity" "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" 1387 | "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" 1388 | "version" "2.0.1" 1389 | 1390 | "strtok3@^6.2.4", "strtok3@^6.3.0": 1391 | "integrity" "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==" 1392 | "resolved" "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" 1393 | "version" "6.3.0" 1394 | dependencies: 1395 | "@tokenizer/token" "^0.3.0" 1396 | "peek-readable" "^4.1.0" 1397 | 1398 | "supports-color@^7.1.0": 1399 | "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" 1400 | "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" 1401 | "version" "7.2.0" 1402 | dependencies: 1403 | "has-flag" "^4.0.0" 1404 | 1405 | "tar-fs@^2.0.0", "tar-fs@^2.1.1": 1406 | "integrity" "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==" 1407 | "resolved" "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" 1408 | "version" "2.1.1" 1409 | dependencies: 1410 | "chownr" "^1.1.1" 1411 | "mkdirp-classic" "^0.5.2" 1412 | "pump" "^3.0.0" 1413 | "tar-stream" "^2.1.4" 1414 | 1415 | "tar-stream@^2.1.4": 1416 | "integrity" "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==" 1417 | "resolved" "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" 1418 | "version" "2.2.0" 1419 | dependencies: 1420 | "bl" "^4.0.3" 1421 | "end-of-stream" "^1.4.1" 1422 | "fs-constants" "^1.0.0" 1423 | "inherits" "^2.0.3" 1424 | "readable-stream" "^3.1.1" 1425 | 1426 | "thread-stream@^0.15.1": 1427 | "integrity" "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==" 1428 | "resolved" "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz" 1429 | "version" "0.15.2" 1430 | dependencies: 1431 | "real-require" "^0.1.0" 1432 | 1433 | "thread-stream@^2.0.0": 1434 | "integrity" "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==" 1435 | "resolved" "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz" 1436 | "version" "2.4.1" 1437 | dependencies: 1438 | "real-require" "^0.2.0" 1439 | 1440 | "toidentifier@1.0.1": 1441 | "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" 1442 | "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" 1443 | "version" "1.0.1" 1444 | 1445 | "token-types@^4.1.1", "token-types@^4.2.1": 1446 | "integrity" "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==" 1447 | "resolved" "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz" 1448 | "version" "4.2.1" 1449 | dependencies: 1450 | "@tokenizer/token" "^0.3.0" 1451 | "ieee754" "^1.2.1" 1452 | 1453 | "tunnel-agent@^0.6.0": 1454 | "integrity" "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==" 1455 | "resolved" "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" 1456 | "version" "0.6.0" 1457 | dependencies: 1458 | "safe-buffer" "^5.0.1" 1459 | 1460 | "type-is@~1.6.18": 1461 | "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" 1462 | "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" 1463 | "version" "1.6.18" 1464 | dependencies: 1465 | "media-typer" "0.3.0" 1466 | "mime-types" "~2.1.24" 1467 | 1468 | "universalify@^2.0.0": 1469 | "integrity" "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" 1470 | "resolved" "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" 1471 | "version" "2.0.0" 1472 | 1473 | "unpipe@~1.0.0", "unpipe@1.0.0": 1474 | "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" 1475 | "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" 1476 | "version" "1.0.0" 1477 | 1478 | "util-deprecate@^1.0.1": 1479 | "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1480 | "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" 1481 | "version" "1.0.2" 1482 | 1483 | "utils-merge@1.0.1": 1484 | "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" 1485 | "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" 1486 | "version" "1.0.1" 1487 | 1488 | "uuid@^9.0.0": 1489 | "integrity" "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" 1490 | "resolved" "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" 1491 | "version" "9.0.1" 1492 | 1493 | "vary@~1.1.2": 1494 | "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" 1495 | "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" 1496 | "version" "1.1.2" 1497 | 1498 | "wrappy@1": 1499 | "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" 1500 | "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" 1501 | "version" "1.0.2" 1502 | 1503 | "ws@^8.13.0": 1504 | "integrity" "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==" 1505 | "resolved" "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" 1506 | "version" "8.14.2" 1507 | 1508 | "yallist@^4.0.0": 1509 | "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" 1510 | "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" 1511 | "version" "4.0.0" 1512 | --------------------------------------------------------------------------------