yukimu 1.2.0 → 2.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 (135) hide show
  1. package/dist/BitrateOptimizer.d.ts +52 -0
  2. package/dist/BitrateOptimizer.d.ts.map +1 -0
  3. package/dist/BitrateOptimizer.js +115 -0
  4. package/dist/BitrateOptimizer.js.map +1 -0
  5. package/dist/ConnectionPool.d.ts +52 -2
  6. package/dist/ConnectionPool.d.ts.map +1 -1
  7. package/dist/ConnectionPool.js +123 -44
  8. package/dist/ConnectionPool.js.map +1 -1
  9. package/dist/Constants.d.ts +26 -47
  10. package/dist/Constants.d.ts.map +1 -1
  11. package/dist/Constants.js +134 -67
  12. package/dist/Constants.js.map +1 -1
  13. package/dist/Logger.d.ts +22 -0
  14. package/dist/Logger.d.ts.map +1 -0
  15. package/dist/Logger.js +74 -0
  16. package/dist/Logger.js.map +1 -0
  17. package/dist/Node.d.ts +17 -4
  18. package/dist/Node.d.ts.map +1 -1
  19. package/dist/Node.js +217 -79
  20. package/dist/Node.js.map +1 -1
  21. package/dist/Player.d.ts +77 -6
  22. package/dist/Player.d.ts.map +1 -1
  23. package/dist/Player.js +319 -75
  24. package/dist/Player.js.map +1 -1
  25. package/dist/Plugin.d.ts +16 -12
  26. package/dist/Plugin.d.ts.map +1 -1
  27. package/dist/Plugin.js +5 -9
  28. package/dist/Plugin.js.map +1 -1
  29. package/dist/Queue.d.ts +69 -3
  30. package/dist/Queue.d.ts.map +1 -1
  31. package/dist/Queue.js +123 -17
  32. package/dist/Queue.js.map +1 -1
  33. package/dist/Resolver.d.ts +33 -2
  34. package/dist/Resolver.d.ts.map +1 -1
  35. package/dist/Resolver.js +233 -27
  36. package/dist/Resolver.js.map +1 -1
  37. package/dist/Rest.d.ts +25 -3
  38. package/dist/Rest.d.ts.map +1 -1
  39. package/dist/Rest.js +165 -23
  40. package/dist/Rest.js.map +1 -1
  41. package/dist/TrackCache.d.ts +28 -8
  42. package/dist/TrackCache.d.ts.map +1 -1
  43. package/dist/TrackCache.js +111 -24
  44. package/dist/TrackCache.js.map +1 -1
  45. package/dist/WsQueue.d.ts +30 -9
  46. package/dist/WsQueue.d.ts.map +1 -1
  47. package/dist/WsQueue.js +66 -24
  48. package/dist/WsQueue.js.map +1 -1
  49. package/dist/Yukimu.d.ts +37 -13
  50. package/dist/Yukimu.d.ts.map +1 -1
  51. package/dist/Yukimu.js +146 -59
  52. package/dist/Yukimu.js.map +1 -1
  53. package/dist/connector/Connector.d.ts +26 -0
  54. package/dist/connector/Connector.d.ts.map +1 -1
  55. package/dist/connector/Connector.js +28 -0
  56. package/dist/connector/Connector.js.map +1 -1
  57. package/dist/connector/DiscordJS.d.ts +21 -19
  58. package/dist/connector/DiscordJS.d.ts.map +1 -1
  59. package/dist/connector/DiscordJS.js +44 -2
  60. package/dist/connector/DiscordJS.js.map +1 -1
  61. package/dist/connector/Eris.d.ts +13 -17
  62. package/dist/connector/Eris.d.ts.map +1 -1
  63. package/dist/connector/Eris.js +36 -4
  64. package/dist/connector/Eris.js.map +1 -1
  65. package/dist/connector/Oceanic.d.ts +13 -14
  66. package/dist/connector/Oceanic.d.ts.map +1 -1
  67. package/dist/connector/Oceanic.js +35 -2
  68. package/dist/connector/Oceanic.js.map +1 -1
  69. package/dist/errors/YukimuError.d.ts +40 -4
  70. package/dist/errors/YukimuError.d.ts.map +1 -1
  71. package/dist/errors/YukimuError.js +79 -9
  72. package/dist/errors/YukimuError.js.map +1 -1
  73. package/dist/index.d.ts +13 -4
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +30 -21
  76. package/dist/index.js.map +1 -1
  77. package/dist/plugins/AutoResume.d.ts +18 -14
  78. package/dist/plugins/AutoResume.d.ts.map +1 -1
  79. package/dist/plugins/AutoResume.js +101 -21
  80. package/dist/plugins/AutoResume.js.map +1 -1
  81. package/dist/plugins/AutoplayPlugin.d.ts +35 -0
  82. package/dist/plugins/AutoplayPlugin.d.ts.map +1 -0
  83. package/dist/plugins/AutoplayPlugin.js +111 -0
  84. package/dist/plugins/AutoplayPlugin.js.map +1 -0
  85. package/dist/plugins/InactivityPlugin.d.ts +30 -0
  86. package/dist/plugins/InactivityPlugin.d.ts.map +1 -0
  87. package/dist/plugins/InactivityPlugin.js +86 -0
  88. package/dist/plugins/InactivityPlugin.js.map +1 -0
  89. package/dist/plugins/PlayerMoved.d.ts +23 -1
  90. package/dist/plugins/PlayerMoved.d.ts.map +1 -1
  91. package/dist/plugins/PlayerMoved.js +57 -12
  92. package/dist/plugins/PlayerMoved.js.map +1 -1
  93. package/dist/types.d.ts +196 -78
  94. package/dist/types.d.ts.map +1 -1
  95. package/dist/types.js +1 -0
  96. package/dist/types.js.map +1 -1
  97. package/package.json +49 -5
  98. package/.cache/replit/env/latest +0 -88
  99. package/.cache/replit/env/latest.json +0 -1
  100. package/.cache/replit/modules/nodejs-20.res +0 -1
  101. package/.cache/replit/modules/python-3.11.res +0 -1
  102. package/.cache/replit/modules/replit.res +0 -1
  103. package/.cache/replit/modules.stamp +0 -0
  104. package/.cache/replit/nix/dotreplitenv.json +0 -1
  105. package/.cache/replit/toolchain.json +0 -1
  106. package/.local/state/workflow-logs/7zVU0iVo-fBL1ccMCmELy/configure_your_app.packager.installForAll.0 +0 -9
  107. package/.local/state/workflow-logs/7zVU0iVo-fBL1ccMCmELy/configure_your_app.shell.exec.1 +0 -1
  108. package/.local/state/workflow-logs/KRgHXizaECjWI5nWtS7Dj/configure_your_app.packager.installForAll.0 +0 -1
  109. package/.local/state/workflow-logs/KRgHXizaECjWI5nWtS7Dj/configure_your_app.shell.exec.1 +0 -1
  110. package/.local/state/workflow-logs/U0AinJQVHonnwGjj0RXLn/configure_your_app.packager.installForAll.0 +0 -2
  111. package/.local/state/workflow-logs/jVavLOnv1MqxUvxhMmqER/configure_your_app.packager.installForAll.0 +0 -1
  112. package/.local/state/workflow-logs/jVavLOnv1MqxUvxhMmqER/configure_your_app.shell.exec.1 +0 -1
  113. package/.replit +0 -7
  114. package/.upm/store.json +0 -1
  115. package/src/ConnectionPool.ts +0 -131
  116. package/src/Constants.ts +0 -101
  117. package/src/Node.ts +0 -309
  118. package/src/Player.ts +0 -337
  119. package/src/Plugin.ts +0 -23
  120. package/src/Queue.ts +0 -91
  121. package/src/Resolver.ts +0 -79
  122. package/src/Rest.ts +0 -121
  123. package/src/TrackCache.ts +0 -69
  124. package/src/WsQueue.ts +0 -78
  125. package/src/Yukimu.ts +0 -248
  126. package/src/connector/Connector.ts +0 -13
  127. package/src/connector/DiscordJS.ts +0 -33
  128. package/src/connector/Eris.ts +0 -35
  129. package/src/connector/Oceanic.ts +0 -32
  130. package/src/errors/YukimuError.ts +0 -33
  131. package/src/index.ts +0 -46
  132. package/src/plugins/AutoResume.ts +0 -61
  133. package/src/plugins/PlayerMoved.ts +0 -26
  134. package/src/types.ts +0 -145
  135. package/tsconfig.json +0 -20
@@ -0,0 +1,52 @@
1
+ /** Yukimu v2.0.0 — Bitrate Optimizer for Discord Boost Tiers */
2
+ import type { BoostTier, BitrateConfig, FilterOptions, EqualizerBand } from "./types";
3
+ /**
4
+ * Provides optimal audio quality settings based on the Discord server's boost tier.
5
+ *
6
+ * Discord bitrate caps by tier:
7
+ * - Tier 0 (no boost): 96 kbps max
8
+ * - Tier 1: 128 kbps max
9
+ * - Tier 2: 256 kbps max
10
+ * - Tier 3: 384 kbps max
11
+ *
12
+ * Note: The actual voice channel bitrate is set via Discord's API (by the bot or server admin).
13
+ * Yukimu optimizes the Lavalink-side audio processing (filters, EQ) to complement the
14
+ * available bitrate — preventing quality degradation, clipping, and distortion.
15
+ */
16
+ export declare class BitrateOptimizer {
17
+ /**
18
+ * Get the bitrate configuration for a given boost tier.
19
+ */
20
+ static getConfig(tier: BoostTier): BitrateConfig;
21
+ /**
22
+ * Get the maximum bitrate (in kbps) for a given boost tier.
23
+ */
24
+ static getMaxBitrate(tier: BoostTier): number;
25
+ /**
26
+ * Get recommended filter settings optimized for the given boost tier.
27
+ *
28
+ * - Tier 0–1: Minimal processing to avoid quality loss on low bitrate
29
+ * - Tier 2–3: Enhanced EQ for richer sound, taking advantage of higher bitrate
30
+ */
31
+ static getOptimalFilters(tier: BoostTier): FilterOptions;
32
+ /**
33
+ * Get optimal volume for a given boost tier.
34
+ * Lower tiers should stay at 100 to avoid clipping on lower bitrate.
35
+ */
36
+ static getOptimalVolume(tier: BoostTier): number;
37
+ /**
38
+ * Flat EQ — no modification, prevents quality loss on low bitrate.
39
+ */
40
+ static getFlatEQ(): EqualizerBand[];
41
+ /**
42
+ * Clarity EQ — subtle boost to presence and air frequencies
43
+ * for enhanced vocal clarity and sparkle on high-bitrate connections.
44
+ */
45
+ static getClarityEQ(): EqualizerBand[];
46
+ /**
47
+ * Bass-heavy EQ — tuned for each tier to prevent distortion.
48
+ * Lower tiers get less bass boost to prevent clipping.
49
+ */
50
+ static getBassEQ(tier: BoostTier): EqualizerBand[];
51
+ }
52
+ //# sourceMappingURL=BitrateOptimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitrateOptimizer.d.ts","sourceRoot":"","sources":["../src/BitrateOptimizer.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAGhE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtF;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;WACW,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa;IAIvD;;OAEG;WACW,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAIpD;;;;;OAKG;WACW,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa;IAiB/D;;;OAGG;WACW,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM;IAIvD;;OAEG;WACW,SAAS,IAAI,aAAa,EAAE;IAI1C;;;OAGG;WACW,YAAY,IAAI,aAAa,EAAE;IAoB7C;;;OAGG;WACW,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,EAAE;CAsB1D"}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ /** Yukimu v2.0.0 — Bitrate Optimizer for Discord Boost Tiers */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BitrateOptimizer = void 0;
5
+ const Constants_1 = require("./Constants");
6
+ /**
7
+ * Provides optimal audio quality settings based on the Discord server's boost tier.
8
+ *
9
+ * Discord bitrate caps by tier:
10
+ * - Tier 0 (no boost): 96 kbps max
11
+ * - Tier 1: 128 kbps max
12
+ * - Tier 2: 256 kbps max
13
+ * - Tier 3: 384 kbps max
14
+ *
15
+ * Note: The actual voice channel bitrate is set via Discord's API (by the bot or server admin).
16
+ * Yukimu optimizes the Lavalink-side audio processing (filters, EQ) to complement the
17
+ * available bitrate — preventing quality degradation, clipping, and distortion.
18
+ */
19
+ class BitrateOptimizer {
20
+ /**
21
+ * Get the bitrate configuration for a given boost tier.
22
+ */
23
+ static getConfig(tier) {
24
+ return Constants_1.BITRATE_BY_BOOST_TIER[tier];
25
+ }
26
+ /**
27
+ * Get the maximum bitrate (in kbps) for a given boost tier.
28
+ */
29
+ static getMaxBitrate(tier) {
30
+ return Constants_1.BITRATE_BY_BOOST_TIER[tier].maxBitrate;
31
+ }
32
+ /**
33
+ * Get recommended filter settings optimized for the given boost tier.
34
+ *
35
+ * - Tier 0–1: Minimal processing to avoid quality loss on low bitrate
36
+ * - Tier 2–3: Enhanced EQ for richer sound, taking advantage of higher bitrate
37
+ */
38
+ static getOptimalFilters(tier) {
39
+ const config = Constants_1.BITRATE_BY_BOOST_TIER[tier];
40
+ if (!config.enhancedEQ) {
41
+ // Low bitrate tiers: flat EQ, no processing overhead
42
+ return {
43
+ equalizer: BitrateOptimizer.getFlatEQ(),
44
+ };
45
+ }
46
+ // High bitrate tiers: subtle enhancement for clarity
47
+ return {
48
+ equalizer: BitrateOptimizer.getClarityEQ(),
49
+ lowPass: { smoothing: 3.0 }, // Very gentle low-pass for smoothness
50
+ };
51
+ }
52
+ /**
53
+ * Get optimal volume for a given boost tier.
54
+ * Lower tiers should stay at 100 to avoid clipping on lower bitrate.
55
+ */
56
+ static getOptimalVolume(tier) {
57
+ return Constants_1.BITRATE_BY_BOOST_TIER[tier].recommendedVolume;
58
+ }
59
+ /**
60
+ * Flat EQ — no modification, prevents quality loss on low bitrate.
61
+ */
62
+ static getFlatEQ() {
63
+ return Array.from({ length: 15 }, (_, i) => ({ band: i, gain: 0 }));
64
+ }
65
+ /**
66
+ * Clarity EQ — subtle boost to presence and air frequencies
67
+ * for enhanced vocal clarity and sparkle on high-bitrate connections.
68
+ */
69
+ static getClarityEQ() {
70
+ return [
71
+ { band: 0, gain: 0.10 }, // Sub bass: gentle warmth
72
+ { band: 1, gain: 0.08 }, // Bass: subtle body
73
+ { band: 2, gain: 0.05 }, // Low mid
74
+ { band: 3, gain: 0.02 }, // Mid bass
75
+ { band: 4, gain: 0.0 }, // Low mid: flat
76
+ { band: 5, gain: 0.0 }, // Mid: flat
77
+ { band: 6, gain: 0.0 }, // Upper mid: flat
78
+ { band: 7, gain: 0.03 }, // Presence: slight lift
79
+ { band: 8, gain: 0.06 }, // Upper presence: clarity
80
+ { band: 9, gain: 0.08 }, // Treble: sparkle
81
+ { band: 10, gain: 0.06 }, // Upper treble: air
82
+ { band: 11, gain: 0.04 }, // Air
83
+ { band: 12, gain: 0.02 }, // Brilliance
84
+ { band: 13, gain: 0.0 }, // Ultra high
85
+ { band: 14, gain: 0.0 }, // Ultra high
86
+ ];
87
+ }
88
+ /**
89
+ * Bass-heavy EQ — tuned for each tier to prevent distortion.
90
+ * Lower tiers get less bass boost to prevent clipping.
91
+ */
92
+ static getBassEQ(tier) {
93
+ // Scale bass boost based on available bitrate headroom
94
+ const scale = tier >= 2 ? 1.0 : tier === 1 ? 0.7 : 0.4;
95
+ return [
96
+ { band: 0, gain: 0.6 * scale },
97
+ { band: 1, gain: 0.5 * scale },
98
+ { band: 2, gain: 0.4 * scale },
99
+ { band: 3, gain: 0.25 * scale },
100
+ { band: 4, gain: 0.1 * scale },
101
+ { band: 5, gain: -0.05 * scale },
102
+ { band: 6, gain: 0.0 },
103
+ { band: 7, gain: 0.0 },
104
+ { band: 8, gain: 0.0 },
105
+ { band: 9, gain: 0.0 },
106
+ { band: 10, gain: 0.0 },
107
+ { band: 11, gain: 0.0 },
108
+ { band: 12, gain: 0.0 },
109
+ { band: 13, gain: 0.0 },
110
+ { band: 14, gain: 0.0 },
111
+ ];
112
+ }
113
+ }
114
+ exports.BitrateOptimizer = BitrateOptimizer;
115
+ //# sourceMappingURL=BitrateOptimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitrateOptimizer.js","sourceRoot":"","sources":["../src/BitrateOptimizer.ts"],"names":[],"mappings":";AAAA,gEAAgE;;;AAEhE,2CAAoD;AAGpD;;;;;;;;;;;;GAYG;AACH,MAAa,gBAAgB;IAC3B;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,IAAe;QACrC,OAAO,iCAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa,CAAC,IAAe;QACzC,OAAO,iCAAqB,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAe;QAC7C,MAAM,MAAM,GAAG,iCAAqB,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,qDAAqD;YACrD,OAAO;gBACL,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE;aACxC,CAAC;QACJ,CAAC;QAED,qDAAqD;QACrD,OAAO;YACL,SAAS,EAAE,gBAAgB,CAAC,YAAY,EAAE;YAC1C,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,sCAAsC;SACpE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,IAAe;QAC5C,OAAO,iCAAqB,CAAC,IAAI,CAAC,CAAC,iBAAiB,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS;QACrB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,YAAY;QACxB,OAAO;YACL,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,0BAA0B;YACrD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,oBAAoB;YAC/C,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,UAAU;YACrC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,WAAW;YACtC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAK,gBAAgB;YAC3C,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAK,YAAY;YACvC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAK,kBAAkB;YAC7C,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,wBAAwB;YACnD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,0BAA0B;YACrD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAI,kBAAkB;YAC7C,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAG,oBAAoB;YAC/C,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAG,MAAM;YACjC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAG,aAAa;YACxC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAI,aAAa;YACxC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,EAAI,aAAa;SACzC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,SAAS,CAAC,IAAe;QACrC,uDAAuD;QACvD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAEvD,OAAO;YACL,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE;YAC9B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE;YAC9B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE;YAC9B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE;YAC/B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,KAAK,EAAE;YAC9B,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,GAAG,KAAK,EAAE;YAChC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YACtB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACvB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACvB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACvB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACvB,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;SACxB,CAAC;IACJ,CAAC;CACF;AAvGD,4CAuGC"}
@@ -1,32 +1,82 @@
1
+ /** Yukimu v2.0.0 — Voice Connection Pool with State Machine */
1
2
  import type { Yukimu } from "./Yukimu";
3
+ export declare enum VoiceConnectionState {
4
+ IDLE = 0,
5
+ CONNECTING = 1,
6
+ READY = 2,
7
+ DISCONNECTING = 3
8
+ }
2
9
  export interface VoiceConnection {
3
10
  guildId: string;
4
11
  channelId: string;
5
12
  sessionId: string | null;
6
13
  token: string | null;
7
14
  endpoint: string | null;
15
+ state: VoiceConnectionState;
8
16
  timeout: ReturnType<typeof setTimeout> | null;
9
17
  retryTimeout: ReturnType<typeof setTimeout> | null;
10
- connected: boolean;
11
18
  retries: number;
19
+ createdAt: number;
12
20
  }
21
+ /**
22
+ * Manages voice connection state for all guilds.
23
+ *
24
+ * Fixes from v1:
25
+ * - Uses player's actual selfDeaf/selfMute in retries (was hardcoded)
26
+ * - Proper state machine (IDLE → CONNECTING → READY → DISCONNECTING)
27
+ * - Connection age tracking
28
+ * - Full cleanup on destroy()
29
+ * - Null safety on all methods
30
+ */
13
31
  export declare class ConnectionPool {
14
32
  private readonly manager;
15
33
  private readonly connections;
16
34
  constructor(manager: Yukimu);
35
+ /**
36
+ * Register a new voice connection or update an existing one.
37
+ */
17
38
  add(guildId: string, channelId: string): VoiceConnection;
18
39
  get(guildId: string): VoiceConnection | undefined;
40
+ /**
41
+ * Remove a voice connection and clean up its timers.
42
+ */
19
43
  remove(guildId: string): void;
20
44
  has(guildId: string): boolean;
21
- updateSession(guildId: string, sessionId: string, channelId?: string): void;
45
+ /**
46
+ * Update session ID from VOICE_STATE_UPDATE.
47
+ * Null-safe: only updates if sessionId is provided.
48
+ */
49
+ updateSession(guildId: string, sessionId: string | undefined, channelId?: string): void;
50
+ /**
51
+ * Update voice server info from VOICE_SERVER_UPDATE.
52
+ */
22
53
  updateServer(guildId: string, token: string, endpoint: string): void;
54
+ /**
55
+ * Mark a connection as successfully established.
56
+ */
23
57
  markConnected(guildId: string): void;
58
+ /**
59
+ * Check if we have all the data needed to send a voice update to Lavalink.
60
+ */
24
61
  isReady(guildId: string): boolean;
62
+ /**
63
+ * Get the voice state payload for Lavalink.
64
+ */
25
65
  getVoiceState(guildId: string): {
26
66
  token: string;
27
67
  endpoint: string;
28
68
  sessionId: string;
69
+ channelId: string;
29
70
  } | null;
71
+ /**
72
+ * Get all active connections (for debugging/monitoring).
73
+ */
74
+ getAll(): ReadonlyMap<string, VoiceConnection>;
75
+ /**
76
+ * Clean up all connections and timers.
77
+ */
78
+ destroy(): void;
79
+ private clearTimers;
30
80
  private startTimeout;
31
81
  private handleConnectionFailure;
32
82
  get size(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionPool.d.ts","sourceRoot":"","sources":["../src/ConnectionPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;gBAE3D,OAAO,EAAE,MAAM;IAIpB,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe;IAexD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIjD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI7B,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAO3E,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOpE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASpC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKjC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAMpG,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,uBAAuB;IA+B/B,IAAI,IAAI,IAAI,MAAM,CAAkC;CACrD"}
1
+ {"version":3,"file":"ConnectionPool.d.ts","sourceRoot":"","sources":["../src/ConnectionPool.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAE/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAOvC,oBAAY,oBAAoB;IAC9B,IAAI,IAAI;IACR,UAAU,IAAI;IACd,KAAK,IAAI;IACT,aAAa,IAAI;CAClB;AAID,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;;;;;;;GASG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;gBAE3D,OAAO,EAAE,MAAM;IAI3B;;OAEG;IACI,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe;IA0BxD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIxD;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO7B,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIpC;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAO9F;;OAEG;IACI,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAO3E;;OAEG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQ3C;;OAEG;IACI,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAMxC;;OAEG;IACI,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAWR;;OAEG;IACI,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrD;;OAEG;IACI,OAAO,IAAI,IAAI;IAStB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,uBAAuB;IA2C/B,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -1,24 +1,56 @@
1
1
  "use strict";
2
+ /** Yukimu v2.0.0 — Voice Connection Pool with State Machine */
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ConnectionPool = void 0;
4
+ exports.ConnectionPool = exports.VoiceConnectionState = void 0;
5
+ const Constants_1 = require("./Constants");
6
+ const YukimuError_1 = require("./errors/YukimuError");
7
+ // ─── Connection State ───────────────────────────────────────────────────────
8
+ var VoiceConnectionState;
9
+ (function (VoiceConnectionState) {
10
+ VoiceConnectionState[VoiceConnectionState["IDLE"] = 0] = "IDLE";
11
+ VoiceConnectionState[VoiceConnectionState["CONNECTING"] = 1] = "CONNECTING";
12
+ VoiceConnectionState[VoiceConnectionState["READY"] = 2] = "READY";
13
+ VoiceConnectionState[VoiceConnectionState["DISCONNECTING"] = 3] = "DISCONNECTING";
14
+ })(VoiceConnectionState || (exports.VoiceConnectionState = VoiceConnectionState = {}));
4
15
  const MAX_VOICE_RETRIES = 3;
5
16
  const VOICE_RETRY_DELAY = 5000;
17
+ /**
18
+ * Manages voice connection state for all guilds.
19
+ *
20
+ * Fixes from v1:
21
+ * - Uses player's actual selfDeaf/selfMute in retries (was hardcoded)
22
+ * - Proper state machine (IDLE → CONNECTING → READY → DISCONNECTING)
23
+ * - Connection age tracking
24
+ * - Full cleanup on destroy()
25
+ * - Null safety on all methods
26
+ */
6
27
  class ConnectionPool {
28
+ manager;
29
+ connections = new Map();
7
30
  constructor(manager) {
8
- this.connections = new Map();
9
31
  this.manager = manager;
10
32
  }
33
+ /**
34
+ * Register a new voice connection or update an existing one.
35
+ */
11
36
  add(guildId, channelId) {
12
37
  const existing = this.connections.get(guildId);
13
38
  if (existing) {
14
39
  existing.channelId = channelId;
40
+ existing.state = VoiceConnectionState.CONNECTING;
15
41
  return existing;
16
42
  }
17
43
  const conn = {
18
- guildId, channelId,
19
- sessionId: null, token: null, endpoint: null,
20
- timeout: null, retryTimeout: null,
21
- connected: false, retries: 0,
44
+ guildId,
45
+ channelId,
46
+ sessionId: null,
47
+ token: null,
48
+ endpoint: null,
49
+ state: VoiceConnectionState.CONNECTING,
50
+ timeout: null,
51
+ retryTimeout: null,
52
+ retries: 0,
53
+ createdAt: Date.now(),
22
54
  };
23
55
  this.connections.set(guildId, conn);
24
56
  this.startTimeout(conn);
@@ -27,27 +59,35 @@ class ConnectionPool {
27
59
  get(guildId) {
28
60
  return this.connections.get(guildId);
29
61
  }
62
+ /**
63
+ * Remove a voice connection and clean up its timers.
64
+ */
30
65
  remove(guildId) {
31
66
  const conn = this.connections.get(guildId);
32
67
  if (!conn)
33
68
  return;
34
- if (conn.timeout)
35
- clearTimeout(conn.timeout);
36
- if (conn.retryTimeout)
37
- clearTimeout(conn.retryTimeout);
69
+ this.clearTimers(conn);
38
70
  this.connections.delete(guildId);
39
71
  }
40
72
  has(guildId) {
41
73
  return this.connections.has(guildId);
42
74
  }
75
+ /**
76
+ * Update session ID from VOICE_STATE_UPDATE.
77
+ * Null-safe: only updates if sessionId is provided.
78
+ */
43
79
  updateSession(guildId, sessionId, channelId) {
44
80
  const conn = this.connections.get(guildId);
45
81
  if (!conn)
46
82
  return;
47
- conn.sessionId = sessionId;
83
+ if (sessionId)
84
+ conn.sessionId = sessionId;
48
85
  if (channelId)
49
86
  conn.channelId = channelId;
50
87
  }
88
+ /**
89
+ * Update voice server info from VOICE_SERVER_UPDATE.
90
+ */
51
91
  updateServer(guildId, token, endpoint) {
52
92
  const conn = this.connections.get(guildId);
53
93
  if (!conn)
@@ -55,12 +95,57 @@ class ConnectionPool {
55
95
  conn.token = token;
56
96
  conn.endpoint = endpoint;
57
97
  }
98
+ /**
99
+ * Mark a connection as successfully established.
100
+ */
58
101
  markConnected(guildId) {
59
102
  const conn = this.connections.get(guildId);
60
103
  if (!conn)
61
104
  return;
62
- conn.connected = true;
105
+ conn.state = VoiceConnectionState.READY;
63
106
  conn.retries = 0;
107
+ this.clearTimers(conn);
108
+ }
109
+ /**
110
+ * Check if we have all the data needed to send a voice update to Lavalink.
111
+ */
112
+ isReady(guildId) {
113
+ const conn = this.connections.get(guildId);
114
+ if (!conn)
115
+ return false;
116
+ return !!(conn.sessionId && conn.token && conn.endpoint);
117
+ }
118
+ /**
119
+ * Get the voice state payload for Lavalink.
120
+ */
121
+ getVoiceState(guildId) {
122
+ const conn = this.connections.get(guildId);
123
+ if (!conn?.sessionId || !conn.token || !conn.endpoint)
124
+ return null;
125
+ return {
126
+ token: conn.token,
127
+ endpoint: conn.endpoint,
128
+ sessionId: conn.sessionId,
129
+ channelId: conn.channelId,
130
+ };
131
+ }
132
+ /**
133
+ * Get all active connections (for debugging/monitoring).
134
+ */
135
+ getAll() {
136
+ return this.connections;
137
+ }
138
+ /**
139
+ * Clean up all connections and timers.
140
+ */
141
+ destroy() {
142
+ for (const conn of this.connections.values()) {
143
+ this.clearTimers(conn);
144
+ }
145
+ this.connections.clear();
146
+ }
147
+ // ─── Internal ───────────────────────────────────────────────────────────
148
+ clearTimers(conn) {
64
149
  if (conn.timeout) {
65
150
  clearTimeout(conn.timeout);
66
151
  conn.timeout = null;
@@ -70,55 +155,49 @@ class ConnectionPool {
70
155
  conn.retryTimeout = null;
71
156
  }
72
157
  }
73
- isReady(guildId) {
74
- const conn = this.connections.get(guildId);
75
- return !!(conn?.sessionId && conn?.token && conn?.endpoint);
76
- }
77
- getVoiceState(guildId) {
78
- const conn = this.connections.get(guildId);
79
- if (!conn?.sessionId || !conn?.token || !conn?.endpoint)
80
- return null;
81
- return { token: conn.token, endpoint: conn.endpoint, sessionId: conn.sessionId };
82
- }
83
158
  startTimeout(conn) {
84
- const timeoutMs = this.manager.options.voiceConnectionTimeout ?? 15000;
85
- if (conn.timeout)
86
- clearTimeout(conn.timeout);
159
+ const timeoutMs = this.manager.options.voiceConnectionTimeout ?? Constants_1.DEFAULTS.VOICE_CONNECTION_TIMEOUT;
160
+ this.clearTimers(conn);
87
161
  conn.timeout = setTimeout(() => {
88
- if (!conn.connected)
162
+ if (conn.state !== VoiceConnectionState.READY) {
89
163
  this.handleConnectionFailure(conn);
164
+ }
90
165
  }, timeoutMs);
91
166
  }
92
167
  handleConnectionFailure(conn) {
93
168
  if (conn.retries >= MAX_VOICE_RETRIES) {
94
169
  const player = this.manager.players.get(conn.guildId);
170
+ const error = new YukimuError_1.VoiceConnectionError(`Voice connection failed after ${MAX_VOICE_RETRIES} retries for guild ${conn.guildId}`, conn.guildId, YukimuError_1.ErrorCode.VOICE_CONNECTION_TIMEOUT);
171
+ this.manager.logger.error(error.message);
95
172
  if (player) {
96
- this.manager.emit("playerError", player, new Error(`Voice connection failed after ${MAX_VOICE_RETRIES} retries`));
173
+ this.manager.emit("playerError", player, error);
97
174
  this.manager.destroyPlayer(conn.guildId).catch(() => { });
98
175
  }
99
176
  this.remove(conn.guildId);
100
177
  return;
101
178
  }
102
179
  conn.retries++;
180
+ this.manager.logger.warn(`Voice retry ${conn.retries}/${MAX_VOICE_RETRIES} for guild ${conn.guildId}`);
181
+ // Use the player's actual selfDeaf/selfMute settings
103
182
  const player = this.manager.players.get(conn.guildId);
104
- if (player) {
105
- console.warn(`[Yukimu] 🔄 Voice retry ${conn.retries}/${MAX_VOICE_RETRIES} for guild ${conn.guildId}`);
106
- conn.retryTimeout = setTimeout(() => {
107
- // Re-send join payload via connector
108
- this.manager.connector.sendPayload(conn.guildId, {
109
- op: 4,
110
- d: {
111
- guild_id: conn.guildId,
112
- channel_id: conn.channelId,
113
- self_deaf: true,
114
- self_mute: false,
115
- },
116
- });
117
- this.startTimeout(conn);
118
- }, VOICE_RETRY_DELAY * conn.retries);
119
- }
183
+ const selfDeaf = player?.selfDeaf ?? true;
184
+ const selfMute = player?.selfMute ?? false;
185
+ conn.retryTimeout = setTimeout(() => {
186
+ this.manager.connector.sendPayload(conn.guildId, {
187
+ op: 4,
188
+ d: {
189
+ guild_id: conn.guildId,
190
+ channel_id: conn.channelId,
191
+ self_deaf: selfDeaf,
192
+ self_mute: selfMute,
193
+ },
194
+ });
195
+ this.startTimeout(conn);
196
+ }, VOICE_RETRY_DELAY * conn.retries);
197
+ }
198
+ get size() {
199
+ return this.connections.size;
120
200
  }
121
- get size() { return this.connections.size; }
122
201
  }
123
202
  exports.ConnectionPool = ConnectionPool;
124
203
  //# sourceMappingURL=ConnectionPool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionPool.js","sourceRoot":"","sources":["../src/ConnectionPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectionPool.js","sourceRoot":"","sources":["../src/ConnectionPool.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
- /** Lavalink v3/v4 supported ops and constants */
1
+ /** Yukimu v2.0.0 Constants & Enumerations */
2
2
  export declare const VERSION = "2.0.0";
3
3
  export declare const CLIENT_NAME = "Yukimu/2.0.0";
4
4
  export declare enum State {
5
5
  CONNECTING = 0,
6
+ /** WebSocket open, waiting for ready op */
6
7
  NEARLY = 1,
8
+ /** Fully connected and ready */
7
9
  CONNECTED = 2,
8
10
  DISCONNECTING = 3,
9
11
  DISCONNECTED = 4,
@@ -15,52 +17,29 @@ export declare enum PlayerState {
15
17
  DISCONNECTING = 2,
16
18
  DISCONNECTED = 3
17
19
  }
18
- export declare enum OpCodes {
19
- PLAY = "play",
20
- STOP = "stop",
21
- PAUSE = "pause",
22
- SEEK = "seek",
23
- VOLUME = "volume",
24
- FILTERS = "filters",
25
- DESTROY = "destroy",
26
- VOICE_UPDATE = "voiceUpdate",
27
- EQUALIZER = "equalizer",
28
- STATS = "stats",
29
- PLAYER_UPDATE = "playerUpdate",
30
- EVENT = "event",
31
- READY = "ready"
32
- }
33
- export declare enum LoadType {
34
- TRACK = "track",
35
- PLAYLIST = "playlist",
36
- SEARCH = "search",
37
- EMPTY = "empty",
38
- ERROR = "error",
39
- TRACK_LOADED = "track_loaded",
40
- PLAYLIST_LOADED = "playlist_loaded",
41
- SEARCH_RESULT = "search_result",
42
- NO_MATCHES = "no_matches",
43
- LOAD_FAILED = "load_failed"
44
- }
45
- export declare enum EventType {
46
- TRACK_START = "TrackStartEvent",
47
- TRACK_END = "TrackEndEvent",
48
- TRACK_EXCEPTION = "TrackExceptionEvent",
49
- TRACK_STUCK = "TrackStuckEvent",
50
- WS_CLOSED = "WebSocketClosedEvent"
51
- }
52
- export declare enum TrackEndReason {
53
- FINISHED = "finished",
54
- LOAD_FAILED = "loadFailed",
55
- STOPPED = "stopped",
56
- REPLACED = "replaced",
57
- CLEANUP = "cleanup",
58
- FINISHED_V3 = "FINISHED",
59
- STOPPED_V3 = "STOPPED",
60
- REPLACED_V3 = "REPLACED",
61
- CLEANUP_V3 = "CLEANUP"
62
- }
63
- export declare const STOPPED_REASONS: Set<string>;
64
20
  export declare const SOURCE_PREFIXES: Record<string, string>;
65
21
  export declare const URL_PATTERNS: Record<string, RegExp[]>;
22
+ export declare const STOPPED_REASONS: Set<string>;
23
+ export declare const WS_CLOSE_CODES: Record<number, string>;
24
+ import type { BitrateConfig, BoostTier } from "./types";
25
+ export declare const BITRATE_BY_BOOST_TIER: Record<BoostTier, BitrateConfig>;
26
+ export declare const DEFAULTS: {
27
+ readonly VOICE_CONNECTION_TIMEOUT: 15000;
28
+ readonly MAX_CACHE_SIZE: 1000;
29
+ readonly CACHE_TTL: 3600000;
30
+ readonly HEARTBEAT_INTERVAL: 30000;
31
+ readonly WS_SEND_TIMEOUT: 30000;
32
+ readonly WS_MAX_QUEUE: 100;
33
+ readonly REST_TIMEOUT: 30000;
34
+ readonly REST_MAX_RETRIES: 3;
35
+ readonly REST_RETRY_BASE_DELAY: 1000;
36
+ readonly REST_RETRY_MAX_DELAY: 15000;
37
+ readonly NODE_CONNECTION_TIMEOUT: 10000;
38
+ readonly NODE_MAX_RETRIES: 5;
39
+ readonly NODE_MAX_RECONNECT_DELAY: 30000;
40
+ readonly PREVIOUS_HISTORY_SIZE: 25;
41
+ readonly CACHE_SWEEP_INTERVAL: 300000;
42
+ readonly SPOTIFY_TOKEN_REFRESH_BUFFER: 30000;
43
+ readonly MAX_SEARCH_RETRIES: 2;
44
+ };
66
45
  //# sourceMappingURL=Constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":"AAAA,iDAAiD;AAEjD,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,WAAW,iBAAsB,CAAC;AAE/C,oBAAY,KAAK;IACf,UAAU,IAAI;IACd,MAAM,IAAI;IACV,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED,oBAAY,WAAW;IACrB,UAAU,IAAI;IACd,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,YAAY,IAAI;CACjB;AAED,oBAAY,OAAO;IAEjB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,YAAY,gBAAgB;IAC5B,SAAS,cAAc;IAEvB,KAAK,UAAU;IACf,aAAa,iBAAiB;IAC9B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,KAAK,UAAU;IAEf,YAAY,iBAAiB;IAC7B,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,UAAU,eAAe;IACzB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,SAAS;IACnB,WAAW,oBAAoB;IAC/B,SAAS,kBAAkB;IAC3B,eAAe,wBAAwB;IACvC,WAAW,oBAAoB;IAC/B,SAAS,yBAAyB;CACnC;AAED,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,WAAW,eAAe;IAC1B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,OAAO,YAAY;IAEnB,WAAW,aAAa;IACxB,UAAU,YAAY;IACtB,WAAW,aAAa;IACxB,UAAU,YAAY;CACvB;AAED,eAAO,MAAM,eAAe,aAE1B,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWlD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CASjD,CAAC"}
1
+ {"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../src/Constants.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAE/C,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,WAAW,iBAAsB,CAAC;AAI/C,oBAAY,KAAK;IACf,UAAU,IAAI;IACd,2CAA2C;IAC3C,MAAM,IAAI;IACV,gCAAgC;IAChC,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAID,oBAAY,WAAW;IACrB,UAAU,IAAI;IACd,SAAS,IAAI;IACb,aAAa,IAAI;IACjB,YAAY,IAAI;CACjB;AAMD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAgBlD,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAiEjD,CAAC;AAMF,eAAO,MAAM,eAAe,aAO1B,CAAC;AAIH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAajD,CAAC;AAIF,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,SAAS,EAAE,aAAa,CAKlE,CAAC;AAIF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;CAkBX,CAAC"}