@stella_project/stellalib 1.1.3 → 1.3.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.
@@ -38,6 +38,8 @@ class StellaManager extends tiny_typed_emitter_1.TypedEmitter {
38
38
  pruneInterval;
39
39
  /** Reference to node health check interval for cleanup. */
40
40
  healthCheckInterval;
41
+ /** Reference to zombie detection interval for cleanup. */
42
+ zombieCheckInterval;
41
43
  /** Returns the nodes sorted by least CPU load. */
42
44
  get leastLoadNode() {
43
45
  const sorted = [...this.nodes.entries()]
@@ -183,9 +185,75 @@ class StellaManager extends tiny_typed_emitter_1.TypedEmitter {
183
185
  this.healthCheckInterval = setInterval(() => this.checkNodeHealth(), interval);
184
186
  this.emit("Debug", `[Manager] Node health monitor started (every ${interval}ms)`);
185
187
  }
188
+ // Start zombie node detection
189
+ const zombie = this.options.zombieDetection;
190
+ if (zombie?.enabled !== false) {
191
+ const interval = zombie?.checkInterval ?? 20000;
192
+ this.zombieCheckInterval = setInterval(() => this.checkZombieNodes(), interval);
193
+ this.emit("Debug", `[Manager] Zombie node detection started (every ${interval}ms, max silence: ${zombie?.maxSilence ?? 30000}ms)`);
194
+ }
186
195
  this.emit("Debug", "[Manager] Initialized");
187
196
  return this;
188
197
  }
198
+ /**
199
+ * Detects "zombie" nodes: connected but no longer sending playerUpdates.
200
+ * This catches frozen Lavalink processes that pass TCP/heartbeat checks but
201
+ * have internally deadlocked. Players on zombie nodes hear silence.
202
+ */
203
+ checkZombieNodes() {
204
+ const maxSilence = this.options.zombieDetection?.maxSilence ?? 30000;
205
+ const now = Date.now();
206
+ for (const node of this.nodes.values()) {
207
+ if (!node.connected)
208
+ continue;
209
+ // Only flag a node as zombie if it has playing players
210
+ const playingOnNode = [...this.players.values()].filter((p) => p.node === node && p.playing);
211
+ if (!playingOnNode.length)
212
+ continue;
213
+ // If we've never received a playerUpdate but there are playing players,
214
+ // give the node a grace period equal to maxSilence from connection time
215
+ if (node.lastPlayerUpdate === 0) {
216
+ if (node.lastHeartbeatAck > 0 && (now - node.lastHeartbeatAck) > maxSilence) {
217
+ // Node has been alive long enough — flag it
218
+ }
219
+ else {
220
+ continue;
221
+ }
222
+ }
223
+ const silence = now - (node.lastPlayerUpdate || node.lastHeartbeatAck);
224
+ if (silence <= maxSilence)
225
+ continue;
226
+ // Node is zombie!
227
+ this.emit("Debug", `[Zombie] Node ${node.options.identifier} detected as zombie — ${playingOnNode.length} playing player(s), last playerUpdate ${silence}ms ago`);
228
+ this.emit("NodeZombie", node, playingOnNode.length, node.lastPlayerUpdate);
229
+ // Find healthy non-zombie nodes
230
+ const healthyNodes = [...this.nodes.values()].filter((n) => {
231
+ if (n === node || !n.connected)
232
+ return false;
233
+ // Don't migrate to another node that's also zombie
234
+ const nPlaying = [...this.players.values()].filter((p) => p.node === n && p.playing);
235
+ if (nPlaying.length > 0 && n.lastPlayerUpdate > 0 && (now - n.lastPlayerUpdate) > maxSilence)
236
+ return false;
237
+ return true;
238
+ });
239
+ if (!healthyNodes.length) {
240
+ this.emit("Debug", `[Zombie] No healthy nodes to failover from zombie ${node.options.identifier} — forcing reconnect`);
241
+ // Force kill the socket to trigger reconnect cycle
242
+ node.socket?.terminate();
243
+ continue;
244
+ }
245
+ healthyNodes.sort((a, b) => a.penalties - b.penalties);
246
+ for (const player of playingOnNode) {
247
+ const target = healthyNodes[0];
248
+ this.emit("Debug", `[Zombie] Moving player ${player.guild} from zombie ${node.options.identifier} → ${target.options.identifier}`);
249
+ player.moveNode(target.options.identifier).catch((err) => {
250
+ this.emit("Debug", `[Zombie] Failed to move player ${player.guild}: ${err instanceof Error ? err.message : String(err)}`);
251
+ });
252
+ }
253
+ // Force reconnect the zombie node
254
+ node.socket?.terminate();
255
+ }
256
+ }
189
257
  /**
190
258
  * Checks node health and preemptively migrates players from overloaded nodes.
191
259
  * Called periodically when `nodeHealthThresholds` is configured.
@@ -295,6 +363,21 @@ class StellaManager extends tiny_typed_emitter_1.TypedEmitter {
295
363
  tracks,
296
364
  playlist,
297
365
  };
366
+ // Opus priority: sort tracks so Opus-native sources appear first
367
+ // SoundCloud and YouTube Music serve Opus natively — Discord uses Opus,
368
+ // so zero-transcode = lower CPU + better audio fidelity.
369
+ if (this.options.opusPriority && result.tracks.length > 1) {
370
+ const OPUS_SOURCES = new Set(["soundcloud", "youtube", "ytmusic"]);
371
+ result.tracks.sort((a, b) => {
372
+ const aIsOpus = OPUS_SOURCES.has(a.sourceName?.toLowerCase() ?? "");
373
+ const bIsOpus = OPUS_SOURCES.has(b.sourceName?.toLowerCase() ?? "");
374
+ if (aIsOpus && !bIsOpus)
375
+ return -1;
376
+ if (!aIsOpus && bIsOpus)
377
+ return 1;
378
+ return 0;
379
+ });
380
+ }
298
381
  if (this.options.replaceYouTubeCredentials) {
299
382
  let tracksToReplace = [];
300
383
  if (result.loadType === "playlist" && result.playlist) {
@@ -357,6 +440,95 @@ class StellaManager extends tiny_typed_emitter_1.TypedEmitter {
357
440
  plugins: node.info?.plugins ?? [],
358
441
  };
359
442
  }
443
+ // ── LavaSearch Integration ────────────────────────────────────────────
444
+ /**
445
+ * Performs a structured search using the LavaSearch Lavalink plugin.
446
+ * Returns rich results including tracks, albums, artists, playlists, and text suggestions.
447
+ * Requires the LavaSearch plugin to be installed on the Lavalink server.
448
+ *
449
+ * @param query The search query or LavaSearchQuery object.
450
+ * @param requester The user who requested the search.
451
+ * @example
452
+ * ```ts
453
+ * const results = await manager.lavaSearch({ query: "Daft Punk", source: "spotify", types: ["track", "album", "artist"] });
454
+ * console.log(results.tracks, results.albums, results.artists);
455
+ * ```
456
+ */
457
+ async lavaSearch(query, requester) {
458
+ const node = this.useableNodes;
459
+ if (!node)
460
+ throw new Error("No available nodes.");
461
+ const _query = typeof query === "string" ? { query } : query;
462
+ const source = _query.source ?? this.options.defaultSearchPlatform ?? "youtube";
463
+ const prefix = StellaManager.DEFAULT_SOURCES[source] ?? source;
464
+ const search = `${prefix}:${_query.query}`;
465
+ const raw = (await node.rest.lavaSearch(search, _query.types));
466
+ if (!raw || typeof raw !== "object")
467
+ return {};
468
+ const result = {};
469
+ // Build Track[] from raw track data
470
+ if (Array.isArray(raw.tracks)) {
471
+ result.tracks = raw.tracks.map((t) => Utils_1.TrackUtils.build(t, requester));
472
+ }
473
+ // Build album/artist/playlist results
474
+ for (const key of ["albums", "artists", "playlists"]) {
475
+ if (Array.isArray(raw[key])) {
476
+ result[key] = raw[key].map((item) => ({
477
+ info: item.info,
478
+ tracks: (item.tracks ?? []).map((t) => Utils_1.TrackUtils.build(t, requester)),
479
+ pluginInfo: item.pluginInfo,
480
+ }));
481
+ }
482
+ }
483
+ // Text results (autocomplete suggestions)
484
+ if (Array.isArray(raw.texts)) {
485
+ result.texts = raw.texts;
486
+ }
487
+ return result;
488
+ }
489
+ // ── RoutePlanner API ─────────────────────────────────────────────────
490
+ /**
491
+ * Gets the current RoutePlanner status from the Lavalink server.
492
+ * Useful for monitoring IP rotation and identifying failing addresses.
493
+ *
494
+ * @param nodeIdentifier Optional specific node to query. Defaults to best available.
495
+ */
496
+ async getRoutePlannerStatus(nodeIdentifier) {
497
+ const node = nodeIdentifier
498
+ ? this.nodes.get(nodeIdentifier)
499
+ : this.useableNodes;
500
+ if (!node)
501
+ throw new Error("No available nodes.");
502
+ return await node.rest.getRoutePlannerStatus();
503
+ }
504
+ /**
505
+ * Unmarks a specific IP address as failing in the RoutePlanner.
506
+ *
507
+ * @param address The IP address to free.
508
+ * @param nodeIdentifier Optional specific node. Defaults to best available.
509
+ */
510
+ async freeRoutePlannerAddress(address, nodeIdentifier) {
511
+ const node = nodeIdentifier
512
+ ? this.nodes.get(nodeIdentifier)
513
+ : this.useableNodes;
514
+ if (!node)
515
+ throw new Error("No available nodes.");
516
+ await node.rest.freeRoutePlannerAddress(address);
517
+ }
518
+ /**
519
+ * Unmarks all failing IP addresses in the RoutePlanner.
520
+ *
521
+ * @param nodeIdentifier Optional specific node. Defaults to best available.
522
+ */
523
+ async freeAllRoutePlannerAddresses(nodeIdentifier) {
524
+ const node = nodeIdentifier
525
+ ? this.nodes.get(nodeIdentifier)
526
+ : this.useableNodes;
527
+ if (!node)
528
+ throw new Error("No available nodes.");
529
+ await node.rest.freeAllRoutePlannerAddresses();
530
+ }
531
+ // ── Decode ───────────────────────────────────────────────────────────
360
532
  /**
361
533
  * Decodes the base64 encoded tracks and returns a TrackData array.
362
534
  * @param tracks
@@ -397,10 +569,17 @@ class StellaManager extends tiny_typed_emitter_1.TypedEmitter {
397
569
  }
398
570
  /**
399
571
  * Destroys a player if it exists.
572
+ * Properly cleans up the player (disconnects, stops timers) before removing.
400
573
  * @param guild
401
574
  */
402
575
  destroy(guild) {
403
- this.players.delete(guild);
576
+ const player = this.players.get(guild);
577
+ if (player) {
578
+ player.destroy();
579
+ }
580
+ else {
581
+ this.players.delete(guild);
582
+ }
404
583
  }
405
584
  /**
406
585
  * Creates a node or returns one if it already exists.
@@ -557,6 +736,10 @@ class StellaManager extends tiny_typed_emitter_1.TypedEmitter {
557
736
  clearInterval(this.healthCheckInterval);
558
737
  this.healthCheckInterval = undefined;
559
738
  }
739
+ if (this.zombieCheckInterval) {
740
+ clearInterval(this.zombieCheckInterval);
741
+ this.zombieCheckInterval = undefined;
742
+ }
560
743
  this.caches.clear();
561
744
  this.emit("Debug", `[Manager] Shutdown complete. ${this.nodes.size} nodes closed, sessions + player states persisted.`);
562
745
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/Structures/Manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../src/Structures/Manager.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,8 @@ declare class StellaNode {
29
29
  info: LavalinkInfo | null;
30
30
  /** Detected Lavalink version (3 or 4). Auto-detected on connect. */
31
31
  version: LavalinkVersion;
32
+ /** Timestamp of the last playerUpdate received from this node. Used for zombie detection. */
33
+ lastPlayerUpdate: number;
32
34
  private static _manager;
33
35
  private reconnectTimeout?;
34
36
  private reconnectAttempts;
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/Structures/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/Structures/Node.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,8 @@ class StellaNode {
38
38
  info = null;
39
39
  /** Detected Lavalink version (3 or 4). Auto-detected on connect. */
40
40
  version = 4;
41
+ /** Timestamp of the last playerUpdate received from this node. Used for zombie detection. */
42
+ lastPlayerUpdate = 0;
41
43
  static _manager;
42
44
  reconnectTimeout;
43
45
  reconnectAttempts = 1;
@@ -221,7 +223,16 @@ class StellaNode {
221
223
  ? `${protocol}://${this.address}`
222
224
  : `${protocol}://${this.address}/v4/websocket`;
223
225
  this.manager.emit("Debug", `[Node:${this.options.identifier}] Connecting to ${url}${this.sessionId ? " (resuming)" : ""}`);
224
- this.socket = new ws_1.default(url, { headers });
226
+ const wsOptions = { headers };
227
+ // Enable per-message deflate compression if configured
228
+ if (this.options.wsCompression) {
229
+ wsOptions.perMessageDeflate = {
230
+ zlibDeflateOptions: { level: 6 },
231
+ threshold: 128,
232
+ };
233
+ this.manager.emit("Debug", `[Node:${this.options.identifier}] WebSocket compression enabled (perMessageDeflate)`);
234
+ }
235
+ this.socket = new ws_1.default(url, wsOptions);
225
236
  this.socket.on("open", this.open.bind(this));
226
237
  this.socket.on("close", this.close.bind(this));
227
238
  this.socket.on("message", this.message.bind(this));
@@ -452,6 +463,7 @@ class StellaNode {
452
463
  this.statsLastUpdated = Date.now();
453
464
  break;
454
465
  case "playerUpdate": {
466
+ this.lastPlayerUpdate = Date.now();
455
467
  const player = this.manager.players.get(payload.guildId);
456
468
  if (player) {
457
469
  player.position = payload.state.position || 0;
@@ -667,6 +679,14 @@ class StellaNode {
667
679
  trackStart(player, track, payload) {
668
680
  player.playing = true;
669
681
  player.paused = false;
682
+ // Restore volume after crossfade (previous track faded out, new track starts at full volume)
683
+ if (player.crossfadeDuration > 0) {
684
+ this.manager.emit("Debug", `[Player:${player.guild}] Crossfade: restoring volume to ${player.volume} for new track`);
685
+ player.node.rest.updatePlayer({
686
+ guildId: player.guild,
687
+ data: { volume: player.volume },
688
+ }).catch(() => { });
689
+ }
670
690
  this.manager.emit("TrackStart", player, track, payload);
671
691
  }
672
692
  async trackEnd(player, track, payload) {
@@ -1103,15 +1123,47 @@ class StellaNode {
1103
1123
  }
1104
1124
  socketClosed(player, payload) {
1105
1125
  this.manager.emit("SocketClosed", player, payload);
1126
+ // Voice rotation / desync codes — recoverable via silent re-identify
1127
+ // 4015 = Voice server changed (Discord rotated the voice server)
1128
+ // 4000 = Unknown error (often a UDP desync, recoverable)
1129
+ const VOICE_RECONNECT_CODES = [4015, 4000];
1130
+ if (VOICE_RECONNECT_CODES.includes(payload.code) && player.voiceChannel) {
1131
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice socket closed with recoverable code ${payload.code} — attempting silent re-identify`);
1132
+ player.reconnectVoice().then(() => {
1133
+ this.manager.emit("VoiceReconnect", player, payload.code);
1134
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice re-identified successfully after code ${payload.code}`);
1135
+ }).catch((err) => {
1136
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice re-identify failed: ${err instanceof Error ? err.message : String(err)} — cleaning up`);
1137
+ player.voiceReady = false;
1138
+ player.connected = false;
1139
+ player.playing = false;
1140
+ player.state = "DISCONNECTED";
1141
+ });
1142
+ return;
1143
+ }
1106
1144
  // 4014 = Disconnected by Discord (bot was kicked/moved out of voice)
1107
- // 4006 = Session is no longer valid
1108
- const VOICE_FATAL_CODES = [4014, 4006];
1109
- if (VOICE_FATAL_CODES.includes(payload.code)) {
1110
- this.manager.emit("Debug", `[Player:${player.guild}] Voice socket closed with code ${payload.code} (${payload.reason || "no reason"}) — cleaning up player`);
1145
+ if (payload.code === 4014) {
1146
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice socket closed with code 4014 (kicked from voice) — cleaning up player`);
1111
1147
  player.voiceReady = false;
1112
1148
  player.connected = false;
1113
1149
  player.playing = false;
1114
1150
  player.state = "DISCONNECTED";
1151
+ return;
1152
+ }
1153
+ // 4006 = Session no longer valid — try re-identify, fall back to cleanup
1154
+ if (payload.code === 4006 && player.voiceChannel) {
1155
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice session invalidated (4006) — attempting re-identify`);
1156
+ player.reconnectVoice().then(() => {
1157
+ this.manager.emit("VoiceReconnect", player, payload.code);
1158
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice re-identified after session invalidation`);
1159
+ }).catch(() => {
1160
+ this.manager.emit("Debug", `[Player:${player.guild}] Voice re-identify failed after 4006 — disconnecting`);
1161
+ player.voiceReady = false;
1162
+ player.connected = false;
1163
+ player.playing = false;
1164
+ player.state = "DISCONNECTED";
1165
+ });
1166
+ return;
1115
1167
  }
1116
1168
  }
1117
1169
  }