distube 2.8.15 → 3.0.0-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/README.md +32 -98
  2. package/dist/DisTube.d.ts +522 -0
  3. package/dist/DisTube.d.ts.map +1 -0
  4. package/dist/DisTube.js +794 -0
  5. package/dist/DisTube.js.map +1 -0
  6. package/dist/constant.d.ts +130 -0
  7. package/dist/constant.d.ts.map +1 -0
  8. package/dist/constant.js +150 -0
  9. package/dist/constant.js.map +1 -0
  10. package/dist/core/DisTubeBase.d.ts +55 -0
  11. package/dist/core/DisTubeBase.d.ts.map +1 -0
  12. package/dist/core/DisTubeBase.js +76 -0
  13. package/dist/core/DisTubeBase.js.map +1 -0
  14. package/dist/core/DisTubeHandler.d.ts +84 -0
  15. package/dist/core/DisTubeHandler.d.ts.map +1 -0
  16. package/dist/core/DisTubeHandler.js +311 -0
  17. package/dist/core/DisTubeHandler.js.map +1 -0
  18. package/dist/core/DisTubeOptions.d.ts +26 -0
  19. package/dist/core/DisTubeOptions.d.ts.map +1 -0
  20. package/dist/core/DisTubeOptions.js +93 -0
  21. package/dist/core/DisTubeOptions.js.map +1 -0
  22. package/dist/core/DisTubeStream.d.ts +52 -0
  23. package/dist/core/DisTubeStream.d.ts.map +1 -0
  24. package/dist/core/DisTubeStream.js +109 -0
  25. package/dist/core/DisTubeStream.js.map +1 -0
  26. package/dist/core/index.d.ts +7 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +19 -0
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/core/manager/BaseManager.d.ts +18 -0
  31. package/dist/core/manager/BaseManager.d.ts.map +1 -0
  32. package/dist/core/manager/BaseManager.js +44 -0
  33. package/dist/core/manager/BaseManager.js.map +1 -0
  34. package/dist/core/manager/QueueManager.d.ts +60 -0
  35. package/dist/core/manager/QueueManager.d.ts.map +1 -0
  36. package/dist/core/manager/QueueManager.js +202 -0
  37. package/dist/core/manager/QueueManager.js.map +1 -0
  38. package/dist/core/manager/index.d.ts +3 -0
  39. package/dist/core/manager/index.d.ts.map +1 -0
  40. package/dist/core/manager/index.js +15 -0
  41. package/dist/core/manager/index.js.map +1 -0
  42. package/dist/core/voice/DJSAdapter.d.ts +4 -0
  43. package/dist/core/voice/DJSAdapter.d.ts.map +1 -0
  44. package/dist/core/voice/DJSAdapter.js +61 -0
  45. package/dist/core/voice/DJSAdapter.js.map +1 -0
  46. package/dist/core/voice/DisTubeVoice.d.ts +83 -0
  47. package/dist/core/voice/DisTubeVoice.d.ts.map +1 -0
  48. package/dist/core/voice/DisTubeVoice.js +236 -0
  49. package/dist/core/voice/DisTubeVoice.js.map +1 -0
  50. package/dist/core/voice/DisTubeVoiceManager.d.ts +41 -0
  51. package/dist/core/voice/DisTubeVoiceManager.d.ts.map +1 -0
  52. package/dist/core/voice/DisTubeVoiceManager.js +67 -0
  53. package/dist/core/voice/DisTubeVoiceManager.js.map +1 -0
  54. package/dist/core/voice/index.d.ts +4 -0
  55. package/dist/core/voice/index.d.ts.map +1 -0
  56. package/dist/core/voice/index.js +16 -0
  57. package/dist/core/voice/index.js.map +1 -0
  58. package/dist/index.d.ts +8 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +23 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/plugin/http.d.ts +8 -0
  63. package/dist/plugin/http.d.ts.map +1 -0
  64. package/dist/plugin/http.js +20 -0
  65. package/dist/plugin/http.js.map +1 -0
  66. package/dist/plugin/https.d.ts +14 -0
  67. package/dist/plugin/https.d.ts.map +1 -0
  68. package/dist/plugin/https.js +50 -0
  69. package/dist/plugin/https.js.map +1 -0
  70. package/dist/plugin/index.d.ts +4 -0
  71. package/dist/plugin/index.d.ts.map +1 -0
  72. package/dist/plugin/index.js +16 -0
  73. package/dist/plugin/index.js.map +1 -0
  74. package/dist/plugin/youtube-dl.d.ts +11 -0
  75. package/dist/plugin/youtube-dl.d.ts.map +1 -0
  76. package/dist/plugin/youtube-dl.js +75 -0
  77. package/dist/plugin/youtube-dl.js.map +1 -0
  78. package/dist/struct/CustomPlugin.d.ts +27 -0
  79. package/dist/struct/CustomPlugin.d.ts.map +1 -0
  80. package/dist/struct/CustomPlugin.js +35 -0
  81. package/dist/struct/CustomPlugin.js.map +1 -0
  82. package/dist/struct/DisTubeError.d.ts +54 -0
  83. package/dist/struct/DisTubeError.d.ts.map +1 -0
  84. package/dist/struct/DisTubeError.js +72 -0
  85. package/dist/struct/DisTubeError.js.map +1 -0
  86. package/dist/struct/ExtractorPlugin.d.ts +29 -0
  87. package/dist/struct/ExtractorPlugin.d.ts.map +1 -0
  88. package/dist/struct/ExtractorPlugin.js +32 -0
  89. package/dist/struct/ExtractorPlugin.js.map +1 -0
  90. package/dist/struct/Playlist.d.ts +42 -0
  91. package/dist/struct/Playlist.d.ts.map +1 -0
  92. package/dist/struct/Playlist.js +104 -0
  93. package/dist/struct/Playlist.js.map +1 -0
  94. package/dist/struct/Plugin.d.ts +82 -0
  95. package/dist/struct/Plugin.d.ts.map +1 -0
  96. package/dist/struct/Plugin.js +108 -0
  97. package/dist/struct/Plugin.js.map +1 -0
  98. package/dist/struct/Queue.d.ts +217 -0
  99. package/dist/struct/Queue.d.ts.map +1 -0
  100. package/dist/struct/Queue.js +480 -0
  101. package/dist/struct/Queue.js.map +1 -0
  102. package/dist/struct/SearchResult.d.ts +28 -0
  103. package/dist/struct/SearchResult.d.ts.map +1 -0
  104. package/dist/struct/SearchResult.js +79 -0
  105. package/dist/struct/SearchResult.js.map +1 -0
  106. package/dist/struct/Song.d.ts +68 -0
  107. package/dist/struct/Song.d.ts.map +1 -0
  108. package/dist/struct/Song.js +229 -0
  109. package/dist/struct/Song.js.map +1 -0
  110. package/dist/struct/TaskQueue.d.ts +33 -0
  111. package/dist/struct/TaskQueue.d.ts.map +1 -0
  112. package/dist/struct/TaskQueue.js +58 -0
  113. package/dist/struct/TaskQueue.js.map +1 -0
  114. package/dist/struct/index.d.ts +10 -0
  115. package/dist/struct/index.d.ts.map +1 -0
  116. package/dist/struct/index.js +22 -0
  117. package/dist/struct/index.js.map +1 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -0
  119. package/dist/type.d.ts +159 -0
  120. package/dist/type.d.ts.map +1 -0
  121. package/dist/type.js +3 -0
  122. package/dist/type.js.map +1 -0
  123. package/dist/util.d.ts +47 -0
  124. package/dist/util.d.ts.map +1 -0
  125. package/dist/util.js +205 -0
  126. package/dist/util.js.map +1 -0
  127. package/package.json +53 -25
  128. package/.eslintrc.json +0 -150
  129. package/.gitattributes +0 -2
  130. package/.github/FUNDING.yml +0 -1
  131. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -17
  132. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  133. package/.github/workflows/npm-publish.yml +0 -17
  134. package/jsdoc.json +0 -97
  135. package/src/DisTube.js +0 -1121
  136. package/src/Playlist.js +0 -107
  137. package/src/Queue.js +0 -120
  138. package/src/SearchResult.js +0 -81
  139. package/src/Song.js +0 -135
  140. package/src/duration.js +0 -39
  141. package/tsconfig.json +0 -24
  142. package/typings/DisTube.d.ts +0 -635
  143. package/typings/Playlist.d.ts +0 -73
  144. package/typings/Queue.d.ts +0 -106
  145. package/typings/SearchResult.d.ts +0 -59
  146. package/typings/Song.d.ts +0 -104
  147. package/typings/duration.d.ts +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;;AAAA,6BAA0B;AAC1B,wBAAsD;AACtD,2CAAoD;AAiBpD,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAEhE;;;;GAIG;AACH,SAAgB,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACxF,IAAI,OAAO,GAAG,CAAC;QAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;IACtE,OAAO,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AACpC,CAAC;AARD,wCAQC;AACD;;;;GAIG;AACH,SAAgB,QAAQ,CAAC,KAAU;IACjC,IAAI,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC;IACrB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAAE,IAAI,IAAI,CAAC,CAAC,CAAC;gBAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACxG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACjF,OAAO,CAAC,CAAC;KACV;SAAM;QACL,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;KACnD;AACH,CAAC;AAZD,4BAYC;AACD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAU;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAHD,kCAGC;AACD;;;;GAIG;AACH,SAAgB,KAAK,CAAC,KAAU;IAC9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI;QACF,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;KAC5E;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AATD,sBASC;AACD;;;GAGG;AACH,SAAgB,YAAY,CAAC,OAAsB;;IACjD,MAAM,eAAe,GAAgD,CAAC,oBAAoB,CAAC,CAAC;IAC5F,MAAM,QAAQ,GAA8C,MAAA,OAAO,CAAC,OAAO,mCAAI,MAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAU,0CAAE,OAAO,CAAC;IAC7G,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO;IAC5C,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;QACpC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,eAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;KACxF;AACH,CAAC;AARD,oCAQC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,UAAsB;;IACxD,MAAM,YAAY,GAAG,MAAA,MAAA,MAAA,UAAU,CAAC,KAAK,0CAAE,EAAE,0CAAE,KAAK,0CAAE,OAAO,CAAC;IAC1D,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9D,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACvB,CAAC;AALD,kDAKC;AAED,SAAgB,WAAW,CAAC,EAAO;IACjC,IAAI;QACF,OAAO,0BAAa,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,GAAG,0BAAa,CAAC,KAAK,CAAC;KACtE;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAND,kCAMC;AAED,SAAgB,gBAAgB,CAAC,MAAW;;IAC1C,OAAO,CACL,CAAC,CAAC,MAAM;QACR,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,WAAW,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,EAAE,CAAC;QAC7B,WAAW,CAAC,MAAA,MAAM,CAAC,IAAI,0CAAE,EAAE,CAAC;QAC5B,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAC7B,CAAC;AACJ,CAAC;AARD,4CAQC;AAED,SAAgB,qBAAqB,CAAC,OAAY;;IAChD,OAAO,CACL,CAAC,CAAC,OAAO;QACT,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,WAAW,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU;QAClC,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,CAC5C,CAAC;AACJ,CAAC;AARD,sDAQC;AAED,SAAgB,iBAAiB,CAAC,OAAY;;IAC5C,0CAA0C;IAC1C,OAAO,CACL,CAAC,CAAC,OAAO;QACT,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,WAAW,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,EAAE,CAAC;QAC9B,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC;QACtC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;QAChC,WAAW,CAAC,MAAA,OAAO,CAAC,MAAM,0CAAE,EAAE,CAAC;QAC/B,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,EAAE;QACvC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC9C,CAAC;AACJ,CAAC;AAZD,8CAYC;AAED,SAAgB,uBAAuB,CAAC,OAAY;;IAClD,OAAO,CACL,CAAC,CAAC,OAAO;QACT,OAAO,CAAC,OAAO,KAAK,KAAK;QACzB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,WAAW,CAAC,MAAA,OAAO,CAAC,KAAK,0CAAE,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS;QACjC;YACE,UAAU;YACV,OAAO;YACP,OAAO;YACP,UAAU;YACV,aAAa;YACb,mBAAmB;SACpB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CACzB,CAAC;AACJ,CAAC;AAhBD,0DAgBC;AAED,SAAgB,eAAe,CAAC,KAAU;IACxC,OAAO,CAAC,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,UAAU,CAAC;AACxF,CAAC;AAFD,0CAEC;AAED,SAAgB,cAAc,CAAC,UAA6B;IAC1D,IAAI,OAA2B,CAAC;IAChC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QAClC,OAAO,GAAG,UAAU,CAAC;KACtB;SAAM,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;QACzC,IAAI,UAAU,YAAY,QAAK,IAAI,UAAU,YAAY,eAAY;YAAE,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC;aAC1F,IAAI,OAAO,IAAI,UAAU,IAAI,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9F,IAAI,IAAI,IAAI,UAAU,IAAI,eAAe,CAAC,UAAU,CAAC;YAAE,OAAO,GAAG,UAAU,CAAC,EAAE,CAAC;KACrF;IACD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,eAAY,CAAC,cAAc,EAAE,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACnG,OAAO,OAAO,CAAC;AACjB,CAAC;AAXD,wCAWC;AAED,SAAgB,gBAAgB,CAAC,MAAW;IAC1C,OAAO,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC;AACxD,CAAC;AAFD,4CAEC;AAED,SAAgB,eAAe,CAC7B,MAA2B,EAC3B,MAAsC,EACtC,UAAkB;IAElB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvD,MAAM,IAAI,eAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;KACtE;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,IAAI,UAAU;QAAE,MAAM,IAAI,eAAY,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AAChF,CAAC;AAXD,0CAWC","sourcesContent":["import { URL } from \"url\";\nimport { DisTubeError, DisTubeVoice, Queue } from \".\";\nimport { Intents, SnowflakeUtil } from \"discord.js\";\nimport type { GuildIDResolvable } from \".\";\nimport type {\n BitFieldResolvable,\n Client,\n ClientOptions,\n Guild,\n GuildMember,\n IntentsString,\n Message,\n Snowflake,\n StageChannel,\n TextChannel,\n VoiceChannel,\n VoiceState,\n} from \"discord.js\";\n\nconst formatInt = (int: number) => (int < 10 ? `0${int}` : int);\n\n/**\n * Format duration to string\n * @param {number} sec Duration in seconds\n * @returns {string}\n */\nexport function formatDuration(sec: number): string {\n if (!sec || !Number(sec)) return \"00:00\";\n const seconds = Math.round(sec % 60);\n const minutes = Math.floor((sec % 3600) / 60);\n const hours = Math.floor(sec / 3600);\n if (hours > 0) return `${formatInt(hours)}:${formatInt(minutes)}:${formatInt(seconds)}`;\n if (minutes > 0) return `${formatInt(minutes)}:${formatInt(seconds)}`;\n return `00:${formatInt(seconds)}`;\n}\n/**\n * Convert formatted duration to seconds\n * @param {*} input Formatted duration string\n * @returns {number}\n */\nexport function toSecond(input: any): number {\n if (!input) return 0;\n if (typeof input !== \"string\") return Number(input) || 0;\n if (input.match(/:/g)) {\n const time = input.split(\":\").reverse();\n let s = 0;\n for (let i = 0; i < 3; i++) if (time[i]) s += Number(time[i].replace(/[^\\d.]+/g, \"\")) * Math.pow(60, i);\n if (time.length > 3) s += Number(time[3].replace(/[^\\d.]+/g, \"\")) * 24 * 60 * 60;\n return s;\n } else {\n return Number(input.replace(/[^\\d.]+/g, \"\")) || 0;\n }\n}\n/**\n * Parse number from input\n * @param {*} input Any\n * @returns {number}\n */\nexport function parseNumber(input: any): number {\n if (typeof input === \"string\") return Number(input.replace(/[^\\d.]+/g, \"\")) || 0;\n return Number(input) || 0;\n}\n/**\n * Check if the string is an URL\n * @param {string} input input\n * @returns {boolean}\n */\nexport function isURL(input: any): boolean {\n if (typeof input !== \"string\" || input.includes(\" \")) return false;\n try {\n const url = new URL(input);\n if (![\"https:\", \"http:\"].includes(url.protocol) || !url.host) return false;\n } catch {\n return false;\n }\n return true;\n}\n/**\n * Check if the Client has enough intents to using DisTube\n * @param {ClientOptions} options options\n */\nexport function checkIntents(options: ClientOptions): void {\n const requiredIntents: BitFieldResolvable<IntentsString, number>[] = [\"GUILD_VOICE_STATES\"];\n const bitfield: BitFieldResolvable<IntentsString, number> = options.intents ?? (options?.ws as any)?.intents;\n if (typeof bitfield === \"undefined\") return;\n const intents = new Intents(bitfield);\n for (const intent of requiredIntents) {\n if (!intents.has(intent)) throw new DisTubeError(\"MISSING_INTENTS\", intent.toString());\n }\n}\n\n/**\n * Check if the voice channel is empty\n * @param {Discord.VoiceState} voiceState voiceState\n * @returns {boolean}\n */\nexport function isVoiceChannelEmpty(voiceState: VoiceState): boolean {\n const voiceChannel = voiceState.guild?.me?.voice?.channel;\n if (!voiceChannel) return false;\n const members = voiceChannel.members.filter(m => !m.user.bot);\n return !members.size;\n}\n\nexport function isSnowflake(id: any): id is Snowflake {\n try {\n return SnowflakeUtil.deconstruct(id).timestamp > SnowflakeUtil.EPOCH;\n } catch {\n return false;\n }\n}\n\nexport function isMemberInstance(member: any): member is GuildMember {\n return (\n !!member &&\n isSnowflake(member.id) &&\n isSnowflake(member.guild?.id) &&\n isSnowflake(member.user?.id) &&\n member.id === member.user.id\n );\n}\n\nexport function isTextChannelInstance(channel: any): channel is TextChannel {\n return (\n !!channel &&\n isSnowflake(channel.id) &&\n isSnowflake(channel.guild?.id) &&\n typeof channel.send === \"function\" &&\n typeof channel.awaitMessages === \"function\"\n );\n}\n\nexport function isMessageInstance(message: any): message is Message {\n // Simple check for using distube normally\n return (\n !!message &&\n isSnowflake(message.id) &&\n isSnowflake(message.guild?.id) &&\n isTextChannelInstance(message.channel) &&\n isMemberInstance(message.member) &&\n isSnowflake(message.author?.id) &&\n message.member.id === message.author.id &&\n message.guild.id === message.channel.guild.id\n );\n}\n\nexport function isSupportedVoiceChannel(channel: any): channel is VoiceChannel | StageChannel {\n return (\n !!channel &&\n channel.deleted === false &&\n isSnowflake(channel.id) &&\n isSnowflake(channel.guild?.id) &&\n typeof channel.full === \"boolean\" &&\n [\n // Djs v12\n \"voice\",\n \"stage\",\n // Djs v13\n \"GUILD_VOICE\",\n \"GUILD_STAGE_VOICE\",\n ].includes(channel.type)\n );\n}\n\nexport function isGuildInstance(guild: any): guild is Guild {\n return !!guild && isSnowflake(guild.id) && typeof guild.fetchAuditLogs === \"function\";\n}\n\nexport function resolveGuildID(resolvable: GuildIDResolvable): Snowflake {\n let guildID: string | undefined;\n if (typeof resolvable === \"string\") {\n guildID = resolvable;\n } else if (typeof resolvable === \"object\") {\n if (resolvable instanceof Queue || resolvable instanceof DisTubeVoice) guildID = resolvable.id;\n else if (\"guild\" in resolvable && isGuildInstance(resolvable.guild)) guildID = resolvable.guild.id;\n else if (\"id\" in resolvable && isGuildInstance(resolvable)) guildID = resolvable.id;\n }\n if (!isSnowflake(guildID)) throw new DisTubeError(\"INVALID_TYPE\", \"GuildIDResolvable\", resolvable);\n return guildID;\n}\n\nexport function isClientInstance(client: any): client is Client {\n return !!client && typeof client.login === \"function\";\n}\n\nexport function checkInvalidKey(\n target: Record<string, any>,\n source: Record<string, any> | string[],\n sourceName: string,\n) {\n if (typeof target !== \"object\" || Array.isArray(target)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", target, sourceName);\n }\n const sourceKeys = Array.isArray(source) ? source : Object.keys(source);\n const invalidKey = Object.keys(target).find(key => !sourceKeys.includes(key));\n if (invalidKey) throw new DisTubeError(\"INVALID_KEY\", sourceName, invalidKey);\n}\n"]}
package/package.json CHANGED
@@ -1,16 +1,26 @@
1
1
  {
2
2
  "name": "distube",
3
- "version": "2.8.15",
3
+ "version": "3.0.0-0",
4
4
  "description": "A Discord.js module to simplify your music commands and play songs with audio filters on Discord without any API key. Support YouTube, SoundCloud, Bandcamp, Facebook, and 700+ more sites",
5
- "main": "src/DisTube.js",
6
- "typings": "typings/DisTube.d.ts",
5
+ "main": "dist/index.js",
6
+ "typings": "dist/index.d.ts",
7
7
  "scripts": {
8
- "types": "tsc -p .",
9
- "djs/docgen": "npx docgen --source src --output docs/v2.json"
8
+ "test": "jest --config .jestrc.json",
9
+ "docs": "docgen -s src/*.ts src/**/*.ts -o docs/docs.json -c pages/index.yml -g -j .jsconfig.json",
10
+ "lint": "eslint .",
11
+ "lint:fix": "eslint . --fix",
12
+ "prettier": "prettier --write **/*.{js,ts,json,yml,yaml}",
13
+ "build": "tsc",
14
+ "build:check": "tsc --noEmit --incremental false",
15
+ "publish:stable": "npm publish",
16
+ "ncu": "ncu -u --dep dev,prod",
17
+ "_postinstall": "husky install",
18
+ "prepublishOnly": "pinst -d",
19
+ "postpublish": "pinst -e"
10
20
  },
11
21
  "repository": {
12
22
  "type": "git",
13
- "url": "git+https://github.com/distubejs/distube.git"
23
+ "url": "git+https://github.com/skick1234/DisTube.git"
14
24
  },
15
25
  "keywords": [
16
26
  "youtube",
@@ -20,41 +30,59 @@
20
30
  "bot",
21
31
  "distube",
22
32
  "queue",
23
- "search",
24
- "loop",
25
- "repeat",
26
33
  "musicbot",
27
- "module",
28
- "nodejs",
29
34
  "discord-music-bot",
30
35
  "music-bot",
31
36
  "discord-js"
32
37
  ],
33
- "author": "Skick (https://github.com/distubejs/)",
38
+ "author": "Skick (https://github.com/skick1234/)",
34
39
  "license": "MIT",
35
40
  "bugs": {
36
- "url": "https://github.com/distubejs/distube/issues"
41
+ "url": "https://github.com/skick1234/DisTube/issues"
37
42
  },
38
43
  "funding": {
39
44
  "url": "https://patreon.com/DisTube"
40
45
  },
41
46
  "homepage": "https://distube.js.org/",
42
47
  "dependencies": {
43
- "@distube/youtube-dl": "^1.0.4",
44
- "@distube/ytdl": "^2.0.6",
45
- "@distube/ytpl": "^1.0.11",
46
- "@distube/ytsr": "^1.1.0",
47
- "ytdl-core": "^4.8.2"
48
+ "@distube/youtube-dl": "^2.2.2",
49
+ "@distube/ytdl-core": "^4.9.3",
50
+ "@distube/ytpl": "^1.1.1",
51
+ "@distube/ytsr": "^1.1.5",
52
+ "prism-media": "github:distubejs/prism-media",
53
+ "tiny-typed-emitter": "^2.1.0"
48
54
  },
49
55
  "devDependencies": {
50
- "@discordjs/opus": "^0.5.0",
51
- "@types/node": "^15.6.1",
52
- "discord.js": "^12.5.3",
53
- "discord.js-docgen": "github:distubejs/docgen",
54
- "typescript": "^4.3.2"
56
+ "@babel/core": "^7.15.8",
57
+ "@babel/plugin-proposal-class-properties": "^7.14.5",
58
+ "@babel/plugin-proposal-object-rest-spread": "^7.15.6",
59
+ "@babel/preset-env": "^7.15.8",
60
+ "@babel/preset-typescript": "^7.15.0",
61
+ "@commitlint/cli": "^13.2.1",
62
+ "@commitlint/config-conventional": "^13.2.0",
63
+ "@discordjs/voice": "^0.6.0",
64
+ "@distube/docgen": "github:distubejs/docgen",
65
+ "@types/jest": "^27.0.2",
66
+ "@types/node": "^16.11.0",
67
+ "babel-jest": "^27.2.5",
68
+ "discord.js": "^13.2.0",
69
+ "eslint": "^7.32.0",
70
+ "eslint-config-distube": "^1.4.0",
71
+ "husky": "^7.0.2",
72
+ "jest": "^27.2.5",
73
+ "jsdoc-babel": "^0.5.0",
74
+ "lint-staged": "^11.2.3",
75
+ "npm-check-updates": "^11.8.5",
76
+ "pinst": "^2.1.6",
77
+ "prettier": "^2.4.1",
78
+ "typescript": "^4.4.4"
79
+ },
80
+ "peerDependencies": {
81
+ "@discordjs/opus": "*",
82
+ "@discordjs/voice": ">=0.5.6",
83
+ "discord.js": "^12.5.0||13.x"
55
84
  },
56
85
  "engines": {
57
- "discord.js": "12||13||^13.0.0-0",
58
- "node": ">=12"
86
+ "node": ">=12.0.0"
59
87
  }
60
88
  }
package/.eslintrc.json DELETED
@@ -1,150 +0,0 @@
1
- {
2
- "extends": "eslint:recommended",
3
- "parserOptions": {
4
- "ecmaVersion": 11,
5
- "sourceType": "module"
6
- },
7
- "env": {
8
- "es6": true,
9
- "node": true
10
- },
11
- "rules": {
12
- "no-await-in-loop": "warn",
13
- "no-compare-neg-zero": "error",
14
- "no-extra-parens": ["warn", "all", {
15
- "nestedBinaryExpressions": false
16
- }],
17
- "no-template-curly-in-string": "error",
18
- "no-unsafe-negation": "error",
19
- "valid-jsdoc": ["warn", {
20
- "requireReturn": false,
21
- "requireReturnDescription": false,
22
- "prefer": {
23
- "return": "returns",
24
- "arg": "param"
25
- },
26
- "preferType": {
27
- "String": "string",
28
- "Number": "number",
29
- "Boolean": "boolean",
30
- "Symbol": "symbol",
31
- "object": "Object",
32
- "function": "Function",
33
- "array": "Array",
34
- "date": "Date",
35
- "error": "Error",
36
- "null": "void"
37
- }
38
- }],
39
-
40
- "accessor-pairs": "warn",
41
- "array-callback-return": "error",
42
- "complexity": "warn",
43
- "consistent-return": "error",
44
- "curly": ["error", "multi-line"],
45
- "dot-location": ["error", "property"],
46
- "dot-notation": "error",
47
- "eqeqeq": "error",
48
- "no-empty": "warn",
49
- "no-empty-function": "warn",
50
- "no-floating-decimal": "error",
51
- "no-implied-eval": "error",
52
- "no-invalid-this": "error",
53
- "no-lone-blocks": "error",
54
- "no-multi-spaces": "error",
55
- "no-new-func": "error",
56
- "no-new-wrappers": "error",
57
- "no-new": "error",
58
- "no-octal-escape": "error",
59
- "no-return-assign": "error",
60
- "no-return-await": "error",
61
- "no-self-compare": "error",
62
- "no-sequences": "error",
63
- "no-throw-literal": "error",
64
- "no-unmodified-loop-condition": "error",
65
- "no-unused-expressions": "error",
66
- "no-useless-call": "error",
67
- "no-useless-concat": "error",
68
- "no-useless-escape": "error",
69
- "no-useless-return": "error",
70
- "no-void": "error",
71
- "no-warning-comments": "warn",
72
- "prefer-promise-reject-errors": "error",
73
- "require-await": "warn",
74
- "wrap-iife": "error",
75
- "yoda": "error",
76
-
77
- "no-label-var": "error",
78
- "no-shadow": "error",
79
- "no-undef-init": "error",
80
-
81
- "callback-return": "error",
82
- "handle-callback-err": "error",
83
- "no-mixed-requires": "error",
84
- "no-new-require": "error",
85
- "no-path-concat": "error",
86
-
87
- "array-bracket-spacing": "error",
88
- "block-spacing": "error",
89
- "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
90
- "capitalized-comments": ["error", "always", { "ignoreConsecutiveComments": true }],
91
- "comma-dangle": ["error", "always-multiline"],
92
- "comma-spacing": "error",
93
- "comma-style": "error",
94
- "computed-property-spacing": "error",
95
- "consistent-this": ["error", "$this"],
96
- "eol-last": "error",
97
- "func-names": "error",
98
- "func-name-matching": "error",
99
- "func-style": ["error", "declaration", { "allowArrowFunctions": true }],
100
- "indent": ["error", 2, { "SwitchCase": 1 }],
101
- "key-spacing": "error",
102
- "keyword-spacing": "error",
103
- "max-depth": "error",
104
- "max-nested-callbacks": ["error", { "max": 4 }],
105
- "max-statements-per-line": ["error", { "max": 3 }],
106
- "new-cap": "off",
107
- "newline-per-chained-call": ["error", { "ignoreChainWithDepth": 3 }],
108
- "no-array-constructor": "error",
109
- "no-lonely-if": "error",
110
- "no-mixed-operators": "error",
111
- "no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }],
112
- "no-new-object": "error",
113
- "no-spaced-func": "error",
114
- "no-trailing-spaces": "error",
115
- "no-unneeded-ternary": "error",
116
- "no-whitespace-before-property": "error",
117
- "nonblock-statement-body-position": "error",
118
- "object-curly-spacing": ["error", "always"],
119
- "operator-assignment": "error",
120
- "operator-linebreak": ["error", "after"],
121
- "padded-blocks": ["error", "never"],
122
- "quote-props": ["error", "as-needed"],
123
- "quotes": ["error", "double", { "avoidEscape": true, "allowTemplateLiterals": true }],
124
- "semi-spacing": "error",
125
- "space-before-blocks": "error",
126
- "space-in-parens": "error",
127
- "space-infix-ops": "error",
128
- "space-unary-ops": "error",
129
- "spaced-comment": "error",
130
- "template-tag-spacing": "error",
131
- "unicode-bom": "error",
132
-
133
- "arrow-body-style": "error",
134
- "arrow-parens": ["error", "as-needed"],
135
- "arrow-spacing": "error",
136
- "no-duplicate-imports": "error",
137
- "no-useless-computed-key": "error",
138
- "no-useless-constructor": "error",
139
- "prefer-arrow-callback": "error",
140
- "prefer-numeric-literals": "error",
141
- "prefer-rest-params": "error",
142
- "prefer-spread": "error",
143
- "prefer-template": "error",
144
- "rest-spread-spacing": "error",
145
- "template-curly-spacing": "error",
146
- "yield-star-spacing": "error",
147
- "no-var": "error"
148
- }
149
- }
150
-
package/.gitattributes DELETED
@@ -1,2 +0,0 @@
1
- # Auto detect text files and perform LF normalization
2
- * text=auto
@@ -1 +0,0 @@
1
- patreon: DisTube
@@ -1,17 +0,0 @@
1
- ---
2
- name: Bug report
3
- about: Create a report to help us improve (Check the FAQ in readme and created issues first)
4
- title: ''
5
- labels: bug
6
- assignees: ''
7
-
8
- ---
9
-
10
- **Please describe your problem in as much detail as possible:**
11
-
12
- **Further information:**
13
-
14
- - DisTube version:
15
- - discord.js version:
16
- - Node.js version:
17
- - Operating system:
@@ -1,8 +0,0 @@
1
- blank_issues_enabled: false
2
- contact_links:
3
- - name: Discussions
4
- url: https://github.com/skick1234/DisTube/discussions
5
- about: Suggest an idea for this project or ask a question here
6
- - name: Discord Support Server
7
- url: https://discord.gg/feaDd9h
8
- about: Like Discussions but on Discord
@@ -1,17 +0,0 @@
1
- name: DisTube
2
- on:
3
- release:
4
- types: [created]
5
- jobs:
6
- build:
7
- runs-on: ubuntu-latest
8
- steps:
9
- - uses: actions/checkout@v2
10
- - uses: actions/setup-node@v1
11
- with:
12
- node-version: '12.x'
13
- registry-url: 'https://registry.npmjs.org'
14
- - run: npm install
15
- - run: npm publish --access public
16
- env:
17
- NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
package/jsdoc.json DELETED
@@ -1,97 +0,0 @@
1
- {
2
- "tags": {
3
- "allowUnknownTags": true
4
- },
5
- "source": {
6
- "include": ["README.md", "src"],
7
- "includePattern": ".js$",
8
- "excludePattern": "(node_modules/|docs)"
9
- },
10
- "plugins": [
11
- "plugins/markdown"
12
- ],
13
- "templates": {
14
- "cleverLinks": false,
15
- "monospaceLinks": false,
16
- "default": {
17
- "outputSourceFiles": false
18
- }
19
- },
20
- "opts": {
21
- "destination": "../distubejs.github.io/",
22
- "readme": "README.md",
23
- "encoding": "utf8",
24
- "private": true,
25
- "recurse": true,
26
- "template": "node_modules/clean-jsdoc-theme",
27
- "theme_opts": {
28
- "title": "DisTube",
29
- "theme": "dark",
30
- "filter": false,
31
- "menu": [{
32
- "title": "NPM",
33
- "link": "https://www.npmjs.com/package/distube",
34
- "target": "_blank"
35
- },
36
- {
37
- "title": "GitHub",
38
- "link": "https://github.com/skick1234/DisTube/",
39
- "target": "_blank"
40
- },
41
- {
42
- "title": "Frequently Asked Questions",
43
- "link": "https://github.com/skick1234/DisTube/wiki/Frequently-Asked-Questions",
44
- "target": "_blank"
45
- }
46
- ],
47
- "meta": [{
48
- "name": "author",
49
- "content": "Skick"
50
- },
51
- {
52
- "name": "description",
53
- "content": "A Discord.js v12 module to manage music commands and play song on Discord without any API key."
54
- },
55
- {
56
- "itemprop": "name",
57
- "content": "DisTube"
58
- },
59
- {
60
- "itemprop": "image",
61
- "content": "https://cdn.jsdelivr.net/gh/skick1234/MaBu-CDN@4.6.10/DisTube/img/banner.png"
62
- },
63
- {
64
- "property": "og:url",
65
- "content": "https://DisTube.js.org"
66
- },
67
- {
68
- "property": "og:type",
69
- "content": "website"
70
- },
71
- {
72
- "property": "og:title",
73
- "content": "DisTube"
74
- },
75
- {
76
- "property": "og:description",
77
- "content": "A Discord.js v12 module to manage music commands and play song on Discord without any API key."
78
- },
79
- {
80
- "property": "og:image",
81
- "content": "https://cdn.jsdelivr.net/gh/skick1234/MaBu-CDN@4.6.10/DisTube/img/banner.png"
82
- }
83
- ],
84
- "create_style": "::-webkit-scrollbar { display: none }",
85
- "add_script_path": [{
86
- "src": "https://arc.io/widget.min.js#2srirM1z"
87
- }],
88
- "add_style_path": [{
89
- "rel": "shortcut icon",
90
- "type": "image/png",
91
- "href": "https://cdn.jsdelivr.net/gh/skick1234/MaBu-CDN@4.6.10/DisTube/img/favicon.png"
92
- }],
93
- "search": true,
94
- "footer": "Powered by <a href='https://js.org' target='_blank'>js.org</a>, <a href='https://jsdoc.app/' target='_blank'>JSDoc</a>, <a href='https://github.com/ankitskvmdam/clean-jsdoc-theme' target='_blank'>clean-jsdoc-theme</a> and Love."
95
- }
96
- }
97
- }