kazagumo-bun 3.4.0-b

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 (73) hide show
  1. package/.gitattributes +2 -0
  2. package/.prettierrc +5 -0
  3. package/LICENSE +21 -0
  4. package/LICENSE.md +22 -0
  5. package/README.md +267 -0
  6. package/SECURITY.md +21 -0
  7. package/appveyor.yml +24 -0
  8. package/docs/.nojekyll +1 -0
  9. package/docs/assets/hierarchy.js +1 -0
  10. package/docs/assets/highlight.css +99 -0
  11. package/docs/assets/icons.js +18 -0
  12. package/docs/assets/icons.svg +1 -0
  13. package/docs/assets/main.js +60 -0
  14. package/docs/assets/navigation.js +1 -0
  15. package/docs/assets/search.js +1 -0
  16. package/docs/assets/style.css +1633 -0
  17. package/docs/classes/Kazagumo.Kazagumo.html +307 -0
  18. package/docs/classes/Managers_KazagumoPlayer.KazagumoPlayer.html +81 -0
  19. package/docs/classes/Managers_Supports_KazagumoQueue.KazagumoQueue.html +222 -0
  20. package/docs/classes/Managers_Supports_KazagumoTrack.KazagumoTrack.html +43 -0
  21. package/docs/classes/Modules_Interfaces.KazagumoError.html +33 -0
  22. package/docs/classes/Modules_Interfaces.KazagumoPlugin.html +4 -0
  23. package/docs/classes/Modules_Utils.KazagumoUtils.html +3 -0
  24. package/docs/classes/Plugins_PlayerMoved.KazagumoPlugin.html +13 -0
  25. package/docs/enums/Modules_Interfaces.PlayerState.html +7 -0
  26. package/docs/functions/Modules_Interfaces.escapeRegExp.html +1 -0
  27. package/docs/hierarchy.html +1 -0
  28. package/docs/index.html +208 -0
  29. package/docs/interfaces/Kazagumo.KazagumoEvents.html +40 -0
  30. package/docs/interfaces/Modules_Interfaces.CreatePlayerOptions.html +21 -0
  31. package/docs/interfaces/Modules_Interfaces.KazagumoOptions.html +17 -0
  32. package/docs/interfaces/Modules_Interfaces.KazagumoPlayerOptions.html +9 -0
  33. package/docs/interfaces/Modules_Interfaces.KazagumoSearchOptions.html +5 -0
  34. package/docs/interfaces/Modules_Interfaces.KazagumoSearchResult.html +4 -0
  35. package/docs/interfaces/Modules_Interfaces.Payload.html +4 -0
  36. package/docs/interfaces/Modules_Interfaces.PlayOptions.html +6 -0
  37. package/docs/interfaces/Modules_Interfaces.PlayerMovedChannels.html +3 -0
  38. package/docs/interfaces/Modules_Interfaces.RawTrack.html +4 -0
  39. package/docs/interfaces/Modules_Interfaces.ResolveOptions.html +4 -0
  40. package/docs/modules/Index.html +1 -0
  41. package/docs/modules/Kazagumo.html +1 -0
  42. package/docs/modules/Managers_KazagumoPlayer.html +1 -0
  43. package/docs/modules/Managers_Supports_KazagumoQueue.html +1 -0
  44. package/docs/modules/Managers_Supports_KazagumoTrack.html +1 -0
  45. package/docs/modules/Modules_Interfaces.html +1 -0
  46. package/docs/modules/Modules_Plugins.html +1 -0
  47. package/docs/modules/Modules_Utils.html +1 -0
  48. package/docs/modules/Plugins_PlayerMoved.html +1 -0
  49. package/docs/modules.html +1 -0
  50. package/docs/types/Modules_Interfaces.PlayerMovedState.html +1 -0
  51. package/docs/types/Modules_Interfaces.SearchEngines.html +1 -0
  52. package/docs/types/Modules_Interfaces.SearchResultTypes.html +1 -0
  53. package/docs/types/Modules_Interfaces.YoutubeThumbnail.html +1 -0
  54. package/docs/types/Modules_Utils.Constructor.html +1 -0
  55. package/docs/variables/Index.version.html +1 -0
  56. package/docs/variables/Modules_Interfaces.Events.html +1 -0
  57. package/docs/variables/Modules_Interfaces.SourceIDs.html +1 -0
  58. package/docs/variables/Modules_Interfaces.SupportedSources.html +1 -0
  59. package/docs/variables/Modules_Plugins.default.html +1 -0
  60. package/eslint.config.mjs +15 -0
  61. package/package.json +26 -0
  62. package/src/Index.ts +14 -0
  63. package/src/Kazagumo.ts +396 -0
  64. package/src/Managers/KazagumoPlayer.ts +470 -0
  65. package/src/Managers/Supports/KazagumoQueue.ts +89 -0
  66. package/src/Managers/Supports/KazagumoTrack.ts +211 -0
  67. package/src/Modules/EventEmitter.ts +53 -0
  68. package/src/Modules/Interfaces.ts +204 -0
  69. package/src/Modules/Plugins.ts +5 -0
  70. package/src/Modules/Utils.ts +26 -0
  71. package/src/Plugins/PlayerMoved.ts +54 -0
  72. package/tsconfig.json +23 -0
  73. package/tslint.json +3 -0
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>YoutubeThumbnail | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Modules_Interfaces.html">Modules/Interfaces</a></li><li><a href="" aria-current="page">YoutubeThumbnail</a></li></ul><h1>Type Alias YoutubeThumbnail</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">YoutubeThumbnail</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;default&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;hqdefault&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;mqdefault&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;sddefault&quot;</span><br/>    <span class="tsd-signature-symbol">|</span> <span class="tsd-signature-type">&quot;maxresdefault&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Modules/Interfaces.ts#L29">src/Modules/Interfaces.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Constructor | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Modules_Utils.html">Modules/Utils</a></li><li><a href="" aria-current="page">Constructor</a></li></ul><h1>Type Alias Constructor&lt;T&gt;</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Constructor</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">new</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">...</span><span class="tsd-kind-parameter">args</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">)</span> <span class="tsd-signature-symbol">=&gt;</span> <a class="tsd-signature-type tsd-kind-type-parameter" href="#t">T</a></div><section class="tsd-panel"><h4>Type Parameters</h4><ul class="tsd-type-parameter-list"><li><span id="t"><span class="tsd-kind-type-parameter">T</span></span></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Modules/Utils.ts#L26">src/Modules/Utils.ts:26</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>version | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Index.html">Index</a></li><li><a href="" aria-current="page">version</a></li></ul><h1>Variable version<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">version</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;3.4.0&quot;</span><span class="tsd-signature-symbol"> = &#39;3.4.0&#39;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Index.ts#L14">src/Index.ts:14</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Events | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Modules_Interfaces.html">Modules/Interfaces</a></li><li><a href="" aria-current="page">Events</a></li></ul><h1>Variable Events<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Events</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span><br/>    <span class="tsd-kind-property">Debug</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerClosed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerCreate</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerDestroy</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerEmpty</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerEnd</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerError</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerException</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerMoved</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerResolveError</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerResumed</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerStart</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerStuck</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">PlayerUpdate</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/>    <span class="tsd-kind-property">QueueUpdate</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span><br/><span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5 id="debug"><span class="tsd-kind-property">Debug</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerclosed"><span class="tsd-kind-property">PlayerClosed</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playercreate"><span class="tsd-kind-property">PlayerCreate</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerdestroy"><span class="tsd-kind-property">PlayerDestroy</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerempty"><span class="tsd-kind-property">PlayerEmpty</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerend"><span class="tsd-kind-property">PlayerEnd</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playererror"><span class="tsd-kind-property">PlayerError</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerexception"><span class="tsd-kind-property">PlayerException</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playermoved"><span class="tsd-kind-property">PlayerMoved</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerresolveerror"><span class="tsd-kind-property">PlayerResolveError</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerresumed"><span class="tsd-kind-property">PlayerResumed</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerstart"><span class="tsd-kind-property">PlayerStart</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerstuck"><span class="tsd-kind-property">PlayerStuck</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="playerupdate"><span class="tsd-kind-property">PlayerUpdate</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="queueupdate"><span class="tsd-kind-property">QueueUpdate</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Modules/Interfaces.ts#L109">src/Modules/Interfaces.ts:109</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SourceIDs | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Modules_Interfaces.html">Modules/Interfaces</a></li><li><a href="" aria-current="page">SourceIDs</a></li></ul><h1>Variable SourceIDs<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">SourceIDs</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">soundcloud</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">youtube</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">;</span> <span class="tsd-kind-property">youtube_music</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span> <span class="tsd-signature-symbol">}</span><span class="tsd-signature-symbol"> = ...</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5 id="soundcloud"><span class="tsd-kind-property">soundcloud</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="youtube"><span class="tsd-kind-property">youtube</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li><li class="tsd-parameter"><h5 id="youtube_music"><span class="tsd-kind-property">youtube_music</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Modules/Interfaces.ts#L44">src/Modules/Interfaces.ts:44</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SupportedSources | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Modules_Interfaces.html">Modules/Interfaces</a></li><li><a href="" aria-current="page">SupportedSources</a></li></ul><h1>Variable SupportedSources<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">SupportedSources</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Modules/Interfaces.ts#L152">src/Modules/Interfaces.ts:152</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>default | kazagumo</title><meta name="description" content="Documentation for kazagumo"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">kazagumo</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/Modules_Plugins.html">Modules/Plugins</a></li><li><a href="" aria-current="page">default</a></li></ul><h1>Variable default</h1></div><div class="tsd-signature"><span class="tsd-kind-variable">default</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{</span> <span class="tsd-kind-property">PlayerMoved</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-keyword">typeof</span> <a href="../classes/Plugins_PlayerMoved.KazagumoPlugin.html" class="tsd-signature-type tsd-kind-class">KazagumoPlugin</a> <span class="tsd-signature-symbol">}</span></div><div class="tsd-type-declaration"><h4>Type Declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5 id="playermoved"><span class="tsd-kind-property">PlayerMoved</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-keyword">typeof</span> <a href="../classes/Plugins_PlayerMoved.KazagumoPlugin.html" class="tsd-signature-type tsd-kind-class">KazagumoPlugin</a></h5></li></ul></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/Takiyo0/Kazagumo/blob/8b14039ef9786f37e611cfc93ae7b44c7352a31a/src/Modules/Plugins.ts#L3">src/Modules/Plugins.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">kazagumo</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,15 @@
1
+ import js from "@eslint/js";
2
+ import tseslint from "typescript-eslint";
3
+
4
+ export default tseslint.config(
5
+ js.configs.recommended,
6
+ ...tseslint.configs.recommended,
7
+ {
8
+ rules: {
9
+ "@typescript-eslint/no-explicit-any": "off",
10
+ "@typescript-eslint/ban-ts-comment": "off",
11
+ "@typescript-eslint/no-unused-vars": "warn"
12
+ },
13
+ ignores: ["dist", "docs", "node_modules"]
14
+ }
15
+ );
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "kazagumo-bun",
3
+ "version": "3.4.0-b",
4
+ "description": "Bun-native high-performance Kazagumo fork. Node legacy purged.",
5
+ "main": "src/Index.ts",
6
+ "types": "src/Index.ts",
7
+ "type": "module",
8
+ "engines": {
9
+ "bun": ">=1.3.6"
10
+ },
11
+ "scripts": {
12
+ "test": "bun test",
13
+ "lint": "eslint ."
14
+ },
15
+ "author": "Takiyo & Luigi Colantuono",
16
+ "license": "ISC",
17
+ "dependencies": {
18
+ "shoukaku": "github:LuigiColantuono/shoukaku-bun"
19
+ },
20
+ "devDependencies": {
21
+ "@types/bun": "latest",
22
+ "discord.js": "^14.25.1",
23
+ "typescript": "^5.9.3",
24
+ "eslint": "^9.39.2"
25
+ }
26
+ }
package/src/Index.ts ADDED
@@ -0,0 +1,14 @@
1
+ // import { NodeOption, PlayerUpdate, ShoukakuOptions, TrackExceptionEvent, WebSocketClosedEvent } from "shoukaku";
2
+ import { KazagumoTrack } from './Managers/Supports/KazagumoTrack';
3
+ import { KazagumoQueue } from './Managers/Supports/KazagumoQueue';
4
+ import { KazagumoPlayer } from './Managers/KazagumoPlayer';
5
+ import Plugins from './Modules/Plugins';
6
+ // import KazagumoPlayer from "./Managers/KazagumoPlayer";
7
+ // import { KazagumoOptions } from "./Modules/Interfaces";
8
+ // import { Connector } from "shoukaku/dist/src/connectors/Connector";
9
+
10
+ export * from './Kazagumo';
11
+ export { KazagumoTrack, KazagumoQueue, KazagumoPlayer, Plugins };
12
+ export * from './Modules/Interfaces';
13
+
14
+ export const version = '3.4.0b';
@@ -0,0 +1,396 @@
1
+ import { EventEmitter } from './Modules/EventEmitter';
2
+ import {
3
+ CreatePlayerOptions,
4
+ Events,
5
+ KazagumoError,
6
+ KazagumoOptions as KazagumoOptionsOwO,
7
+ KazagumoSearchOptions,
8
+ KazagumoSearchResult,
9
+ PlayerMovedChannels,
10
+ PlayerMovedState,
11
+ SearchResultTypes,
12
+ SourceIDs,
13
+ } from './Modules/Interfaces';
14
+ import {
15
+ Connection,
16
+ Connector,
17
+ LoadType,
18
+ Node,
19
+ NodeOption,
20
+ Player,
21
+ PlayerUpdate,
22
+ Shoukaku,
23
+ ShoukakuOptions,
24
+ Track,
25
+ TrackExceptionEvent,
26
+ TrackStuckEvent,
27
+ VoiceChannelOptions,
28
+ WebSocketClosedEvent,
29
+ Constants,
30
+ } from 'shoukaku';
31
+ const { State, VoiceState } = Constants;
32
+ type VoiceStateType = (typeof VoiceState)[keyof typeof VoiceState];
33
+
34
+ import { KazagumoPlayer } from './Managers/KazagumoPlayer';
35
+ import { KazagumoTrack } from './Managers/Supports/KazagumoTrack';
36
+ import { KazagumoQueue } from './Managers/Supports/KazagumoQueue';
37
+
38
+ export interface KazagumoEvents {
39
+ /**
40
+ * Emitted when a track is going to play.
41
+ * @event Kazagumo#playerStart
42
+ */
43
+ playerStart: [player: KazagumoPlayer, track: KazagumoTrack];
44
+
45
+ /**
46
+ * Emitted when an error occured while resolving track.
47
+ * @event Kazagumo#playerResolveError
48
+ */
49
+ playerResolveError: [player: KazagumoPlayer, track: KazagumoTrack, message?: string];
50
+
51
+ /**
52
+ * Emitted when a player got destroyed.
53
+ * @event Kazagumo#playerDestroy
54
+ */
55
+ playerDestroy: [player: KazagumoPlayer];
56
+
57
+ /**
58
+ * Emitted when a player created.
59
+ * @event Kazagumo#playerCreate
60
+ */
61
+ playerCreate: [player: KazagumoPlayer];
62
+
63
+ /**
64
+ * Emitted when a track ended.
65
+ * @event Kazagumo#playerEnd
66
+ */
67
+ playerEnd: [player: KazagumoPlayer];
68
+
69
+ /**
70
+ * Emitted when a player got empty.
71
+ * @event Kazagumo#playerEmpty
72
+ */
73
+ playerEmpty: [player: KazagumoPlayer];
74
+
75
+ /**
76
+ * Emitted when a player got closed.
77
+ * @event Kazagumo#playerClosed
78
+ */
79
+ playerClosed: [player: KazagumoPlayer, data: WebSocketClosedEvent];
80
+
81
+ /**
82
+ * Emitted when a player got stuck.
83
+ * @event Kazagumo#playerStuck
84
+ */
85
+ playerStuck: [player: KazagumoPlayer, data: TrackStuckEvent];
86
+
87
+ /**
88
+ * Emitted when a player got resumed.
89
+ * @event Kazagumo#playerResumed
90
+ */
91
+ playerResumed: [player: KazagumoPlayer];
92
+
93
+ /**
94
+ * Emitted only when you use playerMoved plugin and when the bot moved, joined, or left voice channel.
95
+ * @event Kazagumo#playerMoved
96
+ */
97
+ playerMoved: [player: KazagumoPlayer, state: PlayerMovedState, channels: PlayerMovedChannels];
98
+
99
+ /**
100
+ * Emitted when an exception occured.
101
+ * @event Kazagumo#playerException
102
+ */
103
+ playerException: [player: KazagumoPlayer, data: TrackExceptionEvent];
104
+
105
+ /**
106
+ * Emitted when a player updated.
107
+ * @event Kazagumo#playerUpdate
108
+ */
109
+ playerUpdate: [player: KazagumoPlayer, data: PlayerUpdate];
110
+
111
+ /**
112
+ * Emitted for science purpose.
113
+ * @event Kazagumo#playerUpdate
114
+ */
115
+ // maybe this should be changed
116
+ // 'playerUpdate': [data: unknown];
117
+
118
+ /**
119
+ * Emitted when a queue updated (track added, changed, etc).
120
+ * @event Kazagumo#queueUpdate
121
+ */
122
+ queueUpdate: [player: KazagumoPlayer, queue: KazagumoQueue];
123
+ }
124
+
125
+ export declare interface Kazagumo {
126
+ on<K extends keyof KazagumoEvents>(event: K, listener: (...args: KazagumoEvents[K]) => void): this;
127
+ once<K extends keyof KazagumoEvents>(event: K, listener: (...args: KazagumoEvents[K]) => void): this;
128
+ off<K extends keyof KazagumoEvents>(event: K, listener: (...args: KazagumoEvents[K]) => void): this;
129
+ emit(event: string | symbol, ...args: any[]): boolean;
130
+ }
131
+
132
+ export class Kazagumo extends EventEmitter {
133
+ /** Shoukaku instance */
134
+ public shoukaku: Shoukaku;
135
+ /** Kazagumo players */
136
+ public readonly players: Map<string, KazagumoPlayer> = new Map();
137
+
138
+ /**
139
+ * Initialize a Kazagumo instance.
140
+ * @param KazagumoOptions KazagumoOptions
141
+ * @param connector Connector
142
+ * @param nodes NodeOption[]
143
+ * @param options ShoukakuOptions
144
+ */
145
+ constructor(
146
+ public KazagumoOptions: KazagumoOptionsOwO,
147
+ connector: Connector,
148
+ nodes: NodeOption[],
149
+ options: ShoukakuOptions = {},
150
+ ) {
151
+ super();
152
+
153
+ this.shoukaku = new Shoukaku(connector, nodes, options);
154
+
155
+ if (this.KazagumoOptions.plugins) {
156
+ for (const [, plugin] of this.KazagumoOptions.plugins.entries()) {
157
+ if (plugin.constructor.name !== 'KazagumoPlugin')
158
+ throw new KazagumoError(1, 'Plugin must be an instance of KazagumoPlugin');
159
+ plugin.load(this);
160
+ }
161
+ }
162
+
163
+ this.players = new Map<string, KazagumoPlayer>();
164
+ }
165
+
166
+ // Modified version of Shoukaku#joinVoiceChannel
167
+ // Credit to @deivu
168
+ protected async createVoiceConnection(
169
+ newPlayerOptions: VoiceChannelOptions,
170
+ kazagumoPlayerOptions: CreatePlayerOptions,
171
+ ): Promise<Player> {
172
+ if (this.shoukaku.connections.has(newPlayerOptions.guildId) && this.shoukaku.players.has(newPlayerOptions.guildId))
173
+ return this.shoukaku.players.get(newPlayerOptions.guildId)!;
174
+ if (
175
+ this.shoukaku.connections.has(newPlayerOptions.guildId) &&
176
+ !this.shoukaku.players.has(newPlayerOptions.guildId)
177
+ ) {
178
+ this.shoukaku.connections.get(newPlayerOptions.guildId)!.disconnect();
179
+
180
+ console.log(
181
+ '[KazagumoError; l220 Kazagumo.ts] -> Connection exist but player not found. Destroying connection...',
182
+ );
183
+ }
184
+
185
+ const connection = new Connection(this.shoukaku, newPlayerOptions);
186
+ this.shoukaku.connections.set(connection.guildId, connection);
187
+ try {
188
+ await connection.connect();
189
+ } catch (error) {
190
+ this.shoukaku.connections.delete(newPlayerOptions.guildId);
191
+ throw error;
192
+ }
193
+ try {
194
+ let node;
195
+ if (kazagumoPlayerOptions.loadBalancer) node = await this.getLeastUsedNode();
196
+ else if (kazagumoPlayerOptions.nodeName)
197
+ node = this.shoukaku.nodes.get(kazagumoPlayerOptions.nodeName) ?? (await this.getLeastUsedNode());
198
+ else node = this.shoukaku.options.nodeResolver(this.shoukaku.nodes);
199
+ if (!node) throw new KazagumoError(3, 'No node found');
200
+
201
+ const player = this.shoukaku.options.structures.player
202
+ ? new this.shoukaku.options.structures.player(connection.guildId, node)
203
+ : new Player(connection.guildId, node);
204
+ const onUpdate = (state: VoiceStateType) => {
205
+ if (state !== VoiceState.SESSION_READY) return;
206
+ player.sendServerUpdate(connection);
207
+ };
208
+ await player.sendServerUpdate(connection);
209
+ connection.on('connectionUpdate', onUpdate);
210
+ this.shoukaku.players.set(player.guildId, player);
211
+ return player;
212
+ } catch (error) {
213
+ connection.disconnect();
214
+ this.shoukaku.connections.delete(newPlayerOptions.guildId);
215
+ throw error;
216
+ }
217
+ }
218
+
219
+ /**
220
+ * Create a player.
221
+ * @param options CreatePlayerOptions
222
+ * @returns Promise<KazagumoPlayer>
223
+ */
224
+ public async createPlayer<T extends KazagumoPlayer>(options: CreatePlayerOptions): Promise<T | KazagumoPlayer> {
225
+ const exist = this.players.get(options.guildId);
226
+ if (exist) return exist;
227
+
228
+ let node;
229
+ if (options.loadBalancer) node = this.getLeastUsedNode();
230
+ else if (options.nodeName) node = this.shoukaku.nodes.get(options.nodeName) ?? this.getLeastUsedNode();
231
+ else node = this.shoukaku.options.nodeResolver(this.shoukaku.nodes);
232
+
233
+ if (!options.deaf) options.deaf = false;
234
+ if (!options.mute) options.mute = false;
235
+
236
+ if (!node) throw new KazagumoError(3, 'No node found');
237
+
238
+ const shoukakuPlayer = await this.createVoiceConnection(
239
+ {
240
+ guildId: options.guildId as string,
241
+ channelId: options.voiceId as string,
242
+ deaf: options.deaf,
243
+ mute: options.mute,
244
+ shardId: options.shardId && !isNaN(options.shardId) ? options.shardId : 0,
245
+ },
246
+ options,
247
+ );
248
+
249
+ const kazagumoPlayer = new (this.KazagumoOptions.extends?.player ?? KazagumoPlayer)(
250
+ this,
251
+ shoukakuPlayer,
252
+ {
253
+ guildId: options.guildId,
254
+ voiceId: options.voiceId,
255
+ textId: options.textId,
256
+ deaf: options.deaf,
257
+ volume: isNaN(Number(options.volume)) ? 100 : (options.volume as number),
258
+ },
259
+ options.data,
260
+ );
261
+ this.players.set(options.guildId, kazagumoPlayer);
262
+ this.emit(Events.PlayerCreate, kazagumoPlayer);
263
+ return kazagumoPlayer;
264
+ }
265
+
266
+ /**
267
+ * Get a player by guildId.
268
+ * @param guildId Guild ID
269
+ * @returns KazagumoPlayer | undefined
270
+ */
271
+ public getPlayer<T extends KazagumoPlayer>(guildId: string): (T | KazagumoPlayer) | undefined {
272
+ return this.players.get(guildId);
273
+ }
274
+
275
+ /**
276
+ * Destroy a player.
277
+ * @param guildId Guild ID
278
+ * @returns void
279
+ */
280
+ public destroyPlayer<T extends KazagumoPlayer>(guildId: string): void {
281
+ const player = this.getPlayer<T>(guildId);
282
+ if (!player) return;
283
+ player.destroy();
284
+ this.players.delete(guildId);
285
+ }
286
+
287
+ /**
288
+ * Get the least used node.
289
+ * @param group The group where you want to get the least used nodes there. Case-sensitive, catch the error when there is no such group
290
+ * @returns Node
291
+ */
292
+ public async getLeastUsedNode(group?: string): Promise<Node> {
293
+ const nodes: Node[] = [...this.shoukaku.nodes.values()];
294
+
295
+ const onlineNodes = nodes.filter((node) => node.state === State.CONNECTED && (!group || node.group === group));
296
+ if (!onlineNodes.length && group && !nodes.find((x) => x.group === group))
297
+ throw new KazagumoError(2, `There is no such group: ${group}`);
298
+ if (!onlineNodes.length)
299
+ throw new KazagumoError(2, !!group ? `No nodes are online in ${group}` : 'No nodes are online');
300
+
301
+ const temp = await Promise.all(
302
+ onlineNodes.map(async (node) => ({
303
+ node,
304
+ players: (await node.rest.getPlayers())
305
+ .filter((x) => this.players.get(x.guildId))
306
+ .map((x) => this.players.get(x.guildId)!)
307
+ .filter((x) => x.shoukaku.node.name === node.name).length,
308
+ })),
309
+ );
310
+
311
+ return temp.reduce((a, b) => (a.players < b.players ? a : b)).node;
312
+ }
313
+
314
+ /**
315
+ * Search a track by query or uri.
316
+ * @param query Query
317
+ * @param options KazagumoOptions
318
+ * @returns Promise<KazagumoSearchResult>
319
+ */
320
+ public async search(query: string, options?: KazagumoSearchOptions): Promise<KazagumoSearchResult> {
321
+ const node = options?.nodeName
322
+ ? (this.shoukaku.nodes.get(options.nodeName) ?? (await this.getLeastUsedNode()))
323
+ : await this.getLeastUsedNode();
324
+ if (!node) throw new KazagumoError(3, 'No node is available');
325
+
326
+ const source = (SourceIDs as any)[
327
+ (options?.engine && ['youtube', 'youtube_music', 'soundcloud'].includes(options.engine)
328
+ ? options.engine
329
+ : null) ||
330
+ (!!this.KazagumoOptions.defaultSearchEngine &&
331
+ ['youtube', 'youtube_music', 'soundcloud'].includes(this.KazagumoOptions.defaultSearchEngine!)
332
+ ? this.KazagumoOptions.defaultSearchEngine
333
+ : null) ||
334
+ 'youtube'
335
+ ];
336
+
337
+ const isUrl = /^https?:\/\/.*/.test(query);
338
+ const customSource = options?.source ?? this.KazagumoOptions.defaultSource ?? `${source}search:`;
339
+
340
+ const result = await node.rest.resolve(!isUrl ? `${customSource}${query}` : query).catch((_) => null);
341
+ if (!result || result.loadType === LoadType.EMPTY) return this.buildSearch(undefined, [], 'SEARCH');
342
+
343
+ let loadType: SearchResultTypes;
344
+ let normalizedData: {
345
+ playlistName?: string;
346
+ tracks: Track[];
347
+ } = { tracks: [] };
348
+ switch (result.loadType) {
349
+ case LoadType.TRACK: {
350
+ loadType = 'TRACK';
351
+ normalizedData.tracks = [result.data];
352
+ break;
353
+ }
354
+
355
+ case LoadType.PLAYLIST: {
356
+ loadType = 'PLAYLIST';
357
+ normalizedData = {
358
+ playlistName: result.data.info.name,
359
+ tracks: result.data.tracks,
360
+ };
361
+ break;
362
+ }
363
+
364
+ case LoadType.SEARCH: {
365
+ loadType = 'SEARCH';
366
+ normalizedData.tracks = result.data;
367
+ break;
368
+ }
369
+
370
+ default: {
371
+ loadType = 'SEARCH';
372
+ normalizedData.tracks = [];
373
+ break;
374
+ }
375
+ }
376
+ this.emit(Events.Debug, `Searched ${query}; Track results: ${normalizedData.tracks.length}`);
377
+
378
+ return this.buildSearch(
379
+ normalizedData.playlistName ?? undefined,
380
+ normalizedData.tracks.map((track) => new KazagumoTrack(track, options?.requester)),
381
+ loadType,
382
+ );
383
+ }
384
+
385
+ private buildSearch(
386
+ playlistName?: string,
387
+ tracks: KazagumoTrack[] = [],
388
+ type?: SearchResultTypes,
389
+ ): KazagumoSearchResult {
390
+ return {
391
+ playlistName,
392
+ tracks,
393
+ type: type ?? 'SEARCH',
394
+ };
395
+ }
396
+ }