{"_id":"@bongodevs/lavalink-client","_rev":"9-cbc1c8443c1f041525e18dcc058afa1a","name":"@bongodevs/lavalink-client","dist-tags":{"latest":"0.2.2"},"versions":{"0.0.2":{"name":"@bongodevs/lavalink-client","version":"0.0.2","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.0.2","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"d9867f9828009095ee3847e8ccecb55dee07cbf1","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.0.2.tgz","fileCount":9,"integrity":"sha512-dwKHAPlQZQvscvoiFYKFdJS0BRYAAi1huxXAV3NdnL4IDr7KBUq1vUMk1VTZU+AmcmvM2CNs1Fp6WnXgT1tAOw==","signatures":[{"sig":"MEYCIQCxTfRxzlEqAVId02OXNF/MrotBpz7FojSfSgNSgLuKbwIhAJo2ublbGhRWsuoPp3ynsr5afzlGA+2sYE7ZPyGFkSBP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1216624},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"c3bc202fc2c2ec066624ed06041f92635611a4e2","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"node -v","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.0.2_1785169407149_0.30482273709775143","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@bongodevs/lavalink-client","version":"0.0.3","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.0.3","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"ac1e19ee81b61bd759adc3e77c579329780a4ec1","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.0.3.tgz","fileCount":9,"integrity":"sha512-2OPjFBK0PPJr5PSKXEKEJdEOfobIRiowYa/soO2Lglq5EMREigGkK+xPLK1tDJCj3wPe8AgWNSLbA6t4EDIR4Q==","signatures":[{"sig":"MEUCIBhlIR0dYXGOhYA2VyzFO6HcxWZHvkl7dBa3DMXWLQnpAiEA01LYWo5FAWIV9sQvLZnme+ZDMEChj3mkOjMfgW6lTOM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1225036},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"56903ecc6a14531f5c6bf23402b6d1d1d83d963a","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"node -v","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.0.3_1785172520847_0.08164321133515173","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@bongodevs/lavalink-client","version":"0.0.4","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.0.4","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"466b9afb6645fd2dc007d41600eb6a6e09e3ef3e","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.0.4.tgz","fileCount":9,"integrity":"sha512-ca4qXxih7AgTUcBgdHjL5zdjX/k6CAyV/SX7Bn4XuO8aQbtr/MgpvbzXPWN4NaBPpo0wSSJs5lmkTj+m0vMnjA==","signatures":[{"sig":"MEUCIQClvBEmJ3a/GR8zTbp7h3LbYKbCiSNBZvXMJ8ZvTQAsxAIgWFwyn+i8b4mlq4jaN3k5rro/V2tifroAyLk9spl+EWI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1225375},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"0ce68a75c66ed7c0f66a1e85a92f20d78233ac9d","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"node -v","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.0.4_1785174480493_0.0003863190326682808","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@bongodevs/lavalink-client","version":"0.0.5","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.0.5","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"c1ba9f9dc1e1838845fd610fbfeedd3c790874e0","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.0.5.tgz","fileCount":9,"integrity":"sha512-H9XUlsan/86QPxwalKHLw7Us9WvgY8GOEmsZXMr2GMoeiLTMhifdZ+Os4lEiG6flW4bjC/L/6TRbdBfyvx6E+w==","signatures":[{"sig":"MEYCIQCkSXc2rGwk/n1655Qr7yAS7YlhZH49a9T+6aK1c/uqdwIhAOyLJfxjpEw6/H4moEB7UQNv6B7Yn4zUqESLaqJd74Ny","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1225570},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"0c46455b3686bc292c274c48f2bcaa0a5da9e5bd","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"node -v","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.0.5_1785307358891_0.7770462515486583","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@bongodevs/lavalink-client","version":"0.1.0","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.1.0","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"ee51924d43f2cfb5c6bf3778f895c9a2bcb23332","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.1.0.tgz","fileCount":9,"integrity":"sha512-BJ7um3C8Do5wQQjkGuQP26ozTK80vkLPTwMRNqwvmadiNMfp8R6YCi6mREMyeY5GD9vltPg76tjgI13GbY1OUg==","signatures":[{"sig":"MEYCIQCb6d2jdmz7hCG0FN6VaBHZ1i4vWT11vzFUJtEZYsaJjQIhAKSk9n4tY/yDfd0k/7FtZkdzpiLTXR2rNp1ALzSRtKyC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1082787},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"b8977f3e43d3db7e7c563235e3f2671f92fdf25a","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"bun test tests","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.1.0_1785485369006_0.720830139357659","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bongodevs/lavalink-client","version":"0.1.1","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.1.1","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"23fc4e164387b77bc2b07be151dfac2f03b132fe","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.1.1.tgz","fileCount":9,"integrity":"sha512-bFrmNqtrX7v5hf5u9rzVM9WqWS5TvZJPT36BDW68t8kO2oR36R2Had7VoxRtcmBofTpqKNTTk/wy8RowEQzAtg==","signatures":[{"sig":"MEUCIFoonE78pv3KpzbrlbsYykBowmqTOJ1ZvQ1r2qKvG54BAiEA4DceJDF+oWppTjj52mTy0kDGXnJK15nCePwaJHmnFps=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1091712},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"638a9c1a929a7bbf512a763cd123ca2db32d015a","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"bun test tests","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.1","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.1.1_1785759592825_0.2599066461660624","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bongodevs/lavalink-client","version":"0.2.0","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.2.0","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"dc7abe5289d2413490006cf2ce76ebcb2350cf39","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.2.0.tgz","fileCount":9,"integrity":"sha512-xZewq599BHkuuiA0mVYkxqYmDpwCC6iq4/p1yFAMVXQiWUhzs2ZRPLfqnPqib9WOiH3hdzFIhC0Kh6MGlyUzow==","signatures":[{"sig":"MEQCIAVR6EoZJZqP7s1viLRfEJBHKLQS1oO+Fk3NrFmCzaFWAiBHVPu8ypcBIPcKJHMjStZGAVz4Z0vWwuehN/X3wxV5oA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1105575},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"f7c65ce68e2e9f1b4ded1a571e9382039ab9b801","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"bun test tests","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.2.0_1786820751813_0.7283437004751072","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bongodevs/lavalink-client","version":"0.2.1","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"author":{"url":"https://github.com/bongo-devs/lavalink-client","name":"Tomato6966"},"license":"MIT","_id":"@bongodevs/lavalink-client@0.2.1","maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"contributors":[],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"dist":{"shasum":"f8f0a3a30bbb81522c49cd353c332d12c6156e38","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.2.1.tgz","fileCount":9,"integrity":"sha512-jHDe0NnrbMnuRyuqsYDVp5REdnPxu4Q+GsFtpsqG4x2eqYQv7+E0gd9SxCM0pSlxP5vDe6W5N/OfFdBUHNMIog==","signatures":[{"sig":"MEUCIASGC+W7BB6cE2kebHWxrg8JUCuGMldnNKUrNHwks9fiAiEA+UNM9leNWHmzP5G/66+x0SMHPpSPUQctv4AUxRcmBYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1126548},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"bun":">=1.1.27","node":">=18.0.0"},"exports":{".":{"bun":"./dist/index.mjs","types":"./dist/index.d.ts","import":"./dist/index.mjs","default":"./dist/index.mjs","require":"./dist/index.cjs"}},"gitHead":"a6e9584eef794c63730c4546816d635bcd0cca0b","scripts":{"fmt":"oxfmt","lint":"oxlint .","test":"bun test tests","build":"tsdown","prepare":"npm run fmt && npm run build","lint:fix":"oxlint --fix","prepublishOnly":"npm run fmt && npm run build"},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"repository":{"url":"git+https://github.com/bongo-devs/lavalink-client.git","type":"git"},"_npmVersion":"10.9.8","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","directories":{"lib":"src"},"_nodeVersion":"22.23.2","dependencies":{"ws":"^8.21.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.9","devDependencies":{"oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","@types/ws":"^8.18.1","@types/bun":"latest","typescript":"^7.0.2","@types/node":"^26.1.1"},"_npmOperationalInternal":{"tmp":"tmp/lavalink-client_0.2.1_1787142650456_0.869161137022711","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bongodevs/lavalink-client","version":"0.2.2","description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"homepage":"https://github.com/bongo-devs/lavalink-client","bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"license":"MIT","author":{"name":"Tomato6966","url":"https://github.com/bongo-devs/lavalink-client"},"contributors":[],"repository":{"type":"git","url":"git+https://github.com/bongo-devs/lavalink-client.git"},"directories":{"lib":"src"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","bun":"./dist/index.mjs","require":"./dist/index.cjs","import":"./dist/index.mjs","default":"./dist/index.mjs"}},"publishConfig":{"access":"public"},"scripts":{"build":"tsdown","lint":"oxlint .","lint:fix":"oxlint --fix","fmt":"oxfmt","test":"bun test tests","prepublishOnly":"npm run fmt && npm run build","prepare":"npm run fmt && npm run build"},"dependencies":{"ws":"^8.21.1"},"devDependencies":{"@types/bun":"latest","@types/node":"^26.1.1","@types/ws":"^8.18.1","oxfmt":"^0.60.0","oxlint":"^1.75.0","tsdown":"^0.22.14","typescript":"^7.0.2"},"engines":{"bun":">=1.1.27","node":">=18.0.0"},"packageManager":"bun@1.3.9","_id":"@bongodevs/lavalink-client@0.2.2","gitHead":"6ba881b943995a83d5893bb06b4cb6f618b74d8d","_nodeVersion":"22.23.2","_npmVersion":"10.9.8","dist":{"integrity":"sha512-hcbrNvv7tRdRl3i1AV+13m1s5mRsRhIvdratFJnTuEElIBRrQ7KOudNTcjOg3jK8l2ogOHaqID7VldxGtOYAWQ==","shasum":"7cdc0e82619407de374529ee9fc78a6f5632fd6c","tarball":"https://registry.npmjs.org/@bongodevs/lavalink-client/-/lavalink-client-0.2.2.tgz","fileCount":9,"unpackedSize":1139886,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDBDGbaePAkukNSNgBeZWkGGqMXZbDOVULNukKBtcFBpgIhAIQ2o9UVZM88DYM4hqy24ZXDA0HykL0ExeW4pfsmherA"}]},"_npmUser":{"name":"appujet","email":"sdipedit@gmail.com"},"maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/lavalink-client_0.2.2_1787316572481_0.9484339510215058"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-27T16:23:26.951Z","modified":"2026-08-21T12:49:32.875Z","0.0.2":"2026-07-27T16:23:27.303Z","0.0.3":"2026-07-27T17:15:21.007Z","0.0.4":"2026-07-27T17:48:00.730Z","0.0.5":"2026-07-29T06:42:39.075Z","0.1.0":"2026-07-31T08:09:29.180Z","0.1.1":"2026-08-03T12:19:52.965Z","0.2.0":"2026-08-15T19:05:51.965Z","0.2.1":"2026-08-19T12:30:50.604Z","0.2.2":"2026-08-21T12:49:32.634Z"},"bugs":{"url":"https://github.com/bongo-devs/lavalink-client/issues"},"author":{"name":"Tomato6966","url":"https://github.com/bongo-devs/lavalink-client"},"license":"MIT","homepage":"https://github.com/bongo-devs/lavalink-client","keywords":["advanced","bot","client","discord","lavalink","lavalink-v4","music","typescript"],"repository":{"type":"git","url":"git+https://github.com/bongo-devs/lavalink-client.git"},"description":"Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.","contributors":[],"maintainers":[{"name":"appujet","email":"sdipedit@gmail.com"}],"readme":"<div style=\"font-family: Arial, sans-serif; border: 1px solid #fab788; border-radius: 15px; padding: 25px; \">\n\n<h1 align=\"center\" style=\"color: #fab788; border-bottom: 2px solid #3498db; padding-bottom: 10px;\">Lavalink Client</h1>\n<p align=\"center\" style=\"font-size: 1.2em; color: #555;\">An easy, flexible, and feature-rich Lavalink v4 Client for both beginners and experts.</p>\n\n<div align=\"center\">\n  <p>\n    <img src=\"https://madewithlove.now.sh/at?heart=true&template=for-the-badge\" alt=\"Made with love in Austria\">\n    <img alt=\"Made with TypeScript\" src=\"https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white\">\n  </p>\n  <p>\n    <a href=\"https://www.npmjs.com/package/lavalink-client\">\n      <img src=\"https://img.shields.io/npm/v/lavalink-client.svg?maxAge=3600&style=for-the-badge&logo=npm&logoColor=red\" alt=\"NPM Version\" />\n    </a>\n    <a href=\"https://www.npmjs.com/package/lavalink-client\">\n      <img src=\"https://img.shields.io/npm/dt/lavalink-client.svg?maxAge=3600&style=for-the-badge&logo=npm&logoColor=red\" alt=\"NPM Downloads\" />\n    </a>\n    <a href=\"https://github.com/bongo-devs/lavalink-client\">\n      <img src=\"https://img.shields.io/badge/Documentation-%230288D1.svg?style=for-the-badge&logo=gitbook&logoColor=white\" alt=\"Get Started Now\">\n    </a>\n  </p>\n  <p>\n    <a href=\"https://www.npmjs.com/package/lavalink-client\"><img src=\"https://nodei.co/npm/lavalink-client.png?downloads=true&stars=true\" alt=\"NPM Install: lavalink-client\" /></a>\n  </p>\n</div>\n\n---\n\n## 🚀 Features\n\n- 💯 **Lavalink v4 Native:** Full support for Lavalink v4, including its powerful plugin ecosystem.\n- ✅ **Detailed Player-Destroy Reasons:** Understand precisely why a player was destroyed (e.g., channel deleted, bot disconnected).\n- ✨ **Flexible Queue Stores:** Use the default in-memory store or bring your own (Redis, databases, etc.) to sync queues across multiple processes.\n- 🎶 **Unresolved Tracks:** Supports unresolved track objects, fetching full data only when a track is about to play, saving API requests and resources.\n- 🎚️ **Built-in Filters & EQ:** Easy-to-use management for audio filters and equalizers.\n- 🔍 **Advanced Queue Filtering:** Search and filter tracks in the queue by title, author, duration, and more with powerful query options.\n- ⚙️ **Advanced Player Options:** Fine-tune player behavior for disconnects, empty queues, volume handling, and more.\n- 🛡️ **Lavalink-Side Validation:** Ensures you only use filters, plugins, and sources that your Lavalink node actually supports.\n- 🔒 **Client-Side Validation:** Whitelist and blacklist URLs or domains to prevent unwanted requests and protect your bot.\n- 🧑‍💻 **Developer-Friendly:** A memory-efficient design with a clean, intuitive API that mirrors Lavalink's own implementation.\n- 🤖 **Automated Handling:** Automatically handles track skipping on errors, voice channel deletions, server-wide mutes, and much more.\n\n---\n\n## 📦 Installation\n\n**Latest Stable Version: `v2.9.x`**\n\n<details>\n<summary><strong>👉 via NPM</strong></summary>\n\n```bash\n# Stable (install release)\nnpm install --save lavalink-client\n\n# Development (Install github dev-branch)\nnpm install --save bongo-devs/lavalink-client\n```\n\n</details>\n\n<details>\n<summary><strong>👉 via YARN</strong></summary>\n\n```bash\n# Stable (install release)\nyarn add lavalink-client\n\n# Development (Install github dev-branch)\nyarn add bongo-devs/lavalink-client\n```\n\n</details>\n\n<details>\n<summary><strong>👉 via BUN</strong></summary>\n\n```bash\n# Stable (install release)\nbun add lavalink-client\n\n# Development (Install github dev-branch)\nbun add bongo-devs/lavalink-client\n```\n\n</details>\n\n<details>\n<summary><strong>👉 via pnpm</strong></summary>\n\n```bash\n# Stable (install release)\npnpm add lavalink-client\n\n# Development (Install github dev-branch)\npnpm add bongo-devs/lavalink-client\n```\n\n</details>\n\n## 📖 Documentation & Guides\n\n- **[Full Documentation](https://github.com/bongo-devs/lavalink-client)** - Your starting point for everything.\n- **[Manager Events](https://github.com/bongo-devs/lavalink-client)** - Handle track, player, and general client events.\n- **[NodeManager Events](https://github.com/bongo-devs/lavalink-client)** - Manage node connections, errors, and logs.\n- **[Session Resuming Guide](https://github.com/bongo-devs/lavalink-client)** - Learn how to implement session resuming for seamless restarts.\n\n---\n\n---\n\n## 💖 Used In\n\nThis client powers various Discord bots:\n\n- **[Mivator](https://discord.gg/5dUb7M2qCj)** (Public Bot by @Tomato6966)\n- **[Betty](https://betty.bot/?utm_source=lavalink-client)** (Public Bot by @fb_sean)\n- **[Nero](https://betty.bot/?utm_source=lavalink-client)** (Public Bot by @fb_sean)\n- **Bots by Contributors:**\n    - [Mintone](https://mintone.tech/) (@appujet)\n    - [Stelle](https://github.com/Ganyu-Studios/stelle-music) (@EvilG-MC)\n    - [Panais](https://panais.xyz/) (@LucasB25)\n    - [Akyn](https://akynbot.vercel.app/) (@notdeltaxd)\n    - [ARINO](https://site.arinoapp.qzz.io/) (@ryanwtf88)\n    - [iHorizon](https://github.com/ihrz/ihrz) (@iHorizon)\n- **Bots By Community (Users):**\n    - [Soundy](https://github.com/idMJA/Soundy) (@idMJA)\n    - [BeatBot](https://getbeatbot.vercel.app/) (@zenitsujs)\n    - [Atom Music](https://top.gg/bot/1320469557411971165) (@sakshamyep)\n    - [All Time Bot](https://top.gg/bot/1163027457671180418) (@PeterGamez)\n    - [BeatDock](https://github.com/lazaroagomez/BeatDock) (@lazaroagomez)\n    - [Nazha](https://top.gg/bot/1124681788070055967) (@Nazha-Team)\n    - [Arii Music](https://arimusic.me/) (@friston_ae)\n\n---\n\n## 🛠️ Configuration Examples\n\n### Basic Setup\n\nA minimal example to get you started quickly.\n\n```typescript\nimport { LavalinkManager } from \"lavalink-client\";\nimport { Client, GatewayIntentBits } from \"discord.js\"; // example for a discord bot\n\n// Extend the Client type to include the lavalink manager\ndeclare module \"discord.js\" {\n    interface Client {\n        lavalink: LavalinkManager;\n    }\n}\n\nconst client = new Client({\n    intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates],\n});\n\nclient.lavalink = new LavalinkManager({\n    nodes: [\n        {\n            authorization: \"youshallnotpass\", // The password for your Lavalink server\n            host: \"localhost\",\n            port: 2333,\n            id: \"Main Node\",\n        },\n        // you can also use the util like this, and it will return a valid node option object.\n        // parseLavalinkConnUrl(\"nodelink://<nodeId>:<nodeAuthorization(Password)>@<NodeHost>:<NodePort>\")\n    ],\n    // A function to send voice server updates to the Lavalink client\n    sendToShard: (guildId, payload) => {\n        const guild = client.guilds.cache.get(guildId);\n        if (guild) guild.shard.send(payload);\n    },\n    autoSkip: true,\n    client: {\n        id: process.env.CLIENT_ID, // Your bot's user ID\n        username: \"MyBot\",\n    },\n});\n\n// Listen for the 'raw' event from discord.js and forward it\nclient.on(\"raw\", (d) => client.lavalink.sendRawData(d));\n\nclient.on(\"ready\", () => {\n    console.log(`Logged in as ${client.user.tag}!`);\n    // Initialize the Lavalink client\n    client.lavalink.init({ ...client.user });\n});\n\nclient.login(process.env.DISCORD_TOKEN);\n```\n\n<details>\n<summary><strong>🔩 Complete Configuration Example (almost all Options)</strong></summary>\n\n```typescript\nimport { LavalinkManager, QueueChangesWatcher, QueueStoreManager, StoredQueue } from \"lavalink-client\";\nimport { RedisClientType, createClient } from \"redis\";\nimport { Client, GatewayIntentBits, User } from \"discord.js\";\n\n// It's recommended to extend the Client type\ndeclare module \"discord.js\" {\n    interface Client {\n        lavalink: LavalinkManager;\n        redis: RedisClientType;\n    }\n}\n\nconst client = new Client({\n    intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates],\n});\n\nclient.lavalink = new LavalinkManager({\n    nodes: [\n        {\n            authorization: \"youshallnotpass\",\n            host: \"localhost\",\n            port: 2333,\n            id: \"testnode\",\n            secure: false, // Set to true for wss://\n            retryAmount: 5,\n            retryDelay: 10_000, // 10 seconds\n        },\n        // you can also use the util like this, and it will return a valid node option object. must start with: lavalink://\n        // parseLavalinkConnUrl(\"lavalink://<nodeId>:<nodeAuthorization(Password)>@<NodeHost>:<NodePort>\")\n    ],\n    sendToShard: (guildId, payload) => client.guilds.cache.get(guildId)?.shard?.send(payload),\n    autoSkip: true, // automatically play the next song of the queue, on: trackend, trackerror, trackexception\n    client: {\n        id: process.env.CLIENT_ID,\n        username: \"TESTBOT\",\n    },\n    playerOptions: {\n        applyVolumeAsFilter: false,\n        clientBasedPositionUpdateInterval: 50,\n        defaultSearchPlatform: \"ytmsearch\",\n        volumeDecrementer: 0.75,\n        onDisconnect: {\n            autoReconnect: true,\n            destroyPlayer: false,\n        },\n        onEmptyQueue: {\n            destroyAfterMs: 30_000,\n            // function get's called onqueueempty, and if there are songs added to the queue, it continues playing. if not then not (autoplay functionality)\n            // autoPlayFunction: async (player) => { /* ... */ },\n        },\n        useUnresolvedData: true,\n    },\n    queueOptions: {\n        maxPreviousTracks: 10,\n        queueStore: new MyCustomRedisStore(client.redis),\n        queueChangesWatcher: new MyCustomQueueWatcher(client),\n    },\n    // Whitelist/Blacklist links or words\n    linksAllowed: true,\n    linksBlacklist: [\"somebadsite.com\"],\n    linksWhitelist: [],\n    advancedOptions: {\n        debugOptions: {\n            noAudio: false,\n            playerDestroy: { dontThrowError: false, debugLog: false },\n        },\n    },\n});\n\nclient.on(\"raw\", (d) => client.lavalink.sendRawData(d));\nclient.on(\"ready\", () => client.lavalink.init({ ...client.user }));\n\n// Example Custom Redis Queue Store\nclass MyCustomRedisStore implements QueueStoreManager {\n    private redis: RedisClientType;\n    constructor(redisClient: RedisClientType) {\n        this.redis = redisClient;\n    }\n    private key(guildId: string) {\n        return `lavalinkqueue_${guildId}`;\n    }\n    async get(guildId: string) {\n        return await this.redis.get(this.key(guildId));\n    }\n    async set(guildId: string, data: string) {\n        return await this.redis.set(this.key(guildId), data);\n    }\n    async delete(guildId: string) {\n        return await this.redis.del(this.key(guildId));\n    }\n    async parse(data: string): Promise<Partial<StoredQueue>> {\n        return JSON.parse(data);\n    }\n    stringify(data: Partial<StoredQueue>): string {\n        return JSON.stringify(data);\n    }\n}\n\n// Example Custom Queue Watcher\nclass MyCustomQueueWatcher implements QueueChangesWatcher {\n    private client: Client;\n    constructor(client: Client) {\n        this.client = client;\n    }\n    shuffled(guildId: string) {\n        console.log(`Queue shuffled in guild: ${guildId}`);\n    }\n    tracksAdd(guildId: string, tracks: any[], position: number) {\n        console.log(`${tracks.length} tracks added at position ${position} in guild: ${guildId}`);\n    }\n    tracksRemoved(guildId: string, tracks: any[], position: number) {\n        console.log(`${tracks.length} tracks removed at position ${position} in guild: ${guildId}`);\n    }\n}\n```\n\n</details>\n\n---\n\n## 📢 Events\n\nListen to events to create interactive and responsive logic.\n\n### Lavalink Manager Events\n\nThese events are emitted from the main `LavalinkManager` instance and relate to players and tracks.\n\n- `playerCreate (player)`\n- `playerDestroy (player, reason)`\n- `playerDisconnect (player, voiceChannelId)`\n- `playerMove (player, oldChannelId, newChannelId)`\n- `trackStart (player, track)`\n- `trackEnd (player, track)`\n- `trackStuck (player, track, payload)`\n- `trackError (player, track, payload)`\n- `queueEnd (player)`\n\n<details>\n<summary><strong>📢 Example for Manager-Event-Listeners</strong></summary>\n\n```javascript\n// Example: Listening to a track start event\nclient.lavalink.on(\"trackStart\", (player, track) => {\n    const channel = client.channels.cache.get(player.textChannelId);\n    if (channel) channel.send(`Now playing: ${track.info.title}`);\n});\n\n// Example: Handling queue end\nclient.lavalink.on(\"queueEnd\", (player) => {\n    const channel = client.channels.cache.get(player.textChannelId);\n    if (channel) channel.send(\"The queue has finished. Add more songs!\");\n    player.destroy();\n});\n```\n\n</details>\n\n### Node Manager Events\n\nThese events are emitted from `lavalink.nodeManager` and relate to the Lavalink node connections.\n\n- `create (node)`\n- `connect (node)`\n- `disconnect (node, reason)`\n- `reconnecting (node)`\n- `destroy (node)`\n- `error (node, error, payload)`\n- `resumed (node, payload, players)`\n\n<details>\n<summary><strong>📢 Example for Node-Event-Listeners</strong></summary>\n\n```javascript\n// Example: Logging node connections and errors\nclient.lavalink.nodeManager.on(\"connect\", (node) => {\n    console.log(`Node \"${node.id}\" connected!`);\n});\n\nclient.lavalink.nodeManager.on(\"error\", (node, error) => {\n    console.error(`Node \"${node.id}\" encountered an error:`, error.message);\n});\n```\n\n</details>\n\n---\n\n## 📚 Advanced How-To Guides\n\n### How to Implement Session Resuming\n\nResuming allows your music bot to continue playback even after a restart.\n\n1.  **Enable Resuming on the Node:** When a node connects, enable resuming with a timeout.\n2.  **Listen for the `resumed` Event:** This event fires on a successful reconnect, providing all player data from Lavalink.\n3.  **Re-create Players:** Use the data from the `resumed` event and your own saved data (from a database/store) to rebuild the players and their queues.\n\n> 💡 **For a complete, working example, see the [official test bot's implementation](https://github.com/bongo-devs/lavalink-client/blob/main/testBot/Utils/handleResuming.ts).**\n\n<details>\n<summary><strong>💡 Principle of how to enable **resuming**</strong></summary>\n\n```javascript\n// 1. Enable resuming on connect\nclient.lavalink.nodeManager.on(\"connect\", (node) => {\n    // Enable resuming for 5 minutes (300,000 ms)\n    node.updateSession(true, 300_000);\n});\n\n// 2. Listen for the resumed event\nclient.lavalink.nodeManager.on(\"resumed\", async (node, payload, fetchedPlayers) => {\n    console.log(`Node \"${node.id}\" successfully resumed with ${fetchedPlayers.length} players.`);\n\n    for (const lavalinkData of fetchedPlayers) {\n        // 3. Get your saved data (e.g., from Redis/DB)\n        const savedData = await getFromDatabase(lavalinkData.guildId);\n        if (!savedData || !lavalinkData.state.connected) {\n            if (savedData) await deleteFromDatabase(lavalinkData.guildId);\n            continue; // Skip if no saved data or Lavalink reports disconnected\n        }\n\n        // Re-create the player instance\n        const player = client.lavalink.createPlayer({\n            guildId: lavalinkData.guildId,\n            voiceChannelId: savedData.voiceChannelId,\n            textChannelId: savedData.textChannelId,\n            // Important: Use the same node that was resumed\n            node: node.id,\n            // Set volume from Lavalink's data, accounting for the volume decrementer\n            volume: lavalinkData.volume,\n            selfDeaf: savedData.selfDeaf,\n        });\n\n        // Re-establish voice connection\n        await player.connect();\n\n        // Restore player state\n        player.paused = lavalinkData.paused;\n        player.lastPosition = lavalinkData.state.position;\n        player.filterManager.data = lavalinkData.filters;\n\n        // Restore the queue\n        await player.queue.utils.sync(true, false); // Syncs with your QueueStore\n\n        // Restore the current track\n        if (lavalinkData.track) {\n            player.queue.current = client.lavalink.utils.buildTrack(lavalinkData.track, savedData.requester);\n        }\n    }\n});\n\n// Persist player data on updates to use for resuming later\nclient.lavalink.on(\"playerUpdate\", (oldPlayer, newPlayer) => {\n    saveToDatabase(newPlayer.toJSON());\n});\n\n// Clean up data when a player is permanently destroyed\nclient.lavalink.on(\"playerDestroy\", (player) => {\n    deleteFromDatabase(player.guildId);\n});\n```\n\n</details>\n\n### How to Use Plugins\n\nLavalink client supports most of the major lavalink-plugins.\nThe client itself is - for beginner friendly reasons - atm not extendable (via plugins)\nYou can just use the built in functions (sponsor block, lyrics) or search plattforms (deezer, spotify, apple music, youtube, ...) and use the lavalink-plugins without any configuration on the client side.\n\nSome plugins require extra-parameters, such as flowerytts:\nPass extra parameters to the search function to use plugin-specific features.\n\n<details>\n<summary><strong>How to use the flowerytts plugin</strong></summary>\n\n```javascript\n// Example for flowertts plugin\nconst query = interaction.options.getString(\"text\");\nconst voice = interaction.options.getString(\"voice\"); // e.g., \"MALE_1\"\n\nconst extraParams = new URLSearchParams();\nif (voice) extraParams.append(`voice`, voice);\n\n// All params for flowertts can be found here: https://flowery.pw/docs\nconst response = await player.search(\n    {\n        query: `${query}`,\n        // This is used by plugins like ftts to adjust the request\n        extraQueryUrlParams: extraParams,\n        source: \"ftts\", // Specify the plugin source\n    },\n    interaction.user, // The requester\n);\n\n// Add the TTS track to the queue\nif (response.tracks.length > 0) {\n    player.queue.add(response.tracks[0]);\n    if (!player.playing) player.play();\n}\n```\n\n</details>\n\n</div>\n","readmeFilename":"README.md"}